Flowでデータ作成後、同一データの更新を行うと、作成時の状態に値が戻る場合がある
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
12-25-2024 06:44 PM - 編集済み 12-25-2024 11:28 PM
こんにちは。どうか皆様のお知恵をお借りしたく。
Washingtonバージョンを利用しています。
Flow DesignerでFlowを作成し、データの作成&更新を行ったときに、うまく更新がされないことがあります。
具体的には、同一Flowの中で「State=newでデータを作成」と「State=Openに更新」処理を書いた場合、Stateが最終的に、Newになっていました。(Openであることが望ましい)
体感的に、100回に2,3回程度の頻度で、Newになっていることがあります。
同一Flowの中でほぼ同時に更新処理が動くことで、値が前後しているのでは、と思っています。
暫定の解決策として、「更新処理を削除し、最初からOpenで作成」すればいいのだとは思います。
しかし、なぜこのような現象が起こるのかがわかりません。
何かご存じの方がいらっしゃれば、ご教示いただけますと幸いです。
例)
■Flowの設定
〇Trigger:Service Catalog
〇Actions
1. Get Catalog Variables(申請時入力値を取得)
2. Create Case Record(Caseレコードを作成。StateはNewに設定 → State設定なし、Default値のNewが入る)
3. IF (特定条件の時)
4. Update Record(2.で作成したレコードの、StateをOpenに更新)
■作成されたレコードの履歴(sys_history_set)
■作成されたレコードの実際の値
State = New
どうぞよろしくお願いいたします。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
12-26-2024 01:17 AM
ご返信ありがとうございます。
フロー自体の処理が正常に終わっているが、Stateが反映されないことがある場合、他のビジネスルールやFlowの処理と重なってしまっている可能性が考えられます。
CaseはOOTBですと、アサインが承認されたら自動でOpenに変わるようになっているため、Flow側でStateを変えるのではなくアサイン処理によりOOTBの機能でStateをOpenがよろしいかもしれません。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-05-2025 06:03 PM
ご回答ありがとうございます。
確かにOOTBのビジネスルールと更新が重複してしまっている可能性がありそうです。
資料を読む限り、Stateが自動更新される項目には触っていないはずですが、各Business Ruleなどを確認してみます。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
12-26-2024 03:12 AM
FlowとBusiness Ruleにデバッグログを設定し、Flowの「Create Record」や「Update Record」が同期的に動作しているのか、それとも非同期なのかを検証しました。
その結果、50回カタログアイテムを連続して作成したところ、一度もタイミングのずれが発生することなく、すべて同期的に動作していることが確認できました。
この結果から、Flow内で「Create Record」や「Update Record」の次のステップに進む際には、レコードが必ず作成または更新されていることがわかります。(Flowの起動設定は「同期」にしています。)
ただし、「Create Record」や「Update Record」がFlow内で同期的に動作していたとしても、Flow以外の処理で非同期にレコードが更新される可能性はあります。
また、「Create Record」や「Update Record」の処理は、Business Ruleによってキャンセルされたり、別の値に変更されたりすることもあります。そのため、意図した値が正しく設定されていない場合も考えられます。
では、どの処理が値を変更しているのかを確認するには、Business Ruleにログ出力を設定したり、ブレークポイントを配置して、どの処理から呼び出されているのかを確認してください。
トラブルシューティングのヒント - ビジネスルールをデバッグして StackTrace を出力する - Support and Troubleshooting
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-05-2025 06:16 PM - 編集済み 01-05-2025 06:16 PM
ご回答ありがとうございます。
また、実際にお試しいただいたとのこと、本当にありがとうございます。
Satoshi Abe様からの回答にもあったように、別のBusiness Ruleなどが干渉して、更新できていないかもしれないということですね。
ご提示いただいた方法で、関連しそうな各Business Ruleの更新タイミングを調査してみます。
調査方法をご教示いただきありがとうございます。
※念のための補足です。
経験上、Flowを作成した当日は何度実行してもうまくいくのですが、数日後に実行しなおすと発生することが多いです。因果関係は不明ですが……。