SchedulerServiceサービス

次の語が、SchedulerServiceサービスに関連付けられています。

  • エージェント (またはiBot) - プレゼンテーション・サービス・カタログ・オブジェクトです。

  • Job - スケジューラ・オブジェクトです。エージェントには、BI_PLATFORMスキーマ内に格納された少なくとも1つのジョブがあります。

  • JobInstances - アクティブまたは完了したジョブを表すスケジューラ・オブジェクトです。BI_PLATFORMスキーマ内に格納されます。

このサービスを使用すると、スケジューラ・オブジェクトおよびジョブ・インスタンスの詳細の一覧を表示できます。また、ジョブ・インスタンスをパージおよび削除できます(ジョブを削除するとジョブ・インスタンスが自動的にパージされます)。エージェントを削除すると、自動的にジョブが削除されます。

このサービスを使用するには、ユーザー・セッションIDを取得する必要があります。これにより、ジョブまたはジョブ・インスタンスの参照IDの一覧が戻され、ジョブの詳細を取得または削除するために使用します。SAWセッション・サービスのlogon()メソッドを使用して、ユーザー・セッションIDを取得してください(詳細は、「logon()メソッド」を参照)。次に、フィルタを適用して、個別のジョブ参照IDおよびジョブ・インスタンスIDを指定します。

SchedulerServiceサービス・メソッドの使用方法の例は、「SchedulerService APIの使用方法の例」を参照してください。

クライアントには、Access SOAP権限およびAccess SchedulerService Service権限が付与されている必要があります。これにより、SchedulerServiceサービスAPI内のメソッドをコールできます。これらの権限は、デフォルトでBIConsumerアプリケーション・ロールに付与されます。これらの権限は、プレゼンテーション・サービスの「管理」にある「権限の管理」ページを使用して管理します。

この項で説明するメソッドは、特に明記のないかぎり、同期します。

「iBotServiceサービス」にサポートされているメソッドが記載されています。

メソッド名 説明

getJobReferences()メソッド

指定されたフィルタ引数内の選択基準に一致するジョブの一覧が戻されます。

getJobInstanceReferences()メソッド

指定されたフィルタ引数内の選択基準に一致するジョブ・インスタンスの一覧を戻します。

getJob()メソッド

指定されたジョブ参照のジョブ定義を戻します。

getJobInstance()メソッド

指定されたジョブ参照のジョブ・インスタンスの詳細を戻します。

cancelJobInstance()メソッド

指定されたジョブ参照のジョブ・インスタンスの実行の取消をリクエストします。

removeJobs()メソッド

指定されたジョブ参照のジョブ定義の削除をリクエストします。

purgeJobInstances()メソッド

指定されたジョブ参照の既存のジョブ・インスタンスのパージをリクエストします。

getJobReferences()メソッド

getJobReferences()メソッドを使用して、フィルタに基づきジョブ参照のリストを取得します。

戻された参照はライブではなく、ジョブまたはジョブ参照が削除されると無効化します。

シグネチャ

JobReference[] getJobReferences(List[] JobFilter, String SessionID);

引数 説明

List[] JobFilter

一致するジョブ参照を戻す選択基準です。空のJobFilterが、ジョブ参照のすべての結果に戻されます。フィルタは、ユーザーがコールするコンテキストに適用されます。つまり、ユーザーは、テナント内でジョブのリスニングに制限され、ジョブに対応するエージェントのプレゼンテーション・サービス・カタログ許可が必要ありません。

詳細は、「JobFilter構造体」および「JobReferenceAndInstanceReferences構造体」を参照してください。

String SessionID

セッションIDを指定します。これは通常ログイン・メソッドにより戻されます。SOAPクライアント・エンジンがHTTP Cookieを処理できる場合、セッションIDは省略するか、nullに設定することができます。セッションIDが指定されていない場合、すべてのJobReferencesが戻されます。

getJobInstanceReferences()メソッド

getJobInstanceReferences()メソッドを使用して、ジョブ・インスタンスのリストを取得します。これは、実行中、取消済または完了済のジョブに対応しています。

JobInstanceFilterには、1つ以上のジョブ参照が含まれている必要があります(不明なジョブ参照は無視されます)。

フィルタを満たすジョブ・インスタンスに関連付けられた各ジョブの一覧に構造体が戻されます。たとえば、メソッドが3つのジョブ参照を指定するJobInstanceFilterで起動され、2つのジョブがジョブ・インスタンスに関連付けられていることが判明した場合、2つのJobReferenceAndInstanceReferences構造体がリストに戻されます。

戻される構造体およびジョブ・インスタンスの数に制限はありません。このメソッドは高いパフォーマンスが必要なため、ジョブ・ステータスを効率的に呼び出すように最適化する必要があります。

参照はライブではなく、ジョブまたはジョブ参照が削除または取り消されると無効になります。

次に示すプロパティは、ジョブ・インスタンス参照を一覧表示する場合に適用されます。

  • JobReferenceの一覧 [必須]。詳細は、「JobReferenceAndInstanceReferences構造体」を参照してください。

  • JobInstanceStatus [オプション]。詳細は、「JobInstanceStatus列挙」を参照してください。

  • JobFilter、JobInstanceFilterおよびPurgeJobInstancesFilterプロパティは、選択条件です。次のように使用します。

    • フィルタは、常に現在のユーザーのコンテクストに適用されます。

    • フィルタ内のプロパティは選択条件です。

    • フィルタおよびそのプロパティは、スキーマに基づいて移入される必要があります。

    • 選択条件が有効だが、現在のユーザーに表示されないジョブが戻される場合、ジョブは正常に実行されます。

    • フィルタ内のすべてのプロパティは、選択条件(論理和)として使用されます。

    • フィルタ条件は、レクエストが処理されたときにサーバーにより適用されます。

    詳細は、「JobFilter構造体」「JobInstanceFilter構造体」および「PurgeJobInstancesFilter構造体」を参照してください。

シグネチャ

JobReferenceAndInstanceReferences[] getJobInstanceReferences(Array JobInstanceFilter, String SessionID);

引数 説明

JobInstanceFilterフィルタ

どのJobInstanceReferencesを戻するかを決定する選択基準を指定します。詳細は、「JobInstanceFilter構造体」および「JobReferenceAndInstanceReferences構造体」を参照してください。

String SessionID

セッションIDを指定します。これは通常ログオン・メソッドにより戻されます。SOAPクライアント・エンジンがHTTP Cookieを処理できる場合、セッションIDは省略するか、nullに設定することができます。

getJob()メソッド

getJob()メソッドを使用して、指定されたジョブ参照のジョブ定義を取得します。

存在しないジョブを取得しようとすると、「ジョブが見つかりません。」エラーが発生します。

シグネチャ

Job[] getJob(String JobReference, String SessionID);

引数 説明

String JobReference

一意のジョブ識別子を指定します。詳細は、「Job構造体」を参照してください。

String SessionID

セッションIDを指定します。これは通常ログオン・メソッドにより戻されます。SOAPクライアント・エンジンがHTTP Cookieを処理できる場合、セッションIDは省略するか、nullに設定することができます。

getJobInstance()メソッド

getJobInstance()メソッドを使用して、指定されたジョブ・インスタンス参照のジョブ・インスタンス詳細を取得します。

存在しないジョブの取得を試みると、ジョブ・インスタンスが見つかりませんエラーが発生します。

シグネチャ

JobInstance[] getJobInstance(String JobReference, String JobInstanceReference, String SessionID);

引数 説明

String JobReference

一意のジョブ識別子を指定します。詳細は、「JobInstance構造体」を参照してください。

String JobInstanceReference

一意のジョブ・インスタンス識別子を指定します。

String SessionID

セッションIDを指定します。これは通常ログオン・メソッドにより戻されます。SOAPクライアント・エンジンがHTTP Cookieを処理できる場合、セッションIDは省略するか、nullに設定することができます。

cancelJobInstance()メソッド

cancelJobInstance()メソッドを使用して、既存のジョブ・インスタンスへの参照が指定された場合、ジョブ・インスタンスの実行の取消をリクエストします。

正常に戻されると、取消のリクエストが受け入れられたことを示します。getJobInstanceReferences操作(ジョブ参照または状態などの適切なフィルタを使用)またはgetJobInstance操作(JobInstanceStatusプロパティのチェックも含む)を使用して、取消が完了したかどうか確認する必要があります。

実行中ではないジョブ・インスタンスの取消には効果がありません。存在しないジョブを取り消すと、「ジョブ・インスタンスが見つかりません。」エラーが発生します。

シグネチャ

Boolean cancelJobInstance(String JobReference, String JobInstanceReference, String SessionID);

引数 説明

String JobReference

一意のジョブ識別子を指定します。

String JobInstanceReference

一意のジョブ・インスタンス識別子を指定します。詳細は、「JobReferenceAndInstanceReferences構造体」を参照してください。

String SessionID

セッションIDを指定します。これは通常ログオン・メソッドにより戻されます。SOAPクライアント・エンジンがHTTP Cookieを処理できる場合、セッションIDは省略するか、nullに設定することができます。

removeJobs()メソッド

removeJobs()メソッドを使用して、ジョブ参照の一覧で与えられた関連付けられたジョブを削除します。

存在しないジョブの削除を試みると、その操作は無視されログに記載されます。実際に削除されたジョブ数が返されます。

シグネチャ

Unsigned Integer removeJobs(List JobReference[], String SessionID);

引数 説明

List JobReference[]

削除されたジョブのジョブIDを指定します。詳細は、「JobReferenceAndInstanceReferences構造体」を参照してください。

String SessionID

セッションIDを指定します。これは通常ログオン・メソッドにより戻されます。SOAPクライアント・エンジンがHTTP Cookieを処理できる場合、セッションIDは省略するか、nullに設定することができます。

purgeJobInstances()メソッド

purgeJobInstances()メソッドを使用して、フィルタに基づきジョブ・インスタンスをパージします。

purgeJobInstancesFilteでは、ジョブ参照またはユーザーIDの移入済リストを保持している必要があります。これが保持されていない場合、「選択が無効です」 SOAPエラーが発生します。存在しないジョブ参照またはユーザーIDのパージを試みると、その操作は無視されログに記載されます。

次に示すプロパティは、ジョブ・インスタンスをパージする場合に適用されます。

  • 次のいずれかを選択します。[必須]

    • ジョブ参照の一覧[オプション]。

    • ユーザーIDの一覧[オプション]。

シグネチャ

Void purgeJobinstances(List[] PurgeJobInstancesFilter, String SessionID);

引数 説明

List[] PurgeJobInstancesFilter

パージするジョブ参照で使用するフィルタ・プロパティを指定します。詳細は、「PurgeJobInstancesFilter構造体」を参照してください。

String SessionID

セッションIDを指定します。これは通常ログオン・メソッドにより戻されます。SOAPクライアント・エンジンがHTTP Cookieを処理できる場合、セッションIDは省略するか、nullに設定することができます。

SchedulerService APIの使用方法の例

この項は、読者にJavaおよびSOAPベースのWebサービスの知識があることを前提としています。次のJavaコードは、APIの使用方法について説明します。

例 - セッションおよびスケジューラ・サービスの作成

ここで説明するすべてのサービスと同様に、スケジューラ・サービスを使用する前にSAWSessionを確立する必要があります。次に、サービス・エンドポイントへのハンドルをインスタンス化します。

SAWSessionService sessionService = new SAWSessionService();

SAWSessionServiceSoap sessionServiceSoap = sessionService.getSAWSessionServiceSoap();

String sessionId = sessionServiceSoap.logon("<USER_NAME>", "<PASSWORD>");
 
SchedulerService schedulerService = new SchedulerService();

SchedulerServiceSoap schedulerServiceSoap = schedulerService.getSchedulerServiceSoap();

例 - ユーザーのジョブ参照の検索およびジョブ名の表示

ユーザーのジョブ参照を検索し、ジョブ名を表示するためのコード例。

次の例では、「例 - セッションおよびスケジューラ・サービスの作成」に記載されているコードに基づいて、セッションおよびサービスを作成します。

JobFilter jobFilter = new JobFilter();
 
jobFilter.getUserID().add("<USER_ID>");
 
List<Long> jobRefs = schedulerServiceSoap.getJobReferences(jobFilter, sessionId);
 
for (long jobRef : jobRefs) 
   {
    Job job = schedulerServiceSoap.getJob(jobRef, sessionId);
    System.out.println("Name = " + job.getName());
   }

例 - 指定された2つのジョブ参照のジョブ・インスタンスの検索

指定された2つのジョブ参照のジョブ・インスタンを検索するためのコード例。

次の例では、「例 - セッションおよびスケジューラ・サービスの作成」に記載されているコードに基づいて、セッションおよびサービスを作成します。

// Create Job Instance Filter
JobInstanceFilter jobInstanceFilter = new JobInstanceFilter(); 
jobInstanceFilter.getJobReference().add(<JOB_REFERENCE_1>);
jobInstanceFilter.getJobReference().add(<JOB_REFERENCE_2>);
jobInstanceFilter.setJobInstanceStatus(null);

List<JobReferenceAndInstanceReferences> listJobRefAndInstanceRefs = schedulerServiceSoap.getJobInstanceReferences(jobInstanceFilter, sessionId);

System.out.println("Number of Jobs with Instances found: " + listJobRefAndInstanceRefs.size());
for (JobReferenceAndInstanceReferences jobRefAndInstanceRefs : listJobRefAndInstanceRefs) 
   {
    System.out.println("Job Ref = " + 
    jobRefAndInstanceRefs.getJobReference() + ", Job Instance Refs = " +
    jobRefAndInstanceRefs.getJobInstanceReference());
   }

例 - ジョブ参照に関連付けられたすべてのジョブ・インスタンスの取消

この例では、指定されたジョブ参照のジョブのすべてのジョブ・インスタンスを取り消します。

次の例でも、「例 - セッションおよびスケジューラ・サービスの作成」に記載されているコードに基づいて、セッションおよびサービスを作成します。

// Create Job Instance Filter
JobInstanceFilter jobInstanceFilter = new JobInstanceFilter();
jobInstanceFilter.getJobReference().add(<JOB_REFERENCE>);

// Get JobInstance References
List<JobReferenceAndInstanceReferences> listJobRefAndInstanceRefs = schedulerServiceSoap.getJobInstanceReferences(jobInstanceFilter, sessionId);

// Cancel all the obtained Job Instances
for (JobReferenceAndInstanceReferences jobRefAndInstanceRefs : listJobRefAndInstanceRefs) 
{
for (BigInteger jobInstanceRef : jobRefAndInstanceRefs.getJobInstanceReference()) 
   {
    System.out.println("Cancelling Job = " + jobRefAndInstanceRefs.getJobReference() + ", Job Instance = " + jobInstanceRef);
    boolean result = schedulerServiceSoap.cancelJobInstance(jobRef, jobInstanceRef, sessionId);
    System.out.println("Result = " + result);
   }
}

例 - WebCatalogServiceのすべてのエージェントの検索および表示

WebCatalogServiceを反復する方法および検出されたすべてのエージェントのパスを表示する方法は、次のとおりです。

次の例でも、「例 - セッションおよびスケジューラ・サービスの作成」に記載されているコードに基づいて、セッションおよびサービスを作成します。

この例を拡大して使用できます。エージェントが見つかったら、それを使用してiBot Webサービス・メソッドをコールできます(たとえば、見つかったエージェント・パスを使用してエージェントを有効化)。iBotServiceサービス

WebCatalogService webCatalogService = new WebCatalogService();
WebCatalogServiceSoap webCatalogServiceSoap = webCatalogService.getWebCatalogServiceSoap();

void outputAgentsInFolder(String path) {   List<ItemInfo> items = null;   try {       // Get folder items       items = webCatalogServiceSoap.getSubItems(path, "*", false, null, sessionId);       for (ItemInfo itemInfo : items) {            // If item is Agent then display Agent path       if (itemInfo.getSignature().equals("coibot1")) {             System.out.println("Agent Path = " + itemInfo.getPath());       }      // If item is a folder then recurse       if (itemInfo.getType() == ItemInfoType.FOLDER) {             outputAgentsInFolder (itemInfo.getPath());       }    }} catch (SOAPFaultException soapFault){         System.out.println("SOAP Fault for path: " + path);} catch (Exception e) {         e.printStackTrace();   }}