Baza wiedzy LINKSPOT › Wskazówki

Czy wiesz, że w Comarch BPM można zweryfikować, czy dokument o danym numerze jest już wystawiony (tzw. weryfikacja numeru obcego)?

Wskazówki · Opublikowano 2025-10-14

Zastosowanie

Dzięki tej konfiguracji system Comarch BPM zyskuje zdolność do aktywnego wykrywania i ostrzegania przed duplikatami dokumentów w obiegu. Zastosowanie to zapewnia integralność i spójność danych, uniemożliwiając wprowadzenie dokumentu, który już został zarejestrowany w systemie pod tym samym numerem i jest przypisany do tego samego kontrahenta. W przypadku wykrycia duplikatu, system natychmiast wyświetla komunikat ostrzegawczy.

Zawartość przykładu

Kliknij tutaj, aby pobrać przykład

Zasada działania

Konfiguracja przykładu

1.Na karcie obiegu zdefiniowano następujące kontrolki niezbędne do skonfigurowania mechanizmu sprawdzania, czy dokument o danym numerze już istnieje w obiegu Comarch BPM:

2.Dodano obserwację kontrolek: Kontrolka Komunikat obserwuje pola „Numer dokumentu” i „Kontrahent”.

Kontrolka komunikat – kontrolki powiązane

3.Dodano zapytanie SQL: Kontrolka Komunikat zawiera zapytanie SQL, które wykonuje weryfikację, sprawdzając, czy inny dokument w tym samym Typie Obiegu (DFH_Name=’Weryfikacja numeru obcego BPM’) ma ten sam numer i tego samego kontrahenta.

BEGIN TRY
If exists (Select 1
from do.RO_ObjectsTypes as t1
join do.RO_Documents as t2 on t1.DFH_Id=t2.DFH_Id
join do.RO_ControlsValueexpand as t3 on t3.DWD_ID=t2.DWD_ID
join do.RO_ControlsValueExpand as t4 on t4.DWD_ID=t2.DWD_ID
where t3.DWC_ValueString =  @Numer_dokumentu@  /*Odwołanie do kontrolki Numer dokumentu*/
and t1.DFH_Name='Weryfikacja numeru obcego w BPM' /*Podstawić właściwą nazwę typu obiegu*/
and t3.DKO_Name='Numer_dokumentu' /*Identyfikator kontrolki Numer dokumentu*/
and t4.DKO_Name='Kontrahent'  /*Identyfikator kontrolki Kontrahent*/
and t4.DWC_ValueInt= @Kontrahent_Id@ /*Odwołanie do kontrolki Kontrahent*/
and t2.dwd_ID <> isnull( @^DocumentId@,0) )
Begin

/*Informacja, która jest wyświetlana na karcie obiegu, w przypadku duplikacji*/
SELECT 'Numer faktury dla wskazanego kontrahenta już istnieje', 1
End
END TRY
BEGIN CATCH
DECLARE @ErrorMessage varchar(max) = 'W zapytaniu wystąpił błąd : ' + ERROR_MESSAGE();
THROW 50001,  @ErrorMessage ,1;
END CATCH

Komentarze dotyczące Logiki Zapytania:

Uwaga

W kontekście weryfikacji duplikatu, użycie wartości 1 jest standardowe i konieczne, aby mechanizm ten skutecznie uniemożliwił wprowadzenie powtarzających się dokumentów

Zapytanie SQL w kontrolce Komunikat

Weryfikacja Duplikacji Dokumentów

Na nowoutworzonym dokumencie, który nie został jeszcze zapisany, po wprowadzeniu numeru dokumentu do kontrolki „Numer dokumentu” i następnie wybraniu kontrahenta w kontrolce „Kontrahent”, mechanizm weryfikacji zostaje natychmiast wyzwolony. System wykonał zapytanie SQL, sprawdzając bazę BPM. Kluczowym elementem zapytania jest warunek t2.dwd_ID <> isnull( @^DocumentId@,0), który zapewnia, że weryfikacja ignoruje bieżący dokument (ponieważ dopiero jest tworzony i nie ma nadanego numeru w obiegu BPM, który by go identyfikował jako zapisany). W tym momencie system wykrył, że dokument o tym samym numerze dla wskazanego kontrahenta już istnieje w BPM i pojawia się komunikat ostrzegawczy: „Numer faktury dla wskazanego kontrahenta już istnieje”. Wartość 1 w instrukcji SELECT zapytania oznacza Blokadę zapisu. System uniemożliwia zapisanie dokumentu do kolejnego etapu, dopóki nie zostanie skorygowany numer dokumentu lub kontrahent.

Komunikat informujący o duplikacji

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!

Powrót do początku artykułu

+ Mam problem z tym tematem Otwórz w portalu bazy wiedzy »