SharePoint henkilökentän tyhjennys Power Automatella
Joskus voi tulla vastaan tilanne, jossa johonkin automaatioon pitää saada SharePoint-listan yksiarvoisen henkilökentän tyhjennys. Syy voi olla vaikka niinkin yksinkertainen, että kenttää käytetään joihinkin tiedotuksiin kertaluontoisesti.
Meillä on siis SharePoint-lista, jossa on henkilökenttä, johon voi valita vain yhden henkilön:
Äkkiseltään sitä luulisi, että tämäpä hoituu ihan Power Automaten Update list item -toiminnolla, jossa päivitetään henkilökentän arvoksi tyhjä (null) arvo.
Flow menee hienosti läpi, mutta kun mennään listalle katsomaan riviä, on siellä edelleen sama arvo henkilökentässä kuin mitä ennen tyhjennystä:
Voimme siis todeta, että Update list item -toiminnossa yksiarvoisen henkilökentän tyhjäksi jättäminen tai päivittäminen null-arvolla ei toimi.
Jos tuo henkilökenttä olisi moniarvoinen henkilökenttä, null arvo tyhjentäisi sen onnistuneesti. Eli moniarvoisen henkilökentän tyhjennyksessä tuo null-arvon käyttäminen on ihan toimiva tapa.
Takaisin tähän yksiarvoisen henkilökentän probleemaan.
Jos aletaan miettimään, mitä muita tapoja meillä on Power Automatessa käpistellä SharePoint-listoja, mieleen tulee toiminto Send HTTP Request to SharePoint. Voisikohan tällä toiminnolla tehdä asialle jotain?
Kyllä voi.
Lähetetäänpä tuolle listalle JSON-muotoinen paukku, jossa kerrotaan, että vedäpä kenttä tyhjäksi, kiitos.
Tätä varten meidän on selvitettävä listan ListItemEntityTypeFullName
Todennäköisesti nimi on sama kuin listan näyttönimi, mutta jos listan nimessä on käytetty luontivaiheessa esim. välilyöntejä, skandeja ym. nimi voi olla jotain aivan muuta. Kuten tässä minunkin tapauksessani.
ListItemEntityTypeFullName saa helpoiten selville menemällä selaimella listan sivuston osoitteeseen:
https://<tenantinnimi>.sharepoint.com/sites/<sivusto-jossa-lista-sijaitsee>/_api/Web/Lists/getbytitle(’<Listan-nimi-jossa-tyhjennettävä-kenttä-sijaitsee>’)/ListItemEntityTypeFullName
Tuloksena pitäisi aueta XML-höpötystä, josta tuon listan ListItemEntityTypeFullName saa kaivettua ulos:
Eli tässä minun tapauksessa ListItemEntityTypeFullName on ClearPersonLookupBLOGListItem
Nyt meillä on tarvittavat tiedot JSON-viestille.
Tehdään Flowiin Send HTTP Request to SharePoint -steppi, jossa kerrotaan, että tyhjennäpä tuo henkilökenttä:
Flowissa olen listan nimen ja ListItemEntityTypeFullName kirjoittanut muuttujien sisään (koska rakastan muuttujia!)
JSON-viesti, joka listalle lähetetään, on sisällöltään tässä tapauksessa (kun muuttujan purkaa auki)
{
”__metadata”:{”type”:”SP.Data.ClearPersonLookupBLOGListItem”},
”PersonLookup_x002d_SINGLEId”:-1
}
PersonLookup_x002d_SINGLE on henkilökentän tekninen nimi.
Kenttäni näyttönimi SharePoint-listassa on PersonLookup-SINGLE, mutta koska siinä on väliviiva (-), kääntyy se SharePointin syövereissä muotoon PersonLookup_x002d_SINGLE
Kokonaisuudessaan tämä yksinkertainen Flow näyttää nyt siis tältä:
Ja kun Flow ajetaan, niin henkilökenttä tyhjenee kauniisti SharePoint-listalla:
Yhteenvetona
- Yksiarvoisen henkilökentän tyhjentäminen Power Automatella vaatii JSON-viestin lähettämistä listalle/henkilökentälle
- Moniarvoisen henkilökentän tyhjentäminen Power Automatella onnistuu päivittämällä kenttä null-arvolla
– Pilviguru / Huru-ukko Jasu Snell