检查我的理智:通过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条回答
SAP浪
1楼 · 2020-09-24 15:49.采纳回答

好吧,我花了整整一周的时间试图弄清楚问题出在哪里,最后,我和一位同事谈论了另一个话题,一分钱都掉了,我意识到即使我正在执行的程序在后台运行 (通过SM37),其Step用户是特定用户(使用用户参数表进行查询),即使该用户能够创建和更新物料,工厂,存储地点,销售组织,仓库,标价,物料 确定,它似乎总是在处理PIR时失败。 我更改了代码(这会在后台启动作业),以将我的用户名用作批处理作业步骤用户,而且,请记住,PIR的创建成功了。 我只能假定先前使用的用户名缺少一些自动检查,尽管我不知道如何查找,因为我不知道该用户的密码,我们只是使用它在后台执行。 ;)

无论如何,我的问题已解决,我现在可以在后台使用CALL TRANSACTION'ME11'了,没有任何问题。

SAP小菜
2楼-- · 2020-09-24 15:48

在前台运行BDC时,那么" Enter Pllant"消息不在lt_messtab中吗?

尝试也手动运行ME11,然后在调试器中将此消息放断点(不要填充类型(S),仅数字和ID)。

3楼-- · 2020-09-24 15:29

好吧,令人尴尬的是,我确实找到了答案 。 我一直都以自己为己任,因此一切运行正常。

在后台进行处理时,我们有一个特定的用户,而在上线时会这样做。 该用户允许我们创建新的物料/工厂/销售组织/仓库等,并列出价格和物料依存关系,但似乎不是PIR。 由于某些原因,创建PIR(通过CALL交易'ME11')对于该用户而言将无法在后台运行,但使用我的用户ID在后台运行将非常好。 真是太奇怪了,以至于用户拥有要做很多事情但没有创建PIR的授权。

无论如何,我们将找出缺少的身份验证,并将其添加到用于后台处理的用户ID中。

非常感谢那些发布尝试的人。

me_for_i
4楼-- · 2020-09-24 15:39

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

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

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

一周热门 更多>