Procesy ad hoc

Proces pobierający rekordy w systemie i wykonujący względem nich określone czynności wymaga algorytmu służącego do wyboru rekordów do przetwarzania i kolejnego algorytmu do przetwarzania rekordów. Ten typ procesu jest określany jako proces ad hoc. Jako szablonu można użyć ogólnego szablonu opartego na wtyczkach (F1-PDBG) kontrolki zadania.

Podstawowe procesy wdrażają standardowe funkcje procesów w tle, w tym logikę równoległych procesów w tle czy możliwość tworzenia pozycji Do wykonania w odniesieniu do błędów. Pozwala to wykorzystać we wdrożeniu wbudowaną obsługę i udostępnić wtyczki uwzględniające logikę unikatową dla specyficznego wykorzystania.

Więcej informacji na temat funkcjonalności procesów ad hoc można znaleźć w poniższych sekcjach. Należy zauważyć, że w przypadku procesów ekstrakcji niektóre funkcjonalności są takie same. Dodatkowe informacje o procesach ekstrakcji zawiera sekcja Przetwarzanie rekordów ekstrakcji..

Algorytm wyboru rekordów

Pierwszym istotnym algorytmem do zaprojektowania w przypadku wdrażania procesu zadania opartego na wtyczkach jest algorytm wyboru rekordów, dołączany na stronie kontrolki zadania. Ten typ algorytmu musi definiować pierwszy parametr w instrukcji SQL. Zadanie uzyska bezpośredni dostęp do wartości parametru SQL w metadanych (zamiast wywoływać algorytm). Wszystkie pozostałe parametry są dostępne na potrzeby algorytmu do wykorzystania we własnej logice.

Ponadto w przypadku wywołania algorytmu musi on zwracać strategię do zastosowania (Wybór instrukcji SQL na poziomie wątku lub Wybór instrukcji SQL na poziomie zadania). Więcej informacji na temat obu strategii i ich zastosowania można znaleźć w sekcji Równoległe procesy w tle. W przypadku wyboru strategii Wybór instrukcji SQL na poziomie wątku algorytm powinien zwracać nazwę klucza głównego w parametrze "Pole klucza". Ponadto instrukcja SQL powinna zawierać klauzulę BETWEEN, uwzględniającą zmienne powiązane dla dolnego i górnego ID w zakresach. Składnię zmiennej powiązanej opisano poniżej.

Jeśli instrukcja SQL zawiera zmienne określane podczas wykonywania, musi używać parametrów wiązanych. Instrukcja SQL odwołuje się do parametrów wiązanych przy użyciu znaku dwukropka i nazwy parametru (np. :parametr). Niektóre zmienne udostępnione w systemie są wypełniane przez zadanie podczas wykonywania. Zawierają one prefiks f1_​.

W systemie są obsługiwane następujące predefiniowane parametry wiązane:

  • :f1_​lowID i :f1_​highID​ - tych parametrów należy używać w klauzuli BETWEEN na potrzeby strategii Wybór instrukcji SQL na poziomie wątku. Zadanie wstawi odpowiedni zakres ID zgodnie z wymaganiami.

  • :f1_​batchCode i :f1_​batchNumber​ - wspólne atrybuty kontrolki zadania, do których odwołuje się rekord na potrzeby wyboru. Należy zauważyć, że numer uruchomienia zadania jest ustawiany w zależności od tego, czy zadanie jest ponownym uruchomieniem.

  • :f1_​businessDate​ - zadanie wypełni datę roboczą zadania wejściowego w przypadku wartości innej niż data bieżąca.

Uwaga: Jako prefiks na potrzeby zmiennych wiązania obsługiwane są prefiksy "f1." i "f1_​". Jednakże prefiks "f1." spowoduje błąd, jeżeli ustawienie właściwości zabezpieczeń SQL jest włączone. Dlatego zalecana jest składnia z podkreślnikiem. Składnia z kropką pozostaje na potrzeby kompatybilności wstecznej.

W przypadku wszystkich pozostałych niestandardowych parametrów algorytm wyboru rekordów może zwrócić jeden lub większą liczbę zbiorów nazwa pola/nazwa zmiennej/wartość, w których nazwa zmiennej jest dopasowana do zmiennej powiązanej w instrukcji SQL. Nazwa pola zawiera informacje o długości, dzięki czemu logika wiązania SQL może poprawnie zastąpić wartości. Nazwa zmiennej nie może zaczynać się od prefiksu f1. Zadanie użyje wartości zwróconej przez algorytm do ustawienia parametru wiązanego w instrukcji SQL. Ponadto logika wiąże wszystkie zmienne w postaci ciągów, więc w przypadku zmiennych będących datami instrukcja SQL musi zawierać funkcję "TO_DATE".

Miejsce dołączania odbiera listę parametrów ad hoc zadania w postaci par nazwa/wartość. Jeśli lista zawiera parametry, których wartości mają być używane do wyboru rekordów, algorytmu można użyć do identyfikowania odpowiedniego parametru zadania przekazywanego jako dane wejściowe i do wypełnienia nazwy pola oraz zwrócenia odpowiedniej zmiennej powiązanej.

W produkcie udostępniono podstawowy typ algorytmu dla tego miejsca dołączania, definiujący parametr instrukcji SQL. Uwzględniono także parametry dotyczące strategii i nazwy pola klucza. Ten typ algorytmu może być używany w dowolnym niestandardowym procesie zadania, w którym instrukcja SQL nie opiera się na szczególnych zmiennych powiązanych wymagających wyznaczenia. Wystarczy utworzyć algorytm o tym typie i podać odpowiednią instrukcję SQL. Więcej informacji można znaleźć w typie algorytmu "Wybór rekordów przez predefiniowane zapytanie" (F1-PDB-SR).

Algorytm przetwarzania rekordów

Kolejnym istotnym algorytmem do zaprojektowania w przypadku wdrażania procesu zadania opartego na wtyczkach jest algorytm przetwarzania rekordów, dołączany na stronie kontrolki zadania. Algorytm ten jest wywoływany w odniesieniu do każdego rekordu wybranego do przetwarzania. Otrzymuje on wszystkie informacje wybrane we wtyczce wyboru rekordów.

W przypadku procesu zadania przetwarzania ad hoc algorytmy dołączane w tym miejscu są odpowiedzialne za wykonanie pracy dotyczącej każdego rekordu na podstawie oczekiwanej logiki.

W przypadku procesu zadania ekstrakcji algorytmy dołączone w tym miejscu odpowiadają za zwracanie danych, które mają zostać zapisane w pliku. Wiele parametrów tego miejsca dołączania ma zastosowanie tylko w procesach ekstrakcji. Więcej informacji o funkcjonalności specyficznej dla procesów ekstrakcji zawiera sekcja Przetwarzanie rekordów ekstrakcji..

Należy zauważyć, że do algorytmów w tym miejscu dołączania zostaną przekazane dwie wartości logiczne, isFirst i isLast, wskazujące czy bieżąca jednostka robocza jest pierwszą i/lub ostatnią w danym wątku. Umożliwia to wtyczce wykonanie w razie potrzeby dodatkowej pracy. Parametr isFirst jest dostępny dla obu typów procesów zadań, ad hoc i ekstrakcji. Parametr isLast ma zastosowanie tylko do zadań ekstrakcji pliku. W przypadku procesów zadań ad hoc będzie miał zawsze wartość false. Ekstrakcja będzie zawsze wykonywana w ramach pojedynczej transakcji bazy danych. W pojedynczym uruchomieniu transakcji wszelkie błędy powodują przerwanie uruchomienia i jego ponowne uruchomienie po ponownym przesłaniu. Ma to na celu zapobieganie zapisywaniu częściowych plików z niewłaściwym ustawieniem elementu isLast.

Konfigurowanie nowego procesu

W poniższych punktach podsumowano kroki konieczne do wdrożenia nowego procesu w tle działającego na rekordach w systemie przy użyciu wtyczek dotyczących określonej funkcjonalności:

  • Należy zweryfikować instrukcję SQL do wykonania przez proces w tle. Wszystkie dane wybrane w instrukcji SQL będą dostępne do przekazania do wtyczki przetwarzającej rekordy. Jeśli wydajność procesu w tle jest istotna, podczas projektowania instrukcji SQL należy skonsultować się z administratorem bazy danych.

    • Jeśli instrukcja SQL nie wymaga zastąpienia żadnych niestandardowych zmiennych podczas uruchomienia, należy utworzyć algorytm o podstawowym typie algorytmu F1-PDB-SR i skonfigurować instrukcję SQL. Ponadto należy skonfigurować strategię i nazwę klucza głównego (na potrzeby strategii Wybór instrukcji SQL na poziomie wątku).

    • Jeśli instrukcja SQL wymaga niestandardowych zmiennych, należy zaprojektować nowy skrypt dołączony w taki sposób, aby wypełnić nazwy i wartości zmiennych przy użyciu obiektu algorytmu Kontrolka zadania - wybór rekordów. Oprócz zdefiniowania zmiennych, algorytm musi również określać strategię i nazwę klucza głównego (na potrzeby strategii Wybór instrukcji SQL na poziomie wątku). Należy zdefiniować typ algorytmu dla nowo utworzonego skryptu. Pierwszym parametrem typu algorytmu musi być instrukcja SQL, jak zilustrowano w podstawowym typie algorytmu. W razie potrzeby w tym typie algorytmu są dostępne do użycia także inne parametry. Następnie należy zdefiniować algorytm i wypełnić instrukcję SQL zgodnie z potrzebami (przy użyciu niestandardowych zmiennych).

  • Należy zaprojektować logikę wymaganą do przetworzenia każdego rekordu. Jeśli w ramach produktu brzegowego nie jest dostarczona odpowiednia wtyczka, należy utworzyć skrypt wtyczki, w którym obiektem algorytmu jestKontrolka zadania - przetwarzanie rekordu. Wtyczka otrzyma wszystkie informacje wybrane w instrukcji SQL zdefiniowanej we wtyczce wyboru rekordów. W przypadku procesu ad hoc algorytm powinien wykonać wymagane przetwarzanie na podstawie przypadku użycia biznesowego. Należy zauważyć, że proces w tle jest odpowiedzialny za potwierdzanie rekordów.

    W obu przypadkach, jeśli wymagany jest nowy skrypt przetwarzania, należy zdefiniować typ algorytmu i algorytm na potrzeby nowo tworzonego skryptu.

  • Należy utworzyć kontrolkę zadania przez powielenie szablonu podstawowego F1-PDBG. Następnie należy dołączyć algorytmy utworzone powyżej i skonfigurować parametry zgodnie z potrzebami. W razie potrzeby można skonfigurować niestandardowe parametry ad hoc w kontrolce zadania. Zarówno podstawowe, jak i niestandardowe wartości parametrów są dostępne w algorytmach wtyczek wyboru rekordów i przetwarzania rekordów.