Send complex data via web service : discards parts of complex object sent

Hi,
   I have to send an object to the server via a web service. The object A (say) that is being sent has a lot of properties. Now A has an array collection of objects of type B which in turn has an array collection of type C and so on..
The problem is some of the data is not a part of the xml data sent out.
I have included the snapshots of the data given to the web service and data sent out as seen in the network monitor below.
Object sent to the web service
xml data sent out as seen
in the request body in the Network monitor
The object in red rectangle above is of type "Slide" which has an object "caption" of type Caption and other simple properties like slideId (int), slideNumber(int) and storyBoardId(int).
The object in the red rectangle is the xml data of "Slide" corresponding to the object in the red rectangle in the image to the left.
Notice that the entire object "caption" has been dropped while the simple properties have been represented.
I am stuck and cant find a solution to this issue or a work around
any pointers would be really helpful.
thanks in advance

Posting more images .. have simplified the object a lot but still have the same issue.
1. The request object description as given in the asmx [seen in the browser]
2. The request object's description as given in the wsdl [seen in browser]
3. The object that is being sent to the web service -- as seen in the debugger of Flash builder
4. The object data in xml being sent out of Flex client -- as seen in network monitor of Flash Builder
NOTE : The object data as seen in the network monitor doesnt have the caption" part at all! whereas the debugger shows the caption.
5. The object recieved at the web method  of the web service -- as seen in the debugger of visual studio running the service
If anyone has any work around for this pl let me know.

Similar Messages

  • Complex data to web service

    I have read many posts and alot of documentation and would
    just like to confirm that it is NOT possible to pass what you could
    consider "complex" data to a web service. Data that is in an array,
    ArrayCollection, or even a actionscript class, that I need to pass
    to a .net web service (c# or vb.net) does not come out on the other
    side. I have tried making the .net web service parameter an object,
    array, arraylist, byte array, xml node, etc -- nothing happens.
    Am I wrong? If so, could anyone provide some code (on both
    the Flex 2.0 and .net web service side) that shows how to take the
    complex data sent from Flex to the web service and actually
    properly read the data in the web service. The intent would
    obviously to update a SQL Server database.
    Currently, my Flex web service calls have many many parameter
    tags under the <mx:request> tag - each one corresponding to
    the input parameter of the .net web service. My intent is to
    simplify the input parameters on both sides.
    Again, am I waiting for Flex 3.0 or am I just a little
    slow?

    Thank you for your reply. However, I have no problem getting
    data into Flex from .net (web service). It is getting data from
    Flex back into .net (web service) that I have an issue with. I can
    pass simple strings, numbers, bool, etc but it is when I try to
    pass ArrayCollections, actionscript classes , etc from Flex to .net
    that I can not seem to get it to work. Any help in this area would
    be greatly appreciated.
    Steve

  • Send Multipart message in web service

    Hi All,
    I have configured IDoc-SOAP-File scenario successfully.
    Now My sender and receiver structure is changed.
    I mean in my Idoc i cn have node repeated number of times and so i have changed my occurace at wsdl file also, so tht for all web service will be call only once and response will also have 1-unbound occurance.
    When i run sceanrio...i m able to send Idoc with multiple node in it and request is futher sent to web service.
    But in response i m gettin response only for first one as web service is just sending/accepting (?) data for 1st occurance of node.
    Please guide me for same tht how i can send multiline data to web service and accept multiline responce.
    Regards,
    Manisha

    Check this note: https://service.sap.com/sap/support/notes/856597
    Q: My web service expects a SOAP with multiple elements in the SOAP body. How can I create such SOAP message?
    Check if you have done the setting as mentioned in the answer.
    Regards,
    Abhishek.

  • Sending Data to BAM via web service

    Is it possible to send data to BAM data objects via web service / http soap ? I know we can call extenal web service from BAM, but I was thinking of doing a real time from source application to BAM via http-soap web service.

    Hi,
    I hope it es not too late for an answer ...
    Yes you can do that .... have a look to this example
    procedure UpSert_DO (do_name VARCHAR2, do_key VARCHAR2, xmlload VARCHAR2) is
    begin
    --'&lt;_NAME>HZ.01.10&lt;/_NAME>&lt;/_WS>
    http_post(
    'http://localhost/OracleBAM/Services/DataObject/DataObjectOperations.asmx',
    '<?xml version = ''1.0'' encoding = ''UTF-8''?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://xmlns.oracle.com/integration/bam">
    <env:Body><ns0:Upsert><ns0:dataObject>' || do_name || '</ns0:dataObject><ns0:keyCSV>do_key</ns0:keyCSV><ns0:xmlPayload>' || do_key ||
    xmlload ||
    '</ns0:xmlPayload></ns0:Upsert></env:Body></env:Envelope>',
    'text/xml; charset=UTF-8',
    null,
    null,
    'USER_NAME',
    'PASS_WORD',
    '"http://xmlns.oracle.com/integration/bam/Upsert"'
    end;

  • Update/insert/delete data from xcelsius to Database via web service

    Hi,
    I need to create dashboard that go function can <b>update/insert/delete</b> data send to <u>Database</u> thru <u>web services</u>, as i know got 2 xcelsius add-on software which support those of function <b>InfoBurst</b> and <b>flynet </b>
    <b>InfoBurst</b>
    http://www.infosol.com/azbocug/minutes/4-Writeback%20to%20a%20Database%20with%20Xcelsius.pdf
    <b>flynet </b>
    http://www.flynetviewer.com/public/community/Blogs/FlynetXcelsiusServerUser/default.aspx
    Except this 2 purchase add-on xcelsius, any other solution ?  
    Maybe need to write some in MSSQL or C# programming which enable insert, update, delete ...etc  ?
    *note: i not use Xcelsius Engage Server , i use Xcelsius Engage only
    thanks,
    regards
    s1
    Edited by: Leong Pui Kee on Mar 1, 2011 6:06 AM

    Hi,
    As of now in Xcelsius/Dashboard Design there is no feature or functionality to insert/update/delete data from database.
    Solution:
    Create a Web service in let’s say C# or Java, which will perform insert/update/delete operation.
    In Xcelsius add Web Service connection and user above web service.
    Xcelsius Web Service connection provides option to pass input values to a Web Service (Input Pane) and get the result (Output values pane).
    We can pass values to be written to the database as a input to Web Service via Web Service connection from Xcelsius and write data to the database.
    Note:
    Performing delete operation from Xcelsius Dashboard could be risky and may delete important data from database. I would not prefer giving delete option/functionality in Xcelsius dashboard.
    Hope this helps!
    Thank you.
    Regards,
    Vinay Mhaske

  • Consuming an ASP web service which responds with complex data types...

    Here's my problem - I'm trying to consume a web service from a provider that uses complex data types.
    The starting part of the WSDL looks like this (I've not included the whole thing) - named have been changed to protect the innocent:
    <wsdl:definitions targetNamespace="http://domain_name">
    <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://domain_name">
    <s:element name="Authentication">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string"/>
    <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
    <s:element minOccurs="0" maxOccurs="1" name="Token"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="AuthenticateResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="AuthOK" type="s:int"/>
    <s:element minOccurs="0" maxOccurs="1" name="Token"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    Since it's a complexType return, with a sequence, I'd expect an array or structure returned, but instead I just get the "AuthOK" value, and no way to get anything else.
    Here are the ways I've tried calling it:
    <cfscript>
        WS = createObject("webservice", "https://WSDL_URL");
        WS_ret = WS.Authentication(Username = "username", Password = "password", Token = "");
    </cfscript>
    <cfdump var="#WS_ret#" />
    <cfinvoke webservice="WSDL_URL" method="Authentication" returnVariable="WS_ret">
        <cfinvokeargument name="userID" value="7253320" />
        <cfinvokeargument name="password" value="ctpjxs3" />
        <cfinvokeargument name="SecurityToken" value="" />
    </cfinvoke>
    <cfdump var="#WS_ret#" />
    Any ideas how I can get the other variables in the sequence? I have other calls after this that have a much larger amount of variables, and as such I can't use it without being about to get more of the

    Thanks for the reply.
    If I CFDUMP the variable it returns just "1", no XML tags, nothing at all around the data - according to the web service providers they say that they are supplying the Token part as long as the first variable is "1" (a logical true if the authentication passed). If it is "0" then no Token is returned, that is why it's optional.
    As for the CFdocs issue, look here:
    http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=webservices_25.html
    The paragraph before it (about 2/3 down the page) states:
    In this example, the operation updateEmployeeInfo takes a complex type as input and returns a complex type as output. To handle the input parameter, you create a structure. To handle the returned value, you write it to a ColdFusion variable, as the following example shows:
    It even states that you call "updateEmployeeInfo", and nowhere mentions "echoStruct" as a method - it's seemingly been put in as a random method name, or a function call for something else. The WSDL above the example only mentions "updateEmployeeInfo" and "updateEmployeeInfoSoapOut", again not mentioning "echoStruct".
    I see this as an error in the docs as it's calling a non-existant entity in the WSDL, which should cause a run-time error.

  • Need help in design the scenario sending data to web service

    Hello All,
    I need to send data to web service and get the response back.
    i want to use HTTP to soap Scenario.Please let me know the necessary steps in the scenario.
    Thanks and Regards,
    Chinna

    Hi Chinna,
    > i want to use HTTP to soap Scenario.Please let me know the necessary steps in the scenario.
    Split this into 2 scenarios
    1. HTTP to SOAP (Request) treated as Asynchronous.
    2. SOAP to HTTP (Responce) treated as Asynchronous.
    For HTTP to SOAP synchronous scenario
    Here the receiver side request and responce structures no need to create, the receiver client will provide you the XSD file, on that XSD file having the request and responce message structures, so you have to import that to XI server as External definition.
    For sender HTTP you have to create 2 data types, 2 message types as well as 2 message interfaces, 2 message mappings for request and responce messages and 2 service/Message interfaces (HTTP is outbound and SOAP is inbound).
    Configuration objects are same.
    Regards
    Ramesh

  • Want to find out how much data a Web Service is sending to client (JWSDP)

    Well, the subject line didn't fit what I was intended to say, so if you don't get what I am saying in the subject line, I am sorry.
    My question is... I have a Web Service client that uses stub classes generated by wscompile in JWSDP. I am wondering, it there a way to find out how much data the Web Service is sending back to my client.
    The reason I asked is this, I used WebLogic 7.0 workshop to create a Web Service and also used JWSDP to create the same Web Service which deploys to Tomcat. The generated WSDL files from WebLogic workshop and JWSDP that expose the same functionalities have differences. The WSDL from WebLogic workshop is 1.5 times the size of the WSDL from JWSDP. When I tested both with client programs, calling the Web Service in Tomcat (which uses JWSDP to built) is much quicker than calling the Web Service in WebLogic.
    For this reason, I would liked find out if the Web Service from WebLogic is sending more data than the one created with JWSDP.
    Thanks.

    I've used the TcpTunnelGui utility to see the HTTP flowing up and down the wire, that might help you.

  • How do I send XML to a web service?

    I am brand new to Flex. I am trying to write a program that
    uses web services to send and receive data. I have gotten it so
    that it can receive XML from the web service. However, I also need
    to send it, and I am stuck.
    I have tried the following code:
    <mx:WebService id="MyService"
    wsdl="
    http://localhost/FlexTest/service1.asmx?WSDL"
    useProxy="false"
    result="resultHandler(event)">
    <!-- Input: XML Document...Output: String -->
    <mx:operation
    name="HelloPersonAcceptsXmlDocumentReturnsString">
    <mx:request>
    <personXmlDoc>xmlPerson</personXmlDoc>
    </mx:request>
    </mx:operation>
    <!-- Input: XML Node...Output: String -->
    <mx:operation
    name="HelloPersonAcceptsXmlNodeReturnsString">
    <mx:request>
    <personXmlNode>
    xmlPerson.Person
    </personXmlNode>
    </mx:request>
    </mx:operation>
    <!-- Input: String (XML Format)...Output: String -->
    <mx:operation
    name="HelloPersonAcceptsXmlStringReturnsString">
    <mx:request format="xml">
    <personXmlString><p1:Person xmlns:p1="
    http://impact-tech.com/schemas/FlexTest"><p1:ID>f1bd45fc-544b-489d-83cf-349d1f9740ec</p1:I D><p1:FirstName>Joe</p1:FirstName><p1:MiddleName>C.</p1:MiddleName><p1:LastName>Blow</p1:L astName><p1:BirthDate>2006-09-11T14:03:04.4755443-04:00</p1:BirthDate><p1:IsMarried>false< /p1:IsMarried><p1:NumChildren>0</p1:NumChildren><p1:NetWorth>100000</p1:NetWorth></p1:Pers on></personXmlString>
    <!--<personXmlString>{xmlPerson.toXmlString()}</personXmlString>-->
    <!--<personXmlString>{txInput.text}</personXmlString>-->
    </mx:request>
    </mx:operation>
    </mx:WebService>
    In the first operation,
    "HelloPersonAcceptsXmlDocumentReturnsString", I try to send an XML
    object. In the second operation,
    "HelloPersonAcceptsXmlNodeReturnsString", I try to send the root
    node, xmlPerson.Person. In both cases, what actually gets sent is
    literally the text that I put in the <request>node, not the
    object that text is referencing. So for the first, "xmlPerson" gets
    sent to the target, not the XML doc that it refers to.
    In the third operation, I tried three different things, and
    two are commented out. I tried to reference the XML object using
    the toXmlString() method, but again, it literally sent the text
    "xmlPerson.toXmlString()". I tried the curly-brace binding, but
    then nothing gets sent to the web service. I also tried building
    the actual XML document node by node, with values, but I get an
    error from the web service saying it can't be parsed because there
    is an illegal character at Line 1, Position1. The only thing which
    has worked has been to add an Input Text box, copy-and-paste the
    exact same XML structure as I tried to manually build, and then use
    binding to the text property of the InputText control. Then it
    works fine. But I can't actually do that, it's just for testing.
    So my question is how to make a <request> node that is
    part of the web service operation that references an object and
    sends the value of that object to the web service, not literally
    whatever text is typed in that node. I looked at the Web Services
    and Data Binding sections of the help, and didn't see any examples
    covering this. Everything was far more simplistic with binding to
    controls. Can anyone help a newbie, please?

    I don't understand how this isn't a Flex Builder question,
    since it has to do with how Flex Builder interacts with web
    services and how objects are used in binding in MXML.
    But at any rate, I got this code to work, for future
    reference of anyone else looking in this forum:
    Declaring a custom class in MXML was key to allow proper
    binding:
    <CustomClasses:Person id="testPerson" xmlns:local="*"/>
    <mx:WebService id="MyService"
    wsdl="
    http://66.129.123.211/FlexTest/service1.asmx?WSDL"
    useProxy="false"
    result="resultHandler(event)">
    <!-- Input: XML Document...Output: String -->
    <mx:operation
    name="HelloPersonAcceptsXmlDocumentReturnsString">
    <mx:request>
    <personXmlDoc>{testPerson.GetXmlDoc()}</personXmlDoc>
    </mx:request>
    </mx:operation>
    </mx:WebService>

  • How to download a file via web service in Windows Phone 8.1?

    My project just got 2 part.
    1.Pivot app
    2.Webclient server (provide data for pivot app the view the data)
    My concert that how do i do a download button to download a file via web services in to isolated storage.
    urgent!

    something like this:
    public async System.Threading.Tasks.Task DownloadFile()
    using (var client = new Windows.Web.Http.HttpClient())
    var stream = await client.GetInputStreamAsync(new System.Uri("http://urltomyfile"));
    var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("myfile.txt", CreationCollisionOption.GenerateUniqueName);
    using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
    IBuffer buffer = new Windows.Storage.Streams.Buffer(1024);
    while ((buffer = await stream.ReadAsync(buffer, buffer.Capacity, InputStreamOptions.None)).Length > 0)
    await fileStream.WriteAsync(buffer);
    await fileStream.FlushAsync();
    how is your webservices offering the file?
    Microsoft Certified Solutions Developer - Windows Store Apps Using C#

  • Update key mapping via web service

    Hi ,
    I have a question about edit key mapping. The problem is that we create vendors in MDM and syndicate them to different ERP systems. To decide which system a new vendor/changes must be send to, I need the Edit Key Mapping, but the users do not want to enter this information manually and I do not see how I can create key mapping automatically.
    We are working on a new solution where vendors are entered in sharepoint and updated in MDM via web services. I would like to know if one of you know if key mapping can be maintained via a web service.
    Kind regards
    Jonna

    Hello,
    You may use the document,
    [MDM PI via Web Service Key Mapping|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/e0812356-e62f-2c10-76aa-9a02d038ba81]
    Hope this helps your scenario
    Regards,
    Abhishek

  • Executing a Job via Web Services using a Server Group?

    When executing a job from Designer or from the Management Console you have the option to select a specific job server or a server group.
    But when executing a job via Web Services it uses the first job server with which the repository was associated (i.e. the first job server listed in AL_MACHINE_INFO).
    Is there a way to get the job to execute using a server group instead simply choosing the first job server in the list?
    Note: We are using FIM to execute the jobs via web services and don't have access to additional parameters.

    Joe
    Here is the where you can change the server group/job server.
    - After you add the Batch/real Time job as a webservice.
    - Go to the Webservice Batch Job Attribute and from the drop down choose the "Enable job Attributes" and hit apply.
    - After this if you use the WSDL URL http://<Data Services Web Server>:<Web server Port>/DataServices/servlet/webservices?ver=2.0&wsdlxml
    - You will see the job attributes that you can change based on the allowed parameters mentioned in the documentation.
    The batch job or real time job is published without the job parameters by default. Once you enable the job attributes, remove and re publish the batch job as a web service. The application making the call to this webservice should be able to read the WSDL generated by Data services and pickup all the input and output parameters of the method.
    Refer to the Data Services Integrator guide (Chapter 3 : pages 25 - 33 ) to get the exact parameter values permitted via Data Services jobs called via web services.
    Hope this helps!
    Thanks & Regards
    Tiji

  • Web service call problem with complex types input

    We are trying to call a web service and pass as parameter
    some complex types. When invoking the web service everything works
    well on flex side, but on the server side the input parameters we
    get from flex are not correct - complex type is removed and the
    elements of the complex type are sent. See the example:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute">
    <mx:WebService id="ws_id" wsdl="link" useProxy="false"
    fault="wsFault(event)">
    <mx:operation id="op_id" name="op"
    result="wsResult(event)">
    <mx:request>
    <parameters>
    <parameter1>{value1}</parameter1>
    <parameter2>{value2}</parameter2>
    <parameter3>{value3}</parameter3>
    <parameter4>
    <parameter4_1>{value4_1}</parameter4_1>
    <parameter4_2>{value4_2}</parameter4_2>
    <parameter4_3>{value4_3}</parameter4_3>
    </parameter4>
    </parameters>
    </mx:request>
    </mx:operation>
    </mx:WebService>
    </mx:Application>
    on server side we get this:
    <parameters>
    <parameter1>{value1}</parameter1>
    <parameter2>{value2}</parameter2>
    <parameter3>{value3}</parameter3>
    <parameter4_1>{value4_1}</parameter4_1>
    <parameter4_2>{value4_2}</parameter4_2>
    <parameter4_3>{value4_3}</parameter4_3>
    </parameters>
    Instead of :
    <parameters>
    <parameter1>{value1}</parameter1>
    <parameter2>{value2}</parameter2>
    <parameter3>{value3}</parameter3>
    <parameter4>
    <parameter4_1>{value4_1}</parameter4_1>
    <parameter4_2>{value4_2}</parameter4_2>
    <parameter4_3>{value4_3}</parameter4_3>
    </parameter4>
    </parameters>
    Any idea how is it possible to send complex type as web
    service input from flex ?

    Hi,
    I also have similar type of problem where I need to invoke a Web service with Complex input parameters.
    I followed Susan's blog but I stuck at a point where methos getItem is created.
    Can anyone tell me how to get that method for my requirement.
    If possible can you guys share your solutions here.
    Thanks in advance.

  • How to start a process via web service with automatically run first screen

    Hi guys,
    we want to start the process via web service and skip the inbox presentation of the first human activity of the process. It means that the first activity should start automatically by clicking the link (wsdl link).
    Is there any opportunity to realize this thought?
    THX
    Regrads
    Phil

    Hi Phil,
    You may refer to my blog series for steop by step procedure on how to initiate a BPM workflow through webservice. Below are the links:
    /people/arafat.farooqui/blog/2009/08/13/introduction-to-sap-netweaver-bpm-part-4
    /people/arafat.farooqui/blog/2010/06/23/introduction-to-sap-netweaver-bpm-part-5
    Hope this helps!!
    Regards,
    Arafat

  • Create Web Services and return a complex type with ADF

    Hello,
    I've tried tried using ADF BC and service interface to create a Web service, this works well, but I needed to return more complex data types, such as a list of person objects (name, last name, ...), as I reviewed in the ADF BC service interface can return only some types of data :(
    Anyone know how I could do this using ADF BC, or how else do you recommend
    thanks

    How I can access to the AppModule from java class in the Model Project
    I've tried use
    String amDef = "model.services.WsAM";
    String config = "WsAMLocal";
    ApplicationModule am = Configuration.createRootApplicationModule(amDef, config);
    WsAMImpl myAm = (WsAMImpl)am;
    but in the Web Service, this throw a exception
    <ns2:exception class="java.lang.NoClassDefFoundError" note="To disable this feature, set com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace system property to false" xmlns:ns2="http://jax-ws.dev.java.net/">
    <message>oracle/jbo/client/Configuration</message>
    please I hope your help
    Thanks.
    Edited by: rmespas80 on 08-jul-2011 16:26

Maybe you are looking for