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

Takeru
Tera Guru

恐らくですが、Create Recordを実行中に次のStepに進んでしまい、処理のつじつまが合わなくなっているものかと思われます。

2と3のStepの間にWait 1secなどを入れることで回避可能かと思われます。

YamaT
Tera Contributor

@Takeru

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

Flowの各ステップは、非同期処理なのでしょうか……

改修案をいただき、ありがとうございます。参考にさせていただきます。

Satoshi Abe
Mega Sage

@YamaT 

フローの実行詳細から実行ログを確認することをお勧めします。

https://www.servicenow.com/docs/ja-JP/bundle/washingtondc-build-workflows/page/administer/flow-desig...

 

その中でエラーになっているものがあれば、どこが原因でエラーとなって、最後のState=Openを妨げているか確認できます。

@Satoshi Abe 

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

例と少しActionが異なりますが、実際にState=NewとなってしまったFlowの実行ログを確認してみました。

特にエラーにはなっていないようです。

 

■Flowの実行ログ

YamaT_0-1735196884689.png

 

■実際に作られたレコードの値

YamaT_2-1735197060517.png

■Stateの更新履歴

YamaT_1-1735196975475.png

 

恐れ入りますが、引き続きよろしくお願いいたします。