Operator COMPUTING umożliwia wykonywanie operacji obliczeniowych i przekształceń danych przy użyciu algorytmów napisanych w języku C#, działających na bitach magistrali danych.
Operator COMPUTING zapewnia elastyczność przekształcania danych i stanowi narzędzie do realizacji niestandardowej logiki biznesowej w procesach systemu GRAVITY.
W ramach jednego operatora możliwe jest zdefiniowanie wielu operacji przetwarzania. Są one wykonywane sekwencyjnie – kolejne operacje mogą wykorzystywać wyniki wcześniejszych kroków przetwarzania w ramach tego samego rekordu.
Operator nie tworzy nowych kolumn – wynik działania algorytmu musi zostać przypisany do istniejącego bitu magistrali. Każda operacja:
- wykonuje zdefiniowany algorytm,
- zapisuje wynik do wskazanego wcześniej bitu magistrali.
Przetwarzanie odbywa się dla każdego rekordu magistrali wejściowej. Użytkownik definiuje dowolną liczbę operacji, z których każda na już zmodyfikowanych bitach magistrali.
Przykład projektu GRAVITY z użyciem operatora COMPUTING
KONFIGURACJA OPERATORA
Konfiguracja operatora polega na wskazaniu kolumny, do której zostanie przypisana wartość zwrócona przez algorytm.
Algorytm musi być napisany w języku C#. Jest on ciałem funkcji, która musi zwrócić wartość o typie danych identycznym z typem wybranej kolumny.
Np. dla kolumny o nazwie invoice_number o typie Text algorytm wpisywany w operatorze będzie musiał zwrócić wartość typu string czyli będzie ciałem funkcji,
private string func_23()więc algorytm musi zwracać wartość string:
return "invoiceNumber";Domyślnie w algorytmie dostępne są określone deklaracje using:
"System",
"System.Xml",
"System.Xml.Linq",
"System.Data",
"System.Linq",
"System.Collections",
"System.Collections.Generic",
"System.Windows",
"System.Windows.Forms",
"System.Data.Common",
"System.Text",
"Newtonsoft.Json.Linq",
"MongoDB.Bson"Aby dodać przetwarzanie dla wybranego bitu, kliknij pusty rekord na liście i w polu Column wybierz kolumnę, dla której zdefiniujesz algorytm zwracający nową wartość.
W algorytmie możesz używać danych z bitów magistrali (aktualnie przetwarzany rekord), agregacji (cała magistrala), parametrów projektu oraz zmiennych globalnych wybierając odpowiednią funkcję lub nazwę parametru.
Dostępne funkcje:
- GET_VALUE → wartość wskazanej kolumny magistrali,
- GET_AGGR → suma wartości wskazanej kolumny magistrali, dla wszystkich danych na wejściu,
- GET_OUTTEMP_AGGR → suma wartości kolumny danych zgromadzonych w zbiorze OUTPUT_TEMPORARY,
- IS_OPERATOR_EXECUTED → zwraca wartość true, jeśli wskazany operator został już wykonany, w przeciwnym razie false.
Ustaw kursor w miejscu, w którym chcesz wstawić funkcję, wybierz ją z listy rozwijanej i użyj przycisku wstawiania zaznaczonym na czerwono na poniższym zrzucie z ekranu.
Dla wybranej funkcji dostępny jest kreator, w którym należy wskazać bit magistrali oraz potwierdzić wstawienie przyciskiem Insert.
Algorytm można przetestować przyciskiem Test.
Jeśli test zakończy się poprawnie, zostanie wyświetlona zakładka Result z wynikiem działania algorytmu.
W przypadku błędu (np. składni C#) zostanie wyświetlona informacja o błędzie.
DateTime → DateTime.Now
string → "Text"
double → 1.0
int → 1;
bool → true