Flowでデータ作成後、同一データの更新を行うと、作成時の状態に値が戻る場合がある

YamaT
Tera Contributor

こんにちは。どうか皆様のお知恵をお借りしたく。

 

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)

YamaT_0-1735179941476.png

 

■作成されたレコードの実際の値

State = New

 

どうぞよろしくお願いいたします。

8件の返信8

@YamaT 

ご返信ありがとうございます。

フロー自体の処理が正常に終わっているが、Stateが反映されないことがある場合、他のビジネスルールやFlowの処理と重なってしまっている可能性が考えられます。

CaseはOOTBですと、アサインが承認されたら自動でOpenに変わるようになっているため、Flow側でStateを変えるのではなくアサイン処理によりOOTBの機能でStateをOpenがよろしいかもしれません。

 

https://www.servicenow.com/docs/ja-JP/bundle/washingtondc-customer-service-management/page/product/c...

 

@Satoshi Abe 

ご回答ありがとうございます。

確かにOOTBのビジネスルールと更新が重複してしまっている可能性がありそうです。

 

資料を読む限り、Stateが自動更新される項目には触っていないはずですが、各Business Ruleなどを確認してみます。

iwai
Giga Sage

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

YamaT
Tera Contributor

@iwai 

ご回答ありがとうございます。

また、実際にお試しいただいたとのこと、本当にありがとうございます。

 

Satoshi Abe様からの回答にもあったように、別のBusiness Ruleなどが干渉して、更新できていないかもしれないということですね。

ご提示いただいた方法で、関連しそうな各Business Ruleの更新タイミングを調査してみます。

調査方法をご教示いただきありがとうございます。

 

※念のための補足です。

経験上、Flowを作成した当日は何度実行してもうまくいくのですが、数日後に実行しなおすと発生することが多いです。因果関係は不明ですが……。