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