CPQ Adapter for TIBCO Fulfillment Order Management

A Configure Price Quote system focuses on managing customer-facing products and the order capture process. A fulfillment system such as TIBCO Fulfillment Order Management manages the technical products and their associated fulfillment processes. This adapter allows you to seamlessly manage and accelerate the entire concept-to-market and the order-to-cash cycles.

 

Compatible Products

TIBCO BusinessWorks™ TIBCO® MDM

Provider

TIBCO Software

Supported Versions

  1. TIBCO® Fulfillment Order Management 4.0.1

  2. TIBCO Enterprise Messaging Service™ 8.3

  3. Configure Price Quote (CPQ) Software such as Bit2Win Sales Suite from Accenture

  4. TIBCO Fulfillment Catalog 4.0.1

License

TIBCO Component Exchange License

Overview

This adapter is intended to connect to the CPQ APIs for the Bit2Win Sales Suite service (“B2W APIs”) available on the Salesforce AppExchange.  The B2W APIs are the property of Accenture.  You must have a separate license from Accenture in order to access and use the B2W APIs. 

This adapter service converts outbound TIBCO Enterprise Messaging Service notifications from TIBCO Fulfillment Order Management into CPQ-specific SOAP request.

Release(s)

Release V1.0

Published: May 2018

Below are the products that this adapter needs to run with:

There are currently no reviews for this content.

Why not be the first to review it - click here to login

CPQ Adapter for TIBCO Fulfillment Order Management

Background

This adapter is intended to connect to the CPQ APIs for the Bit2Win Sales Suite service (“B2W APIs”) available on the Salesforce AppExchange.  The B2W APIs are the property of Accenture.  You must have a separate license from Accenture in order to access and use the B2W APIs.

Before trying to use the adapter service, you need to have following software installed -

  1. TIBCO® Fulfillment Order Management 4.0.1
  2. TIBCO Enterprise Messaging Service™ 8.3
  3. A Configure Price Quote (CPQ) Software, e.g., the Bit2Win Sales Suite Service from Accenture, which will be northbound system for TIBCO® Fulfillment Order Management.
  4. Highly recommended: TIBCO Fulfillment Catalog 4.0.1. Why? Please read about how to integrate a CPQ software such as Bit2Win with TIBCO Fulfillment Catalog and TIBCO Fulfillment Order Management

Notes:

  • TIBCO® Fulfillment Order Management ‘s configuration flags for Plan Item Status and Model Loading Status change notification should be set to ‘true’.
  • If you have a different CPQ than the Bit2Win Sales Suite service, you need to modify the code for your intended CPQ APIs
  • TIBCO Fulfillment Catalog is typically used with TIBCO Fulfillment Order Management. TIBCO FC is the data and process model designer of the runtime products and process components. In the integration proof of concept between TIBCO and Bit2Win, B2W loads the commercial product model through TIBCO FC. The product sync complete is sent back through the adapter shared in this accelerator, via a service executed by TIBCO FOM.

Problems Solved

A Configure Price Quote system focuses on managing customer-facing products and the order capture process. This is otherwise known as the "northbound" system, as it is shown at the top (north) in many architecture diagrams. A fulfillment system such as TIBCO Fulfillment Order Management is otherwise known as the "southbound" system, as it is usually shown at the bottom (south). It manages the technical products / resource catalog, and the fulfillment processes associated with them. A CPQ system makes it easy for your customers to place an order, and a fulfillment system makes it easy for you to satisfy the order.

The two systems need to work together in order to provide a seamless concept-to-market and order-to-cash operational cycles. For that purpose, we built the CPQ Adapter for TIBCO Fulfillment Order Management.  A common product layer is used in both systems, i.e., the Customer Facing Service (CFS) or the Work-Item layer (in Bit2Win terminology)

CPQ Software require notifications from TIBCO® Fulfillment Order Management to update its Consumer Facing Services (CFS)/Work-Item. In this case the CPQ Software does not accept the TIBCO Enterprise Messaging Service™ notifications sent from TIBCO® Fulfillment Order Management. They have a SOAP implementation for updating CFS/Work-Item. So an adapter software is required, which would receive outbound TIBCO Enterprise Messaging Service™ notifications from TIBCO® Fulfillment Order Management, extract the required information, and transform it in CPQ specific SOAP request.

FOM CPQ Adapter architecture

The following architecture diagram shows how the fom-cpq-adapter service acts with TIBCO Fulfillment Order Management and CPQ applications.

The adapter service will receive notifications from TIBCO Fulfillment Order Management and extract the relevant information, create CPQ specific SOAP request and send it to the CPQ server. Response from the CPQ server would be logged for future reference.
Following are the CPQ specific SOAP request details -

  1. User credentials are used and login SOAP service is triggered to CPQ server, post authentication a session-id is returned from the CPQ server to the adapter service.
  2. On each successful model loading Fulfillment Order Management sends an outbound Enterprise Messaging Service notification, as Fulfillment Order Management will send out notification for each type of model it is adapter that filters notifications for product model and in the SOAP request adapter maps product-model-id to eci-id and status and sends the update-cfs-status SOAP request to CPQ server. Server send back the relevant message and code in the response.
  3. On each status change of plan-item Fulfillment Order Management sends an outbound Enterprise Messaging Service notification, for each notification received adapter service will create a SOAP request. Adapter service maps order-ref to work-order-id, order-line-number to work-order-item-id and plan-item-status to work-order-item-status and send the woi-status-notifications SOAP request to the CPQ server.

Using TIBCO Fulfillment Order Management Outbound notifications

We are using information from Fulfillment Order Management outbound Enterprise Messaging Service messages to create CPQ specific SOAP request. In order for Fulfillment Order Management to start sending the outbound notifications, go to the Fulfillment Order Management Configurator and set the value for following properties as ‘true’ -

  1. Enable PlanItem Status Change Notification
  2. Enable model loading success Notification

After setting the above flags as ‘true’, Fulfillment Order Management will start sending the specific notifications on the following Enterprise Messaging Service Topics respectively -

  1. tibco.aff.orchestrator.notification.planItem
  2. tibco.aff.oms.modelloading.success.notification.publish

In the current implementation of the adapter service we are consuming just the 2 outbound notifications from Fulfillment Order Management. There are lot more other state change notifications from Fulfillment Order Management that can be worked upon and which are not in current scope of adapter service.

FOM CPQ Adapter Packaging

fom-cpq-adapter service is delivered in an archive and when you unarchive the service, you will be able to see the directory structure as shown in screenshot.

/bin directory contains -

  • af-cpq-create-ems-channel.txt
  • copyLib.sh
  • start.sh
  • stop.sh

/config directory contains -

  • application.properties
  • logback.xml

/lib directory contains all the required project dependencies. There some libraries that are required to be placed by the user in the /lib directory, details on these libraries and how to copy they will be covered in next section.

/services directory contains the jar of actual service which will get executed as fom-cpq-adapter.

/source-code directory contains the complete source code of fom-cpq-adapter service.

Required Configurations

User is expected to update the required configurations before starting up the fom-cpq-adapter.
Let’s configure it stepwise -

  1. Execute /bin/af-cpq-create-ems-channel.txt as a script using tibemsadmin utility of Enterprise Messaging Service. It’s successful execution will create all the required Enterprise Messaging Service channels and bridges.
  2. Execute /bin/copyLib.sh to copy the required external jars, before executing this script you must open the script in a suitable editor and then provide the absolute paths for tibjms.jar and jms.jar/jms-2.0.jar. After saving your changes to the script, execute the script. Post execution the specified libraries would be copied to the /lib directory and will be placed on classpath on runtime.
  3. Properties mentioned in /config/application.properties affect the behavior of service. Below mentioned properties should be updated in application.properties file be for starting the fom-cpq-adapter service.
    There are other properties in application.properties file which can be updated as per your requirement but fom-cpq-adapter service will function even with default settings for other properties. Open /config/application.properties in suitable editor and update the following -

    1. cpqUser and cpqPassword - these credentials are required to establish the session and get the session-id for CPQ server.
    2. server.port - update the port in case you want the fom-cpq-adapter service to start on some other port.
    3. ems.server.url, ems.server.username and ems.server.password are details related to your Enterprise Messaging Service server which is specific to your environment.
  4. /config/logback.xml controls the logging bahavor of fom-cpq-adapter service. Following are some of the points to note -
    1. By-default we have console appender, in case you do not want logs to be printed on console, you can turn them off by commenting <appender-ref ref="STDOUT" /> under root tag.
    2. You can change the logging level of adapter classes by changing the level mentioned at logger name="com.tibco.fom", default logging level is ‘info’.

Starting the FOM CPQ Adapter

After you have completed the required configuration changes from the above steps, now it’s time to start the fom-cpq-adapter service.
Browse to /bin directory and execute the shell script - start.sh, this will start the adapter service.

bin]$ ./start.sh

On the console or in the log file, you will be able to see the following log as startup confirmation -

2018-04-05 11:46:05  INFO [com.tibco.fom.cpq.FomCpqAdapterApplication] [] - Started FomCpqAdapterApplication in 1.844 seconds (JVM running for 2.135)

You can even check the listener/consumer count on the queues which fom-cpq-adapter service listens to, the listener count should have increased to the one you have specified in /config/application.properties(default value for concurrent.ems.consumers=5).
There can be a situation where you do not want to store the CPQ server’s user credentials in /config/application.properties, to handle this use-case you can pass username and password as parameters to start.sh script

bin]$ ./start.sh username=<your-user-name> password=<your-user-password>

Adapter service as of now will require you to enter both username and password when trying to pass them as parameters. Passing only one of them will not give desired result. So either you don’t pass these values from command line and pass them from /config/application.properties or you pass both username and password from command line.

Passing the username and password from command line takes the precedence and overwrites any values for username and password given in /config/application.properties.

Extending adapter service

In order to extend the adapter service you must first import the provided source code in your IDE. In the project’s POM we have artifacts - tibjms and jms whose scope is provided, so you need to make sure that you install these artifacts in your local maven repository and it becomes available to the maven when you build the project.
N.B. - these artifacts are part of Enterprise Messaging Service installation and can be found at $EMS_HOME/lib.

After your are done with above dependency management now it time to check if the build is working fine. At the command prompt -

fom-cpq-adapter/source-code]$ mvn clean install

Ideally this should return as ‘BUILD SUCCESS’.
Post importing the adapter project in IDE, you will be able to see the structure as shown in below screenshot.

On successful build, classes generated from WSDL and XSD will be generated at fom-cpq-adapter/target/generated/cxf.

 

View the Wiki Page