Implementing Extension Points
Steps to implement extension points include:
1. Each process in the integration has a pre- and post-transformation extension point which can be used to invoke Web services and transform the payload.
2. The desired extension point can be triggered from the process by enabling it using the ConfigurationProperties.xml pre- and post-transformation extension flags as described in the
Setting 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 following directories:
• /apps/CCB2-MDM2/AIAMetaData/AIAComponents/ExtensionServiceLibrary/OUCCB2
• /apps/CCB2-MDM2/AIAMetaData/AIAComponents/ExtensionServiceLibrary/OUMDM2
3. Update the concrete wsdl file to define the binding and service details for the extension service to be called and move the concrete wsdl file to MDS according to the example below.
4. To move the updated concrete wsdl to MDS, update the appropriate wsdl in the product install home. The directories to put the concrete wsdl in product install home are the following:
• $PRODUCT_HOME/MDS-Artifacts/CCB2-MDM2/AIAMetaData/AIAComponents/ExtensionServiceLibrary/OUCCB2
• $PRODUCT_HOME/MDS-Artifacts/CCB2-MDM2/AIAMetaData/AIAComponents/ExtensionServiceLibrary/OUMDM2
5. Deploy the concrete wsdls to MDS by running the ant deploy command for Deploying MDS folder.
For more information about the command to use to deploying to MDS, refer to the Deploying MDS Folder section in the Oracle Utilities Customer Care and Billing Integration to Oracle Utilities Meter Data Management Installation Guide.
6. After deploying the files to MDS, restart the SOA server.
7. After restarting the SOA server, the extension point invokes the Web service in the concrete WSDL.
Sample WSDL File with Binding and Service Details
Example: To enable the extension points for OUCCB2OUMDM2SPSyncReqExtension, add the binding and service elements to the OUCCB2OUMDM2SPSyncReqExtensionConcrete.wsdl
<binding name="OUCCB2OUMDM2SPSyncReqV1ExtensionServiceSOAP11Binding"
type="ccbext:OUCCB2OUMDM2SPSyncReqV1ExtensionService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="PreXformCCB2toMDM2">
<soap:operation style="document" soapAction="http://xmlns.oracle.com/OUCCB2OUMDM2SPSyncReqEBF/OUCCB2OUMDM2SPSyncReqExtension/V1/PreXformCCB2toMDM2"/>
<input>
<soap:body use="literal" parts="CCB2ToMDM2"/>
</input>
<output>
<soap:body use="literal" parts="CCB2ToMDM2"/>
</output>
<fault name="fault">
<soap:fault name="fault" use="literal"/>
</fault>
</operation>
<operation name="PostXformCCB2toMDM2">
<soap:operation style="document"
soapAction="http://xmlns.oracle.com/OUCCB2OUMDM2SPSyncReqEBF/OUCCB2OUMDMS2PSyncReqExtension/V1/ PostXformCCB2toMDM2"/>
<input>
<soap:body use="literal" parts="MDM2Enqueue"/>
</input>
<output>
<soap:body use="literal" parts="MDM2Enqueue"/>
</output>
<fault name="fault">
<soap:fault name="fault" use="literal"/>
</fault>
</operation>
</binding>
<service name="OUCCB2OUMDM2SPSyncReqV1ExtensionService">
<!-- Port name must match the port name used for the Extension service in the composite.xml of the process - ->
<port name="OUCCB2OUMDM2SPSyncReqV1ExtensionService"
binding="ccbext:OUCCB2OUMDM2SPSyncReqV1ExtensionServiceSOAP11Binding">
<soap:address location="<endpoint url of the Extension server>"/>
</port>
</service>
Note that the binding and service can be added easily using the Oracle JDeveloper.