RFC_READ_TABLE の制限を回避するカスタム SAP ファンクションモジュールの設計
CData SAP Data Provider を使用すると、SAP データをリレーショナルデータベースとして表示し、データアクセス標準を通じて必要なデータセットを選択できます。ただし、すべての CData ドライバー技術がデフォルトで使用する RFC_READ_TABLE ファンクションモジュールには、1 行あたり 512 バイトの制限があります。以下の手順に従って、RFC_READ_TABLE のこの制限やその他の制限を回避できます。
カスタムファンクションモジュールの作成
以下の手順に従って、付属のソースコードを使用し RFC_READ_TABLE の代替モジュールを作成できます。
- RFC_READ_TABLE 関数をテンプレートとして新しい関数を作成します。トランザクションコード SE37 と SDTX ファンクショングループを選択し、RFC_READ_TABLE を新しいファンクショングループまたは作業用ファンクショングループにコピーします。この例では、RFC_READ_TABLE を「Z_CUSTOM_READ_TABLE」にコピーします。

- SAP 画面の「Attributes」タブで「Remote Enabled Module」を選択します。

- 「Tables」タブで DATA パラメータを「CHAR8000」に設定します(右クリックして「Display <-> Change」をクリックする必要がある場合があります)。

- 「Source Code」タブで、インストールディレクトリの「db」サブフォルダにある RFC_READ_TABLE 置換ファンクションモジュールのサンプルソースコードを貼り付けます。コードは Z_CUSTOM_READ_TABLE.txt に含まれています。保存をクリックします。

- 提供されているカスタム Read テーブルに記載されているとおりに、imports、tables、exceptions を定義します。
- ファンクションモジュールをアクティブ化し、接続文字列で ReadTableFunction を Z_CUSTOM_READ_TABLE、またはご自身のファンクションモジュール名に設定します。
これで SAP 内の任意のフィールドを選択できるようになります。
ABAP 7.52 カスタム Read テーブル
Z_CUSTOM_READ_TABLE.txt に加えて、Z_CUSTOM_READ_TABLE_752.txt ファイルも用意されています。これは ABAP バージョン 7.52 以降向けに設計されています。Z_CUSTOM_READ_TABLE とほぼ同じですが、ABAP 7.52 で利用可能になった新しいキーワードを活用して、ABAP スクリプト内ではなくデータベース内でページングを実行します。これによりページングがはるかに効率化され、大きなテーブルを扱う際にパフォーマンスが大幅に向上します。可能であれば Z_CUSTOM_READ_TABLE_752 RFC を使用することを推奨します。