Send Design (Cost Estimate) Interface
Designs are sent to the q.se.ps.azure.data.messages.wmscostestimatemessage Queue on the Tenant Service Bus.
If a Dynamic Workflow is configured to post process the message, it will be on the q.se.ps.azure.data.messages.wmscostestimatemessage.post Queue instead.
CUs are combined at work locations, if they are the same. e.g. instead of CU1 quantity = 1 and CU quantity = 1, it would be CU1 quantity = 2
If the MergeTags configuration is set to False and two of the same CUs on a work location have different Tags, then they will not be combined.
Additional configuration is in Solution Center to determine what data to include in the message.
A Tag can be configured that, when placed on a CU, the CU will not be sent. Additionally, a CU Attribute, which are not user editable, can be
configured so that CUs with that attribute are not sent.
This interface ties in with the Cost Estimate REST endpoint. The client sends a REST request to WMSI and then WMSI extracts the Design data and puts the message in the Queue.
Sample Message
{
"workOrderId": 987654321,
"workflowSessionId": null,
"designId": "7b470c40-5d40-44d1-b6c5-9878f8d8fc47",
"designStatus": "In Design",
"notes": "This is unique design notes for each design in WorkOrder.",
"workOrderNumber": "WO1234567",
"workRequestId": "E851E434-829D-41AF-BD90-EF76D31CB991",
"messageId": "316CF3DA-CB92-428D-9EF6-DFEBC0012BCF",
"messageSegmentNumber": 1,
"messageSegmentsCount": 1,
"workLocations": [
{
"id": "d40d4c47-396c-4fa1-9772-ed778214a1a7",
"name": "WL 1",
"shortName": null,
"latitiude": 12345.0,
"longitude": 23456.0,
"number": 1,
"endNumber": 0,
"tags": [
{
"key": "TagKey",
"value": "TagValue"
}
],
"cus": [
{
"componentIds": [
"9d788e61-cd47-43b7-afc4-3e47d6fb5619",
"c80ab270-4467-4753-91c1-ee0ede1f27d4"
],
"wmscode": "SampleCUWMSCode",
"workFunction": "Install",
"subWorkFunctions": [
{
"name": "Install Existing",
"quantity": 2.0
}
],
"quantity": 10.0,
"attributes": {
"Owner": "Acme"
},
"tags": [
{
"key": "TagKey",
"value": "TagValue"
},
{
"key": "TagKey2",
"value": "TagValue2"
}
]
}
],
"attributes": null
}
],
"transactionId": "EXTCE-5ecfaa78-f951-4a31-a258-6d43aee5f8ff",
"isDesignChosen": true,
"designAttributes": [
{
"key": "SampleDesignAttributeKey",
"value": "SampleDesignAttributeValue"
}
],
"workRequestAttributes": [
{
"key": "SampleWRAttributeKey",
"value": "SampleWRAttributeValue"
}
]
}
Message Parameters
WmsCostEstimateMessage
A representation of the DXI design for the purposes of sending to the WMS.
WorkOrderId
The unique ID of the work order that was received from the WMS.
WorkflowSessionId
A session identifier which preserves message delivery order
Domain
The Domain of the work order.
Electric
Gas
DesignId
The DXI Design GUID. This ID can be used for interacting with Designer XI services, other ArcFM XI Applications, or with updates to this Design via the Work Order Interface.
DesignStatus
The DXI Status of the Design. This is generally the status that was sent by the WMS, but may have been translated
DesignNotes
Notes entered by the DXI user
Notes
Notes entered for each design in WorkRequest
WorkOrderNumber
The work order number that was received from the WMS.
WorkRequestId
The DXI Work Request GUID. This ID can be used for interacting with Designer XI services, or other ArcFM XI Applications.
MessageId
A unique GUID that identifies all messages that go together.
Since there is a size limit for messages in a Queue, it is possible a message may have to be split up. When a message is split up each individual message will have the same ID.
All of the messages will be inserted in to the Queue in one batch operation, so will always be together. The receiver will not have to wait for additional messages.
It is up to the receiver to merger all the messages back together.
MessageSegmentNumber
If a message was split up, this number will signify what piece of the message this one is. The first piece will be 1.
MessageSegmentsCount
If a message was split up, this is the number of pieces it was split up in to. If it is 1, the message was not split up.
WorkLocations
A list of work locations in the Design.
TransactionId
A random GUID for tracking the message. Can be turned on or off via configuration.
IsDesignChosen
Specifies if the design in the cost estimate message is the selected design in DXI.
DesignAttributes
Design attributes copied to the cost estimate message
WorkRequestAttributes
Work Request attributes copied to the cost estimate message
Links
This list will be populated if estimateUseKvStorage == true in WMSI config.
Contains the links to KV storgage attachment of the full message
WmsWorkLocation
Id
The internal DXI ID of the work location. Guaranteed to be unique.
Name
The Name of the Work Location in DXI
ShortName
The Short Name of the Work Location in DXI that appears on the map
Latitude
If configured to use the DSR file, this is the X coordinate of the Work Location in GIS.
Future functionality will allow this to be converted to other coordinate systems, like WGS84
Longitude
If configured to use the DSR file, this is the X coordinate of the Work Location in GIS.
Future functionality will allow this to be converted to other coordinate systems, like WGS84
Number
The number of the Work Location, as set by DXI. The number is assigned in the order they are created and starts at 0.
A span work location will have the number of the work location it starts at. As a result, more than one work location can have the same Number, if there are span work locations.
EndNumber
If a span work location, the number of the other work location the span ends at. If this is greater than 0, then this work location is a span work location
Tags
The list of Tags on a Work Location
Cus
The list of CUs in a Work Location
CUs with the same WMS Code and Work Function in the same Work Location will be combined and their Quantities added together.
Attributes
Empty list that gives the posiblity to store additional work location data
WmsCu
WmsCode
The unique ID of the CU
WorkFunction
The work function of the CU
SubWorkFunctions
Sub work functions broken down by quantity
Quantity
The quantity of the CU. It can have decimal places, if it is a linear quantity.
Attributes
The Attributes set on the CU in the form of a name value pair.
These come from the CU Library.
Tags
The list of Tags on a CU
If the child CU is part of a macro
then the macro name is included in the attributes as
"macro": "MacroName"
WmsTag
Represents a Tag in DXI that is placed on a Work Location
Key
The Category of the Tag
Value
The Name of the Tag
WorkFunctionQuantities
Name
The name of the custom work function
Quantity
The quantity for this custom work function