BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs >
WebLogic Platform >
アプリケーション ツアー > Avitek の購入担当者とサプライヤとの接続 |
WebLogic Platform サンプル
|
Avitek の購入担当者とサプライヤとの接続
企業間取引 (B2B) ポータル ツアーでは、Avitek の購入担当者がサプライヤから見積もりを取り、注文書を発行してサプライヤから受付確認を受け取るための、架空のイントラネット サイトについて説明します。ビジネス プロセスは、WebLogic Integration によって管理されます。
注意: このオンライン ブックに掲載されている情報は、アプリケーションの一部として実行される状況依存ツアー ガイド ポートレットでも入手できます。
この企業間取引 (B2B) ポータル ツアーには、以下の節があります。
B2B ポータルのサンプル アプリケーションは、Avitek のイントラネットの [Inventory] ページから始まります。ログイン ユーザ Jason Tang がこのプロセスの手順をよりよく理解できるように、図 processStep1.gif がロードされています。初めてこのページを訪れた場合、Product Inventory ポートレットには、Avitek の販売商品の一部のデータがあらかじめロードされています。商品の在庫が最低水準を下回っている場合には、データが赤色で表示されます。
Product Inventory ポートレットの技術詳細 この節では、このページで行われる処理について詳しく説明します。 はじめに b2bPortal は、架空の会社である Avitek Digital Imaging が使用するサンプルの企業間取引 (B2B) サイトです。Avitek の購入担当者は、このサイトを使って、外部のサプライヤから部品についての見積もりを取り寄せ、注文書を発行します。 b2bPortal は、e2eApp エンタープライズ アプリケーションの一部です。このエンタープライズ アプリケーションの名前には、e2e が含まれています。「e2e」とは、エンド ツー エンド (end-to-end) を略したもので、WebLogic Platform の主要機能のすべての範囲を示すサンプルであることを意味しています。 この [Inventory] ページの Product Inventory ポートレットには、Avitek の販売商品の一部のデータがあらかじめロードされています。商品の在庫が最低水準を下回っている場合には、データが赤色で表示されます。現在の在庫水準を確認するため、データベース内の在庫テーブルに、Application Integration (AI) フレームワークを介して読み込み専用モードでアクセスしました。AI フレームワークは、WebLogic Integration によって提供されます。 サンプル シナリオでは、Avitek Digital Imaging は、自動化、サイクル時間の短縮、在庫水準を下げることによって、サプライ チェーンを効率化し、コスト削減を図ろうとしていました。在庫水準を追跡して補充を行うために、Avitek は、ポータル ユーザ インタフェースを使って、販売側の B2B 交換、パートナとの提携、サプライ チェーン管理について、企業間取引ソリューションを実現しました。 このサンプル アプリケーションの B2C (企業消費者間取引) ポータル b2cPortal をすでにお使いの場合は、ポートレットと Webflow 処理についての説明が「技術詳細」の節に記載されていることをご存知でしょう。ポートレットと Webflow は b2bPortal でも重要な項目ですが、ここでは、Avitek 購入担当者用に実装されているサプライチェーン ソリューションに焦点をあてて説明します。ただし、この節でも、ポートレットと Webflow については一部詳細に説明します。 取引相手 この WebLogic Platform b2bPortal サンプル シナリオでは、バイヤ (Avitek Digital Imaging) 1 社とサプライヤ 2 社という取引関係を持つ 3 社が関わります。この 3 社それぞれに、取引相手が BulkLoaderData.xml ファイルでコンフィグレーションされます。サンプル用として、E2E_Buyer、E2E_SupplierOne、およびE2E_SupplierTwo が取引相手として定義されています。 これらの取引相手間では、XOCP ビジネス プロトコルを使って通信を行うため、Avitek は、その WebLogic Integration システムをハブ & スポーク コンフィグレーションとして定義する必要があります。これを受けて、BulkLoaderData.xml ファイルで、第 4 の取引相手 E2E_Hub を定義します。B2B 統合のコンフィグレーションの詳細については、『B2B Integration 入門』の「B2B Integration の基礎」を参照してください。 この E2E_Hub という取引相手は、仲介者として機能します。スポークとなる E2E_Buyer、E2E_SupplierOne、および E2E_SupplierTwo という取引相手間のメッセージの仲介を担当します。E2E_Hub という取引相手は、業務メッセージの送信側でも受信側でもありませんが、トランザクション中は、必要に応じてプロキシ バイヤおよびプロキシ サプライヤとして機能します。 取引相手 3 社 (E2E_Buyer、E2E_SupplierOne、および E2E_SupplierTwo) はそれぞれ、取引相手 E2E_Hub と提携契約を結びます。取引相手 E2E_Hub は、提携契約を連結する役割を果たします。このような連結は、必要不可欠なものです。たとえば、1 つの提携契約の一部としてメッセージを受信し、そのメッセージを他の提携契約の一部として別の取引相手に送る必要があります。同じ配信チャネル (取引相手 E2E_Hub に対して定義されているチャネル) を使用する提携契約が連結されます。 各取引相手要素は、さまざまな属性、サブ要素によって特徴付けられ、その中には、名前、電子メール、電話、FAX などの単純な識別情報も含まれます。 下の表は、各取引相手のロールをまとめたものです。
WebLogic Integration Studio の使い方 WebLogic Integration Studio を使用すると、使い慣れたフローチャート図を使用して、新しいワークフローの設計、および実行中のワークフローの監視を行うことができます。この b2bPortal サンプルを実行する際に、WebLogic Integration Studio を実行する必要はありませんが、このサンプルのノードがどのように定義され、コンフィグレーションされたかを学ぶために、いずれかのワークフローやワークフロー ノードの詳細を見るのは役に立つでしょう。また、サンプルを実行する際には、Studio を使用してそのワークフローを監視できます。 Windows システムで、[スタート|プログラム|BEA WebLogic Platform 7.0|WebLogic Integration 7.0|Studio] を選択します。 以下を入力して、Studio にログオンします。
例:
注意: http ではなく t3 を使用します。 Studio でのワークフロー テンプレートの表示 Studio 内で、ワークフロー テンプレートとそのプロパティを表示するには、以下の手順に従います。
weblogic700¥samples¥integration¥samples¥e2e¥workflows
Studio 内のいずれかのノードをダブルクリックすると、そのノードの [プロパティ] ダイアログ ボックスが表示されます。Studio ツールと機能の詳細については、WebLogic Integration のドキュメントの『WebLogic Integration Studio ユーザーズ ガイド』を参照してください。
ビジネス プロセスとワークフローのモデル化
この節では、WebLogic Integration が提供するビジネス プロセス管理 (Business Process Management: BPM) を簡単に紹介します。
会話定義で取引相手に割り当てられたロールを実現するワークフローをコラボレイティブ ワークフローといいます。
1 つのワークフロー テンプレートが 1 つのワークフローを表し、その実装のさまざまなワークフロー テンプレート定義 (バージョン) を組み合わせます。ワークフロー テンプレートの設計と編集は、WebLogic Integration Studio で行います。以下のような BPM プラグインにより、WebLogic Integration Studio の機能を拡張できます。
このサンプル シナリオでは、取引相手は、プライベート ワークフローとコラボレイティブ ワークフローの両方を実装しています。プライベート ワークフローは、コラボレイティブ ワークフローと組み合わせて動作し、その取引相手に対するローカル処理を実装します。ローカル処理とプライベート処理は、会話定義で指定する必要はありません。たとえば、取引相手が会話を開始する際、その取引相手のプライベート ワークフローは、コラボレイティブ ワークフローを開始して、会話を開始することができます。
詳細については、WebLogic Integration のドキュメントを参照してください。このサンプルでは、続くポータル ページの「技術詳細」の節で、このサンプル アプリケーションで実装されている「価格と在庫の問い合わせ (Query for Price and Availability: QPA)」と「注文書 (Purchase Order: PO)」という 2 つのビジネス プロセスについて説明します。
在庫ページ ポートレット
[Inventory] ページは、b2bPortal 内の 3 つのタブから構成されるページの 1 つです。WebLogic Platform をインストールした BEA_HOME ディレクトリの以下の場所に、e2eApp を構成するファイルがあります。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥...
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp-project¥...
この [Inventory] ページには、以下のポートレットを追加することができます。
[Inventory] ページを構成するすべてのポートレットは、以下のファイルに定義されています。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp-project
¥application-sync¥webapps¥b2bPortal¥b2bPortal.portal
例:
<page-name>Inventory</page-name>
...
<portlet-pool>
<portlet-name>login</portlet-name>
<portlet-name>partinventory</portlet-name>
<portlet-name>productinventory</portlet-name>
<portlet-name>purchasingprocess</portlet-name>
<portlet-name>b2b-tourguide</portlet-name>
<portlet-name>debug</portlet-name>
<portlet-name>anonUser</portlet-name>
</portlet-pool>
これらのポートレットは、開発サイクル時に E-Business Control Center を使用して [Inventory] ページに追加されました。EBCC は、Java クライアントベースのツールの集まりです。このツールには、ルールの定義、Webflow の編集、ポータルの作成と管理などの複雑な作業を簡単に行えるグラフィカル インタフェースが用意されています。E-Business Control Center のユーザは、ポイントアンドクリック方式のインタフェースで作業を行い、サーバと同期をとる XML ファイルを生成します。EBCC の他にも、実行時のポータルの管理に、ブラウザベースの WebLogic Portal Administration Tools を使用しました。
ポータルの開発者は、主にブラウザに表示される前のポートレットの JSP コードに注目します。そのため、この節で使用されるコードの断片や [コードを表示] リンクでは、特定のポートレットのブラウザで表示する前の JSP ファイルについて説明し、これを示します。
b2bPortal のポートレット JSP ファイルは、以下の場所にあります。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥b2bPortal
¥portlets¥...
この [Inventory] ページでは、[コードを表示] リンクで ¥productinventory¥content.jsp ポートレット ファイルのソースを開きます。これは Avitek Product Inventory (1) ポートレットを表します。この content.jsp は、前述のパスの下の productinventory サブディレクトリにあります。
初期ポータル処理の概要
サンプル アプリケーションを起動したとき、サーバが起動し、[はじめに]、すなわち「スプラッシュ」ページが最初に表示されたのは、どういう仕組みによるのでしょうか。まず、サンプル アプリケーションを呼び出す方法にはいくつかの方法があり、WebLogic Platform Quick Start Application から起動する方法や、StartE2E スクリプトの実行という直接的な方法がありました。
どのオプションを使用したかに関わらず、startE2E.bat (Windows) または startE2E.sh (UNIX) スクリプトが呼び出されました。これで、アプリケーションの WebLogic Server インスタンスが起動されましたが、このアプリケーションは、e2eDomain というドメインで実行されるものです。「ドメイン」という言葉は、コンピュータ業界では、さまざまな意味を持っています。BEA 製品でドメインというとき、それは、サーバ、サービス、インタフェース、マシン、関連するリソース マネージャなど、すべて 1 つのコンフィグレーション ファイルで定義されるものの集合を表します。
startE2E スクリプトを実行すると、エンタープライズ アプリケーションの config.xml ファイルからコンフィグレーション情報が読み込まれます。デフォルトでは、このコンフィグレーション ファイルは、BEA 製品がインストールされている以下の BEA_HOME ディレクトリにあります。
weblogic700/samples/platform/e2eApp/config
config.xml ファイルは以下のように定義され、そのドメインのデフォルト Web アプリケーションとして splashPage を設定しています。
<WebServer
DefaultWebApp="splashPage"
LogFileName="./logs/access.log"
LoggingEnabled="true"
Name="e2eServer"
/>
e2eServer が稼動した状態で、http://localhost:7501 などの URL をブラウザで指定すると、以下の場所にある splashPage Web アプリケーションが起動します (Web アプリケーションは「webapp」と略称されることもあります)。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥splashPage
splashPage Web アプリケーションの web.xml コンフィグレーション ファイルでは、<welcome-file-list> 定義の中で index.jsp を指定しました。この web.xml は、以下の場所にあります。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥splashPage¥WEB-INF
スプラッシュ ページで、[購入エージェント「Jason Tang」として自動ログイ
ン] ボタンのグラフィックをクリックして、この [Inventory] ページを表示しました。その結果、スプラッシュ ページから、ポータル アプリケーションの URL と定義済みのログイン資格情報が渡されることになりました。
スプラッシュ ページは、b2bPortal または b2cPortal に自動的にログインできるようにする要求を設定します。これは、このサンプル アプリケーションを簡素化するために行われます。JSP ページにユーザ名とパスワードを組み込むようなことは、普通は行いません。
フォームは、結果として以下のように構成された URL を開きます。
<%
String b2bUrl = "http://" +
request.getServerName() + ":" +
request.getServerPort() + "/" +
B2B_PORTAL_NAME + "/application";
...
この WebLogic Platform サンプル アプリケーションでは、サンプルを最も重要な機能に特化させるために、既存のユーザを自動的にログインすることを選択しました。WebLogic Portal は、その他にも、ログイン認証コードや、Web アプリケーションによるデモグラフィック情報収集テクニックを示すサンプルも提供します。詳細については、『開発者ガイド』を参照してください。
b2bPortal アプリケーションについて、ブラウザに URL が渡されたとき、[Inventory] ページが最初に表示されたのはなぜでしょうか。このプロパティは、WebLogic Portal Administration Tools で設定しました。このツールの [ポータル管理] セクションの [ページおよびポートレット] の下の [ページの選択と順序設定] 画面で b2bPortal のデフォルト ページを設定しました。この値は、データベースの PORTAL_PAGE_P13N テーブルの INDEX_NUMBER カラムに格納されます。
ページ切り替え Webflow イベント
顧客が JSP 上のリンクやボタンをクリックすると、それが 1 つのイベントであると見なされます。イベントは、デフォルト Webflow 内の特定の応答をトリガし、顧客が処理を継続できるようにします。この応答から別の JSP がロードされる場合もありますが、通常は、入力プロセッサや Pipeline が最初に呼び出された場合に行われます。
[Purchasing] ページまたは [Order History] ページで、[Inventory] タブをクリックすると、以下のような URL が表示されます (ここでは、見やすくするために何行かに改行してあります)。
http://<host>/<port>/b2bPortal/application?
origin=hnav_bar.jsp&event=bea.portal.framework.internal.refresh
&pageid=Inventory
更新イベントにより、最新データで更新されたページが再表示されます。Avitek Product Inventory ポートレットのデータが更新されます。
ページ タブは、hnav_bar.jsp ファイルを介して提供されます。このファイルは、以下の場所にあります。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥b2bPortal
¥framework
hnav_bar.jsp ファイルによって、以下の 2 つの JSP タグ ライブラリがインポートされます。
<%@ taglib uri="webflow.tld" prefix="wf" %>
<%@ taglib uri="portal.tld" prefix="ptl" %>
アプリケーション内の別のページから [Inventory] タブをクリックすると、hnav_bar.jsp は、対象となるタブへのリンクで以下の JSP タグを使用します。
<a href="<ptl:createPortalPageChangeURL
pageName='<%= portalPageName %>'/>"><%=portalPageName%></a>
ポータルの ptl:createPortalPageChangeURL JSP タグは、ページ変更イベントの Webflow URL を生成します。
ポートレットの動的表示と WebLogic Integration AI による在庫チェック
[Inventory] ページで、動的ポートレットの 1 つ、¥productinventory¥content.jsp を見てみましょう。このポートレットは、[Inventory] ページで、「1 Avitek Product Inventory」と表示されています。
このポートレットの Webflow ネームスペース ファイルは、以下のとおりです。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp-project¥app
lication-sync¥webapps¥b2bPortal¥product.wf
ここには、以下のコードが含まれます。
<presentation-origin node-name="product" node-type="jsp">
<node-processor-info page-name="content.jsp"
page-relative-path="/portlets/productinventory"/>
</presentation-origin>
content.jsp ファイルは、以下の場所にあります。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥b2bPortal
¥portlets¥productinventory¥content.jsp
content.jsp ファイルには、以下の import 文があります。
<%@ page import="examples.e2e.common.Inventory" %>
content.jsp のスクリプトレットで、データベースの商品データを繰返し参照して、現在の在庫水準を取得します。その水準が定義されている最低水準より低い場合は、CSS ファイルから取得した CSS_INV_BELOW_MIN 設定を使用し、在庫に問題があることを赤色で表示します。
例:
<%
Iterator it = rState.getProducts().iterator();
Inventory prod = null;
String rowCssClass = null;
String extraParams = null;
int i = 0;
for ( ; it.hasNext(); i++ ) {
prod = (Inventory) it.next();
if ( prod.isBelowMinimum() ) {
rowCssClass = CSS_INV_BELOW_MIN;
}
else {
rowCssClass = CSS_PRODUCT_ROW;
}
extraParams = PRODUCT_PARAM_EQUALS + prod.id();
// skip the row divider the first time through
if ( i != 0 ) {
%>
b2cPortal アプリケーションと、この b2bPortal アプリケーション用に、InventoryProvider という名前のサービス プロバイダ インタフェース (Service Provider Interface: SPI) を作成しました。これはステートレス セッション EJB として実装され、以下の 3 つのメソッドがあります。
checkInventory()
getProductInventory()
例:
select sku, desc, minimum, maximum, quantity from E2E_PRODUCT_INV where parent_sku = NULL
getProductPartInventory()
例:
select sku, desc, minimum, maximum, quantity from E2E_PRODUCT_INV where parent_sku <> NULL
InventoryProvider SPI は、b2bPortal と b2cPortal に共通です。このソース ファイルは、以下の場所にあります。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥src¥examples¥e2e¥common¥inventory¥spi¥*.java
b2bPortal の場合には、在庫チェックは以下によって実装されます。
これらのプログラムの Java ソース ファイルは、以下の場所にあります。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥src¥examples¥e2e¥common¥inventory¥spi¥*.java
これらのプログラムでは、EJB で提供されている getProductInventory() メソッドおよび getProductPartInventory() メソッドを使用します。このサンプル アプリケーションを簡略化するため、getProductInventory ( List SKUs ) メソッドを使用する際には、[List of SKU] が Pipeline コンポーネントの中にハードコード化されます。
次に、productinventory¥content.jsp ポートレットで、返されたデータを表示します。
例:
<!-- model number -->
<td width="187" class="<%= rowCssClass %>"><%= prod.id() %></td>
<!-- minimum # of units -->
<td width="75" class="<%= rowCssClass %>"><%= prod.min() %></td>
<!-- maximum # of units -->
<td width="75" class="<%= rowCssClass %>"><%= prod.max() %></td>
<!-- available # of units -->
<td width="67" class="<%= rowCssClass %>"><%= prod.available() %></td>
次のステップ
ツアーを続けるには、pix1000 カメラの [部品の在庫確認] ボタンをクリックしてください。
Product Parts Inventory ポートレット
Product Part Inventory ポートレットの全体を表示するには、スクロールしなければならない場合があります (ステップ 2)。このポートレットには、ステップ 1 で選択した Avitek 商品の構成部品の一覧が表示されます。部品ごとに在庫レベルが表示されます。在庫レベルが最低水準を下回った部品のデータは、赤色で表示されます。
Product Parts Inventory ポートレットの技術詳細 在庫処理のステップ 2 にあたる Product Part Inventory ポートレットの処理は、Product Inventory ポートレットの処理と似ています。商品の部品在庫が最低水準を下回った場合には、データが赤色で表示されます。現在の在庫水準を確認するため、データベース内の在庫テーブルに、Application Integration (AI) フレームワークを介して読み込み専用モードでアクセスしました。AI フレームワークは、WebLogic Integration によって提供されます。この場合、InventoryProvider SPI が提供する getProductPartInventory() メソッドが使用されました。 WebLogic Integration AI を介した商品の部品在庫のチェック [Inventory] ページで、動的ポートレットの 1 つ、¥partinventory¥content2.jsp を見てみましょう。このポートレットは、[Inventory] ページで、「1 Avitek Product Inventory」と表示されています。content2.jsp ファイルは、Product Inventory ポートレットで製品が選択されるとアクティブになります。¥partinventory¥content.jsp ポートレットは非アクティブのバージョンで、[Inventory] ページで製品がまだ選択されていないときに使用されます。 このポートレットの Webflow ネームスペース ファイルは、以下のとおりです。 ここには、以下のコードが含まれます。 content2.jsp ファイルは、以下の場所にあります。 content2.jsp ファイルには、以下の import 文が含まれます。 content2.jsp のスクリプトレットで、データベース内の商品データおよび部品データを繰返し参照して、現在の在庫水準を取得します。その水準が定義されている最低水準より低い場合は、CSS ファイルから取得した CSS_INV_BELOW_MIN 設定を使用し、在庫に問題があることを赤色で表示します。 例: b2cPortal アプリケーションと、この b2bPortal アプリケーション用に、InventoryProvider という名前のサービス プロバイダ インタフェース (SPI) を作成しました。これはステートレス セッション EJB として実装され、以下の 3 つのメソッドがあります。 checkInventory()
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp-project
¥application-sync¥webapps¥b2bPortal¥part.wf<presentation-origin node-name="product" node-type="jsp">
<node-processor-info page-name="content2.jsp"
page-relative-path="/portlets/productinventory"/>
</presentation-origin>weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥b2bPortal
¥portlets¥partinventory¥content2.jsp<%@ page import="examples.e2e.common.Inventory" %>
<%
String rowCssClass = null;;
String extraParams = null; int i = 0;
for ( ; parts.hasNext(); i++ ) { part = (Inventory) parts.next();
if ( part.isBelowMinimum() ) {
rowCssClass = CSS_INV_BELOW_MIN;
}
else { rowCssClass = CSS_PART_ROW;
} extraParams = PART_PARAM_EQUALS + part.id();
%>
例:
select quantity from E2E_PRODUCT_INV where sku = value
getProductInventory()
例:
select sku, desc, minimum, maximum, quantity from E2E_PRODUCT_INV where parent_sku = NULL
getProductPartInventory()
例:
select sku, desc, minimum, maximum, quantity from E2E_PRODUCT_INV where parent_sku <> NULL
InventoryProvider SPI は、b2bPortal と b2cPortal に共通です。このソース ファイルは、以下の場所にあります。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥src¥examples¥e2e¥common¥inventory¥spi¥*.java
b2bPortal の場合には、在庫チェックは以下によって実装されます。
これらのプログラムの Java ソース ファイルは、以下の場所にあります。
weblogic700¥samples¥platform¥e2eDomain¥beaApps¥e2eApp¥src¥examples¥e2e¥common¥inventory¥spi¥*.java
これらのプログラムでは、EJB で提供されている getProductInventory() メソッドおよび getProductPartInventory() メソッドを使用します。このサンプル アプリケーションを簡略化するため、getProductInventory ( List SKUs ) メソッドを使用する際には、[List of SKU] が Pipeline コンポーネントの中にハードコード化されます。
次に、partinventory¥content2.jsp ポートレットで、返されたデータを表示します。
例:
<td class="<%= rowCssClass %>" width="64"><%= part.id() %></td>
<td class="<%= rowCssClass %>" width="83"><%= part.description() %></td>
<td class="<%= rowCssClass %>" width="74"><%= part.min() %></td>
<td class="<%= rowCssClass %>" width="75"><%= part.max() %></td>
<td class="<%= rowCssClass %>" width="60"><%= part.available() %></td>
次のステップ
ツアーを続けるには、「2 Product Part Inventory」ポートレットで、赤色で表示されている部品の横の [見積の要求] ボタンをクリックしてください。
Query for Price and Availability (価格と在庫の照会) ポートレット
Query for Price and Availability (QPA) ポートレットを表示するには、下にスクロールしなければならない場合があります (ステップ 3)。このポートレットには、QPA を生成するためのフォームが用意されています。購入担当者が QPA 要求に必要なデータをすぐに取り出せるように、Product Inventory ポートレットと Product Part Inventory ポートレットは、Inventory Summary ポートレットに置き換えられています。このフォームに入力する必要のある情報については、必ず下記の「次のステップ」節を参照してください。
Query for Price and Availability (価格と在庫の照会) ポートレットの技術詳細 Query for Price and Availability (QPA) ポートレットには、QPA を生成するためのフォームが用意されています。QPA ビジネス プロセスは、このステップ 3 のポートレットで [QPA 要求の送信] ボタンをクリックすると開始されます。詳細については、Quotes for Price and Availability (価格と在庫の照会) ポートレットと QPA ビジネス プロセスを参照してください。 この Query for Price and Availability ポートレットでは、購入担当者が QPA 要求に必要なデータをすぐに取り出せるように、Product Inventory ポートレットと Product Part Inventory ポートレットは、Inventory Summary ポートレットに置き換えられています。 サンプル アプリケーションに戻ったら、このツアー ガイドの「次のステップ」節の説明に必ず従ってください。ここでも説明しておきます。 Query for Price and Availability (価格と在庫の照会) ポートレットで、以下の操作を実行します。
次に、[QPA 要求の送信] ボタンをクリックします。
以下のエラーが表示される場合は、値を入力し直してから、[QPA 要求の送信] ボタンをクリックしてください。
次のステップ
まだ注文を入力していない場合は、必要な数量を入力します。次に、製品部品の単価としてたとえば「50」と入力します。また、商品を受け取りたい日付を入力します。たとえば、今日から 1 週間後の日付を入力します。次に、[QPA 要求の送信] ボタンをクリックしてツアーを続けます。
Quotes for Price and Availability (価格と在庫の照会) ポートレットと QPA ビジネス プロセス
最初に、ステップ 4 のポートレットである Quotes for Price and Availabilty で、サプライヤから見積もりが届くまでにしばらく時間がかかる可能性があることを伝えるメッセージが表示されます。
[見積を確認] ボタンを何回かクリックすると、最後には、サプライヤからの見積もりがポートレットに表示されます。この処理は、WebLogic Portal のポータル フレームワークと、WebLogic Integration によって管理される企業間 (B2B) 対話との統合の例を示すものです。
QPA ビジネス プロセスの技術詳細 この節では Query for Price and Availability (QPA) のビジネス プロセスに焦点をあてて説明します。このビジネス プロセスは、前のステップ 3 のポートレットで [QPA 要求の送信] ボタンをクリックすると開始されます。 pix1000 カメラの pixlens1000 部品が不足しているので、Avitek の購入担当者は、この部品の QPA メッセージを選択したサプライヤに送信します。次の図に、QPA ビジネス プロセスのイベント フローを示します。 QPA ビジネス プロセスのプロセス フロー
注意: 上の図では、高レベルから見た QPA ビジネス プロセスを示しています。両サイドのプロセスは、バプリック (コラボレイティブ) ワークフローとプライベート ワークフローによって実行されます。
以下の表に示したワークフロー テンプレートは、このサンプル QPA プロセスで使用されています。
WebLogic Integration は、取引相手とのビジネスに関する会話、および提携契約を管理し、バイヤとサプライヤ間のビジネス メッセージの交換を自動化します。ワークフローは、提携契約および会話で参照されます。 このサンプルでは、JSP と JSP タグ ライブラリを使用して QPA プロセスを開始し、QPA 要求と応答データを表示します。次の図に、QPA ビジネス トランザクションに関わる取引相手間のデータ フローを示します。 QPA ビジネス プロセスのデータ フロー
以下に、イベントを順に示し、取引相手間のデータ フローとワークフローについて要約します。
このプロセスの詳細については、WebLogic Integration のドキュメントを参照してください。
次のステップ
Quotes for Price and Availability ポートレットで、見積もりがサプライヤから返ってこない場合は、再度 [見積を確認] ボタンをクリックします。見積もりが返ってきたら、いずれかの見積もりを受理し、[注文の作成] ボタンをクリックしてツアーを続けます。
Purchase Order for Review ポートレットと PO ビジネス プロセス
Purchase Order for Review ポートレットを表示するには、下にスクロールしなければならない場合があります (ステップ 5)。このポートレットには、注文商品と購入商品の簡単な一覧が表示されます。
PO ビジネス プロセスの技術詳細 この節では、Purchase Order ビジネス プロセスに焦点をあてて説明します。このビジネス プロセスは、ユーザ (Avitek の購入担当者) が Purchase Order for Review ポートレットの [注文の送信] ボタンをクリックすると開始されます。このポートレットには、注文商品と購入商品の簡単な一覧が表示されます。 Purchase Order ビジネス プロセスのプロセス フロー
注意: 上の図では、高レベルから見た PO ビジネス プロセスを表示しています。両サイドのプロセスは、バプリック ワークフローとプライベート ワークフローによって実行されます。
以下の表に示したワークフロー テンプレートは、このサンプル QPA プロセスで使用されています。
このサンプルの PO 実装では、WebLogic Integration を使用してアプリケーション統合、データ統合、ビジネス プロセスの管理を行います。この節では、PO ワークフロー (バックエンド アプリケーションと異種データ形式との統合など) について説明します。
以下の図に、PO ビジネス プロセスに関わる取引相手間のデータ フローを示します。
PO ビジネス プロセスのデータ フロー
以下に、イベントを順に示し、取引相手間のデータ フロー、ワークフロー、およびバックエンドのシステムについて要約します。
このプロセスの詳細については、WebLogic Integration のドキュメントを参照してください。
次のステップ
ツアーを続けるには、[注文の送信] ボタンをクリックして、注文をサプライヤに送信してください。
Purchase Order History ポートレット
[Order History] ページの最初の画面には、Purchase Order History ポートレットの要約ビューが表示されます。サンプル アプリケーションのデータには、既存の注文がいくつか含まれています。[注文履歴の詳細表示] ボタンをクリックすると、同じポートレットのさらに詳細なビューが表示されます。
[注文状況の確認] ボタンをクリックし、サプライヤから返された注文の受付確認をチェックできます。最初、画面は次のように表示されます。
[注文状況の確認] を数分後にクリックすると、画面が更新され、送信した注文とその配送日の 2002 年 8 月 29 日が以下のように表示されます。
Purchase Order History ポートレットの技術詳細 [Order History] ページの Purchase Order History ポートレットでは、各注文 (P.O.) に対する Acknowledged (受付確認済)、Shipped (配送済)、または Received (受領済) の各ステータスと関連情報が表示されます。送信したばかりの P.O. は、サプライヤから受付確認が返され、さらにユーザが [注文状況の確認] ボタンをクリックするまでは、このポートレットに表示されません。 注文書を送信したばかりで、Purchase Order History ポートレットにまだ表示されていない (ステータスが保留中の) 場合には、[注文状況の確認] ボタンをクリックしてください。 プロセスを高レベルで見ると、サプライヤから返された受付確認を受け取るのは、Purchase Order ビジネス プロセスでの最後から 2 番目のステップとなります。最後のステップは、バイヤ (Avitek) が P.O. 受付確認に基づいて P.O. 情報を更新するステップです。この Purchase Order ビジネス プロセスは、Purchase Order Review ポートレットの「技術詳細」の節で図を使って説明されています。 また、[Order History] ページでは、[注文履歴の詳細表示] ボタンをクリックして、注文とそのステータスの詳細を表示できます。ポートレットの詳細表示で、[注文状況の確認] ボタンをクリックすると、ステータスを確認できます。それでもまだ注文が保留中の場合は、ポートレットにより次のメッセージが返されます。「この注文の受付通知をまだ受け取っていません。」 詳細表示された Purchase Order History ポートレットで [注文履歴の概要に戻る] ボタンをクリックすると、ポートレットは一覧表示に戻ります。 企業間 (B2B) ポータル ツアーの完了 これで企業間 (B2B) ツアーは終了です。オンライン ツアーの場合、[ログアウ
ト] ボタンをクリックすると、サンプルの [はじめに] ページに戻ることができます。ログアウトすると、このセッションで行った注文はまったくデータベースに保存されないことに注意してください。つまり、Jason Tang として再びログインしたときには、在庫水準は元の値にリセットされます。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |