YouTrack クラウド 2024.3 ヘルプ

トランザクション

ワークフローが課題に変更を適用する時期を正確に予測するには、YouTrack のデータベーストランザクションについて少し知っておく必要があります。単一のデータベーストランザクションで処理された課題に変更を適用するサーバーへの要求。例: ユーザーがユーザーインターフェースを介してカスタムフィールドの値を設定した場合。

コマンドは、データベースとのより複雑な相互作用をサポートします。たとえば、コマンドを使用して複数のフィールドを更新し、課題にコメントを追加できます。YouTrack REST API の課題に複数の変更を適用することもできます。いずれの場合も、これらの変更は単一のトランザクションで処理されるため、アトミックであると見なされます。

同じトランザクションに属するすべての変更は、データベースにコミットされる(結果として更新される)か、拒否される(エラーを生成する)かのいずれかです。トランザクションの変更がデータベースにコミットされる前に、YouTrack はワークフロールールのガード条件に対してチェックを実行します。YouTrack は、更新された課題が属するプロジェクトに関連付けられているワークフローのみをチェックします。トランザクションの変更によってガード条件が満たされると、ワークフロールールがトリガーされます。ワークフローによって適用される変更は、現在のトランザクションに追加されます。次に YouTrack は、ワークフローによって適用された変更によってガード条件が満たされているかどうかを確認するために、別のチェックを実行します。このプロセスは、プロジェクトのどのガード条件も満たされないまで続きます。現在のトランザクションに格納されている変更の完全なセットは、データベースにコミットされます。

つまり、ユーザーインターフェースを介して適用された変更に対応してワークフローによって適用された更新は、すべて同じトランザクションに属します。

課題を別のプロジェクトに移動するときに、データベーストランザクションがワークフローとどのように相互作用するかを理解することが特に重要です。トランザクションにプロジェクトフィールドの値の変更が含まれる場合、YouTrack は、ターゲットプロジェクトに関連付けられているワークフローのガード条件のみをチェックします。課題が以前属していたプロジェクトにアタッチされているワークフローは無視されます。