Zastosowanie
Dzięki tej konfiguracji system Comarch BPM zyskuje możliwość tworzenia nowych kontrahentów Comarch ERP XL bezpośrednio z poziomu dokumentu w obiegu, po uzupełnieniu niezbędnych danych na formularzu bez potrzeby logowania się do Comarch ERPXL. Wdrożenie tego wzorca znacząco przyspiesza rejestrację takiego dokumentu oraz minimalizuje ryzyko podwójnego wprowadzania tych samych informacji.
Zawartość przykładu
- Definicja Typu Obiegu (Workflow): Wzorcowa ścieżka obiegu z prostym formularzem do uzupełnienia, kontrolką Własna akcja, która wywołuje procedurę CDN.KntNowy i zakładania kontrahenta.
Kliknij tutaj, aby pobrać przykład
Zasada działania
Mechanizm wykorzystuje kontrolkę typu Własna akcja (Dodaj kontrahenta), która wywołuje standardową procedurę ERP XL – cdn.KntNowy bezpośrednio z obiegu dokumentów w BPM, eliminując konieczność ręcznego tworzenia kontrahenta w systemie ERP.
- Użytkownik uzupełnia pola obowiązkowe na formularzu BPM: Operator zakładający w XL, Grupa kontrahentów, NIP_Prefiks oraz Akronim kontrahenta. Opcjonalnie można uzupełnić dane adresowe i pełną nazwę oraz NIP.
- Parametry techniczne niezbędne do procedury ERP XL (takie jak knwGrpTyp, knwGrpFirma, OpeTyp, OpeFirma) wypełniają się automatycznie po dokonaniu wyboru w kontrolkach Grupa kontrahentów oraz Operator zakładający w XL. Pola te są jednocześnie oznaczone jako „Tylko do odczytu”, co zabezpiecza je przed przypadkową edycją z poziomu dokumentu.
- Po kliknięciu przycisku „Dodaj kontrahenta” (kontrolka typu Własna akcja), następuje wywołanie procedury cdn.kntNowy, przekazującej wszystkie zebrane dane do bazy ERP XL.
- Wywołanie to jest poprzedzone warunkiem (np. IF @ERPContractor1_Id@ IS NULL), aby zapobiec ponownemu utworzeniu kontrahenta i uniknąć błędu kontekstu SQL, który często pojawia się przy próbie wykonania ROLLBACK w procedurze.
- Następuje dodanie nowego kontrahenta w Comarch ERP XL.
- Na końcu, kontrolka typu Kontrahent na karcie obiegu uzupełnia się automatycznie numerem GIDNumer nowo utworzonego kontrahenta, na podstawie wprowadzonego akronimu.
Konfiguracja przykładu
Konfiguracja obejmuje zdefiniowanie zestawu kontrolek na karcie obiegu, z których część jest widoczna dla użytkownika, a część pełni rolę ukrytych pól technicznych, niezbędnych do poprawnego wywołania procedury ERP XL (cdn.kntNowy).
1.Konfiguracja Kontrolek Użytkownika i Własnej Akcji
Kontrolki te są widoczne na formularzu i służą do wprowadzenia kluczowych informacji o nowym kontrahencie.
- „Operator zakładający w XL” (identyfikator: Operator) – typ Lista
- „Grupa kontrahentów” (identyfikator: Grupa) – typ Lista
- „NIP_Prefiks” (identyfikator: NIP_Prefiks) – typ Lista
- „Akronim kontrahenta” (identyfikator: Akronim) – typ Tekst
- „Nazwa kontrahenta” (identyfikator: NazwaKontrahenta) – typ Tekst
- „NipE” (identyfikator: NipE) – typ Tekst
- „Kontrahent” (identyfikator: Kontrahent) – typ Kontrahent
- „Ulica i numer domu” (identyfikator: Ulica_Numer_Domu) – typ Tekst
- „Miasto” (identyfikator: Miasto) – typ Tekst
- „Kod pocztowy” (identyfikator: KodPocztowy) – typ Tekst
- „Dodaj kontrahenta XL” (identyfikator: DodajkontrahentaXL) – typ Własna akcja
2.Konfiguracja Ukrytych Kontrolek Technicznych
Pola te są niezbędne do przekazania GID-ów i typów do procedury cdn.kntNowy, wypełniają się automatycznie i są zablokowane do edycji:
- „knwGrpTyp” (identyfikator: knwGrpTyp) – typ Liczba całkowita
- „knwGrpFirma” (identyfikator: knwGrpFirma) – typ Liczba całkowita
- „knwGrpNumer” (identyfikator: knwGrpNumer) – typ Liczba całkowita
- „OpeTyp” (identyfikator: OpeTyp) – typ Liczba całkowita
- „OpeFirma” (identyfikator: OpeFirma) – typ Liczba całkowita
- „OpeNumer” (identyfikator: OpeNumer) – typ Liczba całkowita

Formularz karty obiegu
3.Konfiguracja Inicjowania Wartości Pól Kontrolek (Pobieranie List)
- Operator zakładający w XL:
- Typ Operacji: SQL OD
- Zapytanie SQL: Zapytanie warunkowo pobiera listę operatorów z bazy ERP XL. Jeśli zalogowany użytkownik (@^UserId@) ma powiązanie z operatorem ERP XL, domyślnie wybierany jest ten operator; w przeciwnym razie wyświetlana jest pełna lista.
IF EXISTS (SELECT * FROM cdn.OpeKarty /* baza ERP XL*/
JOIN [BPM_Przyklady].do.DF_ConfOSDictionary on Ope_Ident=DCD_Login /*wsakzać właściwą nazwę bazy BPM*/
WHERE
DCD_ID= @^UserId@ AND
DCD_LoginMethod=0)
SELECT Ope_GIDNumer, Ope_Ident, Ope_GIDNumer
FROM cdn.OpeKarty /* baza ERP XL*/
JOIN [BPM_Przyklady].do.DF_ConfOSDictionary on Ope_Ident=DCD_Login /*wsakzać właściwą nazwę bazy BPM*/
WHERE
DCD_ID= @^UserId@ AND
DCD_LoginMethod=0
ELSE
SELECT Ope_GIDNumer, Ope_Ident
FROM cdn.OpeKarty /* baza ERP XL*/
JOIN [BPM_Przyklady].do.DF_ConfOSDictionary on Ope_Ident=DCD_Login /*wsakzać właściwą nazwę bazy BPM*/
WHERE
DCD_LoginMethod=0
Uwaga
W zapytaniu pobierającym listę operatorów dla kontrolki Operator zakładający w XL, konieczne jest wstawienie właściwej nazwy bazy danych Comarch BPM przed nazwą tabeli systemowej do.DF_ConfOSDictionary.
- Grupa kontrahentów:
- Typ Operacji: SQL ERP
- Zapytanie SQL: Pobiera listę wzorców grup kontrahentów z tabel cdn.KntWzorce i cdn.KntGrupy.
SELECT KnW_GrpNumer, KnG_Akronim FROM cdn.KntWzorce
JOIN cdn.KntGrupy ON kng_gidTyp=KnW_GrpTyp AND kng_gidnumer=KnW_GrpNumer where KnW_Nieaktywny=0
- NIP_Prefiks:
- Typ Operacji: SQL ERP
- Zapytanie SQL: Pobiera listę prefiksów NIP (kodów krajów) z tabeli cdn.KrajeCelne
select kpc_id, KPC_Kod, 168 FROM cdn.KrajeCelne
4.Konfiguracja Automatycznego Wypełniania Pól (Obserwator)
Poniższe reguły określają, jak pola techniczne są automatycznie wypełniane po wyborze wartości w kontrolkach widocznych dla użytkownika.
- knwGrpTyp
- Obserwuje: Grupa kontrahentów
- Typ Operacji: SQL ERP
- Zapytanie SQL: Pobiera typ wzorca grupy z cdn.KntWzorce
SELECT CAST(KnW_GrpTyp as int) as int FROM cdn.KntWzorce WHERE Knw_grpnumer= @Grupakontrahentow_ID@
- knwGrpFirma
- Obserwuje: Grupa kontrahentów
- Typ Operacji: SQL ERP
- Zapytanie SQL: Pobiera firmę wzorca grupy z cdn.KntWzorce
SELECT KnW_GrpFirma FROM cdn.KntWzorce WHERE Knw_grpnumer= @Grupakontrahentow_ID@
- knwGrpNumer
- Obserwuje: Grupa kontrahentów
- Typ Operacji: SQL ERP
- Zapytanie SQL: Przekazuje numer wybranej grupy kontrahentów
SELECT @Grupakontrahentow_ID@
- OpeTyp
- Obserwuje: Operator zakładający w XL
- Typ Operacji: SQL ERP
- Zapytanie SQL: Pobiera GIDTyp operatora z cdn.OpeKarty
SELECT CAST (Ope_GIDTyp as int) as int FROM cdn.OpeKarty WHERE Ope_GIDNumer= @Operator_ID@
- OpeFirma
- Obserwuje: Operator zakładający w XL
- Typ Operacji: SQL ERP
- Zapytanie SQL: Pobiera GIDFirmę operatora z cdn.OpeKarty
SELECT Ope_GIDFirma FROM cdn.OpeKarty WHERE Ope_GIDNumer= @Operator_ID@
- OpeNumer
- Obserwuje: Operator zakładający w XL
- Typ Operacji: SQL ERP
- Zapytanie SQL: Przekazuje GIDNumer wybranego operatora
SELECT @Operator_ID@
- Kontrahent
- Obserwuje: Akronim kontrahenta, Dodaj kontrahenta
- Typ Operacji: SQL ERP
Zapytanie SQL: Pobiera GIDNumer nowego kontrahenta z cdn.kntKarty na podstawie Akronimu.
IF @^SenderControlName@ ='DodajkontrahentaXL'
BEGIN
SELECT Knt_GIDNumer FROM cdn.kntKarty
WHERE knt_akronim=@Akronim@
END
ELSE
SELECT NULL
5.Konfiguracja Akcji Tworzenia Kontrahenta – Wywołuje procedurę ERP XL cdn.kntNowy, przekazując parametry zebrane z widocznych i ukrytych kontrolek:
- Nazwa Kontrolki: Dodaj kontrahenta
- Typ Operacji: Procedura ERP
-
Zapytanie SQL: If @Kontrahent_Id@ is null
``` Begin
EXEC cdn.kntNowy
@knwGrpTyp=@knwGrpTyp@,
@knwGrpFirma=@knwGrpFirma@,
@knwGrpNumer=@knwGrpNumer@,
@OpeTyp=@OpeTyp@,
@OpeFirma=@OpeFirma@,
@OpeNumer=@OpeNumer@,
@Akronim=@Akronim@,
@Miasto= @Miasto@,
@NipPrefiks= @NIP_Prefiks_Text@ ,
@Nazwa1=@NazwaKontrahenta@,
@NipE=@NipE@,
@Ulica= @Ulica_Numer_Domu@ ,
@KodP= @KodPocztowy@
END ```
Kontrolki techniczne, które są uzupełniane automatycznie, zostały celowo oznaczone jako Tylko do odczytu, aby uniemożliwić ręczną edycję i zapewnić integralność danych przekazywanych do procedury ERP XL.

Ustawienie kontrolek Tylko do odczytu
Uwaga
Aby zablokować edycję kontrolek technicznych na całym obiegu dokumentu, należy pamiętać, że pole „Tylko do odczytu” musi zostać zaznaczone na każdym etapie procesu.
Uwaga
Jeżeli celem jest ukrycie kontrolek technicznych na dokumencie, należy pamiętać, że opcja „Widoczna” musi zostać odznaczona na każdym etapie obiegu dokumentu.

Ukrycie kontrolek technicznych
Utworzenie nowego kontrahenta za pomocą kontrolki Własna Akcja
Użytkownik uzupełnił niezbędne dane na karcie obiegu, w tym:
- Pola obowiązkowe: Akronim kontrahenta, Operator zakładający w XL, Grupa kontrahentów i NIP_Prefiks.
- Zostały również uzupełnione pola dodatkowe: dane adresowe, NIP i pełna nazwa kontrahenta.
- W momencie dokonania wyboru w kontrolkach Operator zakładający w XL i Grupa kontrahentów, system za pomocą reguł Obserwatora (SQL ERP) automatycznie pobrał identyfikatory GID i typy (np. knwGrpTyp, OpeFirma) z ERP XL. Pola te są zablokowane (Tylko do odczytu) na każdym etapie obiegu, co gwarantuje poprawność i integralność danych przekazywanych do procedury ERP XL.
- Po kliknięciu przycisku „Dodaj kontrahenta” (Własna akcja) została wywołana procedura ERP XL cdn.kntNowy, do której zostały przekazane zebrane dane i nastąpiło dodanie nowego kontrahenta w Comarch ERP XL.
- Kontrolka typu Kontrahent na formularzu uzupełniła się automatycznie GIDNumerem nowo utworzonego kontrahenta, na podstawie wprowadzonego akronimu.
- Kliknięcie w kontrolkę Kontrahent otwiera widok nowego kontrahenta, potwierdzając jego poprawne dodanie w Comarch ERP XL.

Utworzenie nowego kontrahenta
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?