WSO2Con 2011: Delivering the Goods: Automated Quote to Cash - Brad Svee
- By WSO2Con 2011
- 24 Oct, 2011
The Liabilities of Custom Code
Billing and invoicing go hand-in-hand with Concur’s travel and expense services in creating the total customer experience. This integrated approach is one that other SaaS companies should consider, Mr. Svee suggested, “One of the areas that I think is underemphasized is the ability of the business to deliver new products and services to customers quickly with innovative billing and pricing options that weren’t there before.”
Until recently, Concur maintained some 400,000 lines of custom PL/SQL code in its Oracle E-Business Suite (EBS) to support complex billing and account structures. However, Mr. Svee said, a combination of three factors led Concur to rethink its technology approach: its rapidly expanding services, Oracle’s ending of support for the current EBS version, and the demands for Concur to comply with Sarbanes-Oxley reporting requirements. Rewriting all the custom code to meet these demands was neither sustainable nor scalable, he noted.
Instead, Brad and his team asked, “What can we do to make billing more flexible?”
Logic Moves to the Middleware
The answer was to implement two products: a billing engine and an order management system, connected by the WSO2 Enterprise Service Bus and WSO2 Business Process Server, with development support from WSO2. Concur had been using WSO2 ESB and WSO2 BPS since 2008 and 2009, respectively, so the developers were already familiar with the products. Moreover, Concur had success in the past using WSO2’s professional services.
Mr. Svee noted that using the WSO2 ESB’s mediation logic on the order management system output would make it possible to eliminate complex rules in the billing engine. Additionally, the team decided to use WSO2 BPS as much as possible to avoid writing custom code or services in the billing engine.
In effect Mr. Svee said, the team has created a layer “that transforms the data coming in about an order into our own object model that’s more…in line with the billing engine itself and how we look and think about our data.”
Chasing Away Challenges
In his presentation, Mr. Svee outlined eight challenges with the integrated billing and order management implementation that Concur was able to solve using WSO2 middleware. Among them were three addressing special data entry requirements, the flow of Web services, and multiple sources for orders.
Data Entries: Hidden Product Offerings:
Mr. Svee explained that certain billing strategies within Concur require the creation of special “Product Offering” entries in the billing engine to conduct the back-end calculation. However, these items do not need to be shown on the quote or order. Concur addressed this need by setting up WSO2 BPS to recognize specific products and then automatically create the hidden objects in the billing engine.
Speeding Web Services:
Because the billing engine’s Web services are doing a lot of work, they can only handle a small continuous flow of orders, Mr. Svee noted. Concur maintains this managed flow by taking advantage of the message queue and throttling in the WSO2 ESB to restrict the amount of orders that are sent to WSO2 BPS, which are then inserted/updated in the billing engine.
Orders from Multiple Sources:
Concur has to manage orders that come from indirect resellers, as well as the order management system, Mr. Svee said. The company also must be prepared to accommodate any future acquisitions that do not have order entry systems. He said Concur’s solution was to take advantage of the two-tiered model with WSO2 BPS and Concur’s own Order XML schema, which allow the company to parse orders from different sources, validate them, and then queue a standard XML message for the worker BPEL to be loaded. He added that this also allows for a common readability of orders, making it easier to investigate manual errors.
When Opportunity Knocks
There are so many opportunities to generate revenue and value, Mr. Svee said. However, with those opportunities come the challenges of implementing systems that are flexible enough to accommodate new developments. For Concur, WSO2 middleware is playing a key role in meeting those challenges.
To learn more about how Concur is using WSO2 middleware to support its billing and order management, view Mr. Svee’s full presentation here.