Startowanie obiegu za pomocą listy SharePoint

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2020.1.x; autor: Michał Kastelik

 

Wprowadzenie

Platforma WEBCON BPS zapewnia rozbudowaną integrację z usługą Microsoft SharePoint Online. W artykule opisano w jaki sposób uruchomić obieg za pomocą standardowej listy SharePoint z wykorzystaniem zaawansowanego formatowania kolumny.

W przedstawionym scenariuszu lista SharePoint będzie służyła do uruchamiania obiegu zapraszania osób na konferencję – po wpisaniu imienia oraz nazwiska będzie uruchamiany obieg marketingowy. Aktualny status zgłoszenia będzie można obserwować na kolumnie w liście SharePoint.

Konfiguracja listy SharePoint

Lista składa się z następujących pól:

  • pole Title – zawiera imię i nazwisko zapraszanej osoby
  • pole Status – zawiera aktualny status zgłoszenia
  • pole BPS URL – kolumna zawierająca link do uruchomionego elementu WEBCON BPS
  • Start – kolumna umożliwiająca wystartowanie obiegu workflow

Aby uruchomić obieg WEBCON BPS z tej kolumny należy przejść do ustawień zaawansowanego formatowania kolumny.

 

Po kliknięciu na kolumnę należy wybrać opcję „Column settings” a następnie „Format this column” i „Advanced mode”. W konfiguracji wybierz pole, do którego ma być zastosowane formatowanie (w naszym przypadku jest to pole „Start”).

 

W kolejnym kroku należy wstawić kod JSON rozwiązania – kod ten dodaje obiekt po prawej stronie wartości kolumny zawierający ikonę oraz napis będący jednocześnie linkiem. W przypadku ikony wybrano jedną z dostępnych w zbiorze Microsoft Fluent UI o nazwie „Flow”

Pełna lista dostępnych ikon jest dostępna pod tym adresem: https://developer.microsoft.com/en-us/fluentui#/styles/web/icons.

 

Adres odnośnika który został wykorzystany w tym rozwiązaniu odnosi się do adresu startowego obiegu zdefiniowanego w środowisku WEBCON BPS.

W linku przekazujemy do obiegu także dodatkowe parametry takie jak:

  • [$Title] – do pola AttText1 w naszym formularzu przekazujemy wartość pola Title
  • [$ID] – do pola AttText4 formularza przekazujemy wartość ID wiersza listy
  • https://webconbps.sharepoint.com/Lists/Start%20BPS%20list/DispForm.aspx?ID='+[$ID] – do pola AttText3 przekazujemy całego linka do elementu listy

Cały kod rozwiązania w naszym scenariuszu wygląda następująco:

{

"$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",

"elmType": "button",

"attributes": {

"class": "ms-fontColor-themePrimary ms-fontColor-themeDarker–hover"

},

"style": {

"border": "none",

"background-color": "transparent",

"cursor": "pointer"

},

"children": [

{

"elmType": "span",

"attributes": {

"iconName": "Flow"

},

"style": {

"padding-right": "9px"

}

},

{

"elmType": "a",

"txtContent": "=if([$Status]==",'Start WEBCON BPS!', if([$Status]=='In progress', ","))",

"attributes": {

"target": "_blank",

"href": "='https://presentation.webconbps.com/BPSPortal/db/1/app/71/start/wf/145/dt/148/form?com_id=2&returnurl=%2Fdb%2F1%2Fapp%2F71&AttText1=' + [$Title] + '&AttText4=' + [$ID] + '&AttText3=https://webconbps.sharepoint.com/Lists/Start%20BPS%20list/DispForm.aspx?ID='+[$ID]"

}

}

]

}

 

Po kliknięciu na link z listy Sharepoint uruchomi się przypisana aplikacja WEBCON BPS wraz z przekazanymi w adresie parametrami.

 

Po przejściu kroku, na liście zostaje zaktualizowana wartość pola Status na aktualny krok w obiegu, dodatkowo w kolumnie BPS URL zostaje zapisany link do zapisanego elementu WEBCON BPS.

Aby zmodyfikować te wartości użyto akcji „Edit a list element” z zakładki SharePoint content. W konfiguracji po wybraniu połączenia oraz listy należy określić pole w jakim jest przechowywany ID elementu(w naszym przypadku jest to atrybut ID). Poniżej należy określić jakie pole będzie zmienione oraz na wartość.

 

Efekt finalny na liście SharePoint wygląda następująco:

 

W przedstawionym rozwiązaniu link do startowania elementu znajdujący się kolumnie „Start” pojawia się tylko wtedy, kiedy kolumna Status jest pusta, w innych przypadkach link jest ukryty. Została tam użyta metoda =If

"=if([$Status]==",'Start WEBCON BPS!', if([$Status]=='In progress', ","))",