Multi mapping for Synchronous Interface (RFC)
Is it posssible to define synch multimapping (RFC)?
For exmaple my structure is
request
<items>
<item>
</item>
<item>
</item>
</items>
I want to invoke RFC for each <item> and to get response like
<responseitems>
<item>
</item>
<item>
</item>
</responseitems>
Do I need synch BPM or it is possible without?
Hi,
u can do these buy settin the rfc to rfc to unbounded and map the items with the rfc so for every item u will get a rfc.
u can use <b>packaging</b> to perform the multimapping where u can avoid bpm.just create a external defnition for ur rfc and change the occurance of the rfc to 0..unbounded and use the external definition for mapping.
so for each <b>item tag a rfc will be generated</b>.
To get the response give ur inbound interface as synchronous.
regards
jithesh
Message was edited by: jithesh balakrishnan
Similar Messages
-
Multimapping for Synchronous interfaces.
Hi,
Is it possible to do multi mapping for synchronous interfaces.
I have observed that when the cardinality of the target service interface is changed to 0:unbounded , the response message mapping tab disappears from operation mapping.
Can anyone please suggest how it can be handled?
I have a requirement to call a webservice and then write multiple files from the webservice response.Hi Soumya,
i dont think so ...if you think theroitically. you are doing multimapping where u have a N:M relation... so it will be difficult match the respose directly.
Since your scenario is syncrhronous, u have to rember the identity of source messgaes and then u need to reply back to those same identitiies. That means u have to use correlations and that can be achived by BPM. -
Dynamic receiver determination for synchron interface
Hello everybody,
I want to use dynamic receiver determination for a synchron scenario.
The problem is, that the interface 'ReceiverDetermination' (http://sap.com/xi/XI/System SAP BASIS 7.00) is a asynchron interface.
This leads to an error when activating the Interface-Mapping (synch source Interface -> asynch destination Interface ReceiverDetermination)
Is there a way to use the dynamic receiver determination for synchron interface?
Thanks a lot,
ThomasHi Thomas,
I guess your scenario is not possible ASIS, since XI doesn't support 1:n for sync interfaces (and even if your mapping condition reduces it to 1:1, actually it is still 1:n, since your receiver list is unbounded).
Theoretically, you could make it work with BPM, though.
But I've never worked with a Receiver Determination Step reading from an enhanced receiver determination in ID (though there should be no problems).
Use sync async bridge, then use receiver determination step to obtain the receiver from an enhanced Receiver Determination. Pay attention that this enhanced receiver determination is a dummy one, using a mapping from your async abstract interface to the ReceiverDetermination interface. Once your mapping has determined the receiver, the enhanced receiver determination will return that receiver to the Receiver Determination step in the BPM. Then use this receiver in the sync send step (in mode receiver from receiver list, not from context).
The receiver determination of the actual sync send step may be a standard one, with the several receivers there (even if there are several there, at the moment of the sending, only one will be used).
Maybe it will work, maybe not.
Just try it.
Regards,
Henrique. -
Http adapter at sender side for synchronous interface
Hi SapAll.
here for one synchronous interface we using http adapter at sender side.
i just want to know on how i can get the sender ip adress or url through which they sending the data.
will be waiting for best asnwer.
regards.
VarmaHttp adapter at sender side for synchronous interface
i cont see any messages in xi producction.
Is LOGGING_SYNC enabled for your production box....also is the problem just about the visibility of the messages or is your scenario itself not getting executed?
At least the sender application might have received some error response if posting message to XI was a failure....also if possible check the message monitoring in RWB if you feel an error has occured.
Regards,
Abhishek. -
Enhanced Receiver Determination for synchronous interface.
Hello!
Was anyone faced with the Enhanced Receiver Determination? When I try to create
the definition of the Interface Mapping, I get the error:
"Interface modi are different. Source interface Message Interface MI_My_sync_iface | urn:my is synchronous. Target interface Message Interface ReceiverDetermination | http://sap.com/xi/XI/System is asynchronous"
Thank you.Hi ,
U can go through below limks :
Illustration of Enhanced Receiver Determination - SP16
SAP NetWeaver Process Integration: Enhanced Receiver Determination for Synchronous Scenarios
Enhanced Receiver Determination in SAP XI - Exchange Infrastructure - Wiki
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/xi/enhanced%2breceiver%2bdetermination%2bin%2bsap%2bxi
Thanks -
Multi Mapping for a simple scenario
Hi,
i have a scenario i.e. from the source I'm getting some 10 fields of data.. like bellow..
Data: 0--- Unbounded
Company_Code 1-1
Order_No 1-1
Material 1-1
Amount 1-1
but my requirement is.. in the receiver side i have two structures..
1)Receiver1
Data: 0--- Unbounded
Company_Code 1-1
Order_No 1-1
2)Receiver2
Data: 0--- Unbounded
Company_Code 1-1
Material 1-1
Amount 1-1
if the Company Code is 1000 then the data wil goes to First Receiver.. and if the Company Code is 2000 then the data will goes to Second Receiver
This is my requirement..
for this. idid IR point of view every thing correctly by using multi mapping.. even if i test the mapping that is working fine..
but in the ID(Integration Directory ) i'm not able to see any Interface mappings . in the Enhanced Interface detremination.. It was displaying No Objects Found.. message..
for that what can i do.. any suggestions.. please..
regards
JainHi jain,
I think you confused with occurance.
For your recurement You created a structure with 0-unbounded in the Source and Receivers.
There is no need of change the Message type and Interface Name Structure occurances.
Just Do like belllow.
1. Mapping:
select your source structure.
select your Receiver structures.
Put the condition for creating Nodes for the Receiver structures.
There is No need of change occurances.
2.InterFace Mapping:
Select Your source message Interface.
Select your Receiver interfaces.
Have (1 Mapping) 1 source ,2 Receivers.
There is No need of change occurances.
Now go to Interface Determination.Choose extened.you will get your mapping.
Regards,
Prakasu -
Enabling to see the Source payload for synchronous Interface
Hi Experts,
Am working on a SOAP <-> RFC synchronous interface and PI version is 7.4 dual stack. Am unable to see the source payload when a
message is triggered from the Source Webservice. I can only see the receiver payload in RWB for request msg i.e the RFC payload.
Even for Response, I can only see the receiver payload which is sent to webservice and not the source payload from ECC on the RFC.
I have built the interface using ICO. I have made the changes in NWA, by setting the RemoveBody field to false.
Please let me know if any other settings are required. I have checked all other threads related to this issue and could not find the solution
to my issue where only the source payload in the synchronous interface is missing. In case of Asynchronous interface, the source payload
is visible.
Please assist me how can I enable this.
Regards,
Vish...Hi Vishwanath,
Please check the below blog
Message Staging and Logging Options in Advanced Adapter Engine of PI 7.3x
regards,
Harish -
Hi! All
It would be of great help if you provide your suggestions on:
Mapping one XML source file to 6 IDOC receivers, 2 of them are of the same type and 4 are distinct idoc types.
I tried multi-mapping and received the following error:
"Messages in multi-message format can only be sent to one Adapter Engine"
Looks like IDOC adapter does not support multi mapping...
Can you please suggest any other option apart from using BPM(since it consumes lot of resources).
Thanks a lot!!
Regards,
PatrickHey
its not possible to do Multimapping over IDOC's without BPM.
other way around can be to do a single -single scenario,suppose u have 6 IDOC's to post then u need to design 6 different scenarios for them.
without BPM you cant do multimapping for IDOC or HTTP
Thanx
Aamir
Message was edited by:
Aamir Suhail -
Java Mapping for JDBC Interface
Hi,
please help on java mapping for my jdbc interface.
my java code for jdbc is:
Created on May 7, 2008
TODO To change the template for this generated file go to
Window - Preferences - Java - Code Style - Code Templates
package XiMappingDB2.com.xi.test;
@author miracle
TODO To change the template for this generated type comment go to
Window - Preferences - Java - Code Style - Code Templates
Created on May 2, 2008
To change the template for this generated file go to
Window>Preferences>Java>Code Generation>Code and Comments
package com.xi.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.sap.aii.mapping.api.AbstractTrace;
import com.sap.aii.mapping.api.MappingTrace;
import com.sap.aii.mapping.api.StreamTransformation;
import com.sap.aii.mapping.api.StreamTransformationConstants;
import com.sap.aii.mapping.api.StreamTransformationException;
@author kotla
To change the template for this generated type comment go to
Window>Preferences>Java>Code Generation>Code and Comments
public class NameMerge implements StreamTransformation {
private Map param = null;
private MappingTrace trace = null;
public void setParameter(Map param){
this.param = param;
if (param == null) {
this.param = new HashMap();
public void execute(InputStream input, OutputStream output)
throws StreamTransformationException {
AbstractTrace trace = null;
String RESULT = new String();
trace =
(AbstractTrace) param.get(
StreamTransformationConstants.MAPPING_TRACE);
try {
//Create DOM parser
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
//Parse input to create document tree
Document doc = builder.parse(input);
trace.addInfo(doc.toString());
// Map the elements
Node root = doc.getFirstChild(); // gets the root element
NodeList children = root.getChildNodes();
for (int item = 0; item < children.getLength(); item++) {
if (children.item(item) instanceof Element) {
root = (Element) children.item(item);
NodeList ch = root.getChildNodes();
RESULT = RESULT.concat(ch.item(0).getNodeValue() + " ");
trace.addInfo(RESULT); }
catch (Exception e) {
trace.addDebugMessage(e.getMessage());
//Return the output document
String document_exit = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ns0:Person2 xmlns:ns0=\"urn:xxxxx.com:test:mapping:lookups\"><RESULT>"
+ RESULT
+ "</RESULT></ns0:Person2>";
insertDB(RESULT);
try
output.write(document_exit.getBytes());
catch (IOException e1) {
trace.addDebugMessage(e1.getMessage());
public void insertDB(String DETAILS){
Statement stmt = null;
Connection conn = null;
try {
conn = getConnection();
conn.setAutoCommit(false);
stmt = conn.createStatement();
stmt.execute("insert into KUMAR(DETAILS) values ('"DETAILS"')");
//System.out.println ('"DETAILS"');
conn.commit();
stmt.close();
conn.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
public Connection getConnection() throws Exception {
String driver = "com.ibm.db2.jcc.DB2Driver";
String url = "jdbc:db2://172.17.4.24:50000/SAMPLE";
String username = "miracle";
String password = "sairam";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
return conn;
but we are getting the following error:Linkage error occurred when loading class JavaDatabaseApp/XiMappingDB2/com/xi/test/NameMerge (http://FILE2JDBC_US, 7d7b3141-f4d1-11dc-b25e-d5d5c0a80198, -1)
Start of test
LinkageError at JavaMapping.load(): Could not load class: JavaDatabaseApp/XiMappingDB2/com/xi/test/NameMerge
java.lang.NoClassDefFoundError: JavaDatabaseApp/XiMappingDB2/com/xi/test/NameMerge (wrong name: XiMappingDB2/com/xi/test/NameMerge) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:539) at java.lang.ClassLoader.defineClass(ClassLoader.java:448) at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at com.sap.aii.ibrep.server.mapping.ibrun.RepJavaMapping.load(RepJavaMapping.java:136) at com.sap.aii.ibrep.server.mapping.ibrun.RepJavaMapping.execute(RepJavaMapping.java:50) 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).
please solve this issue.Uday,
May be you have uploaded class file into external definitions.
You need to Zip the class file into .jar and then upload into external definitions of integration repository
Regards,
Kiran Bobbala -
Multi Mapping for JDBC Receiver JDBC Adapter
Hi All,
I'm trying an IDoc to JDBC (canonical XML) scenario using multi mapping (single IDoc as source and two different JDBC messages in receiver end). But, this is failing in RWB with some parser error. So, am not sure whether multi mapping is allowed for JDBC Canonical XML format. Please clarify.
Thanks,
Hussain.Hi ,
JDBC Adapter supports multi mapping,so you can implement the same,but what do you mean by Canonical XML format??
Regards,
Raj -
Hi all !
I am new to interfaces and as a functional cosultant I have to do couple of functional specs for the interfaces and also the mapping ...what should be my approach
1, let's say I have to do the mappin for the Lcokbox interface( EDI 823) .....what should I have to exactly do in here?
2. another example would be I need to grab required data from a third party tool into the credit master data on the cutomer ... how can I do this ...
Please some one explain me in detail the above two cases , so I can get a clear understanding and start from there.....
hoping couple of answers....thanks a lot in advance for anykind of helpHello
In simple words, an interface is a 3rd party software. SAP and this software exchange data in 2 way channel.In layman's words, we need a program which can download data and process and record in SAP.
Also, we need a program to send data to the external interface.
First draw the process flow / how and what data is involved. Make a visio diagram.
Let the technical guys have a look at it and decide on what business partners like XI need to be used.
Let them decide on the channels by which data can flow.
Now look at the available data in the 3rd party, study their fields and check relevance in SAP. The out come of this excercise is mapping data for smooth flow and compatability.
Now let the ABAPers sit and prepare download / upload program and and link both the systems.
The data is in the form of files, which are either manually uploaded or triggered by scheduled jobs. The interface program should facilitate both features.
Reg
assign points if useful -
Multi mapping for n:1 transformation
Hi Friends,
I have to implement a multi mapping in which I have n:1 transformation,i.e
2 MT in Source and 1 MT in Destination,but the constraint is - without using BPM....
Is there any way to implement this Message Mapping without using BPM.
Please suggest....
Regards
PraveshHi Pravesh,
N:1 without BPM is not possible.
However there is a nice way to collect multiple idocs without BPM
/people/stefan.grube/blog/2006/09/18/collecting-idocs-without-using-bpm
Dont know weather it suits ur scenario, but still it is a workaround.
Regards,
Prateek -
Mapping Issue for Synchronous interface
Hi Experts,
We are facing the below issue in a SOAP to RFC synchronous scenario.
Data from WS is successfully uploaded to RFC via RFC request. However we face the below issue when the RFC response is received.
com.sap.aii.utilxi.misc.api.BaseRuntimeException:Character reference "&#00" is an invalid XML character.
We receive this error particularly when one field has the below values.
<FIELD> X 20140812201409101211 1 USD TP 00000000 </FIELD>
When we click on view source the same field shows as below:
<FIELD> ����������������������X 20140812201409101211 1 USD ����������������TP 00000000�������</FIELD>
Even while pasting the same source xml from view source in Message Mapping we get the below error:
Unable to display tree view; Error when parsing an XML document (Character reference "�" is an invalid XML character.)
How is a simple value getting converted to some huge value when we open it using view source.
Please help me resolving the same.
Regards,
ShaiHi Shaibayan
looks like there is inconsistency in the RFC maintained in ECC to PI as non unicode.
In RFC channel check the flag for Unicode.
Or
Write a java mapping to remove the special characters
Regards
Osman -
Multi-mapping for EDI 810 Interface
Hi,
I am building EDI 810 interface. We have following requirements.
Source system is SAP. Target systems is AAFES and COSTCO.
1 Source system and 2 target System.
For example: Can i have Interface mapping as shown below?
Invoice IDoc -> MM_EDI_810_AAFES -> EDI_810
MM_EDI_810_COSTCO
Based on DUNS number can i re-direct the interface to choose one of the mapping and accordingly choose the communication channel?
Thanks,
GowriHi,
You can do this in any of the following ways:
Content based routing in XI can be done during
1) Receiver Determinations (Integration Directory) --- Used for entering a condition for
forwarding a message to one or more receivers
http://help.sap.com/saphelp_nw04/helpdata/en/26/5ccd3bb4560f01e10000000a11402f/content.htm
2)Interface Determinations (Integration Directory) --- Used for entering a condition for forwarding a message to multiple inbound interfaces
3) Designing Integration Processes (ccBPM) (Integration Repository) --- Used for entering a condition for processing process steps (see Step Types)
At all the 3 places u will use the Condition editor,
http://help.sap.com/saphelp_nw04/helpdata/en/67/49767669963545a071a190b77a9a23/content.htm
Hope this helps you.
Regards,
Abhy -
Sender / Receiver ID mapping for EDI interfaces and Type of seeburger adapt
We need to set up a interface using Seeburger adapter for Purchase order IDOC to 850 EDI mapping.. After reading from SDN,
1) We can use the standard mapping in BIC MD to do E2X and X2E mapping..
2) We can use any of the AS2, EDI generic adapter, Seeburger FTP adapter or Seeburger SFTP adapter...
How do we decide which adapters should be chosen? I can see that it makes sense to use SFTP adapter or AS2 adapter for security...
Also how do we map Sender and Receiver IDs on the EDI message.. Should this be hardcoded as part of mapping or is there any facility in seeburger adapter to do this? I saw some references to Party Identifiers and not sure how it is used in setting up Sender/ Receiver ID
Also the graphical mapping to convert IDOC XML to EDI XML, Do we have standard mapping defined or do we need to create our own graphical mapping.Hi Kris,
I had worked in the somehow same scenario, It was IDOC to EDIFACT file.
I can give you few clues which might be helpful
In BIC MD you have to create your own mapping if the standard mapping is not available (First check all the standard mappings in BIC). For your reference you need X2E mapping, as your scenario is IDOC to 850 EDI.
"the graphical mapping to convert IDOC XML to EDI XML, Do we have standard mapping defined or do we need to create our own graphical mapping."
In graphical mapping i created my own mapping, Seeburger has given some sample mappings you can check those for your reference (SEEBURGER_GENERIC_EDI software component). Mostly you have to create your own. You need a document from your functional consultant so that you are able to map correct fields and constants.
"how do we map Sender and Receiver IDs on the EDI message.. Should this be hardcoded as part of mapping or is there any facility in seeburger adapter to do this? I saw some references to Party Identifiers and not sure how it is used in setting up Sender/ Receiver ID"
This has been generally hardcoded in message mapping (In my case i hardcoded). If any of ur IDOC field contains that data you can map that field. But better Idea is ask your functional expert.
"How do we decide which adapters should be chosen? I can see that it makes sense to use SFTP adapter or AS2 adapter for security... "
You can choose adapter according to your requirement. In my case i used File adapter as i have to create file in PI server only. My suggestion you can use SFTP for seeburger
Hope these points are helpfu for u
Regards,
Shradha
Maybe you are looking for
-
Can administrator roll back a task from the process?
If I have a process deploy to the weblogic, can the weblogic admin or some account can roll back the process from one task to the previous. Thank you for advise.
-
Why not using solar cells covering my Macbook
Hi, My name is Jonathan and I was just wondering. Why is it, that nobody has combined a Macbook/solar powered combination? Probably someone has, but I've never heard of it. Just cover the outside of the screen with enough solarcells, so that it is re
-
Hello everyone, I have one small bug with the latest version of microsoft word 2011 on OS X leopard. Sometimes when I have already opened a document and that I want to change the font color, my computer freezes for several minutes, until it defreezes
-
Constant PCORP for Ledger !* does not contain any value
Dear SAP Guru's, I have a user attempting to process a credit memo via t-code FB75 and is receiving the following error message while attempting to post the transaction. Constant PCORP for Ledger !* does not contain any value The user was able to pos
-
There is no option to save,create or discover any php file
This just started today 22/06,but there is no option to create a new php file,the options to create all types of files except php show on main screen,there is no discover dynamic files showing in bar,i can still type in the browser to view the php fi