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.
Omni-channel blabble
There has been a lot of talk about ‘omni-channel’ in my environment lately. Yes, the slogan is old but you know — there will always be someone who is a bit late.
Traditionally, there is usually nothing behind this saying. Just a chatter of various levels of directors, managers and owners of companies (they’re still computing in Excel). But if they say “my company is omni-channel” one, They’ll be a cool dudes … and so will their company.
First of all, a certain level of technological advancement is absolutely required in 2021. It is simply the ABC of the functions in systems that allow you to run your business — not any ‘omni- channel’.
Presentation of the offer on the Internet, picking up an order there when you are selling in the store at the same time, returns in a stationary store when a customer has bought online is only about customers using different interfaces, not ‘channels’.
Do czego potrzebny mi BPM?
Każda organizacja ma jakiś system. Nie, nie chodzi o „system informatyczny” ale model który opisuje przepływ aktywności, informacji i procesów decyzyjnych. Sekwencja kroków która wykonana konsekwentnie w efekcie przynosi wynik – tak w biznesie jak i w życiu. Uzyskany rezultat zależy od systemu.
Jeśli system nie jest udokumentowany, nie oznacza to że go nie ma – funkcjonuje cały czas i dostarcza rezultat. A jeśli system nie jest zdrowy, nie daje zdrowych, pożądanych rezultatów.
Biznes zazwyczaj jest kolekcją systemów. Im większa firma, tym więcej podzbiorów. Z kolei te podzbiory mogą mieć też swoje kolekcje systemów.