on 11-14-2008 10:20 AM
Hi,
I've got a file with the requirements in the following format for each line:
Material;Date;Quantity
That file has got thousands of lines. Now I have to map all the lines of the same material to one bapi and do that for each material because the bapi has got the following format:
BapiMessage:
- Input ID Material
- Input table with all the dates and quantity for that material
I'm not allowed to create a Z bapi to use the other bapi in the R3 system, so I think I must use a BPM with a loop that calls the BAPI for every material. But now my doubt is: How can I get all the lines of each material from the input message and map to every Bapi call?
Example scenario:
Source file:
MAT1;20081115;500
MAT2;20081117;400
MAT1;20081121;350
MAT2;20081122;400
Now I must call the BAPI 2 times, 1 for each material with that info:
BAPI Call for MAT1:
- ID Material = MAT1
- Table[1] = date:20081115 qty:500
- Table[2] = date:20081121 qty:350
BAPI Call for MAT2:
- ID Material = MAT2
- Table[1] = date:20081117 qty:400
- Table[2] = date:20081122 qty:400
I don't know how to read the lines of the source and map them to the corresponding Bapi call.
Sorry for the complicated thread
No need to use BPM. Just perform simple mapping. In sender side FCC, use the parameter "Recordset Per Message = 1". Thats it.
Regards,
Prateek
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
>>>>Then if I use that parameter, XI will call the BAPI all the times? Ok, but now how can I map all the lines of the source file of one material to each target call?
if you use this parameter - file adapter will send to integration engine
as many XI messages as lines in your file
so then you map 1 - 1
regards,
Michal Krawczyk
Ok, I get it, but I don't want 1 call to RFC for each line. I have to group the lines (related because are from the same material) and call the BAPI one time for each material, not for each line.
Each material can have around 300 lines and if I call the BAPI 1 time for 1 line I think the performace will be very bad, and if I group the data of 1 material the performance will be improved. But I'm not sure if I can do that
Yes, ur performance concern is correct. Pass the entire data at receiver at once using abap proxy call. Then split the data based on the material no and call the RFC internally from there.
Yes, that solution is in my mind from the beginning but my problem is that I can't do any developement at the receiver side (R3). Then I think I can only split by material in XI using BPM, but I don't know how to do that yet
Thanks
Hello,
Plz. find below link having similar situation!
Regards,
Jilan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi,
>>>>I'm not allowed to create a Z bapi to use the other bapi in the R3 system, so I think I must use a BPM with a loop that calls the BAPI for every material. But now my doubt is: How can I get all the lines of each material from the input message and map to every Bapi call?
no need for a BPM
just create an abap proxy in ECC that will call this standard bapi many times
(in a loop)
and send all the info in one abap proxy message
or if there's an IDOC for that you can set the IDOC occurance to unbounded
and send many IDOCs in one call (again no BPM necessary)
Regards,
Michal Krawczyk
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.