Common mapping requirement
A common requirement is sending a table from SAP to be output into a file. So if this is done using the RFC sender adapter and File receiver adapter (with content conversion), the only thing required is a mapping to remove the extraneous <item> node that is inserted when a table is sent in a RFC parameter.
For example, if I send a table say ZTEST, the data coming into XI will be like this..
<RFCname>
<ZTEST>
<item>
<fld1>hello</fld1>
<fld2>world</fld2>
</item>
<item>
<fld1>second</fld1>
<fld2>time</fld2>
</item>
</ZTEST>
But since for the file adapter content conversion we require up to two hierarchical levels at the most, we have to drop the <ZTEST> node and get to
<RFCname>
<item>
<fld1>hello</fld1>
<fld2>world</fld2>
</item>
<item>
<fld1>second</fld1>
<fld2>time</fld2>
</item>
and then the receiver FILE adapter can handle to display these rows in tabular comma separated format.
The question is:: Is it possible to drop the node like above without doing any mapping in the IR i.e in that case we would only need a ID scenario where somehow (maybe by some simple existing adapter module usage) the input message (RFC type) is directly output in a flat file.
Hi James,
Please check the following link, which will resolve your problem.
/people/shabarish.vijayakumar/blog/2007/08/03/file-adapter-receiver--are-we-really-sure-about-the-concepts
i hope, for your structure the FCC parameters for receiver file adapter as mentioned below.
Ztest.fieldSepartor :'nl'
item.fieldnames:fld1,fld2
item.fieldFixedlengths:5,5
item.fieldSeparator:' '
regards
mahesh.
Similar Messages
-
XSLT mapping requirement.. Only numbers need to be picked..!!
Hi ,
XSLT mapping requirement.
I will be getting the value as mix of numbers and alphabets like " 1343: -BIZ USA ".
I need to pick only number '1343' from the input field.
Is there any function in XSLT to pick only numbers and ignore alphabets?
Thanks
DeepthiHi There,
The below piece of code could cater your requirement, for flltering the non digit chars from your field,
<xsl:value-of select="translate(<your field name>, translate(<your field name>, '0123456789', ''), '')"/>
This would separate the non numeric chars from your field in mapping.
Let me know this works.
Regards,
Rajesh Kumar T -
Mapping requirement about grouping with restriction
Hi,experts:
There is a complex mapping requirement.
There are 2 document types(A and B) in the source records.
I need collect the amount with the document which is type A.
The source records are as follows:
Doc_No Doc_Type Doc_Itm_No Amount
0001 A 0010 3
0001 A 0020 4
0002 B 0010 5
0002 B 0020 6
0003 A 0010 11
0003 A 0020 22
The target records should be:
Doc_No Doc_Type Amount
0001 A 7
0003 A 33
The source and the target data type are the same as follows:
Documents 1...unbound
---Doc_No 1...1
---Doc_Type 1...1
---Doc_Itm_No 1...1
---Amount 1...1
Q1: How to create the target top node(Documents) with restriction(Doc_Type = 'A')?
Without the restriction,i can handle it well as follows:
removecontext(Doc_No)->sort->splitbyvalue(value changed)->collapsecontexts->Documents
Q2:How to collect the amount?
Regards
Minghi ming,
do this mapping
Q1: How to create the target top node(Documents) with restriction(Doc_Type = "A")?
Doc_type-->(if equals "A")>(remove context)-->(createif)----->Documents
q2. How to collect the amount?
Doc_type(Documents context) + Amount(Document's context)--->UDF1>(SplitByValue)->Doc_type
Doc_type(Documents context) + Amount(Document's context)--->UDF2>(SplitByValue)-->Amount
//****************************UDF1***********************//
public void get_batch_name(String[] Doc_type,String[] Amount,ResultList result,Container container){
//write your code here
Hashmap myHashmap=new Hashmap();
for(int i=0; Doc_type.length(), Amount.length())
if(myHashmap.get(Doc_type<i>==null))
{myHashmap.add(Doc_type<i>, Amount<i>);}
else
String amt= amt+myHashmap.get(Doc_type<i>);
myHashmap.put(Doc_type<i>,amt);
Set s=myHashmap.keySet();
Iterator i=s.iterator();
while(i.hasNext())
result.addValue(i.next());
//********************UDF2***************************//
public void get_batch_name(String[] Doc_type,String[] Amount,ResultList result,Container container){
//write your code here
Hashmap myHashmap=new Hashmap();
for(int i=0; Doc_type.length(), Amount.length())
if(myHashmap.get(Doc_type<i>==null))
{myHashmap.add(Doc_type<i>, Amount<i>);}
else
String amt= amt+myHashmap.get(Doc_type<i>);
myHashmap.put(Doc_type<i>,amt);
Arraylist s=myHashmap.values();
String array[]=s.toArray();
while(int i=0;i<array.length();i++)
result.addValue(array<i>);
Message was edited by: self
sudeep dhar -
Mapping requirment based on field value
Hi All,
I have a mapping requirement
where in the file i have a 2 AM records as shown
AM U 00000000000010000C
AM X 00000000000120000
Based on AM-03 field i..e,, AM-03 = 'C'
then to the target field i need to pass the value(00000000000120000) of next AM02 record.
so when ever AM03 filed is 'C' then i need to pass the value of next AM record.
can any body suggest me how i it can be acheived.
Thanks
Sai_SHAi am not sure whether i have understood ur req correctly or not..
but u can chk this UDF in ur mapping:
execution type: all values of a context
if(var1[0].equals("C"))
result.addValue(var2[1]);
filed3---removecontext
UDF----target
field2---removecontext -
Mapping Requirement for File to IDOC
Hi All,
I have a requirement related to Mapping and need your help on this. There is a financial posting Interface and the data is being fetched from database using strored procedure.
The source file is having structure like as shown below
<FIExport>
<resultset>
<row>
<headerid>12345</header id>
<field2>5</field2>
<field3>1</field3>
<field4>29</field4>
<field5>3</field5>
</row>
<row>
<headerid>12345</header id>
<field2>5</field2>
<field3>1</field3>
<field4>48</field4>
<field5>3</field5>
</row>
<row>
<headerid>12345</header id>
<field2>5</field2>
<field3>1</field3>
</field4>
<field5>3</field5>
</row>
<row>
<headerid>12346</header id>
<field2>5</field2>
<field3>1</field3>
<field4>2</field4>
<field5>3</field5>
</row>
<row>
<headerid>12347</header id>
<field2>5</field2>
<field3>1</field3>
<field4>2</field4>
<field5>3</field5>
</row>
</resultset>
</FIExport>
Condition:
For creating target structure follwoing conditions are required
1) IDOC at receiver side will be created as per unique header id therefore in the current source structure 3 Idocs will be created for 3 unique header id like 12345 , 12346 , 12347
2) Target EIFISEG which is line item will be created based on per row per unique header id under each IDOC and there has to be 2 SEGMENTS (2A & 2B ) per row based on the VAT amount presence and also two additional E1FISEG has to be created statically per idoc for BSCHL = 34
so for the above source structure the target should have number of EIFISEG as follows:
As there are 3 rows for header id 12345, therefore under IDOC1 the number of EIFISEG will be
since VAT Amount(field 4) is present therefore for 2rows of 12345 header id IDOC it will generate 2X2=4 , E1FISEG segments (each for 2A & 2B) and 1 E1FISEG for 3 row of header id IDOC 12345.
In addition to this 2 additional segment will be created for BSCHL=34( it's duplicate segment of E1FISEG, so no issues in this)
Total number of E1FISEG segments in IDOC for header id(12345) will be = 4 + 1 + 2 = 7 segments
Similarly for IDOC with header id (12346) the total number of EIFISEG will be = 2( 2A & 2B as vat amount (field 4) is present + 2(bschl =34) = 4 segments
Similarly for IDOC with header id(12347) the total number of E1FISEG will be = 2( 2A & 2B as vat amount (field 4) is present + 2(bschl =34) = 4 segments
So the target strcuture should look like:
Target Structure
IDOC1 for header id= 12345
E1FIKPF
field 1
E1FISEG1
field 2
E1FISEG2
field 2
E1FISEG3
field 2
E1FISEG4
field 2
E1FISEG5
field 2
E1FISEG6
field 2
E1FISEG7
field 2
IDOC1 for header id= 12346
E1FIKPF
field 1
E1FISEG1
field 2
E1FISEG2
field 2
E1FISEG3
field 2
E1FISEG4
field 2
IDOC1 for header id= 12347
E1FIKPF
field 1
E1FISEG1
field 2
E1FISEG2
field 2
E1FISEG3
field 2
E1FISEG4
field 2
Please help me to complete this mapping requirement as it seems to be complex.
Thanks & Regards
PrabhatHi,
There was one typo mistake, the TARGET structure will be
Target Structure
IDOC1 for header id= 12345
E1FIKPF
field 1
E1FISEG1
field 2
E1FISEG2
field 2
E1FISEG3
field 2
E1FISEG4
field 2
E1FISEG5
field 2
E1FISEG6
field 2
E1FISEG7
field 2
IDOC2 for header id= 12346
E1FIKPF
field 1
E1FISEG1
field 2
E1FISEG2
field 2
E1FISEG3
field 2
E1FISEG4
field 2
IDOC3 for header id= 12347
E1FIKPF
field 1
E1FISEG1
field 2
E1FISEG2
field 2
E1FISEG3
field 2
E1FISEG4
field 2
Thanks & Regards
Prabhat -
IS Mapping required in JDBC to PROXY asynchronous scenario?
Hi,
I am working on JDBC to PROXY asynchronous scenario. The scheduled stored procedure fetches the data from database tables and stores them in staging table in the same database. XI will fetch the records via JDBC adapter. Now these records are to be posted into SAP custom table via proxy without any transformation. Now is Message mapping and Interface mapping required in this case?Hi
I assume that your source and traget structure will be different as you are using JDBC.
SO you will need to create message mapping and operation mapping.
-Deepak. -
Dear all,
I have a mapping requirment based on IDOC Segment to SOAP.
My IDOC Structue is like this:
Source Target
segement1:
itemA
itemB
itemC ID
itemD
Segement2:
itemD
itemE Description
itemF Value
Based on ItemF ,if its value is 00 then get itemC from Segement1 and itemE from Segement2 and map to target as ID and Desciption .
Please provide me the graphical mapping design.
Regards
Vsantoshcan u provide me some more information like
if ItemF value is 00 then ur trying to get the data from the two fields from the source side ,
what do u want to do with those two values (means u want concatnate or what) and
if itemf value is not queals to 00 then what to do ....... -
Hi All,
I am having a mapping requirement. A comma separated string is coming in the source field and i have to split the value
and map the target fields.
For example:
Source:
<Row>123,BOFA,Success,True</Row>
Output
<Target>
<A>123</A>
<B>BOFA</B>
<C>Success</C>
<D>True</D>
</Target>
I am using UDF for the same but getting an exception.
Please help.
Thanks!!Hi,
Are there only one row or multiple rows in source XML? Then mapping the root is also necessary. Secondly if we look at this XML
<Target>
123 BOFA <C>Success</C>
<D>True</D>
</Target>
The value "123 BOFA" is expected to be within XML tag as shown below
<Target>
<A>123 BOFA</A>
<C>Success</C>
<D>True</D>
</Target>
Could you please kindly mention the version of PI you are working in.
Anyways you can use the following UDF to meet your requirements. For each field in target, u need separete UDF. The value of variable "i" is only to be altered for each target field.
public String UDF(String a,Container container)
String s[]=new String[3];
int i=0;
try
String tgt[]=a.split(",");
//first field value
s[0]=tgt[0]+" "+tgt[1];
//second field ("C") value
s[1]=tgt[2];
//third field ("D") value
s[2]=tgt[3];
catch(Exception e)
e.printStackTrace();
//value of i decides which field you want to populate for first field i=0 so on and so forth
i=0;
return s<i>;
Hope this solves your problem.
regards
Anupam -
"LUN Map requires repair" on re-start
All,
I have been having this problem for several months. I work in a facility where shutting down everything over the weekend is required. One of those devices is an XServe RAID. When it comes back up one side always fails with the message "LUN map requires repair". Additionally, the same controller that exhibits this issue is also unable to accept time updates, and displays an extremely odd date (e.g. 1/30/16). I have attempted re-seating the controller (nothing) and swapping controllers (the problem followed). Anyone have any ideas?
It's an XServe RAID running firmware 1.5.1/1.5.1c
Thanks.
Mac OS X (10.3.9) XServe RAID firmware 1.5.1/1.5.1cWhat's your "shut down" process? Are you turning off all attached computers, or at least unmounting the RAID volumes, and the shutting down the RAID using the RAID Admin tool?
Does the power get physically cut during this down time?
Why is shutting down necessary? And any chance of getting an exception?
=Tod -
Suggestion/opinion in scenario mapping required-PLEASE
Hi,
I have a typical retail scenario and I seek expert suggestion opinion on this.
In a scenario where materials are purchased from different vendors and received.
Later they are sold to customer/s through direct selling or mass market and also sold to other company of the group via ICT process at the cost.
Goods are also transferred to other company via ICT process.
These goods are having different combination while they are being sold.
To give a classic example:
Company orders for say pens of different size and different colors each defined as a different mat code.
They are ordered in hugh quantities and sold in the mass market either in several quantity or a single piece.
Most often what happens is that looking at the market trend company packs different types of pens in one pouch and sell them either through mass market or through consignment.
Sometimes they create hugh quantity of packs in anticipation that they will get sold.
However it also happens that some customer is interested in buying those packs in bulk quantities but only thing that he insists is that he wants to have a different type of pen out of several pens in the pouch already created.
Suppose a pack consists of pens of same type but of colors black,blue,green and all having differerent material codes.
Customer is intersested in buying this pack in bulk quantity but his only requirement is that instead of balck he would like to have a red pen in each pouch.
Company does not want to lose this customer at any cost since he has shown interest in buying a very hugh quantity.
This is one of the typical examples and this type of things are very common in such type of retail business.
<i><b>Our scope is very limited in the sense that we have to map this business right from procurement to sell with standars MM/SD/FI functionality.</b></i>
There are hundreads of businesses who run similarly and have implemented SAP.
In the given context I need opinion from you experts on how to map following scenarios
1..How to create pouches/value packs
2..How to change the combinations if a specific customer requirement comes to alter the combination as stated above
3..how to handle returns.
Our approach:
For creating pouches/packs, we are planning to use MM subcontracting functioanality whereby packs will be created inhouse but will be treated as subcontracting by having a logical vendor created in the system.
<b>We have restricted the creation of packs to one level BOM only</b> and also we will restrict creation of BOM to one instance only so that we will not have any alternate BOM created for the same parent material(separate item code that we will be creating for the entire pack) and child materials(different types of pens with aseparate material code) combination.
This will ensure that if already a pack has been created with the combination of components mentioned above ,system will not allow if someone tries to create another pack for the same parent child combination.
Meaning that there are no versions available & tracking becomes easy.
The only worrying factor is that these types of pack creation activity(value packs) is very frequent in this type of business.
Users will not accept to create a different material for the value pack and subsequently to create bom and then do subcontracting to have the stock <i><b>every now and then</b></i>.
<u><i><b>Also how to handle the issue of changing the component of an already created pouch.</b></i></u>
Has anyone mapped such types of things in standard functionality of MM SD.If so request you all to share your suggestions/views on this.
Thanks in advance
arjmanHi,
There are 3 companies i.e., ABC, X123 & Y789.
1. Create a service contract in ABC for X123 as Service Provider. Prerequisite is Create X123 as the vendor in ABC company.
2. Create the Service order based on that in ABC.
3. Create a service contract in X123 for Y789 as Service Provider. Prerequisite is Create Y789 as the vendor in X123 company.
4. Create the Service order based on that in X123.
Then do the normal proceedings. Correct me if I am wrong.
Regards,
Maheswaran. -
Hi,
I have a requirement where I want to transform the incoming XML from one structure to another (basically dropping the namespaces/prefixes etc but keeping the structure) and have reached the conclusion this can be achieved using an XSLT mapping.
Hoowever, can you please point me in the irection of some good websites that have good XSLT examples and code snippets ?
Thanks
Colin.Hi Colin,
I have done some simple scenario regarding this XSLT mapping.This is the simple piece of code tat i have executed.Hope it will be helpful to you.And refetr to w3schools.com for more info.
?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<MT_EMP_TARGET>
<xsl:for-each select="//EMP_DATA">
<EMP_DATA>
<xsl:variable name="fname" select="//EMP_DATA/First_Name"/>
<xsl:variable name="lname" select="//EMP_DATA/Last_Name"/>
<Emp_Code><xsl:value-of select="//EMP_DATA/Emp_Code"/></Emp_Code>
<Name><xsl:value-of select="concat($fname,' ',$lname)"/></Name>
<Join_Dt><xsl:value-of select="//EMP_DATA/Join_Dt"/></Join_Dt>
<Designation><xsl:value-of select="//EMP_DATA/Level"/></Designation>
<Dept><xsl:value-of select="//EMP_DATA/Dept"/></Dept>
</EMP_DATA>
</xsl:for-each>
</MT_EMP_TARGET>
</xsl:template>
</xsl:stylesheet>
And here is my input data:
?xml version="1.0" encoding="UTF-8"?>
<MT_EMP>
<EMP_DATA>
<Emp_Code>2994</Emp_Code>
<First_Name>Gary</First_Name>
<Last_Name>Moore</Last_Name>
<Join_Dt>02/21/05</Join_Dt>
<Dept>SAP</Dept>
<Level>P3</Level>
</EMP_DATA>
<EMP_DATA>
<Emp_Code>2995</Emp_Code>
<First_Name>Dolly</First_Name>
<Last_Name>Smith</Last_Name>
<Join_Dt>12/11/06</Join_Dt>
<Dept>CSD</Dept>
<Level>P4</Level>
</EMP_DATA>
<EMP_DATA>
<Emp_Code>2996</Emp_Code>
<First_Name>Sam</First_Name>
<Last_Name>Brown</Last_Name>
<Join_Dt>04/01/05</Join_Dt>
<Dept>Java</Dept>
<Level>P3</Level>
</EMP_DATA>
<EMP_DATA>
<Emp_Code>2997</Emp_Code>
<First_Name>Kim</First_Name>
<Last_Name>Larson</Last_Name>
<Join_Dt>02/02/06</Join_Dt>
<Dept>SAP</Dept>
<Level>P3</Level>
</EMP_DATA>
</MT_EMP>
Cheers,
Prasanthi. -
Flat File to IDOC Mapping requirement to generate Multiple Segments
Hi Experts,
I got a requirement were i have 2 records in a file and i need to generate 2 IDOCs with multiple segments in it.
FILE :
10/01/2010 101 KRNA ic_quantity 30-0257 3526 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3526 1 2 ea 110000 10
Idoc should generate 2 IDOCs with multiple segments as shown below
I have imported the IDOC and changed the occurrence to " unbounded "
The Basic IDOC Type : WMMBID02
I need to generate Multiple segments of E1MBXY1
i.e.., First IDOC should contain two E1MBXY1 segments
Second IDOC should contain Four E1MBXY1 segments
IDOC1 : WMMBID02
Segment : E1MBXY1( 2 segments)
10/01/2010 101 KRNA ic_quantity 30-0257 3526 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3526 1 2 ea 110000 10
IDOC2 : WMMBID02
Segment : E1MBXY1 ( 4 segments)
10/01/2010 101 KRNA ic_quantity 30-0257 3526 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 30-0257 3521 1 1 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3526 1 2 ea 110000 10
10/01/2010 101 KRNA ic_quantity 90-0005 3521 1 2 ea 110000 10
Can anyone suggest me how to generate IDOCs with multiple segments
what are multiple ways of generating it
Whether it can be achieved using Multi-mapping or I need go for UDF
If any one has done has done this type of requirement ,please share the points.
Thanks
SaiBasically you need to generate idoc per record in the flat file. During fcc conversion you convert flat file to xml structure at the sender side. In the mapping use xml file structure source and idoc as receiver structure. You just export idoc and update the idoc segment 1 to unbounded. Please follow the michael blog for file to idoc multimapping without bpm. Yes without bpm it is possible.
see this link... This will answer your requirement.
https://wiki.sdn.sap.com/wiki/display/XI/File%20to%20Multiple%20IDOC%20Splitting%20without%20BPM
>Whether it can be achieved using Multi-mapping or I need go for UDF
you dont need udf for this. -
Hi Experts,
I have a file to IDoc scenario for Goods Receipts.
I am receiving the good receipts in batch and the incoming structure is given below-
DT_SABRE_GoodsReceipts
GoodsReceiptsData 0.unbounded
Header 0.1
Posting_Date 0.1
Delivery_Note_Date 0.1
DataRecord 0.unbounded
MaterialCode
TypeCode
TrackingID_Number
QTY_Accepted
QTY_Received
DeliveryNote_Number
LineStation_Code
PO_LineItem_Number
PO_Number
QTY_Rejected
all the fields in the data record are 0.1 occurrence and having String as XSD type.
A sample example of the incoming XML is given below-
<GoodsReceiptsData>
<Header>
<Posting_Date>1</Posting_Date>
<Delivery_Note_Date>2</Delivery_Note_Date>
</Header>
<DataRecord>
<MaterialCode>m1</MaterialCode>
<TypeCode>t1</TypeCode>
<TrackingID_Number>12</TrackingID_Number>
<QTY_Accepted>23</QTY_Accepted>
<QTY_Received>2</QTY_Received>
<DeliveryNote_Number>111</DeliveryNote_Number>
<LineStation_Code>wsd</LineStation_Code>
<PO_LineItem_Number>10</PO_LineItem_Number>
<PO_Number>111</PO_Number>
<QTY_Rejected>21</QTY_Rejected>
</DataRecord>
<DataRecord>
<MaterialCode>m2</MaterialCode>
<TypeCode>t1</TypeCode>
<TrackingID_Number>12</TrackingID_Number>
<QTY_Accepted>23</QTY_Accepted>
<QTY_Received>2</QTY_Received>
<DeliveryNote_Number>222</DeliveryNote_Number>
<LineStation_Code>wsd</LineStation_Code>
<PO_LineItem_Number>10</PO_LineItem_Number>
<PO_Number>222</PO_Number>
<QTY_Rejected>21</QTY_Rejected>
</DataRecord>
<DataRecord>
<MaterialCode>m3</MaterialCode>
<TypeCode>t1</TypeCode>
<TrackingID_Number>12</TrackingID_Number>
<QTY_Accepted>23</QTY_Accepted>
<QTY_Received>2</QTY_Received>
<DeliveryNote_Number>111</DeliveryNote_Number>
<LineStation_Code>wsd</LineStation_Code>
<PO_LineItem_Number>20</PO_LineItem_Number>
<PO_Number>111</PO_Number>
<QTY_Rejected>21</QTY_Rejected>
</DataRecord>
</GoodsReceiptsData>
<GoodsReceiptsData>
<Header>
<Posting_Date>3</Posting_Date>
<Delivery_Note_Date>2</Delivery_Note_Date>
</Header>
<DataRecord>
<MaterialCode>m6</MaterialCode>
<TypeCode>t1</TypeCode>
<TrackingID_Number>12</TrackingID_Number>
<QTY_Accepted>23</QTY_Accepted>
<QTY_Received>2</QTY_Received>
<DeliveryNote_Number>111</DeliveryNote_Number>
<LineStation_Code>wsd</LineStation_Code>
<PO_LineItem_Number>30</PO_LineItem_Number>
<PO_Number>111</PO_Number>
<QTY_Rejected>21</QTY_Rejected>
</DataRecord>
<DataRecord>
<MaterialCode>m9</MaterialCode>
<TypeCode>t1</TypeCode>
<TrackingID_Number>12</TrackingID_Number>
<QTY_Accepted>23</QTY_Accepted>
<QTY_Received>2</QTY_Received>
<DeliveryNote_Number>33322</DeliveryNote_Number>
<LineStation_Code>wsd</LineStation_Code>
<PO_LineItem_Number>90</PO_LineItem_Number>
<PO_Number>33322</PO_Number>
<QTY_Rejected>21</QTY_Rejected>
</DataRecord>
</GoodsReceiptsData>
</ns0:MT_SABRE_GoodsReceipts>
Here, Delivery_Note_Date will be same for all the Header Section for all the GoodReceipts nodes, but the posting date will differ.
Now at the target side we have to create the IDOc in the below way-
for each goodreceipt file we need to check how many number of data records are there. In the example above-
for the first goodsreceipts we have 2 data records for the same PO number 111, so 1 IDOc will be created and this Idoc will contain two line items for each of this data records. and this IDoc will contain the respective dates from the Header Node.
Again for the PO number 222 another IDoc will be created with only one detail record and having the same Dates from the Header node.
Now we have again the PO number 111 in the 2nd goods receipt file, and in this case the header contains the different date.
considering this goods receipts file we have to create another IDoc with one detail record and date will be taken from the header node of the second goods receipt file.
As we have another PO 33322 in 2nd goods receipt file so another IDoc should be created with 1 line item. this will also contain the dates from the header of the 2nd good receipt file.
So as per the example given above we should have-
4 Idocs at target side.
1st IDoc- will contain 2 detail record from the first good receipt for PO num 111
2nd IDoc- will contain 1 detail record from the first good receipt for PO num 222
3rd IDoc- will contain 1 detail record from the 2nd good receipt for PO num 111
4th IDoc- will contain 1 detail record from the 2nd good receipt for PO num 33322.
The IDoc I am using at target side- as imported XSD and using multiple occurence. I am usnig - MBGMCR IDoc having basic type - MBGMCR03
Below is the mapping rule -
Idoc segment
E1BP2017_GM_ITEM_CREATE
E1BP2017_GM_HEAD_01
E1BP2017_GM_ITEM_CREATE
E1BP2017_GM_ITEM_CREATE1
E1BP2017_GM_HEAD_01
E1BP2017_GM_ITEM_CREATE
E1BP2017_GM_ITEM_CREATE
E1BP2017_GM_ITEM_CREATE1
E1BP2017_GM_ITEM_CREATE
E1BP2017_GM_ITEM_CREATE
E1BP2017_GM_ITEM_CREATE
E1BP2017_GM_ITEM_CREATE
E1BP2017_GM_ITEM_CREATE
Target IDoc Fields ( the below fileds can be found in the segments mentioned above)
PLANT
PSTNG_DATE
PO_NUMBER
DELIV_NUMB
DOC_DATE
PO_ITEM
MATERIAL
QUANTITY
ENTRY_QNT
PO_PR_QNT
STGE_LOC
ORDERID
REF_DOC
Source fileds
Line station code
Posting date
PO number
Delivery Note number
Delivery Note date
PO line item number
Material code
Quantity received (in order UOM)
Quantity accepted (in order UOM)
Quantity rejected (in order UOM)
Type Code
Reference number
Tracking Id Number
I am able to produce the IDoc at target side, using below way-
POnumber( sting this to upper context)-> sort -> splibyvalue(value change)->co;;apse context--> IDoc
it is creating 4 IDocs.
But I am stuck with the other fields and the date fields from the header.
Request all of you for your help. Any help would be much appreciated.
please let me know if any information required.
Thanks
Sugata B MajumderI am sorry, I don't know why the post looks like this, I have uploaded one file in the below link please download the same where I have written the same query but it looks good.
[http://www.filefactory.com/file/b55h6c3/n/Mapping_Required.doc] -
BAPI with RFC enables creation and mapping required settings
Dear Experts,
My client is having their old legacy system in .Net .
Now their requirement is whenever they will create Vendor in their system that created vendor entry should be created automatically in SAP.
I dont know about BAPI and RFC and how it will work.
I will try to go up to the creation of BAPI with RFC enabled.
But to map their requirement what Steps and Setting need to be done in SAP as well as in their Legacy system (.Net).
Please guide me to solve the issue.
Regards,
Sanket.closed
-
Hi, experts:
I have a requirement about creating FI document with XI.
The scenario is JAVA<=>XI<=>RFC
If one item is sent from JAVA system with SHKZG = 'S' to XI,
XI should copy it with SHKZG = 'H'.Then the 2 items are sent to RFC.
Which function should be used in mapping,thank you very much!
Regards
Minghi,
you can use ifwithoutelse function to map your condition
if you need to create two nodes from one
remember to copy the target node twice (right click
on the target node and copy node)
this will create two nodes
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>
Maybe you are looking for
-
Better control over the creation of thumbnails
While i have nothing against the current method of generating thumbnails with ADDT, I feel we need better controls as to how our thumbnails are created. By all means, the current option of generating thumbnails on the fly can remain, but I feel we ne
-
JDBC Connector : pool gets depleted
Hi, we are currently working with SAP EP 6.0 SP2 and trying out some development work with the connector framework. We are writing a component which uses the CF to retrieve information from a Microsoft SQL Server 2000. The portal component works, we
-
TBD4 - Upload Polish rates in OB08 table
We currently import daily exchange rates from FINISS to a central SAP server and replicate via ALE to other SAP clients throughout our organization. We currently load the rates at the end of our business day in the US (16:00). We are now implement
-
My custom application generates Postscript files that are then distilled to create a PDF file as final output. I know how to program a watermark in Postscript using setpagedevice. However, I cannot find a way to dynamically make the watermark appear
-
Airport is always connected yet internet is only working sporadically
Sup! I need help! I'm calling upon all MacLovers, Macinado's and Jedi MACsters! So the stupid airport is connected yet the internet is only working when it wants to. I know right! ahhh! It's working then it's not then it's working bah stupid jerk. I