Automaty

<< Kliknij, aby wyświetlić Spis treści >>

Nawigacja:  SIMPLE.ERP > Funkcje specjalne >

Automaty

W opcji Funkcje specjalne – automaty jest możliwe zdefiniowanie i wykonanie automatycznych przeliczeń danych zapisanych w systemie.

Funkcjonalność automatów umożliwia definiowanie i uruchamianie sekwencji operacji. Szczególnym rodzajem automatów mogą być automaty księgowe pozwalające definiować np. operacje przeksięgowań, rozliczania kosztów.

Istnieją dwa rodzaje automatów:

●zdefiniowany w określonym kontekście (np. Automat FK) związany z konkretnym obiektem tego kontekstu (np. konto księgowe z planu kont) i uruchamiany automatycznie w momencie kiedy obiekt zmienia swój stan (np. aktualizacja obrotów na koncie księgowym);

●uruchamiany jako akcja z pulpitu, nie związany z żadnym kontekstem.

Okno definicji pierwszego rodzaju automatów wywoływane jest poprzez akcję w oknie definicji obiektu danego kontekstu (np. prawy przycisk na koncie z planu kont). W tym przypadku użytkownik definiuje kolejne wersje automatu.

Okno definicji drugiego rodzaju automatów wywoływane jest w tej opcji systemu. W tym przypadku użytkownik musi najpierw zdefiniować automat, a następnie jego wersje.

Jedynym zaimplementowanym obecnie kontekstem automatów jest kontekst automatów uruchamiane podczas aktualizacji obrotów na koncie – Automat FK obroty omówiony na końcu tego rozdziału.

Automaty bez kontekstu mogą być uruchamiane poprzez wyciągnięcia akcji „Automaty – wywołania" na pulpit użytkownika i przypisanie do tej akcji parametrów jej uruchomienia. Analogicznie jak skrypt użytkownika z pulpitu.

Automat posiada dwa atrybuty:

●unikalny identyfikator 32 znakowy;

●nazwę 60 znakową.

Każdy automat posiada jedną lub więcej wersji.

Wersja posiada cztery atrybuty:

●nazwę wersji;

●datę od kiedy obowiązuje;

●flagę prywatności;

●flagę aktywności.

Wersje definiowane są w obrębie okresów rozliczeniowych. Flaga prywatności pozwala na to, aby automat widoczny był jedynie przez użytkownika, który go zdefiniował i mógł być uruchamiany jedynie przez niego. Kombinacja atrybutów: flaga aktywności i daty obowiązywania pozwala wersjonować automaty w czasie.

Każdy automat zbudowany jest z kolejnych kroków - pozycji automatu. Każdy krok automatu jest określonego typu. O funkcjonalności związanej z danym krokiem decyduje rodzaj komponentu, z którego został utworzony dany krok.

Wszystkie komponenty są predefiniowane i podzielone na obszary funkcjonalne:

●iteracja – grupa komponentów pozwalająca na definiowanie iteracyjnego przetwarzania (np. akcja dla każdego konta z danego zakresu lub akcja dla każdej wartości atrybutu danej klasy z repozytorium);

●selekcja – grupa komponentów pozwalająca na pobieranie wartości (np. pobranie konta księgowego, kwoty obrotów);

●generacja – grupa komponentów realizujących przetwarzanie (np. tworzących dekret, pozycję dekretu lub aktualizujących obroty na koncie księgowym);

●wyliczenie – grupa komponentów pozwalająca wyliczać wartości liczbowe lub tekstowe;

warunek – komponent pozwalający podjąć określone działania pod warunkiem, że spełniony jest dany warunek (np. obroty większe od ...);

●skrypt – komponent pozwalający wpisać bezpośrednio fragment kodu w VisualBasic Script.

Każdy z obszarów funkcjonalnych może być następnie podzielony na obszary związane z daną funkcjonalnością systemu SIMPLE.ERP:

●ERP.FK – finanse;

●REP – repozytorium;

●ERP.OT – obrót towarowy.

Możliwość używania tych komponentów w określonym obszarze systemu SIMPLE.ERP uwarunkowana jest posiadaniem licencji na ten obszar.

Komponenty nie związane z żadnym z obszarów są komponentami systemowymi.

Istnieją dwa rodzaje zmiennych:

●predefiniowane ($okres$, $podokres$);

●predefiniowane wynikające z kontekstu (np. $dekret_okres$ w kontekście FK_DEKRET);

dodawane podczas definiowania kolejnych kroków automatu (np. po definicji kroku wyliczenie pojawi się na liście zmienna, która w tym kroku zostanie wyliczona).

Wiele komponentów pozwala określić zakres początkowy i końcowy oraz wybrać poprzez filtr odpowiednie wartości z tego zakresu. Przykład dla komponentu: Iterator – FKV – konto:

●konto początkowe: 501-01

●konto końcowe: 550-09

●maska na wartości: 5__-01

Definicja ta pozwoli wybrać konta od 501-01 do 550-09, które spełniają filtr: 5__-01, czyli dowolne konto zespołu 5 kończące się analityką 01.

Poniżej znajduje się omówienie poszczególnych komponentów i ich atrybutów:

●Iteracja – FKV – Iterator konto

Komponent pozwala zdefiniować przetwarzanie dla każdego konta w określonym zakresie. Zakres definiowany poprzez atrybuty:

●okres

●konto początkowe

●konto końcowe

●maska na wartości

●zmienna

Na poniższym rysunku został przedstawiony krok automatu, w którym dla bieżącego okresu dla wszystkich kont „%" zostanie wykonana pętla po kontach z zakresu 401-01-0001 – 409-09. Każde kolejne konto zostanie podstawione pod zmienną $konto$. W obrębie takiej pętli będzie można odwołać się do tej zmiennej i wykonać jakieś czynności.

Komponent – Iteracja – FKV – Iterator konto

Rysunek 912. Komponent – Iteracja – FKV – Iterator konto

●Iteracja – Iterator prosty

Komponent pozwala zdefiniować powtarzające się określoną liczbę razy przetwarzanie. Atrybuty:

●indeks początkowy (wartość lub zmienna)

●indeks końcowy (wartość lub zmienna)

●krok (wartość lub zmienna)

●zmienna

Komponent – Iteracja – Iterator prosty

Rysunek 913. Komponent – Iteracja – Iterator prosty

●Iteracja – Iterator tabela

Komponent pozwala zdefiniować powtarzające się przetwarzanie dla każdego elementu ze zbioru. Zbiór zdefiniowany jest jako fragment tabeli bazodanowej poprzez atrybuty:

●tabela

●kolumna

●maska na wartości

●zmienna

Komponent – Iteracja – Iterator tabela

Rysunek 914. Komponent – Iteracja – Iterator tabela

●Iteracja – REP – Iterator atrybut

Komponent pozwala zdefiniować powtarzające się przetwarzanie dla każdej zbioru wartości atrybutu danej klasy. Zbiór określony jest poprzez atrybuty:

●klasa

●atrybut

●wartość początkowa

●wartość końcowa

●maska na wartości

●zmienna

Komponent – Iteracja – REP – Iterator atrybut

Rysunek 915. Komponent – Iteracja – REP – Iterator atrybut

●Selekcja – FKV – Selektor konto

Komponent pozwala pobrać konto oraz zweryfikować jego poprawność. Opisany jest przez atrybuty:

●okres

●system kont

●konto

●zmienna

Komponent – Selekcja – FKV – selektor konto

Rysunek 916. Komponent – Selekcja – FKV – selektor konto

●Selekcja – FKV – Selektor kwota

Komponent pozwala pobrać kwotę obrotów z danego konta. Opisany jest przez atrybuty:

●okres

●podokres

●system kont

●system ewidencji

●konto

●rodzaj kwoty

●kwota

●waluta

●status

●zmienna

Komponent – Selekcja – FKV – selektor kwota

Rysunek 917. Komponent – Selekcja – FKV – selektor kwota

●Selekcja – Selektor – dopytanie – liczba

Komponent umożliwia aby podczas działania automatu operator musiał podać kwotę. Opisany jest przez atrybuty:

●komunikat dopytania

●zmienna

Komponent – Selekcja – dopytanie – liczba

Rysunek 918. Komponent – Selekcja – dopytanie – liczba

●Selekcja – Selektor – dopytanie – znaki

Komponent umożliwia aby podczas działania automatu operator musiał podać ciąg znaków. Opisany jest przez atrybuty:

●komunikat dopytania

●zmienna

Komponent – Selekcja – dopytanie – znaki

Rysunek 919. Komponent – Selekcja – dopytanie – znaki

●Selekcja – Selektor – SQL – liczba

Komponent pozwala zdefiniować zapytanie SQL, które pobierze jakąś wartość liczbową z bazy podczas działania automatu. Opisany jest przez atrybuty:

●zapytanie SQL

●zmienna

Komponent – Selekcja – SQL – kwota

Rysunek 920. Komponent – Selekcja – SQL – kwota

●Selekcja – Selektor – SQL – znaki

Komponent pozwala zdefiniować zapytanie SQL, które pobierze jakiś ciąg znaków z bazy podczas działania automatu. Opisany jest przez atrybuty:

●zapytanie SQL

●zmienna

Komponent – Selekcja – SQL – znaki

Rysunek 921. Komponent – Selekcja – SQL – znaki

●Generacja – FKV – Generator dekret

Komponent służy do wygenerowania nagłówka dekretu. Opisany jest przez atrybuty:

●okres

●podokres

●oddział

●typ dekretu

●identyfikator

●opis

●zmienna

Komponent – Generacja – FKV – Generator dekret

Rysunek 922. Komponent – Generacja – FKV – Generator dekret

●Generacja – FKV – Generator pozycja

Komponent służy do wygenerowania pozycji dekretu. Może być użyty tylko w przypadku transakcyjnego systemu ewidencji. Opisany jest przez atrybuty:

●system kont

●system ewidencji

●identyfikator

●opis

●konto

●waluta

●strona kwota WT (wartość lub zmienna)

●kwota WB (wartość lub zmienna)

●kwota EU (wartość lub zmienna)

●kwota IL (wartość lub zmienna)

●zmienna dekretu

Komponent – Generacja – FKV – Generator pozycja

Rysunek 923. Komponent – Generacja – FKV – Generator pozycja

●Generacja – FKV – Generator obroty

Komponent służy do wygenerowania obrotów na koncie. Może być użyty tylko w przypadku nie transakcyjnego systemu ewidencji. Opisany jest przez atrybuty:

●Okres

●podokres

●system kont

●system ewidencji

●konto

●waluta

●status

●strona

●rodzaj kwoty

●kwota (wartość lub zmienna)

Komponent – Generacja – FKV – Generator obroty

Rysunek 924. Komponent – Generacja – FKV – Generator obroty

●Wyliczenie – Wyliczenie – znaki

Komponent służy do zbudowania wartości znakowej z innych wartości znakowych. Opisany jest przez atrybuty:

●wyrażenie

●zmienna

Komponent – Wyliczenie – znaki

Rysunek 925. Komponent – Wyliczenie – znaki

●Wyliczenie – Wyliczenie – liczba

Komponent służy do wyliczenia wartości liczbowej na podstawie innych wartości liczbowych. Opisany jest przez atrybuty:

●wyrażenie

●zmienna

Komponent – Wyliczenie – kwota

Rysunek 926. Komponent – Wyliczenie – kwota

●Warunek – Warunek

Komponent służy do umożliwienia przetwarzania warunkowego. Opisany jest przez atrybuty:

●Wyrażenie

Komponent – Warunek

Rysunek 927. Komponent – Warunek

●Skrypt – Skrypt

Komponent służy do wpisanie fragmentu kodu w Visual Basic skrypcie. Opisany jest przez atrybuty:

●Skrypt

Komponent – Skrypt

Rysunek 928. Komponent – Skrypt

Lista komponentów w kolejnych wersjach może być rozszerzana poprzez dodanie komponentów realizujących nową funkcjonalność.

Definiowanie kolejnych kroków wersji automatu odbywa się poprzez przeciąganie komponentu z drzewa komponentów na listę z krokami automatu. Dany element może być wstawiony na końcu lub w dowolnym miejscu w środku.

Dwuklik lewym przyciskiem myszy na danym kroku powoduje otwarcie okna, które służy do zdefiniowania szczegółów danego kroku. Po zdefiniowaniu szczegółów i powrocie do głównego okna aktualizowany jest automatycznie skrótowy opis kroku automatu.

Cechą charakterystyczną definicji automatu jest wizualne przedstawienie komponentów typu iterator i warunek i przetwarzania, które w obrębie tych komponentów się wykonuje, poprzez wcięcie z lewej strony oznaczające podrzędność komponentu względem komponentu nadrzędnego.

Wizualne przedstawienie komponentów iterator i warunek

Rysunek 929. Wizualne przedstawienie komponentów iterator i warunek

W przykładzie przedstawionym na powyższym rysunku w pierwszym kroku tworzony jest nagłówek dekretu. Następnie dla każdego konta z zakresu 401 – 490 wykonywane są cztery kroki: dwa warunki i jeżeli konto z iteratora jest mniejsze niż 405 powstaje pozycja dekretu, a w przypadku gdy konto jest większe lub równe 405 zostają jedynie zaktualizowane obroty na koncie.

Istnieje możliwość podpięcia automatu do konta księgowego. Uruchomienie automatu następuje w momencie kiedy obroty na koncie podczas zatwierdzania dekretów – właściwego aktualizowane są obroty. Zasada działania tego rodzaju automatów podobna jest do dotychczasowego mechanizmu Hook'ów – zaczepów do VBScript'u.

Atrybuty jakie dostaje każdy automat uruchamiany w tym kontekście:

●identyfikator okresu: $dekret_okres$

●identyfikator podokresu: $dekret_podokres$

●identyfikator systemu kont: $dekret_syskont$

●identyfikator systemu ewidencji: $dekret_sysewid$

●identyfikator konta: $dekret_konto$

●identyfikator waluty: $dekret_waluta$

●strona ('WN', 'MA'): $dekret_strona$

●rodzaj kwoty ('WT', 'WB', 'EU', 'IL'): $dekret_rodzaj$

●kwota: $dekret_kwota$

Uruchomienie definicji automatów z kontekstu

Rysunek 930. Uruchomienie definicji automatów z kontekstu

Definicja automatu w kontekście

Rysunek 931. Definicja automatu w kontekście

W przypadku definiowania automatu w kontekście np. FK_DEKRET użytkownik określa jedynie wersje i kroki wersji – nie definiuje automatu.