ZTABLE中的单圈检查有效期

2020-09-10 14:25发布

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

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


你好大师,

需要您的建议来决定最佳解决方案。

我们有一个类似下面的表格,突出显示的是"主键"字段。

现在,我们将为MATNR和VKORG的同一个键(考虑到来自非主键的有效键)组合具有多个记录。 因此,用户可以按照以下方法所示,为相同的MATNR和VKORG密钥组合添加或更改现有记录。

现在的要求是,在添加或更改记录时,其有效期不应重叠,并且对于相同记录,它们应立即获得错误。 由于用户希望将光标放置在错误的记录上,因此不会将其与TMG事件一起使用,而是坚持使用TMG模块池的PAI事件。

我想到的解决方案是,在处理特定的MATNR〜VKORG记录期间,我将在表控件中检查其他条目,以了解当前记录的有效期至或有效期是否落入其他记录的有效期内 或不。 如果是,那么我会抛出错误,说"有效期重叠"。

在这种情况下,第二条记录的有效期自-From属于第一条记录的有效期,因此将引发错误。 同样,第三条记录的有效期至第一和第二条记录的有效期均落在这两者之间,因此将引发首先遇到的错误。

因此,我也打算互相检查。 我需要一个LOOP-ENDLOOP。

此方法是否正确,或者有更好的替代方法? 请提出建议。

谢谢

四进

(4.1 kB)

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

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


你好大师,

需要您的建议来决定最佳解决方案。

我们有一个类似下面的表格,突出显示的是"主键"字段。

现在,我们将为MATNR和VKORG的同一个键(考虑到来自非主键的有效键)组合具有多个记录。 因此,用户可以按照以下方法所示,为相同的MATNR和VKORG密钥组合添加或更改现有记录。

现在的要求是,在添加或更改记录时,其有效期不应重叠,并且对于相同记录,它们应立即获得错误。 由于用户希望将光标放置在错误的记录上,因此不会将其与TMG事件一起使用,而是坚持使用TMG模块池的PAI事件。

我想到的解决方案是,在处理特定的MATNR〜VKORG记录期间,我将在表控件中检查其他条目,以了解当前记录的有效期至或有效期是否落入其他记录的有效期内 或不。 如果是,那么我会抛出错误,说"有效期重叠"。

在这种情况下,第二条记录的有效期自-From属于第一条记录的有效期,因此将引发错误。 同样,第三条记录的有效期至第一和第二条记录的有效期均落在这两者之间,因此将引发首先遇到的错误。

因此,我也打算互相检查。 我需要一个LOOP-ENDLOOP。

此方法是否正确,或者有更好的替代方法? 请提出建议。

谢谢

四进

(4.1 kB)
付费偷看设置
发送
6条回答
bbpeas
1楼 · 2020-09-10 14:42.采纳回答

大家好,

我尝试使用PAI,但是在抛出错误消息后,它总是导致内部表TOTAL []中的表记录不一致。

因此必须删除该表 想法并将编码仅移至TMG事件01,并且针对错误消息弹出中的每个错误记录,我也提供了有关键字段值的信息。

LOOP内的LOOP是必要且不可避免的,因此

谢谢,

Sijin

Cikesha
2楼-- · 2020-09-10 15:06

忘了提一下,在ween之间会有很多非关键字段,例如 数量等。

暮风yp
3楼-- · 2020-09-10 15:08

嗨钱德拉,

除了您提到的以外,我看不到其他更好的主意(考虑到有效from作为主键)。 因为需要检查每条记录以验证新期间是否与现有记录重叠。

我的建议是只有两个字段MATNR,VKORG作为主键,因此无需验证日期,因为您只能为MATNR和VKORG的一种组合维护一个记录。 另外,除了历史记录目的,我没有看到将有效自用作主键字段。

致谢

普拉萨德大师。

软件心理学工程师
4楼-- · 2020-09-10 14:52

嗨,老师,

首先感谢您的快速回复。

忘了提一下,在数量之间还会有很多非关键字段,例如数量

有效期是有原因的,不仅出于历史目的,而且出于预测目的。

我说过会有非关键字段,因此用户 想要针对MATNR〜VKORG设置诸如数量之类的非关键字段的有效期。

如果您不介意,请给我打电话给Sijin:)

谢谢,

Sijin

一只江湖小虾
5楼-- · 2020-09-10 15:05

可以在PAI中处理它,但是如果在'01'事件中处理它(保存数据之前),则无需编写SELECT查询, 将数据保存在EXTRACT表中。

空代码
6楼-- · 2020-09-10 15:07

另一种解决方案可能是删除"有效期至"列,并以这样的方式编写您的SQL和逻辑:记录在"有效期始于"日期之间的时间段内有效, 以及下一条记录的开始日期。

一周热门 更多>