RfcRegisterServer退出并出现错误

2020-09-25 03:49发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨!

我的问题如下。 我正在使用NW RFC SDK 64bit创建自己的RFC Server应用程序。 我已经安装了SAP ABAP Trial 7.03进行测试,并创建了使用TCP/IP连接的名称为" TestRFC"的目标。 在我的sapnwrfc.ini文件中,我保存了以下文本:

DEST = TestRFC
TYPE = R
GWSERV = 3300
GWHOST = 192.168.3.73

PROGRAM_ID = TestRFCSERVERID


在我的源代码中,我按照以下方式准备了结构RFC_CONNECTION_PARAMETER:

RFC_CONNECTION_PARAMETER m_oGatewayParams [1];

m_oGatewayParams [0] .name = cU(" DEST");

m_oGatewayParams [0] .value = cU(" TestRFC");


此后,我调用RfcRegisterServer函数:

m_hRFCConn = :: RfcRegisterServer(m_oGatewayParams,1,&Err);


当我调试应用程序并通过

到达该行时

RfcRegisterServer,执行结果为错误,内容如下:

RFC_INVALID_PARAMETER

缺少参数ASHOST,GWHOST或MSHOST。


如何解决此错误?
P.S. 我在Windows7 x64中使用Visual Studio 2010,SAP网关在IP地址为192.168.3.73的虚拟机中启动,该虚拟机可用。 此外,我通过以下命令行使用rfcexec.exe工具成功注册了服务器:

rfcexec -a TestRFCSERVERID -g 192.168.3.73 -x 3300

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨!

我的问题如下。 我正在使用NW RFC SDK 64bit创建自己的RFC Server应用程序。 我已经安装了SAP ABAP Trial 7.03进行测试,并创建了使用TCP/IP连接的名称为" TestRFC"的目标。 在我的sapnwrfc.ini文件中,我保存了以下文本:

DEST = TestRFC
TYPE = R
GWSERV = 3300
GWHOST = 192.168.3.73

PROGRAM_ID = TestRFCSERVERID


在我的源代码中,我按照以下方式准备了结构RFC_CONNECTION_PARAMETER:

RFC_CONNECTION_PARAMETER m_oGatewayParams [1];

m_oGatewayParams [0] .name = cU(" DEST");

m_oGatewayParams [0] .value = cU(" TestRFC");


此后,我调用RfcRegisterServer函数:

m_hRFCConn = :: RfcRegisterServer(m_oGatewayParams,1,&Err);


当我调试应用程序并通过

到达该行时

RfcRegisterServer,执行结果为错误,内容如下:

RFC_INVALID_PARAMETER

缺少参数ASHOST,GWHOST或MSHOST。


如何解决此错误?
P.S. 我在Windows7 x64中使用Visual Studio 2010,SAP网关在IP地址为192.168.3.73的虚拟机中启动,该虚拟机可用。 此外,我通过以下命令行使用rfcexec.exe工具成功注册了服务器:

rfcexec -a TestRFCSERVERID -g 192.168.3.73 -x 3300

付费偷看设置
发送
4条回答
绿领巾童鞋
1楼-- · 2020-09-25 04:09

你好,

对我来说,它奏效了。 我可以看到我的程序在事务SMGW-> goto->登录的客户端上注册。

这是我程序的完整代码:

 #include 
 #include 
 #include" c:\ path \ to \ rfc \ nwrfcsdk \ include \ sapnwrfc.h"

 int main(int argc,SAP_UC ** argv){
     RFC_CONNECTION_PARAMETER m_oGatewayParams [1];
     RFC_ERROR_INFO错误;
     m_oGatewayParams [0] .name = cU(" DEST");
     m_oGatewayParams [0] .value = cU(" TestRFC");
     RFC_CONNECTION_HANDLE m_hRFCConn;

     RfcInit();
     m_hRFCConn = RfcRegisterServer(m_oGatewayParams,1,&Err);
     如果(m_hRFCConn == NULL){
         printf("打开RFC连接时出错!");
         RfcCloseConnection(m_hRFCConn,&Err);
         返回1;
     }
    
    //5s休眠,这样我可以看到该程序在SMGW中注册
     睡眠(5);
     printf("有效。");
     RfcCloseConnection(m_hRFCConn,&Err);

     返回0;
 } 

这是我的" sapnwrfc.ini"文件的内容:

 DEST = TestRFC
 TYPE = R
 GWSERV = 3330
 GWHOST = <我的VM的IP>
 PROGRAM_ID = TestRFCSERVERID
 <末尾的空白行> 

我做的不同:

  1. 我首先声明了句柄(RFC_CONNECTION_HANDLE m_hRFCConn;);
  2. 仅在RfcInit()之后才调用函数" RfcRegisterServer()";
  3. 我在" ini"文件中删除了" GWHOST"和" PROGRAM_ID"之间的空白行;
  4. 我的" ini"文件末尾有一个空行。


我希望这会有所帮助。

此致,
以撒 p>

当学会了学习
2楼-- · 2020-09-25 04:15

PS:关于您在此问题中使用的标签,请将其更改为" ABAP连接性"。 直到现在,我才意识到您使用了CST标记:-)谢谢!

bbpeas
3楼-- · 2020-09-25 04:14

您好,

您能提供完整的示例代码吗?

致谢

伊萨尼亚

N-Moskvin
4楼-- · 2020-09-25 04:22

我什至尝试使用现有的源代码构建我的rfcexec版本,并且无论使用NW RFC SDK的" rfcexec.exe"是正确的事实,该错误都是相同的。

一周热门 更多>