点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我有一个带有update语句的功能模块,并且我试图通过在update语句中保持断点来从2个会话执行相同的FM。
在表中更新的第一会话记录中,对于第二会话sy-subrc = 4,因为表中有相同的记录。
对于第二个会话,还应将记录添加到表中,并增加计数(我们将表中的count字段作为键字段)
实际上我以两个会话为例,实时有N个会话...
任何人都可以提供有效的解决方案吗...。我不想错过任何记录。
Ex:
表格如下:
日期
时间
计数
插入XYZ值WA_XYZ
同时(12:00:00),不同的作业正在尝试在XYZ中插入记录。 在这种情况下,有时WA_XYZ会有相同的记录,因此将插入一个记录而将一个记录拒绝。。但是我不想丢失任何记录。 因此表中只有一个字段称为serial ..
有一个叫做count的字段,当同一条记录试图插入时,它将增加。当时间变化(12:00:01)count从零开始时。
非常感谢,
Praneeth Ch。
问题在于您的主键只有日期,时间和计数列。 添加类似"进程号"的列,该列的值对于每个并行进程都将有所不同,并且您将不再受重复行的限制。
有一种方法可以保护作业运行多个
请参见程序RSBTONEJOB&RSBTONEJOB2
也许同时可以将它用作主键,例如GUID。 id,您可以使用类-CL_SYSTEM_UUID使用日期和时间来生成唯一键
您对数字范围对象有经验吗? 使用数字范围对象可以轻松避免此类问题。
您可以使用事务SNRO创建数字范围对象。 您需要做的是数字范围对象中需要的数字长度domian,例如CHAR010。 接下来,您需要定义时间间隔,然后就可以开始了。
您可以使用标准功能模块NUMBER_GET_NEXT来获取范围内的下一个数字,它始终返回唯一的数字。
嗨普兰西斯,
数字范围 SAP使用对象为诸如财务凭证,采购订单,销售订单和许多其他类型的凭证之类的凭证生成编号。
根据数字范围间隔的定义方式,您可以提及起始数字,它将提供从起始点开始的数字(如果起始点为1,则将提供数字2,3,4。 .....)
根据您对计数重置的要求,有一些标准功能模块可用于重置数字范围间隔。 例如,函数NUMBER_RANGE_INTERVAL_INIT可以用于此目的。 因此,您可以将其包含在主程序中,或开发一个单独的程序以在12:00:01(后台作业)执行,该程序可以重置数字范围间隔。
一周热门 更多>