Event listener module are used to wait for specific events or initiate new workflow instances when event occurs. Events are triggered on domain scope and may receive events from other processes.

In addition to common properties you can also configure the following properties for an automation task;

Event Name
Name of event. Event name can set to a plain text value (Ex: Customer.New) or may contain data template expressions to include data from data model. (Ex: "PaymentComplete.{{Id}}" )

You may also specify multiple event names with semicolon delimited format. (Ex: "Customer.New;Customer.Update.{{Id}}" )

Handle Script
Script to handle event and take action to continue workflow instance. If not set worfklow engine automatically selects the first action.

Attached event data can be accessed with $Input variable as XmlNode instance.

If task configured as start point a new workflow instance is initiated and event data copied to current workflow data model for name matching nodes. If handling script does not take any action workflow instance is reverted.

If task is not set as start point, workflow instance paused and waits until event is occurs. If handling script does not take any action then workflow instance continues to wait until next event occur.

System Events

Emakin automatically fires the following events for integrating with certain operations.

User Events

User.Register

Fired when a new user registered to system. Registration is occurs when first time user has logged in to system under usage terms, not the user creation. If tenant usage terms changed registration is automatically re-initiated with new terms.

This event does not contain any input and expect a new workflow instance is created that assigned to user. If no workflow instance is created registration automatically completed.

This event is designed to comply with GDPR requirements with consent acceptance.

Case Events

Following events are fired when operation is completed on a case instance. $Case scripting variable is automatically set to case instance event triggered on.

Input Data

Case events contains the following example xml data as input and can be accessed with $Input variable. 

<Case xmlns="http://schemas.emakin.com/case">
    <Id>43b21104-5805-40c2-b174-59c3c612977f</Id>
    <ChannelId>a272d0cf-04aa-4dd9-ba84-4c6fbe3818b8</ChannelId>
    <Number>24133</Number>
    <Subject>My Case</Subject>
    <Description>My Description</Description>
    <IsClosed>False</IsClosed>
    <DeadlineAt>2025-02-03T00:13:00</DeadlineAt>
    <Priority>Normal</Priority>
    <ContentType>Job Order</ContentType>
    <ContentTypeId>89e9d051-e04f-46fa-81dd-47c736138831</ContentTypeId>
    <CreatedAt>2022-07-22T14:05:43.7285220+03:00</CreatedAt>
    <CreatedBy Caption="John Doe" Domain="41aedbcf-01a4-4517-8a2e-4c669d432652" Type="User">467a3ace-3e67-4c44-ae75-7a48bad80490</CreatedBy>
    <UpdatedAt>2022-07-22T14:05:43.7367360+03:00</UpdatedAt>
    <UpdatedBy Caption="John Doe" Domain="41aedbcf-01a4-4517-8a2e-4c669d432652" Type="User">467a3ace-3e67-4c44-ae75-7a48bad80490</UpdatedBy>
    <AssignedTo Caption="John Doe" Domain="41aedbcf-01a4-4517-8a2e-4c669d432652" Type="User">467a3ace-3e67-4c44-ae75-7a48bad80490</AssignedTo>
    <AssignedAt>2022-07-22T14:05:43.7367360+03:00</AssignedAt>
    <ClosedAt>2022-07-22T14:05:43.7367360+03:00</ClosedAt>
    <UserTags>
        <Tag>
            <Id>a0cb3ce3-788d-4567-9e62-f24dcb5c20bd</Id>
            <Name>User Tag</Name>
        </Tag>
    </UserTags>
    <SystemTags>
        <Tag>
            <Id>80bc3bc6-8a8a-43ce-b2b4-f140c89c888c</Id>
            <Name>System Tag</Name>
        </Tag>
    </SystemTags>
    <Profile>
        <JobOrder xmlns="" State="Current">
            ...
        </JobOrder>
    </Profile>
</Case>

Case.Open

Fired when Case status has set to Open state.

Case.Assign

Fired when Case assigned to a user or cleared assignment.

Case.Update

Fired when case properties (Subject, Description, Deadline, Profile etc.) has been updated.

Case.Close

Fired when case status has set to Closed state.

Case.Delete

Fired when case has been deleted from system.

Case.Deadline

Fired when case deadline has occurs.

Case.Reply

Fired when case received a reply from mail or another system.

Remarks

Events are processed in synchronous behavior and if any exception occurs transaction is rollbacked.

  • No labels