Web Service Complex Datatypes

Does ColdFusion support nested complex data types when building Web Services?  See example CFCs below.  I keep getting a ServiceMethodNotFoundException.  In my SubmitNoticeOfAppt.cfc, the cfargument data type is NoticeOfAppointment.CFC which references other CFCs that define complex data types. The complex types are needed to support a really complex XML document that must be NIEM (National Information Exchange Model) compliant.  Originally tried passing the NIEM XML doument as a string, but receive deserialization errors, encounter child element.  Could get around the error by wrapping the XML string in <![CDATA[ ... ]]>, but this convention is not NIEM compliant.
DocumentIssueDate.cfc
<cfcomponent displayname="DocumentIssueDate" output="false">
   <cfproperty name="Date" type="date" required="No">
</cfcomponent>
DocumentAugmentation.cfc
<cfcomponent displayname="DocumentAugmentation" output="false">
   <cfproperty name="DocumentIssueDate" type="any" required="No">
</cfcomponent>
DocumentIdentification.cfc
<cfcomponent displayname="DocumentIdentification" output="false">
   <cfproperty name="IdentificationID" type="numeric" required="Yes">
   <cfproperty name="IdentificationCategoryDescriptionText" type="string" required="No">
</cfcomponent>
NoticeOfAppointment.cfc
<cfcomponent displayname="NoticeOfAppointment" output="false">
   <cfproperty name="DocumentIdentification" type="any" required="Yes">
   <cfproperty name="DocumentAugmentation" type="any" required="Yes">
</cfcomponent>
SubmitNoticeOfAppt.cfc
<cfcomponent style="document">
  <cffunction name="SubmitNoticeOfAppt" returnType="string" output="false" access="remote"> 
    <!---Arguments--->
      <cfargument name="NoticeOfApptXml" type="NoticeOfAppointment" required="Yes">
      <cfreturn "Notice of Appointment successfully received">
  </cffunction>
</cfcomponent>
Sample NoticeOfAppointment.xml       (Stripped down, actual message contains almost 200 elements with 20+ complex datatypes)
<NoticeOfAppointment>
  <DocumentIdentification>
    <IdentificationID>000021199</IdentificationID>
    <IdentificationCategoryDescriptionText/>
  </DocumentIdentification>
  <DocumentAugmentation>
    <DocumentIssueDate>
      <Date>2011-04-07</Date>
    </DocumentIssueDate>
  </DocumentAugmentation>
</NoticeOfAppointment>

Coldfusion should be able to nest complex data types in your web service (after all, that's what the cfproperty tag was designed for).  Unfortunately, I have more experience consuming complex web services than designing them in CF. My Recommendation - inspect your web service WSDL using a tool that will generate the sample SOAP XML that will be needed to consume your web service.  You should be able to tell from that XML what the issue is - could be a missing namespace in your XML or strange nesting, etc.
We use SOAPSonar from Crosscheck networks - they have a feww personal version that will allow you to inspect your web service interface and it will even generate the sample XML needed to call it via SOAP.
Hope that helps.

Similar Messages

  • Can "SPML Web Service Complex Data Type field" take multiple values ?

    In Generic Technology Connector's -SPML design parameters section, Can we give multiple values in SPML Web Service Complex Data Type field?
    If not, how can i call methods directly instead of calling them through a values of the "name" attribute of the "complexType" element in SPML Web Service Complex Data Type?
    I need 'SPML Web Service Complex Data Type' to hold multiple values.And based on the request it has to initiate appropriate method of action.
    Presently i have three methods add,modify and delete which i am calling through a single value of the "name" attribute of the "complexType" element in SPML Web Service Complex Data Type.
    I want to replace this single value with multiple menthods , so that a direct interaction between the method,OIM and target can be established.
    Edited by: 821054 on 16/02/2011 04:23

    Thanks Robert.
    You'll need to create your own interface to the webapp database for those kind of data operations
    by this, are you speaking of the internal BC database which stores web app schema data? That would be great if it were possible to update that programmatically because I need to use the List (Checkbox List) field type (for the search functionality), but I need to supply the checkbox options from a web app rather than by manually updating the list entered in the Fields view of the web app settings (shown below).
    I'm curious if anyone else has tried this?
    Again, my reason for needing to use the List (Checkbox List) field type is that the page which processes searches knows to expect a comma separated list for this field type and then appears to be parsing out the individual values for searching out web app items with 1 or more matching values. You're right that text fields (string and multiline) just check for 'string contains' matches, and this would be ok if I was only ever needing to search just one value at a time. Here's an example of what I might do:
    Web App item field value (as recorded against the List (Checkbox List) field type:
    8294877,8294878
    Web App Search value (for this same field):
    8294879,8294877,8294885
    The search would return this web app item because the field contains 2 (1 or more) individual values even though they were entered into the search field in a different order. If this web app item were just a Text (string or multiline) field, the searched value is not a substring of the web app item's stored value, so it would not find a match. Hence the need to use Checkbox List field type.
    The web app will have thousands if not 10s of thousands of records, so dumping them all into one big array or object and searching on the front-end won't be practical (though it works great on smaller datasets).

  • 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

  • Web Service + Complex Type + Java Studio Creator

    Hy all!!
    I am using Ubuntu 7.04 + Java Studio Creator 2 and i'm trying to use a webservice.
    This webservice uses a Complex Type and was made in PHP.
    I guarantee that this webservice is working with complex type because i've tested using a PHP client.
    I have already worked with others webservices in Java Studio Creator using simple types!
    So I went to Add Web Service, put the wsdl link, Get Web Service Information and then Test Method that uses Complex Type.
    Then I gave a input value and when I submit i got this error:
    InvocationTargetException com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(ReflectionHelper.java:459) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$MethodTask.run(TestWebServiceMethodDlg.java:1031) java.lang.Thread.run(Thread.java:595) null sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(ReflectionHelper.java:450) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$MethodTask.run(TestWebServiceMethodDlg.java:1031) java.lang.Thread.run(Thread.java:595) Runtime exception; nested exception is:
    [failed to localize] nestedDeserializationError([failed to localize] xmlreader.unexpectedState(END, START: nome))
    com.sun.xml.rpc.client.StreamingSender._handleRuntimeExceptionInSend(StreamingSender.java:318) com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:300) webservice.Grs_PortType_Stub.buscarCompleto(Grs_PortType_Stub.java:122) webservice.grs.grsClient.buscarCompleto(grsClient.java:36) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(ReflectionHelper.java:450) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$MethodTask.run(TestWebServiceMethodDlg.java:1031) java.lang.Thread.run(Thread.java:595)
    [failed to localize] nestedDeserializationError([failed to localize] xmlreader.unexpectedState(END, START: nome))
    com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:233) com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:155) webservice.Grs_buscarCompleto_ResponseStruct2_SOAPSerializer.doDeserialize(Grs_buscarCompleto_ResponseStruct2_SOAPSerializer.java:43) com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:192) com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:155) webservice.Grs_PortType_Stub._deserialize_buscarCompleto(Grs_PortType_Stub.java:186) webservice.Grs_PortType_Stub._readFirstBodyElement(Grs_PortType_Stub.java:160) com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:215) webservice.Grs_PortType_Stub.buscarCompleto(Grs_PortType_Stub.java:122) webservice.grs.grsClient.buscarCompleto(grsClient.java:36) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(ReflectionHelper.java:450) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$MethodTask.run(TestWebServiceMethodDlg.java:1031) java.lang.Thread.run(Thread.java:595)
    Any help would be appreciated!
    Thanks a lot!
    Mario Mol

    Have you seen this?
    http://developers.sun.com/jscreator/reference/techart/2/create_consume_web_services.html
    Also have you tried the latest and coolest IDE Netbeans 6?
    It includes all the features of Creator plus lots more.
    Thanks
    K

  • Web Service - Complex Parameters

    Hi, I'm trying to get a specific Web Service working by
    calling the appropriate parameters and I can't seem to get it
    working properly in Flex.. I have this Web Service working just
    fine in Microsoft's InfoPath product. When I call the Web Service
    and trace I notice the parameters returned are in the wrong order
    and the complex parameter doesn't show the sub tags (MS Infopath
    does). Also, the parameters I leave empty return with "[Object
    Object]" (MS Infopath doesn't do this). So it looks like flex isn't
    doing something right with my Webservice. Here's what I am
    passing.. If I'm doing something wrong please let me know.. Any
    ideas or opinions are greatly appreciated!
    <mx:request>
    <Infoprovider></Infoprovider>
    <Parameter>
    <item>
    <Name></Name>
    <Value></Value>
    </item>
    </Parameter>
    <Query>ZG_PUR_104E</Query>
    <ViewId></ViewId>
    </mx:request>

    Me to, and i use Axis for web services (and WebSphere
    WebServices).
    And, if you use bind from text input you get [object Object]
    in general case
    <mx:request>
    <value>{entry1.text}</value>
    </mx:request>
    <mx:TextInput x="23" y="101" text="" id="entry1"/>
    if you enter any text at textinput and delete it you DONT get
    "[object Object]" at web service....
    if you dont enter text you get "[object Object]" at web
    service...
    if you use variable or other elements its the same.
    Any help?
    TIA

  • 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" />

  • Web Services Complex Types

    I am developing a Web Service in Netbeans 5.5 running on Sun Application Server 9.0UR1. The web service and client work fine if I use simple types like "String" as a return type. However, I need to return complex types, such as a user defined class. I setup the web service to define a user defined class, SimpleBean, and I setup my client to accept it. The client successfully connects and gets back the object but I do not have access to the any of the getters/setters in the object. How do I setup it up so that I get access to the returned object's getters/setters?
    Luke Mauldin

    JAXB can be used to solve your problem. Rather than trying return your own types directly use JAXB to explain your return types in a schema;
    Example:
    public class MyType {
    int id=-1;
    int noOfObjects=0;
    String something;
    @XmlElement(nillable = true) //Java annotation to return list
    List<String> participant;
    public Interaction() {
    participant= new ArrayList<String>();
    something=�hi�;
    public List<String> get() { return participant; }
    public void set(String newpart) {participant.add(newpart);}
    public String getCrux() { return �OK�; }
    public void setCrux(String something) { this. something = something; }
    @XmlAttribute
    public int getId() { return 0; }
    public void setId(int id) {  }
    @XmlAttribute
    public int getNoOfObjects() { return noOfObjects; }
    public void setNoOfObjects(int id) { this.noOfObjects =noOfObjects; }
    @WebService()
    public class MyService {
    @WebMethod
    public Results MyType (@WebParam(name = "id") String id) {
    return new MyType();
    When defining your own class make sure you have "get" and "set" methods for all types.(JAXB needs this)

  • Best Practices Web Services - Complex Data Types

    Can someone provide some best practices documentation or info that for customers using CR against web services? Speciffically any information on complex data types such as  String[] or Address.
    Thanks
    Ian S

    And That's what I did.
    name.cfc is the component that has complex data types
    created.

  • Reporting Services web service complex xml type report parameters

    Hi,
    I have the following xml type parameter in my request query that I use in reporting services.
    <Parameter Name="accountDetails" Type="XML" xmlns:d4p1="thevalue" xmlns:i="thevalue">
    <DefaultValue>
    <d4p1:AccountDetailDto>
    <d4p1:AccountNumber>12345</d4p1:AccountNumber>
    <d4p1:AccountType>Sales</d4p1:AccountType>
    </d4p1:AccountDetailDto>
    </DefaultValue>
    I want to know how I can assign values to the accountDetails parameter from report parameters, I've tried to call it from the dataset parameter properties but it doesn't return any values. I created Parameters!accountDetails.Value on the dataset parameters
    properties and assigned it the following value: it only returns empty columns
    ="<AccountDetailDto><AccountNumber>"& Parameters!AccountNumber.Value &"</AccountNumber><AccountType>"& Parameters!AccountType.Value &"</AccountType></AccountDetailDto>"
    You're help will be highly appreciated as I've been trying to solve this for a while now

    Hi Alisa,
    Perhaps I should explain my problem clearly...
    This is my query request that I send to the webservice:
    <Query>
    <Method Name="GetPerAccountAssetAllocation" Namespace="http://tempuri.org/">
    <Parameters>
    <Parameter Name="accountDetails" Type="XML" xmlns:d4p1="thevalue" xmlns:i="thevalue">
    <DefaultValue>
    <d4p1:AccountDetailDto>
    <d4p1:AccountNumber>12345</d4p1:AccountNumber>
    <d4p1:AccountType>JSE</d4p1:AccountType>
    </d4p1:AccountDetailDto>
    </DefaultValue>
    </Parameter>
    </Parameters>
    </Method>
    <SoapAction>http://tempuri.org/IPortfolioManagementService/GetPerAccountAssetAllocation</SoapAction>
    <ElementPath IgnoreNamespaces="true">*</ElementPath>
    </Query>
    It works well when I run it just like this, that is without specifying any parameters in the report data dialogue window or on the dataset parameters properties, it returns the values and columns correctly.
    So my problem is, I need to find out how(xml parameter syntax, steps e.t.c)
    I can do to allow users to specify the accountDetails parameter, its quite tricky for me coz its an xml type parameter, Im not sure if I should just specify the AccountNumber and
    ReportType parameters separately:
    I've tried the following without any success:
    1. Under the dataset properties:  I tried not to specify a default value for the accountDetails parameter on the xml query, then I added a parameter called "accountDetails" under the dataset parameters properties, then under parameter
    value I added the following xml value :
    <d4p1:AccountDetailDto>
    <d4p1:AccountNumber>Parameters!AccountNumber.Value</d4p1:AccountNumber>
    <d4p1:AccountType>Parameters!AccountType.Value</d4p1:AccountType>
    </d4p1:AccountDetailDto> 
    (I also added the AccountNumber and AccountType parameters under the report data dialogue window)
    This returns empty columns, is there something I'm missing, or am I doing this incorrectly?

  • Web service Complex type

    hello i want to ask if i can make a complex type that is composed of many other classes and witch databinding framework should i use to do do the mapping from xml to my one classes not the auto generated classes thanks for your help.

    Hi Ray,
    I just had you set your "per" object to its constructor out of habit. Don't know about you, but I spend too much time chasing null pointer exceptions.
    Try this. It's easy and quick.
    1) Hold your mouse over the ObtenerPersonaActivaDadoCI() method in the Project Navigator tab. By doing this, I'm guessing you'll see it's not returning a Persona object.
    or
    2) Simply drag the ObtenerPersonaActivaDadoCI() method from the Project Navigator tab into your logic. By doing this, you'll notice that it has a value in front of the "=" sign. Again, I'm guessing you'll see it's not returning a Persona object.
    Even though the Persona object and the object that ObtenerPersonaActivaDadoCI() returns both have the same list of attributes, I believe that you'll continue to get the error you're seeing if you try to set per (since it's an Persona object) to the value returned form ObtenerPersonaActivaDadoCI().
    To get around the problem, let's say you instead have the ObtenerPersonaActivaDadoCI() method return it's value to an "opadCI" object (the type of object you found out that the method returns by doing 1 or 2 above). You might want to fix your problem by doing something like this:
    per.firstAttr = opadCI.firstAttr
    per.sedondAttr = opadCI.sedondAttr
    per.thirdAttr = opadCI.thirdAttr
    Hope this helps,
    Dan

  • Web Services Complex Data Type Query

    Newbie trying to understand how to work with Complex Data
    Type. Came across the following example in the Dev Guide
    What is wrong with Client Code? What am I missing?
    Please help
    Thanks
    Prashanth

    And That's what I did.
    name.cfc is the component that has complex data types
    created.

  • Some data is missing while returning complex datatype from a web service

    Hi
    I am returning a complex data type from a web service. complex data type has a super class and some(not all) values from this super class are not being returned to the client. Strange part is that it giving some fields from super class and some values are not returned.
    I saw the soap response also it does not show any tag for those fields. but while creating a response i am setting some string values to those fields but i am not getting at client side.
    all the serailiastion and deseialization classes where created using ANT tasks and i have checked that all the cedec classes have been created.

    for what it's worth, the same problem was reported by one of our developers, although the string size was considerably smaller (probably less then 1 MB). According to him, soap clients generated from apache tools could connect fine and process the XML records. JDev hung. We simply changed our use case to return smaller results sets, but perhaps you could also generate your clients with WSDL2Java rather then JDev (if it is a truly a bug in JDev SOAP)? Can you add record parameters to the payload, in order to limit the results and scroll between remaining rows?

  • How to display web service child attributes in an adf table

    I have a web service that return a Patient object and here is the Patient object definition in Java format:
    public class Patient
    String name;
    Address[] address;
    String mrn;
    public class Address
    String addressType;
    String[] streetline;
    String city;
    String state;
    String country;
    I want to create an adf table that displays the patient name, patient home address and mrn. When I create a data control base on the WSDL and drag the nested child address but the address does not show up in the adf table. What is the solution to display a web service top object attributes and child object attributes in one adf table?
    Thanks.

    Thanks for your response.
    After reading the link that you provided, the link seems to show how to resolve the web service complex type that is not display correctly in data control. My web service return type shows up correctly in the data control. Actually most of our child attribute is using complex type,
    Public class Patient
    Name name;
    String mrn;
    Address[] address;
    Public class Name
    String personFirstName;
    String personLastName;
    String orgName;
    I have tried the following approaches:
    1. Create web service data control based on a WSDL, try to display mrn, person first name (child attribute) and person last name (child attribute) in an adf table, when running the UI, there is only mrn attribute shows up. Even it is one-to-one cardinality I cannot have the child attribute's value show up.
    2. Create a java bean that has the exact attributes that are needed for the adf table region. Create a POJO facade class that has a method that return this java bean. I then create data control for this POJO facade class. The adf UI will base on this POJO facade. I have included the code in the POJO facade method to call the web service proxy and when get the web service return complex type; I have to programmatically map the attributes back to the java bean.
    The second approach is working but I need to write extra code to map the web service return type to the java bean. Is there any other option?
    Thanks.

  • Complex datatype in Web Services

    The work involved in handling complex datatype as part of the Web Services
    (JDev 9.0.3) seems to be very complex and not very well documented. (as
    far as I can tell).
    Is there an easy way for a Java client to bypass the deserialization altogether
    and just get the raw SOAP XML as returned from a Web Service.
    From the Raw XML, we could use the regular parsing tools to do whatever
    is necessary with the data. For example, I would like to transform the
    XML returned by using a simple XSL transformation.
    This would bypass the complexity of mapping all elements of an object that
    I would not really use in Java anyway. (I would pass the result of the XSL
    transformation to a 'C' program (yes I know it's ugly, but I still use 'C' for
    processing data...)
    I would really appreciate if anybody had experience in doing something like
    that.
    Thanks.

    Hi Denis - I think I might have run into a similar prob. I have been able create and successfully test a web service as long as the input object types are Strings. When I try to do this with a complex data type it fails. "Complex" in this case means an object containing 2 string and 1 double (i.e. not a standard java.lang objects for which serializers are predefined).
    Did you encounter the following error message?
    [SOAPException: faultCode=SOAP-ENV:Client; msg=No Deserializer found to deserialize a &apos;http://IWidgetConsumer.xsd:Widget&apos; using encoding style &apos;http://schemas.xmlsoap.org/soap/encoding/&apos;. [java.lang.IllegalArgumentException]]
    Process exited with exit code 0.
    Thanks
    X

  • Creating Complex Datatypes in Application Module Service Interface

    HI All,
    I need to create the complex datatype as response in Application module service interface(Custom method).
    Is there any way to create it.
    I am able to create when i have simple datatype as response, Whereas the complex type is not able to create.
    Please give me some suggestion.
    Thanks
    Prabhat

    Hi
    I followed the below discussion and got the solution
    Create Web Services and return a complex type with ADF
    Thanks
    Prabhat

Maybe you are looking for

  • MB5B -- Opening stock and closing stock

    Hi experts , What is mean for opening stock adn closing stock ? In case of I input the same data of selection dHow they are calculated in MB5B ? For some material , the closing stock is 0, but why the closing value is not 0 ? BR , shubin Edited by: S

  • How can I control print quantities from the main browser?

    So here's the workflow question I want to select photos to print but I want to print a different quantity depending on criteria. The photos may be in different albums, etc.. Selecting them all and trying to set the quantity in the Print Order window

  • Need some answer for audigy 2

    hi all i'm new here hope all is fine anyway i went to creative for an update it won't work it starts the download and the all of a sudden it says fail can some one help me .also i use my audigy to make my old vinyl record's in to cd's but now as i pu

  • How to unlock systems

    Dear professionals, sorry to bother You again. I was working in the Portal system landscape configuration to change the address of a CRM-machine when I lost connection to the portal server. I re-established the connection, logged in again, but now th

  • Airport Utility does not see Base Station but I'm still online

    I have an original airport base station and just downloaded Airport Utility 5.5.1 The base station is working because I'm online with it posting this thread. But Airport Utility 5.5.1 does NOT see it... The strange thing is that I have one of the ear