How Service Mappings, Pricing Algorithms, and Matrixes Work Together

Set up a service mapping, pricing algorithm, and matrix class so they work together to price an item.

how a service mapping, pricing algorithm, and matrix class work

The pricing algorithm references a service mapping to price an item that it receives from an application, such as Oracle Order Management.

Object

Description

Service mapping

Integrate with the calling application that requires pricing, such as Order Management.

Map inputs from the calling application to outputs that the matrix and algorithm can use.

Set up attributes so rules in the pricing matrix can use them.

Set up services and pricing entities to provide structure for variables that the pricing algorithm uses.

Pricing matrix

Set up conditions and dimensions in the pricing matrix.

Choose attributes in the condition and result columns of the matrix class from the entity attributes you set up in the service mapping.

The algorithm uses condition dimensions and their values to compare the runtime value against the value of the design time rule. The result values are the result of evaluating the conditions.

Pricing algorithm

Set up the algorithm so it uses the pricing matrix to evaluate and apply pricing rules at runtime.

Set up the algorithm to transform the attribute values it receives from the service mapping to output values.

Example Flow

Assume Order Management is the calling application and the receiving application, and it requires Oracle Pricing to price a sales order.

how data flows through the pricing

Here's how it works.

  1. Order Management uses the predefined CalculateSalesOrderTotals service to send data for one sales order to Pricing.

  2. CalculateSalesOrderTotals references the predefined Sales service mapping. This service mapping includes the OrderTotal source, and it uses OrderTotal to convert the data that Order Management sends into an input service data object (SDO).

    An SDO is a data structure that doesn't conform to a single programming language. It helps Pricing communicate with Order Management and other applications, such as Contract Management. It allows one service to call another service without having to use the same computer language.

    A service data object typically includes elements arranged in a tree structure that includes a root and branches, and it allows the calling service to access the data that the elements reference.

    The OrderTotal source specifies the entities and attributes that the SDO contains and that the service will use as input to the pricing application.

    For example, here's the input SDO that represents the structure of a sales order.

    input service data object

    The OrderTotal source specifies to use.

    • The Header entity and the Customer attribute on the Header.

    • The Order Line entity and various attribute on the line, such as Item, UOM, and so on.

  3. The Sales service mapping specifies sources, entities, and mappings between entities and attributes so Pricing can create the structure for the output SDO that it will send to Order Management.

    It adds the Charge entity and the ChargeComponent entity to the output SDO, but doesn't add values for the attributes that these entities contain.

    Here's the output SDO without pricing data.

    output service data object
  4. Pricing uses a pricing process assignment to identify the pricing algorithm to run, then applies the pricing algorithm to the service mapping. In this example, Pricing applies each step of the predefined Price Sales Transaction pricing algorithm to the Sales service mapping.

    Each algorithm step uses data from the output SDO and conditionally updates it in memory at runtime.

    In this example, the pricing algorithm adds values to attributes in the Charge entity and the ChargeComponent entity of the output SDO. It adds a value of $1,000 to the Unit Price attribute.

    Here's the output SDO with pricing data.

    output service data object

    Pricing does the calculation.

    • Base List Price. Unit price of 1,000 multiplied by Quantity of 2 equals Extended Amount of 2,000.

      Net Price. Unit Price from Base List Price of 1,000 minus Discount of 100 equals Unit Price of 900. Unit Price of 900 multiplied by Quantity of 2 equals Extended Amount of 1800.

  5. Pricing sends the output SDO to Order Management.

  6. Order Management receives the output SDO and uses it to update entities in the sales order, such as Extended Amount.

Note that Pricing might use different services, sources, and algorithms for other examples.