データをソースからターゲットへ移動する操作を定義するマッピングを設計した後は、プロセス・フローを作成および定義できます。プロセス・フローによりアクティビティを相互にリンクさせ、アクティビティ間に制約を記述できます。制約とは、条件付きのブランチ、ループ、パラレル・フロー、シリアル依存です。アクティビティとは、マッピング、変換、または電子メール、FTPコマンド、オペレーティング・システムの実行可能ファイルなどの外部コマンドです。
プロセス・フローを使用して、マッピング間の依存性を管理できます。マッピング、プロセス・フローおよびその他の実行可能なオブジェクトをスケジュールするには、「スケジュールの定義および使用のプロセス」を参照してください。
この章の内容は次のとおりです。
プロセス・フローでは、Warehouse Builderマッピングと電子メール、FTPおよびオペレーティング・システム・コマンドなどの外部アクティビティとの依存性を記述します。
各プロセス・フローは「開始」アクティビティで始まり、フロー内のストリームごとに「終了」アクティビティで終了します。プロセス・フローはアクティビティのタイプとみなされているため、他のプロセス・フローを起動できます。
図20-1に、マッピング「MAP1」を起動するプロセス・フローの例を示します。マッピングが正常終了すると、Warehouse Builderから電子メール通知「EMAIL_SUCCEED」が送信され、別のプロセス・フロー「SUBPROC1」が起動されます。マッピングに失敗すると、Warehouse Builderから電子メール「EMAIL_FAIL」が送信され、プロセス・フローが終了します。
Warehouse Builderでプロセス・フローを設計する際には、プロセス・フロー・エディタというインタフェースを使用します。または、Warehouse Builderのスクリプト言語であるOMBスクリプト言語を使用してプロセス・フローを作成し、定義することもできます。詳細は、Oracle Warehouse Builder APIおよびスクリプト・リファレンスを参照してください。
プロセス・フロー・モジュールを使用すると、プロセス・フロー・パッケージをグループ化できます。また、プロセス・フロー・パッケージを使用すると、プロセス・フローをグループ化できます。同時に、プロセス・フロー・モジュールとプロセス・フロー・パッケージによって、プロセス・フローを管理および配布する2つのレベルが提供されます。モジュール・レベルまたはパッケージ・レベルのいずれかでプロセス・フローを検証、生成および配布できます。
同じモジュール内にあれば、他のプロセス・フローを開始するプロセス・フローを設計できます。同じモジュール内にある場合でも異なるモジュール内にある場合でも、あるパッケージから別のパッケージにプロセス・フローをコピーできます。また、パッケージを別のモジュールにコピーすることもできます。これを行うには、デザイン・センターのメイン・メニューの「編集」にある「コピー」および「貼付け」コマンドを使用します。
たとえば、図20-1は、プロセス・フローSUBPROC1を含むプロセス・フローPROC1を示しています。PROC1を正常に実行するには、SUBPROC1およびPROC1を、配置するパッケージは同じでも別でも構いませんが、同じモジュール内に配置する必要があります。
ワークフロー・エンジンへのプロセス・フローの配布
Warehouse Builderのプロセス・フローは、Workflow Management Coalition(WfMC)により記述されたXMLプロセス定義言語(XPDL)標準に準拠しています。プロセス・フローの生成時には、Warehouse BuilderによりXPDL形式のXMLファイルが生成されます。生成されたXMLファイルは、WfMC基準に準拠するワークフロー・エンジンとの統合に使用できます。
Warehouse BuilderにはOracle Workflowとの統合が用意されています。Warehouse Builderの「コントロール・センター」から、Oracle Workflowにプロセス・フロー・パッケージまたはモジュールを配布できます。
前提作業
プロセス・フローの配布を有効にするには、Oracle Warehouse Builderインストレーションおよび管理ガイドのOracle Workflowとの統合の有効化に関する項の説明に従ってOracle Workflowをインストールします。
プロセス・フローを定義するには、次の各項を参照してください。
プロセス・フローの検証および生成
プロセス・フローのスケジューリング(オプション)
プロセス・フローが予測したとおりに実行されることを確認すると、「スケジュールの定義および使用のプロセス」に説明されるように、単一日または複数日に実行するようにプロセス・フローをスケジューリングできます。
プロセス・フローの配布(「配布および実行プロセス」を参照。)
プロセス・フローを使用するには、プロセス・フロー・モジュールを作成します。このモジュールは、プロセス・フローのグループを検証、生成および配布するために使用するコンテナです。プロセス・フロー・モジュールにはプロセス・フロー・パッケージが含まれ、各パッケージにはプロセス・フローが含まれます。
プロセス・フロー・モジュールを作成する手順は、次のとおりです。
プロジェクト・エクスプローラの「プロセス・フロー・モジュール」ノードを右クリックし、「新規」を選択します。
Warehouse Builderに、モジュールの作成ウィザードのようこそページが表示されます。
「次へ」をクリックします。
名前と説明ページで、プロジェクト内で一意のモジュール名を入力します。テキストの説明(オプション)を入力します。
「次へ」をクリックします。
ウィザードに、接続情報ページが表示されます。
モジュール名を基にウィザードによって作成されたデフォルトのロケーションはそのまま使用できます。またはリストから既存のロケーションを選択します。「編集」をクリックして接続情報を入力し、接続をテストします。
「次へ」をクリックします。
ウィザードに、終了ページが表示されます。新規プロセス・フロー・モジュールの名前と配布ロケーションを確認します。
「終了」をクリックすると、Warehouse Builderによって、モジュールの定義が格納され、プロジェクト・エクスプローラに名前が挿入されます。また、プロセス・フロー・パッケージを作成するように要求されます。
プロセス・フローのモジュールを作成すると、プロセス・フロー・パッケージを作成できるようになります。プロセス・フロー・パッケージとは、プロセス・フローの配布元となる追加のグループ化メカニズムです。
プロセス・フロー・パッケージを作成する手順は次のとおりです。
プロジェクト・エクスプローラでプロセス・フロー・モジュールを右クリックし、「新規」をクリックします。
「プロセス・フロー・パッケージの作成」ダイアログ・ボックスが表示されます。
プロセス・フロー・パッケージの名前との説明(オプション)を入力します。
Oracle Workflowと統合する場合、Oracle Workflowはパッケージ名を8バイトに制限していることに注意してください。
「OK」をクリックします。
Warehouse Builderでは、プロセス・フローを作成するように要求されます。
プロセス・フローのモジュールおよびパッケージを作成した後で、プロセス・フローを作成できます。
プロセス・フローを作成する手順は、次のとおりです。
プロジェクト・エクスプローラでプロセス・フロー・パッケージを右クリックし、「新規」をクリックします。
Warehouse Builderにより、「プロセス・フローの作成」ダイアログ・ボックスが表示されます。
プロセス・フローの名前と説明(オプション)を入力します。
注意: プロセス・フローの実行をスケジューリングする場合は、付加的な考慮事項があります。スケジューリングするETLオブジェクトの物理名は25文字以内、ビジネス名は1995文字以内に制限されます。この付加的な制限に従うと、Warehouse Builderでは、接尾辞_jobと配布およびプロセス・フローの実行に必要な他の内部文字をプロセス・フロー名に追加できます。 |
「OK」をクリックします。
Warehouse Builderにより、プロセス・フロー・エディタが起動し、「開始」アクティビティと「End_Success」アクティビティを持つプロセス・フローが表示されます。
これで、アクティビティと推移を持つプロセス・フローをモデル化できます。
「プロセス・フローを定義する手順」に示す手順で続行します。
プロセス・フローのモジュールとパッケージの作成後、プロセス・フロー・エディタを使用して、プロセス・フローを設計および編集します。プロセス・フロー・エディタには、ユーザーが追加できる様々なアクティビティが含まれます。これらを推移に接続してフローを設計します。
アクティビティは、プロセス・フローの作業単位を表します。これらの作業単位には、Warehouse Builderの内部または外部のコンポーネントを含めることができます。推移は、アクティビティを実行する順序および条件を表します。
プロセス・フロー・エディタには、Warehouse Builderのほとんどのエディタに共通する、次の標準コンポーネントがあります。
タイトル・バー: プロセス・フロー・エディタの最上部に、プロセス・フローの名前がタイトル・バーに表示されます。
メニュー・バー: タイトル・バーの下に、プロセス・フロー・エディタのコマンドにアクセスできるメニュー・バーが表示されます。
ツールバー: メニュー・バーの下に、よく使用するコマンドのアイコンを示すツールバーが表示されます。
キャンバス: キャンバスには、プロセス・フローの設計および変更を行うための作業スペースがあります。新しいプロセスを初めて作成するとき、「プロセス・フロー」パネルには、開始アクティビティと終了アクティビティが表示されます。
パレット: プロセス・フロー・エディタを初めて起動するときは、Warehouse Builderによって、左側にパレットが表示されます。パレットには、キャンバスにドラッグ・アンド・ドロップできる「アクティビティ」・アイコンが含まれています。パレットは、エディタ上のどこにでも再配置できます。パレットの「縮小」アイコンをクリックして、パレットの表示または非表示を選択できます。
インジケータ・バー: 下のパネル、「鳥瞰図」パネルおよび「キャンバス」パネルの下に、モード・アイコン、インジケータおよび説明が表示されます。
左隅には、ネーミング・モード、改名モード、読取り/書込み、検証モードが表示されます。
右隅には、倍率インジケータとナビゲーション・モードが表示されます。この図では、倍率は100%で、ナビゲーション・モードは「モードの選択」に設定されています。
マウスをウィンドウの境界に置き、双方向矢印が表示された時点でマウス・ボタンを押し、マウスをドラッグして必要なサイズを指定すると、ウィンドウのサイズを変更できます。
ウィンドウを移動するには、マウス・ポインタをウィンドウのタイトル・バーに置き、ウィンドウを目的の場所にドラッグします。
ウィンドウを表示または非表示にするには、メニュー・バーから「ウィンドウ」を選択し、ウィンドウに対応するチェック・マークをアクティブ化または非アクティブ化します。
エクスプローラ
エディタを初めて起動するときは、Warehouse Builderの左上隅にエディタの「エクスプローラ」パネルが表示されます。エクスプローラには、キャンバス上の全アクティビティとそのパラメータをリストするツリーが表示されます。キャンバスでアクティビティを選択すると、Warehouse Builderではエクスプローラ上でそのアクティビティにナビゲートします。
オブジェクトの詳細
エディタを初めて起動するときはWarehouse Builderの左側に「オブジェクトの詳細」パネルが表示されます。このパネルには、全アクティビティとそのパラメータのプロパティが表示されます。キャンバスまたはエクスプローラからアクティビティを選択すると、Warehouse Builderにより、そのプロパティが表示されます。「エクスプローラ」でアクティビティ・パラメータを選択すると、そのパラメータのプロパティがオブジェクトの詳細ウィンドウに表示されます。白い背景に表示されるプロパティは編集できますが、グレーの背景に表示されるプロパティは編集できません。
パレット
エディタを初めて起動するときは、Warehouse Builderにより左側にパレットが表示されます。パレットには、キャンバスにドラッグ・アンド・ドロップできるアクティビティ・アイコンが含まれます。パレットは、エディタ上のどこにでも再配置できます。メニュー・バーの「表示」の下に表示される演算子パレットをクリックして、パレットの表示または非表示を選択できます。
鳥瞰図
「鳥瞰図」パネルを使用して、大きい複合プロセス・フロー上をナビゲートできます。
プロセス・フロー・エディタを開く手順は、次のとおりです。
プロジェクト・エクスプローラの「プロセス・フロー」ノードから、プロセス・フロー・モジュールを選択します。プロセス・フロー・モジュールがリストされていない場合は、「プロセス・フロー・モジュールの作成」の説明に従って、プロセス・フロー・モジュールを作成します。
プロセス・フロー・モジュールからプロセス・フロー・パッケージを選択します。プロセス・フロー・パッケージがリストされていない場合は、「プロセス・フロー・パッケージの作成」の説明に従って、プロセス・フロー・パッケージを作成します。
プロジェクト・エクスプローラでプロセス・フローを選択します。プロセス・フローがプロセス・フロー・パッケージにリストされていない場合、プロセス・フロー・パッケージを右クリックして「プロセス・フローの作成」を選択します。
Warehouse Builderによって、プロセス・フローの名前を入力するように要求され、入力するとエディタが起動されます。
既存のプロセス・フローを開くには、プロジェクト・エクスプローラでプロセス・フローをダブルクリックします。
または、「プロセス・フロー」を選択して、「編集」メニューから「エディタを開く」を選択します。また、「プロセス・フロー」を選択して、[Ctrl]を押しながら[O]を押すことも可能です。また、「プロセス・フロー」を右クリックして「エディタを開く」を選択することもできます。
Warehouse Builderに、「モードを選択」でプロセス・フロー・エディタが表示されます。
プロセス・フロー・エディタには、キャンバスでオブジェクトを移動、選択、表示するための各種ツールが含まれています。プロセス・フローの設計時によく使用するコマンドには、次のものがあります。
モードを選択
キャンバスのオブジェクトを選択するには、モードの選択を使用します。選択したアクティビティは青い枠で囲まれ、編集、移動または削除できます。
アクティビティは、オブジェクトの詳細ウィンドウとエディタ・エクスプローラ・ウィンドウの「使用可能なオブジェクト」タブを使用して編集できます。推移を選択すると、矢印が黒から青に変更されます。推移はオブジェクト詳細で編集します。
「モードを選択」をアクティブにするには、ツールバーのアイコンをクリックするか、メニューから「編集」、「モードの選択」の順に選択します。
ナビゲーション・エッジ
ナビゲーション・エッジは、キャンバス上で複雑な設計をナビゲートするのに役立ちます。ツールバーからアイコンを選択し、次にキャンバスのアクティビティを選択します。マウスのボタンを放すと、フロー内の次のアクティビティにナビゲートし、そのアクティビティにフォーカスが移ります。フローを逆方向にナビゲートするには、ナビゲーション・エッジ・アイコンを選択し、次にフロー内の最後のアクティビティを選択します。
複雑な設計をエディタでナビゲートおよび表示するには、次のツールが便利です。
パン
インタラクティブ・ズーム
ズーム・イン
ズーム・アウト
ウィンドウに適合
自動レイアウト
中央
子グラフの拡張
子グラフの表示
親グラフに戻る
Warehouse Builderのエクスプローラ・ツリーを使用すると、プロセス・フローにアクティビティを追加できます。
アクティビティとは、マッピングの開始、またはドライブやディレクトリ上のファイルの存在確認など、プロセス・フローの作業単位を表します。Warehouse Builderでプロセス・フローを設計するときは、エディタ・パレットからアクティビティを選択し、キャンバスにドラッグしてパラメータを設定します。Warehouse Builderには、次のタイプのアクティビティが用意されています。
Oracle Warehouse Builder固有のアクティビティ: このアクティビティを使用すると、マッピング、変換または他のプロセス・フローなどのWarehouse Builderオブジェクトを起動できます。プロセス・フローではオブジェクトが実行され、COMMIT文が提供されます。
ユーティリティ・アクティビティ: このアクティビティを使用すると、電子メール送信やファイル転送などのサービスを実行できます。
コントロール・アクティビティ: このアクティビティを使用すると、プロセス・フローの進行状況と方向を制御できます。たとえば、複数のアクティビティを同時に起動するには「FORKアクティビティ」を使用します。
ユーティリティ・タイプおよびコントロール・タイプのアクティビティの場合、「アクティビティ・テンプレートの作成および使用」の説明に従ってアクティビティ・テンプレートを定義すると、そのパラメータを再利用できます。たとえば、電子メールの場合、電子メール・テンプレートを使用してSMTPサーバー名、ポート番号、アドレス・リストおよび優先順位を指定します。これにより、プロセス・フローに電子メール・アクティビティを追加するときにそのテンプレートを再利用できます。
各アクティビティの説明は、「プロセス・フローにおけるアクティビティの使用」を参照してください。
プロセス・フローにアクティビティを追加する手順は次のとおりです。
エディタの左端にあるパレットにリストされるアクティビティを表示します。
デフォルトでは、すべてのアクティビティがパレットにリストされます。特定のアクティビティを検索するには、パレットのリスト・ボックスを使用して、表示されるリストをOracle Warehouse Builder固有のアクティビティ、ユーティリティ・アクティビティまたはコントロール・アクティビティのいずれかのアクティビティのタイプに絞り込みます。
パレットからアクティビティを選択してキャンバスにドラッグします。
エディタにより、キャンバスにアクティビティが表示され、名前が青でハイライトされます。
デフォルト名を受け入れるには[Enter]を押します。名前を変更するには、新規の名前を入力します。
エディタの左側にある「エクスプローラ」ペインと左端にある「オブジェクトの詳細」ペインに、アクティビティがリストされます。
「オブジェクトの詳細」ペインで、アクティビティのパラメータを入力します。
これらのパラメータは、アクティビティのタイプに応じて変わります。各パラメータについて、名前、方向およびデータ型が読取り専用で定義されます。また、各パラメータのバインド、リテラル、値および説明を指定できます。
たとえば、図20-2には、「DEFAULT_RESPONSE」、「EXPANDED_ROLES」、「HTML_BODY」、「PERFORMER」、「PRIORITY」、「RESPONSE_PROCESSOR」、「RESPONSE_TYPE」、「SUBJECT」、「TEXT_BODY」および「TIMEOUT」を含む通知アクティビティのパラメータが表示されています。
各パラメータには、次のプロパティがあります。
名前
アクティビティ・パラメータの名前のプロパティです。特定のパラメータについては、「プロセス・フローでのアクティビティの使用」で、そのアクティビティ名を参照してください。
方向
プロパティの方向は、ユーザーが作成していないパラメータは読取り専用です。方向「イン」は、パラメータがアクティビティの入力パラメータであることを示します。
データ型
データ型のプロパティは、ユーザーが作成していないパラメータは読取り専用です。すべてのデフォルト・パラメータに適切なデータ型が割り当てられます。
バインド
ユーザーが作成していないパラメータに、プロセス・フローの外部からパラメータを渡すには、バインディング・プロパティを使用します。パラメータを「バインド」に割り当てた場合は、「値」に割り当てたテキストが上書きされます。
リテラル
フィールド「値」にパラメータの値を入力した場合は、その値がリテラルであるか式であるかを示します。リテラル・データ型は、カレンダ・データ型を除いて、PL/SQLリテラル値仕様に従います。これらのデータ型は、プロセス・フローが異なるロケーションのデータ・ソースと対話するときに、標準書式で表されます。
表20-1に、リテラル値の型、書式および例を示します。
表20-1 リテラル値の型の例
リテラル値の型 | 形式 | 例 |
---|---|---|
DATE |
YYYY-MM-DD |
2006-03-21 |
DATE |
YYYY-MM-DD HH24:MI:SS |
2006-03-21 15:45:00 |
TIMESTAMP |
YYYY-MM-DD HH24:MI:SS.FF9 |
2006-03-21 15:45:00.000000000 |
TIMESTAMP_TZ |
YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM |
2006-03-21 15:45:00.000000000 +01:00 |
YMINTERVAL |
[+-]YYYYYYYYY-MM |
+000000001-01 |
DMINVERVAL |
[+-]DDDDDDDDD HH24:MI.SS.FF9 |
+000000001 01:01:01.000000001 |
値
パラメータの値です。一部のパラメータについては、値リストから選択できます。その他のパラメータには、デフォルト値が割り当てられています。この値は、新しい値を入力するか、「バインド」フィールドを使用して上書きできます。使用可能な値のリストがない、またはデフォルト値が設定されていない場合は、値を入力する必要があります。
説明
各プロパティの説明を入力できます(オプション)。
プロセス・フローの設計中に、既存のアクティビティを再利用できます。たとえば、プロセス・フローでマッピングに失敗するたびに、同じ管理者グループに電子メールを送信できます。電子メール・アクティビティ用のテンプレートを作成した後は、そのアクティビティを多数のプロセス・フローで使用したり編集します。
アクティビティ・テンプレートを作成する手順は、次のとおりです。
プロジェクト・エクスプローラで、「プロセス・フロー」ノードの下にある「アクティビティ・テンプレート」ノードにナビゲートします。
テンプレート格納用のフォルダを作成するには、「アクティビティ・テンプレート」ノードを右クリックして「新規」を選択します。
フォルダに名前を割り当てます。
作成予定のテンプレートのタイプごとにフォルダを作成することを検討してください。たとえば、電子メール・テンプレートとFTPテンプレートの格納用に、個別のフォルダを作成できます。
アクティビティ・テンプレートの作成ウィザードが表示されます。
注意: ウィザードが自動的に表示されない場合は、フォルダを右クリックして「新規」を選択します。 |
アクティビティ・テンプレートの作成ウィザードに表示されるプロンプトに従って、名前と説明ページ、パラメータ・ページおよびウィザードのサマリー・ページを完了します。
プロセス・フローにテンプレートを使用する手順は、「アクティビティ・テンプレートの使用」を参照してください。
「アクティビティ・テンプレート」でのオブジェクトのネーミング規則は、ネーミング・プリファレンスで選択するネーミング・モードに応じて異なります。Warehouse Builderでは、ワークスペース内のオブジェクトごとにビジネス名と物理名が保持されます。ビジネス名とは、説明的なビジネス名です。物理名は、Warehouse Builderでコード生成時に使用される名前です。
一方のネーミング・モードで作業中にオブジェクト名を指定すると、Warehouse Builderでは他方のモード用にデフォルト名が作成されます。したがって、ビジネス名モードで作業中に、大/小文字の両方、特殊文字および空白を含むアクティブ・テンプレート名を割り当てると、Warehouse Builderではオブジェクトのデフォルトの物理名が作成されます。
作成するアクティビティ・テンプレートの名前を割り当ててタイプを選択します。また、必要に応じてテンプレートの説明を記述します。
ネーミング・アクティビティ
物理ネーミング・モードでは、アクティビティ名は1文字から30文字までの英数字で、空白は使用できません。ビジネス・ネーミング・モードでは、2000文字以内という制限があり、空白と特殊文字を使用できます。両方のネーミング・モードにおいて、名前はプロジェクト全体で一意にする必要があります。
アクティビティの記述
説明は2から2000文字までの英数字で構成され、空白を含めることができます。アクティビティ・テンプレートの説明の指定はオプションです。
「アクティビティ・テンプレート」
次のアクティビティ・テンプレートは、リストから使用可能です。
割当
電子メール
FTP
ファイルが存在
手動
通知
ステータスの設定
SQLPlus
ユーザー定義
待機
アクティビティ・テンプレートで選択したアクティビティのタイプに基づいてパラメータが表示されます。
アクティビティのデフォルト値を入力します。このデフォルト値は、プロセス・フローでアクティビティ・テンプレートを使用するときに、保持または編集できます。
たとえば、図20-3では、電子メールの件名およびメッセージ本文のデフォルト値を編集してマッピング名を挿入できます。
アクティビティ・テンプレートを使用する手順は、次のとおりです。
プロジェクト・エクスプローラで、「プロセス・フロー」ノードの下のプロセス・フロー・モジュールにナビゲートします。
プロセス・フロー・エディタを開くには、「プロセス・フロー」モジュールを右クリックして「エディタを開く」を選択します。
プロセス・フロー・エディタで、「エクスプローラ」パネルの「使用可能なオブジェクト」タブをクリックし、「アクティビティ・テンプレート」を開きます。
図20-4に、アクティビティ・テンプレートが展開されている状態のエクスプローラ・ウィンドウを示します。
アクティビティ・テンプレートをキャンバスにドラッグ・アンド・ドロップします。
プロセス・フロー内の「アクティビティ・テンプレート」は、通常のアクティビティと同様に動作します。
アクティビティを編集するには、エクスプローラ・ウィンドウの「選択したオブジェクト」タブをクリックし、「オブジェクトの詳細」パネルでアクティビティを編集します。
図20-5に、電子メール・アクティビティの「BCC_ADDRESS」パラメータが選択されている状態の「エクスプローラ」パネルが表示されます。
推移を使用して、アクティビティがプロセス・フローで発生する順序および条件を示します。推移を使用すると、直前のアクティビティの完了状態を基に、アクティビティを実行できます。
推移をキャンバスに追加する場合、デフォルトでは推移に適用される条件がありません。プロセス・フローは、前のアクティビティが終了すると、前のアクティビティの状態に関係なく続行します。
ソース・アクティビティ・タイプによって、条件が適用されていない推移のセマンティクスが異なります。アクティビティ・タイプがFORKの場合、各推移がプロセス・フローで新しいフローを開始する複数の無条件推移があります。ソース・アクティビティ・タイプがFORKではない場合、1つの無条件推移のみが存在し、最後のIF...THEN...ELSIF...ELSE...END
PL/SQL文のELSE
条件のように、他の条件遷移がアクティブ化されていない場合に使用されます。
有効な推移は、次のルールに従う必要があります。
STARTおよびEND以外のすべてのアクティビティには、少なくとも1つの受信推移を設定する必要があります。
複数の受信推移を設定できるのは、ANDおよびORアクティビティのみです。
複数の無条件の送信推移を設定できるのは、FORKアクティビティのみです。
FORKアクティビティに設定できるのは、無条件の送信推移のみです。
列挙された結果セットがあるアクティビティには、考えられる各結果に対する送信推移、または無条件の送信推移が設定されている必要があります。
アクティビティには、複雑な式の送信推移を設定しないことも、複数設定することもできます。
複雑な式の送信推移が設定されたアクティビティは無条件の送信推移である必要があります。
END_LOOP推移には、関連するFOR_LOOPまたはWHILE_LOOPアクティビティへの無条件推移が1つのみ設定されている必要があります。
FOR_LOOPまたはWHILE_LOOPの終了
結果からの推移は、ループ結果の結果として実行される可能性のあるアクティビティに接続しないでください。
推移を使用して依存性を作成する手順は、次のとおりです。
モードの選択で作業している場合は、中心線でアクティビティ・アイコンの右の境界にマウスをポイントします。
カーソルが、小さい水平の矢印として表示されます。この状態で、マウス・ボタンを使用してアクティビティを接続できます。
マウスの左ボタンを押しながら次のアクティビティの方向にスクロールします。スクロールを開始すると、カーソルは下にプラス記号が付いた矢印として表示されます。このプラス記号が円に変わるまで、次のアクティビティの方向にスクロールし続けます。マウス・ボタンを放すと、2つのアクティビティが接続されます。
2つのアクティビティの間に矢印が表示されます。推移にデフォルト名が割り当てられ、この推移がエクスプローラおよびオブジェクト・セレクタ・ウィンドウに表示されます。
オブジェクト・セレクタ・ウィンドウで、次の属性を表示または編集します。
名前: エディタによってデフォルト名が割り当てられます。この名前は変更できます。
説明: 推移の説明(オプション)を入力できます。
条件: キャンバスに初めて描画したときの推移は、デフォルトでは無条件です。デフォルトを上書きして条件を適用するには、「推移条件の定義」の説明に従って、「条件」のボタンをクリックします。条件を選択すると、キャンバスの推移の線の近くに、関連するアイコンが表示されます。
ソース: このプロパティは読取り専用で、接続内の最初のアクティビティを示します。
ターゲット: このプロパティは読取り専用で、接続内の2番目のアクティビティを示します。
Sqlplusなどのいくつかのアクティビティには追加構成が必要です。特定のアクティビティのこれらの構成の詳細は、「プロセス・フローでのアクティビティの使用」にリストされています。
プロセス・フローとアクティビティでは、概念を渡すPL/SQLパラメータがサポートされており、データを渡すことができるため、パラメータ化による再利用が容易になっています。これは、パラメータまたは変数として実装されたデータ・ストアを通じて実現されます。プロセス・フローでは、データ・ストア間でデータを渡すことができます。
パラメータを使用すると、プロセス・フローとそのアクティビティまたはサブプロセス間でデータを渡すことができます。
変数により、プロセス・フローを実行する存続期間中に維持される一時データの記録域が使用できます。変数は、アクティビティ間のデータの移動に使用されます。
図20-6に、データが渡される方向を示します。
プロセス・フローは、次のルールに従ってデータ・ストア間で渡されるデータを許可しています。
プロセス・フロー変数は、フロー・パラメータから初期化できますが、逆にフロー・パラメータをプロセス・フロー変数から初期化することはできません。
アクティビティ・パラメータは、プロセス・フロー変数およびプロセス・フロー・パラメータ間で双方向にデータを渡すことができます。
推移式は、その式のソース・アクティビティ・パラメータ、およびプロセス・フロー・パラメータとプロセス・フロー変数と照合して評価できます。
データ・ストアには、同じスコープ内の別のデータ・ストアからはアクセスできません。
ネームスペースを使用すると、PL/SQLと同様に、内部スコープのデータ・ストアでは、外部スコープのデータ・ストアを非表示にできます。非表示のデータ・ストア名は、データ・ストア名をプロセス・フロー名またはアクティビティで修飾することによって参照できます。次に例を示します。
My_PROC.VAR1
ネームスペースによって、同じスコープ内の別のデータ・ストアからデータを参照することはできません。
データ・ストアは、外部スコープ内の別のデータ・ストアにバインドでき、これによって、双方向のデータの受渡しがサポートされます。
プロセス・フローのバインドは、次のルールがあるPL/SQLと同じセマンティクスに従います。
すべてのデータは、プロセス・フロー内で値で渡されます。
変数はバインドによって初期化できます。値を戻すことはできません。
INOUTパラメータは、外部スコープ内のINパラメータにバインドできます。値で渡される出力値は、監査後に廃棄されます。
変数は、データをプロセス・フロー・パラメータに渡すことができません。そのため、割当て演算子を使用してこれを行い、変数およびパラメータにバインドします。
Oracle Warehouse Builderでは、パラメータ値の導出に関するPL/SQL式の使用、および複雑な式の推移の使用がサポートされています。
式では、データ・ストアに対して正しく入力された値を生成する必要があります。VARCHAR
からの自動変換がサポートされています。式が推移と関連付けられている場合、結果はBOOLEANであることが必要です。
評価時に、式は、その式が含まれている外部スコープにアクセスします。このため、アクティビティのパラメータに関する式は、その式の評価でプロセス・フロー変数およびプロセス・フロー・パラメータを使用できます。
PL/SQL式は、アクティビティの実行を要求した「コントロール・センター」ユーザーのコンテキストで実行されます。ただし、Oracle Workflowスキーマがリモート・データベース・インスタンスでホスト管理されている場合は、データベース・リンクの生成にかかわる有効なユーザーがかわりに使用されます。別の「コントロール・センター」ユーザーが選択される場合がありますが、プロセス・フローの構成および評価ロケーションの指定は行われます。この結果、式は、「コントロール・センター」ユーザーがアクセス可能なPL/SQLファンクションを参照できます。
Warehouse Builderでは、現在のアクティビティおよび所有プロセス・フローのその他のデータ値も式で使用できます。
表20-2に、これらのグローバル式の値を示します。
表20-2 グローバル式の値
識別子 | タイプ | 説明 |
---|---|---|
NUMBER_OF_ERRORS |
NUMBER |
アクティビティの実行完了時にレポートされたエラー数 |
NUMBER_OF_WARNINGS |
NUMBER |
アクティビティの実行完了時にレポートされた警告の数 |
RETURN_RESULT |
VARCHAR2(64) |
SUCCESS、WARNING、ERRORなどのテキストで表示される結果 |
RETURN_RESULT_NUMBER |
NUMBER |
RESULT_RESULT1 = SUCCESS2 = WARNING3 = ERRORの列挙。 |
RETURN_CODE |
NUMBER |
整数0から-255。アクティビティ固有であり、オペレーティング・システムのリターン・コードと同じ |
PARENT_AUDIT_ID |
NUMBER |
コール側プロセス・フローの監査ID |
AUDIT_ID |
NUMBER |
アクティビティの監査ID |
表20-3に、提供される追加定数を示します。
識別子 | タイプ | 説明 |
---|---|---|
SUCCESS | NUMBER | SUCCESSの列挙値 |
警告 | NUMBER | WARNINGの列挙値 |
ERROR | NUMBER | ERRORの列挙値 |
推移エディタを使用して、列挙された条件の1つを指定するか、複合条件の式を記述します。列挙された条件は正常終了、警告およびエラーなどで、表20-3に示すようにキャンバスに表示されます。
表20-3 推移条件のタイプ
アイコン | 推移 | 説明 |
---|---|---|
![]() |
正常終了 |
プロセス・フローは、直前のアクティビティが正常終了した場合にのみ続行されます。 |
![]() |
警告 |
プロセス・フローは、直前のアクティビティが警告で終了した場合にのみ続行されます。 |
![]() |
エラー |
プロセス・フローは、直前のアクティビティがエラーで終了した場合にのみ続行されます。 |
![]() |
警告 |
プロセス・フローは、直前のアクティビティが警告で終了した場合にのみ続行されます。 |
![]() |
複合 |
プロセス・フローは、直前のアクティビティで式に指定した基準を満たす値が戻された場合にのみ続行されます。 |
![]() |
拡張 |
プロセス・フローは、直前の通知アクティビティが拡張結果で終了した場合にのみ続行されます。 |
拡張推移は、拡張結果を戻す唯一のアクティビティであるため、通知アクティビティにのみ有効です。このアイコンをアクティビティが取得するのは、#MAIL、#NOMATCH、#TIEまたは#TIMEOUT
の結果に設定されている場合です。表20-4に、拡張推移の出力と説明を示します。
表20-4 拡張推移の出力と説明
出力 | 説明 |
---|---|
#NOMATCH |
候補が最低票数を得票しなかった投票通知の結果。 |
#TIE |
同一得票数となった投票通知の結果。 |
|
通知にメール・エラーが発生しました。通知の電子メールを受信しなかった受信者がいるため、メールが取り消されました。 |
#TIMEOUT |
通知は、構成された時間内に応答を受信しませんでした。 |
アクティビティに送信アクティビティが1つしかなければ、表20-3にリストされた条件のいずれかを指定するか、推移を無条件にしておくことができます。
複数の送信推移に関する使用ルールは、アクティビティのタイプに応じて異なります。一般ルールでは、SUCCESS、WARNING、ERRORおよびUNCONDITIONALをそれぞれ1つと必要な数の複合条件を使用できます。ただし、AND、FORKおよびORなどのコントロール・アクティビティを使用する場合は例外です。
あるアクティビティからの複数の送信推移を追加する場合は、条件が競合しないことを確認してください。競合が発生するのは、プロセス・フローの論理で複数の送信推移をTRUEと評価できる場合です。
図20-7に、「MAP1」に可能な3つの完了状態に基づいて異なるアクティビティがトリガーされるプロセス・フローの一部を示します。一度に満たすことができるのはこれらの条件のうち1つのみであるため、競合は発生しません。無条件推移または別の条件付き推移を追加しようとすると、2つの推移条件がTRUEとなり、プロセス・フローが無効になります。
シナリオ
会社はレガシー・システムに依存しており、そのシステムでは、データはフラット・ファイルに毎日書き込まれ、作成日時に基づいた一意の名前がファイルに割り当てられています。ソースとして生成済フラット・ファイルを使用して、リレーショナル・データベースにデータを転送およびロードするマッピングを作成する必要があります。ただし、マッピングには固定の名前を持つファイルが必要ですが、この場合ではソース・ファイルが作成されるたびにソース・ファイル名は変更されます。
解決策
Warehouse Builderでは、特定のディレクトリに生成済ファイルを置き、ファイル名を固定ファイル名に変更して、従属するマッピングを開始するプロセス・フローを設計できます。これでマッピングのソースとして固定フラット・ファイル名を使用できます。
事例
この事例では、変数名を使用するフラット・ファイルを生成するレガシー・システムからデータを抽出するために、プロセス・フローおよびマッピングを作成する方法について説明します。プロセス・フローは外部プロセス・アクティビティの使用状況により異なります。この事例の目的のためには、次の知識が前提になります。
生成済フラット・ファイル: レガシー・システムにより、毎日の売上データが含まれるフラット・ファイルが生成されます。ファイルはc:¥staging_files
ディレクトリに格納され、sales010520041154.dat
など、時刻および日付に基づいてファイルに名前が付けられます。すべての生成済ファイルは同じディレクトリに格納され、sales
という単語で始まり、次にタイムスタンプ情報が続きます。
固定フラット・ファイル名: 生成済のファイル名をs_data.dat
という名前に変更します。これは、マッピング内でフラット・ファイル・ソースとして参照する名前です。
プロセス・アクティビティ: OWF_EXT
という名前のプロセス・フローを設計し、DOSのバッチ・コマンドを実行して生成済ファイルをコピーし、s_data.dat
として保存して、元の生成済ファイルを削除します。
この目的は、必ず生成済フラット・ファイルの名前が適切に変更されてからマッピングの実行をトリガーするロジックを作成することです。
生成ごとに名前が変わるフラット・ファイルからデータを抽出するには、次の項を参照してください。
外部プロセス・アクティビティが正常に完了したら、マッピングを開始するプロセス・フローを作成します。プロセス・フローは図20-8と同様である必要があります。プロセス・フローの作成の詳細は、「プロセス・フローを定義する手順」を参照してください。
この項では、生成済ファイルの名前を変更するDOSコマンドの指定方法について説明します。外部プロセス・アクティビティから発行するDOSコマンドは、次のようになります。
copy c:\staging_files\sales*.* c:\staging_files\s_data.dat del c:\staging_files\sales*.*
最初のコマンドは、一時ファイルをs_data.dat
という固定の名前のファイルにコピーします。2番目のコマンドは、元の生成済ファイルを削除します。
Warehouse Builderにコマンド・スクリプトが記述されているファイルを指定するか、またはWarehouse Builderのユーザー・インタフェースにコマンドを記述できます。次の方法のうち1つを選択します。
Warehouse Builder内にスクリプトを保持する必要がある場合はこの方法を選択します。スクリプトが小さく、変更する必要がない場合はこの方法の使用を検討してください。
この方法では、SCRIPTパラメータの「値」列にスクリプトを書き込むか、またはコピーして貼り付けます。COMMANDパラメータには、c:¥winnt¥system32¥cmd.exe
などのDOSシェル・コマンドのパスを入力します。また、PARAMETER_LISTパラメータの「値」列に${Task.Input}
変数を入力します。アクティビティ・ビューは図20-9のようになります。
この事例では示されていませんが、Warehouse Builder内にスクリプトを保持している場合はスクリプト内に置換変数を使用できます。これにより、サーバー・ファイル、アカウントおよびパスワードが変更されたときにアクティビティを更新する必要がなくなります。
表20-5には、外部プロセス・アクティビティに対して入力できる置換変数がリストされています。Workingは、ランタイム・サービスをホストするコンピュータを示し、この事例ではローカル・コンピュータを示します。Remoteはランタイム・サービス・ホスト以外のサーバーを示します。「外部プロセス・アクティビティの構成」の説明に従って、アクティビティを構成するときにリモートのサーバーおよびローカルのサーバーを指定します。これらの値は、配布時にロケーションを登録するときに設定されます。
表20-5 外部プロセス・アクティビティに対する置換変数
変数 | 値 |
---|---|
${ Working.Host } |
ランタイム・サービス・ホストのロケーションのホスト値。 |
${ Working.User } |
ランタイム・サービス・ホストのロケーションのユーザー値。 |
${ Working.Password } |
ランタイム・サービス・ホストのロケーションのパスワード値。 |
${ Working.RootPath } |
ランタイム・サービス・ホストのロケーションのルート・パス値。 |
${ Remote.Host } |
ランタイム・サービス・ホスト以外のロケーションのホスト値。 |
${ Remote.User } |
ランタイム・サービス・ホスト以外のロケーションのユーザー値。 |
${ Remote.Password } |
ランタイム・サービス・ホスト以外のロケーションのパスワード値。 |
${ Remote.RootPath } |
ランタイム・サービス・ホスト以外のロケーションのルート・パス値。 |
${Deployment.Location} |
配布ロケーション。 |
追加メンテナンスに問題ない場合は、Warehouse Builderに必要なコマンドを含むスクリプトが記載されているファイルを指定できます。この方法はより柔軟で、プロセス・フローの実行中にパラメータを渡すことができます。
次の例では、Warehouse Builderの外の外部プロセスのスクリプトをコールする方法およびプロセス・フローの実行中にパラメータをスクリプトに渡す方法を説明します。この例ではWindowsのオペレーティング・システムを想定します。その他のオペレーティング・システムに対しては、適切な対応コマンドを発行します。
外部プロセス・アクティビティのスクリプトをコールする手順は、次のとおりです。
スクリプトを作成し、ファイル・ディレクトリに保存します。たとえば、次のようなスクリプトを作成し、c:¥staging_files¥rename_file.bat
として保存できます。
copy c:¥staging_files¥%1*.dat c:¥staging_files¥s_data.datdel c:¥staging_files¥%1*.dat
このサンプル・スクリプトでは、プロセス・フローの実行中にパラメータ%1をスクリプトに渡します。このパラメータは、sales010520041154
などの、一時ファイル名の最初の文字を含む文字列を表します。
キャンバスで開始アクティビティを選択し、プロセス・フロー・エディタに表示される「エクスプローラ」パネルの「使用可能なオブジェクト」タブ内のアクティビティ・パラメータを表示して編集します。
開始パラメータを追加するには、「使用可能なオブジェクト」タブ内の「エクスプローラ」ペインの左上隅にある「追加」をクリックします。図20-10に示すように、FILE_STRING
という名前の開始パラメータを作成します。実行中、Warehouse Builderからrename_file.bat
スクリプト内の%1
パラメータに渡すFILE_STRING
の値を入力するように要求されます。
図20-11に示すように、キャンバスの外部プロセス・アクティビティを選択し、パラメータを編集します。
COMMANDパラメータでは、「値」という名前の列内のスクリプトへのパスを入力します。必要に応じて、スクロール・バーを使用してスクロール・ダウンし、列を表示します。たとえば、c:¥staging_files¥rename_file.bat
と入力します。
PARAMETER_LISTでは、「バインド」という名前の行をクリックし、開始アクティビティFILE_STRINGに対して定義したパラメータを選択します。
外部プロセスのその他すべてのパラメータのデフォルト設定を受け入れます。外部プロセス・アクティビティのアクティビティ・ビューは図20-11のようになります。
外部プロセスの送信推移に条件を適用する場合は、外部プロセス・アクティビティを構成するときにそれらの条件の意味を定義する必要があります。
外部プロセス・アクティビティを構成する手順は、次のとおりです。
ナビゲーション・ツリーのプロセス・フローを右クリックして、「構成」を選択します。
外部プロセス・アクティビティおよび「パスの設定」を開きます。Warehouse Builderにより、構成設定が表示されます。
表20-5に示すリモート・ロケーション、作業ロケーションおよび配布ロケーションに関連する置換変数を使用してWarehouse Builderユーザー・インタフェースにスクリプトを書き込んだ場合は、この手順を完了します。リストを使用して値を選択します。
この事例では置換変数を使用しないので、デフォルト値を使用します。
プロセス・フローを配布するコンピュータに配布ロケーションを設定します。
「ステータスとしてリターンを使用」を選択します。
この構成手順により、プロセス・フローは外部プロセスのリターン・コードを使用してどの送信推移をアクティブ化するかを判断します。図20-8に示すように、この事例のプロセス・フローでは、外部プロセスが正常な値を返す場合は、正常に推移が継続され、ダウンストリーム・マッピングが実行されます。
これで、s_data.dat
をソースとして使用してマッピングを設計できます。PL/SQLマッピングまたはSQL*Loaderマッピングを作成できます。PL/SQLでは、フラット・ファイル・ソースを外部表にマップし、PL/SQLマッピングに使用可能なすべての演算子を使用して残りのマッピングを設計します。SQL*Loaderでは、フラット・ファイル・ソースをステージング表にマップし、SQL*Loaderマッピングで許可された演算子にマッピングを制限します。
マッピングを配布します。また、プロセス・フローOWF_EXT
を含むプロセス・フロー・パッケージまたはモジュールも配布します。
プロセス・フローを手動で実行します。プロセス・フローを実行すると、Warehouse Builderにより、スクリプトFILE_STRINGに渡すために作成したパラメータの値を入力するように要求されます。この事例では、図20-12に示すように、?sales
(疑問符マークはセパレータ)と入力します。外部アクティビティにより、コマンドrename_file.bat sales
が実行されます。
プロセス・フローを手動で正常に実行した後、スケジュールの作成を考慮します。プロセス・フローおよびマッピングを実行するための毎日のスケジュールを定義できます。
Warehouse Builderで配布するマッピングおよびプロセス・フローなどの操作を実行する時間および頻度を計画するために、スケジュールを使用します。
スケジューラを作成する手順は、次のとおりです。
プロジェクト・エクスプローラの「スケジュール」ノードを右クリックし、「新規」を選択します。
Warehouse Builderに、モジュールの作成ウィザードのようこそページが表示されます。
「次へ」をクリックします。
名前と説明ページで、プロジェクト内で一意のモジュール名を入力します。テキストの説明(オプション)を入力します。
「次へ」をクリックします。
ウィザードに、接続情報ページが表示されます。
モジュール名に基づいて、ウィザードにより作成されたデフォルトのロケーションをそのまま使用できます。または、ロケーション・リストから既存のロケーションを選択します。「編集」をクリックして接続情報を入力し、接続をテストします。
「次へ」をクリックします。
ウィザードに、サマリー・ページが表示されます。新規スケジューラ・モジュールの名前とステータスを確認します。
「終了」をクリックすると、Warehouse Builderによってモジュールの定義が格納され、プロジェクト・エクスプローラに名前が挿入されます。次に、スケジュールを作成するように要求されます。
シナリオ
会社の開発者が、データの抽出、変換およびロードを行うマッピングを設計しました。マッピングのソース・データは、ETLプロセスを実行するサーバーとは異なるサーバーに存在します。リモートのコンピュータからファイルを転送して依存マッピングをトリガーするロジックを作成する必要があります。
解決策
Warehouse Builderでは、ファイル転送プロトコル(FTP)コマンドを実行するプロセス・フローを設計でき、続いてマッピングを開始できます。プロセス・フローを有効にするには、FTPコマンドに、ランタイム・サービスがインストールされているサーバーからのデータの転送、またはそのサーバーへのデータの転送が含まれる必要があります。ランタイム・サービスがインストールされていない2つのコンピュータ間でデータを移動するには、最初にデータをランタイム・サービスがインストールされているホスト・コンピュータに転送し、次にデータを2番目のコンピュータに転送します。
プロセス・フローを設計し、FTPコマンドの成功または失敗に応じて様々なアクティビティを開始できます。
事例
この事例では、あるコンピュータから別のコンピュータへファイルを転送する方法および依存マッピングを開始する方法について説明します。この事例では、すべての必要なサーバー、ファイルおよびユーザー・アカウントの例を示します。
データ・ホスト・コンピュータ: ソース・データをホストするコンピュータには、ユーザー名とパスワード、ホスト名、データが存在するディレクトリが必要です。この事例では、データをホストするコンピュータはsalessrv1
というUNIXサーバーです。ソース・データは、salesdata.txt
というフラット・ファイルで、/usr/stage
ディレクトリにあります。
ランタイム・サービス・ホスト・コンピュータ: この事例では、Windowsオペレーティング・システムとともに、Warehouse Builderおよびランタイム・サービスがlocal
というコンピュータにインストールされています。local
によりマッピングおよびプロセス・フローが実行されます。
マッピング: この事例では、salesresults
というマッピングが存在すると想定し、そのマッピングはソースとしてc:¥temp
のlocal
に格納されたsalesdata.txt
のコピーを使用するとします。
FTPコマンド: この事例では、Windowsオペレーティング・システムでの基本的なFTPの使用例を示します。
salessrv1
にあるフラット・ファイルがlocal
コンピュータに確実にコピーされるロジックを作成して、salesresults
マッピングの実行をトリガーすることが目的です。
ファイルを転送して依存マッピングを開始するには、次の各項を参照してください。
前の項の手順を完了した後、プロセス・フローを実行できます。
プロセス・フロー・エディタを使用して、FTPアクティビティがあるプロセス・フローを作成します。FTPアクティビティは、成功するとsalesresults
マッピングに推移します。プロセス・フローは図20-13のように表示されます。
この項では、リモート・サーバーsalessrv1
からローカル
・コンピュータにデータを転送するためのコマンドを指定する方法について説明します。図20-14に示すように、アクティビティ・ビューのFTPアクティビティ・パラメータに値を入力することにより、FTPパラメータを指定します。
Warehouse Builderでは、より柔軟にFTPコマンドを指定できます。次のいずれかの方法を選択します。
方法1: Warehouse Builder内にスクリプトを書き込む: Warehouse Builder内にスクリプトを保持する場合、およびサーバーに対するパスワード・セキュリティが必要条件である場合は、この方法を選択します。
この方法では、SCRIPTパラメータの「値」列にスクリプトを書き込むか、またはコピーして貼り付けます。COMMANDパラメータに、c:¥winnt¥system32¥ftp.exe
のようなFTP実行可能ファイルへのパスを入力します。また、PARAMETER_LISTパラメータの「値」列にTask.Input
変数を入力します。
方法2: Warehouse Builder外部で維持されるスクリプトをコールする: パスワード・セキュリティの問題がない場合、Warehouse BuilderではFTPコマンド、ユーザー名およびパスワードを含むスクリプトを持つファイルを指定できます。
ファイル・システムのファイルをコールするには、Warehouse Builderがそのファイルを指定するようにPARAMETER_LISTに適切なコマンドを入力します。Windowsオペレーティング・システムの場合、次のように入力します。?"-s:<file path¥file name>"?
たとえば、Cドライブのtempディレクトリにあるmove.ftp
という名前のファイルをコールするには、次のように入力します。?"-s:c:¥temp¥move.ftp"?
このメソッドの場合、SCRIPTパラメータを空白のままにします。
次の例は、前述した方法1について説明しています。スクリプトおよび置換変数を使用する例です。スクリプトは、salessrv1
にある正しいディレクトリにナビゲートされ、置換変数はセキュリティおよび様々な用途のために利用されます。
この例では、Windowsオペレーティング・システムを想定しています。他のオペレーティング・システムでは、適切な同等のコマンドを発行します。
FTPアクティビティ内にスクリプトを定義する手順は、次のとおりです。
キャンバスのFTPアクティビティを選択して、プロセス・フロー・エディタ内の「エクスプローラ」パネルの「使用可能なオブジェクト」タブにあるアクティビティ・パラメータを表示して編集します。
COMMANDパラメータでは、「値」列内にあるFTP実行可能ファイルへのパスを入力します。必要に応じて、スクロール・バーを使用して右側にスクロールし、「値」列を表示します。
Windowsオペレーティング・システムでは、通常FTP実行可能ファイルはc:¥winnt¥system32¥ftp.exe
に格納されています。
PARAMETER_LISTパラメータでは、Task.Input
変数を入力します。
Warehouse Builder内でスクリプトを定義し、WindowsのFTPを使用している場合は、PARAMETER_LISTに?"-s:${Task.Input}"?
を入力する必要があります。
UNIXの場合は、?"${Task.Input}"?
と入力します。
SCRIPTパラメータにナビゲートし、ハイライト表示します。「使用可能なオブジェクト」タブは、図20-14のように表示されます。
「オブジェクトの詳細」パネル内に表示されている「値」フィールドの右側の省略ボタンをクリックします。
Warehouse BuilderによりSCRIPT値エディタが表示されます。エディタにFTPコマンドを書き込むか、またはコピーして貼り付けます。
図20-14にはスクリプトが示されており、このスクリプトによりリモート・ホストへの接続開始、ローカル・コンピュータへのディレクトリの変更、リモート・ホストへのディレクトリの変更、ファイルの転送、および接続の終了が行われます。
図20-15のスクリプトには、${Remote.User}
および${Remote.Password}
が含まれる点に注意してください。これらは置換変数です。詳細は、「置換変数の使用」を参照してください。
置換変数は、Warehouse BuilderでFTPスクリプトを記述して格納することを選択した場合にのみ使用できます。
置換変数を使用して、サーバー・ファイル、アカウントおよびパスワードが変更される場合にFTPアクティビティが更新されることを防止します。たとえば、FTPアクティビティを利用して特定のディレクトリの下のsalessrv1
上のファイルにアクセスする10個のプロセス・フローを作成する場合を考えます。ファイルを移動する場合、置換変数を使用しないと、各FTPアクティビティを個別に更新する必要があります。「ロケーションの定義」で説明されているように、置換変数を使用すると、更新が必要なのはロケーション情報のみになります。
また、置換変数は、パスワード・セキュリティの維持に関して重要です。Warehouse Builderがサーバー・パスワードに対して置換変数を使用してFTPアクティビティを実行する場合、関連付けられるロケーションに対して入力した、保護されたパスワードに変数を解決します。
表20-6は、FTPアクティビティに対して指定できる置換変数を示しています。Working
は、ランタイム・サービスがあるコンピュータのことで、この事例ではローカル・コンピュータを意味します。Remote
は、データ転送に関与する他のサーバーを意味します。FTPアクティビティを構成する場合は、どのサーバーをリモートおよびローカルにするかを指定します。詳細は、「FTPアクティビティの構成」を参照してください。
表20-6 FTPアクティビティに対する置換変数
変数 | 値 |
---|---|
${ Working.RootPath } |
ランタイム・サービス・ホストのロケーションのルート・パス値。 |
${ Remote.Host } |
ランタイム・サービス・ホストとの間のデータ転送に関与するロケーションに対するホスト値。 |
${ Remote.User } |
ランタイム・サービス・ホストとの間のデータ転送に関与するロケーションに対するユーザー値。 |
${ Remote.Password } |
ランタイム・サービス・ホストとの間のデータ転送に関与するロケーションに対するパスワード値。 |
${ Remote.RootPath } |
ランタイム・サービス・ホストとの間のデータ転送に関与するロケーションに対するルート・パス値。 |
完全なプロセス・フローの構成の一環として、FTPアクティビティを構成します。
FTPアクティビティを構成する手順は、次のとおりです。
ナビゲーション・ツリーのプロセス・フローを右クリックして、「構成」を選択します。
「FTPアクティビティ」、「パスの設定」の順に展開します。Warehouse Builderにより構成設定が表示されます。
REMOTE_LOCATIONにはRemoteのロケーションを設定し、LOCAL_LOCATIONにはWorkingのロケーションを設定します。
クリックして「ステータスとしてリターンを使用」を選択します。これにより、プロセス・フローはFTPリターン・コードを使用して、どの送信推移をアクティブにするかを判断します。図20-13に示すように、この事例のプロセス・フローでは、FTPが正常値1を返すと、プロセス・フローは正常推移を継続してsalesresults
マッピングを実行します。
これらの手順を完了した後、プロセス・フローを配布および実行できます。プロセス・フローを配布するには、右クリックして、プロセス・フロー・モジュールまたはナビゲーション・ツリーのパッケージから「配布」を選択し、デプロイメント・マネージャを起動します。デプロイメント・マネージャにより、REMOTE_LOCATIONおよびLOCAL_LOCATIONを登録するよう求められます。
図20-16は、REMOTE_LOCATIONの登録情報を示しています。LOCAL_FILESでは、ルート・パスのみが必要になります。
これで、プロセス・フローを実行できます。
ロケーションは、ウェアハウス環境内の様々なデータ・ソースおよび接続先を論理的に表したものです。このシナリオでは、ロケーションは、フラット・ファイルへのアクセスに必要なホストおよびパス名情報を論理的に表しています。Warehouse Builderでは、プロセス・フローの配布および実行のためにこれらの定義が必要になります。プロセス・フローを配布する場合は、Warehouse Builderにより、各ロケーションに関連付けられたホストおよびパス名情報を入力するように要求されます。データ転送に関与するコンピュータごとにロケーションを定義する必要があります。
ロケーションを定義するには、接続エクスプローラ内の適切な「ロケーション」ノードを右クリックして「新規」を選択します。salessrv1
では、「ロケーション」ノードの下の「ファイル」を右クリックしてREMOTE_FILES
という名前のロケーションを作成します。local
に対してこの手順を繰り返し、ロケーションLOCAL_FILES
を作成します。