Help : How to test interface mapping in n:1 scenario
I have a scenario two message interfaces==> one message interface.
Then I new one interface mapping, and choose two source interfaces, one target interface. Also filled the mapping program.
But when switch to the test tab, there is no display about the source and target message.
How to do the test in this kind of scenario?
Thanks a lot!
Edited by: kiki qin on Oct 28, 2008 2:24 PM
Hi
First check in Message mapping first if you have one.
Secondly when you select source or target message while developing message mapping did u get message like No objects found or something.
It should show either error or source message when you test interface mapping in any case.
Thanks
Gaurav
Similar Messages
-
"XML not well-formed" error while testing Interface mapping.
Hello Experts,
I have a simple Interface mapping test, where a single input field of type string is mapped to a target Interface.
The content of a string actually will be a XML. I am using a XSLT mapping to convert string XML to XML. The XSLT mapping used by me is as :
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:value-of select="//string" disable-output-escaping="yes" />
</xsl:template>
</xsl:stylesheet>
Test data to be used is :
<?xml version="1.0" encoding="ISO-8859-1"?>
<string>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Unchain my heart</title>
<artist>Joe Cocker</artist>
<country>USA</country>
<company>EMI</company>
<price>8.20</price>
<year>1987</year>
</cd>
</catalog>
</string>
My Target structure is like:
catalog
CD
title
artist
country
company
price
year
No matter what I input as a test data , I get the error as "XML not well-formed" while testing Interface mapping.
Please suggest what could be the reason for this error?
Regards,
Abhi.Hi check your XSLT mapping in XMLY spy with test data,the out of the XSLT Mapping should be valid XML , then only you can see output in interface mapping.
Regards,
Raj -
How to test the RFC to Flat File scenario
Hi,
How to test the RFC to Flat File scenario
regards,
kiranHi,
After running the RFC it's going Dump.
this is the error message i got.
"Error analysis
An error occurred when executing a Remote Function Call.
"CPI-C error CM_RESOURCE_FAILURE_NO_RETRY"
Status of connection.... "CODE=CM_RESOURCE_FAILURE_NO_RETRY -1 -1 SAPCODE=666
CONV="
Internal error code.... "RFC_IO5"
There is an error in the communication system. To clarify
and resolve the error, contact your system administrator. " -
Please Help::How to display a Map with LIsts as Keys and Values using JSTL
Hi,
I need some assistance on how to display a Map in JSP using struts or core JSTL. I have a HashMap which has a List of keys and each key maps to a value of an ArrayList.i.e I have an ArrayList of taxCodes and each taxCode maps to a value of taxDetails which is an ArrayList of details for for that particular taxCode. I have some trouble to display each taxCode then display taxDetails for each taxCode. Here is my code below:
OrderDetails.java
package orderitems;
import java.sql.*;
import java.util.*;
public class OrderDetails {
private LineOder lineOrder;
private Map lineItems;
//returns an item number, key_item, from its unique keys
public int getItemNumber(int key_item, String key_year,
String key_office,String key_client,String key_company){
Connection conn = null;
Statement stat = null;
ResultSet rst = null;
int itmNum = 0;
* key_item a unique number for an item.
* key_year,key_office,key_client,key_company unique keys
* for each order where this key_item is taken
* from.
String select = "SELECT key_item FROM "+
Constants.WEB_TABLE +" WHERE key_item = " + key_item +
" AND key_year = '" + key_year + "'" +
" AND key_office = '" + key_office + "'" +
" AND key_client = '" + key_client + "'" +
" AND key_company = '" + key_company +"'";
DbConnection dbConn = new DbConnection();
try {
conn = dbConn.getDbConnection(Constants.WEB_JNDI);
stat = conn.createStatement();
rst = stat.executeQuery(select);
if(rst.next()){
itmNum = Integer.parseInt(rst.getString("key_item"));
} catch (SQLException ex) {
ex.printStackTrace();
} finally{
SQLHelper.cleanUp(rst, stat, conn);
return itmNum;
//get a list of item number(item codes)
public List getAllItemNumbers(String key_year,
String key_office,String key_client,String key_company){
List itemNumbers = new ArrayList();
LineItem itemNumber = null;
Connection conn = null;
Statement stat = null;
ResultSet rst = null;
String select = "SELECT key_item FROM "+ Constants.WEB_TABLE +
" WHERE key_year = '" + key_year + "'" +
" AND key_office = '" + key_office + "'" +
" AND key_client = '" + key_client + "'" +
" AND key_company = '" + key_company + "'";
DbConnection dbConn = new DbConnection();
try {
conn = dbConn.getDbConnection(Constants.WEB_JNDI);
stat = conn.createStatement();
rst = stat.executeQuery(select);
while(rst.next()){
itemNumber = new LineItem();
itemNumber.setKey_item(Integer.parseInt(rst.getString("key_item")));
itemNumbers.add(itemNumber);
} catch (SQLException ex) {
ex.printStackTrace();
} finally{
SQLHelper.cleanUp(rst, stat, conn);
return itemNumbers;
//get a list of tax codes
public List getAllTaxCodes(int key_item, String key_year,
String key_office,String key_client,String key_company){
Connection conn = null;
Statement stat = null;
ResultSet rst = null;
ItemTax taxCode;
List taxCodes = new ArrayList();
int itemNum = getItemNumber(key_item, key_year,
key_office,key_client,key_company);
String select = "SELECT key_tax_code FROM "+
Constants.WEB_TABLE +" WHERE key_item = " + itemNum +
" AND key_year = '" + key_year + "'" +
" AND key_office = '" + key_office + "'" +
" AND key_client = '" + key_client + "'" +
" AND key_company = '" + key_company +"'";
DbConnection dbConn = new DbConnection();
try {
conn = dbConn.getDbConnection(Constants.WEB_JNDI);
stat = conn.createStatement();
rst = stat.executeQuery(select);
while(rst.next()){
taxCode = new ItemTax();
taxCode.setKey_tax_code(rst.getString("key_tax_code"));
taxCodes.add(taxCode);
} catch (SQLException ex) {
ex.printStackTrace();
} finally{
SQLHelper.cleanUp(rst, stat, conn);
return taxCodes;
/////This methode returns a Map which am trying to display in JSP
//use tax code to get tax details
public Map getItemTaxDetails(String key_year,String key_office,
String key_client,String key_company,int key_item){
ItemTax taxDetail = null;
List taxDetails = new ArrayList();
List itemTaxCodes = new ArrayList();
Map itemTaxDetails = new HashMap();
Connection conn = null;
Statement stat = null;
ResultSet rst = null;
//get a list of all tax codes of an item with a
//given item number
itemTaxCodes = getAllTaxCodes(key_item,key_year,
key_office,key_client,key_company);
DbConnection dbConn = new DbConnection();
try {
conn = dbConn.getDbConnection(Constants.WEB_JNDI);
stat = conn.createStatement();
for(Iterator taxCodeIter= itemTaxCodes.iterator(); taxCodeIter.hasNext();){
ItemTax itemTaxCode = (ItemTax)taxCodeIter.next();
String taxCode = itemTaxCode.getKey_tax_code();
String select = "SELECT tax_type,tax_value," +
"tax_limit_val FROM "+ Constants.WEB_TABLE +
" WHERE key_item = "+ key_item +
" AND key_year = '" + key_year + "'" +
" AND key_office = '" + key_office + "'" +
" AND key_client = '" + key_client + "'" +
" AND key_company = '" + key_company +"'" +
" AND key_tax_code = '" + taxCode + "'";
rst = stat.executeQuery(select);
while(rst.next()){
taxDetail = new ItemTax();
//records to be displayed only
taxDetail.setKey_item(Integer.parseInt(rst.getString("key_item")));
taxDetail.setTax_value(rst.getString("tax_value"));
taxDetail.setTax_limit_val(Float.parseFloat(rst.getString("tax_limit_val")));
//////other details records ommited//////////////////////////
taxDetails.add(taxDetail);////An ArrayList of taxDetails for each taxCode
* A HashMap which has all taxCodes of an item as its keys
* and an ArrayList of taxdetails as its values.
* I return this for display in a JSP.
itemTaxDetails.put(taxCode,taxDetails);
System.out.println();
System.out.println("*********CONSOLE OUTPUT*************");//display on console
Set set = itemTaxDetails.keySet();
Iterator iter = set.iterator();
System.out.println("Key\t\tValue\r\n");
while (iter.hasNext()) {
Object taxCode=iter.next();
Object details=itemTaxDetails.get(taxCode);
System.out.println(taxCode +"\t" + details);
System.out.println("************************************");
} catch (SQLException ex) {
ex.printStackTrace();
} finally{
SQLHelper.cleanUp(rst, stat, conn);
return itemTaxDetails;
//details of an item with all its taxes
public List getAllItemDetails(String key_year,
String key_office,String key_client,String key_company){
List lineItems = new ArrayList();
List itemNumbers = new ArrayList();
Map taxDetails = new HashMap();
LineItem item = null;
Connection conn = null;
Statement stat = null;
ResultSet rst = null;
//A list of all item numbers in the declaration
itemNumbers = getAllItemNumbers(key_year,
key_office,key_client,key_company);
DbConnection dbConn = new DbConnection();
try {
conn = dbConn.getDbConnection(Constants.WEB_JNDI);
stat = conn.createStatement();
for(Iterator itemIter= itemNumbers.iterator(); itemIter.hasNext();){
LineItem itemNum = (LineItem)itemIter.next();
int itemNumber = itemNum.getKey_item();
String select = "SELECT item_description,item_mass," +
"item_cost" +
" FROM " + Constants.WEB_TABLE +
" WHERE key_year = '"+key_year+"'" +
" AND key_office = '"+key_office+ "'"+
" AND key_client = '"+key_client+ "'"+
" AND key_company = '"+key_company+ "'"+
" AND key_item = " + itemNumber;
rst = stat.executeQuery(select);
while(rst.next()){
item = new LineItem();
item.setItem_description(rst.getString("item_description"));
item.setItem_mass(Float.parseFloat(rst.getString("item_mass")));
item.setKey_item(Integer.parseInt(rst.getString("item_cost")));
//////other details records ommited//////////////////////////
/* A HashMap of all itemTaxeCodes as its keys and an
* ArrayList of itemTaxedetails as its values
taxDetails = getItemTaxDetails(item.getKey_year(),item.getKey_office(),
item.getKey_client(),item.getKey_company(),item.getKey_item());
//item tax details
item.setItmTaxes(taxDetails);
//list of items with tax details
lineItems.add(item);
} catch (SQLException ex) {
ex.printStackTrace();
} finally{
SQLHelper.cleanUp(rst, stat, conn);
return lineItems;
public Set getOrders(String key_year,String key_office,
String key_client,String key_company){
List lineItems = new ArrayList();
Set lineOrders = new HashSet();
Connection conn = null;
Statement stat = null;
ResultSet rst = null;
LineOder lineOrder = null;
String select = "SELECT * FROM " + Constants.WEB_TABLE +
" WHERE key_year = '" + key_year + "'" +
" AND key_office = '" + key_office + "'" +
" AND key_client = '" + key_client + "'" +
" AND key_company = '" + key_company + "'";
DbConnection dbConn = new DbConnection();
try {
conn = dbConn.getDbConnection(Constants.WEB_JNDI);
stat = conn.createStatement();
rst = stat.executeQuery(select);
while(rst.next()){
lineOrder = new LineOder();
lineOrder.setKey_year(rst.getString("key_year"));
lineOrder.setKey_office(rst.getString("key_office"));
lineOrder.setKey_client(rst.getString("key_client"));
lineOrder.setKey_company(rst.getString("key_company"));
////list of items with all their details
lineItems = getAllItemDetails(lineOrder.getKey_year(),lineOrder.getKey_office(),
lineOrder.getKey_client(),lineOrder.getKey_company());
//setting item details
lineOrder.setItems(lineItems);
//a list of order with all details
lineOrders.add(lineOrder);
} catch (SQLException ex) {
ex.printStackTrace();
} finally{
SQLHelper.cleanUp(rst, stat, conn);
return lineOrders;
Controller.java
package orderitems;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Controller extends HttpServlet {
private Map taxDetails = new HashMap();
private OrderDetails orderDetails = null;
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)throws
ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String key_year = "2007";
String key_office = "VZX00";
String key_company = "DG20";
String key_client = "ZI001";
int key_item = 1;
String nextView = "/taxdetails_list.jsp";
orderDetails = new OrderDetails();
taxDetails = orderDetails.getItemTaxDetails(key_year,key_office,
key_company,key_client,key_item);
//Store the collection objects into HTTP Request
request.setAttribute("taxDetails", taxDetails);
RequestDispatcher reqstDisp =
getServletContext().getRequestDispatcher(nextView);
reqstDisp.forward(request,response);
protected void doGet(HttpServletRequest request,
HttpServletResponse response)throws
ServletException, IOException {
processRequest(request, response);
protected void doPost(HttpServletRequest request,
HttpServletResponse response)throws
ServletException, IOException {
processRequest(request, response);
taxdetails_list.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Simple Tax Detail Diaplay ::</title>
<link rel="stylesheet" type="text/css" href="imgs/orders.css"/>
</head>
<body>
<jsp:useBean id="taxDetails" class="java.util.HashMap" scope="request"/>
<table>
<c:forEach items="${taxDetails}" var="hMap">
<tr>
<td><c:out value="${hMap.key}" /></td>
<!--td><%--c:out value="${hMap.value}" /--%></td-->
</tr>
</c:forEach>
</table>
</body>
</html>am displaying taxCodes(in this case i have VAT and ICD) fine but cant figure out how to display a list of value for each taxCode.Here is the output am getting
both in my JSP and on the console:
*******************************CONSOLE OUTPUT****************************
Key Value
ICD [orderItems.ItemTax@13e6226, orderItems.ItemTax@9dca26]
VAT [orderItems.ItemTax@13e6226, orderItems.ItemTax@9dca26]
Edited by: aiEx on Oct 8, 2007 6:54 AMhi evnafets,
yes i need a nested for loop.I have tried your advice but my bean properties are not found.Am getting this error:
javax.servlet.ServletException: Unable to find a value for "key_item" in object of class "java.lang.String" using operator "."
I have tried this as stated earlier in the post:I have tried to make the method getItemTaxDetails return a List and get the returned list value as taxDetails. I then tested to display this list on JSP and its displaying fine.
public List getItemTaxDetails(String key_year,String key_office,
String key_client,String key_company,int key_item){
ItemTax taxDetail = null;
List taxDetails = new ArrayList();
List itemTaxCodes = new ArrayList();
Map itemTaxDetails = new HashMap();
Connection conn = null;
Statement stat = null;
ResultSet rst = null;
//get a list of all tax codes of an item with a
//given item number
itemTaxCodes = getAllTaxCodes(key_item,key_year,
key_office,key_client,key_company);
DbConnection dbConn = new DbConnection();
try {
conn = dbConn.getDbConnection(Constants.WEB_JNDI);
stat = conn.createStatement();
for(Iterator taxCodeIter= itemTaxCodes.iterator(); taxCodeIter.hasNext();){
ItemTax itemTaxCode = (ItemTax)taxCodeIter.next();
String taxCode = itemTaxCode.getKey_tax_code();
String select = "SELECT tax_type,tax_value," +
"tax_limit_val FROM "+ Constants.WEB_TABLE +
" WHERE key_item = "+ key_item +
" AND key_year = '" + key_year + "'" +
" AND key_office = '" + key_office + "'" +
" AND key_client = '" + key_client + "'" +
" AND key_company = '" + key_company +"'" +
" AND key_tax_code = '" + taxCode + "'";
rst = stat.executeQuery(select);
while(rst.next()){
taxDetail = new ItemTax();
//records to be displayed only
taxDetail.setKey_item(Integer.parseInt(rst.getString("key_item")));
taxDetail.setTax_value(rst.getString("tax_value"));
taxDetail.setTax_limit_val(Float.parseFloat(rst.getString("tax_limit_val")));
//////other details records ommited//////////////////////////
taxDetails.add(taxDetail);////An ArrayList of taxDetails for each taxCode
* A HashMap which has all taxCodes of an item as its keys
* and an ArrayList of taxdetails as its values.
* I return this for display in a JSP.
itemTaxDetails.put(taxCode,taxDetails);
} catch (SQLException ex) {
ex.printStackTrace();
} finally{
SQLHelper.cleanUp(rst, stat, conn);
//return itemTaxDetails;
return taxDetails;
}And my JSP
taxdetails_list.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="imgs/orders.css"/>
</head>
<body>
<table>
<c:forEach var="curRecord" items="${taxDetails}" varStatus="rowCounter">
<c:choose>
<c:when test="${rowCounter.count % 2 == 0}">
<c:set var="rowStyle" scope="page" value="odd" />
</c:when>
<c:otherwise>
<c:set var="rowStyle" scope="page" value="even" />
</c:otherwise>
</c:choose>
<tr class="${rowStyle}">
<td>${curRecord.key_item}</td>
<td>${curRecord.tax_value}</td>
<td>${curRecord.tax_limit_val}</td>
</tr>
</c:forEach>
</table>
</body>
</html>I can't see where am going wrong even with your advice.Please help.
Thnx. -
No namespace tag in target message (Test Interface mapping)
Hi,
I'm doing a <b>IDoc to file</b> scenario, and I'm using <b>external definitions</b> and a XSLT mapping. When I try to test the mapping in Interface Mapping he maps it but I <b>can't see the tree view</b>, I only get the source code...
<?xml version="1.0" encoding="utf-8"?>
<SenderID/><ReceiverID/><DocumentDate>20051028090653</DocumentDate>
<DocumentNumber>456184</DocumentNumber><TestIndicator> P</TestIndicator>
<Version>1.0/SSCC</Version>
<Desadv><MessageReferenceNumber>81749973</MessageReferenceNumber></Desadv>
I presume that there is a <b>namespace</b> tag <b>needed</b> like
<ns:Desadv xmlns:ns="http://www.certione.com/RFDesadv/Schema">
but I don't know what to do to have it added to the target message which is external definition Desadv with namespace http://www.certione.com/RFDesadv/Schema in the XSD...
Any help would be appreciated!
Kind regards..
Message was edited by: Bart De SaedeleerHello,
Could you put your XSD definition ?
And check your mapping because it seems that you don't have a root node in output.
<?xml version="1.0" encoding="utf-8"?>
<b><MYROOTNODE></b>
<SenderID/><ReceiverID/><DocumentDate>20051028090653</DocumentDate>
<DocumentNumber>456184</DocumentNumber><TestIndicator> P</TestIndicator>
<Version>1.0/SSCC</Version>
<Desadv><MessageReferenceNumber>81749973</MessageReferenceNumber></Desadv>
<b></MYROOTNODE></b>
Regards,
Chris
Message was edited by: Christophe DUMONT -
Hi,
In the Interface Mapping there is an option to test the
map. But it is not for the ABAP Mapping.
How can we test ABAP Mapping ?
rgds,
RMHi Ruby
What kind of scenario are you working on, IDOC to file, file to IDoc or what.
Depending on the scenario you have created, enter all the details such as Sender Service, Receiver Service etc in the transaction SXI_MAPPING_TEST (in your XI box).
The next step is for you to enter your source XML file, if it is a file to IDoc scenario enter your source xml file. If it is a IDOC to file scenario, then enter the XML payload.
And once you execute it you will be able to test your mapping and see if it successful or not.
cheers
Sameer -
How to test credential Mapping
I have used the default adapter provided by the BEA n also made some services n
events working on it sucessfully, and also made a mapping between the remote user
n the WLS user in the WLI console.wat i want to know is how do i test the mapping
that i have established.
could u plz forward me the way to test this credential mapping
thanking u in anticipation
kirtanHi Ruby
What kind of scenario are you working on, IDOC to file, file to IDoc or what.
Depending on the scenario you have created, enter all the details such as Sender Service, Receiver Service etc in the transaction SXI_MAPPING_TEST (in your XI box).
The next step is for you to enter your source XML file, if it is a file to IDoc scenario enter your source xml file. If it is a IDOC to file scenario, then enter the XML payload.
And once you execute it you will be able to test your mapping and see if it successful or not.
cheers
Sameer -
How to test message mapping in XMLSPY if two receive message types exist?
Hi gurus,
In our message mapping, we have one send message and two receive messages, the testing is ok in message mapping test tool in ESR. While in XMLSPY, it gave the error because of the reason as follows:
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
Even after we added those statments, the error was still there.
How can I resove this problem? Thanks in advance.Hi,
In the source XML message you may find some extra tags being included.
Just remove those extra tags, then it will work fine.
For example:
If your source XML message is:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
<ns1:MT_FileToFile_MultiMap_Src xmlns:ns1="http://FileToFile/MultiMap">
<Input>
<Name>ab</Name>
<EmpId>123</EmpId>
</Input>
</ns1:MT_FileToFile_MultiMap_Src>
</ns0:Message1>
</ns0:Messages>
remove the extra tags and then it will look like:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_FileToFile_MultiMap_Src xmlns:ns0="http://FileToFile/MultiMap">
<Input>
<Name>ab</Name>
<EmpId>123</EmpId>
</Input>
</ns0:MT_FileToFile_MultiMap_Src>
i hope this will help you,
regards,
ganesh. -
How to test ABAP mapping used in a Integration Process node
Hi,
anyone can suggest me how to debug an ABAP mapping used into a transformation node belonging to an Integration Process ?
Thanks.
FrancescoHi, Francesco.
I've debugged ABAP Mapping with SXI_MAPPING_TEST transaction.
If you have creted a scenario including your ABAP Mapping, you only hace to put the correct sender/sender interface and receiver/receiver interface. You have to put some XML document as an input.
I wrote in my code the Break-point instruction an debugged the process without problems.
regards,
Francisco -
Can somebody post link to How to Use ABAP-Mapping in XI 3.0?
Hello,
can somebody post a real link to the document How to Use ABAP-Mapping in XI 3.0. All the links to this documnet in the existing posts are not valid.
Thanks for your information
JaysonHi
Following weblog might help you.
Testing ABAP Mapping - Testing ABAP Mapping
XML DOM Processing in ABAP part I - Convert an ABAP table into XML file using SAP DOM Approach.
/people/r.eijpe/blog/2006/02/19/xml-dom-processing-in-abap-part-iiia150-xml-dom-within-sap-xi-abap-mapping
SDN TV demo to create and test ABAP mapiing - https://media.sdn.sap.com/SDNTV/main.asp?mediaId=128
How to guide for ABAP mapping.
https://websmp106.sap-ag.de/~form/sapnet?_SHORTKEY=01200252310000071155&
Also check these links,
http://help.sap.com/saphelp_nw04/helpdata/en/ba/e18b1a0fc14f1faf884ae50cece51b/content.htm
Testing ABAP Mapping
Using ABAP XSLT Extensions for XI Mapping
Thanks
Gaurav
Edited by: Gaurav Bhargava on Oct 9, 2008 6:27 AM -
Use of Orders05 Interface mapping & XSLT mapping file for Orders03 IDOC
Hello Experts,
In a scenario we are sending Purchase orders and Purhase Order change from SAP to SNC through XI.
Currently Orders03 IDoc is used and standard mapping for Orders03 XSLT is used.
Now the requirement is to use the same IDOC (Orders03) but
- XSLT mapping (OrdersOrders05_ReplenishmentOrderNotification) and
- Interface Mapping (OrdersOrders05_ReplenishmentOrderNotification_01) of Orders05.
What changes would be necessary
- On SAP side,
- in the XSLT mapping, and
- On XI side.
Thanks in advance,
SurajHi Suraj,
First compare ORDERS03 IDOC and ORDERS05 IDoc structures,if both structures are same then u no ned to chnage the XSL it will work fine.
If any chnages in ORDERS05 Idoc then u have to adjust XSLT as per ORDERS05 IDOC.
test interface mapping first and let me know if any error.
Regards,
Raj -
Add Interface mapping to Receiver Determination is not possible
Hello,
I create some scenarios from R\3 to BW and R\3 to File.
When I want to add Interface mapping to Receiver Determination is not possible.
Not to choose from list and not with copy and paste.
Any ideas?
Regards
EladHi Elad,
Just check whether ur interface mapping that u defined in IR is activated properly or not.It will be present in the hit list as soon as u click the help button of the interface mapping of the interface determination in the ID.
Regards,
Prasanthi. -
Hi,
I'm trying to test the SAP example found in document "How to use Abap-Mapping in XI 3.0". This one is:
class interface = Z_TEST_ABAP_MAPPING
method = IF_MAPPING~EXECUTE
But I cannot test it.
1. In IR, when I uses the "Test" option inside my Interface Mapping, I have the following error message:
"Unable to tes. You cannot execute program Z_TEST_ABAP_MAPPING in the test environnement".
2. and when I uses transaction SXI_MAPPING_TEST, I have first this message: <i><SUCCESS>Services Processed Without Error</SUCCESS></i> But in the Trace folder, there is that:
<?xml version="1.0" encoding="iso-8859-1" ?>
- <Top>
<First>BeginTrace</First>
<Trace level="1" type="B">CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV</Trace>
<Trace level="2" type="T">......attachment XI_Context not found</Trace>
<Trace level="1" type="T">No mapping configured</Trace>
<Trace level="1" type="E">CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV</Trace>
</Top>
Anybody can help me?
Regards.
Mickael.Hello,
Have you create a scenario in Integration Directory ?
Check in the Directory if in your interface determination you put correct information.
The sender service : SENDER
The sender interface : BookingOrders corresponding interface.
The sender namespace : http://sap.com/test/ABAPMapping
The receiver service : RECEIVER
Under Configured Inbound Interfaces, you can find :
The Inbound interface : MsgOut corresponding interface.
Interface mapping : BookingOrders2MsgOut that use your ABAP Mapping.
I am not sure the Receiver determination is necessary.
Then if it's OK, check that you put exactly the same information in transaction SXI_MAPPING_TEST :
Sender Service : SENDER
Sender Interface Namespace : http://sap.com/test/ABAPMapping
Sender Interface Name : BookingOrders corresponding interface.
Receiver Service : RECEIVER
Receiver Interface Namespace : namespace where you define your MsgOut Interface.
Receiver Interface Name : MsgOut corresponding interface.
Regards,
Chris -
How to get the name of Interface Mapping ?
Beside the information given by setParameter() i like to know the name of the "Interface Mapping". Does somebody know how to get this information ?
Hi Frank,
not really there are a lot of information in there but <b>not the name of the interfacemapping</b>. By iterating through the xiContext given by setParameter() i got the following output:
<u>As defined in StreamTransformationConstants:</u>
MessageClass = RQ
VersionMajor = 003
VersionMinor = 000
ProcessingMode = A
MessageId = B9EFFFC05A7411D9CA2F00306E5DA806
RefToMessageId = 00000000000000000000000000000000
ConversationId = null
TimeSent = 20041230150856
Interface = ORDERS.ORDERS05
InterfaceNamespace = urn:sap-com:document:sap:idoc:messages
SenderParty = null
SenderPartyAgency = null
SenderPartyScheme = null
SenderService = BS_QGDBW
ReceiverName = msgIF_ORDERS_DATARIVER
ReceiverNamespace = http://prototype.com/xi/test
ReceiverParty = null
ReceiverPartyAgency = null
ReceiverPartyScheme = null
ReceiverService = BS_QGDBW
MappingTrace =
<u>Additional Information found:</u>
Direction = 0
MessageID = B9EFFFC05A7411D9CA2F00306E5DA806
BusinessSystemSender = BS_QGDBW
BusinessSystemReceiver = BS_QGDBW
SenderNamespace = urn:sap-com:document:sap:idoc:messages
SenderName = ORDERS.ORDERS05
QueueID = null
SenderSystem = BS_QGDBW
ReceiverSystem = BS_QGDBW
These are interresting informations but nothing to find out which interface-mapping-name has called the execute-method....
Regards,
Urs -
Getting Java mapping errors when testing my Interface mapping
Hi,
I'm trying to test my interface mapping from IR, I keep getting these exceptions. All I'm doing in my interface mapping is I have two mapping programs a XSLT mapping with java helper functions with the XSL and a message mapping. In the test it pass thru the XSLT mapping but fails at Message mapping and throws the following exception. Any help on this is really appreciated.
10:03:26 Start of test
Call XSLT processor with stylsheet com/earthlink/xi/mapping/xmlc_to_crm_resp.xsl.
START APPLICATION TRACE ***
Response:
0
END APPLICATION TRACE ***
Returned form XSLT processor.
Call method execute of the application Java mapping com.sap.xi.tf._MM_XMLC_RESP_
Error during appliction Java mapping com/sap/xi/tf/_MM_XMLC_RESP_
java.lang.NullPointerException at com.sap.aii.mappingtool.tf3.AMappingProgram.exceptionCaught$(AMappingProgram.java:59) at com.sap.aii.mappingtool.tf3.Transformer.checkParserException(Transformer.java:182) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:149) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrep.server.mapping.ibrun.RepJavaMapping.execute(RepJavaMapping.java:73) at com.sap.aii.ibrep.server.mapping.ibrun.RepSequenceMapping.execute(RepSequenceMapping.java:54) at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80) at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127) at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:167) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
10:03:26 End of testJoe,
most likely your XSLT is outputting a not well-formed XML message.
Remove message mapping from the mapping list and execute it again, to check output.
Also, for mapping debugging in java enhanced function inside XSLT mappings, use the following:
1st, you need to pass the "inputparam" parameter from the XSLT runtime to the Java function (it needs to be one of the input parameters for the executed java function).
In the Java code itself, implement the following code:
AbstractTrace trace = (AbstractTrace) param.get(StreamTransformationConstants.MAPPING_TRACE);
trace.addInfo("Log your message here!");
where <i>param</i> is the input parameter refering to the <i>inputparam</i> from XSLT.
The AbstractTrace and StreamTransformationConstants classes can be found in the aii_map_api.jar file (used in Java mappings).
Regards,
Henrique.
Maybe you are looking for
-
Suddenly, I have no back button and an extra tool bar
When I came in this morning and opened Firefox 4.0b.11 I seem to have a rather odd set up. I have the normal top blue bar that I normally see on all windows applications, with the red x, minimize, maximize. Then below it, I see the blue bar that I sh
-
FCPX freezes system at 76% of Share procedure
Working on 60-minuto doco for last 6 months with no real problems. Until last week when the freeze up occurred. Steps taken: Trashed and reinstalled FCPX Was running from external drive when problem occurred first. Transferred Project and Event to sy
-
How to display a JSF page inside center part of panel of another page?
How can I display a second JSF page inside my center part of Stretch layout in my First page on click of a commandImageLink of First JSF page? Can anyone help me in this with some example?
-
I pods will not synce with windows 8.1?
i pod nano will not synce using windows 8
-
My MBP is going to sleep and I don't want it to. (I want to leave EvoCam running.) Energy Saver..Power Adapter...Sleep = Never. (and "pmset -g" at the Terminal command line shows sleep 0) I'm using my MBP at home; it's plugged in to the wall. PS I al