PDF

Audyt danych biznesowych w nAxiom

Przeczytasz w 15 min.

Spis treści

  1. Streszczenie
  2. Mechanizm audytu danych biznesowych
    1. Opis mechanizmu
    2. Lista tabel audytu
  3. Konfiguracja audytu danych biznesowych
    1. Audyt przejść statusów
    2. Audyt zmian wartości w polach
    3. Audyt zdarzeń
  4. Wyświetlanie audytu danych biznesowych
    1. Informacje ogólne
    2. Systemowy formularz do wyświetlania audytu rekordu
    3. Tworzenie formularza do wyświetlania audytu rekordu
    4. Konfiguracja akcji otwarcia własnego formularza audytu
    5. Konfiguracja globalna wyświetlania audytu
    6. Konfiguracja dla wybranego dokumentu biznesowego

Streszczenie

W artykule przedstawiono szczegóły funkcjonalności audytu danych biznesowych w nAxiom. Zakłada się, że czytelnik zna podstawy budowania procesów na platformie nAxiom.

Mechanizm audytu danych biznesowych

Opis mechanizmu

Audytowanie w systemie nAxiom obejmuje:

  • historię przejść statusów dla wszystkich dokumentów biznesowych,
  • historię zmian wartości w polach dla dokumentów biznesowych, dla których funkcjonalność audytowania tych pól jest włączona,
  • historię wywołanych zdarzeń dla dokumentów biznesowych, dla których funkcjonalność audytowania tych zdarzeń jest włączona. Logi audytu przechowywane są w bazie danych w dedykowanych tabelach i mogą być wyświetlane za pomocą odpowiednich zapytań.

Lista tabel audytu

Nazwa tabeli Zakres danych
core.Audits Historia przejść statusów dla dokumentów
core.AuditLogs Historia zmian wartości w polach dla dokumentów
core.AuditColumns Wykaz kolumn tabel z włączonym audytem
core.AuditDocuments Wykaz definicji dokumentów biznesowych z włączonym audytem
core.AuditActions Akcja uruchamiana przyciskiem audytu
core.AuditEvents Zdarzenia, które mogą zostać objęte audytem
core.AuditEventLogs Historia zdarzeń dla dokumentów

W sekcji Tworzenie formularza do wyświetlania audytu rekordu zostaną zamieszczone przykładowe zapytania użyte do zaprezentowania wybranych danych na własnym formularzu audytu.

Konfiguracja audytu danych biznesowych

Audyt przejść statusów

Logi przejść statusów dla rekordów są zapisywane dla wszystkich rekordów i nie wymagają włączenia przez użytkownika.

Audyt zmian wartości w polach

Logi zmian wartości w polach są zapisywane dla tych pól danego dokumentu biznesowego, dla których funkcjonalność audytowania jest włączona. Aby włączyć audyt zmian wartości pól dla wybranych pól formularza, należy zaznaczyć pole wyboru dla tych pól na liście Lista pól audytowanych przez system, na karcie Audyt w oknie edycji definicji dokumentu biznesowego.

Audyt zdarzeń

Logi zdarzeń są zapisywane dla tych zdarzeń dotyczących danego dokumentu biznesowego, dla których funkcjonalność audytowania jest włączona. Aby włączyć audyt wybranych zdarzeń dla danego dokumentu biznesowego, należy zaznaczyć pole wyboru przy tych zdarzeniach na liście Lista zdarzeń audytowanych przez system na karcie Audyt w oknie edycji definicji dokumentu biznesowego.

Wyświetlanie audytu danych biznesowych

Informacje ogólne

Istnieją różne sposoby wyświetlania audytu danych biznesowych dla dokumentu, np.:

  • w oknie pop-up otwieranym za pomocą systemowej ikony audytu;
  • w oknie pop-up otwieranym za pomocą własnego przycisku;
  • bezpośrednio w specjalnie zdefiniowanej sekcji formularza (sekcja typu lista).

Wyświetlaniem audytu danych biznesowych można sterować globalnie lub osobno dla poszczególnych dokumentów biznesowych, poprzez nadpisanie ustawień globalnych. Poniżej opisano systemowy formularz audytu, a także kroki tworzenia własnego formularza audytu oraz sposób konfiguracji wyświetlania tego formularza.

Systemowy formularz do wyświetlania audytu rekordu

Platforma nAxiom dysponuje systemowym przyciskiem audytu (ikona zegarka ze strzałką w prawym górnym rogu formularza). Jeśli konfiguracja nie została zmieniona, kliknięcie w systemowy przycisk audytu wywołuje systemowy widok audytu danych biznesowych dla rekordu.

Kliknięcie w przycisk wywołuje okno Audyt.

Kliknięcie przycisku „plus” obok nazwy statusu rozwija listę zmian w polach formularza, dla których włączona była funkcja audytu.

Tworzenie formularza do wyświetlania audytu rekordu

Platforma nAxiom umożliwia podpięcie własnego formularza do systemowego przycisku audytu. Własny formularz audytu wybranych danych biznesowych można również umieścić na przycisku formularza specjalnie skonfigurowanym przez użytkownika. Własny formularz audytu może wyglądać następująco:

Własny formularz audytu tworzymy w kilku krokach:

  1. Utworzenie odpowiedniego modelu danych dla obiektów związanych z audytem.
  2. Utworzenie definicji dokumentu biznesowego oraz formularza dla tego modelu.
  3. Utworzenie list, które będą wyświetlały odpowiednie logi audytu na podstawie zapytań do tabel audytowych (przykładowe zapytania uwzględniono w tym artykule).
  4. Umieszczenie list z odpowiednimi zależnościami na własnym formularzu audytu.

W pierwszym kroku przechodzimy kreatora modeli danych i tworzymy tabelę uproszczoną z kolumnami jak niżej:

  • Master_ID: w tym polu będzie zapisywany identyfikator audytowanego rekordu
  • Master_BusinessDocId: w tym polu będzie zapisywany identyfikator definicji dokumentu biznesowego (BusinessDocId) audytowanego rekordu
  • Master_Table: w tym polu będzie zapisana nazwa tabeli powiązanej z definicją dokumentu biznesowego dla audytowanego rekordu

W drugim kroku tworzymy dokumentu biznesowego oraz formularz dla tego modelu danych. Można to zrobić za pomocą generatora elementów aplikacji dla modelu danych lub ręcznie.

Na utworzonym formularzu umieszczamy sekcję pól technicznych, w której zamieszczamy pola powiązane z wszystkimi trzema dodanymi do modelu danych kolumnami. Sekcja pól technicznych może być ustawiona jako niewidoczna. Wartości przeniesione do tych pól z formularza audytowanego będą determinowały wyświetlone w podpiętych listach logi audytu.

Trzecim krokiem jest zdefiniowanie list, które posłużą do podpięcia jako sekcje w tworzonym formularzu audytu. Należy utworzyć trzy listy:

  1. Lista logów przejść statusów
  2. Lista logów zmian wartości w polach
  3. Lista logów wywołanych zdarzeń

Każdą listę należy utworzyć osobno z wykorzystaniem odpowiedniego zapytania SQL. Poniżej zamieszczono sugerowane zapytania do umieszczenia jako źródła dla list.

Zapytanie pobierające historię przejść statusów:

SELECT
 Id
,[RecordId] --ID REKORDU
,[BusinessDocumentId] --ID DOKUMENTU BIZNESOWEGO
,[ChangeDateTime] --KIEDY NASTĄPIŁO PRZEJŚCIE
,
(SELECT [FirstName] + ' ' + [LastName]
FROM [core].[UserProfiles]
where Id = [UserProfileGuid])
as [Change_User] --UŻYTKOWNIK, KTÓRY WYWOŁAŁ PRZEJŚCIE
,
case
when [OldBusinessStatusId] is null then ' ' else
(
    SELECT top 1 T.[Value]
    FROM   [core].[Translations] T
      JOIN [core].[TranslationDefinitions] TD
      ON T.TranslationDefinitionId = TD.Id
      JOIN [core].[BusinessStatuses] BS
      ON TD.RecordRowGuid = BS.RowGuid
    WHERE  T.LanguageId = 1
    AND BS.Id = [OldBusinessStatusId]
) end
as [OldStatus] --NAZWA STATUSU WYJŚCIOWEGO
,
(
    SELECT top 1 T.[Value]
    FROM   [core].[Translations] T
      JOIN [core].[TranslationDefinitions] TD
      ON T.TranslationDefinitionId = TD.Id
      JOIN [core].[BusinessStatuses] BS
      ON TD.RecordRowGuid = BS.RowGuid
    WHERE  T.LanguageId = 1
    AND BS.Id = [NewBusinessStatusId] 
) 
as [NewStatus] --NAZWA STATUSU DOCELOWEGO

FROM [core].[Audits]

Zapytanie pobierające historię zmian wartości pól (z pominięciem pól systemowych).

SELECT 
 Id
,[RecordId] --ID REKORDU
,replace(replace([TableName], '[', ''), ']', '') as [TableName] --NAZWA TABELI
,[ColumnName] --NAZWA KOLUMNY
,[ChangeDate] --KIEDY NASTĄPIŁA ZMIANA
,
(SELECT [FirstName] + ' ' + [LastName]
FROM [core].[UserProfiles]
where Id = [UserProfileId])
as [User] --UŻYTKOWNIK, KTÓRY WYWOŁAŁ ZMIANĘ
,[OldValue] --STARA WARTOŚĆ POLA
,[NewValue] --NOWA WARTOŚĆ POLA

FROM [core].[AuditLogs]

where [ColumnName] not in 
('Id', 'Code', 'Organization', 'RowVersion', 
'UserId', 'CreateDate', 'UpdatedBy', 'UpdatedDate', 
'ACLId', 'Blocked', 'BlockUser', 'LastEntryDate', 
'ArchiveStatus', 'IsAnonimized',
'Status', 'Transition', 
'Type1', 'Type2', 'Type3')

Zapytanie pobierające historię zdarzeń dla danego rekordu

SELECT
 Id
,[RecordId] --ID DOKUMENTU
,[BusinessDocumentId] --ID DOKUMENTU BIZNESOWEGO
,[ChangeDate] --KIEDY WYSTĄPIŁO ZDARZENIE
,
case
when [Status] is null then ' ' else
(
SELECT top 1 T.[Value]
FROM   [core].[Translations] T
JOIN [core].[TranslationDefinitions] TD
ON T.TranslationDefinitionId = TD.Id
JOIN [core].[BusinessStatuses] BS
ON TD.RecordRowGuid = BS.RowGuid
WHERE  T.LanguageId = 1
AND BS.Id = [Status]
) end
as [Status] --STATUS, W KTÓRYM WYSTĄPIŁO ZDARZENIE
,
(SELECT [FirstName] + ' ' + [LastName]
FROM [core].[UserProfiles]
where Id = [UserProfileId])
as [User] --UŻYTKOWNIK, KTÓRY WYWOŁAŁ ZDARZENIE

, [EventName] --NAZWA (TYP) ZDARZENIA
, [Value] as [EventDetails] --SZCZEGÓŁY ZDARZENIA

FROM [core].[AuditEventLogs]

W czwartym kroku należy utworzone listy dodać do formularza audytu jako osobne sekcje typu lista. Następnie dla każdej sekcji typu lista należy skonfigurować zależność od sekcji zawierającej pola techniczne Master_ID, Master_BusinessDocId oraz Master_Table.

W polu konfiguracji zależności od sekcji należy dla wszystkich list wybrać sekcję pól technicznych.

Następnie dla poszczególnych list należy skonfigurować warunek zależności:

  • Konfiguracja warunku zależności dla listy logów przejść statusów
    RecordId = {@_Section_Master_ID} and
    BusinessDocumentId = {@_Section_Master_BusinessDocId}
    
  • Konfiguracja warunku zależności dla listy logów zmian wartości w polach
    RecordId = {@_Section_Master_ID} and
    TableName = {@_Section_Master_Table}
    
  • Konfiguracja warunku zależności dla listy logów wywołanych zdarzeń
    RecordId = {@_Section_Master_ID} and
    BusinessDocumentId = {@_Section_Master_BusinessDocId}
    

Konfiguracja akcji otwarcia własnego formularza audytu

Podpięcie własnego formularza audytu do odpowiedniego przycisku jest możliwe dzięki akcji Otwórz formularz z odpowiednio skonfigurowanym przekazywanie potrzebnych danych. Należy utworzyć akcję Otwórz formularz i podać w niej identyfikator własnego formularza audytu.

Następnie należy odpowiednio skonfigurować przekazywanie parametrów do formularza audytu. W tym celu należy kliknąć przycisk wybierz parametry i wartości pod nagłówkiem Przekazywanie parametrów do formularza i uzupełnić przekazywane wartości (w trybie SQL).

Poniżej wartości przekazywane dla poszczególnych pól

Master_RecordId - {@Id}
Master_BusinessDoc - {@BusinessDocId}
Master_Table - SELECT [Table] FROM [core].[BusinessDocuments] WHERE Id = {@BusinessDocId}

Tak przygotowaną akcję można przypisać do systemowego przycisku audytu lub do własnego przycisku audytu.  

Konfiguracja globalna wyświetlania audytu

Aby globalnie włączyć systemowy przycisk audytu danych biznesowych należy wykonać poniższe kroki.

  1. Przejdź do Administracja > Ustawienia systemu > Audyt i włącz przełącznik w sekcji Dostępność przycisku audytu.
  2. W sekcji Akcje dla przycisku audytu wybierz akcję uruchamianą po kliknięciu przez użytkownika systemowego przycisku audytu na formularzu.
  3. Zapisz zmiany konfiguracji, klikając przycisk Zapisz u góry strony Ustawienia systemu.

Konfiguracja dla wybranego dokumentu biznesowego

Wyświetlanie audytu można konfigurować indywidualnie dla definicji dokumentów biznesowych poprzez zmianę ustawień na karcie Audyt w oknie edycji definicji dokumentu biznesowego.


Copyright © 2025 OPTEAM SA. Theme Copyright © 2017-2020 Patrick Marsceill. Distributed by an MIT license.