ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionジョブ・スケジューリング・ガイド
11gリリース1(11.1.1)
B66707-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

4 BI SchedulerのVBScriptジョブとJScriptジョブのプログラミング

この章では、Oracle BI Schedulerを使用して、Oracle Business Intelligenceの機能を拡張する汎用的なスクリプトをスケジュールする方法について説明します。

スクリプトは、スタンドアロンのスクリプト・ジョブ(ジョブ・マネージャにおいて)、またはエージェントの末尾にタグ付けされるスクリプト・アクションにできます(エージェントの詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionユーザーズ・ガイド』を参照してください)。両方のタイプのスクリプトで同じスクリプト機能を使用しますが、若干の例外があります。たとえば、スクリプト・アクションはエージェントにより配信される結果セットにアクセスできますが、スタンドアロンのスクリプト・ジョブは結果セットにアクセスできません。

Oracle BI Schedulerには、実行中のスクリプトをカプセル化するスクリプト・オブジェクトが含まれています。スクリプト・オブジェクトはスクリプトを表し、スクリプトのプロパティとメソッドを公開します。そのメソッドとプロパティは、名前が暗示されているため直接アクセスできます。たとえば、JobIDプロパティにアクセスするには、Script.JobIDではなくJobIDを指定できます。


注意:

Oracle BI Schedulerのジョブ・マネージャにより定義されるエージェントとスクリプトの記述は、Windowsプラットフォームでのみサポートされ、UNIXではサポートされません。


この章では、カスタム・スクリプト・プロパティを構成する方法についてスクリプト例も含めて説明し、スクリプト・ジョブ・プロパティに関する詳細情報を提供します。内容は次のとおりです。

4.1 Oracle BI Schedulerのカスタム・スクリプト・プロパティの構成

次の手順を使用して、Oracle BI Schedulerの既存スクリプトのプロパティを変更します。

このジョブをジョブ・マネージャでスタンドアロン・ジョブとして追加するには、第3.2項「ジョブ・マネージャにおけるOracle BI Schedulerのジョブの追加」を参照してください。


注意:

プロパティを構成する前に、Oracle BI Schedulerのサーバー・コンピュータにスクリプトが存在する必要があります。


Oracle BI Schedulerのカスタム・スクリプト・プロパティを構成するには:

  1. 第6.4項「ジョブ・マネージャで利用可能なジョブ・アクション・プロパティ」に従ってカスタム・プロパティを設定します。

    たとえば、purgeSASCache.jsスクリプトの場合、次の表に記載されている値を使用します。SASCache.jsスクリプトの例を表示するには、第4.2項「キャッシュをクリアするサンプル・カスタム・スクリプトの作成」を参照してください。

    フィールド 値または設定

    スクリプト・タイプ

    JScript

    「スクリプト」/スクリプト・ファイルのチェック・ボックス

    スクリプト・ファイル

    スクリプト

    purgeSASCache.js

    パラメータ(0): ユーザー

    管理者

    パラメータ(1): パスワード

    your_password


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

4.2 キャッシュをクリアするサンプル・カスタム・スクリプトの作成

purgeSASCache.jsスクリプトを使用して、Oracle BI Serverからすべてのキャッシュを定期的にパージできます。ファイルは、次のディレクトリに保存されている必要があります。

ORACLE_INSTANCE\bifoundation\OracleBISchedulerComponent\coreapplication_obischn\scripts\common

/////////////////////////////////////////////////////////
//purgeSASCache.js
//
//Purges the cache on SAS.
//Parameter(0) - The user name to pass in to NQCMD.
//Parameter(1) - The password for the aforementioned user.
/////////////////////////////////////////////////////////
//The full path to nqcmd.exe
var nqCmd = "[$INSTALLDIR]\\server\\Bin\\nqcmd.exe";
//The data source name
var dsn = "BI Web";
//The user to execute the queries
var user = Parameter(0);
//The password of the aforementioned user
var pswd = Parameter(1);
//The ODBC procedure call for purging the cache
var sqlStatement = "{call SAPurgeAllCache()};";
//////////////////////////////////////////////////////////
//Returns a string from the file name
//////////////////////////////////////////////////////////
function GetOutput(fso, fileName)
{
    var outStream = fso.OpenTextFile(fileName, 1);
    var output = outStream.ReadAll();
    outStream.Close();
    return output;
}
//////////////////////////////////////////////////////////
// Get WshShell object and run nqCmd. Capture the output
// so that we can handle erroneous conditions.
var wshShell = new ActiveXObject("WScript.Shell");
// Create a temp file to input the SQL statement.
var fso = new ActiveXObject("Scripting.FileSystemObject");
var tempFolder = fso.GetSpecialFolder(2);
var tempInFileName = fso.GetTempName();
var tempOutFileName = fso.GetTempName();
tempInFileName = tempFolder + "\\" + tempInFileName;
tempOutFileName = tempFolder + "\\" + tempOutFileName;
var tempInFile = fso.CreateTextFile(tempInFileName, true);
tempInFile.WriteLine(sqlStatement);
tempInFile.Close();
try
{
    // execute
    var dosCmd = nqCmd + " -d \"" + dsn + "\" -u \"" + user
        + "\" -p \"" + pswd + "\" -s \"" + tempInFileName + "\"" +
        " -o \"" + tempOutFileName + "\"";
    wshShell.Run(dosCmd, 0, true);
    var output = GetOutput(fso, tempOutFileName);
    // Remove the temp files
    fso.DeleteFile(tempInFileName);
    if (fso.FileExists(tempOutFileName)) {
        fso.DeleteFile(tempOutFileName);
}
    // Check the output for any errors
    if (output.indexOf("Processed: 1 queries") == -1) {
        ExitCode = -1;
        throw Error(-1, output);
    }
    else if (output.indexOf("Encountered") != -1) {
        ExitCode = -2;
        throw Error(-2, output);
    }
        ExitCode = 0;
} catch (e) {
    if (fso.FileExists(tempInFileName)) {
        fso.DeleteFile(tempInFileName);
    }
    if (fso.FileExists(tempOutFileName)) {
        fso.DeleteFile(tempOutFileName);
    }
    throw e;
}

4.3 Oracle BI Deliversのカスタム・スクリプト・プロパティの構成

Oracle BI Deliversにおいてエージェントの「アクション」タブでスクリプトのプロパティを設定します。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionユーザーズ・ガイド』を参照してください。第3.5項「ジョブ・マネージャにおけるエージェントの変更」も参照してください。


注意:

エージェントを作成する前に、Oracle BI Schedulerのサーバー・コンピュータにスクリプトが存在する必要があります。カスタム・スクリプトを作成してから、スクリプトをコールするエージェントを作成します。第4.4項「結果をファイル・システムにコピーするサンプル・カスタム・スクリプトの作成」を参照してください。


エージェントのカスタム・スクリプト・プロパティを構成するには:

  1. Oracle BI EEのホーム・ページで、「新規」メニューをクリックしてから「エージェント」オプションを選択します。

  2. 「条件」タブを表示してから、「条件を使用」ボックスを選択します。

  3. 「作成」および「参照」をクリックし、分析を選択します。

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

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

  6. 「アクション」タブを表示します。

  7. 「新規アクションの追加」アイコンをクリックし、「サーバー・スクリプトの起動」メニュー・オプションを選択します。

    「新規アクション - サーバー・スクリプトの起動」ダイアログが表示されます。

  8. 「ドキュメント・パラメータの追加」アイコンをクリックします。

  9. パラメータの最初の行を選択し、「削除」ボタンをクリックします。

  10. 表示されているパラメータのプロパティを入力します。

    たとえば、第4.4項「結果をファイル・システムにコピーするサンプル・カスタム・スクリプトの作成」に示されたスクリプトの場合、次の表で説明する値を使用します。

    フィールド 値または設定

    Language

    JavaScript

    スクリプト・パス

    createResultfile.js

    名前

    パラメータの名前を入力します。

    プロンプト

    プロンプトを入力します。たとえば、「Result Set:」などです。

    リストから値を選択します。これによって、PDFなどの固定値がマップされます。

    「条件分析」を選択します。

    オプション

    チェック・ボックスの選択を解除します。


  11. プラス・アイコンを使用して、2番目のパラメータの新規行を表示します。

  12. 「プロンプト」フィールドにResult Set Extensionと入力します。

  13. 「値」フィールドに.pdfと入力します。

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

  15. エージェントを保存します。

    エージェントの条件付きリクエスト後にこのスクリプトが実行されます。

4.4 結果をファイル・システムにコピーするサンプル・カスタム・スクリプトの作成

この例では、エージェントの結果を別のディレクトリにコピーするOracle BI Scheduler用スクリプトを構成します。スクリプトにより、条件付きリクエストの結果を含む一時ファイルがエージェント・ログ・ディレクトリにコピーされます。JobID、InstanceIDおよびUserIDをファイル名に使用して、エージェント、各ユーザー、またはこのスクリプトを共有するその他のエージェントの各実行で、結果セットが互いを上書きしないように保証します。

このジョブをエージェントに追加するには、第4.3項「Oracle BI Deliversのカスタム・スクリプト・プロパティの構成」を参照してください。

サンプル・スクリプトでは次の値を使用します。

エージェント実行後、この例では、Oracle BI SchedulerのコンピュータにD:\OracleBI\Log\Agents\101-1208-Administrator-AgentScript1.PDFというファイルが出力されます。

このファイルには条件付きリクエストの結果がPDF形式で格納されます。

連鎖しているエージェントのすべてのスクリプト・ジョブに対し、一時ファイルへのフルパス名はParameter(0)で指定されます。

/////////////////////////////////////////////////////////////
//
// createResultFile.js
// 
// Copies the results in the temporary file to a new file name
// 
// Parameter(0) = Agent Result File Path
// Parameter(1) = Last Part of Output File Name (no path)
//
/////////////////////////////////////////////////////////////
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var fileName = GetConfigurationValue("Log Dir", "Agents") +
    "\\" + JobID + "-" + InstanceID + "-" + UserID + "-" +
    Parameter(1);
var fooFile = FSO.CopyFile(Parameter(0), fileName, true);

4.5 Oracle BI Schedulerの読取り専用スクリプト・オブジェクト・プロパティ

Oracle BI Schedulerでは、表4-1に記載されている読取り専用スクリプト・オブジェクト・プロパティがサポートされています。

表4-1 Oracle BI Schedulerの読取り専用スクリプト・オブジェクト・プロパティ

オブジェクト・プロパティ 説明 戻り値 構文

JobID

このインスタンスに関連付けられているジョブ識別番号を戻します。

long

なし

InstanceID

このインスタンスに関連付けられているインスタンス識別番号を戻します。

long

なし

ParameterCount

ジョブ・スクリプトに関連付けられているジョブ・パラメータの数を戻します。

long

なし

Parameter (index)

スクリプトに関連付けられている特定パラメータを戻します。指定された索引が0未満の場合や、ParameterCount-1より大きい場合、Parameter (index)はエラーを戻します。

string

Parameter(index)

indexは、パラメータのゼロベースの索引です。

スクリプト

現在のスクリプトを表すスクリプト・オブジェクトを戻します。このオブジェクトはCOM IDispatchインタフェースを実装し、システムに存在する他のオブジェクトのメソッドに引数として渡すことができます。COM IDispatchの実装は、実行中インスタンスの取消しイベントを処理する際に特に便利です。詳細は、第4.8.6項「RegisterCancelCommandメソッド」を参照してください。

スクリプト・オブジェクト

なし

UserID

インスタンスに関連付けられているユーザー識別番号を戻します。

string

なし


4.6 Oracle BI Schedulerの読取り/書込みスクリプト・オブジェクト・プロパティ

Oracle BI Schedulerでは、表4-2に示されている読取り/書込みスクリプト・オブジェクト・プロパティがサポートされています。

表4-2 Oracle BI Schedulerの読取り/書込みスクリプト・オブジェクト・プロパティ

オブジェクト・プロパティ 説明 戻り値

Message

実行中インスタンスのMessageプロパティを設定するか戻します。Messageプロパティには、意味のあるエラー情報を示す場合があります。この値を設定すると、現在のジョブ・スクリプト実行は停止せずに、ジョブ・インスタンスのMessageフィールドが変更されます。

JScriptのthrow()メソッドがコールされた際にこのプロパティが設定されていると、JScriptやVBScriptのエラー・オブジェクトにあるメッセージ記述に値が付加されます。

IDispatchインタフェースを実装するCOMオブジェクトは、ジョブ・スクリプト内からアクセスできます。メソッドが失敗した際にSetErrorInfo()メソッドにより適切にエラー情報が提供されると、その情報はジョブ・インスタンスのMessageフィールドに格納されます。COMオブジェクトのエラーが生成される前にMessageプロパティが設定されていると、その文字列値がCOMオブジェクトのエラー情報に付加されます。

string

Severity

インスタンス・ステータスを設定します。いずれかのSeverity定数に設定できます。詳細は、第4.7.1項「Severity定数」を参照してください。デフォルトでは、nqSeverityInformationに設定されます。

string

ExitCode

インスタンスに関連付けられているExitCodeプロパティを設定するか戻します。デフォルトは0(ゼロ)です。ExitCodeインスタンス・プロパティの説明は、第6.2.5項「ジョブ・マネージャのインスタンス・プロパティ」を参照してください。

long


4.7 Oracle BI Schedulerのスクリプト定義定数

Oracle BI Schedulerでは、次のスクリプト定義定数がサポートされています。これらの定数は新しいジョブをスケジュールするメソッドで使用します。

4.7.1 Severity定数

このトピックは、第4.7項「Oracle BI Schedulerのスクリプト定義定数」の一部です。

スクリプトで戻されるMessage(エラー・メッセージ)のSeverityプロパティでSeverity定数を使用して、ジョブ・インスタンスのステータスを判別します。表4-3で、Severity値について説明します。

表4-3 Severity定数値

説明

nqSeverityInformation

ジョブ・インスタンスの情報のみがMessageに含まれている場合、SeverityプロパティをInformationに設定します。エラー条件は反映されません。インスタンス・ステータスはCompletedに設定されます。これは、Severityが設定されていない場合のデフォルトです。

nqSeverityWarning

クリティカルでない失敗を示すテキストがMessageに含まれている場合、SeverityプロパティをWarningに設定します。インスタンス・ステータスはWarningに設定されます。

nqSeverityError

クリティカルな失敗を示すテキストがMessageに含まれている場合、SeverityプロパティをErrorに設定します。インスタンス・ステータスはFailedに設定されます。


4.7.2 DayEnum定数

このトピックは、第4.7項「Oracle BI Schedulerのスクリプト定義定数」の一部です。

DayEnum値は、スケジュール関数で月の1日から31日までの識別に使用されます。表4-4で、DayEnum値について説明します。

表4-4 DayEnum定数値

説明

nqDay1

1日

nqDay2

2日

nqDay3

3日

...

...

nqDay31

31日


4.7.3 DayOfWeekEnum定数

このトピックは、第4.7項「Oracle BI Schedulerのスクリプト定義定数」の一部です。

DayOfWeekEnum値は、スケジュール関数で曜日の識別に使用されます。表4-5で、DayOfWeekEnum値について説明します。

表4-5 DayOfWeekEnum定数値

説明

nqSunday

日曜日

nqMonday

月曜日

nqTuesday

火曜日

nqWednesday

水曜日

nqThursday

木曜日

nqFriday

金曜日

nqSaturday

土曜日


4.7.4 JobFlagsEnum定数

このトピックは、第4.7項「Oracle BI Schedulerのスクリプト定義定数」の一部です。

JobFlagsEnum値は、スクリプト・オブジェクトのスケジュール・メソッドでジョブの動作の制御に使用されます。表4-6で、JobFlagsEnum値について説明します。

表4-6 JobFlagsEnum定数値

説明

nqJobNoFlags

このフラグはジョブには特別な動作がないことを示します。

nqJobDeleteWhenDone

このフラグは、スケジュールされている実行時間が他にない場合にジョブが削除されることを示します。

nqJobDisabled

このフラグはジョブが無効であることを示します。スケジュールされた時間にジョブが実行されないようにする際に役立ちます。

nqJobHasEndDate

このフラグはジョブに有効な終了日があることを示します。

nqJobExecuteWhenMissed

このフラグは、ジョブが開始する際になんらかの理由でOracle BI Schedulerが停止している場合、Oracle BI Schedulerが再び起動した際にジョブが実行されることを示します。

nqJobDeleteScriptWhenDone

このフラグが設定されていてジョブが削除されると、ジョブに関連付けられているスクリプトは削除されます。これは、nqJobScriptContainsPathフラグでのみ有効です。

nqJobScriptContainsPath

このフラグは、ジョブに関連付けられているスクリプトに、実際のスクリプト・コードがあるファイルへのパスが含まれていることを示します。

nqJobStartNow

このフラグが設定されていると、開始日と開始時間は無視されます。かわりに、これらのフィールドはOracle BI Schedulerの現在の時間に設定されます。


4.7.5 MonthEnum定数

このトピックは、第4.7項「Oracle BI Schedulerのスクリプト定義定数」の一部です。

MonthEnum値は、スケジュール関数で月の識別に使用されます。表4-7で、MonthEnum値について説明します。

表4-7 MonthEnum定数値

説明

nqJanuary

1月

nqFebruary

2月

nqMarch

3月

nqApril

4月

nqMay

5月

nqJune

6月

nqJuly

7月

nqAugust

8月

nqSeptember

9月

nqOctober

10月

nqNovember

11月

nqDecember

12月


4.7.6 OccurrenceEnum定数

このトピックは、第4.7項「Oracle BI Schedulerのスクリプト定義定数」の一部です。

OccurrenceEnum値は、スケジュール関数で指定された日の繰返しの識別に使用されます。表4-8で、OccurrenceEnum値について説明しまです。

表4-8 OccurrenceEnum定数値

説明

nqFirst

1度目の繰返し

nqSecond

2度目の繰返し

nqThird

3度目の繰返し

nqFourth

4度目の繰返し

nqLast

最後の繰返し


4.8 Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント

プログラムを記述する際、第4章「BI SchedulerのVBScriptジョブとJScriptジョブのプログラミング」で説明されているように、Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベントを使用します。次の各項でメソッドとイベントについて説明します。

4.8.1 CreateArrayメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

配列オブジェクトを作成します。

使用方法: JScriptのローカル配列オブジェクトはScriptメソッドに直接渡すことができないため、このメソッドがJScript専用で用意されています。このメソッドをコールして、配列オブジェクトを作成し、配列を引数として受け取るScriptメソッドにその配列オブジェクトを渡します。

構文1: Set array = CreateArray ()

構文2: Set array = CreateArray (size)

構文3: Set array = CreateArray (element 0, element 1, ..., element n)

異なる構文に応じて、配列は次のように作成されます。

  • 構文1では、サイズが0(ゼロ)の配列が作成されます。

  • 構文2では、指定されたサイズで配列が作成されます。

  • 構文3では、指定された要素が設定されて配列が作成されます。

例4-1 例

var i;
var array1= CreateArray(2);
for (i = 0; i < array1.Size; i++)
{
   array1(i) = i;
}

   array1.Resize(4);
for (i = 2; i < array1.Size; i++)
{
   array1(i) = i;
}

var array2 = CreateArray(0, 1, 2,3);
for (i = 0; i < array2.Size; i++)
{
   if (array1(i) != array2(i))
   break;
}

引数: CreateArrayメソッドの引数については、表4-9を参照してください。

戻り値: 配列オブジェクトを戻します。

表4-9 CreateArrayメソッドの引数

引数 説明

size

配列の初期サイズを指定するロング値です。

element0 … elementn

配列に設定する値です。これによって、下限が0(ゼロ)で上限がnである配列が作成されます。


4.8.2 DeregisterCancelCommandメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

以前に登録された取消しメソッドの登録を解除します。

使用方法: このメソッドをコールして、長時間の処理が正常に完了した後で、最近登録した取消しメソッドの登録を解除します。スクリプトが取り消された場合、このメソッドをコールする必要はありません。

構文: DeregisterCancelCommand

4.8.3 GetConfigurationValueメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

Oracle BI Schedulerのルート・レジストリ・エントリに対する構成の値を戻します。

使用方法: Oracle BI Schedulerに対するレジストリ設定の文字列値を戻します。configKeysubkeyPathの文字列は、レジストリにあるそれらの文字列と同一にする必要があります。

構文: value = GetConfigurationValue(configKey [, subkeyPath])

引数: GetConfigurationValueメソッドの引数については、表4-10を参照してください。

戻り値: 文字列値を戻します。

表4-10 GetConfigurationValueメソッドの引数

引数 説明

configKey

戻すレジストリ・キー名を指定する文字列です。

subkeyPath

(オプション)Oracle BI Schedulerのルート・パスの下のレジストリ・パスを指定する文字列値です。


4.8.4 GetTempFileNameメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

一時ファイルの名前を戻します。

使用方法: GetTempFileName()ではファイルを作成しません。ファイル作成で使用する一時ファイルの名前を指定するのみです。スクリプトが終了しても、ジョブ・スクリプトで作成したファイルは自動的に削除されません。

構文: tfname = GetTempFileName()

戻り値: 文字列値を戻します。

4.8.5 LaunchProcessメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

コマンドラインを新しいプロセスで実行します。

使用方法: このメソッドをコールして、コマンドラインを新しいプロセスで実行します。wait引数がTrueに設定されていると、プロセスで返された終了コードをこのメソッドで返します。

構文: exitcode = LaunchProcess ( commandLine [, wait, terminateOnCancel] )

引数: LaunchProcessメソッドの引数については、表4-11を参照してください。

戻り値: ロング値を戻します。

表4-11 LaunchProcessメソッドの引数

引数 説明

commandLine

実行するコマンドラインを指定する文字列です。

wait

(オプション)プロセスが終了するのをメソッドが待機するかどうかを指定するブール値です。デフォルトは「True」です。

terminateOnCancel

(オプション)スクリプトが取り消された際にメソッドでプロセスを終了させるかどうかを指定するブール値です。デフォルトは「True」です。


4.8.6 RegisterCancelCommandメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

スクリプトが取り消された際にコールされるメソッドを登録します。

使用方法: オブジェクトのメソッドが完了するのに時間がかかる場合があります。コールが戻る前にジョブが取り消されると、スクリプト・エンジンはコールが戻るまで待機する必要があります。これは数時間かかり、リソースを制限する場合があります。スクリプトが取り消されるとスクリプト・エンジンにより非同期にコールされるメソッドを登録することで、このメソッドにより問題が解決します。

長時間の処理を実行するメソッドをコールする前に、取消しメソッドを登録する必要があります。メソッドが戻ったら、DeregisterCancelCommand()をコールすることで取消しメソッドの登録を解除する必要があります。

COMオブジェクトの実装の詳細をコール側から隠し、COMオブジェクト自体で取消しコマンドのすべての登録と登録解除を処理することをお薦めします。スクリプト・オブジェクトがIDispatchインタフェースを実装しているので、スクリプト・オブジェクトのインスタンスをCOMオブジェクトに渡してから、RegisterCancelCommand()とDeregisterCancelCommand()のメソッドをコールします。

構文: RegisterCancelCommand source, methodName [, arguments]...

引数: RegisterCancelCommandメソッドの引数については、表4-12を参照してください。

表4-12 RegisterCancelCommandメソッドの引数

引数 説明

source

登録されているメソッドを持つオブジェクトです。

methodName

メソッドの名前を指定する文字列です。

arguments

メソッドに渡されるオプション引数です。


4.8.7 ScheduleJobDailyメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

新しいジョブを日次トリガーでスケジュールします。

構文: ScheduleJobDaily name, description, scriptType, script, startDate, startTime, endTime, minutesInterval, daysInterval [, parameters, flags, maxRunTimeMS, maxConcurrentInstances, endDate]

引数: ScheduleJobDailyメソッドの引数については、表4-13を参照してください。

表4-13 ScheduleJobDailyメソッドの引数

引数 説明

name

ジョブの名前を指定する文字列です。

description

ジョブの説明を指定する文字列です。

scriptType

ジョブに関連付けられているスクリプト・タイプ(VBScriptまたはJScript)を指定する文字列です。

script

(オプション)ジョブに関連付けられているスクリプト・コードまたはパス(nqJobScriptContainsPathフラグが設定されている場合)を指定する文字列です。

startDate

ジョブがアクティブ化される日付を指定する日付値です。

startTime

ジョブがアクティブ化される時間を指定する日付値です。

endTime

ジョブが非アクティブ化される時間を指定する日付値です。

minutesInterval

連続するジョブの実行間隔を分単位で指定するロング値です。

daysInterval

ジョブの起動間隔を日数で指定する整数値です。

parameters

(オプション)スクリプトに渡すパラメータ値の文字列配列です。デフォルトは空の配列です。

flags

(オプション)ジョブに関連付けられているフラグを指定するロング値です。有効な設定については、第4.7.4項「JobFlagsEnum定数」を参照してください。デフォルトはnqJobNoFlagsです。

maxRunTimeMS

(オプション)ジョブを停止するまでに実行する最長時間をミリ秒単位で指定するロング値です。デフォルトは0(ゼロ)で、この場合ジョブを無期限に実行できることを意味します。

maxConcurrentInstances

(オプション)このジョブの同時実行インスタンスの最大数を指定するロング値です。デフォルトは0(ゼロ)で、この場合制限がないことを意味します。

endDate

(オプション)ジョブが非アクティブ化される時間を指定する日付値です。


4.8.8 ScheduleJobMonthlyDateメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

新しいジョブを指定月の指定日のトリガーでスケジュールします。

構文: ScheduleJobMonthlyDate name, description, scriptType, script, startDate, startTime, endTime, minutesInterval, whichDays, whichMonths [, parameters, flags, maxRunTimeMS, maxConcurrentInstances, endDate]

引数: ScheduleJobMonthlyDateメソッドの引数については、表4-14を参照してください。

表4-14 ScheduleJobMonthlyDateメソッドの引数

引数 説明

name

ジョブの名前を指定する文字列です。

description

ジョブの説明を指定する文字列です。

scriptType

ジョブに関連付けられているスクリプト・タイプ(VBScriptまたはJScript)を指定する文字列です。

script

(オプション)ジョブに関連付けられているスクリプト・コードまたはパス(nqJobScriptContainsPathフラグが設定されている場合)を指定する文字列です。

startDate

ジョブがアクティブ化される日付を指定する日付値です。

startTime

ジョブがアクティブ化される時間を指定する日付値です。

endTime

ジョブが非アクティブ化される時間を指定する日付値です。

minutesInterval

連続するジョブの実行間隔を分単位で指定するロング値です。

whichDays

ジョブを実行する月の日を指定するロング値です。有効な設定については、第4.7.2項「DayEnum定数」を参照してください。

whichMonths

ジョブを実行する月を指定する整数値です。有効な設定については、第4.7.5項「MonthEnum定数」を参照してください。

parameters

(オプション)スクリプトに渡すパラメータ値の文字列配列です。デフォルトは空の配列です。

flags

(オプション)ジョブに関連付けられているフラグを指定するロング値です。有効な設定については、第4.7.4項「JobFlagsEnum定数」を参照してください。デフォルトはnqJobNoFlagsです。

maxRunTimeMS

(オプション)ジョブを停止するまでに実行する最長時間をミリ秒単位で指定するロング値です。デフォルトは0(ゼロ)で、この場合ジョブを無期限に実行できることを意味します。

maxConcurrentInstances

(オプション)このジョブの同時実行インスタンスの最大数を指定するロング値です。デフォルトは0(ゼロ)で、この場合制限がないことを意味します。

endDate

(オプション)ジョブが非アクティブ化される時間を指定する日付値です。


4.8.9 ScheduleJobMonthlyDOWメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

新しいジョブをDOW(指定月の指定曜日)トリガーでスケジュールします。

構文: ScheduleJobMonthlyDOW name, description, scriptType, script, startDate, startTime, endTime, minutesInterval, whichOccurrences, whichDays, whichMonths [, parameters, flags, maxRunTimeMS, maxConcurrentInstances, endDate]

引数: ScheduleJobMonthlyDOWメソッドの引数については、表4-15を参照してください。

表4-15 ScheduleJobMonthlyDOWメソッドの引数

引数 説明

name

ジョブの名前を指定する文字列です。

description

ジョブの説明を指定する文字列です。

scriptType

ジョブに関連付けられているスクリプト・タイプ(VBScriptまたはJScript)を指定する文字列です。

script

(オプション)ジョブに関連付けられているスクリプト・コードまたはパス(nqJobScriptContainsPathフラグが設定されている場合)を指定する文字列です。

startDate

ジョブがアクティブ化される日付を指定する日付値です。

startTime

ジョブがアクティブ化される時間を指定する日付値です。

endTime

ジョブが非アクティブ化される時間を指定する日付値です。

minutesInterval

連続するジョブの実行間隔を分単位で指定するロング値です。

whichOccurrences

ジョブを実行する曜日の繰返しを指定する整数値です。有効な設定については、第4.7.2項「DayEnum定数」を参照してください。

whichDays

ジョブを実行する曜日を指定する整数値です。有効な設定については、第4.7.3項「DayOfWeekEnum定数」を参照してください。

whichMonths

ジョブを実行する月を指定する整数値です。有効な設定については、第4.7.5項「MonthEnum定数」を参照してください。

parameters

(オプション)スクリプトに渡すパラメータ値の文字列配列です。デフォルトは空の配列です。

flags

(オプション)ジョブに関連付けられているフラグを指定するロング値です。有効な設定については、第4.7.4項「JobFlagsEnum定数」を参照してください。デフォルトはnqJobNoFlagsです。

maxRunTimeMS

(オプション)ジョブを停止するまでに実行する最長時間をミリ秒単位で指定するロング値です。デフォルトは0(ゼロ)で、この場合ジョブを無期限に実行できることを意味します。

maxConcurrentInstances

(オプション)このジョブの同時実行インスタンスの最大数を指定するロング値です。デフォルトは0(ゼロ)で、この場合制限がないことを意味します。

endDate

(オプション)ジョブが非アクティブ化される時間を指定する日付値です。


4.8.10 ScheduleJobNowメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

新しいジョブを即時実行トリガーでスケジュールします。

構文: ScheduleJobNow name, description, scriptType, script [, parameters, flags, maxRunTimeMS]

引数: ScheduleJobNowメソッドの引数については、表4-16を参照してください。

表4-16 ScheduleJobNowメソッドの引数

引数 説明

name

ジョブの名前を指定する文字列です。

description

ジョブの説明を指定する文字列です。

scriptType

ジョブに関連付けられているスクリプト・タイプ(VBScriptまたはJScript)を指定する文字列です。

script

(オプション)ジョブに関連付けられているスクリプト・コードまたはパス(nqJobScriptContainsPathフラグが設定されている場合)を指定する文字列です。

parameters

(オプション)スクリプトに渡すパラメータ値の文字列配列です。デフォルトは空の配列です。

flags

(オプション)ジョブに関連付けられているフラグを指定するロング値です。有効な設定については、第4.7.4項「JobFlagsEnum定数」を参照してください。デフォルトはnqJobNoFlagsです。

maxRunTimeMS

(オプション)ジョブを停止するまでに実行する最長時間をミリ秒単位で指定するロング値です。デフォルトは0(ゼロ)で、この場合ジョブを無期限に実行できることを意味します。


4.8.11 ScheduleJobOnceメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

新しいジョブを1回実行トリガーでスケジュールします。

構文: ScheduleJobOnce name, description, scriptType, script, startDate, startTime [, parameters, flags, maxRunTimeMS]

引数: ScheduleJobOnceメソッドの引数については、表4-17を参照してください。

表4-17 ScheduleJobOnceメソッドの引数

引数 説明

name

ジョブの名前を指定する文字列です。

description

ジョブの説明を指定する文字列です。

scriptType

ジョブに関連付けられているスクリプト・タイプ(VBScriptまたはJScript)を指定する文字列です。

script

(オプション)ジョブに関連付けられているスクリプト・コードまたはパス(nqJobScriptContainsPathフラグが設定されている場合)を指定する文字列です。

startDate

ジョブがアクティブ化される日付を指定する日付値です。

startTime

ジョブがアクティブ化される時間を指定する日付値です。

parameters

(オプション)スクリプトに渡すパラメータ値の文字列配列です。デフォルトは空の配列です。

flags

(オプション)ジョブに関連付けられているフラグを指定するロング値です。有効な設定については、第4.7.4項「JobFlagsEnum定数」を参照してください。デフォルトはnqJobNoFlagです。

maxRunTimeMS

(オプション)ジョブを停止するまでに実行する最長時間をミリ秒単位で指定するロング値です。デフォルトは0(ゼロ)で、この場合ジョブを無期限に実行できることを意味します。


4.8.12 ScheduleJobWeeklyメソッド

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

新しいジョブを週次トリガーでスケジュールします。

構文: ScheduleJobWeekly name, description, scriptType, script, startDate, startTime, endTime, minutesInterval, weeksInterval, whichDays [, parameters, flags, maxRunTimeMS, maxConcurrentInstances, endDate]

引数: ScheduleJobWeeklyメソッドの引数については、表4-18を参照してください。

表4-18 ScheduleJobWeeklyメソッドの引数

引数 説明

name

ジョブの名前を指定する文字列です。

description

ジョブの説明を指定する文字列です。

scriptType

ジョブに関連付けられているスクリプト・タイプ(VBScriptまたはJScript)を指定する文字列です。

script

(オプション)ジョブに関連付けられているスクリプト・コードまたはパス(nqJobScriptContainsPathフラグが設定されている場合)を指定する文字列です。

startDate

ジョブがアクティブ化される日付を指定する日付値です。

startTime

ジョブがアクティブ化される時間を指定する日付値です。

endTime

ジョブが非アクティブ化される時間を指定する日付値です。

minutesInterval

連続するジョブの実行間隔を分単位で指定するロング値です。

weeksInterval

ジョブの起動間隔を週数で指定するロング値です。

whichDays

ジョブを実行する曜日を指定する整数値です。有効な設定については、第4.7.3項「DayOfWeekEnum定数」を参照してください。

parameters

(オプション)スクリプトに渡すパラメータ値の文字列配列です。デフォルトは空の配列です。

flags

(オプション)ジョブに関連付けられているフラグを指定するロング値です。有効な設定については、第4.7.4項「JobFlagsEnum定数」を参照してください。デフォルトはnqJobNoFlagsです。

maxRunTimeMS

(オプション)ジョブを停止するまでに実行する最長時間をミリ秒単位で指定するロング値です。デフォルトは0(ゼロ)で、この場合ジョブを無期限に実行できることを意味します。

maxConcurrentInstances

(オプション)このジョブの同時実行インスタンスの最大数を指定するロング値です。デフォルトは0(ゼロ)で、この場合制限がないことを意味します。

endDate

(オプション)ジョブが非アクティブ化される時間を指定する日付値です。


4.8.13 OnErrorイベント

このトピックは、第4.8項「Oracle BI Schedulerのスクリプト・オブジェクトのメソッドとイベント」の一部です。

スクリプト実行中にスクリプト・エンジンでランタイム・エラーが生じた際に発生します。これはクリーンアップのためのものですが、try/catchブロックをJScriptで活用したり適切なエラー処理をVBScriptで行うことが、このイベントを使用するよりも優れた代替手段になる場合も多くあります。

使用方法: スクリプト実行中にスクリプト・エンジンでランタイム・エラーが発生すると、スクリプト・エンジンはこのプロシージャをコールします。スクリプトが終了する前に、一時ファイルの削除やリソースの解放などのクリーンアップ処理を実行するように、このプロシージャをスクリプトで定義します。

構文: OnError

例4-2 VBScriptの使用方法:

Public Sub OnError()
   LogFile.WriteLine "Encountered a runtime error in the script."
LogFile.Close
End Sub

例4-3 JScriptの使用方法:

function OnError()
{
   LogFile.WriteLine("Encountered a runtime error in the
   script.");
LogFile.Close();

4.9 JScriptジョブとVBScriptジョブの失敗のトラブルシューティング

nQSError: 66001] ActiveXスクリプト・エンジンの作成に失敗しました。のエラーでJScriptやVBScriptのジョブが失敗した場合、必要なスクリプト・エンジン(VBScriptまたはJScript)がこのコンピュータで利用できないか壊れています。

VBScriptが失敗した場合はregsvr32 vbscript.dllコマンドを、JScriptが失敗した場合はregsvr32 jscript.dllコマンドをそれぞれ実行することでスクリプトDLLファイルをWindowsに再登録できます。失敗したモジュールが見つかりませんでしたのメッセージが戻された場合、Windowsインストールを修復して、足りないDLLファイルを再設定する必要があります。リストア・ポイントにロールバックするか、オペレーティング・システム・インストール用オリジナル・ディスクを使用して修復することでこれを実現できます。