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
- 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
.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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.
- 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:
- 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.
- 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.
- 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:
- If all required attribute data is present, the ItemValidation collaboration
object continues to process it.
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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.