使用功能模块的提取器-区分INIT DELTA和FULL吗?

2020-08-19 00:44发布

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

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

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


使用RSAX_BIW_GET_DATA_SIMPLE作为模板,我创建了一个新的自定义提取器来加载新的自定义多维数据集。 提取器按宣传的方式工作。 但是,我想根据我通过InfoPackage执行的负载的"类型"在提取器中做出一些逻辑决策。 通过负载的"类型",我指的是初始化vs.增量vs.满负载。

我已经查看了ISU-Utilities的标准交付提取器中使用的其他一些功能模块(即使用功能模块MDEX_MATERIAL_MD的提取器0MATERIAL_ATTR)。 在查看此功能模块时,逻辑似乎利用类型组SBIWA中参数I_UPDMODE中的值来确定通过InfoPackage执行的负载类型。 这是我为此FM看到的值:

  • 更新模式允许的值:

常量:SBIWA_C_UPDMODE_FULL TYPE SBIWA_S_INTERFACE-UPDMODE

值'F',

SBIWA_C_UPDMODE_DELTA类型SBIWA_S_INTERFACE-UPDMODE

VALUE'D',

SBIWA_C_UPDMODE_INIT类型SBIWA_S_INTERFACE-UPDMODE

VALUE'I',

SBIWA_C_UPDMODE_REPEAT TYPE SBIWA_S_INTERFACE-UPDMODE

VALUE'R',

SBIWA_C_UPDMODE_DELTAINIT类型SBIWA_S_INTERFACE-UPDMODE

VALUE'C'。

在我的提取器功能模块的"导入"选项卡中,我输入了具有关联类型SBIWA_S_INTERFACE-UPDMODE的I_UPDMODE。 但是,在Debug中运行提取程序时,没有任何内容传递给I_UPDMODE。

有什么我想念的吗? 或者-还有其他方法可以使程序中的负载类型区分吗?

3条回答
何必丶何苦呢
2020-08-19 01:08

确定Delta还是Init所需要做的全部工作是:

 *检查提取模式(增量初始化或增量)
   如果i_initflag EQ sbiwa_c_flag_on。
 

然后,确定是Full还是Delta(这恰好是确定创建日期或更改日期的delta):

 *如果在会计年度选择时满负荷
       如果r_aedat []是INITIAL。

 *完全提取
         游标
         与HOLD s_cursor FOR
       选择(s_s_if-t_fields)
         来自vbfa AS a
         加入pnwtyv AS b
           在a〜vbelv EQ b〜sdvbeln上
        r_vbelv中的a〜vbelv
          和r_posnv中的a〜posnv
          和r_vbeln中的a〜vbeln
          和a_posnn IN r_posnn
          与NE〜0
          AND_ERDAT IN r_erdat
          和b〜sdvbeln NE空间。

       其他。

 *使用ERDAT和AEDAT进行Delta提取
         游标
         与HOLD s_cursor FOR
       选择(s_s_if-t_fields)
         来自vbfa AS a
         加入pnwtyv AS b
           在a〜vbelv EQ b〜sdvbeln上
        r_vbelv中的a〜vbelv
          和r_posnv中的a〜posnv
          和r_vbeln中的a〜vbeln
          和a_posnn IN r_posnn
          与NE〜0
          AND(a〜erdat IN r_erdat
           或a〜aedat IN r_aedat)
          和b〜sdvbeln NE空间。

       万一。  "如果r_aedat []初始
 

一周热门 更多>