on 12-30-2005 8:41 PM
This is my datatype for source, which refered by resultset
<?xml version="1.0" encoding="UTF-8"?>
<mt_PhysCountInfo>
<row>
<PROCESSED/>
<TRANS_ID/>
<TRANS_RFC/>
<SAPABX_STATUS/>
<SIGN/>
<OPTION1/>
<LOW/>
<HIGH/>
</row>
</mt_PhysCountInfo>
When JBDC Sender Adapter polls SQL Database, SQL select statement is written in such way that its picks data from 5 tables among them datatypes in 4 tables is same(SIGN, OPTION1, LOW, HIGH) with different values....which in turn will be mapped to 4 corresponding tables in BAPI.
Here is my souce once JDBC adapter picks from SQL tables:
<?xml version="1.0" encoding="utf-8"?>
<mt_PhysCountInfo>
<row>
<PROCESSED>N</PROCESSED>
<TRANS_ID>1847201</TRANS_ID>
<TRANS_RFC>BAPI_MATPHYSINV_GETITEMS () <b>plant_ra, stge_loc_ra, count_status_ra, phys_inv_no_ra</b>, items, headers, return</TRANS_RFC>
<SAPABX_STATUS>x</SAPABX_STATUS>
<SIGN><b>I</b></SIGN>
<OPTION1><b>EQ</b></OPTION1>
<LOW> </LOW>
<HIGH></HIGH>
<SAPABX_STATUS>x</SAPABX_STATUS>
<SIGN><b>I</b></SIGN>
<OPTION1><b>BT</b></OPTION1>
<LOW></LOW>
<HIGH><b>ZZZZZZZZZZZZZZZZ</b></HIGH>
<SAPABX_STATUS>x</SAPABX_STATUS>
<SIGN><b>I</b></SIGN>
<OPTION1><b>EQ</b></OPTION1>
<LOW><b>WOIL</b></LOW>
<HIGH></HIGH>
<SAPABX_STATUS>x</SAPABX_STATUS>
<SIGN><b>I</b></SIGN>
<OPTION1><b>BT</b></OPTION1>
<LOW> </LOW>
<HIGH><b>ZZZZ</b></HIGH>
</row>
</mt_PhysCountInfo>
This is how my target stucture looks like now. But I am not getting right mapping here. If you see values for SIGN, OPTION1, LOW and HIGH they all are same for all tables...means its mapping first set values from source to all tables in target.
<?xml version="1.0" encoding="UTF-8"?>
<ns0:BAPI_MATPHYSINV_GETITEMS xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
<b><COUNT_STATUS_RA></b>
<item>
<SIGN><b>I</b></SIGN>
<OPTION><b>EQ</b></OPTION>
<LOW> </LOW>
<HIGH/>
</item>
<b></COUNT_STATUS_RA></b>
<HEADERS/>
<ITEMS/>
<b><PHYS_INV_NO_RA></b>
<item>
<SIGN><b>I</b></SIGN>
<OPTION><b>EQ</b></OPTION>
<LOW> </LOW>
<HIGH/>
</item>
<b></PHYS_INV_NO_RA></b>
<b><PLANT_RA></b>
<item>
<SIGN><b>I</b></SIGN>
<OPTION><b>EQ</b></OPTION>
<LOW> </LOW>
<HIGH/>
</item>
<b></PLANT_RA></b>
<RETURN/>
<b><STGE_LOC_RA></b>
<item>
<SIGN><b>I</b></SIGN>
<OPTION><b>EQ</b></OPTION>
<LOW> </LOW>
<HIGH/>
</item>
<b></STGE_LOC_RA></b>
</ns0:BAPI_MATPHYSINV_GETITEMS>
But target should look like this after mapping:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:BAPI_MATPHYSINV_GETITEMS xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
<b><COUNT_STATUS_RA></b>
<item>
<SIGN><b>I</b></SIGN>
<OPTION><b>EQ</b></OPTION>
<LOW> <b>WOIL</b></LOW>
<HIGH/>
</item>
<b></COUNT_STATUS_RA></b>
<HEADERS/>
<ITEMS/>
<b><PHYS_INV_NO_RA></b>
<item>
<SIGN><b>I</b></SIGN>
<OPTION><b>BT</b></OPTION>
<LOW> </LOW>
<HIGH><b>ZZZZ</b></HIGH>
</item>
<b></PHYS_INV_NO_RA></b>
<b><PLANT_RA></b>
<item>
<SIGN><b>I</b></SIGN>
<OPTION><b>EQ</b></OPTION>
<LOW> </LOW>
<HIGH/>
</item>
<b></PLANT_RA></b>
<RETURN/>
<b><STGE_LOC_RA></b>
<item>
<SIGN><b>I</b></SIGN>
<OPTION><b>BT</b></OPTION>
<LOW> </LOW>
<HIGH><b>ZZZZZZZZZZZZZZZZ</b></HIGH>
</item>
<b></STGE_LOC_RA></b>
</ns0:BAPI_MATPHYSINV_GETITEMS>
Can I achieve this by using Message Mapping??? or If I have to do with XSLT or JAVA can anybody provide me code.
Thank You
Indrasena
Hi,
>>>Can I achieve this by using Message Mapping???
it depends:)
do you always get 4 values (one for each target table?)
if so then you create a few user advanced functions
that will return values in direct order:
first function:
result.addValue(a[0]);
sencond one:
result.addValue(a[1]);
and so on
then you can use those functions
to map values to different tables
if you have more then you can do some if conditions
in the user advanced function
Regards,
michal
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
80 | |
9 | |
9 | |
7 | |
7 | |
6 | |
6 | |
6 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.