変更時のルール
on-change ルールは、課題または記事に変更が適用されたときに実行されるアクションを定義します。
変更時ルールには、初期トリガーの特別なプロパティはありません。ルールがアクティブなプロジェクトで新しい課題または記事が作成されたとき、または既存の課題または記事に変更が適用されたときに実行されます。
変更時ルールのサンプル
ワークフローコンストラクターで変更時ルールを作成するときは、前提条件セクションで課題を更新するための初期基準を定義してから、アクションセクションで適用する更新を指定します。
これは、レビューの責任者に購入リクエストを自動的に割り当て、期限を 2 週間先に設定するワークフロールールです。

このサンプルの変更時ルールは、次のように動作します。
ルールの前提条件
ルールがアクティブなプロジェクトで課題が作成または更新されるたびに、次の条件について課題がチェックされます。
条件 | 説明 |
|---|---|
この条件は、ルールがアクティブなプロジェクトに存在する、または作成された課題をチェックします。 課題設定が現在の課題を使用するに設定されている場合、これは、プロジェクトで作成または更新されるすべての課題が、ルールの事前条件セクションで定義された基準に一致するように評価されることを意味します。 | |
この条件ブロックは、次の設定で構成されます。
これにより、新規または既存の課題に課題タイプとして購入依頼が割り当てられているかどうかが確認されます。 現在の課題がこの基準に一致しない場合、ルールはこの課題を無視し、次の課題の処理を続行します。 | |
このブロックは NOT ブロック内にネストされており、次の設定で構成されています。
これは、ワークフローをトリガーする更新で担当者フィールドの値が変更された場合、ルールが処理を停止することを意味します。 このブロックが存在するということは、ユーザーが購入要求の責任者以外の誰かに課題を手動で再割り当てできることを意味します。それがないと、ルールはアクションセクションで規定されているように課題を割り当てることによって変更に反応します。 |
ルールの事前条件セクションのすべての条件は、暗黙の AND 演算子で結合されます。これは、これらの条件がすべて満たされている場合、ワークフローはアクションセクションで指定された変更のみを適用することを意味します。
具体的には、これは、ルールがアタッチされているプロジェクトで作成または更新された課題のみを更新し、タイプフィールドの値が購入依頼に設定され、更新によって担当者フィールドの値が明示的に変更されないことを意味します。
ルールアクション
これらのすべての条件が現在の課題で満たされている場合、ワークフローは次の変更を自動的に適用します。
アクション | 説明 |
|---|---|
このアクションは、担当者フィールドの値を、購入要求の処理を担当する人に設定します。このブロックは、次の設定で構成されています。
| |
このブロックは IF ブロック内にネストされているため、追加の条件が true の場合にのみこのアクションを適用できます。 追加の条件は、次のように構成されたフィールドは指定された基準に一致するブロックを使用して定義されます。
つまり、このブロックで指定されているアクションは、期限日が設定されていない課題にのみ適用されます。 アクションは、次の設定で構成されます。
これにより、期限日フィールドの値が 2 週間先の日付に設定されます。 IF ステートメントを使用して、期日がすでに設定されている課題を無視すると、ルールを再度トリガーすることなく、必要に応じて期日を手動で再スケジュールできます。 |
このルールは、変更が課題に適用されると、次のアクションを実行します。
YouTrack は、サブシステムフィールドの値の変更を確認します。
サブシステムの値が変更されると、課題はサブシステムの所有者に自動的に割り当てられます。
この変更時ルールを定義するコンポーネントは次のとおりです。
すべてのスクリプトは、
requireステートメントのリストで始まります。このルールでは、ローカル変数entitiesを宣言し、ワークフロー API のエンティティモジュールを参照します。これは、このモジュールに含まれているすべてのものに、entities変数を使用してこのスクリプトでアクセスできることを意味します。各スクリプトは、1 つのルールを
exports.ruleプロパティにエクスポートします。ルールは、Issue.onChangeメソッドで宣言されます。このメソッドは、宣言に続くスクリプトを変更時ルールとしてエクスポートします。ルールの本体には、次の 3 つのプロパティが含まれています。
プロパティ
説明
タイトル
人間が読めるオプションのタイトル。タイトルは管理インターフェースにのみ表示されます。
ガード
ルールを実行するための条件を決定する機能。保護条件が満たされていない場合、ルールに指定されているアクションは課題に適用されません。
アクション
各課題に適用されるアクション。アクションは、引数としてコンテキストを受け入れる関数として宣言されます。
この例では、サブシステムフィールドが null 以外の所有者を持つ null 以外の値に設定されているかどうかを確認します。その場合、ルールは担当者フィールドの値を設定します。
runOn
変更イベントルールをトリガーする発行イベントを決定します。指定しない場合、課題の更新時にルールがトリガーされます。このプロパティは、次のパラメーターで拡張されます。
change—trueの場合、ルールは課題の変更時にトリガーされます。removal—trueの場合、課題が削除されたときにルールがトリガーされます。
この例のルールは更新が適用されるとトリガーされるため、このプロパティの値を指定する必要はありません。
要件
ルールがエラーなしで実行されるために必要なエンティティのリスト。このプロパティにより、ルールをプロジェクトに安全にアタッチできるようになります。
この例では、要件により、サブシステムフィールドと担当者フィールドの両方に正しいタイプが格納され、ルールが関連付けられているプロジェクトで使用できることが保証されます。いずれかのフィールドが存在しない場合、ワークフローリストにエラーが表示されます。必須フィールドがアタッチされるまで、ルールを有効にできません。
記事の変更時ルールのサンプルについては、開発者ポータルの API 参照を参照してください。
JavaScript でのワークフローの作成の詳細については、開発者ポータルのドキュメントを参照してください。
関連ページ:
条件
ワークフローコンストラクターは、さまざまな事前定義された条件をサポートします。これらの条件により、ワークフロールールを実行するために満たす必要のある基本的な基準を説明できます。条件をワークフロールールの前提条件セクションにドラッグして、基本基準を定義します。複数の条件を追加すると、各条件は論理 AND 演算子で自動的に接続されます。これは、前提条件セクションのすべての条件が満たされた場合にのみ、ワークフロールールを実行するための前提条件が満たされることを意味します。ビルドブロックを使用して、さまざま...
ビルドブロック
ワークフローコンストラクターは、ワークフローの構築に使用できる事前定義されたブロックのセットを提供します。ビルドブロックセクションには、一般的な演算子と式が含まれています。これらのブロックを使用して、さまざまな条件とアクションを組み合わせます。OR:このブロックを使用すると、条件の 1 つが真の場合にワークフロールールを実行できます。例: 次の一連の前提条件は、コメントまたは添付ファイルが課題に追加されたときに、このルールで指定されたアクションを適用します。AND:このブロックを使用すると、ブロ...
ワークフロールールタイプ
YouTrack は、4 種類のワークフロールールをサポートしています。ルールタイプは、ルールを実行する一般的な条件を定義します。ワークフローコンストラクターを使用すると、on-change、on-schedule、状態マシン、アクションルールを作成および編集できます。JavaScript エディターでは、あらゆるタイプのモジュールを作成および編集することもできます。また、コードのブロックを整理して再利用できるカスタムスクリプトを作成することもできます。ワークフローコンストラクターで新しいルール...
スケジュール規則
on-schedule ルールは、設定されたスケジュールに従って適用される一連の変更を定義します。例: 特定の属性値に関する課題を定期的にチェックし、ユーザーまたはグループに通知することができます。これらのルールは、以前のワークフローで使用されていたスケジュール済みルールを置き換えます。スケジュール通りのルールは、特別なワークフローユーザーによって実行されます。これは、すべての権限が付与されたシステムユーザーアカウントです。このアカウントの権限は変更できません。ワークフローユーザーアカウントはライ...