QlikView EDX が有効化されたタスクのトリガー
QlikView Event Driven Execution (EDX) により、外部イベントをトリガーとして使用して QlikView Publisher でタスクを開始することができます。
EDX タスクを設定するには、 QlikView Management Service API (QMS API) を使用する必要があります。リクエスト呼び出しを実行するユーザーは、QlikView Administrators ローカル グループか QlikView EDX ローカル グループのメンバーでなければなりません。QlikView Administrators グループは QlikView Server のインストール時に作成されますが、QlikView EDX グループは [Computer Management] (コンピュータの管理) で手動作成する必要があります。EDX が有効なタスクをトリガーできるのは、QlikView EDX グループのメンバーのみです。
QlikView EDX グループの作成
次の手順を実行します。
- [Computer Management] (コンピュータの管理) で [Local Users and Groups] (ローカル ユーザーとグループ) を開きます。
- グループ セクションを展開し、ツールバーで [Action] (アクション) > [New Group...] (新しいグループ) を選択します。
- グループ名を「QlikView EDX」と入力し、[Create] (作成) を選択します。
EDX タスクの作成
EDX タスクを作成するには、次の署名を使用します。
パラメータ | 目的 |
---|---|
guid | タスクが定義される QlikView Distribution Service (QDS) の ID。 |
taskNameOrId | タスクの名前またはタスク の ID (文字列)。 |
password | パスワード (タスクで必要となる場合)。 |
variableName | 変数名 (タスクで必要となる場合)。 |
variableValues | 変数の値のリスト。 |
返される結果には、タスクが問題なく開始されたかどうかに関する情報が含まれます。
下記の例は、タスクをトリガーした後、これが終了するまで、あるいは一定の期間が経過するまで待機するプロセスを説明したものです。
using System; using System.Collections.Generic; using System.Linq; using System.Threading; using QMSAPI; class Program { static void Main(string[] args) { try { // create a QMS API client IQMS apiClient = new QMSClient(); // retrieve a time limited service key ServiceKeyClientMessageInspector.ServiceKey = apiClient.GetTimeLimitedServiceKey(); if (qdsService != null) { //Trigger the task TriggerEDXTaskResult result = apiClient.TriggerEDXTask(qdsService.ID, "PauseEDX", "edx", "", new List<string>()); EDXStatus executionStatus = null; //wait until the task is completed or 60 seconds has passed. SpinWait.SpinUntil(() => { System.Threading.Thread.Sleep(1000); Console.WriteLine("Checking the task..."); //Get the current state of the task. executionStatus = apieClient.GetEDXTaskStatus(qdsService.ID, result.ExecId); //Return true if the task has completed. return executionStatus != null && executionStatus..TaskStatus == TaskStatusValue.Completed; }, 60 * 1000); //write the result if (executionStatus != null) Console.WriteLine(executionStatus.TaskStatus); } } catch (Exception ex) { Console.WriteLine("An exception occurred: " + ex.Message); } //wait for user to press any key Console.ReadLine(); } }
この例は、QlikView マネージメント コンソール (QMC) の一部としてインストールされる QMS API ドキュメントから生成したものです。これには、利用可能な手法および QMS API の開始方法に関する詳細情報が含まれます。