sy-subrc 801

2020-08-19 10:16发布

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

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


我编写了一个程序,可以简单地从ftp文件中剥离时间戳。

我确定文件名,并使用'SXPG_COMMAND_EXECUTE'来调用自定义命令ZMV,该自定义命令将调用OS mv命令来重命名文件。 我已经在测试环境中对此进行了测试,但是当我进入生产环境时,该程序会运行,但会返回801,并且不会重命名文件。 Google在这一方面并不是很有帮助。 有人知道我的问题是什么吗?

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

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


我编写了一个程序,可以简单地从ftp文件中剥离时间戳。

我确定文件名,并使用'SXPG_COMMAND_EXECUTE'来调用自定义命令ZMV,该自定义命令将调用OS mv命令来重命名文件。 我已经在测试环境中对此进行了测试,但是当我进入生产环境时,该程序会运行,但会返回801,并且不会重命名文件。 Google在这一方面并不是很有帮助。 有人知道我的问题是什么吗?

付费偷看设置
发送
7条回答
梦想连接
1楼-- · 2020-08-19 10:49

Hi

什么是操作系统命令-您正在此FM中执行。

此FM-应该返回一个表(协议表)。 在调试中检查该表中的条目

调用功能'SXPG_COMMAND_EXECUTE'
 出口
 COMMANDNAME =您的命令
 OPERATINGSYSTEM =您的操作系统
 TARGETSYSTEM = SY-HOST
 STDOUT ='X'
 STDERR ='X'
 TERMINATIONWAIT ='X'
 跟踪='X'
 ADDITIONAL_PARAMETERS =您的参数
 输入
 状态=您的状态
 桌子
 EXEC_PROTOCOL = IT_CMD_OUTPUT"返回表(ur gt_log)<===检查此表
 

检查此IT_CMD_OUTPUT表并更新它说的日志。

问候

Venkat

宇峰Kouji
2楼-- · 2020-08-19 10:34

您说" sy-subrc = 801",那怎么可能? 在CALL FUNCTION ...之后,可能会通过EXCEPTIONS定义sy-subrc的可能值,并且可能未将801分配给这些异常之一(通常为1到通常不超过20)。

您说" 没有帮助",但您应该首先查看SAP注释。

sy-subrc如果您写此命令时找不到该命令,则将为2(因为在此,异常command_not_found 是将值2分配给sy-subrc):

调用函数'SXPG_COMMAND_EXECUTE'
     ...
     例外情况
         no_permission = 1
         command_not_found = 2
         ... 

解决方案:检查Venkat和Matthew的建议。

闻人可可
3楼-- · 2020-08-19 10:34

因此,事实证明,在我们的开发和测试系统中,ZMV(mv)命令是使用OPSYSTEM创建的 = UNIX

但是,在我们的Prod系统中,这是使用OPSYSTEM ='AIX'创建的。

感谢所有帮助!

土豆飞人
4楼-- · 2020-08-19 10:37

感谢您的反馈。

为以后的访客弄清情况:

  • 如果SM49中不存在用于参数OPERATINGSYSTEM的操作系统的参数COMMANDNAME中的命令,则SXPG_COMMAND_EXECUTE会引发异常COMMAND_NOT_FOUND/SM69。
  • 同时,在系统日志(SM21)中收到消息LC2"在(xpgid = 0,convid =。)上执行外部命令时出错801。"
软件心理学工程师
5楼-- · 2020-08-19 10:52

由于不清楚的信息,我不会就此问题做进一步介绍。 根据多年的经验,我的猜测是授权问题。

OP-请Basis检查目录的权限。

空代码
6楼-- · 2020-08-19 10:51

运行时得到RC = 2 通过调试器。 批量运行时,我得到了801。 上面的问题是"检查调试表中的条目是什么"-但是单步执行程序时我没有得到801。

这是我的日志:

一周热门 更多>