向 table 添加行时出错 "not mutually convertible in Unicode program"
Error "not mutually convertible in Unicode program" when adding line to table
我正在尝试将数据从内部 table 添加到自定义数据。
DATA: BEGIN OF TMP_CTRYGRP_T OCCURS 1000,
CTYGR TYPE /SAPSLL/CTYGR,
TEXT1 TYPE /SAPSLL/TEXT60,
END OF TMP_CTRYGRP_T.
SELECT ctygr, text1 FROM /SAPSLL/CTYGPT INTO TABLE @DATA(lt_countryGroupsTable)
LOOP AT lt_countryGroupsTable ASSIGNING FIELD-SYMBOL(<ls_countryGroups>).
APPEND <ls_countryGroups> TO TMP_CTRYGRP_T.
ENDLOOP.
然后我想在自定义 Table 类型中添加该行 ZZ_T_TAB
所以我尝试创建这个 table 的字段符号,从中创建一个内部 table,但是我尝试过的 none 解决方案是允许的我在该自定义 table 中添加行(即使程序中的行有这些行)。
我主要遇到的问题是:
are not mutually convertible in a Unicode program.
所以我的问题是:
- 为什么会出现这个错误?谷歌搜索并没有给我一个可以理解的答案
- 目前我使用的内部 table 限制为 1000 行。但是我真的不知道搜索可以提供多少行。有什么办法可以改善吗?
- 然后如何将任何解决方案中的行添加到我的 ZZ_T_TAB?之后如何在同一个 table 中为已经存在的行添加其他字段?
正如你们中的一些人所理解的,我是 ABAP 的新手。
因此,如果有任何有用的 link 来理解所有这些,如果您能与我分享,我会很高兴。
- 你为什么不直接select进入table?
- 不要使用
OCCURS
,因为它在 类 中已被宣布为过时且已被禁止。
将您自己的结构声明为类型并将您的自定义内部 table 标记为 TYPE STANDARD TABLE OF struct_type
。这样就没有上限了
TYPES:
BEGIN OF struct_type,
CTYGR TYPE /SAPSLL/CTYGR,
TEXT1 TYPE /SAPSLL/TEXT60,
END OF struct_type.
DATA tmp_ctrygrp_t TYPE STANDARD TABLE OF struct_type WITH EMPTY KEY.
Why does that error happen? Googling it didn't provide me an
understandable answer
您不能对不同的结构使用 APPEND。你必须先 "convert" 它。在 ABAP 帮助中查找命令 MOVE-CORRESPODING(编辑器中的 F1 命令)。
For the moment I'm using an internal table limited to 1000 rows. But I
don't really know by advance the number of lines the search could
provide. Is there any way to improve that?
不要使用 OCCURS 扩展,它已被弃用(如 lausek 所写),旧语法。
How then to add lines from any solution to my ZZ_T_TAB ? And
afterwards how could I add other fields in the same table, for the
rows already existing?
您可以通过多种方式修改数据库 table。:
1、使用UPDATE语句直接更新字段值
2、使用 MODIFY 语句修改字段值(例如)预选
结构。
在 ABAP 帮助中查找 UPDATE 和 MODIFY 命令,其中有非常有用的代码示例。
我正在尝试将数据从内部 table 添加到自定义数据。
DATA: BEGIN OF TMP_CTRYGRP_T OCCURS 1000,
CTYGR TYPE /SAPSLL/CTYGR,
TEXT1 TYPE /SAPSLL/TEXT60,
END OF TMP_CTRYGRP_T.
SELECT ctygr, text1 FROM /SAPSLL/CTYGPT INTO TABLE @DATA(lt_countryGroupsTable)
LOOP AT lt_countryGroupsTable ASSIGNING FIELD-SYMBOL(<ls_countryGroups>).
APPEND <ls_countryGroups> TO TMP_CTRYGRP_T.
ENDLOOP.
然后我想在自定义 Table 类型中添加该行 ZZ_T_TAB
所以我尝试创建这个 table 的字段符号,从中创建一个内部 table,但是我尝试过的 none 解决方案是允许的我在该自定义 table 中添加行(即使程序中的行有这些行)。
我主要遇到的问题是:
are not mutually convertible in a Unicode program.
所以我的问题是:
- 为什么会出现这个错误?谷歌搜索并没有给我一个可以理解的答案
- 目前我使用的内部 table 限制为 1000 行。但是我真的不知道搜索可以提供多少行。有什么办法可以改善吗?
- 然后如何将任何解决方案中的行添加到我的 ZZ_T_TAB?之后如何在同一个 table 中为已经存在的行添加其他字段?
正如你们中的一些人所理解的,我是 ABAP 的新手。 因此,如果有任何有用的 link 来理解所有这些,如果您能与我分享,我会很高兴。
- 你为什么不直接select进入table?
- 不要使用
OCCURS
,因为它在 类 中已被宣布为过时且已被禁止。 将您自己的结构声明为类型并将您的自定义内部 table 标记为
TYPE STANDARD TABLE OF struct_type
。这样就没有上限了TYPES: BEGIN OF struct_type, CTYGR TYPE /SAPSLL/CTYGR, TEXT1 TYPE /SAPSLL/TEXT60, END OF struct_type. DATA tmp_ctrygrp_t TYPE STANDARD TABLE OF struct_type WITH EMPTY KEY.
Why does that error happen? Googling it didn't provide me an understandable answer
您不能对不同的结构使用 APPEND。你必须先 "convert" 它。在 ABAP 帮助中查找命令 MOVE-CORRESPODING(编辑器中的 F1 命令)。
For the moment I'm using an internal table limited to 1000 rows. But I don't really know by advance the number of lines the search could provide. Is there any way to improve that?
不要使用 OCCURS 扩展,它已被弃用(如 lausek 所写),旧语法。
How then to add lines from any solution to my ZZ_T_TAB ? And afterwards how could I add other fields in the same table, for the rows already existing?
您可以通过多种方式修改数据库 table。:
1、使用UPDATE语句直接更新字段值
2、使用 MODIFY 语句修改字段值(例如)预选
结构。
在 ABAP 帮助中查找 UPDATE 和 MODIFY 命令,其中有非常有用的代码示例。