检查我的理智:通过CALL TRANSACTION'ME11'创建一个PIR。

2020-09-24 14:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)伙计们,我已经待了好几天了,试图...

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

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


伙计们,我已经待了好几天了,试图使本质上在前台工作的东西也可以在后台工作。 我有一个录音(BDC),在使用CALL TRANSACTION'ME11',MODE'P',INPUT'S'的情况下可以在前台正常工作。

我已经通过事务SHDB重新记录了BDC,请注意我选择了哪些选项,因此确定我将"同步"使用它,而不是在CATT模式下使用。 还单击/选中了"模拟背景模式",并创建了录音,同时单击了"非批输入会话"并将其留空,但是在特定情况下,这些录音看起来是相同的。 无论如何,我使用了该记录,并对其进行了调试并检查了BDC,以确保所有值都已填充在BDC结构/表中。 然后,我调用该语句:

呼叫交易'ME11'
             使用lt_bdcdata
             来自gv_options的选项
             消息输入lt_messtab。

 

gv_messages看起来像这样:

 gv_options-DISMODE ='P'。
   gv_options-UPDMODE ='S'。
   gv_options-CATTMODE =''。
   gv_options-DEFSIZE ='X'。
   gv_options-RACOMMIT =''。
   gv_options-NOBINPT ='X'。
   gv_options-NOBIEND =''。
 

但是我也尝试过使用这些设置:

 gv_options-DISMODE ='P'。
   gv_options-UPDMODE ='S'。
   gv_options-CATTMODE =''。
   gv_options-DEFSIZE =''。
   gv_options-RACOMMIT =''。
   gv_options-NOBINPT =''。
   gv_options-NOBIEND =''。
 

我也尝试过使用DISMODE的'N'和'A',但无济于事。

无论我尝试什么,我总是在(lt_messtab)消息表中获得相同的条目,并且总是有一条消息类型为'S'的单记录,是的,成功!即使不是因为PIR 不存在。 消息ID为" 06",消息号为" 381"。 如果您在SE91中查询该消息,则会看到"输入工厂"消息,这是一个很大的红色鲱鱼,因为我们没有输入工厂编号,或者需要一个,因为PIR针对供应商/物料/是通用的 采购组织。 如果我从lt_bdcdata表中获取数据并通过ME11手动输入,那么它可以正常工作,因此数据还可以,特别是因为相同的数据可以成功地在前台工作,而在后台也可以。

如果我稍稍更改代码,以便将数据写入SM35(OPEN JOB等),即使通过SM35在后台处理,它也可以正常工作。 哎呀。 我只是无法通过CALL TRANSACTION命令使它正常工作。 我只是不知道为什么。

我不认为gv_options结构中的CATTMODE会有所作为,是吗?

此刻我还在尝试另一个选项,那就是生成一个新的录音(通过SHDB),一旦完成,单击该选项即可生成一个程序。 值得将其产生的代码与我的代码进行比较。

更新:上面的bu SHDB只是尝试过,似乎只使用OPEN/CLOSE JOB创建SM35会话,它没有使用CALL TRANSACTION。 h!

4条回答
me_for_i
2020-09-24 15:39

我相信我已经有了答案。 我以我自己的身份在前台运行,但是在后台执行时,我们使用了特定的用户ID,该ID可以创建/更新所有物料数据,创建清单过程和物料确定,但无法正确处理PIR。 最后,我更改了代码,以便在后台执行并完成所有工作(包括创建PIR)时使用我的用户ID。

在后台处理时,我们正在使用的USER ID明显缺少授权。

尽管要回答您的问题,PIR的创建始终在前台进行,但是随后使用我的用户ID执行了该程序。 使用我的用户ID在后台运行,并使用相同的BDC记录也可以。 它将无法与我们为后台处理分配的用户ID一起使用。

一周热门 更多>