データをソースからターゲットに移動するための操作を定義するマッピングを設計した後は、プロセス・フローを作成および定義できます。マッピングと、Warehouse Builder外部のアクティビティを相互に関連付けるには、プロセス・フローを使用します。この外部アクティビティには、電子メール、FTPコマンドおよびオペレーティング・システム実行可能ファイルなどがあります。
この項は、すべてのアクティビティの参照用として使用します。この項では、アクティビティをタイプ別に分類することから始めます。各アクティビティの詳細は、この項の他の部分に記載されているアルファベット順のリストを参照してください。
表22-1に示されているOracle Warehouse Builder固有のアクティビティごとに、1つ以上の受信推移を指定できます。送信推移については、アクティビティごとに成功、警告、エラーおよび無条件推移を1回使用できる他に、複合条件推移を無制限に定義することもできます。
表22-1 Warehouse Builder固有のアクティビティ
アイコン | アクティビティ | 簡単な説明 |
---|---|---|
![]() |
|
データ・プロファイリングに使用される既存のデータ監査モニターをプロセス・フローに追加します。 |
![]() |
|
既存のマッピングをプロセス・フローに追加します。 |
![]() |
|
既存のプロセス・フローをプロセス・フロー内に埋め込みます。 |
![]() |
|
既存の変換をプロセス・フローに追加します。 |
データのコミット
Warehouse Builder固有のアクティビティをプロセス・フローに追加すると、これらのアクティビティは個別のトランザクションとして評価されます。たとえば、マッピング・アクティビティを追加する場合、各マッピングが独立してコミットおよびロールバックされます。この設計の場合、1回のコミットまたはロールバック文ですべてのマッピングを制御することは不可能です。
複数のマッピングをまとめてコミットまたはロールバックするには、各マッピングをコールするスクリプトに関連付けられたSQLPlusアクティビティを使用してプロセス・フローを設計することを検討してください。詳細は、「プロセス・フロー・エディタを使用したマッピングのコミット」を参照してください。
表22-2に、各ユーティリティ・アクティビティをリストし、関連するアイコンを示します。
表22-2 ユーティリティ・アクティビティ
アイコン | アクティビティ | 簡単な説明 |
---|---|---|
![]() |
|
値を変数に割り当てます。 |
![]() |
|
電子メールを送信します。たとえば、プロセス・フローのアクティビティのステータスに関する電子メール・メッセージを送信します。 |
![]() |
|
「ファイルが存在」アクティビティを使用して、指定されたドライブまたはディレクトリにファイルが存在するかどうかをチェックします。 |
![]() |
|
プロセス・フロー中にファイル転送プロトコル・コマンドを起動します。たとえば、FTPアクティビティを使用して、マッピングが実行されるマシンにデータ・ファイルを移動します。 |
![]() |
|
プロセス・フローを停止します。プロセス・フローを再開するには、手動操作が必要です。 |
![]() |
|
ユーザーに電子メールを送信し、ユーザーがプロセス・フローの処理方法を示すレスポンスをリストから選択できるようにします。 |
![]() |
|
成功、警告またはエラーのステータスを通知します。 |
![]() |
|
プロセス・フローでSQL*Plusスクリプトを実行します。 |
![]() |
|
Warehouse Builderで定義されていないアクティビティを表し、このアクティビティをプロセス・フローに組み込むことができます。 |
![]() |
|
指定した時間分、プロセス・フローの進捗を遅延します。 |
表22-3に、プロセス・フローの制御に使用するアクティビティを示します。表では、関連付けられているアイコンを示します。また、各アクティビティに使用できる受信および送信推移の数も示します。
表22-3 コントロール・アクティビティ
アイコン | アクティビティ | 簡単な説明 | 受信推移 | 送信推移 |
---|---|---|---|---|
![]() |
|
別のアクティビティの起動前に全受信アクティビティを完了することを指定します。 |
2つ以上が使用可能。受信推移の数は、上位のFORKからの送信推移の数以下であることが必要です。 |
無条件推移および複合推移は使用不可。 |
![]() |
終了(成功) |
パスを成功として指定します。 |
1つ以上が使用可能。 |
使用不可。 |
![]() |
終了(エラーあり) |
パスをエラーで終了として指定します。 |
1つ以上が使用可能。 |
使用不可。 |
![]() |
終了(警告あり) |
パスを警告付きで終了として指定します。 |
1つ以上が使用可能。 |
使用不可。 |
![]() |
|
forループまたはwhileループの終了を定義します。 |
1つ以上が使用可能。 |
forループまたはwhileループに1つのみ。 |
![]() |
|
終了ループを使用してこのアクティビティを使用し、繰り返す構造を定義します。 |
必要な終了ループから1つ、およびさらに他のアクティビティから複数。 |
1つのループ条件と1つの終了が必要。 |
![]() |
|
1つのアクティビティが完了してから2つ以上のアクティビティを起動します。 |
1つ以上が使用可能。 |
2つ以上の無条件推移のみ。 |
![]() |
|
指定された2つ以上のアクティビティのいずれかの完了後に、アクティビティを起動します。 |
2つ以上が使用可能。 |
1つの無条件推移のみ。 |
![]() |
|
排他的論理和およびif-then-elseシナリオを定義します。 |
||
![]() |
|
条件がTRUEであるかぎり、他のアクティビティを実行します。 |
必要な終了ループから1つ、およびさらに他のアクティビティから複数。 |
1つのループ条件と1つの終了が必要。 |
ANDアクティビティを使用して、プロセス・フローを再開する前に2つ以上のアクティビティの完了を指定します。
ANDアクティビティには2つ以上の受信推移を含むことができます。ANDアクティビティを使用してプロセス・フローを正しく設計するには、ANDより上位のFORKアクティビティを配置する必要があります。また、ANDに移動する推移の数は、上位のFORKからの送信推移の数以下である必要があります。FORKは、複数の無条件推移を割り当てることができるようにする唯一のアクティビティであるため、必要に応じて、ANDアクティビティによって複数のアクティビティが完了することを確認します。
ANDアクティビティにより、上位のアクティビティの結果を集計できるようになります。すべての上位のアクティビティがSUCCESSを戻す場合、ANDアクティビティはSUCCESSを戻します。上位のアクティビティがERRORを戻す場合、ANDアクティビティはERRORを戻し、ERRORを戻さない場合はWARNINGが戻されます。結果を持たないアクティビティは、SUCCESSを戻したとみなされます。SET_STATUSを使用して、結果を作成します。この機能は、パラレル実行している一連のマッピングがすべて正常に完了したかどうかをテストする場合に特に役立ちます。
図22-1に、プロセス・フロー内のANDおよびFORKアクティビティを示します。この例では、AND_ACTIVITYが、MAP1およびMAP2の完了に基づいて下位のアクティビティをトリガーします。AND_ACTIVITYが2つの受信推移を持つのに対して、FORKアクティビティは3つの送信推移を持つため、そのプロセス・フローは有効です。また、プロセス・フローは、MAP3に関連付けられている推移およびアクティビティが削除された場合にも有効になります。
送信条件の場合、ANDアクティビティには1つ、2つまたは3つの条件付き推移を含むことができます。これにより、成功、警告およびエラー・アクティビティで終了する3つのパスになる可能性があります。
データのプロファイルの結果に基づいて処理するプロセス・フローを設計できます。たとえば、データの品質がしきい値パラメータによって決定された基準を満たす場合にのみマッピングを実行する論理を作成します。
Warehouse Builderに指示して、プロセス・フローのアクティビティが完了した後に電子メール通知を送信できます。たとえば、マッピングのようなアクティビティがエラーまたは警告で終了したと管理者に通知する場合、これが役立ちます。
表22-6に、電子メール・アクティビティに対して設定するパラメータを示します。
表22-6 電子メール・アクティビティ・パラメータ
パラメータ | 説明 |
---|---|
SMTP Server |
送信メール・サーバーの名前。デフォルト値は |
Port |
送信メール・サーバーのポート番号。デフォルト値は |
From_Address |
プロセス・フロー通知の送信元の電子メール・アドレス。 |
Reply_To_Address |
受信者が応答する電子メール・アドレスまたはメーリング・リスト。 |
To_Address |
プロセス・フロー通知を受信する電子メール・アドレスまたはメーリング・リスト。カンマまたはセミコロンを使用して、複数の電子メール・アドレスを区切ります。 |
CC_Address |
プロセス・フロー通知のコピーを受信する電子メール・アドレスまたはメーリング・リスト。カンマまたはセミコロンを使用して、複数の電子メール・アドレスを区切ります。 |
BCC_Address |
プロセス・フロー通知のブラインド・コピーを受信する電子メール・アドレスまたはメーリング・リスト。コンマまたはセミコロンを使用して、複数の電子メール・アドレスを区切ります。 |
Importance |
通知の重要性のレベル。たとえば、 |
Subject |
電子メールの件名の行に表示されるテキスト。 |
Message_Body |
電子メールの本文に表示されるテキスト。テキストの入力または貼付けを実行するには、「アクティビティ」パネル下部の「値」を選択します。プロセス・フロー・エディタに入力できるテキスト数は無制限です。 |
電子メール・アドレスの場合、表示名の有無にかかわらず電子メール・アドレスを入力できます。たとえば、次の入力は適切です。
jack.emp@oracle.com
Jack Emp<jack.emp@oracle.com>
Jack Emp[jack.emp@oracle.com]
Jack Emp[jack.emp@oracle.com],Jill Emp[jill.emp@oracle.com]
Jack Emp[jack.emp@oracle.com];Jill Emp[jill.emp@oracle.com]
プロセス・フローのパスはすべて、終了アクティビティで終了する必要があります。
プロセス・フローを最初に作成する際、Warehouse Builderには成功タイプの終了アクティビティがデフォルトで含まれます。終了タイプを使用して、パスに含まれる論理のタイプを指定します。マッピングなどの一定のアクティビティには3つの結果が考えられるため、表22-7に示すように、エディタには3つの終了タイプが含まれます。これらの終了タイプを使用して、プロセス・フローのエラー処理の論理を設計できます。
表22-7 終了アクティビティのタイプ
アイコン | 終了タイプ | 説明 |
---|---|---|
![]() |
正常終了 |
正常終了する上位のアクティビティに依存して、パスが論理を含むことを示します。 |
![]() |
警告 |
警告で終了する上位のアクティビティに依存して、パスが論理を含むことを示します。 |
![]() |
エラー |
エラーで終了する上位のアクティビティに依存して、パスが論理を含むことを示します。 |
1つ、2つまたは3つすべての終了のタイプを含むように、プロセス・フローを設計できます。終了タイプはそれぞれ1回のみ使用できます。終了タイプは重複して使用できません。各終了アクティビティには、単一または複数の受信推移を含むことができます。
図22-2では、END_SUCCESSに3つの受信推移があります。それぞれが上位のアクティビティの正常終了に依存します。END_ERRORには、上位のマッピング・アクティビティがエラーで終了する場合に実行する電子メール・アクティビティからの1つの受信推移があります。
デフォルトでは、すべてのプロセス・フローには、END_SUCCESSが含まれます。終了アクティビティを別のタイプに変更できませんが、違うタイプの別のアクティビティを追加できます。
終了アクティビティをプロセス・フローに追加する手順は次のとおりです。
プロセス・フロー・エディタのパレットから、該当する「終了」アイコンをキャンバスにドラッグ・アンド・ドロップします。
Warehouse Builderでは、すでにプロセス・フローに表示されている終了タイプを選択できません。
「OK」をクリックします。
Warehouse Builderによって、終了アクティビティがキャンバスに追加されます。
エディタは、キャンバスに追加する各forループおよびwhileループに対して、終了ループを追加します。
終了ループ・アクティビティには、forループまたはwhileループ・アクティビティへの単一の無条件送信推移が必要です。ループを構成するすべてのフローを、終了ループ・アクティビティに収束して、次のループ相互作用またはループ終了のいずれかに対してパラレル・フローが確実に残らないようにする必要があります。
「ファイルが存在」アクティビティを使用して、次のアクティビティを実行する前にファイルの存在を確認します。「アクティビティ」パネルで、ファイル名を入力します。
「ファイルが存在」アクティビティは、ファイルが1回のみ存在するかどうかを確認します。ファイルが存在する場合、プロセス・フローが正常終了推移に進みます。ファイルが存在しない場合、プロセス・フローは警告推移に進みます。「ファイルが存在」アクティビティは、OMB Plusを使用している場合のTCLエラーのような突発故障の場合にのみエラー推移をトリガーします。
「ファイルが存在」アクティビティには、PATHと呼ばれる1つのパラメータがあります。このパラメータに対して、完全修飾ファイル名、ディレクトリ名、またはセミコロン区切りのリストのいずれかを指定します。通常、パスはコントロール・センター・サービスが実行中のホストと同じホストでテストされます。
基礎となるオペレーティング・システムのセキュリティ制約は、ファイルが存在しない印象を与えて、1つ以上のファイルへのアクセスを禁止する場合があります。すべてのパスが存在する場合、アクティビティはEXISTSを戻します。パスがまったく存在しない場合は、MISSINGを戻します。複数のパスが存在する場合は、SOME_EXISTを戻します。
FORKアクティビティを使用して、1つのアクティビティの完了後に複数の並行アクティビティを起動します。
FORKに複数の受信推移を割り当てることができます。そのFORKは、パラレル実行される複数の無条件送信推移を割り当てられるようにする唯一のアクティビティです。たとえば、図22-3では、MAP1の完了後に、プロセス・フローがFTP、FDSおよびEMAILという名前のアクティビティをパラレル実行します。
図22-4に、FORKアクティビティがない同じアクティビティを示します。この場合、アクティビティのうち1つのみがMAP1の完了状態に基づいて実行されます。
プロセス・フロー・エディタは、送信推移またはFORKから割り当てることができる並行アクティビティの数を制限しません。並行実行の設計の際、プロセス・フローを実行するために使用するワークフロー・エンジンまたはサーバーによって課せられる制限に基づいてFORKを設計します。
送信FORKアクティビティ推移は、複合式を持つことができません。
forループを使用して、ループに含まれたアクティビティを繰り返し実行してから終了し、プロセス・フローを再開します。
forループを追加する際、エディタは終了ループ・アクティビティと終了ループへの推移も追加します。送信推移の場合、ループ条件を持つものと終了条件を持つものを定義します。送信推移を選択して、「オブジェクトの詳細」の「条件」をクリックします。
FTPアクティビティを使用して、提供するFTPコマンドのスクリプトに基づいて、あるロケーションから別のロケーションへファイルを転送します。FTPアクティビティは、「ユーザー定義」アクティビティの特化したものです。これら2つのアクティビティの違いは、FTPアクティビティはリモート・ファイル・ロケーションによって構成される必要があることです。
有効化されるプロセス・フローの場合、FTPコマンドには、インストールされたコントロール・センター・サービスを使用したサーバーとの間のデータ転送が含まれる必要があります。2台のマシンの間でデータを移動するには、どちらもコントロール・センター・サービスをホストせず、1台目のマシンがコントロール・センター・サービスのホスト・マシンにデータを転送してから、2台目のマシンにデータを転送します。
FTPアクティビティを使用してプロセス・フローを設計する前に、ソースと宛先に定義されたロケーションがあることを確認します。
FTPアクティビティは、提供するFTPコマンドのスクリプトに依存します。Warehouse Builder内でスクリプトを記述するか、Warehouse Builderにスクリプトを含むファイルを指示するかのいずれかを選択できます。次のメソッドのいずれかを選択してください。
Warehouse BuilderでFTPコマンドのスクリプトを保守する場合、またはサーバーに対するパスワード・セキュリティが要件である場合(あるいはその両方の場合)、この方法を選択します。
この方法の場合、COMMANDパラメータで、FTP実行可能ファイルへのパスを入力します。また、UNIX以外のファイル転送プロトコルの場合、PARAMETER_LISTパラメータにプロトコルの追加パラメータを入力します。SCRIPTパラメータのVALUE列にスクリプトを入力します。
表22-9に、Warehouse Builder内でスクリプトを作成する際にFTPアクティビティに対して設定するパラメータを示します。
表22-9 Warehouse BuilderにおけるスクリプトのFTPアクティビティ・パラメータ
パラメータ | 説明 |
---|---|
COMMAND |
ファイル転送プロトコル・コマンドへのパスを入力します。Windowsオペレーティング・システムの場合、 |
PARAMETER_LIST |
これはコマンドに渡されるパラメータのリストです。パラメータはトークンで区切られます。トークンはパラメータ・リスト文字列の最初の文字として使用され、文字列もそのトークンで終わる必要があります。Warehouse Builderでは「?」の文字が推奨されますが、任意の文字を使用できます。たとえば、「abc」、「def」および「ghi」を渡す場合、次の同等の文字を使用できます。 ?abc?def?ghi? または !abc!def!ghi! または │abc│def│ghi│ トークン文字または「¥」をパラメータの一部として含める必要がある場合、「¥」でエスケープする必要があります(「¥¥」など)。「¥」がトークン文字である場合、「/」がエスケープ文字となります。 ファイル転送プロトコルに必要な追加パラメータを入力します。 Windowsの場合、?"-s:${ Task.Input }"?と入力します。${ Task.Input }トークンはWarehouse Builderに対し、スクリプトを一時ファイルに格納し、トークンを一時ファイルの名前で置き換えるよう促します。したがって、スクリプトは標準入力として渡されません。 注意: Windows FTPコマンドはファイルを除く標準入力では実行できないため、-sパラメータが設定されます。 UNIXの場合、この値は空白にしておく必要があります。通常、UNIX FTPは標準入力から読み込むため、その他のパラメータは必要ありません。 |
SUCCESS_THRESHOLD |
FTPコマンド完了ステータスを指定します。正常な完了を示す最も大きい戻り値をオペレーティング・システムから入力します。オペレーティング・システムがさらに大きな値を戻した場合、コマンドが失敗したことを示します。 デフォルト値は |
SCRIPT |
このパラメータに、FTPに必要なスクリプトを入力できます。 テキストを入力または貼り付けるには、「オブジェクトの詳細」パネルの最下部で「値」を選択します。プロセス・フロー・エディタでは、入力できるテキストの量に制限はありません。 スクリプト内の各改行は、 |
図22-5に、Warehouse Builder内で作成されたスクリプトを呼び出すためのFTPアクティビティ・パラメータ設定の例を示します。
図22-6は、SCRIPTパラメータのVALUE列におけるスクリプトの1行目を示しています。スクリプト全体を表示するには、「値」ボタンをクリックします。Warehouse Builderに表示されたSCRIPT値エディタを使用して、図22-6に表示されているスクリプトのようなFTPスクリプトを記述またはコピー・アンド・ペーストできます。
図22-6のスクリプトには、${Remote.User}および${Remote.Password}が含まれる点に注意してください。これらは置換変数です。詳細は、「置換変数の使用」を参照してください。
置換変数は、Warehouse BuilderでFTPスクリプトを記述して格納することを選択した場合にのみ使用できます。
置換変数を使用して、サーバー・ファイル、アカウントおよびパスワードが変更される場合にFTPアクティビティが更新されることを防止します。たとえば、FTPアクティビティを利用して特定のディレクトリの下のsalessrv1上のファイルにアクセスする10個のプロセス・フローを作成する場合を考えます。ファイルを移動する場合、置換変数を使用しないと、各FTPアクティビティを個別に更新する必要があります。置換変数を使用すると、更新が必要なのはロケーション情報のみになります。
また、置換変数は、パスワード・セキュリティの維持に関して重要です。Warehouse Builderがサーバー・パスワードに対して置換変数を使用してFTPアクティビティを実行する場合、関連付けられるロケーションに対して入力した、保護されたパスワードに変数を解決します。
表22-10に、FTPアクティビティに対して入力できる置換変数を示します。Workingは、コントロール・センター・サービスをホストするマシンで、このケース・スタディではローカル・マシンを意味します。Remoteは、データ転送に関与する他のサーバーを意味します。「プロセス・フローの構成」で説明するように、FTPアクティビティを構成する場合にどのサーバーをリモートおよびローカルにするかを指定します。
表22-10 FTPアクティビティに対する置換変数
変数 | 値 |
---|---|
${ Working.RootPath } |
コントロール・センター・サービス・ホストのロケーションに対するルート・パス値。 |
${ Remote.Host } |
コントロール・センター・サービス・ホストとの間のデータ転送に関与するロケーションに対するホスト値。 |
${ Remote.User } |
コントロール・センター・サービス・ホストとの間のデータ転送に関与するロケーションに対するユーザー値。 |
${ Remote.Password } |
コントロール・センター・サービス・ホストとの間のデータ転送に関与するロケーションに対するパスワード値。 |
${ Remote.RootPath } |
コントロール・センター・サービス・ホストとの間のデータ転送に関与するロケーションに対するルート・パス値。 |
${ Task.Input } |
WorkingおよびRemoteロケーションは、プロセス・フローの構成時にFTPアクティビティに対して設定されます。 |
${ parameter_name } |
${ parameter_name }構文を使用して、カスタム・パラメータの値をスクリプトおよびパラメータに置換できます。 |
すべてのカスタム・パラメータは、コマンドの環境スペースにインポートされます。たとえば、PATHというカスタム・パラメータを定義することにより、オペレーティング・システム実行可能ファイルの検索に使用される検索パスを変更できます(JAVA VMでは、これができない場合があります)。
パスワード・セキュリティの問題がない場合、Warehouse BuilderではFTPコマンド、ユーザー名およびパスワードを含むスクリプトを持つファイルを指定できます。
ファイル・システムのファイルをコールするには、Warehouse Builderがそのファイルを指定するようにPARAMETERS_LISTに適切なコマンドを入力します。Windowsオペレーティング・システムの場合、次のように入力します。?"-s:<file path¥file name>"?
たとえば、Cドライブのtempディレクトリにあるmove.ftpという名前のファイルをコールするには、次のように入力します。 ?"-s:c:¥temp¥move.ftp"?
このメソッドの場合、SCRIPTパラメータを空白のままにします。
表22-11に、FTPスクリプトがシステム上のファイルに存在する場合にFTPアクティビティに対して設定するパラメータを示します。
表22-11 Warehouse Builder外部のスクリプトに対するFTPアクティビティ・パラメータ
パラメータ | 説明 |
---|---|
Command |
このパラメータは空白のままにします。 |
Parameter List |
FTPスクリプトに対するパスとファイルの名前を入力します。プロセス・フロー・エディタは、セパレータとして入力する最初の文字を解釈します。たとえば、プロセス・フロー・エディタは次のエントリを
バックスラッシュをエスケープ文字として使用します。たとえば、プロセス・フロー・エディタは、次のエントリを /-l/-s/\// |
Success Threshold |
FTPコマンド完了ステータスを指定します。正常な完了を示す最も大きい戻り値をオペレーティング・システムから入力します。オペレーティング・システムがさらに大きな値を戻した場合、コマンドが失敗したことを示します。 デフォルト値は |
Script |
このパラメータは空白のままにします。 |
このアクティビティを使用して、プロセス・フローを停止します。
プロセス・フローを停止した後、ユーザーはコントロール・センターまたはリポジトリ・ブラウザを使用して介入し、プロセス・フローを再開する必要があります。
このアクティビティを使用すると、プロセスを設計してETLプロセスを再起動またはリカバリできるようになります。
手動アクティビティは、通知アクティビティと類似していますが、手動アクティビティはOracle Workflowの実装を必要としないため、電子メールを送信しません。Oracle Workflowと対話せずに通知アクティビティと同じ結果にするには、手動アクティビティの前に電子メール・アクティビティを使用するようにしてください。
マッピング・アクティビティを使用して、マッピング・エディタで定義および構成した既存のマッピングを追加します。
複数の受信推移をマッピング・アクティビティに割り当てることができます。送信推移の場合、1つの無条件推移または各無条件推移のうちの1つに割り当てます。
マッピングをプロセス・フローに追加する場合、その構成プロパティを「アクティビティ」パネルに表示できます。プロセス・フロー・エディタの「マッピング」アクティビティは、マッピング・エディタのマッピングからそのプロパティを継承します。プロセス・フロー・エディタでは、プロパティ・データ型または方向を変更できません。
ただし、プロセス・フローのみに影響を与え、マッピング・エディタのマッピングの設定を変更しない新規の値を割り当てることができます。たとえば、プロセス・フロー・エディタでオペレーティング・モードをセット・ベースから行ベースに変更する場合、プロセス・フローは行ベースで実行します。元のマッピングはそのオペレーティング・モードとしてセット・ベース・モードのままです。基礎となるマッピングのプロパティを変更する場合は、「マッピング構成のリファレンス」を参照してください。
マッピングにマッピング入力パラメータ演算子が含まれる場合、そのデータ型に従って値を指定します。プロセス・フロー・エディタは、マッピングにマッピング入力パラメータ演算子が追加される場合に、PL/SQL式を受け取ることを想定します。マッピング入力パラメータが文字列の場合、二重引用符でその文字列を囲みます。
マッピング・エディタでマッピングを変更したプロセス・フローを更新する場合、プロセス・フローからマッピング・アクティビティを削除し、マッピング・アクティビティを再び追加します。
表22-13と表22-14に、PL/SQLおよびSQL*Loaderの様々なマッピング・パラメータを示します。
表22-13に、PL/SQLマッピング・パラメータを示します。
表22-13 PL/SQLのマッピング・パラメータ
パラメータ | 有効な値 |
---|---|
AUDIT_LEVEL |
NONE STATISTICS ERROR_DETAILS COMPLETE |
BLUK_SIZE |
1+ |
COMMIT_FREQUENCY |
1+ |
MAX_NO_OF_ERRORS |
マッピングがエラーで終了した後に許可されるエラーの最大数 |
OPERATING_MODE |
SET_BASED ROW_BASED ROW_BASED_TARGET_ONLY SET_BASED_FAIL_OVER_TO_ROW_BASED SET_BASED_FAIL_OVER_TO_ROW_BASED_TARGET_ONLY |
表22-14に、SQL*Loaderのマッピング・パラメータを示します。
このアクティビティにより、プロセスを設計してETLプロセスを再起動またはリカバリできるようになります。
このアクティビティは、Oracle Workflowとともに機能します。Warehouse Builderに通知を実装するには、Oracle Workflowにもワークフロー通知を実装する必要があります。あるいは、手動アクティビティの前の電子メール・アクティビティを使用できます。Oracle Workflowサブシステムでは、メッセージの送信方法が決定されます。
通知アクティビティを使用するには、最初に表22-15に示されるパラメータを定義します。定義する各レスポンスに基づいて条件付き送信推移を定義します。たとえば、response_typeの値が「はい」、「いいえ」でdefault_responseの値が「はい」の場合は、2つの送信推移を定義します。各推移を右クリックして「条件」を選択し、条件のリストを表示します。この例では、「はい」に設定された条件を持つ1つの送信推移と「いいえ」に設定された別の送信推移を作成します。
表22-15 通知アクティビティ・パラメータ
パラメータ | 説明 |
---|---|
Performer |
Oracle Workflow管理者によって定義されたロールの名前を入力します。 |
Subject |
電子メールの件名を入力します。 |
Text_body |
実行者の指示を入力します。レスポンスがプロセス・フローに与える影響を説明し、レスポンスされない場合のデフォルトのアクションを説明します。 |
Html_body |
テキストに追加して、またはテキストのかわりにhtmlを使用します。Html_bodyに入力した内容はText_bodyに追加されます。 |
Response_type |
実行者がレスポンスを選択するカンマ区切りの値リストを入力します。各エントリはアクティビティからの1つの送信推移に対応します。 |
Default_response |
デフォルト・レスポンスを入力します。 |
Priority |
電子メールの優先度を1(高)、50(中)または99(低)のいずれかから選択。 |
Timeout |
レスポンスを待つ秒数。これが設定される場合は#TIMEOUT推移が必要です。 |
Response_processor |
Oracle Workflow通知レスポンス・プロセッサ機能。詳細は、Oracle Workflowのマニュアルを参照してください。 |
Expand_roles |
通知投票に使用します。この値をTRUEまたはFALSEに設定します。TRUEに設定する場合、通知はグループに1つの共有メッセージではなく、グループの各メンバーに送信されます。詳細は、Oracle Workflowのマニュアルを参照してください。 |
注意: Oracle Workflow制限により、実行者、優先度、タイムアウトおよびカスタム・パラメータの値のみを実行時に変更できます。 |
ORアクティビティを使用すると、複数の上位のアクティビティの完了に基づいてアクティビティを起動できます。ORアクティビティには、複数の受信推移および1つのみの無条件送信推移を割り当てることができます。
ORアクティビティはANDアクティビティと類似のセマンティックを持ちますが、相違点は、ORアクティビティは完了した最初の上位のアクティビティの正常終了、警告またはエラーの結果を伝播することです。
プロセス・フロー内でORアクティビティを使用することで、プロセス・フローの1回の実行において下位のアクティビティが1回のみトリガーされます。たとえば、図22-7では、3つの上位のマッピング・アクティビティのいずれかが完了し次第、SUBPROC1が起動されます。
プロセス・フロー・エディタを使用することにより、ORアクティビティを省略して、3つのマッピング・アクティビティのそれぞれからの推移を、図22-7に示すSUBPROC1に割り当てることができます。ただし、この論理では1回のプロセス・フローの実行でSUBPROC1を3回起動することになります。これを回避するには、ORアクティビティを使用してください。
このアクティビティを使用すると、アクティビティの結果を、定義した条件に基づいて特定の結果になるようにルーティングできます。排他的論理和およびif-then-elseシナリオを定義できます。
ルート・アクティビティは、操作を持たず、推移の方向を変更する場合に使用できます。ルート・アクティビティには、その他のアクティビティと同様に、複合条件を持つ送信推移を追加できます。ただし、このアクティビティには操作がないため、条件ではプロセス・フローのパラメータおよび変数のみを参照できます。ルート・アクティビティを指定することにより、ANDやORアクティビティの結果に影響を与えることができます。ルート・アクティビティは、独自の結果を持たないため、正常終了したものとみなされます。
このアクティビティにはパラメータはありません。
このアクティビティを使用して、正常終了、警告またはエラーの各ステータスを通知できます。
ステータスの設定は、ANDアクティビティの動作を上書きする手段として使用できます。ANDの直前のアクティビティのいずれかがエラーを戻した場合、ANDアクティビティもエラーとして判断されることに留意してください。先行するアクティビティの結果と無関係にANDを正常終了として判断されるようにするには、そのアクティビティとANDアクティビティの間にステータスの設定を挿入します。
SQLPlusアクティビティを使用すると、スクリプトをプロセス・フローに導入できます。
スクリプトを貼り付けたり入力するには、「キャンバス」でアクティビティを選択してエディタのエクスプローラで「スクリプト」を選択し、「オブジェクトの詳細」で「値」をクリックします。または、ファイル・システム上の既存のスクリプトを参照するため、parameter_listに移動し、アット・マーク「@」とフルパスを入力します。
このアクティビティは広範な目的に使用できますが、一例は、SQLPlusアクティビティを使用してプロセス・フローにおいて複数のマッピングをコミットする方法を制御することです。詳細は、「プロセス・フロー・エディタを使用したマッピングのコミット」を参照してください。
SQLPlusアクティビティのプロセス・フローは配布ロケーションの構成アイテムによって実行されます。
SQLPlusアクティビティを実行するロケーションを設定する手順は、次のとおりです。
プロジェクト・エクスプローラで、「プロセス・フロー」モジュールを展開します。
「プロセス・フロー」モジュールで、「プロセス・フロー」を選択します。
「プロセス・フロー」を右クリックして「構成」を選択します。
構成プロパティ・ウィンドウで、「SQL*Plusアクティビティ」を展開します。
SQLPLUSを選択します。
「パスの設定」で、「配布ロケーション」オプションをSQLPLUSアクティビティを実行するロケーションに設定します。
SQLPlusアクティビティは、ユーザー定義アクティビティと類似していますが、次の相違点があります。
COMMANDパラメータは、自動的に導出されるため、指定できません。
${ Task.Input }置換変数を使用した場合は、生成される一時ファイルの末尾は.sqlになります。
用意されている置換変数のセットが異なります。このアクティビティは、配布されたデータベース・ロケーションを使用して構成する必要があります。
置換変数はFTPと類似しています。FTPがFTPサーバーに接続する際にリモート・ロケーションを使用するのと同様に、置換変数は、Oracleデータベースに接続する際に次のロケーションを使用します。
作業ロケーション(ローカル・ロケーション)
配布ロケーション(ターゲット・ロケーション)
表22-17 SqlPlus置換変数
置換変数 | 説明 |
---|---|
${ Working.RootPath } |
ローカル作業ディレクトリ |
${ Task.Input } |
SCRIPTパラメータから生成される一時ファイル |
${ Target.Host } |
ターゲット・ロケーションのホスト名 |
${ Target.Port } |
ターゲット・ロケーションのポート番号 |
${ Target.Service } |
ターゲット・ロケーションのサービス名 |
${ Target.TNS } |
ターゲット・ロケーションのTNSアドレス |
${ Target.Schema } |
ターゲット・ロケーションのスキーマ名 |
${ Target.User } |
ターゲット・ロケーションのユーザー名 |
${ Target.Password } |
ターゲット・ロケーションのユーザー・パスワード |
${ Target.URL } |
ターゲット・ロケーションの接続記述子 |
PARAMTER_LISTが空の場合、配布ロケーション・パラメータに応じて、次のパラメータ・リストのいずれかが使用されます。
?${ Target.User }/${ Target.Password }@${ Target.TNS }?@${ Task.Input }?
?${ Target.User }/${ Target.Password }@${ Target. URL }?@${ Task.Input }?
?${ Target. Schema }/${ Target.Password }@${ Target.TNS }?@${ Task.Input }?
?${ Target. Schema }/${ Target.Password }@${ Target. URL }?@${ Task.Input }?
SQL*Plusコマンドは、FTPユーザー定義アクティビティに直接入力できません。Warehouse Builderのホームからロードされるか、または、そのロケーションがリポジトリ管理者によって事前定義されています。
SQL*Plusの実行ロケーションの決定には、次のプラットフォーム・プロパティがこの順序で使用されます。
property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_10g
property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_9i
property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_8i
property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_default
同様に、Oracleホームの決定には次のプラットフォーム・プロパティが使用されます。
property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_10g
property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_9i
property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_8i
property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_default
デフォルトでは、各プロセス・フローに1つの開始アクティビティを含めます。開始アクティビティの入力パラメータを、全体のプロセス・フローの入力パラメータになるよう設定できます。
開始アクティビティにパラメータを追加する手順は次のとおりです。
プロジェクト・エクスプローラで、「プロセス・フロー」をダブルクリックしてプロセス・エディタを開きます。
「エクスプローラ」ペインで、「選択したオブジェクト」タブをクリックします。
「選択したオブジェクト」タブで、「アクティビティ」フォルダを展開します。
「開始アクティビティ」を選択して、「エクスプローラ」ペインの「作成」ボタン(左上隅の小さな緑色の「加算」ボタン)をクリックします。
プロセス・フロー・エディタにより「開始」アクティビティにパラメータが追加されます。
「オブジェクトの詳細」ペインで、パラメータのプロパティを設定します。
パラメータ名とデータ型を必要に応じて変更します。この方向とバインドは変更できません。方向はINであり、パラメータが入力パラメータのみであることを示しています。値にはパラメータ値を入力します。この値は実行時に上書きできます。
これで、パラメータをプロセス・フローの他のアクティビティの入力として使用できます。
以前に作成したプロセス・フローを起動するには、サブプロセス・アクティビティを使用します。1つのプロセス・フローから、同じプロセス・フロー・パッケージに含まれる別のプロセス・フローを起動できます。
サブプロセスをプロセス・フローに追加した後、これを他のアクティビティと類似する設計に使用します。受信推移は複数割り当てることができます。送信推移には、無条件送信推移を1つのみ、または3つまでの条件付き送信推移を割り当てます。
サブプロセス内の終了アクティビティは、「サブプロセス」のみに適用され、プロセス・フローの終了ポイントとしては機能しません。
サブプロセスと他のアクティビティの重要な違いには、サブプロセスの内容は参照できるがその内容を親プロセス・フローでは編集できないという点があります。サブプロセスを編集するには、プロジェクト・エクスプローラで基礎となるプロセス・フローを開きます。プロセス・フローの名前の変更以外は、プロセス・フロー・エディタにより子プロセス・フローの変更が親プロセス・フローに伝播されます。
注意: プロセス・フローの名前の変更は注意してください。別のプロセス・フローで参照されるプロセス・フローの名前を変更する場合は、親プロセス・フローが無効になります。無効なサブプロセスを削除して、子プロセス・フローの新しい名前に関連付けられたサブプロセスを新たに追加する必要があります。 |
サブプロセスのアクティビティをプロセス・フローに追加する手順は次のとおりです。
プロセス・フロー・エディタのパレットから、「サブプロセス」アクティビティ・アイコンをキャンバスにドラッグ・アンド・ドロップします。
Warehouse Builderにより、プロセス・フローをサブプロセスとして選択し、追加するためのダイアログが表示されます。
「プロセス・フロー・モジュール」を拡張して、親プロセス・フローとして同じプロセス・フロー・パッケージから1つのプロセス・フローを選択します。
Warehouse Builderにより、プロセス・フローが親プロセス・フローのサブプロセス・アクティビティとして表示されます。
サブプロセスの内容を表示するには、サブプロセスを右クリックして、「ノードの拡張」を選択します。
プロセス・フロー・エディタにより、サブプロセスのグラフが青い枠線で囲まれて表示されます。
変換の機能をキャンバスにドロップすると、戻りパラメータが新しいパラメータとして変換と同じ名前で作成されます。変換アクティビティを使用して変換をWarehouse Builder変換ライブラリからプロセス・フローに追加すると、プロセス・フロー・エディタにより「アクティビティ」パネルに変換のパラメータが表示されます。
変換アクティビティを起動する受信推移を1つ以上指定できます。送信推移については、無条件推移を1つのみ指定するか、3つの条件付き推移のいずれか1つを指定できます。
条件付き送信推移を指定する場合は、そのステータスが戻り値に基づくようアクティビティを構成できます。「ステータスとしてリターンを使用」の詳細は、「プロセス・フローの構成」を参照してください。
変換に対して行った変更内容でプロセス・フローを更新する場合は、プロセス・フローから変換アクティビティを削除した後、変換アクティビティを再度追加してください。
パブリック変換など、配布されていない変換については、「配布ロケーション」の値を使用してアクティビティを構成する必要があります。
ユーザー定義アクティビティにより、Warehouse Builder内で定義されていないアクティビティをプロセス・フローに取り込むことができます。
ユーザー定義プロセス・アクティビティを起動する1つ以上の受信推移を指定できます。送信推移について、無条件推移を1つ指定するか、3つの条件付き推移のいずれか1つを指定できます。
条件付き送信推移を指定する場合、アクティビティのステータスが戻り値に基づくようアクティビティを構成できます。ステータスとしての戻り値の使用については、「プロセス・フローの構成」を参照してください。
表22-18に、FTPアクティビティに対して設定するパラメータを示します。
表22-18 ユーザー定義プロセス・アクティビティ・パラメータ
パラメータ | 説明 |
---|---|
Command |
定義したユーザー定義プロセスを実行するコマンド。 |
Parameter List |
ユーザー定義プロセスに渡されるパラメータのリスト。 プロセス・フロー・エディタにより、入力した1文字目がセパレータとして解釈されます。たとえば、プロセス・フロー・エディタでは次のエントリが
バックスラッシュをエスケープ文字として使用します。たとえば、プロセス・フロー・エディタでは次のエントリが /-l/-s/\// 表22-19に示されている置換変数を入力することもできます。 |
Success Threshold |
完了ステータスを指定します。正常な完了を示す最も大きい戻り値をオペレーティング・システムから入力します。オペレーティング・システムがさらに大きな値を戻した場合、コマンドが失敗したことを示します。デフォルト値は |
Script |
ここにスクリプトを入力するか、スクリプトのファイル名を入力できます。ファイル名を入力する場合、パラメータ・リストの${ Task.Input }変数を使用してファイル名を渡します。 テキストを入力または貼り付けるには、「アクティビティ」パネルの最下部で「値」を選択します。プロセス・フロー・エディタでは、入力できるテキストの量に制限はありません。 スクリプト内の各改行は、 |
表22-19に、FTPアクティビティに対して入力できる置換変数を示します。
表22-19 ユーザー定義プロセス・アクティビティの置換変数
変数 | 値 |
---|---|
${ Working.Host } |
コントロール・センター・サービス・ホストのロケーションのホスト値。 |
${ Working.User } |
コントロール・センター・サービス・ホストのロケーションのユーザー値。 |
${ Working.Password } |
コントロール・センター・サービス・ホストのロケーションのパスワード値。 |
${ Working.RootPath } |
ローカルの作業ディレクトリ。 |
${ Task.Input } |
SCRIPTパラメータから作成された一時ファイル。 Task.Input変数を入力し、Warehouse BuilderにSCRIPTパラメータで記述したスクリプトを参照させます。 Windowsの場合、Parameter_Listに?"-s:${ Task.Input }"?と入力します。 UNIXの場合、Parameter_Listに?"${ Task.Input }"?と入力します。 ここでは、疑問符はセパレータです。 |
whileループを使用して、定義した条件をTRUEと評価できる場合のみ1つ以上のアクティビティを実行します。
通常は、whileループを割当アクティビティに関連付けることにより、while条件を定義できます。少なくとも1つの割当アクティビティによりデータが初期化され、また少なくとも1つの割当アクティビティによってループ反復の終わりまでデータが増分されるか、再度データが変更されます。
whileループを追加する際、エディタは終了ループ・アクティビティと終了ループへの推移も追加します。whileループ・アクティビティからループに含めるそれぞれのアクティビティまでの推移を作成してください。追加する送信推移については、推移を選択して「オブジェクトの詳細」で「条件」をクリックし、EXIT条件またはLOOP条件を推移に適用します。
ループを実行するかどうかを制御するwhile条件を定義するには、「whileループ」アクティビティを選択して、エディタのエクスプローラで「条件」を選択し、「オブジェクトの詳細」で条件を定義します。