Document variable as input in webservice:

Hi,
  I have a process which works absolutely fine if I invoke it from Livecycle. It takes the document as input and decodes the barcode data and gives it as output. I tried to expose this process as a webservice. When we tried to call this webservice through external application, and giving a tiff image as input,
it generates premature end of file exception.
Do we need to make any changes to the input variable type (initially given as type document) or any specific settings to make this work through web service calls?
Please help.
Thanks,
kc

How big is the input file?  We found that files greater than about 20 megabytes caused issues in our Weblogic + LiveCycle environment when calling as a WSDL endpoint.  We modified the calling application to write the file to a temporary location (file share) on the LiveCycle server and then sending the file's location as a string parameter instead as a document parameter.  When you send a file/document as a parameter, the resulting SOAP envelope becomes grossly inflated.
I'm probably mis-stating a few things, but it appeared to us that the process activities did not wait/block for the file to be completely written before the input files were loaded to disk.  We have experience numerous cases of asynchronous I/O that resulted in the refactoring of a simple process to account for larger input files.

Similar Messages

  • Document variable to User worklist

    Hello
    I've studied the LC Workflow documentation for about 5 hours (totally) and made tests for about 8 hours, but I was still not able to place a document (variable) by the User QPAC into the user worklist.
    Checking "Process details" in the LC Workflow Administration tells me that the document/task has been assigned to the specific user. But I can't see anything in the user worklist.
    The Creating Workflow documentation says:
    "The way document variables are used in the workflow is very similar to the way form variables are used. The main difference is that document variables provide access to a document but form variables provide
    form data and the location of the form used to collect the data."
    Obviously there is a difference. Until now, I was only able to place a document by a form variable to a user worklist.
    Has anybody sucessfully sent a document by a document variable to user's worklist?
    Any feedback would be great!
    Thanks, Nico

    Hi Nico
    I don't think that should be a problem.
    You can mix types throughout the workflow (ex: init-form is of type form and first user qpac step of the workflow is of type document for the input variable) as long as you are aware of what it means.
    Typically the document type variable is used in cases such as for a form containing a digital signature. This is because the document type variable means the form is not rendered by Form Server. This keeps the digital signature valid.
    In the case of having no init-form (kicking off via Webservices), you just have to identify what the form is (you can do this by setting the form name in the user qpac itself - "Change form name to..." and browsing to the form in the repository) and make the input variable to be of type Document.
    Does this help?
    Diana@adobe

  • How to store email content as a document variable?

    Hi there,
    I have a question where I need to store the content of an email-service into a txt-file. I guess I should somehow put it in an document variable, how can this be done?
    Thanks in advance
    Sincerely
    Kim

    Kim
    I would suggest one of the following two methods:
    1) Prior to sending the email with the SendEmail service, build the email contents via SetValues and using String process variables. Have one String for the subject (i.e. sSubject) and one for the body (i.e. sBody) and build your content appropriately. You can use multiple SetValues or you could do it all in one. After your email's body is done being built, use a SetValue to set it to a Document variable (i.e. docBody = sBody). You can then use this Document variable as the input to your SendEmail service's body parameter. What you have then is a Document containing all the content of the email's body that you can now write to the filesystem, archive to a repository or do whatever you'd like with. Please note that if you are using HTML formatting for the email's body that your Document variable will literally have the HTML code in it. This means that if you, say, archived the Document to the file system as a .txt and then opened it, you would see all the content but it would have all the HTML code with it. To get around this, you might consider archiving the email contents as a .htm or .html file. This will cause the file to open in the system's default browser for viewing but it will also only display the actual content formatted per your HTML code.
    One other thing to note is that if you wanted the subject to be part of the archived file's contents as well, you could simply do a String concatenate of the body String (sBody) to the subject String (sSubject).
    2) If the emails you are sending go to the same email box(es) each time, you might consider building a second orchestration that uses an Email endpoint to watch the box(es). With this, you could monitor those inboxes and handle incoming messages appropriately.
    Please do let me know if you have any questions.
    Josh Boyle
    [email protected]
    Cardinal Solutions Group

  • Assign task with use a document variable

    Hi,
      if i'm assigning a pdf document in assign task operation with use a document variable instead of application asset, I see the same old blank form after user submits the form.
    what ever typed in the form is not seen in the output variable assigned in Assign user task.
    If I use application asset and provide input xml, then I could see the filled form as output when user submits.
    What should I do to get the filled data in the form?
    Note: Reason for using document variable is I want to dynamically assign the form created in the process to assign task instead of getting from repository.
    Highly appreciate your assistance.
    Thanks,
    kc

    Ok. So are you populating document with the values entered by user in process before assigning.
    Best approach is to xml and application asset.
    And do you have your pdf document binded with xml schema. If not then you wont have fields populated in any way.
    Thanks,
    Prashast

  • Convert document variable into DocumentForm

    I'm working with a LC ES process in wich I use send and receive services.
    I send by email this attachment xpath: "/process_data/pdfForm/object/@document"
    Users are involved in process by submitting pdf form from their email after signing them.
    documents are signed and returned by email to the LC process.
    I retrieve the attachments with receive service and I save them into document variable using SetValue service assigning this variable
    "/process_data/pdfFirma1/object/@document" the value of
    this one(document type):
    "/process_data/attachments_list[1]"
    wich is the first attachment in the email.
    I have the need to assign the document variable into documentpart of the Document Form.
    I tried to assign to the document part of the documentform variable my input document. There aren't errors in the log, but when I try to open the document form in the workspace I can't.
    Is this the correct way?
    can Anyone help me?
    thanks a lot

    Like you said you need to put the "document" variable in a "Document Form" variable and then assign that variable ("Document Form") to the Input and Output data mapping of the User step.
    The xPath should be similar to this:
    /process_data/myDocForm/object/@document = /process_data/@myDocument
    Jasmin

  • Setting a field in the workflow when a form is a document variable?

    Hello,
    I hope I can explain this right. I have a form with several digital signatures, so I am passing the forms around using document variables. This is also outside of form manager, I email the form out to users who fill it out and email it back in. I use the Email Attachments and Email Receiver QPACs for this so that it can touch back on the work flow. So, after user1 fills out the form and then emails it back in, I need to set a field in the form before I email the form back out to the next person. So, since my form is within a document variable, what is the best way to go about doing this so that I can continue perserving the digital signatures? The field I am setting keeps track of which part the form is currently on so that I can mark subforms as readonly.
    Thanks,
    Jennifer

    Hello,
    I hope I can explain this right. I have a form with several digital signatures, so I am passing the forms around using document variables. This is also outside of form manager, I email the form out to users who fill it out and email it back in. I use the Email Attachments and Email Receiver QPACs for this so that it can touch back on the work flow. So, after user1 fills out the form and then emails it back in, I need to set a field in the form before I email the form back out to the next person. So, since my form is within a document variable, what is the best way to go about doing this so that I can continue perserving the digital signatures? The field I am setting keeps track of which part the form is currently on so that I can mark subforms as readonly.
    Thanks,
    Jennifer

  • How can i access and assign java xml Document variable in javascript block

    How can i access and assign org.w3c.dom.Document variable in javascript block
    I tried this xmlDoc = "<%=xmldoc%>";
    it is not working
    plz give me solution.
    thanx
    Vidya

    The solution would only work on MS IE browsers, as other browsers do not support an XML DOM.
    It can be done, but you would be stuck with using the Microsoft broswer. If that is acceptable, I have some example code, and a book recommendation.

  • Any pdf or word etc document on batch input

    Please provide me some document on batch input?
    I need to learn batch input but I could not achieve it yet.
    You can give the urls of the documents..
    Thanks in advance.

    Hi Deniz Toprak ..
    ' please   go one  by one link   even  the url   is continuation
    <a href="http://">http://www.sap-img.com/bdc.htm</a>
    <a href="http://">http://www.sap-img.com/abap/learning-bdc-programming.htm</a>
    <a href="http://">http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm</a>
    <a href="http://">http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm</a>
    reward  points if it is usefull ......
    Girish

  • Document variable

    I create a script which calls another script via subflow. The subflow script opens an xml doc, doing some checks and then return back to main script a boolean value.
    What I want to do, is to pass to the subflow script a different filename each time. Is it possible to define the value of Document variable with another variable? Like DOC[variable]?

    Yes but not as you have shown it there. You can use the Create File Document step within your subflow script. The Filename parameter can be a concatinated string representing the XML document location in your document repository. Example:   "DOC[" + myFilename + ".xml]" where myFilename is the String-type variable you mapped into the subflow. Be careful about what folder you store the file in if you are using multiple languages. If the document should not change across all caller languages you may want to place it in the default folder. The MIVR engine will try that if it does not find a match withing the contact's language-specific folders.

  • Document file or input stream is not set.

    Error sending mail :Exception Thrown
    oracle.apps.xdo.delivery.DeliveryException: Document file or input stream is not set.
    at oracle.apps.xdo.delivery.AbstractDeliveryRequest.submit(AbstractDeliveryRequest.java:1154)
    Delivery manager:
    Can some one tell me what was wrong with this,
    I check my document path I can describe it
    When i send one attachment it works with the same path
    but when I use multiple attachment it gives then error
    Attachment m = new Attachment();
    m.addAttachment("/fapps/oracle/fintstcomn/java/chami/test.pdf","test.pdf","application/pdf");
    m.addAttachment("/fapps/oracle/fintstcomn/java/chami/test2.pdf","test2.pdf","application/pdf");
    delReq.addProperty(DeliveryPropertyDefinitions.SMTP_ATTACHMENT,m);
    Thanks

    Ok. What I needed to do is use the Bursting Engine to send out an email (list of invoices) to sales reps for our company. From what I read I have created an XML Document (Template) and have successfully ran that but it looks like I need to create a control file(bursting)? This control file would need to be saved as an XML? Is this correct?

  • XML message as input for webservice gives deserialization error

    Hi,
    jDeveloper 10.1.3
    BPEL PM 10.1.2.0.2
    Carrental example
    Problem:
    For the Business Rule Engine I did the Carrental XML example. Based on the java application that connects to the BR engine, I created a webservice in jDeveloper and deployed it to my localhost AS 10.1.3. The webservice has a testRule method that accepts a String buf as input. For now, the only thing the webservice does is return a 'do nothing' string. This works fine:
    When deployed the testpage generates the following SOAP message:
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body xmlns:ns1="http://carrental/types/">
    <ns1:testRuleElement>
    <ns1:buf>my xml message</ns1:buf>
    </ns1:testRuleElement>
    </soap:Body>
    </soap:Envelope>
    The SOAP response is:
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://carrental/types/"><env:Body><ns0:testRuleResponseElement><ns0:result>do nothing...</ns0:result></ns0:testRuleResponseElement></env:Body></env:Envelope>
    In BPEL Designer I create a new asynchronous process ValidateBR, with a partnerlink for the webservice, based on the following WSDL file:
    <definitions
    name="Rent"
    targetNamespace="http://carrental/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://carrental/"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:tns0="http://carrental/types/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    >
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://carrental/types/"
    elementFormDefault="qualified" xmlns:tns="http://carrental/types/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/">
    <complexType name="testRule">
    <sequence>
    <element name="buf" type="string" nillable="true"/>
    </sequence>
    </complexType>
    <complexType name="testRuleResponse">
    <sequence>
    <element name="result" type="string" nillable="true"/>
    </sequence>
    </complexType>
    <complexType name="version">
    <sequence/>
    </complexType>
    <complexType name="versionResponse">
    <sequence>
    <element name="result" type="string" nillable="true"/>
    </sequence>
    </complexType>
    <element name="testRuleElement" type="tns:testRule"/>
    <element name="testRuleResponseElement" type="tns:testRuleResponse"/>
    <element name="versionElement" type="tns:version"/>
    <element name="versionResponseElement" type="tns:versionResponse"/>
    </schema>
    </types>
    <message name="Rent_testRule">
    <part name="parameters" element="tns0:testRuleElement"/>
    </message>
    <message name="Rent_testRuleResponse">
    <part name="parameters" element="tns0:testRuleResponseElement"/>
    </message>
    <message name="Rent_version">
    <part name="parameters" element="tns0:versionElement"/>
    </message>
    <message name="Rent_versionResponse">
    <part name="parameters" element="tns0:versionResponseElement"/>
    </message>
    <portType name="Rent">
    <operation name="testRule">
    <input message="tns:Rent_testRule"/>
    <output message="tns:Rent_testRuleResponse"/>
    </operation>
    <operation name="version">
    <input message="tns:Rent_version"/>
    <output message="tns:Rent_versionResponse"/>
    </operation>
    </portType>
    <binding name="RentSoapHttp" type="tns:Rent">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="testRule">
    <soap:operation soapAction="http://carrental//testRule"/>
    <input>
    <soap:body use="literal" parts="parameters"/>
    </input>
    <output>
    <soap:body use="literal" parts="parameters"/>
    </output>
    </operation>
    <operation name="version">
    <soap:operation soapAction="http://carrental//version"/>
    <input>
    <soap:body use="literal" parts="parameters"/>
    </input>
    <output>
    <soap:body use="literal" parts="parameters"/>
    </output>
    </operation>
    </binding>
    <service name="Rent">
    <port name="RentSoapHttpPort" binding="tns:RentSoapHttp">
    <soap:address location="http://localhost:7780/Rules-rent-context-root/RentSoapHttpPort"/>
    </port>
    </service>
    </definitions>
    I defined the process variable inputVariable to be defined based on the carrental.xsd schema. I assign the inputVariable to the 'buf' parameter of the webservice as shown below in the ValidateBR.bpel
    <!--
    // Oracle JDeveloper BPEL Designer
    // Created: Mon Mar 27 16:02:22 CEST 2006
    // Author: haanrw
    // Purpose: Asynchronous BPEL Process
    -->
    <process name="ValidateBR" targetNamespace="http://xmlns.oracle.com/ValidateBR" 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://rules.oracle.com/carrental" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns3="http://carrental/types/" xmlns:ns2="http://carrental/" xmlns:client="http://xmlns.oracle.com/ValidateBR" 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:ValidateBR" myRole="ValidateBRProvider" partnerRole="ValidateBRRequester"/>
    <partnerLink name="CheckBR" partnerRole="Rent_Role" partnerLinkType="ns2:Rent_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:ValidateBRRequestMessage"/><!-- Reference to the message that will be sent back to the
    requester during callback
    -->
    <variable name="outputVariable" messageType="client:ValidateBRResponseMessage"/>
    <variable name="InvokeValidateBR_testRule_InputVariable" messageType="ns2:Rent_testRule"/>
    <variable name="InvokeValidateBR_testRule_OutputVariable" messageType="ns2:Rent_testRuleResponse"/>
    </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 ValidateBR.wsdl
    -->
    <receive name="receiveInput" partnerLink="client" portType="client:ValidateBR" operation="initiate" variable="inputVariable" createInstance="yes"/><!-- Asynchronous callback to the requester.
    Note: the callback location and correlation id is transparently handled
    using WS-addressing.
    -->
    <assign name="Assign_1">
    <copy>
    <from variable="inputVariable" part="payload" query="/ns1:repository"/>
    <to variable="InvokeValidateBR_testRule_InputVariable" part="parameters" query="/ns3:testRuleElement/ns3:buf"/>
    </copy>
    </assign>
    <invoke name="InvokeValidateBR" partnerLink="CheckBR" portType="ns2:Rent" operation="testRule" inputVariable="InvokeValidateBR_testRule_InputVariable" outputVariable="InvokeValidateBR_testRule_OutputVariable"/>
    <invoke name="callbackClient" partnerLink="client" portType="client:ValidateBRCallback" operation="onResult" inputVariable="outputVariable"/>
    </sequence>
    </process>
    When I deploy the process and initiate a testinstance from the BPEL console, the assign looks as follows:
    <InvokeValidateBR_testRule_InputVariable>
    <part name="parameters" >
    <testRuleElement>
    <buf>
    <driver>
    <driver-license-number>15-PS-FZ</driver-license-number>
    <name>Rob de Haan</name>
    <age>39</age>
    <vehicle-type>Saab</vehicle-type>
    <license-type>B</license-type>
    <pre-convictions>0</pre-convictions>
    <pre-accidents>0</pre-accidents>
    <able-to-drive>true</able-to-drive>
    </driver>
    </buf>
    </testRuleElement>
    </part>
    </InvokeValidateBR_testRule_InputVariable>
    The InvokeValidateBR shows the following error:
    <remoteFault>
    <part name="code" >
    <code>Client</code>
    </part>
    <part name="summary" >
    <summary>when invoking endpointAddress 'http://localhost:7780/Rules-rent-context-root/RentSoapHttpPort', caught exception while handling request: deserialization error: unexpected XML reader state. expected: END but found: START: {http://rules.oracle.com/carrental}driver</summary>
    </part>
    <part name="detail" >
    <detail>AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client faultSubcode: faultString: caught exception while handling request: deserialization error: unexpected XML reader state. expected: END but found: START: {http://rules.oracle.com/carrental}driver faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:caught exception while handling request: deserialization error: unexpected XML reader state. expected: END but found: START: {http://rules.oracle.com/carrental}driver at org.collaxa.thirdparty.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221) at org.collaxa.thirdparty.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128) at org.collaxa.thirdparty.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1083) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(Unknown Source) at org.collaxa.thirdparty.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:226) at org.collaxa.thirdparty.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645) at org.collaxa.thirdparty.apache.axis.Message.getSOAPEnvelope(Message.java:424) at org.collaxa.thirdparty.apache.axis.client.Call.invokeEngine(Call.java:2754) at org.collaxa.thirdparty.apache.axis.client.Call.invoke(Call.java:2715) at org.collaxa.thirdparty.apache.axis.client.Call.invoke(Call.java:1737) at com.collaxa.cube.ws.wsif.providers.axis.WSIFOperation_ApacheAxis.invokeAXISMessaging(WSIFOperation_ApacheAxis.java:2113) at com.collaxa.cube.ws.wsif.providers.axis.WSIFOperation_ApacheAxis.invokeRequestResponseOperation(WSIFOperation_ApacheAxis.java:1611) at com.collaxa.cube.ws.wsif.providers.axis.WSIFOperation_ApacheAxis.executeRequestResponseOperation(WSIFOperation_ApacheAxis.java:1083) at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:452) at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:327) at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:189) at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:601) at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:317) at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:188) at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3408) at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1836) at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75) at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:166) at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:252) at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5438) at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1217) at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:511) at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:335) at ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.handleInvoke(ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.java:1796) at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37) at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:125) at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70) at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86) at com.evermind.server.ejb.MessageDrivenBeanInvocation.run(MessageDrivenBeanInvocation.java:123) at com.evermind.server.ejb.MessageDrivenHome.onMessage(MessageDrivenHome.java:755) at com.evermind.server.ejb.MessageDrivenHome.run(MessageDrivenHome.java:928) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186) at java.lang.Thread.run(Thread.java:534) {http://xml.apache.org/axis/}hostname:NL-GRH-L120981 </detail>
    </part>
    </remoteFault>
    FYI: the webservice only contains a return "do nothing"
    Question:
    What is the proper way to assign an XML message to the web service?
    Any help would be appreciated.
    Rob
    Message was edited by:
    [email protected]

    Hi,
    Reading only is not possible..
    I will be still more clear in my question this time..
    I have deployed my bpel. My receiveInputVariable is of type xsd:string.
    So when i run the bpel in my console, i will be asked to give input as string data.
    So when i go to the XMLView, it will be like this.
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
         <soap:Body xmlns:ns1="http://xmlns.oracle.com/Sabari_POC_Appln/DOM_Parser/ConvertToBLOB">
              <ns1:process>
                   <ns1:input></ns1:input>
    </ns1:process>
    </soap:Body>
    </soap:Envelope>
    Now, i am going to give my input like this. --- which leads to error.
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
         <soap:Body xmlns:ns1="http://xmlns.oracle.com/Sabari_POC_Appln/DOM_Parser/ConvertToBLOB">
              <ns1:process>
                   <ns1:input>
    *<?xml version="1.0" encoding="UTF-8"?>*
    *<projects>*
    *<project id = "BP001">*
    *<name>Banking Project</name>*
    *<start-date>Jan 10 1999</start-date>*
    *<end-date>Jan 10 2003</end-date>*
    *</project>*
    *<project id = "TP001">*
    *<name>Telecommunication Project</name>*
    *<start-date>March 20 1999</start-date>*
    *<end-date>July 30 2004</end-date>*
    *</project>*
    *<project id = "PP001">*
    *<name>Portal Project</name>*
    *<start-date>Dec 10 1998</start-date>*
    *<end-date>March 10 2006</end-date>*
    *</project>*
    *</projects>*
    </ns1:input>
    </ns1:process>
    </soap:Body>
    </soap:Envelope>
    This xml is not accepted as string input.. so kindly suggest me some other solution.
    I also tried.. like.. making my receiveInputVariable of type xsd:anyType, it also dint help. same error occurred.
    Thanks,
    Sabarisri. N
    Edited by: Sabarisri N on Jul 20, 2011 1:03 PM

  • Transmission of XML Documents in a vector via WebService using Axis

    Hello,
    I'm trying to transmit several XML documents (belonging to a DICOM-Study) from WebService Provider to WebService consumer.
    This is my server/provider:
    public static Vector<Document> returnPatientStudies(String PatientID)
    DocumentBuilderFactory factory  = DocumentBuilderFactory.newInstance();
    DocumentBuilder        builder  = factory.newDocumentBuilder();
    File x = new File(PATH + "patient.xml");
    Document document = builder.parse(x);
    DCM2XMLFiles.add(document);This code works fine if it's executed locally in a JAVA class or via http/GET (http://.../axis/services/Gateway?method=returnPatientStudies&PatientID=123456).
    After using Axis' WSDL2Java-Tool I wrote a client:
    public static void main(String[] args) {
    GatewayServiceLocator locator = new GatewayServiceLocator();
    try {
         Gateway gateway = locator.getGateway();
         Vector<Document> documents = Gateway.returnPatientStudies("123456");
    ... Everytime I try to invoke this client-side class, I get an "org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize."
    Obviously the client gets confused by the XML content of the vector I'm trying to transmit (this error also occurs if I transmit XML files constisting only of a single empty element <empty />).
    I think this is a simple problem, since one single XML Document can be transmitted and gets displayed on client side, but I don't have a clue how to solve this vector<Document> problem. Hope someone can help me.
    Thanks

    Hi thanks for your answer.
    I am striving to make this webservice as universal as possible. I have only been returning dumps to my calling page to try and get a view of what's going on inside the component when I call it as a webservice. I wouldn't dream or returnin these back the client.
    The major core of this idea was to create a single component that acts as a facade for a number of other components. Because of this the component needs to accept and return a dynamically variable number of arguments. Because of this I selected xml as this seemed like the ideal solution; I can pass in an out some xml that contains all the arguments. I was hoping to reuse some internal functions to provide external webservices, and use this facade architechture to add a layer of security and logging which doesn't exist with the current functions.
    Do you have any suggestions of how I could best acheive something along these lines? Has someone already created a framework or methodology for creating webservices with Coldfusion which would provide this sort of functionality out of the box?
    Thanks again
    Jim

  • Byte input to Webservice Task in SSIS 2012

    Hi,
    I have just created a new project in SSIS 2012 and I am using a webservice task in a package.
    I imported the WSDL file and I have several inputs to set to use it properly.
    I put variables on the 4 first inputs that are strings with success but I have a problem with the last one.
    The last one is called xmlData and is in "byte" type and I can not set it correctly.
    In the XSD file I have this definition: <xsd:element
    minOccurs="0" name="xmlData" nillable="true" type="xsd:base64Binary"
    />
    It is supposed to contain a XML file that I have to encode in base64 and then fill the xmlData with the binary value.
    To encode my XML file to base64 I use a C# task but I do not know how to declare the value and how to set it.
    I do it this way:
                FileStream myStream = new FileStream(@"H:\myXML.XML", FileMode.Open, FileAccess.Read); 
                BinaryReader reader = new BinaryReader(myStream); 
                byte[] fichierXML = new byte[reader.BaseStream.Length]; 
                for (int i = 0; i < reader.BaseStream.Length; i++) 
                    fichierXML[i] = reader.ReadByte();
                reader.Close(); 
                myStream.Close(); 
                string xmlAsString = EncodeBytesAsBase64(fichierXML);
                MessageBox.Show(xmlAsString);
                // Conversion de la String en byte[]
                byte[] xmlData = System.Text.Encoding.UTF8.GetBytes(xmlAsString);            
                Dts.Variables["User::monXmlData"].Value = xmlData;
    My variable User::monXmlData is an Object and there is no problem in execution.
    The C# script runs well and the webservice task too but I always get an error response for the webservice saying that my xmlData field is not correct.
    I think that my base64 encoding is correct because when I copy the result in my messagebox and paste in base64 decode on a free web decoder I get my original XML text.
    Is there someone who can help me please?

    Thanks to all that took some time to read me.
    I have finally found the solution.
    The Base64 encoding is not necessary. It is automatically done by the webservice when the request is sent.
    The important thing to remember is that when you have to send a "byte[]" variable, you have to use a "Object" variable as an imput for the webservice.

  • SSIS: How to use one Variable as Input and Output Parameter in an Execute SQL Task

    Hello,
    i need your help,I'm working on this issue since yesterday and have no idea how to deal with it.
    As I already said in the tilte i want to start a stored procedure via a Execute SQL Task which has around 15 prameters. 10 of these should be used as input AND output value.
    As an example:
    i have three  Variable:
    var1    int        2
    var2    int     100
    var3    int     200
    the stroed procedure:
       sp_test
          @var1 int
          @var2 int output
          @var3 int output
       AS
       BEGIN
            SET @var2 = @var2 * @var1
            SET @var3 = @var3 + @var1
       END
    So in the Execute SQL Task i call the Stored Procedure as follwos:
        Exec sp_test  @var1 = ?, @var2 = ? output, @var3 = ? output
    (I use an OLE DB Connection)
    The parameter mapping is as follows:
    User::Var1        input                   numeric              0                 -1
    User::Var2        input/output         numeric              1                 -1
    User::Var3        input/output         numeric              2                 -1
    Now my problem. If i set  Var2 and Var3 as Input parameter the values are still the same after running the package. If i set them to a output value the are both Null because the procedure doesnt get any values.
    I already tried to list them a second time - like
        User::Var2        input                  numeric              1                 -1
        User::Var2        output                 numeric              1                 -1
    or i use a new variable
        User::Var2                  input                  numeric              1                 -1
        User::Var2Return        output                 numeric              1                 -1
    but i alwas get the error
    "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done."
    Has anybody an idea how I can solve this problem?
    Thanks a lot.
    Kind Regards,
    Alice

    Hi Alain,
    thx for your answer.
    I have around 15 procedures called one after the other to calculated and modify my values. Each procedure is responsible for an other but overlapping set of variables. So i thought it would be a good idea to call them one after the other with the needed variables via a execute sql task.
    So if i use a result set, how i get my stored procedure to return 10 values? I would have to use a Function instead of a procedure, wouldn't i?
    As if i have 15 procedures this would be a lot of work.
    But thanks a lot for the idea. I think an other idea would be to create one function which calls all stored procedures and returns all the calculated values as a result set, wouldn't it?.
    Kind Regards.
    Alice

  • Is it possible for a cluster to be set to allow variable data input?

    I posted this question at the bottom of a different thread but it looks like that one has died out plus this is really a separate question. So I hope no one minds me starting a new thread here.
    I made the program Convert2Matfile.vi which I intend to use as a SubVI in other programs. How I want this program to work is I would like to bundle up double any quantity of 1D/ 2D arrays and or numeric values and pass them to this tool which will then convert what ever it is sent to an appropriate variable in a matlab file using the element name as the matlab variable name.
    The issue I am having here, is that currently I have a 1D, 2D and a numeric value sitting in the cluster definition on my front panel of the Convert2Matlfile.vi. Because I have this, the code is looking for every cluster to be structured exactally like the one I have in the front panel. How do I source that code more generically? See the photo below of the broken wire. Error message is as follows;
    You have connected two arrays of different dimensions.
    The dimension of input cluster -> array #2 is 1.
    The dimension of Cluster In -> array 2 is 2.
    So clearly it is looking for the Cluster to be exactally like the one it is looking for. Is there any way to do this more generically so it can accept any type of cluster of any quantity of values so long as they meet my criteria?
    Attachments:
    conv2mat.vi ‏49 KB
    Convert2Matfile.vi ‏58 KB
    Conv2Matlab Cluster Issue.png ‏33 KB

    Well it looks like I will likely need to treat this as a variant. Unfortunatley for me I hate dealing with Variants in LabVIEW likely more as a result as a lack of understanding when it comes to how to deal with them than anything. My stratedgy I would think should be as follows figure out how many items are in my variant that are either a numeric, a 1D or a 2D array. Then one by one go to each of those values. If say it is a numeric get the numerical value, get the label name and send it over to my convert to Matlab program one by one.
    So that would be the theory behind how I would try to do this. Now how the heck do I actually do anything along those lines? I can't even figure out how to get the number of elements in my variant. I would have thought the "Get Variant Attribute function" would be a great place to start. So I made up the exploreVariant.vi below. See the images of the code plus the front panel after execution. I followed the instructions from the following location;
    http://zone.ni.com/reference/en-XX/help/371361J-01​/lvhowto/retrievingattribsfromvard/
    Add the Get Variant Attribute function to the block diagram.
    Wire variant data to the variantinput of the Get Variant Attribute function.
    Leave the name input and the default valueinput of the Get Variant Attribute function unwired.
    Right-click the names output and select Create»Indicatorfrom the shortcut menu.
    Right-click the values output of the Get Variant Attribute function and select Create»Indicatorfrom the shortcut menu to retrieve the values associated with each attribute.
    Run the VI.
    Even after following the instructions above nothing shows up in either the names or values collumn. So how the heck do I actually do what I want to do? I just can't seem to figure out how to index through a variant at all.
    Attachments:
    exploreVariant.vi ‏10 KB
    variantcode.png ‏35 KB
    VariantFrontPanel.png ‏73 KB

Maybe you are looking for