非同期ビジネスルールと「current」オブジェクトIssue 非同期で実行されるビジネスルールがある場合、そのスクリプトの実際の実行は、インスタンスのいずれかのワーカーが sys_trigger テーブルから非同期:バックグラウンドジョブを処理するまで遅延されます。レコードが変更され、非同期ルールがトリガーされると、sys_trigger テーブルにレコードが追加されます。このレコードには、実行が必要なビジネスルールへの参照と、そのビジネスルール内で current (現在) として使用する特定のレコードへの参照が保持されます。ワーカーがジョブを取得すると、スクリプティング環境が作成されます。レコードはスクリプト実行時にそのままデータベースからロードされ、変数 current としてスクリプト環境に格納されます。その後、通常どおりにその変数を操作できます。 推奨事項 current.setValue('field_name', 'value') メソッドや current.field_name = 'value'; による直接割り当てによって current レコードを変更することは可能であり、current.update() を使用してレコードを更新することも可能ですが、これらの操作は推奨されません。before ビジネスルール外における current レコードの変更は、推奨されるプラクティスではありません。アプリケーションのアーキテクチャがビジネスルールで current.update() を呼び出しているのであれば、アプリケーションの再設計が必要です。これにより、潜在的な問題やインシデントが発生する可能性があります。これらの問題は、データベースに書き込まれる前に current レコードを変更することでのみ回避できます。