InventoryMovement Collaboration Template

The InventoryMovement collaboration sends inventory transactions, which often are referred to as goods movements, from a Customer Interaction Management (CIM) application to an Enterprise Resource Planning (ERP) application or between two ERP applications. The collaboration creates the inventory transaction in the destination application.

Note: IBM recommends identifying one application as the Master of the inventory and sending data either to it or from it, but not in both directions. Sending data in both directions can cause data integrity problems.

InventoryMovement processes the following inventory categories:

Inventory transactions can be either:

The following two business cases indicate how the InventoryMovement Collaboration can be used:

InventoryMovement processes the generic InventoryMovement business object. The collaboration uses this business object to capture changes to inventory levels for each of the inventory movement types (Issues, Receipts, Physical Transfers, and Logical Transfers).

Generic Item, which the collaboration uses to synchronize or verify the inventoried item in the destination application. In other words, before synchronizing the InventoryMovement business object, the collaboration can be configured to synchronize or verify the item referenced in the InventoryMovement business object. Instead of processing the generic Item business object, the collaboration can be configured to process any of the supported generic item business objects (ItemBasic, ItemOrder, or ItemPlanning) by specifying the item's type in the ITEM_TYPE configuration property.

Although InventoryMovement synchronizes only InventoryMovement, you can configure it to call the appropriate collaboration to verify or synchronize the following related business objects:

Business object Related collaboration properties Called collaborations

Item

ItemBasic

ItemOrder

ItemPlanning

VERIFY_SYNC_ITEM ITEM_TYPE

ItemSync

ItemWrapper

Issues and assumptions

Collaboration object setup

This section includes information on port bindings and required steps for setting up collaboration objects based on InventoryMovement. For information on standard features, ports, and configuration properties for collaboration templates, see the Collaboration Development Guide. For general information on creating collaboration objects, see the System Implementation Guide.

Port information

Figure 1 illustrates InventoryMovement's ports as they are displayed in System Manager. On each port the name to the left of the hyphen represents the business object's name. The name to the right of the hyphen is the port's name. The three-dimensional objects represent business objects.

Figure 1. InventoryMovement collaboration ports

Note: To prevent the collaboration object from using a port, bind that port to the Port connector. Binding the port indicates that the port is unused without causing the collaboration object to provide additional functionality.

Port name: DestinationAppRetrieve
Business object Bound to Function Verbs used
InventoryMovement The destination application's connector Sends a reference-valued business object to retrieve the full-valued business object. The result determines which verb to use when synchronizing the InventoryMovement.

Retrieve


Port name: From
Business object Bound to Function Verbs used
InventoryMovement Source application's connector or calling collaboration Receives the triggering business object. At the end of a synchronous call, this port also returns the triggering business object to the source application when the collaboration ends successfully.

Create Retrieve Update Delete


Port name: To
Business object Bound to Function Verbs used
InventoryMovement The destination application's connector

Sends the triggering business object out of the collaboration

Note: Because each inventory movement is posted as a distinct transaction and is not deleted or updated after posting, this collaboration is designed to support only the Create verb. However, the collaboration uses standard Update and Delete scenarios. Therefore, if you modify the business object to use the Update and Delete verbs, you can use this collaboration to handle these processes.

Create Update Delete


Port name: ToItemWrapper
Business object Bound to Function Verbs used
Item, ItemBasic, ItemOrder, or ItemPlanning The From port of ItemWrapper collaboration

Used to send a reference-valued generic item business object to the ItemWrapper collaboration. ItemWrapper interprets the type of generic item business object it receives, and then processes it accordingly.

  • If its triggering business object is used with the Sync verb, ItemWrapper retrieves the full business object from the source application, and then sends it with the Create verb to ItemSync.
  • If its triggering business object is used with the Exists verb, ItemWrapper retrieves the business object from the destination application to verify its existence.

In either case, ItemWrapper returns a status to InventoryMovement.

Sync Exists

Setting up the collaboration object

Using InventoryMovement as stand-alone

To set up InventoryMovement as a stand-alone collaboration object, follow these steps:

  1. Create the InventoryMovement collaboration object.
  2. Bind each of the collaboration object's ports as described in Port information.
  3. Set the Configuration properties for InventoryMovement.  

Using InventoryMovement in a collaboration-object group

To verify or synchronize related items as part of the InventoryMovement process, create one of the following collaboration-object groups:


Verify Synchronize Required collaborations
Items   InventoryMovement, ItemWrapper
  Items InventoryMovement, ItemWrapper, ItemSync

Using InventoryMovement in a collaboration-object group

The following procedure describes setting up InventoryMovement as part of a collaboration-object group:

  1. Create collaboration objects from the InventoryMovement, ItemWrapper, and (optionally) ItemSync templates.
  2. Edit the InventoryMovement collaboration object to bind its ToItemWrapper port to the From port of the ItemWrapper collaboration object.
  3. Bind the remaining ports for the InventoryMovement collaboration object as described in this document's Port information section.
  4. Set the InventoryMovement collaboration object's VERIFY_SYNC_ITEM configuration property. For item verification, set it to "verify"; for item synchronization, set it to "sync".
  5. Set the InventoryMovement collaboration object's ITEM_TYPE property to the desired item type.
  6. Edit the ItemWrapper collaboration object to bind its To port.
  7. Bind the ItemWrapper collaboration object's remaining ports. For more information, see Port information in the Wrapper collaboration reference page.

    Note: System Manager will have already bound the ItemWrapper collaboration object's From port to the InventoryMovement collaboration object. For item verification, go directly to step #9.

  8. For item synchronization, edit the ItemSync collaboration object to bind its ports. System Manager will have already bound its From port to the ItemWrapper collaboration object. Bind its remaining ports. For more information, see Port information in the ItemSync Collaboration reference page.
  9. Set the configuration properties for each collaboration. For more information, see:

Collaboration template processes

This section illustrates the process logic for this collaboration template:

Overall process logic

Figure 2 illustrates InventoryMovement's process logic.

Figure 2. InventoryMovement collaboration processes logic

Inherited process logic

This collaboration template uses the following standard collaboration business processes:

For information on these processes, see the Collaboration Development Guide.

Verify or synchronize referenced items

Figure 3 illustrates InventoryMovement's business processes.

Figure 3. InventoryMovement collaboration: verify or synchronize referenced items

Compensation processing

InterChange Server Express can roll back a transaction when any step in a transactional collaboration fails. For example, when InventoryMovement is a member of a collaboration-object group that participates in a transactional collaboration, its actions are one subtransactional step in a larger transaction. If any step in the collaboration-object group's business process fails, the transactional collaboration details how InterChange Server Express rolls back the processing of every collaboration in the group.

When an InventoryMovement collaboration object is used independently of other collaboration objects or the collaboration object's From port is bound to a source application rather than to another collaboration, its process comprises a single transactional step. In such a situation, it is not necessary to perform rollback.

To cause a collaboration object or a collaboration-object group to perform rollback requires modification of the collaboration template. To understand transaction processing in the InterChange Server Express system, see the System Implementation Guide. For information on adding transaction processing to the collaboration template, see the Collaboration Development Guide.

To extend the collaboration object to handle transaction processing, complete the following steps:

  1. Add this capability to the collaboration template and to every other collaboration template in the collaboration-object group.
  2. Set the minimum transaction level of the collaboration object and all members of the collaboration-object group to a value higher than None. If a failure occurs in any subtransaction step, settings of Minimal Effort or higher cause this collaboration object and other collaboration objects in the group to execute compensation for Create, Update, and Delete operations performed on all business objects.
  3. Set the USE_RETRIEVE property of the collaboration object and all other members of the collaboration-object group to "true". Forcing the collaboration objects to retrieve values before changing them allows the collaboration objects to restore the original values in an Update or Delete process.

Configuration properties

This section describes the standard properties and collaboration template-specific properties for this collaboration template:

Standard properties

This collaboration template uses the following standard configuration properties for collaboration templates:

For information on these configuration properties, see the Collaboration Development Guide.

Properties specific to this collaboration template

In addition to its standard configuration properties, this collaboration template has the configuration properties described below.

Configuration properties specific to the InventoryMovement collaboration template

Property name and explanation Possible values Default value

ITEM_TYPE

Set to the type of generic Item whose existence must be synchronized or verified before the collaboration creates the InventoryMovement business object. If the InventoryMovement collaboration's VERIFY_SYNC_ITEM property evaluates to "sync" or "verify", the collaboration uses the value of this property to determine the type of item to send to ItemWrapper.

Item, ItemBasic, ItemOrder, ItemPlanning ItemBasic

VERIFY_SYNC_ITEM

Set to "sync" to cause InventoryMovement to synchronize inventoried items in the destination application. InventoryMovement copies the ItemId from the InventoryMovement business object and creates the type of generic business object specified in the ITEM_TYPE property. InventoryMovement sends the business object with the Sync verb to ItemWrapper. In turn, ItemWrapper retrieves values for all attributes from the source application and sends the business object with the Create verb to ItemSync. If ItemSync fails to create the item, InventoryMovement raises an exception message, and then ends. For details on the messages for InventoryMovement, refer to the following collaboration message file: \collaborations\messages\InventoryMovement.txt.

Set to "verify" to cause InventoryMovement to verify inventoried items in the destination application. InventoryMovement copies the ItemId from the InventoryMovement business object, and then creates the type of generic business object specified in the ITEM_TYPE property. InventoryMovement sends the business object with the Exists verb to ItemWrapper. ItemWrapper retrieves the business object from the destination application. If ItemWrapper fails to retrieve an inventoried item, InventoryMovement raises an exception message, and then ends.

Set to "neither" to cause InventoryMovement to create the triggering InventoryMovement business object without first synchronizing inventoried items or verifying existing items in the destination application.

neither, verify, sync

neither

Collaboration messages

Note: Messages that provide information appear at the trace destination only if the trace level has been set to 3 or higher. The warning messages used by other collaborations are not applicable to InventoryMovement.

To view an explanation of the messages of this collaboration template, launch the Log Viewer and open the collaboration template's message file. To launch the Log Viewer and open the collaboration template's message file:

  1. In the Start menu, click Programs > IBM WebSphere Business Integration Express > Toolset Express > Administrative > Log Viewer.
  2. In the File menu, click Open.
  3. Use the Look In field to change the current folder to ProductDir\collaborations\messages, and then select the message file for this collaboration template.

Upgrade information

Upgrade process

To upgrade to a newer version of the collaboration template, perform the following steps:

  1. Stop the current InventoryMovement collaboration.
  2. Back up the repository. For information about backing up the repository, see the System Implementation Guide.
  3. If you have customized the collaboration template:
  4. Install the new InventoryMovement collaboration template.
  5. Add your customizations to the new collaboration template.
  6. Create the new collaboration object, binding it to the appropriate connectors. For more information, see Collaboration setup.
  7. Run and test the new collaboration object.
  8. Make changes to the collaboration object based on any problems found during testing.

Copyright IBM Corp. 1997, 2004

Copyright IBM Corp. 2004