如果特定物料组的物料已经存在采购订单,如何阻止添加采购订单

2020-09-11 02:02发布

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

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


专家们,

我的用户要求,如果具有相同项目组(或资本项目)的一个项目存在采购订单,那么系统不应允许他们向具有资本项目组的同一项目添加采购订单。

我在SP_NT中尝试了以下代码,但它不起作用

IF(((N'A')中的@transaction_type)AND @Object_type ='22')

开始

声明@OpenCall int;

set @OpenCal l =(从T0.DocEntry = T1.DocEntry WHERE上的OPOR T0内部联接POR1 T1中选择不同的计数(T1.DocEntry)(从OITM中选择ItmsGrpCod,其中OITM.ItemCode = T1.ItemCode) = 127和T1.ItemCode=@list_of_cols_val_tab_del)

IF(@OpenCall> 1)

SELECT @error = 11,@ error_message ='该项目已存在PO'

结束

预先感谢...

此致

Sapna

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

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


专家们,

我的用户要求,如果具有相同项目组(或资本项目)的一个项目存在采购订单,那么系统不应允许他们向具有资本项目组的同一项目添加采购订单。

我在SP_NT中尝试了以下代码,但它不起作用

IF(((N'A')中的@transaction_type)AND @Object_type ='22')

开始

声明@OpenCall int;

set @OpenCal l =(从T0.DocEntry = T1.DocEntry WHERE上的OPOR T0内部联接POR1 T1中选择不同的计数(T1.DocEntry)(从OITM中选择ItmsGrpCod,其中OITM.ItemCode = T1.ItemCode) = 127和T1.ItemCode=@list_of_cols_val_tab_del)

IF(@OpenCall> 1)

SELECT @error = 11,@ error_message ='该项目已存在PO'

结束

预先感谢...

此致

Sapna

付费偷看设置
发送
2条回答
hongfeng1314
1楼 · 2020-09-11 02:29.采纳回答

嗨,

尝试以下操作

PO阻止:

如果@transaction_type IN('A','U')AND @ object_type = N'  22'
     开始
         如果存在(选择计数(T3.DocEntry)
                    来自dbo.OPOR T0
                         内联接dbo.POR1 T1 ON T0.DocEntry = T1.DocEntry
                         内联接dbo.OITM T2 ON T2.ItemCode = T1.ItemCode
 内联接dbo.POR1 T3 ON T3.ItemCode = T1.ItemCode
 内联接dbo.OPOR T4在T3.DocEntry = T4.DocEntry
                    T2.ItmsGrpCod ='127'并且T0.DocEntry=@list_of_cols_val_tab_del和T4.DocStatus ='O')
         开始
             SELECT @ error = 11,@ error_message =该项目已经存在'PO';
         结束;
     结束;
 

服务调用阻止:

 IF @transaction_type IN('A')AND @ object_type = N'191'
     开始
         宣告@SCBPCode NVARCHAR(15);
         宣告@SCSubject NVARCHAR(254);
         SET @ SCSubject =(选择顶部(1)主题
                         来自dbo.OSCL
                         在哪里callID = @ list_of_cols_val_tab_del
                         ORDER BY callID);
         SET @ SCBPCode =(选择顶部(1)客户
                        来自dbo.OSCL
                        在哪里callID = @ list_of_cols_val_tab_del
                        ORDER BY callID);
         如果存在(SELECT COUNT(T0.callID)
                    从dbo.OSCL T0
                    T0。[客户] = @ SCBPCode和T0.status <>(-1)和T0.subject=@SCSubject)
         开始
             SELECT @ error = 2,@ error_message = N'服务呼叫已向客户开放';
         结束;
     结束;
 

问候,

巴拉

骆驼绵羊
2楼-- · 2020-09-11 02:23

嗨巴拉,

非常感谢...您的查询工作正常..我在键入时出错了,所以我无法得到结果....但是现在我更正了,它可以工作...再次感谢您。

一周热门 更多>