|
<< 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.

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

Rysunek 926. Komponent – Wyliczenie – kwota
●Warunek – Warunek
Komponent służy do umożliwienia przetwarzania warunkowego. Opisany jest przez atrybuty:
●Wyrażenie

Rysunek 927. Komponent – Warunek
●Skrypt – Skrypt
Komponent służy do wpisanie fragmentu kodu w Visual Basic skrypcie. Opisany jest przez atrybuty:
●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.

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$

Rysunek 930. Uruchomienie definicji automatów z kontekstu

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.