The Item Synchronization for Suppliers solution workflow is composed of business objects, collaboration objects, connectors, and maps. These basic components work together to enable supply-side trading partners to automatically add items to, update or delist items within, or withdraw items from UCCnet when item updates are made in their Enterprise Resource Planning (ERP) applications. When an update is made in a supplier's ERP system, item data is automatically validated, reformatted, and sent to the UCCnet standard registry. Suppliers can also communicate new or updated item information to subscribing trading partners via UCCnet. Thus, enterprise data is synchronized with item data sent outside the enterprise.
The Solution development guide describes the internal processing of the Item Synchronization for Suppliers solution. It is intended for programmers who design and implement workflows using the solution and who might participate in designing customizations to this solution. It assumes that users are experienced programmers and that they understand the following concepts and have experience with the software associated with them:
Programmers must also have experience with the operating systems on which their implementations are installed.
The IBM(R) WebSphere(R) Business Integration Collaborations for Consumer Products Item Synchronization synchronizes item information in compliance with UCCnet standards. It is used to maintain the consistency of a supplier's item information in UCCnet and to ensure that the information is kept current with the most recent data in the supplier's application. The supplier can also communicate new or changed item information to subscribing trading partners in UCCnet.
The IBM WebSphere Business Integration Collaboration for Consumer Products Item Synchronization does these tasks through a set of component collaboration templates.
The way you communicate with UCCnet determines which templates and connectors you use and how you configure them. Items to consider include the following:
Because the connector you use to communicate with UCCnet is dependent on your setup, the term AS2 channel connector is used throughout this documentation as a general term for the TPIConnector, iSoftConnector, JMSConnector, or JTextConnector. Details on making these choices and implementing them are in the Installation Guide. The term AS2 channel server is used to refer to the iSoft Peer-to-Peer Agent, the TPI server, and WebSphere Business Integration Connect, as appropriate for the type of connectivity you are using.
If information in the documentation pertains only to a specific set of options, the following terminology is used:
Catalogue Item Notification or CIN operation
The information pertains only to configurations in which you implement your own source data pool.
Catalogue Item Publication or CIP operation
The information pertains only to configurations in which you allow UCCnet to provide the source data pool.
The following sections illustrate the process logic for the collaboration templates included with the IBM WebSphere Business Integration Collaboration for Consumer Products Item Synchronization:
A row will be added to the AUDIT_LOG table for the RCIR command with the unique identifier value of the message sent to UCCnet.
UCCnet_processWorklist handles RCIR_RESPONSEs by finding the matching gtin+fromGLN+targetMarket row in the PROCESSED_GTIN table and updating the status to "Success" or "Fail", update the state to "REGISTERED", and update the timestamp.
UCCnet_processWorklist handles a CI_RESPONSE by creating a log entry in the AUDIT_LOG table and forwarding the response to the supplier's back end application
REVIEW
The retailer is reviewing the item.
REJECTED
The retailer has rejected the item. No additional information is requested at this time.
ACCEPTED
The retailer has accepted the item, but has not yet synchronized it. This state is similar to the DTD-based PRE-AUTHORIZATION state.
SYNCHRONISED
The retailer has accepted the item and synchronized it. This state is similar to a DTD-based AUTHORIZE state.
This section describes the collaboration templates.
The CommandRouter collaboration reduces the need for configuring multiple instances of an adapter to trigger each collaboration. The UCCnet_ItemSync, CI_Sync, and CIN_CIP_Dispatcher all require the Retail_Item as the triggering BO. Because you would not want to trigger three collaborations at the same time, they would require three separate instances of the input adapter. This collaboration will alleviate that need.
This collaboration can be used by the supplier to route a Retail_Item BO to the appropriate collaboration. The collaboration uses the item.notificationTopic.topic attribute to determine whether to route the Retail_Item to the UCCnet_ItemSync, CI_Sync, or CIN_CIP_Dispatcher collaborations. Because these collaborations are each triggered by a Retail_Item BO, this collaboration prevents the supplier from having to create separate instances of an adapter to uniquely trigger each of these destination collaborations.
Table 1 shows how the CommandRouter triggers the other collaborations based upon the topic
Table 1. CommandRouter topics and triggered collaborations
Topic |
Collaboration |
RCIR_ADD |
UCCnet_ItemSync |
CI_ADD |
CI_Sync |
PUBLISH_ADD |
CIN_CIP_Dispatcher |
An object based on the UCCnet_ItemSync collaboration template performs processing to add, change, or correct item registrations in the Global Registry via UCCnet Services. The UCCnet_ItemSync collaboration receives the Retail_Item GBO. The Retail_Item should contain one item. UCCnet_ItemSync checks for duplicates, creates an entry for the item to be registered in the PROCESSED_GTIN table, and a log entry in the AUDIT_LOG table.
An object based on the UCCnet_requestWorklist collaboration template sends query commands to UCCnet via the AS2 channel connector. These requests obtain the notifications in the supplier's worklist which result from previous item sync UCCnet messages and responses from trading partner retailers.. A UCCnet_requestWorklist collaboration object is triggered when it receives a UCCnetGBO_envelope business object from the JTextRWLConnector. The JTextRWLConnector sends this triggering business object after it polls an input file folder and discovers an XML message that contains a UCCnet worklist query command.
The mechanism by which the UCCnet worklist query command is placed in the input file folder is independent of the collaboration template. You must create this mechanism.
An object based on the UCCnet_processWorklist collaboration processes messages from UCCnet This collaboration object is triggered when it receives a UCCnetGBO_envelope business object from an AS2 channel connector. The UCCnetGBO_envelope should contain notifications and asynchronous responses which result from previous item sync commands. It may also contain Initial_Item_Load requests.
The UCCnet_processWorklist determines what is in the UCCnetGBO_envelope and forwards it to one of its ports. If the response is a failure response, the UCCnet_GBO_envelope is forwarded to the Failure port. Unsolicited messages, for example, Initial_Item_Load requests, areforwarded to the Unsolicited_Response port. You can bind this port to an instance of the Notify_by_eMail collaboration. All other responses are sent to the To port.
When confirmation notifications are received from UCCnet, the collaboration property BATCH_RESPONSE is set to true or false. If true, then the entire message containing up to 150 confirmations is sent to the To port. If the property is false, UCCnet_processWorklist breaks the message up and sends the confirmation messages one at a time to the To port.
UCCnet_processWorklist creates a log entry in the AUDIT_LOG table and updates the PROCESSED_GTIN table for RCIR responses.
An object based on the Notify_by_eMail collaboration template can be used by a UCCnet_processWorklist collaboration object to pass communications to configured e-mail addresses. It can also be used with UCCnet_ItemSync, CI_Sync, and CIN_CIP_Dispatcher for validation error messages.
An object based on the CIN_CIP_Dispatcher collaboration object can be set up to dispatch Catalogue Item Notifications (CIN operation) or Catalogue Item Publications (CIP operation) to a list of trading partners subscribed to the item categories. The collaboration properties: TO_UCCNETGBO_PROCESSING_MAP and GLN_ATTRIBUTE determine the configuration.
For CIN operation the TO_UCCNETGBO PROCESSING_MAP contains the value Retail_item_to_UCCnetGBO_envelope_notifyCommand_catalogueItem. The GLN_ATTRIBUTE contains the value:
ROOT.body[0].transaction.command[0].notifyCommand.notifyCommandOperand.catalogueItemNotification
.catalogueItem.dataRecipient
For sending notifications, the dataRecipient must be populated at every level of the item hierarchy. The collaboration uses the CatalogueItemUtility class to do the recursive population of the dataRecipient information in the item hierarchy
For CIP operation the TO_UCCNETGBO PROCESSING_MAP contains the value Retail_Item_to_UCCnetGBO_envelope_publicationCommand_CIP. The GLN_ATTRIBUTE contains the value:
ROOT.body[0].transaction.command[0].publicationCommand.publicationCommandOperand
.catalogueItemPublication.publishToGLN
The supplier must supply the list of retailers for each publication. The list of Retailers who should receive publications and notifications must be supplied in the Retail_Item.glnList.toGln array. The CIN_CIP_Dispatcher creates a notification/publication message for each gln in that list. A UCCnetGBO_envelope, containing either the notify or publication command and the target GLN from the GLN list, is sent to the AS/2 connector where the appropriate UCCnet_GBO_envelope_to_UCCnetXSD_envelope map is called.
An object based on the CI_Sync collaboration template is used to send the fully formed item hierarchy to the UCCnet data pool. The Catalogue Item document contains a base of 151 attributes that describe trade item data . The CI_Sync collaboration receives the Retail_Item GBO. The Retail_Item should contain a fully formed hierarchy, for example, . Pallet > case > each. The collaboration generates an entry in the AUDIT_LOG table. The collaboration then passes the Retail_Item to a second instance of the AS/2 connector for transmission to UCCnet. The second instance of the AS/2 connector is configured to invoke the appropriate map convert the Retail_Item to the UCCnetXSD_envelope containing the catalogue item.
An object based on the UCCnet_Price collaboration template is triggered when it receives a Retail_Price business object from the ERP connector. This collaboration validates that the item exists in the PROCESSED_GTIN table and is in a REGISTERED state. The collaboration also validates that the gln is present. The collaboration creates an entry in the AUDIT_LOG table after successfully sending the Retail_Price business object to the To port. The AS/2 connector calls a map to convert the Retail_Price to a UCCnetXSD_envelope containing the Price or Price Bracket command.
All collaboration templates use the following standard processes for collaboration templates:
The item sync collaborations modify the standard e-mail error handling process. The collaborations never automatically fail the flow when errors are detected. The collaborations log all errors which will result in an e-mail being sent if the collaboration object has an e-mail notification address configured. The SEND_EMAIL and SEND_EMAIL_TO collaboration properties control whether errors are e-mailed and to what e-mail address list. If the error code generated by the collaboration is listed in the FAILURE_EXCEPTIONS collaboration property then the collaboration fails the flow. By default, there are no error codes included in the FAILURE_EXCEPTIONS collaboration property.
To set up any collaboration template supplied with the IBM WebSphere Business Integration Collaboration for Consumer Products Item Synchronization as a standalone collaboration object, complete the following steps:
The following sections include information on each collaboration template's ports and configuration properties. For general information on creating collaboration objects, refer to the Collaboration Development Guide.
Table 2 provides information about the
UCCnet_ItemSync collaboration template's ports. Use the ItemBasic business
object for all ports.
Table 2. CommandRouter collaboration template's
ports
Port name |
Bound to |
Function |
DestinationAppRetrieve |
PortConnector |
Unused. |
From |
Supplier's choice of adapter |
Receives the triggering Retail_item business object. |
ToCINCIP |
CIN_CIP_Dispatcher collaboration object |
Passes the processed Retail_item business object. |
ToCI |
CI_Sync collaboration object |
Passes the processed Retail_item business object. |
ToRICR |
UCCnet_ItemSync collaboration object |
Passes the processed Retail_item business object. |
Error |
Supplier's choice of adapter |
Send validation errors to the supplier |
This collaboration templates uses the following
standard configuration properties for collaboration templates:
In addition to its standard configuration properties, this
collaboration template has the following configuration properties:
Table 3. CommandRouter
specific properties
Property name |
Description |
Required |
SEND_EMAIL_TO |
Defines the e-mail address list to which problems detected
during execution of collaboration object processing are sent. This entry is
for InterChange Server administrators. Do not confuse this property with the
Email notification address field, which is configured from the Collaboration
General Properties tab when creating a collaboration object. |
No. Requires the Email Connector to run if e-mail is entered. The SEND_EMAIL property must also be set. |
SEND_EMAIL |
Specifies whether e-mail is sent to the addresses set in
the SEND_EMAIL_TO property. |
Yes, if you want to send e-mail. To send e-mail, set the value to all. Otherwise, set the value to none. |
FAILURE_EXCEPTIONS |
A comma separated list of error codes which should cause
the collaboration to fail the flow. |
No. The default value is none. |
Table 4 describes the UCCnet_ItemSync
collaboration template's ports.
Table 4. UCCnet_ItemSync collaboration
template's ports
Port name |
Bound to |
Function |
DestinationAppRetrieve |
PortConnector |
Unused. |
From |
CommandRouter collaboration object |
Receives the triggering Retail_Item business object. |
To |
AS/2 connector |
Passes the processed Retail_Item business object to the specific AS2 channel connector. |
Error |
Supplier's choice of adapter |
Sends validation errors to the supplier. |
This collaboration templates uses the following
standard configuration properties for collaboration templates:
In addition to its standard configuration properties,
this collaboration template has the following configuration properties:
Table 5. UCCnet_ItemSync
specific properties
Property name |
Description |
Required |
DATABASE_VALIDATION |
Check PROCESSED_GTIN table contents before sending commands to UCCnet. If performing an "ADD" and value is true, then the item is considered a duplicate. If performing a "CHANGE" or "CORRECT" and the value is
true, then the item must exist in the PROCESSED_GTIN table to be processed. |
Yes. The default value is true. |
DB_CONN_POOL_NAME |
The name of the connection data pool used by the
collaboration to access the PROCESSED_GTIN and AUDIT_LOG database tables..
The default value is ITEMSYNC_DATA.. |
Yes |
FAILURE_EXCEPTIONS |
A comma separated list of error codes which should cause
the collaboration to fail the flow. |
No. The default value is none. |
SEND_EMAIL_TO |
Defines the e-mail address list to which problems detected
during execution of collaboration object processing are sent. This entry is
for InterChange Server administrators. Do not confuse this property with the
Email notification address field, which is configured from the Collaboration
General Properties tab when creating a collaboration object. |
No. Requires the Email Connector to run if e-mail is entered. The SEND_EMAIL property must also be set. |
SEND_EMAIL |
Specifies whether e-mail is sent to the addresses set in
the SEND_EMAIL_TO property. |
Yes, if you want to send e-mail. To send e-mail, set the value to all. Otherwise, set the value to none. |
SEND_EMAIL_TO |
Defines the e-mail address list to which problems detected during execution of collaboration object processing are sent. This entry is for InterChange Server administrators. Do not confuse this
property with the Email notification address field, which is configured from
the Collaboration General Properties tab when creating a collaboration
object. |
No. Requires the Email Connector to run if e-mail is entered. The SEND_EMAIL property must also be set. |
Table 6 describes the UCCnet_Price
collaboration template's ports.
Table 6. UCCnet_Price collaboration
template's ports
Port name |
Bound to |
Function |
DestinationAppRetrieve |
PortConnector |
Unused. |
From |
Supplier's choice of adapter |
Receives the triggering Retail_Price business object. |
To |
AS/2 connector |
Passes the processed Retail_Price business object to the specific AS2 channel connector. |
Error |
Supplier's choice of adapter |
Sends validation errors to the supplier. |
This collaboration templates uses the following
standard configuration properties for collaboration templates:
In addition to its standard configuration properties,
this collaboration template has the following configuration properties:
Table 7. UCCnet_Price specific
properties
Property name |
Description |
Required |
SEND_EMAIL_TO |
Defines the e-mail address list to which problems detected
during execution of collaboration object processing are sent. This entry is
for InterChange Server administrators. Do not confuse this property with the
Email notification address field, which is configured from the Collaboration
General Properties tab when creating a collaboration object. |
No. Requires the Email Connector to run if e-mail is entered. The SEND_EMAIL property must also be set. |
SEND_EMAIL |
Specifies whether e-mail is sent to the addresses set in
the SEND_EMAIL_TO property. |
Yes, if you want to send e-mail. To send e-mail, set the value to all. Otherwise, set the value to none. |
DB_CONN_POOL_NAME |
The name of the connection data pool used by the
collaboration to access the PROCESSED_GTIN and AUDIT_LOG database tables..
The default value is ITEMSYNC_DATA.. |
Yes |
FAILURE_EXCEPTIONS |
A comma separated list of error codes which should cause
the collaboration to fail the flow. |
No. The default value is none. |
PERFORM_VALIDATION |
Specifies whether to check the PROCESSED_GTIN table for
GTIN, GLN, and Target Market before processing the commands. |
Yes. The default value is true. |
Table 8 describes the CI_Sync collaboration
template's ports.
Table
8. CI_Sync collaboration template's ports
Port name |
Bound to |
Function |
DestinationAppRetrieve |
PortConnector |
Unused. |
From |
CommandRouter collaboration object |
Receives the triggering Retail_Price business object. |
To |
AS/2 connector |
Passes the processed Retail_Price business object to the specific AS2 channel connector. |
Error |
Supplier's choice of adapter |
Sends validation errors to the supplier. |
This collaboration templates uses the following
standard configuration properties for collaboration templates:
In addition to its standard configuration properties,
this collaboration template has the following configuration properties:
Table 9. CI_Sync specific
properties
Property name |
Description |
Required |
SEND_EMAIL_TO |
Defines the e-mail address list to which problems detected
during execution of collaboration object processing are sent. This entry is
for InterChange Server administrators. Do not confuse this property with the
Email notification address field, which is configured from the Collaboration
General Properties tab when creating a collaboration object. |
No. Requires the Email Connector to run if e-mail is entered. The SEND_EMAIL property must also be set. |
SEND_EMAIL |
Specifies whether e-mail is sent to the addresses set in
the SEND_EMAIL_TO property. |
Yes, if you want to send e-mail. To send e-mail, set the value to all. Otherwise, set the value to none. |
DB_CONN_POOL_NAME |
The name of the connection data pool used by the
collaboration to access the PROCESSED_GTIN and AUDIT_LOG database tables..
The default value is ITEMSYNC_DATA.. |
Yes |
FAILURE_EXCEPTIONS |
A comma separated list of error codes which should cause
the collaboration to fail the flow. |
No. The default value is none. |
Table 10 describes the UCCnet_requestWorklist
collaboration template's ports. Use the UCCnetGBO_envelope business object for
all ports.
Table 10. UCCnet_requestWorklist collaboration
template's ports
Port name |
Bound to |
Function |
From |
JTestRWLConnector |
Receives the input UCCnetGBO_envelope business object. |
To |
AS/2 channel connector |
Passes the processed UCCnetGBO_envelope business object to the AS2 channel connector, which transmits the data to UCCnet as a command by way of the AS2 channel server.connector. |
This collaboration template does not use standard
configuration properties
In addition to its standard configuration properties,
this collaboration template has the following configuration properties:
Table 11.
UCCnet_requestWorklist specific properties
Property name |
Description |
Required |
SET_UNIQUE_IDS |
Controls whether unique IDs (messageIdentifier and uniqueCreateorIdentification) are set in the output XML messages. Possible values for this property are:
|
No, unless the default value needs to be changed. |
DTD_URL |
Value to be copied into DTD DocType messages |
No, not used |
Table 12 describes the
UCCnet_processWorklist collaboration template's ports.
Table 12. UCCnet_processWorklist
collaboration template's ports
Port name |
Bound to |
Function |
From |
AS/2 channel connector |
Receive data from UCCnet |
To |
Supplier's connector of choice |
Send responses to the supplier |
Failure |
Supplier's connector of choice |
Send failed responses to the supplier |
UnsolicitedResponse |
Supplier's connector of choice |
Send unsolicited responses to the supplier |
This collaboration templates does not use standard
configuration properties.
In addition to its standard configuration properties,
this collaboration template has the following configuration properties:
Table 13.
UCCnet_processWorklist specific properties
Property name |
Description |
Required |
SEND_EMAIL_TO |
Defines the e-mail address list to which problems detected
during execution of collaboration object processing are sent. This entry is
for InterChange Server administrators. Do not confuse this property with the
Email notification address field, which is configured from the Collaboration
General Properties tab when creating a collaboration object. |
No. Requires the Email Connector to run if e-mail is entered. The SEND_EMAIL property must also be set. |
SEND_EMAIL |
Specifies whether e-mail is sent to the addresses set in
the SEND_EMAIL_TO property. |
Yes, if you want to send e-mail. To send e-mail, set the value to all. Otherwise, set the value to none. |
DB_CONN_POOL_NAME |
The name of the connection data pool used by the collaboration
to access the AUDIT_LOG database table.. The default value is ITEMSYNC_DATA..
|
Yes |
FAILURE_EXCEPTIONS |
A comma separated list of error codes which should cause
the collaboration to fail the flow. |
No. The default value is none. |
BATCH_RESPONSE |
Indicates whether the collaboration should send all
notification responses in one batch or individually. |
Yes. The default value is true. |
Table 14 describes the Notify_by_eMail
collaboration template's ports.
Table 14. Notify_by_eMail collaboration template's
ports
Port name |
Bound to |
Function |
From |
UCCnet_processWorklist collaboration object |
A UCCnetGBO_envelope business object is passed in on this port. The business object is incorporated into an email message and sent out to configured email recipients. |
FromItem |
UCCnet_processWorklist collaboration object |
A Retail_Item business object is passed in on this port. The business object is incorporated into an e-mail message and sent out to configured email recipients. |
This collaboration templates does not use standard
configuration properties.
In addition to its standard configuration properties,
this collaboration template has the following configuration properties:
Table 15. Configuration
properties specific to the Notify_by_eMail collaboration template
|
||
Property name |
Property description |
Required |
EMAIL_MESSAGE |
Body of the e-mail. The processing of this field uses the same variables as the EMAIL_SUBJECT property. It also processes values beginning with the @ sign in the same manner. For example, in the following, the first character of the string is an @ sign, so the collaboration object loads the text from the filename following the @ sign: @c:\IBM\WebSphereICS\UCCnet\collaborations\eMail\ \ UCCnet_processWorklist_AUTHORIZATION_RESPONSES.mail |
Yes |
EMAIL_NOTIFICATION_RCPTS
|
E-mail
address of the recipients. |
Yes |
EMAIL_SUBJECT
|
Subject line of the e-mail. This value can contain variables in the form ${variable_name} into which the collaboration object substitutes data from the business object dynamically. Type text using the following escape codes:
If the first character of the string for this value is an @ sign, the collaboration object loads the text from a filename following the @ sign. See
Sending e-mail. |
Yes |
Table 16 describes the CIN_CIP_Dispatcher
collaboration template's ports.
Table 16. CIN_CIP_Dispatcher collaboration template's
ports
Port name |
Bound to |
Function |
DestinationAppRetrieve |
PortConnector |
Unused. |
From |
CommandRouter |
Receives Retail_item business object on this port. |
To |
AS/2 channel connector |
A UCCnetGBO_envelope business object is passed out on this port. |
Error |
Supplier's connector of choice |
Send validation errors. |
This collaboration templates uses the following
standard configuration properties for collaboration templates:
In addition to its standard configuration properties,
this collaboration template has the following configuration properties:
Table 17. Configuration
properties specific to the CIN_CIP_Dispatcher collaboration template
|
||
Property name |
Property description |
Required |
DB_CONN_POOL_NAME |
The name of the connection data pool used by the collaboration
to access the AUDIT_LOG database table. The default value is ITEMSYNC_DATA. |
Yes |
GLN_ATTRIBUTE |
Identifies where in the UCCnetGBO business object the GLN retrieved from the Dispatcher GLN file should be placed. Values to use: CIN operation Default. CIP operation |
Yes |
TO_UCCNETGBO_PROCESSING_MAP |
Called by the CIN_CIP_Dispatcher object to map incoming item basic objects to the outgoing Catalogue Item Notification or Catalogue Item Publication message. Value: CIN operation Default. CIP operation |
Yes |
FAILURE_EXCEPTIONS |
Specifies exception message numbers that would cause the
collaboration object to fail flow |
No. The default value is none. |
This business object contains all the information
required to describe the item including the necessary linking attributes to
define fully formed item hierarchies. It also contains a fromGln
attribute and a toGln attribute. This business object triggers the
UCCnet_ItemSync, CommandRouter, CI_Sync, and CIN_CIP_Dispatcher collaboration
objects. It contains data attributes that are common across all the logical
organizations that use the item data.
The CommandRouter collaboration uses the
Retail_Item.notification.topic to determine which collaboration to trigger.
A UCCnet_ItemSync collaboration object uses the
Retail_Item business object to register items in the Global. Registry. At that
point the Retail_Item business object contains only the item to be registered.
A CI_Sync collaboration object uses the Retail_Item to
publish the fully formed hierarchy to the UCCnet data pool.
The CIN_CIP_Dispatcher collaboration object uses the
Retail_Item business object to build CatalogueItemNotification messages or
CatalogueItemPublication messages to send to trading partners.
When the Retail_Item is used for the CI_Sync
collaboration and CIN_CIP_Dispatcher collaboration is must contain a fully
formed item hierarchy.
When using any of the xsd extensions to describe the
item, for example hardlines, produce, or fmcg, the Retail_Item's
This business object is used to trigger UCCnet_Price
collaboration objects. It contains price or price bracket specific data that is
used for issuing price commands to UCCnet. tradeItem.tradeItemExtensionType attribute must be specified
When a collaboration object exchanges data with an AS2
channel connector, the data must be mapped between the business object used by
the connector and the UCCnetGBO_envelope business object used by the
collaboration object. This business object is created and used as follows:
The
UCCnet_ItemSync,UCCnet_Price,CI_Sync,CIN_CIP_Dispatcher, and
UCCnet_processWorklist collaboration objects use this business object to communicate
error information. The UCCnetGBO_envelope can then be forwarded to a connector
of choice.
This application specific business object is used by
the AS2 channel connector when the XSD XML definition type and iSoft
connectivity are used. Unlike the UCCnetGBO_envelope business object, it does
not contain the TPIRouteInfo child business object.
When a message is received from UCCnet, the AS2
channel connector and the XML DataHandler create this business object from the
received XML file. Before it is processed by the collaboration objects included
with the solution, it must first be transformed into a UCCnetGBO_envelope
business object by passing through the UCCnetXSD_envelope_to_UCCnetGBO_envelope
map.
When a message is sent to UCCnet, the
UCCnetXSD_envelope business object is the result of the conversion of either a
Retail_Item or a UCCnetGBO_envelope business object by one of the associated
maps configured in the AS2 channel connector.
This application specific business object is used by
the AS2 channel connector when the XSD XML definition type and TPI connectivity
are used.
When a message is received from UCCnet, the AS2
channel connector and the XML DataHandler create this business object from the
received XML file. Before it is processed by the collaboration objects included
with the solution, it must first be transformed into a UCCnetGBO_envelope
business object by passing through the UCCnetTPIXSD_envelope_to_UCCnetGBO_envelope
map.
When a message is sent to UCCnet, the
UCCnetTPIXSD_envelope business object is the result of the conversion of either
a Retail_Item or a UCCnetGBO_envelope business object by one of the associated
maps configured in the AS2 channel connector.
The UCCnetTPIXSD_envelope business object contains the
TPIRouteInfo child object. This object contains the senderId and receiverId
required for a TPI server. The senderId is mapped from the
Retail_Item.glnList.fromGln and the receiverId is hardcoded in the maps.
This application specific business object is used by
the AS2 channel connector when the XSD XML definition type and WebSphere
Business Integration Connect Advanced/Enterprise edition connectivity are used.
When a message is received from UCCnet, the AS2
channel connector and the XML DataHandler create this business object from the
received XML file. Before it is processed by the collaboration objects included
with the solution, it must first be transformed into a UCCnetGBO_envelope
business object by passing through the
UCCnetJMSXSD_envelope_to_UCCnetGBO_envelope map.
When a message is sent to UCCnet, the
UCCnetJMSXSD_envelope business object is the result of the conversion of either
a Retail_Item or a UCCnetGBO_envelope business object by one of the associated
maps configured in the AS2 channel connector.
The UCCnetJMSXSD_envelope business object contains the
JMSProperties child object. This object contains the senderId, receiverId, and
other properties required for a WebSphere Business Integration Connect server.
The senderId is mapped from the Retail_Item.glnList.fromGln and the receiverId
is hardcoded in the maps.
This section describes the maps and data handlers
provided in the solution.
The following maps are used to create the
registerCommand:
Retail_Item_to_UCCnetXSD_envelope_registerCommand_itemAddChange
Retail_Item_to_UCCnetJMSXSD_envelope_registerCommand_itemAddChange
Retail_Item_to_UCCnetTPIXSD_envelope_registerCommand_itemAddChange
The following attributes are custom coded in the map:
RegisterCommand attribute |
Custom value |
registerCommandHeader.type |
If Retail_Item.notificationTopic.topic |
MessageHeader.messageIdentifier.value |
MSGID+date/timestamp |
classificationCategoryCode |
additionalClassificationAgencyName |
registerCommandHeader.entityIdentification.uniqueCreatorIdentification
|
GTIN + TargetMarket |
registryCatalogueItem.dateInformation.effectiveDate |
Current date |
.registryCatalogueItemIdentification.uniqueCreatorIdentification
|
UID3+date/timestamp |
Also the following are mapped:
The following maps are used to create the
publicationCommand containing a catalogueItem:
Retail_Item_to_UCCnetXSD_envelope_publicationCommand_catalogueItem
Retail_Item_to_UCCnetJMSXSD_envelope_publicationCommand_catalogueItem
Retail_Item_to_UCCnetTPIXSD_envelope_publicationCommand_catalogueItem
The following attributes are custom coded in the map:
PublicationCommand attribute |
Custom value |
publicationCommandHeader.type |
If Retail_Item.notificationTopic.topic |
MessageHeader.messageIdentifier.value |
MSGID+date/timestamp |
publicationCommandHeader.entityIdentification.uniqueCreatorIdentification
|
GTIN + TargetMarket |
The following map is used to create the notifyCommand
Retail_Item_to_UCCnetGBO_envelope_notifyCommand_catalogueItem
The following attributes are custom coded in the map:
notifyCommand attribute |
Custom value |
notifyCommandOperand.catalogueItemNotification.notificationTopic.topic
|
If Retail_Item.notificationTopic.topic |
MessageHeader.messageIdentifier.value |
MSGID+date/timestamp |
catalogueItemNotification.isReload |
Set to true if topic is PUBLISH_INITIAL_ITEM_LOAD else set to false |
notifyCommandHeader.entityIdentification.uniqueCreatorIdentification
|
GTIN + TargetMarket |
catalogueItemNotification.creationDate |
Current date |
CatalogueItemNotificationIdentification.uniqueCreatorIdentification
|
UID1+date/timestamp |
The following map is used to create the
publicationCommand
Retail_Item_to_UCCnetGBO_envelope_publicationCommand_CIP
The following attributes are custom coded in the map:
publicationCommand attribute |
Custom value |
publicationCommandHeader.type |
If Retail_Item.notificationTopic.topic |
MessageHeader.messageIdentifier.value |
MSGID+date/timestamp |
catalogueItemPublicationIdentification.uniqueCreatorIdentification
|
UID2+date/timestamp |
messageHeader.creationDate |
Current date |
publicationCommandHeader.entityIdentification.uniqueCreatorIdentification
|
UID1+date/timestamp |
catalogueItemPublication.creationDate |
Current date |
As the data flows through the workflows, the form of
the information changes. Sometimes it is stored in a generic business object,
sometimes in an application specific business object, and sometimes, the data
is contained in an XML message. As part of the processing, data passes through
a variety of transformations. Normally, these transformations are done to
prepare the data for the next step in the workflow, whether it be a
collaboration object, a connector, or the AS2 channel server.
The following table shows how the format of the
information changes as it moves between the connectors, collaboration objects,
and other parts that make up a workflow. The Transform initiator and Time
initiated columns indicate the connector or collaboration object that initiated
the data transform, and the point in the workflow that it does this. The Input
and Output columns respectively indicate the format of the data before and
after the transformation takes place. The Transformer column indicates the map
or data handler used to carry out the transformation. This example illustrates
TPI connectivity.
Table 18. Transformers used
for XSD support using TPI connectivity as an example
This table indicates how the format of information changes as it moves between parts of a workflow. It also indicates what transformers make these changes. Information for the TPI Connector controller and TPI Connector agent is also applicable for the JTextTPI Connector controller and JTextTPI Connector agent. |
||||
Transform initiator |
Time initiated |
Input |
Output |
Transformer |
TPI Connector controller |
Sending information to UCCnet to register item in Global
Registry |
Retail_Item generic business object (GBO) |
UCCnetTPIXSD_envelope application specific business object
(ASBO) |
Retail_Item_to _UCCnetTPIXSD _envelope_registerCommand _itemAddChange |
TPI Connector controller (second instance) |
Sending information to UCCnet to Create the Catalogue |
Retail_Item GBO |
UCCnetTPIXSD_envelope ASBO |
Retail_Item_to _UCCnetTPIXSD _envelope_publicationCommand _catalogueItem |
TPI Connector controller |
Receiving information from UCCnet |
UCCnetTPIXSD_envelope ASBO |
UCCnetGBO_envelope GBO |
UCCnetTPIXSD_envelope_to_UCCnetGBO _envelope map |
TPI Connector controller |
Sending information to UCCnet |
UCCnetGBO_envelope GBO |
UCCnetTPIXSD_envelope ASBO |
UCCnetGBO_envelope_to_UCCnetTPIXSD _envelope map |
TPI Connector agent |
Sending information to UCCnet |
UCCnetTPIXSD_envelope ASBO |
XML message in UCCnet format |
IBM WebSphere Business Integration DataHandler for XML |
TPI Connector agent |
Receiving information from UCCnet |
XML message in UCCnet format |
UCCnetTPIXSD_envelope ASBO |
IBM WebSphere Business Integration DataHandler for XML |
JTextRWLConnector Connector agent |
Initiating request for UCCnet to return a worklist |
XML message in UCCnet format |
UCCnetTPIXSD_envelope ASBO |
IBM WebSphere Business Integration Data Handler for XML |
JTextRWL Connector controller |
Initiating request for UCCnet to return a worklist |
UCCnetTPIXSD_envelope ASBO |
UCCnetGBO_envelope GBO |
UCCnetTPIXSD_envelope_to_UCCnetGBO _envelope map |
CIN_CIP_Dispatcher collaboration object |
Sending CIN or CIP requests to UCCnet |
Retail_Item GBO |
UCCnetGBO_envelope GBO |
CIN operation map |
UCCnet_Price collaboration object |
Sending Price/Price Bracket requests to UCCnet |
Retail_Price GBO |
UCCnetGBO_envelope GBO |
Retail_Price_to_UCCnetTPIXSD_envelope map |
In many of the workflows, UCCnet generates, but does
not automatically return, a worklist containing a response to a message
received from the supplier. In these cases, the supplier must request the
worklist from UCCnet.
Retrieval of a worklist from UCCnet happens as
follows:
Sending messages from a collaboration object to UCCnet
In many of the workflows, a collaboration object needs
to send information to UCCnet. The following set of events accomplishes this
action:
Receiving messages back from UCCnet
In many of the workflows, UCCnet will send a message
to the AS2 channel server to be passed on to a collaboration object. The
following set of events accomplishes this action:
The PROCESSED_GTIN table is a persistent record of
which gtins have been registered with the Global Registry. This table is used
to detect duplicate registration attempts and attempts to change or correct
unregistered items. The key to this table is the GTIN+GLN + TargetMarket.
During the installation process, you create the
ITEMSYNC database (QITEMSYNC on OS/400 based solutions). The PROCESSED_GTIN
table is created by running the supplied Create_ItemSync_Tables.sql file for
the database type ( DB2(R), Oracle, or Microsoft(R)) SQL
Server). See the Installation guide for installation instructions. The
UCCnet_ItemSync,UCCnet_processWorklist, and UCCnet_Price collaborations objects
connect to the database through the collaboration property, DB_CONN_POOL_NAME.
Table 19. Fields in the
PROCESSED_GTIN table
Field |
Definition |
Example value |
GTIN |
Global Trade Item Number |
00005743116018 |
FROMGLN |
Supplier's GLN |
7789333000026 |
TARGMRKT |
Target Market |
840 |
DTCREATE |
Creation date |
2004060921433EDT |
DTUPDATE |
Update date |
2004060921605EDT |
COMMAND |
The last command processed for the gtin |
RCIR_ADD |
STATE |
The state of the gtin (REGISTERED) |
REGISTERED |
STATUS |
The status of the command (SENT, Success, Failure) |
Success |
ERRCODE |
Error code if status is Failure |
|
ERRDATA |
Error description if status is Failure |
|
The UCCnet_ItemSync writes to the Processed_Gtin table
for any add, change, or correct action. The collaboration checks the table to
determine existence and status of the gtin before performing any action
The UCCnet_processWorklist writes to the
Processed_Gtin table when receiving a response from UCCnet. The collaboration
uses the gtin+gln+targetMarket to find the row matching the response and
changes the dtupdate, status, state, errcode and errdata.
The UCCnet_Price collaboration checks the
Processed_Gtin table to determine the state of the gtin as a validation check
before generating a price document. This collaboration does not update any
fields for that gtin.
The AUDIT_LOG table is a history log of every
operation performed for each gtin and the status of that operation. It includes
every one of the following commands and their results:
An application can use this table to determine the
history of operations performed on each gtin. If the table is pruned it might
not contain an accurate record of registered items.
The rows in this table have no key because multiple
rows can exist which contain operations on the same items. The MSGID field can
be used to match a command to its response. Responses to CIN and CIP commands
in the form of CIC worklist notifications result in a separate row logged in
the table.
The AUDIT_LOG table does not contain the message
payload or processing errors. You can use the trace feature to obtain this
information.
During the installation process, you create the
ITEMSYNC database (QITEMSYNC for OS/400 based solutions). The AUDIT_LOG table
is created by running the supplied Create_ItemSync_Tables.sql file for the
database type (DB2, Oracle, or Microsoft SQL Server). See the Installation
guide for installation instructions.
Each collaboration object connects to the database
through the collaboration property, DB_CONN_POOL_NAME.
Table 20. Fields in the
AUDIT_LOG table
Field |
Definition |
Example value |
MSGID |
message ID assigned to the transaction |
10868152632320 |
GTIN |
Global Trade Item Number |
00005743116018 |
FROMGLN |
Supplier's GLN |
7789333000026 |
TARGMRKT |
Target Market |
840 |
TOGLN |
The publish to gln ( filled in on publication and
notifications) |
1270257111116 |
DTCREATE |
Creation date |
2004060921433EDT |
DTUPDATE |
Update date |
|
COMMAND |
The last command processed for the gtin |
PUBLISH_ADD |
STATE |
The state of the gtin (REGISTERED) |
|
STATUS |
The status of the command (SENT, Success, Failure) |
SENT |
ERRCODE |
Error code if status is Failure |
|
ERRDATA |
Error description if status is Failure |
|
PRICEID |
ID to correlate price and price bracket |
|
E-mail can be generated by two processes:
Collaboration objects can be configured to send e-mail
to alert recipients when processing errors occur. The following configuration
properties control whether e-mail is sent and to specify the recipients:
The collaboration object contains an Error port which
is used to deliver validation errors. E-mails can be sent to a set of
configured addresses by instantiating a collaboration object based on the
Notify_by_eMail collaboration template..
The Notify_by_eMail collaboration template can be
configured to contain the e-mail message, subject, and recipients specific to
its processing situation through its EMAIL_MESSAGE, EMAIL_SUBJECT, and
EMAIL_NOTIFICATION_RCPTS configuration properties, respectively. These
properties can also contain the names of files, which permits messages,
subjects, and recipients to be shared among multiple collaboration objects.
Also, more than one recipient can be specified to receive e-mail through use of
a comma-delimited list. Plus, e-mail message and subject text can be constants
that contain variables. The Notify_by_eMail collaboration object substitutes
data from the business object into these variables dynamically. See the
following sections for more information on these features:
A Notify_by_eMail collaboration object allows the
contents of its properties that specify e-mail message text, subject text, and
recipients to contain the names of files. These files contain the actual e-mail
message text, subject text, and addresses, and can be easily modified without
modifying the using collaboration objects. This feature permits messages,
subjects, and recipients to be shared among multiple collaboration objects. A
solution's messages, subjects, and recipients can all be contained in one
easily modifiable directory.
A Notify_by_eMail collaboration object uses the
following configuration properties to identify the e-mail message text, subject
text, and recipients:
The collaboration object distinguishes whether the
content of a property is an actual value or filename based on whether the value
is prefixed by the character @. If the value of the property is prefixed with the
character @, the Notify_by_eMail collaboration object interprets
the rest of the value as a filename. The collaboration object reads the value
of the file into a String variable in preparation for further processing. Files
must be identified by their fully qualified names.
For instance, if the filename containing the e-mail
recipients is c:\Email_Files\CategoryManagerRole.txt, set the value of the EMAIL_NOTIFICATION_RCPTS
property, as follows:
@c:\Email_Files\CategoryManagerRole.txt
If the value of a property does not start with the
character @, the Notify_by_eMail collaboration object obtains the
e-mail value directly from the attribute.
A Notify_by_eMail collaboration object allows all
e-mail messages to be routed to an administrator or to a specific role in an
organization (like a Category Manager), without the need to maintain the e-mail
recipient's fully qualified e-mail address in every collaboration object that
might send e-mail. By placing the e-mail address in an external file, if the
address changes, the file can be modified without having to reconfigure the
using collaboration objects. More than one recipient can be specified to
receive the e-mail through use of a comma-delimited list. The comma-delimited
list can be specified in the business object attribute or in the external file
pointed to by the attribute.
Email message and subject text can be constants that
contain variables. A collaboration object based on the Notify_by_eMail template
substitutes data from the business object into these variables dynamically.
Variables to be substituted must be enclosed in the prefix characters ${
and the suffix character }. As a result, the substitution variables in the
e-mail message and subject text must appear as:
${variable_name}
The supported values for variable_name, along
with the values that the collaboration object actually inserts in the text, are
as follows:
If the value for variable_name does not match
one of the specific values above, the collaboration object interprets it as the
name of a business object attribute. For instance, in the following sample
message:
UCCnet_processWorklist_Failure_RESPONSES.mail: \
Date: ${getDate}
BusinessObject: ${getName}.${getVerb}
Topic:
${ROOT.body[0].response.acknowledge.acknowledgement. \
subdocumentValid[0].subdocumentValid[0]resultList[0]. \
notification.topic}
GLN:
${ROOT.body[0].response.acknowledge.acknowledgement. \
subdocumentValid[0].subdocumentValid[0].resultList[0]. \
notification.notificationDetail.transactionInformation. \
entityIdentification.globalLocationNumber.gln}
GTIN:
${TLO.body.body_Wrapper1[0].response.acknowledge. \
acknowledgement.subdocumentValid[0].subdocumentValid[0]. \
resultList.resultList_Wrapper1[0].notification. \
notificationDetail.authorizationNotification.publication. \
item.itemInformation.globalTradeItemNumber.gtin}
${getRoot}
The following variables are filled in automatically
during the generation of the message, as follows:
If a collaboration object encounters error situations
during any stage of processing, it does the following:
All collaboration objects based on collaboration
templates included in the Item Synchronization for Suppliers solution provide
tracing capabilities to record logical flows and data processed. Users can
enable tracing for a particular collaboration object by selecting the
collaboration object in the System Manager, displaying its properties, and, on
the Collaboration General Properties tab, selecting a trace level greater than 0
from the System trace level field.
Enable tracing for one or more collaboration objects
when a reproducible problem occurs. If a problem occurs only once during
processing, leave the tracing function enabled continually so that the first
occurrence of the failure is captured. However, leaving the tracing function
enabled continually can degrade performance. Clear the trace file periodically
to simplify viewing and filtering it.