当前位置: 首页 > 编程笔记 >

在SAP ABAP中创建具有动态变量类型的变量

慕通
2023-03-14
本文向大家介绍在SAP ABAP中创建具有动态变量类型的变量,包括了在SAP ABAP中创建具有动态变量类型的变量的使用技巧和注意事项,需要的朋友参考一下

您可以使用与RTTS相关的API来创建一个标准表(例如RANGE),该表具有类似“ LOW”,“ HIGH”,“ EQ”和“ OPTION”的组件

data:
   rr_data              type ref to data,
   rt_range_string      type range of string,
   rs_range_string      like line of rt_range_string,
   rt_component         type abap_component_tab,
   rs_component         type line of abap_component_tab,
   rt_range_components  type abap_component_tab,
   ro_struc_descr       type ref to cl_abap_structdescr,
   ro_table_descr       type ref to cl_abap_tabledescr,
   ro_data_descr        type ref to cl_abap_datadescr.

场符号

<var_value> type any,
<rt_range_type> type standard table,   //<rt_range_type> is your range table
<rs_range_type> type any.
data(var_type) = 'BU_PARTNER'.

create data rr_data type (var_type).
ro_struc_descr ?= cl_abap_structdescr=>describe_by_data( p_data = rs_range_string ).
rt_component = ro_struc_descr->get_components( ).
ro_data_descr ?= cl_abap_elemdescr=>describe_by_name( var_type ).

rt_range_components = value #( for comp in rt_component (
   name = comp-name
   type = cond #(
      when comp-name eq 'SIGN'
      or comp-name eq 'OPTION'
      then comp-type
      else ro_data_descr )
) ).
ro_struc_descr ?= cl_abap_structdescr=>create( rt_range_components ).
ro_table_descr ?= cl_abap_tabledescr=>create( ro_struc_descr ).
create data rr_data type handle ro_table_descr.
assign rr_data->* to <rt_range_type>.

create data rr_data like line of <rt_range_type>.
assign rr_data->* to <rs_range_type>.
assign component 'SIGN' of structure <rs_range_type> to <var_value>.
<var_value> = 'I'.

assign component 'OPTION' of structure <rs_range_type> to <var_value>.
<var_value> = 'EQ'.

assign component 'LOW' of structure <rs_range_type> to <var_value>.
<var_value> = 'X1'.

assign component 'HIGH' of structure <rs_range_type> to <var_value>.
<var_value> = 'X2'.


 类似资料:
  • 问题内容: 我在MySQL中使用ENUM数据类型,想重用它,但不重新输入值。MySQL中是否有等效于C,C ++定义类型的方法? 我要执行以下操作: 这可能吗? 谢谢 问题答案: 号MySQL不支持或为,例如,PostgreSQL的呢。 您可能必须再次输入所有名称。您可以使用复制和粘贴或SQL脚本来减轻执行此操作所需的工作。 您还可以使用这些表来获取ENUM定义的文本,然后将其内插到新的语句中。

  • 我正在用android创建一款纸牌游戏(21点)。前两张卡是easy card1和card2,但是我想按一下“点击我”按钮,发一张新卡,并将其分配给card3、card4等。有没有任何方法可以做到这一点,而无需创建所需的最大变量数,并使用if-then语句检查它们是否被分配了值?

  • 我正在将java脚本移动到dart,在java脚本中我创建了动态变量,例如 我怎么能用飞镖呢?

  • 问题内容: 是否可以在Java中动态创建新变量。 因此,如果两次调用了新方法,是否应该向该类中新添加2个新变量? 可能吗? 问题答案: 否。您是否考虑过在课程中存储“ a ”?映射中的键将是“变量名”,映射中的值将是逻辑变量名。 如果您可以提供有关您要实现的目标的更多信息(从高角度来看),那将有所帮助。

  • 问题内容: 我的特定用例是,我想组织一些有关容器在其上运行的EC2实例的数据,并使我可用作环境变量。构建容器时,我想这样做。 我希望能够在Dockerfile中执行类似的操作,但毫不奇怪,这行不通(您只得到了string )。 我应该提及的是,我知道将要执行此操作,但是我特别希望将其内置到容器中。 我是否缺少明显的东西?这有可能吗? 问题答案: Docker v1.9或更高版本 如果您使用的是Do

  • 表名,excel文件路径,excel文件名是动态的(它是基于用户输入的)。我是SSIS的新手,我只使用过静态值。如何在SSIS中实现上述场景?