### Order New Business Process

The Order New business process defines the process for requesting a new item from the factory inventory, if the ordered item is not available in the company inventory.

The business process is started by the Order Requisition business process if the item is not available in the company inventory. The business process checks the factory inventory for the item. If the item is available in the factory inventory, the business process ends the ordering process. If the item is not available in the factory inventory, the business process notifies the Manufacturing department to produce a new item and initiates the Billing and Shipping business processes.

To view the Order New business process in WebLogic Workshop, double-click the workflow/OrderNew.jpd file in the Application window.

As you step through each node description:

1. Double-click the node in the business process to invoke the node builder and display details about the node.
2. Select View Code in the node builder (or by right-clicking the node), when applicable, to display the related code in the Source View window.

The following table describes each node in the Order New business process.

Stepping Through the Order New Business Process

Business Process Node | Description
--- | ---
| Defines the asynchronous event that starts the business process: a call from the Order Requisition business process indicating that the ordered item is out of stock. The Client Request node receives the order as an InputDocument argument.
| Transforms the message to the appropriate format. The Control Send with Return node uses m_Ixform, an instance of the TransformsInputMessage.dtf data transformation control, to call the getInput() method to transform the message received from the InputDocument type to the Input type.
| Checks the factory inventory for the ordered item. The Control Send node uses m_AppView, an instance of the Appview1.jcx Application View control, to call the CheckInventory() method to interface with the Application View to check the factory inventory. The node also uses m_xform, an instance of the Transforms.dtf data transformation control, to call the following methods: createFactoryRequest() to transform the request received into the appropriate format. isFactoryAvailable() to determine if the item is available in the factory inventory.
| Retrieves the order tracking ID for the current order. The Control Send with Return node uses m_OrderTrack, an instance of the e2eOrderTrackingEJB.jcx EJB control, to call the findByPrimaryKey() method to locate the order tracking ID for the current order.
| Branches the business process flow, based on whether or not the ordered item is available in the factory inventory. If the item is available, the business process proceeds to the UpdateAppStatusAvailability node;. If the item is not available, then the business process proceeds to the Not Available node. The Decision node calls the isAvailable() Java method to branch the business process flow accordingly.
| Updates the status of the order. The Control Send node uses m_OrderTrack, an instance of the e2eOrderTrackingEJB.jcx EJB control, to call the setDescRemote() method to indicate that the order is available in the local inventory.
| Branches the business process flow, based on whether the reason the ordered item is unavailable is lack of inventory or another condition. If the item is unavailable due to lack of inventory, then the business process proceeds to the UpdateAppStatusNonAvailability node. If the item is unavailable due to another reason, the order process ends. The Decision node calls the isNotAvailable() method to branch the business process flow accordingly.
| Updates the status of the order. The Control Send node uses m_OrderTrack, an instance of the e2eOrderTrackingEJB.jcx EJB control, to call the setDescRemote() method to indicate that the order is not available in the local inventory.
| Notifies the Manufacturing department that a new item needs to be produced. The Control Send node uses notifyManufacturingControl, an instance of the NotifyManufacturingControl.jcx web service control, to call the notifyMethod() method to notify the Manufacturing department.
| Requests the Billing and Shipping departments to generate a bill for the new item (just produced by the Manufacturing department) and to ship it to the recipient. The Control Send node uses mPublish, an instance of the Publish.jcx Message Broker control, to call the notifyMethod() method to send requests to the Billing and Shipping departments. Before sending the requests, the node uses m_NetTransform, an instance of the TransformsNetworkMessage.dtf data transformation control, to call the transformToBasicTypedNet() method to transform the requests to an intermediary format, NetMessageDocument, in preparation for delivery to the Message Broker.