Generic OrderDeliveryStatus business object

The generic OrderDeliveryStatus business object is one of the generic business objects used by the Order Status collaboration template to capture the status of a sales order during the stages of the order fulfillment process. Creation of the generic OrderDeliveryStatus business object is triggered when the status of an order is changed by a delivery activity.

Some order-management systems use delivery notes to track the delivery of items in a sales order. Each time such a system ships an item in a sales order, it generates a delivery note. The delivery note tracks the changes to the shipment, such as the change from "not shipped" to "shipped". Each delivery note has a unique identifier.

When the order-management system uses delivery notes, the generic OrderDeliveryStatus business object represents the status change stored in the note. If no delivery note is used, the generic OrderDeliveryStatus business object represents shipping status changes made directly to the items in the sales order.

In either case, the OrderDeliveryStatus business object is an image of the underlying sales order. For example, if the order contains three line items, the business object contains the order header and the three line items from the order. If the triggering event affects only one line item of the sales order, the OrderDeliveryStatus business object still captures the current status of the header and each item.

Often there is a complex relationship between a delivery note and the sales order. The generic OrderDeliveryStatus business object can report status changes even if the relationship is complex. For example, it can report delivery changes during the following operations:

Business object structure

The OrderDeliveryStatus business object is hierarchical. One of its attributes references the OrderDeliveryStatusLine child business object, which contains delivery status information about a line item in the associated sales order.

Each instance of an OrderDeliveryStatus business object matches the structure of its associated sales order. If the sales order has two line items, the OrderDeliveryStatus business object has two OrderDeliveryStatusLine business objects. These business objects contain information from their associated sales order header and line items as well as the delivery status and delivery information about the particular Delivery whose status changed.

Whenever the delivery of a line item is picked or packed or shipped in the source application, the application's adapter creates an OrderDeliveryStatus business object. The business object references separate child business objects for each line item in the sales order, regardless of whether the delivery status of individual line items has changed.

For example, in a sales order with two line items, if the delivery status of only one line item changes, the OrderDeliveryStatus business object still has two OrderDeliveryStatusLine business objects. Only one of the child business objects contains the change in status. The other child business object contains no information specific to the current delivery.

Creating business objects to report order delivery status

Delivery notes that track sales orders can be quite complicated. The following examples show a few of the possibilities:

Delivery activity Example
A system can ship each line item in a sales order separately. Assume that Sales Order 201 has line item 10 for Material X and line item 20 for Material Y. The system can deliver Material X on Monday and Material Y on Saturday. The delivery for line item 10 is different from the delivery for line item 20.
A system can ship a single line item in separate parts at different times. Assume that the quantity specified for Material X in line item 10 is 100 pounds. The system can deliver 50 pounds of Material X from location 1 on Monday and another 50 pounds of Material X the following Friday. Line item 10 has two deliveries.
If a system ships a single line item in separate parts from different locations, the delivery note tracking the line item's shipping status contains separate lines for each shipment of the item. Assume that the Friday delivery of 50 pounds for line item 10 ships from two different locations (25 pounds from each). The delivery note for line item 10 has two lines.

Figure 1 illustrates the relationship of Sales Order 201 to three delivery notes: two notes for line item 10 and one note for line item 20.

Figure 1. A sample sales order and its delivery notes

When the status of the shipment of line item 20 changes to Picked, the source application creates delivery note 8002 and its adapter creates an OrderDeliveryStatus business object to report the change.

When the status of the first shipment of line item 10 changes to Shipped, the source application creates delivery note 8000 and its adapter creates a second OrderDeliveryStatus business object to report the change.

When the status of the second shipment of line item 10 changes to Picked, the source application creates delivery note 8001 and its adapter creates a third OrderDeliveryStatus business object.

When order line item 10 is fully shipped, the source application updates the status of delivery note 8001 to Shipped and its adapter creates a fourth OrderDeliveryStatus business object to report this final change to order line item 10.

When the status of the sales order's line item 20 changes to Shipped, the source application updates delivery note 8002 and its adapter creates a fifth OrderDeliveryStatus business object.

Using attributes to report status changes

The OrderDeliveryStatus business object and its child business object use five attributes to report the status of a line item's delivery.

Table 1 explains the two status attributes used by the OrderDeliveryStatus business object.

Table 1: Status attributes in the OrderDeliveryStatus business object

Business object attributes
Attribute Value reported
OrderDeliveryScheduledStatus Indicates whether the deliveries for the entire sales order have been scheduled; that is, whether they have been created. For example, if there are two line items and the delivery of only one has been scheduled, this might contain a value of "Partially Scheduled".
OrderShipmentStatus Overall shipping status of the sales order across all line items. For example, if there are two line items and only one has shipped, this might contain a value of "Partially Shipped".

Table 2 explains the three status attributes used by the OrderDeliveryStatusLine business object.

Table 2: Status attributes in the OrderDeliveryStatusLine business object

Business object attributes
Attribute Value reported
OrderLineDeliveryScheduledStatus Overall schedule status of the line item it represents, summarizing the status of all scheduled deliveries for the line item. For example, if there are two deliveries for the line item and only one has been scheduled, this might contain a value of "Partially Scheduled".
OrderShipmentStatusLine Overall shipping status of the line item it represents, summarizing the status of all deliveries for the line item. For example, if there are two deliveries for the line item and only one has shipped, this might contain a value of "Partially Shipped".
DeliveryShipmentStatus Shipping status of the delivery that triggered creation of the business object. This attribute only has a value if the triggering delivery is for the line item represented by this child business object. For example, if the sales order has two line items and one of them has just been picked for shipment, the OrderDeliveryStatusLine representing that line item might have a value of "Picked" in this attribute; the OrderDeliveryStatusLine representing the other line item has no value in this attribute.

The following sections illustrate the four OrderDeliveryStatus business objects created as the shipping status of Sales Order 201 changes. The example business objects and their child business objects indicate how the values of three different status attributes change as the sales order ships.

Note: These examples show only the status attributes. To examine the full set of attributes for these business objects, use System Manager or Process Designer.

Triggering the first OrderDeliveryStatus business object

Figure 2 illustrates the relationship between a sample sales order in an ERP application and the business objects that contain its status information for a single delivery. The sales order in Figure 2 is an entity in the ERP application. The OrderDeliveryStatus business object represents the picking of line item 20 in the warehouse. The business object corresponds to the order status represented by delivery note 8002 in Figure 1. The OrderDeliveryStatus business object has two OrderDeliveryStatusLine business objects, one representing the delivery of order line item 10 and one representing the delivery of order line item 20.

Figure 2. The first change of delivery status in the sample sales order

When the OrderDeliveryStatus business object is created for the picking of line item 20, the business object reports the delivery status of the entire sales order as Partial in its OrderShipmentStatus attribute.

The OrderDeliveryStatusLine business object that reports the overall status of the sales order's line item 20 contains Picked in its OrderLineShipmentStatus attribute and in its DeliveryShipmentStatus. These attributes reflect the overall status of the line item as well as the status that triggered the business object. The value in the DeliveryNoteId attribute (8002) reflects the delivery note that was created when the line item was picked.

The OrderDeliveryStatusLine business object that reports the overall status of the sales order's line item 10 has the value "Not Scheduled" in its OrderLineShipmentStatus attribute because delivery of the first line item has not yet been scheduled. There is no value in its DeliveryShipmentStatus attribute because a change in the delivery status of order line 10 did not trigger creation of this OrderDeliveryStatusLine business object. The value in its DeliveryNoteId attribute (blank) reflects the fact that the delivery note was not created for this line item.

Triggering the second OrderDeliveryStatus business object

Figure 3 illustrates the second change in delivery status of Sales Order 201. The OrderDeliveryStatus business object in this figure represents the first shipment of line item 10, corresponding to the order status represented by delivery note 8000 in Figure 1.

Figure 3. The first delivery of the first line item in the sample sales order

The OrderDeliveryStatus business object still contains Partial in its OrderShipmentStatus attribute.

The OrderDeliveryStatusLine business object that reports the overall status of the sales order's line item 10 contains Partially Shipped in its OrderLineShipmentStatus attribute because only half of the 100 pounds has been shipped. However, the business object reports the status of the current delivery as Fully Shipped in its DeliveryShipmentStatus attribute because the current delivery of 50 pounds was fully shipped. The value in its DeliveryNoteId attribute (8000) reflects the delivery note that was created when the line item was shipped.

The OrderDeliveryStatusLine business object that reports the overall status of the sales order's line item 20 still contains Picked in its OrderLineShipmentStatus attribute. However, this child business object has no value in its DeliveryNoteId attribute because the delivery note was not created for this item. It also has no value in its DeliveryShipmentStatus attribute because this line item did not trigger the business object.

Triggering the third OrderDeliveryStatus business object

Figure 4 illustrates the third delivery of Sales Order 201. The OrderDeliveryStatus business object in this figure represents the picking of the 25 pounds of Material X for line item 10, corresponding to the order status represented by delivery note 8001.

Figure 4. Picking of the second delivery of the first line item in the sample sales order

The OrderDeliveryStatus business object still contains Partial in its OrderShipmentStatus attribute.

The OrderDeliveryStatusLine business object that reports the overall status of the sales order's line item 10 still contains Partially Shipped in its OrderLineShipmentStatus attribute but reports the status of the current delivery as Partially Picked in its DeliveryShipmentStatus attribute because the picking of 25 pounds triggered the object's creation. The value in its DeliveryNoteId attribute (8001) reflects the delivery note that was created when the line item was picked.

Triggering the fourth OrderDeliveryStatus business object

Figure 5 illustrates the fourth change of delivery status of Sales Order 201. The OrderDeliveryStatus business object in this figure represents the shipping of the final 50 pounds of Material X for line item 10, corresponding to an update to the order status represented by delivery note 8001.

Figure 5. The final delivery of the first line item in the sample sales order

The OrderDeliveryStatus business object still contains Partial in its OrderShipmentStatus attribute.

The OrderDeliveryStatusLine business object that reports the overall status of the sales order's line item 10 now contains Shipped in its OrderLineShipmentStatus attribute and Shipped in its DeliveryShipmentStatus attribute because the shipping of the remaining pounds triggered the object's creation.

Triggering the final OrderDeliveryStatus business object

Figure 6 illustrates the final delivery of Sales Order 201. The OrderDeliveryStatus business object in this figure represents the shipping of the 75 pounds of Material Y for line item 20, corresponding to the order status represented by delivery note 8002.

Figure 6. The delivery of the second line item and final delivery of the sample sales order

The OrderDeliveryStatus business object now contains Shipped in its OrderShipmentStatus attribute because Sales Order 201 has fully shipped.

The OrderDeliveryStatusLine business object that reports the overall status of the sales order's line item 10 now has no value in its DeliveryShipmentStatus attribute because the triggering delivery note was not for line item 10.

The OrderDeliveryStatusLine business object that reports the overall status of the sales order's line item 20 now contains Shipped in its OrderLineShipmentStatus attribute and Shipped in its DeliveryShipmentStatus attribute because the shipping of the last line item triggered the object's creation and completed the shipment for the sales order.

Generating a single delivery note from multiple sales orders

In the examples discussed thus far, each sales order has had many delivery notes. There are times, however, when several sales orders may produce a single delivery note.

Operation Example
Multiple sales orders can generate a single delivery. Assume that Sales Order 202 has two line items, both of which can ship on Monday. Assume also that Sales Order 203, which has a single line item, can also ship on Monday to the same customer from the same location. The two sales orders can share the same delivery.

Figure 7 illustrates the relationship of Sales Orders 202 and 203 to a single delivery note: two lines on the delivery note correspond to the line items in Sales Order 202 and one line in the note corresponds to the line item in Sales Order 203.

Figure 7. Two sales orders and their delivery note

Although the two sales orders produce a single delivery note, two OrderDeliveryStatus business objects are created, one for each sales order. One of the OrderDeliveryStatus business objects references two OrderDeliveryStatusLine business objects, one for each of the line items in Sales Order 202. The other OrderDeliveryStatus business objects references one OrderDeliveryStatusLine business object, for the line item in Sales Order 203.

Implementation

The OrderDeliverStatus Business Object contains two additional attributes that support the TradingPartnerOrderManagement collaboration template's business process by synchronizing the status of a supplier's sales orders with the corresponding buyer's purchase orders.

Attribute Description
FromTradingPartnerURL When the OrderDeliveryStatus collaboration template is implemented as part of the TradingPartnerOrderManagement process, this attribute contains the URL address of the initiating Trading Partner.
ToTradingPartnerURL When the OrderDeliveryStatus collaboration template is implemented as part of the TradingPartnerOrderManagement process, this attribute contains the URL address of the receiving Trading Partner.

Supported verbs

The generic OrderDeliveryStatus business object supports the following verbs:

Examining the object

To examine the attributes of the generic OrderDeliveryStatus business object, use System Manager or Process Designer Express.

Related Reference

Copyright IBM Corp. 1997, 2004