Back
 

Oracle Configurator- Configurator Extension and CIO

iWare Logic > Blog  > Oracle Configurator- Configurator Extension and CIO

Oracle Configurator- Configurator Extension and CIO

Oracle Configurator-
Configurator Extension and CIO

Ever increasingly complex and customized configuration of the product renders new challenges to the manufacturers and to the customers who buy them. To have really effective configuration solution, data from not only product engineering but also from other domains like orders, customer data from CRM is needed from ERP. By using single model deployment across the enterprise it’s possible to have accurately feed orders to manufacturing and supply chain applications to fulfill them in a streamlined manner and Oracle Configurator does that rightly by enabling companies to specify, sell and finally manufacture highly customized and complex products.


So, we can say that Oracle Configurator is strategic guided selling and configuration product providing next-generation, state-of-the-art configuration technology. It’s a powerful add-on module to Oracle CRM and SCM applications that enables information driven business process which connect, automate, and energize your business.

In this article, I am going to elaborate on one of the functionality of Oracle Configurator called ‘Configurator Extension’.

Oracle Configurator provides the ability to extend the runtime behavior through Java class files. By creating the appropriate Java class files and tying them into your model, you can augment the runtime behavior to match what you need for your business. Historically, these Java class files were called “Functional Companions” but more recently, to reduce confusion, they have been renamed to “Configurator Extensions”.

Overview of Configurator Extensions
Configurator Extensions extends your runtime Oracle Configurator by attaching custom code through established interfaces. These extensions are written using JAVA language. The term Configurator Extension includes the following:

  • A Configurator Extension class in the Java class containing the methods that implement desired behaviour.
  • A Configurator Extension instance is the event-driven execution (the Java object) of the Java class at runtime.
  • A Configurator Extension Rules is the set of arrangements that you make in Oracle Configurator Developer to associate the CX class to a model.

The Configuration Integration Object:

The Configuration Integration Object is the concept which is important to understand before studying Configurator. The Configuration Interface Object (CIO) is an API (application programming Interface) that provides programs access to the Model used by a runtime Oracle Configurator, which you construct with Oracle Configurator Developer. The CIO is Designed to enable you to programmatically perform any interaction with a
Configuration model that can be interactively performed by an end user during a
Configuration session.

The CIO is a top-level configuration server. The CIO is responsible for creating, saving and destroying objects representing configurations, which themselves contain objects representing Models, Components, Features, Options, Totals and Resources.
The Oracle Configuration Interface Object is written in Java, and implemented as the Java package oracle.apps.cz.cio. To use the functionality of the CIO you must import classes from this package. All Configurator objects are represented as java class e.g

Object Name Java Class
Component oracle.apps.cz.cio.Component
TextFeature oracle.apps.cz.cio.TextFeatures
OptionFeatures oracle.apps.cz.cio.OptionFeature
Option oracle.apps.cz.cio.Option
BooleanFeature oracle.apps.cz.cio.BooleanFeature
Totals oracle.apps.cz.cio.Totals
Resource oracle.apps.cz.cio.Resource

Configurator Extensions are invoked by the CIO through the runtime Oracle
Configurator, and Configurator Extensions call the CIO to get information from the
Running Model. The CIO is like a broker for the runtime Oracle Configurator, in that it
Passes information both ways. Programmers writing Configurator Extensions need to
Know how to use the CIO.
Each Configurator Extension is an object class. For every component instance in your
Model that is associated with a Configurator Extension, the CIO creates an instance of
this class.

Initializing the CIO:
In order to use any of the features of the CIO, an application must initialize it, using a
JDBC driver to make a connection to the Oracle Configurator schema. This connection
enables the CIO to obtain and store data about Model structure, Configuration Rules,
and User Interface.

1.Following steps are required to initialize the CIO:
Import the necessary packages:
import java.sql.connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.apps.cz.cio.* ;
import oracle.apps.cz.common.* ;

2.Load the database drivers that you have installed

3.Create the context objects and pass to it the information to make a database connection: the host name and the port number of the web server, and the name of the DBC file. The context object manages the database connections, you should not create a separate connection objects.

4.Create a single global CIO object. This object is shared by any ‘configuration’ objects that are created in configuration session.

Create Configurator Extension Rules
Creating Configurator Extension Rule is a multi-step process viz.

  • Create Rule
  • Choose Model Node
  • Choose Java Class
  • Create Binding-Binding is assigning methods in selected to java class to specific configurator events. Events are similar to triggers in forms. There events which are used frequently are as follows:
    • OnCommand- Creates a Push Button in User Interface and java method gets executed after clicking the button
    • postValueChange- Similar to when validate item in forms i.e. whenever value of selected object changes this event will fire
    • postConfigSave- This event will get fire after saving the configuration. e.g. writeattributes.class is attached whenever we need to save Configurator DFF information
    • OnInstanceLoad- Initialize variables

While creating binding you will see only those Model Nodes which as having same type as java method arguments/parameters. e.g. if java method has OptionFeature as parameter then Oracle Configurator Developer will allow only OptionFeature type of nodes to be selected in binding.
EventScope can be Global, Base Node or Base Node Subtree. This is similar to form level, block level and item level triggers in Oracle Forms. E.g. postValue Change event is selected for

  • If Eventscope is Global then any object is Configurator instance changes, this event will fire.
  • If its Eventscope is Base Node then any item with Base Model Node of Rule changes then a given event will fire.
  • If Base Node Subtree event scope is selected then event will fire only for selected node and its sub-nodes.

These Extension rules, Configuration Integration objects enhances the utility of Configurator.So, in this way, with the help of this functionality called configurator extension we can extend the existing functionality of the Oracle Configurator to configure the highly complex product and makes it easy to have valid combination of the product which lead to streamlined manufacturing and supply chain operations.

By Aditya Ghate

Share