EHP4和EHP7的末尾行为不同

2020-09-05 16:10发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我们最近将系统从EHP4...

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

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


你好

我们最近将系统从EHP4升级到EHP7。 我们有如下一段代码,该代码在EHP4中可以正常工作,但在EHP7中的行为却有所不同。 ITAB1在所有行的字段COL10,COL11和COL12中都有值。 在EHP4中,SUM语句将COL10,COL11和COL12中的值相加(根据" AT END OF"文档),并填充到ITAB2中。 但是在EHP7中,ITAB2中的COL10列已填充为0。 像在EHP4中一样,在COL11和COL12列中填充总和值。

我附上了表ZZTAB1的屏幕快照,从中键入了ITAB1和ITAB2。 GP1和GP2被命名为包括。

EHP4和EHP7的AT END OF语句之间是否有区别? 请告知。

 按GP1 GP2排序itab1。
 在itab1处循环进入wa1。
  在GP2末尾。
   和。
   将wa1附加到itab2。
  Endat。
 结束循环。

(50.3 kB)
7条回答
CPLASF-自律
2020-09-05 16:18

使用别名(GP1,GP2)非常少见,也许是AT END出现了一个错误。

您应该在SAP支持部门开票。 您需要提供一个SAP示例来重现(带有示例数据或访问系统的最少代码)。

如果这只是程序中的错误,如果您希望我们进行调查,请提供可重现的示例 代码和一些示例数据。 例如:

 TYPES:BEGIN OF zzstruc1," GP1
          col1 TYPE C LENGTH 10,
          col2 TYPE f,
          col3 TYPE f,
        zzstruc1的结尾,
        zzstruc2的开头," GP2
          col6 TYPE C LENGTH 10,
          col7 TYPE C LENGTH 3,
          col8 TYPE C长度5
          col9 TYPE C LENGTH 1,
        zzstruc2的结尾,
        zzstruc3," GP3的开始
          col10 TYPE p LENGTH 13小数,8,
          col11 TYPE p LENGTH 13小数8,
          col12 TYPE p LENGTH 13小数,8,
        zzstruc3的结尾。
 类型:
   zztab1的开始,
     类型3长度的mandt,
     objnr类型n长度10。
     包括类型zzstruc1 AS gp1。
     包括类型zzstruc2 AS gp2。
     包括类型zzstruc3 AS gp3。
 类型:
 zztab1的结尾,
 zztab1_s带有空密钥的zztab1的标准类型表。
 DATA(itab1)= VALUE zztab1_s(
     (col1 ='A'col9 ='A'col10 = 5)
     (col1 ='A'col9 ='A'col10 = 7)
     (col1 ='B'col9 ='A'col10 = 2))。
 DATA(itab2)= VALUE zztab1_s()。
 按gp1 gp2排序itab1。
 将itab1循环到DATA(wa1)中。
   在gp2结束时。
     和。
     将wa1附加到itab2。
   ENDAT。
 结局。
 ASSERT itab2 = VALUE zztab1_s("期望已验证或运行时错误
     (col1 ='A'col9 ='A'col10 = 12)
     (col1 ='B'col9 ='A'col10 = 2))。

PS:您的代码看起来很奇怪,因为您仅按GP1和GP2进行排序。 您应该按MANDT,OBJNR,GP1和GP2进行排序,因为" AT END OF component "在" component"左侧的所有组件处进行分组中断。 如果至少没有按MANDT和OBJNR进行排序,则会得到错误的结果。

一周热门 更多>