Data Type - Complex type

Hi experts!
I wonder if it's possible when creating a data type that the highest treelevel doesn't get Category "Complex Type".
I want it to be an Element instead. Because the receiving system which is terradata can't read the message with start root Complex Type.
The Idocs which I import into PI have the highest treelevel as Element.
Any ideas?
Regards

Hi Sonny,
I think i dint understand your query earlier but now its clear and hence the solution.
Actually your requirement is not correct.
By definition, A simple element is an XML element that can contain only text. It cannot contain any other elements or attributes.
http://www.w3schools.com/schema/schema_simple.asp
Whereas a complex element is an XML element that contains other elements and/or attribute
http://www.w3schools.com/schema/schema_complex.asp
And the root node of a DT in PI contains other elements so it has to be a complex type. This is the basic concept of XSD so even if you change the XSD type manually outside PI and import; the PI will give you an error while activating the DT.
Let us know if you have any other doubts!!

Similar Messages

  • Web Services Data Control - Complex type bindings

    I am calling a web services using the web service data control. The request object is a complex type. I observed that some data managed to bind but some failed to bind (empty value on the outbound SOAP payload). Specifically, all the "scalar" elements within the complex type managed to bind. For example the following element snippet within the overall complex data did not bind the value entered to the SOAP payload:
    <xsd:element minOccurs="0" name="zones">
    <xsd:annotation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element type="xsd:string" maxOccurs="unbounded" minOccurs="1" name="zone"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    While the following complex element within the same payload managed to bind value entered:
    <xsd:element minOccurs="0" name="orderBy">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element maxOccurs="unbounded" minOccurs="1" name="orderByItem">
    <xsd:complexType>
    <xsd:all>
    <xsd:element type="xsd:string" name="fieldName"/>
    <xsd:element type="xsd:boolean" name="ascending"/>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    Any bug report of this?
    Cheers
    Boon

    Hi Frank,
    Thanks for the response. I looked further into the problem. This is what I found.
    This is error message:
    javax.xml.ws.soap.SOAPFaultException: Foundation Engine Error: '' is an Invalid search zone. Valid zones include: 'id_object','name','published.name','comment_text','published.comment_text','note','document_extension','published.document_extension','physical_id','file_title','published.created_by','content'
    I turned on the trace and found the following message:
    [SRC_METHOD: parse] [225] No XML file /ObjectiveSearch/send/params/searchRequest/searchInput/searchInfo/zones/zones.xml for metaobject ObjectiveSearch.send.params.searchRequest.searchInput.searchInfo.zones.zones
    But when I looked into the model directory, I only able to find:
    H:\JDeveloper\AdvancedSearch\Model\adfmsrc\ObjectiveSearch\send\params\searchRequest\searchInput\searchInfo\zones\zone.xml
    It seems that WS data controller adapter is looking for zones/zones.xml. The wsdl specify zones with sub-elements(sequence) of zone (see wsdl below). The correct structure (zones/zone) is shown on the web service data control pallete and I can bind it to a JSF page.
    wsdl:
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wscoor="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" xmlns:tns="urn:objective.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xi="http://www.w3.org/2001/XInclude" targetNamespace="urn:objective.com" name="searchService">
    <wsp:Policy wsu:Id="WSSPortBindingInputPolicy">
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:TransportBinding>
    <wsp:Policy>
    <wsp:All>
    <sp:TransportToken>
    <wsp:Policy>
    <sp:HttpsToken RequireClientCertificate="false"/>
    </wsp:Policy>
    </sp:TransportToken>
    <sp:AlgorithmSuite>
    <wsp:Policy>
    <sp:Basic128/>
    </wsp:Policy>
    </sp:AlgorithmSuite>
    <sp:Layout>
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:Strict/>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    </sp:Layout>
    <sp:IncludeTimestamp/>
    </wsp:All>
    </wsp:Policy>
    </sp:TransportBinding>
    <sp:EndorsingSupportingTokens>
    <wsp:Policy>
    <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:WssX509V3Token10/>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    </sp:X509Token>
    </wsp:Policy>
    </sp:EndorsingSupportingTokens>
    <sp:SignedParts>
    <sp:Body/>
    </sp:SignedParts>
    <sp:SignedSupportingTokens>
    <wsp:Policy>
    <wsp:All>
    <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
    <wsp:Policy>
    <sp:NoPassword/>
    </wsp:Policy>
    </sp:UsernameToken>
    </wsp:All>
    </wsp:Policy>
    </sp:SignedSupportingTokens>
    <sp:Wss11>
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:MustSupportRefIssuerSerial/>
    <sp:MustSupportRefKeyIdentifier/>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    </sp:Wss11>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    <wsp:Policy wsu:Id="WSSPortBindingOutputPolicy">
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:EndorsingSupportingTokens>
    <wsp:Policy>
    <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Always">
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:WssX509V3Token10/>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    </sp:X509Token>
    </wsp:Policy>
    </sp:EndorsingSupportingTokens>
    <sp:SignedParts>
    <sp:Body/>
    </sp:SignedParts>
    <sp:Wss11>
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:MustSupportRefIssuerSerial/>
    <sp:MustSupportRefKeyIdentifier/>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    </sp:Wss11>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    <types>
    <xsd:schema targetNamespace="urn:objective.com">
    <xsd:simpleType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:objective.com:ecosys" name="logicalOperatorType">
    <xsd:annotation>
    <xsd:documentation>The type of join of the condition 'and' 'or'.
                   </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="and"/>
    <xsd:enumeration value="or"/>
    </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:objective.com:ecosys" name="expressionType">
    <xsd:sequence>
    <xsd:choice maxOccurs="unbounded" minOccurs="0">
    <xsd:element maxOccurs="unbounded" minOccurs="0" type="tns:expressionType" name="expression"/>
    <xsd:element maxOccurs="unbounded" minOccurs="0" type="tns:metadataCondition" name="condition"/>
    </xsd:choice>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:objective.com:ecosys" name="metadataCondition">
    <xsd:annotation>
    <xsd:documentation>
    </xsd:documentation>
    </xsd:annotation>
    <xsd:all>
    <xsd:element type="tns:logicalOperatorType" name="logicalOperator"/>
    <xsd:element type="xsd:string" name="field"/>
    <xsd:element type="xsd:string" name="operator"/>
    <xsd:element minOccurs="0" type="xsd:string" name="value"/>
    </xsd:all>
    </xsd:complexType>
    <xsd:element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:objective.com:ecosys" name="searchRequest">
    <xsd:annotation>
    <xsd:documentation>
    </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:all>
    <xsd:element name="searchInput">
    <xsd:complexType>
    <xsd:all>
    <xsd:element name="searchInfo">
    <xsd:complexType>
    <xsd:all>
    <xsd:element minOccurs="0" name="objectTypes">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element maxOccurs="unbounded" minOccurs="1" type="xsd:string" name="objectType">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:int" name="numResults">
    <xsd:annotation>
    <xsd:documentation>The maximum number of results to     search for.</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:boolean" name="showDeleted">
    <xsd:annotation>
    <xsd:documentation>Show deleted objects in the search results?</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="textQuery">
    <xsd:annotation>
    <xsd:documentation>A Verity text query, by default the     syntax of the query is "Internet" but can also be changed     to 'Verity' via the query syntax argument.</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element type="xsd:string" minOccurs="0" name="syntax">
    <xsd:annotation>
    <xsd:documentation>The syntax of the search query either
                                                                     'Internet' (default) or 'Verity'.</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" name="searchScopes">
    <xsd:annotation>
    <xsd:documentation>Search scopes to include in the
                                                                     search.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element type="xsd:string" maxOccurs="unbounded" minOccurs="1" name="searchScope"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element minOccurs="0" name="zones">
    <xsd:annotation>
    <xsd:documentation>Search zones to include in the
                                                                     search.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element type="xsd:string" maxOccurs="unbounded" minOccurs="1" name="zone"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element type="xsd:string" minOccurs="0" name="attributes">
    <xsd:annotation>
    <xsd:documentation>The attributes used when fetching
                                                                     results (these attributes are passed to inspect).
                                                                </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="behaviours">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="sections">
    <xsd:annotation>
    <xsd:documentation>     </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" name="orderBy">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element maxOccurs="unbounded" minOccurs="1" name="orderByItem">
    <xsd:complexType>
    <xsd:all>
    <xsd:element type="xsd:string" name="fieldName"/>
    <xsd:element type="xsd:boolean" name="ascending"/>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="searchRoot">
    <xsd:annotation>
    <xsd:documentation>The root container of the search, for a constrained search.</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="depth">
    <xsd:annotation>
    <xsd:documentation>The depth to traverse.</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    <xsd:element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:objective.com:ecosys" name="searchResult">
    <xsd:complexType>
    <xsd:all>
    <xsd:element type="xsd:string" name="resultId">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element type="xsd:int" name="numberOfResults">
    <xsd:annotation>
    <xsd:documentation>     </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element type="xsd:boolean" name="sorted">
    <xsd:annotation>
    <xsd:documentation>     </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="sortError">
    <xsd:annotation>
    <xsd:documentation>     </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    </xsd:all>
    <xsd:attribute name="instanceDomain" type="xsd:string"/>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    </types>
    <message name="searchRequest">
    <part name="searchRequest" element="tns:searchRequest"/>
    </message>
    <message name="searchResult">
    <part name="searchResult" element="tns:searchResult"/>
    </message>
    <portType name="searchPortType">
    <operation name="send">
    <input message="tns:searchRequest"/>
    <output message="tns:searchResult"/>
    </operation>
    </portType>
    <binding name="searchBinding" type="tns:searchPortType">
    <wsp:PolicyReference URI="#WSSPortBindingInputPolicy"/>
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="send">
    <soap:operation soapAction=""/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <wsp:PolicyReference URI="#WSSPortBindingOutputPolicy"/>
    <soap:body use="literal"/>
    </output>
    </operation>
    </binding>
    <service name="searchService">
    <documentation>"search" service.</documentation>
    <port name="searchPort" binding="tns:searchBinding">
    <soap:address location="https://youContentServer:443/services/search"/>
    </port>
    </service>
    </definitions>
    Cheers
    Boon

  • How to create a reference instead of complex type for record in data structure type in BizTalk schema

    I have created the record in BizTalk schema but i will give to Data Structure Type as reference For eg:Recordname(Reference) instead of recordname(Complex type).
    Please help me to sort this out
     

    You can add a reference to an existing type only.
    You might have to manually edit the XSD file to change the xmlns definiton to xmlns:tns and then after you define the record type, set the datatype to tns:.... this creates the XML Type. Then later in your schema you can instantiate this with a name and
    then set type to tns:.... (Reference)
    Regards.

  • WCF Service as Data source in SSRS report with Complex Types

    Hi All,
    I have a requirement where we are suppose to use WCF service as datasource in SSRS. I was able to do that when the WCF response type was simple.
    Now the requirement have changed where the response type is complex . I couldn't figure out a way of accessing WCF with complex types.
    Any pointer will be of great help as I couldn't find any related articles for this kind of scenario.
    Raj

    Hi Raj,
    WCF uses a serialization engine called the Data Contract Serializer by default to serialize and deserialize data (convert it to and from XML). All .NET Framework primitive types, such as integers and strings, as well as certain types
    treated as primitives, such as DateTime and XmlElement,
    can be serialized with no other preparation and are considered as having default data contracts. Many .NET Framework types also have existing data contracts. For a full list of serializable types, see Types
    Supported by the Data Contract Serializer.
    New complex types that you create must have a data contract defined
    for them to be serializable. You can explicitly create a data contract by using DataContractAttribute and DataMemberAttribute attributes.
    This is normally done by applying the DataContractAttribute attribute
    to the type.
    You can refer to :
    http://msdn.microsoft.com/en-us/library/ms733811(v=vs.110).aspxhttp://www.codeproject.com/Articles/738844/Using-WCF-Data-Contract-Known-Types-by-Example
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

  • How to assign two complex type data in message payload

    Hi ,
    In my xsd file two complex type data is there ,
    but when i am trying to add these in message type request and response payload , i can add only one payload,
    is it any way to add 2 complex types in message types request and response payloads.
    Regards
    janardhan

    Each request and response has but a single payload. You can change the element of the payload to a single complex type from your XSD, but that's it. You can't assign more than one element to the request (or response) payload. Someone please correct me if I'm wrong.

  • Is complex type request supported by web service data set?

    I just installed OBIEE 11g and tried to create data models with web services. It works fine for web services that takes simple data types and returns complex data types. But if the request to the web service is a complex type, it doesn't work. On the Edit Data Set page, I selected "true" for Complex Type. After I entered WSDL url, it populated the Web Service dropdown, but not the Method dropdown. Any ideas?
    The other problem I am having with web service data set is that it seems to ignore the attributes in the xml response. Only xml element is recognized.
    e.g. in <trigger priority="0" font_size="0"/>, priority and font_size are ignored in the data set. Please advise. Thanks.

    Hi,
    In this usecase , you can DnD the <serviceOperationName>_parameters as an ADF from. Then DnD the operation as a method. The methods input arg value is automatically set to the parameterIterator.currentRow.DataProvider. This works fine.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Formatting CF data for a web service complex type

    I am trying to call a web service with the following definition in the WSDL
    <s:element name="CreateDataList">
         <s:complexType>
              <s:sequence>
                   <s:element minOccurs="0" maxOccurs="1" name="client_app_id" type="s:string"/>
                   <s:element minOccurs="0" maxOccurs="1" name="client_app_pwd" type="s:string"/>
                   <s:element minOccurs="1" maxOccurs="1" name="data_template_id" type="s:int"/>
                   <s:element minOccurs="1" maxOccurs="1" name="calculate_persistent_values" type="s:int"/>
                   <s:element minOccurs="0" maxOccurs="1" name="data" type="tns:ArrayOfArrayOfName_value"/>
              </s:sequence>
         </s:complexType>
    </s:element>
    <s:complexType name="ArrayOfArrayOfName_value">
         <s:sequence>
              <s:element minOccurs="0" maxOccurs="unbounded" name="record" type="tns:ArrayOfName_value"/>
         </s:sequence>
    </s:complexType>
    <s:complexType name="ArrayOfName_value">
         <s:sequence>
              <s:element minOccurs="0" maxOccurs="unbounded" name="variable" type="tns:name_value"/>
         </s:sequence>
    </s:complexType>
    <s:complexType name="name_value">
         <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="name" type="s:string"/>
              <s:element minOccurs="0" maxOccurs="1" name="value" type="s:string"/>
         </s:sequence>
    </s:complexType>
    I am trying to format the ArrayOfArrayOfName_value data and getting an "argument type mismatch" error. The sample PHP code for the data looks like this:
    $data = array(0 => array(
        array('name' => 'FIRST_NAME', 'value' => 'First'),
        array('name' => 'LAST_NAME', 'value' => 'Last'),
        array('name' => 'ADDRESS', 'value' => 'Address'),
        array('name' => 'CITY', 'value' => 'City'),
        array('name' => 'STATE', 'value' => 'State'),
        array('name' => 'ZIP', 'value' => '55555')
    1 => array(
        array('name' => 'FIRST_NAME', 'value' => 'First'),
        array('name' => 'LAST_NAME', 'value' => 'Last'),
        array('name' => 'ADDRESS', 'value' => 'Address'),
        array('name' => 'CITY', 'value' => 'City'),
        array('name' => 'STATE', 'value' => 'State'),
        array('name' => 'ZIP', 'value' => '55555')
    My CF code looks like this:
    <cfset data = ArrayNew(1) />
    <cfset data[1] = ArrayNew(1) />
    <cfset data[1][1] = StructNew() />
    <cfset data[1][1]["name"] = "NAME" />
    <cfset data[1][1]["value"] = "JOhn Doe" />
    <cfset data[1][2] = StructNew() />
    <cfset data[1][2]["name"] = "ADDRESS1" />
    <cfset data[1][2]["value"] = "123 Test St" />
    <cfset data[1][3] = StructNew() />
    <cfset data[1][3]["name"] = "ADDRESS2" />
    <cfset data[1][3]["value"] = "" />
    <cfset data[1][4] = StructNew() />
    <cfset data[1][4]["name"] = "CITY" />
    <cfset data[1][4]["value"] = "Austin" />
    <cfset data[1][5] = StructNew() />
    <cfset data[1][5]["name"] = "STATE" />
    <cfset data[1][5]["value"] = "TX" />
    <cfset data[1][6] = StructNew() />
    <cfset data[1][6]["name"] = "ZIP" />
    <cfset data[1][6]["value"] = "78704" />
    <cfset data[2] = ArrayNew(1) />
    <cfset data[2][1] = StructNew() />
    <cfset data[2][1]["name"] = "NAME" />
    <cfset data[2][1]["value"] = "Jane Doe" />
    <cfset data[2][2] = StructNew() />
    <cfset data[2][2]["name"] = "ADDRESS1" />
    <cfset data[2][2]["value"] = "987 Test St" />
    <cfset data[2][3] = StructNew() />
    <cfset data[2][3]["name"] = "ADDRESS2" />
    <cfset data[2][3]["value"] = "" />
    <cfset data[2][4] = StructNew() />
    <cfset data[2][4]["name"] = "CITY" />
    <cfset data[2][4]["value"] = "Austin" />
    <cfset data[2][5] = StructNew() />
    <cfset data[2][5]["name"] = "STATE" />
    <cfset data[2][5]["value"] = "TX" />
    <cfset data[2][6] = StructNew() />
    <cfset data[2][6]["name"] = "ZIP" />
    <cfset data[2][6]["value"] = "78704" />
    Any suggestions for where I am going wrong would be greatly appreciated.

    If anyone is interested here is the correct CF format for this WSDL complex type definition
    <cfset data = StructNew() />
    <cfset data["record"] = ArrayNew(1) />
    <cfset data["record"][1] = StructNew() />
    <cfset data["record"][1]["variable"] = ArrayNew(1) />
    <cfset data["record"][1]["variable"][1] = StructNew() />
    <cfset data["record"][1]["variable"][1]["name"] = "NAME" />
    <cfset data["record"][1]["variable"][1]["value"] = "John Doe" />
    <cfset data["record"][1]["variable"][2] = StructNew() />
    <cfset data["record"][1]["variable"][2]["name"] = "ADDRESS1" />
    <cfset data["record"][1]["variable"][2]["value"] = "123 Test St" />
    <cfset data["record"][1]["variable"][3] = StructNew() />
    <cfset data["record"][1]["variable"][3]["name"] = "ADDRESS2" />
    <cfset data["record"][1]["variable"][3]["value"] = "" />
    <cfset data["record"][1]["variable"][4] = StructNew() />
    <cfset data["record"][1]["variable"][4]["name"] = "CITY" />
    <cfset data["record"][1]["variable"][4]["value"] = "Austin" />
    <cfset data["record"][1]["variable"][5] = StructNew() />
    <cfset data["record"][1]["variable"][5]["name"] = "STATE" />
    <cfset data["record"][1]["variable"][5]["value"] = "TX" />
    <cfset data["record"][1]["variable"][6] = StructNew() />
    <cfset data["record"][1]["variable"][6]["name"] = "ZIP" />
    <cfset data["record"][1]["variable"][6]["value"] = "78704" />
    <cfset data["record"][2] = StructNew() />
    <cfset data["record"][2]["variable"] = ArrayNew(1) />
    <cfset data["record"][2]["variable"][1] = StructNew() />
    <cfset data["record"][2]["variable"][1]["name"] = "NAME" />
    <cfset data["record"][2]["variable"][1]["value"] = "Jane Doe" />
    <cfset data["record"][2]["variable"][2] = StructNew() />
    <cfset data["record"][2]["variable"][2]["name"] = "ADDRESS1" />
    <cfset data["record"][2]["variable"][2]["value"] = "987 Test St" />
    <cfset data["record"][2]["variable"][3] = StructNew() />
    <cfset data["record"][2]["variable"][3]["name"] = "ADDRESS2" />
    <cfset data["record"][2]["variable"][3]["value"] = "" />
    <cfset data["record"][2]["variable"][4] = StructNew() />
    <cfset data["record"][2]["variable"][4]["name"] = "CITY" />
    <cfset data["record"][2]["variable"][4]["value"] = "Austin" />
    <cfset data["record"][2]["variable"][5] = StructNew() />
    <cfset data["record"][2]["variable"][5]["name"] = "STATE" />
    <cfset data["record"][2]["variable"][5]["value"] = "TX" />
    <cfset data["record"][2]["variable"][6] = StructNew() />
    <cfset data["record"][2]["variable"][6]["name"] = "ZIP" />
    <cfset data["record"][2]["variable"][6]["value"] = "78704" />

  • Human tasks, complex types and variable assignment.

    Hi folks,
    I encountered a problem while working with 10.1.3.1 which I haven't managed to solve yet and would be grateful for assistance. I have defined a complex data type (just a sequence of strings) and want to fill that data type by going through a flow of screens, e.g. through several human tasks. I have defined that type as a variable to the BPEL process and have managed to assign simple expressions to the variable and pass that into a Human Task. In the task I see now a simple input form for all attributes of the type.
    Now the problem. After I fill out the form and complete the human task, I have
    The global variable:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                   <vorname/>
                   <nachname/>
                   <strasse/>
                   <nummer/>
                   <postleitzahl/>
                   <stadt/>
                   <maximaleDauer/>
                   <minimaleDauer/>
              </MyProcessResponse>
         </part>
    </outputVariable>
    and the return value from the human task:
    <task>
         <title>CaptureData</title>-
              <payload>
                   <MyProcessResponse>
                        <vorname>David</vorname>
                        <nachname>Beckham</nachname>
                        <strasse>HighStreet</strasse>
                        <nummer/>
                        <postleitzahl/>
                        <stadt/>
                        <maximaleDauer/>
                        <minimaleDauer/>
                   </MyProcessResponse>
              </payload>
    </task>
    Now the only thing I would like to do is to replace the original values in the variable with the new values that have been returned from the task, this should be performed in an extra assign step. Sounds simple. JDeveloper wouldn't even let me klick through the return value from the HumanTask, so it seems as if I have to do things manually.
    These are my tries:
    Command 1:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload" />
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse"/>
    </copy>
    Result 1:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <ns0:MyProcessResponse xmlns="http://xmlns.oracle.com/bpel/workflow/task"     xmlns:ns0="http://xmlns.oracle.com/VacationRequest">
                   <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                        <vorname>David</vorname>
                        <nachname>Beckham</nachname>
                        <strasse>HighStreet</strasse>
                        <nummer/>
                        <postleitzahl/>
                        <stadt/>
                        <maximaleDauer/>
                        <minimaleDauer/>
                   </MyProcessResponse>
              </ns0:MyProcessResponse>
         </part>
    </outputVariable>
    --> There is one MyProcessResponse element too many
    Command 2:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload"/>
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse/ns1:vorname"/>
    </copy>
    Result 2:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                   <ns0:vorname xmlns="http://xmlns.oracle.com/bpel/workflow/task"                     xmlns:ns0="http://xmlns.oracle.com/VacationRequest">
                        <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                             <vorname>David</vorname>
                             <nachname>Beckham</nachname>
                             <strasse>HighStreet</strasse>
                             <nummer/>
                             <postleitzahl/>
                             <stadt/>
                             <maximaleDauer/>
                             <minimaleDauer/>
                        </MyProcessResponse>
                   </ns0:vorname>
                   <nachname/>
                   <strasse/>
                   <nummer/>
                   <postleitzahl/>
                   <stadt/>
                   <maximaleDauer/>
                   <minimaleDauer/>
              </MyProcessResponse>
         </part>
    </outputVariable>
    --> This was moreless expected, since I tried to copy the stuff to some wrong place.
    Command 3:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload/ns0:MyProcessResponse"/>
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse"/>
    </copy>
    Result 3:
    --> Task does't return (!!!). In the BPEL Worklist, the task is completed, however in the BPEL console it still apears as "waiting to return from Human task".
    Does anyone have a hint on how to copy the values so that I get exactly the structure that I printed at the very top?
    Thanks for help. Rock On !

    Hello everyone,
    It seems that we are talking about different things, I am afraid. Let me describe the scenario once again:
    - I want to have a BPEL process with more than one role involved
    - This process should be used to gather some complex data.
    - All data gathering should be done through HumanTasks.
    So I defined an xsd complex type, that contains a sequence of fields. This complex type should be part of the process payload.
    Now before HumanTask 1 is called, I copy the contents of this variable into the input for tasks1. This works fine and I see the appropriate values, when opening the Human Task in the BPEL worklist application.
    Now after HumanTask1 is completed, the values I entered inside that tasks are returned as a variable from the HumanTask. My problem is, that I cannot copy the contents of the task back into the main process. With simpleTypes this is relatively ok, since Jdev supports the assembling of the copy operation, however for complex tasks it fails.
    A typical scenario for this would be where e.g. a customer fills a shipping address and afterwards a store staff fills product details in the same order. In Java this could be solved via "pass by reference". Who can provide an example?

  • How to invoke a Web Service from PL/SQL with Complex Type as  input.

    Hello,
    I am trying to invoke a web service from PL/SQL using the UTL_DBWS package.
    The web service expects a complex type as input (defined below):
    <xs:complexType name="MsgType">
    <xs:sequence>
    <xs:element name="sender" type="xs:string"/>
    <xs:element name="messageId" type="xs:string"/>
    <xs:element name="messageType" type="xs:string"/>
    <xs:element name="dateSent" type="xs:date"/>
    </xs:sequence>
    </xs:complexType>
    How to construct input to this in PL/SQL Procedure?
    Has any body tried this before?
    An exmaple will be helpful.
    Thanks

    Dear,
    I have read your article, it is useful for me. But I cannot Apply to my case. Please kindly help me. Thank you.
    When running, the error occurs:
    1:39:31 Execution failed: ORA-20000: soapenv:Server.userException - org.xml.sax.SAXParseException: Attribute name &quot;password&quot; associated with an element type &quot;user&quot; must be followed by the &apos; = &apos; character.
    My webservice Url: http://abc.com.vn:81/axis/ABC_WS_TEST.jws?wsdl
    I make PL/SQL (similiar as your example)
    FUNCTION INVOKESENDMT
    RETURN VARCHAR2
    AS
    l_request soap_api.t_request;
    l_response soap_api.t_response;
    l_return VARCHAR2(32767);
    l_url VARCHAR2(32767);
    l_namespace VARCHAR2(32767);
    l_method VARCHAR2(32767);
    l_soap_action VARCHAR2(32767);
    l_result_name VARCHAR2(32767);
    p_zipcode VARCHAR2(160);
    BEGIN
    --p_zipcode:='''TEST'' ; ''TEST'';''84912187098'';''84912187098'';''0'';''8118'';''1'';''000001'';''ThuNghiem'';''''';
    p_zipcode:='TEST';
    -- Set proxy details if no direct net connection.
    --UTL_HTTP.set_proxy('myproxy:4480', NULL);
    --UTL_HTTP.set_persistent_conn_support(TRUE);
    -- Set proxy authentication if necessary.
    --soap_api.set_proxy_authentication(p_username => 'TEST',
    -- p_password => 'TEST');
    l_url := 'http://abc.com.vn:81/axis/ABC_WS_TEST.jws';
    l_namespace := 'xmlns="' || l_url || '"';
    l_method := 'sendMT';
    l_soap_action := l_url || '#sendMT';
    l_result_name := 'sendMTResponse';
    l_request := soap_api.new_request(p_method => l_method,
    p_namespace => l_namespace);
    soap_api.add_parameter(p_request => l_request,
    p_name => 'user password sender receiver chargedflag servicenumber messagetype messageid textcontent binarycontent',
    p_type => 'xsd:string',
    p_value => p_zipcode);
    l_response := soap_api.invoke(p_request => l_request,
    p_url => l_url,
    p_action => l_soap_action);
    l_return := soap_api.get_return_value(p_response => l_response,
    p_name => l_result_name,
    p_namespace => l_namespace);
    RETURN l_return;
    END;

  • SSIS Web Service Complex Type Inputs

    Hi,
    I am trying to make a call to a third-party web service in my SSIS package.  The request has custom complex data type as the parameter.  As has been pointed out in this forum before, the Web Service Task only lets you assign the outside parameter from a variable, not the internal parameters needed to create the complex data type. 
    To be more specific, the web service input wants a 'ContactSearchRequest' parameter.  I can assign this from a variable.  If I click on the 'value' field under the 'Input' section for the web service task, it shows me that the 'ContactSearchRequest' data type is made up of the following:
    contactId - long
    numResults - int
    offset - int
    passKey - string
    searchParam - string
    sortType - int
    Unfortunately, I can't assign these internal parameters from a variable, at least not through the web service task interface.
    My next thought was to create a variable of type 'object' and then set it in a script task prior to calling the web service task.  However, I'm not sure exactly how to do this.  How will my script know about the class definition of 'ContactSearchRequest'?  Do I just create a class called 'ContactSearchRequest'?
    I've used this same web service in a .NET C# project and after I imported the web service, visual studio knew all about the custom data types.  How do I do something similar in SSIS?
    Of course, the easiest solution would for Integration Service to allow me to set those internal parameters via variables, but we're apparently not there yet.
    Any suggestions?
    Thanks,
    Trey

    Hi All,
    I am trying to pull the data from a webservice. The method expects 5 parameters out of which one is a complex type. And it is fine to pass Null value for this parameter.
    The method expects a complex data type UrlReportFilter
    as follows:
    <simpleType name="UrlReportFilterOperatorEnum">
     <restriction base="xsd:string">
    <enumeration value="contains"/>
    <enumeration value="starts_with"/>
    <enumeration value="ends_with"/>
    <enumeration value="not_contains"/>
    <enumeration value="not_starts_with"/>
    <enumeration value="not_ends_with"/>
    <enumeration value="match_regular_expression"/>
    <enumeration value="not_match_regular_expression"/>
    <enumeration value="exact_match"/>
    </restriction>
    </simpleType>
    <complexType name="UrlReportFilter">
    <sequence>
    <element name="caseSensitive" type="xsd:boolean"/>
    <element name="operand" nillable="true" type="xsd:string"/>
    <element name="operator" nillable="true" type="akaaimsdt:UrlReportFilterOperatorEnum"/>
    </sequence>
    </complexType>
    How to assign values and use this in VB.NET code? 
    I am using following code to assign the values to the properties in VB.NET code in Script task but it is throwing the error below:
     Dim vUrlFilter As New Akamine.UrlReportFilter With {.caseSensitive = False, .operand = ""}
    Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Web.Services.Protocols.SoapException: AWSFault:Error in processing:(com..aws.services.exceptions.InvalidColumnException: Invalid column:
    for report:H
    Any help on this would be appreciated!!
    Thanks,
    Ruby
    Thanks & Regards

  • Mapping problem Moving Complex Type to field

    Dear all,
    I am making a message using from RFC(ECC 6.0) to SOAP
    Some fields of the structure of RFC are:
    STRUCTURE_VALUE -> Complex Type
          END    - NUMC 20
          ID        - NUMC 3
          COST  - NUMC  5
          RATE  - NUMC  6
    The structure of Data Type to SOAP is:
    DATA_VALUE - STRING
    I need to concatenate the first structure in the second structure but I have too many fields in the STRUCTURE_VALUE and I don't want to use the function CONCATENATE in the MAPPING EDITOR. I would like to move the complex type STRUCTURE_VALUE to structure DATA_VALUE.
    Does anybody know if it's possible?
    Best regards,
    Fernando

    Hi,
    First of all what needs to be concatenated ? Each fields of the Source segment ?
    If so write a user defined function, which reads all the fields and retruns one concatenated field as an output.
    To know about this , you can go thru these- to understand the way how it works-and for e.g
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/be05e290-0201-0010-e997-b6e55f9548dd
    Rgds,
    Moorthy

  • Assign error with complex type return message

    Dear all,
    I have an axis web service with complex type return message. When I invoke the web service, and try to assign one element of the result to other variable, it fails with following error message(BPEL Fault:{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure{}
    The invoking web service and assignment BPEL source is as follows:
    <invoke name="registerConference" partnerLink="conferenceCenter" portType="tns:ConfArrangementPort" operation="Conference_Register" inputVariable="registerInput" outputVariable="registerOutput"/>
    <copy>
    <from variable="registerOutput" part="Conference_RegisterReturn" query="/Conference_RegisterReturn/confcity"></from>
    <to variable="bookHotelInput" part="si" query="/si/city"/>
    </copy>
    I tunneled the response SOAP message:
    ==== Response ====
    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    Date: Sun, 31 Oct 2004 08:28:27 GMT
    Server: Apache Coyote/1.0
    Connection: close
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <ns1:Conference_RegisterResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://conference.sjtu.edu">
    <ns1:Conference_RegisterReturn href="#id0"/>
    </ns1:Conference_RegisterResponse>
    <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:ConfInfo" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://conference.sjtu.edu">
    <confcity xsi:type="xsd:string">star</confcity>
    <confend xsi:type="xsd:string">20041120</confend>
    <confstart xsi:type="xsd:string">20041116</confstart>
    </multiRef>
    </soapenv:Body>
    </soapenv:Envelope>
    ==============
    However, when i check the invoke activity audit trail, it return the following info:
    <messages>
    <registerInput>
    <part xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" name="gi">
    <gi xmlns="http://conference.sjtu.edu">
    <attendeename xmlns="">ss</attendeename>
    <confname xmlns="">hh</confname>
    </gi>
    </part>
    </registerInput>
    <registerOutput>
    <part xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" name="Conference_RegisterReturn">
    <ns1:Conference_RegisterReturn xmlns:ns1="http://conference.sjtu.edu" href="#id0" />
    </part>
    </registerOutput>
    </messages>
    The detailed value of the return message lost, only leaving the href. Can I find the desired value again? should I try another XPATH expression? should I parse the result from the SOAP message directly? Or it's a problem of the system itself?
    Hope you can do me a favor, thanks.

    From Axis's user guide: RPC services default to the soap section 5 encoding rules, objects will be encoded via "multi-ref" serialization. Document services do not use any encoding (so in particular, you won't see multiref object serialization or SOAP-style arrays on the wire)
    May be I should try document service style instead of RPC. Thanks for your reply.

  • ****Urgent**** Webservice Complex Type Handling ****Urgent****

    Hi kglad, am junior flash developer trying out webservices.
    So i was trying out a webservice "https://www.suhrkamp.de/webservice/suhrkamp_ws.cfc?wsdl"
    where i call getNews("webservicechef","remote147suhrkamp",41722) method.But even before the
    method is executed on the server i get an error of "Type apachesoap:Document not resolvable".From more research av come
    to knw tht the problem is that the service returns a complex type of apachesoap:Document
    which flash doesnt seem to understand.So how will i solve this....?
    my source is shown here below
    import mx.services.*;
    bt_Enter.clickHandler = function() {
        trace("Show invocation..");
        var q:String = input.text;
        //used to trace the actions from the cleint..
        stockServiceLog = new Log(Log.VERBOSE);
        stockServiceLog.onLog = function(txt) {
            trace(txt);
            disp.text = txt;
        /*var fault = function (stat) {
        trace("in fault..,");
            if (stat.code == "WebServiceFault"){
                trace(stat.data.faultcode);
                trace(stat.data.faultstring);
                trace(stat.data.detail);
        //Instanciating the web service..
        var stockservice = new WebService("https://www.suhrkamp.de/webservice/suhrkamp_ws.cfc?wsdl", stockServiceLog);
        //stockservice.addEventListener("status", fault);
        stockResultObj = stockservice.getNews("webservicechef","remote147suhrkamp","41722");
        trace("Requested XML: "+stockResultObj.request+" from  request");
        //stockservice.onLoad = trace("loading");
        // the onResult function is called if the service is successful
        stockResultObj.onResult = function(result) {
            trace(" result ok..");
            display.text=result;
            trace(result);
            trace("RequestXML: "+stockResultObj.request);
            trace("ResponseXML: "+stockResultObj.response);
        stockResultObj.onFault = function(fault) {
            trace(" on error  ok..");
            // If there is any error such as the service not working, the onFault handler will be invoked.
            trace(fault.faultCode+","+fault.faultstring);
            disp.text += fault.faultCode+","+fault.faultstring;

    Hi Sampath,
    Please check SAP note 1004108. I think the issue you describe is one of the limitations described in this note.
    Regards,
       Jan

  • How to use complex types in a odata url filter

    Hello,
       I am in the process of building a service that uses a complex data type as input in a query filter. I am not sure how the url will need to be generated and also how to retireve this complex type in the get_entity_set method.
    Example:
       I have a complex type as below:
    Name:
    with properties
      Firstname
      Lastname.
    I would like to pass the name as a query filter. an I am not sure how to do this.
    Should it be like this:
    https://.../service/getdetails?$filter=Name.firstname eq 'John' and Name.Lastname eq 'Smith'
    My second question is how do I retireve this filter in the get_entity_set method.

    Hi Rajesh,
    I have done the Scenario using Function import and done the code and working fine.
    But here my question is how to retrieve the data when we are using return type is complex..
    Give me the sample URI format for the above query.
    I have done the code for function import in excute_action method.
      Data : ls_entity1    TYPE zcl_zproj_fm_import_mpc=>banks,
                lt_entity1    TYPE STANDARD TABLE OF zcl_zproj_fm_import_mpc=>banks.
    WHEN 'BankComplex'.
           IF it_parameter IS NOT INITIAL.
    * Read Function import parameter value
             READ TABLE it_parameter INTO ls_parameter WITH KEY name = 'BankCtry'.
             IF sy-subrc = 0.
               lv_country = ls_parameter-value.
             ENDIF.
             IF lv_country IS NOT INITIAL.
               CALL FUNCTION 'BAPI_BANK_GETLIST'
                 EXPORTING
                   bank_ctry       = lv_country
                   max_rows        = '100'
    *          IMPORTING
    *            RETURN          =
                 TABLES
                   bank_list       = lt_banklist
               LOOP AT lt_banklist INTO  ls_banklist .
                 ls_entity1-bankctry   = ls_banklist-bank_ctry.
                 ls_entity1-bankkey = ls_banklist-bank_key.
                 ls_entity1-bankname = ls_banklist-bank_name.
                 ls_entity1-city    = ls_banklist-city.
                 APPEND ls_entity1 TO lt_entity1.
               ENDLOOP.
    * Call methos copy_data_to_ref and export entity set data
               copy_data_to_ref( EXPORTING is_data = lt_entity1
                       CHANGING cr_data = er_data ).
             ENDIF.
           ENDIF.
    Thanks,
    Syam

  • Hard-coding complex type web service parameter

    Hi,
    I am trying to populate a drop-down list with data returned from a web service. The web service requires one parameter, but it is a complex type with many elements. I don't need any user input, I want to set the the parameter values programatically. Is this something that can be done with a web service data control?
    I know that I can edit the action binding and specify a parameter, but I'm not sure how to do this when the parameter is a complex type.
    I hope I am explaining this in a way that makes sense. I am fairly new to both Jdeveloper and web services.
    I am using JDeveloper 11.1.2.0.0
    Thanks.

    Thanks for the link. The article is from 2006 and I was under the impression that there was more support for complex types now. Maybe in my case I am better off using a web service proxy?

Maybe you are looking for

  • Snow Leopard Mail - Bouncing Icon/Play Sound Rules Cancel Each Other Out

    I recently saw a movie which featured many closeups of a MacBook Pro being used; every time the actor got an e-mail message, the Mail icon bounced in the Dock AND played the New Message Sound. In the current version of Snow Leopard Mail, you can crea

  • XML file format

    I'm using UTL_FILE package to write into a text file. Instead of writing this into a text file I want to write this into a XML file. How to do this using the pl/sql procedure?What package and function I have to use to accomplish this?Please let me gi

  • HT1386 my i phone 4s dead while update in process , please help

    my i phone 4s dead while update in process , please help

  • Quality Manager - Clearing Unscored Call recordings

    Probably a very basic question, but unfortunately I'm not yet familiar with this product. Some of our supervisors wish to clear out a backlog of "Unscored" recordings from the list in Quality Management Desktop, so that they can start with a clean sl

  • Working with JQuery UI - Accordion Panels

    Two questions related to the above: How can I edit the "grey" bar that appears (in Live view) at the top of the Content panel?  I am trying to put in a table into the content panel and have to put in at least 2-3 extra lines to make sure the table do