使用する
ALEビジネスプロセスで非同期BAPI呼び出しを許可するには、BAPIのBAPI-ALEインタフェースを登録する必要があります。
BAPI用に次のオブジェクトが生成されます。
-
メッセージタイプ
-
セグメントを含むIDocタイプ
-
アウトバウンド側で呼び出される汎用モジュール(BAPIデータを使用してIDocを生成し、それをディスパッチします)
-
インバウンド処理側でIDocデータを使用してBAPIを呼び出す汎用モジュール
手動で更新されるメッセージタイプとの違いは、変更ポインタを処理する汎用モジュールがIDocを登録しないことです。代わりに、対応するBAPI構造を入力し、レシーバを決定し、生成されたALE汎用モジュールを呼び出します。
生成されたメッセージタイプ、IDocタイプ、および汎用モジュールを使用して、SMDツールを使用してマスタデータを配信することもできます。
前提条件
次の2つの前提条件が満たされている必要があります。
-
BAPIが存在する必要があります。次の選択肢が可能です。
-
新しいBAPIが開発されました。適切な顧客の名前空間が顧客の開発に使用されています。
-
得意先は、標準出荷でBAPIのBAPI-ALEインタフェースを生成するか、対応するBAPIを変更した後にSAPが提供するBAPI-ALEインタフェースを変更したいと考えています。これを行うには、次の手順に従います。
-
元のBAPIの汎用モジュールをコピーして変更します。
-
BORで、BAPI(トランザクションSWO1 )に属するビジネスオブジェクトタイプの得意先名称空間にサブオブジェクトタイプを登録します。サブオブジェクトを作成すると、サブタイプはビジネスオブジェクトのメソッドを継承します。
-
オブジェクトタイプのステータスを
の編集)に設定します。 -
その後、サブタイプのすべてのメソッドを変更、削除、または独自のメソッドで補足することができます。次に、BAPI-ALEインタフェースが、新しいサブタイプとそれに割り当てられたメソッドのカスタマネームスペースに作成されます。
アップグレード後、SAPが新しいリリースでBAPI-ALEインターフェースの新しいバージョンを発行した場合でも、顧客が生成したインターフェースは古いリリースと同じように機能し続けます。SAPが新しいリリースで新しいインタフェースを発行していない場合、顧客は古いインタフェースを再生成して、新しいパラメータを調整することができます。
SAPが、得意先がすでにインタフェースを生成しているBAPIに対してBAPI-ALEインタフェースを発行する場合、得意先は新しいインタフェースを使用して、生成したものを削除する必要があります。古いインターフェースは引き続き使用できますが、古いリリースでのみ使用できます。古いインタフェースを再生成する場合、得意先BAPI汎用モジュールのインタフェースがSAPに属するBAPI構造を参照していると、生成されたオブジェクトの一部(たとえば、SAPオブジェクトのセグメントなど)が上書きされる可能性があります。
-
-
-
BAPIテーブルパラメータ間の階層依存関係を考慮する必要がある場合は、BAPIのBAPI-ALEインタフェースを生成する前にそれらを定義する必要があります( BAPIパラメータ間の階層の定義を参照)。指定された階層は、インターフェイスが生成され、インターフェイスコーディングに組み込まれるときに評価されます。BAPI-ALEインターフェースは、階層に加えられた後続のすべての変更の後に再生成する必要があります。生成されたIDocタイプが解放されると、互換性の理由から、非同期BAPIの指定された階層を後で変更することはできません。
関連するALEトピックに関する注記を必ずお読みください。これらには、データフィルタリング、メッセージのシリアル化、およびその他の主題に関する情報が含まれています。
手順
パス
を選択します。ALE開発でカスタマーシステムでは、すべてのオブジェクト名はYまたはZで始まるか、独自のプレフィックスで始まる必要があります。
次のように実行します。
-
第一画面で、インタフェースとメソッドの基本的なビジネスオブジェクト(オブジェクトタイプ)を入力します。
-
次に、[インターフェイス]メニューのオプションの1つを選択して、インターフェイスを維持、表示、確認、または削除します。
-
インターフェースの作成
前提条件:このBAPIのインターフェースがまだ生成されていないか、既に生成されているインターフェースが[削除]オプションを使用して削除されている。生成されるオブジェクトの名前が提案されます。それらを変更することができます。インターフェイスの作成には、次のプロセスフローが含まれます。
-
最初のダイアログボックスにメッセージタイプの名前を入力します。デフォルトの名前には、次の命名規則があります。
メッセージタイプ:
商号
例:MYTEST
エントリを確認します。
-
次のダイアログボックスで次のエントリを作成できます。
BAPI汎用モジュールが属する開発クラスと汎用グループが提案されます。インターフェイスを生成するには、独自のパッケージと機能グループを使用する必要があります。次のオプションも使用できます。
-
許可されたデータフィルタリング
BAPIのデータフィルタリングを実行する場合は、インターフェイスを作成または変更するためのダイアログボックスで[データフィルタリングを許可する]オプションを選択する必要があります。このオプションは通常、SAPによって生成されたBAPI-ALEインターフェースに対してアクティブです。詳細については、「注記」を参照してください。
-
更新タスクを呼び出す
データベースの変更が更新タスクを使用するメソッドによって実行される場合は、このインジケーターを選択する必要があります。
-
パケット処理が許可されました
パケット処理を許可する場合は、このオプションを選択する必要があります。関連するBAPIはパケットを処理できる必要があります。パケットサイズは、ALEカスタマイジングで設定することができます。
オブジェクトを生成しない項目を空のままにして、メッセージおよびIDocタイプ(必須項目)のみ、または汎用モジュールの1つ(オプション項目)のみを生成することができます。
-
-
エントリを確認します。
-
[セグメント名の入力]ダイアログボックスが表示されます。
-
セグメント名を入力します。
推奨されるセグメントタイプは、メッセージタイプまたはBAPI構造から派生しています。
セグメントに1000バイトを超えるデータが含まれている場合、子セグメントはそのセグメントから自動的に生成されます。子セグメント名は、名前の長さが27桁未満の場合、元のセグメントに1、2、…の数字が追加されて拡張されます。
-
インターフェースの変更
前提条件:このBAPIのオブジェクトはすでに作成されています。
BAPIが変更された後に既存のALEインタフェースのオブジェクトを再生成するには、変更を選択します。オブジェクトメソッドのインタフェース構造が変更された場合、IDocタイプとIDocセグメントが再生成されます。汎用モジュールは、IDocタイプまたはセグメントの1つが変更された場合にのみ再生成することができます。オブジェクトを作成するときと同様に、ここにもダイアログボックスが表示されます。このダイアログボックスには、システムにすでに存在するオブジェクトが表示されます。入力フィールドではありません。フィールドが空の場合、そのオブジェクトを生成できます。
-
ディスプレイインターフェース
前提条件:このBAPIのオブジェクトはすでに存在します。このBAPIの既存のオブジェクトがすべて表示されます。これにより、BAPIメソッドとIDocメッセージタイプの関係の概要がわかります。
-
インターフェースの削除
前提条件:このBAPIのオブジェクトはすでに作成されています。汎用モジュールは、システムに存在する場合は削除することができます。IDoc構造がまだリリースされていない場合は、削除されます。IDocセグメントは、リリースされておらず、他のIDocで使用されていない場合にのみ削除されます。最後に、メッセージタイプがIDocタイプに割り当てられていない場合、メッセージタイプは削除されます。
-
インターフェースを確認する
前提条件:このBAPIのオブジェクトはすでに作成されています。システムは、このBAPIに関連するすべてのオブジェクトがシステムで利用可能かどうかをチェックします。また、オブジェクト(IDocタイプとセグメント)がすでにリリースされているかどうかもチェックします。オブジェクトのリリースステータスは変更できます(以下の注のリリースの設定とキャンセルを参照)。
-
-
-
-
インターフェイスを解放できます。開発者は、IDocタイプおよびセグメントのリリースステータスを変更できます([
]を選択することにより)。-
必要な権限は、権限オブジェクトS_IDOCDEFTのS_IDCDFT_AL+およびS_IDCDFT_ALLです。
オブジェクトを解放する前に、関連するBAPIがすでに解放されている必要があります。オブジェクトがリリースされると、システムは最初に、BAPIメソッドで生成されたインタフェースが現在のステータスであることを確認します。オブジェクトが解放されていない場合は、インターフェイスを再生成するかどうかを尋ねられます。リリースに関連するセグメントとIDocタイプが決定されます。新しいステータスは、まだリリースされていないオブジェクトに割り当てられます。リリースはいつでもリセットできます。このアクションは、トランスポートシステムに接続されています。生成された汎用モジュールはリリースされません。
-
結果
生成されたオブジェクトとそのステータスが画面に表示されます。すべての変更は移送依頼に入れられます。