SP TN上的查询帮助-在不满足预定义条件时阻止

2020-09-27 15:05发布

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

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


嗨,

我需要有关TN SP的帮助,要求如下:

1)我已经在商品主数据中创建了一个UDF,其值为" YES"/" NO"
2)有两个唯一的商品,分别名为" NOTE"和" Battery"。3)创建SO时, UDF值为YES的项目应以相同的顺序但名称不同的行后跟名为" NOTE"或" Battery"的项目,否则将被阻止

示例如下:

UDF值为" YES"的项目= ITEM001,ITEM002,ITEM003
UDF值为" NO"的项目= ITEM004,ITEM005,ITEM006

条件一:
SO#001
行1:ITEM001
行2:注意
结果:已通过

条件二:
SO#002
行1:ITEM001
行2:电池
结果:已通过

条件三:
SO#003
第1行:ITEM001
第2行:电池/注意
第3行:ITEM005
结果:通过

第4条:
SO#004
第1行:ITEM004
第2行:ITEM006
结果:已通过

条件五:
SO#005
第1行:ITEM004
第2行:ITEM001
结果:阻止

我的查询如下,但不符合我的要求 要求

如果@object_type ='17'并且@transaction_type in('A','U')

开始

如果存在

(从RDR1中选择T0.ItemCode T0内连接ORDR T1上T0.DocEntry = T1.DocEntry内连接OITM T2上T0.ItemCode = T2.ItemCode

其中T0.ItemCode!='注意'或T0.ItemCode!='电池'和T2.U_BATTERY ='是'并且T0.DocEntry=@list_of_cols_val_tab_del)

开始

SET @error = 999

SET @error_message ='001'

END

END

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

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


嗨,

我需要有关TN SP的帮助,要求如下:

1)我已经在商品主数据中创建了一个UDF,其值为" YES"/" NO"
2)有两个唯一的商品,分别名为" NOTE"和" Battery"。3)创建SO时, UDF值为YES的项目应以相同的顺序但名称不同的行后跟名为" NOTE"或" Battery"的项目,否则将被阻止

示例如下:

UDF值为" YES"的项目= ITEM001,ITEM002,ITEM003
UDF值为" NO"的项目= ITEM004,ITEM005,ITEM006

条件一:
SO#001
行1:ITEM001
行2:注意
结果:已通过

条件二:
SO#002
行1:ITEM001
行2:电池
结果:已通过

条件三:
SO#003
第1行:ITEM001
第2行:电池/注意
第3行:ITEM005
结果:通过

第4条:
SO#004
第1行:ITEM004
第2行:ITEM006
结果:已通过

条件五:
SO#005
第1行:ITEM004
第2行:ITEM001
结果:阻止

我的查询如下,但不符合我的要求 要求

如果@object_type ='17'并且@transaction_type in('A','U')

开始

如果存在

(从RDR1中选择T0.ItemCode T0内连接ORDR T1上T0.DocEntry = T1.DocEntry内连接OITM T2上T0.ItemCode = T2.ItemCode

其中T0.ItemCode!='注意'或T0.ItemCode!='电池'和T2.U_BATTERY ='是'并且T0.DocEntry=@list_of_cols_val_tab_del)

开始

SET @error = 999

SET @error_message ='001'

END

END

付费偷看设置
发送
9条回答
打个大熊猫
1楼 · 2020-09-27 15:54.采纳回答

嗨,奥尔加,

我创建了一个像您这样的环境,并且测试了您提到的所有方案,并且此查询运行正常。

 IF @object_type ='17'和@  transaction_type in('A','U')
 开始
 -首先检查您的udf是否有某些项目等于
 如果(从RDR1 T0内联接OITM T1上的SELECT COUNT(*)T0.ItemCode = T1.ItemCode
 T0.DocEntry = @list_of_cols_val_tab_del AND T1.U_BATTERY ='YES')> 0
 开始
 -然后检查您是否有笔记或电池
 如果(从RDR1 T0选择COUNT(*)
 T0.DocEntry = @list_of_cols_val_tab_del和UPPER(T0.ItemCode)='NOTE'或UPPER(T0.ItemCode)='BATTERY')= 0
 开始
 SET @错误= 999
 SET @error_message ='001'
 结束
 结束
 结束
 

希望对您有所帮助。

亲切的问候

迭戈·拉瑟

绿领巾童鞋
2楼-- · 2020-09-27 15:49
compass1988
3楼-- · 2020-09-27 15:53

嗨,奥尔加,

尝试如下操作:

 IF @object_type ='17'和@transaction_type in('A  ','U')
 开始
 -首先检查您的udf是否有某些项目等于
 如果(从RDR1 T0内联接OITM T1上的SELECT COUNT(*)T0.ItemCode = T1.ItemCode
 T0.DocEntry = @list_of_cols_val_tab_del AND T2.U_BATTERY ='YES')> 0
 开始
 -然后检查您是否有笔记或电池
 如果(从RDR1 T0选择COUNT(*)
 T0.DocEntry = @list_of_cols_val_tab_del AND T0.ItemCode ='注意'或T0.ItemCode ='BATTERY')= 0
 开始
 SET @错误= 999
 SET @error_message ='001'
 结束
 结束
 结束
 

希望对您有所帮助。

亲切的问候

迭戈·拉瑟

shere_lin
4楼-- · 2020-09-27 16:02
黑丝骑士
5楼-- · 2020-09-27 15:48

您好,迭戈,

谢谢您的回复。
我已经对该查询进行了测试,当显示"是" +电池的项目时,它将被阻止 。
如果带有"是" +注意项的项目会通过?

可以帮助找出原因吗?

谢谢

昵称总是被占用
6楼-- · 2020-09-27 15:48

嗨迭戈,

你能帮忙吗?

谢谢

SKY徐
7楼-- · 2020-09-27 16:07

Hi Diego,

请参阅要求的图像下方。

无论如何,由于没有T2,我已经将T2.U_BATTERY上的代码修改为T1.U_BATTERY

通过新查询,我发现即使没有NOTE或BATTERY,也可以直接用TEST-PN01装箱,您可以确认吗?

谢谢

一周热门 更多>