【发布时间】:2019-08-27 10:06:09
【问题描述】:
问题是我收到了来自 AMS 支持团队的票,我无法调试,因为对于选择屏幕上的给定输入参数,程序循环了 10 个小时,这就是为什么程序被设置为后台作业的原因。
该程序的重点是它应该将一些数据保存在应用服务器上的 xls 文件中。
重要的是,对于选择屏幕上的某些输入参数,程序 WORKS(更小的日期间隔,也可以使用更少的数据),但现在我必须向顾问解释为什么程序不能将那么多数据写入应用服务器上的文件。
总而言之,后台作业与正在从数据库中获取大量数据的程序相关联,在某些情况下,当数据量很大时,程序无法打开文件进行输出,因此没有数据在 xls 中。
我的问题是,OPEN DATASET 中 OUTPUT 模式的限制有多大,为什么当我在选择屏幕中有更大的间隔时会出现“错误打开文件”。
OPEN DATASET lv_file FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE
IGNORING CONVERSION ERRORS.
IF sy-subrc EQ 0. "PROGRAM FAILS HERE, SY-SUBRC eq 3
|
|
当我们从 DB 中选择较少的数据时,程序可以工作,我必须提供以下问题的答案:“为什么当我抓取大量数据时它会失败。
对话模式错误:
后台模式错误:
【问题讨论】:
-
sy-subrc = 3 非常令人惊讶,因为ABAP documentation 表示它可能只返回 0 或 8。仅在高内存使用情况下的 OPEN DATASET 错误可能认为它是相关的.无论如何,您应该同时联系 SAP 支持人员来提及这个奇怪的问题。
-
您好,
sy-msgno, sy-msgid, sy-msgty, sy-msgv1, sy-msgv2, sy-msgv3, sy-msgv4sy-msgno, sy-msgid, sy-msgty, sy-msgv1, sy-msgv2, sy-msgv3, sy-msgv4以下字段中是否提供了一些内容? -
似乎有其他语句产生了
3sy-subrc,尝试将message clause 添加到 OPEN DATASET 语句以产生更多反馈 -
在 SM51 中,双击第二个应用服务器,这将打开一个连接到该服务器的新用户会话,并以对话模式与小数据集运行您的程序,以确保 SAP 可以编写也到该服务器中的文件夹(两台服务器通常都定义了一个到共享文件夹的软链接)。请注意,您还可以通过显示作业的详细信息(事务代码 SM37)来查看作业在哪个应用程序服务器中执行。
-
@SandraRossi 我检查了您的建议,正确完成的作业指向一台服务器,而错误完成的作业指向另一台我无权打开该服务器的服务器al11 中的文件夹。我告诉我的顾问与客户基础团队核实是否授予该文件夹的授权,因此我正在等待他们的回复。
标签: abap