如何创建RFC返回数据

2020-08-31 08:09发布

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

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


我在SE38中使用表参数COMPANY_LIST创建一个RFC功能模块,并导入参数companyID

代码如下所示

功能BAPI_COMPANY_GETDETAIL1。

 CLEAR COMPANY_LIST。
  清除T880。
 *权限检查:S_TABU_DIS V_T001
  执行CHECK_AUTHORITY_T880更改退货。
  检查返回是初始的。
  从T880中将单个RCOMP NAME1选择到RCOMP = COMPANYID的COMPANY_LIST中。
  如果SY-SUBRC NE 0。
  清除消息。
  MESSAGE-MSGTY ='E'。
  MESSAGE-MSGID ='FN'。
  MESSAGE-MSGNO = 030。
  MESSAGE-MSGV1 = COMPANYID。
  使用讯息进行PER_SET_RETURN_MESSAGE
  更改退货。
  IF 1 =2。"消息
  带有公司ID的消息E030(FN)。
 * Die Gesellschaft和ist nicht vorhanden
  万一。
  万一。
  检查返回是初始的。结束功能。

 

然后我使用下面的代码调用该函数,但未返回任何内容。

 REPORT Z_LOKI_TEST07。
 数据:
  companyid TYPE BAPI0014_2-COMPANY,
  li_clist TYPE BAPI0014_1,
  l_clist BAPI0014_1的类型标准表。
 companyid ='001000'。
 通话功能'BAPI_COMPANY_GETDETAIL1'
  出口
  COMPANYID =公司编号
  桌子
  COMPANY_LIST = l_clist。
 READ TABLE l_clist INTO li_clist INDEX 1。

我调试了,并且COMPANY_LIST在模块中有数据。 但是调用l_clist后的表为空。 是什么原因?有人可以帮忙吗? 谢谢。

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

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


我在SE38中使用表参数COMPANY_LIST创建一个RFC功能模块,并导入参数companyID

代码如下所示

功能BAPI_COMPANY_GETDETAIL1。

 CLEAR COMPANY_LIST。
  清除T880。
 *权限检查:S_TABU_DIS V_T001
  执行CHECK_AUTHORITY_T880更改退货。
  检查返回是初始的。
  从T880中将单个RCOMP NAME1选择到RCOMP = COMPANYID的COMPANY_LIST中。
  如果SY-SUBRC NE 0。
  清除消息。
  MESSAGE-MSGTY ='E'。
  MESSAGE-MSGID ='FN'。
  MESSAGE-MSGNO = 030。
  MESSAGE-MSGV1 = COMPANYID。
  使用讯息进行PER_SET_RETURN_MESSAGE
  更改退货。
  IF 1 =2。"消息
  带有公司ID的消息E030(FN)。
 * Die Gesellschaft和ist nicht vorhanden
  万一。
  万一。
  检查返回是初始的。结束功能。

 

然后我使用下面的代码调用该函数,但未返回任何内容。

 REPORT Z_LOKI_TEST07。
 数据:
  companyid TYPE BAPI0014_2-COMPANY,
  li_clist TYPE BAPI0014_1,
  l_clist BAPI0014_1的类型标准表。
 companyid ='001000'。
 通话功能'BAPI_COMPANY_GETDETAIL1'
  出口
  COMPANYID =公司编号
  桌子
  COMPANY_LIST = l_clist。
 READ TABLE l_clist INTO li_clist INDEX 1。

我调试了,并且COMPANY_LIST在模块中有数据。 但是调用l_clist后的表为空。 是什么原因?有人可以帮忙吗? 谢谢。

付费偷看设置
发送
3条回答
小熊yu生菜
1楼 · 2020-08-31 09:15.采纳回答

不知道如何创建不以Z开头的FM(为什么?),但是,正如其他人所说的那样,FM中的SELECT语句未填写表格。

< p>在您已经调试了FM并确认它实际上可以找到任何数据的问题中,我没有看到它。 调用程序不会分析FM返回的任何错误消息,因此,如果调用程序不对其执行任何操作,则可能会发生任何数量的错误(例如,授权检查)。

请注意,如果这 FM只是读取一个公司代码的一条记录,然后它应该返回一个结构而不是一个表。 就像不带" 1"的BAPI一样。 将CHECK语句作为任何代码块中的最后一个命令也没有任何意义。 可能想要使用扩展检查工具。

clasier
2楼-- · 2020-08-31 08:53

有些奇怪,您的SELECT语句使用INTO而不是INTO TABLE,这意味着COMPANY_LIST被用作结构

也许您的数据 留在内部表的标题行中

大简至美
3楼-- · 2020-08-31 09:01

嗨,

我认为您必须使用由INTO插入的INTO TABLE

从T880中将单个RCOMP NAME1选择到表COMPANY_LIST中,其中RCOMP = COMPANYID。


 

一周热门 更多>