InventoryLevelManager コラボレーション・テンプレート

InventoryLevelManager コラボレーション・テンプレートは、あるアプリケーションから別のアプリケーションへ、特定の Inventory Type の在庫レベル情報を同期します。コラボレーションは、在庫レベルの「スナップショット」を収集したり複数のシステムを定期的に同期したりするよう設計されています。

IBM では以下を推奨します。

InventoryLevelManager は、汎用 InventoryLevel ビジネス・オブジェクトを使用して、特定の Inventory Type および Stock Type の品目の在庫量を収集します。

Inventory Type と Stock Type

Inventory Type は、在庫のカテゴリーを表します。 このカテゴリーを使用すると、所有権や物理的な場所ごとに個別に管理されている在庫を組織が表すことができます。 例えば、企業は以下の Inventory Type を使用します。

これらの各 Inventory Types は、単一の汎用 InventoryLevel ビジネス・オブジェクトで表されます。

Stock Type は、在庫の状態を表します。 Stock Types には、「Unrestricted」、「Quality Inspection」、「Blocked Stock」、「In-Transit 」などがあります。 Inventory Types と Stock Type の各組み合わせは、単一の汎用 InventoryLevel ビジネス・オブジェクトで表されます。

参照先 Item の同期

InventoryLevelManager は在庫レベルのみを同期しますが、適切なコラボレーションを呼び出して以下の関連するビジネス・オブジェクトを検証または同期するように構成することができます。

ビジネス・オブジェクト 関連するコラボレーション・プロパティー 呼び出し先コラボレーション
Item

ItemBasic

ItemOrder

ItemPlanning

VERIFY_SYNC_ITEM ITEM_TYPE

ItemSync

ItemWrapper

コネクターのサポート

InventoryLevelManager が実行するプロセスのほかに、IBM WebSphere Business InterChange Server のコネクターには、ソース・アプリケーションとしての役割において以下の機能があります。

注: これらの機能はアプリケーション固有です。特定のアプリケーションの機能を判断するには、そのビジネス・オブジェクトの解説書を参照してください。

問題と前提事項

コラボレーション・オブジェクトのセットアップ

この節では、ポート・バインディングについて説明し、InventoryLevelManager に基づくコラボレーション・オブジェクトをセットアップするために必要なステップを説明します。コラボレーション・テンプレートの標準の機能、ポート、および構成プロパティーについて、およびコラボレーション・オブジェクト作成に関する一般情報については、『Required Documents for Creating Collaboration Objects』にリストされている文書を参照してください。

ポート情報

図 1 に、System Manager で表示される InventoryLevelManager のポートを示します。

図 1. InventoryLevelManager コラボレーションのポート

注: コラボレーション・オブジェクトでポートを使用しないようにするには、そのポートをポート・コネクターにバインドしてください。これにより、コラボレーション・オブジェクトが追加機能を提供せずに、そのポートは未使用として示されます。

ポート名: DestinationAppRetrieve
ビジネス・オブジェクト バインド先 機能 使用される動詞
InventoryLevel 宛先アプリケーションのコネクター 参照値のビジネス・オブジェクトを送信して、完全な値のビジネス・オブジェクトを検索します。

RetrieveByContent


ポート名: From
ビジネス・オブジェクト バインド先 機能 使用される動詞
InventoryLevel ソース・アプリケーションのコネクター、または呼び出し側コラボレーション トリガー・ビジネス・オブジェクトを受け取ります。コラボレーションが正常に終了した場合、このポートは、同期呼び出しの最後に、トリガー・ビジネス・オブジェクトをソース・アプリケーションに戻します。

Create Retrieve RetrieveByContent Update Delete


ポート名: To
ビジネス・オブジェクト バインド先 機能 使用される動詞
InventoryLevel 宛先アプリケーションのコネクター

トリガー・ビジネス・オブジェクトをコラボレーションから送信します。

Create Update Delete


ポート名: ToItemWrapper
ビジネス・オブジェクト バインド先 機能 使用される動詞
任意の汎用 item ビジネス・オブジェクト (Item、ItemBasic、ItemOrder、ItemPlanningなど)
  • ItemWrapper の From ポート (VERIFY_SYNC_ITEM = "verify" または "sync" の場合)
  • ポート・コネクター (VERIFY_SYNC_ITEM = "neither" の場合)
検証または同期のために参照値 Item ビジネス・オブジェクトを送信します。

Sync または Exists

コラボレーション・オブジェクトのセットアップ

InventoryLevelManager は、InventoryLevel ビジネス・オブジェクトのみを同期するスタンドアロンのコラボレーションとして使用できます。 また、他のコラボレーションとともに使用して、参照先 Item の検証または同期を行うこともできます。

InventoryLevelManager のスタンドアロンとしての使用

InventoryLevelManager をスタンドアロンのコラボレーション・オブジェクトとしてセットアップする手順は、以下のとおりです。

  1. InventoryLevelManager コラボレーション・オブジェクトを作成します。
  2. コラボレーション・オブジェクトの ToItemWrapper ポートを宛先アプリケーションまたは Port コネクターにバインドします。
  3. ポート情報』の説明に従って、残りのポートをバインドします。
  4. InventoryLevelManager コラボレーション・オブジェクトの VERIFY_SYNC_ITEM 構成プロパティーを「neither」に設定したままにします。
  5. 構成プロパティー』の説明に従って残りの構成プロパティーを設定します。 

InventoryLevelManager のコラボレーション・オブジェクト・グループでの使用

InventoryLevelManager プロセスの一部として参照先 Item を検証または同期するには、以下のいずれかのコラボレーション・オブジェクト・グループを作成します。


検証 同期 必要なコラボレーション
Item   InventoryLevelManager、ItemWrapper
  Item InventoryLevelManager、ItemWrapper、ItemSync

ContractSync のコラボレーション・オブジェクト・グループでの使用

コラボレーション・オブジェクト・グループの一部として InventoryLevelManager をセットアップする手順は、以下のとおりです。

  1. InventoryLevelManager、ItemWrapper、(オプションで) ItemSync テンプレートからコラボレーション・オブジェクトを作成します。
  2. InventoryLevelManager コラボレーション・オブジェクトを編集して、ToItemWrapper ポートを ItemWrapper コラボレーション・オブジェクトの From ポートにバインドします。
  3. InventoryLevelManager コラボレーション・オブジェクトの残りのポートをこの文書の『ポート情報』節の説明にしたがってバインドします。
  4. InventoryLevelManager コラボレーション・オブジェクトの VERIFY_SYNC_ITEM 構成プロパティーを設定します。Item 検証の場合は「verify」に、Item 同期の場合は「sync」に設定します。
  5. ItemWrapper コラボレーション・オブジェクトを編集して、To ポートをバインドします。
  6. ItemWrapper コラボレーション・オブジェクトの残りのポートをバインドします。詳しくは、Wrapper コラボレーションの参照ページの『ポート情報』を参照してください。注: ItemWrapper コラボレーション・オブジェクトの From ポートは、System Manager によってすでに InventoryLevelManager コラボレーション・オブジェクトへバインドされていることがあります。Item 検証の場合、ステップ 8 に進んでください。
  7. Item 同期の場合、ItemSync コラボレーション・オブジェクトを編集してポートをバインドします。 System Manager は、その From ポートをすでに ItemWrapper コラボレーション・オブジェクトにバインドしているはずです。 残りのポートをバインドします。詳しくは、ItemSync コラボレーションの参照ページの『ポート情報』を参照してください。手順 8 に進んでください。
  8. 各コラボレーションの構成プロパティーを設定します。詳しくは、以下を参照してください。

コラボレーション・テンプレートのプロセス

この節では、このコラボレーション・テンプレートのプロセス・ロジックについて説明します。

プロセス・ロジックの概要

プロセス・ロジックには、以下のサブプロセスが含まれます。

図 2 および図 3 は、InventoryLevelManager のプロセス・ロジックを示しています。

図 2. InventoryLevelManager コラボレーションのプロセス・ロジック (その 1)

図 3. InventoryLevelManager コラボレーションのプロセス・ロジック (その 2)

継承されたプロセス・ロジック

このコラボレーション・テンプレートでは、以下の標準コラボレーション・ビジネス・プロセスが使用されます。

これらのビジネス・プロセスについては、『Required Documents for Creating Collaboration Objects』を参照してください。

参照先 Item の検証または同期

VERIFY_SYNC_ITEM プロパティーの値に応じて、コラボレーションは、在庫記録された Item を検証または同期のために ItemWrapper コラボレーションに送信します。図 4 に、InventoryLevelManager が参照先 Item を検証または同期するプロセスを示します。

図 4. Item の検証または同期

注: コラボレーションが ItemBasic、ItemOrder、および ItemPlanning を正常に処理するには、インストールのリポジトリーに Utility ビジネス・オブジェクトが含まれている必要があります。このビジネス・オブジェクトはコラボレーション・コード内で参照され、これによって一時的イテレーター変数がインスタンス化されます。このオブジェクトがリポジトリーに存在しない場合、コラボレーションは失敗します。

RetrieveByContent

InventoryLevelManager コラボレーションは、RetrieveByContent 動詞を使用してトリガー・ビジネス・オブジェクトを検索できます。 ソース・アプリケーションのビジネス・オブジェクトにキー値が含まれない場合、オブジェクトはこの動詞を使用していると想定されます。ビジネス・オブジェクトのマップおよび宛先アプリケーションのコネクターは、特定の重要な属性の値を使用して、宛先アプリケーションからビジネス・オブジェクトを戻します。

RetrieveByContent の設計上の考慮事項

ビジネス・プロセスが、キー値 (例えば選択基準) を指定しないでデータを検索するよう命令する場合、このプロセスを統合する単数または複数のコネクターで RetrieveByContent 動詞がサポートされる必要があることを意味します。つまりコネクターは、アプリケーションからデータを検索するときに、RetrieveByContent 動詞とともに動作するビジネス・オブジェクトの非キー属性値に基づく必要があると認識するよう設計する必要があります。

ただし、非キー値検索により固有のオブジェクトが検索されずに複数のオブジェクト (行) が検索される場合、その対処に問題が生じます。

IBM WebSphere Business InterChange Server の標準コネクター機能では、キー・メソッドによる検索を使用して固有のオブジェクトを戻します。非キー値検索を可能にするため、コネクターの設計の一環として以下のことを考慮します。

  1. コネクターは該当のオブジェクト用に RetrieveByContent 動詞をサポートする必要があります。
  2. さらに、宛先アプリケーション・コネクターは、非キー値検索の結果として複数のヒットがあっても、RetrieveByContent 要求に 1 つのオブジェクトのみを戻すよう設計します (現在、IBM では Clarify コネクターがこの動作を行います)。

また、結果セット (複数のオブジェクト) を検索するには、IBM'sInventoryLevel ビジネス・オブジェクトおよびコラボレーションへの設計変更が必要です。以下の手順を実行してください。

例えば、新規ビジネス・オブジェクト (InventoryLevelWrapper と命名します) をリポジトリー内に作成する必要があるとします。 InventoryLevelWrapper にはカーディナリティー「n」を持つ子コンテナーとして InventoryLevel ビジネス・オブジェクトが含まれ、検索に必要な属性がヘッダー・レベルに含まれます。

ソース・アプリケーション・コネクターが InventoryLevel ビジネス・オブジェクトを SubscriptionDelivery 上のコラボレーションに送信する場合、まずコラボレーションが新規の InventoryLevelWrapper オブジェクトをインスタンス化する必要があります。 次に、コラボレーションは必要な属性をトリガー・ビジネス・オブジェクト (InventoryLevel) から InventoryLevelWrapper のヘッダー・レベルにマップします。 このオブジェクトは、検索のために宛先アプリケーションに送信されます。宛先アプリケーション・コネクターが複数の在庫レベルを検索した場合、これらのビジネス・オブジェクトは InventoryLevelWrapper ビジネス・オブジェクトの子コンテナーに保管され、コラボレーションに戻されます。 コラボレーションは、InventoryLevelWrapper ビジネス・オブジェクトを「アンパック」して、子コンテナーの各インスタンスを取得する必要があります。 次に、コラボレーションは、別の Wrapper コラボレーションを介して各 InventoryLevel をソース・アプリケーションへ送信します。 InventoryLevel オブジェクトの全インスタンスがソース・アプリケーションへ送信されると、コラボレーション・オブジェクト・グループ全体が終了します。 図 5 は、InventoryLevelManager の RetrieveByContent プロセスを示しています。

図 5. InventoryLevelManager コラボレーションの RetrieveByContent プロセス

差し戻し処理

InterChange Server は、トランザクション・コラボレーションのいずれかのステップで失敗が発生した場合、トランザクションをロールバックできます。例えば、InventoryLevelManager がトランザクションのコラボレーションに参加するコラボレーション・オブジェクト・グループのメンバーである場合、InventoryLevelManager のアクションは、より大きなトランザクションの 1 つのサブトランザクション・ステップとなります。 コラボレーション・オブジェクト・グループのビジネス・プロセスでいずれかのステップが失敗すると、トランザクション・コラボレーションは InterChange Server がグループ内のコラボレーションの処理をどのようにロールバックすればよいか明示します。

TradingPartnerOrderManagement コラボレーション・オブジェクトが他のコラボレーションとは独立に使用されている場合、そのプロセスは 1 つのトランザクション・ステップとなります。 このような場合には、ロールバックを実行する必要はありません。

1 つのコラボレーション・オブジェクト、またはコラボレーション・オブジェクト・グループにロールバックを実行させるには、コラボレーションのテンプレートを変更する必要があります。 WebSphere Business Integration システムにおけるトランザクション処理を理解するためには、「テクニカル入門 (IBM WebSphere InterChange Server)」を参照してください。コラボレーション・テンプレートへのトランザクション処理の追加については、『Required Documents for Creating Collaboration Objects』を参照してください。

トランザクション処理を実行できるようにコラボレーション・オブジェクトを拡張するには、以下の手順を行います。

  1. この機能を、コラボレーションのテンプレート、およびコラボレーション・オブジェクト・グループ内のすべてのテンプレートに追加します。
  2. コラボレーション・オブジェクト、およびコラボレーション・オブジェクト・グループのすべてのメンバーの最小トランザクション・レベルを、None より大きい値に設定します。「最小限の努力」以上に設定した場合、いずれかのサブトランザクション・ステップで失敗が発生すると、コラボレーション・オブジェクトおよびグループ内のメンバー・コラボレーションは、すべてのビジネス・オブジェクトに対して実行された Create、Update、および Delete 操作に対して差し戻しを実行します。
  3. コラボレーション・オブジェクト、およびコラボレーション・オブジェクト・グループのすべてのメンバーの USE_RETRIEVE プロパティーを「true」に設定します。 コラボレーションが値を変更する前にそれらの値を検索するようにすると、コラボレーションが元の値を Update または Delete プロセスで復元できます。

構成プロパティー

この節では、このコラボレーション・テンプレートの標準プロパティーおよび固有のプロパティーについて説明します。

標準プロパティー

このコラボレーション・テンプレートでは、以下のコラボレーション・テンプレートの標準構成プロパティーを使用します。

これらの構成プロパティーについては、『Required Documents for Creating Collaboration Objects』を参照してください。

このコラボレーション・テンプレート固有のプロパティー

このコラボレーション・テンプレートには、標準構成プロパティーに加えて、以下に示す構成プロパティーがあります。

InventoryLevelManager コラボレーション・テンプレートに固有の構成プロパティー

プロパティー名とその説明 可能な値 デフォルト値

CONVERT_NEG

「true」に設定すると、InventoryLevelManager は汎用 InventoryLevel's AdjustedQty 属性の値が負の場合にそれをゼロにします。

「false」に設定すると、InventoryLevelManager は汎用 InventoryLevel の AdjustedQty 属性の値を無視します。

true、false false

ITEM_TYPE

コラボレーションが InventoryLevel ビジネス・オブジェクトを同期する前に同期または検証する必要がある、汎用 Item のタイプを設定します。その VERIFY_SYNC_ITEM プロパティーが「sync」または「verify」と評価される場合、InventoryLevelManager はこのプロパティーの値を使用して、同期または検証する品目のタイプを判別します。

Item、ItemBasic、ItemOrder、または ItemPlanning

Item

SEND_DELETE

「true」に設定すると、InventoryLevelManager をトリガーとなる InventoryLevel ビジネス・オブジェクトの AdjustedQty 属性がゼロと評価される場合に、InventoryLevelManager が動詞を Delete に変更します。注: USE_RETRIEVE プロパティーも「true」に設定する必要があります。

「false」に設定すると、InventoryLevelManager は動詞を Delete に変更しません。

true、false false

VERIFY_SYNC_ITEM

「sync」に設定すると、InventoryLevelManager が宛先アプリケーション内の在庫記録された Item を同期します。InventoryLevelManager は ItemId (および、Plant 属性などその他必要な属性値) を InventoryLevel ビジネス・オブジェクトからコピーし、ITEM_TYPE プロパティーで指定したタイプの汎用ビジネス・オブジェクトを作成します。InventoryLevelManager は、そのビジネス・オブジェクトを Sync 動詞とともに ItemWrapper に送信します。次に、ItemWrapper はすべての属性の値をソース・アプリケーションから検索し、ビジネス・オブジェクトを Create 動詞とともに ItemSync に送信します。ItemSync が在庫記録された Item の作成に失敗した場合、InventoryLevelManager は INFORMATIONAL_EXCEPTIONS プロパティーに指定されたとおりにエラーを処理します。

「verify」に設定すると、InventoryLevelManager が宛先アプリケーション内の在庫記録された Item を検証します。 InventoryLevelManager は InventoryLevel ビジネス・オブジェクトから ItemId をコピーし、ITEM_TYPE プロパティーに指定されたタイプの汎用ビジネス・オブジェクトを作成します。 InventoryLevelManager は、そのビジネス・オブジェクトを Exists 動詞とともに ItemWrapper に送信します。 次に、ItemWrapper は宛先アプリケーションからビジネス・オブジェクトを検索します。ItemWrapper が在庫記録された Item の検索に失敗した場合、InventoryLevelManager は INFORMATIONAL_EXCEPTIONS プロパティーに指定されたとおりにエラーを処理します。

「neither」に指定すると、InventoryLevelManager は、トリガーとなる InventoryLevel ビジネス・オブジェクトを同期するときに、宛先アプリケーション内の在庫記録された Item を最初に同期したり、既存の在庫記録された Item を検証したりすることはありません。

neither、verify、sync neither

コラボレーション・メッセージ

このコラボレーション・テンプレートのメッセージの説明を表示するには、Log Viewer を起動し、コラボレーション・テンプレートのメッセージ・ファイルを開いてください。Log Viewer を起動してコラボレーション・テンプレートのメッセージ・ファイルを開くには、以下の手順に従います。

  1. 「スタート」メニューで、「プログラム」>「IBM WebSphere InterChange Server」>「IBM WebSphere Business Integration Toolset」>「Administrative」>「Log Viewer」の順にクリックします。
  2. 「ファイル」メニューで、「開く」をクリックします。
  3. 「Look In」フィールドを使用して、現在のフォルダーを WebSphere_ICS_root_dir \collaborations \messages に変更し、このコラボレーション・テンプレートのメッセージ・ファイルを選択します。

アップグレード情報

アップグレード処理

このコラボレーション・テンプレートのより新しいバージョンにアップグレードするには、以下の手順を行います。

  1. 現在の InventoryLevelManager コラボレーションを停止します。
  2. リポジトリーをバックアップします。詳しくは、「システム管理ガイド」を参照してください。
  3. コラボレーション・テンプレートをカスタマイズしている場合には、以下の手順を行います。
  4. 新規の InventoryLevelManager コラボレーション・テンプレートをインストールします。
  5. 新しいコラボレーション・テンプレートにカスタマイズを追加します。
  6. 新しいコラボレーション・オブジェクトを作成し、適切なコネクターにバインドします。 詳しくは、『コラボレーション・オブジェクトのセットアップ』を参照してください。
  7. 新しいコラボレーション・オブジェクトを実行してテストします。

Copyright IBM Corp. 1997, 2003