在许多子对象的SAP表中创建和读取编号范围

2020-08-16 13:51发布

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

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


number-range-create.txt 大家好

我正在学习ABAP编程。 我对我的计划有一些疑问。我想为七个对象创建一个Nummer范围,并在SAP Table(nriv)中读取此数字。 我设法在该表上写入和读取一个数据(subjobject)。 但其他值(subjobject)在我的表上不可读。 请你能帮我吗?

附加了代码

thinks

特制

number-range-create.txt (2.8 kB)

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

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


number-range-create.txt 大家好

我正在学习ABAP编程。 我对我的计划有一些疑问。我想为七个对象创建一个Nummer范围,并在SAP Table(nriv)中读取此数字。 我设法在该表上写入和读取一个数据(subjobject)。 但其他值(subjobject)在我的表上不可读。 请你能帮我吗?

附加了代码

thinks

特制

number-range-create.txt (2.8 kB)
付费偷看设置
发送
3条回答
Alawn_Xu
1楼 · 2020-08-16 14:27.采纳回答

gaelle tefo

您不会清除内部表,只是要清除工作区,

一些更正:

1)这里不需要表声明,并且它也已过时。

2)很少。 其他过时的语句(例如OCCURS)正在使用中,请不要使用它们。

3)很少有未使用的变量。 由于您是初学者,因此运行代码检查器将帮助您从一开始就以更好的格式进行编码。

数据:
   lt_error类型标准表的推导,
   lt_interval TYPE的标准表,
   ls_interval TYPE推导。

 DATA:lv_date TYPE sy-datum,"
      lv_datum类型char4。

 lv_date = sy-datum。
 lv_datum = lv_date(4)。

 类型:开始于ty_object,
          对象类型nriv-object,
          子对象TYPE nriv-subobject,
        结束于ty_object。

 数据:ty_object的lt_object类型表,
       ls_object TYPE ty_object。

 lt_object = VALUE#((object ='J_1IG_ODN'子对象='CDP018')
                      (object ='J_1IG_ODN'子对象='GDG018')
                      (object ='J_1IG_ODN'子对象='GDR018')
                      (object ='J_1IG_ODN'子对象='GKG018')
                      (object ='J_1IG_ODN'子对象='GKG018')
                      (object ='J_1IG_ODN'子对象='GST018')
                      (object ='J_1IG_ODN'子对象='VDP01'))。

 在lt_object分配字段符号()上循环。" INTO ls_object。
 *入队
   通话功能" NUMBER_RANGE_ENQUEUE"
     出口
       对象= -对象" ls_object-object
     例外情况
       foreign_lock = 1
       object_not_found = 2
       system_failure = 3
       其他= 4。
   如果sy-subrc <> 0。
     消息ID sy-msgid类型sy-msgty编号sy-msgno
             与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
   万一。

 *创建数字范围

   清除:ls_interval,lt_interval []。

   ls_interval-subobject = -子对象。
   ls_interval-nrrangenr ='01'。
   ls_interval-toyear ='1940'。"测试日期
   ls_interval-fromnumber ='0000000001'。
   ls_interval-tonumber ='9999999999'。
   ls_interval-externind =''。
   ls_interval-procind ='I'。  " 插

   附加ls_interval至lt_interval。

   通话功能" NUMBER_RANGE_INTERVAL_UPDATE"
     出口
       对象= -对象
     桌子
       error_iv = lt_error
       时间间隔= lt_interval。
   通话功能" NUMBER_RANGE_UPDATE_CLOSE"
     出口
       对象= -对象
     例外情况
       no_changes_made = 0
       object_not_initialized = 2
       其他= 3。
   如果sy-subrc <> 0。
     消息ID sy-msgid类型sy-msgty编号sy-msgno
            与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
   万一。

   通话功能" NUMBER_RANGE_DEQUEUE"
     出口
       对象= -对象。
 ENDLOOP。

致谢!

Haoba3210
2楼-- · 2020-08-16 14:39
根据建议 Sandra Rossi 进行了修改:) !
土豆飞人
3楼-- · 2020-08-16 14:26

非常感谢您 Satish Kumar Balasubramanian 为您提供答案。 我尝试从10天开始寻求解决方案。 谢谢您的帮助。

一周热门 更多>