Aneks techniczny do przepływu danych. 

Podczas realizacji Przepływu Danych, jak np. podczas podpisu, dostępny jest bogaty kontekst w postaci klas zmiennych oraz lokalnych zmiennych on-line. Kontekst ten zależy od typu Przepływu Danych oraz procesu w toku (Oryginalny Przepływ Danych, podpis, Przepływ Danych następujący po pierwszym Przepływie Danych). Aneks ten opisuje algorytm stosowany przez oprogramowanie Workflow/Przepływ Danych i określa zmienne stosowane na tym etapie.

Należy tutaj pamiętać, że asystent wzorów dostarcza listę zmiennych wynikających z kontekstu w celu konstruowania wzorów w możliwie najlepszy sposób.

Algorytm główny obiekt Przepływu Danych

Przepływ Danych typu obiektowego dzieli na szereg następujących etapów :

Inicjalizacja zmiennych środowiska

Etap ten składa się z przypisania zmiennych globalnych. W szczególności jeżeli zmienna USRWRK jest dostępna, co odpowiada bieżącemu użytkownikowi oryginalnego przepływu danych.

Przetwarzanie zasady przypisania

Na tym etapie wzory podane w zasadzie zostają poddane ocenie i są magazynowane w wymiarowej zmiennej o nazwie VALEXP. Służy ona głównie udostępnieniu zagregowanych wartości, które nie są ściśle stosowane jako kryterium dla definicji odbiorców, lecz po prostu stosowane na późnym etapie Przepływu Danych np. w celu podjęcia decyzji o wysłaniu komunikatu jako funkcji wartości minimalnych, maksymalnych czy średnich dla danego elementu).

Liczba obliczonych wartości zostaje zidentyfikowana przez zmienną NBCOL.

Następnie prowadzone jest przeszukiwanie obliczonych wartości, wiersza zasady która odpowiada w celu przypisania tabeli zmiennych USER (indeksowanych od 1 do maksymalnie 10).

Przetwarzanie Przepływu Danych

Etap ten dzieli się na kilka podetapów. Po pierwsze, określić pewną liczbę wartości :

  • należy inicjalizować wartość CTX, która zawiera bieżący kontekst, zgodnie z parametryzowanymi wzorami. Kontekst ten jest magazynowany w historii Przepływu Danych, po czym zostanie zrekonstruowany jeżeli wywołane zostanie późniejsze zdarzenie Przepływu Danych po pierwszym odbiorze.
  • Należy przypisać zmienne S_USER, S_CLEOBJ, S_ABREV, które definiują użytkownika na początku Przepływu Danych, klucz dla obiektu lub grupy wierszy oraz dany obiekt.
  • Następnie obliczony zostaje S_NBRUSER, który daje liczbę podpisów faktycznie zdefiniowanych w zasadzie.

Następnie zweryfikować warunki wykonania w nagłówku Przepływu Danych. Jeżeli warunki te zostały spełnione, przeprowadzić następujące operacje:

  • Utworzenie kontekstu zwrotnego (ikona).
  • Przypisanie numeru chrono każdemu przetwarzaniu zasady. W wypadku ręcznego Przepływu Danych przypisanie odbywa się za każdym razem, gdy zmieniona zostanie wartość klucza w tabeli głównej (pod warunkiem braku pola regrupowania) lub wartość grupowania (o ile istnieje).
  • Przypisanie liczby chrono do każdego wiersza (będzie kilka na grupę, jeżeli wystąpi grupowanie).
  • Wykonanie czynności start Przepływu Danych (jeżeli istnieje i warunki zostaną spełnione).
  • W wypadku konieczności wysłania komunikatu lub jego przyjęcia, przeszukać pod względem delegowanych użytkowników.
  • W wypadku konieczności wysłania komunikatu, przetwarzanie komunikatu.
  • W wypadku konieczności odbioru, przetworzyć odbiór.
  • Wykonanie czynności typu zakończ Przepływ Danych (jeżeli istnieje i warunki wykonania zostały zweryfikowane).

Przetwarzanie komunikatu

Etap ten jest realizowany przy następujących operacjach :

  • Utworzenie tekstu przez zestawienie tekstu zasadniczego oraz tekstu dla szczegółów wierszy (o ile istnieją).
  • Utworzenie obiektu dla komunikatu.
  • Wyświetl okno modyfikacji komunikatu (jeżeli komunikat może być modyfikowany oraz jeżeli istnieje interaktywne wywołanie).
  • Zaksięgowanie transakcji w odpowiednich tabelach : AWRKHISMES zawiera treść komunikatu, AWRKHISJOI załączniki oraz AWRKHISDES odbiorców.
  • Wysłanie komunikatu jeżeli opcja wyślij pogrupowane nie została aktywowana. Jeżeli nie, to opcja wyślij pogrupowane zostanie wykonana na zakończenie procesu Przepływu Danych.

Przetwarzanie odbioru

Etap ten polega na aktualizacji wiersza dla odbioru w tabeli AWRKHISSUI. Odpowiednia transakcja zostaje odseparowana od transakcji poprzednich (ale zostanie wykonana tylko wtedy, gdy poprzednie transakcje zostały prawidłowo przetworzone).

Algorytm główny podpis Przepływu Danych

Przepływ danych typu podpisu zostaje wywołany po czynności podpisu (ręcznie ze stacji roboczej lub automatycznie poprzez inne zdarzenie Przepływu Danych lub powiadomienie przez kliknięcie na link).

Proces składa się z następujących etapów :

Inicjalizacja odziedziczonych zmiennych

Na tym etapie odziedziczone zmienne dla kontekstu podpisu zostają przypisane. Obejmuje to następujące zmienne

NUMORG

numer chrono oryginału.

USRORG

odbiorca oryginalnego zdarzenia.

NUMSIG

chrono w którym został wywołany proces podpisu.

USRDES

odbiorca chrono, w którym proces podpisu został wywołany.

USRWRK

użytkownik który go podpisał.

MAIWRK

adres e-mail dla sygnatariusza, gdy podpis jest wykonany przy użyciu zewnętrznego linku http.

LEVSIG

Poziom podpisywania (oryginalne zdarzenie otrzymuje numer 0, zdarzenia następujące po nim otrzymują kolejne numery od 1).

RETORG

Klucz dla obiektu, w którym wywołany został oryginalny Przepływ Danych.

CONTXT

Odniesienie do ikony zwrotu.

CLEOBJ

Podpisany numer chrono.

CTX(1..15)

Zmienne dla kontekstu

S_USER

Odbiorca uruchomił oryginalny Przepływ Danych.

S_CLEOBJ

Klucz wyzwalający (obiekt lub przegrupowywanie).

S_ABREV

Skrót od oryginalnego przepływu informacji.

S_NBRUSR

Liczba użytkowników zdefiniowana w oryginalnej zasadzie Przepływu Danych.

Algorytm dla procesu podpisywania

etap podpisywania dla zdarzenia składa się z następujących procesów :

  • inicjalizacja kontekstu podpisu.
  • Weryfikacja istnienia chrono i blokady
  • Ocena (pod kątem warunków) listy uprawnionych odpowiedzi.
  • Wczytanie jednej spośród możliwych odpowiedzi.
  • Zablokowanie rekordu, który wygenerował pierwszy odbiór.
  • Załadowanie klas zmiennych [F]
  • Aktualizacja zmiennej RESULT/WYNIK jako funkcji tej odpowiedzi.
  • Modyfikacja tej zmiennej przez wczytanie (jeżeli odpowiedź może zostać zmodyfikowana)

Następnie realizowana jest transakcja podpisu w jej właściwym znaczeniu :

  • Wykonanie czynności podpisu, o ile dotyczy.
  • Aktualizacja pola odpowiadającego odpowiedzi (o ile istnieje)
  • Proces Przepływu Danych związany z podpisem (o ile istnieje)
  • Aktualizacja wiersza odbioru (flaga podpisu, odpowiedni sygnatariusz).

Inicjalizacja kontekstu podpisu.

Jeżeli użytkownik podpisze odbiór, to dostępne będą następujące zmienne w kontekście:

CHRONO

chrono dla zdarzenia, w którym wykonano podpis.

USRDES

kod użytkownika dla odbiorcy.

USRSIG

Kod użytkownika dla sygnatariusza.

USRMAIL

adres e-mail dla sygnatariusza, gdy podpis jest wykonany przy użyciu zewnętrznego linku http

NUMORG

Chrono dla oryginalnego zdarzenia, w którym wykonano pierwszy podpis.

USRORG

Odbiorca dla tego zdarzenia.

LEVSIG

Poziom podpisywania (oryginalne zdarzenie otrzymuje numer 0, zdarzenia następujące po nim otrzymują kolejne numery od 1).

USRTOP

Odbiorca główny (pozostali są delegatami).

NUMGRP

Grupa zdarzenia do podpisania.

CTX(1..15)

Zmienne dla kontekstu

S_USER

Odbiorca uruchomił oryginalny Przepływ Danych.

S_CLEOBJ

Klucz wyzwalający (obiekt lub przegrupowywanie).

S_ABREV

Skrót dla oryginalnego Przepływu Danych.

S_NBRUSR

Liczba użytkowników zdefiniowana w oryginalnej zasadzie Przepływu Danych.

Zmienne tabeli REPCHR służą do sprawdzenia, czy inni odbiorcy w tym samym zdarzeniu już złożyli podpisy. Grupy zostają policzone (grupa równa się wiersz w tabeli sygnatariuszy po podpisaniu przez delegata, podpisaniu zdarzenia i nie może zostać podpisane po raz drugi przez innego członka tej samej grupy).

Sytuacja przedstawia się wtedy następująco :

REPCHR(0) = liczba odpowiedzi pozostałych do przeprowadzenia : jeżeli na przykład istnieją 4 wiersze sygnatariuszy w opisie zdarzenia i tylko jeden został podpisany, to wartość ta wynosi 3.

REPCHR(NO), jeżeli NO może być wartością mieszczącą się w przedziale od 1 do 10, daje liczbę sygnatariuszy, którzy odpowiedzieli, a odpowiedź została umieszczona w wierszu numer NO w tabeli odpowiedzi.

Zmienne te są przede wszystkim stosowane do warunkowania dalszych etapów, poprzez fakt, że ostatni podpis oczekuje na odpowiedź lub na działanie w logice większości dla podpisu.