SAPシステムからテーブルデータにアクセスするための最良の方法は何ですか?
RFC_READ_TABLEで試してみましたが、このRFCは単一の列内に連結された形式でデータを返し、行データのサイズ制限があります。
システムにカスタムRFCを作成せずに、汎用形式でSAPデータにアクセスするためのより良い方法はありますか?
カスタムスクリプトではなく、標準のRFCソリューションを探しています。
私があなたの質問を正しく理解していれば、テーブルを読みたいと思っていますが、プログラミングの時点では、どのテーブルかわかりません。動的テーブル名で読み取ることSelect * from (tablename)ができます。ターゲット フィールドは、 で動的に定義できますcreate data。
例(テストされていない、現在私はSAPシステムにアクセスできません):
DATA: lv_tablename TYPE string,
ev_filelength TYPE i.
lv_tablename = 'mara'. "e.g. a parameter
DATA dref TYPE REF TO data.
CREATE DATA dref TYPE TABLE OF (lv_tablename).
FIELD-SYMBOLS: <wa> TYPE ANY TABLE.
ASSIGN dref->* to <wa>.
SELECT * FROM (lv_tablename) INTO TABLE <wa>. "Attention for test, may be large result
"<wa> is like a variable with type table mara
TYPES: BEGIN OF t_bseg,
*include structure bseg.
bukrs LIKE bseg-bukrs,
belnr LIKE bseg-belnr,
gjahr LIKE bseg-gjahr,
buzei LIKE bseg-buzei,
mwskz LIKE bseg-mwskz, "Tax code
umsks LIKE bseg-umsks, "Special G/L transaction type
prctr LIKE bseg-prctr, "Profit Centre
hkont LIKE bseg-hkont, "G/L account
xauto LIKE bseg-xauto,
koart LIKE bseg-koart,
dmbtr LIKE bseg-dmbtr,
mwart LIKE bseg-mwart,
hwbas LIKE bseg-hwbas,
aufnr LIKE bseg-aufnr,
projk LIKE bseg-projk,
shkzg LIKE bseg-shkzg,
kokrs LIKE bseg-kokrs,
END OF t_bseg.
DATA: it_bseg TYPE STANDARD TABLE OF t_bseg INITIAL SIZE 0,
wa_bseg TYPE t_bseg.
DATA: it_ekko TYPE STANDARD TABLE OF ekko.
*Select all fields of a SAP database table into in itab
SELECT *
FROM ekko
INTO TABLE it_ekko.