RFC Lookup with RFC - not BAPI
Hi all,
Is it possible to make an RFC lookup to a Function Module remote enabled that not is properly a BAPI? I'm trying using Michael RFC lookup sample, but in the sample he uses BAPI_PO_GETDETAIL (it's working fine to me). When I call a Function Module (import it to XI, make all the steps as in the sample), it returns an error "parameter with name RETURN not found".
I have tried to put this parameter exactly as it is on BAPI_PO_GETDETAIL, but still didn't work. Some tip?
thanks!!!
roberti
roberti,
Is it possible to make an RFC lookup to a Function Module remote enabled that not is properly a BAPI?
>> yes you can do it .
in rfc function module do you have import and export parameters right. check whether Retrun is passed or not. if you dont structure to accept RETURN as input then dont passit RFC function module
Regards
sreeram.g.reddy
Similar Messages
-
Is it possible to retrieve data using RFC alone with out using BAPI ?
Hi ,
Is it possible to connect SAP to Non-SAP systems to retrieve data using RFC alone with out using BAPI ?
thanks
RamaHello Nelson,
Could you please explain how this can be done. Because my understanding is that only BAPI can be used to connect Non SAP and SAP system not RFC function module.
Regards
Farzan -
RFC lookup with java proxy class, how do I use "fromXml()"?
Hi,
I'm trying to do an RFC lookup in XI using java proxy classes (SAP Enterprise Connector).
The XMLPayload comes from a java proxy class which has been converted to xml using a method called
.fromXml() for this. I just don't know how to use and I can't find any documentation for it.
Would very much appreciate if someone could provide me with an example of how to use this class
Best Regards
Olof Trönnberghttp://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStreamer.html#fromXML(com.thoughtworks.xstream.io.HierarchicalStreamDriver,%20java.io.Reader)
-
RFC lookup with context values importing and exporting
Hi,
Input parameters for my RFC Lookup:
one simple field: Occurrence 1
one table type: Occurrence N
I am getting table values from RFC Lookup
and I need to repeat all values in the target structure.
I am not able to capture the all values in the mapping: Help needed.
RameshHi Ramesh,
If you want to use the first output to be repeated in all your mapping, try using the UseOneAsMany tool in the Message Mapping.
HTH
Regards,
Juan -
Urgent: RFC Lookup for BAPI in XI
Hi,
I am trying to call a BAPI that exists in XI system,in the Message Mapping in same XI system.
If I run the BAPI,it is working fine.
But if I call this in XI Message Mapping using RFC lookup,it returns garbage.
I am not getting any RFC error.
Can anyone please tell me what could be the reason for this.
Thanks.
Best Regards,
ShwetaHi Shwetha,
Please refer the below weblog:
RFC lookup using JCO (without communication channel)
/people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
RFC lookup with communication channel.
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
Sample code:
public void createAlert(String InterfaceID, String AlertCategory, String errorString,String RFCReceiverCommunicationChannel,String BusinessService)
try{
final String SAPRFCNS = "urn:sap-com:document:sap:rfc:functions",
FUNCTION_MODULE= "Z_FI_RAISE_ALERT";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
factory.setNamespaceAware(false);
factory.setValidating(false);
try {
builder = factory.newDocumentBuilder();
} catch (Exception e) {
Document docReq =null;
try {
docReq = builder.newDocument();
Node root = docReq.appendChild(docReq.createElementNS(SAPRFCNS, FUNCTION_MODULE));
// Creates XML structure which is passed to ABAP function module
root.appendChild(docReq.createElement("I_INTERFACE_ID")).appendChild(docReq.createTextNode(InterfaceID));
root.appendChild(docReq.createElement("I_ERROR")).appendChild(docReq.createTextNode(errorString));
root.appendChild(docReq.createElement("I_ALERTCAT")).appendChild(docReq.createTextNode(AlertCategory));
} catch (Exception e) {
// XML Payload
Payload result1 = null;
try {
Channel channel = LookupService.getChannel(BusinessService, RFCReceiverCommunicationChannel);
RfcAccessor accessor = LookupService.getRfcAccessor(channel);
InputStream is = new ByteArrayInputStream(docReq.toString().getBytes());
XmlPayload payload = LookupService.getXmlPayload(is);
result1 = accessor.call(payload);
} catch (LookupException e) {
// trace.addWarning("Error during lookup - " + e);
// System.out.println(e.toString());
catch(Exception e)
// System.out.println(e.toString());
Thnx
Chirag -
Is is possibel to do an RFC Lookup from The Graphical Mapping?
Greetings,
While doing a message mapping I need to get the value from R3 system using an RFC, is it is possible ?Hi
we can do by using rfc look ups
Lookup in mapping is the feature provided by SAP to lookup the data in the target R/3 or DB systems with the API provided.
You need to write UDF in order to implement the API's provided by SAP.Consider the below example
VendorNumber-UDF--CURR
The scenario is legacy to SAP. The legacy system doesn't provide the currency details. But the target field need's to be populated with currency value.
"The business rules says there are values maintained in SAP Table where if you pass VendorNumber it will return thr currency to you"
So what you can do? You can write UDF implementing SAP Provided API's and do a lookup in the SAP System and get back the currency value and populate them in CURR field.
I hope it clears a bit.
Please find the below blogs
DB Lookup: /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
RFC Lookup:https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
There are three types of look ups u can do
RFC look up
SOAP look up
JDBC look up
What is Lookup and why we need:
Within an XI mapping it is a common requirement to be able to perform data lookups on-the-fly. In particular, there may be a need to look up some data that is maintained in an R/3 application.
In the error handling topic we have seen the different validations which need to be performed on file. This can be done through Lookup.
Some use cases:
Look up material number from table MARA.
Look up cost center budget.
Look up employee information.
Look up unit-of-measure (UOM) information from table t006a.
Lookup for raising an alert.
The purpose of the lookup may be:
To perform application-level validation of the data, before sending it to the backend.
To populate fields of the XML document with some additional data found in the backend application.
This is a form of value transformation.
The "value mappings" offered by XI are not adequate in this case, since the data would have to be manually entered in the Integration Directory.
There are two ways in which we can do lookup:
Call lookup method from GUI mapping.
Call lookup method from XSLT mapping.
Lookup method from GUI mapping can be called using any of the following ways.
RFC lookup using JCO (without communication channel)
/people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
RFC lookup with communication channel.
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
Lookup using JDBC adapter.
/people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
/people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
CSV file lookup.
/people/sundararamaprasad.subbaraman/blog/2005/12/09/making-csv-file-lookup-possible-in-sap-xi
Lookups with XSLT - https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/8e7daa90-0201-0010-9499-cd347ffbbf72
/people/sravya.talanki2/blog
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/05a3d62e-0a01-0010-14bc-adc8efd4ee14
DB lookup - /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
SOAP Lookup - /people/bhavesh.kantilal/blog/2006/11/20/webservice-calls-from-a-user-defined-function
You can refer to these links.
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer Absolute stealer.
/people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
For Java APIs and also here you can map that how many types of lookups are possible in XI.
http://help.sap.com/javadocs/NW04/current/pi/com/sap/aii/mapping/lookup/package-summary.html -
Graphical message mapping examples for JDBC and RFC lookup
hi, can any body provide me graphical message mapping examples for the "JDBC Lookup" function and "RFC Lookup" function?
I'm now studying the graphical message mapping and want to try those 2 functions. thank you.
I expect the examples to be simple enoung, not need to set up much.>
Madhu_1980 wrote:
> can u check this link:
>
> PI 7.0 & 7.1 Mapping - Blogs,Articles,Wiki,Code Samples and Videos Collections https://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=79955426
>
> it contains a link : SAP PI 7.1 Mapping Enhancements Series: Graphical Support for JDBC and RFC Lookups /people/jin.shin/blog/2008/02/15/sap-pi-71-mapping-enhancements-series-graphical-support-for-jdbc-and-rfc-lookups
May be I'm too foolish to follow those links, I got issues of each links.
What I really want is an example from step0
Swarup:
Refer the Lookup document - Easy Lookup in Process Integration 7.1
https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/20befc9a-aa72-2b10-ae9b-b0988791d457
The first step is "Create an RFC Enabled Function Module for look up", but where can I create the function module? Should I use ESB, IB? or use transaction 'SE11' ?
Kulkarni:
Very good links for RFC lookup with 7.0/3.0
https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/70d90a91-3cf4-2a10-d189-bfd37d9c3231&overridelayout=true
At page6 "PI Development/Configuration", it saies "You are on the design maintenance screen in the Integration Builder.Expand the subnodes for the software component version for which you want to import interfaces".
What is "design maintenance screen" ? My IB version is: Service Pack:08 Release:NW07_08_REL.
When I open IB, it display a screen titled with "Configuration: Intergation Builder", I did not find "software component version" node on the left tree.
Madhu_1980 :
it contains a link : SAP PI 7.1 Mapping Enhancements Series: Graphical Support for JDBC and RFC Lookups /people/jin.shin/blog/2008/02/15/sap-pi-71-mapping-enhancements-series-graphical-support-for-jdbc-and-rfc-lookups
The Prerequisites state:
The JDBC channel to be used for the lookup must be configured and activated in the Integration Directory.
The definition of the table used for the lookup must already be imported into the ES Repository as an external definition
But I don't know how to create a JDBC channel and define the table. -
Hi..
Now i have a scenario for u instead :
this is what gimme a solid realistic approach :
i have records in this format lets say :
RecordID ordertype
900 0305
900 0305
920 DS01
900 0304
900 0305
920 DS02
Now here is what i have look into :
for all 900's whose Ordertype is same i have to make a call and then to decide to create/change by an RFC Lookup, with this RFC Lookup i have to then decide on which IDOC i have to map to . So that means i have to sort all the records of 900's based on ordertype with in the mapping itself and then make a call to IDOC .
I am not expecting whether to use XSLT / Java mapping , I can only use custom functions. Lemme know whatz the best approach?
for all 920's its not that complex but all 920 goes to one IDOC.
Any clue?
regards..sankarHi Michal,
>>>>>I'd go with Shravan's approach for sure
please send link for this, i do not have shravan's approach?
Hope you got my problem: or else see follow:
I am outlining the scenarios here :
I have a flat file with a following type of records:
RecordID ordertype
900 0305 ..............................
900 0305 .............................
920 DS01 .............................
900 0304 .........................................
900 0305 .....................................
920 DS02 .......................
930 -->not concerned with these type of records
Now here is what i have look into :
for all 900's whose Ordertype is same i have to make a call and then to decide to create/change by an RFC Lookup, with this RFC Lookup (i.e. i have to group all the records with ordertype same ) i have to then decide on which IDOC i have to map to .
i.e. For all 900's with one ordertype if i find that there exists an OPEN_PO then i have to call one IDOC with one set of values along with values returned from that RFC
if its OPEN_PO is blan that i should send values to another IDOC
for all 920 records i have to call another IDOC .
I am not expecting whether to use XSLT / Java mapping , I can only use custom functions. well lemme know whatz the best approach?
Please help
thanks,
regards
sankar -
I have written RFC Lookup.
But I am getting the belows errors
/usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:3: <identifier> expected import com.sap.aii.mappingtool.tf3.;import com.sap.aii.mappingtool.tf3.rt.;import java.util.;import java.io.; import java.lang.reflect.;import java.io.InputStream;import javax.xml.parsers.DocumentBuilder;import java.util.Iterator;import com.sap.aii.mapping.api.AbstractTrace;import java.util.Map;import org.w3c.dom.;import javax.xml.parsers.DocumentBuilderFactory;import import;import java.io.ByteArrayInputStream;import com.sap.aii.mapping.lookup.; ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:3: '.' expected import com.sap.aii.mappingtool.tf3.;import com.sap.aii.mappingtool.tf3.rt.;import java.util.;import java.io.; import java.lang.reflect.;import java.io.InputStream;import javax.xml.parsers.DocumentBuilder;import java.util.Iterator;import com.sap.aii.mapping.api.AbstractTrace;import java.util.Map;import org.w3c.dom.;import javax.xml.parsers.DocumentBuilderFactory;import import;import java.io.ByteArrayInputStream;import com.sap.aii.mapping.lookup.; ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:119: 'try' without 'catch' or 'finally' try { ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:130: illegal start of type } catch (Exception e) { ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:135: <identifier> expected trace.addInfo("RFC Request XML: " + docReq.toString()); ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:139: illegal start of type try { ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:151: <identifier> expected Document docRsp = null; ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:152: illegal start of type try { ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:167: <identifier> expected trace.addInfo("RFC Response XML: " + docRsp.toString()); ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:170: illegal start of type try { ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:176: <identifier> expected return res; ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:181: 'class' or 'interface' expected public static void main(String[] args) throws Exception{/!_$ClNRep_/_MM_RFCLookup_ st = new /!_$ClNRep_/_MM_RFCLookup_(); st.testExecute(); } ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:182: 'class' or 'interface' expected } ^ /usr/sap/XPD/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map1f873e902d6811df9e460017a451d38e/source/com/sap/xi/tf/_MM_RFCLookup_.java:183: 'class' or 'interface' expected
Can someone please help to resolve this issueHello Satish,
Here is my complete code
final String CHANNEL_NAME = "cc_Rfc_Receiver_Lookup",
SERVICE = "Sys_EPD_110" ,
VALNOTFOUND = "VALUE_NOT_FOUND",
SAPRFCNS = "urn:sap-com:document:sap:rfc:functions",
TAG_FM = "Z_COMPARE_ADDRESS",
TAG_RES = "E_FLAG",
TAG_I_ALLIANCEID = "I_ALLIANCEID",
//TAG_I_OVRDFLAG = "I_OVRDFLAG",
TAG_I_PSTLZ = "I_PSTLZ",
TAG_I_CITY1 = "I_CITY1",
TAG_I_STATE = "I_STATE",
TAG_I_COUNTRY = "I_COUNTRY";
MappingTrace trace;
trace = container.getTrace();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
factory.setNamespaceAware(false);
factory.setValidating(false);
try {
builder = factory.newDocumentBuilder();
} catch (Exception e) {
trace.addWarning("Error creating DocumentBuilder - " + e.getMessage());
return null;
Document docReq = null;
try {
// Building up RFC Request Document
docReq = builder.newDocument();
Node root = docReq.appendChild(docReq.createElementNS(SAPRFCNS, TAG_FM));
root.appendChild(docReq.createElement(TAG_I_ALLIANCEID)).appendChild(docReq.createTextNode(I_ALLIANCEID));
//root.appendChild(docReq.createElement(TAG_I_OVRDFLAG)).appendChild(docReq.createTextNode(I_OVRDFLAG));
root.appendChild(docReq.createElement(TAG_I_PSTLZ)).appendChild(docReq.createTextNode(I_PSTLZ));
root.appendChild(docReq.createElement(TAG_I_CITY1)).appendChild(docReq.createTextNode(I_CITY1));
root.appendChild(docReq.createElement(TAG_I_STATE)).appendChild(docReq.createTextNode(I_STATE));
root.appendChild(docReq.createElement(TAG_I_COUNTRY)).appendChild(docReq.createTextNode(I_COUNTRY));
} catch (Exception e) {
trace.addWarning("Error while building RFC Request - " + e);
return null;
trace.addInfo("RFC Request XML: " + docReq.toString());
// Lookup
Payload result = null;
try {
Channel channel = LookupService.getChannel(SERVICE, CHANNEL_NAME);
RfcAccessor accessor = LookupService.getRfcAccessor(channel);
InputStream is = new ByteArrayInputStream(docReq.toString().getBytes());
XmlPayload payload = LookupService.getXmlPayload(is);
result = accessor.call(payload);
} catch (LookupException e) {
trace.addWarning("Error during lookup - " + e);
return null;
// Parsing RFC Response Document
Document docRsp = null;
try {
docRsp = builder.parse(result.getContent());
} catch (Exception e) {
trace.addWarning("Error when parsing RFC Response - " + e.getMessage());
return null;
trace.addInfo("RFC Response XML: " + docRsp.toString());
String res = "";
try {
res = docRsp.getElementsByTagName(TAG_RES).item(0).getNodeValue();
} catch (Exception e) {
trace.addWarning("Result value not found in DOM - " + e);
return VALNOTFOUND;
return res;
The Output of this RFC lookup is
<RFC Response XML: <rfc:Z_COMPARE_ADDRESS.Response xmlns:rfc="urn:sap-com:document:sap:rfc:functions"> <E_FLAG>Y</E_FLAG> </rfc:Z_COMPARE_ADDRESS.Response>
But the field value shows null
Thanks -
RFC lookup error when table in change mode
Hi,
I´m using an RFC lookup from XI to translate external to internal partner nr. Input to the FM in R/3 is the external partner nr och the FM should return the internal partner nr to XI. The problem is that when a user edits the table that my FM reads from a get an error.
- Isn´t it possible to read a r/3 table while it is in change mode? Is my only way around this to create a z version of this table?
ClaesHi Claes
have a look on these links ,
For your RFC lookup,
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
/people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
RFC lookups pdf https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-code-samples/xi%20mapping%20lookups%20rfc%20api.pdf
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
Michal's Blog on RFC Mapping Lookup:/people/michal.krawczyk2/blog/2005/09/15/xi-rfc-mapping-lookups-from-bc-to-xi
RFC Lookup.
RFC lookup return no values
http://help.sap.com/saphelp_nw2004s/helpdata/en/17/d609b48ea5f748b47c0f32be265935/frameset.htm
Also check this useful link which also talk about Value Lookup:
Value lookup
http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
/people/prasad.illapani/blog/2006/10/25/how-to-check-jdbc-sql-query-syntax-and-verify-the-query-results-inside-a-user-defined-function-of-the-lookup-api
Lookups - /people/morten.wittrock/blog/2006/03/30/wrapping-your-mapping-lookup-api-code-in-easy-to-use-java-classes
Lookups - /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
Thanks !! -
Hi All,
We are getting below error in doing testing in PI mapping.We are calling a RFC function module in PI.
Cannot perform RFC lookup com.sap.aii.mapping.api.StreamTransformationException: Cannot perform RFC lookup at com.sap.aii.mappingtool.flib7.RfcLookup.cacheMore(RfcLookup.java:105) at com.sap.aii.mappingtool.tf7.rt.AMultiResIterator$MultiOutIterator.gotoNextContext(AMultiResIterator.java:95) at com.sap.aii.mappingtool.tf7.AMappingProgram.processNode(AMappingProgram.java:299) at com.sap.aii.mappingtool.tf7.AMappingProgram.processNode(AMappingProgram.java:395) at com.sap.aii.mappingtool.tf7.AMappingProgram.processNode(AMappingProgram.java:395) at com.sap.aii.mappingtool.tf7.AMappingProgram.start(AMappingProgram.java:482) at com.sap.aii.mappingtool.tf7.Transformer.start(Transformer.java:133) at com.sap.aii.mappingtool.tf7.AMappingProgram.transform(AMappingProgram.java:612) at com.sap.aii.ibrep.server.mapping.exec.ExecuteXiMappingCommand.transformInternal(ExecuteXiMappingCommand.java:197) at com.sap.aii.ibrep.server.mapping.exec.ExecuteXiMappingCommand.execute(ExecuteXiMappingCommand.java:94) at com.sap.aii.ib.server.mapping.exec.CommandManager.execute(CommandManager.java:43) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:40) at com.sap.aii.ibrep.server.mapping.MapServiceBean.execute(MapServiceBean.java:40) at sun.reflect.GeneratedMethodAccessor743.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:43) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:38) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:21) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:133) at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164) at $Proxy1621.execute(Unknown Source) at sun.reflect.GeneratedMethodAccessor742.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sap.engine.services.rmi_p4.P4DynamicSkeleton.dispatch(P4DynamicSkeleton.java:234) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351) at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70) at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62) at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37) at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:872) at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53) at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58) at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108) at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304) Caused by: com.sap.aii.mapping.lookup.LookupException: Exception during processing the payload. Error when calling an adapter by using the communication channel BigWRFCReceiver (Party: , Service: KD3_300, Object ID: 4dcd47e22ff0367ea3779fe0e9dc7fd2) XI AF API call failed. Module exception: 'error while processing the request to rfc-client: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: RfcAdapter: receiver channel has static errors: can not instantiate RfcPool caused by: com.sap.aii.adapter.rfc.RfcAdapterException: error initializing RfcClientPool:com.sap.aii.adapter.rfc.core.repository.RfcRepositoryException: can not connect to destination system due to: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: Connect to SAP gateway failed Connect_PM TYPE=A ASHOST=KD3.AP.CSPLC.ORG SYSNR=22 GWHOST=KD3.AP.CSPLC.ORG GWSERV=sapgw22 PCS=1 LOCATION CPIC (TCP/IP) on local host with Unicode ERROR partner '10.227.148.123:sapgw22' not reached TIME Fri Aug 6 02:11:46 201 RELEASE 710 COMPONENT NI (network interface) VERSION 39 RC -10 MODULE nixxi.cpp LINE 2778 DETAIL NiPConnect: 10.227.148.123:3322 SYSTEM CALL connect ERRNO 239 ERRNO TEXT Connection refused COUNTER 27 '. Cause Exception: 'com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: RfcAdapter: receiver channel has static errors: can not instantiate RfcPool caused by: com.sap.aii.adapter.rfc.RfcAdapterException: error initializing RfcClientPool:com.sap.aii.adapter.rfc.core.repository.RfcRepositoryException: can not connect to destination system due to: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: Connect to SAP gateway failed Connect_PM TYPE=A ASHOST=KD3.AP.CSPLC.ORG SYSNR=22 GWHOST=KD3.AP.CSPLC.ORG GWSERV=sapgw22 PCS=1 LOCATION CPIC (TCP/IP) on local host with Unicode ERROR partner '10.227.148.123:sapgw22' not reached TIME Fri Aug 6 02:11:46 201 RELEASE 710 COMPONENT NI (network interface) VERSION 39 RC -10 MODULE nixxi.cpp LINE 2778 DETAIL NiPConnect: 10.227.148.123:3322 SYSTEM CALL connect ERRNO 239 ERRNO TEXT Connection refused COUNTER 27 '. com.sap.aii.mapping.lookup.LookupException: Error when calling an adapter by using the communication channel BigWRFCReceiver (Party: , Service: KD3_300, Object ID: 4dcd47e22ff0367ea3779fe0e9dc7fd2) XI AF API call failed. Module exception: 'error while processing the request to rfc-client: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: RfcAdapter: receiver channel has static errors: can not instantiate RfcPool caused by: com.sap.aii.adapter.rfc.RfcAdapterException: error initializing RfcClientPool:com.sap.aii.adapter.rfc.core.repository.RfcRepositoryException: can not connect to destination system due to: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: Connect to SAP gateway failed Connect_PM TYPE=A ASHOST=KD3.AP.CSPLC.ORG SYSNR=22 GWHOST=KD3.AP.CSPLC.ORG GWSERV=sapgw22 PCS=1 LOCATION CPIC (TCP/IP) on local host with Unicode ERROR partner '10.227.148.123:sapgw22' not reached TIME Fri Aug 6 02:11:46 201 RELEASE 710 COMPONENT NI (network interface) VERSION 39 RC -10 MODULE nixxi.cpp LINE 2778 DETAIL NiPConnect: 10.227.148.123:3322 SYSTEM CALL connect ERRNO 239 ERRNO TEXT Connection refused COUNTER 27 '. Cause Exception: 'com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: RfcAdapter: receiver channel has static errors: can not instantiate RfcPool caused by: com.sap.aii.adapter.rfc.RfcAdapterException: error initializing RfcClientPool:com.sap.aii.adapter.rfc.core.repository.RfcRepositoryException: can not connect to destination system due to: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: Connect to SAP gateway failed Connect_PM TYPE=A ASHOST=KD3.AP.CSPLC.ORG SYSNR=22 GWHOST=KD3.AP.CSPLC.ORG GWSERV=sapgw22 PCS=1 LOCATION CPIC (TCP/IP) on local host with Unicode ERROR partner '10.227.148.123:sapgw22' not reached TIME Fri Aug 6 02:11:46 201 RELEASE 710 COMPONENT NI (network interface) VERSION 39 RC -10 MODULE nixxi.cpp LINE 2778 DETAIL NiPConnect: 10.227.148.123:3322 SYSTEM CALL connect ERRNO 239 ERRNO TEXT Connection refused COUNTER 27 '. at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.process(AdapterProxyLocal.java:92) at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.call(SystemAccessorInternal.java:55) at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:140) at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:73) at com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:167) at com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:212) at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:337) at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:238) at com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70) at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:532) at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:670) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:66) at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:32) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:431) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:289) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:376) at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:85) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71) at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:160) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71) at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:67) at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71) at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60) at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71) at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27) at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71) at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29) at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12) at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71) at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:295) at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.run(Processor.java:222) 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:152) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:247) Caused by: com.sap.aii.af.service.api.AFException: XI AF API call failed. Module exception: 'error while processing the request to rfc-client: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: RfcAdapter: receiver channel has static errors: can not instantiate RfcPool caused by: com.sap.aii.adapter.rfc.RfcAdapterException: error initializing RfcClientPool:com.sap.aii.adapter.rfc.core.repository.RfcRepositoryException: can not connect to destination system due to: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: Connect to SAP gateway failed Connect_PM TYPE=A ASHOST=KD3.AP.CSPLC.ORG SYSNR=22 GWHOST=KD3.AP.CSPLC.ORG GWSERV=sapgw22 PCS=1 LOCATION CPIC (TCP/IP) on local host with Unicode ERROR partner '10.227.148.123:sapgw22' not reached TIME Fri Aug 6 02:11:46 201 RELEASE 710 COMPONENT NI (network interface) VERSION 39 RC -10 MODULE nixxi.cpp LINE 2778 DETAIL NiPConnect: 10.227.148.123:3322 SYSTEM CALL connect ERRNO 239 ERRNO TEXT Connection refused COUNTER 27 '. Cause Exception: 'com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: RfcAdapter: receiver channel has static errors: can not instantiate RfcPool caused by: com.sap.aii.adapter.rfc.RfcAdapterException: error initializing RfcClientPool:com.sap.aii.adapter.rfc.core.repository.RfcRepositoryException: can not connect to destination system due to: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: Connect to SAP gateway failed Connect_PM TYPE=A ASHOST=KD3.AP.CSPLC.ORG SYSNR=22 GWHOST=KD3.AP.CSPLC.ORG GWSERV=sapgw22 PCS=1 LOCATION CPIC (TCP/IP) on local host with Unicode ERROR partner '10.227.148.123:sapgw22' not reached TIME Fri Aug 6 02:11:46 201 RELEASE 710 COMPONENT NI (network interface) VERSION 39 RC -10 MODULE nixxi.cpp LINE 2778 DETAIL NiPConnect: 10.227.148.123:3322 SYSTEM CALL connect ERRNO 239 ERRNO TEXT Connection refused COUNTER 27 '. at com.sap.aii.af.service.api.AdapterAccess.sendMsg(AdapterAccess.java:214) at com.sap.aii.af.service.api.AdapterAccess.call
Please sugets how to resolve this issue.
Thanks
MohitHi Mohit,
Do full CACHE refresh.
http://<host>:5<sys#>00/CPACache/refresh?mode=full
This may solve the issue.
Thanks,
Vijay. -
RFC Lookup's in message mapping fail with RuntimeException for no reason
Hi guys,
We have developed interfaces that execute a lot of RFC's from Message Mapping, by making use of RFC Lookup API.
In ID, in the corresponding RFC Receiver Communication Channel we have set the number of maximum connections to 100.
However, when a big number of Idocs with lots of items is sent to XI some messages fail in XI because mapping fails with a runtime exception that is not correct, since there is a return value found from the execution of the RFC function. And when I am testing the mapping in Test mode of XI IR, the mapping is executed successfully.
Do you think that by increasing the maximum number of connections in Communication Channel, it will take effect?
EvaggelosHi Evaggelos,
DECREASE, may be til 10.
Regards,
Udo -
Enhanced Receiver Determination with RFC Lookup
Hi All,
I am building an interface with Enhanced Receiver Determination. Scenario would be that the Receiver Systems would be stored in a Z table in SAP ECC, and in PI Receiver Determination I am doing an RFC look up to find the systems, and using those.
I built the mapping for Receiver Determination, and it tested fine in ESR. But while Creating the Receiver Determination in Integration Directory, After I specify the Receiver mapping name, and put the RFC channel name for the RFC parameter, it doesnt allow me to save the Receiver Agreement with a run time error message
"Link from Receiver Determination | <Sender>| <Interface>| * | * to object type "Channel" with role "122474913b1311deaadb42057dd8b002" is not permitted"
My question is a) if the RFC lookup allowed in the mapping for Receiver Determination?
B) if yes, am I missing someting or is it a system issue?i have seen Enhanced RD with lookups that work. Have to say it was not a RFC lookup used but rather a DB look in one of the implementations i had worked with. But still I really dont think a RFC lookup should be an issue.
Troubleshoot the lookup mapping to be working other than in the enhanced RD (i.e independently) .
if you head no where, i suggest opening a OSS note. -
Mapping Exception Issue with RFC LookUp
Hi,
My scenario is Idoc To file, in my idoc user who created a purchase order filed is not there but in xml file i want the user who create that PO, for this i am using RFC LooUp. I want the user who created a purchase order.
Graphical Mapping looks like below.
Belnr-->User Defined Function--
>UserName
Please find the code bloew:
String DBTABLE = "EKKO";
String lookUpField = "ERNAM";
String WHERE_CLAUSE = " EBELN "" = "" ' "a" ' " ;
JCO.Repository mRepository;
JCO.Client mConnection = JCO.createClient(
"500",
"RFCUSER",
"abc1234",
"EN",
"cxylo06",
"05");
// connect to SAP
mConnection.connect();
// create repository
mRepository = new JCO.Repository( "GenericRFCMappingLookup", mConnection );
// create function template to select data from any table
JCO.Function function = null;
IFunctionTemplate ft = mRepository.getFunctionTemplate("RFC_READ_TABLE");
function = ft.getFunction();
// Obtain parameter list for function
JCO.ParameterList input = function.getImportParameterList();
// Pass function parameters
// set import parameters table name and RFC
input.setValue( DBTABLE, "QUERY_TABLE");
input.setValue( "," , "DELIMITER");
//Fill the where clause of the table
JCO.ParameterList tabInput = function.getTableParameterList();
JCO.Table inputTable = tabInput.getTable("OPTIONS");
inputTable.appendRow();
inputTable.setValue(WHERE_CLAUSE,"TEXT");
mConnection.execute( function );
//Find the position of the field that has to be lookedUp
JCO.Table lookupFieldPos = function.getTableParameterList().getTable("FIELDS");
int pos = -1;
for (int i = 0; i < lookupFieldPos.getNumRows(); i++)
lookupFieldPos.setRow(i);
if (lookupFieldPos.getString("FIELDNAME").equals(lookUpField))
pos = i;
//Get the exact lookupvalue from the position obtained above
JCO.Table valueSet = function.getTableParameterList().getTable("DATA");
valueSet.setRow(0);
String resultSet = valueSet.getString("WA");
result.addValue(resultSet);
mConnection.disconnect();
I am not aware of java coding so kindly make necessary modifications.
Kindly suggest what changes i need to do to execute perfectly.
Your help will be greatly apprecited.
Regards,
VenkatHi Venkat,
If you use the JCO connection to get the value from RFC, it would be a problem in futherly like when you move this interface DEV to Q, then you need to change the connection parameters to establish the JCO connection.Same in Production environment too.It is not advisable to do JCO lookup. Go for RFC lookup as the link given by Farooq.
Create Reciever RFC communication channel and take the XML signature of u r RFC by importing that RFC under imported objects.Create an UDF, for this see the sample code which is exisitng in document to pass the Export parameter to RFC.
In this way u r RFC channel establish the connection to R3 and your RFC will execute and return the value.U just need to change the Reciever RFC channel parameters respective of environment.
Cheers
Veera -
Graphical RFC lookup in PI 7.1 is not working
Hi Gurus,
i am trying to use a graphical RFC lookup to call function module SXMB_GET_MESSAGE_STATUS. Function Module live on the ABAP side of my PI server.
The situation is the following: i created a small ABAP program to call the function in PI server from my ECC server. It works as expected.
When i try to call the function module from the RFC lookup, i just move a constant to the input (of the lookup), but the output is not the expected one. Instead of get corresponding record, i get back an empty table. I should get the entry as when run the ABAP program.
Hint: Function module receive a parameter of type RAW16, as i mentioned before in the message mapping i move to the parameter just a CONSTANT, could be that the problem? if so, how could i solve it?
Do you have any other idea about how to solve my issue?.
Regards.Hi,
well, the returned value is taken from an export parameter. This export parameter is of type of a TABLE TYPE. Any idea about how to solve this issue?
I think the problem is how to fill the import parameter of type RAW 16. i am not sure if i am filling in the correct way.
Regards.
Maybe you are looking for
-
my friend told me there was a way to find stolen or lost i pods... what do u do. cause i lost my video ipod and.. apparently i seriously need to find it.
-
Preview and multi-gig pictures
I have 12 gig of RAm in my MacPro3,1 and Preview has no problem opening say a 3,5 Gig png file. It takes 2 hours to convert it to jpeg but the file is completely pure black! Graphic Converter and Photoshop Elements 6 will not even open those multi-gi
-
Cost Center field making mandatory
Hi Experts, As we know cost center field is not mandatory,when we create shopping cart. I have a requirement that Cost Center field has to to be mandatory , if the user not entering Cost Center field it should not create shopping cart. Thanks in Adva
-
Computer doesn't get past login screen with new HDD
I recently purchased a new Seagate (750GB Momentus) hard drive for my 2010 Macbook Pro. The first one didn't work well so I sent it in for a replacement, but now the replacement one is having the same issue. When I boot the computer, it doesn't get p
-
Functionality of the Transaction code RSDDV
RSDDV is a Transaction Code for "Aggregate/ BIA Index maintenance? Can any one tell me the funcitonality of this Transaction? Thank you, Pramod Chander N.S.