Automatyzacja dokumentów w systemie ZPKSoft Doradca Wstęp Automatyzacja dokumentów jest to wypełnianie dokumentów przez program bez ingerencji człowieka (człowiek tylko inicjuje ten proces). Automatyzację dokumentów w systemie ZPKSoft Doradca zapewniają mechanizmy umożliwiające automatyczne wypełnianie dokumentów danymi będącymi wartościami tzw. znaczników, pochodzących z: - bazy klientów (pola tabeli klienta) - bazy użytkowników (pola tabeli użytkowników) - danych bieżących (data, nazwisko edytującego) - mikrobaz (pola rekordu) - znaczników pochodzących z notatek do procedury - znaczników pochodzących z notatek do sesji klienta - znaczników pochodzących z notatek do dokumentu lub danymi w postaci zestawień pochodzącymi ze źródeł danych: - mikrobaz - baz zewnętrznych (DBF, DB i in.) - dokumentów Excela Automatyczne wypełnianie dokumentów polega na wstawianiu do tych dokumentów w odpowiednio oznaczone miejsca wartości odpowiednio zdefiniowanych znaczników lub tabel. Preparowanie dokumentów Automatyzacja dokumentów jest możliwa dla dokumentów Office firmy Microsoft: Word i Excel. Prowadzone są prace nad rozszerzeniem automatyzacji na dokumenty Open Office. Aby przygotować proces automatyzacji należy zdefiniować znaczniki których wartości będą wstawiane do dokumentu. Preparowanie dokumentów Worda W dokumencie Worda należy utworzyć zakładki o nazwach identycznych z nazwami znaczników. Aby wstawić zakładkę należy umieścić kursor w tym miejscu, po czym skorzystać z opcji Zakładka... menu Wstaw. Jeżeli określony znacznik ma być wstawiony w kilka miejsc, należy wstawić listę zakładek z sufiksem _n gdzie n to kolejny numer wystąpienia zakładki. Na przykład, jeżeli znacznik ma nazwę u_nazwisko i chcemy aby jego wartość została wstawiona w kilka miejsc, wówczas
2 należy zdefiniować zakładki o nazwach: u_nazwisko, u_nazwisko_1, u_nazwisko_2 itd. Jeżeli numeracja będzie nieciągła, dodatkowe znaczniki nie wypełnią się. Przykładowo, jeżeli zdefiniujemy zakładki: u_nazwisko, u_nazwisko_2 to zakładka u_nazwisko_2 nie zostanie uwzględniona. Preparowanie dokumentów Excela W dokumencie Excela należy odpowiednie pola nazwać identycznie z nazwami znaczników. Aby nazwać pole w dokumencie Excela wystarczy kliknąć w obszar pola, po czym skorzystać z opcji Definiuj... menu Wstaw Nazwa. W przypadku dokumentów Excela można również zwielokrotniać te same znaczniki, wg podobnej zasady jak opisana wyżej, w przypadku dokumentów Worda. Źródła znaczników Znaczniki z bazy klientów Znaczniki pochodzące z bazy klientów mają nazwy złożone z prefiksu k_ oraz nazwy pola rekordu bazy klientów, np.: k_nazwafir k_nip itp. Zestaw wartości może być różny w zależności od zastosowanej definicji rekordu bazy klientów. Przykładowo, jeżeli w dokumencie Worda będzie wstawiona zakładka o nazwie k_nazwafir, wówczas program w to miejsce wstawi nazwę firmy klienta którego sesja jest otwarta. Od wersji 11.0.1 programu Doradca można również w komentarzu danych klienta definiować znaczniki dla tego klienta specyficzne, np. Zatrudnienie=54 Zostaną one dodane do znaczników domyślnych w postaci k_zatrudnienie=54 Znaczniki z bazy użytkowników Tu zasada jest podobna do przedstawionej wyżej, z tym, że prefiksem w nazwie znacznika jest wyrażenie u_, np.: u_nazwisko Również od wersji 11.0.1 interpretowane są znaczniki z komentarza do danych użytkownika. W tym przypadku dodawany jest prefiks u_, np. znacznik Wzrots=172 Będzie interpretowany jako u_wzrost=172
3 Znaczniki domyślne Do znaczników domyślnych (nie wymagających definiowania ich wartości) należą: Znacznik u_nazwa u_data wartość imię i nazwisko zalogowanej osoby data aktualna (odczytana z serwera) Znaczniki z rekordu mikrobazy W tym przypadku ilość znaczników odpowiada liczbie kolumn mikrobazy, nazwy znaczników odpowiadają nazwom odpowiednich kolumn a ich wartości to odpowiednie wartości pól rekordu. Znaczniki pochodzące z notatek do procedury, sesji klienta, lub z notatek do dokumentu Wymienione rodzaje notatek mogą być źródłem danych (tu: znaczników). W tym celu należy w treści tych notatek zdefiniować zestawy znaczników w postaci ich nazw i wartości. Aby utworzyć znacznik o nazwie nazwa i wartości wartość należy w oddzielnym wierszu umieścić zapis: nazwa=wartość Każdy znacznik musi być umieszczony w oddzielnym wierszu. Znaczniki mogą być oddzielane pustymi liniami i fragmentami zwykłego tekstu. Definiowanie znaczników Znaczniki można inicjować wartościami bezpośrednimi (liczba, tekst). Znaczniki pochodzące z mikrobaz lub notatek można dodatkowo uelastycznić o możliwość stosowania funkcji wyliczeniowych, znaczniki numeracji, funkcji związanych z datą i wartości żądane. Funkcje wyliczeniowe Postać funkcji zastosowanie f_+(x,y,z,...) suma wartości x, y, z... f_-( x,y,z,...) różnica wartości x,y,z,... f_*( x,y,z,...) iloczyn wartości x,y,z,... f_/( x,y,z,...) iloraz wartości x,y,z,... f_slownie(r) wartość słowna złotych (separator dziesiętny musi być kropką). f_int(x) funkcja zwraca zaokrągloną wartość x f_fe(a,b,c,d,e...) funkcja zwraca pierwszy niepusty łańcuch f_gdt(gid12) funkcja zwraca datę i czas z identyfikatora łańcuchowego gid12 <gid12> funkcja zwraca identyfikator łańcuchowy gid12
4 Funkcje logiczne Postać funkcji f_<(x,y,z,v) f_>(x,y,z,v) f_=(x,y,z,v) zastosowanie jeżeli x<y funkcja zwraca z, w przeciwnym razie zwraca v jeżeli x>y funkcja zwraca z, w przeciwnym razie zwraca v jeżeli x=y funkcja zwraca z, w przeciwnym razie zwraca v Znaczniki numeracji <*> znaczniki numeracji, np. <R>, <X> itp. (zob. dokument Numeracja dla rejestrów zewnętrznych ) Znacznik rezultat <D> data aktualna, np. 2009-09-13 <DT> data aktualna i czas, np. 2009-09-13 17:25:00 <Dt> j/w bez sekund, np.: 2009-09-13 17:25 <R> rok aktualny, np. 2009 <r> krótki zapis roku, np. 09 <M> miesiąc słownie, np. wrzesień <m> miesiąc, np. 09 <d> dzień, np. 13 <T> czas, np. 17:25:00 <t> czas bez sekund, np. 17:27 <h> godzina, np. 17 <n> minuta, np. 27 <s> sekunda, np. 00 Inne znaczniki <br> złamanie wiersza (przejście do nowej linii) Funkcje związane z datą Postać funkcji f_incdate(data,n) f_decdate(data) f_incdatetime(data,n) f_year(data) f_incyear(data,n) f_month(data) f_incmonth(data) f_day(data) zastosowanie zwiększenie daty o n dni. Data musi mieć format 'yyyy-mmdd hh:mm:ss' (wartości czasu 'hh:mm:ss' nie są wymagane) data wcześniejsza o n dni zwiększenie daty o n dni. Rezultat funkcji zwraca także czas rok z podanej daty data późniejsza o liczbę lat lub 1 gdy nie podano miesiąc z podanej daty data późniejsza o liczbę miesięcy. dzień z podanej daty
5 Wartości żądane Jeżeli do automatycznego wypełniania dokumentu chcemy zastosować parametry, tzn. spowodować, aby program pytał nas o wartości pewnych znaczników, można skorzystać z mechanizmu znanego już z parametryzacji zapytania SQL (podczas definiowania importu raportu z bazy obcej do mikrobazy lub dokumentu). Możliwe jest wymuszenie pytania o wartość parametru z jednoczesnym sugerowaniem wartości domyślnej. Jeżeli wartość znacznika będzie miała postać: <#NazwaParametru[,WartoscDomyslna]> wówczas program podczas procesu automatyzacji zada pytanie o wartości parametrów, sugerując zdefiniowane wcześniej wartości domyślne. Przykład: Numer=<#Numer> Cena=<#Cena netto,350> Rok=<#Rok,<R>> Tu podczas automatycznego wypełniania dokumentu wartości znaczników Numer, Cena i Rok mają być podane przez użytkownika pod postacią parametrów Numer, Cena netto i Rok, gdzie jako wartości domyślne program ma sugerować wartości dwu ostatnich parametrów: W powyższym przykładzie parametr Rok ma przybrać wartość domyślną <R>. Zgodnie z regułami rządzącymi numeracją dokumentów program podstawił za czynnik <R> wartość bieżącego roku, tzn. 2006 i tę wartość sugeruje jako wartość domyślną. Pytania program może automatycznie dzielić na grupy, jeżeli w danym momencie nie ma kompletu informacji dla danego pytania, np. Numer=<#Numer> Wartość1=<#wartość pierwsza,[numer]> Rok=<#Rok,<R>>
6 W tym przypadku ponieważ wartość sugerowana dla pola Wartość1 nie jest znana, to program spreparuje dwa pytania: 1. Pytanie o Numer i Rok 2. Pytanie o Wartość1 Funkcje mogą być zagnieżdżone i pobierać wartości z innych parametrów, np. brutto=f_slownie(f_*([netto],1.22)) pobierze wartość z parametru o nazwie "netto", np: netto=350 i zwróci rezultat jako wartość parametru "brutto": "Czterysta dwadzieścia siedem złotych" Parametry mogą również pobierać wartości z innych parametrów, np: netto=355 sumnetto=[netto] przy czym kolejność nie jest obowiązująca, wystarczającym warunkiem poprawnych obliczeń jest kompletność zależności, np. przyzwyczajeni jesteśmy do formułowania algorytmów jako: x=1; y=x; a zmiana kolejności: y=x; x=1; jest zwykle traktowana jako błąd, ponieważ podczas wyliczania y wartość x nie jest jeszcze znana. Otóż silnik przetwarzający znaczniki nie wymaga zachowania wspomnianej kolejności (patent ZPKSoft). Automatyczne wypełnianie dokumentów W zależności od źródła danych mamy kilka możliwości inicjowania automatycznego wypełniania dokumentów. Aby wypełnić dokument automatycznie należ skorzystać z menu Dokument-Wypełnij automatycznie, lub z tej samej opcji menu kontekstowego drzewa procedury. *)
7 Dokument zostanie wypełniony znacznikami pochodzącymi ze źródeł - bazy klientów (pola tabeli klienta) - bazy użytkowników (pola tabeli użytkowników) - danych bieżących (data, nazwisko edytującego) - znaczników pochodzących z notatek do procedury - znaczników pochodzących z notatek do dokumentu Aby wypełnić dokument wartościami znaczników sesji: - znaczników pochodzących z notatek do sesji klienta należy skorzystać z opcji Wypełnij dokument wartościami z komentarza menu Sesja okna procedur klienta. Aby wypełnić dokument wartościami znaczników z: - mikrobaz (pola rekordu) należy kliknąć przycisk Wklej specjalnie okna mikrobaz. Aby wypełnić dokument raportem z: - mikrobaz należy kliknąć przycisk Twórz raport okna mikrobaz. Aby wypełnić dokument raportem z bazy obcej: - baz zewnętrznych (DBF, DB i in.) - dokumentów Excela należy skorzystać z możliwości menu Raporty procedury: Uwagi: - jeden dokument może być wypełniany kolejno danymi z kilku źródeł - raporty tabelaryczne wstawiane są w miejsce ustawienia kursora w dokumencie.
8 *) Od wersji 10.2.3.0 programu Doradca jest możliwość poprzez wybór jednej opcji z menu kontekstowego drzewa procedury: Wypełnij automatycznie równoczesne wykonanie następujących operacji: - otwarcie dokumentu (jeśli nie był otwarty) - zebranie znaczników: 1. domyślnych 2. z komentarza do dokumentu 3. z komentarza do procedury - przetworzenie znaczników w komentarzu do dokumentu - utworzenie numeru dla dokumentu jeżeli posiadał wzorzec numeracji - wypełnienie dokumentu (Word lub Excel) Opr. Paweł Krzyżanowski