Setting up Oracle Utilities Meter Data Management
Two BPA scripts are provided to aid in the setup of Oracle Utilities Meter Data Management in synchronous processing. Consequently, the amount of setup work to be done by an implementation is greatly reduced. These scripts are intended to be executed only once prior to any customizations being made to any of the synchronous objects:
1. Insert Oracle Utilities Customer Care and Billing-specific algorithms to Sync Request business objects in Oracle Utilities Meter Data Management.
• D2-AddCCBAlg: Inserts transformation algorithms specific to the Oracle Utilities Customer Care and Billing integration into the sync request business objects. If your implementation needs to introduce additional transformation algorithms, they need to be inserted after this script is run.
• D2-PopMstCfg: Sets up data in the following master configurations:
• Master Data Synchronization Configuration: Contains the foreign key reference information used by framework to validate and/or resolve foreign keys in the master data sync requests.
• Seeder Sync Request Master Configuration: Contains information needed by the sync request seeder business object to determine the actual business object to instantiate. The information is keyed to external system, maintenance object, and initial load indicator in the sync request.
The rest of the setup tasks in Oracle Utilities Meter Data Management include:
For more information on configuring and working with Oracle Utilities Meter Data Management, refer to Oracle Utilities Meter Data Management Installation and Configuration Guide.
Standard Oracle Utilities Meter Data Management configuration, such as setting up usage validation rules and setting up services to poll for usage data, is covered in the standard Oracle Utilities Meter Data Management configuration guides.
The following sections provide a general overview of these steps. However, you should refer to the Oracle Utilities Meter Data Management Installation and Configuration Guide for detailed steps.
Oracle Utilities Meter Data Management Admin Data Table Configuration
This section describes the unique setup issues specifically related to configuring your system for the integration.
For more information about configuring Oracle Utilities Meter Data Management, see the Oracle Utilities Meter Data Management User Guide.
Country
Create a country code in Oracle Utilities Meter Data Management by navigating to the Country portal under the Admin menu.
The Main page is used to customize the fields and field descriptions that are displayed where addresses are used in the system. This ensures that all addresses conform to the customary address format and conventions of the particular country you have defined.
Service Point Type
Create the required SP Types by navigating to the SP Type portal under the Admin menu.
Usage Subscription Type
Create the required US Types by navigating to the Usage Subscription Type portal under the Admin menu. The codes defined here must exactly match values in the DVM indicated.
Device Type
Create the required Device Types by navigating to the Device Type portal under the Admin menu. The codes defined here must exactly match values in the DVM indicated.
Manufacturer and Model
Create the required Manufacturer and Model codes by navigating to the Manufacturer portal under the Admin menu. The codes defined here must exactly match values in the DVM indicated.
Device Configuration Type
Create the required Device Configuration Types by navigating to the Device Configuration Type portal under the Admin menu. The codes defined here must exactly match values in the DVM indicated.
Service Type
Create the required Service Types by navigating to the Service Type portal under the Admin menu. The codes defined here must exactly match values in the DVM indicated.
Unit of Measure
Define the Unit of Measure codes by navigating to the Unit of Measure portal under the Admin menu. The codes defined here must exactly match values in the DVM indicated.
Time of Use
Define the Time of Use codes by navigating to the Time of Use portal under the Admin menu. The codes defined here must exactly match values in the DVM indicated.
Service Quantity Identifier
Define the SQI codes by navigating to the Service Quantity Identifier portal under the Admin menu. The codes defined here must exactly match values in the DVM indicated.
Service Provider
Create a service provider that references the external system for Oracle Utilities Customer Care and Billing.
To create usage transactions (and calculate bill determinants) based on usage requests from Oracle Utilities Customer Care and Billing, add this processing method:
• Processing Role: Usage Transaction Creation, Business Object: How To Create US Related Information, Default Processing Method Business Object: D2-UsageTransaction
To send usage (bill determinants) to Oracle Utilities Customer Care and Billing, add this processing method:
• Processing Role: Usage Transaction Notification: Online, Business Object: How To Send US Related Information, Default Processing Method Outbound Message Type: <outbound message type for usage transaction response for an online usage request>
• Processing Role: Usage Transaction Notification: Batch, Business Object: How To Send US Related Information, Default Processing Method Outbound Message Type: <outbound message type for usage transaction response for a batch usage request>
• Processing Role: Usage Transaction Error Notification: Online, Business Object: How To Send US Related Information, Default Processing Method Outbound Message Type: <outbound message type for usage transaction error response for an online usage request>
• Processing Role: Usage Transaction Error Notification: Batch, Business Object: How To Send US Related Information, Default Processing Method Outbound Message Type: <outbound message type for usage transaction error response for a batch usage request>
• Processing Role: Usage Transaction Subsequent Correction Notification: Batch, Business Object: How To Send US Related Information, Default Processing Method Outbound Message Type: <outbound message type for usage transaction subsequent correction notification>
To support Oracle Utilities Customer Care and Billing meter read sync, add this processing method:
• Processing Role: Initial Measurement Creation, Business Object: How To Create MC Related Information, Default Processing Method Business Object: D1- SyncIMDScalar
To sync dynamic options and dynamic option events from Oracle Utilities Customer Care and Billing, add this processing method:
• Processing Role: Contract Option Type Translation, Business Object: How To Translate External Value, Default Processing Method Business Object: D2- CCBContractOptionTypeLookup
To support notification of bill cycle change to Oracle Utilities Customer Care when bill cycle changes resulting from change in SP's measurement cycle, add this processing method:
• Processing Role: SP Measurement Cycle Change, Business Object: How To Request Customer Notification, Default Processing Method Outbound Message Type: <outbound message type>
Master Configuration
A BPA script is provided to pre-populate the master configurations with the information necessary to support the base objects included in the data sync. Run D2-PopMstCfg to complete the BPA script.
Feature Configuration
To enable navigation from Oracle Utilities Meter Data Management to Oracle Utilities Customer Care and Billing, setup the Oracle Utilities Customer Care and Billing URL option type on the General System Configuration feature configuration. The option value must contain the URL for the Oracle Utilities Customer Care and Billing system (see the demo environment for an example).
Usage Adjustment Profiles
Refer to the Oracle Utilities Meter Data Management Configuration Guide in the Integration chapter for information on setting up the complete usage adjustment profile functionality. This feature only used for the Oracle Utilities Customer Self Service Rate Compare feature.
Oracle Utilities Meter Data Management System Data Table Configuration
To configure System Data Tables, you need the following:
Business Objects
This section describes unique setup issues specifically related to configuring your system for integration.
For more information about the sync request process, the business objects, maintenance objects, and other components used for this process, see the “Data Synchronization” section in Oracle Utilities Application Framework User Guide.
BO Algorithms
• Oracle Utilities Customer Care and Billing-specific algorithms need to be plugged in on the sync request business objects. A BPA script (D2-AddCCBAlg) is provided to plug-in these algorithms on to the sync BOs. This BPA script should be executed prior to any further customizations done on the sync BOs and this should only be executed once.
• To support notification of bill cycle change to Oracle Utilities Customer Care when bill cycle changes resulting from change in SP's measurement cycle, the BO audit algorithm (D2-SPMCCHG) must be plugged-in to service point BO (D1-ServicePoint).
Extendable Lookups
Configure the following extendable lookups in Oracle Utilities Meter Data Management:
• D1-DeviceLocationLookup – Configure the corresponding values from the Oracle Utilities Customer Care and Billing Meter Location admin table.
• D1-SPInstructionLookup – Configure the corresponding values from the
• Oracle Utilities Customer Care and Billing Meter Read Instruction admin table.
• D1-SPWarningLookup – Configure the corresponding values from the
• Oracle Utilities Customer Care and Billing Meter Read Warning admin table.
• D1-OkToEnterLookup – Configure the corresponding values from
• Oracle Utilities Customer Care and Billing (values are true or false).
• D1-KeyLookup – Configure the corresponding values from
• Oracle Utilities Customer Care and Billing (values are true or false).
• D2-CCBRateScheduleLookup – Configure the
• Oracle Utilities Customer Care and Billing rate schedule and its corresponding Oracle Utilities Meter Data Management usage group.
• D2-CCBContractOptionTypeLookup - Configure the Oracle Utilities Customer Care and Billing contract option types and their corresponding Oracle Utilities Meter Data Management dynamic option type.
Read Out Type
Navigate to the Lookup portal under the Admin menu to create as needed. The codes defined here must exactly match values in the DVM indicated.
Menus
Configure the following context menus to allow navigation from Oracle Utilities Meter Data Management to Oracle Utilities Customer Care and Billing:
Batch Scheduling
The delivered batch codes need no further setup in Oracle Utilities Meter Data Management. The following batch processes can be run from the Batch Submission page.
The following batch processes are used for Initial Sync requests:
All sync requests for all objects being synchronized are expected to be present in the Pending state. The following section describes the general processing for the initial sync request batches.
If any synchronization requests exist in the Validation Error state, run D1-SIIER to retry the data transformation/schema validation process (after, of course, the error have been investigated and resolved).
If any synchronization requests exist in the Resolution/BO Validation Error state, run its respective D1-SIK* batch job (see above for the proper suffix to use for each master data record being synchronized).
The following batch process are used for Ongoing Sync requests
Depending on how sync requests are sent from Oracle Utilities Customer Care and Billing, it is possible that interdependent sync requests might be received out of order. If you wish to control the order of processing the ongoing sync requests within, you can either introduce your own batch controls to replace D1-SIOPE (each batch control will have the specific ongoing sync BO defaulted in the input parameter); or you can submit D1-SIOPE several times, each time specifying a different ongoing sync BO in the input parameter. Otherwise, you can let the built-in retry processing within the ongoing sync request life cycle resolve the error by running D1-SIOER.
The above also applies to processing of the meter configuration sync request from Oracle Utilities Customer Care and Billing. Since the latter is split into several sync requests in Oracle Utilities Meter Data Management, it is possible that the MC syncs are processed before the DC sync. Any of the options already mentioned can be used to handle this scenario.
The following batch process is used to purge sync requests
The following batch processes are used for usage transaction processing
Oracle Utilities Meter Data Management Inbound Message Configuration
This section describes the configuration needed for Oracle Utilities Meter Data Management to receive messages from the integration layer by consuming them from the queues:
For first-time installation, skip this configuration. For an existing implementation that has already done this setup but want to switch and use the Integration JMS Wrapper processes instead, the JMS configuration can be left as is since these configuration will not be used but the MDB Configuration files must be removed to avoid having issues with message consumption from the queue.
WebLogic Server JMS Configuration
To configure JMS in the Oracle Utilities Meter Data Management WebLogic server log in to the console using the URL http://<server_name>:<port_number>/console.
Example: http://mdmserver:7001/console
Note that the WebLogic Server JMS Configuration is NOT needed if the SOA JMS Wrapper services are installed.
JMS Module
Create a new JMS module in the WebLogic console used for remote queue configuration.
1. Open the WebLogic console and create a new JMS module.
2. Enter a meaningful name for the JMS module. This JMS module is used to create configurations which consume messages from remote WebLogic queues.
Example: MDMInegrationModule
Foreign Server
Create a new Foreign server under the JMS module in the WebLogic console used for remote queue configuration.
1. Open the WebLogic console and select the JMS module created for integration.
2. Create a Foreign server under the JMS module.
3. Add the following:
• Name – Name of the Foreign server.
Example: MDMCCBForeignServer
• JNDI Initial Context Factory – weblogic.jndi.WLInitialContextFactory
• JNDI Connection URL – Add the URL of Integration SOA server.
Example: t3://soaserver.com:8002
• JNDI Properties Credential – Password for the SOA server user.
• JNDI Properties - java.naming.security.principal=<SOA Server user>.
Example: weblogic
4. Under the Foreign server, create a Foreign destination for each remote queue.
• Name – Name of foreign destination.
• Local JNDI Name – Add a local JNDI name for the Integration queue. Local JNDI name is later added manually as part of configuration in the WebLogic-ejb-jar.xml > <weblogic-enterprise-bean> > <message-driven-descriptor> > <destination-jndi-name>.
• Remote JNDI Name – JNDI name of the queue on the Integration SOA server. For each integration point, one destination is created.
5. Under the Foreign server, create a Remote Connection Factory.
• Name – Name of remote connection factory.
• Local JNDI Name – Add a local JNDI name for the Integration Connection Factory. This JNDI name is added manually later as part of configuration in the WebLogic-ejb-jar.xml > <weblogic-enterprise-bean> > <message-driven-descriptor> > <connection-factory-jndi-name>.
• Remote JNDI Name – JNDI name of the JMS Connection Factory on the Integration SOA server.
Example WebLogic Server JMS Configuration Setup
Person Synchronization Integration Process
SP Synchronization Integration Process
SA Synchronization Integration Process
SA Relationship Synchronization Integration Process
Meter Synchronization Integration Process
Meter Configuration Synchronization Integration Process
SP-Meter History Synchronization Integration Process
Batch BD Integration Process
Online BD Integration Process
Meter Read Synchronization Integration Process
Remote Connection Factory
Dynamic Options Synchronization Integration Process
Dynamic Option Events Synchronization Integration Process
Bill Cycle Synchronization Integration Process
Configuration File Changes for MDBs
Note that the MDB Configuration is NOT needed if implementation will use the Integration JMS Wrapper processes to receive messages coming from the integration processes.
Configure Message Driven Beans (MDB)
It is recommended that you use the Oracle Utilities Meter Data Management template and CM (Customer Modification) feature to make changes to these configuration files. This ensures that your modifications cannot be overwritten by future application patches.
• Modify files: ejb-jar.xml and ejb-weblogic-jar.xml
• Location: Oracle Utilities Meter Data Management Enterprise Archive (EAR) file. Observe the following points while making configuration file changes:
• The Oracle Utilities Meter Data Management configuration files, ejb-jar.xml and ejb-weblogic-jar.xml, must be modified to configure Message Driven Beans (MDB). MDBs which receive messages from the integration queues. These files are part of the Oracle Utilities Meter Data Management Enterprise Archive (EAR) file.
• The Oracle Meter Data Management application needs to be redeployed after these changes are made.
• Managing Configuration Files: Configuration files such as config.xml, ejb-jar.xml and ejb-weblogic-jar.xml are managed through template configuration files which reside in the environment's templates directory. When the initialSetup.sh script is executed, environment specific information is combined with the template to create the target file which is then deployed to the correct location. When the environment is started up (spl.sh start) the changes are automatically deployed to WebLogic.
• Extending existing templates: It is possiable to extend existing templates with the use of Include template file(s) in the same location as the existing template. Using #ouaf_user_exit within the target template that is extended, additional configuration from the included template is processed and appended to the target template where the #ouaf_user_exit is present.
• Enabling changes for the integration: To enable your changes for integration with Oracle Utilities Meter Data Management it is recommended that you first make a "CM" copy of the existing template and make your changes to the CM version. If there are any problems with starting the application it is a simple process to delete the CM versions of the files and rerun initialSetup to regenerate and redeploy the original versions.
If you make CM versions of the template files and later install a patch which updates the base template, the CM version will not be updated.
Create an MDB to Receive Messages
Use these steps to create an MDB from the Oracle Utilities Meter Data Management inbound queue:
1. Create a new MDB to receive messages from each integration inbound queue.
For simplicity, we refer to the names of the target configuration files in the following examples. However, you should make your changes in the "templates/cm_<target file>"(for Oracle Utilities Meter Data Management) and “MDM-CCB/templates/cm_<target file>” (for Oracle Utilities Meter Data Management, include a version of the file and then execute initalSetup.sh (Unix) or initalSetup.cmd (Windows) to deploy the generated file.
2. Create an MDB for each Oracle Utilities Meter Data Management inbound queue to receive messages and invoke the Oracle Utilities Meter Data Management service.
3. Create or modify the following files to configure the MDBs:
• cm_ejb-jar.xml.wls.jms_1.include
• cm_ejb-jar.xml.wls.jms_2.include
• cm_weblogic-ejb-jar.xml.jms.include
• cm_config.xml.jms.include or cm_config.xml.win.jms.include (for Windows systems only)
a. Add the <message-driven> and <container-transaction> tag for each inbound queue in the ejb-jar.xml. Also, add a security role with role cisusers in the ejb-jar.xml files.
• Example: cm_ejb-jar.xml.wls.jms_1.include
<!--Batch BD Integration Point -->
<message-driven>
<description>MDB for OUMDM2BatchBDRequest</description>
<display-name>OUMDM2BatchBDRequest</display-name>
<ejb-name>OUMDM2BatchBDRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!—Meter Config Sync Integration Point -->
<message-driven>
<description>MDB for OUMDM2MeterConfigSyncRequest</description>
<display-name>OUMDM2MeterConfigSyncRequest</display-name>
<ejb-name>OUMDM2MeterConfigSyncRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!—Meter Sync Integration Point -->
<message-driven>
<description>MDB for OUMDM2MeterSyncRequest</description>
<display-name>OUMDM2MeterSyncRequest</display-name>
<ejb-name>OUMDM2MeterSyncRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!--Online BD Integration Point -->
<message-driven>
<description>MDB for OUMDM2OnlineBDRequest</description>
<display-name>OUMDM2OnlineBDRequest</display-name>
<ejb-name>OUMDM2OnlineBDRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!—Person Sync Integration Point -->
<message-driven>
<description>MDB for OUMDM2PersonSyncRequest</description>
<display-name>OUMDM2PersonSyncRequest</display-name>
<ejb-name>OUMDM2PersonSyncRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!—SA Sync Integration Point -->
<message-driven>
<description>MDB for OUMDM2SASyncRequest</description>
<display-name>OUMDM2SASyncRequest</display-name>
<ejb-name>OUMDM2SASyncRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!-SA Relationship Sync Integration Point -->
<message-driven>
<description>MDB for OUMDM2SARelationshipSyncRequest</description> <display-name>OUMDM2SARelationshipSyncRequest</display-name> <ejb-name>OUMDM2SARelationshipSyncRequest</ejb-name> <ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class> <messaging-type>javax.jms.MessageListener</messaging-type> <transaction-type>Bean</transaction-type> <message-destination-type>javax.jms.Queue</message-destination-
type>
</message-driven>
<!—SP-Meter History Integration Point -->
<message-driven>
<description>MDB for OUMDM2SPMeterHistSyncRequest</description>
<display-name>OUMDM2SPMeterHistSyncRequest</display-name>
<ejb-name>OUMDM2SPMeterHistSyncRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!-- SP Sync Integration Point -->
<message-driven>
<description>MDB for OUMDM2SPSyncRequest</description>
<display-name>OUMDM2SPSyncRequest</display-name>
<ejb-name>OUMDM2SPSyncRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!—Meter Read Sync Integration Point -->
<message-driven>
<description>MDB for OUMDM2MeterReadSyncRequest</description>
<display-name>OUMDM2MeterReadSyncRequest</display-name>
<ejb-name>OUMDM2MeterReadSyncRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!-Dynamic Option Sync Integration Point -->
<message-driven>
<description>MDB for OUMDM2DynamicOptSyncRequest</description>
<display-name>OUMDM2DynamicOptSyncRequest</display-name>
<ejb-name>OUMDM2DynamicOptSyncRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!-Dynamic Option Event Sync Integration Point -->
<message-driven>
<description>MDB for OUMDM2DynamicOptEvtSyncRequest</description>
<display-name>OUMDM2DynamicOptEvtSyncRequest</display-name>
<ejb-name>OUMDM2DynamicOptEvtSyncRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
<!-Bill Cycle Sync Request Integration Point -->
<message-driven>
<description>MDB for OUMDM2InboundBillCycleSyncRequest</description>
<display-name>OUMDM2BillCycleSyncRequest</display-name>
<ejb-name>OUMDM2BillCycleSyncRequest</ejb-name>
<ejb-class>com.splwg.ejb.mdb.MessageProcessor</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
</message-driven>
• Example: cm_ejb-jar.xml.wls. jms_2.include
<security-role>
<role-name>cisusers</role-name>
</security-role>
<!--Batch BD Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2BatchBDRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!—Meter Config Sync Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2MeterConfigSyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!—Meter Sync Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2MeterSyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!--Online BD Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2OnlineBDRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!--Person Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2PersonSyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!—SA Sync Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2SASyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!-SA Relationship Sync Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2SARelationshipSyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!—SP-Meter History Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2SPMeterHistSyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!-- SP Sync Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2SPSyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!—Meter Read Sync Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2MeterReadSyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!-Dynamic Option Sync Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2DynamicOptSyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!-Dynamic Option Event Sync Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2DynamicOptEvtSyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<!-Inbound Bill Cycle Sync Request Integration Point -->
<container-transaction>
<method>
<ejb-name>OUMDM2BillCycleSyncRequest</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
b. Modify the cm_weblogic-ejb-jar.xml.jms.include file. Add the <weblogic-enterprise-bean> tag for each inbound queue.
• The references in <weblogic-enterprise-bean> tag include:
• <ejb-name> - MDB name given in ejb-jar.xml.
• <destination-jndi-name> - JNDI name provided in JMS module > Foreign server > Foreign destination Local JNDI name.
• <connection-factory-jndi-name> - JNDI name provided in JMS module > Foreign server > Remote Connection Factory > Local JNDI name.
• Example: cm_weblogic-ejb-jar.xml.jms.include
<!--Batch BD Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2BatchBDRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2BatchBDRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!--Meter Config Sync Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2MeterConfigSyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2MeterConfigSyncRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!—Meter Sync Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2MeterSyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2MeterSyncRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!--Online BD Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2OnlineBDRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2OnlineBDRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!—Person Sync Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2PersonSyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2PersonSyncRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!—SA Sync Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2SASyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2SASyncRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!-SA Relationship Sync Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2SARelationshipSyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2SARelationshipSyncRequest</
destination-jndi-name>
<connection-factory-jndi-name>jms/
LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name> </message-driven-descriptor>
</weblogic-enterprise-bean>
<!—SP-Meter History Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2SPMeterHistSyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2SPMeterHistSyncRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!-- SP Sync Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2SPSyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2SPSyncRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!—Meter Read Sync Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2MeterReadSyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2MeterReadSyncRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!—Dynamic Option Sync Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2DynamicOptSyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2DynamicOptSyncRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!-Dynamic Option Event Sync Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2DynamicOptEvtSyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2DynamicOptEvtSyncRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
<!-Bill Cycle Sync Request Integration Point -->
<weblogic-enterprise-bean>
<ejb-name>OUMDM2BillCycleSyncRequest</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/LocalOUMDM2InboundBillCycleSyncRequest</destination-jndi-name>
<connection-factory-jndi-name>jms/LocalOUCCB2OUMDM2ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
c. Example: cm_config.xml.jms.include / cm_config.xml.win.jms.include
<jms-system-resource>
<name>CCB2IntegrationExampleModule</name>
<target>myserver</target>
<sub-deployment>
<name>CCB2IntegrationExample</name>
<target>myserver</target>
</sub-deployment>
<descriptor-file-name>jms/Module-for-CCB-integration-example-1-jms.xml</descriptor-file-name>
</jms-system-resource>
Oracle Utilities Meter Data Management Outbound Message Configuration
This section describes the following configuration needed for Oracle Utilities Meter Data Management to send messages out to the integration layer.
Note: The following Outbound Message Configurations: JNDI Server, JMS Queue and JMS Connection setup are NOT needed when using the Integration JMS Wrapper processes to send messages to the integration. Proceed to
Message Sender,
Outbound Message Type and
External System configuration.
For new installation and existing implementations that want to use the JMS Wrapper Services instead of the queues, follow the instructions above. Existing implementations that has already done the outbound message configuration to send messages to queues can just leave the old setup as is. These configuration will just be ignored and not used.
JNDI Server
Create a new JNDI server which points to the Integration SOA server to communicate with the integration layer.
1. Navigate to the JNDI portal under the Admin menu.
2. Enter the JNDI server name.
Example: CCB_JNDI
3. Enter the JNDI server description.
Example: MDM-CCB Integration server.
4. Enter the Provider URL in the format:
t3//<SOA Server>: <SOA_ManagedServer_Port>
Example: t3://soaserver.us.oracle.com:8002
5. Enter the Initial Context Factory details.
Example: weblogic.jndi.WLInitialContextFactor
JMS Queue
Create a new JMS Queue for each integration queue where Oracle Utilities Meter Data Management sends messages.
1. Navigate to the JMS Queue portal under the Admin menu.
2. Enter the following:
• JMS Queue – Queue name in Oracle Utilities Meter Data Management.
• Description – Queue description
• Queue Name – JNDI name of the queue on the Integration server.
Example: jms/OUMDM2SPSyncResponse
• Target Client Flag – JMS
• JNDI Server – Select the JNDI server created for integration.
Note: Only define the queues that Oracle Utilities Meter Data Management will be publishing or writing messages to.
Example JMS Queue Setup
Contact Synchronization Integration Process
Device Configuration Synchronization Integration Process
Device Synchronization Integration Process
Install Event Synchronization Integration Process
SP Synchronization Integration Process
Usage Subscription Synchronization Integration Process
Usage Subscription Relationship Synchronization Integration Process
Dynamic Option Synchronization Integration Process
Dynamic Option Event Synchronization Integration Process
Batch BD Response Integration Process
Online BD Response Integration Process
Replacement Read/Subsequent Correction Integration Process
Meter Read Synchronization Integration Process
Bill Cycle Synchronization Integration Process
JMS Connection
Create a new JMS Connection used to connect to the integration queues.
1. Navigate to the JMS Connection portal under the Admin menu.
2. Enter the following:
• JMS Connection – Connection name in Oracle Utilities Meter Data Management.
• Description – Connection description
• JNDI Server – Select the JNDI server created for this integration (as described in the JNDI Server section).
• JNDI ConnectionFactory – JNDI name of the connection factory on the integration server.
Example JMS Connection Setup
Message Sender
This section focuses on the message sender.
Message Sender to Invoke Integration Asynchronous Processes
If Oracle Utilities Meter Data Management is writing to the integration queues, create a Message Sender for each outbound queue. Refer to the
Message Sender for Each Outbound Queue setup below.
Note that Message Sender for Each JMS Wrapper Service Configuration is not needed.
If Oracle Utilities Meter Data Management is calling the integration JMS Wrapper services, create a Message Sender for each JMS Wrapper service. Refer to the
Message Sender for Each Integration JMS Wrapper Service setup below.
Note that when the Integration JMS Wrapper Services are used, the Message Sender for each outbound queue Configuration is not needed.
Message Sender for Each Outbound Queue
Create a new real time Message Sender (to communicate with the integration layer) for each Oracle Utilities Meter Data Management outbound integration queue.
1. Navigate to the Message Sender portal under the Admin menu.
2. Enter a unique Message Sender and its description.
3. Populate the following values:
• Message Sender – Sender name in Oracle Utilities Meter Data Management.
• Description – Sender description
• Invocation Type – Real-time
• Message Class – RTJMSQSNDR (Realtime JMS Queue Sender)
• Active - Select the checkbox.
• MSG Encoding – UTF-8 message encoding
• JMS Connection – JMS Connection created for integration.
• JMS Queue – JMS Queue created for the Oracle Meter Data Management outbound queue.
4. Select the Context tab and set values for the following context types:
• JMS Message Type (Bytes(Y)/Text(N)) – N
• JMS User Name – User for the SOA server to be accessed.
• JMS User Password – Password for the SOA server to be accessed.
Message Sender for Each Integration JMS Wrapper Service
Create a real time Message Sender configured to communicate with the integration JMS wrapper service.
1. Navigate to the Message Sender portal under the Admin menu.
2. Enter a unique Message Sender and its description.
3. Populate the following values:
• Message Sender – Sender name in Oracle Utilities Customer Care and Billing.
• Description – Sender description
• Invocation Type – Real-time
• Message Class – SOAPSNDR (SOAP Sender)
• Active - Select the checkbox.
• MSG Encoding – UTF-8 message encoding
4. Select the Context tab and set values for the following context types:
• HTTP Header - SOAPAction:"process"
• HTTP Login User - User ID to access Integration BPEL process
• HTTP Password - Password to access Integration BPEL process
• HTTP Method (POST/GET) - POST
• HTTP Timeout - 60
• HTTP Transport Method - SendReceive
• HTTP URL 1 - Set the URL to be accessed. If the URL value does not fit, use the additional HTTP URL types to set the complete URL.
Example Message Sender For Outbound Queue Setup
Contact Synchronization Integration Process
Device Synchronization Integration Process
Device Configuration Integration Process
Install Event Synchronization Integration Process
Service Point Synchronization Integration Process
Usage Subscription Synchronization Integration Process
Usage Subscription Relationship Synchronization Integration Process
Dynamic Option Synchronization Integration Process
Dynamic Option Event Synchronization Integration Process
BD Response (Batch BD Request) Integration Process
BD Response (Online BD Request) Integration Process
Replacement Reads/Subsequent Correction Integration Process
Meter Read Synchronization Integration Process
Bill Cycle Synchronization Integration Process
Example Message Sender Setup For Integration JMS Wrapper Services
Contact Sync Response JMS Write Service
Service Point (SP) Sync Response JMS Write Service
Usage Subscription (US) Sync Response JMS Write Service
Usage Subscription (US) Relationship Sync Response JMS Write Service
Device Sync Response JMS Write Service
Device Configuration Sync Response JMS Write Service
Install Event Sync Response JMS Write Service
Batch BD Response JMS Write Service
Online BD Response JMS Write Service
Meter Read Sync Response JMS Write Service
Replacement Read Request JMS Write Service
Dynamic Option Sync Response JMS Write Service
Dynamic Option Event Sync Response JMS Write Service
Bill Cycle Sync Response JMS Write Service
Note: The endpoint URL for the integration services can be obtained from the SOA EnterpriseManager. From the SOA folder, navigate to Navigator > soa-infra > CCB2-MDM2 partition and select the composite application. At the top of the page, click the Test tab. The composite application's endpoint URL is shown there..
Message Sender to Invoke Integration Synchronous Services
Create a new Message Sender for each Integration Service being called.
1. Navigate to the Message Sender portal under the Admin menu.
2. Enter a unique Message Sender and its description.
3. Populate the following values:
• Message Sender – Sender name in Oracle Utilities Customer Care and Billing.
Example: BCCHGNOTIF
• Description – Sender description
• Invocation Type – Real-time
• Message Class – RTHTTPSNDR (Real Time Sender to route messages via HTTP)
• Active - Select the checkbox.
• MSG Encoding – UTF-8 message encoding
4. Select the Context tab and set values for the following context types:
• HTTP Header - SOAPAction:"process"
• HTTP Login User - User ID to access Integration BPEL process
• HTTP Password - Password to access Integration BPEL process
• HTTP Method (POST/GET) - POST
• HTTP Timeout - 60
• HTTP Transport Method - SendReceive
• HTTP URL 1 - Set the URL to be accessed. If the URL value does not fit, use the additional HTTP URL types to set the complete URL.
Example Message Sender Setup For Integration Synchronous Service
Bill Cycle Change Notification Process
Outbound Message Type
Create an Outbound Message Type for each Oracle Utilities Meter Data Management outbound message to send out.
1. Navigate to the Outbound Message Type portal under the Admin menu.
2. Enter an outbound message type, its description, and then the detailed description.
3. Select the Outbound Message business object created for the specific outbound queue.
Example Outbound Message Type Setup
Contact Synchronization Integration Process
Device Configuration Synchronization Integration Process
Device Synchronization Integration Process
Install Event Synchronization Integration Process
SP Synchronization Integration Process
US Synchronization Integration Process
US Relationship Synchronization Integration Process
Dynamic Option Synchronization Integration Process
Dynamic Option Event Synchronization Integration Process
Bill CycleSynchronization Integration Process
Batch BD Response Integration Process
Online BD Response Integration Process
Replacement Read/Subsequent Correction Notification Integration Process
Meter Read Synchronization Integration Process
Bill Cycle Change Notification Integration Process
External System
Create a new external system for the integration.
1. Navigate to the External System portal under the Admin menu.
2. Enter a unique name for the external system and its description.
Example:
Name = CI_CCB
Description = Oracle Utilities Customer Care and Billing
3. Set the Our Name in Their System field to Meter Data Management.
4. Associate the outbound message types created to the external system. For each outbound message type, set the following:
• Outbound Message Type – Set the outbound message type created for Oracle Utilities Meter Data Management outbound queue.
• Processing Method – Real-time
• Message Sender – Set the Message Sender created for the queue.
• Message XSL
• When sending to queues - Use D1-MDMJMSQAddNamespace.xsl
• When invoking webservices - Use CDxAddEnvelope-SOAP1-2.xsl
Note: When sending outbound messages through web services, Message XSL need to be populated when the Message Sender used for this outbound message type has a Message Class of RTHTTPSNDR (Real Time Sender to route messages via HTTP. Message Senders with Message Class of SOAPSNDR (Sender for real-time HTTP/SOAP messages do not need to populate the Message XSL to add the SOAP envelope.
If Oracle Utilities Meter Data Management sends JMS messages to the integration queues, use the message senders created for each outbound queue. See
Message Sender for Each Outbound Queue for more information.
If Oracle Utilities Meter Data Management sends JMS messages to the integration JMS Wrapper service, use the message senders create for each JMS Wrapper service. See Sample Message Sender for Each JMS Wrapper Service for more details.
Example: External System – Oracle Utilities Customer Care and Billing
For more information about configuration guidelines, refer to the Oracle Utilities Meter Data Management user documentation.