1

私は ABAP の初心者 (3 日間の経験) で、現在、ABAP コードを使用してレポートを作成する作業を行っています。これは、特定の SAP データベースからビジネス インテリジェンスのステージング エリアにデータを移動するようなものです。

したがって、根本的な問題は、SAP サーバー上の一部のデータが辞書構造 (FMOIX、FMCOX など) の形式であり、プログラムの実行時にこれらのデータを内部テーブルに移動する必要があることです。この場合、OPENSQL は機能しないと言われました。

それでも私の言いたいことが分からない場合は、上司から実際に与えられたいくつかの方法を提案できます。まず、GETイベントを使用することです

GET FMOIX.
    IF FMOIX-zhdlt > From_dat and FMOIX-zhdlt < to_dat.
        Append FMOIX to itab.
    ENDIF.

問題は、この GET イベントについてまだよくわかっていないことです。それは単なるイベント ハンドラーですか、それともデータ レコードをループできますか?

2日以上グーグルで検索した結果、次のようなものが得られました

LOOP at FMOIX.
    MOVE FMOIX to itab.
ENDLOOP.

では、FMOIX のようなトランザクション構造を内部テーブルに移動する方法は何ですか?たとえば、内部テーブル名が ITAB であるとします。

あなたの答えは大歓迎です。時間はありますが、私はまったく新しいです。どうもありがとう。

4

2 に答える 2

3

上司がGETイベントの使用を提案している場合は、プログラムが論理データベース(この場合はおそらくFMFまたはFMF_BCS)を使用している(または使用する必要がある)ことを意味します。

実行すると、論理データベースで(ノードGET FMOIXとして)定義された一連のフィールドが読み取られます。GETステートメントの下で、FMOIXを構造体として使用できます。プログラムは(暗黙的に、isのようにコードで明示的に定義されていません)、選択基準に従って返されたすべての行をループします。を使用して各行の内容を適切な構造に移動し、次にその構造をitabに移動できるはずです。WRITE FMOIX-field1LOOP...ENDLOOPMOVE-CORRESPONDINGAPPEND

ABAPDocuのGETに関するクイックリンク

注:論理データベースを一度しか使用したことがないため、この答えは少し推測です。ドキュメントは、標準SELECTのテーブルや内部テーブルに関するボリュームと比較して、地上では少し薄いです。

于 2012-06-20T15:21:35.047 に答える
0

次のような構造のタイプで内部テーブルを作成できます。

data: itab like table of fmoix with header line.

また、この内部テーブルを使用して、選択コードを使用している場所を埋めることができます。そのような:

select * from ____
   into corresponding fields of itab 
   where zhdlt gt from_dat
   and   zhdlt lt to_dat.

これがあなたが探しているものかどうかはわかりませんが、その構造のタイプで itab を作成すると、選択したものからの対応するすべてのデータで満たされる可能性があると言えます。FMOIX はテーブルではなく構造であるため、ループできません。では、データを構造体に保持する特定の理由はありますか?

お役に立てば幸いです。

タルハ

于 2012-06-20T14:16:29.270 に答える