LoginSignup
0
0

More than 1 year has passed since last update.

[OutSystems]Timerの実行状況を(System)のEntityを検索して知る

Last updated at Posted at 2022-08-18

Timerの実行状況はService Centerで確認できる(モジュールページのTimersタブや、Monitoring > Timersページで)。(System)から参照できるEntityを検索することで同じことができるのでその方法をメモ。

環境

Personal Environment(Version 11.16.0 (Build 35766))
Service Studio(Version 11.53.11)

サンプルモジュール

ForgeコンポーネントのV1.0.9。
MainFlow > TimerEntity Screen

ドキュメント

Timer
日本語版のページもあるが、2022/08/17時点では中身がほぼ空なので、英語版を確認する必要がある。

Entity

以下のEntityについては、今回必要な部分のみに言及。
その他の情報については、ドキュメントの項に貼ったリンク先を参照。

Meta_Cyclic_Job

Timerの定義を格納するEntity。
その環境における、該当Timerの設定値(実行スケジュール等)も持っているが、ここでは以下の属性だけを確認する

  • Id属性:実行情報を持つCyclic_Job_Sharedを検索するための属性
  • Espace_Id属性:Timerが作られたeSpaceのId。Built-In FunctionのGetEntryEspaceId()を使ったり、Service Centerで該当eSpaceのページを開き、そのクエリストリングから取得できる
  • Name属性:Timerの名前

Cyclic_Job_Shared

Timerの実行情報を格納するEntity。マルチテナントでないものに限る。マルチテナントのTimerは
Cyclic_Jobという別のEntityにある。
Meta_Cyclic_Job Identifier型の属性が主キーなので、TimerがあるeSpaceのIdとTimer名でMeta_Cyclic_Jobを検索し、そのIdをこのEntity検索に使えば1レコードだけ取得できる。

  • Is_Running_Since属性:Date Time型。実行中にのみ、開始日時が設定される。よってこの属性が設定されているときはTimer実行中と判定できる
  • Number_Of_Tries属性:何回目の試行か。Timerは、エラー発生時に環境ごとに定められた回数(デフォルト3回)を上限としてリトライが行われる。
  • Last_Run属性:Date Time型。最後のTimer実行が開始した日時。エラー発生してリトライするときは、最後のリトライの開始日時が設定される(1回目ではない)

サンプル実装

Aggregateを使い、特定のTimerのステータスを取得する方法。

参照追加

(System)の下にあるMeta_Cyclic_JobとCyclic_Job_Sharedへの参照を追加。
image.png

Aggregate

Sourcesタブ。Meta_Cyclic_Job Identifier型の属性同士でジョインしている。
image.png

以下の条件は、同じeSpace内にあるDummyTimerという名前のTimerを検索するときの条件。
image.png

サンプルの実行イメージ

起動ボタンをクリックすると、同じeSpace内のDummyTimerというTimerを実行する。
確認ボタンをクリックすると、その時点のDummyTimerの実行状態をEntityから検索して幼児する。
②の行の右側に、Is_Running_SinceとNumber_of_Tries属性の値を表示。
③の行の右側に、Last_Run属性を表示。
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0