计划的程序在backgroung可以正常运行,但在前景不佳

2020-09-22 16:49发布

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

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


我有一个报告程序,该程序使用开放数据集语法从程序中指定的文件夹路径(如上载文件夹)中读取文件,然后它将对其进行处理并将文件移动到其他位置。

报告程序在前台也可以正常工作,它在后台也可以工作,但是在后台处理过程中上传文件夹中的文件很少。

我已经使用JDBG调试了后台作业,它在后台的调试模式下工作正常。

请帮助。

纳马杰夫。

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

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


我有一个报告程序,该程序使用开放数据集语法从程序中指定的文件夹路径(如上载文件夹)中读取文件,然后它将对其进行处理并将文件移动到其他位置。

报告程序在前台也可以正常工作,它在后台也可以工作,但是在后台处理过程中上传文件夹中的文件很少。

我已经使用JDBG调试了后台作业,它在后台的调试模式下工作正常。

请帮助。

纳马杰夫。

付费偷看设置
发送
5条回答
wang628962
1楼-- · 2020-09-22 17:28

如果您有多个应用程序服务器(SM51),则该文件夹可能未"映射"到一个应用程序服务器中。 您可以通过登录到每个服务器(在SM51中双击服务器)进行验证,然后在前台运行该程序。

如果是原因,那么请管理员将文件夹完全映射到所有应用程序服务器上。

PS:在后台,默认情况下,调度程序选择"随机"任何服务器以运行该程序。

绿领巾童鞋
2楼-- · 2020-09-22 17:37

" PS:在后台,默认情况下,调度程序选择"随机"任何服务器来运行该程序。 前台,程序将在您登录的服务器上运行。"

这是像您这样的专家提供的信息,这使我陷入了SCN。

感谢分享您的专业知识。

K.Kiran。

My梦
3楼-- · 2020-09-22 17:34

嗨Namadev,

在下面创建FM并实现ABAP代码并进行测试。

*局部变量

数据:lv_buffer TYPE int4,

lv_buflen TYPE i。

*开放源文件并开始复制

在BINARY模式下输入OPEN DATASET iv_file_path_s。

IF sy-subrc NE 0。

*例外

RAISE ex_open_file_source。

ENDIF。

*打开目标文件并开始写入

OPEN DATASET iv_file_path_t用于二进制模式下的输出。

IF sy-subrc NE 0。

*例外

RAISE ex_open_file_target。

ENDIF。

*读取和传输

做。

清除:lv_buffer。

*读取数据集

读取数据集iv_file_path_s INTO lv_buffer长度lv_buflen。

CASE sy-subrc。

何时0。

*传输源文件

将lv_buffer传输到iv_file_path_t长度lv_buflen。

IF sy-subrc NE 0。

*例外

RAISE ex_write_block_target。

ENDIF。

何时4。

*文件结尾

退出。

别人的时候。

*例外

RAISE ex_read_block_source。

结束。

ENDDO。

*关闭DataSet源文件

关闭数据集iv_file_path_s。

IF sy-subrc NE 0。

*例外

RAISE ex_close_file_source。

ENDIF。

*关闭数据集目标文件

关闭数据集iv_file_path_t。

IF sy-subrc NE 0。

*例外

RAISE ex_close_file_target。

ENDIF。

*删除DataSet文件源

删除数据集iv_file_path_s。

IF sy-subrc NE 0。

*例外

RAISE ex_delete_dile_source。

ENDIF。

此致

樱桃小丸子0093
4楼-- · 2020-09-22 17:32

嗨桑托斯,

我使用的逻辑与您解释的相同。

半个程序猿
5楼-- · 2020-09-22 17:38
这可能是代码错误,为此我附加了在两种模式下均能正常工作的功能,但是请检查与SAP配合使用的用户 正在运行的服务具有对该文件夹的权限,因为有时您对此文件夹没有权限并且无法读取或写入,因此当您在线执行该文件夹时,该权限是从经过身份验证的用户那里获得的,而该文件夹是服务器的用户。
 
 

*&--------------------------------------------- ------------------------ *
表格F_ENVIA_ARCHIVO_ERROR表格T_DATA_TAB结构E_DATA_TAB
使用P_FILENAME类似于RLGRAP-FILENAME。

清除V_FILENAME。

如果不是首字母缩写。

*** Abre Archivo
在文本模式下以非UNICODE编码的输出打开数据集P_FILENAME。
如果sy- subrc NE0。
IF sy-batch均衡空间。
带有P_FILENAME的MESSAGE I324(bf00)。
ELSE。
带有P_FILENAME的M324消息S324(bf00)。
ENDIF。
ENDIF 。

***将Archivo para servidor
转移到T_DATA_TAB。
将T_DATA_TAB转移到P_FILENAME。
ENDLOOP。

*** Cerra Archivo
关闭数据集 P_FILENAME。

ELSE。

将P_FILENAME移到V_FILENAME。

调用功能'GUI_DOWNLOAD'
导出
FILENAME = V_FILENAME
表格
DATA_TAB = T_DATA_TAB
例外情况
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKN OWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12 DP_ERROR 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22。

IF SY-SUBRC <> 0.
带有V_FILENAME的消息I020。
ENDIF。

ENDIF。

ENDFORM。

一周热门 更多>