5

ABAP 構築STARTING NEW TASKを使用すると、たとえばバッチ実行など、現在のタスクとは独立して実行される別のタスクを開始できます。

オブジェクト インスタンスを引き渡したいのですが、RFC 関数はこれらの種類のパラメーターを受け入れません。オブジェクトインスタンスも渡したいと思っていて、これに対する回避策を見つけた人はいますか?

今日の私の回避策は、構造化データを渡し、モジュール内のオブジェクトを再作成することです。そのため、手動で「マーシャリング」を行います。

おそらく、それにはもっと良い方法がありますか?または、別のバックグラウンド タスクでオブジェクト インスタンスのメソッドを実行できますか?

PS私はSAP R3 4.6Cを使用しています

4

3 に答える 3

6

4.6C では、インスタンスを RFC 対応の汎用モジュールに渡すソリューションはありません。汎用モジュール内で最初から再インスタンス化することのみが可能です。

しかし、ABAP 6.20 以降では、 ABAP ドキュメントのこの部分で説明されているように、インスタンス クラスにインターフェイスを含め、を介して変換を呼び出すことにより、インスタンスをSTRINGまたは変数にシリアル化することができます。XSTRINGIF_SERIALIZABLE_OBJECTIDCALL TRANSFORMATION

参照変数によって参照されるオブジェクトをエクスポートするには、CALL_TRANSFORMATIONこれらのオブジェクトのクラスがインターフェイスを実装している場合、ステートメントを使用してこれらのオブジェクトをシリアル化し、エクスポートしますIF_SERIALIZABLE_OBJECT

STRINGこのようにして、シリアル化されたインスタンスをタイプorのパラメータを介して RFC 対応の汎用モジュールに渡すことができますXSTRING

于 2011-07-04T15:31:33.253 に答える
-1

これが 4.6C で機能するかどうかはわかりませんが (私はより新しいバージョンを使用しています)、次のようにします。

i) SE11 経由で構造を作成します。
ii) 構造体のコンポーネント (フィールド) は、オプションをサポートする必要TYPE REF TOがあります。つまり、ここでクラス名を指定できるはずです。
iii) (作成したばかりの) 構造を RFC に渡します。

4.6Cで動作することを願っています。

于 2011-08-04T04:34:58.707 に答える