Detailed workflow: receiving, filtering, and validating a business object

The following outlines the solution workflow as an item is received from UCCnet, passes through preprocessing filtering and validating processes, and is sent to an ItemDispatcher collaboration object for optional processing of cascaded GLNs.

Related information

For more detailed process logic behind the steps in this high-level flow, see the following collaboration templates: Also, refer to the Installation guide for detailed information on creating port connections between collaboration objects and between collaboration objects and connectors.

Workflow

  1. A worklist is requested from UCCnet. The AS2 channel connector receives the worklist from the AS2 channel server (iSoft Peer-to-Peer Agent, TPI server or WebSphere® Business Integration Connect). This worklist can contain one type of notification from the following list:
    • One or more publication information notifications if you are supporting UCCnet DTDs
    • One or more Catalogue Item Notifications if you are supporting UCCnet XSDs
    • One or more price/pricebracket notifications if you are supporting UCCnet XSDs
    .
  2. The AS2 channel connector sends the worklist to the IBM® WebSphere Business Integration Data Handler for XML, which converts it into an application specific business object of the form UCCnetxxx_envelope (if iSoft connectivity is used), UCCnetTPIxxx_envelope (if TPI connectivity is used), or UCCnetJMSxxx_envelope (if WebSphere Business Connect is used with JMS). This business object contains the entire UCCnet message, including each individual data instance and the commands related to it.
    Note: In this and the following steps, the variable xxx specifies the XML definition type used (DTD or XSD).
  3. The business object is converted to a UCCnetGBO_envelope business object by passing through an input map of the form UCCnetxxx_envelope_to_UCCnetGBO_envelope (if iSoft connectivity is used), UCCnetTPIxxx_envelope_to_UCCnetGBO_envelope (if TPI connectivity is used) or UCCnetJMSxxx_envelope_to_UCCnetGBO_envelope (if WebSphere Business Connect is used with JMS). The DTD forms of these maps convert incoming ASBOs containing DTD-based publication information notifications into UCCnetGBO_envelope GBOs containing XSD-based Catalogue Item Notifications for ongoing processing by the solution. The AS2 channel connector checks for subscriptions to the UCCnetGBO_envelope business object by collaboration objects. Collaboration objects based on the UCCnetMessageReceive collaboration template subscribe to it. Therefore, a UCCnetMessageReceive collaboration object is passed the business object through its FromAS2 port.
  4. The UCCnetMessageReceive collaboration object parses the message, separating each instance of a Catalogue Item Notification or price/pricebracket notification. Because this is an example of a Catalogue Item Notification with a NEW_ITEM command, the UCCnetMessageReceive collaboration object accommodates persisting the UCCnetGBO_envelope business object to a local identifier store by first converting it to a UCCnetGBO_identifier business object and then passing it with a Create verb to an IdentifierStore collaboration object through its ToIdentifier_Store port.
  5. The IdentifierStore collaboration object receives the business object on its From port and, through a series of interactions with the IBM WebSphere Business Integration Data Handler for XML, stores the identifier in the identifier store. If the item is already found in the identifier store, it is rejected. Persisting or deleting an item to or from a local identifier store describes how a business object is persisted to the identifier store. Filtering to eliminate processing of duplicate itemsdescribes how a UCCnetMessageReceive collaboration object prevents duplicate items from being processed.
  6. The UCCnetMessageReceive collaboration object accommodates persisting the UCCnetGBO_envelope business object to a local message store by first converting it to a UCCnetGBO_storable business object and then passing it with a Create verb to a MessageStore collaboration object through its ToMessage_Store port.
  7. The MessageStore collaboration object receives the business object on its From port and, through a series of interactions with the IBM WebSphere Business Integration Data Handler for XML, stores the message in the message store. The section Persisting, retrieving, or deleting an item to or from a local message store describes in detail how a message is persisted to the message store.
  8. The UCCnetMessageReceive collaboration object can filter the business object to ensure that it contains attributes required by UCCnet, that it came from an approved set of supply-side trading partners, that it belongs to an approved set of item categories, and that it passes a set of complex filters that are based on the interaction of multiple attributes. Information in Filtering publication requests before business processing details how the collaboration object performs these functions. Based on whether the business object passes or fails this analysis, the collaboration object directs processing, as follows:
    1. If the business object fails analysis, the collaboration object converts the UCCnetGBO_envelope business object into a Retail_Item business object containing the individual Catalogue Item Notification and its data. It attaches a status to the business object preconfigured in its FILTER_FAIL_RESPONSE property and sends it to its ToRetail_Response port to be passed to a UCCnetMessageSend collaboration object for transmittal to UCCnet.
    2. If the business object passes analysis, the collaboration object converts the UCCnetGBO_envelope business object into a Retail_Item business object containing the individual Catalogue Item Notification and its data. It attaches a status of Review to the business object and sets the command type according to the original message type received from UCCnet. It then sends this business object to its ToRetail_Processing port to be passed to an ItemValidation collaboration object.
    For the purposes of this example, assume this business object passed analysis.
  9. The ItemValidation collaboration object accepts the Retail_Item business object on its From port and executes any code added to the template to evaluate it according to customized business policy rules. The section Validating an item against customized business policy rules details how the collaboration object performs this function. The business policy logic code must change the business object status to a value of either Review or Rejected, which directs further processing by the collaboration object, as follows:
    1. If the Retail_Item business object status is not set to Rejected by the business policy logic, the ItemValidation collaboration object continues to process it.
    2. If the Retail_Item business object status is set to Rejected by the business policy logic, the collaboration object aborts any further processing and returns the business object to the caller through its From port.
    For the purposes of this example, assume that the Retail_Item business object's status was not set to Rejected by the business policy logic.
  10. The ItemValidation collaboration object checks that those particular attributes of the business object that the user has specified must contain data are not NULL or BLANK. See Definitions and terminology. Simple or complex filtering can be used to conditionally specify which attributes must contain data. The section Validating an item by requiring data for specific attributes describes how the collaboration object performs this function. Based on the results of this check, the collaboration object handles the Retail_Item business object, as follows:
    1. If all required attribute data is present, the ItemValidation collaboration object continues to process it.
    2. If the business object is missing data for any specified Retail_Item attribute, the collaboration object adds the attribute name to another Retail_Item business object list attribute, which is specified in the collaboration object's CUST_DATA_MISS_ATTR configuration property (by default, internals.customer_data_missing_attributes) and continues to process it.
  11. The ItemValidation collaboration object executes any customized code the user has added to the template for the command associated with the business object. The section Adding customized code to the ItemValidation collaboration template details how the collaboration object performs this function.
  12. If configured to do so, the ItemValidation collaboration object enables persistence of the business object to a local item store by sending it with a Create verb to its LocalItemStore port to be passed to an ItemStore collaboration object.
  13. The ItemStore collaboration object receives the business object on its From port and, through a series of interactions with the IBM WebSphere Business Integration Data Handler for XML, stores it in the item store database. The section Persisting, retrieving, updating, or deleting an item to or from a local item store describes how a business object is persisted to the item store.
  14. The ItemValidation collaboration object sets the business object's status to Review. It processes the business object according to whether it is missing data for any specified Retail_Item attribute, as follows:
    1. If the object is missing required attribute data, the collaboration object passes it to its ToMissingData port to trigger a process for obtaining the missing data. The ToMissingData port can be connected to another collaboration object or to an asynchronous process for collecting the missing attribute values. This custom missing data retrieval process is described in the section Using a custom missing data retrieval process to collect data.
    2. If all required attribute data is present, the collaboration object passes it to its To port to trigger an ItemDispatcher collaboration object.
    For the purposes of this example, to be continued in the section Detailed workflow: processing a business object with cascaded GLNs, assume that all required data is present in the business object.

An ItemValidation collaboration object can be configured to initiate notification if errors are detected during processing. It connects through its Notify port to a Role_Email collaboration object, which actually controls the email. See Controlling e-mail.

An ItemValidation collaboration object can also log the business object being processed when an error occurs (in addition to the error) and when item status values are Review and Rejected. A Role_Email collaboration object can log when errors occur and each time an email message is sent. See Logging.

Parent topic: Processing a business object: an example NEW_ITEM workflow