RequestForReassignOrderRelease service

This is a synchronous service, which can be called from an external UI. The service is the trigger for the REASSIGN_ORDER_RELEASE.0001 transaction.

This service accepts the reassign request from the user and verifies the list of shipments, order releases, order line, order, or node. The service accepts inputs in the following format:

<ReassignOrderRelease OrderLineKey="" OrderHeaderKey="" PrimeLineNo="" SubLineNo="" 
EnterpriseCode="" DocumentType="" OrderNo=""ReassignFromNode="">
   <OrderReleases>
     <OrderRelease OrderReleaseKey="" OrderHeaderKey="" ReleaseNo=""/>
   </OrderReleases>
   <Shipments>
    <Shipment ShipmentKey="" ShipNode="" SellerOrganizationCode="" ShipmentNo=""/>
   </Shipments>
<PassthroughParams/>
</ReassignOrderRelease>
Table 1. Sample input patterns for the supported user requests
SL# User Request Input format
1 To reassign a selected list of order releases

<ReassignOrderRelease>
   <OrderReleases>
     <OrderRelease OrderReleaseKey=""/>
   </OrderReleases>
</ReassignOrderRelease>
or

<ReassignOrderRelease>
   <OrderReleases>
     <OrderRelease OrderHeaderKey="" ReleaseNo=""/>
   </OrderReleases>
</ReassignOrderRelease>
2 To reassign a selected list of shipments

<ReassignOrderRelease>
   <Shipments>
     <Shipment ShipmentKey=""/>
   </Shipments>
</ReassignOrderRelease>
or

<ReassignOrderRelease>
   <Shipments>
     <Shipment ShipNode="" SellerOrganizationCode="" ShipmentNo=""/>
   </Shipments>
</ReassignOrderRelease>
3 To reassign all the order releases released to a node for an order line

<ReassignOrderRelease ReassignFromNode="" OrderLineKey=""/>
or
<ReassignOrderRelease ReassignFromNode="" OrderHeaderKey=""
PrimeLineNo="" SubLineNo=""/>
Note: When a release is formed by two or more order lines, this user request backorders all the order lines specific to the release.
4 To reassign all the order releases released to a node for an order
<ReassignOrderRelease ReassignFromNode="" OrderHeaderKey=""/>
or
<ReassignOrderRelease ReassignFromNode="" EnterpriseCode="" 
DocumentType="" OrderNo=""/>
5 To reassign all the order releases, released to a Node
<ReassignOrderRelease ReassignFromNode=""/>
6 To reassign all the order releases for an order line
<ReassignOrderRelease OrderLineKey=""/>
or
<ReassignOrderRelease OrderHeaderKey="" PrimeLineNo="" SubLineNo=""/>
Note: When a release is formed by two or more order lines, this user request backorders all the order lines specific to the release.
7 To reassign all the order releases for an order
<ReassignOrderRelease OrderHeaderKey=""/>
or
<ReassignOrderRelease EnterpriseCode="" DocumentType="" OrderNo=""/>
The input from the user request in read with the following order of precedence:
  1. Order releases in the input
  2. If not, Shipments in the input
  3. If not, Order Line in the input
  4. If not, Order in the input
  5. If not, Ship Node in the input
The service prunes the input attributes and validates the data passed in the input. If both OrderRelease and OrderLine are passed in the input, the OrderLine is ignored. Similarly, if OrderLine and Order are passed, the Order is ignored.

This service does not do any business validation other than checking whether the values passed in the input exist in system or not. For example, if the reassign request involves 10 order releases, of which only 9 exist in OMS but one does not, the services returns and appropriate error and the user must rectify it before requesting for reassign again.

After the necessary validations are done, the service adds a message to a JMS queue for the reassign request in the following format:

<Message FlowName="REASSIGN_ORDER_RELEASE.0001" TransactionKey="REASSIGN_ORD_REL.0001"> 
  <AgentDetails>
   <MessageXml Action="Get" GenerateMessages="Y">
    <!-- validated user request -->
   </MessageXml>
 </AgentDetails>
</Message>
For a user request of pattern 3 mentioned in Table 1, the message format is as follows:

<Message FlowName="REASSIGN_ORDER_RELEASE.0001" TransactionKey="REASSIGN_ORD_REL.0001">
   <AgentDetails>
     <MessageXml Action="Get" GenerateMessages="Y" ReassignFromNode="" OrderLineKey=""/>
   </AgentDetails>
</Message>
For a user request of pattern 5 mentioned in Table 1, the message format is as follows:

<Message FlowName="REASSIGN_ORDER_RELEASE.0001" TransactionKey="REASSIGN_ORD_REL.0001">
   <AgentDetails>
     <MessageXml Action="Get" GenerateMessages="Y" ReassignFromNode=""/>
   </AgentDetails>
</Message>
For a user request of pattern 7 mentioned in Table 1, the message format is as follows:

<Message FlowName="REASSIGN_ORDER_RELEASE.0001" TransactionKey="REASSIGN_ORD_REL.0001">
   <AgentDetails>
     <MessageXml Action="Get" GenerateMessages="Y" OrderHeaderKey=""/>
   </AgentDetails>
</Message>