プロセス・フローにより、Oracle Warehouse Builderオブジェクトと、電子メール、FTP、オペレーティング・システム・コマンドなどの外部アクティビティとを相互に関連付け、それらの様々なアクティビティ間の制御フローを定義できます。プロセス・フロー内では、Oracle Warehouse Builderアクティビティを使用して、データ・オブジェクト、外部オブジェクトおよび制御構成を表すことができます。これにより、様々なアクティビティ間のデータ・フローを作成して、特定のデータ・ウェアハウス・タスクを実現できます。
ランタイム・プリファレンスの詳細は、『Oracle Warehouse Builder概要』を参照してください。
この項は、すべてのプロセス・フロー・アクティビティの参照用として使用します。この項ではアクティビティを次のタイプに分類します。
各アクティビティの詳細は、この項の他の部分に記載されているアルファベット順のリストを参照してください。
表27-1に、これまでOracle Warehouse Builder内で作成したオブジェクトを表すアクティビティを示します。受信推移は1つ上指定できます。送信推移については、正常終了、警告、エラーおよび無条件の推移をそれぞれ1つずつ使用でき、また、複合条件推移をいくつでも定義できます。
表27-1 オブジェクトを表すアクティビティ
アイコン | アクティビティ | 簡単な説明 |
---|---|---|
![]() |
|
データ・プロファイリングに使用される既存のデータ監査モニターをプロセス・フローに追加します。 |
![]() |
|
既存のマッピングをプロセス・フローに追加します。 |
![]() |
|
既存のプロセス・フローをプロセス・フロー内に埋め込みます。 |
![]() |
|
既存の変換をプロセス・フローに追加します。 |
|
|
既存のWebサービスをプロセス・フローに追加します。 |
データのコミット
設計オブジェクトを表すアクティビティを追加すると、プロセス・フローではこれらのアクティビティが個別のトランザクションとして評価されます。たとえば、マッピング・アクティビティを追加する場合、各マッピングが独立してコミットおよびロールバックされます。この設計の場合、1回のコミット文またはロールバック文ですべてのマッピングを制御することは不可能です。
複数のマッピングをまとめてコミットまたはロールバックするには、各マッピングをコールするスクリプトに関連付けられたSQL*Plusアクティビティを使用してプロセス・フローを設計することを検討してください。詳細は、「プロセス・フロー・エディタを介したマッピングのコミット」を参照してください。
表27-2に、各ユーティリティ・アクティビティをリストし、関連するアイコンを示します。
表27-2 ユーティリティ・アクティビティ
アイコン | アクティビティ | 簡単な説明 |
---|---|---|
![]() |
|
値を変数に割り当てます。 |
![]() |
|
プロセス・フロー内からEnterprise JavaBeanを実行します。 |
![]() |
|
電子メールを送信します。たとえば、プロセス・フローのアクティビティのステータスに関する電子メール・メッセージを送信します。 |
![]() |
|
「ファイルが存在」アクティビティを使用して、指定されたドライブまたはディレクトリにファイルが存在するかどうかをチェックします。 |
![]() |
|
プロセス・フロー内からJavaクラスを実行します。 |
![]() |
|
プロセス・フローを停止します。プロセス・フローを再開するには、手動操作が必要です。 |
![]() |
|
ユーザーに電子メールを送信し、ユーザーがプロセス・フローの処理方法を示すレスポンスをリストから選択できるようにします。 |
|
|
プロセス・フローでOMB*Plusスクリプトを表します。 |
![]() |
|
成功、警告またはエラーのステータスを通知します。 |
![]() |
|
指定した時間分、プロセス・フローの進捗を遅延します。 |
表27-3に、プロセス・フローの制御に使用するアクティビティを示します。表では、関連付けられているアイコンを示します。また、各アクティビティに使用できる受信および送信推移の数も示します。
表27-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つ |
表27-4に、プロセス・フローで開始可能なオペレーティング・システム・アクティビティを示します。
表27-4 OSアクティビティ
アイコン | アクティビティ | 簡単な説明 |
---|---|---|
![]() |
|
プロセス・フロー中にファイル転送プロトコル・コマンドを起動します。たとえば、FTPアクティビティを使用して、マッピングが実行されるコンピュータにデータ・ファイルを移動します。 |
![]() |
|
プロセス・フローで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_constraint
をNATIVE_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アクティビティを使用して、プロセス・フローを再開する前に2つ以上のアクティビティの完了を指定します。
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に関連付けられている推移およびアクティビティが削除された場合にも有効になります。
送信条件の場合、ANDアクティビティには1つ、2つまたは3つの条件付き推移を含むことができます。これにより、成功、警告およびエラー・アクティビティで終了する3つのパスになる可能性があります。
割当アクティビティを使用して、変数に値を割り当てます。たとえば、このアクティビティを使用して変数をゼロに戻します。
表27-5で、割当アクティビティのパラメータを説明します。
データのプロファイルの結果に基づいて処理するプロセス・フローを設計できます。たとえば、データの品質がしきい値パラメータによって決定された基準を満たす場合にのみマッピングを実行する論理を作成します。
表27-6で、データ監査モニター・アクティビティのパラメータを説明します。
Enterprise Java Beanアクティビティ・タイプを使用して、プロセス・フロー内からEnterprise JavaBean(EJB)をコールします。EJBはビジネス・ロジックを含むサーバー側コンポーネント(J2EEコンテナにより管理される)です。これにより、スケーラビリティが高く、複数のクライアントが使用可能な、トランザクション処理をサポートするアプリケーションを作成できます。
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 JavaBeanのスイートがあるとします。この既存の機能をプロセス・フローで利用できます。Enterprise Java Beanアクティビティにより、この機能をプロセス・フローで直接統合できます。
この受注処理アプリケーションには、特定の日に発生したすべての受注のレポートを生成するEJBが含まれるとします。この受注データをデータ・ウェアハウスにロードするETLロジックを起動する前に、前の日に発生したすべての受注のレポートを生成するプロセス・フローを作成する必要があるとします。
図27-2に、必要な機能を提供するプロセス・フローを示します。Enterprise Java BeanアクティビティORDERS_REPORTは、EJB受注処理アプリケーションとして提供された機能を利用します。LOAD_ORDERSは、レポートの実行後に受注データをウェアハウスにロードするマッピングです。
ORDERS_REPORTアクティビティで、次のパラメータ値を設定します。
CLASS_NAME: ordersystem.reports
METHOD_NAME: printReport
PARAMETER_LIST: ?ReportName?PrintDevice?
「構造」パネルの上部の新規プロセスアクティビティ・パラメータを選択し、表27-8に指定されているように値を設定して、2つのカスタム・パラメータ、ReportNameとPrintDeviceをORDERS_REPORTアクティビティに作成します。
Enterprise Java Beanアクティビティの配布ロケーションが、指定したEnterprise Java Beanをサポートするアプリケーションを含むJ2EEインスタンスを指すURIロケーションに設定されていることを確認します。たとえば、URIロケーションのURIフィールドは次のように設定されます。
ormi://myhost.example.com:23791/ReportsApp
DB2データベースにOrders
とOrders_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 |
値 |
|
|
|
|
このプロセス・フローを配布するには、例: Enterprise Java Beanアクティビティを使用してEJBからの既存ビジネス・ロジックを利用するで説明したように、表ユーティリティ・アプリケーションのJ2EEコンテナを表すURIロケーションを作成し、Enterprise Java Beanの配布ロケーションを設定します。
注意: J2EEプラットフォームでは、より高いスケーラビリティ、パフォーマンスおよびセキュリティが提供されるため、EJBを使用して、Javaにより提供される機能をプロセス・フローに統合することをお薦めします。 |
サポートされるパラメータ・タイプは次のとおりです。
文字列
INTEGER
FLOAT
日付
BOOLEAN
ただし、サポートされるタイプ(文字列、INTEGERなど)の配列はサポートされません。
方向がOUTに設定されたカスタム・パラメータはサポートされません。
Enterprise JavaBeanの実行中にスローされた例外はリポジトリ・ブラウザでのみ使用できます。
次のアクションはEnterprise Java Beanアクティビティ内で実行できません。
入力、出力およびエラー・ストリームのリダイレクト
スレッドの作成と管理
Java Virtual Machine(JVM)の停止
ネイティブ・ライブラリのロード
ネットワーク・ソケットでのリスニング、接続の受け入れ、またはネットワーク・ソケットからのマルチキャスト
ファイル記述子の直接読取りまたは書込み
ファイルシステムでのファイルの作成、変更または削除
プロセス・フローのアクティビティが完了した後に電子メール通知を送信できます。たとえば、マッピングのようなアクティビティがエラーまたは警告で終了したと管理者に通知する場合、これが役立ちます。
表27-10に、電子メール・アクティビティに設定するパラメータを示します。
表27-10 電子メール・アクティビティ・パラメータ
パラメータ | 説明 |
---|---|
SMTP Server |
送信メール・サーバーの名前。デフォルト値は |
ポート |
送信メール・サーバーのポート番号。デフォルト値は |
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を使用して電子メールを送信する必要があるとします。データベース管理者は次の手順を実行する必要があります。
次のコマンドを使用して、ユーザーOWBSYS
のアクセス制御リスト(ACL)を作成します。
EXECUTE DBMS_NETWORK_ACL_ADMIN.CREATE_ACL ('acl_for_owb_cc.xml','ACL for Control Center','OWBSYS','CONNECT');
ACLは、ネットワーク・ターゲットに割り当てないと、アクセス制御の効果を発揮しません。
アクセス制御リスト(ACL)をネットワーク・ホストに割り当て、オプションでTCPのポート範囲を指定します。次のコマンドを使用します。
EXECUTE DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL ('acl_for_owb_cc.xml','mail.example.com',25)
COMMITコマンドを使用して変更をコミットします。
プロセス・フローのパスはすべて、終了アクティビティで終了する必要があります。
プロセス・フローを最初に作成したときに、デフォルトでは成功タイプの終了アクティビティが含まれています。終了タイプを使用して、パスに含まれるロジックのタイプを指定します。マッピングなどの特定のアクティビティには3種類の結果があるため、表27-11に示すように、3つの終了タイプがエディタに用意されています。これらの終了タイプを使用して、プロセス・フローのエラー処理ロジックを設計できます。
表27-11 終了アクティビティのタイプ
アイコン | 終了タイプ | 説明 |
---|---|---|
![]() |
正常終了 |
正常終了する上位のアクティビティに依存して、パスが論理を含むことを示します。 |
![]() |
警告 |
警告で終了する上位のアクティビティに依存して、パスが論理を含むことを示します。 |
![]() |
エラー |
エラーで終了する上位のアクティビティに依存して、パスが論理を含むことを示します。 |
1つ、2つまたは3つすべての終了のタイプを含むように、プロセス・フローを設計できます。終了タイプはそれぞれ1回のみ使用でき、終了タイプは重複して使用できません。各終了アクティビティには、単一または複数の受信推移を含むことができます。
図27-3では、END_SUCCESSに3つの受信推移があり、それぞれが上位のアクティビティの正常終了に依存します。END_ERRORには、上位のマッピング・アクティビティがエラーで終了する場合に実行する電子メール・アクティビティからの1つの受信推移があります。
デフォルトでは、すべてのプロセス・フローには、END_SUCCESSが含まれます。終了アクティビティを別のタイプに変更できませんが、違うタイプの終了アクティビティを追加できます。
終了アクティビティをプロセス・フローに追加する手順は次のとおりです。
プロセス・フロー・エディタのパレットから、該当する「終了」アイコンをキャンバスにドラッグ・アンド・ドロップします。
Oracle Warehouse Builderでは、プロセス・フローに表示されている終了タイプを選択できません。
「OK」をクリックします。
Oracle Warehouse Builderによって、終了アクティビティがキャンバスに追加されます。
エディタは、キャンバスに追加する各ForループおよびWhileループに対して、終了ループを追加します。
終了ループ・アクティビティには、ForループまたはWhileループ・アクティビティへの単一の無条件送信推移が必要です。ループを構成するすべてのフローを、終了ループ・アクティビティに収束して、次のループ相互作用またはループ終了のいずれかに対してパラレル・フローが確実に残らないようにする必要があります。
ファイルが存在アクティビティを使用して、次のアクティビティを実行する前にファイルの存在を確認します。「アクティビティ」パネルで、ファイル名を入力します。
ファイルが存在アクティビティでの確認は1回のみです。ファイルが存在する場合、プロセス・フローが正常終了推移に進みます。ファイルが存在しない場合、プロセス・フローは警告推移に進みます。ファイルが存在アクティビティは、OMB*Plusを使用している場合のTCLエラーのような重大な障害の場合にのみエラー推移をトリガーします。
ファイルが存在アクティビティには、PATHと呼ばれる1つのパラメータがあります。このパラメータに対して、完全修飾ファイル名、ディレクトリ名、またはセミコロン区切りのリストを指定します。通常、パスはコントロール・センター・サービスが実行中のホストと同じホストでテストされます。
基礎となるオペレーティング・システムのセキュリティ制約は、1つ以上のファイルにアクセスできない場合があり、ファイルが存在しないように見えることがあります。すべてのパスが存在する場合、アクティビティはEXISTSを戻します。パスがまったく存在しない場合は、MISSINGを戻します。複数のパスが存在する場合は、SOME_EXISTを戻します。
FORKアクティビティを使用して、1つのアクティビティの完了後に複数の並行アクティビティを起動します。
FORKアクティビティに複数の受信推移を割り当てることができます。FORKアクティビティは、パラレル処理される複数の無条件送信推移の割当てを可能にする唯一のアクティビティです。
たとえば、図27-4では、MAP1の完了後に、プロセス・フローがFTP、FDSおよびEMAILという名前のアクティビティをパラレル実行します。
図27-5に、FORKアクティビティがない同じアクティビティを示します。この場合、アクティビティのうち1つのみがMAP1の完了状態に基づいて実行されます。
プロセス・フロー・エディタは、送信推移またはFORKから割り当てることができる並行アクティビティの数を制限しません。並行実行の設計の際、プロセス・フローを実行するために使用するワークフロー・エンジンまたはサーバーによって課せられる制限に基づいてFORKを設計します。
送信FORKアクティビティ推移は、複合式を持つことができません。
forループを使用して、ループに含まれたアクティビティを繰り返し実行してから終了し、プロセス・フローを再開します。
forループを追加する際、エディタは終了ループ・アクティビティと終了ループへの推移も追加します。送信推移の場合、ループ条件を持つものと終了条件を持つものを定義します。送信推移を選択して、オブジェクトの詳細の「条件」をクリックします。
表27-12で、forループ・アクティビティのパラメータを説明します。
FTPアクティビティを使用して、提供するFTPコマンドのスクリプトに基づいて、あるロケーションから別のロケーションへファイルを転送します。FTPアクティビティは、「ユーザー定義」アクティビティの特化したものです。これら2つのアクティビティの違いは、FTPアクティビティはリモート・ファイル・ロケーションによって構成される必要があることです。
有効化されるプロセス・フローの場合、FTPコマンドには、インストールされたコントロール・センター・サービスを使用したサーバーとの間のデータ転送が含まれる必要があります。コントロール・センター・サービスをホストしていない2台のコンピュータの間でデータを移動するには、1台目のコンピュータがコントロール・センター・サービスのホスト・コンピュータにデータを転送してから、2台目のコンピュータにデータを転送します。
FTPアクティビティを使用してプロセス・フローを設計する前に、ソースと宛先に定義されたロケーションがあることを確認します。
FTPアクティビティは、提供するFTPコマンドのスクリプトに依存します。Oracle Warehouse Builder内でそのスクリプトを記述するか、Oracle Warehouse Builderでそのスクリプトを含むファイルを参照するかを選択できます。次の方法から1つを選択します。
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オペレーティング・システムの場合は |
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コマンド完了ステータスを指定します。正常な完了を示す最も大きい戻り値をオペレーティング・システムから入力します。オペレーティング・システムがさらに大きな値を戻した場合、コマンドが失敗したことを示します。 デフォルト値は |
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では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スクリプトに対するパスとファイルの名前を入力します。プロセス・フロー・エディタは、入力する最初の文字をセパレータと解釈します。たとえば、プロセス・フロー・エディタは次のエントリを
バックスラッシュをエスケープ文字として使用します。たとえば、プロセス・フロー・エディタは次のエントリを
|
RESULT_CODE |
アクティビティが正常に完了したかどうかを示すアクティビティ・タイプの整数の出力。 |
Success Threshold |
FTPコマンド完了ステータスを指定します。正常な完了を示す最も大きい戻り値をオペレーティング・システムから入力します。オペレーティング・システムがさらに大きな値を戻した場合、コマンドが失敗したことを示します。 デフォルト値は |
Script |
このパラメータは空白のままにします。 |
Javaクラス・アクティビティ・タイプを使用して、プロセス・フローでJavaクラスまたはJava Beanを表します。Java Beanはビルダー・ツールで視覚的に操作できる再利用可能なソフトウェア・コンポーネントです。
Javaクラス・アクティビティを使用して、Java BeanまたはJavaクラスを使用して定義された機能を利用できます。
表27-16で、Javaクラス・アクティビティのパラメータを説明します。
表27-16 Javaクラス・アクティビティ・パラメータ
パラメータ名 | 説明 |
---|---|
CLASSPATH |
Javaクラス・アクティビティの実行時に指定される |
CLASS_NAME |
プロセス・フローから呼び出すクラスの名前。 |
JAVA_OPTIONS |
JVMに渡されるオプションを表します。 |
PARAMETER_LIST |
JavaクラスまたはJava Beanに渡されるパラメータを表します。 |
RESULT_CODE |
このJavaクラスの終了コードにより戻される値を表します。 |
RUN_DIRECTORY |
Java Virtual Machine(JVM)が起動されるときの作業ディレクトリの名前を表します。 |
Javaクラス・アクティビティを含むプロセス・フローを配布するのに特別な場所は必要ありません。
注意: 次の理由がある場合、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実行可能ファイルを呼び出すオペレーティング・システム・プロセスによって実行されます。プロパティproperty.RuntimePlatform.0.NativeExecution.JavaOSProcess.executable
を設定することによって、これを上書きできます。
ファイルOWB_HOME
/bin/admin/Runtime.properties
でこのプロパティを設定します。
たとえば、次の手順を使用して特定のJDKによりJavaアクティビティを実行します。
OWB_HOME
/owb
ディレクトリに、次を含むmy_java.sh
を作成します。
#!/bin/sh echo $* >> /tmp/out.log /usr/local/packages/jdk14/jre/java $*
OWB_HOME
/bin/admin/Runtime.properties
ファイルに、次を追加します。
property.RuntimePlatform.0.NativeExecution.JavaOSProcess.executable=/oracle/owb/my_java.sh
my_java.sh
をOracle
ユーザーにより実行可能にします。
手動アクティビティを使用して、プロセス・フローを停止します。
プロセス・フローを停止した後、ユーザーはコントロール・センターまたはリポジトリ・ブラウザによって介入し、プロセス・フローを再開する必要があります。
このアクティビティを使用すると、プロセスを設計してETLプロセスを再起動またはリカバリできるようになります。
手動アクティビティは、通知アクティビティと類似していますが、手動アクティビティはOracle Workflowの実装を必要としないため、電子メールを送信しません。Oracle Workflowと対話せずに通知アクティビティと同じ結果にするには、手動アクティビティの前に電子メール・アクティビティを使用するようにしてください。
表27-17で、手動アクティビティのパラメータを説明します。
マッピング・アクティビティを使用して、マッピング・エディタで定義および構成した既存のマッピングを追加します。
マッピング・アクティビティに複数の受信推移を割り当てることができます。送信推移の場合、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マッピング・パラメータを示します。
通知アクティビティを使用すると、ETLプロセスを再開またはリカバリするプロセスを設計できます。このアクティビティはOracle Workflowと連携して機能します。通知を実装するには、Oracle Workflowのワークフロー通知も実装する必要があります。または、電子メール・アクティビティに続けて手動アクティビティを使用することも可能です。メッセージの送信方法はOracle Workflowサブシステムで決定されます。
通知アクティビティを使用するには、最初に表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制限により、実行者、優先度、タイムアウトおよびカスタム・パラメータの値のみを実行時に変更できます。 |
OMB*Plusアクティビティを使用して、プロセス・フローにOMB*Plusを表します。これにより、プロセス・フローの実行時にOMB*Plusを起動して、OMB機能を実行したり、エキスパートを呼び出すことができます。
これは特にプロセス・フロー内でマッピングを使用する場合に役立ちます。プロセス・フローの開始前にマップを配布しないでください。プロセス・フローの一部としてOMBPlusアクティビティを使用してこれらを配布できるようになりました。
たとえば、2つのマッピングを実行し、それぞれがターゲット表をロードするプロセス・フローを作成するとします。プロセス・フローの一部としてマッピングを配布できるようになります。
図27-6に、この機能を提供するマッピングを示します。
表27-21で、OMBPlusアクティビティのパラメータを説明します。
表27-21 OMBPlusアクティビティ・パラメータ
パラメータ名 | 説明 |
---|---|
PARAMETER_LIST |
1文字目の繰返しで区切られたパラメータのリストを定義します。 たとえば、/VALUE1/VALUE2/VALUE3/では、"/"文字がセパレータとして使用されています。セパレータはリストの最初と最後にも必要です。 |
RESULT_CODE |
アクティビティが正常に完了したかどうかを示すアクティビティ・タイプの整数の出力。 |
SCRIPT |
実行するOMB*Plusスクリプトを表します。 このパラメータは実行するスクリプト本文の入力にのみ使用できます。既存のスクリプトを参照するには、PARAMETER_LISTにスクリプトを指定します。たとえば、 |
SUCCESS_THRESHOLDQADB55918:closed |
OMB*Plusスクリプトの完了ステータスを指定します。スクリプト実行の正常完了を示す最も大きい戻り値を入力します。さらに大きな値が戻された場合は、コマンドが失敗したことを意味ます。デフォルト値は |
OMB*Plusスクリプトを入力して、ファイルシステム上の既存のスクリプトを実行または参照できます。スクリプトを入力するには、「構造」パネルで「アクティビティ」ノードを開き、「スクリプト」を選択します。プロパティ・インスペクタの「値」フィールドの省略記号ボタンをクリックして、「プロパティの編集」ダイアログ・ボックスにスクリプトを入力し、「OK」をクリックします。ファイルシステム上の既存のスクリプトを参照するには、parameter_listパラメータに移動し、アットマーク@に続いてフルパスを入力します。
OMBPlusアクティビティを含むプロセス・フロー用の実行モード
OMBPlusアクティビティは次のいずれかのモードで実行できます。
コントロール・センター内部(NATIVE JAVA)
データベース(Scheduler)
無効
owb/bin/admin/Runtime.properties
に設定されているプロパティ設定property.RuntimePlatform.0.NativeExecution.OMBPlus.security_constraintによりこの動作が制御されます。
ORアクティビティを使用すると、1つ以上の上位のアクティビティの完了に基づいてアクティビティを起動できます。ORアクティビティには、複数の受信推移および1つのみの無条件送信推移を割り当てることができます。
ORアクティビティはANDアクティビティと類似のセマンティックを持ちますが、相違点は、ORアクティビティは完了した最初の上位のアクティビティの正常終了、警告またはエラーの結果を伝播することです。
プロセス・フローのORアクティビティは、ダウンストリーム・アクティビティが各プロセス・フローの実行に1回のみトリガーされることを確認します。
図27-7に、ORアクティビティを含むプロセス・フローを示します。
プロセス・フロー・エディタを使用することにより、ORアクティビティを省略して、3つのマッピング・アクティビティのそれぞれからの推移を、サブプロセス・アクティビティSUBPROC1に割り当てることができます。ただし、この論理では1回のプロセス・フローの実行でSUBPROC1を3回起動することになります。これを回避するには、ORアクティビティを使用してください。
ルート・アクティビティを使用すると、アクティビティの結果を、定義した条件に基づいて特定の結果になるようにルーティングできます。これにより排他的論理和およびif-the-elseシナリオを定義できます。
ルート・アクティビティは、操作を持たず、推移の方向を変更する場合に使用します。ルート・アクティビティには、その他のアクティビティと同様に、複合条件を持つ送信推移を追加できます。ただし、このアクティビティには操作がないため、条件ではプロセス・フローのパラメータおよび変数のみを参照できます。ルート・アクティビティを指定することにより、ANDやORアクティビティの結果に影響を与えることができます。ルート・アクティビティは、独自の結果を持たないため、正常終了したものとみなされます。
このアクティビティにはパラメータはありません。
ステータスの設定アクティビティを使用して、正常終了、警告またはエラーの各ステータスを通知できます。
ステータスの設定アクティビティは、ANDアクティビティの動作を上書きするために使用できます。ANDの直前のアクティビティのいずれかがエラーを戻した場合、ANDアクティビティもエラーとして判断されることに留意してください。先行するアクティビティの結果と無関係にANDを正常終了として判断されるようにするには、そのアクティビティとANDアクティビティの間にステータスの設定アクティビティを挿入します。
SQL*PLUSアクティビティを使用すると、スクリプトをプロセス・フローに導入できます。
スクリプトの貼付けまたは入力を行うには、キャンバス上でアクティビティを選択します。「構造」パネルで「プロセス・フロー」ノード、「アクティビティ」ノード、「SQL*Plus」ノードの順に開き、SCRIPTを選択します。プロパティ・インスペクタにScriptパラメータのプロパティが表示されます。プロパティ・インスペクタの「値」フィールドにスクリプトを貼り付けるか入力します。または、ファイルシステム上の既存のスクリプトを参照するには、parameter_listに移動し、アットマーク@に続いてフルパスを入力します。
このアクティビティは広範な目的に使用できますが、一例は、「プロセス・フロー・エディタを介したマッピングのコミット」で説明しているように、SQL*PLUSアクティビティを使用してプロセス・フローにおいて複数のマッピングをコミットする方法を制御することです。
SQL*PLUSアクティビティのプロセス・フローは配布ロケーションの構成アイテムによって実行されます。
SQL*PLUSアクティビティを実行するロケーションを設定する手順は、次のとおりです。
プロジェクト・ナビゲータで、「プロセス・フロー」モジュールを展開します。
プロセス・フローを右クリックして「構成」を選択します。
プロセス・フローに対する「構成」タブが表示されます。
「構成」タブで、SQL*Plusアクティビティ・ノードを展開します。
SQLPLUSを選択します。
「パスの設定」で、「配布ロケーション」オプションをSQL*Plusアクティビティを実行するロケーションに設定します。
SQL*Plusアクティビティは、ユーザー定義アクティビティと類似していますが、次の相違点があります。
COMMANDパラメータは、自動的に導出されるため、指定できません。
${Task.Input}置換変数を使用した場合は、生成される一時ファイルの末尾は.sqlになります。
用意されている置換変数のセットが異なります。このアクティビティは、配布されたデータベース・ロケーションを使用して構成する必要があります。
置換変数は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コマンドは、FTPユーザー定義アクティビティに直接入力できません。ホーム・ディレクトリからロードされるか、そのロケーションがワークスペース管理者によって事前定義されています。
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つまでの条件付き送信推移を割り当てます。
サブプロセス内の終了アクティビティは、サブプロセス・アクティビティのみに適用され、プロセス・フローの終了ポイントとしては機能しません。
サブプロセス・アクティビティと他のアクティビティの重要な違いには、サブプロセスの内容は参照できるがその内容を親プロセス・フローでは編集できないという点があります。サブプロセスを編集するには、プロジェクト・ナビゲータで基礎となるプロセス・フローを開きます。プロセス・フローの名前の変更以外は、プロセス・フロー・エディタにより子プロセス・フローの変更が親プロセス・フローに伝播されます。
注意: プロセス・フローの名前の変更は注意してください。別のプロセス・フローで参照されるプロセス・フローの名前を変更する場合は、親プロセス・フローが無効になります。無効なサブプロセスを削除して、子プロセス・フローの新しい名前に関連付けられたサブプロセスを新たに追加する必要があります。 |
サブプロセス・アクティビティをプロセス・フローに追加する手順は次のとおりです。
プロセス・フロー・エディタのパレットから、「サブプロセス」アクティビティ・アイコンをキャンバスにドラッグ・アンド・ドロップします。
Oracle Warehouse Builderにより、プロセス・フローをサブプロセスとして選択し、追加するためのダイアログ・ボックスが表示されます。
「プロセス・フロー・モジュール」を拡張して、親プロセス・フローとして同じプロセス・フロー・パッケージから1つのプロセス・フローを選択します。
Oracle Warehouse Builderにより、プロセス・フローが親プロセス・フローのサブプロセス・アクティビティとして表示されます。
サブプロセスの内容を表示するには、サブプロセスを右クリックして、「ノードの拡張」を選択します。
プロセス・フロー・エディタにより、サブプロセスのグラフが青い枠線で囲まれて表示されます。
変換の機能をキャンバスにドロップすると、戻りパラメータが新しいパラメータとして変換と同じ名前で作成されます。変換アクティビティを使用して変換を変換ライブラリからプロセス・フローに追加すると、プロセス・フロー・エディタの「アクティビティ」パネルに変換のパラメータが表示されます。
変換アクティビティを起動する受信推移を1つ以上指定できます。送信推移については、無条件推移を1つのみ指定するか、3つの条件付き推移のいずれか1つを指定できます。
条件付き送信推移を指定する場合は、そのステータスが戻り値に基づくようにアクティビティを構成できます。「ステータスとしてリターンを使用」の詳細は、「プロセス・フロー構成のリファレンス」を参照してください。
変換に対して行った変更内容でプロセス・フローを更新するには、プロセス・フローから変換アクティビティを削除した後、変換アクティビティを再度追加してください。
パブリック変換など、配布されていない変換については、「配布ロケーション」の値を使用してアクティビティを構成する必要があります。
ユーザー定義アクティビティにより、Oracle Warehouse Builder内で定義されていないアクティビティをプロセス・フローに取り込むことができます。
ユーザー定義プロセス・アクティビティを起動する受信推移を1つ以上指定できます。送信推移については、無条件推移を1つのみ指定するか、3つの条件付き推移のいずれか1つを指定できます。
条件付き送信推移を指定する場合は、そのステータスが戻り値に基づくようにアクティビティを構成できます。「ステータスとしてリターンを使用」の詳細は、「プロセス・フロー構成のリファレンス」を参照してください。
表27-24に、ユーザー定義アクティビティに設定するパラメータを示します。
表27-24 ユーザー定義アクティビティ・パラメータ
パラメータ | 説明 |
---|---|
Command |
定義したユーザー定義プロセスを実行するコマンド。 |
Parameter List |
ユーザー定義プロセスに渡されるパラメータのリスト。 プロセス・フロー・エディタは、入力する最初の文字をセパレータと解釈します。たとえば、プロセス・フロー・エディタは次のエントリを
バックスラッシュをエスケープ文字として使用します。たとえば、プロセス・フロー・エディタは次のエントリを
表27-25にリストされている置換変数も入力できます。 |
Success Threshold |
完了ステータスを指定します。正常な完了を示す最も大きい戻り値をオペレーティング・システムから入力します。オペレーティング・システムがさらに大きな値を戻した場合、コマンドが失敗したことを示します。デフォルト値は |
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}"?と入力します。 ここでは、疑問符はセパレータです。 |
whileループを使用して、定義した条件がTRUEと評価される場合のみ1つ以上のアクティビティを実行します。
通常は、whileループを割当アクティビティに関連付けることにより、while条件を定義できます。少なくとも1つの割当アクティビティによりデータが初期化され、また少なくとも1つの割当アクティビティによってループ反復の終わりまでデータが増分されるか、再度データが変更されます。
whileループ・アクティビティを追加する際、エディタは終了ループ・アクティビティと終了ループへの推移も追加します。whileループ・アクティビティからループに含めるそれぞれのアクティビティまでの推移を作成してください。追加する送信推移については、推移を選択してオブジェクトの詳細の「条件」をクリックし、EXIT条件またはLOOP条件を推移に適用します。
ループを実行するかどうかを制御するwhile条件を定義するには、「構造」パネルで「プロセス・フロー」ノード、「アクティビティ」ノード、WHILE_LOOPノードの順に開き、Conditionを選択します。プロパティ・インスペクタにConditionのパラメータが表示されます。
表27-27で、whileループ・アクティビティのパラメータを説明します。
Webサービス・アクティビティを使用して、既存のWebサービスをプロセス・フローに追加します。Webサービスはプロジェクト・ナビゲータの「アプリケーション・サーバー」ノードか、またはグローバル・ナビゲータのパブリック・アプリケーション・サーバー・ノードの下で定義される必要があります。
Webサービス・アクティビティにより、プロセス・フローのWebサービスで定義された操作を使用できます。プロセス・フローにWebサービス・アクティビティを追加すると、複数の操作が含まれます。使用する操作を選択するように求められます。
Webサービス・アクティビティのパラメータはWebサービスにより実行される操作のタイプによって異なります。そのため、各種操作は異なるパラメータを含むことができます。表27-28で、デフォルトのWebサービスAgentWebService
のrunCCJob操作のパラメータを説明します。
表27-28 Webサービス・アクティビティのパラメータ
パラメータ | 説明 |
---|---|
Username |
プロセス・フローを実行しているワークスペース・ユーザーの名前 |
パスワード |
ユーザー名フィールドで指定したユーザーのパスワード |
Workspace |
Webサービスの実行ジョブが実行する必要のあるワークスペースの名前。 Webサービスを実行しているユーザーがワークスペース所有者ではない場合、ワークスペース名にユーザー名の接頭辞を使用します。たとえば、 |
ロケーション |
操作が配布される先のロケーションの物理名 |
Task_type |
操作のタイプ。次の値のいずれかを使用します。PLSQL、SQL_LOADER、PROCESS、SAPまたはDATA_AUDITOR。 |
Task_name |
プロセス・フローの物理名。属するプロセス・フロー・パッケージの名前でプロセス・フロー名を修飾します。たとえば、 |
Connection_string |
コントロール・センター・マネージャを実行するシステムの接続情報 |
System_params |
マッピングの実行パラメータの値、あれば、「バルク・サイズ」、「監査レベル」またはオペレーティング・モードなどです。 |
Custom_params |
Webサービスが基にするマッピングの入力パラメータの値 |
Webサービス・アクティビティをプロセス・フローで使用する手順は次のとおりです。
プロジェクト・ナビゲータでプロセス・フローをダブルクリックして、Webサービス・アクティビティを追加するプロセス・フローを開きます。
プロセス・フローがエディタに表示されます。
プロジェクト・ナビゲータから、追加するWebサービスをドラッグ・アンド・ドロップします。
「Webサービス操作」ダイアログ・ボックスが表示されます。
前の手順で選択したWebサービスに複数の操作が含まれている場合、プロセス・フローに追加するWebサービス内の操作を選択し、「OK」をクリックします。
Webサービス操作がプロセス・フローに追加されます。
Webサービス・アクティビティのパラメータを設定します。