如果所选项目与项目设置中的项目不同,则冻结销售订单

2020-09-03 16:45发布

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

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


我需要有关"交易通知"限制的帮助:

说明::当用户从销售订单中选择一个项目给所选客户时,如果该项目未在项目设置屏幕中定义并链接到客户,则不允许该用户添加项目 (UDF字段),当在项目屏幕中定义项目并将其链接到该客户时,将允许添加销售订单。

项目屏幕" OPRJ"的结构:


销售订单屏幕的结构:

Balakumar Viswanathan 您能协助我进行此限制吗,非常感谢。

(36.0 kB)

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

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


我需要有关"交易通知"限制的帮助:

说明::当用户从销售订单中选择一个项目给所选客户时,如果该项目未在项目设置屏幕中定义并链接到客户,则不允许该用户添加项目 (UDF字段),当在项目屏幕中定义项目并将其链接到该客户时,将允许添加销售订单。

项目屏幕" OPRJ"的结构:


销售订单屏幕的结构:

Balakumar Viswanathan 您能协助我进行此限制吗,非常感谢。

(36.0 kB)
付费偷看设置
发送
7条回答
Climb_Ma
1楼-- · 2020-09-03 17:12

Balakumar Viswanathan Rahul Jain

我实施但未正常运行且需要检查的交易通知:

----如果BP销售订单项目不同于OPRJ项目
如果:object_type = '17'和(:transaction_type ='A'或:transaction_type ='U')
然后
从" ORDR"中选择计数(*)到cnt26中,其中
" ORDR"。中的" CardCode"(从" OPRJ"中选择不同的" OPRJ"。" U_Customer")和
" ORDR" "。"项目"不在(选择不同的" OPRJ"。" OPRJ"中的" PrjCode"在" ORDR"上的左外连接" ORDR"。" Project" =" OPRJ"。" PrjCode"
其中" ORDR" 。" CardCode" =" OPRJ"。" U_Customer")

(" ORDR"。" DocEntry" =:list_of_cols_val_tab_del);
如果:cnt26> 0则
错误:=-60015 ;
error_message:='选择正确的项目';
结束;;

微wx笑
2楼-- · 2020-09-03 17:11

尝试一下

如果:object_type = '17'和(:transaction_type ='A'或:transaction_type ='U')

然后
从" ORDR"中选择计数(*)到cnt26中,其中
" ORDR"。"项目"不在 (从" OPRJ"
中选择不同的" OPRJ"。" PrjCode",其中" ORDR"。" CardCode" =" OPRJ"。" U_Customer")和
(" ORDR"。" DocEntry" = :list_of_cols_val_tab_del);
如果:cnt26> 0则
e rror:=-60015;
error_message:='选择正确的项目';
结束,如果;

小c菟菟
3楼-- · 2020-09-03 17:10

亲爱的阿卜杜勒·曼南(abdul Mannan) Balakumar Viswanathan Sergei Travkin Rahul Jain

此查询中有一个空白,我需要对此进行修改。

有两个项目分别称为"零售"和"批发",如果客户拥有项目并在项目屏幕中定义,则限制将起作用,并且不允许他添加销售订单。

并且,如果未在项目屏幕中定义客户,并且在业务伙伴中,主数据已链接到项目"零售"或"批发",则必须允许他添加销售订单。

回顾:

情况1:如果在项目屏幕中定义了客户并将其链接到一个或多个项目,则不得添加订单。

案例2:如果客户没有在项目屏幕中定义,并且在业务伙伴主数据中为他分配了"零售"或"批发"项目,则应该添加订单。

感谢您的帮助。

暮风yp
4楼-- · 2020-09-03 17:03

如果:object_type = '17'和(:transaction_type ='A'或:transaction_type ='U')

然后
从OCRD上的" ORDR"内部联接OCRD中选择count(*)进入cnt26。" CardCode" = ORDR。" CardCode"
where
(" ORDR"。" Project"不存在(选择 与" OPRJ"不同的" OPRJ"。" PrjCode",其中" ORDR"。" CardCode" =" OPRJ"。" U_Customer")和OCRD。"项目"不在("零售","批发")< br> and
(" ORDR"。" DocEntry" =:list_of_cols_val_tab_del);
如果:cnt26> 0,则
error:=-60015;
error_message:='选择正确的项目';
end if;

me_for_i
5楼-- · 2020-09-03 16:53

亲爱的 Abdul Mannan

如果:object_type = '17'和(:transaction_type ='A'或:transaction_type ='U')
 然后
 从" OCRD"上的" ORDR" INNER JOIN" OCRD"到cnt26中选择count(*)。" CardCode" =" ORDR"。" CardCode"
 哪里
 (" ORDR"。"项目"不在(从" OPRJ"中选择不同的" OPRJ"。" PrjCode"
 其中" ORDR"。" CardCode" =" OPRJ"。" U_Customer"))和(" OCRD"。" ProjectCod"不在('Retail','WholeSale'))
 和(" ORDR"。" DocEntry" =:list_of_cols_val_tab_del);
 如果:cnt26> 0然后
 错误:=-60015;
 error_message:='选择正确的项目';
 万一;
 万一;
 

我粘贴了您的代码并对其进行了测试,基于此查询,问题和方案未得到满足,以下情况将清除我的需求:

案例1:用户应该能够仅在与其链接的项目上创建销售订单,因此我在销售订单中选择的任何项目都已与该客户链接。 项目设置,它将允许添加。 而且,如果我选择了其他未与该客户链接的项目,则不得添加该项目,


情况2:如果客户在项目设置中没有链接到任何项目且在业务伙伴主数据中已链接,则用户应该能够创建销售订单 案例3:如果客户没有链接到任何东西,并且在BP主数据中没有定义任何BP项目的零售或批发,那么到仅零售或批发BP项目。 一定不允许添加它。

感谢您的帮助。


大简至美
6楼-- · 2020-09-03 16:56

亲爱的阿卜杜勒·曼南 Balakumar Viswanathan 能否为您提供上述帮助,非常感谢。

一周热门 更多>