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.