Czy wiesz, że można utworzyć nowego kontrahenta Comarch ERP XL z poziomu Comarch BPM?
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
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
- 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.
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.