Error While RFC Lookups
Hi
I am performing RFC Lookups in my java code and when ever I am testing this java mapping code from Operation Mapping Test Tab, I am getting following error.
Error while lookup Connection to system RUNTIME using application RUNTIME lost. Detailed information: Error accessing "http://pmichsappid16.app.pmi:8016/run/system/int?container=web" with user "PIREP_PID". Response code is 500, response message is "Internal Server Error"
Error while closing accessor Technical error when calling an adapter remotely. The HMI method with the ID close was called with an incorrect session status. The system accessor object is missing.
Could you please tell why I am getting this error.
Note:1) When I am testing it end to end my code is working fine with out any errors.This happens only when I am testing it from operational mapping test tab.Previously I am able to execute my code from operational mapping test tab also.
2) I am also closing accessor object in proper manner.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PI 7.1 Strange behaviour!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Hi Prasanna,
I was facing the same error while testing JDBC lookup in the operational mapping. The problem was that while testing in the operation mapping or message mapping tab you need to provide the RFC channel created manually in the parameter. While end to end testing this is binded in the integration directory object,
I provided the JDBC channel created for lookup manually in the operation mapping and i got the result.
Hope this will help.
Thanks
Ajay Garg
Similar Messages
-
Java Error in RFC Lookup in XSLT Mapping usinf Java helper class
Hi All,
I am doing RFC Lookup in XSLT Mapping using Java Helper class.
The Lookup works fine when called one RFC at a time However my requirement is I want to do 2 Lookups.
Both Lookups works when done individually however when I call both lookups in one mapping I get following error "javax.xml.transform.TransformerException: DOMSource whose Node is null."
Following is the code I have written in XSLT for the lookup:
<xsl:template name="Lookup_1">
<xsl:param name="STDPN"/>
<rfc:RFC_READ_TABLE>
<QUERY_TABLE>KNA1</QUERY_TABLE>
<OPTIONS><item><TEXT>
<xsl:value-of select="$STDPN"/>
</TEXT></item>
</OPTIONS>
<FIELDS>
<item>
<FIELDNAME>KUNNR</FIELDNAME>
</item>
</FIELDS>
</rfc:RFC_READ_TABLE>
</xsl:variable>
<xsl:variable name="response" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request, 'BS_D, 'cc_RfcLookup', $inputparam)"/>
<xsl:element name="STDPN">
<xsl:value-of select="$response//DATA/item/WA"/>
</xsl:element>
</xsl:template>
<xsl:template name="Lookup_2">
<xsl:param name="BELNR"/>
<xsl:variable name="Query">AGMNT = '<xsl:value-of select="$BELNR"/>'</xsl:variable>
<xsl:variable name="request1">
<rfc:RFC_READ_TABLE>
<QUERY_TABLE>ZTABLE</QUERY_TABLE>
<OPTIONS><item><TEXT>
<xsl:value-of select="$Query"/>
</TEXT></item>
</OPTIONS>
<FIELDS>
<item>
<FIELDNAME>KUNAG</FIELDNAME>
</item>
</FIELDS>
</rfc:RFC_READ_TABLE>
</xsl:variable>
<xsl:variable name="response1" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request1, 'BS_D','cc_RfcLookup', $inputparam)"/>
<xsl:element name="BELNR">
<xsl:value-of select="$response1//DATA/item/WA"/>
</xsl:element>
</xsl:template>
My Question: Am I doing anything wrong? Or Is it possible to call multiple lookups in one XSLT?
Thanks and Regards,
AtulHi Atul,
I had the same problem like you had.
The main Problem is that with the example code the request variable is created as NodeList object. In XSLT a variable is somekind of a constant and can't be changed. As the request object is empty after the first request the programm fails at the following line:
Source source = new DOMSource(request.item(0));
So I've created a workaround for this problem.
In the call of the template I've put the request as a parameter object at the template call:
<xsl:with-param name="req">
<rfc:PLM_EXPLORE_BILL_OF_MATERIAL xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
<APPLICATION>Z001</APPLICATION>
<FLAG_NEW_EXPLOSION>X</FLAG_NEW_EXPLOSION>
<MATERIALNUMBER><xsl:value-of select="value"/></MATERIALNUMBER>
<PLANT>FSD0</PLANT>
<VALIDFROM><xsl:value-of select="//Recordset/Row[name='DTM-031']/value"/></VALIDFROM>
<BOMITEM_DATA/>
</rfc:PLM_EXPLORE_BILL_OF_MATERIAL>
</xsl:with-param>
With this change the request will be provided as a String object and not as a NodeList object.
Afterwards the RfcLookup.java has to be changed to the following:
package com.franke.mappings;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.sap.aii.mapping.lookup.Channel;
import com.sap.aii.mapping.api.StreamTransformationConstants;
import com.sap.aii.mapping.api.AbstractTrace;
import com.sap.aii.mapping.lookup.RfcAccessor;
import com.sap.aii.mapping.lookup.LookupService;
import com.sap.aii.mapping.lookup.XmlPayload;
* @author Thorsten Nordholm Søbirk, AppliCon A/S
* Helper class for using the XI Lookup API with XSLT mappings for calling RFCs.
* The class is generic in that it can be used to call any remote-enabled
* function module in R/3. Generation of the XML request document and parsing of
* the XML response is left to the stylesheet, where this can be done in a very
* natural manner.
* TD:
* Changed the class that request is sent as String, because of IndexOutOfBound-exception
* When sending multiple requests in one XSLT mapping.
public class RfcLookup {
* Execute RFC lookup.
* @param request RFC request - TD: changed to String
* @param service name of service
* @param channelName name of communication channel
* @param inputParam mapping parameters
* @return Node containing RFC response
public static Node execute( String request,
String service,
String channelName,
Map inputParam)
AbstractTrace trace = (AbstractTrace) inputParam.get(StreamTransformationConstants.MAPPING_TRACE);
Node responseNode = null;
try {
// Get channel and accessor
Channel channel = LookupService.getChannel(service, channelName);
RfcAccessor accessor = LookupService.getRfcAccessor(channel);
// Serialise request NodeList - TD: Not needed anymore as request is String
/*TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
Source source = new DOMSource(request.item(0));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
StreamResult streamResult = new StreamResult(baos);
transformer.transform(source, streamResult);*/
// TD: Add xml header and remove linefeeds for the request string
request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+request.replaceAll("[\r\n]+", "");
// TD: Get byte Array from request String to send afterwards
byte[] requestBytes = request.getBytes();
// TD: Not used anymore as request is String
//byte[] requestBytes = baos.toByteArray();
trace.addDebugMessage("RFC Request: " + new String(requestBytes));
// Create input stream representing the function module request message
InputStream inputStream = new ByteArrayInputStream(requestBytes);
// Create XmlPayload
XmlPayload requestPayload =LookupService.getXmlPayload(inputStream);
// Execute lookup
XmlPayload responsePayload = accessor.call(requestPayload);
InputStream responseStream = responsePayload.getContent();
TeeInputStream tee = new TeeInputStream(responseStream);
// Create DOM tree for response
DocumentBuilder docBuilder =DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = docBuilder.parse(tee);
trace.addDebugMessage("RFC Response: " + tee.getStringContent());
responseNode = document.getFirstChild();
} catch (Throwable t) {
StringWriter sw = new StringWriter();
t.printStackTrace(new PrintWriter(sw));
trace.addWarning(sw.toString());
return responseNode;
* Helper class which collects stream input while reading.
static class TeeInputStream extends InputStream {
private ByteArrayOutputStream baos;
private InputStream wrappedInputStream;
TeeInputStream(InputStream inputStream) {
baos = new ByteArrayOutputStream();
wrappedInputStream = inputStream;
* @return stream content as String
String getStringContent() {
return baos.toString();
/* (non-Javadoc)
* @see java.io.InputStream#read()
public int read() throws IOException {
int r = wrappedInputStream.read();
baos.write(r);
return r;
Then you need to compile and upload this class and it should work.
I hope that this helps you.
Best regards
Till -
Error while updating lookup table through PSI
Hi,
I am trying to update a lookuptable through PSI using following code :
$lookupTableGuid = $svcPSProxy.ReadLookupTables($EPMTYString, 0 , 1033).LookupTables | where {$_.LT_NAME -eq $Lookuptablename}
$lookuptable = $svcPSProxy.ReadLookupTablesbyUids($lookupTableGuid.LT_UID, 1 , 1033)
$lookuptablerowValues = $svcPSProxy.ReadLookupTablesbyUids($lookupTableGuid.LT_UID, 0 , 1033).LookupTableTrees
#get lookup table count
$lookuptableValues = $svcPSProxy.ReadLookupTablesbyUids($lookupTableGuid.LT_UID, 0 , 1033).LookupTableTrees
$count = $lookuptableValues.Count +1
#Insert the rows of table in Lookup Table
foreach ($rows in $table)
$value_Code = $rows.Item("Project_code")
$value_Name = $rows.Item("project_desc")
$GUID = [System.Guid]::NewGuid()
$LookupRow = $lookuptable.LookupTableTrees.NewLookupTableTreesRow()
$LookupRow.LT_STRUCT_UID = $GUID
$LookupRow.LT_UID = $lookupTableGuid.LT_UID
$LookupRow.LT_VALUE_TEXT = $value_Code
$LookupRow.LT_VALUE_DESC = $value_Name
$LookupRow.LT_VALUE_SORT_INDEX = ($count ++)
$lookuptable.LookupTableTrees.AddLookupTableTreesRow($LookupRow)
$error.clear()
#Exceptions Handling :
Try
$svcPSProxy.UpdateLookupTables($lookuptable , 0 , 1 , 1033)
Catch
write-host "Error updating the Lookup table, see the error below:" -ForeGroundColor Red -BackGroundColor White
write-host "$error" -ForeGroundColor Red
Initially, I tried to run with value of $value_code as "AACL", the code worked.
But when I tried to insert value of code as "AACL - ALKYL AMINES CHEMICALS LIMITED"
I got following error:
Exception calling "UpdateLookupTables" with "4" argument(s): "Response is not well-formed XML."
I could not understand why this error is appearing as I just added ' - ' to my code value. I checked for validity of ' - 'in the targeted column. No issue with that.
Please help.
Thanks and regards,
JayeshHi All,
The entries are maintained from DB level.
Thanks for the help.
DVRK -
'$P_CRM' is undefined Error while opening Lookup field in Bulk edit form in CRM 2013
Hi All,
I am getting this strange error in MS CRM 2013
When I do bulk edit for any entity , I select 2-3 records and click on Edit , the Bulk edit form opens
then whenever I clicks on any field which is lookup type It does not open , after debugging with F12 developer tool
I am getting this error. "'$P_CRM' is undefined"
I have MS CRM 2013 on premise , Service Pack 1 Update Rollup 1 installed and using IE 11.
Any Idea
Regards,
Vilas
Vilas Magar http://microsoftcrmworld.blogspot.com/Few questions that might help us to identify issue:
1. Have you enabled Social Insight ? If yes can you try bulk edit on entity which don't have social insight enabled and confirm if it repro there?
For more information on how to enable Social Insight :
http://technet.microsoft.com/en-us/library/dn659847.aspx
2. When you close bulk edit form are you getting script error dialog? If yes can you share that error log reports? -
Security error while removing LookUp value
Hi Experts,
I want to display my own values in User type Dropdown box on create user screen. It is mapped to lookup definition: Lookup.Users.Role. I added my custom values from the design console in this lookup but when i tried to remove the existing values from this lookup, I am recieving this error:
Error Keyword: DOBJ.INVALID_DELETE
Description: The security level for this data item indicates that it cannot be deleted.
Remedy:
Action: E
Severity: M
Help URL:
Detail:
Any ideas, please help!!Deleting from database is the most extreme method...
You should have a better understanding of:-
The security level for this data item indicates that it cannot be deleted.
Indiscriminately removing such critical fields can be detrimental and can have severe repercussions...
For every entry in lookups there is one field called LKV_DATA_LEVEL :
This DATA_LEVEL thing has either 0 or 1...
If it is 1, it means you can't remove it from Design Console and if YOU are removing it do it at your own risk...
In fact, when I tried to add and then remove an entry in Lookup.Users.Role, I didn't face this Exception...
By the way, work around is to make value of this field 0 by using SQL Developer... Then you can delete it from Design Console easily... -
Error while running the RFC on ECC 6.0 server
Hello Champs,
The problem I am facing while sending the data for validation and invalidation from RFC on ECC server to Pi server to be send to a webservice. This scenario was working perfectly fine when the RFC was run on R/3 4.7 server. On upgradation of R/3 server to ECC 6.0 server we found the folowing error while we run the RFC on ECC server.
alternativeServiceIdentifier:party/service from channel configuration are not equal to party/service from lookup of alt ..
I have also re-imported the RFC's from ECC server to PI server and activated it again to overcome this problem, but still I am getting this error. Also I have done the CPA cache refresh too. But the problem still persist.
Some times when we keep on clicking on this error continously then we are able to get the desired results ie either valid or invalid. Is there something which needs to be done when we migrate the RFC from R/3 server to ECC server? Pls let me know how to solve this problem... Any help on this on priority basis is highly appreciated.
Thanking You in Advance.
Regards
S JoshiDear Rajesh,
I did the activity as suggested by you but still I am getting the same error while sending the order ID number from ECC 6.0 server. But when check the error in the Moni transaction I am getting the error as follow:
com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Not enough message parts were received for the operation.
This indicates that there is a problem on the receiver side.. Pls guide me......
Thanks
With Best Regards
S Joshi -
Hi all,
I am doing an RFC lookup to increment counter. I am facing a problem.
I followed the code written by Michael. https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
My udf is as shown below: -
String content = "";
MappingTrace importanttrace;
importanttrace = container.getTrace();
java.util.Map param = container.getTransformationParameters();
String MSGID = (String) param.get (StreamTransformationConstants.MESSAGE_ID);
// filling the string with our RFC-XML (with values)
String m="<?xml version="1.0" encoding="UTF-8"?><ns0:_-GLB_-ZGT_RFBIBL00_COUNTER xmlns:ns0="urn:sap-com:document:sap:rfc:functions"><IM_V_FILENAME>CA10.NCH.FCIPAY04</IM_V_FILENAME><IM_V_MSGID>"MSGID"</IM_V_MSGID><IM_V_WRNO>DEVWR0001725</IM_V_WRNO></ns0:_-GLB_-ZGT_RFBIBL00_COUNTER>";
importanttrace.addWarning("Input value is "+m);
RfcAccessor accessor = null;
ByteArrayOutputStream out = null;
try
// 1. Determine a channel (Business system, Communication channel)
Channel channel = LookupService.getChannel(receiverBS,"CC_RFC_RCV_AMS_R3F_DEVWR001725");
// 2. Get a RFC accessor for a channel.
accessor = LookupService.getRfcAccessor(channel);
// 3. Create a xml input stream representing the function module request message.
InputStream inputStream = new ByteArrayInputStream(m.getBytes());
// 4. Create xml payload
XmlPayload payload = LookupService.getXmlPayload(inputStream);
// 5. Execute lookup.
Payload result = accessor.call(payload);
InputStream in = result.getContent();
out = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
for (int read = in.read(buffer); read > 0; read = in.read(buffer)) {
out.write(buffer, 0, read);
content = out.toString();
catch(LookupException e)
importanttrace.addWarning("Error while lookup " + e.getMessage() );
catch(IOException e)
importanttrace.addWarning("Error " + e.getMessage() );
finally
if (out!=null) {
try {
out.close();
} catch (IOException e) {
importanttrace.addWarning("Error while closing stream " + e.getMessage() );
// 7. close the accessor in order to free resources.
if (accessor!=null) {
try {
accessor.close();
} catch (LookupException e) {
importanttrace.addWarning("Error while closing accessor " + e.getMessage() );
//returning the result u2013 RFC-XML.response
if ((content.substring(143,150)).equals("NOENTRY"))
ExceptionThrower.generate("INVALID INPUT DEVWR NUMBER OR ID" );
return "Nothing";
else
return (content.substring(143,155));
The problem i am facing is that, i am not able to pass the IM_V_MSGID parameter to the function module.
The other 2 parameters i can pass. that is IM_V_FILENAME and IM_V_WRNO.
i am able to extract the message ID using
java.util.Map param = container.getTransformationParameters();
String MSGID = (String) param.get (StreamTransformationConstants.MESSAGE_ID);
and displayed it in SXI_MONITOR trace also using importanttrace.addWarning("Input value is "+m);
i got the correct MSGID in the trace.But the problem is that this value is not getting passed to the FM. Cos the table is supposed to increment the counter whenever the MSGID value changes.
I tried hardcoding the MSGID value to 'abc' or '123' like values but the same thing happended. The counter will not increment. The FM is working perfectly when i run it and change the MSGID values manually.
Thanks
PratichiHi,
We have done this by creating an FM in XI ABAP stack:
FUNCTION Z_ZBXI_GET_PRE_MSG_ID.
""Local Interface:
*" IMPORTING
*" VALUE(I_CURRMSGID) TYPE CHAR40
*" EXPORTING
*" VALUE(E_PREMSGID) TYPE CHAR40
DATA: lv_currmsgid type SXMSPMAST-MSGGUID,
lv_parentmsgid LIKE SXMSPMAST-PARENTMSG,
lv_premsgid LIKE SXMSPMAST-MSGGUID.
lv_currmsgid = i_currmsgid.
select single PARENTMSG from SXMSPMAST into lv_parentmsgid where MSGGUID = lv_currmsgid.
e_premsgid = lv_parentmsgid.
ENDFUNCTION.
You need to call this FM through RFC lookup UDF in your mapping.
Let me know if it works for you.
Regards,
Shweta -
RFC Lookup error :No RFC authorization for function module
Hi All,
I have created RFC in the PI system and enabled it as remote. I am working on PI7.1
I have imported RFC into Repository.But when i am trying to execute RFC lookup function in the graphical mapping I am getting No RFC authorization for function module error.
Unhandled RFC exception: <rfc:Z_MAIL_LOOKUP.Exception xmlns:rfc="urn:sap-com:document:sap:rfc:functions"><Name>RFC_ERROR_SYSTEM_FAILURE</Name><Text>No RFC authorization for function module Z_MAIL_LOOKUP.</Text><Message><ID>RFC_ERROR_SYSTEM_FAILURE</ID><Number>341</Number></Message><Attributes><V1>RFC_NO_AUTHORITY</V1></Attributes></rfc:Z_MAIL_LOOKUP.Exception> com.sap.aii.mapping.api.StreamTransformationException: Unhandled RFC exception: <rfc:Z_MAIL_LOOKUP.Exception xmlns:rfc="urn:sap-com:document:sap:rfc:functions"><Name>RFC_ERROR_SYSTEM_FAILURE</Name><Text>No RFC authorization for function module Z_MAIL_LOOKUP.</Text><Message><ID>RFC_ERROR_SYSTEM_FAILURE</ID><Number>341</Number></Message><Attributes><V1>RFC_NO_AUTHORITY</V1></Attributes></rfc:Z_MAIL_LOOKUP.Exception> at com.sap.aii.mappingtool.flib7.RfcLookup.cacheMore(RfcLookup.java:95) at com.sap.aii.mappingtool.tf7.rt.AMultiResIterator$MultiOutIterator.gotoNextContext(AMultiResIterator.java:95) at com.sap.aii.mappingtool.tf7.AMappingProgram.processNode(AMappingProgram.java:315) at com.sap.aii.mappingtool.tf7.AMappingProgram.processNode(AMappingProgram.java:406) at com.sap.aii.mappingtool.tf7.AMappingProgram.start(AMappingProgram.java:496) at com.sap.aii.mappingtool.tf7.Transformer.start(Transformer.java:133) at com.sap.aii.mappingtool.tf7.AMappingProgram.transform(AMappingProgram.java:626) 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.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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 $Proxy1005_10002.execute(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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) Runtime exception when processing target-field mapping /ns0:MT_FileDummy/File; root message: Unhandled RFC exception: <rfc:Z_MAIL_LOOKUP.Exception xmlns:rfc="urn:sap-com:document:sap:rfc:functions"><Name>RFC_ERROR_SYSTEM_FAILURE</Name><Text>No RFC authorization for function module Z_MAIL_LOOKUP.</Text><Message><ID>RFC_ERROR_SYSTEM_FAILURE</ID><Number>341</Number></Message><Attributes><V1>RFC_NO_AUTHORITY</V1></Attributes></rfc:Z_MAIL_LOOKUP.Exception>
13:42:37 End of test
Edited by: Rams on Apr 17, 2009 1:43 PMHi! Rams,
I think the issue is related to Authentification Issue..Even though u did correctly please check once the below
1) Check any Typo Erros are there while configuring or giving names in Lookups.
2) please check Authorizations like ID and PWD and Sufficient Roles
3) Also please check did u given paramters correctly while doing RFC look up I mean paramers , Binding parameters and RFC channel name and adapter type or Simple type it must be an adapter
4) In ID part while configuring Interface determinaition you need to give your RFC look Up name there also..Hence check whether u given or not if yes correctly or not
5) Also remember one thing if your scenario is correct mostly you can know the result in mapping itself it seems while testing Message mapping and Interface mappings give your RFC look up paramters in the parameters tab present in TEST tab and later in Document tab give Input...and execute it works if it doesn;t works and if there is an issue with RFC you can get there only..ok
Also go through the below document::
[https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/20befc9a-aa72-2b10-ae9b-b0988791d457]
I hope this will give u brief idea...
Also check with basis while taking SAP_ALL authorization so that first u ill came to know whether issue is related to authentification or RFC module itself remote enabled and also do SXI_CACHE also ocne to refresh ESR and ID objects..
Regards::
Amar Srinivas Eli -
Java syntax error : RFC Lookup
My UDF Source code has an syntax error: missing return statement }
but i can´t find the error.
any ideas ?
//write your code here
String content = "";
MappingTrace importanttrace;
importanttrace = container.getTrace();
// filling the string with our RFC-XML (with values)
String m ="<?xml version="1.0" encoding="UTF-8"?><ns0:Z_GET_PRODH xmlns:ns0="urn:sap-com:document:sap:rfc:functions"><IN_MATNR>2100018693</IN_MATNR></ns0:Z_GET_PRODH>";
RfcAccessor accessor = null;
ByteArrayOutputStream out = null;
try
// 1. Determine a channel (Business system, Communication channel)
Channel channel = LookupService.getChannel("xxxxxxxxxx","yyyyyyyy");
// 2. Get a RFC accessor for a channel.
accessor = LookupService.getRfcAccessor(channel);
// 3. Create a xml input stream representing the function module request message
InputStream inputStream = new ByteArrayInputStream(m.getBytes());
// 4. Create xml payload
XmlPayload payload = LookupService.getXmlPayload(inputStream);
// 5. Execute lookup.
Payload result = accessor.call(payload);
InputStream in = result.getContent();
out = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
for (int read = in.read(buffer); read > 0; read = in.read(buffer))
out.write(buffer, 0, read);
content = out.toString();
catch(LookupException e)
importanttrace.addWarning("Error while lookup " + e.getMessage() );
catch(IOException e)
importanttrace.addWarning("Error " + e.getMessage() );
finally
if (out!=null)
try
out.close();
catch (IOException e)
importanttrace.addWarning("Error while closing stream " + e.getMessage() );
// 7. close the accessor in order to free resources.
if (accessor!=null)
try
accessor.close();
catch (LookupException e)
importanttrace.addWarning("Error while closing accessor " + e.getMessage() );
Message was edited by:
Gordon BreuerI have a solution without DOM parser. The XML code is seen as a sting and the code looks for a specific tag. In my case it is OUTPUT, you can adjust the code to your tag.
String content = "";
MappingTrace importanttrace;
importanttrace = container.getTrace();
// filling the string with our RFC-XML (with values)
String m = "<rfc:ZZSG_TEST_XSLT_LOOKUP xmlns:rfc="urn:sap-com:document:sap:rfc:functions">"
+ "<INPUT>" + request + "</INPUT></rfc:ZZSG_TEST_XSLT_LOOKUP>";
RfcAccessor accessor = null;
ByteArrayOutputStream out = null;
try
// 1. Determine a channel (Business system, Communication channel)
Channel channel = LookupService.getChannel("Airline_Group_Two","RFC");
// 2. Get a RFC accessor for a channel.
accessor = LookupService.getRfcAccessor(channel);
// 3. Create a xml input stream representing the function module request message.
InputStream inputStream = new ByteArrayInputStream(m.getBytes());
// 4. Create xml payload
XmlPayload payload = LookupService.getXmlPayload(inputStream);
// 5. Execute lookup.
Payload result = accessor.call(payload);
InputStream in = result.getContent();
out = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
for (int read = in.read(buffer); read > 0; read = in.read(buffer)) {
out.write(buffer, 0, read);
content = out.toString();
catch(LookupException e)
importanttrace.addWarning("Error while lookup " + e.getMessage() );
catch(IOException e)
importanttrace.addWarning("Error " + e.getMessage() );
finally
if (out!=null) {
try {
out.close();
} catch (IOException e) {
importanttrace.addWarning("Error while closing stream " + e.getMessage() );
// 7. close the accessor in order to free resources.
if (accessor!=null) {
try {
accessor.close();
} catch (LookupException e) {
importanttrace.addWarning("Error while closing accessor " + e.getMessage() );
//returning the result RFC-XML.response
int start = content.indexOf("<OUTPUT>") + 8;
int end = content.indexOf("</OUTPUT>");
if (end > start && start > 8)
content = content.substring(start,end);
return content; -
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 !! -
Error while deleting values of characteristic /1FB/COMPANY/Company (RFC des
Dear all,
I am trying to synchronize Company master data between local BCS system and SAP BW with UGMD_BATCH_SYNC program. In the synchronization mode, Full Synschronization (Write and Delete) was selected.
However, I receive the following error message when executing the program:
Error while deleting values of characteristic /1FB/COMPANY/Company (RFC destination )
Message no. UGMD077
Diagnosis
When writing or deleting values of characteristic /1FB/COMPANY/Company errors occurred in the system with RFC destination . As the changes have already been defined in the local storage location this results in the master data being asynchronous between the local and remote storage location.
System Response
Processing is continued.
Procedure
Carry out a manual synchronization of the master data later using report UGMD_BATCH_SYNC. You can find additional information there under Application Help.
FYI, RFC Destination for my data basis is left blank.
What may causes this error and how to resolve it?
Thank you.Hi MontyBurns,
May I know what settings that I need to check in UGMDSYNC program? As far as I can tell, there is only one parameter that we need to specify in the program i.e. Field Name. As I am trying to synchronize from BCS to BW, I have chosen the followings settings:
Source = LOCAL
Target = ALLBW
All,
Interesting thing that I notice after executing the UGMDSYNC program is the following message:
Synchronize/Display Variances Between Systems
The compound dependencies for the attributes or texts are not defined
uniformly in the systems investigated.
Example:
Texts are defined as language-specific in the local systems and as
language-independent in remote systems (for example BW systems). The
same can apply for other compounds such as version or time dependencies.
System Response
The display of differences between the systems will be affected. A
manual synchronization will not be completely successful.
Procedure
1. Ensure that the dependencies for the attributes and texts are the
same in all systems.
2. Start the synchronization process again.
Procedure for System Administration
I can check the attributes and texts in BW via RSD1 by specifying InfoObject = 0COMPANY and checking the Master data/texts and Attribute tabs. But how do I check similar settings in BCS Workbench? I can't determine whether the Company text is language-dependent or not simply by displaying specific Company from Process View > Master Data > Consolidation Units > Company.
Thanks. -
Hi
i m working on File to RFC scenario. the records are getting displayed in sender CC and receiver CC. But in receiver CC i m also getting the following error:
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: error while processing message to remote system:com.sap.aii.adapter.rfc.core.client.RfcClientException: JCO.Exception while calling ZRFC in remote system (RfcClient[CC_RIS_STC_PIMASTER_RECEIVER]):com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: Screen output without connection to user.
Error in processing caused by: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: error while processing message to remote system:com.sap.aii.adapter.rfc.core.client.RfcClientException: JCO.Exception while calling ZRFC in remote system (RfcClient[CC_RIS_STC_PIMASTER_RECEIVER]):com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: Screen output without connection to user.
It was working fine few hours earlier but showing this error now. i was giving a SUBMIT program , but stopped that now.
But still facing the same problem. and in SXMB_MONI its showing recorded for Outbound processing.
could anyone help.Hi
I am Facing Following Error When I am trying to call SAP Screen through JCO.jar
com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: Screen output without connection to user
Please Guide Whethere it is possible to call SAP screen Through JCO.jar ot NOT
Please HELP if it is possible to Call SAP screen through JCO.jar with step and Code
Thanks
Vivek -
Error while importing RFC schema
Hello Friends,
I am getting the following error while importing the RFC schema in Integration repository from SAP which is on ECC version.
The error I am getting is:
Unable to establish connection to R/3 system 10.238.52.79 (system=03, client=250) Troubleshooting tips:
Is the target system online?
Check the connection data (note that server names and groups are case-sensitive)
Tips for administrators (see the configuration guide for more details):
Does the user have the required authorizations in the target system?
Is the target system configured correctly in "etc/services"?
I checked the target system configuraion as well as user authorization. All the connection parameters are also correct.
Does anybody have idea about the solution to this problem?
Regards,
Nitin.I had this problem before. I had to make an entry with SAPGW03 in my services file on the XI server. the entry should look like
sapgw03 3303
That resolved my problem. If you are working with a XI server on Windowns the file is located in <WINDOWS_DIR>\system32\driver\etc\ directory.
Thanks,
Kalyan Musunuri
OBT Global Inc.
Message was edited by: Kalyan Tej Musunuri -
Error while loading service JCo RFC Provider
When I click on the "JCo RFC Provider" node under services in Visual administrator, I get an error:
"Error while loading service JCo RFC Provider"
Does anyone know what has gone wrong here, and how I go about fixing it?
Thanks in advance
Regards
Richard
PS. We're using EP6sp14You have to use the correct Visual Admin version:
if your netweaver is 6.40 use VA 6.40 ... and for 7.00 the same, VA 7.00
(you get them from OS where netweaver is installed)
other possiblity: use Administrator login and check if it works, then correct your permissions (mostyl 'Administrators' group is missing)
Regards,
Chris -
Error while calling RFC adapter(FILE-XI-RFC scenario)
Hi,
I am trying for FILE-XI-RFC scenario. I am getting the following error. I have checked in message monitoring. The error is coming while calling the RFC adapter. Can any body tell what problem is this?
Regards,
Dhana
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Call Adapter
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="INTERNAL">AE_DETAILS_GET_ERROR</SAP:Code>
<SAP:P1>af.f23.sofd00001530a</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>2: Unable to find URL for Adapter Engine af.u7a.us4296</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>Error while reading access data (URL, user, password) for the Adapter Engine af.f23.sofd00001530a</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>Hi,
I did SLD check.
The status says 'Summary: Connection to SLD works correctly'.
But it fails while checking the access to XI profile.
Here is the status
Summary: Connection to SLD works correctly
Now checking access to the XI Profile
Properties of RFC destination LCRSAPRFC
RFC host:
%%RFCSERVER%%
program id: LCRSAPRFC_DZ1
gateway host:
gateway service:
Testing the RFC connection to the SLD java client...
RFC ping returned exception with message:
/ CPIC-CALL: 'ThSAPOCMINIT' : cmRc=2 thRc=679#Transaction program not registere
Maybe you are looking for
-
Can i access my library from two hard drives at the same time?
hello! i have way too much music on my hard drive and would like to move some to my external drive and leave some on my local drive. that way when i'm writing papers at the cafe, i can access some music and when i'm at home, i can get it all. is this
-
Hi everybody, I need to develop a wizard-like application which ends generating a pdf non-interactive form (i.e. list of class students). I would like to use as less coding as possible, so I'm using Visual Composer for the selection steps. However th
-
How do I move my current website to creative cloud
I want to move my current website to creative cloud. How do I do it.
-
I had to do a master reset on my iPhone4, I had everything backed up on iCloud first. The only thing I cannot figure out how to get back is my pics, how do I do that?
-
SyncToy not copying some PDF files
I'm brand new to this and set up a couple of folder pairs. For each set, there were some PDF files that didn't get copied. The error said that they were in use but they aren't. I even restarted the machine and didn't open anything just to be sure