Baza wiedzy LINKSPOT › Wskazówki

Czy wiesz, że wykorzystując procedurę On.AfterDocumentDeleted możesz zapisywać do bazy dane o usunięciu dokumentu, rejestrując ID usuniętego dokumentu, ID operatora oraz dokładną datę i czas tej akcji w Comarch BPM?

Wskazówki · Opublikowano 2025-12-04

Zastosowanie

Poniższy przykład przedstawia, jak za pomocą procedury On.AfterDocumentDeleted w bazie danych Comarch BPM zapisywać informacje o tym, kto, kiedy i jaki dokument usunął z obiegu.

Zawartość przykładu

Kliknij tutaj, aby pobrać przykład

Zasada działania

Procedura do.OnAfterDocumentDeleted dodaje do tabelki wdrożeniowej do.WDR_DeletedDocumentsLog informacje o usunięciu dokumentu (ID dokumentu, ID użytkownika usuwającego oraz datę i czas operacji).

Konfiguracja przykładu

1.

Utworzono w bazie danych BPM w schemacie do. własną tabelę o nazwie do.WDR_DeletedDocumentsLog, w ktorej będą zapisywane informacje dotyczące usunięć dokumentów.

Przyklad

Przykład tabeli:

CREATE TABLE do.WDR_DeletedDocumentsLog (
DDL_Id INT IDENTITY(1,1) PRIMARY KEY,
DDL_DocumentId INT NOT NULL, /*ID usuniętego dokumentu (DWD_ID z do.DF_Work)*/
DDL_FullNumber VARCHAR(50) NULL, /*Numer dokumentu (DWD_FullNumber z do.DF_Work)*/
DDL_DeletedByUserId INT NULL, /*ID użytkownika, który usunął dokument (DCD_ID z do.DF_ConfOSDictionary)*/
DDL_UserName VARCHAR(255) NULL, /*Login użytkownika*/
DDL_DeleteDate DATETIME NOT NULL /*Data i czas operacji*/
);
  1. W procedurze do.OnAfterDocumentDeleted dodano kod:
/* Deklaracja zmiennych */
DECLARE @userLogin VARCHAR(100);
DECLARE @fullNumber VARCHAR(50); --z do.DF_Work (DWD_FullNumber)

/* 1. Pobranie loginu użytkownika z tabeli do.DF_ConfOSDictionary - Tabela słownika działów i pracowników */
IF @userId IS NOT NULL
BEGIN
SELECT @userLogin = DCD_Login
FROM do.DF_ConfOSDictionary
WHERE DCD_ID = @userId;
END

/* 2. Pobranie pełnego numeru dokumentu z tabeli do.DF_Work (Tabela nagłówkowa dokumentu) */
IF @documentId IS NOT NULL
BEGIN
SELECT @fullNumber = DWD_FullNumber
FROM do.DF_Work
WHERE DWD_ID = @documentId;
END

/* 3. Dodanie informacji o usunięciu dokumentu do tabeli wdrożeniowej */
INSERT INTO do.WDR_DeletedDocumentsLog (
DDL_DocumentId,
DDL_FullNumber,
DDL_DeletedByUserId,
DDL_UserName,
DDL_DeleteDate
)
VALUES (
@documentId,
@fullNumber,
@userId,
@userLogin,
GETDATE()
);
  1. Zmodyfikowana procedura wygląda następująco:
ALTER PROCEDURE [do].[OnAfterDocumentDeleted]
@documentId as int = NULL,  -- DWD_ID from DF_Work table
@userId as int = NULL -- DCD_ID from DF_ConfOSDictionary table, the user who deleted the document
AS
BEGIN
begin try

/* Deklaracja zmiennych */

    DECLARE @userLogin VARCHAR(100);
    DECLARE @fullNumber VARCHAR(50); --z do.DF_Work (DWD_FullNumber)

    /* 1. Pobranie loginu użytkownika z tabeli do.DF_ConfOSDictionary - Tabela słownika działów i pracowników */

    IF @userId IS NOT NULL
    BEGIN
        SELECT @userLogin = DCD_Login
        FROM do.DF_ConfOSDictionary
        WHERE DCD_ID = @userId;
    END

    /* 2. Pobranie pełnego numeru dokumentu z tabeli do.DF_Work (Tabela nagłówkowa dokumentu) */

    IF @documentId IS NOT NULL
    BEGIN
        SELECT @fullNumber = DWD_FullNumber
        FROM do.DF_Work
        WHERE DWD_ID = @documentId;
    END

    /* 3. Dodanie informacji o usunięciu dokumentu do tabeli wdrożeniowej */

    INSERT INTO do.WDR_DeletedDocumentsLog (
        DDL_DocumentId,
        DDL_FullNumber,
        DDL_DeletedByUserId,
        DDL_UserName,
        DDL_DeleteDate
    )
    VALUES (
        @documentId,
        @fullNumber,
        @userId,
        @userLogin,
        GETDATE()
    );
end try
begin catch
 DECLARE @ErrorMessage varchar(max) = 'W procedurze do.OnAfterDocumentDeleted wystąpił błąd: ' + ERROR_MESSAGE();
 --THROW 50001,  @ErrorMessage ,1;   
 declare  @ErrorSeverity int =  ERROR_SEVERITY(), @ErrorState int = ERROR_STATE()
 raiserror (@ErrorMessage, @ErrorSeverity, @ErrorState);
end catch
END

Uzupełniona tabela do.WDR_DeletedDocumentsLog

Po usunięciu dokumentu w Comarch BPM za pomocą ikony kosza, w tabeli wdrożeniowej pojawia się wpis:

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 »