分配组件到底有什么用?

2020-09-30 03:16发布

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

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


嗨朋友,

我想知道分配组件的确切用途是什么……

下面是我用来更新工作区和内部表中的值的代码。

但我的疑问是,我们可以通过将价值传递给工作区域本身来直接做到这一点。

喜欢......

从but000中选择*到表gt_tab中,最多10行。

 循环到gt_tab分配 -bpkind ='SOMENAME'。
 结束循环。

为什么我们在这里使用分配组件......

两者都在做同样的工作...我们可以通过直接传递或使用assign组件来完成....

从but000中选择*到表gt_tab中,最多10行。

 循环到gt_tab分配。
   将结构的组件'BPKIND'分配给 ='SOMENAME'。
 结束循环。

请帮助我...

谢谢

Divi。

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

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


嗨朋友,

我想知道分配组件的确切用途是什么……

下面是我用来更新工作区和内部表中的值的代码。

但我的疑问是,我们可以通过将价值传递给工作区域本身来直接做到这一点。

喜欢......

从but000中选择*到表gt_tab中,最多10行。

 循环到gt_tab分配 -bpkind ='SOMENAME'。
 结束循环。

为什么我们在这里使用分配组件......

两者都在做同样的工作...我们可以通过直接传递或使用assign组件来完成....

从but000中选择*到表gt_tab中,最多10行。

 循环到gt_tab分配。
   将结构的组件'BPKIND'分配给 ='SOMENAME'。
 结束循环。

请帮助我...

谢谢

Divi。

付费偷看设置
发送
9条回答
梦想连接
1楼 · 2020-09-30 04:15.采纳回答

嗨Divi,

如果您不知道要更新值的内部表中的字段名称,则在执行程序之前(如TYPE ANY一样动态),您将使用ASSIGN COMPONENT。 在下面的示例中,根据输入的参数字段名称,我们将数据分配给内部表中的特定字段。

数据:行开始,
col1类型i值11,
col2类型i值22,
col3类型i值33,
行尾。

参数:p_field TYPE C。

FIELD-SYMBOLS:类型ANY,类型ANY,类型ANY。

ASSIGN行TO
ASSIGN p_field至

做3次。
将结构分配到的组件索引。

ENDDO。

分配结构的
写/

一只江湖小虾
2楼-- · 2020-09-30 04:16

如果您在循环中使用ASSIGN COMPONENT,则可能会降低性能。 而不是使用

 LOOP AT  ASSIGNING FIELD-SYMBOL()。
   将结构的结构'ACTUAL_FIELD_NAME'指定为FIELD-SYMBOL()。
   写。
 ... 

使用

数据:开始记录,
         actual_field_name TYPE字符串,"实际字段名,具有实际类型
         ...
       记录结束。

 在分配字段符号()处循环播放。
   MOVE-CORRESPONDING 进行记录。
   写record-actual_field_name。
 ... 

不仅速度更快,而且我认为它也更易于理解-并设置观察点。 如果需要更新字段值,请使用

 ...
   record-actual_field_name ='新值'。
   MOVE-CORRESPONDING记录到。
 ENDLOOP。
派大星 ヾ
3楼-- · 2020-09-30 03:56

请考虑一下您的第一个示例中的情况,如果GT_TAB是类型为ANY TABLE的方法的导入参数。

为 字段符号名称的选择非常差。 首先,为什么要使用fs? 仅尖括号告诉您这是一个字段符号。 此外,使用有意义的名称。 根据 ABAP官方编程指南,使用前缀表示类型不是最佳做法

一周热门 更多>