SAP 内部テーブルを .CSV ファイルとして SAP ディレクトリに保存しようとしています。コンテンツを文字型に変換する必要があることを学びましたが、不正なキャスト エラーが発生します。これは私のコードです:
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.
これはエラーです:
以下で詳しく説明する例外が発生しました。クラス に割り当てられた例外はCX_SY_ASSIGN_CAST_ILLEGAL_CAST
、プロシージャF_OPENDATA
でキャッチされず、RAISING 句によって伝播されませんでした。プロシージャーの呼び出し元は例外が発生することを予期できなかったので、現在のプログラムは終了します。例外の理由は次のとおりです。
ASSIGN f TO CASTING という形式のステートメントでエラーが発生しました。
f を鋳造タイプ t に割り当てます。
または
ASSIGN f TO CASTING LIKE f1.
または ASSIGNING CASTING
を追加した at table ステートメント。次のエラーの原因が考えられます
。 1. 項目 f の型、または 、t または f1 によって決定されるターゲット型に、コンポーネントとしてデータ参照、オブジェクト参照、文字列、または内部テーブルが含まれています。
これらのコンポーネントは、その位置 (オフセット) とタイプが関係する限り正確に一致する必要があります。
2. 指定された型 t または f1 の型は、フィールド symbol の型に適していません。
3. 1)のルールにより、関連表の行型が で指定した対象型に適合しない。