We will need to configure an inbound message to process the data returned from the poll.
In order to process the data that is returned from the remote system, we will need to create the appropriate messages in Unifi. To satisfy the requirements of this Guide, we will only need to configure the one message:
UpdateIncidentInbound
We shall look in detail at how to configure that message and the appropriate message scripts over the next couple of pages.
Let's begin by configuring the UpdateIncidentInbound Message.
We will configure an inbound update message to process the data returned from the poll and update our target record.
Click the 'Messages' icon, then New.
The fields to be configured for the UpdateIncidentInbound New Message modal are as follows:
Field | Description | Value |
---|---|---|
Your UpdateIncidentInbound New Message modal should look like this:
Click Submit and view to further configure the Message.
Navigate to Message > Response.
The Response fields to be configured are as follows:
*This field is automatically defaulted to true.
The 'Response' Message was previously configured (in the Outbound Incident Guide) to apply in an 'Inbound' direction. Change it to 'Bidirectional'.
Your Response form should look like this:
Navigate to Message > Bond.
The Bond fields to be configured are as follows:
*These fields are automatically populated.
Your Bond form should look like this:
Navigate to Inbound > Settings.
The Inbound Settings fields to be configured are as follows:
*Bond reference method:
Internal - lookup using the internal reference only.
External - lookup using the external reference only.
Both - lookup using both the internal and external references.
We have chosen the 'External' method because, in the payload we built, we only supplied the source_reference
. If we had also supplied the correlation_id
as the target_reference
, then we would have chosen 'Both' (which would have offered an extra level of validation to the checking).
Your Inbound Settings form should look like this:
Click Save.
We are now ready to configure the Fields for our UpdateIncidentInbound Message.
We will utilise the Field & Field Map records to configure the Message Scripts for the UpdateIncidentInbound Message.
It is worth copying all relevant OOTB Field Maps as are necessary for your integration before using any of them in your Field Records - thereby mitigating the risk of any potential issues with future upgrades.
Some Field Maps should already have been copied for this Integration whilst following the Outbound Incident Guide. Those that aren't will need to be copied. The Field Maps we shall use for our UpdateIncidentInbound Field records are:
Message Header
String
To copy the Message Header Field Map, navigate to the 'Field Maps' icon.
Click on the ellipsis to the right of the Message Header Field Map & then click Copy.
The fields to edit for the Copy Field Map modal are as follows:
*Name: We have chosen to prefix the existing Field Map Name with the initials of our Integration (you are free to choose any appropriate means of identifying/differentiating).
Your Copy Field Map modal should look like this:
Click Copy.
You will be redirected to the Details page of the newly created Field Map.
If necessary, repeat the process for the String Field Map.
Field records can represent the handling of two categories of data: either a data object which carries transaction specific data (e.g. name, time stamp, source id etc.), or a field element on the bonded record (e.g. Short description). We will begin by configuring a Field record to deal with the transaction specific data.
Back in the UpdateIncidentInbound Message, navigate to Message > Fields. Click New.
The fields to be configured for our message_header New Field modal are as follows:
*These fields are automatically defaulted to true, or automatically populated.
**Field map: Value may vary. Choose the copy Field Map you created for your Integration.
Your 'message.header' New Field modal should look like this:
Submit the record.
You will be redirected back to the Fields page of the UpdateIncidentInbound Message.
Depending on your requirements, you will need to create Field records for each of the relevant Incident record field elements you wish to map. As we have only chosen to include the short_description
& description
elements in both the Setup script & Response script of the Poll Processor, this Guide will focus on those two. If you wish, however, you are free to configure other Field records as required (ensuring you also define them in both the Setup Script & Response script of the Poll Processor).
The table below lists the Incident record field elements we will map and the relevant Field Maps required to configure each Field record.
*Field map: Values may vary (dependent on your configuration of the copies). Choose the copy Field Maps you created earlier.
The ‘incident.short_description’ (Integration level) Field record should already be in place (i.e. with Active set to false). This was automatically created by Unifi when we first created the Message level record when completing the Outbound Incident Guide. We will now create its Message level counterpart.
From the UpdateIncidentInbound Message, navigate to Message > Fields.
Your UpdateIncidentInbound Fields page should look like this:
Find the incident.short_description (Integration level) Field & set Active to true.
The empty circle icon next to the Field name turns green & contains a green ‘check’ (to indicate that Message level configuration exists for this Field) when we set Active to true. (The ‘Build Integration’ button became visible in the banner when we created the 'message.header' Field).
By setting the Active flag to true on the Integration level Field record listed on the Message, Unifi has automatically created the Message level counterpart.
Click to open the incident.short_description (Message level) Field to make a few minor changes.
The incident.short_description Field record opens to the Details page.
The following info message is also displayed (which can be closed):
Field inheritance is set to true by default. This means the record will be updated with integration-level Field values when saved (except for Active, Inherit and Message values).
You can either uncheck the Inherit field to configure locally, or edit the integration-level Field record. We will choose to uncheck the Inherit field and configure locally, because we want this inbound Field to be different to the outbound one (and the integration-level Field which was automatically created at that time).
Set Inherit to False.
Save the record (the fields now become editable).
Navigate to Field > Settings.
Edit the incident.short_description Field record as follows:
Your incident.short_description Field record should look like this:
Save the record.
Because the incident.description Field record is the same ‘type’ (PI - String) & the majority of the settings are the same as the previously configured Field, it will be quicker to copy the incident.short_description Field & make a few minor changes.
To quickly navigate to the UpdateincidentInbound Message from the Details page of the incident.short_description Field record...
...click the 'Preview' icon to the left of the Message field.
From the UpdateIncidentInbound Message, navigate to Message > Fields.
Click the ellipsis next to the incident.short_desscription Field record & click Copy.
The fields to edit for the Copy Field modal are as follows:
*This field is automatically populated.
Your 'incident.description' Copy Field modal should look like this:
Click Copy.
You will be redirected to the Details page of the newly created incident.description Field record.
Now that we’ve configured the Field records for the UpdateIncidentInbound message, we are ready to build our message scripts.
To quickly navigate to the UpdateIncidentInbound message from the Details page of the newly created incident.description Field record…
...click the 'Preview' icon to the left of the Message field.
The following Field records should now be in place for your UpdateIncidentInbound messsage:
Click on Build Message.
You will see the 'Message build successful' Info Message.
Navigate to Advanced > Script Editor.
Your Script Editor fields should initially look like this:
Navigate to View > Inbound to view the auto-generated code.
Your Script Editor fields should now look like this:
The Message Scripts reflect the mappings as per this Guide. Your scripts might differ depending on which Fields you chose to map (& defined in the payload). We will look at the Message Scripts in turn.
Payload to Stage:
Your Payload to Stage Message Script should look like this:
Stage to Target:
Your Stage to Target Message Script should look like this:
Before we test, we need to make a few changes. The first is to our Integration - to allow for inbound Message Identification.
Field | Description | Value |
---|---|---|
Field | Description | Value |
---|---|---|
Field | Description | Value |
---|---|---|
Field | Description | Value |
---|
Field | Description | Value |
---|
For a full description of the available Field Maps, please see the relevant page in our .
Incident Field | Field Map |
---|
For more information on Field Inheritance click .
Field | Description | Value |
---|
Field | Description | Value |
---|
Response
The immediate synchronous response to this message.
lookup: 'Response'
Async*
Turn this option on if you want inbound processing to occur asynchronously or this message is the first of an asynchronous message pair.
<false>
Bond ownership*
Determine if the sender should own the bond or not in order for this message to be processed? Use 'Ignore' to process regardless of the owner flag. (Choices: Ignore, Must own, Must not own.)
'Ignore'
Bond condition type*
The type of conditional check made on the bond. (None: no checks are made. State: checks against the state are made using the conditional checkboxes. Scripted: the 'Bond condition' script is used.)
'State'
Bond open
Process this message when the bond state is Open.
<true>
Bond reference method*
Method of searching for and validating an existing bond for incoming messages.
'External'
Name* | The name of your field map. (If left unedited, it will append the word 'Copy' to the existing name.) | <Your Name> |
Message* | The Message this Field record is linked with. | 'UpdateIncidentInbound' |
Description | Describe what this field is for and any specific details that might help you in future. | ‘The protocol message header’ |
Active* | Set to true to use this Field record for processing. | <true> |
Field map | The Field Map this Field record is linked with. | 'IS - Message Header'** |
Map to field* | Use this Field record to represent a field on a source/target table. | <false> |
Path | Where in the payload the data will be placed. | 'message' |
Property | The property in the payload the data will be written to. | 'header' |
Inbound* | Set to true to use for inbound Messages. | <true> |
Outbound* | Set to true to use for outbound Messages. | <false> |
short_description | 'PI - String'* |
description | 'PI - String'* |
Path | Where in the payload the data will be placed. | ‘detail’ |
Inbound | Set to true to use for inbound Messages. | <true> |
Outbound | Set to true to use for outbound Messages. | <false> |
Element | The field on the source/target table this Field record is mapped to. | 'Description' |
Property* | The property in the payload the data will be written to. | Automatically populated |
Description | Describe what this field is for and any specific details that might help you in future. | 'The incident's description' |
Message name
The message name that is unique for this integration.
'UpdateIncidentInbound'
Type
The primary purpose of the message.
'Update'
Direction
The direction(s) this message is configured to support.
'Inbound'
Description
The description for this message and the requirement it is meeting.
<Your description>