Custom Transformations
The custom transformations are used to add data to custom elements in the incoming and outgoing messages. The incoming and outgoing messages have custom elements defined in the message. These custom elements will refer to a Custom XML schema. The main transformation invokes custom transformation.
Empty custom transformation and custom schemas are shipped with the product. The implementation team can add additional fields in the custom schema and map them using the custom transformations.
Using custom transformations will enable the implementation to define and pass additional data from source system to the target system.
Extension Points
Please note the following regarding implementing extension points:
• Each process in the integration has a pre and post transformation extension point which can be used to invoke webservices and transform the payload.
• The desired extension point can be triggered from the process by enabling it using the
OUCCBOUNMSConfigurationProperties.xml pre and post transformation extension flags as described in the
Configuration Properties section.
• Each process has its own concrete wsdl which is used to read the endpoint location for the extension service.
• These concrete wsdl files are located in MDS under the directories:
/apps/CCB-NMS/AIAMetaData/AIAComponents/ExtensionServiceLibrary/OUCCB and /apps/CCB-NMS/AIAMetaData/AIAComponents/ExtensionServiceLibrary/OUNMS
• The binding, port type and soap address for the extension service can be added in the concrete wsdl in the installation folder and the wsdl moved to MDS.
• To move the wsdl to MDS update the appropriate wsdl in the product install home. The directories in the product install home are:
CCB_NMS_INSTALL_HOME/MDS-Artifacts/AIAMetaData/AIAComponents/ExtensionServiceLibrary/OUCCB and CCB_NMS_INSTALL_HOME/MDS-Artifacts/AIAMetaData/AIAComponents/ExtensionServiceLibrary/OUNMS.
• The OUCCBOUNMSConfigurationProperties.xml and the concrete wsdl need to be checked-in into MDS and the soa server has to be restarted.
Refer to the command for MDS update in the installation guide to update MDS.
• To commit the update, restart the SOA server.
• On restart, the extension point will invoke the web service in the concrete wsdl.
Example: To enable the extension points for OUCCBOUNMSCustomerSyncReqExtension add the binding and service elements to the OUCCBOUNMSCustomerSyncReqExtensionConcrete.wsdl
<binding name="OUCCBOUNMSCustomerSyncReqV1ExtensionServiceSOAP11Binding"
type="ccbext: OUCCBOUNMSCustomerSyncReqV1ExtensionService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="PreXformCCBtoNMSMsg">
<soap:operation style="document" soapAction="http://xmlns.oracle.com/OUCCBOUNMSCustomerSyncEBF/OUCCBOUNMSCustomerSyncReqExtension/V1/ PreXformCCBtoNMSMsg "/>
<input>
<soap:body use="literal" parts="CCBToNMS"/>
</input>
<output>
<soap:body use="literal" parts="CCBToNMS"/>
</output>
<fault name="fault">
<soap:fault name="fault" use="literal"/>
</fault>
</operation>
<operation name=" PostXformCCBtoNMSMsg">
<soap:operation style="document"
soapAction="http://xmlns.oracle.com/ OUCCBOUNMSCustomerSyncEBF/OUCCBOUNMSCustomerSyncReqExtension/V1 PostXformCCBtoNMSMsg"/>
<input>
<soap:body use="literal" parts=" NMSEnqueue "/>
</input>
<output>
<soap:body use="literal" parts=" NMSEnqueue "/>
</output>
<fault name="fault">
<soap:fault name="fault" use="literal"/>
</fault>
</operation>
</binding>
<service name="OUCCBOUNMSCustomerSyncReqV1ExtensionService">
<!-- Port name must match the port name used for the Extension service in the composite.xml for the process - ->
<port name="OUCCBOUNMSCustomerSyncReqV1ExtensionService"
binding="ccbext: OUCCBOUNMSCustomerSyncReqV1ExtensionServiceSOAP11Binding">
<soap:address location="<endpoint url of the Extension server>"/>
</port>
</service>
Custom Transformations
Please note the following regarding implementing custom transformations:
• Each process in the integration has its own xsd file. The messages have custom elements which can be used to pass additional data from one application to another or vice versa. Refer to the message mappings to see the location of customElements in each message.
• Each xsd has a corresponding CustomType xsd in which the complexType elements for each customElements tag are defined.
• Some process which does not expect a response back only uses one xsd files while some process that expects a response uses two xsd files, one for the request message and one for the response message.
• To pass additional elements in the customElements tag, the corresponding complexType needs to be modified in the customType xsd. Add the additional elements required in the complexType elements i.e. xsd for the Oracle Utilities Customer Care and Billing application.
• Each process has a main transformation which invokes custom templates. Each main transformation file has a corresponding custom xsl and the custom templates are defined in the custom xsl.
• These custom templates are invoked at the location where each customElements tag is present.
• The custom xsl can be modified to add transformation for the newly added elements in the custom xsd files.
• The custom xsd files for the Oracle Utilities Customer Care and Billing application are located in the product install home under the directory CCB_NMS_INSTALL_HOME/MDS-Artifacts/AIAMetaData/AIAComponents/ApplicationObjectLibrary/OUCCB/V1/schemas. The Oracle Utilities Network Management System application does not have custom xsds. Oracle Utilities Network Management System has defined user defined field in there stored procedure to be used for extension.
• The custom xsl files are located in the product install home under the directory CCB_NMS_INSTALL_HOME/services/industry/Utilities/EnterpriseBusinessFlow/<Process Name>/xsl
• After updating the xsd and xsl files in the product install home, update MDS using the ant scripts and restart the SOA server.
Refer to the command for MDS update in the installation guide to update MDS.
Example:
To modify the Customer Data Synchronization process to pass email from Oracle Utilities Customer Care and Billing to Oracle Utilities Network Management System, perform the following steps:
sendDetails'finalSnapshot'personInfo'customElements'email element in CCB to CUST_UDF1 element in NMS.
Complete the following steps:
1. Modify OUCCBCustomerSyncReqCustomType.xsd
<xsd:complexType name="personInfoCustomType">
<xsd:sequence>
<xsd:element name="email" type="xsd:string"/>
</xsd:sequence>
<xsd:complexType>
2. Modify Transform_CCB_to_NMS_CustomerSyncMeterInfo_Custom.xsl
<xsl:template name="InputParameters_customElements">
<!-- this template is use for Xformation of //InputParameters/customElements in Request Message-->
<CUST_UDF1>
<xsl:value-of select="/tns1:sendDetails/tns1:syncRequestDetails/tns1:finalSnapshot/tns1:personInfo/tns1:customElements/tns1:email"/>
</CUST_UDF1>
</xsl:template>