WSDL with SOAP Binding and Attachement

Hello
I'm trying to define a WSDL-Definition which defines a operation called getFile() which returns a file as a SOAP attachement. I created the follwing file which I can verify without any problems. However if I try to compile it with wscompile (wscompile -gen:server -mapping build/mapping.xml -d build -nd build -classpath . config.xml) I get the follwing error:
error: output message of binding operation "getFile" does not have a SOAP body extension
When I remove the line
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
wscompile generates the classes but gives the following warnings:
warning: ignoring port "FileDistributorIFPort": not a SOAP port
warning: Service "FileDistributorService" does not contain any usable ports
Which is somehow clear because I did not define the soap binding.
Any ideas what I can do so I can transmit a file via SOAP using attachements?
Here's the file
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="FileDistributorService"
targetNamespace="urn:Foo"
xmlns:tns="urn:Foo"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<types>
<xsd:schema targetNamespace="urn:Foo"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<xsd:element name="getFile">
<xsd:complexType>
<xsd:all>
<xsd:element name="mySymbol" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:element name="getFileResponse">
<xsd:complexType>
<xsd:all>
<xsd:element name="result" type="float"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ArrayOfBinary">
<xsd:complexContent>
<xsd:restriction base="soapenc:Array">
<xsd:attribute ref="soapenc:arrayType"
wsdl:arrayType="xsd:binary[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
</types>
<message name="m1">
<part name="body" element="tns:getFile"/>
</message>
<message name="m2">
<part name="body" element="tns:getFileResponse"/>
<part name="file" type="tns:ArrayOfBinary"/>
</message>
<portType name="pt1">
<operation name="getFile">
<input message="tns:m1"/>
<output message="tns:m2"/>
</operation>
</portType>
<binding name="b1" type="tns:pt1">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
<operation name="getFile">
<soap:operation soapAction="getFile"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<mime:multipartRelated>
<mime:part>
<soap:body parts="body" use="literal"/>
</mime:part>
<mime:part>
<mime:content part="file" type="tns:ArrayOfBinary"/>
</mime:part>
</mime:multipartRelated>
</output>
</operation>
</binding>
<service name="FileDistributorService">
<port name="FileDistributorIFPort" binding="tns:b1">
<soap:address location="http://localhost:8080/fxm/FileDistributorImpl"/>
</port>
</service>
</definitions>
Thanks a lot!
Oliver

Not very sure, but i suspect that there is an error here in your WSDL :
<mime:multipartRelated>
<mime:part>
<soap:body parts="body" use="literal"/>
</mime:part>
<mime:part>
<mime:content part="file" type="tns:ArrayOfBinary"/>The type attribute should be a valid Mime Type.
Quoting from the WSDL Specification
The type attribute contains the MIME type string. A type value has two portions, separated by a slash (/), either of which may be a wildcard (*). Not specifying the type attribute indicates that all MIME types are acceptable.
Why not try the following instead of the last line above
<mime:content part="file" type="*/*"/>

Similar Messages

  • How to call a webservice with SOAP Binding Style RPC

    Hi Guys,
    I'm pretty new to the LiveCycle ES product and I'm trying to call a web service that is of SOAP binding style 'RPC'. After some research I found out that Adobe LC ES only support WSDL files of doc/literal type.
    My question is, is there a workaround for calling RPC style web services? can RPC style web services be converted into doc/literal type?
    Any information regarding this would be greatly appreciated.
    Kazz.

    Hello,
    I had the same problem and I've regenerated my WSDL ( Apache Axis ) with docu/litteral parameters.
    I think it's the only way...
    thomas

  • Invoking WSDL with SOAP-Encoded Arrays get Errors

    Hi,
    i am invoking a web service through a partner link. This WSDL hava a SOAP-Encoded Arrays.
    <?xml version="1.0" encoding="utf-8"?>
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    name="IApWebServicesservice" targetNamespace="http://tempuri.org/"
    xmlns:tns="http://tempuri.org/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:ns1="urn:unApTypes" xmlns:ns2="urn:unApWebServicesInterface"
    xmlns:ns3="http://www.borland.com/namespaces/Types">
    <types>
    <xs:schema targetNamespace="urn:unApTypes" xmlns="urn:unApTypes">
    <xs:simpleType name="TApLanguages">
    <xs:restriction base="xs:string">
    <xs:enumeration value="alPortuguese"/>
    <xs:enumeration value="alEnglish"/>
    <xs:enumeration value="alSpanish"/>
    <xs:enumeration value="alPortuguesePT"/>
    <xs:enumeration value="alDeutsch"/>
    <xs:enumeration value="alItalian"/>
    <xs:enumeration value="alFrench"/>
    <xs:enumeration value="alRussian"/>
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="TApFieldType">
    <xs:restriction base="xs:string">
    <xs:enumeration value="aftNotDefined"/>
    <xs:enumeration value="aftIntAutoInc"/>
    <xs:enumeration value="aftIntAuto"/>
    <xs:enumeration value="aftInteger"/>
    <xs:enumeration value="aftByteAuto"/>
    <xs:enumeration value="aftByte"/>
    <xs:enumeration value="aftWordAuto"/>
    <xs:enumeration value="aftWord"/>
    <xs:enumeration value="aftFloat"/>
    <xs:enumeration value="aftString"/>
    <xs:enumeration value="aftDate"/>
    <xs:enumeration value="aftTime"/>
    <xs:enumeration value="aftBoolean"/>
    <xs:enumeration value="aftBlob"/>
    <xs:enumeration value="aftImage"/>
    <xs:enumeration value="aftRichText"/>
    <xs:enumeration value="aftDateTime"/>
    <xs:enumeration value="aftMemo"/>
    <xs:enumeration value="aftFile"/>
    <xs:enumeration value="aftCurrency"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:schema>
    <xs:schema targetNamespace="urn:unApWebServicesInterface"
    xmlns="urn:unApWebServicesInterface">
    <xs:import namespace="http://www.borland.com/namespaces/Types"/>
    <xs:complexType name="TWSTransactionParams">
    <xs:sequence>
    <xs:element name="Fields" type="ns2:TWSTransactionHeaderFieldsArray"/>
    <xs:element name="Reserved" type="ns2:TWSTransactionParams"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSTransactionHeaderFieldsArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSTransactionHeaderFields[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSTransactionHeaderFields">
    <xs:sequence>
    <xs:element name="Reserved" type="ns2:TWSTransactionHeaderFields"/>
    <xs:element name="FieldCaption" type="xs:string"/>
    <xs:element name="FieldId" type="xs:int"/>
    <xs:element name="GroupId" type="xs:int"/>
    <xs:element name="GroupCaption" type="xs:string"/>
    <xs:element name="Required" type="xs:boolean"/>
    <xs:element name="DataType" type="xs:int"/>
    <xs:element name="Mask" type="xs:string"/>
    <xs:element name="FieldLength" type="xs:int"/>
    <xs:element name="LookupName" type="xs:string"/>
    <xs:element name="PrimaryKey" type="xs:int"/>
    <xs:element name="Language" type="xs:string"/>
    <xs:element name="ReadOnly" type="xs:boolean"/>
    <xs:element name="LiteralMicroHelp" type="xs:string"/>
    <xs:element name="ExceptReadOnlyTransactions" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSTransactionExecuteParamArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSTransactionExecuteParam[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSTransactionExecuteParam">
    <xs:sequence>
    <xs:element name="Id" type="xs:int"/>
    <xs:element name="Value" type="xs:anyType"/>
    <xs:element name="Reserved" type="ns1:TApFieldType"/>
    <xs:element name="FieldName" type="xs:string"/>
    <xs:element name="ClientFieldName" type="xs:string"/>
    <xs:element name="FieldSize" type="xs:int"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSTransactionToExecuteArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSTransactionToExecute[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSTransactionToExecute">
    <xs:sequence>
    <xs:element name="TransactionId" type="xs:int"/>
    <xs:element name="Params" type="ns2:TWSTransactionExecuteParamArray"/>
    <xs:element name="LanguageId" type="ns1:TApLanguages"/>
    <xs:element name="EditionType" type="xs:int"/>
    <xs:element name="IntegrationMode" type="xs:int"/>
    <xs:element name="Scope" type="ns3:TIntegerDynArray"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryParams">
    <xs:sequence>
    <xs:element name="Reserved" type="ns2:TWSQueryParams"/>
    <xs:element name="Fields" type="ns2:TWSQueryHeaderFieldsArray"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryHeaderFieldsArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSQueryHeaderFields[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSQueryHeaderFields">
    <xs:sequence>
    <xs:element name="Reserved" type="ns2:TWSQueryHeaderFields"/>
    <xs:element name="FieldCaption" type="xs:string"/>
    <xs:element name="ParamType" type="xs:int"/>
    <xs:element name="ParamName" type="xs:string"/>
    <xs:element name="Mask" type="xs:string"/>
    <xs:element name="DefaultValue" type="xs:anyType"/>
    <xs:element name="Required" type="xs:boolean"/>
    <xs:element name="GroupId" type="xs:int"/>
    <xs:element name="GroupCaption" type="xs:string"/>
    <xs:element name="Hint" type="xs:string"/>
    <xs:element name="FindInList" type="xs:boolean"/>
    <xs:element name="UseValueList" type="xs:boolean"/>
    <xs:element name="ValueList" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteParamArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSQueryExecuteParam[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteParam">
    <xs:sequence>
    <xs:element name="Value" type="xs:string"/>
    <xs:element name="Reserved" type="ns1:TApFieldType"/>
    <xs:element name="ParamName" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteResults">
    <xs:sequence>
    <xs:element name="Fields" type="ns2:TWSQueryExecuteFieldsArray"/>
    <xs:element name="Records" type="ns2:TWSQueryExecuteRecordsArray"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteFieldsArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSQueryExecuteField[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteRecordsArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSQueryExecuteRecord[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteField">
    <xs:sequence>
    <xs:element name="FieldName" type="xs:string"/>
    <xs:element name="Reserved" type="ns1:TApFieldType"/>
    <xs:element name="FieldType" type="xs:int"/>
    <xs:element name="Mask" type="xs:string"/>
    <xs:element name="Length" type="xs:int"/>
    <xs:element name="Decimals" type="xs:int"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteRecord">
    <xs:sequence>
    <xs:element name="Values" type="ns2:TWSQueryExecuteValuesArray"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteValuesArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSQueryExecuteValue[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteValue">
    <xs:sequence>
    <xs:element name="Value" type="xs:string"/>
    <xs:element name="Reserved" type="ns1:TApFieldType"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    <xs:schema targetNamespace="http://www.borland.com/namespaces/Types"
    xmlns="http://www.borland.com/namespaces/Types">
    <xs:import namespace="urn:unApTypes"/>
    <xs:complexType name="TIntegerDynArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType" n1:arrayType="xs:int[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    </xs:schema>
    </types>
    <message name="GetTransactions0Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="Transactions" type="xs:string"/>
    <part name="Error" type="xs:string"/>
    <part name="LanguageId" type="ns1:TApLanguages"/>
    </message>
    <message name="GetTransactions0Response">
    <part name="Transactions" type="xs:string"/>
    <part name="Error" type="xs:string"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <message name="GetParameters1Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="TransactionId" type="xs:int"/>
    <part name="Params" type="ns2:TWSTransactionParams"/>
    <part name="Error" type="xs:string"/>
    <part name="LanguageId" type="ns1:TApLanguages"/>
    <part name="EditionType" type="xs:int"/>
    </message>
    <message name="GetParameters1Response">
    <part name="Params" type="ns2:TWSTransactionParams"/>
    <part name="Error" type="xs:string"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <message name="ExecuteTransaction2Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="TransactionId" type="xs:int"/>
    <part name="Params" type="ns2:TWSTransactionExecuteParamArray"/>
    <part name="Error" type="xs:string"/>
    <part name="LanguageId" type="ns1:TApLanguages"/>
    <part name="EditionType" type="xs:int"/>
    <part name="IntegrationMode" type="xs:int"/>
    <part name="Scope" type="ns3:TIntegerDynArray"/>
    <part name="KeyId" type="xs:int"/>
    </message>
    <message name="ExecuteTransaction2Response">
    <part name="Error" type="xs:string"/>
    <part name="KeyId" type="xs:int"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <message name="ExecuteTransactions3Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="Lote" type="xs:int"/>
    <part name="Error" type="xs:string"/>
    <part name="Transactions" type="ns2:TWSTransactionToExecuteArray"/>
    </message>
    <message name="ExecuteTransactions3Response">
    <part name="Error" type="xs:string"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <message name="GetQueryParameters4Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="QueryId" type="xs:int"/>
    <part name="Params" type="ns2:TWSQueryParams"/>
    <part name="Error" type="xs:string"/>
    <part name="LanguageId" type="ns1:TApLanguages"/>
    </message>
    <message name="GetQueryParameters4Response">
    <part name="Params" type="ns2:TWSQueryParams"/>
    <part name="Error" type="xs:string"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <message name="QueryExecute5Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="QueryId" type="xs:int"/>
    <part name="Params" type="ns2:TWSQueryExecuteParamArray"/>
    <part name="Error" type="xs:string"/>
    <part name="Results" type="ns2:TWSQueryExecuteResults"/>
    <part name="LanguageId" type="ns1:TApLanguages"/>
    </message>
    <message name="QueryExecute5Response">
    <part name="Error" type="xs:string"/>
    <part name="Results" type="ns2:TWSQueryExecuteResults"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <portType name="IApWebServices">
    <operation name="GetTransactions">
    <input message="tns:GetTransactions0Request"/>
    <output message="tns:GetTransactions0Response"/>
    </operation>
    <operation name="GetParameters">
    <input message="tns:GetParameters1Request"/>
    <output message="tns:GetParameters1Response"/>
    </operation>
    <operation name="ExecuteTransaction">
    <input message="tns:ExecuteTransaction2Request"/>
    <output message="tns:ExecuteTransaction2Response"/>
    </operation>
    <operation name="ExecuteTransactions">
    <input message="tns:ExecuteTransactions3Request"/>
    <output message="tns:ExecuteTransactions3Response"/>
    </operation>
    <operation name="GetQueryParameters">
    <input message="tns:GetQueryParameters4Request"/>
    <output message="tns:GetQueryParameters4Response"/>
    </operation>
    <operation name="QueryExecute">
    <input message="tns:QueryExecute5Request"/>
    <output message="tns:QueryExecute5Response"/>
    </operation>
    </portType>
    <binding name="IApWebServicesbinding" type="tns:IApWebServices">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="GetTransactions">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#GetTransactions"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    <operation name="GetParameters">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#GetParameters"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    <operation name="ExecuteTransaction">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#ExecuteTransaction"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    <operation name="ExecuteTransactions">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#ExecuteTransactions"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    <operation name="GetQueryParameters">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#GetQueryParameters"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    <operation name="QueryExecute">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#QueryExecute"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    </binding>
    <service name="IApWebServicesservice">
    <port name="IApWebServicesPort" binding="tns:IApWebServicesbinding">
    <soap:address location="http://200.189.164.78:7002/soap/IApWebServices"/>
    </port>
    </service>
    </definitions>
    When I try to send a message to this WebService I can´t sending type TWSTransactionParams.
    Here is my code:
    <assign name="TEST">
    <bpelx:append>
    <bpelx:from expression="'******'"/>
    <bpelx:to variable="EnviarWebserviceApData_InputVariable"
    part="UserName"/>
    </bpelx:append>
    <bpelx:append>
    <bpelx:from expression="'*****'"/>
    <bpelx:to variable="EnviarWebserviceApData_InputVariable"
    part="Pass"/>
    </bpelx:append>
    <bpelx:append>
    <bpelx:from expression="'29902'"/>
    <bpelx:to variable="EnviarWebserviceApData_InputVariable"
    part="TransactionId"/>
    </bpelx:append>
    <bpelx:append>
    <bpelx:from expression="'alPortuguese'"/>
    <bpelx:to variable="EnviarWebserviceApData_InputVariable"
    part="LanguageId"/>
    </bpelx:append>
    <bpelx:append>
    <bpelx:from expression="0"/>
    <bpelx:to variable="EnviarWebserviceApData_InputVariable"
    part="EditionType"/>
    </bpelx:append>
    <bpelx:append>
    <bpelx:from expression="0"/>
    <bpelx:to variable="EnviarWebserviceApData_InputVariable"
    part="IntegrationMode"/>
    </bpelx:append>
    <bpelx:append>
    <bpelx:from expression="0"/>
    <bpelx:to variable="EnviarWebserviceApData_InputVariable"
    part="KeyId"/>
    </bpelx:append>
    </assign>
    But, I don´t know how I have to pass the Array. I found this documetation on oracle website
    \http://download.oracle.com/docs/cd/E15523_01/integration.1111/e10224/bp_manipdoc.htm#sthref550
    But i can´t construct the XML message more manually.
    Any help in this regard is highly appreciated.

    Yes, you are rigth. I read this documentation to.
    I can do a workaroud and the process BPEL can understand. I will place my WSDL below and what i changed:
    WSDL:
    <?xml version="1.0" encoding="utf-8"?>
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    name="IApWebServicesservice" targetNamespace="http://tempuri.org/"
    xmlns:tns="http://tempuri.org/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:ns1="urn:unApTypes" xmlns:ns2="urn:unApWebServicesInterface"
    xmlns:ns3="http://www.borland.com/namespaces/Types">
    <types>
    <xs:schema targetNamespace="urn:unApTypes" xmlns="urn:unApTypes">
    <xs:simpleType name="TApLanguages">
    <xs:restriction base="xs:string">
    <xs:enumeration value="alPortuguese"/>
    <xs:enumeration value="alEnglish"/>
    <xs:enumeration value="alSpanish"/>
    <xs:enumeration value="alPortuguesePT"/>
    <xs:enumeration value="alDeutsch"/>
    <xs:enumeration value="alItalian"/>
    <xs:enumeration value="alFrench"/>
    <xs:enumeration value="alRussian"/>
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="TApFieldType">
    <xs:restriction base="xs:string">
    <xs:enumeration value="aftNotDefined"/>
    <xs:enumeration value="aftIntAutoInc"/>
    <xs:enumeration value="aftIntAuto"/>
    <xs:enumeration value="aftInteger"/>
    <xs:enumeration value="aftByteAuto"/>
    <xs:enumeration value="aftByte"/>
    <xs:enumeration value="aftWordAuto"/>
    <xs:enumeration value="aftWord"/>
    <xs:enumeration value="aftFloat"/>
    <xs:enumeration value="aftString"/>
    <xs:enumeration value="aftDate"/>
    <xs:enumeration value="aftTime"/>
    <xs:enumeration value="aftBoolean"/>
    <xs:enumeration value="aftBlob"/>
    <xs:enumeration value="aftImage"/>
    <xs:enumeration value="aftRichText"/>
    <xs:enumeration value="aftDateTime"/>
    <xs:enumeration value="aftMemo"/>
    <xs:enumeration value="aftFile"/>
    <xs:enumeration value="aftCurrency"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:schema>
    <xs:schema targetNamespace="urn:unApWebServicesInterface"
    xmlns="urn:unApWebServicesInterface">
    <xs:import namespace="http://www.borland.com/namespaces/Types"/>
    <xs:complexType name="TWSTransactionParams">
    <xs:sequence>
    <xs:element name="Fields" type="ns2:TWSTransactionHeaderFieldsArray"/>
    <xs:element name="Reserved" type="ns2:TWSTransactionParams"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSTransactionHeaderFieldsArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSTransactionHeaderFields[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSTransactionHeaderFields">
    <xs:sequence>
    <xs:element name="Reserved" type="ns2:TWSTransactionHeaderFields"/>
    <xs:element name="FieldCaption" type="xs:string"/>
    <xs:element name="FieldId" type="xs:int"/>
    <xs:element name="GroupId" type="xs:int"/>
    <xs:element name="GroupCaption" type="xs:string"/>
    <xs:element name="Required" type="xs:boolean"/>
    <xs:element name="DataType" type="xs:int"/>
    <xs:element name="Mask" type="xs:string"/>
    <xs:element name="FieldLength" type="xs:int"/>
    <xs:element name="LookupName" type="xs:string"/>
    <xs:element name="PrimaryKey" type="xs:int"/>
    <xs:element name="Language" type="xs:string"/>
    <xs:element name="ReadOnly" type="xs:boolean"/>
    <xs:element name="LiteralMicroHelp" type="xs:string"/>
    <xs:element name="ExceptReadOnlyTransactions" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSTransactionExecuteParamArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSTransactionExecuteParam[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSTransactionExecuteParam">
    <xs:sequence>
    <xs:element name="Id" type="xs:int"/>
    <xs:element name="Value" type="xs:anyType"/>
    <xs:element name="Reserved" type="ns1:TApFieldType"/>
    <xs:element name="FieldName" type="xs:string"/>
    <xs:element name="ClientFieldName" type="xs:string"/>
    <xs:element name="FieldSize" type="xs:int"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSTransactionToExecuteArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSTransactionToExecute[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSTransactionToExecute">
    <xs:sequence>
    <xs:element name="TransactionId" type="xs:int"/>
    <xs:element name="Params" type="ns2:TWSTransactionExecuteParamArray"/>
    <xs:element name="LanguageId" type="ns1:TApLanguages"/>
    <xs:element name="EditionType" type="xs:int"/>
    <xs:element name="IntegrationMode" type="xs:int"/>
    <xs:element name="Scope" type="ns3:TIntegerDynArray"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryParams">
    <xs:sequence>
    <xs:element name="Reserved" type="ns2:TWSQueryParams"/>
    <xs:element name="Fields" type="ns2:TWSQueryHeaderFieldsArray"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryHeaderFieldsArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSQueryHeaderFields[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSQueryHeaderFields">
    <xs:sequence>
    <xs:element name="Reserved" type="ns2:TWSQueryHeaderFields"/>
    <xs:element name="FieldCaption" type="xs:string"/>
    <xs:element name="ParamType" type="xs:int"/>
    <xs:element name="ParamName" type="xs:string"/>
    <xs:element name="Mask" type="xs:string"/>
    <xs:element name="DefaultValue" type="xs:anyType"/>
    <xs:element name="Required" type="xs:boolean"/>
    <xs:element name="GroupId" type="xs:int"/>
    <xs:element name="GroupCaption" type="xs:string"/>
    <xs:element name="Hint" type="xs:string"/>
    <xs:element name="FindInList" type="xs:boolean"/>
    <xs:element name="UseValueList" type="xs:boolean"/>
    <xs:element name="ValueList" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteParamArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSQueryExecuteParam[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteParam">
    <xs:sequence>
    <xs:element name="Value" type="xs:string"/>
    <xs:element name="Reserved" type="ns1:TApFieldType"/>
    <xs:element name="ParamName" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteResults">
    <xs:sequence>
    <xs:element name="Fields" type="ns2:TWSQueryExecuteFieldsArray"/>
    <xs:element name="Records" type="ns2:TWSQueryExecuteRecordsArray"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteFieldsArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSQueryExecuteField[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteRecordsArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSQueryExecuteRecord[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteField">
    <xs:sequence>
    <xs:element name="FieldName" type="xs:string"/>
    <xs:element name="Reserved" type="ns1:TApFieldType"/>
    <xs:element name="FieldType" type="xs:int"/>
    <xs:element name="Mask" type="xs:string"/>
    <xs:element name="Length" type="xs:int"/>
    <xs:element name="Decimals" type="xs:int"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteRecord">
    <xs:sequence>
    <xs:element name="Values" type="ns2:TWSQueryExecuteValuesArray"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteValuesArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSQueryExecuteValue[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TWSQueryExecuteValue">
    <xs:sequence>
    <xs:element name="Value" type="xs:string"/>
    <xs:element name="Reserved" type="ns1:TApFieldType"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    <xs:schema targetNamespace="http://www.borland.com/namespaces/Types"
    xmlns="http://www.borland.com/namespaces/Types">
    <xs:import namespace="urn:unApTypes"/>
    <xs:complexType name="TIntegerDynArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType" n1:arrayType="xs:int[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    </xs:schema>
    </types>
    <message name="GetTransactions0Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="Transactions" type="xs:string"/>
    <part name="Error" type="xs:string"/>
    <part name="LanguageId" type="ns1:TApLanguages"/>
    </message>
    <message name="GetTransactions0Response">
    <part name="Transactions" type="xs:string"/>
    <part name="Error" type="xs:string"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <message name="GetParameters1Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="TransactionId" type="xs:int"/>
    <part name="Params" type="ns2:TWSTransactionParams"/>
    <part name="Error" type="xs:string"/>
    <part name="LanguageId" type="ns1:TApLanguages"/>
    <part name="EditionType" type="xs:int"/>
    </message>
    <message name="GetParameters1Response">
    <part name="Params" type="ns2:TWSTransactionParams"/>
    <part name="Error" type="xs:string"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <message name="ExecuteTransaction2Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="TransactionId" type="xs:int"/>
    <part name="Params" type="ns2:TWSTransactionExecuteParamArray"/>
    <part name="Error" type="xs:string"/>
    <part name="LanguageId" type="ns1:TApLanguages"/>
    <part name="EditionType" type="xs:int"/>
    <part name="IntegrationMode" type="xs:int"/>
    <part name="Scope" type="ns3:TIntegerDynArray"/>
    <part name="KeyId" type="xs:int"/>
    </message>
    <message name="ExecuteTransaction2Response">
    <part name="Error" type="xs:string"/>
    <part name="KeyId" type="xs:int"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <message name="ExecuteTransactions3Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="Lote" type="xs:int"/>
    <part name="Error" type="xs:string"/>
    <part name="Transactions" type="ns2:TWSTransactionToExecuteArray"/>
    </message>
    <message name="ExecuteTransactions3Response">
    <part name="Error" type="xs:string"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <message name="GetQueryParameters4Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="QueryId" type="xs:int"/>
    <part name="Params" type="ns2:TWSQueryParams"/>
    <part name="Error" type="xs:string"/>
    <part name="LanguageId" type="ns1:TApLanguages"/>
    </message>
    <message name="GetQueryParameters4Response">
    <part name="Params" type="ns2:TWSQueryParams"/>
    <part name="Error" type="xs:string"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <message name="QueryExecute5Request">
    <part name="UserName" type="xs:string"/>
    <part name="Pass" type="xs:string"/>
    <part name="QueryId" type="xs:int"/>
    <part name="Params" type="ns2:TWSQueryExecuteParamArray"/>
    <part name="Error" type="xs:string"/>
    <part name="Results" type="ns2:TWSQueryExecuteResults"/>
    <part name="LanguageId" type="ns1:TApLanguages"/>
    </message>
    <message name="QueryExecute5Response">
    <part name="Error" type="xs:string"/>
    <part name="Results" type="ns2:TWSQueryExecuteResults"/>
    <part name="return" type="xs:boolean"/>
    </message>
    <portType name="IApWebServices">
    <operation name="GetTransactions">
    <input message="tns:GetTransactions0Request"/>
    <output message="tns:GetTransactions0Response"/>
    </operation>
    <operation name="GetParameters">
    <input message="tns:GetParameters1Request"/>
    <output message="tns:GetParameters1Response"/>
    </operation>
    <operation name="ExecuteTransaction">
    <input message="tns:ExecuteTransaction2Request"/>
    <output message="tns:ExecuteTransaction2Response"/>
    </operation>
    <operation name="ExecuteTransactions">
    <input message="tns:ExecuteTransactions3Request"/>
    <output message="tns:ExecuteTransactions3Response"/>
    </operation>
    <operation name="GetQueryParameters">
    <input message="tns:GetQueryParameters4Request"/>
    <output message="tns:GetQueryParameters4Response"/>
    </operation>
    <operation name="QueryExecute">
    <input message="tns:QueryExecute5Request"/>
    <output message="tns:QueryExecute5Response"/>
    </operation>
    </portType>
    <binding name="IApWebServicesbinding" type="tns:IApWebServices">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="GetTransactions">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#GetTransactions"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    <operation name="GetParameters">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#GetParameters"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    <operation name="ExecuteTransaction">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#ExecuteTransaction"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    <operation name="ExecuteTransactions">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#ExecuteTransactions"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    <operation name="GetQueryParameters">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#GetQueryParameters"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    <operation name="QueryExecute">
    <soap:operation soapAction="urn:unApWebServicesInterface-IApWebServices#QueryExecute"
    style="rpc"/>
    <input>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </input>
    <output>
    <soap:body use="encoded"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:unApWebServicesInterface-IApWebServices"/>
    </output>
    </operation>
    </binding>
    <service name="IApWebServicesservice">
    <port name="IApWebServicesPort" binding="tns:IApWebServicesbinding">
    <soap:address location="http://200.189.164.78:7002/soap/IApWebServices"/>
    </port>
    </service>
    </definitions>
    I changed this
    Original:
    <xs:complexType name="TWSTransactionExecuteParamArray">
    <xs:complexContent>
    <xs:restriction base="soapenc:Array">
    <xs:sequence/>
    <xs:attribute ref="soapenc:arrayType"
    n1:arrayType="ns2:TWSTransactionExecuteParam[]"
    xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
    </xs:restriction>
    </xs:complexContent>
    </xs:complexType>
    Changed:
    <xs:complexType name="TWSTransactionExecuteParamArray">
    <xs:sequence>
    <xs:element type = "ns2:TWSTransactionExecuteParam" name = "TWSTransactionExecuteParam" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </xs:sequence>
    </xs:complexType>
    In this way, I can invoking the WebServise with soapenc:arrayType.
    Thaks for anwsering.

  • Sending emails with both body and attachment to multiple recipients

    I have a requirement to send email with body and attachment to multiple recipients.
    Body of the email is a standard text. It is a proxy-to-mail scenario.
    Here is what I've done: (I'm using PI 7.11)
    One mapping from Source to Target structure (format of the attachment text file)
    Second mapping from Target Structure to Mail Package format.
    In the second mapping I'm concatenating the output of first step into "Content" of the Mail Package.
    "XIPAYLOAD" is the message protocol used.
    The "Keep attachments" option in the Mail adapter allows only to send "Content" as attachment or as body of the email.
    How to send an email with both content and text?
    The other problem is even with using ASMA, I can't send email to multiple recipients. I can only do CC and TO for 1 person each - a total of 2. Although I can resolve this by creating mailing lists, it is better if this can be addressed in PI.
    Thanks for any input you can provide!
    Edited by: crazylad on Jan 18, 2012 3:39 PM

    Thank you for your response Mikael.
    For the first question, I was able to find the solution in the following blog:
    XI Mail Adapter : Dynamically building attachment and message body content using a simple UDF
    (I just needed to search with the right set of key words )
    The key is to set the "Content Encoding" as "None" in the mail adapter. If this is not done, the mail will be sent with an attachment - untitled.bin containing both the mail body and the attachment text. Also, don't forget to check the "Keep Attachments" checkbox in the mail adapter.
    Multiple recipients could be added by separating the email IDs with a Comma. I have used ASMA to set the recipients.

  • Unable to create Instance with Object Editor and Attachment Pattern

    Hi Experts,
    I created a simple entity service with some attributes and a document reference.
    I also configured an object editor pattern and assigned a attachment pattern. The created object editor works as long as I don't attach a file. But if I attach a file and want to save it I get an error message "cannot create"
    In the default log.trc I have some entries
    Cannot read associated instance with MOF ID 105D8E0C4F02D45AFFD5B9D6A09EFB7A of MOF Layer 2 for (6DC24B80F6004CDBF4FA6C560AEDD33C,<null>)
    and
    refPackageM1(com.sap.ip.bi.sdk.dac.olap.query) failed RepositoryDBMemory. Using generic one.
    I configured the j2ee engine according the tutorial "Integrating KM with CAF UI Patterns"
    So what is wrong?
    Best regards Manuel

    Hi,
    From the stacktrace I assume that the following happens (please correct me, if I'm wrong):
    <b>*</b> Some time based event mechanism sends an event to your custom event handler code. That code is execute in some system context.
    <b>*</b> Your handler uses the RF API to create a collection. All this is perfectly OK. Here my assumptions end, the next steps are solid facts.
    <b>*</b> Within the RF all property filters are informed that a resource is about to be created. One of the filters is trying to obtain a lock from a system provided Locking Service.
    <b>*</b> That service refuses to grant the lock, telling that system users are not allowed to do so.
    Most proably you cannot do anything to solve this problem by yourself. When I ran into the same Exception once, I could avoid to have my code run in a system thread. Well you might try to do the same.
    Otherwise please open a customer message and complain about the restiction in the locking behaviour.
    Best regards,
    Michael

  • How to make a original frame same with Comment List and Attachment?

    How can I make original frame looking like Comment List?
    I'm using Windows XP and Adobe Acrobat 9 Pro and Acrobat 9 SDK.
    I want to make a new plug-in that use a new frame.
    The new frame is looking like Comment List and Attachment.
    I want to show my original list and input form to the frame.
    It is close to Comment List frame, but I want to show original list.
    Additionally, I want to add new button upper of Comments Button on Navigation Button Panel.
    Can I have any help?

    There is no support in the SDK for adding your own panels.
    There is no support for modifying the existing panels.

  • File to Mail with body content and attachment

    Hi Experts,
    Here my scenario;
    I receive an xml file, this xml file content need to be mapped to body of the eMail as well formatted email. and also the original xml file which I receive need to be sent as attachment.
    I searched in sdn, help and checked many blogs..
    /people/michal.krawczyk2/blog/2005/03/07/mail-adapter-xi--how-to-implement-dynamic-mail-address
    /people/prasad.ulagappan2/blog/2005/06/07/mail-adapter-scenarios-150-sap-exchange-infrastructure
    If I want to send email with message in body then I need to select message protocol XIPAYLOAD and use mail package, but Iam not able to send the original file as attachment.
    How could I achieve both??
    please help.
    If not clear please let me know, I will explain in detail.
    rgds
    skr

    Hi SKR,
    Check the below blogs, this will throw some light on your issue.
    /people/michal.krawczyk2/blog/2005/11/23/xi-html-e-mails-from-the-receiver-mail-adapter
    /people/community.user/blog/2006/09/08/email-report-as-attachment-excelword
    /people/michal.krawczyk2/blog/2006/02/23/xi-dynamic-name-in-the-mail-attachment--pseudo-variable-substitution
    Thanks,

  • SharePoint Designer 2013 with SOAP DataSource and Windows Authentication

    Hello
    What do I need to do to create a SOAP Data Source in SharePoint Designer 2013 with Windows Authentication?
    I am trying to display a list from another subsite in my Web Part Page using a DataView web part.
    My environment is set up to use Claims with Kerberos.
    Is there a guide available that talks about configuring this or troubleshooting this? What should I check?
    Thanks for any suggestions.
    Yoshi

    Hi,
    According to your post, my understanding is that you wanted to create a SOAP Data Source in SharePoint Designer 2013.
    Please refer to the official article related, although it is about the SharePoint Designer 2010, it still works for SharePoint Designer 2013.
    http://office.microsoft.com/en-in/sharepoint-designer-help/add-a-soap-service-as-a-data-source-HA010355752.aspx
    More information:
    http://social.technet.microsoft.com/Forums/en-US/20e34a68-fa78-4450-9744-45f9e3ff26b5/sharepoint-designer-soap-and-rest-datasource-failure?forum=sharepointcustomizationprevious
    http://sharepointdiva.wordpress.com/2012/03/19/create-cross-site-data-source/
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • Send a mail with a body and attachment

    Hi guys!!!!
    I have a RFC -> XI -> Mail Scenario!
    I'm able to send text in the body of the mail. I'm able to send text as an attachment. But I'd like to send both (text in the body and other text as an attachment). How can I do this?
    thanks in advance
    Julio

    First, I'd like to thank all the replies! And Jagesh, I solved my problem reading the thread you told me.
    I created a message as follow:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns:Mail xmlns:ns="http://sap.com/xi/XI/Mail/30">
         <Subject>test</Subject>
         <From>test_source @ abc.com</From>
         <To>test_target @ abc.com</To>
         <Content_Type>multipart/mixed; boundary="AaBb--984dfgeSSd3532"</Content_Type>
         <Content>*AaBb984dfgeSSd3532*
    Content-Type: text/plain
    Hello, this is sample data.
    *AaBb984dfgeSSd3532*
    Content-Type: text/plain;name="CSV_data.csv"
    abc
    </Content>
    </ns:Mail>
    In addittion to this, I configured Mail channel as follow:
    Content encondig = none
    Keep Attachments = false

  • Is soap binding Document type working in Flex Builder 4?

    Hi there,
    I've spent three days trying to make a simple web service call with <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> work.
    This works fine in FB3 since we're using tons of web service with document style...
    I know I'm using a beta so things are being solved in FB4 final version, but no one out there is saying that, passing an object as a parameter in a web service calls with document soap bindings just doesn't work!
    Flash Builder generated stubs will create an empty xml in the soap body! Passing strings and other primitive types seems to work, but in some circumstances you have  to pass objects to the backend!
    If someone is having this problem you simply have to change the backend soap binding style from "document" to "rpc" and all will work...
    Is there an official Adobe position about this?
    Regards,
    Giorgio Grillini
    P.S.: I'm using Flash Builder beta 2 with sdk 4 build 10485. Backend are Java web services deployed in jboss.

    Can you post sample code that shows this issue?
    BaBo,

  • WSRM Adapter replaced with soap in PO7.4. Getting error "Response message contains an errorXIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error"

    Hello All,
    We have scenario proxy->pi->webservice. In older versions of PI system they used wsrm adapter at receiver side and it's working fine.
    Receiver interface is asynchronous. So no response structute is present and receiver service is business component(since receiver is a third party).
    During migration, we have replaced the receiver adapter with SOAP adapter and used message protocol as SOAP 1.1 but the message is failing and in communication channel it is showing error "Response message contains an errorXIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error". In this case the receiver interface is stateless xi 3.0 compatible(re using the old), after changing it to just stateless also issue persists.
    In target url field if i prefix the url with "http" then above mentioned error is occurring otherwise if i use the hostname:port/path.. then it is giving error
    "soap: Call failed: com.sap.aii.af.sdk.xi.srt.BubbleException: Unsupported protocol". So maintaing the url as http://hostname:port/pat.....
    As in old channel wsrm channel there is no userid and password, i haven't given any userid/pwd in receiver channel.
    used the bean sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean with  parameters
    Module Key  =  soap
      Parameter Name  =  noSOAPMakeSysErrFromResponseFault
    Parameter Value  =  false
    and
    xmbws.No SOAPIgnoreStatus = true
    but not successful.
    Please help me. I got stcuk here.

    Hello Jannus,
    The connectivity is working fine. Network team has confirmed it. I doubt that any strucutre(header) difference might be present in message when sending with wsrm adapter compared to sending with soap adapter.
    Please let me know the exact difference between soap and wsrm functionality in receiving end.
    By considering the structure issue, i have checked the "do not use soap envelope" check box, then i got error "Response message contains an errorXIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 415 Unsupported Media Type"
    Then i used message transform bean, but not successful.
    Regards,
    Ch.Venkat.

  • Body and Attachment both in a mail

    Hi,
    I am working to send a mail from XI. My present scenarion is like this: I am using xslt mapping to generate code for a html page using source and using dumy target. Now I am using module adapter "localejbs/AF_Modules/MessageTransformBean" for getting attachments. I am able to get the attachment if i check "Keep Attachment" check box or else I am able to see the html pagein body of mail.
    Here I am getting either body or attchment. Is there any way to get both body and attachment?
    Thanks.

    I am not using any adapter module method,
    I am trying to use these statements:
    <b>3.2.4 Sending a Mail with Attachment</b>
    If you want to send a mail with a body and attachment, or with several attachments, the
    message sender has to provide an XI message with additional attachments. For each
    additional payload of the XI message, the mail adapter creates an attachment for the
    mail. To enable this feature, you select the Keep Attachments checkbox when
    configuring the mail adapter. By default, the payload of the message is also sent as an
    -8-
    attachment. If you do not want the payload to be sent as an attachment, set
    ContentDisposition to inline.
    If you want to give each attachment a certain name, you can use the swap module. The
    swap module changes the main payload.
    -- This is not talking about any methods to be implemented.
    Thanks,

  • Soap binding in wsdl and weblogic workshop

    Dear newsgroup,
    I'm trying to develop a webservice with workshop 8.1. In my case, I already have
    a "WSDL" file for the service I want to develop.
    So I created a "Schema Project", imported the wsdl file in it (workshop automatically
    compiled it !!) and generated a webservice from it. I then created a webservice
    project and moved the generated "jws" file in the webservice project.
    So far with no problem.
    Now I opened the "jws" file and saw there is this error:
    "ERROR: The binding for <Op name> does not declare one part"
    "SUGGESTION: A document literal binding must have at most one part. Make sure
    you have a WSDL that declares just one part for each message with a document literal
    binding."
    Indeed my wsdl has messages with more than one part. It looks like this:
    <wsdl:message name="SubmitSMSIn">
    <wsdl:part name="GNSHeaderHeader" element="fwk:GNSHeader">
    </wsdl:part>
    <wsdl:part name="GNSCredentialsHeader" element="fwk:GNSCredentials">
    </wsdl:part>
    <wsdl:part name="SubmitSMSRequestBody" element="sms:SubmitSMSRequest">
    </wsdl:part>
    </wsdl:message>
    And corresponding binding looks like this:
    <wsdl:binding name="smsBinding" type="smsPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"
    />
    <wsdl:operation name="SubmitSMS">
    <soap:operation style="document" soapAction="http://vodafone.net/ns/gns/sms/SubmitSMS">
    </soap:operation>
    <wsdl:input name="SubmitSMSInput">
    <soap:body use="literal" parts="SubmitSMSRequestBody">
    </soap:body>
    <soap:header use="literal" message="SubmitSMSIn" part="GNSHeaderHeader"
    wsdl:required="true">
    </soap:header>
    <soap:header use="literal" message="SubmitSMSIn" part="GNSCredentialsHeader"
    wsdl:required="true">
    </soap:header>
    </wsdl:input>
    <wsdl:output name="SubmitSMSOutput">
    <soap:body use="literal" parts="SubmitSMSResponseBody">
    </soap:body>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    MY QUESTION: Is this a workshop webservice limitation? I thought after reading
    wsdl specification,(URL: http://www.w3.org/TR/wsdl.html#_soap-b, example 3), that
    this should be possible.
    What am I doing wrong.
    Thanks for any help.
    -- Asit Bhattacharya

    Hi Asit,
    Personally, I find dealing with the WSDL/SOAP language a humbling
    experience and welcome the day that their syntax is completely buried
    with the use of tools; to that end, I would recommend that you use the
    WS-I test tools to validate/confirm all of the Rxxx issues.
    Regards,
    Bruce
    Asit Bhattacharya wrote:
    >
    Hi Bruce,
    Yes, you are right. "R2210" indeed does say that. Interestingly, it starts like
    this:
    "If a document-literal binding in a DESCRIPTION does not specify the parts attribute
    on a soapbind:body element, the corresponding abstract wsdl:message MUST define
    zero or one wsdl:parts."
    Please NOTE the "if" part of the recommendation. As I understand, it is saying
    when "parts" attribute is not specified in "soapbind:body" element then corresponding
    "wsdl:message" is required to define zero or one "wsdl:parts".
    In my original wsdl file example, I do have "parts" attribute specified for the
    "soapbind:body" element. To me that that should be valid. What do you say.
    Sincerely,
    Asit Bhattacharya.
    Bruce Stephens <[email protected]> wrote:
    Hi Asit,
    R2210 says: ...wsdl:message MUST define zero or one wsdl:parts.
    I might suggest that you try your WSDL with the WS-I test tools. They
    have a mode to consume and analyze WSDL that will give you a detailed
    response correlated with the basic profile.
    Regards,
    Bruce
    Asit Bhattacharya wrote:
    Hi Bruce,
    Thanks for your reply,
    WS-I Basic Profile "R2201" says the following:
    "A document-literal binding in a DESCRIPTION MUST, in each of its soapbind:body
    element(s), have at most one part listed in the parts attribute, ifthe parts
    attribute is specified."
    It does not restrict a meesage (that is used in doc/lit soap binding)to have
    multiple parts. If you look in my example wsdl (specially the soap:bindingportion),
    you'll see I'm only using one part for soap:body binding.
    Could you please explain why do you think that the SUGGESTION is valid?
    Thanks for your help.
    Regards.
    Asit Bhattacharya.
    Bruce Stephens <[email protected]> wrote:
    Hello,
    The suggestion is valid. You might want to reference the extensive
    work
    on this issue by the WS-I folks [1], see R2201 and following.
    Regards,
    Bruce
    [1]
    http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html
    Asit Bhattacharya wrote:
    Dear newsgroup,
    I'm trying to develop a webservice with workshop 8.1. In my case,
    I
    already have
    a "WSDL" file for the service I want to develop.
    So I created a "Schema Project", imported the wsdl file in it (workshopautomatically
    compiled it !!) and generated a webservice from it. I then createda webservice
    project and moved the generated "jws" file in the webservice project.
    So far with no problem.
    Now I opened the "jws" file and saw there is this error:
    "ERROR: The binding for <Op name> does not declare one part"
    "SUGGESTION: A document literal binding must have at most one part.Make sure
    you have a WSDL that declares just one part for each message with
    a
    document literal
    binding."
    Indeed my wsdl has messages with more than one part. It looks likethis:
    <wsdl:message name="SubmitSMSIn">
    <wsdl:part name="GNSHeaderHeader" element="fwk:GNSHeader">
    </wsdl:part>
    <wsdl:part name="GNSCredentialsHeader" element="fwk:GNSCredentials">
    </wsdl:part>
    <wsdl:part name="SubmitSMSRequestBody" element="sms:SubmitSMSRequest">
    </wsdl:part>
    </wsdl:message>
    And corresponding binding looks like this:
    <wsdl:binding name="smsBinding" type="smsPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"
    />
    <wsdl:operation name="SubmitSMS">
    <soap:operation style="document" soapAction="http://vodafone.net/ns/gns/sms/SubmitSMS">
    </soap:operation>
    <wsdl:input name="SubmitSMSInput">
    <soap:body use="literal" parts="SubmitSMSRequestBody">
    </soap:body>
    <soap:header use="literal" message="SubmitSMSIn"part="GNSHeaderHeader"
    wsdl:required="true">
    </soap:header>
    <soap:header use="literal" message="SubmitSMSIn"part="GNSCredentialsHeader"
    wsdl:required="true">
    </soap:header>
    </wsdl:input>
    <wsdl:output name="SubmitSMSOutput">
    <soap:body use="literal" parts="SubmitSMSResponseBody">
    </soap:body>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    MY QUESTION: Is this a workshop webservice limitation? I thought
    after
    reading
    wsdl specification,(URL: http://www.w3.org/TR/wsdl.html#_soap-b,
    example
    3), that
    this should be possible.
    What am I doing wrong.
    Thanks for any help.
    -- Asit Bhattacharya

  • SOAP Receiver: Problem with SOAP Multipart Request (wsdl:part)

    Dear PI experts,
    our partner provided a WSDL with the following definition (I modified it to keep it simple and showing the principles)
       <wsdl:message name="nameOfMessage">
          <wsdl:part element="part1" name="header" />
          <wsdl:part element="part2" name="parameters" />
          <wsdl:part element="part3" name="attachment" />
       </wsdl:message>
    After importing this WSDL in ESR, I found the following definition on tab 'WSDL':
             <xsd:complexType name="nameOfMessage">
                <xsd:sequence>
                   <xsd:element name="header" type="authentication" />
                   <xsd:element name="parameters" type="businessDatal" />
                   <xsd:element name="attachment" type="Binary" />
                </xsd:sequence>
             </xsd:complexType>
    When creating the request message in PI it looks as follows:
    <nameOfMessage>
    <header/>
    <parameters/>
    <attachment/>
    </nameOfMessage>
    However our WebService provider expects the following:
    <soap:env>
    <authentication/>
    <parameters/>
    <attachment/>
    </soap:env>
    When using SoapUI and importing the WSDL the request message looks as expected by the web service provider and the part names are resolved.
    I could try to convert the request using XSLT but this does not seem to be a best practice approach.
    Do you have any advice on how to handle this issue?
    Thank you very much.

    Hi Florian,
    I modified some WS to be handled by another systems, and sometimes, when the SOAP adapter is involved, you send a Request to PI (that has NOT the same structure, than the declared in the MM) but it takes the req. anyway.
    Did you try sending a request?
      Juan.

  • SOAP adapter and WS with rpc/encoded

    Hi All,
    Does anyone know if and how the SAP XI 3.0 SOAP Adapter supports WebServices which expects XML messages in rpc/encoded.
    Cheers,
    FRank

    Hi Frank,
    I have the same issue and I got a reply from OSS:
      This problem is caused by the diversification of the WSDL binding
    styles.
      A Web service is described by a WSDL document. A WSDL binding
    describes how the service is bound to a messaging protocol, particularly
    the SOAP messaging protocol. A WSDL SOAP binding can be either an RPC
    style binding or a document style binding. A SOAP binding can also have
    an encoded use or a literal use. This gives us four style/use models:
    - RPC/encoded
    - RPC/literal
    - document/encoded(It will probably disappear from future versions of
    WSDL.)
    - document/literal
      RPC styled web services have serious interoperability problems. This
    is the reason that the rpc style is not in the basic profile
    specification of the web interoperability and also it has been
    deprecated in the current soap specification. For these reason, the
    integration directory does not currently support the RPC style! I would
    suggest you to use other document style web service provider if possible
    . It's the best way to solve this problem. But if you persist in using
    this RPC web service provider, we still have a workaround solution:
    you need to convert your RPC wsdl to a document styled wsdl and import
    it to  the directory and if necessary, you need to add some mapping to
    solve some RPC interoperability problems.
      In your case,
    1. The WSDL file you used is RPC style.
    2. The XI SOAP adapter doesn't support the RPC style. It only sends the
    document/literal SOAP message which can't be understand by your web
    service provider.
      One of the significant differences between the SOAP message of RPC
    style and that of the document style: the operation name is contained in
    the RPC style SOAP message but not in the document's.
      However, you can't solve this problem by simply specify a method
    name. What you should do is convert your RPC wsdl to a document styled
    wsdl. RPC turns out to be a subset of document/literal. This
    means for any given RPC WSDL, you can create a completely
    equivalent document/literal WSDL that would describe the same wire
    messages. Here are the steps for doing this (mostly schema element
    declarations).
    Solution:
    For each RPC operation:
    1. For each part in the input and output messages of that operation,
    declare a type with the contents described in step 2.
    2. Declare an element with the name of the part, the type referenced by
    type=". The element form must be unqualified.
    3. Declare a global element with the operation name and the namespace
    from soap:body/@namespace in the binding. Make the type of this element
    the one defined in step 1 for the input message.
    4. Declare a global element with the operation name and the word
    Response appended to it and the namespace from soap:body/@namespace in
    the binding. Make the type of this element the one defined in step 1 for
    the output message.
    5. Change the input message to contain one part and reference the
    element you declared in step 3.
    6. Change the output message to contain one part and reference the
    element you declared in step 4.
    7. Change the style to document in the binding.
      After that, import the new WSDL file to the integration directory. You
    will find the "method name" appears in the document style SOAP message.
    But actually it's the name of the input element which is the same as
    the name of the operation. It's just a little trick.
    Cheers Stefan

Maybe you are looking for