В обработчиках сообщений и в ходе типовых маршрутов рекомендуется записывать бизнес-события в справочник События межсистемных процессов. Это позволяет отслеживать ход работы по процессу.
Для записи события в текущей системе используйте функцию DCIWriteProcessEvent. Чтобы передать событие в другую систему, отправьте сообщение SendBusinessEvent.
Примечание
Для корректной работы сообщение SendBusinessEvent должно быть добавлено в справочник Виды межсистемных процессов для данного вида процесса.
Структура обработчика отправки сообщения SendBusinessEvent:
MessageData = DCIGetObjectDictionary()
Params = DCIGetParams()
ProcessMessage = DCIGetProcessMessage()
MessageData.Add("Event"; Params.FindItem("Event"))
MessageData.Add("EventDateTime"; Params.FindItem("EventDateTime"))
MessageData.Add("EventDetails"; Params.FindItem("EventDetails"))
DCIAttachDataToProcessMessage(ProcessMessage; MessageData; "MessageData")
Структура обработчика приема сообщения SendBusinessEvent:
ProcessMessage = DCIGetProcessMessage()
MessageData = DCIGetDataFromProcessMessage(ProcessMessage; "MessageData")
Event = MessageData.ValueByName("Event")
EventDateTime = DCIUTCStrToLocalTime(MessageData.ValueByName("EventDateTime"))
EventDetails = MessageData.ValueByName("EventDetails")
DCIWriteProcessEvent(ProcessMessage.ProcessGlobalId; Event;
EventDateTime; EventDetails)
Рекомендации:
• | записывайте краткую информацию, понятную пользователю. Справочник События межсистемных процессов должен показывать, что именно произошло в системе в ходе бизнес-процесса; |
• | в карточку события записывайте детальную информацию. Например, это помогает в поиске причины ошибки; |
• | чтобы получить быстрый доступ к журналу событий, на ленту карточки задачи, задания, документа или записи справочника добавьте кнопку, открывающую справочник События межсистемных процессов: |
// Открыть события по процессу по кнопке из карточки задачи.
Params = Object.WorkflowParams
// Найти идентификатор межсистемного процесса.
ProcessGlobalID = Params.FindItem("ProcessGlobalID").Value
// Показать события по межсистемному процессу.
DCIOpenEventsOnTheProcess(ProcessGlobalID)
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |