Zastosowanie
Dzięki tej konfiguracji, proces obsługi dokumentów w Comarch BPM zyskuje zaawansowaną zdolność automatycznego pobierania danych z dokumentów ERPXL. Wdrożenie tego wzorca znacznie przyspiesza procesy zakupowe, ponieważ eliminuje konieczność ręcznego wyszukiwania i przepisywania danych z dokumentów (w przykładzie dokument Przyjęcia Zewnętrznego (PZ)). System automatycznie pobiera kluczowe informacje nagłówkowe (Kontrahent, Wartość Netto) z wybranego dokumentu PZ, uzupełniając kontrolkę tabelaryczną i wprowadzając dane bezpośrednio do obiegu.
Zawartość przykładu
- Definicja Typu Obiegu (Workflow): Wzorcowa ścieżka obiegu dokumentu z konfiguracją kontrolki typu Dane tabelaryczne.
Kliknij tutaj, aby pobrac przykład
Zasada działania
Mechanizm opiera się na obserwowaniu kolumny typu Lista (lista wyboru dokumentu PZ) i uruchamianiu złożonego zapytania SQL, które pobiera powiązane dane nagłówkowe z tabel Comarch ERP XL.
- W kontrolce typu Dane Tabelaryczne zdefiniowano kolumnę ListaPZ (typ: Lista) służącą do wyboru dokumentu PZ oraz kolumny wynikowe: PZ (typ: Dokument elektroniczny), Kontrahent (typ: Kontrahent) i Netto (typ: Liczba stałoprzecinkowa).
- Na zakładce Listy zdefiniowano zapytanie pobierające wszystkie dokument PZ (o typie Trn_GIdTyp=1489) z tabeli cdn.TraNag.
- Na zakładce Inicjowanie wartości dodano obserwację kontrolki przez samą siebie.
- Zapytanie SQL (Wzór na wartość SQL ERP) jest wyzwalane przy każdej zmianie kolumny ListaPZ.
- Zapytanie SQL pobiera GIDNumer wybranego dokumentu PZ i na jego podstawie odpytuje tabelę cdn.TraNag oraz cdn.KntKarty (dla Kontrahenta).
- Polecenie UPDATE @DokumentyPZ@ SET aktualizuje kolumny wynikowe w wierszu.
- Osobna kontrolka typu SumaNettoPZ obserwuje kolumnę (Netto) i zlicza jej sumę za pomocą prostego zapytania SQL (select sum (Netto) from @DokumentyPZ@).
Konfiguracja przykładu
1.Utworzono kontrolkę Tabelaryczną: Dodano kontrolkę typu Dane tabelaryczne o nazwie (identyfikatorze) DokumentyPZ i skonfigurowano w niej następujące kolumny:- ”ListaPZ” (identyfikator kolumny: ListaPZ) – typ Lista
- ”PZ” (identyfikator kolumny: PZ) – typ Dokument elektroniczny
- ”Kontrahent” (identyfikator kolumny: Kontrahent) – typ Kontrahent
- ”Netto” (identyfikator kolumny: Netto) – typ Liczba stałoprzecinkowa

2.W kontrolce typu Dane tabelaryczne na zakładce Listy zdefiniowano zapytanie pobierające:
- Listę dokumentów PZ z Comarch ERPXL:
select trn_gidnumer,cdn.numerdokumentu(trN_GIDTyp,TrN_SpiTyp, Trn_TRNTyp,TrN_TrNNumer,TrN_TrNRok, TrN_TrNSeria, TrN_trNMiesiac) from cdn.TraNag where Trn_GIdTyp=1489

3.Dodano obserwację kontrolki: W kontrolce typu Dane tabelaryczne, na zakładce Inicjowanie wartości, dodano powiązanie do samej siebie.

4.Dodano zapytanie SQL: W kontrolce typu Dane tabelaryczne, na zakładce Inicjowanie wartości w sekcji Wzór na wartość SQL ERP dodano zapytanie, które automatycznie podpina dokument elektroniczny w kolumnie PZ , oraz wczytuje kluczowe dane nagłówkowe (Kontrahent i Netto) bezpośrednio z wybranego dokumentu. Logika ta polega na trzykrotnym użyciu instrukcji UPDATE @DokumentyPZ@ SET w jednym bloku kodu. Każda instrukcja, oparta o połączenia (JOIN) z tabelami nagłówkowymi ERP XL (cdn.TraNag, cdn.KntKarty), pobiera i aktualizuje inną wartość w bieżącym wierszu tabeli.
IF @DokumentyPZ_Column@ = 1 BEGIN /*[1] Zapisanie GID dokumentu PZ do kolumny PZ_ID w celu dalszych zapytań*/ UPDATE @DokumentyPZ@ SET [PZ_ID] = ( SELECT [ListaPZ] FROM @DokumentyPZ@ WHERE POS = @DokumentyPZ_Row@ ) WHERE POS = @DokumentyPZ_Row@ /* [2] Pobranie Kontrahenta (Knt_GidNumer) z tabel nagłówkowych ERP XL*/ UPDATE @DokumentyPZ@ SET [Kontrahent] = ( SELECT Knt_GidNumer FROM cdn.TraNag JOIN cdn.kntkarty ON TrN_KntNumer = Knt_GIDNumer WHERE TrN_GIDNumer = [ListaPZ] ) WHERE POS = @DokumentyPZ_Row@ /*[3] Pobranie Wartości Netto (TrN_NettoP) z tabel TraNag/TraElem*/ UPDATE @DokumentyPZ@ SET [Netto] = ( SELECT TOP 1 TrN_NettoP FROM cdn.TraNag JOIN cdn.TraElem ON TrE_GIDNumer = TrN_GIDNumer WHERE TrN_GIDNumer = [ListaPZ] ) WHERE POS = @DokumentyPZ_Row@ /*!!! OBOWIĄZKOWE: Odświeżenie wiersza w kontrolce Dane tabelaryczne !!!*/ SELECT * FROM @DokumentyPZ@ END

5.Tryb pracy: W kontrolce typu Dane tabelaryczne, na zakładce Ograniczenie edycji kolumnę „Kontrahent” oraz „Netto” ustawiono w trybie „Do odczytu”.

6.Utworzono kontrolkę liczbową: Dodano kontrolkę typu Liczba stałoprzecinkowa o nazwie (identyfikatorze) SumaNettoPZ, w której dodano powiązanie do kontrolki DokumentyPZ i skonfigurowano w niej zapytanie, które zlicza wartość z kolumny Netto z kontrolki tabelarycznej:
select sum (Netto) from @DokumentyPZ@

Uzupełniona Kontrolka Dane Tabelaryczne
Po wybraniu z listy dokumentu PZ w kontrolce typu Dane tabelaryczne, wiersz został automatycznie zaktualizowany. W efekcie, w drugiej kolumnie podpiął się dokument elektroniczny PZ oraz zostały uzupełnione kluczowe dane nagłówkowe: Kontrahent i Wartość Netto. Kontrolka SumaNettoPZ wyświetla poprawną sumę końcową z kolumny Netto wszystkich podpiętych dokumentów PZ.

