SharePoint Online

Pole nebo vlastnost neexistuje

Napsáno Radek Vlach

Přejmenování sloupce v SharePointu po nasazení workflow není dobrý nápad.

Nedávno jsem byl požádán, abych pomohl opravit řešení nad SharePointem, které nefungovalo. Jednalo se o řešení, kdy jste přes kalendář vystavili akci a lidé se na tuto akci mohli registrovat. Řešení hlídá volná místa a po každé registraci odečte volné místo a při odregistraci volné místo přičte. Dále posílá email registrovaným s upozorněním na akci. O celý mechanismus se starají 3 Workflow (new items, registrace, odregistrace). Systém je řešen spoustou pomocných sloupců, které nastaví první automaticky spouštěné Workflow. A přesně toto workflow přestalo fungovat.

Debuggování chyby:

U spuštěného workflow jsem se podíval na poznámku (viz obrázek)

Zaujala mne hláška „Voln_x00e1__x0020_m_x00ed_sta neexistuje.“ Jedná se o sloupec v kalendáři, do kterého se zapisuje počet volných míst. Koukl jsem se do kalendáře a tento sloupec zde byl. Navíc po kontrole workflow, které se na tento sloupec odkazuje, bylo vše vyplněno a „Check for error“ nic neodhalil.

Je dobré si to ověřit i jinou cestou, a tak jsem použil powershell a modul PnP.
Příkazem

Get-PnPList -Identity “kalendarXY”

jsem si ověřil existenci kalendáře a pro další práci jsem si toto dal do proměnné.

$list=Get-PnPList -Identity “kalendarXY”

Pak jsem zkontroloval přítomnost sloupce „Volná místa“ s vyselektováním zajímavých atributů týkajících se názvu.

Get-PnPField -List $list.Title -Identity “Volná místa” | select Title,InternalName,StaticName | fl

Tento příkaz mi vypsal sloupec „Volná místa“, takže existuje SUPER.

PROČ tedy v chybové hlášce workflow je napsáno, že neexistuje?

Jednoduše, sloupec s názvem „Volná místa“ existuje, protože tento název je jakýsi Display name neboli Title. Jak jste si mohli všimnout, v příkazu kromě toho selektuji ještě Static name a Internal name.

A zde byla chyba. Místo očekávaného Static a Internal name sloupce „Voln_x00e1__x0020_m_x00ed_sta“ jsem tam našel úplně něco jiného. Proto workflow nemohlo najít tento sloupec.

PROČ? Při založení sloupce vzniká Static name a Internal name, které jsou stejné a nedokážete je měnit. To znamená, že při přejmenování sloupce dojde pouze ke změně Display name. SharePoint designer používá při psaní workflow Display name, ale pokud dosazujete proměnnou do textu např. zápis do historie nebo do emailu, pracuje s hodnotou, kterou uvádí Internal name nebo Static name.

DOPORUČENÍ:

Pokud vytváříte takovouto aplikaci, používejte sloupce webu a než začnete psát workflow, nachystejte si stabilní strukturu, která dává smysl. Teprve pak začněte s workflow.

OPRAVA:

Oprava v tomto případě byla poměrně jednoduchá. Najít místa ve workflow, kde se autor odkazoval na proměnnou. V našem případě v zápisu do historie, nastavit sloupec, který po přejmenování zmizel. A tím se celý proces dokončil.

Je zajímavé, že pokud vytvoříte sloupec listu s názvem “Volná místa”, je jeho Internal name „Voln_x00e1__x0020_m_x00ed_sta“. Pokud ale použijete při vytváření sloupců sloupce webu, je Internal name název sloupce „Volná__x0020_místa“.

Líbil se Vám tento článek?
Sending
User Review
5 (1 vote)

O autorovi

Radek Vlach

IT specialista
Institute of Computer Science
Masaryk University
Zaměření: SharePoint, Active Directory , O365, Oracle, SQL, RMS, Office 365 Security & Compliance

Zanechat komentář

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

error: Obsah je cháněný / Content is protected !!