Sprawdzanie czy pole daty nie jest null nie jest trywialną czynnością jeżeli korzystamy z SharePoint designer 2013. Z dziwnego powodu Microsoft nie przewidział takiej funkcjonalności w SharePoint designer 2013. Pracuję nad workflow dla klienta. Jednym z wymogów jest ograniczenie interakcji użytkownika z listą zadań. Jeżeli jakiś element listy, na którym bazuje workflow osiągnął zakładaną wartość, workflow sam powinien zaznaczyć zadanie jako zakończone. Jest to całkiem proste do zrobienia w Visual Studio – tam mamy  element “workflow item change”, ale jak to zrobić z  SharePoint designer 2013? No cóż, nie jest to jakoś specjalnie trudne, możemy użyć do tego celu akcji listy ”Wait for Field Change in the Current Item”. Działa.

Problem się pojawi kiedy będziemy pracować z polem typu data. Domyślne zachowanie dla tego pola będzie, że data jest równa jakieś dacie, ale nie ma warunku, że pole jest po prostu puste. Co zatem zrobić? Widziałem wiele skomplikowanych rozwiązań, ale osobiście preferuję coś bardziej prostego.

SharePoint designer 2013 w końcu ma pętlę WHILE. To bardzo pożyteczna opcja, której wcześniej bardzo brakowało w SharePoint designerze. No dobrze zacznijmy. Na początek potrzebujemy zmiennej, która będzie nam potrzebna do wyjścia z pętli.

A w pierwszym kroku naszego workflow initializujemy ją z wartością 1. Teraz musimy dodać krok pętli. W SharePoint Designer 2013 mamy dwa rodzaje pętli jedna, która będzie działać n razy i drugą, która działa do chwili gdy jest spełniony konkretny warunek. W naszym przypadku skorzystamy z tej drugiej. Jak widać poniżej pętla będzie działać do chwili gdy nasza zmienna przestanie być równa 1. Teraz ustawiamy sprawdzanie, aby nasze pole daty było większe od  1901-01-01, co w moim przypadku oznacza, że użytkownik wprowadził jakąś wartość. A jej wprowadzenie spowoduje ustawienie zmiennej na 0, a tym samym wyjście z pętli. Po wyjściu z pętli możemy zaznaczyć zadanie jako ukończone.

Jak widzicie w ten prosty sposób wykonaliśmy sprawdzanie czy pole daty nie jest null

Update 28/12/2019

Jeżeli czytasz ten wpis pod koniec 2019 zastanów się czy Ci ta wiedza jest potrzebna. Na chwilę obecną model programowania i narzędzi dla SharePoint bardzo się zmienia. Możecie zerknąć na nie pod tym wpisem