Czy wiesz, że po wybraniu z listy dokumentu PZ w kontrolce Dane tabelaryczne można pobrać do poszczególnych kolumn informacje z tego dokumentu?

image_pdfimage_print

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.

 

Film obrazujący zastosowanie konfiguracji

 

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

 

Kolumny w kontrolce Dane tabelaryczne

 

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

 

Lista pobierająca dokumenty PZ w kontrolce typu Dane tabelaryczne

 

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

 

Powiązanie  kontrolki 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 (KontrahentNetto) 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

 

Zapytanie SQL w kontrolce typu Dane tabelaryczne na zakładce Inicjowanie wartości

 

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

 

Kolumna Netto 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@

 

Kontrolka Liczbowa Suma Netto PZ

 

Uzupełniona Kontrolka Dane Tabelaryczne

Po wybraniu z listy dokumentu PZkontrolce 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: KontrahentWartość Netto. Kontrolka SumaNettoPZ wyświetla poprawną sumę końcową z kolumny Netto wszystkich podpiętych dokumentów PZ.

 

Kontrolka typu Dane tabelaryczne z uzupełnionymi kolumnami

 

Dokument PZ podpięty w kontrolce Dane tabelarycznej

 

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!

 

Czy ten artykuł był pomocny?