ABAP是否允许写入stdout和stderr?我需要编写小程序来测试通过作业调度程序(Cronacle)与SAP系统的接口连接。例如,开始/写'Hello World!' +日期+ stdout /退出的时间。我是一名.net程序员,负责这个看似TRIVIAL的程序而且我被卡住了。
答案 0 :(得分:1)
Appliaction Log(事务SLG0,SLG1)表BAL *,非常适合跟踪......它非常有趣,因为即使对于后台任务,不同的用户帐户,对用户不可见以及擦除也很好可以在创建旧跟踪条目时对其进行定义。我不再需要调试,这是天堂。
答案 1 :(得分:1)
我假设您在具有ABAP堆栈的基于UNIX / Linux的系统上运行SAP。 SAP试图抽象尽可能多的底层操作系统。这种技术可以在Windows上进行一些微小的修改。
要与OS进行交互,请查看SM49“外部OS命令”,您可以在此处设置命令来运行cat并将要写入的值传递给控制台。
我认为你最好把你的消息写到主机系统上的文件中。要做到这一点;
OPEN DATASET i_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
然后使用;
将数据写入文件TRANSFER wa_text TO i_file.
然后当你完成时不要忘记
CLOSE DATASET i_file.
然后,您可以在AL11中查看该文件的内容,或直接从主机上取出。如果要在unix主机上打印时看到消息。使用控制台连接并使用更少的+ F / var / log /或tail。在Windows上,我确信有一个相同的替代品。
答案 2 :(得分:1)
有几种选择来编写“调试信息”,就像你要问的那样。此前答案中提到的两种可能性是应用程序日志(SLG1和SBAL *功能模块)以及写入文件。
但是,对于您的情况,您提到在后台运行程序。在这种情况下,最好的办法是简单地使用MESSAGE发出消息(您可以通过检查SY-BATCH的值来限制消息发送到后台处理。)
当您转到SM37时,在后台运行的程序发出的消息在作业日志中可见。
答案 3 :(得分:0)