用键循环遍历动态哈希表

2020-08-17 12:44发布

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

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


你好

我正在研究实现IF_RSPLFA_SRVTYPE_IMP_EXEC_REF(参考数据计划)的自定义计划功能类型。

实现类的EXECUTE方法具有I_TH_REF_DATA TYPE HASHED TABLE作为"导入"参数。 该表实际上包括我的参考数据。 该表的结构是在运行时根据聚合级别的结构动态定义的。 它包含构成聚合级别的所有特征和关键数据。

为避免对表进行全面扫描,我想使用某种"部分"键(仅包含有限的一组特征)遍历该表。 产品协助建议如下:

 DATA spfli_tab类型哈希表
 OF SPFLI
 使用唯一键primary_key
 成分carrid connid
 使用非唯一排序键city_from_to
 组件城市从城市到
 使用非唯一排序键city_to_from
 组件从城市到城市。

 循环至spfli_tab分配使用密钥city_from_to。

但是。 不适用于我的任务,因为表I_TH_REF_DATA是在计划引擎内部定义的,我无法控制其结构(包括键)。

我事先知道聚合级别的结构,并且想使用一个包含0FISCPER,0CURRENCY,ZSCOPE和ZVERSION特性的键进行循环。 我需要类似的东西

在I_TH_REF_DATA分配处循环使用关键组件'0FISCPER''0CURRENCY''ZSCOPE''ZVERSION'

但是,似乎ABAP语法没有为此提供

请告知,如何遍历动态哈希表以避免全表扫描?

谢谢

Val

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

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


你好

我正在研究实现IF_RSPLFA_SRVTYPE_IMP_EXEC_REF(参考数据计划)的自定义计划功能类型。

实现类的EXECUTE方法具有I_TH_REF_DATA TYPE HASHED TABLE作为"导入"参数。 该表实际上包括我的参考数据。 该表的结构是在运行时根据聚合级别的结构动态定义的。 它包含构成聚合级别的所有特征和关键数据。

为避免对表进行全面扫描,我想使用某种"部分"键(仅包含有限的一组特征)遍历该表。 产品协助建议如下:

 DATA spfli_tab类型哈希表
 OF SPFLI
 使用唯一键primary_key
 成分carrid connid
 使用非唯一排序键city_from_to
 组件城市从城市到
 使用非唯一排序键city_to_from
 组件从城市到城市。

 循环至spfli_tab分配使用密钥city_from_to。

但是。 不适用于我的任务,因为表I_TH_REF_DATA是在计划引擎内部定义的,我无法控制其结构(包括键)。

我事先知道聚合级别的结构,并且想使用一个包含0FISCPER,0CURRENCY,ZSCOPE和ZVERSION特性的键进行循环。 我需要类似的东西

在I_TH_REF_DATA分配处循环使用关键组件'0FISCPER''0CURRENCY''ZSCOPE''ZVERSION'

但是,似乎ABAP语法没有为此提供

请告知,如何遍历动态哈希表以避免全表扫描?

谢谢

Val

付费偷看设置
发送
8条回答
一只江湖小虾
1楼-- · 2020-08-17 13:23

你好 Val Teem

有一个 查看基于VBAP表的示例。

数据:
     ld_row TYPE REF TO数据,
     ld_table TYPE REF TO数据,
     lt_vbap_hashed具有唯一键vbeln posnr的vbap类型哈希表。

   字段符号:
      TYPE任意,
      TYPE ANY TABLE。

   创建lt_vbap_hashed的ld_row数据行。
   ASSIGN ld_row-> *至。

   使用非唯一键vbelv创建类似于的已排序表的ld_table数据。
   ASSIGN ld_table-> * TO  [] = lt_vbap_hashed []。

如果新创建的表中不存在所提供的键字段,则将引发异常CX_SY_TABLE_KEY_SPECIFICATION。 如果不处理,将导致短暂的转储。

例如,您可能需要以动态方式提供WHERE条件。

 cond ='col2> dref  -> *'。

 从10到25处(循环)在itab上环行。
   APPEND CONV string(line-col2)到输出。
 结局。  

https://help.sap .com/doc/abapdocu_751_index_htm/7.51/zh-CN/abaploop_at_itab_cond.htm#!ABAP_ADDITION_4 @ 4 @

亲切的问候

Mateusz

编辑:添加了动态键定义,因为它可能不清楚。

数据:
   lt_key TYPE TABLE OF字符串。

 在lt_key后面附加" VBELV"。

 创建具有非唯一键(lt_key)的排序表的数据ld_table。
路亽曱_Ryan
2楼-- · 2020-08-17 13:47

我上传图像时遇到问题。

方法:

方法中的原始数据(请注意键,蓝色列) :

Mateusz

一周热门 更多>