ジョブ
ジョブとは「いつ(実行契機)」「どのデータ処理(データフロー)を」実行するかを定義する管理単位です。
1つのジョブには複数の実行契機とデータフローを設定することができます。
実行契機
実行契機のカテゴリー
実行契機には2つのカテゴリーがあります。
- 一覧画面のボタン押下
- イベント(詳細画面のボタン押下含む)
一覧画面のボタン押下はトリガー(契機発動のきっかけ)となるレコードが存在せず、イベント(詳細画面のボタン押下含む)はトリガーとなるレコードが存在します。
トリガーとなるレコードが存在する契機とするジョブでは、データフローの設定の中でこのレコードの値を契機パラメーターとして使用することができます。
1つのジョブは、このカテゴリーのうちどちらか1つに関連付けられます。
一度ジョブを作成(設定)した後は実行契機のカテゴリーを変更することはできません。
実行契機の種類
| カテゴリー | 契機 | トリガーとなるレコードの有無 |
|---|---|---|
| 一覧画面のボタン押下 | レコード一覧画面の実行ボタン押下 | レコードなし |
| イベント(詳細画面のボタン押下含む) |
|
レコードあり |
プロセス管理のアクション実行時を契機とする場合、さらにどのアクションを実行したときを契機とするかを選択することができます。
「レコード詳細画面のレコード削除時」「レコード一覧画面のレコード削除時」は、レコード詳細画面でレコードを削除する前のイベントおよびレコード一覧画面でレコードを削除する前のイベントをそれぞれ契機としています。
「レコード詳細画面のレコード削除時」「レコード一覧画面のレコード削除時」は、契機としてはレコード削除前ですが、フローが実行されるのはレコード削除後となります。そのため、レコードの添付ファイルフィールドに設定されていたファイルについて操作(例えばファイルを別アプリに保存)することはできません。
「レコード一覧画面のレコード保存成功後」「レコード一覧画面のレコード削除時」は、モバイルでは存在しない契機のため、モバイル環境では発動しません。
ジョブ実行ボタン
実行契機としてレコード一覧画面の実行ボタン押下またはレコード詳細画面の実行ボタン押下を設定した場合、該当の画面にジョブ実行ボタンがジョブ単位で表示されます。
ボタンに表示する文字列はデフォルトではジョブ名が表示され、設定により変更が可能です。
ジョブの実行ボタンを表示できるユーザーをユーザー名、所属する組織やグループによって制限することができます。設定しない場合は全てのユーザーで実行ボタンが表示されます。
また、データフロー設定に不備が存在し、ジョブが実行不可能な場合、デフォルトではボタンは表示されません。設定により、実行不可を表すボタンを表示することが可能です。表示されるボタンはグレーアウトされ、押下することはできません。
ジョブの実行
実行の順番について
同一の契機に一致するジョブは、ジョブ設定画面の上に設定されているジョブから順番に実行されます。
実行ジョブに設定されているデータフローについてもジョブ設定画面で上に設定されているものから順番に実行されます。
複数のジョブ、データフローが並行して実行されることはありません。そのため、先に実行されたジョブやデータフローによる処理結果(アプリへのデータ出力など)を前提として、後続のジョブやデータフローの処理を設定することが可能です。
実行中のエラー
データフロー実行中にエラーが発生した場合、そのジョブはエラーとして中断し、後続のジョブが実行されます。
エラーが発生した場合に後続のデータフローを実行したくない場合は、それらのデータフローは同一のジョブに設定する必要があります。
実行されないジョブ
以下のジョブは実行されません。レコード一覧画面の実行ボタン押下またはレコード詳細画面の実行ボタン押下を実行契機として設定している場合は、実行ボタンが表示されません。
- 「有効」が設定されていないジョブ
- 「有効」が設定されたデータフローが存在しないジョブ
- データフローの「有効」が設定されていて、状態が「不明」または「エラー」のデータフローを含んでいるジョブ(※1)
※1 ジョブの設定で「設定に不備があるフローを含む場合に実行不可のボタンを表示する」を有効にしている場合は、実行不可の実行ボタンが表示されます。
排他制御
ジョブが実行されると排他制御が行われ、(別ユーザーの操作等による)他のジョブの実行を抑制します。
排他制御は、ログアプリによって実現されます。
ログアプリはジョブごとに設定可能なため、同一のログアプリを設定しているジョブ単位で排他制御が行われることになります。
同時に実行されても全く問題のないジョブ同士は、異なるログアプリを設定することで抑制を回避するという制御も可能です。
レコード一覧画面の実行ボタン押下またはレコード詳細画面の実行ボタン押下を契機として実行されたジョブが排他制御によって抑制された場合、ジョブを実行せずに即座に終了します。
それ以外の契機で実行されたジョブは、実行中のジョブが終了するまで待機します。待ち時間のタイムアウトはありません。
排他制御はジョブの実行に関して行うもので、通常のレコードの追加/更新/削除の操作の抑制は行いません。
ジョブの実行中にデータフロー内で参照しているアプリのレコードが操作された場合に、期待と異なる結果となる可能性があるのでご注意ください。
排他制御では、kintone REST APIを使用してログアプリにアクセスするため、APIリクエスト数を消費しますが、実行ログの「API使用数」にはこの値は記録されません。
1回の実行契機で排他制御のために最低3回APIリクエスト数を消費します。実行中のジョブについては、さらに1分ごとに1回、待機しているジョブについては10秒ごとに1回のAPIリクエスト数を消費します。
ログアプリ
ジョブの実行ログは、ログアプリにジョブ単位で保存されます。
ジョブやデータフローの開始日時や終了日時、入力レコード数や出力レコード数、API使用数などの詳細な実行ログを確認することができます。
ログアプリは、ジョブの設定ダイアログのログ出力先アプリ設定から作成でき、設定中のアプリと同じスペースに作成されます。
アプリの所属するスペースを変更するの方法でログアプリの所属するスペースを変更することができます。ただし、ジョブの実行を行うすべてのユーザーが参加しているスペースである必要があります。
作成されたログアプリのフォーム設定は変更しないでください。
ログアプリはデータフロー内でアプリ入力またはアプリ出力の対象アプリとして設定することはできません。
ログアプリのアクセス権について
ログアプリへの実行ログの登録は、ジョブを実行したユーザーとして行われます。ジョブを実行するユーザーが必要なログアプリの権限は以下になります。
- レコード閲覧
- レコード追加
- レコード編集