Defining RuntimeFaultMessage messageType
I seem to be having a problem getting past this error message:
Error(18):
[Error ORABPEL-10007]: unresolved messageType
[Description]: in line 18 of "S:\ORADEVL\bpel_dev_source\BPELProcess2\BPELProcess2.bpel", WSDL messageType "{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage" of variable "Variable_1" is not defined in any of the WSDL files.
[Potential fix]: Make sure the WSDL messageType "{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage" is defined in one of the WSDLs referenced by the deployment descriptor.
Oracle SR may have provded an answer regarding this:
Declare the type in the partner link wsdl file (rather than) or in addition to the project wsdl file.
SOLUTION / ACTION PLAN
=======================
To implement the solution, please execute the following steps:
1. Place the following import statement in stdb.wsdl file instead of stdb2Dbmap_ProHistV2.wsdl. Because your process is trigger
ed by DB polling, which is described in stdb.wsdl file, the WSDL file imported
into the stdb2Dbmap_ProHistV2.wsdl file will not take effect.
"<import namespace="http://schemas.oracle.com/bpel/extension"
location="http://twodogs:7777/orabpel/xmllib/RuntimeFault.wsdl"/>"
Example
<?xml version="1.0" encoding="UTF-8"?>
<definitions
name="stdb"
targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/stdb/"
xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/stdb/"
xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
xmlns:pc="http://xmlns.oracle.com/pcbpel/"
xmlns:top="http://xmlns.oracle.com/pcbpel/adapter/db/top/Stdb2DbmapProcHistV2"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<import namespace="http://schemas.oracle.com/bpel/extension"
location="http://pwang02.au.oracle.com:7779/orabpel/xmllib/RuntimeFault.wsdl"/>
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/top/Stdb2DbmapProcHistV2"
schemaLocation="ProcessingHistories_table.xsd"/>
</schema>
</types>
More ...
Similar Messages
-
Errors after upgrading Bpel process manager
Hi all,
As said in the subject I recently upgraded to the latest version of the Bpel process manager. And it looks like some changes have been made ;-) My project does not compile/deploy anymore. See below the obant errors I got. Apparently, I should now add the ns prefixes in the bpel source ... could you confirm? What impact will that make on the queries?
thanx,
--mike
Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument>obant
Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument>SETLOCAL
Buildfile: build.xml
main:
[bpelc] bpelc> validating "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel" ...
[bpelc] BPEL validation failed.
[bpelc] BPEL source validation failed, the errors are:
[bpelc]
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 377 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/userId"
is invalid, because step ':userId' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 382 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/imageUR
L" is invalid, because step ':imageURL' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 404 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/passwor
d" is invalid, because step ':password' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 747 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/ex
ecution/started" is invalid, because step ':execution' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 752 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/lo
anAccountNumber" is invalid, because step ':loanAccountNumber' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 757 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/fo
rmURL" is invalid, because step ':formURL' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 767 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/lo
anAccountNumber" is invalid, because step ':loanAccountNumber' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 772 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/fo
rmURL" is invalid, because step ':formURL' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 782 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/ex
ecution/finished" is invalid, because step ':execution' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 817 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/emailRe
cipient" is invalid, because step ':emailRecipient' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 822 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/emailRe
cipient" is invalid, because step ':emailRecipient' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 1127 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/emailR
ecipient" is invalid, because step ':emailRecipient' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
Next is my bpel source:
<!-- LocalLoanIncSmartDocument BPEL Process [Generated by the Oracle BPEL Designer] -->
<process name="LocalLoanIncSmartDocument" targetNamespace="urn:SmartDocument" suppressJoinFailure="yes" xmlns:tns="urn:SmartDocument" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:cx="http://schemas.collaxa.com/xpath/extension" xmlns:ns0="urn:ocr.services.smartdocument.xerox.com" xmlns:ns1="urn:email.services.smartdocument.xerox.com" xmlns:ns2="urn:categoriser.services.smartdocument.xerox.com" xmlns:ns3="urn:signature.services.smartdocument.xerox.com" xmlns:ns4="urn:LoanService" xmlns:ns5="urn:dataglyph.services.smartdocument.xerox.com" xmlns:ns6="urn:initiate.services.smartdocument.xerox.com" xmlns:ns7="urn:seal.services.smartdocument.xerox.com" xmlns:ns8="http://www.xerox.com/webservices/" xmlns:ns9="urn:store.services.smartdocument.xerox.com" xmlns:ns10="urn:factfinder.services.smartdocument.xerox.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:task="http://services.oracle.com/bpel/task">
<!-- ================================================================= -->
<!-- PARTNERLINKS -->
<!-- List of services participating in this BPEL process -->
<!-- ================================================================= -->
<partnerLinks>
<!--
The 'client' role represents the requester of this service. It is
used for callback. The location and correlation information associated
with the client role are automatically set using WS-Addressing.
-->
<partnerLink name="client" partnerLinkType="tns:LocalLoanIncSmartDocument" myRole="LocalLoanIncSmartDocumentProvider" partnerRole="LocalLoanIncSmartDocumentRequester"/>
<partnerLink name="SignatureService" partnerRole="SignatureProvider" partnerLinkType="ns3:SignatureLink"/>
<partnerLink name="CategoriserService" partnerRole="CategoriserProvider" partnerLinkType="ns2:CategoriserLink"/>
<partnerLink name="EmailService" partnerRole="EmailProvider" partnerLinkType="ns1:EmailLink"/>
<partnerLink name="OCRService" partnerRole="OcrProvider" partnerLinkType="ns0:OcrLink"/>
<partnerLink name="ValidateApplicationManager" partnerLinkType="task:TaskManager" partnerRole="TaskManager" myRole="TaskManagerRequester"/>
<partnerLink name="DataglyphService" partnerRole="DataglyphProvider" partnerLinkType="ns5:DataglyphLink"/>
<partnerLink name="LoanService" partnerRole="LoanServiceProvider" partnerLinkType="ns4:LoanServiceLink"/>
<partnerLink name="InitiateService" partnerLinkType="ns6:InitiateLink" partnerRole="InitiateProvider"/>
<partnerLink name="SealService" partnerLinkType="ns7:SealLink" partnerRole="SealProvider"/>
<!-- CHANGE If on boss
<partnerLink name="FactFinderService" partnerLinkType="ns8:FactFinderSoapLink" partnerRole="FactFinderSoapProvider"/>
-->
<!-- CHANGE If not on boss -->
<partnerLink name="FactFinderService" partnerLinkType="ns10:FactFinderSoapLink" partnerRole="FactFinderSoapProvider"/>
<!-- -->
<partnerLink name="StoreService" partnerLinkType="ns9:StoreLink" partnerRole="StoreProvider"/>
</partnerLinks>
<!-- ================================================================= -->
<!-- VARIABLES -->
<!-- List of messages and XML documents used within this BPEL process -->
<!-- ================================================================= -->
<variables>
<!-- Reference to the message passed as input during initiation -->
<variable name="input" messageType="tns:InputMessage"/>
<!-- Reference to the message that will be sent back to the
requester during callback
-->
<variable name="flowContents" messageType="tns:SmartDocumentMessage"/>
<variable name="dataglyphKey" type="xsd:string"/>
<variable name="inputSmartDocumentId" type="xsd:string"/>
<variable name="inputDocumentId" type="xsd:string"/>
<variable name="inputUrl" type="xsd:string"/>
<variable name="serviceIdentifier" type="xsd:string"/>
<variable name="runtimeFaultMessage" messageType="bpelx:RuntimeFaultMessage"/>
<variable name="authId" type="xsd:string"/>
</variables>
<faultHandlers>
<catch faultName="bpelx:bindingFault" faultVariable="runtimeFaultMessage">
<scope name="HandleBindingFault">
<variables>
<variable name="error" element="tns:error"/>
</variables>
<sequence>
<scope name="SetErrorMessage">
<sequence>
<assign name="prepareRecord">
<copy>
<from variable="serviceIdentifier">
</from>
<to variable="error" query="/error/processStep"/>
</copy>
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="error" query="/error/occuredAt"/>
</copy>
<copy>
<from variable="runtimeFaultMessage" part="code">
</from>
<to variable="error" query="/error/errorCode"/>
</copy>
<copy>
<from variable="runtimeFaultMessage" part="summary">
</from>
<to variable="error" query="/error/errorSummary"/>
</copy>
</assign>
<assign name="addToSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('error'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
</sequence>
</scope>
<scope name="Seal">
<variables>
<variable name="seal" element="tns:seal"/>
<variable name="sealInput" messageType="ns7:SealRequest"/>
<variable name="sealOutput" messageType="ns7:SealResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="seal" query="/seal/execution/started"/>
</copy>
<copy>
<from variable="inputSmartDocumentId">
</from>
<to variable="seal" query="/seal/input/smartdocumentid"/>
</copy>
<copy>
<from variable="inputDocumentId">
</from>
<to variable="seal" query="/seal/input/documentid"/>
</copy>
</assign>
<assign name="addtoSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('seal'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from variable="authId">
</from>
<to variable="sealInput" part="AuthId"/>
</copy>
<copy>
<from variable="seal" query="/seal/input/smartdocumentid">
</from>
<to variable="sealInput" part="SmartDocumentId"/>
</copy>
<copy>
<from expression="ora:getContentAsString(ora:getElement('flowContents', 'document', '/smartdocument'))">
</from>
<to variable="sealInput" part="XmlString"/>
</copy>
</assign>
<invoke partnerLink="SealService" portType="ns7:Seal" operation="Seal" inputVariable="sealInput" outputVariable="sealOutput"/>
</sequence>
</scope>
</sequence>
</scope>
</catch>
<catch faultName="bpelx:remoteFault" faultVariable="runtimeFaultMessage">
<scope name="HandleRemoteFault">
<variables>
<variable name="error" element="tns:error"/>
</variables>
<sequence>
<scope name="SetErrorMessage">
<sequence>
<assign name="prepareRecord">
<copy>
<from variable="serviceIdentifier">
</from>
<to variable="error" query="/error/processStep"/>
</copy>
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="error" query="/error/occuredAt"/>
</copy>
<copy>
<from variable="runtimeFaultMessage" part="code">
</from>
<to variable="error" query="/error/errorCode"/>
</copy>
<copy>
<from variable="runtimeFaultMessage" part="summary">
</from>
<to variable="error" query="/error/errorSummary"/>
</copy>
</assign>
<assign name="addToSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('error'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
</sequence>
</scope>
<scope name="Seal">
<variables>
<variable name="seal" element="tns:seal"/>
<variable name="sealInput" messageType="ns7:SealRequest"/>
<variable name="sealOutput" messageType="ns7:SealResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="seal" query="/seal/execution/started"/>
</copy>
<copy>
<from variable="inputSmartDocumentId">
</from>
<to variable="seal" query="/seal/input/smartdocumentid"/>
</copy>
<copy>
<from variable="inputDocumentId">
</from>
<to variable="seal" query="/seal/input/documentid"/>
</copy>
</assign>
<assign name="addtoSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('seal'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from variable="authId">
</from>
<to variable="sealInput" part="AuthId"/>
</copy>
<copy>
<from variable="seal" query="/seal/input/smartdocumentid">
</from>
<to variable="sealInput" part="SmartDocumentId"/>
</copy>
<copy>
<from expression="ora:getContentAsString(ora:getElement('flowContents', 'document', '/smartdocument'))">
</from>
<to variable="sealInput" part="XmlString"/>
</copy>
</assign>
<invoke partnerLink="SealService" portType="ns7:Seal" operation="Seal" inputVariable="sealInput" outputVariable="sealOutput"/>
</sequence>
</scope>
</sequence>
</scope>
</catch>
<catchAll>
<scope name="HandleGenericFault">
<variables>
<variable name="error" element="tns:error"/>
</variables>
<sequence>
<scope name="SetErrorMessage">
<sequence>
<assign name="prepareRecord">
<copy>
<from variable="serviceIdentifier">
</from>
<to variable="error" query="/error/processStep"/>
</copy>
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="error" query="/error/occuredAt"/>
</copy>
<copy>
<from expression="'UNKNOWN ERROR CODE'">
</from>
<to variable="error" query="/error/errorCode"/>
</copy>
<copy>
<from expression="'UNKNOWN ERROR SUMMARY'">
</from>
<to variable="error" query="/error/errorSummary"/>
</copy>
</assign>
<assign name="addToSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('error'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
</sequence>
</scope>
<scope name="Seal">
<variables>
<variable name="seal" element="tns:seal"/>
<variable name="sealInput" messageType="ns7:SealRequest"/>
<variable name="sealOutput" messageType="ns7:SealResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="seal" query="/seal/execution/started"/>
</copy>
<copy>
<from variable="inputSmartDocumentId">
</from>
<to variable="seal" query="/seal/input/smartdocumentid"/>
</copy>
<copy>
<from variable="inputDocumentId">
</from>
<to variable="seal" query="/seal/input/documentid"/>
</copy>
</assign>
<assign name="addtoSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('seal'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from variable="authId">
</from>
<to variable="sealInput" part="AuthId"/>
</copy>
<copy>
<from variable="seal" query="/seal/input/smartdocumentid">
</from>
<to variable="sealInput" part="SmartDocumentId"/>
</copy>
<copy>
<from expression="ora:getContentAsString(ora:getElement('flowContents', 'document', '/smartdocument'))">
</from>
<to variable="sealInput" part="XmlString"/>
</copy>
</assign>
<invoke partnerLink="SealService" portType="ns7:Seal" operation="Seal" inputVariable="sealInput" outputVariable="sealOutput"/>
</sequence>
</scope>
</sequence>
</scope>
</catchAll>
</faultHandlers>
<!-- ================================================================= -->
<!-- ORCHESTRATION LOGIC -->
<!-- Set of activities coordinating the flow of messages across the -->
<!-- services integrated within this business process -->
<!-- ================================================================= -->
<sequence name="main">
<!-- Receive input from requestor.
Note: This maps to operation defined in LocalLoanIncSmartDocument.wsdl
-->
<receive name="receiveInput" partnerLink="client" portType="tns:LocalLoanIncSmartDocument" operation="initiate" variable="input" createInstance="yes"/>
<assign name="InitialiseVariables">
<copy>
<from expression="'042e05a98cddac30e309f8'">
</from>
<to variable="dataglyphKey"/>
</copy>
<copy>
<from expression="'0'">
</from>
<to variable="inputSmartDocumentId"/>
</copy>
<copy>
<from expression="'0'">
</from>
<to variable="inputDocumentId"/>
</copy>
<copy>
<from expression="'Unknown service'">
</from>
<to variable="serviceIdentifier"/>
</copy>
</assign>
<scope name="Initiate">
<variables>
<variable name="initiate" element="tns:initiate"/>
<variable name="initiateInput" messageType="ns6:InitiateRequest"/>
<variable name="initiateOutput" messageType="ns6:InitiateResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="initiate" query="/initiate/execution/started"/>
</copy>
<copy>
<from variable="input" part="payload" query="/input/userId">
</from>
<to variable="initiate" query="/initiate/userid"/>
</copy>
<copy>
<from variable="input" part="payload" query="/input/imageURL">
</from>
<to variable="initiate" query="/initiate/url"/>
</copy>
<copy>
<from expression="string('LocalLoanIncSmartDocument')">
</from>
<to variable="initiate" query="/initiate/processName"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from expression="'Initiate'">
</from>
<to variable="serviceIdentifier"/>
</copy>
<copy>
<from variable="initiate" query="/initiate/userid">
</from>
<to variable="initiateInput" part="Username"/>
</copy>
<copy>
<from variable="input" part="payload" query="/input/password">
</from>
<to variable="initiateInput" part="Password"/>
</copy>
<copy>
<from variable="initiate" query="/initiate/url">
</from>
<to variable="initiateInput" part="URL"/>
</copy>
</assign>
<invoke partnerLink="InitiateService" portType="ns6:Initiate" operation="Initiate" inputVariable="initiateInput" outputVariable="initiateOutput"/>
<assign name="updateScopeVariables">
<copy>
<from variable="initiateOutput" part="Result" query="/Result/SmartDocumentId">
</from>
<to variable="inputSmartDocumentId"/>
</copy>
<copy>
<from variable="initiateOutput" part="Result" query="/Result/DocumentId">
</from>
<to variable="inputDocumentId"/>
</copy>
<copy>
<from variable="initiateOutput" part="Result" query="/Result/DocumentURL">
</from>
<to variable="inputUrl"/>
</copy>
<copy>
<from variable="initiateOutput" part="Result" query="/Result/AuthId">
</from>
<to variable="authId"/>
</copy>
</assign>
<assign name="updateRecord">
<copy>
<from variable="initiateOutput" part="Result" query="/Result/SmartDocumentId">
</from>
<to variable="initiate" query="/initiate/output/smartdocumentid"/>
</copy>
<copy>
<from variable="initiateOutput" part="Result" query="/Result/DocumentId">
</from>
<to variable="initiate" query="/initiate/output/documentid"/>
</copy>
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="initiate" query="/initiate/execution/finished"/>
</copy>
</assign>
<assign name="addToSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('initiate'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
</sequence>
</scope>
<scope name="DetectDataglyph">
<variables>
<variable name="glyphdetection" element="tns:glyphdetection"/>
<variable name="detectDataglyphInput" messageType="ns5:SmartDocumentDataglyphDetectRequest"/>
<variable name="detectDataglyphOutput" messageType="ns5:SmartDocumentDataglyphDetectResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="glyphdetection" query="/glyphdetection/execution/started"/>
</copy>
<copy>
<from variable="flowContents" part="document" query="/smartdocument/initiate/output/smartdocumentid">
</from>
<to variable="glyphdetection" query="/glyphdetection/input/smartdocumentid"/>
</copy>
<copy>
<from variable="flowContents" part="document" query="/smartdocument/initiate/output/documentid">
</from>
<to variable="glyphdetection" query="/glyphdetection/input/documentid"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from expression="'GlyphDetection'">
</from>
<to variable="serviceIdentifier"/>
</copy>
<copy>
<from variable="authId">
</from>
<to variable="detectDataglyphInput" part="AuthId"/>
</copy>
<copy>
<from variable="dataglyphKey">
</from>
<to variable="detectDataglyphInput" part="Key"/>
</copy>
<copy>
<from expression="5">
</from>
<to variable="detectDataglyphInput" part="MaxAngle"/>
</copy>
<copy>
<from expression="128">
</from>
<to variable="detectDataglyphInput" part="Region"/>
</copy>
<copy>
<from variable="glyphdetection" query="/glyphdetection/input/smartdocumentid">
</from>
<to variable="detectDataglyphInput" part="SmartDocumentId"/>
</copy>
<copy>
<from variable="glyphdetection" query="/glyphdetection/input/documentid">
</from>
<to variable="detectDataglyphInput" part="DocumentId"/>
</copy>
</assign>
<invoke partnerLink="DataglyphService" portType="ns5:Dataglyph" operation="SmartDocumentDataglyphDetect" inputVariable="detectDataglyphInput" outputVariable="detectDataglyphOutput"/>
<assign name="updateRecord">
<copy>
<from expression="string(boolean(bpws:getVariableData('detectDataglyphOutput', 'Result', '/Result/Result')>500.0))">
</from>
<to variable="glyphdetection" query="/glyphdetection/detected"/>
</copy>
<copy>
<from variable="detectDataglyphOutput" part="Result" query="/Result/SmartDocumentId">
</from>
<to variable="glyphdetection" query="/glyphdetection/output/smartdocumentid"/>
</copy>
<copy>
<from variable="detectDataglyphOutput" part="Result" query="/Result/DocumentId">
</from>
<to variable="glyphdetection" query="/glyphdetection/output/documentid"/>
</copy>
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="glyphdetection" query="/glyphdetection/execution/finished"/>
</copy>
</assign>
<assign name="addToSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('glyphdetection'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
</sequence>
</scope>
<switch name="DataglyphDetected">
<case condition="bpws:getVariableData('flowContents', 'document', '/smartdocument/glyphdetection/detected')='true'">
<sequence>
<scope name="Detected-ProcessAsForm">
<sequence>
<scope name="DetectSignature">
<variables>
<variable name="signaturedetection" element="tns:signaturedetection"/>
<variable name="detectSignatureInput" messageType="ns3:SmartDocumentSignatureDetectRequest"/>
<variable name="detectSignatureOutput" messageType="ns3:SmartDocumentSignatureDetectResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="signaturedetection" query="/signaturedetection/execution/started"/>
</copy>
<copy>
<from variable="flowContents" part="document" query="/smartdocument/glyphdetection/output/smartdocumentid">
</from>
<to variable="signaturedetection" query="/signaturedetection/input/smartdocumentid"/>
</copy>
<copy>
<from variable="flowContents" part="document" query="/smartdocument/glyphdetection/output/documentid">
Hi all,
I modified the bpel so that it could compile by letting the designer add prefixes where it needed some. Then I deployed the process and tested it. Unfortunately ;-( See below the error log. It looks like the newly added prefixes are source of troubles ...
Any ideas?
--mike
[2005/04/29 11:06:12] Error in <assign> expression: <to> value is empty at line "375". The XPath expression : "/tns:input/tns:userId" returns zero node, when applied to document shown below: Less
<input xmlns="urn:SmartDocument" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<userId xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">mniemaz</userId>
<password xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">mniemaz</password>
<imageURL xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">http://pic-charvet.xrce.xeroxlabs.com:8080/smartdocument.demo/data/tiff/loanrequest1.tiff</imageURL>
<emailRecipient xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">[email protected]</emailRecipient>
<formOutput xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">file.pdf</formOutput>
</input>
[2005/04/29 11:06:12] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown. Less
<selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<part name="summary">empty variable/expression result. xpath variable/expression expression "/tns:input/tns:userId" is empty at line 375, when attempting reading/copying it. Please make sure the variable/expression result "/tns:input/tns:userId" is not empty.</part>
</selectionFailure> -
Hi all,
I'm trying to convert my old .bpel file using the transdd command line utility, Unfortunately, I get the following error:
Exception in thread "main" java.lang.ClassCastException at com.collaxa.cube.rm.suitcase.v1.DDTransformer1.transform(DDTransformer1.java:83) at com.collaxa.cube.rm.suitcase.v1.DDTransformer1.main(DDTransformer1.java:95)
The new bpel file is generated but can not be loaded but the designer though ...
Any idea?
Here's the generated bpel file:
<!-- LocalLoanIncSmartDocument BPEL Process [Generated by the Oracle BPEL Designer] -->
<process name="LocalLoanIncSmartDocument" targetNamespace="urn:SmartDocument" suppressJoinFailure="yes" xmlns:tns="urn:SmartDocument" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:cx="http://schemas.collaxa.com/xpath/extension" xmlns:ns0="urn:ocr.services.smartdocument.xerox.com" xmlns:ns1="urn:email.services.smartdocument.xerox.com" xmlns:ns2="urn:categoriser.services.smartdocument.xerox.com" xmlns:ns3="urn:signature.services.smartdocument.xerox.com" xmlns:ns4="urn:LoanService" xmlns:ns5="urn:dataglyph.services.smartdocument.xerox.com" xmlns:ns6="urn:initiate.services.smartdocument.xerox.com" xmlns:ns7="urn:seal.services.smartdocument.xerox.com" xmlns:ns8="http://www.xerox.com/webservices/" xmlns:ns9="urn:store.services.smartdocument.xerox.com" xmlns:ns10="urn:factfinder.services.smartdocument.xerox.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:task="http://services.oracle.com/bpel/task">
<!-- ================================================================= -->
<!-- PARTNERLINKS -->
<!-- List of services participating in this BPEL process -->
<!-- ================================================================= -->
<partnerLinks>
<!--
The 'client' role represents the requester of this service. It is
used for callback. The location and correlation information associated
with the client role are automatically set using WS-Addressing.
-->
<partnerLink name="client" partnerLinkType="tns:LocalLoanIncSmartDocument" myRole="LocalLoanIncSmartDocumentProvider" partnerRole="LocalLoanIncSmartDocumentRequester"/>
<partnerLink name="SignatureService" partnerRole="SignatureProvider" partnerLinkType="ns3:SignatureLink"/>
<partnerLink name="CategoriserService" partnerRole="CategoriserProvider" partnerLinkType="ns2:CategoriserLink"/>
<partnerLink name="EmailService" partnerRole="EmailProvider" partnerLinkType="ns1:EmailLink"/>
<partnerLink name="OCRService" partnerRole="OcrProvider" partnerLinkType="ns0:OcrLink"/>
<partnerLink name="ValidateApplicationManager" partnerLinkType="task:TaskManager" partnerRole="TaskManager" myRole="TaskManagerRequester"/>
<partnerLink name="DataglyphService" partnerRole="DataglyphProvider" partnerLinkType="ns5:DataglyphLink"/>
<partnerLink name="LoanService" partnerRole="LoanServiceProvider" partnerLinkType="ns4:LoanServiceLink"/>
<partnerLink name="InitiateService" partnerLinkType="ns6:InitiateLink" partnerRole="InitiateProvider"/>
<partnerLink name="SealService" partnerLinkType="ns7:SealLink" partnerRole="SealProvider"/>
<!-- CHANGE If on boss
<partnerLink name="FactFinderService" partnerLinkType="ns8:FactFinderSoapLink" partnerRole="FactFinderSoapProvider"/>
-->
<!-- CHANGE If not on boss -->
<partnerLink name="FactFinderService" partnerLinkType="ns10:FactFinderSoapLink" partnerRole="FactFinderSoapProvider"/>
<!-- -->
<partnerLink name="StoreService" partnerLinkType="ns9:StoreLink" partnerRole="StoreProvider"/>
</partnerLinks>
<!-- ================================================================= -->
<!-- VARIABLES -->
<!-- List of messages and XML documents used within this BPEL process -->
<!-- ================================================================= -->
<variables>
<!-- Reference to the message passed as input during initiation -->
<variable name="input" messageType="tns:InputMessage"/>
<!-- Reference to the message that will be sent back to the
requester during callback
-->
<variable name="flowContents" messageType="tns:SmartDocumentMessage"/>
<variable name="dataglyphKey" type="xsd:string"/>
<variable name="inputSmartDocumentId" type="xsd:string"/>
<variable name="inputDocumentId" type="xsd:string"/>
<variable name="inputUrl" type="xsd:string"/>
<variable name="serviceIdentifier" type="xsd:string"/>
<variable name="runtimeFaultMessage" messageType="bpelx:RuntimeFaultMessage"/>
<variable name="authId" type="xsd:string"/>
</variables>
<faultHandlers>
<catch faultName="bpelx:bindingFault" faultVariable="runtimeFaultMessage">
<scope name="HandleBindingFault">
<variables>
<variable name="error" element="tns:error"/>
</variables>
<sequence>
<scope name="SetErrorMessage">
<sequence>
<assign name="prepareRecord">
<copy>
<from variable="serviceIdentifier">
</from>
<to variable="error" query="/error/processStep"/>
</copy>
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="error" query="/error/occuredAt"/>
</copy>
<copy>
<from variable="runtimeFaultMessage" part="code">
</from>
<to variable="error" query="/error/errorCode"/>
</copy>
<copy>
<from variable="runtimeFaultMessage" part="summary">
</from>
<to variable="error" query="/error/errorSummary"/>
</copy>
</assign>
<assign name="addToSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('error'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
</sequence>
</scope>
<scope name="Seal">
<variables>
<variable name="seal" element="tns:seal"/>
<variable name="sealInput" messageType="ns7:SealRequest"/>
<variable name="sealOutput" messageType="ns7:SealResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="seal" query="/seal/execution/started"/>
</copy>
<copy>
<from variable="inputSmartDocumentId">
</from>
<to variable="seal" query="/seal/input/smartdocumentid"/>
</copy>
<copy>
<from variable="inputDocumentId">
</from>
<to variable="seal" query="/seal/input/documentid"/>
</copy>
</assign>
<assign name="addtoSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('seal'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from variable="authId">
</from>
<to variable="sealInput" part="AuthId"/>
</copy>
<copy>
<from variable="seal" query="/seal/input/smartdocumentid">
</from>
<to variable="sealInput" part="SmartDocumentId"/>
</copy>
<copy>
<from expression="ora:getContentAsString(ora:getElement('flowContents', 'document', '/smartdocument'))">
</from>
<to variable="sealInput" part="XmlString"/>
</copy>
</assign>
<invoke partnerLink="SealService" portType="ns7:Seal" operation="Seal" inputVariable="sealInput" outputVariable="sealOutput"/>
</sequence>
</scope>
</sequence>
</scope>
</catch>
<catch faultName="bpelx:remoteFault" faultVariable="runtimeFaultMessage">
<scope name="HandleRemoteFault">
<variables>
<variable name="error" element="tns:error"/>
</variables>
<sequence>
<scope name="SetErrorMessage">
<sequence>
<assign name="prepareRecord">
<copy>
<from variable="serviceIdentifier">
</from>
<to variable="error" query="/error/processStep"/>
</copy>
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="error" query="/error/occuredAt"/>
</copy>
<copy>
<from variable="runtimeFaultMessage" part="code">
</from>
<to variable="error" query="/error/errorCode"/>
</copy>
<copy>
<from variable="runtimeFaultMessage" part="summary">
</from>
<to variable="error" query="/error/errorSummary"/>
</copy>
</assign>
<assign name="addToSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('error'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
</sequence>
</scope>
<scope name="Seal">
<variables>
<variable name="seal" element="tns:seal"/>
<variable name="sealInput" messageType="ns7:SealRequest"/>
<variable name="sealOutput" messageType="ns7:SealResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="seal" query="/seal/execution/started"/>
</copy>
<copy>
<from variable="inputSmartDocumentId">
</from>
<to variable="seal" query="/seal/input/smartdocumentid"/>
</copy>
<copy>
<from variable="inputDocumentId">
</from>
<to variable="seal" query="/seal/input/documentid"/>
</copy>
</assign>
<assign name="addtoSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('seal'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from variable="authId">
</from>
<to variable="sealInput" part="AuthId"/>
</copy>
<copy>
<from variable="seal" query="/seal/input/smartdocumentid">
</from>
<to variable="sealInput" part="SmartDocumentId"/>
</copy>
<copy>
<from expression="ora:getContentAsString(ora:getElement('flowContents', 'document', '/smartdocument'))">
</from>
<to variable="sealInput" part="XmlString"/>
</copy>
</assign>
<invoke partnerLink="SealService" portType="ns7:Seal" operation="Seal" inputVariable="sealInput" outputVariable="sealOutput"/>
</sequence>
</scope>
</sequence>
</scope>
</catch>
<catchAll>
<scope name="HandleGenericFault">
<variables>
<variable name="error" element="tns:error"/>
</variables>
<sequence>
<scope name="SetErrorMessage">
<sequence>
<assign name="prepareRecord">
<copy>
<from variable="serviceIdentifier">
</from>
<to variable="error" query="/error/processStep"/>
</copy>
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="error" query="/error/occuredAt"/>
</copy>
<copy>
<from expression="'UNKNOWN ERROR CODE'">
</from>
<to variable="error" query="/error/errorCode"/>
</copy>
<copy>
<from expression="'UNKNOWN ERROR SUMMARY'">
</from>
<to variable="error" query="/error/errorSummary"/>
</copy>
</assign>
<assign name="addToSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('error'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
</sequence>
</scope>
<scope name="Seal">
<variables>
<variable name="seal" element="tns:seal"/>
<variable name="sealInput" messageType="ns7:SealRequest"/>
<variable name="sealOutput" messageType="ns7:SealResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="seal" query="/seal/execution/started"/>
</copy>
<copy>
<from variable="inputSmartDocumentId">
</from>
<to variable="seal" query="/seal/input/smartdocumentid"/>
</copy>
<copy>
<from variable="inputDocumentId">
</from>
<to variable="seal" query="/seal/input/documentid"/>
</copy>
</assign>
<assign name="addtoSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('seal'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from variable="authId">
</from>
<to variable="sealInput" part="AuthId"/>
</copy>
<copy>
<from variable="seal" query="/seal/input/smartdocumentid">
</from>
<to variable="sealInput" part="SmartDocumentId"/>
</copy>
<copy>
<from expression="ora:getContentAsString(ora:getElement('flowContents', 'document', '/smartdocument'))">
</from>
<to variable="sealInput" part="XmlString"/>
</copy>
</assign>
<invoke partnerLink="SealService" portType="ns7:Seal" operation="Seal" inputVariable="sealInput" outputVariable="sealOutput"/>
</sequence>
</scope>
</sequence>
</scope>
</catchAll>
</faultHandlers>
<!-- ================================================================= -->
<!-- ORCHESTRATION LOGIC -->
<!-- Set of activities coordinating the flow of messages across the -->
<!-- services integrated within this business process -->
<!-- ================================================================= -->
<sequence name="main">
<!-- Receive input from requestor.
Note: This maps to operation defined in LocalLoanIncSmartDocument.wsdl
-->
<receive name="receiveInput" partnerLink="client" portType="tns:LocalLoanIncSmartDocument" operation="initiate" variable="input" createInstance="yes"/>
<assign name="InitialiseVariables">
<copy>
<from expression="'042e05a98cddac30e309f8'">
</from>
<to variable="dataglyphKey"/>
</copy>
<copy>
<from expression="'0'">
</from>
<to variable="inputSmartDocumentId"/>
</copy>
<copy>
<from expression="'0'">
</from>
<to variable="inputDocumentId"/>
</copy>
<copy>
<from expression="'Unknown service'">
</from>
<to variable="serviceIdentifier"/>
</copy>
</assign>
<scope name="Initiate">
<variables>
<variable name="initiate" element="tns:initiate"/>
<variable name="initiateInput" messageType="ns6:InitiateRequest"/>
<variable name="initiateOutput" messageType="ns6:InitiateResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="initiate" query="/initiate/execution/started"/>
</copy>
<copy>
<from variable="input" part="payload" query="/input/userId">
</from>
<to variable="initiate" query="/initiate/userid"/>
</copy>
<copy>
<from variable="input" part="payload" query="/input/imageURL">
</from>
<to variable="initiate" query="/initiate/url"/>
</copy>
<copy>
<from expression="string('LocalLoanIncSmartDocument')">
</from>
<to variable="initiate" query="/initiate/processName"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from expression="'Initiate'">
</from>
<to variable="serviceIdentifier"/>
</copy>
<copy>
<from variable="initiate" query="/initiate/userid">
</from>
<to variable="initiateInput" part="Username"/>
</copy>
<copy>
<from variable="input" part="payload" query="/input/password">
</from>
<to variable="initiateInput" part="Password"/>
</copy>
<copy>
<from variable="initiate" query="/initiate/url">
</from>
<to variable="initiateInput" part="URL"/>
</copy>
</assign>
<invoke partnerLink="InitiateService" portType="ns6:Initiate" operation="Initiate" inputVariable="initiateInput" outputVariable="initiateOutput"/>
<assign name="updateScopeVariables">
<copy>
<from variable="initiateOutput" part="Result" query="/Result/SmartDocumentId">
</from>
<to variable="inputSmartDocumentId"/>
</copy>
<copy>
<from variable="initiateOutput" part="Result" query="/Result/DocumentId">
</from>
<to variable="inputDocumentId"/>
</copy>
<copy>
<from variable="initiateOutput" part="Result" query="/Result/DocumentURL">
</from>
<to variable="inputUrl"/>
</copy>
<copy>
<from variable="initiateOutput" part="Result" query="/Result/AuthId">
</from>
<to variable="authId"/>
</copy>
</assign>
<assign name="updateRecord">
<copy>
<from variable="initiateOutput" part="Result" query="/Result/SmartDocumentId">
</from>
<to variable="initiate" query="/initiate/output/smartdocumentid"/>
</copy>
<copy>
<from variable="initiateOutput" part="Result" query="/Result/DocumentId">
</from>
<to variable="initiate" query="/initiate/output/documentid"/>
</copy>
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="initiate" query="/initiate/execution/finished"/>
</copy>
</assign>
<assign name="addToSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('initiate'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
</sequence>
</scope>
<scope name="DetectDataglyph">
<variables>
<variable name="glyphdetection" element="tns:glyphdetection"/>
<variable name="detectDataglyphInput" messageType="ns5:SmartDocumentDataglyphDetectRequest"/>
<variable name="detectDataglyphOutput" messageType="ns5:SmartDocumentDataglyphDetectResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="glyphdetection" query="/glyphdetection/execution/started"/>
</copy>
<copy>
<from variable="flowContents" part="document" query="/smartdocument/initiate/output/smartdocumentid">
</from>
<to variable="glyphdetection" query="/glyphdetection/input/smartdocumentid"/>
</copy>
<copy>
<from variable="flowContents" part="document" query="/smartdocument/initiate/output/documentid">
</from>
<to variable="glyphdetection" query="/glyphdetection/input/documentid"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from expression="'GlyphDetection'">
</from>
<to variable="serviceIdentifier"/>
</copy>
<copy>
<from variable="authId">
</from>
<to variable="detectDataglyphInput" part="AuthId"/>
</copy>
<copy>
<from variable="dataglyphKey">
</from>
<to variable="detectDataglyphInput" part="Key"/>
</copy>
<copy>
<from expression="5">
</from>
<to variable="detectDataglyphInput" part="MaxAngle"/>
</copy>
<copy>
<from expression="128">
</from>
<to variable="detectDataglyphInput" part="Region"/>
</copy>
<copy>
<from variable="glyphdetection" query="/glyphdetection/input/smartdocumentid">
</from>
<to variable="detectDataglyphInput" part="SmartDocumentId"/>
</copy>
<copy>
<from variable="glyphdetection" query="/glyphdetection/input/documentid">
</from>
<to variable="detectDataglyphInput" part="DocumentId"/>
</copy>
</assign>
<invoke partnerLink="DataglyphService" portType="ns5:Dataglyph" operation="SmartDocumentDataglyphDetect" inputVariable="detectDataglyphInput" outputVariable="detectDataglyphOutput"/>
<assign name="updateRecord">
<copy>
<from expression="string(boolean(bpws:getVariableData('detectDataglyphOutput', 'Result', '/Result/Result')>500.0))">
</from>
<to variable="glyphdetection" query="/glyphdetection/detected"/>
</copy>
<copy>
<from variable="detectDataglyphOutput" part="Result" query="/Result/SmartDocumentId">
</from>
<to variable="glyphdetection" query="/glyphdetection/output/smartdocumentid"/>
</copy>
<copy>
<from variable="detectDataglyphOutput" part="Result" query="/Result/DocumentId">
</from>
<to variable="glyphdetection" query="/glyphdetection/output/documentid"/>
</copy>
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="glyphdetection" query="/glyphdetection/execution/finished"/>
</copy>
</assign>
<assign name="addToSmartDocument">
<copy>
<from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('glyphdetection'))">
</from>
<to variable="flowContents" part="document" query="/smartdocument"/>
</copy>
</assign>
</sequence>
</scope>
<switch name="DataglyphDetected">
<case condition="bpws:getVariableData('flowContents', 'document', '/smartdocument/glyphdetection/detected')='true'">
<sequence>
<scope name="Detected-ProcessAsForm">
<sequence>
<scope name="DetectSignature">
<variables>
<variable name="signaturedetection" element="tns:signaturedetection"/>
<variable name="detectSignatureInput" messageType="ns3:SmartDocumentSignatureDetectRequest"/>
<variable name="detectSignatureOutput" messageType="ns3:SmartDocumentSignatureDetectResponse"/>
</variables>
<sequence>
<assign name="prepareRecord">
<copy>
<from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
</from>
<to variable="signaturedetection" query="/signaturedetection/execution/started"/>
</copy>
<copy>
<from variable="flowContents" part="document" query="/smartdocument/glyphdetection/output/smartdocumentid">
</from>
<to variable="signaturedetection" query="/signaturedetection/input/smartdocumentid"/>
</copy>
<copy>
<from variable="flowContents" part="document" query="/smartdocument/glyphdetection/output/documentid">
</from>
<to variable="signaturedetection" query="/signaturedetection/input/documentid"/>
</copy>
</assign>
<assign name="setServiceInput">
<copy>
<from expression="'SignatureDetection'">
</from>
<to variable="serviceIdentifier"/>
</copy>
<copy>
<from variable="authId">
</from>
<to variable="detectSignatureInput" part="AuthId"/>
</copy>
<copy>
<from variable="signaturedetection" query="/signaturedetection/input/smartdocumentid">
</from>
<to variable="detectSignatureInput" part="SmartDocumentId"/>
</copy>
<copy>
<from variable="signaturedetection" query="/signaturedetection/input/documentid">
</from>
<to variable="detectSignatureInput" part="DocumentId"/>
</copy>
<copy>
<from expression="100">
</from>
<to variable="detectSignatureInput" part="x"/>
</copy>
<copy>
<from expression="2535">
</from>
&And that's exactly what was written on the screen ;-)
"bpel.xml is based on an older deployment descriptor format. Please use the transdd.bat command line utility to upgrate the bpel.xml file to the latest format. Please close and re-open this editor after the upgrade process."
Sorry for that ;-(
--mike -
HTTP.RESPONSE in synch BPM
Hello,
I want to receive a XML message from a HTTP sender synchron into a BPM.
In the BPM I have to to several steps, one is a mapping step and another is an asynchronus SEND of an IDOC to an R/3.
I have setup this BPM and everything works ok.
The BPM sends a HTTP-200OK back and a response message.
But in some cases the mapping step throws an exception. e.g. a mandatory field is missing.
In this case the HTTP-500 ERROR code is sent back, but with the response message
"Internal Server Error
<SAP:Error><SAP:Category>XIServer</SAP:Category><SAP:Code>INTERNAL.PL_TIMEOUT</SAP:Code><SAP:Stack>Pipeline timeout condition satisfied</SAP:Stack></SAP:Error>"
If I handle the exception in an exception branch everything work ok again, but then the HTTP-200OK is sent back.
Now my question:
How can I send back an HTTP-500 ERROR code from this synchronous BPM with my own response message.
I have tried with CONTROL STEP-CANCEL PROCESS, but I also get the same missleading error message back for the TIMEOUT. Also in this case the process is canceled after 60seconds with this timeout error.
Is is possible to send an HTTP-500 ERROR status and to cancel the process immediatly?
If yes, how can I set a specific RESPONSE message?
best regards
Werner MagerlHello Udo, hello Werner,
for the moment i am not sure but i think if i want to use a mapping i need a xsd that i have imported to my scenario, haven't i? (defined in MessageType?)
and other question: if i have a javamapping infront of the real mapping and this mapping throws an exception: can i catch this javamapping-exception and put this into the second transformation?
thanks a lot
Alex Schramm
Message was edited by: Alexander Schramm (18:36, 31.03.2006) -
Help Needed With Scripting and Error Messages
I am working to build a script to change orders in SAP using Java. I begun by recording steps and combining them. I am having issues with the Warning and Error Messages. Can someone help me write language to have the script enter through the warnings or errors if they pop up, but move to the next step if nothing pops up?? Some orders have the message, some do not, some have multiples... etc...
Thanks!!Hello Jamie.
Getting popup you can use an Loop like below (this is now for Excel VBA coded):
For Each subWindow In Session.Children
If subWindow.Name = "wnd[1]" Then
On Error Resume Next
Session.FindById("wnd[1]").sendVKey 0
Session.FindById("wnd[1]/usr/btnANSWER_YES").press
Session.FindById("wnd[1]/usr/btnSPOP-OPTION2").press
End If
Next
For Messages in SAP session statusbar like this:
If Session.FindById("wnd[0]/sbar").Text <> "" Then ...
To catch error Messages defined by messagetype you can use this:
If Session.FindById("wnd[0]/sbar").messagetype = "S" Then ... 'sucess messagetype
If Session.FindById("wnd[0]/sbar").messagetype = "I" Then ... 'Information messagetype
If Session.FindById("wnd[0]/sbar").messagetype = "E" Then ... 'Error messagetype
Aso...like we have in SAP
Hope this help a bit to achieve your requirements.
Best regards,
Holger -
Server was unable to read request. RuntimeFaultMessage
Hi, I'm trying to orchestate a .Net web service that receives a String... the String that this .Net web service receives is called "xml" and it represents a xml like this "<rc><ho>hjh</ho><h><h1>hj>/h1><h2>hjh</h2></h></rc>"
When I instantiate the call of this web service through BPEL I get this error:
web_rc_asmx (ReporteRC) (faulted)
[2004/09/22 12:31:04] "{http://schemas.oracle.com/bpel/extension}bindingFault" has been thrown. Less
faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
code: {Client}
summary: {Server was unable to read request. --> There is an error in XML document (3, 114). --> 'Element' is an invalid node type. Line 3, position 114.}
parts: {{}}
The xml string that receives is good because I have tried it directry from the web service page.. or even calling it from an stub/skeleton.. Any idea what could be wrong???
Thanks a lot,
PAOLA LINARESthis is the Bpel file:
<!-- PAOLAPRO BPEL Process [Generated by the Oracle BPEL Designer] -->
<process name="PAOLAPRO" targetNamespace="http://oracle.com" suppressJoinFailure="yes" xmlns:tns="http://oracle.com" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:ns0="http://tempuri.org/">
<!-- ================================================================= -->
<!-- PARTNERLINKS -->
<!-- List of services participating in this BPEL process -->
<!-- ================================================================= -->
<partnerLinks>
<!--
The 'client' role represents the requester of this service. It is
used for callback. The location and correlation information associated
with the client role are automatically set using WS-Addressing.
-->
<partnerLink name="client" partnerLinkType="tns:PAOLAPRO" myRole="PAOLAPROProvider" partnerRole="PAOLAPRORequester"/>
<partnerLink name="ReporteRC" partnerLinkType="ns0:WSInfRCSoapLink" partnerRole="WSInfRCSoapProvider"/>
</partnerLinks>
<!-- ================================================================= -->
<!-- VARIABLES -->
<!-- List of messages and XML documents used within this BPEL process -->
<!-- ================================================================= -->
<variables>
<!-- Reference to the message passed as input during initiation -->
<variable name="input" messageType="tns:PAOLAPRORequestMessage"/>
<!-- Reference to the message that will be sent back to the
requester during callback
-->
<variable name="output" messageType="tns:PAOLAPROResponseMessage"/>
<variable messageType="ns0:ReporteRCSoapIn" name="IN_"/>
<variable messageType="ns0:ReporteRCSoapOut" name="OUT_"/>
</variables>
<!-- ================================================================= -->
<!-- ORCHESTRATION LOGIC -->
<!-- Set of activities coordinating the flow of messages across the -->
<!-- services integrated within this business process -->
<!-- ================================================================= -->
<sequence name="main">
<!-- Receive input from requestor.
Note: This maps to operation defined in PAOLAPRO.wsdl
-->
<receive name="receiveInput" partnerLink="client" portType="tns:PAOLAPRO" operation="initiate" variable="input" createInstance="yes"/>
<!-- Asynchronous callback to the requester.
Note: the callback location and correlation id is transparently handled
using WS-addressing.
-->
<scope name="scope-1">
<sequence>
<assign name="assign-1">
<copy>
<from variable="input" part="payload" query="/tns:PAOLAPRORequest/tns:input">
</from>
<to variable="IN_" part="parameters" query="/ns0:ReporteRC/ns0:xml"/>
</copy>
</assign>
<invoke name="invoke-1" partnerLink="ReporteRC" portType="ns0:WSInfRCSoap" operation="ReporteRC" inputVariable="IN_" outputVariable="OUT_"/>
</sequence>
</scope>
<invoke name="callbackClient" partnerLink="client" portType="tns:PAOLAPROCallback" operation="onResult" inputVariable="output"/>
</sequence>
</process>
WSDL file:
<?xml version="1.0"?>
<definitions name="PAOLAPRO"
targetNamespace="http://oracle.com"
xmlns:tns="http://oracle.com"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of services participating in this BPEL process
The default output of the BPEL designer uses strings as input and
output to the BPEL Process. But you can define or import any XML
Schema type and us them as part of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<types>
<schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://oracle.com"
xmlns="http://www.w3.org/2001/XMLSchema"
>
<element name="PAOLAPRORequest">
<complexType>
<sequence>
<element name="input" type="string" />
</sequence>
</complexType>
</element>
<element name="PAOLAPROResponse">
<complexType>
<sequence>
<element name="result" type="string"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="PAOLAPRORequestMessage">
<part name="payload" element="tns:PAOLAPRORequest"/>
</message>
<message name="PAOLAPROResponseMessage">
<part name="payload" element="tns:PAOLAPROResponse"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the PAOLAPRO BPEL process -->
<portType name="PAOLAPRO">
<operation name="initiate">
<input message="tns:PAOLAPRORequestMessage"/>
</operation>
</portType>
<!-- portType implemented by the requester of PAOLAPRO BPEL process
for asynchronous callback purposes
-->
<portType name="PAOLAPROCallback">
<operation name="onResult">
<input message="tns:PAOLAPROResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
the PAOLAPRO partnerLinkType binds the provider and
requester portType into an asynchronous conversation.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="PAOLAPRO">
<plnk:role name="PAOLAPROProvider">
<plnk:portType name="tns:PAOLAPRO"/>
</plnk:role>
<plnk:role name="PAOLAPRORequester">
<plnk:portType name="tns:PAOLAPROCallback"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>
WSINFRCWrapper.wsdl:
<?xml version="1.0" encoding="utf-8"?>
<definitions
targetNamespace="http://tempuri.org/"
xmlns:tns="http://tempuri.org/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
>
<import location="http://boinfrcs/wsdcrc/wsinfrc.asmx?WSDL"/>
<plnk:partnerLinkType name="WSInfRCSoapLink">
<plnk:role name="WSInfRCSoapProvider">
<plnk:portType name="tns:WSInfRCSoap" />
</plnk:role>
</plnk:partnerLinkType>
</definitions>
This is the XML String:
<RC><registro_control><tipo_llamado asin="false"/><usuario><id_usuario>xxx</id_usuario><clave>yyy</clave></usuario><documento tipo_documento="3988"><id_documento>1234</id_documento><NombreRegistro>solicitud_informacion</NombreRegistro></documento><cliente><nit>860001942-8</nit></cliente><solicitud><id_solicitud>5425</id_solicitud><url_respuesta>http://sevidor:puerto/RaizVirtual/ModuloTransmision/recibirEnvio.asp</url_respuesta><id_usuario_remoto>idUsuario</id_usuario_remoto><clave_usuario_remoto>claveUsuario</clave_usuario_remoto></solicitud></registro_control><Informacion><Dolar>2700</Dolar><Bolivar>1.38</Bolivar></Informacion><Cliente><Id>8913379</Id><TipoId>3</TipoId></Cliente></RC>
and this is the Error:
04/09/28 10:15:34 AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
faultString: Server was unable to read request. --> There is an error in XML do
cument (3, 114). --> 'Element' is an invalid node type. Line 3, position 114.
faultActor: null
faultDetail:
04/09/28 10:15:34 Server was unable to read request. --> There is an error in XM
L document (3, 114). --> 'Element' is an invalid node type. Line 3, position 114
04/09/28 10:15:34 at org.apache.axis.message.SOAPFaultBuilder.endElement(S
OAPFaultBuilder.java:135)
04/09/28 10:15:34 at org.apache.axis.encoding.DeserializationContextImpl.e
ndElement(DeserializationContextImpl.java:942)
04/09/28 10:15:34 at org.apache.xerces.parsers.AbstractSAXParser.endElemen
t(Unknown Source)
04/09/28 10:15:34 at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanE
ndElement(Unknown Source)
04/09/28 10:15:34 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
$FragmentContentDispatcher.dispatch(Unknown Source)
04/09/28 10:15:34 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
.scanDocument(Unknown Source)
04/09/28 10:15:34 at org.apache.xerces.parsers.XML11Configuration.parse(Un
known Source)
04/09/28 10:15:34 at org.apache.xerces.parsers.XML11Configuration.parse(Un
known Source)
04/09/28 10:15:34 at org.apache.xerces.parsers.XMLParser.parse(Unknown Sou
rce)
04/09/28 10:15:34 at org.apache.xerces.parsers.AbstractSAXParser.parse(Unk
nown Source)
04/09/28 10:15:34 at javax.xml.parsers.SAXParser.parse(Unknown Source)
04/09/28 10:15:34 at org.apache.axis.encoding.DeserializationContextImpl.p
arse(DeserializationContextImpl.java:232)
04/09/28 10:15:34 at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.j
ava:547)
04/09/28 10:15:34 at org.apache.axis.Message.getSOAPEnvelope(Message.java:
377)
04/09/28 10:15:34 at org.apache.axis.client.Call.invokeEngine(Call.java:21
72)
04/09/28 10:15:34 at org.apache.axis.client.Call.invoke(Call.java:2138)
04/09/28 10:15:34 at org.apache.axis.client.Call.invoke(Call.java:1308)
04/09/28 10:15:34 at org.apache.wsif.providers.collaxa.axis.WSIFOperation_
ApacheAxis.invokeAXISMessaging(WSIFOperation_ApacheAxis.java:1892)
04/09/28 10:15:34 at org.apache.wsif.providers.collaxa.axis.WSIFOperation_
ApacheAxis.invokeRequestResponseOperation(WSIFOperation_ApacheAxis.java:1451)
04/09/28 10:15:34 at org.apache.wsif.providers.collaxa.axis.WSIFOperation_
ApacheAxis.executeRequestResponseOperation(WSIFOperation_ApacheAxis.java:1022)
04/09/28 10:15:34 at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIF
InvocationHandler.java:306)
04/09/28 10:15:34 at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvo
cationManager.java:250)
04/09/28 10:15:34 at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvo
cationManager.java:133)
04/09/28 10:15:34 at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invok
e(BPELInvokeWMP.java:518)
04/09/28 10:15:34 at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__execu
teStatements(BPELInvokeWMP.java:276)
04/09/28 10:15:34 at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perfo
rm(BPELActivityWMP.java:175)
04/09/28 10:15:34 at com.collaxa.cube.engine.CubeEngine.performActivity(Cu
beEngine.java:3244)
04/09/28 10:15:34 at com.collaxa.cube.engine.CubeEngine.handleWorkItem(Cub
eEngine.java:1664)
04/09/28 10:15:34 at com.collaxa.cube.engine.dispatch.message.instance.Per
formMessageHandler.handleLocal(PerformMessageHandler.java:75)
04/09/28 10:15:34 at com.collaxa.cube.engine.dispatch.DispatchHelper.handl
eLocalMessage(DispatchHelper.java:84)
04/09/28 10:15:34 at com.collaxa.cube.engine.dispatch.DispatchHelper.sendM
emory(DispatchHelper.java:137)
04/09/28 10:15:34 at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEng
ine.java:5318)
04/09/28 10:15:34 at com.collaxa.cube.engine.CubeEngine.createAndInvoke(Cu
beEngine.java:1192)
04/09/28 10:15:34 at com.collaxa.cube.engine.delivery.DeliveryService.hand
leInvoke(DeliveryService.java:480)
04/09/28 10:15:34 at com.collaxa.cube.engine.bean.DeliveryBean.handleInvok
e(DeliveryBean.java:307)
04/09/28 10:15:34 at IDeliveryLocalBean_StatelessSessionBeanWrapper16.hand
leInvoke(IDeliveryLocalBean_StatelessSessionBeanWrapper16.java:1764)
04/09/28 10:15:34 at com.collaxa.cube.engine.dispatch.message.invoke.Invok
eInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:36)
04/09/28 10:15:34 at com.collaxa.cube.engine.dispatch.DispatchHelper.handl
eMessage(DispatchHelper.java:62)
04/09/28 10:15:34 at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.
process(BaseScheduledWorker.java:72) -
Error in defining a property & property-alias for a correlation for a BPEL
hallo,
would anybdy be kind enough to tell me where i've done somthing wrong?
im using netbeans 6.1 for SOA application development. there are two receive activities in a BPEL, recieve1 and recieve2. on the latter i have defined a correlation whose initiator is recieve1. the related source code from correlationWSDL is :
<vprop:property name="wzrd_prop_ContactNo_ContactNo" type="xsd:int"/>
<vprop:propertyAlias propertyName="tns:wzrd_prop_ContactNo_ContactNo" messageType="ns:checkLeadDuplicationStatusRequest" part="part1">
<vprop:query>/ns0:LeadCoreInfo/ns0:ContactNo</vprop:query>
</vprop:propertyAlias>
<vprop:propertyAlias propertyName="tns:wzrd_prop_ContactNo_ContactNo" messageType="ns:leadWSOperationRequest" part="part1">
<vprop:query>/ns0:LeadDetailedInfo/ns0:LeadCoreInfo/ns0:ContactNo</vprop:query>
</vprop:propertyAlias>error that i'm getting is:
ERROR: The first step has to be "ns0:LeadCoreInfo", if an absolute path is used for query. Expression: "/ns0:LeadCoreInfo/ns0:ContactNo"
regardshallo,
would anybdy be kind enough to tell me where i've done somthing wrong?
im using netbeans 6.1 for SOA application development. there are two receive activities in a BPEL, recieve1 and recieve2. on the latter i have defined a correlation whose initiator is recieve1. the related source code from correlationWSDL is :
<vprop:property name="wzrd_prop_ContactNo_ContactNo" type="xsd:int"/>
<vprop:propertyAlias propertyName="tns:wzrd_prop_ContactNo_ContactNo" messageType="ns:checkLeadDuplicationStatusRequest" part="part1">
<vprop:query>/ns0:LeadCoreInfo/ns0:ContactNo</vprop:query>
</vprop:propertyAlias>
<vprop:propertyAlias propertyName="tns:wzrd_prop_ContactNo_ContactNo" messageType="ns:leadWSOperationRequest" part="part1">
<vprop:query>/ns0:LeadDetailedInfo/ns0:LeadCoreInfo/ns0:ContactNo</vprop:query>
</vprop:propertyAlias>error that i'm getting is:
ERROR: The first step has to be "ns0:LeadCoreInfo", if an absolute path is used for query. Expression: "/ns0:LeadCoreInfo/ns0:ContactNo"
regards -
Error in defining a correlation in netbeans for a BPEL
hallo,
would anybdy be kind enough to tell me where i've done somthing wrong?
there are two receive activities in a BPEL, recieve1 and recieve2. on the latter i have defined a correlation whose initiator is recieve1. the related source code from correlationWSDL is :
<vprop:property name="wzrd_prop_ContactNo_ContactNo" type="xsd:int"/>
<vprop:propertyAlias propertyName="tns:wzrd_prop_ContactNo_ContactNo" messageType="ns:checkLeadDuplicationStatusRequest" part="part1">
<vprop:query>/ns0:LeadCoreInfo/ns0:ContactNo</vprop:query>
</vprop:propertyAlias>
<vprop:propertyAlias propertyName="tns:wzrd_prop_ContactNo_ContactNo" messageType="ns:leadWSOperationRequest" part="part1">
<vprop:query>/ns0:LeadDetailedInfo/ns0:LeadCoreInfo/ns0:ContactNo</vprop:query>
</vprop:propertyAlias>error that i'm getting is:
ERROR: The first step has to be "ns0:LeadCoreInfo", if an absolute path is used for query. Expression: "/ns0:LeadCoreInfo/ns0:ContactNo"
regardsthanks, mr. bhasin.
i have used the same wizard for correlation.i haven't solved the problem, but have found an alternative instead. lemme tell you what i have done. if i replace
<vprop:query>/ns0:LeadDetailedInfo/ns0:LeadCoreInfo/ns0:ContactNo</vprop:query>with the following code line then it works:
<vprop:query>/ns0:LeadCoreInfo/ns0:ContactNo</vprop:query>the problem is that the element that is correlated on the two recieve activities has to be on the same level of hierarchy, otherwise it does give error. it seems quite ridiculous to me, coz inputs might be different at any two activities, and is the case most of the times.
part of the schema is:
<xsd:element name="LeadCoreInfo" type="tns:leadCoreInfoType"/>
<xsd:element name="LeadDetailedInfo" type="tns:leadDetailedInfoType"></xsd:element>
<xsd:element name="LeadDuplicationStatus" type="xsd:string"/>
<xsd:element name="LeadCreated" type="xsd:integer"/>
<xsd:element name="AgentAssigned" type="tns:agentType"/>
<xsd:element name="AutoID" type="xsd:int"/>
<xsd:element name="Result" type="xsd:string"/>
<xsd:complexType name="leadCoreInfoType">
<xsd:sequence>
<xsd:element name="FirstName" type="xsd:string"/>
<xsd:element name="LastName" type="xsd:string"/>
<xsd:element name="ContactNo" type="xsd:int"/>
<xsd:element name="Email" type="xsd:string"/>
<xsd:element name="AutoID" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="leadDetailedInfoType">
<xsd:sequence>
<xsd:element name="LeadCoreInfo" type="tns:leadCoreInfoType"/>
<xsd:element name="LeadOwner" type="xsd:string"/>
<xsd:element name="Title" type="xsd:string"/>
<xsd:element name="LeadSource">
<xsd:complexType>
<xsd:choice>
<xsd:element name="ColdCall" type="xsd:string"/>
<xsd:element name="ExistingCustomer" type="xsd:string"/>
<xsd:element name="IncomingCall" type="xsd:string"/>
<xsd:element name="EmailLead" type="xsd:string"/>
<xsd:element name="CustomerReferral" type="xsd:string"/>
<xsd:element name="Web" type="xsd:string"/>
<xsd:element name="WordOfMouth" type="xsd:string"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
in leadBPEL i have defined a correlation on recieve2 whose initiator is recieve1. in correlation wizard, i mapped AutoID (of message sent to recieve1) to AutoID (of message sent to recieve2). the source code of leadBPEL is:
<?xml version="1.0" encoding="UTF-8"?>
<process
name="leadBPEL"
targetNamespace="http://enterprise.netbeans.org/bpel/LeadWebService/leadBPEL"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://enterprise.netbeans.org/bpel/LeadWebService/leadBPEL" xmlns:sxt="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace" xmlns:sxed="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor" xmlns:ns0="http://enterprise.netbeans.org/bpel/WizardCorrelationProperties" xmlns:ns1="http://xml.netbeans.org/schema/LeadSchema">
<import namespace="http://j2ee.netbeans.org/wsdl/leadWS" location="leadWS.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
<import namespace="http://j2ee.netbeans.org/wsdl/checkLeadDuplicationWS" location="checkLeadDuplicationWS.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
<import namespace="http://j2ee.netbeans.org/wsdl/createLeadWS" location="createLeadWS.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
<import namespace="http://enterprise.netbeans.org/bpel/WizardCorrelationProperties" location="WizardCorrelationProperties.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
<partnerLinks>
<partnerLink name="checkLeadDuplicationWSpartner" xmlns:tns="http://j2ee.netbeans.org/wsdl/checkLeadDuplicationWS" partnerLinkType="tns:checkLeadDuplicationWS" partnerRole="checkLeadDuplicationWSPortTypeRole"/>
<partnerLink name="createLeadWSpartner" xmlns:tns="http://j2ee.netbeans.org/wsdl/createLeadWS" partnerLinkType="tns:createLeadWS" partnerRole="createLeadWSPortTypeRole"/>
<partnerLink name="leadWSpartner" xmlns:tns="http://j2ee.netbeans.org/wsdl/leadWS" partnerLinkType="tns:leadWS" myRole="leadWSPortTypeRole"/>
</partnerLinks>
<variables>
<variable name="CreateLeadOperationOut" xmlns:tns="http://j2ee.netbeans.org/wsdl/leadWS" messageType="tns:leadWSOperationResponse"/>
<variable name="AutoAssignLeadOperationOut" xmlns:tns="http://j2ee.netbeans.org/wsdl/createLeadWS" messageType="tns:createLeadWSOperationResponse"/>
<variable name="AutoAssignLeadOperationIn" xmlns:tns="http://j2ee.netbeans.org/wsdl/createLeadWS" messageType="tns:createLeadWSOperationRequest"/>
<variable name="CreateNewLeadOperationOut" xmlns:tns="http://j2ee.netbeans.org/wsdl/createLeadWS" messageType="tns:createNewLeadOperationResponse"/>
<variable name="CreateNewLeadOperationIn" xmlns:tns="http://j2ee.netbeans.org/wsdl/createLeadWS" messageType="tns:createNewLeadOperationRequest"/>
<variable name="CreateLeadOperationIn" xmlns:tns="http://j2ee.netbeans.org/wsdl/leadWS" messageType="tns:leadWSOperationRequest"/>
<variable name="CheckLeadDuplicationStatusIn1" xmlns:tns="http://j2ee.netbeans.org/wsdl/leadWS" messageType="tns:checkLeadDuplicationStatusRequest"/>
<variable name="CheckLeadDuplicationStatusOut" xmlns:tns="http://j2ee.netbeans.org/wsdl/leadWS" messageType="tns:checkLeadDuplicationStatusResponse"/>
<variable name="CheckLeadDuplicationWSOperationOut" xmlns:tns="http://j2ee.netbeans.org/wsdl/checkLeadDuplicationWS" messageType="tns:checkLeadDuplicationWSOperationResponse"/>
<variable name="CheckLeadDuplicationWSOperationIn" xmlns:tns="http://j2ee.netbeans.org/wsdl/checkLeadDuplicationWS" messageType="tns:checkLeadDuplicationWSOperationRequest"/>
<variable name="CheckLeadDuplicationStatusIn" xmlns:tns="http://j2ee.netbeans.org/wsdl/leadWS" messageType="tns:checkLeadDuplicationStatusRequest"/>
</variables>
<correlationSets>
<correlationSet name="wzrd_set_Receive1_Receive2" properties="ns0:wzrd_prop_AutoID_AutoID"/>
<correlationSet name="wzrd_set_Receive1_Receive2_1" properties="ns0:wzrd_prop_AutoID_AutoID"/>
</correlationSets>
<sequence>
<receive name="Receive1" createInstance="yes" partnerLink="leadWSpartner" operation="checkLeadDuplicationStatus" xmlns:tns="http://j2ee.netbeans.org/wsdl/leadWS" portType="tns:leadWSPortType" variable="CheckLeadDuplicationStatusIn">
<correlations>
<correlation set="wzrd_set_Receive1_Receive2_1" initiate="yes"/>
</correlations>
</receive>
<assign name="Assign1">
<copy>
<from variable="CheckLeadDuplicationStatusIn" part="part1"/>
<to variable="CheckLeadDuplicationWSOperationIn" part="part1leadCoreInfo"/>
</copy>
</assign>
<invoke name="Invoke1" partnerLink="checkLeadDuplicationWSpartner" operation="checkLeadDuplicationWSOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/checkLeadDuplicationWS" portType="tns:checkLeadDuplicationWSPortType" inputVariable="CheckLeadDuplicationWSOperationIn" outputVariable="CheckLeadDuplicationWSOperationOut"></invoke>
<assign name="Assign2">
<copy>
<from variable="CheckLeadDuplicationWSOperationOut" part="leadDuplicationStatus"/>
<to variable="CheckLeadDuplicationStatusOut" part="leadDuplicationStatus"/>
</copy>
</assign>
<reply name="Reply1" partnerLink="leadWSpartner" operation="checkLeadDuplicationStatus" xmlns:tns="http://j2ee.netbeans.org/wsdl/leadWS" portType="tns:leadWSPortType" variable="CheckLeadDuplicationStatusOut"></reply>
<receive name="Receive2" createInstance="no" partnerLink="leadWSpartner" operation="createLeadOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/leadWS" portType="tns:leadWSPortType" variable="CreateLeadOperationIn">
<correlations>
<correlation set="wzrd_set_Receive1_Receive2_1" initiate="no"/>
</correlations>
</receive>
<assign name="Assign3">
<copy>
<from variable="CreateLeadOperationIn" part="part1"/>
<to variable="CreateNewLeadOperationIn" part="leadDetailedInfo"/>
</copy>
</assign>
<invoke name="Invoke2" partnerLink="createLeadWSpartner" operation="createNewLeadOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/createLeadWS" portType="tns:createLeadWSPortType" inputVariable="CreateNewLeadOperationIn" outputVariable="CreateNewLeadOperationOut"/>
<if name="If1">
<condition>$CreateNewLeadOperationOut.leadCreated = 1</condition>
<sequence name="Sequence1">
<assign name="Assign4">
<copy>
<from variable="CreateNewLeadOperationIn" part="leadDetailedInfo"/>
<to variable="AutoAssignLeadOperationIn" part="leaddetailedInfo"/>
</copy>
</assign>
<invoke name="Invoke3" partnerLink="createLeadWSpartner" operation="autoAssignLeadOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/createLeadWS" portType="tns:createLeadWSPortType" inputVariable="AutoAssignLeadOperationIn" outputVariable="AutoAssignLeadOperationOut"/>
<assign name="Assign6">
<copy>
<from>1</from>
<to variable="CreateLeadOperationOut" part="leadCreated"/>
</copy>
<copy>
<from variable="AutoAssignLeadOperationOut" part="agentAssigned"/>
<to variable="CreateLeadOperationOut" part="agentAssigned"/>
</copy>
</assign>
</sequence>
<else>
<assign name="Assign5">
<copy>
<from>0</from>
<to variable="CreateLeadOperationOut" part="leadCreated"/>
</copy>
<copy>
<from>'NULL'</from>
<to>$CreateLeadOperationOut.agentAssigned/ns1:FirstName</to>
</copy>
<copy>
<from>'NULL'</from>
<to>$CreateLeadOperationOut.agentAssigned/ns1:Lastname</to>
</copy>
<copy>
<from>0</from>
<to>$CreateLeadOperationOut.agentAssigned/ns1:agentID</to>
</copy>
</assign>
</else>
</if>
<reply name="Reply2" partnerLink="leadWSpartner" operation="createLeadOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/leadWS" portType="tns:leadWSPortType" variable="CreateLeadOperationOut"/>
</sequence>
</process>
the generated source code of correlation wizard is:
<vprop:property name="wzrd_prop_AutoID_AutoID" type="xsd:int"/><vprop:propertyAlias propertyName="tns:wzrd_prop_AutoID_AutoID" messageType="ns:checkLeadDuplicationStatusRequest" part="part1">
*<vprop:query>/ns0:LeadCoreInfo/ns0:AutoID</vprop:query>*
</vprop:propertyAlias>
<vprop:propertyAlias propertyName="tns:wzrd_prop_AutoID_AutoID" messageType="ns:leadWSOperationRequest" part="part1">
<vprop:query>/ns0:LeadDetailedInfo/ns0:LeadCoreInfo/ns0:AutoID</vprop:query>
</vprop:propertyAlias>
the error that i get is:C:/Documents and Settings/bushra/My Documents/NetBeansProjects/LeadWebService/src/WizardCorrelationProperties.wsdl:28,8
ERROR: The first step has to be "ns0:LeadCoreInfo", if an absolute path is used for query. Expression: "/ns0:LeadCoreInfo/ns0:AutoID"
if this AutoIDs in both queries are in same level of hierarchy (if for example i send LeadDetailedInfo to recieve2, instead of LeadCoreInfo), then there is no error. Why is that? -
Is not defined in any of the schemas
i got following error in 10.1.3 while compiling , it is working fine in 10.1.2
bpel_ErrorHandlerBPEL_1.0.jar failed to deploy.
Error while loading process. The process domain encountered the following errors while loading the process "ErrorHandlerBPEL" (revision "1.0"): BPEL validation failed. BPEL source validation failed, the errors are: [Error ORABPEL-10902]: compilation failed [Description]: in "bpel.xml", XML parsing failed because "undefined part element. In WSDL at "file:/C:/SOA/OracleAS_1/bpel/domains/default/tmp/.bpel_ErrorHandlerBPEL_1.0_1abf6649ecda4aa394b3eee775c9b54f.tmp/RoutingBpel.wsdl", message part element "{http://schemas.xmlsoap.org/ws/2003/03/addressing}ReplyTo" is not defined in any of the schemas. Please make sure the spelling of the element QName is correct and the WSDL import is complete. ". [Potential fix]: n/a. . . If you have installed a patch to the server, please check that the bpelcClasspath domain property includes the patch classes.
is it required any patch ? can you pls provide informationHi
Thanks for sugestions. My process is compiling but when I deploying appears apache errors. One of them is below. I checked and that message types are in wsdl.
[Error ORABPEL-10007]: unresolved messageType
[Description]: in line 244 of "D:\product\10.1.3.1\OracleAS_5\bpel\domains\default\tmp\.bpel_ROTelcoNewOrder_1.0_d7fdf89a9fb1b5de9f664c2e4966239a.tmp\ROTelcoNewOrder.bpel", WSDL messageType "{urn:oracle.enterprise.crm.rf.service.InstalledProduct}UpdateInstalledProductRequest.V1" of variable "InvokeUpdateIPStatus_UpdateInstalledProduct_InputVariable" is not defined in any of the WSDL files.
[Potential fix]: Make sure the WSDL messageType "{urn:oracle.enterprise.crm.rf.service.InstalledProduct}UpdateInstalledProductRequest.V1" is defined in one of the WSDLs referenced by the deployment descriptor.
Do You have any ideas. Thanks -
How to get user defined class in java client of a bpel prcoess?
I have written a simple bpel process which returns a bean class namely employee which has three String fields(name,id and email). From java client when I am invoking the prcoess the prcoess instance is starting and completing properly. From Bpel console when I check the audit of the instance, it shows everything as expected. But in client class instead of three strings I am getting only first string i.e email in response. I checked the mapping and all WSDL files but could not find a proper reason. I am attaching the wsdls of bpel prcoess and the client code:
BPELProcess5.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="BPELProcess5"
targetNamespace="http://xmlns.oracle.com/BPELProcess5"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:client="http://xmlns.oracle.com/BPELProcess5"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:sq="http://xmlns.oracle.com/BPELProcess5/bean">
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of services participating in this BPEL process
The default output of the BPEL designer uses strings as input and
output to the BPEL Process. But you can define or import any XML
Schema type and us them as part of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<types>
<schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/BPELProcess5/bean"
xmlns="http://www.w3.org/2001/XMLSchema">
<complexType name="employeetype" >
<all>
<element name="fname" type="string"/>
<element name="lname" type="string"/>
<element name="id" type="string"/>
</all>
</complexType>
</schema>
<schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/BPELProcess5"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://xmlns.oracle.com/BPELProcess5/bean"/>
<element name="BPELProcess5ProcessRequest">
<complexType >
<sequence>
<element name="input" type="string"/>
</sequence>
</complexType>
</element>
<!--
<element name="BPELProcess5ProcessResponse">
<complexType >
<sequence>
<element name="output" type="sq:employeetype"/>
</sequence>
</complexType>
</element>
-->
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="BPELProcess5RequestMessage">
<part name="payload" element="client:BPELProcess5ProcessRequest"/>
</message>
<message name="BPELProcess5ResponseMessage">
<part name="payload" type="sq:employeetype"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the BPELProcess5 BPEL process -->
<portType name="BPELProcess5">
<operation name="process">
<input message="client:BPELProcess5RequestMessage" />
<output message="client:BPELProcess5ResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="BPELProcess5">
<plnk:role name="BPELProcess5Provider">
<plnk:portType name="client:BPELProcess5"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>
BPELPrcoess5.bpel
// Oracle JDeveloper BPEL Designer
// Created: Thu Jul 14 16:50:15 IST 2005
// Author: Arka
// Purpose: Synchronous BPEL Process
-->
<process name="BPELProcess5" targetNamespace="http://xmlns.oracle.com/BPELProcess5" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ns1="http://demows/handler/SessionEJB.wsdl" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xmlns.oracle.com/BPELProcess5/bean" xmlns:client="http://xmlns.oracle.com/BPELProcess5" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"><!-- ================================================================= --><!-- PARTNERLINKS --><!-- List of services participating in this BPEL process --><!-- ================================================================= -->
<partnerLinks><!--
The 'client' role represents the requester of this service. It is
used for callback. The location and correlation information associated
with the client role are automatically set using WS-Addressing.
-->
<partnerLink name="client" partnerLinkType="client:BPELProcess5" myRole="BPELProcess5Provider"/>
<partnerLink myRole="SessionEJBPortType_Role" name="PartnerLink_1" partnerRole="SessionEJBPortType_Role" partnerLinkType="ns1:SessionEJBPortType_PL"/>
</partnerLinks><!-- ================================================================= --><!-- VARIABLES --><!-- List of messages and XML documents used within this BPEL process --><!-- ================================================================= -->
<variables><!-- Reference to the message passed as input during initiation -->
<variable name="inputVariable" messageType="client:BPELProcess5RequestMessage"/><!--
Reference to the message that will be returned to the requester
-->
<variable name="outputVariable" messageType="client:BPELProcess5ResponseMessage"/>
<variable name="Invoke_1_getEmployee_InputVariable" messageType="ns1:getEmployee1Request"/>
<variable name="Invoke_1_getEmployee_OutputVariable" messageType="ns1:getEmployee1Response"/>
</variables><!-- ================================================================= --><!-- ORCHESTRATION LOGIC --><!-- Set of activities coordinating the flow of messages across the --><!-- services integrated within this business process --><!-- ================================================================= -->
<sequence name="main"><!-- Receive input from requestor.
Note: This maps to operation defined in BPELProcess5.wsdl
-->
<receive name="receiveInput" partnerLink="client" portType="client:BPELProcess5" operation="process" variable="inputVariable" createInstance="yes"/><!-- Generate reply to synchronous request -->
<assign name="Assign_1">
<copy>
<from variable="inputVariable" part="payload" query="/client:BPELProcess5ProcessRequest/client:input"/>
<to variable="Invoke_1_getEmployee_InputVariable" part="empid"/>
</copy>
</assign>
<invoke name="Invoke_1" partnerLink="PartnerLink_1" portType="ns1:SessionEJBPortType" operation="getEmployee" inputVariable="Invoke_1_getEmployee_InputVariable" outputVariable="Invoke_1_getEmployee_OutputVariable"/>
<assign name="Assign_2">
<copy>
<from variable="Invoke_1_getEmployee_OutputVariable" part="return" query="/return/fname"/>
<to variable="outputVariable" part="payload" query="/payload/ns2:fname"/>
</copy>
<copy>
<from variable="Invoke_1_getEmployee_OutputVariable" part="return" query="/return/lname"/>
<to variable="outputVariable" part="payload" query="/payload/ns2:lname"/>
</copy>
<copy>
<from variable="Invoke_1_getEmployee_OutputVariable" part="return" query="/return/id"/>
<to variable="outputVariable" part="payload" query="/payload/ns2:id"/>
</copy>
</assign>
<reply name="replyOutput" partnerLink="client" portType="client:BPELProcess5" operation="process" variable="outputVariable"/>
</sequence>
</process>
myClient.java
package mypackage2;
import bean.EmployeeBean;
import java.rmi.RemoteException;
import java.util.ArrayList;
import javax.xml.namespace.QName;
import javax.xml.rpc.JAXRPCException;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.encoding.XMLType;
import javax.xml.rpc.soap.SOAPFaultException;
import org.apache.axis.Constants;
import org.apache.axis.client.Call;
public class myClient
private static QName SERVICE_NAME;
private static QName PORT_TYPE;
private static QName OPERATION_NAME;
private static String SOAP_ACTION;
private static String STYLE;
private static String THIS_NAMESPACE = "http://xmlns.oracle.com/BPELProcess5";
private static String PARAMETER_NAMESPACE = "http://xmlns.oracle.com/BPELProcess5";
private String location;
static
SERVICE_NAME = new QName(THIS_NAMESPACE,"BPELProcess5");
PORT_TYPE = new QName(THIS_NAMESPACE,"BPELProcess5") ;
OPERATION_NAME = new QName(THIS_NAMESPACE,"BPELProcess5ProcessRequest");
SOAP_ACTION = "process";
STYLE = "wrapped";
public myClient()
public void setLocation(String location)
this.location = location;
public void initiate(String symbol)
try
DeserializerImpl des = new DeserializerImpl();
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService( SERVICE_NAME );
Call call = (Call)service.createCall( PORT_TYPE );
call.setTargetEndpointAddress( location );
call.setProperty(Call.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
call.setProperty(Call.SOAPACTION_URI_PROPERTY, SOAP_ACTION);
call.setOperationName(OPERATION_NAME);
call.addParameter(new QName(PARAMETER_NAMESPACE,"input"), XMLType.XSD_STRING, ParameterMode.IN);
Object[] params = new Object[1];
params[0] = "1";
call.setReturnType(new QName("http://xmlns.oracle.com/BPELProcess5", "BPELProcess5ProcessResponse"), EmployeeBean.class);
EmployeeBean response = (EmployeeBean)call.invoke(params);
System.out.println( " BPEL process initiated" );
catch (SOAPFaultException e)
System.err.println("Generated fault: ");
System.out.println (" Fault Code = " + e.getFaultCode());
System.out.println (" Fault String = " + e.getFaultString());
catch (JAXRPCException e)
System.err.println("JAXRPC Exception: " + e.getMessage());
catch (ServiceException e)
System.err.println("Service Exception: " + e.getMessage());
catch(RemoteException e)
System.err.println("Remote Exception: " + e.getMessage());
public static void main(String[] args)
String location = "http://localhost:9700/orabpel/default/BPELProcess5/1.0";
myClient client = new myClient();
client.setLocation( location );
client.initiate( "" );
}Hi Abdul,
From the document, we know that CONSTRAINED flag is used to reduce the risk of injection attacks via the specified string. If a string is provided that is not directly resolvable to qualified
or unqualified member names, the following error appears: "The restrictions imposed by the CONSTRAINED flag in the STRTOSET function were violated."
So you need to make sure the members are passed properly to the STRTOSET function. For more details, please see the following links:
http://ch1n2.wordpress.com/2010/02/21/the-restrictions-imposed-by-the-constrained-flag-in-the-strtoset-function-were-violated/
http://www.bp-msbi.com/2010/04/passing-unconstrained-set-and-member-parameters-between-reports-in-reporting-services/
Hope this helps.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Project Server 2013 - After host header defined, WSSCreateSiteFailure
after configuring webapplication and provisioning PWA (URL: http://<server_name>:<port>/pwa), i have extended the webapp to use host header and SSL protocol. now URL become something like this https://mycompany.com/pwa
if users access the site using this new URL, project site creation gives an error in queue as following. in ULS logs there is nothing useful as well. and if i open/publish the same project again, it gives me an error that project site is already in use.
once point which may can makes a difference is that security certificate for above URL is yet to be configured, and due to this users are getting this certificate error in their browser while access site. could
this be a cause?
however if users use the site using the same old URL, project site get successfully created.
any guesses?
General
CreateWssSiteContent: Creating project site failed! Project Uid=6b33f03d-b3af-e311-93fd-00155d01a359, site URL=https://epm/Projects/Project Site Teset, site name=Project Site Teset. :
WSSCreateSiteFailure (16400). Details: id='16400' name='WSSCreateSiteFailure' uid='0809ce4e-b3af-e311-93fd-00155d01a359' projectUID='6b33f03d-b3af-e311-93fd-00155d01a359' workspaceUrl='https://epm/Projects/Project Site Teset' projectWorkspaceName='Project
Site Teset'.
Queue:
GeneralQueueJobFailed (26000) - CreateWssSite.CreateWssSiteMessage. Details: id='26000' name='GeneralQueueJobFailed' uid='0909ce4e-b3af-e311-93fd-00155d01a359' JobUID='df8efb43-b3af-e311-93fd-00155d01a359' ComputerName='191cfefc-7d92-4801-a9d5-37d90cb6465e'
GroupType='CreateWssSite' MessageType='CreateWssSiteMessage' MessageId='1' Stage='' CorrelationUID='1fe97e9c-2dfa-d087-6465-e3809f2d856d'. For more details, check the ULS logs on machine
191cfefc-7d92-4801-a9d5-37d90cb6465e for entries with JobUID
df8efb43-b3af-e311-93fd-00155d01a359.
Khurram Jamshed - MBA, PMP, MCTS, MCITP (
Blog, Twitter, Linkedin )
If you found this post helpful, please “Vote as Helpful”. If it answered your question, please “Mark as Answer”.Hey Paul, good to see you mate :)
and yea i think now we are hitting more on the target.
patch level is 0, its a RTM version without any update. and applying any kind of patch is also not easily possible, because its one server hosting a very complex and huge SharePoint portal as well.
with your clue, i have got Brian's blog related to this exact issue: http://blogs.technet.com/b/projectsupport/archive/2013/01/10/project-server-2013-project-sites-alternate-access-mapping-and-themes.aspx
here he has mentioned a workaround until we apply patch, and also quoted it as a good way of configuring.
From Brian's Blog:
The first would be to use the fully qualified domain name (FQDN) as the Default zone Url, and then add an Internal
Url to the same Default zone for the server name – http://Project2013/.
Another option would be to set the FQDN as the Default zone Url and then add the shorter version as the Intranet zone or Custom zone. Either of these would mean that the strings wouldn’t get confused and the site would get created.
now in my case, assuming machine name is: ServerA, and while creating webapplication which going to host PWA site i am defining required host header assuming: epm.
provisioning my PWA using this web app and defing PWA path as "Project" because its a migrated site so i have to use the same name, and the URL i am going to get in the end would be: http://epm/project
AAM is, default zone: http://<server>:<port> and intranet zone: http://epm
is the above complying with the first option of Brian?
Khurram Jamshed - MBA, PMP, MCTS, MCITP (
Blog, Twitter, Linkedin )
If you found this post helpful, please “Vote as Helpful”. If it answered your question, please “Mark as Answer”. -
How to define a asynchron/synchron Process in ccBPM
Hello,
the scenario:
Outbound:
Channel: JDBC
Message Interface: SOURCE.OA (outbound/asynchron)
Message Interface: SOURCE.AA (abstract/asynchron)
Messagetyp: MT.SOURCE
Inbound:
Channel: Proxy
Message Interface: DEST.IS (inbound/synchron)
Message Interface: DEST.AS (abstract/synchron)
Messagetyp: MT.DEST
Message Mapping: SOURCE_TO_DEST
Interface Mapping: ???
ccBPM:
ReceiveStep_1
Message: SOURCE (container variable linked with abstract interface DEST.AA)
Processstart: YES
Mode: asychron
TransformationStep_2
SendStep_3:
Mode: synchron
synchronous interface: DEST.IS
Request Message: as defined
Response Message: as defined
My Question is:
1. How and where has the Transformation Step to be defined, in order to use the Mapping?
2. What type of Message-Mappings and Interface Mappings do i need, since i cannot directly map an asynchronous message interface to an synchrounous message interface?
Regards
Gunnarhi,
to implement Asynch-synch bridge using BPM, Plz refer to the below mentioned link:
/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
[reward if helpful]
regards,
latika. -
Build failed:"Message type not defined" - can't dereference schemas in MDS?
Hi,
I'm trying to write my first ABCS using the WorkerEBM & EBO.
I used the AIA service component wizard to generate the composite app. When I try to build it I get the error:
*Error(66): WSDL messageType "{http://xmlns.oracle.com/EnterpriseServices/Core/Worker/V1}CreateWorkerReqMsg" of variable "CreateWorkerAppReqMsg" is not defined in any of the WSDL files*
I can browse soa-mds connection from jdeveloper and navigate (using [ctrl-click]) from my composite to the wsdl and through to the schema - so JDeveloper can find all the necessary resources at coding time.
It can take up to 40 seconds to query and view the AIAMetadata subfolders this way.
Could the build script be timing out while querying soa-mds for resources at build time? Is there a timeout config that can be extended?
FYI: I had to add the jdbc-password of the MDS store to adf-config.xml to get past a password failure message in scac.log.
Thanks
...GarretHi,
I'm trying to write my first ABCS using the WorkerEBM & EBO.
I used the AIA service component wizard to generate the composite app. When I try to build it I get the error:
*Error(66): WSDL messageType "{http://xmlns.oracle.com/EnterpriseServices/Core/Worker/V1}CreateWorkerReqMsg" of variable "CreateWorkerAppReqMsg" is not defined in any of the WSDL files*
I can browse soa-mds connection from jdeveloper and navigate (using [ctrl-click]) from my composite to the wsdl and through to the schema - so JDeveloper can find all the necessary resources at coding time.
It can take up to 40 seconds to query and view the AIAMetadata subfolders this way.
Could the build script be timing out while querying soa-mds for resources at build time? Is there a timeout config that can be extended?
FYI: I had to add the jdbc-password of the MDS store to adf-config.xml to get past a password failure message in scac.log.
Thanks
...Garret -
Extract an identifier in a string to define a correlation.
Hi,
I would like to extract an identifier of a string to define a correlation. I have tried with the BPEL xpath function 'substring'. It doesn't work...
Then, I have created a Java function which makes a substring. I would like to use my function in my wsdl, but it doesn't work :
xmlns:omm_recupId="http://www.oracle.com/XSL/Transform/java/com.omm.xsl.ObtenirIdTransaction"
<bpws:propertyAlias propertyName="ns1:idTransaction" messageType="omm:MessageReponseStringFFLINT2214"
part="donnees"
query="omm_recupId:obtenirIdTransaction(bpws:getVariableData('messageReponseStringFFLINT2214','donnees'))"/>
I can't enter in my Java function
Do you know what is the problem ?
Do you have an other solutions ?
Thanks,
Taniayou could do something like this:
String str[] = new String[10];
then you could get the value of a string from a user and place it in a String variable.
TextField text1 = new TextField ();
String nameofObject = text1.getText();
now you can do something like:
create a button to submit the new name and then check to see if the button was pressed. If the button was pressed, iterate through the loop and set the str array object equal to the value of nameofObject string. Do it something like:
str[0] = nameofObject;
now you should be able to refer to the newly created object as the string name entered into the TextField you retrieved.
That is just off the top of my head. I am sure what you are trying to do can be done.
Hope that helps,
Kent -
Diff(s) between variables of type "Element" and "MessageType"?
When I create a variable (global or scope) then I can choose between the type "Element"
and "MessageType". What are the differences ?
Ok, I read that MessageType are intended for external PL calls. But what means that
in detail?
Do MessageType based variables contain additional (hidden) header information?
On the other hand when I specify an Element-based variable as inputVariable for
a Invoke to a JMS adapter then this variable is accepted. Shouldn't BPEL complain
that it expects a MessageType based variable?
Furthermore it seems to me that "MessageType"s can NOT contain attributes like "myid"
in the following sample instance:
<person id="263748">
<name>Karl</name>
<address>unknown</address>
</person>
"Element" based variables on the other hand are able to carry attributes.
Is this true for all scenarios?
PeterHi Peter,
As of my knowledge...
we can define element type in 2 ways.
1)We need to define elements in our BpelProcessXSD(For this BpelProcess should not be an empty process)
2)We can import the schema using import and then go to BpelProcess.wsdl (while creating variable) and you can find the imported schema in inline schemas and select yours
And now .... for message types
you need to import required schema and create a message type in your BpelProcess.wsdl
and while creating your variable goto project wsdl files and select the message type you have created.
Regards
PavanKumar
Maybe you are looking for
-
Massive Lagging and issues with Premiere Pro CC 2014
For the last year we have been in post on our feature documentary. We have roughly 15TB of footage that is all stored on a raid coming into our edit suite via fibre (I don't know much of the technical information about it other than it's trustworthy
-
LDAP SYNC Issue or Info ?
Product version : OIM 11g R2 PS2 Need reason to undersatnd : 1. What all possible reasons when the LDAP sync doesnt work ? 2. LDAP SYNC enabled but by some reason LDAP is down, in that case can we create user in OIM through some trusted recon ? if
-
Deserializer producing nulls instead of objects
I'm using JAX RPC RI and generating my client code using the java service code, not the wsdl. In one of my test calls, I'm trying to return a custom object. One of the members of that object is an ArrayList of another type of custom object. Once the
-
How do i uninstall firefox startup 2.0.0.4
Cannot uninstall firefox setup 2.0.0.4
-
Play on the searched song?
is there a way i can make itunes play only the song selected from spotlight rather than it continuing to play the entire library after the selected song is played? I seach spotlight from the menubar when i want to play a song in the middle of using m