Audyt danych biznesowych w nAxiom
Przeczytasz w 15 min.
Spis treści
- Streszczenie
- Mechanizm audytu danych biznesowych
- Konfiguracja audytu danych biznesowych
- Wyświetlanie audytu danych biznesowych
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:
- Utworzenie odpowiedniego modelu danych dla obiektów związanych z audytem.
- Utworzenie definicji dokumentu biznesowego oraz formularza dla tego modelu.
- 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).
- 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:
- Lista logów przejść statusów
- Lista logów zmian wartości w polach
- 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.
- Przejdź do
Administracja
>Ustawienia systemu
>Audyt
i włącz przełącznik w sekcjiDostępność przycisku audytu
. - W sekcji
Akcje dla przycisku audytu
wybierz akcję uruchamianą po kliknięciu przez użytkownika systemowego przycisku audytu na formularzu. - Zapisz zmiany konfiguracji, klikając przycisk
Zapisz
u góry stronyUstawienia 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.
