プロセス
複雑なデータ型からALEインターフェイスを生成するには、次の手順に従います。
-
トランザクションコードBDFGでトランザクションを開始します。
-
インターフェイスの基になる汎用モジュールとビジネスオブジェクトタイプを入力します。
-
インターフェイスを維持、表示、チェック、または削除するには、[インターフェイス]メニューでオプションを選択するか、関連するアイコンを選択します。
次の機能を使用できます。
-
インターフェースの作成
生成されるオブジェクトの名前が提案されます。それらを変更することができます。
-
メッセージタイプの名前を指定します。
エントリを確認します。
-
次のダイアログボックスで次のエントリを作成できます。
IDoctyp
アウトバウンド汎用モジュール
インバウンド汎用モジュール
提案されたパッケージと汎用グループは、汎用モジュールが属するものです。インターフェイスを生成するには、独自のパッケージと機能グループを使用する必要があります。
-
ALEinboungページには次のオプションが用意されています。
-
更新タスクで
データベースの変更が更新タスクを使用してモジュールによって実行される場合は、このオプションを選択する必要があります。
-
大量処理
一括処理を許可する場合は、このオプションを選択する必要があります。関連するアプリケーションモジュールは、一括処理をサポートする必要があります。
オブジェクトを生成しない項目を空白のままにしておくと、メッセージタイプ(必須項目)とIDocタイプ(必須項目)または汎用モジュールの1つ(オプション項目)のみを生成することができます。
エントリを確認します。
構造体の長さが1000バイトを超える場合、インターフェイスの生成中に、構造体は子セグメントを持つ親セグメントにマップされます。
生成されたオブジェクトはツリー構造として表示されます。ここから、個々のオブジェクトにアクセスできます。すべての変更は移送依頼に入れられます。
-
インターフェースの変更
モジュールへの変更後に既存のALEインタフェースのオブジェクトを再生成するには、変更を選択します。IDocタイプとIDocセグメントは、インターフェース構造が変更された場合にのみ再生成されます。汎用モジュールは常に再生成されます。
オブジェクトを作成するときと同様に、ここにもダイアログボックスが表示されます。このダイアログボックスには、システムにすでに存在するオブジェクトが表示されます。入力フィールドではありません。
フィールドが空の場合、そのオブジェクトを生成できます。
-
ディスプレイインターフェース
このインターフェイスの既存のすべてのオブジェクトを表示するには、 [表示]を選択します。モジュールとALEインターフェースの関係の概要がわかります。アプリケーションモジュールが存在しなくても、オブジェクトは表示されます。
-
インターフェースの削除
ALEインタフェースを削除するには、削除を選択します。
汎用モジュール(インバウンドおよびアウトバウンド)がシステムにある場合は削除されます。IDoc構造がまだリリースされていない場合は、削除されます。IDocセグメントは、リリースされておらず、他のIDocで使用されていない場合にのみ削除されます。
最後に、メッセージタイプがIDocタイプに割り当てられていない場合、メッセージタイプは削除されます。
-
インターフェースを確認する
チェックを選択して、このALEインタフェースに関連するすべてのオブジェクトがシステムで利用可能かどうかをチェックします。オブジェクト(IDocタイプおよびセグメント)がリリースされているかどうかもチェックされます。オブジェクトのリリースステータスは変更できます(リリースの設定とリリースのキャンセルを参照)。アプリケーションモジュールが存在しなくなると、警告がログに記録されます。
-
リリースインターフェイス
開発者は、IDocタイプとセグメントのリリースステータスを変更できます。
モジュールの生成されたインターフェースがリリースされる前に最新であることがチェックされます。そうでない場合は、リリースできません。リリースに関連するセグメントとIDocタイプが通知されます。新しいステータスは、まだリリースされていないオブジェクトに割り当てられます。
リリースは、開発中いつでもリセットできます。このアクションは、トランスポートシステムに接続されています。
生成された汎用モジュールはリリースされません。
プログラミングモデル
アウトバウンド処理におけるALEレイヤのアプリケーションインターフェイス
アウトバウンド側のアプリケーションから呼び出されるALEレイヤ用に生成されたアウトバウンド汎用モジュールは、以下のようになります。
アプリケーションモジュールのパラメータに加えてAPPLICATION_OBJECTS、インターフェイスには次のパラメータが含まれています。
RECEIVERS
このパラメーターはオプションです。
-
このパラメータに値が含まれていない場合、メッセージタイプの通信パートナーは、ALE配布モデルの情報に従って決定されます。有効な通信パートナーが見つからない場合でも、IDocは作成されますが、メッセージは送信されません。それ以外の場合は、IDocが作成され、メッセージがパートナーに送信されます。このコンテキストでは、すべての通信パートナーは論理システムです。
-
このパラメータに値(通信パートナーとしてのパートナー番号とパートナータイプ)が含まれている場合、IDocは常に作成され、システムはALE配布モデルを読み取らずに通信パートナーにメッセージを送信しようとします。
COMMUNICATION_DOCUMENTS
更新タスクで汎用モジュールが呼び出されず、IDocを登録できる場合は、この戻りパラメータが入力されます。処理タイプに応じて構造が異なります。
-
個別処理-汎用モジュールは1つのオブジェクトのみを処理できます。この場合、リターンテーブルのフィールドOBJKEYには、パートナーに送信されたIDoc番号がフィールドRCVPRNとで含まれていますRCVPRT。
-
一括処理-汎用モジュールは、一度に複数のオブジェクトを処理することができます。情報は個別の処理と同じ方法で返されますOBJ_INDEXが、転送されたオブジェクトのシーケンスから決定された各オブジェクトのフィールドにインデックスもあります。
これは、アプリケーションプログラムがreturnパラメータを介してデータベースに保存された作成済みIDocの詳細を要求できることを意味しますCOMMUNICATION_DOCUMENTS。たとえば、通信パートナは項目RCVPRNおよびRCVPRTおよび項目からの適切なIDoc番号から決定することができOBJKEYます。このパラメータに値が含まれていない場合(汎用モジュール呼び出しが更新タスクにない場合)、IDocは登録されません。
原則として、アウトバウンド処理のエラーは純粋に技術的なものであり、例外をトリガーする必要がありますERROR_CREATING_IDOCS。個別の論理システムが定義されていない、使用可能なメッセージタイプがない、 IDocタイプがないか正しくない、データレコードが転送されていないなどの重大なエラーは、Aメッセージ(中止)とともにALEレイヤーから直接発行されます。呼び出し側プログラムは他の場合に責任があります。通常、中止すると、データベースで行われた変更が自動的にロールバックされます。
更新タスクで汎用モジュールが呼び出された場合、戻りパラメータは入力されず、例外はトリガCOMMUNICATION_DOCUMENTSされません。ERROR_CREATING_IDOCS
コミュニケーションパートナー、ALE配布モデル、およびパートナープロファイル
拡張コンセプトによれば、パートナーまたは顧客によって生成された複数のALEインターフェースが、複雑なデータ型を持つ1つのアプリケーションモジュールで使用できる場合があります。どのALEインターフェースが実行時に呼び出され、どの通信パートナーがALE配布モデルで定義されたメッセージ・タイプの1つによって決定されるか。これは、アプリケーションが最初にALEによって提供されるインターフェースからこの情報を判別してから、ALEインターフェースを呼び出す必要があることを意味します。
同様に、アウトバウンドパラメータもパートナープロファイルによって決定することができます。
ALEインタフェースの生成元であるアプリケーション汎用モジュール名は、パラメータで転送されますAPPL_FUNCTION。対応するメッセージがALE配布モデルで維持されている場合、戻りパラメーターPARAM_OUTBOUNDが入力されます。FUNCNAMEアプリケーションは、PARAM_OUTBOUNDパラメータ(テーブルタイプを参照)の項目からどのALEアウトバウンド汎用モジュールが呼び出されるかを確認し、この汎用モジュールがこの項目からどのメッセージに対応するかを確認しますMESTYPE。アプリケーションは、からも確認しますRECEIVER通話が複数の有効な通信パートナーに関係するか、1つに関係するか、または有効な通信パートナーがないかを確認します。ALE分散モデルを使用して通信パートナを決定する場合は、パラメータを使用して通信パートナを明示的に渡さずに、関連データを使用して決定されたアウトバウンド汎用モジュールを呼び出す必要がありRECEIVERSます。ただし、特定の通信パートナーにのみメッセージを送信する場合は、パラメータを使用して通信パートナーを転送する必要がありRECEIVERSます。
作業をコミットする
生成されたアウトバウンド汎用モジュールを呼び出した後COMMIT WORK、アプリケーションのプログラミングに含める必要があります。コミット作業は、現在のトランザクションを閉じ、データベースが投稿によって更新されるか、IDocがtRFCまたはファイルインターフェイスを介してディスパッチされる更新タスクやバックグラウンドタスクなどの追加タスクを開始します。
COMMIT WORKは、呼び出しの直後に実行する必要はありません。より高い呼び出しレベルで実行したり、いくつかのアウトバウンド汎用モジュール呼び出しの後に実行したりすることもできます。このステップでは多くのプロセスを実行するCOMMIT WORK必要があるため、アウトバウンド汎用モジュール呼び出し用に作成されたIDocロックを。の前に削除しないでくださいCOMMIT WORK。これにより、これらのIDocで不要なアクションが実行されるのを防ぎます。
インバウンド側のアプリケーションへのALEレイヤーインターフェイス
インバウンド側のALEレイヤによって呼び出される生成されたインバウンド汎用モジュールには、以下の標準インタフェースがあります。
このインバウンド汎用モジュールでは、アプリケーションデータを含むアプリケーションモジュールが呼び出されます。「インターフェースと命名規則」のセクションで説明されているように、アプリケーションモジュールはを実行できませんCOMMIT WORK。アプリケーションは、対応するIDocが正しいステータスを取得するためのreturnパラメータで処理結果を返す必要があります。
アプリケーションは、独自の汎用モジュール内から以下の汎用モジュールを呼び出すことにより、IDocの通信データを決定することもできます。