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
-
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,
ManishaCheck 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
--'<_NAME>HZ.01.10</_NAME></_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 AMHi,
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 theThanks 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,
ChinnaHi 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
JonnaHello,
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
PhilHi 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
thanksHow 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
-
I need some help because I might update my iPad 2 soon.
-
File format while sending a file using FTP Process
Hi, I am facing a formatting problem when i send a file from SAP application server to a different sever using FTP process. The problem is like this: Lets say I have a file with 10 records on the application server. When i am downloading this file to
-
Custom Report generation in the Simple UserInterface
Hello, I've created a workspace, a project and some sequences in TestStand 4.0. I've also created a custom report generation. This all works fine in TestStand. The custom report file is a txt file. The custom report generation is chosen above the def
-
The pages will start to merge into each other, or something, usually with a delay after trying to get to a different tab. It's realy hard to explain what I mean, so look at the screen shot. This time it was a bit cute due to what parts of the pages I
-
Implementing keyboard control on a window
Hi, I'm currently trying to implement keyboard control for a tetris game I'm attempting to make, but I've done it a rather dodgy way. I've implemented it on a Jpanel instead. What I want to do is, implement the keyboard control on the window, however