我正在尝试将 SAP 内部表作为 .CSV 文件保存到 SAP Directory。我知道我应该将内容转换为字符类型,但我得到一个非法的转换错误。这是我的代码:
FORM f_opendata TABLES p_tab TYPE STANDARD TABLE USING
p_work TYPE any.
FIELD-SYMBOLS: <lfs_wa>.
CONCATENATE c_headerfile c_initials sy-datum c_ext INTO v_dtasetfile.
OPEN DATASET v_dtasetfile FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc EQ 0.
LOOP AT p_tab INTO p_work.
ASSIGN p_work TO <lfs_wa> CASTING TYPE c.
TRANSFER <lfs_wa> TO v_dtasetfile.
ENDLOOP.
CLOSE DATASET v_dtasetfile.
MESSAGE i899(f2) WITH 'SUCCESS' v_dtasetfile.
ENDIF.
ENDFORM.
这是错误:
发生了一个异常,下面将详细解释。分配给 class 的异常CX_SY_ASSIGN_CAST_ILLEGAL_CAST
没有在 procedure 中捕获F_OPENDATA
,也没有通过 RAISING 子句传播。由于过程的调用者无法预料会发生异常,因此终止当前程序。异常的原因是:
错误发生在格式为 ASSIGN f TO CASTING 的语句中。
将 f 分配给铸造类型 t。
或
将 f 分配给像 f1 一样的铸造。
或
带有附加
ASSIGNING CASTING 的表语句。可能的错误原因如下:
1.字段f的类型或由,t或f1确定的目标类型包含数据引用、对象引用、字符串或内部表作为组件。
这些组件必须完全匹配它们的位置(偏移)和它们的类型。
2. 指定的类型 t 或 f1 的类型不适合字段符号的类型。
3.相关表的行类型不适合按照1)中描述的规则指定的目标类型。