コンテンツフレーム起動

パラメータのひきわたし  文書を SAP ライブラリストラクチャに組み込む

5個の API ルーチンがリモートファンクションとパラメータのやりとりを行います。これらのルーチンは

RfcCall and RfcReceive

RfcCallReceive

RfcGetData and RfcSendData

パラメータは、次の2つの構造のいずれかにわたされます。 RFC_PARAMETER および RFC_TABLE 。独自のプログラムでこのうちのいずれかを呼び出す場合、これらの構造を埋めて、ひきわたす全パラメータに関する情報を提供する必要があります。

インポート / エクスポートパラメータのひきわたし

RFC_PARAMETER 構造内の配列エクスポート / インポート項目がリモートファンクションにわたされます。

typedef struct
{
void * name; /*
項目の名称(機能の */
/*
インタフェース定義における) */
unsigned nlen; /*
名称の長さ */
/*
strlen (名称)であること) */
unsigned type; /*
項目のデータタイプ */
void * addr; /*
エクスポート / インポートする項目の */
/*
アドレス */
unsigned type; /*
項目のバイト長 */
}
RFC_PARAMETER;

配列の最後には、 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; /*
テーブルの名称(機能の */
/*
インタフェース定義における) */
unsigned nlen; /*
名称の長さ */
/*
strlen (名称)であること) */
unsigned type; /*
テーブルの行のデータタイプ */
unsigned type; /*
テーブルの幅 */
ITAB_H ithandle; /*
テーブル処理(制御構造 */
/*
内部テーブル。 */
IT_MODE itmode; /* RfcGetData
専用値は、 */
/* ITMODE_BYREFERENCE
が必須。 */
}
RFC_TABLE;

現行では、スカラーデータタイプだけが可能です。つまり、単一カラムテーブルと、同様のカラム( TYPC 項目のみまたは TYPX 項目のみ)を持ったテーブルのみがサポートされています。 ABAP 内部テーブルは同様な構造 RFC_TABLE. によって記述されます。

ITAB_H に関するタイプ定義は、 void * です。 RfcCall 内のプログラムを呼び出すことによって、 itab_h テーブル処理を提供する必要がありますので、注意してください。ルーチン ItCreate を使用すると、 itab_h テーブル処理を作成することができます(詳細については、 ItLengを参照してください)。

RfcGetData を使用してコールを受信する場合、 irtab_h は、自動的に RfcGetData によって埋められます。

項目 itmode については、そのテーブルを参照によってわたす(値 ITMODE_BYREFERENCE )という指定をする必要があります。この概念は、慣習的なものとは少し異なるリモートコールに関連して、特別な意味を持っています(詳細については ストラクチャのリンク リモートコールにおけるパラメータ処理を参照してください)。

テーブルパラメータの登録および操作

パラメータとして RFC 機能にわたされるテーブルは、構造および処理において SAP 内部テーブルと一致する必要があります。

したがって、

 

 

コンテンツフレーム終了