The handleElectronicsFulfillOrderFragment
chain is executed when a ElectronicFulfiller
receives a FulfillOrderFragment
message.
The following sections describe each processor in the pipeline chain.
extractOrderId6
This processor attempts to extract the ID of the order from the OrderId
property of the FulfillOrderFragment
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 handleRetrieveOrder2
processor.
handleRetrieveOrder2
This processor determines the method by which the Order should be loaded. If the order ID was successfully extracted in the extractOrderId
processor, then we move to the loadOrder8 processor. If not, then it checks the Boolean LookUpOrderIdFromOrder
property of the OrderFulfiller
. If true, we move to the loadSaveOrder2 processor. If false, then it throws an InvalidParameterException
, and chain execution stops.
Transactional mode: TX_MANDATORY
Nucleus component: /atg/commerce/fulfillment/processor/HandleRetrieveOrder
PipelineProcessor object: atg.commerce.fulfillment.processor.ProcHandleRetrievingOrder
Transitions: Return value of 1 executes the loadSaveOrder2
processor. Return value of 2 executes the loadOrder8
processor.
loadSaveOrder2
This processor checks to see if the Order exists in the order repository, using the OrderExists
method of OrderManager
, and using the ID of the serialized order within the FulfillOrderFragment
message as the parameter. If the order exists, the processor loads the order. If it does not, then fulfillment is using a different repository than the order placement system. The processor then saves the order from the message into the repository. In either case, the chain then moves to the processElectronicShippingGroupsChain
processor.
loadOrder8
This processor loads the order from the repository. Control then passes to processElectronicShippingGroupsChain
.
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 processElectronicShippingGroupsChain
processor.
processElectronicShippingGroupsChain
This processor iterates through the shipping groups contained in the FulfillOrderFragment
message, and runs the processElectronicShippingGroup
chain for each.
Transactional mode: TX_MANDATORY
Nucleus component: /atg/commerce/fulfillment/processor/ProcessElectronicShippingGroupsChain
PipelineProcessor object: atg.commerce.pricing.processor.ProcSendScenarioEvent
Transitions: Return value of 1 executes the updateOrderRepository8
processor.
up
dateOrderRepository8
This processor 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 sendModifyOrderNotification8
processor.
sendModifyOrderNotification8
This processor 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.pricing.processor.ProcSendScenarioEvent
Transitions: None. This is the last link in the chain and causes the PipelineManager
to return to the caller.