
Camunda BPM - aktywacja HTTP Basic Authentication
Interfejs API REST Camundy posiada uwierzytelnienie podstawowe HTTP (HTTP Basic Authentication). Domyślnie ta autentykacja jest wyłączona, ale można ją aktywować, dodając filtr serwletu Tomcat w następujący sposób:
<!-- Http Basic Authentication Filter -->
<filter>
<filter-name>camunda-auth</filter-name>
<filter-class>
org.camunda.bpm.engine.rest.security.auth.ProcessEngineAuthenticationFilter
</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>authentication-provider</param-name>
<param-value>org.camunda.bpm.engine.rest.security.auth.impl.HttpBasicAuthenticationProvider</param-value>
</init-param>
<init-param>
<param-name>rest-url-pattern-prefix</param-name>
<param-value></param-value>
</init-param>
</filter>
Ten filtr znajduje się już w pliku 'camunda-bpm-tomcat-X.XX.X\server\apache-tomcat-X.X.XX\webapps\engine-rest\WEB-INF\web.xml', wystarczy go odkomentować w tym pliku.

Camunda BPM - zmiana domyślnej bazy H2 na MySQL
Domyślnie Camunda skonfigurowana jest by używać bazy H2. Czym jest baza H2. To lekka, napisana w Java baza która zajmuje (bez danych) tylko około 2MB na dysku. Ale ilość danych które może obsłużyć jest imponująca - maksymalnie 18446744073709551616 rekordów w tabeli. Idealnie nadaje się więc do różnego rodzaju projektów jako "domyślna baza", uruchamiana w produkcjach w wersji demo - uruchamiasz produkt a baza razem z nim. Możesz połączyć się z bazą H2 Camundy wpisując w przeglądarce http://localhost:8080/h2/h2 - użytkownik 'sa' bez hasła (pozostaw domyślne ustawienia w oknie logowania).
Camunda zaleca zmianę bazy danych na inną jeśli oprogramowanie ma być wykorzystywane produkcyjnie. Camunda ma gotowe skrypty by utworzyć strukturę bazy danych dla następujących baz danych: cockroachdb, db2, mariadb, oracle, postgres. Każdy więc odnajdzie się tutaj ze swoją ulubioną bazą danych. My pokażemy jak skonfigurować Camundę do pracy z MySQL.
Oracle Apex - przechowywanie danych w tabeli Oracle w formacie JSON
Jeśli wykorzystujemy tabele bazy danych do przechowywania ustawień aplikacji, często dochodzimy do momentu kiedy ilość pól jest niewystarczająca i musimy dodać kolejne pole. A z drugiej strony mamy parametry które nie potrzebują takiej ilości pól. Mamy też sytuacje kiedy nigdy nie wiemy ile pól będziemy potrzebować dla jakiegoś parametru. Rozwiązaniem tego formatu jest JSON. W jednym polu możemy przechować praktycznie każdą strukturę, każde ustawienia.
Tworzenie w tabeli Oracle pola typu JSON i używanie JSON w celu przechowania informacji.
Oracle nie posiada gotowego pola typu JSON. Takim formatem może być VARCHAR2 (limit znaków) CLOB lub BLOB jeśli przechowujesz dane binarne i nie chcesz niepożądanej konwersji znaków. Tabelę możesz utworzyć używając SQL Developer, możesz użyć też opcji SQL Workshop w Oracle Apex i wklejając odpowiednie komendy SQL. Jednak Oracle Apex oferuje wygodne GUI ktore przeprowadzi Cie przez cały proces. Więcej, nie musisz zawracać sobie głowy indeksami, atutomumeracją, trigerami. Zacznij więc od stworzenia tabeli. Powiedzmy że będzie mieć pola:
ID: number
APP_PARAM: varchar2(50)
PARAM_VALUE: clob
Pole 'param_value' będzie przechowywać ustawienia w formacie JSON. Póki co to pole jest po prostu polem typu CLOB - przyjmie każdą wartość. My chcielibyśmy jednak by akceptowało tylko JSON - da to nam pewność że ciąg znaków który się tam znajdzie rzeczywiście jest formatu JSON. Poniższą komendą zapewnimy sprawdzenie formatu przed umieszczeniem danych w tabeli - IS JSON contraint. Wykonujemy tę komendę w SQL Workshop => SQL Commands:
alter table app_settings
add constraint param_value_json check ( param_value is json );
Integracja aplikacji z Camunda BPM
Camunda została założona przez Jakoba Freunda i Bernda Rückera w 2008 roku jako firma konsultingowa w zakresie zarządzania procesami biznesowymi (BPM). Camunda utworzyła własną wersję projektu Activiti, Camunda BPM jako projekt open-source. Intencją było stworzenie produkty doskonalszego, lżejszego, prostszego w użyciu i bardziej wydajnego. I to się udało. Camunde możemy zakupić jako serwis "cloud" lub zainstalować on premise - we własnej infrastrukturze.
Czym jest Camuda? W artykule na naszym blogu możesz przeczytać (i zacznij od tego) czym jest BPMN i jaka jest rola platform BPM. Zanim zaczniesz testy z Camundą, bardzo ważne jest zrozumienie jaką rolę pełni platforma BPM, w tym Camunda. Funkcję takich plaftorm możemy porównać do poczty lub firm kurierskich. Dostarczają oni wiadomości od adresatów do odbiorców.
Poprawnie zaimplementowana platforma najczęściej nie wykonuje zadań w połączonych z nią systemach, nie zarządza ani nie przesyła danych. Jej rolą jest tylko poinformowanie uczestników procesu że należy wykonać jakąś czynność i odebranie informacji że czynność ta została wykonana. Następnie przesłanie informacji dalej - do następnego uczestnika procesu. Camunda organizuje pracę, za jej pomocą można analizować proces (wydajność, czas, koszt...) itd.
Na stronie Camunda możemy znaleźć opis "Nasza platforma automatyzacji procesów umożliwia dziesiątkom tysięcy programistów projektowanie, automatyzację i ulepszanie procesów oraz zapewnianie lepszej obsługi klientów, szybsze realizowanie projektów i zwiększanie sprawności biznesowej". Same jednak reguły BPM niczego nie automatyzują. Ale ponieważ organizują przepływ informacji, a prowadzenie biznesu to w dużej części przekazywanie właściwych informacji/decyzji do właściwych ośrodków, sygnalizują właściwym systemom/osobom konieczność wykonania właściwej operacji.