ヘッダーをスキップ
Oracle® Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド
11gリリース2 (11.2)
B61350-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

27 プロセス・フローでのアクティビティ

プロセス・フローにより、Oracle Warehouse Builderオブジェクトと、電子メール、FTP、オペレーティング・システム・コマンドなどの外部アクティビティとを相互に関連付け、それらの様々なアクティビティ間の制御フローを定義できます。プロセス・フロー内では、Oracle Warehouse Builderアクティビティを使用して、データ・オブジェクト、外部オブジェクトおよび制御構成を表すことができます。これにより、様々なアクティビティ間のデータ・フローを作成して、特定のデータ・ウェアハウス・タスクを実現できます。

ランタイム・プリファレンスの詳細は、『Oracle Warehouse Builder概要』を参照してください。

プロセス・フローでのアクティビティの使用

この項は、すべてのプロセス・フロー・アクティビティの参照用として使用します。この項ではアクティビティを次のタイプに分類します。

各アクティビティの詳細は、この項の他の部分に記載されているアルファベット順のリストを参照してください。

オブジェクトを表すアクティビティ

表27-1に、これまでOracle Warehouse Builder内で作成したオブジェクトを表すアクティビティを示します。受信推移は1つ上指定できます。送信推移については、正常終了、警告、エラーおよび無条件の推移をそれぞれ1つずつ使用でき、また、複合条件推移をいくつでも定義できます。

表27-1 オブジェクトを表すアクティビティ

アイコン アクティビティ 簡単な説明
説明は画像の前後のテキストにあります。

データ監査モニター


データ・プロファイリングに使用される既存のデータ監査モニターをプロセス・フローに追加します。

説明は画像の前後のテキストにあります。

マッピング


既存のマッピングをプロセス・フローに追加します。

説明は画像の前後のテキストにあります。

サブプロセス


既存のプロセス・フローをプロセス・フロー内に埋め込みます。

説明は画像の前後のテキストにあります。

変換


既存の変換をプロセス・フローに追加します。

説明は画像の前後のテキストにあります。


Webサービス


既存のWebサービスをプロセス・フローに追加します。


データのコミット

設計オブジェクトを表すアクティビティを追加すると、プロセス・フローではこれらのアクティビティが個別のトランザクションとして評価されます。たとえば、マッピング・アクティビティを追加する場合、各マッピングが独立してコミットおよびロールバックされます。この設計の場合、1回のコミット文またはロールバック文ですべてのマッピングを制御することは不可能です。

複数のマッピングをまとめてコミットまたはロールバックするには、各マッピングをコールするスクリプトに関連付けられたSQL*Plusアクティビティを使用してプロセス・フローを設計することを検討してください。詳細は、「プロセス・フロー・エディタを介したマッピングのコミット」を参照してください。

ユーティリティ・アクティビティ

表27-2に、各ユーティリティ・アクティビティをリストし、関連するアイコンを示します。

表27-2 ユーティリティ・アクティビティ

アイコン アクティビティ 簡単な説明
説明は画像の前後のテキストにあります。

割当


値を変数に割り当てます。

説明は画像の前後のテキストにあります。

Enterprise Java Bean


プロセス・フロー内からEnterprise JavaBeanを実行します。

説明は画像の前後のテキストにあります。

電子メール


電子メールを送信します。たとえば、プロセス・フローのアクティビティのステータスに関する電子メール・メッセージを送信します。

説明は画像の前後のテキストにあります。

ファイルが存在


「ファイルが存在」アクティビティを使用して、指定されたドライブまたはディレクトリにファイルが存在するかどうかをチェックします。

説明は画像の前後のテキストにあります。

Javaクラス


プロセス・フロー内からJavaクラスを実行します。

説明は画像の前後のテキストにあります。

手動


プロセス・フローを停止します。プロセス・フローを再開するには、手動操作が必要です。

説明は画像の前後のテキストにあります。

通知


ユーザーに電子メールを送信し、ユーザーがプロセス・フローの処理方法を示すレスポンスをリストから選択できるようにします。

説明は画像の前後のテキストにあります。


OMBPlus


プロセス・フローでOMB*Plusスクリプトを表します。

説明は画像の前後のテキストにあります。

ステータスの設定


成功、警告またはエラーのステータスを通知します。

説明は画像の前後のテキストにあります。

待機


指定した時間分、プロセス・フローの進捗を遅延します。


コントロール・アクティビティ

表27-3に、プロセス・フローの制御に使用するアクティビティを示します。表では、関連付けられているアイコンを示します。また、各アクティビティに使用できる受信および送信推移の数も示します。

表27-3 コントロール・アクティビティ

アイコン アクティビティ 簡単な説明 受信推移 送信推移
説明は画像の前後のテキストにあります。

AND


別のアクティビティの起動前に全受信アクティビティを完了することを指定します。

2つ以上が使用可能。受信推移の数は、上位のFORKからの送信推移の数以下であることが必要です。

無条件推移および複合推移は使用不可。

説明は画像の前後のテキストにあります。

終了(成功)

パスを成功として指定します。

1つ以上が使用可能

使用不可

説明は画像の前後のテキストにあります。

終了(エラーあり)

パスをエラーで終了として指定します。

1つ以上が使用可能

使用不可

説明は画像の前後のテキストにあります。

終了(警告あり)

パスを警告付きで終了として指定します。

1つ以上が使用可能

使用不可

説明は画像の前後のテキストにあります。

終了ループ


forループまたはwhileループの終了を定義します。

1つ以上が使用可能

ForループまたはWhileループに1つのみ。

説明は画像の前後のテキストにあります。

forループ


終了ループを使用してこのアクティビティを使用し、繰り返す構造を定義します。

必要な終了ループから1つ、およびさらに他のアクティビティから複数

ループ条件が1つおよび必要な終了条件が1つ

説明は画像の前後のテキストにあります。

FORK


1つのアクティビティが完了してから2つ以上のアクティビティを起動します。

1つ以上が使用可能

2つ以上の無条件推移のみ

説明は画像の前後のテキストにあります。

OR


指定された2つ以上のアクティビティのいずれかの完了後に、アクティビティを起動します。

2つ以上が使用可能

無条件推移が1つのみ。

説明は画像の前後のテキストにあります。

ルート


排他的論理和およびif-then-elseシナリオを定義します。



説明は画像の前後のテキストにあります。

whileループ


条件がTRUEであるかぎり、他のアクティビティを実行します。

必要な終了ループから1つ、およびさらに他のアクティビティから複数

ループ条件が1つおよび必要な終了条件が1つ


オペレーティング・システム・アクティビティ

表27-4に、プロセス・フローで開始可能なオペレーティング・システム・アクティビティを示します。

表27-4 OSアクティビティ

アイコン アクティビティ 簡単な説明
説明は画像の前後のテキストにあります。

FTP


プロセス・フロー中にファイル転送プロトコル・コマンドを起動します。たとえば、FTPアクティビティを使用して、マッピングが実行されるコンピュータにデータ・ファイルを移動します。

説明は画像の前後のテキストにあります。

SQL*Plus


プロセス・フローでSQL*Plusスクリプトを実行します。

説明は画像の前後のテキストにあります。

ユーザー定義


事前定義されていないアクティビティを表し、プロセス・フローに取り込めるようにします。


ユーザーにオペレーティング・システム・アクティビティを完全に制御させることは望ましくないため、Oracle Warehouse Builderでは、プロセス・フローで開始できるオペレーティング・システム・アクティビティを指定できます。直接実行の権限を付与または取り消すか、「セキュリティ制約の設定」で説明するように、サード・パーティによる実行を必須にすることで、ユーザーのオペレーティング・システム・コマンドの実行権限を制限します。また、プロキシ・コマンドおよびパラメータを使用し、さらに細かいアクセス制御が可能で、これらのコマンドやパラメータは、すべての実行を安全に行うためにも使用できます。

このセキュリティ機能は、$OWB_HOME/owb/bin/adminディレクトリにあるRuntime.propertiesファイルのプロパティの設定で制御します。このファイルには、コントロール・センター・サービスを実行するコントロール・センター・プロパティ値が記述されています。コントロール・センター・サービスの起動時には、このファイルは読取り専用に設定されています。このファイルを変更した場合、コントロール・センター・サービスを再起動しないと、変更は有効になりません。

セキュリティ制約の設定

デフォルトでは、各オペレーティング・システム・アクティビティ・コマンドのsecurity_constraintはDISABLEDに設定されています。

property.RuntimePlatform.0.NativeExecution.FTP.security_constraint = DISABLED
property.RuntimePlatform.0.NativeExecution.Shell.security_constraint = DISABLED
property.RuntimePlatform.0.NativeExecution.SQLPlus.security_constraint = DISABLED

オペレーティング・システム・アクティビティを有効化するには、security_constraintNATIVE_JAVAまたはSchedulerに設定する必要があります。

property.RuntimePlatform.0.NativeExecution.FTP.security_constraint = NATIVE_JAVA
property.RuntimePlatform.0.NativeExecution.Shell.security_constraint = NATIVE_JAVA
property.RuntimePlatform.0.NativeExecution.SQLPlus.security_constraint = NATIVE_JAVA

NATIVE_JAVAに設定すると、コントロール・センター・サービスによる直接実行が可能になり、SCHEDULERによりDBMS_SCHEDULERを使用して強制的に実行されます。

プロキシ・コマンドおよびパラメータの設定

USER DEFINED(Shell)FTPおよびSQLPlusの各アクティビティ・タイプには、proxy_commandプロパティとproxy_parameter_listプロパティ(オプション)という2つのプロパティがあります。

プロキシ・コマンドを指定すると、このプロキシ・コマンドがユーザー指定のコマンドおよびパラメータのかわりに実行されます。ユーザー指定のコマンドおよびパラメータは、プロキシ・パラメータに続くパラメータとしてプロキシ・コマンドに渡されます。これにより、プロキシ・コマンドはユーザーのコマンドが実行されるコンテキストになります。

proxy_commandプロパティを使用して、プロキシ・コマンドを指定できます。

アクティビティにプロキシ・コマンドを設定するには、次のコマンドを使用して、プロキシ・コマンドおよびプロキシ・パラメータ・リスト(オプション)を設定します。

property.RuntimePlatform.0.NativeExecution.FTP.proxy_command
property.RuntimePlatform.0.NativeExecution.FTP.proxy_parameter_list
property.RuntimePlatform.0.NativeExecution.Shell.proxy_command
property.RuntimePlatform.0.NativeExecution.Shell.proxy_parameter_list
property.RuntimePlatform.0.NativeExecution.SQLPlus.proxy_command
property.RuntimePlatform.0.NativeExecution.SQLPlus.proxy_parameter_list

たとえば、シェルにプロキシ・コマンドを設定する手順は、次のとおりです。

 property.RuntimePlatform.0.NativeExecution.Shell.proxy_command = /bin/proxy_sh
 property.RuntimePlatform.0.NativeExecution.Shell.proxy_parameter_list = ?-v?-n?

注意:

Runtime.propertiesファイルに対する変更権限は、Oracle Warehouse Builderの管理者にのみ付与してください。ユーザーには読取り専用権限を付与するようにしてください。

AND

ANDアクティビティを使用して、プロセス・フローを再開する前に2つ以上のアクティビティの完了を指定します。

説明は画像の前後のテキストにあります。
画像and.gifの説明

ANDアクティビティには2つ以上の受信推移を含むことができます。ANDアクティビティを使用してプロセス・フローを正しく設計するには、ANDより上位のFORKアクティビティを配置する必要があります。また、ANDアクティビティに移動する推移の数は、上位のFORKからの送信推移の数以下である必要があります。FORKは、複数の無条件推移を割り当てることができるようにする唯一のアクティビティであるため、必要に応じて、ANDアクティビティによって複数のアクティビティが完了することを確認します。

ANDアクティビティにより、上位のアクティビティの結果を集計できるようになります。すべての上位のアクティビティがSUCCESSを戻す場合、ANDアクティビティはSUCCESSを戻します。上位のアクティビティがERRORを戻す場合、ANDアクティビティはERRORを戻し、そうでない場合はWARNINGが戻されます。結果を持たないアクティビティは、SUCCESSを戻したとみなされます。SET_STATUSアクティビティを使用して、結果を作成します。この機能は、パラレル実行している一連のマッピングがすべて正常に完了したかどうかをテストする場合に特に役立ちます。

図27-1に、プロセス・フロー内のANDおよびFORKアクティビティを示します。この例では、AND_ACTIVITYが、MAP1およびMAP2の完了に基づいて下位のアクティビティをトリガーします。AND_ACTIVITYが2つの受信推移を持つのに対して、FORKアクティビティは3つの送信推移を持つため、そのプロセス・フローは有効です。また、プロセス・フローは、MAP3に関連付けられている推移およびアクティビティが削除された場合にも有効になります。

図27-1 プロセス・フローのANDアクティビティ

説明は画像の前後のテキストにあります。
「図27-1 プロセス・フローのANDアクティビティ」の説明

送信条件の場合、ANDアクティビティには1つ、2つまたは3つの条件付き推移を含むことができます。これにより、成功、警告およびエラー・アクティビティで終了する3つのパスになる可能性があります。

割当

割当アクティビティを使用して、変数に値を割り当てます。たとえば、このアクティビティを使用して変数をゼロに戻します。

説明は画像の前後のテキストにあります。
画像act_icon_assign.gifの説明

表27-5で、割当アクティビティのパラメータを説明します。

表27-5 割当アクティビティ・パラメータ

パラメータ 説明

変数に割り当てる値を入力します。

変数

エディタで前に定義した変数を選択します。


データ監査モニター

データのプロファイルの結果に基づいて処理するプロセス・フローを設計できます。たとえば、データの品質がしきい値パラメータによって決定された基準を満たす場合にのみマッピングを実行する論理を作成します。

説明は画像の前後のテキストにあります。
画像data_auditor_act_icon.gifの説明

表27-6で、データ監査モニター・アクティビティのパラメータを説明します。

表27-6 データ監査モニター・アクティビティ・パラメータ

パラメータ 説明

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


Enterprise Java Bean

Enterprise Java Beanアクティビティ・タイプを使用して、プロセス・フロー内からEnterprise JavaBean(EJB)をコールします。EJBはビジネス・ロジックを含むサーバー側コンポーネント(J2EEコンテナにより管理される)です。これにより、スケーラビリティが高く、複数のクライアントが使用可能な、トランザクション処理をサポートするアプリケーションを作成できます。

ejb_activity.gifの説明が続きます。
図ejb_activity.gifの説明

Enterprise Java Beanアクティビティ・タイプを使用して、プロセス・フロー内からEJBとして定義された機能を利用します。たとえば、複雑なビジネス・ロジックを実装するEJBのスイートがあるとします。Enterprise Java Beanアクティビティを使用して、このビジネス・ロジックをプロセス・フローに直接統合できます。Enterprise Java Beanアクティビティを使用することで、より高いスケーラビリティ、パフォーマンスおよびセキュリティのトランザクションが提供されます。


注意:

Enterprise Java Beanアクティビティを含むプロセス・フローを配布するには、Enterprise JavaBeanを含むJ2EEプラットフォームを表すURIロケーションを作成する必要があります。

表27-7で、Enterprise Java Beanアクティビティのパラメータを説明します。

表27-7 Enterprise Java Beanアクティビティ・パラメータ

パラメータ名 説明

CLASS_NAME

EJBを実装するクラス名

METHOD_NAME

実行する必要があるクラス内のメソッドの名前

RETURN_VALUE

メソッドにより戻された値の文字列表示

PARAMETER_LIST

Enterprise Java Beanに渡されるパラメータのリスト


例: Enterprise Java Beanアクティビティを使用してEJBからの既存のビジネス・ロジックを利用する

受注処理アプリケーションのロジックを実装するEnterprise JavaBeanのスイートがあるとします。この既存の機能をプロセス・フローで利用できます。Enterprise Java Beanアクティビティにより、この機能をプロセス・フローで直接統合できます。

この受注処理アプリケーションには、特定の日に発生したすべての受注のレポートを生成するEJBが含まれるとします。この受注データをデータ・ウェアハウスにロードするETLロジックを起動する前に、前の日に発生したすべての受注のレポートを生成するプロセス・フローを作成する必要があるとします。

図27-2に、必要な機能を提供するプロセス・フローを示します。Enterprise Java BeanアクティビティORDERS_REPORTは、EJB受注処理アプリケーションとして提供された機能を利用します。LOAD_ORDERSは、レポートの実行後に受注データをウェアハウスにロードするマッピングです。

図27-2 プロセス・フローのEJBアクティビティ

図27-2の説明が続きます。
「図27-2 プロセス・フローのEJBアクティビティ」の説明

ORDERS_REPORTアクティビティで、次のパラメータ値を設定します。

  • CLASS_NAME: ordersystem.reports

  • METHOD_NAME: printReport

  • PARAMETER_LIST: ?ReportName?PrintDevice?

「構造」パネルの上部の新規プロセスアクティビティ・パラメータを選択し、表27-8に指定されているように値を設定して、2つのカスタム・パラメータ、ReportNameとPrintDeviceをORDERS_REPORTアクティビティに作成します。

表27-8 カスタム・パラメータの値


ReportNameパラメータ PrintDeviceパラメータ

方向

IN

IN

リテラル

True

True

DailyOrders

lpt1


Enterprise Java Beanアクティビティの配布ロケーションが、指定したEnterprise Java Beanをサポートするアプリケーションを含むJ2EEインスタンスを指すURIロケーションに設定されていることを確認します。たとえば、URIロケーションのURIフィールドは次のように設定されます。

ormi://myhost.example.com:23791/ReportsApp

例: Enterprise Java Beanアクティビティを使用してデータをDB2表から別の表にロードする

DB2データベースにOrdersOrders_tgtの2つの表が含まれているとします。Oracle Warehouse Builderを使用してデータをOrdersからOrders_tgtにロードします。様々な表ユーティリティで構成されたJ2EEアプリケーションを使用できます。表ユーティリティを使用して、データをある表から別の表にコピーします。

プロセス・フローでデータをコピーする表ユーティリティを利用するには、プロセス・フローにEnterprise Java Beanアクティビティを作成します。Enterprise Java Beanアクティビティのパラメータは次のように設定されます。

  • CLASS_NAME: mydb2.TableHandler

  • METHOD_NAME: copyTable

  • PARAMETER_LIST: ?SrcDataSource?TgtDataSource?SrcTable?TgtTable?

次のカスタム・パラメータを作成します。

  • SrcDatasource: ソース・データ・ソースの名前を表します。

  • TgtDataSource: ターゲット・データ・ソースの名前を表します。

  • SrcTable: ソース表を表します。

  • TgtTable: ターゲット表を表します。

表27-9に、カスタム・パラメータSrcDataSource、TgtDataSource、SrcTableおよびTgtTableに設定する値を示します。

表27-9 Enterprise Java Beanアクティビティのカスタム・パラメータ値


SrcDataSource TgtDataTarget SrcTable TgtTable

方向

IN

IN

IN

IN

リテラル

True

True

True

True

OLTP_DataSource

Stage_DataSource

Orders

Orders_tgt


このプロセス・フローを配布するには、例: Enterprise Java Beanアクティビティを使用してEJBからの既存ビジネス・ロジックを利用するで説明したように、表ユーティリティ・アプリケーションのJ2EEコンテナを表すURIロケーションを作成し、Enterprise Java Beanの配布ロケーションを設定します。


注意:

J2EEプラットフォームでは、より高いスケーラビリティ、パフォーマンスおよびセキュリティが提供されるため、EJBを使用して、Javaにより提供される機能をプロセス・フローに統合することをお薦めします。

Enterprise Java Beanアクティビティの使用上の制約

  • サポートされるパラメータ・タイプは次のとおりです。

    • 文字列

    • INTEGER

    • FLOAT

    • 日付

    • BOOLEAN

    ただし、サポートされるタイプ(文字列、INTEGERなど)の配列はサポートされません。

  • 方向がOUTに設定されたカスタム・パラメータはサポートされません。

  • Enterprise JavaBeanの実行中にスローされた例外はリポジトリ・ブラウザでのみ使用できます。

  • 次のアクションはEnterprise Java Beanアクティビティ内で実行できません。

    • 入力、出力およびエラー・ストリームのリダイレクト

    • スレッドの作成と管理

    • Java Virtual Machine(JVM)の停止

    • ネイティブ・ライブラリのロード

    • ネットワーク・ソケットでのリスニング、接続の受け入れ、またはネットワーク・ソケットからのマルチキャスト

    • ファイル記述子の直接読取りまたは書込み

    • ファイルシステムでのファイルの作成、変更または削除

電子メール

プロセス・フローのアクティビティが完了した後に電子メール通知を送信できます。たとえば、マッピングのようなアクティビティがエラーまたは警告で終了したと管理者に通知する場合、これが役立ちます。

説明は画像の前後のテキストにあります。
画像email.gifの説明

表27-10に、電子メール・アクティビティに設定するパラメータを示します。

表27-10 電子メール・アクティビティ・パラメータ

パラメータ 説明

SMTP Server

送信メール・サーバーの名前。デフォルト値はlocalhostです。

ポート

送信メール・サーバーのポート番号。デフォルト値は25です。

From_Address

プロセス・フロー通知の送信元の電子メール・アドレス

Reply_To_Address

受信者が応答する電子メール・アドレスまたはメーリング・リスト

To_Address

プロセス・フロー通知を受信する電子メール・アドレスまたはメーリング・リスト。カンマまたはセミコロンを使用して、複数の電子メール・アドレスを区切ります。

CC_Address

プロセス・フロー通知のコピーを受信する電子メール・アドレスまたはメーリング・リスト。カンマまたはセミコロンを使用して、複数の電子メール・アドレスを区切ります。

BCC_Address

プロセス・フロー通知のブラインド・コピーを受信する電子メール・アドレスまたはメーリング・リスト。カンマまたはセミコロンを使用して、複数の電子メール・アドレスを区切ります。

Importance

通知の重要性のレベル。重要性についての各オプション、標準、高または低から1つ選択します。

Subject

電子メールの件名の行に表示されるテキスト。

Message_Body

電子メールの本文に表示されるテキスト。テキストの入力または貼付けを実行するには、「アクティビティ」パネル下部の「値」を選択します。プロセス・フロー・エディタに入力できるテキスト数は無制限です。


電子メール・アドレスの場合、表示名の有無にかかわらず電子メール・アドレスを入力できます。たとえば、次の入力は適切です。

jack.emp@example.com

Jack Emp<jack.emp@example.com>

Jack Emp[jack.emp@example.com]

Jack Emp[jack.emp@example.com],Jill Emp[jill.emp@example.com]

Jack Emp[jack.emp@example.com];Jill Emp[jill.emp@example.com]

電子メール・アクティビティを含むプロセス・フローを実行するには、様々なホスト・システムやポートにアクセスする必要があります。Oracle Database 11gリリース1に実装された新しいセキュリティ措置により、ホストおよびポートへのアクセスは制限されます。DBMS_NETWORK_ACL_ADMINパッケージを使用して、電子メール・アクティビティがアクセスするホストおよびポートへのアクセス権を明示的に付与する必要があります。

たとえば、ユーザーOWBSYSがメール・サーバーmail.example.com、ポート25を使用して電子メールを送信する必要があるとします。データベース管理者は次の手順を実行する必要があります。

  1. 次のコマンドを使用して、ユーザーOWBSYSのアクセス制御リスト(ACL)を作成します。

    EXECUTE DBMS_NETWORK_ACL_ADMIN.CREATE_ACL
            ('acl_for_owb_cc.xml','ACL for Control Center','OWBSYS','CONNECT');
    

    ACLは、ネットワーク・ターゲットに割り当てないと、アクセス制御の効果を発揮しません。

  2. アクセス制御リスト(ACL)をネットワーク・ホストに割り当て、オプションでTCPのポート範囲を指定します。次のコマンドを使用します。

    EXECUTE DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL
            ('acl_for_owb_cc.xml','mail.example.com',25)
    
  3. COMMITコマンドを使用して変更をコミットします。

終了

プロセス・フローのパスはすべて、終了アクティビティで終了する必要があります。

説明は画像の前後のテキストにあります。
画像end_success.gifの説明

プロセス・フローを最初に作成したときに、デフォルトでは成功タイプの終了アクティビティが含まれています。終了タイプを使用して、パスに含まれるロジックのタイプを指定します。マッピングなどの特定のアクティビティには3種類の結果があるため、表27-11に示すように、3つの終了タイプがエディタに用意されています。これらの終了タイプを使用して、プロセス・フローのエラー処理ロジックを設計できます。

表27-11 終了アクティビティのタイプ

アイコン 終了タイプ 説明
説明は画像の前後のテキストにあります。

正常終了

正常終了する上位のアクティビティに依存して、パスが論理を含むことを示します。

説明は画像の前後のテキストにあります。

警告

警告で終了する上位のアクティビティに依存して、パスが論理を含むことを示します。

説明は画像の前後のテキストにあります。

エラー

エラーで終了する上位のアクティビティに依存して、パスが論理を含むことを示します。


1つ、2つまたは3つすべての終了のタイプを含むように、プロセス・フローを設計できます。終了タイプはそれぞれ1回のみ使用でき、終了タイプは重複して使用できません。各終了アクティビティには、単一または複数の受信推移を含むことができます。

図27-3では、END_SUCCESSに3つの受信推移があり、それぞれが上位のアクティビティの正常終了に依存します。END_ERRORには、上位のマッピング・アクティビティがエラーで終了する場合に実行する電子メール・アクティビティからの1つの受信推移があります。

図27-3 プロセス・フローの終了アクティビティ

説明は画像の前後のテキストにあります。
「図27-3 プロセス・フローの終了アクティビティ」の説明

デフォルトでは、すべてのプロセス・フローには、END_SUCCESSが含まれます。終了アクティビティを別のタイプに変更できませんが、違うタイプの終了アクティビティを追加できます。

終了アクティビティをプロセス・フローに追加する手順は次のとおりです。

  1. プロセス・フロー・エディタのパレットから、該当する「終了」アイコンをキャンバスにドラッグ・アンド・ドロップします。

    Oracle Warehouse Builderでは、プロセス・フローに表示されている終了タイプを選択できません。

  2. 「OK」をクリックします。

    Oracle Warehouse Builderによって、終了アクティビティがキャンバスに追加されます。

終了ループ

エディタは、キャンバスに追加する各ForループおよびWhileループに対して、終了ループを追加します。

説明は画像の前後のテキストにあります。
画像end_loop_icon.gifの説明

終了ループ・アクティビティには、ForループまたはWhileループ・アクティビティへの単一の無条件送信推移が必要です。ループを構成するすべてのフローを、終了ループ・アクティビティに収束して、次のループ相互作用またはループ終了のいずれかに対してパラレル・フローが確実に残らないようにする必要があります。

ファイルが存在

ファイルが存在アクティビティを使用して、次のアクティビティを実行する前にファイルの存在を確認します。「アクティビティ」パネルで、ファイル名を入力します。

説明は画像の前後のテキストにあります。
画像file_exists.gifの説明

ファイルが存在アクティビティでの確認は1回のみです。ファイルが存在する場合、プロセス・フローが正常終了推移に進みます。ファイルが存在しない場合、プロセス・フローは警告推移に進みます。ファイルが存在アクティビティは、OMB*Plusを使用している場合のTCLエラーのような重大な障害の場合にのみエラー推移をトリガーします。

ファイルが存在アクティビティには、PATHと呼ばれる1つのパラメータがあります。このパラメータに対して、完全修飾ファイル名、ディレクトリ名、またはセミコロン区切りのリストを指定します。通常、パスはコントロール・センター・サービスが実行中のホストと同じホストでテストされます。

基礎となるオペレーティング・システムのセキュリティ制約は、1つ以上のファイルにアクセスできない場合があり、ファイルが存在しないように見えることがあります。すべてのパスが存在する場合、アクティビティはEXISTSを戻します。パスがまったく存在しない場合は、MISSINGを戻します。複数のパスが存在する場合は、SOME_EXISTを戻します。

FORK

FORKアクティビティを使用して、1つのアクティビティの完了後に複数の並行アクティビティを起動します。

説明は画像の前後のテキストにあります。
画像fork.gifの説明

FORKアクティビティに複数の受信推移を割り当てることができます。FORKアクティビティは、パラレル処理される複数の無条件送信推移の割当てを可能にする唯一のアクティビティです。

たとえば、図27-4では、MAP1の完了後に、プロセス・フローがFTP、FDSおよびEMAILという名前のアクティビティをパラレル実行します。

図27-4 FORKアクティビティによるパラレル・プロセスの保証

説明は画像の前後のテキストにあります。
「FORKアクティビティによるパラレル・プロセスの保証」の説明

図27-5に、FORKアクティビティがない同じアクティビティを示します。この場合、アクティビティのうち1つのみがMAP1の完了状態に基づいて実行されます。

図27-5 FORKアクティビティがない結果としての条件付きプロセス

説明は画像の前後のテキストにあります。
「FORKアクティビティがない結果としての条件付きプロセス」の説明

プロセス・フロー・エディタは、送信推移またはFORKから割り当てることができる並行アクティビティの数を制限しません。並行実行の設計の際、プロセス・フローを実行するために使用するワークフロー・エンジンまたはサーバーによって課せられる制限に基づいてFORKを設計します。

送信FORKアクティビティ推移は、複合式を持つことができません。

forループ

forループを使用して、ループに含まれたアクティビティを繰り返し実行してから終了し、プロセス・フローを再開します。

説明は画像の前後のテキストにあります。
画像for_loop.gifの説明

forループを追加する際、エディタは終了ループ・アクティビティと終了ループへの推移も追加します。送信推移の場合、ループ条件を持つものと終了条件を持つものを定義します。送信推移を選択して、オブジェクトの詳細の「条件」をクリックします。

表27-12で、forループ・アクティビティのパラメータを説明します。

表27-12 FORループ・アクティビティ・パラメータ

パラメータ 説明

Condition

TRUEと評価された場合、式はループ推移を実行し、それ以外は終了推移を実行します。

変数

変数またはパラメータに限定され、その値は繰返しのたびに増加します。

Initial_Value

ループに入る際の変数の初期値。デフォルトでは、式の入力が必要です。

Next_Value

変数の次の値。デフォルトでは、式の入力が必要です。


FTP

FTPアクティビティを使用して、提供するFTPコマンドのスクリプトに基づいて、あるロケーションから別のロケーションへファイルを転送します。FTPアクティビティは、「ユーザー定義」アクティビティの特化したものです。これら2つのアクティビティの違いは、FTPアクティビティはリモート・ファイル・ロケーションによって構成される必要があることです。

説明は画像の前後のテキストにあります。

有効化されるプロセス・フローの場合、FTPコマンドには、インストールされたコントロール・センター・サービスを使用したサーバーとの間のデータ転送が含まれる必要があります。コントロール・センター・サービスをホストしていない2台のコンピュータの間でデータを移動するには、1台目のコンピュータがコントロール・センター・サービスのホスト・コンピュータにデータを転送してから、2台目のコンピュータにデータを転送します。

FTPアクティビティを使用してプロセス・フローを設計する前に、ソースと宛先に定義されたロケーションがあることを確認します。

FTPアクティビティは、提供するFTPコマンドのスクリプトに依存します。Oracle Warehouse Builder内でそのスクリプトを記述するか、Oracle Warehouse Builderでそのスクリプトを含むファイルを参照するかを選択できます。次の方法から1つを選択します。

Oracle Warehouse Builderでのスクリプトの記述

Oracle Warehouse BuilderでFTPコマンドのスクリプトを保守する場合、またはサーバーに対するパスワード・セキュリティが要件である場合、この方法を選択します。

この方法の場合、FTPアクティビティのCOMMANDパラメータで、FTP実行可能ファイルへのパスを入力します。FTPパラメータのパラメータはデザイン・センターの「構造」タブに表示されます。また、UNIX以外のファイル転送プロトコルの場合、PARAMETER_LISTパラメータにプロトコルの追加パラメータを入力します。SCRIPTパラメータのVALUEプロパティにスクリプトを入力します。

表27-13に、Oracle Warehouse Builder内でスクリプトを作成する際にFTPアクティビティに対して設定するパラメータを示します。

表27-13 Oracle Warehouse BuilderにおけるスクリプトのFTPアクティビティ・パラメータ

パラメータ 説明

COMMAND

Windowsオペレーティング・システムの場合はc:\WINNT\System32\ftp.exeなどの、ファイル転送プロトコル・コマンドへのパスを入力します。

PARAMETER_LIST

これはコマンドに渡されるパラメータのリストです。各パラメータはトークンで区切られます。トークンはパラメータ・リスト文字列の最初の文字として使用され、文字列もそのトークンで終わる必要があります。Oracle Warehouse Builderでは「?」の文字が推奨されますが、任意の文字を使用することもできます。たとえば、「abc」、「def」および「ghi」を渡す場合、次のいずれの形式も可能です。

?abc?def?ghi?

または

!abc!def!ghi!

または

|abc|def|ghi|

トークン文字または「\」をパラメータの一部として含める必要がある場合、「\」でエスケープする必要があります。たとえば、「\\」です。「\」がトークン文字である場合、「/」がエスケープ文字となります。

ファイル転送プロトコルに必要な追加パラメータを入力します。

Windowsの場合、?"-s:${Task.Input}"?と入力します。${Task.Input}トークンはOracle Warehouse Builderに対し、スクリプトを一時ファイルに格納し、トークンを一時ファイルの名前で置き換えるよう促します。したがって、スクリプトは標準入力として渡されません。

注意: Windows FTPコマンドはファイルを除く標準入力では使用できないため、-sパラメータが設定されます。

UNIXの場合、この値は空白にしておく必要があります。通常、UNIX FTPは標準入力から読み込むため、その他のパラメータは必要ありません。

RESULT_CODE

アクティビティが正常に完了したかどうかを示すアクティビティ・タイプの整数の出力。

SUCCESS_THRESHOLDQADB55918:closed

FTPコマンド完了ステータスを指定します。正常な完了を示す最も大きい戻り値をオペレーティング・システムから入力します。オペレーティング・システムがさらに大きな値を戻した場合、コマンドが失敗したことを示します。

デフォルト値は0です。

SCRIPT

このパラメータに、FTPに必要なスクリプトを入力できます。

テキストの入力または貼付けを実行するには、プロパティ・インスペクタの「構造」タブでSCRIPTパラメータを選択し、Valueプロパティの上で矢印をクリックします。「プロパティの編集」ダイアログ・ボックスが表示され、そこでスクリプトを入力します。プロセス・フロー・エディタに入力できるテキスト数は無制限です。

スクリプト内の各改行は、[Enter]キーを押す操作に相当します。FTPコマンドを確実に終了させるには、スクリプトがbyeまたはquitで終わり、その後に改行が続く必要があります。


次に、FTPアクティビティのSCRIPTパラメータのValueプロパティに入力するスクリプトの例を示します。

open ${Remote.Host}
${Remote.User}
${Remote.Password}
lcd ${Working.RootPath}
cd ${Remote.RootPath}
get salesdata.txt
quit

スクリプト例には${Remote.User}および${Remote.Password}が含まれる点に注意してください。これらは置換変数です。詳細は、「置換変数の使用」を参照してください。

置換変数の使用

置換変数は、Oracle Warehouse BuilderでFTPスクリプトを記述して格納する場合にのみ使用できます。

置換変数を使用すると、サーバー・ファイル、アカウントおよびパスワードが変更されたときにFTPアクティビティを更新する必要がなくなります。たとえば、FTPアクティビティを使用して特定のディレクトリの下のsalessrv1上のファイルにアクセスする10個のプロセス・フローを作成する場合を考えます。ファイルを移動する場合、置換変数を使用しないと、各FTPアクティビティを個別に更新する必要があります。置換変数を使用すると、更新が必要なのはロケーション情報のみになります。

置換変数はパスワードのセキュリティを維持する上でも重要です。置換変数をサーバー・パスワードとして使用したFTPアクティビティを実行すると、変数はユーザーが入力した関連ロケーションのセキュア・パスワードに解決されます。

表27-14に、FTPアクティビティに入力可能な置換変数を示します。Workingは、コントロール・センター・サービスがあるコンピュータのことで、この事例ではローカル・コンピュータを意味します。Remoteは、データ転送に関与する他のサーバーを意味します。FTPアクティビティを構成する場合に、「プロセス・フローの構成のリファレンス」の説明に従って、どのサーバーをリモートおよびローカルにするかを指定します。

表27-14 FTPアクティビティに対する置換変数

変数

${Working.RootPath}

コントロール・センター・サービス・ホストのロケーションに対するルート・パス値

${Remote.Host}

コントロール・センター・サービス・ホストとの間のデータ転送に関与するロケーションに対するホスト値

${Remote.User}

コントロール・センター・サービス・ホストとの間のデータ転送に関与するロケーションに対するユーザー値

${Remote.Password}

コントロール・センター・サービス・ホストとの間のデータ転送に関与するロケーションに対するパスワード値

${Remote.RootPath}

コントロール・センター・サービス・ホストとの間のデータ転送に関与するロケーションに対するルート・パス値

${Task.Input}

WorkingおよびRemoteロケーションは、プロセス・フローの構成時にFTPアクティビティに対して設定されます。

${parameter_name}

${parameter_name}構文を使用して、カスタム・パラメータの値をスクリプトおよびパラメータに置換できます。


すべてのカスタム・パラメータは、コマンドの環境スペースにインポートされます。たとえば、PATHというカスタム・パラメータを定義することにより、オペレーティング・システム実行可能ファイルの検索に使用される検索パスを変更できます(JAVA VMでは、これができない場合があります)。

Oracle Warehouse Builder外部のスクリプトのコール

パスワード・セキュリティの問題がない場合、Oracle Warehouse BuilderではFTPコマンド、ユーザー名およびパスワードを含むスクリプトを持つファイルを指定できます。

ファイル・システムのファイルをコールするには、Oracle Warehouse Builderがそのファイルを指定するようにPARAMETERS_LISTに適切なコマンドを入力します。Windowsオペレーティング・システムの場合、次のように入力します。

?"-s:<file path\file name>"?

たとえば、Cドライブのtempディレクトリにあるmove.ftpという名前のファイルをコールするには、次のように入力します。

?"-s:c:\temp\move.ftp"?

このメソッドの場合、SCRIPTパラメータを空白のままにします。

表27-15に、FTPスクリプトがシステム上のファイルに存在する場合にFTPアクティビティに対して設定するパラメータを示します。

表27-15 Oracle Warehouse Builder外部のスクリプトに対するFTPアクティビティ・パラメータ

パラメータ 説明

Command

このパラメータは空白のままにします。

Parameter List

FTPスクリプトに対するパスとファイルの名前を入力します。プロセス・フロー・エディタは、入力する最初の文字をセパレータと解釈します。たとえば、プロセス・フロー・エディタは次のエントリを/cおよびdirの2つのパラメータとして解釈します。

?/c?dir?

バックスラッシュをエスケープ文字として使用します。たとえば、プロセス・フロー・エディタは次のエントリを-l-sおよび/の3つのパラメータとして解釈します。

/-l/-s/\//

RESULT_CODE

アクティビティが正常に完了したかどうかを示すアクティビティ・タイプの整数の出力。

Success Threshold

FTPコマンド完了ステータスを指定します。正常な完了を示す最も大きい戻り値をオペレーティング・システムから入力します。オペレーティング・システムがさらに大きな値を戻した場合、コマンドが失敗したことを示します。

デフォルト値は0です。

Script

このパラメータは空白のままにします。


Javaクラス

Javaクラス・アクティビティ・タイプを使用して、プロセス・フローでJavaクラスまたはJava Beanを表します。Java Beanはビルダー・ツールで視覚的に操作できる再利用可能なソフトウェア・コンポーネントです。

java_activity.gifの説明が続きます。
画像java_activity.gifの説明

Javaクラス・アクティビティを使用して、Java BeanまたはJavaクラスを使用して定義された機能を利用できます。

表27-16で、Javaクラス・アクティビティのパラメータを説明します。

表27-16 Javaクラス・アクティビティ・パラメータ

パラメータ名 説明

CLASSPATH

Javaクラス・アクティビティの実行時に指定されるclasspathを表します。

CLASS_NAME

プロセス・フローから呼び出すクラスの名前。

JAVA_OPTIONS

JVMに渡されるオプションを表します。

PARAMETER_LIST

JavaクラスまたはJava Beanに渡されるパラメータを表します。

RESULT_CODE

このJavaクラスの終了コードにより戻される値を表します。

RUN_DIRECTORY

Java Virtual Machine(JVM)が起動されるときの作業ディレクトリの名前を表します。


Javaクラス・アクティビティを含むプロセス・フローを配布するのに特別な場所は必要ありません。


注意:

次の理由がある場合、Javaクラス・アクティビティ・タイプの使用はお薦めしません。
  • 単一Java仮想マシン(JVM)を各アクティビティの実行に使用しています。

  • Oracle Warehouse Builderには、パラメータをアクティビティに渡す安全な方法が用意されていないため、パスワードに関するセキュリティの問題が発生する場合があります。


プロセス・フローでJavaクラス・アクティビティを使用する例

「例: Enterprise Java Beanアクティビティを使用してEJBからの既存ビジネス・ロジックを利用する」で説明しているレポート機能は、EJBではなくJavaクラスで実装できます。この場合、Javaクラス・アクティビティを追加し、そのパラメータに対し次の値を設定します。

  • CLASSPATH: home/reports/reports.jar

  • CLASS_NAME: ordersystem.reports

  • JAVA_OPTIONS: Xmx768M -DDIR=d:¥temp¥

  • PARAMETER_LIST: ?ReportName?PrintDevice?

  • RUN_DIRECTORY: /home/work

ReportNameおよびPrintDeviceは次のプロパティを使用して作成したカスタム・プロパティです。

  • 方向は両方のパラメータともINです。

  • リテラルは両方のパラメータともTrueです。

  • ReportNameパラメータの値はDailyOrdersに設定されます。

  • DailyOrdersパラメータの値はlpt1に設定されます。

Javaクラス・アクティビティの実行可能ファイルのカスタマイズの例

デフォルトでは、Javaクラス・アクティビティは、コントロール・センター・サービス・パスからJava実行可能ファイルを呼び出すオペレーティング・システム・プロセスによって実行されます。プロパティproperty.RuntimePlatform.0.NativeExecution.JavaOSProcess.executableを設定することによって、これを上書きできます。

ファイルOWB_HOME/bin/admin/Runtime.propertiesでこのプロパティを設定します。

たとえば、次の手順を使用して特定のJDKによりJavaアクティビティを実行します。

  1. OWB_HOME/owbディレクトリに、次を含むmy_java.shを作成します。

    #!/bin/sh
    echo $* >> /tmp/out.log
    /usr/local/packages/jdk14/jre/java $*
    
  2. OWB_HOME/bin/admin/Runtime.propertiesファイルに、次を追加します。

    property.RuntimePlatform.0.NativeExecution.JavaOSProcess.executable=/oracle/owb/my_java.sh

  3. my_java.shOracleユーザーにより実行可能にします。

手動

手動アクティビティを使用して、プロセス・フローを停止します。

説明は画像の前後のテキストにあります。
画像act_icon_manual.gifの説明

プロセス・フローを停止した後、ユーザーはコントロール・センターまたはリポジトリ・ブラウザによって介入し、プロセス・フローを再開する必要があります。

このアクティビティを使用すると、プロセスを設計してETLプロセスを再起動またはリカバリできるようになります。

手動アクティビティは、通知アクティビティと類似していますが、手動アクティビティはOracle Workflowの実装を必要としないため、電子メールを送信しません。Oracle Workflowと対話せずに通知アクティビティと同じ結果にするには、手動アクティビティの前に電子メール・アクティビティを使用するようにしてください。

表27-17で、手動アクティビティのパラメータを説明します。

表27-17 手動アクティビティ・パラメータ

パラメータ 説明

Performer

プロセス・フローを再開できる個人またはグループの名前。

Subject

アクティビティのサブジェクトを入力します。

Text_body

プロセス・フローを再開する前に実行される特別な指示を入力します。

Priority

優先度を選択します。オプションは、1= 高、50=中、99=低です。


マッピング

マッピング・アクティビティを使用して、マッピング・エディタで定義および構成した既存のマッピングを追加します。

説明は画像の前後のテキストにあります。
画像mapping.gifの説明

マッピング・アクティビティに複数の受信推移を割り当てることができます。送信推移の場合、1つの無条件推移または各無条件推移のうちの1つに割り当てます。

マッピングをプロセス・フローに追加する場合、その構成プロパティを「アクティビティ」パネルに表示できます。プロセス・フロー・エディタの「マッピング」アクティビティは、マッピング・エディタのマッピングからそのプロパティを継承します。プロセス・フロー・エディタでは、プロパティ・データ型または方向を変更できません。

ただし、プロセス・フローのみに影響を与え、マッピング・エディタのマッピングの設定を変更しない新規の値を割り当てることができます。たとえば、プロセス・フロー・エディタでオペレーティング・モードをセット・ベースから行ベースに変更する場合、プロセス・フローは行ベースで実行します。元のマッピングはそのオペレーティング・モードとしてセット・ベース・モードのままです。基礎となるマッピングのプロパティを変更する場合は、「マッピング構成のリファレンス」を参照してください。

マッピングにマッピング入力パラメータ演算子が含まれる場合、そのデータ型に従って値を指定します。プロセス・フロー・エディタは、マッピングにマッピング入力パラメータ演算子が追加される場合に、PL/SQL式を受け取ることを想定します。マッピング入力パラメータが文字列の場合、二重引用符でその文字列を囲みます。

マッピング・エディタでマッピングを変更したプロセス・フローを更新するには、プロセス・フローからマッピング・アクティビティを削除し、マッピング・アクティビティを再び追加します。

表27-18および表27-19に、PL/SQLおよびSQL*Loaderの様々なマッピング・パラメータを示します。

表27-18に、PL/SQLマッピング・パラメータを示します。

表21-18 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


表27-19に、SQL*Loaderマッピング・パラメータを示します。

表27-19 SQL*Loaderのマッピング・パラメータ

パラメータ 説明

BAD_FILE_NAME

SQL*LoaderのBADファイルの名前

DATA_FILE_NAME

SQL*LoaderのDATAファイルの名前

DISCARD_FILE_NAME

SQL*LoaderのDISCARDファイルの名前


通知

通知アクティビティを使用すると、ETLプロセスを再開またはリカバリするプロセスを設計できます。このアクティビティはOracle Workflowと連携して機能します。通知を実装するには、Oracle Workflowのワークフロー通知も実装する必要があります。または、電子メール・アクティビティに続けて手動アクティビティを使用することも可能です。メッセージの送信方法はOracle Workflowサブシステムで決定されます。

説明は画像の前後のテキストにあります。
画像act_icon_notifcation.gifの説明

通知アクティビティを使用するには、最初に表27-20に示されるパラメータを定義します。定義する各レスポンスに基づいて条件付き送信推移を定義します。たとえば、response_typeの値が「はい」、「いいえ」でdefault_responseの値が「はい」の場合は、2つの送信推移を定義します。各推移を右クリックして「条件」を選択し、条件のリストを表示します。この例では、「はい」に設定された条件を持つ1つの送信推移と、「いいえ」に設定された別の送信推移を作成します。

表27-20 通知アクティビティ・パラメータ

パラメータ 説明

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制限により、実行者、優先度、タイムアウトおよびカスタム・パラメータの値のみを実行時に変更できます。

通知メッセージの置換

カスタム・パラメータを通知アクティビティに追加して、通知を介してユーザーからデータを受け渡し、取り出すことができます。INパラメータは、SQLおよび適切な構文を使用してメッセージに置換されます。たとえば、NAMEというカスタム・パラメータの場合、テキスト&NAMEがパラメータの値で置換されます。また、OUTパラメータに値を入力するよう要求されます。

OMBPlus

OMB*Plusアクティビティを使用して、プロセス・フローにOMB*Plusを表します。これにより、プロセス・フローの実行時にOMB*Plusを起動して、OMB機能を実行したり、エキスパートを呼び出すことができます。

ombplus_activity.gifの説明が続きます。
図ombplus_activity.gifの説明

これは特にプロセス・フロー内でマッピングを使用する場合に役立ちます。プロセス・フローの開始前にマップを配布しないでください。プロセス・フローの一部としてOMBPlusアクティビティを使用してこれらを配布できるようになりました。

たとえば、2つのマッピングを実行し、それぞれがターゲット表をロードするプロセス・フローを作成するとします。プロセス・フローの一部としてマッピングを配布できるようになります。

図27-6に、この機能を提供するマッピングを示します。

図27-6 マッピングのOMBPlusアクティビティ

図27-6の説明が続きます。
「図27-6 マッピングのOMBPlusアクティビティ」の説明

表27-21で、OMBPlusアクティビティのパラメータを説明します。

表27-21 OMBPlusアクティビティ・パラメータ

パラメータ名 説明

PARAMETER_LIST

1文字目の繰返しで区切られたパラメータのリストを定義します。

たとえば、/VALUE1/VALUE2/VALUE3/では、"/"文字がセパレータとして使用されています。セパレータはリストの最初と最後にも必要です。

RESULT_CODE

アクティビティが正常に完了したかどうかを示すアクティビティ・タイプの整数の出力。

SCRIPT

実行するOMB*Plusスクリプトを表します。

このパラメータは実行するスクリプト本文の入力にのみ使用できます。既存のスクリプトを参照するには、PARAMETER_LISTにスクリプトを指定します。たとえば、/my_script.tcl/value1/value2/です。

SUCCESS_THRESHOLDQADB55918:closed

OMB*Plusスクリプトの完了ステータスを指定します。スクリプト実行の正常完了を示す最も大きい戻り値を入力します。さらに大きな値が戻された場合は、コマンドが失敗したことを意味ます。デフォルト値は0です。


OMB*Plusスクリプトを入力して、ファイルシステム上の既存のスクリプトを実行または参照できます。スクリプトを入力するには、「構造」パネルで「アクティビティ」ノードを開き、「スクリプト」を選択します。プロパティ・インスペクタの「値」フィールドの省略記号ボタンをクリックして、「プロパティの編集」ダイアログ・ボックスにスクリプトを入力し、「OK」をクリックします。ファイルシステム上の既存のスクリプトを参照するには、parameter_listパラメータに移動し、アットマーク@に続いてフルパスを入力します。

OMBPlusアクティビティを含むプロセス・フロー用の実行モード

OMBPlusアクティビティは次のいずれかのモードで実行できます。

owb/bin/admin/Runtime.propertiesに設定されているプロパティ設定property.RuntimePlatform.0.NativeExecution.OMBPlus.security_constraintによりこの動作が制御されます。

OR

ORアクティビティを使用すると、1つ以上の上位のアクティビティの完了に基づいてアクティビティを起動できます。ORアクティビティには、複数の受信推移および1つのみの無条件送信推移を割り当てることができます。

ORアクティビティはANDアクティビティと類似のセマンティックを持ちますが、相違点は、ORアクティビティは完了した最初の上位のアクティビティの正常終了、警告またはエラーの結果を伝播することです。

説明は画像の前後のテキストにあります。
画像or.gifの説明

プロセス・フローのORアクティビティは、ダウンストリーム・アクティビティが各プロセス・フローの実行に1回のみトリガーされることを確認します。

図27-7に、ORアクティビティを含むプロセス・フローを示します。

図27-7 プロセス・フローにおけるORアクティビティ

説明は画像の前後のテキストにあります。
「図27-7 プロセス・フローにおけるORアクティビティ」の説明

プロセス・フロー・エディタを使用することにより、ORアクティビティを省略して、3つのマッピング・アクティビティのそれぞれからの推移を、サブプロセス・アクティビティSUBPROC1に割り当てることができます。ただし、この論理では1回のプロセス・フローの実行でSUBPROC1を3回起動することになります。これを回避するには、ORアクティビティを使用してください。

ルート

ルート・アクティビティを使用すると、アクティビティの結果を、定義した条件に基づいて特定の結果になるようにルーティングできます。これにより排他的論理和およびif-the-elseシナリオを定義できます。

説明は画像の前後のテキストにあります。
画像route.gifの説明

ルート・アクティビティは、操作を持たず、推移の方向を変更する場合に使用します。ルート・アクティビティには、その他のアクティビティと同様に、複合条件を持つ送信推移を追加できます。ただし、このアクティビティには操作がないため、条件ではプロセス・フローのパラメータおよび変数のみを参照できます。ルート・アクティビティを指定することにより、ANDやORアクティビティの結果に影響を与えることができます。ルート・アクティビティは、独自の結果を持たないため、正常終了したものとみなされます。

このアクティビティにはパラメータはありません。

ステータスの設定

ステータスの設定アクティビティを使用して、正常終了、警告またはエラーの各ステータスを通知できます。

説明は画像の前後のテキストにあります。
画像act_icon_set_status.gifの説明

ステータスの設定アクティビティは、ANDアクティビティの動作を上書きするために使用できます。ANDの直前のアクティビティのいずれかがエラーを戻した場合、ANDアクティビティもエラーとして判断されることに留意してください。先行するアクティビティの結果と無関係にANDを正常終了として判断されるようにするには、そのアクティビティとANDアクティビティの間にステータスの設定アクティビティを挿入します。

SQL*PLUS

SQL*PLUSアクティビティを使用すると、スクリプトをプロセス・フローに導入できます。

説明は画像の前後のテキストにあります。
画像act_icon_sql_plus.gifの説明

スクリプトの貼付けまたは入力を行うには、キャンバス上でアクティビティを選択します。「構造」パネルで「プロセス・フロー」ノード、「アクティビティ」ノード、「SQL*Plus」ノードの順に開き、SCRIPTを選択します。プロパティ・インスペクタにScriptパラメータのプロパティが表示されます。プロパティ・インスペクタの「値」フィールドにスクリプトを貼り付けるか入力します。または、ファイルシステム上の既存のスクリプトを参照するには、parameter_listに移動し、アットマーク@に続いてフルパスを入力します。

このアクティビティは広範な目的に使用できますが、一例は、「プロセス・フロー・エディタを介したマッピングのコミット」で説明しているように、SQL*PLUSアクティビティを使用してプロセス・フローにおいて複数のマッピングをコミットする方法を制御することです。

プロセス・フローでのSQL*PLUSアクティビティの使用

SQL*PLUSアクティビティのプロセス・フローは配布ロケーションの構成アイテムによって実行されます。

SQL*PLUSアクティビティを実行するロケーションを設定する手順は、次のとおりです。

  1. プロジェクト・ナビゲータで、「プロセス・フロー」モジュールを展開します。

  2. プロセス・フローを右クリックして「構成」を選択します。

    プロセス・フローに対する「構成」タブが表示されます。

  3. 「構成」タブで、SQL*Plusアクティビティ・ノードを展開します。

  4. SQLPLUSを選択します。

  5. 「パスの設定」で、「配布ロケーション」オプションをSQL*Plusアクティビティを実行するロケーションに設定します。

SQL*Plusアクティビティは、ユーザー定義アクティビティと類似していますが、次の相違点があります。

  • COMMANDパラメータは、自動的に導出されるため、指定できません。

  • ${Task.Input}置換変数を使用した場合は、生成される一時ファイルの末尾は.sqlになります。

  • 用意されている置換変数のセットが異なります。このアクティビティは、配布されたデータベース・ロケーションを使用して構成する必要があります。

表27-22 SQL*PLUSアクティビティ・パラメータ

パラメータ 説明

Parameter_List

スクリプトが含まれるファイルのロケーションのフルパスを、その前に@を付けて入力します。

Script

parameter_listにパスを入力するかわりに、スクリプトを入力するか貼り付けることもできます。


置換変数の使用

置換変数はFTPと類似しています。FTPサーバーではなくOracle Databaseに接続する際に、置換変数はリモート・ロケーションのかわりに次のロケーションを使用します。

  • 作業ロケーション(ローカル・ロケーション)

  • 配布ロケーション(ターゲット・ロケーション)

表27-23 SQL*PLUS置換変数

置換変数 説明

${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コマンド

SQL*Plusコマンドは、FTPユーザー定義アクティビティに直接入力できません。ホーム・ディレクトリからロードされるか、そのロケーションがワークスペース管理者によって事前定義されています。

SQL*Plusの実行ロケーションの決定には、次のプラットフォーム・プロパティがこの順序で使用されます。

  1. property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_10g

  2. property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_9i

  3. property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_8i

  4. property.RuntimePlatform.0.NativeExecution.SQLPlus.sqlplus_exe_default

同様に、Oracleホームの決定には次のプラットフォーム・プロパティが使用されます。

  1. property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_10g

  2. property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_9i

  3. property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_8i

  4. property.RuntimePlatform.0.NativeExecution.SQLPlus.oracle_home_default

開始

デフォルトでは、各プロセス・フローに1つの開始アクティビティを含めます。開始アクティビティの入力パラメータを、全体のプロセス・フローの入力パラメータになるよう設定できます。

説明は画像の前後のテキストにあります。
画像start.gifの説明

開始アクティビティにパラメータを追加する手順は次のとおりです。

  1. プロジェクト・ナビゲータで、「プロセス・フロー」をダブルクリックしてプロセス・フロー・エディタを開きます。

  2. 「構造」パネルで、「アクティビティ」ノードを開きます。

    「構造」タブが表示されない場合、「表示」メニューから「構造」を選択します。

  3. 開始アクティビティを選択して、「構造」タブで新規プロセス・アクティビティ・パラメータ(上部の小さな緑色のプラス記号ボタン)をクリックします。

    新しいパラメータが開始アクティビティの下に追加されます。

  4. プロパティ・インスペクタで新しいパラメータを選択し、そのパラメータにプロパティを設定します。

    パラメータ名およびデータ型を必要に応じて変更します。この方向は変更できません。方向はINであり、パラメータが入力パラメータのみであることを示しています。値にはパラメータ値を入力します。この値は実行時に上書きできます。

  5. これで、パラメータをプロセス・フローの他のアクティビティの入力として使用できます。

サブプロセス

以前に作成したプロセス・フローを起動するには、サブプロセス・アクティビティを使用します。1つのプロセス・フローから、同じまたは別のプロセス・フロー・パッケージに含まれる別のプロセス・フローを起動できます。

説明は画像の前後のテキストにあります。
画像subprocess.gifの説明

サブプロセス・アクティビティをプロセス・フローに追加した後、これを他のアクティビティと類似する設計に使用します。受信推移は複数割り当てることができます。送信推移には、無条件送信推移を1つ、または3つまでの条件付き送信推移を割り当てます。

サブプロセス内の終了アクティビティは、サブプロセス・アクティビティのみに適用され、プロセス・フローの終了ポイントとしては機能しません。

サブプロセス・アクティビティと他のアクティビティの重要な違いには、サブプロセスの内容は参照できるがその内容を親プロセス・フローでは編集できないという点があります。サブプロセスを編集するには、プロジェクト・ナビゲータで基礎となるプロセス・フローを開きます。プロセス・フローの名前の変更以外は、プロセス・フロー・エディタにより子プロセス・フローの変更が親プロセス・フローに伝播されます。


注意:

プロセス・フローの名前の変更は注意してください。別のプロセス・フローで参照されるプロセス・フローの名前を変更する場合は、親プロセス・フローが無効になります。無効なサブプロセスを削除して、子プロセス・フローの新しい名前に関連付けられたサブプロセスを新たに追加する必要があります。

サブプロセス・アクティビティをプロセス・フローに追加する手順は次のとおりです。

  1. プロセス・フロー・エディタのパレットから、「サブプロセス」アクティビティ・アイコンをキャンバスにドラッグ・アンド・ドロップします。

    Oracle Warehouse Builderにより、プロセス・フローをサブプロセスとして選択し、追加するためのダイアログ・ボックスが表示されます。

  2. 「プロセス・フロー・モジュール」を拡張して、親プロセス・フローとして同じプロセス・フロー・パッケージから1つのプロセス・フローを選択します。

    Oracle Warehouse Builderにより、プロセス・フローが親プロセス・フローのサブプロセス・アクティビティとして表示されます。

  3. サブプロセスの内容を表示するには、サブプロセスを右クリックして、「ノードの拡張」を選択します。

    プロセス・フロー・エディタにより、サブプロセスのグラフが青い枠線で囲まれて表示されます。

変換

変換の機能をキャンバスにドロップすると、戻りパラメータが新しいパラメータとして変換と同じ名前で作成されます。変換アクティビティを使用して変換を変換ライブラリからプロセス・フローに追加すると、プロセス・フロー・エディタの「アクティビティ」パネルに変換のパラメータが表示されます。

説明は画像の前後のテキストにあります。
画像transform.gifの説明

変換アクティビティを起動する受信推移を1つ以上指定できます。送信推移については、無条件推移を1つのみ指定するか、3つの条件付き推移のいずれか1つを指定できます。

条件付き送信推移を指定する場合は、そのステータスが戻り値に基づくようにアクティビティを構成できます。「ステータスとしてリターンを使用」の詳細は、「プロセス・フロー構成のリファレンス」を参照してください。

変換に対して行った変更内容でプロセス・フローを更新するには、プロセス・フローから変換アクティビティを削除した後、変換アクティビティを再度追加してください。

パブリック変換など、配布されていない変換については、「配布ロケーション」の値を使用してアクティビティを構成する必要があります。

ユーザー定義

ユーザー定義アクティビティにより、Oracle Warehouse Builder内で定義されていないアクティビティをプロセス・フローに取り込むことができます。

説明は画像の前後のテキストにあります。
画像external_process.gifの説明

ユーザー定義プロセス・アクティビティを起動する受信推移を1つ以上指定できます。送信推移については、無条件推移を1つのみ指定するか、3つの条件付き推移のいずれか1つを指定できます。

条件付き送信推移を指定する場合は、そのステータスが戻り値に基づくようにアクティビティを構成できます。「ステータスとしてリターンを使用」の詳細は、「プロセス・フロー構成のリファレンス」を参照してください。

表27-24に、ユーザー定義アクティビティに設定するパラメータを示します。

表27-24 ユーザー定義アクティビティ・パラメータ

パラメータ 説明

Command

定義したユーザー定義プロセスを実行するコマンド。c:\winnt\system32\cmd.exeなどのパスおよびファイル名を入力します。

Parameter List

ユーザー定義プロセスに渡されるパラメータのリスト。?/c?c:\\temp\\run.batなどのパスおよびファイル名を入力します。

プロセス・フロー・エディタは、入力する最初の文字をセパレータと解釈します。たとえば、プロセス・フロー・エディタは次のエントリを/cおよびdirと解釈します。

?/c?dir?

バックスラッシュをエスケープ文字として使用します。たとえば、プロセス・フロー・エディタは次のエントリを-l-sおよび/と解釈します。

/-l/-s/\//

表27-25にリストされている置換変数も入力できます。

Success Threshold

完了ステータスを指定します。正常な完了を示す最も大きい戻り値をオペレーティング・システムから入力します。オペレーティング・システムがさらに大きな値を戻した場合、コマンドが失敗したことを示します。デフォルト値は0です。

Script

ここにスクリプトを入力するか、スクリプトのファイル名を入力できます。ファイル名を入力する場合、パラメータ・リストの${Task.Input}変数を使用してファイル名を渡します。

テキストの入力または貼付けを実行するには、「アクティビティ」パネル下部の「値」を選択します。プロセス・フロー・エディタに入力できるテキスト数は無制限です。

スクリプト内の各改行は、[Enter]キーを押す操作に相当します。したがって、最終行が確実に送信されるようにするには、スクリプトの最後で改行します。


表27-25に、FTPアクティビティに入力可能な置換変数を示します。

表27-25 ユーザー定義プロセス・アクティビティの置換変数

変数

${Working.Host}

コントロール・センター・サービス・ホストのロケーションのホスト値。

${Working.User}

コントロール・センター・サービス・ホストのロケーションのユーザー値。

${Working.Password}

コントロール・センター・サービス・ホストのロケーションのパスワード値。

${Working.RootPath}

ローカル作業ディレクトリ

${Task.Input}

SCRIPTパラメータから作成された一時ファイル。

Task.Input変数を入力し、Oracle Warehouse BuilderにSCRIPTパラメータで記述したスクリプトを参照させます。

Windowsの場合、Parameter_Listに?"-s:${Task.Input}"?と入力します。

UNIXの場合、Parameter_Listに?"${Task.Input}"?と入力します。

ここでは、疑問符はセパレータです。


待機

待機アクティビティを使用して、プロセス・フローに遅延を挿入します。

説明は画像の前後のテキストにあります。
画像act_icon_wait.gifの説明

表27-26で、待機アクティビティのパラメータを説明します。

表27-26 待機アクティビティ・パラメータ

パラメータ 説明

Minimum_Delay

待機する最小時間を入力します。時間は秒単位で指定します。

Until_Date

待機期日をローカル地域のデフォルト書式で指定します。


whileループ

whileループを使用して、定義した条件がTRUEと評価される場合のみ1つ以上のアクティビティを実行します。

説明は画像の前後のテキストにあります。
画像while_loop.gifの説明

通常は、whileループを割当アクティビティに関連付けることにより、while条件を定義できます。少なくとも1つの割当アクティビティによりデータが初期化され、また少なくとも1つの割当アクティビティによってループ反復の終わりまでデータが増分されるか、再度データが変更されます。

whileループ・アクティビティを追加する際、エディタは終了ループ・アクティビティと終了ループへの推移も追加します。whileループ・アクティビティからループに含めるそれぞれのアクティビティまでの推移を作成してください。追加する送信推移については、推移を選択してオブジェクトの詳細の「条件」をクリックし、EXIT条件またはLOOP条件を推移に適用します。

ループを実行するかどうかを制御するwhile条件を定義するには、「構造」パネルで「プロセス・フロー」ノード、「アクティビティ」ノード、WHILE_LOOPノードの順に開き、Conditionを選択します。プロパティ・インスペクタにConditionのパラメータが表示されます。

表27-27で、whileループ・アクティビティのパラメータを説明します。

表27-27 whileループ・アクティビティ・パラメータ

パラメータ 説明

Condition

ループ条件または終了条件を持つDefine


Webサービス

Webサービス・アクティビティを使用して、既存のWebサービスをプロセス・フローに追加します。Webサービスはプロジェクト・ナビゲータの「アプリケーション・サーバー」ノードか、またはグローバル・ナビゲータのパブリック・アプリケーション・サーバー・ノードの下で定義される必要があります。

説明は画像の前後のテキストにあります。
画像webservice_activity.gifの説明

Webサービス・アクティビティにより、プロセス・フローのWebサービスで定義された操作を使用できます。プロセス・フローにWebサービス・アクティビティを追加すると、複数の操作が含まれます。使用する操作を選択するように求められます。

Webサービス・アクティビティのパラメータはWebサービスにより実行される操作のタイプによって異なります。そのため、各種操作は異なるパラメータを含むことができます。表27-28で、デフォルトのWebサービスAgentWebServiceのrunCCJob操作のパラメータを説明します。

表27-28 Webサービス・アクティビティのパラメータ

パラメータ 説明

Username

プロセス・フローを実行しているワークスペース・ユーザーの名前

パスワード

ユーザー名フィールドで指定したユーザーのパスワード

Workspace

Webサービスの実行ジョブが実行する必要のあるワークスペースの名前。

Webサービスを実行しているユーザーがワークスペース所有者ではない場合、ワークスペース名にユーザー名の接頭辞を使用します。たとえば、test_user.my_workspaceです。

ロケーション

操作が配布される先のロケーションの物理名

Task_type

操作のタイプ。次の値のいずれかを使用します。PLSQL、SQL_LOADER、PROCESS、SAPまたはDATA_AUDITOR。

Task_name

プロセス・フローの物理名。属するプロセス・フロー・パッケージの名前でプロセス・フロー名を修飾します。たとえば、MY_PROCESS_FLOW_PACK. MY_PROCESS_FLOWです。

Connection_string

コントロール・センター・マネージャを実行するシステムの接続情報

System_params

マッピングの実行パラメータの値、あれば、「バルク・サイズ」、「監査レベル」またはオペレーティング・モードなどです。

Custom_params

Webサービスが基にするマッピングの入力パラメータの値


Webサービス・アクティビティをプロセス・フローで使用する手順は次のとおりです。

  1. プロジェクト・ナビゲータでプロセス・フローをダブルクリックして、Webサービス・アクティビティを追加するプロセス・フローを開きます。

    プロセス・フローがエディタに表示されます。

  2. プロジェクト・ナビゲータから、追加するWebサービスをドラッグ・アンド・ドロップします。

    「Webサービス操作」ダイアログ・ボックスが表示されます。

  3. 前の手順で選択したWebサービスに複数の操作が含まれている場合、プロセス・フローに追加するWebサービス内の操作を選択し、「OK」をクリックします。

    Webサービス操作がプロセス・フローに追加されます。

  4. Webサービス・アクティビティのパラメータを設定します。