Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Toumash/e965871d0fc633ca9c2a3907f14f15f7 to your computer and use it in GitHub Desktop.
Save Toumash/e965871d0fc633ca9c2a3907f14f15f7 to your computer and use it in GitHub Desktop.
Webcon Tooling for developerrs

1. Wstęp

Webcon to ogromne narzędzie klasy BPML do standaryzacji procesów biznesowych w firmach od małych zakładów aż do klasy Enterprise. Z narzędziem na codzień pracuje cała masa ludzi tworząc do niego różnego rodzaju dodatki, integracje. Jeśli kiedykolwiek pisałeś większą integrację do systemu webcon zapewne wiesz z jakimi problemami stykają się developerzy, którzy do tego systemu tworzą integracje na codzień . Wraz z wycofaniem wsparcia technologii komunikacji i integracji Webcon BPS a systemami zewnętrznymi o nazwie "SOAP", komunikacja z systemem webcon przestała podlegać pod standardy wyznaczane przez schematy XML. Aktualnie zastąpione zostały one standardem OpenAPI - który dość dobrze opisuje system, ale pod względem transportu, natomiast w systemie brak jakiejkolwiek wziamnki o logice importowania danych do różnych typów pól. Szczególny nacisk kładziemy na nowe, nieopisane typy, przez które integratory zwyczajnie nie działają - pola wybory (ATT_ChooseXX) o źródle danych słownik na podstawie innego procesu. Tutejsza sytuacja wygląda jak bug, natomiast podobnych "quirków" jest więcej. Przy tworzeniu integracji występuje także szereg potrzeb, których w prosty sposób developerzy nie są wstanie zaspokoić narzędziem dostarczanym przez system Webcon np. szybkie i sprawne wyszukiwanie atrybutów, czy ścieżek przejścia po Guidzie. Pisząc tego RFC jestem świadom tego, że aplikację typu Fat Client ciężko jest rozwijać i utrzymywać (co Webcon już potwierdził, obiecując w przyszłości narzędzie klasy Thin Client), dlatego ten RFC to próba znalezienia pola do ulepszenia obecnego toolingu.

2. Propozycja

To co proponuję to aplikacja desktop/web działająca na api/sql w trybie tylko do odczytu (readonly), której głównym celem byłoby:

  • przyśpieszenie wyszukiwania encji w systemie (ścieżki przejścia, formularze, obiegi, procesy)

  • sprawniejsze generowanie konfiguracji do zewnętrznych narzędzi

  • tworzenie swego rodzaju bazy wiedzy komunikacji z systemem webcon

  • analizatory stworzonych konfiguracji - można testowac swoje workflowy na typowe problemy z dostępem do danych

    • GDPR (wyszukiwanie informacji wrażliwych niewyłapanych przez webcona)
    • Błędne pętle systemowe
    • Wykorzystanie JavaScript tam, gdzie można tworzyć reguły biznesowe
    • Integracje z systemem trzecim nie zamienione w szablon

3. Opis funkcjonalności

3.1 Wyszukiwanie

System wyszukiwania w narzędzi developerskm do zrobienia jest od nowa, gdyż w obecnym kliencie jest bardzo ograniczony i pozwala na wyszukiwanie i wyświetlenie standardowej konfiguracji kroku, w którym znajduje się element o podanym WFDID (Workflow Id)

3.2 Generowanie konfiguracji

Webcon przy scenariuszach integracji - https://developer.webcon.com/docs/advanced-integration-scenarios/ - skupia się głównie na standardowych rozwiązaniach integracyjnych tj. scenariuszach, w których to system Webcon przekazuje informację do systemów trzecich. Na ten problem isnieje rozwiązanie idealne - tworzenie Akcji SDK, czyli pluginów, które można konfigurować za pomocą drag and drop na polach konfiguracji. Pola te wypełniane są referencjami do obiektów systemu, dzięki czemu developer nie musi pamiętać o aktualizacji ich wartości. W innych scenariuszach integracyjnych, w których to dane lądują finalnie do systemu WBC, standardowym rozwiązaniem staje się korzystanie z REST API. W tym przypadku tracimy wszelkie benefity korzystania z Webcon Designer Studio do tworzenia integracji. W tym właśnie miejscu jest luka w funkcjonalnościach i możemy ją wspólnie (my, developerzy) rozwiązać tworząć proste rozwiązania, które uproszczą proces generowania konfiguracji do narzędzi zewnętrznych.

3.3 Baza wiedzy

Nie mając pełnej wizji tego rozwiązania, sugeruję zapoznać się z systemem wymiany wiedzy w narzędziu Postman. Każde zapytanie, z którym podzielimy się z zespołem, czy też z globalną społecznością, możemy komentować. W przypadku webcona nie ma takiej możliwości, więc może miejsce w którym dałoby się komentować funkcjonalności byłoby dobrym miejscem do zadawania pytań. Aktualnie takim miejscem nieoficjalnie jest https://serverfault.com/questions/tagged/webcon, oficjalnie https://community.webcon.com/knowledge-base.

4. Uwagi końcowe

Zachęcam do dyskusji, dlatego że narzędzie staje się globalnie coraz popularniejsze i tworzenie zaawansowanego toolingu zwykle zaczyna się od mocnego community :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment