!--a11y-->
パラメータのひきわたし
5個の
API ルーチンがリモートファンクションとパラメータのやりとりを行います。これらのルーチンはRfcCall and RfcReceive
RfcCallReceive
RfcGetData and RfcSendData
パラメータは、次の2つの構造のいずれかにわたされます。
RFC_PARAMETER および RFC_TABLE 。独自のプログラムでこのうちのいずれかを呼び出す場合、これらの構造を埋めて、ひきわたす全パラメータに関する情報を提供する必要があります。インポート
/ エクスポートパラメータのひきわたしRFC_PARAMETER
構造内の配列エクスポート / インポート項目がリモートファンクションにわたされます。typedef struct
{
void * name; /*
配列の最後には、
NULL に相当する名称をエントリする必要があります。サポートされている ABAP データタイプ(表 4-1 参照)は saprfc.h で定義されています(参照 ABAP Data Types)。RFC API
がサポートする ABAP データタイプ
データ タイプ |
Typedef |
バイト長 |
説明 |
TYPC |
RFC_CHAR[] |
1-65535 |
文字、余白はブランクで埋める |
TYPX |
RFC_BYTE[] |
1-65535 |
バイナリデータ |
TYPP |
RFC_BCD[] |
1-16 |
BCD 数(2進コード化した 10 進数) |
TYPINT |
RFC_INT |
4 |
整数 |
TYPFLOAT |
RFC_FLOAT |
8 |
浮動小数点 |
TYPDATE |
RFC_DATE |
8 |
日付(” YYYYMMDD ”) |
TYPTIME |
RFC_TIME |
6 |
時刻 ( ” HHMMSS ” ) |
現行では、スカラーデータタイプだけがサポートされています。レコード構造は、将来サポートされます。
内部テーブルのひきわたし
RFC
が送受信するほとんどすべての機能には2つのパラメータがあり、エクスポートする項目やインポートする項目、および参照する「内部テーブル」を指定します。このパラメタは構造の配列に対するポインタです RFC_PARAMETER. を参照。この配列は、 name が NULL であるエントリで終了する必要があります。内部テーブルパラメータは、
RFC_TABLE 構造の配列内のリモートファンクションにわたされます。typedef struct
{
void * name; /*
現行では、スカラーデータタイプだけが可能です。つまり、単一カラムテーブルと、同様のカラム(
TYPC 項目のみまたは TYPX 項目のみ)を持ったテーブルのみがサポートされています。 ABAP 内部テーブルは同様な構造 RFC_TABLE. によって記述されます。ITAB_H
に関するタイプ定義は、 void * です。 RfcCall 内のプログラムを呼び出すことによって、 itab_h テーブル処理を提供する必要がありますので、注意してください。ルーチン ItCreate を使用すると、 itab_h テーブル処理を作成することができます(詳細については、 ItLengを参照してください)。RfcGetData
を使用してコールを受信する場合、 irtab_h は、自動的に RfcGetData によって埋められます。項目
itmode については、そのテーブルを参照によってわたす(値 ITMODE_BYREFERENCE )という指定をする必要があります。この概念は、慣習的なものとは少し異なるリモートコールに関連して、特別な意味を持っています(詳細については
リモートコールにおけるパラメータ処理を参照してください)。
テーブルパラメータの登録および操作
パラメータとして
RFC 機能にわたされるテーブルは、構造および処理において SAP 内部テーブルと一致する必要があります。したがって、
