Guarantee EOIO Processing in File-RFC-RFC-IDoc Scenario
Looking for some opinions on the following set up we've got. We're trying to build QoS EOIO on a scenario that goes File Sender->RFC and then RFC->IDoc. My question is basically have we effectively ensured that our scenario will be EOIO from file to IDoc. We want the first record in the file to always be the first created IDoc, the 10th record in the file to always be the 10th IDoc created etc..... We also want to make sure that if we encounter an error at any point that all subsequent processing stops and waits until the problem is resolved. We've successfully completed some steps but my biggest concern is in the area between where XI sends the data to SAP1 via RFC and the resulting return RFC from SAP1. I'm thinking we may not be quite there yet and would be interested to hear what others thought.
We're on SP15. The scenario goes like this (no BPM):
1) We have a legacy system LEG1 that we pick files up from using the Sender File adapter. This step will take the file from LEG1 into XI and map it to an SAP remote function on SAP system SAP1. We set QoS on the file adapter to EOIO. Our interface determination for the File to RFC component is set to QoS of "Maintain Order at Runtime".
2) XI makes the RFC call to SAP1 (6.20) using an RFC receiver adapter. The called function then processes the data and returns the data back to XI using another remote function call. This function call is of type tRFC where we call the function "in background task" and issue a commit after the RFC call.
3) We receive the data into XI from SAP1 using the RFC sender adapter. XI maps it to our IDoc layout and sends it onto another SAP system called SAP2. Again here our interface determination QoS is set to "Maintain Order at Runtime".
4) XI passes the IDoc onto SAP2 (7.00) using a receiver IDoc adapter. The paramter Queue Processing is turned on.
About EOIO in qRFCs, actually this is quite a polemic topic.
There is something you could do, allright, but it is controversial whether you could properly call it "EOIO" or not.
Refer to this thread for further discussion: use EOIO on Sender RFC and outbound ABAP proxy calls
Supposing you call the other RFC before you commit work in the receiver RFC, and supposing you could have EOIO at 2nd RFC (sender RFC), all these assumptions could mean that you would guarantee EOIO end-to-end. But they are just assumptions.
You have to try it and stress test the scenario to guarantee the validity of this design.
One other approach would be a BPM with all steps in one single transaction (check BPM transaction handling). The steps would be:
File -> sync RFC -> Idoc
where the response of RFC should be the necessary information for triggering the IDoc, and all send steps would be in EOIO mode (set queue name in Send steps). Also, file sender adapter QoS should be set to EOIO.
But I'm also not sure that this will guarantee EOIO end-to-end (possibly not...)
Good luck.
Regards,
Henrique.
Similar Messages
-
File RFC sync scenario error: MsgId alredy exists in the system
Hi,
I am working on File RFC sysnc scenario.
The first message that I tried to processed gave a error
com.sap.aii.af.ra.ms.api.DeliveryException: error while processing message to remote system:com.sap.aii.af.rfc.core.client.RfcClientException: could not convert request from XML to RFC:com.sap.mw.jco.JCO$ConversionException: (122) JCO_ERROR_CONVERSION: Date ' ' has a wrong format at field REQ_DATE_H: Unparseable date: " "
When I retried correcting the data, it started giving strange error
Message ID 62D07CA0D3EE11DCCD36DA01C52F0606 for pipeline CENTRAL, version already exists in system.
How to rectify this?
XI version is PI 7.0 SP10Nisar,
Which program to re-run? Are you talking about activating the channel again? If so, then I have done it many times changing the file name.
I got below error in Communication Channel Monitoring:
2008-02-06 02:27:39 Error Received XI System Error. ErrorCode: MSGGUID_EXISTING ErrorText: ErrorStack: Message ID 83F8B0B0D48311DCA544DA01C52F0606 for pipeline CENTRAL, version already exists in system
2008-02-06 02:27:39 Error Returning synchronous error notification to calling application: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:MSGGUID_EXISTING:.
2008-02-06 02:27:39 Error Transmitting the message using connection http://xibox:8000/sap/xi/engine?type=entry failed, due to: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:MSGGUID_EXISTING:.
2008-02-06 02:27:39 Error The message status set to FAIL.
2008-02-06 02:27:39 Error Returning to application. Exception: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:MSGGUID_EXISTING:
2008-02-06 02:27:39 Error Attempt to process file failed with com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:MSGGUID_EXISTING:
2008-02-06 02:27:39 Error Attempt to process file failed with com.sap.aii.af.service.util.transaction.api.TxManagerException: Unable to roll back transaction: com.sap.engine.services.ts.exceptions.BaseIllegalStateException -
HI ,
I am trying file service to IDOC scenario and iam getting following error "Unable to convert sender service FilesService_FILE2IDOC to an ALE logical system".
Here file has to be read and IDOC has to be posted in SAP system. Sender is not an SAP system / 3rd Party system ...itz an FILE sender service.
Settings i have done:
In Message Mapping in target IDOC structure i have disabled Control record
In integration directory IDOC Receiver Communication channel i have not selected "Apply Control Record values from Payload".
In receiver determination in header mapping i have put sender sevice "FilesService_FILE2IDOC ".
But still i receive the same error.
I do not want to send control record parameters in Message Mapping .
Pls throw some light on this ....
Regards
SriHi Sridhar,
Regarding your error, below is the answer...
When you create the business system (in the SLD) you assign a "logical system name" or "ALE name". That is used as the ALE name for transporting IDOCs, and the sender system.
You have to also maintain this name in the R/3 System (tx. SALE, WE20), because IDOC will be noted as arriving from that system.
You also told that you dont want to pass the control records value....Do this, just deactivate the control records segments in your message mapping... let me not explain it further.... just check these blogs below for the same,
/people/sravya.talanki2/blog/2005/12/02/manipulating-idoc-control-records-from-payload
/people/michal.krawczyk2/blog/2005/09/01/xi-idoc-adapter--edidc40--demystified
And also go thru the following links to get a better idea about partner profile:
http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b833243d711d1893e0000e8323c4f/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b7cd343d711d1893e0000e8323c4f/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/32/692037b1f10709e10000009b38f839/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/5e/b8f8bf356dc84096e4fedc2cd71426/frameset.htm
I hope this helps you solve your problem.
Regards,
Abhy -
File to Multiple Idocs scenario. Pls help
Hi All,
For Single File to Multiple Idocs scenario i am referring blog --
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/877c0d53-0801-0010-3bb0-e38d5ecd352c
Suppose my source file is
AAA, BBB,CCC
111,222,333
ZZZ,ZZZ,ZZZ
I want to make 2 IDOCS for the first 2 records (AAA, BBB,CCC and 111,222,333)
and do not want to make IDOC for the 3rd record -- how to achive this.
RegardsHi,
If the condition is like, for 'AAA' and '111', IDocs to be generated, then do as follows.
If IDOCs are of same type.
1. Value
> Equals -
> createIf -
> IDOC
Constant('AAA')
2. Value
> Equals -
> createIf -
> IDOC
Constant('111')
3. Value
> Equals -
> not -
> createIf -
> IDOC
Constant('ZZZ')
If 2 IDocs are of differnet types,
create different mapping programs with same logic.
If 2 IDocs are to be generated based on the record no in the file rather than the first field value, i think you can go for Global container.
Refer these,
[http://help.sap.com/saphelp_nw04/helpdata/en/ee/bf9640dc522f28e10000000a1550b0/frameset.htm]
[http://help.sap.com/saphelp_nw04/helpdata/EN/49/1ebc6111ea2f45a9946c702b685299/content.htm ]
[http://help.sap.com/saphelp_erp2004/helpdata/en/75/8e0f8f3b0c2e4ea5f8d8f9faa9461a/frameset.htm]
thanks.
Edited by: P.Ravi Varma on Apr 22, 2009 10:27 AM -
File-XI-multiple IDoc Scenario
Hi there -
I am working on single File-XI-multiple IDoc Scenario and have following questions:
(please keep in mind that there is already an existing multiple IDocs-XI-single File scenario between the same systems)
1. Please provide any detailed step by step documentation from end-to-end.
2. I am thinking it's compulsory to use BPM, is there any way to aviod?
3. Is it possible to update existing IDocs in R/3 directly from the data from XI?
Thanks everyone in advance...
PatHI,
Pls go thru following links-
/people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
Single inbound file -> XI -> Multiple IDOCs in SAP
One file for multiple IDOCs
Hope this helps..
Regards,
Moorthy -
The input parameter for the RFC is send through a file and the response from the RFC comes into XI which is then written into a IDoc . The diagram of the following is shown below;
http://photos1.blogger.com/blogger/3087/1595/1600/RFC.0.jpg
Mapping 1 ) File >> RFC (getDetail)
Mapping 2 ) RFC (getDetail-Response) >> IDoc
Problems : Message Interfaces
Abstract_synchronous
Output : File
Input :IDoc
Activation of the change list canceled
Check result for Message Interface sync | http://xi/DeltaUpdate2:
Message interface Message Interface sync | http://xi/DeltaUpdate2 references an IDoc message and a non-IDoc message
But I need the synchronous step !
It is possible to use correlation with Asynchronous or the only way to get the return message is use Synchronous RFC?
And Can you brief me the steps in bpm?
Regards,
FatihHi,
Easier solution for this is create one Abstract Message Interface(like dummy) for the RFC response.
Assumptions- You are doing RFC Req/Resp mapping outside the BPM.
If so, your RFC response will be stored in the Dummy Repsonse structure. Then send this structre async from BPM. Outside the BPM map this structure with Actual Idoc interface.
Hope this will work here
Regards,
Moorthy -
Error Handling in File to Multiple IDOC Scenario?
Hello Experts,
My scenario is file with Multiple records and I want to send it to SAP system.If there will be 10 Records in my file I need to create 10 IDOC in Target system.
I can use below of the two options.
1) File to Multiple Idoc (1.N Mapping)
2) Using BPM
3)Directly place the file in SAP application server and process it via ABAP Program.
However I am not clear in which option error handling will be more effective.Please suggest.
Basically I want to handle If out of 10 records 9 are correct and 1 record is not correct then I should be able to report within PI without affecting 9 correct records.Is it possible 9 records will be sent to SAP system and PI will only show error for 1 incorrect record.
Also I will be doing this scenrio for transaction data with huge size (1 Million Records).Which approach will be more effective in this case.
Thanks,
PushkarHi Patel,
I want to handle If out of 10 records 9 are correct and 1 record is not correct then I should be able to report within PI without affecting 9 correct records.Is it possible 9 records will be sent to SAP system and PI will only show error for 1 incorrect record.
when working on graphical mapping, the target structure is created when there are no errors in all records of source structure.
suppose if we have validation error in 9th and 10th record, then we can not process the first eight records and inturn we can not store the two error records in XI for further.
i suggest you the third option, you can directly place the file in SAP application server and process it via ABAP Program.
this is far better because you can do more customizations as you have to deal with millions of records.
Regards,
Pradeep A. -
File- XI- Multiple IDOCs scenario
Hi,
I am working on File->XI->IDOC scenario. I have a single source file and I need to map it to two IDOCs and post them to ECC. The order of posting is not an issue since it is taken care of by ECC.
I need help (detailed) on achieving this in the best possible way (using/without using BPM).
Thanks,
Guru
PS: I went through the following blog:
/people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
But as per this blog, multi mapping is not possible with IDOC as the IDoc adapter is outside the Adapter Engine.As Jaishankar suggested,
going for separate mapping is a better n simple options.
Source Message Interface Mapping 1> IDOC1
Source Message Interface Mapping 2> IDOC2
Since you are sending the IDocs to the same system,
One rcvr in rcvr determination, without any condition.
in interface determinations, you have 2 inbound interfaces, and corresponding Interface mappings.
Its a simple n straighforward approach.
Regards
Pushkar Anand -
File to Multiple Idoc scenario using FCC
Hi All,
I am working in a file to idoc scenario. Here input is a fixed length file having Header and Item details which will repeat for many times.The number idoc in the target is based on the number of header in the input field. I have created a source structure with header as 1..unbounded and i have map the header with the target idoc.
In configuration part
Recordset Structure Header,9999,Item,9999
I am facing an error in communication channel as
"Conversion of file content to XML failed at position 0: java.lang.Exception: ERROR consistency check in recordset structure validation in last recordset"
Please help me to resolve this issue. Thanks in advance.Hi,
Source structure is
DATA 1...1
Record 0...unbounded
Header 0...unbounded
Item 0...unbounded
Here i am mapping Header to the target Idoc
In configuration
RecordSet Name: Record
RecordSet Structure:Header,9999,Item,9999
RecordSet Sequence:Varaible
Key Filed name : RecordType
Header.fieldFixedLength -
Header.fieldNames -
Item.fieldFixedLength -
Item.fieldNames -
Header.keyFieldValue : H
Item.KeyFieldValue :I
Header.lastFieldOptional YES
Item.lastFieldOptional YES -
File to multiple idoc scenarios depending on finput field value
Hi,
i have a file to idoc scenario.
depending on a particular field of the file i have to trigger a single idoc (with all the records in the file)or multiple idocs (for each record in the file ).
for example,
the file has 5 records-
2 records have field value A (create 1 idoc for all As)
3 records have field value B (create 1 idoc for each B)
so in this case 4 idocs (1 for all A, and 3x1 for B) are created
What is the best solution ?-
1. to have several outbound idoc interfaces and check each interface mapping for field value (A or B) ?
this solution seems like overwork to me
2. handle this in mapping ?
in that case will UDF be better or ABAP mapping
3. any other way ?
Thanks in advanceHi,
if you have one IDOC type you can use ABAP mapping
this way you will handle everything in tables
and you will be able to post one IDOC (bundled)
with all IDOCs inside
also if you use ABAP mapping you will be able to incorporate changes
easily in the future I believe
for idoc bundling:
<a href="/people/michal.krawczyk2/blog/2006/10/11/xi-new-book-mastering-idoc-business-scenarios-with-sap-xi"><b>Mastering IDoc Business Scenarios with SAP XI</b></a>
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a> -
Flat File to Delivery IDOC scenario
Dear All,
I am having one scenario in which I am having the flat file (.txt) of the Delivery Idoc and now I want to convert that flat file into a Delivery Idoc with the required data.
Kindly suggest me some good blogs which gives the step by step process for doing this scenario.
Warm Regards,
N.JainHey Nishu,
You have to use File Content Conversion Paramters to acheive this.
http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/content.htm
You can Follow the following blogs
/people/venkat.donela/blog/2005/03/03/introduction-to-simple-file-xi-filescenario-and-complete-walk-through-for-starterspart2
/people/venkat.donela/blog/2005/06/08/how-to-send-a-flat-file-with-various-field-lengths-and-variable-substructures-to-xi-30
/people/jeyakumar.muthu2/blog/2005/11/29/file-content-conversion-for-unequal-number-of-columns
/people/shabarish.vijayakumar/blog/2006/02/27/content-conversion-the-key-field-problem
Or juz post your sender datatype structure some one might give u exact fcc params.
Hope itz Helpfull.
<b>Cheers,
*Raj*
*REWARD POINTS IF FOUND USEFULL*</b> -
File to multiple IDOCs scenario with the same receiver system
Hi guys,
I have to design and implement the following scenario:
I will receive one file with many lines (Records) with data for materials, quantities, operations etc..
Based on the values of some fields of each line, I will have to create an IDOC for each material.
For example:
if operation type = "INSERT", and Labor = 001 then create 3 Idocs of type MBGMCR with movement types=101, 261,311 that have to be posted one after the other to the same receiver system.
else if operation type = "INSERT", and Labor <> 001 then create an Idoc MBGMCR with movement type=311 and plant = 1001.
else if operation type = "Delete", and Labor = 001 the created 3 Idocs MBGMCR with movement type=312, 262 1002 and post them serially to the same receiver system.
else if operation type = "Delete", and Labor <> 001 the created 1 Idoc MBGMCR with movement type=312.
All IDOCS are posted to the same SAP R/3 system. We do not care about the sequence, except for the cases where 3 IDOCS are created.
I am trying to think of a good design in performance terms.
It is obvious that I will need BPM for sure.
I am thinking of creating a mapping program that will produce 4 message types for the different cases from the initial file and then create a different message mapping for each case from the message type to the IDOC.
I am asking you if I have to include everything (mappings) in BPM with a "fork" step?
Or shall I produce only the 4 message types and then post them to R/3 and execute the mappings in R/3?
Best Regards
Evaggeloshi,
>>I am thinking of creating a mapping program that will produce 4 message types for the different cases from the initial file and then create a different message mapping for each case from the message type to the IDOC.
To me this seems to be the right solution.
here u will create different message mappings and write them sequentially in interface determination. the multi mapping will then be utilised in transformation step in BPM.
thus if this is the only requirement there is no need of using a fork step.
[reward if helpful]
regards,
latika. -
Mapping File to Multiple IDoc Scenario
I know how to do this, but when I load the IDoc's XML structure back into the IR, the EDI_DC40 field doesn't have anything in it's structure. I need to configure the sender parameters in this structure for this IDoc, so any help would be appreciated.
Schroeder,
If I understand your question correctly after you import the IDOC into IR you want the EDI_DC40 segment filled automatically.
Either you have to fill manually or if you automatically to be filled up then check this weblog:
/people/michal.krawczyk2/blog/2005/09/01/xi-idoc-adapter--edidc40--demystified
/people/sravya.talanki2/blog/2005/12/02/manipulating-idoc-control-records-from-payload
Regards,
---Satish -
Hi All,
I am getting following error while doing File to Custom IDoc Scenario
No authorization to send IDocs with message type Z
Can any one tell how to resolve this error?
Regards,
SaiHi Krishna,
The RFC destination that you have put in IDoc communication channel must be present in your SAP XI system, transaction SM59 also.
Please check if the user id/Password that you have given has all the authorization.
Also check the User ID and passwrord in SM59 in R3 and see if a Remote Login is possible.
There is also some configuration by which the clients are allowed / blocked from receiving Idocs from XI. Basis guys can do it for you. Please approach your basis consultant. Hopefully that helps..
Regards,
Abhy
Message was edited by: Abhy Thomas -
File to idoc scenario (split message)
hello everybody
i have a file (xml) -> XI -> Idoc scenario
sometimes idoc message is so much big and i have problem to process it.
so i would like split message in more idoc but i need decide a cut-point
example in file i have 200 row and i don't want create 200 idocs but example 4.
So i need cut file every 50 rows.
It's possible?
thanks
AlexHi Alessandro ,
We had the same problem in HR implementation where we used to get data for thousands of employees in a single file.
As Idoc was not able to hold this much of data,data used to be truncated.
Then we had taken a field (employee number) as a criteria to generate IDocs,and now we have an IDoc generated for each employee record.
This was helpful as for a single employee,there were a number of change records.
The logic used was:
Employeecode -> splitByValue(value changed) -> collapseContexts -> IDoc.
Does it suit your requirement as well?I mean,may be you can find such field for splitting IDocs.
Kindly let us know.
Thanks.
Regards,
Shweta
Maybe you are looking for
-
Conversion to Design Studio templates
Hi experts, We are in the pre-study phase for the conversion of all 3.x BEx web templates (serveral hundreds of them) to either 7.x or BO e.g. Design Studio. Right now we are a bit concern regarding the gaps between 3.x and Design Studio at the momen
-
hai how to download jdbcdrivers and how to install these drivers.please give solution
-
Missing wire connectors on DAQ Assistant express VI's
I'm seeing some strange behavior on one specific computer running LabVIEW. The problem is that DAQ Assistant VI's have no connector points. I have nine other identical computers (used in a classroom setting) but I don't see this behavior on the other
-
Accidentally trashed iPhoto Library - how to remake
Hi, I have a user who accidentally trashed her iPhoto Library and emptied the bin. With the tool Photorec I am in the progress of finding all jpg on the disk system - it takes a lot of time and it is not finished yet. So far more that 85.000 files wi
-
Hi, We have recently upgraded our weblogic server from 6.0 to 6.1 sp5 on our testing environment. Our application runs fine for a few hours until our sybase db shuts down for some reason. Thus rendering all connections to the db to fail. Anyone know