The handleModifyOrder
chain is triggered when a fulfiller receives a ModifyOrder
message. Determines whether the modification is valid, performs it if it is valid, and sends out a ModifyOrderNotification
message to inform other systems of the changes that were made, or that the changes requested were invalid.
The following sections describe each processor in the pipeline chain.
extractOrderId1
This processor attempts to extract the ID of the order from the OrderId
property of the ModifyOrder
message.
Transactional mode: TX_MANDATORY
Nucleus component: /atg/commerce/fulfillment/processor/ExtractOrderId
PipelineProcessor object: atg.commerce.fulfillment.processor.ProcExtractOrderId
Transitions: Return value of 1 executes the loadOrder1processor
.
loadOrder1
This processor loads the order from the order repository.
Transactional mode: TX_MANDATORY
Nucleus component: /atg/commerce/fulfillment/processor/LoadOrderRepository
PipelineProcessor object: atg.commerce.fulfillment.processor.ProcLoadOrderRepository
Transitions: Return value of 1 executes the handleModificationClassType
processor.
handleModificationClassType
Determines if the modifications listed in the ModifyOrder
message are valid. If so, it calls the appropriate processor chains, and upon conclusion, passes control to the updateOrderRepository1 processor. The only chain that this processor will trigger is performIdTargetModification
. If a modification listed is not valid, then the chain moves on to the modificationNotSupported
processor.
Transactional mode: TX_MANDATORY
Nucleus component: /atg/commerce/fulfillment/processor/HandleModificationClassType
PipelineProcessor object: atg.commerce.fulfillment.processor.ProcHandleModificationClassType
Transitions: Return value of 1 executes the updateOrderRepository1
processor. Return value of 2 executes the modificationNotSupported
processor.
modificationNotSupported
Sets the status of the particular modification to STATUS_FAILED and adds the modification to the list to be sent back in a ModifyOrderNotification
message. Control then passes to updateOrderRepository1.
Transactional mode: TX_MANDATORY
Nucleus component: /atg/commerce/fulfillment/processor/ModificationNotSupported
PipelineProcessor object: atg.commerce.fulfillment.processor.ProcModificationUnsupported
Transitions: Return value of 1 executes the updateOrderRepository1processor.
updateOrderRepository1
Updates the order in the repository with any changes that may have been made during the execution of this chain.
Transactional mode: TX_MANDATORY
Nucleus component: /atg/commerce/fulfillment/processor/UpdateOrderRepository
PipelineProcessor object: atg.commerce.fulfillment.processor.ProcUpdateOrderRepository
Transitions: Return value of 1 executes the sendModifyOrderNotification1
processor.
sendModifyOrderNotification1
Sends a ModifyOrderNotification
message with the list of modifications performed during the execution of this chain using JMS.
Transactional mode: TX_MANDATORY
Nucleus component: /atg/commerce/fulfillment/processor/SendModifyOrderNotification
PipelineProcessor object: atg.commerce.fulfillment.processor.ProcSendModifyOrderNotification
Transitions: None. This is the last link in the chain and causes the PipelineManager
to return to the caller.