Print

AddCaseEvent

Dodaje wpis do historii biznesowej sprawy. W odróżnieniu od automatycznie generowanej historii technicznej (która rejestruje każdą zmianę wartości pól, przesłanie sprawy itp.), historia biznesowa służy do rejestrowania tylko kluczowych momentów w procesie biznesowym, takich jak akceptacja dokumentu, wysłanie maila do klienta, otrzymanie odpowiedzi od kontrahenta czy zakończenie etapu negocjacji.

Składnia

AddCaseEvent(object)

Argumenty funkcji

Typ zdarzenia

W pierwszej kolejności musimy określić typ zdarzenia, które chcemy zapisać w historii. Do tego celu w AMODIT musi istnieć conajmniej jeden słownik określający typy zdarzeń zdarzenia. Takich słowników może być więcej. W słowniku umieszczamy listę typów zdarzeń przykładowo: „Telefon przychodzący”, „Telefon wychodzący”, „Otrzymanie maila”, „Wysłanie maila”, itd. Najlepiej gdy opis zawiera zarówno określenie kanału komunikacji jak i kierunku komunikacji. Listę zdarzeń należy zdefiniować samodzielnie wg własnych potrzeb.
Przy zapisywaniu zdarzenia do historii biznesowej możesz posłużyć się jednym z poniższych trzech sposobów.

Sposób 1: Podanie nazwy słownika i nazwy typu zdarzenia
W celu zarejestrowania zdarzenia zaleca się używania nazwy słownika ze zdarzeniami oraz nazwy pozycji ze słownika. To zapewnia przenośność kodu między środowiskami.

  • EventDictionaryName – (String) [Optional] Nazwa słownika z typami zdarzeń biznesowych
  • EventTypeName – (String) [Optional] Nazwa pozycji słownika

 

Sposób 2: Podanie id pozycji typu zdarzenia
W uzasadnionych przypadkach można użyć tylko ID pozycji ze słownika zdarzeń. To ID jest w systemie AMODIT jednoznaczne i unikalne, więc jest wystarczające do określenia jakie to zdarzenie i do którego słownika zdarzeń należy.

  • EventTypeId – (Decimal) [Optional] ID pozycji słownika opisującej typ zdarzenia biznesowego

Sposób 3: Podanie id słownika i nazwy typu zdarzenia (nie zalecany)

Można również skorzystać z kombinacji, gdzie podajemy ID słownika oraz nazwę pozycji z tego słownika (nie zalecane):

  • EventDictionaryId – (Decimal) [Optional] ID słownika z typami zdarzeń biznesowych
  • EventTypeName – (String) [Optional] Nazwa pozycji słownika

Wiadomość, komunikat opisujący zdarzenie

Kolejny parametr to wiadomość, czyli tekst, który chcemy zapisać w ramach tego zdarzenia:

  • Message – (String) [Optional] Niestandardowa wiadomość

Podmiot biznesowy, którego dotyczy zdarzenie

Dwa sposoby wprowadzania podmiotu biznesowego:

Sposób 1: (niezalecany) bezpośrednie użycie w obiekcie zdarzenia:

  • BusinessSubjectName – (String) [Optional] Nazwa podmiotu związanego ze zdarzeniem (np. imię i nazwisko osoby)
  • BusinessSubjectId – (String) [Optional] ID podmiotu biznesowego (np. numer ewidencyjny w Twoim systemie)
  • BusinessSubjectType – (String) [Optional] Typ podmiotu biznesowego

Sposób 2: (zalecany) jako obiekt zagnieżdżony:

  • BusinessSubject – (Object) [Optional] Obiekt z polami:
    • Name – (String) [Optional] Nazwa podmiotu związanego ze zdarzeniem
    • Id – (String) [Optional] ID podmiotu biznesowego
    • Type – (String) [Optional] Typ podmiotu biznesowego

WAŻNE:

  • Jeśli podasz oba sposoby, obiekt BusinessSubject ma priorytet i nadpisze wartości z osobnych pól!
  • Kluczowa zasada: BusinessSubject = podmiot główny
  • ZAWSZE podawaj w BusinessSubject osobę/firmę, której dotyczy proces/zdarzenie, a nie wykonawcę

Nasze propozycje nazw typów obiektów biznesowych (dostosuj do swoich potrzeb):

Podstawowe typy:

  • „CLIENT” – Klient zewnętrzny
  • „EMPLOYEE” – Pracownik organizacji
  • „MANAGER” – Kierownik/menedżer
  • „USER” – Ogólny użytkownik systemu
  • „ADMIN” – Administrator systemu

Rozszerzone (przykłady):

  • „DIRECTOR” – Dyrektor/zarząd
  • „CONTRACTOR” – Kontrahent/dostawca
  • „PARTNER” – Partner biznesowy
  • „AUDITOR” – Audytor zewnętrzny
  • „CONSULTANT” – Konsultant
  • „VENDOR” – Dostawca
  • „INVESTOR” – Inwestor

Zwracana wartość

Funkcja zwraca Booleantrue jeśli wpis do historii biznesowej został pomyślnie utworzony.

Funkcja AddCaseEvent automatycznie zapisuje dodatkowe informacje, których nie musisz podawać:

  • Data i czas – dokładny moment wywołania funkcji
  • Użytkownik – aktualnie zalogowany użytkownik
  • ID sprawy – automatycznie z kontekstu reguły
  • Nazwa reguły – nazwa reguły, z której wywołano zdarzenie

Przykład tego co zobaczysz w historii biznesowej:

📅 Data: 2024-03-15 14:30:25
👤 Użytkownik: Jan Kowalski (ID: 42)  
📁 Sprawa: #9876
⚙️ Reguła: OnDocumentApproved
📋 Zdarzenie: Dokument zaakceptowany
💬 Wiadomość: [Twoja Message] + dane BusinessSubject

Struktura zapisu w bazie danych:

cetId           -- ID zdarzenia (auto-increment)
cetCaseId       -- ID sprawy (auto z kontekstu)  
cetUserId       -- Wykonawca (auto - zalogowany użytkownik)
cetDate         -- Data/czas (auto - DateTime.Now)
cetEventTypeId  -- Typ zdarzenia (z parametrów)
cetMessage      -- JSON z szczegółami zdarzenia

JSON w cetMessage:

{
  "actionName": "Reklamacja wpłynęła",
  "ruleName": "OnReklamacjaReceived", 
  "customMessage": "Reklamacja otrzymana mailem - produkt uszkodzony",
  "businessSubject": {
    "Name": "Jan Kowalski",
    "Id": "CLIENT_12345", 
    "Type": "CLIENT"
  }
}

Przykłady uzycia

Przykład 1: Rejestrowanie prostego zdarzenia w procesie HR

object.EventDictionaryName = "Zdarzenia_HR";
object.EventTypeName = "Zmiana danych pracownika";
AddCaseEvent(object);

Przykład 2: Tworzy zdarzenie wraz z opisem zdarzenia

object.EventDictionaryName = "Zdarzenia_Dokumentów";
object.EventTypeName = "Dokument zaakceptowany";
object.Message = "Automatycznie zaakceptowany przez system po weryfikacji podpisu elektronicznego";
AddCaseEvent(object);

Przykład 3: Tworzy zdarzenie wraz ze wskazaniem podmiotu biznesowego, którego dotyczy

// Rejestrowanie kontaktu z klientem
object.EventDictionaryName = "Zdarzenia_Klienckie";
object.EventTypeName = "Kontakt telefoniczny";
object.Message = "Rozmowa w sprawie reklamacji produktu XYZ-123";

// Utworzenie obiektu np. o kliencie
subject = CreateObject();
subject.Name = "Jan Kowalski";
subject.Id = "KL001";     // to może być np. numer z Waszego systemu CRM
subject.Type = "CLIENT";

// Dodanie informacji o kliencie
object.BusinessSubject = subject;

AddCaseEvent(object);

Ten sam efekt, ale używając osobnych pól:

// Rejestrowanie kontaktu z klientem
object.EventDictionaryName = "Zdarzenia_Klienckie";
object.EventTypeName = "Kontakt telefoniczny";
object.Message = "Rozmowa w sprawie reklamacji produktu XYZ-123";

// Dodanie informacji o kliencie
object.BusinessSubjectName = "Jan Kowalski";
object.BusinessSubjectId = "KL001";
object.BusinessSubjectType = "CLIENT";

AddCaseEvent(object);

Przykład 4: Tworzy zdarzenie dla sprawy typu 'Mail sent’ ze słownika o wybranej nazwie

object.EventDictionaryName = "CaseEvents";
object.EventTypeName = "Mail sent";
object.Message = "Wysłano odpowiedź na zgłoszoną reklamację";
AddCaseEvent(object);

Przykład 5: Tworzy zdarzenie dla sprawy typu opisanego przez pozycję słownika o podanym ID i informacjami o podmiocie biznesowym

object.EventTypeId = id;
object.BusinessSubjectName = "Jan Kowalski";
object.BusinessSubjectId = 1224;
object.BusinessSubjectType = "USER";
AddCaseEvent(object);
Czy artykuł był pomocny?
0 na 5 gwiazdek
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
5
How can we improve this article?
How Can We Improve This Article?