dotyczy wersji 2017.1.1.x; autor: Karol Woźniak
Standardowe zastosowanie
WebService`y utworzone w technologii SOAP są powszechnie stosowane w celu zapewnienia integracji pomiędzy różnymi systemami. Są również wykorzystywane do zapewnienia wewnętrznej komunikacji między różnymi komponentami danej platformy.
Z poziomu systemu BPS komunikacja z WebService`m SOAP jest możliwa z poziomu akcji oraz źródeł danych.
Standardowym zastosowaniem dla źródeł danych typu SOAP jest potrzeba pozyskania z zewnętrznego systemu kolekcji danych i możliwości użycia ich w polu wyboru na formularzu. Przykładowo może to być kolekcja zwracają grupy SharePointowe na danym środowisku, listę kontrahentów z systemu ERP, użytkowników z zewnętrznego systemu CRM itd.
Koniecznym wymaganiem postawionym przed źródłami typu SOAP jest zwrócenie kolekcji danych. Gdy WebService w odpowiedzi na dane żądanie wysyła płaską listę taka metoda nie może zostać użyta w źródłach danych. W takim scenariuszu lepszym rozwiązaniem będzie użycie akcji wywołującej WebService SOAP i np. ustawiącej pola formularza zwróconymi w odpowiedzi wartościami.
Akcje zwykle stosowane są w celu dokonania operacji na zewnętrznym systemie. Przykładami może być dokonanie wpisu w systemie ERP/SAP, utworzenie konta w SalesForce/DynamicsCRM itd. Odpowiedź wysłana przez WebService może być zmapowana do atrybutów i kolumn listy pozycji na formularzu.
W kolejnych punktach zostaje przedstawiona przykładowa konfiguracja wywołująca akcje oraz korzystająca ze źródeł danych SOAP.
Ze względu na swoją strukturę zapewnienie ogólnej obsługi każdego WebService`u stworzonego w tej technologii nie jest zadaniem trywialnym. Stąd zalecamy zapoznanie się z artykułem prezentującym znane ograniczenia obsługi WebService`ów SOAP-owych w systemie BPS.
Scenariusz konfiguracji i użycia akcji SOAP
Testowy scenariusz dotyczył będzie komunikacji z zewnętrznym WebServicem, którego rezultatem będzie zwrócenie wszystkich grup SharePointowych dla wskazanego w parametrze wywołania środowiska (parametrem będzie URL web aplikacji SharePointowej).
Parametr wywołania przekazywany będzie na kroku Startowym obiegu w tekstowym atrybucie formularza o nazwie „URL”. Podczas przejścia ścieżką do kroku „Przetwarzanie” wykonana zostanie akcja SOAP, której odpowiedź/wynik zostanie zapisany do listy pozycji znajdującej się na formularzu.
Konfiguracja wzorca akcji
Pierwszym krokiem realizacji scenariusza będzie utworzenie wzorca akcji z grupy Integracja oraz wprowadzenie poprawnej konfiguracji.
Zakładka „Autentykacja” pozwala na sprecyzowanie ustawień dostępu do WebService`u tj. URL-u, bindingu oraz poświadczeń użytkownika. Możliwe jest wskazanie istniejącego połączenia z zakładki „Źródła danych” jeżeli takowe istnieje.
Kluczowym punktem konfiguracji wywołania akcji jest wskazanie ścieżki do pliku WSDL tj. faktycznej definicji metod WebServcei`u. Ścieżka może być sieciowa lub plik można wskazać z dysku.
Po wskazaniu WSDLa i wyborze metody WebService`u z listy rozwijanej konieczne jest uzupełnienie parametrów wywołania oraz opcjonalnie mapowań do atrybutów i/lub kolumn list pozycji.
Struktura procesu i jego atrybutów.
Po dokonaniu poprawnej konfiguracji wzorca należy dodać go np. na przejściu ścieżką by akcja mogła zostać wykonana.
Użycie na formularzu (rezultat)
Na kroku Startowym obiegu uzupełniamy atrybut URL, którego wartość zostanie przekazana jako parametr wywołania metody WebService`u. Następnie przechodzimy ścieżką.
Rezultat wykonania akcji wywołania WebService`u SOAP.
Scenariusz konfiguracji i użycia źródeł SOAP
Analogicznie do scenariusza dla akcji wywołania SOAP tu również zdecydujemy się na pobranie kolekcji grup SharePointowych. Tym razem jednak wartość ta będzie przechowywana w źródle danych i pobierana podczas wyszukiwania w polu wyboru na formularzu.
Pozostałe kwestie pozostają niezmienne względem poprzednich punktów artykułu.
Konfiguracja połączenia i źródła danych
Przechodząc na zakładkę „Źródła danych” w Studio zaczniemy od zdefiniowania połączenia do wskazanego WebService`u SOAP-owego.
Po poprawnym skonfigurowaniu połączenia następnym krokiem jest dodanie źródła danych z niego korzystającego. Pomimo podania adresu wywołania WebService`u w połączeniu nadal konieczne wskazanie jest ścieżki do pliku WSDL.
Kluczowy punkt konfiguracji źródeł SOAP – wskazanie kolekcji danych zwróconych przez metodę WebService`u. Metoda może w odpowiedzi zwracać wiele kolekcji danych, zmuszeni jesteśmy wskazać jedną z nich, która będzie przekazana np. do pola wyboru na fomularzu. Analogicznie jak dla akcji wywołania SOAP konieczne jest wprowadzenie wszelkich wymaganych parametrów wywołania metody.
Po konfiguracji źródeł danych przechodzimy do dodania pola wyboru i wybrania nowego źródła danych.
Przykładowa konfiguracja pola wyboru.
Użycie na formularzu (rezultat)
Z punktu widzenia użytkownika pole wyboru „SharePoint Groups” udostępnia wyszukiwanie wszystkich zwróconych przez WebService grup SharePointowych zgodnie z parametrem wywołania metody.
Funkcjonalnie pole wyboru działa identycznie bez względu na technologie przechowywania i pobierania danych w tle. Tzn. dla MSSQL/Oracle/SOAP/REST itd. Użytkownik nie zauważy różnicy w działaniu atrybutu.
Witam,
Chciałem skonfigurować webservice poczty polskiej ale utknąłem i potrzebuje wsparcia.
Skonfigurowałem połączenie SOAP:
URL: https://tt.poczta-polska.pl/Sledzenie/services
Binding: HttpsBasic
Użytkownik: sledzeniepp
Hasło: PPSA
Nie sprawdzaj certyfikatów: testowałem zarówno zaznaczone jak i odznacone
Konfiguracja źródła > wskazane wcześniej utworzone połączenia
WSDL: https://tt.poczta-polska.pl/Sledzenie/services/Sledzenie?wsdl
Autentykacja Basic (ale sprawdzałem też dwa pozostałe)
Użytkownik: sledzeniepp
Hasło: PPSA
Metoda: SledzeniePortTypeClient.witaj
W parametrach jako wartość mam mapowanie do atrybutu pojedynczy wiersz tekstu w której jest na formularzu wpisana na stałe wartość ADAM
To źródło danych mam wskazane w atrybucie tabela SQL, czyli zgodnie z opisem działania powinno zwrócić wartość witaj ADAM, niestety pomimo przeróżnej konfiguracji nie udało mi się zwrócić żadnych danych.
W konfiguracji opisanej powyżej zwraca mi bład:
Nowy atrybut (3): WSDoAllReceiver: Incoming message does not contain required Security header
– Mniej szczegółów [-]
at WebCon.WorkFlow.Base.Connectors.DataSourceConnectors.WSDataSourceConnector.GetData(SearchConditions searchConditions, TagCorelatedObject tagCorelatedObject, Boolean allowEmptyValues) at WebCon.WorkFlow.Base.Connectors.Helpers.DataSourcesHelper.GetFilteredDataFromDataSource(Nullable`1 dataSourceId, Nullable`1 dataConnectionId, String rawSelect, Nullable`1 businessRuleId, Boolean allowEmptyValues, SearchConditions conditions, TagCorelatedObject tagCorelatedObject, EnvTypeGetter envTypeProvider, Boolean sortRows, String nameColumnName, String idColumnName, Boolean searchForResultColumn) at WebCon.WorkFlow.Base.Connectors.Helpers.DataSourcesHelper.GetDataFromAttribute(IWFConfiguration attribute, TagCorelatedObject tagCorelatedObject, SearchConditions conditions) at WebCon.WorkFlow.Base.BusinessLogic.ElementManagement.FormFields.SqlGrid.SqlGridDataProviderBase`2.GetModel() at WebCon.WorkFlow.Base.BusinessLogic.ElementManagement.FormFields.SqlGrid.SqlGridFormField.GetData() at WebCon.WorkFlow.Rest.WFDynamic.Logic.SqlAttributesServiceBase.GetAsynchronousSqlGridResult(SqlGridFormField sqlFormField, Int32 pageIndex) at WebCon.WorkFlow.Rest.WFDynamic.Logic.SqlAttributesService.GetAsynchronousSqlGrid(AsynchronousSqlGridParams parameters) at WebCon.WorkFlow.WebService.RestService.WFDynamic.WFDynamicService.c__DisplayClass60_0`1.b__0() at WebCon.WorkFlow.WebService.RestService.WFDynamic.WFDynamicService.Invoke[T](Func`1 func)
Bardzo będę wdzięczny za wskazanie gdzie robię błąd w konfiguracji.
Pozdrawiam.
Cześć,
Nie masz błędu w konfiguracji. tt.poczta-polska.pl nie wystawia standardowego/prostego protokołu do połączenia się. Komunikat błędu wprowadza zamieszanie gdyż sugeruje że czegoś nie wysłano a chodzi o wysłanie nadmiarowego znacznika czasu. Niestety w takim przypadku nie jest możliwe wywołanie standardowej akcji SOAP z tym WS.