6Integrating Order Management with Third-Party Product Availability Applications
Integrating Order Management with Third-Party Product Availability Applications
This chapter tells you how to integrate the Siebel Business Application with an external Availability to Promise (ATP) engine to provide customers with information about availability of products they wish to order. It includes the following topics:
About Third-Party Product Availability Applications
Product availability information is stored in third-party ATP applications. When a salesperson clicks the Inquire button or when a customer clicks a Check Availability button, product availability information is passed to the Siebel Business Application by a third-party product availability fulfillment engine, also known as an availability-to-promise (ATP) engine. Siebel Order Management displays whatever data the ATP engine returns.
Integration with the product availability fulfillment engine uses the business service named External ATP Check. In addition it uses a specific, prebuilt Application Services Interface (ASI) named ATP Check. Some configuration is required to set up this integration.
Siebel Application Service Interface (ASI) is used to integrate order management with third-party product-availability applications. For an overview of how ASIs are used for integrating order management, see About ASIs for Order Management. For general information about how to set up, use, and modify integrations according to ASIs, see Integration Platform Technologies: Siebel Enterprise Application Integration.
Process of Setting Up Third-Party Product Availability Applications
To set up the use of third-party product availability-to-promise applications, you must perform the following tasks:
Setting the ATP Action Parameter in Quote and Order Business Components Properties
Verifying the External ATP Check Business Service User Properties
Configuring Web Services for Availability to Promise
When setting up the use of third-party product availability-to-promise applications, you can perform the following optional tasks:
Customizing UI Terms for Availability to Promise
When setting up the use of third-party product availability-to-promise applications, you can perform the following optional task that applies only to Siebel eSales:
Requiring User Registration for Availability to Promise
For more information about how to set up, use, and modify integrations according ASIs, see Siebel Application Services Interface Reference.
For information about the employee end user’s experience in using the availability-to-promise features, see Checking Availability to Promise (ATP).
Checking Availability Fulfillment Methods
For the integration to work, you must check that your ATP engine supports the Inquire, Reserve, and Unreserve methods. If your ATP engine refers to these methods with different terms, then you may need to do some configuration to map the method names.
For customers to check availability using Siebel eSales, you must find a method that is supported by your ATP engine and that checks availability without reserving it. The Inquire method is one possible example. You may want to check other supported methods, such as Reserve and Unreserve, to see how you can extend your availability checking function.
This task is a step in Process of Setting Up Third-Party Product Availability Applications.
Setting the ATP Action Parameter in Quote and Order Business Components Properties
Employees start product availability from a Quote or Order business component at either the header level or the line level. The Quote or Order business component defines the method to be used to call the ATP Check ASI. This method is one of those listed in the following table, depending on whether the user clicked a button to Inquire, Reserve, or Unreserve.
Customers using Siebel eSales start product availability from the Quote business component. The Quote business component defines the method ATPInquireAll, which calls the ATP Check ASI.
You must make sure that the value of the ATP Action Parameter in the user property defining the ATPInquireAll method in both the Quote and Order business components matches the commands expected by the ATP engine.
However, if your ATP engine expects different commands, then you can change them in Siebel Tools.
Table Preconfigured ATP Action Parameter Settings
User Interface Element | business component | Method Name | ATP Action |
---|---|---|---|
Inquire All button, Quote or Order header |
Quote or Order Entry - Orders |
ATPInquireAll |
Inquire |
Inquire button, Quote or Order Line Items list |
Quote Item or Order Entry - Line Items |
ATPInquire |
Inquire |
Reserve All button, Quote or Order header |
Quote or Order Entry - Orders |
ATPReserveAll |
Reserve |
Reserve button, Quote or Order Line Items list |
Quote Item or Order Entry - Line Items |
ATPReserve |
Reserve |
Unreserve All button, Quote or Order header |
Quote or Order Entry - Orders |
ATPUnReserveAll |
Unreserve |
Unreserve button, Quote or Order Line Items list |
Quote Item or Order Entry - Line Items |
ATPUnReserve |
Unreserve |
The following procedure shows you how to make changes to the ATP Action parameter for the method ATPInquireAll. You can use it as a model to make changes to any of the other ATP methods, as appropriate.
This task is a step in Process of Setting Up Third-Party Product Availability Applications.
To set the business component user properties for the Quote business component
In Siebel Tools, select the Quote business component.
Select Business Component User Prop.
In the Value field, query for *ATP*.
This query returns all of the Quote business component user properties that are related to the ATP functionality.
For the user property that includes the ATPInquireAll method, edit the ATP Action parameter so that it exactly matches the command expected by the ATP engine. The default value is Inquire.
To set the business component user properties for the Order business component
In Siebel Tools, select the Order business component.
Select Business Component User Prop.
In the Value field, query for *ATP*.
This query returns all of the Order business component user properties that are related to the ATP functionality.
For the user property that includes the ATPInquireAll method, edit the ATP Action parameter so that it exactly matches the command expected by the ATP engine. The default value is Inquire.
Verifying the External ATP Check Business Service User Properties
You must verify the External ATP Check business service user properties.
This task is a step in Process of Setting Up Third-Party Product Availability Applications.
To verify the External ATP Check business service user properties
In Siebel Tools, select the External ATP Check business service.
Select Business Service User Prop.
Verify that the Names and Values of the User Properties match those in the following table.
Name | Value |
---|---|
siebel_port_name |
Default |
siebel_web_service_name |
External ATP Check |
siebel_web_service_namespace |
http://siebel.com/asi/ |
Configuring Web Services for Availability to Promise
Web services are used to direct the inbound and outbound messages to and from:
The third-party ATP engine
A demonstration script, which can be used to test your integration setup
A middleware or integration server that will integrate with your fulfillment engine
You must make sure that the Web services are correctly configured.
This task is a step in Process of Setting Up Third-Party Product Availability Applications.
To configure Web services for availability to promise
In your Siebel Business Application, navigate to the Administration - Web Services screen, and then the Outbound Web Services view.
Select the row with External ATP Check in the Name field.
Verify that the fields in the Outbound Web Services list match those in the following table.
Namespace Name Status http://siebel.com/asi/
External ATP Check
Active
In the Service Ports list, click New, and enter the following values in the fields of the new record.
Field Comments Name
Enter Default.
Service Display Name
Enter External ATP Check.
Transport
Select from the list.
If you want to set up testing, for example when you are customizing applets or extending the ASI, then select Local Business Service.
Address
When you select a transport, the field is populated with a template address. Edit the address according to whether you are sending the data to middleware or the ATP engine.
If you want to set up testing, for example when you are customizing applets or extending the ASI, then enter ATP ASI Test. For more information, see Using the ATP ASI Testing Script.
Binding
If a SOAP header is expected by the receiving application, then select SOAP_RPC.
If you are using ATP ASI Test, then select Property Set.
For more information about configuring Web Services and setting up demonstration scripts, see Integration Platform Technologies: Siebel Enterprise Application Integration.
Using the ATP ASI Testing Script
The ATP ASI test is a testing script that simulates a simple fulfillment engine. It writes the output and response to an XML file on the server. By default the script writes the output and the response to ${SIEBEL_HOME}/bin, for example, D:\Siebel\bin. It writes an output file named ATPOutput.xml. This file represents what you would be sending to your middleware or fulfillment engine. Then the script generates a real-time response and sends the XML back to the Web service. The XML response that is generated is written into a file named ATPFinished.xml, which you can see in the file structure.
This testing infrastructure allows you to analyze what is sent to the middleware and what the Siebel Business Application is expecting back, and allows you to test your user interface.
Preventing Rollup of Availability Summary Data
Product availability information is displayed for:
The entire quote or order
The quote or order line items
The scheduled line items
The following information is preconfigured to roll up:
Available status, date, and quantity are rolled up from the promised lines to the quote or order lines.
Available status and date are rolled up from the quote or order lines to the quote or order header.
If your availability fulfillment engine only returns promised schedule lines and does not roll up this data to the line or the header, then the preconfigured behavior will provide you with a rollup of the data.
However, if your fulfillment engine already calculates this rollup, or if you do not want to roll up these fields, then you may want to turn off this behavior.
Following are some examples of the preconfigured rollup of availability information:
Dates. The latest date is rolled up at the parent level. For example, if line 1 has an available date of 7/15/04 and line 2 has an available date of 7/23/04, then the available date for the order is set to 7/23/04.
Status. If all lines have an ATP status of Available, then the order also has a status of Available. However, if one of the lines has a different status, then the order status is kept blank.
Quantity. If Schedule line 1 has an availability quantity of 10, Schedule line 2 has an available quantity of 20, and both lines have the same ATP status of Available, then the quantity rolled up is the sum of both quantities (30).
This task is a step in Process of Setting Up Third-Party Product Availability Applications.
To prevent rollup availability summary date
In Siebel Tools, select the ATP business service.
Select Business Service User Prop.
Select the Rollup Availability user property, and change the value from Y to N.
Extending the ASI for Availability to Promise
If you want to extend the ASI, then you must add fields to the following objects:
The External Integration object named ATP Check Interface
The following Internal Integration objects:
ATP Check Interface Request - Quotes
ATP Check Interface Request - Orders
ATP Check Interface Response - Quotes
ATP Check Interface Response - Orders
This extension will create the necessary mapping between the ATP interface structure and the Siebel Quote and Order business components.
If you add a field, then make sure that the names of the fields in the Internal and External integration objects match. For example, if you want to add the field Account DUNS# that maps on quote to Account DUNS#-quote and on order to Account DUNS#-order, then you would do so as shown in the following table.
Table Naming Fields
Object Name | Integration Component Field Name | Integration Component External Name |
---|---|---|
ATP Check Interface |
Account DUNS# |
None |
ATP Check Interface Request - Quotes |
Account DUNS# |
your mapping of Account DUNS # to the Quotes Business Component |
ATP Check Interface Request - Orders |
Account DUNS# |
your mapping of Account DUNS # to the Orders Business Component |
If there are fields that you do not want the fulfillment engine to be able to modify, such as Ship To Address Id, then add the NoUpdate Field user property to the internal response integration objects, as follows:
ATP Check Interface Response - Quotes
Integration Component Field:
Name: Ship To Address Id
External Name: your mapping of Ship To Address Id to the Quotes Business Component
Integration Component Field User Property:
Name: NoUpdate
Value: Y
ATP Check Interface Response - Orders
Integration Component Field:
Name: Ship To Address Id
External Name: your mapping of Ship To Address Id to the Orders Business Component
Integration Component Field User Property:
Name: NoUpdate
Value: Y
For information about how to extend the integration object, see Integration Platform Technologies: Siebel Enterprise Application Integration.
This task is a step in Process of Setting Up Third-Party Product Availability Applications.
To prevent an added field from being modified by the fulfillment engine
In Siebel Tools, select Integration Object in the Object Explorer.
Select the integration object ATP Check Interface Response - Quotes.
Expand Integration Object in the Object Explorer, and select Integration Component.
Select the Quote integration component.
Expand Integration Component in the Object Explorer and select Integration Component Field.
Select the name of the added field.
Expand Integration Component Field in the Object Explorer and select Integration Component Field User Prop.
Set the Name of the Integration Component Field User Property to NoUpdate.
Set the Value to Y.
Extending Returned Data for Availability to Promise
For information about how to extend the data that is received from the third-party inventory management application, including data about products that are expected to be manufactured, see Siebel Application Services Interface Reference.
This task is a step in Process of Setting Up Third-Party Product Availability Applications.
Customizing UI Terms for Availability to Promise
You can change the following terms in the user interface to more precisely reflect the type of data expected by, and returned by, your particular product availability fulfillment engine.
Requested Date. This date could be either the date on which the customer wants to receive the product or the date on which the customer wants the seller to ship the product.
Available Date. This date could be either the date that the customer will receive the product or the date that the product will be shipped.
These two fields are designed to work together, reflecting parallel information.
This task is a step in Process of Setting Up Third-Party Product Availability Applications.
Requiring User Registration for Availability to Promise
Siebel eSales does not require the customer to register on the Web site before checking product availability. However, you can configure the logic behind the Check Availability button to require registration by:
Hiding the Check Availability button. In this case, anonymous users will not see the button unless they explicitly log in.
Adding the Explicit Login parameter to the view.
This task applies to customers checking product availability using Siebel eSales. It does not apply to employees checking product availability.
This task is a step in Process of Setting Up Third-Party Product Availability Applications.
To hide the Check Availability button
In Siebel Tools, lock the eSales - Quote project.
In the Object Explorer, click Applet and select Quote Form Applet - Current (eSales).
In the Object Explorer, click Applet User Prop.
Create a new user property named Hide Control 4 with the following value: ‘ButtonInquireAll’,’GetProfileAttr(“Is Anonymous") = “TRUE"’
To add the Explicit Login parameter to the ATP Fulfillment View (e Sales)
In Siebel Tools, lock the ATP project.
In the Object Explorer, click View and select ATP Fulfillment View (eSales).
Right-click the Views bar and select Columns Displayed.
In the Available Columns box, select Explicit Login, move it to the Displayed Columns box, and click OK.
Scroll horizontally across the view and check the Explicit Login column for ATP Fulfillment View (eSales).
Check in and compile the projects.