BPELヒューマン・ワークフローを使用するOracle Data Integratorエラー・ホスピタルの作成

このチュートリアルでは、BPELヒューマン・ワークフローを使用してユーザーに拒否レコードを通知するOracle Data Integratorエラー・ホスピタルの作成に必要な手順を説明します。 ユーザーは、これらのレコードをヒューマン・ワークフロー内で編集および更新できます。 更新されたレコードは、次回のOracle Data Integratorシナリオの実行時に再利用され、制約をパスした場合、ターゲットにロードされてエラー・ホスピタルからは削除されます。

 

約1時間半

トピック

このOBEチュートリアルでは、以下のトピックについて説明します。

 

このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。 (警告: すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)

注: 各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順 にある各アイコンの上にカーソルを置いてください。

スクリーンショットは、ご使用の環境を反映したものではありません。 Oracle Data Integratorの特定の機能がどこにあるのかをわかりやすくするために提供されています。

概要

企業のSOAデプロイ メントでは、ほとんどの場合、データの抽出、ロード、変換、および検証が必要です。 Oracle Data Integratorの ネイティブSOAアーキテクチャを使用することで、ELTの実施においてOracle Data Integratorの利点を活かすことができます。 Oracle Data Integratorは、Oracle Data Integrator制約またはデータベース制約を使用することで、ターゲットへのロード中にデータの検証をおこなう機能を提供します。 Flow Controlを使用してデータを制約に照らし合わせると、検出されたエラーはすべて、ターゲットにはロードされず、Oracle Data Integratorが作成し、管理するエラー表にロードされます。 この表の各行は、制約をパスできなかったレコードを示しています。また、行にはメッセージ列があり、なぜそのレコードが拒否されたかを確認できます。 この表は、Oracle Data Integrator Designer、またはリレーショナル表を編集可能なす べてのツールで編集することができます。 しかし、エンドユーザーやビジネス・ユーザーがデータを編集する場合、この方法が常に便利だとは限りません。 この例では、制約とともにXMLファイルをロードするOracle Data Integratorシナリオを構築する手順を説明します。 制約は、クライアントの年齢が21歳以上の場合のみデータのロードを許可します。制約をパスしないすべての行は、ターゲット・データベース上にある表(E_CLIENT) にロードされます。 Oracle Data Integratorシナリオが実行され、Oracle Data Integrator ELTプロセスが終了すると、Oracle Data Integratorシナリオは、BPEL Webサービスに コールバックし、ロード中のすべてのエラーを通知します。 BPELプロセスはエラーをインポートし、BPEL ヒューマン・ワークフロー・タスクを使用して、それらを管理します。 ユーザーは、その後BPEL Worklistを 使用して、エラーのあるレコードを更新できます。 それ以降のOracle Data Integratorシナリオの実行時には、更新されたレコードはELTプロセスで再利用されます。 制約をパスしたレコードはターゲットにロードされ、エラーのあるレコードはE_CLIENT表に移されます。 Oracle Data IntegratorがE_CLIENT表を管理しているため、 それらが正しくロードされた際にエラーの再利用やレコードの更新のためにコードを記述する必要はありません。

 

 

トピック・リスト に戻る

シナリオ

Lindaは、Global Enterpriseのデータベース管理者です。 社内のデータベースの管理やさまざまなリソースに関連するタスクの統合を担当しています。 具体的には、BPELプロセスで使用されるデータのロード、変換、および検証をおこなっています。 そのためには、Oracle Data Integrator制約またはデータベース制約を使用して、ターゲットへのロード中にデータを検証するOracle Data Integratorシナリオを構築する必要があります。 このOracle Data Integratorシナリオは、BPEL Webサービスにコールバックし、ロード中のすべてのエラーを通知します。 リンダは、エラーをインポートし、BPELヒューマン・ワークフロー・タスクを作成するBPELプロセスを構築する必要があります。 これにより、ユーザーはBPEL Worklistを使用して、そのようなエラーを含むレコードを更新できます。

このOBEでは、2つの例を通じてこのシナリオを学習します。

例1: Oracle Data Integrator制約とCKMを使用するインタフェースを使用したOracle Data Integrator XML→DB変換の開発
この例では、XMLファイルをデータベース表(CLIENT)にインポートするOracle Data Integratorインタフェースの作成に必要な手順を説明します。 Oracle Data Integrator制約がCLIENTモデルに追加されます。 制約をパスしないすべてのレコードがE_CLIENT表 にロードされます。 次に、BPELプロセスがこの表を使用して、ヒューマン・ワークフロー・タスクを生成します。

例2: SOAからOracle Data Integratorを起動し、ヒューマン・ワークフロー・タスクを生成するBPELプロセスの開発
この例では、E_CLIENT表からデータ・エラーをインポートするBPELプロセスを作成す る手順を説明します。 BPELプロセスは、エラー・レコードからヒューマン・ワークフロー・タスクを作成します。

トピック・リスト に戻る

前提条件の確認

タスクを開始する前に、システム環境が以下の前提条件を満たしていることを確認してください。

ソフトウェア要件

システムには次のインストール済み製品が含まれている必要があ ります。

システムには次の構成が含まれている必要があります。

トピック・リストに戻る

例1: Oracle Data Integrator制約とCKMを使用するインタフェースを使用したOracle Data Integrator XML→DB変換の開発

この例では、XMLファイルをデータベース表(CLIENT) にインポートするOracle Data Integratorインタフェースを作成する手順を説明します。 Oracle Data Integrator制約CLIENTモデルに追加されます。 制約をパスしないすべてのレコードがE_CLIENT表にロードされます。 次に、BPELプロセスがこの表を使用してヒューマン・ワークフロー・タスクを作成します。

 

Oracle Data Integratorでの新しいプロジェクトの作成


プロジェクトは、ユーザーによって作成されたOracle Data Integratorオブジェクトのコレクションです。 これには、単一の機能ドメインが含まれます。 Oracle Data Integratorで開発する必要がある統合プロセスまたは統合プロジェクトで機能ドメインを表す一番の方法は、プロジェクトを使用することです。 それぞれのプロジェクトには、それ自身のナレッジ・モジュール、変数、マーカー、およびそのほかのタイプのオブジェクトが含まれています。 これらのオブジェクトは、複製することで異なるプロジェクトで共有できます。 また、すべてのプロジェクトで共通のパラメータを定義するためにグローバル・オブジェクト(変数、順序など)を使用することも可能です。

Oracle Data Integratorで新しいプロジェクトを作成するには、以下の手順を実行します。

1.

スタート」→「すべてのプログラム」→「Oracle」 →「Oracle Data Integrator」→「Designer」をクリックし、Oracle Data Integrator Designerを開きます。

 

2.

Oracle Data Integrator Login画面が表示されます。 Login Nameドロップダウン・メニューから「Repo_designer」を選択します。

 

3.

User NameとPasswordはデフォルトで、SUPERVISORSUNOPSISに設定さ れています。 「OK」をクリックしてログインします。

 

4.

左下のペインで、「Projects」タブをクリックします。

 

5.

Projectsペインが左上隅に表示されていることを確認します。 右クリックして「Insert Project」 を選択します。

 

6.

Project Newウィンドウが表示されます。 NameとしてODI_ER_HSPを入力します。 Code値に同じテキストが移入されたことを確認してください。 次に、「OK」をクリックして、新しいプロジェクトがProjectsペ インに移入されたことを確認します。

 

 

トピック・リストに戻る

XMLファイルのための 新しいモデルの挿入

ソースXMLファイルのために新しいモデルを挿入するには、以下の手順を実行します。

1.

Oracle Data Integrator Designerで、左下のペインまで下にスクロールし、「Models」タブをクリックします。

 

 

2.

左上隅にModelsペインが表示されていることを確認します。 右クリックして、「Insert Model」を選 択します。

 

3.

Model: Newウィンドウでは、新しいモデルのために値を入力する必要があります。 このため、次のパラメータを設定して、「Reverse」 タブをクリックします。

パラメータ
Name SRC_GEO_DIM_XML
Technology XML
Logical Schema XML_DEMO_GEO

 

4.

Reverseタブの下で、Contextドロップダウン・メニューから「Global」を選択して下にスクロールしま す。次に、「Reverse」をクリックします。 これにより、XMLソースが生成されます。

 

 

5.

確認のために「Yes」をクリックします。 「OK」をクリックします。

 

6.

Modelsペインで、新しいデータ・ストアが移入されたことを確認します。 「+」ボタンをクリックし、「SRC_GEO_DIM_XML」 モデルを展開して確認します。

 

トピック・リストに戻る

リレーショナル表 (CLIENT)のためのモデルの挿入

注: この手順では、リレーショナル(論理)スキーマが必要です。 ODI_STAGEスキーマはOracle XEデータベース内で設定されています。 また、新しい物理スキーマが、ODI_STAGEのためにTopology Manager内で設定されています。 BPELが表の名前を$シンボルとともに処理するという問題のため、Oracle Data Integratorの作成する内部エラー表の接頭辞を変更する必要があります。

 

リレーショナル表(CLIENT)のためにモデルを挿入するには、以下の手順に従います。

1.

スタート」→「すべてのプログラム」 →「Oracle」→「Oracle Data Integrator」→「Topology Manager」をクリックし、Topology Managerを起動します。 User NameとPasswordはデフォルトで、SUPERVISORSUNOPSISに設定されています。 「OK」 をクリックしてログインします。

 

2.

Physical Architecture」ボタンをクリックします。 「Technologies」 →「Oracle」→「Local_XE」を展開します。 ターゲットの物理スキーマ(Local_XE.ODI_STAGE)を右クリックします。 「Edit」 を選択します。 Errorsテキスト・ボックスの値をE$からE_に 変更します。 「OK」をクリックします。

 

.

 

3.

Designer内で「Models」タブをクリックします。 右クリックして、「Insert Model」を選択します。

 

4.

次の表のパラメータを入力します。 「Reverse」タブをクリックします。 「Global」 コンテキストを選択します。 Reverseはクリックしないでください。 「OK」 をクリックします。次のステップでは、新しいデータソースが追加されます。

パラメータ
Name RDBMS_TARGET
Technology Oracle
Logical Schema ODI_STAGE

 

 

5.

XMLモデルをコピーして、RDBMSターゲット内にCLIENTデー タ・ストアを作成します。 「SRC_GEO_DIM_XML」モデルを選択し、展開します。 「CLIENT」 表を右クリックして、「Duplicate」を選択します。 “Would you like to duplicate?”と表示された場合は、「Yes」をクリックします。

 

6.

新しい複製の「Copy of CLIENT」をXMLモデル からRDBMS TARGETモデルにドラッグします。 RDBMS_TARGET内の「Copy of CLIENT」データ・ストアを右クリックします。 「Edit」をクリックします。 NameをCLIENTに変更します。 「OK」をクリックします。

注:RDBMS_TARGETに物理表は作成されていませ ん。 インタフェースが実行されると、インタフェースは物理表(CLIENT)を作成します。

 

 

トピック・リストに戻る

"Copy of CITY CLIENT"制約の削除

CLIENTデータ・ストアを複製する際に、XMLファイルの制約もコピーされます。 この制約は削除する必要があります。

1.

RDBMS_TARGET内の「CLIENT」 データ・ストアを展開します。 「Constraints」を展開します。

 

 

 

2.

Copy of CITY_CLIENT」制約を右クリックし、「Delete」 を選択します。 Confirmationウィンドウで「Yes」をクリックします。

 

トピック・リストに戻る

CLIENTデータ・ス トアでのOracle Data Integrator制約の設定

CLIENTデータ・ストアでOracle Data Integrator制約を設定するには、以下の手順を実行します。

1.

RDBMS_TARGET内の「CLIENT」データ・ス トアを展開します。 「Constraints」を右クリックして、「Insert condition」を選択します。

 

 

2.

次の表に示されているようにパラメータを設定します。 制約は、以下のようになります。 「OK」 をクリックして保存します。

注:インタフェースの最初の実行時においてSQLは、表が作成されるまで検証をおこないません。

パラメータ
Name AgeConstraint
Type Oracle Data Integrator Condition
Were cast(Client.age as numeric)>=21
Message Client must be at least 21 years old.

 

トピック・リストに戻る

RDBMSへのXML ファイルのロード、チェック、統合のためのIKM、LKM SQL to SQL KM's、およびCKMのインポート

インタフェースを作成する前に、XMLデータをロードおよび統合するために必要なLKMとIKMをプロジェクトにインポートする必要があります。 IKM、LKM SQL to SQL KM's、およびCKMをインポートするには、以下の手順を実行します。

1.

Designer内で、「Projects」 タブをクリックします。 「Knowledge Modules」ノードを展開します。Loading (LKM)」ノードを右クリックします。 「Import Knowledge Modules」を選択します。 Oracle Data Integratorがインストールされたディレクトリ内にあるIMPEXPフォ ルダ(I:\ODI\oracle\impexp)を参照します。 「LKM SQL to SQL」を選択します。 「OK」をクリックします。

 

 

2.

Integration (IKM)」ノードを右クリックし ます。 「Import Knowledge Modules」を選択します。 Oracle Data Integratorがインストールされたディレクトリ内にあるIMPEXPフォルダ(I:\ODI\oracle\impexp) を参照します。 「IKM SQL Control Append」を選択します。 「OK」 をクリックします。


 

3.

Check (CKM)」ノードを右クリックします。 「Import Knowledge Modules」をクリックします。 Oracle Data Integratorがインストールされたディレクトリ内にあるIMPEXPフォルダ(I:\ODI\oracle\impexp) を参照します。 「CKM SQL」を選択します。 「OK」をクリックします。

4.

Knowledge Modulesノードが次のようになっていることを確認します。

トピック・リストに戻る

XML ファイルをRDBMSターゲットへロードするための新しいインタフェースの作成

XMLファイルをRDBMSターゲットにロードする新しいインタフェースを作成するには、以下の手順を実行します。

1.

Oracle Data Integrator DesignerのProjectsタ ブで、「First Folder」ノードを展開します。 「Interfaces」 ノードを右クリックします。 「Insert Interface」を選択します。 インタフェースの名前としてINT_LOAD_TBL_CLIENTを 入力します。 「Staging area different from target」を選択します。 「Sunopsis_Memory_Engine」 を選択します。 「Diagram」タブをクリックします。

 

 

2.

Models」タブをクリックし、ソースとターゲットをInterfaceに ドラッグ・アンド・ドロップします。 「Client」データ・ストアをSRC_GEO_DIM_XMLか らSourceコンテナにドラッグします。 「Client」データ・ストアをRDBMS TARGETからTargetコンテナにドラッグします。 Designerが“Do you want to perform and Automatic Mapping?”と表示された場合は、「Yes」 をクリックします。 Diagramタブは次のようになります。


 

3.

Target Datastoreで、「CLIENT_ID」 をクリックします。 "Mapping CLIENT_ID"セクションを下にスクロールして、CLIENT_ID列 がキーになるように「Key」ボックスを選択します。 「Flow」タブをクリッ クします。

4.

Client SS_0 (1-XML_GEO_DIM)」をクリックし、LKMオ プションを「LKM SQL to SQL」に設定します。 同様に「Client Target (Local_XE)」をクリックします。 Client Target (Local_XE)IKMを 「IKM SQL Control Append」に設定します。 Target Local_XEセクションで、Optionsを次の表のように設定します。 「Controls」 タブをクリックします。

オプション
RECYCLE_ERRORS YES
CREATE_TARG_TABLE YES
DELETE_ALL YES

 

5.

Controlsタブで、次のデフォルト値をそのまま残します。 「Apply」 をクリックします。 これで、INT_LOAD_TBL_CLIENTインタフェースが設定されました。

トピック・リストに戻る

イ ンタフェースの実行とテスト

NT_LOAD_TBL_CLIENTインタフェースを実行およびテス トするには、以下の手順に従います。

1.

Execute」ボタンをクリックします。 Executionの設定は、デフォルト値のままにします。 「OK」をクリックします。 Informationウィ ンドウにSession startedと表示された場合は、「OK」をクリック します。

 

 

2.

ODI Operatorで実行結果を確認します。 Oracle Data Integrator Operatorを起動するには、「すべてのプログラム」→「Oracle」 →「Oracle Data Integrator」→「Operator」をク リックします。 Repo_designerを選択し、UserにSUPERVISOR、 PasswordにSUNOPSISと入力してログインします。 左下のペインで「Hierarchical Sessions」 タブをクリックします。 INT_LOAD_TBL_CLIENTセッションを見つけ、次のように正しく実行されて いることを確認します。


 

トピック・リストに戻る

インタフェースの実行による制約エラーの確認

制約エラーを確認するには、以下の手順を実行します。

1.

RDBMS_TARGET内の「CLIENT」 データ・ストアをクリックします。 右クリックして、「Control」→「Errors」 を選択します。 制約エラーのある行を表示します。 これで、ターゲット・スキーマ上のE_CLIENT表を更新でき ます。また、これ以降のインタフェースの実行では、E_CLIENT表の行がOracle Data Integratorによって再利用されます。この時点で、行が制約をパスする場合は、ターゲットにロードされます。

注: 例2で、BPELプロセスを作成したあとは、INT_LOAD_TBL_CLIENTイ ンタフェースを実行するパッケージを作成します。 このパッケージもBPELプロセスをコールしてデータ・エラーを通知します。これにより、BPELはヒューマン・ワークフロー・タスクを作成できるように なります。

 

トピック・リストに戻る

 

例2: SOAからOracle Data Integratorを起動し、ヒューマン・ワークフロー・タスクを生成するBPELプロセスの開発

この例では、E_CLIENT表からデータ・エラーをインポートする BPELプロセスを作成する手順を説明します。 次に、BPELプロセスは、エラー・レコードからヒューマン・ワークフロー・ タスクを作成します。 次の手順では、Oracle Data Integratorパッケージの各実行のエラーを追跡して、確認のためにユーザーに提示する新しいBPELプロセスを構築します。 ユーザーはそれぞれのフィールドを更新し、任意のエラーを修正できます。これにより、次のOracle Data Integratorパッケージでは、修正された行がターゲットに挿入されます。 Oracle JDeveloperは、BPELプロセスを構築し、アプリケーション・サーバーにデプロイする際に使用するツールです。

 

 

BPEL プロセスのための新しいアプリケーションの作成


BPELプロセスのための新しいアプリケーションを作成するには、以下の手順を実行します。

1.

G:\jdevStudio10131の「jdeveloper.exe」 をクリックし、JDeveloperを起動します。 デスクトップにあるSOA Suite Jdevショートカットからも起動できます。 左側のアプリケーション・ナビゲータで「Applications」 を右クリックし、「New Application」を選択します。

 

2.

Application NameにODI_ErrorHsptlと入力し、「OK」 をクリックします。 Create Projectダイアログ・ボックスで「Cancel」 を選択します。 アプリケーション・ナビゲータに新しいアプリケーションが表示されます。

 

トピック・リストに戻る

BPEL プロセスのための新しいプロジェクトの作成

BPELプロセスのための新しいプロジェクトを作成するには、以下の手順を実行します。

1.

新しく作成したアプリケーション(ODI_ErrorHsptl) を右クリックし、「New project」を選択します。 プロジェクト・カテゴリから「BPEL Process Project」を選択します。 「OK」をクリックします。

 

 

2.

BPEL Project Creationウィザードで、BPELプロセスにClient_ErrorHsptlと いう名前をつけます。ドロップダウン・ボックスから「Synchronous BPEL Process」を選択し、 「Finish」をクリックします。 アプリケーション・ナビゲータに新しいプロジェクトが表示され、Client_ErrorHspt.bpelファ イルがJDeveloperウィンドウに開きます。

 

トピック・リストに戻る

Oracle Data Integratorデータソースへの接続


このプロシージャは、Oracle Data Integratorプロセスの基盤になります。 そのため、オプションと変数を使用して、可能な限り動的に設定します。 新しいプロシージャ(ImportXFormExportXML) を作成するには、以下の手順を実行します。

1.

メイン・メニューで、「View」 →「Connection Navigator」を選択します。 このメニューは、画面の左上にあります。 「Database」 フォルダをダブルクリックして、Database Connectionを開きます。 Welcomeページで「Next」 をクリックします。

 

 

2.

Step 1 of 4で、Connection NameにODI_DBと 入力し、Connection Typeで「Oracle(JDBC)」を選択します(Oracle XEを使用していない場合は、適切な接続タイプを選択してください)。 「Next」をクリックします。

.

 

 

3.

Step 2 of 4で、UsernameとPasswordを入力し、スキーマに接続します。このスキーマは、以前Client表を作成した際に使用したものです。 UsernameにODI_STAGEと入力します。 ODI_DATAスキー マの正しいパスワード( oracle1)を入力します。 「Next」をクリックします。

4.

Step 3 of 4で、SIDをXEに変更します。そのほかはデフォルトのままにします。 「Next」 をクリックします。 最後の画面で、「Test Connection」をクリックします。 Statusに"Success!"と 表示されます。 「Finish」をクリックします。

注:Statusに"Success!"と表示されない場合は、設定を確認してください。

トピック・リストに戻る

エ ラー表からのエラーの収集

エラー表からエラーを収集するには、以下の手順を実行します。

1.

右側のコンポーネント・パレットのドロップダウン・メニューか ら「Services」を選択します。 プロセス・ダイアグラムの右側にある灰色のServices swim laneDatabase Adapterパートナー・リンクをドラッグします。 Database adapterウィザードが表示されます。 Welcomeページで「Next」をクリックしま す。 Service Nameテキスト・ボックスにRead_Errorsと入力します。 「Next」 をクリックします。

 

 

 

2.

Connectionsドロップダウン・メニューで「ODI_DB」 を選択します(または以前に作成したOracle Data Integrator Database接続を選択します)。「Next」 をクリックします。

 

3.

Operation Typeとして、「Perform an Operation on a Table」を選択します。 Select以 外のすべてのオプションのチェックを外します。「Next」をクリックします。

4.

Import Tables」ボタンをクリックします。 Import Tablesウィンドウで、右上の「Query」ボタンをクリックします。 エラー表(E_Client) をselected欄に移動します。 「OK」をクリックします。 「Next」 をクリックします。

注:E_Client表ではなくE$_Client表 が表示されている場合は、Topology Managerでエラー表のOracle Data Integratorの接頭辞を再設定する必要があります(詳細については、リレーショナル表(CLIENT)のためのモデルの 挿入セクションを参照してください)。

 

 

 

5.

Define Primary Keysページで、「CLIENT_ID」 を選択します。 「Next」をクリックします。 Relationshipsページで、「Next」 をクリックします。

6.

Object Filteringページで、「errType」、 「origin」、および「consType」のチェックを外します。 「Next」をクリックします。 Define Selection Criteriaペー ジで「Next」をクリックします。 「Finish」をクリックします。

7.

Create Partner linkウィザード画面で、デフォルトを受け入れて「OK」 をクリックします。 プロセス・ダイアグラムは、次の画面と一致する必要があります。

トピック・リストに戻る

Read Errorsデータベース・アダプタの起動

Read Errorsデータベース・アダプタを起動するには、以下の手順を実行します。

1.

右側のコンポーネント・パレットのドロップダウン・メニューから「Process activities」を選択します。 「Invoke」アクティビティを選択し、replyOutputア クティビティの下にあるダイアグラムにドラッグします。

2.

Invokeアクティビティの右側にある矢印を 右側のスイムレーンのRead_Errorsパートナー・リンクにドラッグします。 Edit Invokeウィンドウが表示されます。 アクティビティにInvoke_ReadErrorsと いう名前をつけます。 Input Variableフィールド付近にある「Magic wand」 ボタンをクリックします。 Edit Invokeウィンドウで、変数にLoadErrors_InputVariableと いう名前をつけます。 「OK」をクリックします。

 

 

3.

Output Variableフィールド付近にある「Magic wand」ボタンをクリックします。 Edit Invokeウィンドウで、出力変数にLoadErrors_OutputVariableと いう名前をつけます。 「OK」をクリックします。 再度「OK」をクリックしま す。

 

 

トピック・リストに戻る

エ ラー修正のエラー表への書込み

エラー表にエラー修正を書き込むには、以下の手順に従います。

1.

右側のコンポーネント・パレットのドロップダウン・メニューから「Services」を選択しま す。 プロセス・ダイアグラムの右側にある灰色のServicesスイムレーンにDatabase adapterパートナー・リンクをドラッグします。 Database adapterウィ ザードが表示されます。 Welcomeページで「Next」をクリックします。 Service NameフィールドにWrite_Correctionsと入力します。「Next」 をクリックします。

 

2.

Connectionsドロップダウン・メニューから「ODI_DB」 を選択します(または、以前に作成したOracle Data Integrator Databaseの接続を選択します)。 「Next」 をクリックします。

 

 

3.

Operation Typeで、「Perform an Operation on a Table」を選択します。 Update Only以外のすべ てのオプションのチェックを外します。 「Next」をクリックします。

.

 

4.

Import Tables」ボタンをクリックします。 Import Tablesウィンドウが表示されます。 右上の「Query」ボタンをクリックします。 エラー表(E_Client)をSelected欄に移動します。 「OK」をク リックします。 「Next」をクリックします。

5.

Relationshipsページで、「Next」をクリック します。 「Finish」をクリックします。 Create partner linkウィ ザードが表示されます。

6.

Create partner linkウィザードで、デフォルトのままにして「OK」 をクリックします。 プロセス・ダイアグラムは次の図に一致する必要があります。

トピック・リストに戻る

Error Correctionsデータベース・アダプタの起動

Error Correctionsデータベース・アダプタを起動するには、以下の手順を実行します。

1.

右側のコンポーネント・パレットのドロップダウン・メニューから「Process activities」 を選択します。 「Invoke」アクティビティを選択し、Invoke_ReadErrorsア クティビティの下にあるダイアグラムにドラッグします。

 

2.

Invokeアクティビティの右側にある矢印を右側のスイ ムレーンのWrite_Correctionsパートナー・リンクにドラッグします。 Edit Invokeウィンドウが表示されます。 アクティビティにInvoke_Correctionsと いう名前をつけます。 Input Variableフィールド付近にある「Magic wand」 ボタンをクリックします。 Create variableウィンドウで、変数にLoadCorrectionsと いう名前をつけます。 「OK」をクリックします。 再度「OK」をクリックしま す。 プロセスが次の図に一致するかを確認します。

 

 

トピック・リストに戻る

エ ラーを処理するヒューマン・ワークフローの追加

エラーを処理するためのヒューマン・ワークフローを追加するには、以下の手順に従います。

1.

右側のコンポーネント・パレットのドロップダウン・メニューから「Human Task」アクティビティをInvoke_ReadErrorsアクティビティの下にあるダイアグ ラムにドラッグします。 The Add human taskウィザードが表示されます。 Task Definitionフィールド付近にある「Magic wand」アイコンをクリックします。 Add a human taskページが表示されます。

 

2.

Add a human taskページで、タスクにErrorHospitalと いう名前をつけます。 「OK」をクリックします。 ErrorHospitalペー ジが表示されます。 TitleフィールドにODI Load Errorsと入力しま す。 OutcomesSUBMIT CORRECTIONSと 入力します。 Parameters(見出し)付近にある緑色の「+」ボタンを クリックします。 Add Task Parameterページが表示されます。

 

3.

Add Task Parameterページで、「Element」 を選択し、右側の「Flashlight」アイコンをクリックします。 「Project Schema Files」→「ReadErrors_table.xsd」を展開し、「EclientCollection」 を選択します。 「OK」をクリックします。 Modifiable Via Worklist チェック・ボックスにチェックを入れます。 「OK」をクリックします。

4.

Assignment and Routing Policy(見出し)付近にある緑色の「+」 ボタンをクリックします。 Add Participant Typeページがポップアップ表示されます。 Group ID(s)フィー ルドで、Supervisorと入力します(または、右側のFlashlightアイコンを使用し て、アプリケーション・サーバーのセキュリティ・リポジトリ内でグループを参照します)。 「OK」をクリックしま す。

5.

Human Taskが次の図のように構成されていることを確認します。 メイン・メニューから「File」 →「Save All」を選択します。 タブの×印をクリックし、ErrorHospital.taskペー ジを閉じます。 BPELプロセスは次の図のようになります。

6.

ErrorHospital_1」アクティビティをダブルクリックして、Human Taskウィザードを開きます。 BPEL Variableヘッダーの下にあり、かつEclientCollectionの となりにある「Flashlight」アイコンをクリックします。 「Process」 →「Variables」→「LoadErrors_OutputVariable」 →「EClientCollection」を展開し、「EclientCollection」 を選択します。 Xpath/ns3:EClientCollectionが 含まれていることを確認します。 「OK」をクリックします。 再度「OK」をク リックします。

7.

Switch Case Regenerationウィンドウで、「Yes」 をクリックします。 「File」メニューから「Save All」を選択しま す。

8.

左側のアプリケーション・ナビゲータで、「Client_ErrorHsptl」 →「Integration Content」を展開します。 「ErrorHospital」 フォルダを右クリックします。 「Auto Generate Simple Task form」を選択します。 ワークフローのタスクの詳細を示すJSPページが表示されます。 メイン・メニューから「Save All」を選択し ます。 JSPページを(デフォルトのまま)閉じます。

トピック・リストに戻る

更 新された値のWrite_Correctionsデータベース・アダプタへの移入

更新された値をデータベースに移入するには、以下の手順を実行します。

1.

右側のコンポーネント・パレットから、taskSwitchアクティビティの下で、かつInvoke_Correctionsア クティビティの上にあるプロセス・ダイアグラムに「Assign」アクティビティをドラッグします。 「Assign_1」 アクティビティをダブルクリックします。

 

2.

Createドロップダウン・メニューから「Copy Operation」 を選択します。Copy operationウィザードが表示されます。 From欄 で、「Process」→「Variables」→「LoadErrors_OutputVariable」 →「EClientCollection」を展開し、「EclientCollection」 を選択します。下のXpathには/ns3:EclientCollectionが 含まれている必要があります。 To欄で、「Process」→「Variables」 →「LoadCorrections」→「EClientCollection」 を展開し、「EclientCollection」を選択します。 下のXpathに は/ns4:EclientCollectionが含まれている必要があります。 「OK」 をクリックします。 再度「OK」をクリックして、Assignウィザードを閉じ ます。 この時点でプロセスは次の図に一致する必要があります。 「File」メニューから「Save All」を選択します。

トピック・リストに戻る

エ ラー・ホスピタルBPELプロセスのデプロイ

エラー・ホスピタルBPELプロセスをデプロイするには、以下の手順を実行します。

1.

左側のアプリケーション・ナビゲータで、「Client_ErrorHsptl」 プロジェクトを右クリックして、「Deploy」→「SoademoIntegConnection」 →「Deploy to Default Domain」を選択します。

 

トピック・リストに戻る

Oracle Data Integratorパッケージの作成

INT_LOAD_TBL_CLIENTインタフェースとErrorHsptl BPELプロセスを実行するOracle Data Integratorパッケージを作成するには、以下の手順を実行します。

1.

Oracle Data Integrator Designer内 で「ODI_ER_HSP」プロジェクトを展開します。 「First」フォルダ を展開します。 「Packages」を右クリックして、「Insert Package」 を選択します。 パッケージにCreate_BPEL_HWF_Tasksという名前をつけます。「Diagram」 タブをクリックします。

.

 

2.

Interfaces」ノードを展開します。 「INT_LOAD_TBL_CLIENT」 インタフェースをダイアグラムにドラッグします。 Toolboxアイコン「」をク リックします。 「Internet list」をクリックします。

 

 

3.

ODIInvokeWebservice」を選択します(このツールはBPELプロセスの実行に 使用されます)。 次に示すように、Diagramをクリックすると、Webサービスを起動するツールが表示されます。 Selectionア イコン「」をク リックします。次に、「ODIInvokeWebService」をクリックし、BPEL Webサービスのプロパティを編集します。

4.

Propertiesセクションで、ツールにInvokeBPELErrHSPTLと いう名前をつけます。 「Advanced」ボタンをクリックします。 WSDLhttp://rst-act3ct2.us.oracle.com:8888/orabpel/default/Client_ErrorHsptl/1.0/Client_ErrorHsptl?wsdlと 設定します。 Connect to WSDL」ボタン をクリックし、WSDLの記述を取得します。 以下の図のようになっていることを確認します。 「OK」をクリックし ます。 これで、ODIInvokeWebserviceツールが設定されました。

注:インポートおよびヒューマン・ワークフロー・タスクの作成をおこなうBPELプロセスを実行す るだけであるため、入力メッセージは必要ありません。

 

5.

」ボタン をクリックすることで"Next Step on success"を使用して、インタフェースODIInvokeWebserviceツー ルに接続します。次に、以下に示されているように「INT_LOAD_TBL_CLIENT」インタフェースをクリッ クし、ODIInvokeツールのInvokeBPELErrHSPTLにドラッ グします。 「Execute」をクリックして、パッケージを実行します。 「Yes」 をクリックして、パッケージを保存します。 Package executionウィンドウで、「OK」をクリックし ます。 "Session is started"と表示されたメッセージ・ウィンドウで再度「OK」 をクリックします。

6.

ODI Operatorで実行結果を確認します。 Oracle Data Integrator Operatorを起動するには、「すべてのプログラム」→「Oracle」 →「Oracle Data Integrator」→「Operator」をク リックします。 Repo_designerを選択し、UserにSUPERVISOR、 PasswordにSUNOPSISと入力してログインします。 左下のペインで「Hierarchical Sessions」 タブをクリックします。 ペインを上にスクロールし、「+」をクリックして「Date」→「The date of execution」→「Steps」を展開します。 Create_BPEL_HWF_Tasksパッ ケージの実行手順は、次のようになります。

トピック・リストに戻る

BPEL ConsoleからのBPELプロセスの手順の確認とプロセスの完成

Oracle Data Integratorパッケージが正しく実行され、BPELプロセスがコールされたら、BPEL ConsoleとBPEL Worklistをチェックできます。 BPEL ConsoleからBPELプロセスの手順を確認し、プロセスを完成させるには、以下の手順を実行します。

1.

ブラウザを開いて、URLにhttp://localhost:8888/BPELConsoleを 入力します。 ログイン・ページが表示されます。 アプリケーション・サーバーの資格証明を入力します。 Usernameフィー ルドにoc4jadminPasswordフィールドにwelcome1と 入力します。 「Login」をクリックします。 メインのBPEL Dashboardが 表示されます。 Client_ErrorHsptl BPELプロジェクトが左側のDeployed BPEL Processes列に表示されていることを確認します。 「Client_ErrorHsptl」 インスタンスを選択します。 Visual Flowビューがデフォルトで表示されます。

注:これは、プロセス実行のダイアグラムです。 各アクティビティをクリックすることで、プロセスが収集したデータを確認できます。

 

2.

Invoke_ReadErrors」アクティビティを選択し、E_Client表 のデータがデータベースから収集されたことを確認します。

 

3.

プロセス実行ダイアグラムは、ErrorHospital Humanタスク・アクティビティで終 了します。 これは、プロセスがSupervisorグループの誰かがエラーを確認、修正、再送信するのを待っているためです。 ほかのブラウザを開いて、URLにhttp://localhost:8888/integration/worklistappを 入力します。 これにより、ワークフロー・タスク上のアクションを確認および実行するためのWorklist Applicationの ログイン・ページが開かれます。 Usernameにjcooper、Passwordにwelcome1と 入力し、ログインします。 JcooperのWorklistページが表示されます。 jcooper、 またはjcooperがメンバーのすべてのグループに割り当てられたタスクすべてがページに表示されます。 jcooperに はODI Load Errorsというタスクがあり、現在このタスクはSupervisorグ ループに割り当てられていることが確認できます。

 

4. 右側のActions列のドロップ ダウン・メニューから「Claim」を選択し、「Go」をクリックします(これに より、グループからタスクが削除され、Jcooperに割り当てられます)。 Task Detailsページが表示されます。 このページでは、すべてのエラーの確認と修正が実行できます。

注:このページのルック・アンド・フィールは、以前に生成したJSPページを更新することで変更で きます。

5.

1つまたは複数のエラーのAge列を21以上の値に変更することでエラーを修正できます。 すべてのエラーのAge列を次の図のように21に変更します。 ページの右上にある「Save」 ボタンをクリックし、変更を確定します。 エラーが次回のOracle Data Integratorロードで修正されるように変更を再送信するには、Task Actionドロップダウン・メニューから「SUBMIT CORRECTIONS」を選択し、「Go」をクリックします。 タスク・リストに戻り、Jcooperが 実施可能なタスクはすでになくなっていることを確認します。

6.

BPEL Consoleページに戻り、ブラウザを更新し ます。 これで、プロセスは更新され、 ErrorHospitalヒューマン・ワークフロー・アクティビティが改 善されたことを確認できます。 「Invoke_Corrections」アクティビティをクリックし、E_Client表 が訂正されたデータで更新されていることを確認します(データベース表を直接チェックすることでも確認できます)。

注:これで、完全に機能するOracle Data IntegratorをBPELヒューマン・ワークフロー・エラー・ホスピタルで使用できます。 ここでOracle Data Integratorシナリオを再実行した場合、修正されたエラーが収集され、ターゲット表に再送信されます。 この機能を確認するために、新しい値を訂正された値と同じClient_IDで送信しないようにしてください。 これは、値を同じClient_IDで再送信した場合、これらの新しい値は、訂正値よりも優位に立ち、Oracle Data Integratorは(新しい値にエラーが含まれている場合でも)新しい値をロードするようになるためです。 これで、完全に機能するOracle Data IntegratorをBPELヒューマン・ワークフロー・エラー・ホスピタルで使用できます。

トピック・リストに戻る

このレッスンで学習した内容は次のとおりです。

Oracle Data Integratorでの新しいプロジェクトの作成
XMLファイルのための新しいモデルの挿入
リレーショナル表(CLIENT)のためのモデルの挿入
"Copy of CITY_CLIENT"制約の削除
CLIENTデータ・ストアでのOracle Data Integrator制約の設定
RDBMSへのXMLファイルのロード、チェック、統合のためのIKM、LKM SQL to SQL KM's、およびCKMのインポート
XMLファイルをRDBMSターゲットへロードするための新しいインタフェースの作成
インタフェースの実行とテスト
インタフェースの実行による制約エラーの確認
BPELプロセスのための新しいアプリケーションの作成
Oracle Data Integratorデータソースへの接続
エ ラー表からのエラーの収集
Read Errorsデータベース・アダプタの起動
エ ラー修正のエラー表への書込み
Error Correctionsデータベース・アダプタの起動
エ ラーを処理するヒューマン・ワークフローの追加
更 新された値のデータベースへの移入
エ ラー・ホスピタルBPELプロセスのデプロイ
Oracle Data Integratorパッケージの作成
BPEL ConsoleからのBPELプロセスの手順の確認とプロセスの完成

トピック・リストに戻る

このアイコンの上にカーソルを置くと、すべてのスクリーンショットが 非表示になります。