Multiple IDOCs based on multiple fields in File to IDOC mapping
Hello Experts,
I have a requirement to create multiple IDOCs based on multiple fields.
Earlier my requirement is to create IDOCs based on ShipID (i.e., for every ShipID new IDOC...I achieved this).
But now the requirement was to create IDOC based on two more fields like
Source:
ShipID1
FieldA with value1
FieldB with value1
Target :
1 IDOC to create
and If
Source:
ShipID1
FiledA with Value2
FiledB with Value2
ShipID1
FiledA with Value1
FiledB with Value2
Target:
2 IDOCs based on FiledA
Like wise IDOC should create for every change in FiledA and FieldB.
If FiledA and FiledB has no changes then create IDOC based on ShipID
please help me in achieving this as this is an urgent requirement.
Hi Prasad -
Just concat all the three fields - shipID1, FieldA and FieldB and
remove contexts
split by value (value changed)
collapse contexts
This way whenever there is a change in any of the above fields you'll have separate IDOC..
Similar Messages
-
IDOC creation issue at XI side - File to IDOC
Hi Everybody,
I am working on a File to IDOC scenario (XI 3.0).
We have to create Orders in the R/3 System using this Interface.
Mapping used is Java.
I am using 2 Classes : Group and SendIdoc one below the other in the Interface Mapping:
Firstly by using Group Class I am Grouping the Records in the file and then creating the IDOCs by using the next class(SendIdoc).
In the production environment if we drop like 20 files at a time in the source NFS folder the number of IDOCs created are wrong.
Say for example, for the first file dropped expected IDOCs are 10 but only 8 are created in SXMB_MONI .However in the input payload (in SXMB_MONI) the entire text file is read.
When we put the files sequentially say one after the other is processed, the number of IDOCs created are fine.
This is very strange problem.
I tried changing the polling interval of the channel but was of no help.
Any parameters we need to set in the channel or XI system to overcome this issue?
Can someone help me out on this?
Helpful answers will be rewarded points.
Thanks & Regards,
RKHi ,
When you placing files sequentially its working fine menas there is no problem with Java Code,one morething use synchronize methods or thread programming in Java maps is not advisable.
as per my knowledge File adapter picking up the recodrs when its giving inout to Java map some thing misisng....
for one file you need to create multiple IDocs try use QOS EOIO or if its not working then try to use record set per message one like that,let me know.
Regards,
Raj -
IDOC is posting with Errors in File to IDOC scenario
Hi,
I did the File to IDOC scenario for CREMAS . IDOC is posting with Errors .. i.e. in the status record it was showing 56- EDI: Partner profile inbound not available ..
If I manually process that IDOC in WE19 , then it was processing successfully.. and in the we19 it was showing Inbound Processing : Port Not Maintained but even though manually it was posting fine...
any ideas regarding this will be appriciated.....
Regards
BabuPlease check whether you had done the following assuming your doing File to Idoc
Settings in your Business service for the receiving system
Please specify the RFC detination, SAP System and Client of the Receiving System in the adapter specific detials.
Settings in R/3
WE20 - Add the partner profile for the particular message type cremas and process code.
Your statement
" and that same logical system name had given as Message Specific Attributes in the Sender Business Sevice parameters in I.D "
Please do mention R/3 Details in the receiver business service or system.
Thnz -
Not sure if IDoc was created or received in file to idoc scenario
Hi,
I configured a file to idoc scenario in my test client for idoc MATMAS.MATMAS02 , now after going thru all the phases of design and configuration and creating partner profile using we20 , when I m executing the scenario , I am not sure wht happened to the idoc becz i can't see in the R/3 system using we05/02 or BD87 in the XI system .
Pl help how to rectify the error and find out where the error has actually occured.
ans will be rewrded
rgds
mojibHi Mojib,
first check in SXMB_MONI whether you have a success chequered flag for the file messge.................if there is error here, then rectify your this error and re-run your scenario................if you cannnot see your file msg in SXMB_MONI, then go to RWB and in comm channel monitoring, see the error in sender file comm channel status and rectify the error in sender file comm channel in ID and save and activate it and then re-run your scenario............
then execute SM58 to see in there is anything in tRFC.........if there is not anything here, then it means your IDOC has reached R/3.................
then in R/3, execute WE05 for the relevant period, then you will see your IDOC there with some status..........
Regards,
Rajeev Gupta -
XI unable to post IDOC to ECC the interface is FILE-to-IDOC scenario
Hi All,
The XI interface is a FILE-2-IDOC scenario and some times IDOC's in the receiver system are not posted. I did see successfully message for that particular messages but the IDOC's were not created in the ECC. If the messages is reprocessed then IDOC's are posted successfully to the ECC system. The message has checkered flag in the SXMB_MONI tcode.
This issue is occurring intermittently so could some point me in the right direction how to trouble shoot the issue.
Thanks,
SarveshHi,
Interesting problem...since its intermittant..
You cannot use any of the traditional RWB or message monitoring or cc chanel monitoring here as the error is in the ecc system, so from an XI standpoint it has left XI succssfully..that explains all the chequered flags..indicating success.
we19, we12, we14(process all idocs) test out the whole process with a load..use transaction we46..this can tell you why it is failing....in r/3
from the ecc system to check inbound queue monitoring.
from there you can select the IDocs or queues which you want to monitor, using the specified selection parameters available.
Look at the status record for the idoc that should give you more information, processing status of the idoc...that should tell you the status code assigned to it..
There is one other option here....if you can figure out what sequence they need to be posted in...that might be the reason for the failure..you can specify the sequence to post the idocs in, use qRfc ..
Hope that helps
Regards
Ravi Raman -
SSIS + split 1 row in multiple rows based on multiple columns
Hi all,
I have a flat file
Shop ID Check 1 Check 2 Check 3
500 OK
OK NOK
I want to transform this to staging as 3 rows
Shop ID Check number
Result
500 1
OK
500 2
OK
500 3
NOK
Anyone can tell me how to tackle this?I basically have a table that has the columns I specified
Shop Check 1
Check 2 Check 3
500 OK
OK NOK
I now want to actually have them loaded in another table where I have multiple rows for each shop.
Shop Check
Result
500
1 ok
500 2
ok
500 3
nok
So basically I want to go from a column view to a row view. Is this possible?
In other words, I do see multiple rows for each shop ID which is awesome! But I would like to have instead of the result that number of the check. (1,2,3) with the result next to it :)
500 OK
500 OK
500 NOK -
Multiple occurances of lin itm seg based on a field using graphical mapping
Hi
I have a scenario where in i have to populate the target segment multiple times based on quantity field LFIMG
Source structure in IDOC and target structure is XSD. In the following we need to have multiple occurances of S_LIN based on LFIMG. So if the value of LFIMG is 6 we need to have 6 occurances of S_LIN.
Source structure
E1EDL24 (segment)
LFIMG (field)
Target structure
ITEM (segment)
GSHL (segment)
S_LIN (segment)Hello Kalyan,
You need to write an udf like this.
LFIMG (change context Queue)---->UDF ---> S_LIN
Variable : source and separator(",")
String[] values = source.split(separator);
for(int i = 1 ; i < values.length ; i++){
result.addValue(values<i>);
result.addValue(ResultList.CC);
Regards
Pothana -
Freight posting in MIRO based upon multiple goods receipt.
Hi
In one of the companies they are requesting the freight charge to be broken into multiple lines (based upon multiple goods receipt) instead of one consolidated balances in the invoice (MIRO). Right now each time we do a MIGO against the same PO the system creates a seperate material document and the entry is (and that is correct) :
Inventory - XXXX
GR/IR (Cost)- XXXX
GR/IR (Freight) XXXX
PPV XXXX
for example if migo is done 3 times against the same PO the system posts 3 seperate material document and everything is correct.
When we do a MIRO the system generates 3 seperate lines for GR/IR (Cost) but it consolidates GR/IR(freight) and posts the entire value in one line.
Requirement is : We want the system to break freight cost into 3 seperate in the invoice.
Did anyone come across this issue before.
Thanks
JosephHi Joseph,
I guess you can use MIRO 3 times, and post separated delivery costs into 3 freight invoices.
During each time, you can choose only 1 line to carry out the posting.
Thanks and regards,
Polly -
Hi all
I dont know much about idocs. I am creating a file to idoc scenario. i have done with(hope so) all the other settings, design and configuration. BUt dont know how to do the mapping.how the control segment fields have to be mapped. what are the mandatory fields in idoc?Hi Aarthi,
You can leave the control records of the Idoc blank since XI fills them up. This is because XI would be the sender for the idoc. If you select "Header mapping" then you have to map control records else not.
Also in the idoc data segments all fields with a red dot are mandatory. If you do not have a field from the file to map with the mandatory idoc field then either you can suppress it or map it to a constant.
Hope this helps.
Regards. -
Hi,
I have a requirement of a file to idoc scenario where I need to convert the file in BIA format to an Idoc. Can anyone suggest me a solution on how to use file content conversion? Is there any sample scenario where they have used a BIA format file to be converted as an Idoc?
Thanks
SattDear All,
For file to idoc scenario is there any possibility to get line items details or xml details i.e the segments and its related field details using reference id, transaction id or interface name or message id in SAP PI 7.0. I know we need to click each and every message in sxi_monitor and look for details.
For SAP(R3 System) I can create a report and set the job for specific time period so automatically it throws the details(like reference no, document date, invoice no from) in ftp path as .csv file. The same ftp path is maintained in program.
I wanted to check FTP--->PI postings and I have set the job at r3 system it is working fine and Im monitoring it too.
Now the end to end scenario is FTP--->PI--->ECC(R3 system). Please help.Many Thanks. -
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 -
Still about field table file.Peter and Scott please..
hi,Peter and Scott:
i still don't so clear about it. if i use field_name in my services not
field_id,then,shall i copy all these field table files into one,and then use
mkfldhdr32 to build the field table file? from Peter's words,seems i don't
need copy them to one file,just point them to my FLDTBL* environment is
ok,but as my sample:
Fget32((FBFR32 *)recvbuf,SERVICE_ID, i,(char*)vServId, 0)
if there two field table files, A file and B file,does my application know
which file my SERVICE_ID is in? and if here both A file and B file has
SERVICE_ID,which numeric the value will be pointed?
as Scott said:"Your application will run much more efficiently if you
compile in the
field ids from the field header.",do you mean that if i use field ids in my
application,it's better?
and another question: if i use mkfldhdr32 many times,will the numeric be the
same? such as
once i built, "ROWCOUNT" are 12345678,then second time i build this,will
"ROWCOUNT" still be 12345678?
and i think it's not easy to use numeric in my application,cause field names
is easy to remember than field ids.
thanks
fishfish,
The mapping of field names to field ids is held in the field table file. The
mapping of name to id for any field is a binary combination of the field number
and type, thus it's a constant.
The mkfldhdr program takes the field table and converts it into a C header file
by generating #define for all the fields, so a line
STATLIN 5 string - message to go on status line
in the field table file becomes
#define STATLIN ((FLDID)40965) /* number: 5 type: string */
in the C header file generated by mkfldhdr.
Now, if you have #include's the generated header file, wherever your C code
references STATLIN (for this example) the C preprocessor inserts ((FLDID)40965)
- a numeric constant.
If all your references to individual fields are made in this way, then you do
not need the field table file at run time - all the information in it was
extracted by mkfldhdr at build time, and compiled in to your code.
In fact, this is precisely the purpose of mkfldhdr - you get the performance of
using constants rather than dynamic lookups, with the code readability of using
the field names rather than numeric ids.
I hope that clears up your understanding. The documentation discusses this
subject too, here: http://edocs.bea.com/tuxedo/tux80/atmi/fml048.htm
Regards,
Peter.
fish wrote:
hi,Peter and Scott:
i still don't so clear about it. if i use field_name in my services not
field_id,then,shall i copy all these field table files into one,and then use
mkfldhdr32 to build the field table file? from Peter's words,seems i don't
need copy them to one file,just point them to my FLDTBL* environment is
ok,but as my sample:
Fget32((FBFR32 *)recvbuf,SERVICE_ID, i,(char*)vServId, 0)
if there two field table files, A file and B file,does my application know
which file my SERVICE_ID is in? and if here both A file and B file has
SERVICE_ID,which numeric the value will be pointed?
as Scott said:"Your application will run much more efficiently if you
compile in the
field ids from the field header.",do you mean that if i use field ids in my
application,it's better?
and another question: if i use mkfldhdr32 many times,will the numeric be the
same? such as
once i built, "ROWCOUNT" are 12345678,then second time i build this,will
"ROWCOUNT" still be 12345678?
and i think it's not easy to use numeric in my application,cause field names
is easy to remember than field ids.
thanks
fish -
File to IDOC - multiple source fields to 1 field
Hello,
I implement scenario from file to IDOC.
In source side I have 2 fields (in different levels) that I want to map to 1 field in the IDOC.
Is it possible to do it? And how?
Regards
EladHello,
The sorce file is xml:
<?xml version="1.0" encoding="UTF-8"?>
<PLM_Out_MT>
<Quotation/>
<TransactionHeader>
<TransDateTime/>
<Sender/>
<Receiver/>
</TransactionHeader>
<QuotationHeader>
<DocTyp/>
<ContractNo/>
<PurcNo/>
<PurcDat/>
<ValToDate/>
<GenHeadText/>
<PlmUser/>
</QuotationHeader>
<QuotationLines>
<QuotationLine>
<ItemNum/>
<ItemCat/>
<Quantity/>
<ReqDelDate/>
<OrgReqDate/>
<Version/>
<QuotationTexts>
<QuotationText>
<TEXT_ID/>
<TEXT_LINE/>
</QuotationText>
</QuotationTexts>
</QuotationLine>
</QuotationLines>
</PLM_Out_MT>
The target is:
<?xml version="1.0" encoding="UTF-8"?>
<ZCUSTQUOT_WITH_REF01><IDOC BEGIN="1"><Z1ZCUSTQUOT_WITH_REF SEGMENT="1"><E1BPSDHD1 SEGMENT="1"><DOC_TYPE></DOC_TYPE><PURCH_DATE></PURCH_DATE><PP_SEARCH></PP_SEARCH><REF_DOC></REF_DOC></E1BPSDHD1><E1BPSDITM SEGMENT="1"><ITM_NUMBER></ITM_NUMBER><MATERIAL></MATERIAL></E1BPSDITM><E1BPSCHDL SEGMENT="1"><ITM_NUMBER></ITM_NUMBER><REQ_QTY></REQ_QTY></E1BPSCHDL><E1BPSDTEXT SEGMENT="1"><ITM_NUMBER></ITM_NUMBER><TEXT_ID></TEXT_ID><TEXT_LINE></TEXT_LINE></E1BPSDTEXT></Z1ZCUSTQUOT_WITH_REF></IDOC></ZCUSTQUOT_WITH_REF01>
I need to map in the first time from <GenHeadText/> to <TEXT_LINE> and in the second time from <TEXT_LINE/> to <TEXT_LINE>
Is not possibole to use with concatenate because i need all the time to map diffrebt field.
Elad -
Creating Multiple IDOCs and Line Items based on Posting date from file
Hi All,
My scenario is File to IDOC(MBGMCR01)...
Need your suggestions and help on how to go with this...
Source file structure is
DC61|2009-03-15|000000000001200051|00000005.00|200|0001|1234|
DC61|2009-03-15|000000000001200363|00000001.00|300|0001|1234|
DC61|2009-03-15|000000000001200334|00000002.00|400|0001|1234|
DC61|2009-03-16|000000000001201145|00000001.00|200|0001|1234|
DC61|2009-03-16|000000000001201086|00000002.00|100|0001|1234|
DC61|2009-03-17|000000000001200051|00000003.00|200|0001|1234|
DC61|2009-03-17|000000000001200052|00000003.00|200|0001|1234|
DC61|2009-03-17|000000000001200053|00000003.00|200|0001|1234|
DC61|2009-03-18|000000000001200056|00000003.00|200|0001|1234|
And target IDOC(MBGMCR01) is
IDOC (0u202699999)
E1BP2017_GM_ITEM_CREATE(0u2026999999)
Date
For Each new Posting date(column 2) of the source a new idoc to be created and the corresponding records of each posting date to be added to E1BP2017_GM_ITEM_CREATE
The out put for the above should be like this
IDOC(2009-03-15)
E1BP2017_GM_ITEM_CREATE=2009-03-15
E1BP2017_GM_ITEM_CREATE=2009-03-15
E1BP2017_GM_ITEM_CREATE=2009-03-15
IDOC(2009-03-16)
E1BP2017_GM_ITEM_CREATE=2009-03-16
E1BP2017_GM_ITEM_CREATE=2009-03-16
IDOC(2009-03-17)
E1BP2017_GM_ITEM_CREATE =2009-03-17
E1BP2017_GM_ITEM_CREATE=2009-03-17
E1BP2017_GM_ITEM_CREATE=2009-03-17
IDOC(2009-03-18)
E1BP2017_GM_ITEM_CREATE=2009-03-18
Will be thank ful if any one gives a hint....
Thanks and regards,
SridharI rather meant a picture of your mapping - anyways. Hope this is correct:
Your souce structure:
<MT_IAR>
<IAR_Recordset>
<IAR_Details>
<Inv_adj_date>
</IAR_Details>
<IAR_Details>
<Inv_adj_date>
</IAR_Details>
Than mapping should be like this:
<Inv_adj_date> ==> SplitbyValue ==> IDOC
Please confirm this doesn't work. -
To create multiple files on the receiver side based on key field
Hi Gurus,
My scenario is File to File
My Source structure is as below
My File looks like
My file looks like below
570774 11/26/2008 8:12 6296 xxxxxxx 985-399-5157 1153 Teche Road Morgan City United States Lori Eisenman Louisiana 70380 0 1153 Teche Road Morgan City United States Lori Eisenman Louisiana 70380 303 101400100000 3365440332522 ELLE YVES SAINT LAURENT Eau de Parfum Spray 2 61 78 156 184 184 0
570774 11/26/2008 8:12 6296 xxxxxxx 985-399-5157 1153 Teche Road Morgan City United States Lori Eisenman Louisiana 70380 1153 Teche Road Morgan City United States Lori Eisenman Louisiana 70380 376 106074700JP0 3365440347229 GOLDEN GLOSS N° 27Shimmering Lip Gloss 1 28 28 28 0
570775 11/26/2008 8:15 6296 xxxxxxx 985-399-5157 1153 Teche Road Morgan City United States Lori Eisenman Louisiana 70380 7 1153 Teche Road Morgan City United States Lori Eisenman Louisiana 70380 284 9000400000 3365440316546 L'HOMME Eau de Toilette Spray 1 53 53 53 60 60 0
for each new order number(key field ex: 570774) a new xml file to be created , from the above example 2 xml files sholud be created(one for 570774 and the other for 570775)
How can i acheive this functionality?
Please help me on this, Thanks in advance
Regards
SrinivasHi Srinivas,
map the key field to the parent record of the target field. Use the split by value and change the source key field level to higher one so that the all occurences of the key field are occuring. The mapping will be like this;
Source Key Field (change to higher level) --> Spli by value --> Filename creation UDF --> Target header field.
Try this.
Regards,
Murugavel.
Maybe you are looking for
-
Unable to process your request when clicking next page button in web app
Hi, 1) I'm using CR for VS v13 (13.0.2000.0) 2) .Net 2.0 in IIS6 compiled with TFSBuild on TFS2008 3) Issue ocurs when deployed on QA server 4) Database is SQL server 2005 5) Ado.Net passing data definition thru an xsd with a multiple tables dataset
-
Problem in select statement(urgent)
hi experts, my ztable structure is, year(key) customer(key) month(key) quan1 quan2 quan3 2006 britania 01 23 12 13 2006 britania 06 34 24 15 2006 britania 09 45 10 22
-
Hi All , Whats the best method proceeding with HR migration , I can go for lsmw using recording . Thanks in ADV
-
Not getting sets for jsp:useBean bean when in request scope
I have a JSF (JSP) page in which I have a bean that I declare using jsp:useBean. The bean implements Map. I have a h:inputText and an h:inputHidden with a value referencing the bean. The odd thing is that if in jsp:useBean, I set the scope to session
-
My bank doesn't see Firefox 5 as being secure, 3.6 was
My bank does not recognize Firefox 5 as being secure. 3.6 had no problems with this.