Definicja działania może być użyta do uruchomienia aplikacji działającej w tle jako zadanie przetwarzania. Aby to zrobić, parametry muszą być opisane w obiekcie deweloperskim aplikacji działającej w tle. Nie wszystkie aplikacje spełniają te wymagania.
Niniejszy dokument opisuje, w jaki sposób można wywołać aplikację działającą w tle za pomocą aplikacji Wywołaj aplikacje w tle w workflow, nawet jeśli nie wszystkie parametry są do tego opisane. Warunkiem wstępnym wywołania jest to, że język skryptowy używany przez definicję działania obsługuje typy danych aplikacji działającej w tle.
Więcej informacji na temat sposobu wywoływania aplikacji w definicjach działań można znaleźć w dokumentacji Definicje działań.
Definicje terminów
Definicja działania
Definicja działania jest szablonem dla działań generowanych na jej podstawie. Jeśli definicja działania jest aktywna, silnik workflow generuje nowe działanie, gdy wystąpi zarejestrowane zdarzenie, pod warunkiem spełnienia warunku przejścia. Definicje działań są niezależne od bazy danych OLTP i systemu, w którym zostały zarejestrowane, ponieważ nie zawierają ani danych specyficznych dla systemu, ani danych specyficznych dla OLTP. Definicje działań są zapisywane w bazie danych repozytorium.
Aplikacja w tle
Aplikacja działająca w tle to aplikacja, która jest wykonywana bez interakcji z użytkownikiem. Może zostać otwarta przez zadanie przetwarzania, przez wywołanie CORBA lub przez inną aplikację.
Przetwarzanie zlecenia
Zlecenie przetwarzania zawiera informacje niezbędne do opóźnionego wykonania aplikacji działającej w tle przez kolejkę przetwarzania.
Opis aplikacji
Aplikację działającą w tle Wywołaj aplikacje w tle w workflow (com.cisag.app.general.log.Activity2BatchJob) definiuje się jako aplikację do przetwarzania w definicji działania na zakładce Aplikacja. Definicja działania musi mieć wpis Zlecenie przetwarzania wybrane jako opracowujący użytkownik. Należy zdefiniować parametry aplikacji działającej w tle.
Ponadto należy wprowadzić parametry wywoływanej aplikacji działającej w tle i ich wartości w deklaracjach definicji działań jako HashMap. Więcej informacji na ten temat można znaleźć w opisach parametrów.
Należy również zdefiniować kolejkę przetwarzania za pomocą setJobQueue i użytkownika za pomocą setJobUser w deklaracjach, jeśli nie zostały one zdefiniowane w aplikacji Konfiguracja.
setJobQueue(„JOBQUEUE01”);
setJobUser(„MAX”);
Aplikacja działająca w tle ma następujące parametry:
- Działanie – ten parametr służy do wywoływania określonej akcji aplikacji działającej w tle. Akcje są identyfikowane przez numer. Aby znaleźć prawidłową akcję, można najpierw uruchomić aplikację w tle, a następnie odczytać akcję w polu Akcja na zakładce Zlecenie w oknie dialogowym właściwości zlecenia przetwarzania. Jeśli wartość wynosi zero (0), można pominąć akcję. W przeciwnym razie należy wprowadzić wyświetlaną wartość jako parametr. Należy upewnić się, że uruchamiana jest aplikacja działająca w tle w dokładnie tym samym kontekście, w jakim będzie ona później wykonywana przez definicję działania. Na przykład generowanie faktury wykorzystuje różne akcje, jeśli jest wywoływane dla zamówienia sprzedaży i zlecenia dostawy. Jeśli aplikacja działająca w tle ma kilka parametrów tego samego typu danych, można wprowadzić różne wartości, aby ułatwić ich późniejsze rozróżnienie w oknie dialogowym właściwości.
- DetailGuid – jeśli aplikacja działająca w tle tworzy zlecenie w odniesieniu do elementu zlecenia, należy wprowadzić w tym parametrze identyfikator GUID elementu zlecenia, który ma zostać przetworzony. Tego parametru należy zawsze używać razem z parametrem ObjectGuid. W przypadku zdarzenia typu Business Entity, identyfikator GUID pozycji zlecenia znajduje się w parametrze zdarzenia object (object:guid).
- ObjectGuid – jeśli aplikacja działająca w tle tworzy zlecenie w odniesieniu do zlecenia, w tym parametrze należy wprowadzić identyfikator GUID zlecenia, które ma zostać przetworzone. W przypadku zdarzenia typu Business Entity identyfikator GUID zlecenia znajduje się w parametrze zdarzenia object (object:guid). Jeśli zdarzenie zostało wywołane przez zmianę pozycji zamówienia, identyfikator GUID zlecenia znajduje się w parametrze zdarzenia entity (parameters.entity:guid).
- ObjectOQL – jeśli aplikacją działającą w tle jest tworzenie zlecenia z odniesieniem do więcej niż jednego zamówienia, można wprowadzić instrukcję OQL w tym parametrze, która zawiera identyfikatory GUID zamówień, które mają być przetwarzane jako wartości zwracane, takie jak zlecenia dostawy i prowizje w tym przykładzie.
W przypadku wybrania dwóch identyfikatorów GUID w instrukcji SELECT, pierwszy identyfikator GUID jest interpretowany jako identyfikator GUID zamówienia, a drugi identyfikator GUID jako identyfikator GUID pozycji zamówienia.
- Parametry – w tym parametrze użytkownik przekazuje aplikacji działającej w tle listę parametrów i ich wartości. Parametry dla obiektu deweloperskiego aplikacji działającej w tle można znaleźć w aplikacji Obiekty deweloperskie w dolnej zakładce Akcja karty Edytor. Jeśli parametry nie są opisane w obiekcie deweloperskim lub jeśli wartości, które mają zostać przeniesione, nie są oczywiste, np. dla parametru Proces tworzenia zamówienia, można najpierw uruchomić aplikację w tle, a następnie wywołać okno dialogowe właściwości przetwarzanego zamówienia. Tam można wyświetlić przeniesioną wartość w zakładce Zlecenie pod nagłówkiem Parametry. Parametry i ich wartości wprowadza się w deklaracjach definicji działań jako HashMap, jak pokazuje ten przykład w języku skryptowym systemu:
function create()
{
params[„Process”]:=9;
params[„SummaryLevel”]:=1;
params[„Date”]:=today();
}
Należy upewnić się, że lista parametrów jest zadeklarowana poza funkcją create(), aby mogła być używana w zakładce Aplikacja.
W przypadku aplikacji działających w tle, których parametry nie są zadeklarowane w obiekcie deweloperskim, można również znaleźć używane parametry w oknie dialogowym właściwości zlecenia przetwarzania. Ponieważ aplikacja działająca w tle jest zawsze wykonywana z ustawieniami wyjściowymi użytkownika, w imieniu którego uruchomiono zlecenie przetwarzania, nie należy używać żadnych parametrów wymienionych w sekcji OutputOptions. Podczas tworzenia zadania należy również zignorować parametry techniczne, takie jak BatchRun, Orders i ParallelComputing. Jeśli zarówno Date, jak i DocumentDate są określone dla utworzenia zadania w oknie dialogowym właściwości, należy zignorować DocumentDate i określić tylko Date.
- ProcessParameters – te parametry kontrolują, która aplikacja w tle jest wywoływana. Należy wprowadzić nazwę techniczną aplikacji jako ciąg znaków bez spacji, jak w poniższym przykładzie: