===================================================================================================
CREATEING Dynamic PartnerLink
===================================================================================================
Variable declaration :
<variables>
<variable name="TargetEndpointLocation" type="xsd:string"/>
<variable name="EndpointReference" element="wsa:EndpointReference"/>
<variable name="ServiceName" type="xsd:string"/>
<variable name="PartnerLinkName" type="xsd:string"/>
<variable name="EBMMsgBpelVariableName" type="xsd:string"/>
<variable name="EBMMsgPartName" type="xsd:string"/>
</variables>
Assignment :
<sequence name="Sequence_Create_DynamicPL">
<assign name="Assign_Create_DynamicPL">
<copy>
<from expression="'{http://xmlns.oracle.com/ABCSImpl/Siebel/Industry/Comms/SubmitOrder####ABCSImpl}SubmitOrder####ABCSImpl'"/>
<to variable="ServiceName"/>
</copy>
<copy>
<from expression="VFQA_USSD_SubmitOrder"/>
<to variable="PartnerLinkName"/>
</copy>
<copy>
<from expression="'inputVariable'"/>
<to variable="EBMMsgBpelVariableName"/>
</copy>
<copy>
<from expression="'payload'"/>
<to variable="EBMMsgPartName"/>
</copy>
</assign>
</sequence>
Java embeding for variable assignment :
<bpelx:exec name="GetTargetEndpointLocation" language="java"
version="1.5">
<![CDATA[java.lang.String serviceName = (java.lang.String)getVariableData("ServiceName");
java.lang.String partnerLinkName = (java.lang.String)getVariableData("PartnerLinkName");
java.lang.String cavsEndpointPropertyName ="Routing."+partnerLinkName+".CAVS.EndpointURI" ;
java.lang.String ebmMsgBpelVariableName = (java.lang.String)getVariableData("EBMMsgBpelVariableName");
java.lang.String ebmMsgPartName = (java.lang.String)getVariableData("EBMMsgPartName");
java.lang.String systemIdBpelVariableName = "SystemID";
java.lang.String targetEndpointLocationBpelVariableName = "TargetEndpointLocation";
java.lang.String routeToCavsPropertyName = "Routing."+partnerLinkName+".RouteToCAVS";
java.lang.String defaultSystemIdPropertyName = null;
java.lang.String targetEndpointLocation = null;
java.lang.String targetID = null;
boolean addAudits = true;
if (addAudits) addAuditTrailEntry("Partnerlink = " + partnerLinkName);
// check configuration for CAVS routing flag
try {
boolean routeToCAVS = java.lang.Boolean.parseBoolean(oracle.apps.aia.core.config.Configuration.getServiceProperty(serviceName, routeToCavsPropertyName));
if (addAudits) addAuditTrailEntry("RouteToCAVS = " + routeToCAVS);
if (routeToCAVS) {
targetEndpointLocation = oracle.apps.aia.core.config.Configuration.getSystemModuleProperty("CAVS", cavsEndpointPropertyName);
if (addAudits) addAuditTrailEntry("Endpoint = '" + targetEndpointLocation + "' selected from configuration property " + cavsEndpointPropertyName);
}
}
catch (oracle.apps.aia.core.config.PropertyNotFoundException e) {
if (addAudits) addAuditTrailEntry("Configuration property " + cavsEndpointPropertyName + " not found!");
}
if (targetEndpointLocation==null || targetEndpointLocation=="") {
// check bpel variable for already retrieved target system Id
try {
targetID = (java.lang.String)getVariableData(systemIdBpelVariableName);
if (addAudits && targetID!=null) addAuditTrailEntry("Using previously stored Target System ID = '" + targetID + "'");
}
catch (com.oracle.bpel.client.BPELFault e) {
}
if (targetID==null || targetID=="") {
// try to get Target system ID from EBM Header
try {
oracle.xml.parser.v2.XMLElement targetIdElement = (oracle.xml.parser.v2.XMLElement)getVariableData(ebmMsgBpelVariableName, ebmMsgPartName, "/*/corecom:EBMHeader[1]/corecom:Target/corecom:ID[text()!='']");
targetID = targetIdElement.getText();
if (addAudits) addAuditTrailEntry("Target System ID = '" + targetID + "', selected from EBM EBM_HEADER");
}
catch (com.oracle.bpel.client.BPELFault e) {
if (addAudits) addAuditTrailEntry("Unable to retrieve Target System ID from message EBM_HEADER");
}
try {
if (targetID!=null && targetID!="") setVariableData(systemIdBpelVariableName, targetID);
}
catch (com.oracle.bpel.client.BPELFault e) {
}
}
if (targetID==null || targetID=="") {
// try to get Target system ID from configuration
try {
defaultSystemIdPropertyName="Default.SystemID";
targetID = oracle.apps.aia.core.config.Configuration.getServiceProperty(serviceName, defaultSystemIdPropertyName);
if (addAudits) addAuditTrailEntry("Target System ID = '" + targetID + "', selected from configuration property " + defaultSystemIdPropertyName);
}
catch (oracle.apps.aia.core.config.PropertyNotFoundException e) {
if (addAudits) addAuditTrailEntry("Configuration property " + defaultSystemIdPropertyName + " not found!");
}
try {
if (targetID!=null && targetID!="") setVariableData(systemIdBpelVariableName, targetID);
}
catch (com.oracle.bpel.client.BPELFault e) {
}
}
if (targetID!=null || targetID!="") {
// try to get EndpointLocation from Configuration
java.lang.String endpointPropertyName = "Routing."+partnerLinkName+"."+targetID+".EndpointURI";
try {
targetEndpointLocation = oracle.apps.aia.core.config.Configuration.getServiceProperty(serviceName, endpointPropertyName);
if (addAudits) addAuditTrailEntry("Endpoint = '" + targetEndpointLocation + "' selected from configuration property " + endpointPropertyName);
}
catch (oracle.apps.aia.core.config.PropertyNotFoundException e) {
if (addAudits) addAuditTrailEntry("Configuration property " + endpointPropertyName + " not found!");
}
}
}
try {
setVariableData(targetEndpointLocationBpelVariableName, targetEndpointLocation);
}
catch (com.oracle.bpel.client.BPELFault e) {
}]]>
</bpelx:exec>
Header assignment :
<switch name="Switch_AssignPartnerlinkEndpoint">
<case condition="string-length(bpws:getVariableData('TargetEndpointLocation'))>0">
<assign name="AssignPartnerlinkEndpointReference">
<copy>
<from>
<wsa:EndpointReference xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<wsa:Address/>
</wsa:EndpointReference>
</from>
<to variable="EndpointReference"/>
</copy>
<copy>
<from variable="TargetEndpointLocation"/>
<to variable="EndpointReference"
query="/wsa:EndpointReference/wsa:Address"/>
</copy>
<copy>
<from variable="EndpointReference"/>
<to partnerLink="Siebel_Update_service"/>
</copy>
</assign>
</case>
<otherwise/>
</switch>
</sequence>
Add security Header in invocation :
<invoke name="Invoke_QA_USSD_SubmitOrder"
inputVariable="Invoke_QA_USSD_SubmitOrder_Q_spcUSSD_spcOrder_spcProvisioning_spcWF_InputVariable"
outputVariable="Invoke_QA_USSD_SubmitOrder_Q_spcUSSD_spcOrder_spcProvisioning_spcWF_OutputVariable"
partnerLink="Siebel_Update_service"
portType="ns1:VFQ_spcUSSD_spcOrder_spcProvisioning_spcWF"
operation="VFQ_spcUSSD_spcOrder_spcProvisioning_spcWF"
bpelx:invokeAsDetail="no"
bpelx:inputHeaderVariable="SiebelWSHeader"/>
CREATEING Dynamic PartnerLink
===================================================================================================
Variable declaration :
<variables>
<variable name="TargetEndpointLocation" type="xsd:string"/>
<variable name="EndpointReference" element="wsa:EndpointReference"/>
<variable name="ServiceName" type="xsd:string"/>
<variable name="PartnerLinkName" type="xsd:string"/>
<variable name="EBMMsgBpelVariableName" type="xsd:string"/>
<variable name="EBMMsgPartName" type="xsd:string"/>
</variables>
Assignment :
<sequence name="Sequence_Create_DynamicPL">
<assign name="Assign_Create_DynamicPL">
<copy>
<from expression="'{http://xmlns.oracle.com/ABCSImpl/Siebel/Industry/Comms/SubmitOrder####ABCSImpl}SubmitOrder####ABCSImpl'"/>
<to variable="ServiceName"/>
</copy>
<copy>
<from expression="VFQA_USSD_SubmitOrder"/>
<to variable="PartnerLinkName"/>
</copy>
<copy>
<from expression="'inputVariable'"/>
<to variable="EBMMsgBpelVariableName"/>
</copy>
<copy>
<from expression="'payload'"/>
<to variable="EBMMsgPartName"/>
</copy>
</assign>
</sequence>
Java embeding for variable assignment :
<bpelx:exec name="GetTargetEndpointLocation" language="java"
version="1.5">
<![CDATA[java.lang.String serviceName = (java.lang.String)getVariableData("ServiceName");
java.lang.String partnerLinkName = (java.lang.String)getVariableData("PartnerLinkName");
java.lang.String cavsEndpointPropertyName ="Routing."+partnerLinkName+".CAVS.EndpointURI" ;
java.lang.String ebmMsgBpelVariableName = (java.lang.String)getVariableData("EBMMsgBpelVariableName");
java.lang.String ebmMsgPartName = (java.lang.String)getVariableData("EBMMsgPartName");
java.lang.String systemIdBpelVariableName = "SystemID";
java.lang.String targetEndpointLocationBpelVariableName = "TargetEndpointLocation";
java.lang.String routeToCavsPropertyName = "Routing."+partnerLinkName+".RouteToCAVS";
java.lang.String defaultSystemIdPropertyName = null;
java.lang.String targetEndpointLocation = null;
java.lang.String targetID = null;
boolean addAudits = true;
if (addAudits) addAuditTrailEntry("Partnerlink = " + partnerLinkName);
// check configuration for CAVS routing flag
try {
boolean routeToCAVS = java.lang.Boolean.parseBoolean(oracle.apps.aia.core.config.Configuration.getServiceProperty(serviceName, routeToCavsPropertyName));
if (addAudits) addAuditTrailEntry("RouteToCAVS = " + routeToCAVS);
if (routeToCAVS) {
targetEndpointLocation = oracle.apps.aia.core.config.Configuration.getSystemModuleProperty("CAVS", cavsEndpointPropertyName);
if (addAudits) addAuditTrailEntry("Endpoint = '" + targetEndpointLocation + "' selected from configuration property " + cavsEndpointPropertyName);
}
}
catch (oracle.apps.aia.core.config.PropertyNotFoundException e) {
if (addAudits) addAuditTrailEntry("Configuration property " + cavsEndpointPropertyName + " not found!");
}
if (targetEndpointLocation==null || targetEndpointLocation=="") {
// check bpel variable for already retrieved target system Id
try {
targetID = (java.lang.String)getVariableData(systemIdBpelVariableName);
if (addAudits && targetID!=null) addAuditTrailEntry("Using previously stored Target System ID = '" + targetID + "'");
}
catch (com.oracle.bpel.client.BPELFault e) {
}
if (targetID==null || targetID=="") {
// try to get Target system ID from EBM Header
try {
oracle.xml.parser.v2.XMLElement targetIdElement = (oracle.xml.parser.v2.XMLElement)getVariableData(ebmMsgBpelVariableName, ebmMsgPartName, "/*/corecom:EBMHeader[1]/corecom:Target/corecom:ID[text()!='']");
targetID = targetIdElement.getText();
if (addAudits) addAuditTrailEntry("Target System ID = '" + targetID + "', selected from EBM EBM_HEADER");
}
catch (com.oracle.bpel.client.BPELFault e) {
if (addAudits) addAuditTrailEntry("Unable to retrieve Target System ID from message EBM_HEADER");
}
try {
if (targetID!=null && targetID!="") setVariableData(systemIdBpelVariableName, targetID);
}
catch (com.oracle.bpel.client.BPELFault e) {
}
}
if (targetID==null || targetID=="") {
// try to get Target system ID from configuration
try {
defaultSystemIdPropertyName="Default.SystemID";
targetID = oracle.apps.aia.core.config.Configuration.getServiceProperty(serviceName, defaultSystemIdPropertyName);
if (addAudits) addAuditTrailEntry("Target System ID = '" + targetID + "', selected from configuration property " + defaultSystemIdPropertyName);
}
catch (oracle.apps.aia.core.config.PropertyNotFoundException e) {
if (addAudits) addAuditTrailEntry("Configuration property " + defaultSystemIdPropertyName + " not found!");
}
try {
if (targetID!=null && targetID!="") setVariableData(systemIdBpelVariableName, targetID);
}
catch (com.oracle.bpel.client.BPELFault e) {
}
}
if (targetID!=null || targetID!="") {
// try to get EndpointLocation from Configuration
java.lang.String endpointPropertyName = "Routing."+partnerLinkName+"."+targetID+".EndpointURI";
try {
targetEndpointLocation = oracle.apps.aia.core.config.Configuration.getServiceProperty(serviceName, endpointPropertyName);
if (addAudits) addAuditTrailEntry("Endpoint = '" + targetEndpointLocation + "' selected from configuration property " + endpointPropertyName);
}
catch (oracle.apps.aia.core.config.PropertyNotFoundException e) {
if (addAudits) addAuditTrailEntry("Configuration property " + endpointPropertyName + " not found!");
}
}
}
try {
setVariableData(targetEndpointLocationBpelVariableName, targetEndpointLocation);
}
catch (com.oracle.bpel.client.BPELFault e) {
}]]>
</bpelx:exec>
Header assignment :
<switch name="Switch_AssignPartnerlinkEndpoint">
<case condition="string-length(bpws:getVariableData('TargetEndpointLocation'))>0">
<assign name="AssignPartnerlinkEndpointReference">
<copy>
<from>
<wsa:EndpointReference xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<wsa:Address/>
</wsa:EndpointReference>
</from>
<to variable="EndpointReference"/>
</copy>
<copy>
<from variable="TargetEndpointLocation"/>
<to variable="EndpointReference"
query="/wsa:EndpointReference/wsa:Address"/>
</copy>
<copy>
<from variable="EndpointReference"/>
<to partnerLink="Siebel_Update_service"/>
</copy>
</assign>
</case>
<otherwise/>
</switch>
</sequence>
Add security Header in invocation :
<invoke name="Invoke_QA_USSD_SubmitOrder"
inputVariable="Invoke_QA_USSD_SubmitOrder_Q_spcUSSD_spcOrder_spcProvisioning_spcWF_InputVariable"
outputVariable="Invoke_QA_USSD_SubmitOrder_Q_spcUSSD_spcOrder_spcProvisioning_spcWF_OutputVariable"
partnerLink="Siebel_Update_service"
portType="ns1:VFQ_spcUSSD_spcOrder_spcProvisioning_spcWF"
operation="VFQ_spcUSSD_spcOrder_spcProvisioning_spcWF"
bpelx:invokeAsDetail="no"
bpelx:inputHeaderVariable="SiebelWSHeader"/>
No comments:
Post a Comment