Mapping question - File to Webservice scenario
Hi
I have a text file - that is pulled in by XI - using a ftp adapter - source interface. On the other side - target interface - we have a webservice whose definition is loaded into XI as a external interface defiinition - message type level.
Now , for every record in the text file - I need to call the webservice method- once . The webservice method definition is such that - the top level node has occurence 1-1 and type is blank - The parameters to be passed to the method appear under it -
I tried using split-by-value node function to make the mapping call the webservice method once for each record in my input text file - this results in the webservice method being called just once - not as I expected ( once for each record in my text file )
Where am I going wrong with this ? Is it possible to make the call to the webservice method - with the top level node having the definition described above - once for each record in my source text file ? Since the webservice method has been imported as an external definition ( *wsdl ) , I am unable to put it under any other higher level element .
Any pointers/suggestions as to where I am going wrong - how to make this scenario work will rewarded with full points.
Thanks.
Prakash
Thanks for the reply. Yes, I have a file content conversion - involved here - I have already specified the value for No.of Recordsets per message as<b> 1</b>.
However, I have specified the value for Recordset Structure as <b>TrkfileRecordset,*</b> - where TrkfileRecordset is my unbounded structure representing each line /record in my file .
With this setting, the whole file is being converted to a single xml message - with the records in the file repeating as multiple TrkfileRecorset nodes. Maybe , if I change the * to a 1 in the Recordset Structure definition - the file adapter will read each file record as a single individual message - as per your suggestion of avoiding a BPM.
Now, the typical volume we expect is 500 lines split across many file during a day - I am thinking - with this volume -whether involving a BPM ( which takes in one message per file and splits it ) or creating one xml message per record in the file ( which would mean 500 xml msgs per day ) would be better -
Please share your thoughts on the options I have with XI SP13 to handle this scenario.
Similar Messages
-
File - XI -WebService Scenario Question
XI is using Receiver SOAP Adapter to trigger webservice. This scenario is executed every 15 mins. Webservice admin saying that there are 10 to 15 Xi user Ids at any given point time in the receiving server. Why does the User Id stays active even after successfully completing the call ?. How can we control in XI to logoff after each call from the receiving server?. Appreciate any help or direction to this problem.
Hi,
Can you pleae tell us whether you are using asynchronous or synchronous? If synchronous then you have to change it asynch because it File adapter doesnot support synchrnous messages?
---Satish -
Error in Synchronus File to Webservice Scenario
Hi Friends,
Following is my Scenario,
I am trying to Send a file from SWC(Software Componebt) A(System) to SWC B(Web Service) and want to have response from Web Service.
When I am trying the Scenario for QOS Exactly Once than Request is going to Web Service Successfully but when I am changing the QOS to Best Effort (For Synchronus scenario) in Sender Communication Channel then Communication Component B to A triggers first and then A to B rather it should happen in reverse way I suppose. Following is the Error which I am getting in SXMB_MONI for the Scenario for Sender as B and Reciever as A.
" <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 404 Not Found</SAP:AdditionalText>"
Your any input will be highly appreciated.
Regards,
Nitin PatilHi,
your file to web service req msg scenario worked as you said from system A to system B.
now your msg interface for web service will be synchronous having req and response.
now make another interface for receiving response from system B and make it asnychronous.
so when system B will send a response msg, then you will map it to above msg. then you will send this response msg by a receiver file adapter by configuring in ID.
Regards,
Rajeev Gupta -
Doubt in fields - message mapping (file 2 idoc scenario)
while doing message mapping in file 2 idoc scenario, i could not able find the values for some field names
( i am following this wiki help
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/2007/05/11/fileToIDOC& )
cremas04 idoc
vendorNo LIFNR
vendor name Name1
Pur_org ? ( I could not able locate field with the similar desc in idoc MT side)
Company code ?
Acc_Grp ?
Search term MCOD1
Address ADRNR
City ORT01
Pin_code PSLTZ
could you help me out with this?
Message was edited by: praba
prabahi,
I got the answer. -
Fault Messages/Response handling in File-XI-SOAP scenario
Hi
I have a File-XI-Webservice scenario.
Suppose I am sending a call "Request" to the webservice with 4 fields a,b,c and d. If the call is succesful we get an epmty "Response" back. Suppose any of the fields a,b,c or d are missing then the webservice throws an "AccountUtilsException" with a message "Required data 'c' missing". I want to be able to capture this message in a file.
I tried using asynchronous scenario first but that didnt work. I didnt get an empty response back for successful messages, neither did i get an error in sxmb_moni for missing data. Only the SOAP adapter would be red and the error "UNKNOWN ERROR" would appear. So I created a BPM with a receive, send-sync, send steps. With the AccountUtilsException set up as the response. Now, when all the data is good everything is successful and a file is created with the empty "Response" xml. When any of the fields is missing I see errors in sxmb_moni with Message class "Application error". But when I go into the payload I cannot see the xml. Instead it says "Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later." When I click view source I see the xml with the message "Required field c is missing". A file is also not written. Can anyone help me figure out what I am doing wrong?
Thanks,
JahnaviHi Jahnavi,
yes, the asynchronous scenario cant work because there is no answer.
I think you should have exception types in your interfaces and map the fields of the exception. I m not shure if the answer of the webService in case of exception (AccountUtilsException) is a xml msg, you shoud be able to find out that at RTW message monitoring. You should be able to put that into a the exception type of the interface. Another possiblility to pick the exception up would be an alert.
Regards,
Udo -
Java heap space error occured during message mapping of FILE to IDOC
hello Friends,
I am trying to do the message mapping for File to Idoc scenario.
Idoc which I am using is HRMD_A.HRMD_A06 and infotype which I want to update is 14. I am trying to map the message type which I hav created for infotype 14 with the IDOC
Its very simple scenerio but every time I try to save the mapping before activating it I get an error:
Java heap space
Internal problem occurred (INTERNAL_PROBLEM)
Java heap space.
I am not able to figure out what possibly is the problem wheather its from my end or the BASIS end.
Kindly help.
Regards,
LokeshAs the server probably survives (you restart your Integration Builder and can probably connect immediately), the problem will be on your side (client). Did you add one or more large xml-test-instances to the mapping ? If yes, delete them, because they lower the performance and can make problems. If not, then this is a strange problem. Even if the Idoc structure is complex, the mapping object itself cannot be that large.Is this problem only with this one mapping ?
CSY
Edited by: Christian Sy on Mar 9, 2010 6:26 AM -
please guide me in providing step by step procedure for "FILE TO WEBSERVICES" scenario.
go through this link for webservices
/people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi
you can have a look at the followin scenario as well
/people/shabarish.vijayakumar/blog/2006/03/23/rfc--xi--webservice--a-complete-walkthrough-part-1
/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
refer this thread
Re: Large file handling issue
Re: Java proxies for handling large files
Does SAP XI (PI 7.0) support streaming to support large file/Idoc
/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit - refer that blog and use the SOAP adapter and the WS instead of the RFC part.
see this blog from Robert Chu, but it might give you a good start to creating web services:
/people/sap.user72/blog/2005/12/29/service-enable-your-sap-application-component
There is also a "Web Services" section in SDN that provides a lot of documents and perhaps some tutorials (I haven't searched in-depth).
https://www.sdn.sap.com/irj/sdn/developerareas/webservices0
Thanks!! -
Can I include 2 diff strctures in d same wsdl file in a webservice scenario
Hii all,
We are using webservice to webservice scenario in which sender shld b able to send all the new rquest to the target and receive any updations or modifications from the receiver.
Few fields are different for request and modification structures. so i created 2 diff structures for source and target.
can any one suggest me who can i use single wsdl file for both the msgs( Creation and modifications) mean how to implement multi maping ( 1 to many) using wsdl
Regards
AnuA simple way to include the 2 structures in one WSDL would be to create a combined structure similar to the one below:
<RequestPackage> (1 occurrence)
<Request> (0 to n occurrence)
<Create> (0 to 1 occurrence)
... Create Fields u2026
</Create>
<Modify> (0 to 1 occurrence)
u2026 Modify Fields u2026
</Modify>
</Request>
</RequestPackage>
This is more complex than using 2 wsdls but it would allow you to easily send multiple create and modify records in the same message.
- Craig -
File name to be read in mapping - File to SOAP Scenario
Hi all,
its a file to soap scenario. i need to send the file name also to target system. how can i get the file name in the mapping? is there a way to read the header information in mapping?
Regards,
RashmiYou need to check for Adapeter specific Message Attributes of your File adapter.Then write user defined function to set Dynamic_configuration. So that you can get the file name in the header(u can chk this in SXMB_MONI after implementing the UDF, it will create one section for dynamic_configuration.)
Manisha -
Pass through scenario in SAP PI with no mapping for File to IDoc and Idoc to file scenarios
Hi Experts,
Can i have step by step process in SAP PI for pass through scenario with no mapping in case of file to Idoc and Idoc to file both cases please.
What objects i can skip.
My PI system is 7.3 dual stack.
I have seen below blogs, still its confusing to me.
When and how to create an scenario in SAP PI without mapping objects.
Pass Through Scenario with no Mapping in PI 7.1
Appreciate your help on this.
Regards,
Mohan.Hi Mohan
In pass thru interface you don't need to create any ESR objects, only ID objects are required.
Just Create a Receiver Determination and Receiver Agreement for your scenario (no need for Interface Det. and Sender Agreement).
Specify the IDOC in the Sender Interface and namespace as urn:sap-com:document:sap:idoc:messages
Or instead of creating objects manually, Run the wizard with Idoc name/namespace in sender/receiver interface
Regards
Osman -
Mapping of Control records in file to idoc scenario
Hi,
In the mapping part of file to idoc scenario is it necessary to provide the exact control record details
or will it pick what ever is mentioned ? Can any one please explain regarding the same?
Many Thanks,
Sharathhi,
in case of apply control records from payload
It is indeed very simple to do it and the feature is available from SP10. I have seen lot of posts on the forum for the same and that is the reason for this blog. We can manipulate the control record in the mapping editor and map the EDI_DC40 segment of Idoc as required. Most of the times we need to map only SNDPRN, RCVPRN, SNDPRT, RCVPRT for posting Idocs with appropriate partner profiles in SAP R/3 destination systems. We can disable the rest of the fields as shown below. We need to manually change the control record of idoc for populating partner profiles in the control records while dealing with non-sap sender system, which will be used by receiver SAP system for posting idocs with appropriate ALE configurations.
check this blog
/people/sravya.talanki2/blog/2005/12/02/manipulating-idoc-control-records-from-payload
regards
chandra -
File to SOAP scenario question???
Hi,experts
let's take source system is A,target system is B.
I have a File to soap scenario using BPM,the scenario is send file request(from A) to PI,PI will be communicating target system(B) with soap(syn).After that, PI receives the soap response and send the response data to A.
Now the requirement is, we need to archive the file request msg(before sending to B) to a folder and archive the response msg(response from B) to a folder as well.how could it be achived?
any help will be much appreciated!
ThanksHello Rajesh_V2009 ,
I am trying to implement exactly the same pi scenario, but having some problems :
File -> file adapter -> ccBPM -> soap receiver adapter -> web service request -> web service response -> ccBPM -> output file adapter.
The web service that I call works file from wsnavigator. I have created all the design and configuration objects
needed for the scenario.
I place a file with following contents:
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<pns:GetSetNameWS xmlns:pns="urn:file2soap2fileWSVi">
<pns:name1>ajeet</pns:name1>
<pns:name2>phadnis</pns:name2>
</pns:GetSetNameWS>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
When I look at the process monitor I get this:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Receiver Determination
-->
- <SAP:Error SOAP:mustUnderstand="" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="RCVR_DETERMINATION">CX_RD_PLSRV</SAP:Code>
<SAP:P1>Problem while determining receivers using interface mapping: No operation with XML root tag http://schemas.xmlsoap.org/soap/envelope/.Envelope exists.</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:Stack>Error when determining the receiver: Problem while determining receivers using interface mapping: No operation with XML root tag http://schemas.xmlsoap.org/soap/envelope/.Envelope exists. Problem while determining receivers using interface mapping: No operation with XML root tag http://schemas.xmlsoap.org/soap/envelope/.Envelope exists. No operation with XML root tag http://schemas.xmlsoap.org/soap/envelope/.Envelope exists.</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
I have no clue about this error. Can you help me with this ?
If yes I can send you more details, if you liked
Hoping to get help from you,
Cheers,
Ajeet Phadnis -
File to IDOC scenario : Error with mapping due to Context handling
Hi Experts.
I have a file to IDOC scenario which need your advice.
Source File structure as follows:
Control_Header <1:1>
Invoice_Header <1:unbounded)
Invoice_Line <1:unbounded)
Trailer <1:1>
Payload as follows capture from SXMB_MONI
- <Control_Header>
<Key>999</Key>
<TransactionID>RCTV</TransactionID>
</Control_Header>
- <Invoice_Header>
<Key>000</Key>
<BusinessUnit>HDB05</BusinessUnit>
<InvoiceNo>64471</InvoiceNo>
</Invoice_Header>
- <Invoice_Line>
<Key>001</Key>
<UnitPrice>7.00000</UnitPrice>
<Quantity>1.0000</Quantity>
<GSTAmount>0.49</GSTAmount>
<GSTRate>0.07</GSTRate>
</Invoice_Line>
- <Invoice_Line>
<Key>001</Key>
<UnitPrice>8.00000</UnitPrice>
<Quantity>1.0000</Quantity>
<GSTAmount>0.56</GSTAmount>
<GSTRate>0.07</GSTRate>
</Invoice_Line>
- <Invoice_Header>
<Key>000</Key>
<BusinessUnit>HDB21</BusinessUnit>
<InvoiceNo>6Y0575</InvoiceNo>
</Invoice_Header>
- <Invoice_Line>
<Key>001</Key>
<UnitPrice>49.50000</UnitPrice>
<Quantity>1.0000</Quantity>
<GSTAmount>3.47</GSTAmount>
<GSTRate>0.07</GSTRate>
</Invoice_Line>
- <Trailer>
<Key>TRL</Key>
<TransactionID>RCTV</TransactionID>
<TotalFeedLine>96</TotalFeedLine>
<HashTotalValue>212.00</HashTotalValue>
</Trailer>
</ns:MT_EINVOICE>
Mapping as follow:
IDOC
<Control_Header> -> <Control_Header>
<Invoice_Header> --> <Header_Invoice>
<Invoice_Line> ---> removeContext --> <Line_Invoice> this is the child node of <Header_Invoice>
<Trailer> -
> <Trailer>
The result of the using the above Payload get the following result which not wht I seek
<Control_Header>
<Header_Invoice>
<Line_Invoice>
<Line_Invoice>
<Line_Invoice> *** This belong to the Invoice_Line of the second <Header_Invoice> at the payload
<Header_Invoice>
<Line_Invoice> *** THis segment is empty
<Trailer>
I required the Line_Invoice to belong to the child of the second <Header_Invoice>, I have tried using
removecontext with splitVaue and collaspeContext but to no avail.
May I know what is my mistake on the mapping of the Invoice_Line to Line_Invoice>
Rgds
FNGHello,
There should be something that could correlate the Invoice_Header/Key and Invoice_Line/Key. In your example, both are the same for the first and data set. If the sample looks like the one below, it is possible to sort things by correlating the Invoice_Header key and Invoice_Line key
<Invoice_Header>
<Key>000<Key>
</Invoice_Header>
<Invoice_Line>
<Key>000<Key>
</Invoice_Line>
<Invoice_Line>
<Key>000<Key>
</Invoice_Line>
<Invoice_Header>
<Key>001<Key>
</Invoice_Header>
<Invoice_Line>
<Key>001<Key>
</Invoice_Line>
An example mapping could look like this
For Header
Invoice_Header --> Header_Invoice
For Line
/InvoiceLine/Key --> removeContext --> splitByValue:valueChanged --> Invoice_Line
The subfields of the invoice line would also follow a similar logic, you just need to use formatByExample --> splitByValue:eachValue so that the context levels are the same.
Hope this helps,
Mark -
Newbie Question: Gererating a mapping xml file
How is castor used, if even, to generate the mapping xml files from the classes generated by castor from an xsd? I have a(n) xsd that has many complex types and this called for the generation of many castor classes from that xsd...so, using these class files...how do I generate a single mapping xml file?
Here is the means by wich we use these two (the xsd and mapping file) in one of our methods?
xmlWriter.write(req, res, someDetail, "someDetail.castor.xml",
"someDetail.xsd");
Prior to this, the xsd files were simple and I created the mapping file by hand. I don't know how this translates when there are so many classes that were generated by caster.
Can someone point me in the direction of more information on how to create this mapping file from all of these classes?
Any advice would be appreciated.
-abeCan do... I have been working on a readme.install to this end. One question about the pre_upgrade script. /usr/share/pacman/proto.install states:
## arg 1: the new package version
## arg 2: the old package version
#post_upgrade() {
# do something here
I'm confused by the arg 1 and arg 2. Is it simply the version number with nothing else.
EDIT: ok.. I get it, Assign a variable to them to capture and check.
# $1: The new package version
# $2: The old package version
post_upgrade() {
NEW=`echo $1`
OLD=`echo $2`
if [ "$OLD" = "1.0.1" ]; then
do something
fi
Last edited by graysky (2010-02-11 22:01:03) -
File to JDBC Scenario using stored procedure Question
Does anyone have an aswer (or have you seen a Blog that covers it) to the problem of having to do a table refresh before doing inserts in a file 2 jdbc scenario?
Essentially the details are as follows:
I have an input file that has all the data for a table (it's a complete table dump) of lets say userdata (username, name, hiredate).
I need to pass that to an oracle database via stored procedure(s). But before I start issuing my insert (via insert stored procedure) I have to somehow issue a delete statement to delete all the contents of the table I'm about to update. I'm on XI 3.0 and aren't sure what the best solution to this may be.
Again if there is a blog that covers this then if you could point me in that direction it would be great. Otherwise if anyone has any good ideas it would be appreciated.Hi,
For structure refer this blog..
/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30
Use two <Statement> tags as shown here and there you may have separate tablenames.
http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/frameset.htm
Thanks,
Jogula Ramesh
Maybe you are looking for
-
Plz help me out. Urgent Issue
I have a canvas with a image , text box and a check box.I am displaying it using a tile list(the data is dynamic), but the behaviour of the check box is unpredictable when scrolled. when i do scroll the check box gets checked and unchecked by itself.
-
Why can't I copy and paste the music from my iPhone on iTunes 11 to a folder in my Music Library? I want to have a copy of the music on iTunes so when I update to a newer version of iOS I don't lose my music. And no I didn't buy this music off iTunes
-
Why is it taking so long to receive my confirmation email for my new iTunes account?
I just turned 18 today, and got a new iPad 2. I have completed all the registration questions to get a new iTunes account, but the confirmation email has not arrived in over 5 hours! Any suggestions?
-
Hi all, what is the difference between ACH and EDI? Configure steps Please explain in detailed! I will assign the points. Thanks venu
-
Missing or wrong file type icons
Got my new Retina iMac this week (running OS X 10.10 of course) and went through and downloaded/installed all my lovely programs but now some of the file type icons are showing up as awful exec type file icons (see below). All the .indd files were cr