RFC例外:系统故障

2020-08-15 20:08发布

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

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


HI

我正在使用RFC_READ_TABLE从LIPS表中获取字段。(将数据从ECC提取到CRM)

由于该错误,引发了系统故障异常,并且尚未获取data []。

请告诉我,可能引发此异常的原因是什么??

在RFC_READ_TABLE中执行此选择查询语句时出现->错误-FM

选择*从(QUERY_TABLE)到位置(选项)
如果SY-DBCNT GT ROWSKIPS。
*将所有相关字段复制到DATA(输出)表中< br>在FIELDS_INT处循环。
如果FIELDS_INT-TYPE ='P'。
将结构的分配字段FIELDS_INT-FIELDNAME
分配给
类型FIELDS_INT-TYPE
DECIMALS FIELDS_INT -DECIMALS。
ELSE。
分配结构的字段FIELDS_INT-FIELDNAME

类型FIELDS_INT-TYPE。
ENDIF。
移到< br> + FIELDS_INT-OFFSET_DST(FIELDS_INT-LENGTH_DST)。
ENDLOOP。
*在FIELDS_INT
APPEND DATA处循环结束。
如果ROWCOUNT> 0并且SY-DBCNT GE ROWCOUNT。 出口。 ENDIF。
ENDIF。
ENDSELECT。

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

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


HI

我正在使用RFC_READ_TABLE从LIPS表中获取字段。(将数据从ECC提取到CRM)

由于该错误,引发了系统故障异常,并且尚未获取data []。

请告诉我,可能引发此异常的原因是什么??

在RFC_READ_TABLE中执行此选择查询语句时出现->错误-FM

选择*从(QUERY_TABLE)到位置(选项)
如果SY-DBCNT GT ROWSKIPS。
*将所有相关字段复制到DATA(输出)表中< br>在FIELDS_INT处循环。
如果FIELDS_INT-TYPE ='P'。
将结构的分配字段FIELDS_INT-FIELDNAME
分配给
类型FIELDS_INT-TYPE
DECIMALS FIELDS_INT -DECIMALS。
ELSE。
分配结构的字段FIELDS_INT-FIELDNAME

类型FIELDS_INT-TYPE。
ENDIF。
移到< br> + FIELDS_INT-OFFSET_DST(FIELDS_INT-LENGTH_DST)。
ENDLOOP。
*在FIELDS_INT
APPEND DATA处循环结束。
如果ROWCOUNT> 0并且SY-DBCNT GE ROWCOUNT。 出口。 ENDIF。
ENDIF。
ENDSELECT。

付费偷看设置
发送
3条回答
歪着头看世界
1楼-- · 2020-08-15 20:25

请注意,使用RFC_READ_TABLE存在"已知"限制,在某些情况下您不能使用RFC_READ_TABLE(例如,数据类型,要选择的最大列)。

  • 而不是发布 抛出错误的FM RFC_READ_TABLE中的SAP编码,您可能已经在ERP系统中显示了实际的ST22转储。
  • 而且是由于where选项引起的错误,还是由于 一种无法处理的数据类型。
  • 是否可以发布导致转储的FM的OPTIONS和FIELDS值?

=>如果对于RFC_TABLE_READ的输入,尤其是查询参数OPTIONS或FIELDS在语法上是错误的,则您应该能够基于 ERP中的ST22转储,否则,请发布所有已使用的FM输入

=>

=>如果必​​须选择RFC_READ_TABLE无法处理的某些数据类型,则很可能必须编写 您自己的ERP系统中的自定义RFC FM会为您收集数据并将其公开给调用系统。

关于RFC_READ_TABLE的限制,请参阅以下SAP注释,并尝试搜索或询问后续问题:

" 功能模块RFC_READ_TABLE的用例。
 "-功能模块RFC_READ_TABLE的范围非常受限制。
 例如,由于固定的最大行大小,只能访问较小的表。
 "有些数据类型无法处理,
 对功能模块的Unicode兼容性存在疑问。
 "-目前尚不清楚如何管理外部表访问的授权。
 "-该功能明显标记为"不面向客户发布" 
haha101010
2楼-- · 2020-08-15 20:30

在显示编码时,请使用CODE函数。它使读取效果更好。

 SELECT * FROM  (QUERY_TABLE)放入位置(选项)。
如果SY-DBCNT GT ROWSKIPS。
"将所有相关字段复制到DATA(输出)表中
LOOP AT FIELDS_INT。
如果FIELDS_INT-TYPE ='P'。
将结构的分配字段FIELDS_INT-FIELDNAME
转换为
类型FIELDS_INT-TYPE
十进制字段FIELDS_INT-DECIMALS。
否则。
分配组件 结构
类型的FIELDS_INT-FIELDNAME
类型FIELDS_INT-TYPE。
ENDIF。
移动 + FIELDS_INT-OFFSET_DST(FIELDS_INT-LENGTH_DST)。 br> ENDLOOP。
"在FIELDS_INT
APPEND DATA处循环的结尾。
如果ROWCOUNT> 0并且SY-DBCNT GE ROWCOUNT。 出口。 ENDIF。
ENDIF。
ENDSELECT。
能不能别闹
3楼-- · 2020-08-15 20:30

服务器端是否有短暂转储?
我希望在那里的根本原因得到信息。 ..

一周热门 更多>