本地类方法中的内联声明

2020-09-02 17:51发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) CLASS lcl_ewb定义...

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

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


 CLASS lcl_ewb定义。
   公共部分。
     方法:
       get_data,
       get_sd_invoice。
      " get_sd_invoice导出t_vbrk类型任何表-不起作用
 ENDCLASS。
 类别lcl_ewb的实现
 方法get_data。
     check_active_jobs()。
     如果gr_fkart不是INITIAL或gr_vbeln不是INITIAL。
       get_sd_invoice()。
       " get_sd_invoice(正在导入t_vbrk = data(gt_vbrk))-不起作用
       检查gt_vbrk是否不初始化
     万一。
   终结法。
 方法get_sd_invoice。
       SELECT vbeln,
              fkart,
              knumv,
              fkdat,
              belnr,
              杰尔
         来自vbrk
         插入表@DATA(lt_vbrk)
         vbeln在哪里@gr_vbeln
           和fkart IN @gr_fkart
           和fkdat IN @s_bldat
           AND Bukrs在@s_bukrs
           和@@ s_kunnr中的kunag。
       如果sy-subrc = 0。
         按vbeln排序lt_vbrk。
         t_vbrk = lt_vbrk。
       万一。
   终结法。
 ENDCLASS。

伙计们,

使用首次尝试使用的Inline声明时,我面临一个挑战。 我已经附上了代码片段。

在Local方法中,我正在使用内联声明将VBRK的访存写入ITAB。 此ITAB将是本地的,但我需要将此内部表全局用于其他方法。 如果在方法定义中使用IMPORTING参数,应如何声明内部表? 我尝试了ANY TABLE,但无法正常工作。 我不想在SE11中创建表类型并在此处使用它(这违背了使用Inline的目的)。

请帮助我找出我做错了什么,如果您对以更好的方式编写此逻辑有任何建议,请提及。

此致

NishanthVK

6条回答
Aaron 3364
2020-09-02 18:42 .采纳回答
 CLASS lcl_ewb定义。
   公共部分。
     方法:
       get_sd_invoice导出eo_data类型REF TO数据,
       测试。
 ENDCLASS。
 类别lcl_ewb的实现。
   方法get_sd_invoice。

     数据:lo_data TYPE REF TO数据。
     FIELD-SYMBOLS:键入任何表。

     SELECT vbeln,
            fkart,
            knumv,
            fkdat,
            belnr,
            杰尔
       来自vbrk
       插入表@DATA(lt_vbrk)
       最多10行。
     如果sy-subrc = 0。
       按vbeln排序lt_vbrk。

       创建数据lo_data类似于lt_vbrk。
       如果lo_data已绑定。
         ASSIGN lo_data-> *至。
         如果已分配 = lt_vbrk []。
         万一。
         eo_data = lo_data。
       万一。
     万一。
   终结法。
   方法测试。

     数据:lo_data TYPE REF TO数据。
     字段符号:键入任何表。

     get_sd_invoice(
       输入
         eo_data = lo_data
     )。

     如果lo_data已绑定。
       ASSIGN lo_data-> *至。
       如果已分配。
         "-执行动作
       万一。
     万一。


   终结法。
 ENDCLASS。


 数据:go_obj类型参考为lcl_ewb。


 选择开始。

   创建对象go_obj。
   go_obj-> test()。
 

PS:发表评论后对代码进行了更改