使用 COGI 运行后台作业而不更改屏幕
Posted
技术标签:
【中文标题】使用 COGI 运行后台作业而不更改屏幕【英文标题】:Run background JOB with COGI without changing the screens 【发布时间】:2021-06-06 16:12:53 【问题描述】:我正在尝试在 COGI 上运行后台作业,以便它填充选择屏幕并按 ctrl+shift+f12 来更改文档批次。
在 nobinpt 参数打开和标准大小参数打开的情况下执行 SHDB 事务。录制后我使用这些参数创建了以下代码:
options-nobinpt = abap_true.
options-updmode = 'A'.
options-dismode = 'N'.
options-racommit = abap_true.
options-defsize = abap_true.
CALL TRANSACTION 'COGI' USING it_bdcdata
OPTIONS FROM options
MESSAGES INTO it_msg.
它可以完美地在前台工作,即使使用“N” - 后台处理参数也可以工作,/ 但是当我尝试将程序作为作业运行时它不起作用,甚至认为它没有显示任何错误消息。
当我尝试运行 SHDB 模拟背景时,它会在选择后显示不同的屏幕,这不允许对文档进行任何更改。
有人有解决这个问题的方法吗?有没有办法在批处理期间将屏幕设置为与前台执行相同?
谢谢
【问题讨论】:
it shows a different screen after selection, which doesn't allow any changes to the document
所以试着理解这个屏幕的含义以及如何省略。很可能它会阻止后台处理
@Suncatcher,是的,这个屏幕是阻止后台处理的屏幕。
使用批量输入指令进行自动化非常容易出错且脆弱。我建议不要这样做。您是否尝试找到可以做您想做的事情的 BAPI,或者至少是一个常规功能模块?
@Philipp,是的,我们试图为它找到一个模块,但没有,COGI 非常陈旧,维护得很差,但在这一刻对公司来说是必不可少的。因为处理这个事务非常棒,涉及到很多我们选择批量输入的表,因为它使用标准程序。
【参考方案1】:
CALL TRANSACTION 只能用于运行对话事务。 COGI 是一个报告事务,即它调用报告 CORUAFFW 的选择屏幕 1000: COGI definition
因此,您应该使用SUBMIT 语句来调用报告 CORUAFFW,而不是 CALL TRANSACTION。
【讨论】:
以上是关于使用 COGI 运行后台作业而不更改屏幕的主要内容,如果未能解决你的问题,请参考以下文章