Skip to content

Help Desk System

MicheleBenedetti edited this page Jun 20, 2022 · 5 revisions

Help Desk System

  1. Overview

The shared process defined by the individual Pool Help Desk System was implemented separately and reused in all processes that need it in order to avoid duplication of templates and codes in several processes.

During development, we realised that the help desk acts as a central system in almost all operations within the various processes and is used as a communication system between different company departments in order to initiate, notify or conclude a certain process.

For this reason, we decided to implement and load a single model called HelpDeskSystem that could be reused and was generic for any operation required.


  1. BPMN Model

model

  1. Description

The process of the HelpDeskSystem was realised by including a Messsage Start Event as a start event, which can be called by the processes that need it. Internally, the process performs a number of operations including:

  1. Save Ticket: Saving the ticket created in the appropriate database (DB Tickets).

  2. Notify IT Developer: Since the process is completely automated and therefore carried out by means of external tasks, during the creation phase we defined the possibility of inserting as parameters, the identifier to be used for sending a CorrelationMessage in order to notify the developer of the IT department concerned of the creation of the ticket with the necessary information and the operation to be performed.

  3. Receive Ticket Closed: Represented by a Message Intermediate Catch Event allows to intercept the closure of a ticket and proceed with the process flow.

  4. Update Ticket: Service Task triggered after the ticket has been closed, takes care of updating the ticket status from Created to Closed within the Tickets DB.

  5. Notify Ticket Owner: Each ticket object possesses certain information, including a creation date, a status and a creator. When this task is reached, it is notified that the process has been successfully executed and with it that the ticket has been closed.


  1. Worker Implementation

help_desk

The Help Desk Worker Implementation is an async function called helpDeskStart that is called inside others workers who need it in they own process. The function takes two string as arguments called respectively: messageTo and messageOwner, which stands for who the message will be notified to the IT Department and who will be notified when the ticket will be closed.

With this two arguments, the HelpDesk can build its IExternalTask like NotifyTicketITExternalTask and NotifyTicketOwnerExternalTask and start the subscription to the relative topics.


  1. Example Usage

Inside the NewCollaboration Process we use the HelpDeskSystem to enable the communication between respectively department and we define the helpDeskStart like:

  helpDeskStart({
    messageTo: "notify-ticket-it-message-new-collaborator",
    messageOwner: "notify-ticket-owner-message-new-collaborator",
  });