今天作了几个rfc供外围系统调用,他们使用.net。
在.net调用时,提示“Lookup of function ET_PRDATA metadata failed for destination ZNMMPT_EXPORT_PR”。
这个错误,是由于GetFunctionMetadata()函数引起的,对此,NC03.0 API文档文档的描述是:
If the requested metadata is not in the cache and a destination is available a lookup is executed. If the lookup fails an exception is thrown.
If the metadata is not in the cache and no destination is supplied (i.e., destination is null), this method returns null.
出错原因:用于连接SAP User的权限不够。该RFC User的user type首先需要设置为communication。如果单独给该user维护Role的话,该Role只需要增加一个权限对象S_RFC即可。S_RFC权限对象有三个字段:RFC_TYPE, RFC_NAME, ACTVT.
RFC_TYPE只能勾选FUGR;ACTVT只能是16(execute);RFC_NAME中填写的内容是函数组,需要包含SYST、RFC1、RFCH以及所调RFC所在的函数组。基本上可以满足远程调用,如果还是不行,可以使用st01对RFC User进行权限的trace.
以上信息参考http://gestapo.diandian.com/post/2012-07-20/40030084963;
http://blog.sina.com.cn/s/blog_473e013d0100y4pd.html