无法使用BAdI ME_PROCESS_PO_CUST在PO中添加合作伙伴功能

2020-09-15 03:46发布

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

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


你好

我想根据某些情况在PO的合作伙伴标签中添加合作伙伴功能CR。 在创建PO(即T代码ME21N)期间需要此操作。

我实现了BAdI ME_PROCESS_PO_CUST,并在方法PROCESS_HEADER中编写了代码。 我使用FM MM_READ_PARTNERS从缓冲区中获取伙伴,并使用FM MM_MAINTAIN_PARTNERS添加了伙伴函数。

执行此BAdI后,我可以在"合作伙伴"选项卡中看到我的合作伙伴功能,但该功能不被接受。 如下所示:


当我保存它时,伙伴功能消失了,并且没有保存在采购订单中。

我已经浏览了许多有关此主题的SCN博客,并尝试了不同的方法,但未能实现目标。 请让我知道我是否想念任何东西。

谢谢

单位

(21.9 kB)

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

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


你好

我想根据某些情况在PO的合作伙伴标签中添加合作伙伴功能CR。 在创建PO(即T代码ME21N)期间需要此操作。

我实现了BAdI ME_PROCESS_PO_CUST,并在方法PROCESS_HEADER中编写了代码。 我使用FM MM_READ_PARTNERS从缓冲区中获取伙伴,并使用FM MM_MAINTAIN_PARTNERS添加了伙伴函数。

执行此BAdI后,我可以在"合作伙伴"选项卡中看到我的合作伙伴功能,但该功能不被接受。 如下所示:


当我保存它时,伙伴功能消失了,并且没有保存在采购订单中。

我已经浏览了许多有关此主题的SCN博客,并尝试了不同的方法,但未能实现目标。 请让我知道我是否想念任何东西。

谢谢

单位

(21.9 kB)
付费偷看设置
发送
7条回答
哎,真难
1楼 · 2020-09-15 04:48.采纳回答

我自己解决了。

即使伙伴函数是CR,我也必须在代码中将SP传递给parvw。 我不知道为什么,但这为我解决了!

落灬小鱼
2楼-- · 2020-09-15 04:48

您是对的,TPAUM是,我不在系统上,请在接下来的3周内对它说再见 几个小时前。

Cikesha
3楼-- · 2020-09-15 04:27

我假设您想要BAdI,因为您仅根据特定条件希望该合作伙伴。

但是问题是:您是否可以在ME21N中像这样分配合作伙伴角色和合作伙伴编号,而无需BAdI限制呢?

如果没有,那么肯定是您的合作伙伴确定定制不完整。

如果是,则可能是您将伙伴编号移到了错误的字段中。 Dynpro只有1个字段,而后面的主数据表有3个不同的字段。

不幸的是,我们不知道CR的角色是什么,在定制中它是如何定义的,以及它是供应商,个人还是联系人,什么是854。

Alawn_Xu
4楼-- · 2020-09-15 04:44

是 ,我确实有允许CR的自定义功能,就像我手动添加它一样。

愤怒的猪头君
5楼-- · 2020-09-15 04:42

嗨,Punit

我也有相同的要求,但应该来自PR,即来自ME59N。 我添加了正确的合作伙伴功能和供应商编号。 但是我无法获得理想的结果。 未添加合作伙伴功能。 您能否请粘贴代码

致谢

Shekhar

野沐沐
6楼-- · 2020-09-15 04:49

嗨,Mahesh,

您的代码似乎很完美,但是有一些称为伙伴功能的语言转换。

因此,如果您在表TPAUM中签到,您将找到伙伴功能WL的语言特定(EN)伙伴功能。 应该是GS。 在代码中传递GS而不是WL并尝试。 它应该起作用,至少对我有用。

谢谢

Punit

风早神人
7楼-- · 2020-09-15 04:29

大家好,

下面是我编写的代码。 如果有的话,请问您能帮忙找些

刷新gt_ekpa []。

呼叫功能'MM_READ_PARTNERS'
导出
应用程序='P'
表格
X_EKPA = gt_ekpa。

从t161中选择单个pargr

到lv_pargr
在哪里bsart EQ ls_header-bsart
和bstyp EQ ls_header-bstyp。

请检查lv_pargr是否为INITIAL。


刷新gt_mmpa []。
在gt_ekpa中循环gs_ekpa 。

清除gs_mmpa。

将gs_ekpa移动到gs_mmpa。
追加gs_mmpa到gt_mmpa。
endloop。

如果不是gt_ekpa是初始的。 >清除gs_mmpa1。
将表gt_mmpa读入gs_mmpa1,键为parvw ='WL'
lifn2 ='ABCD0004'。
如果sy-subrc <> 0.
gs_mmpa-parvw ='WL'。
gs_mmpa-lifn2 ='ABCD0004'。
将gs_mmpa附加到gt_mmpa。
endif。

endif。

如果不是gt_mmpa是初始的。
CALL FUNCTION' MM_MAINTAIN_PARTNERS'
导出
应用程序='P'
EBELN = ls_header-ebeln
BSTYP = ls_header-bstyp
EKORG = ls_header-ekorg
LIFNR = ls_header-lifnr
pargr = lv_pargr
* SCREEN_INVISIBLE ='X'
TABLES
X_MMPA = gt_mmpa。

endif。
endif。

致谢

Shekhar

一周热门 更多>