詳細画面で値をセットする場合は並列処理をしないほうがいいという話

公開日:2025-03-26

Warning

本記事は情報提供を目的としており、本記事の内容は無保証、サポートの対象外です。

サポート窓口、問合せ窓口にご質問をいただいても対応いたしかねますのでご了承ください。

こんにちは、システム開発グループのわたなべです。

キミノマホロ for kintoneでは、業務改善アシストをという内製化支援を行っております。

今回はその中でお客様からいただいたお問い合わせとその解決方法を記事にしたいと思います。

業務改善アシストとは

業務改善アシストは、弊社が提供するシステム開発サービス「キミノマホロ」に含まれるサポートメニューです。弊社がシステムを開発するのではなく、お客様自身が kintone のアプリ構築やカスタマイズを主体的に進められるよう支援します。単なる技術的なサポートにとどまらず、お客様の 業務や運用、利用する方々の操作方法を考慮し、最適なサポートを提供します。

業務改善アシストのメニュー詳細については「キミノマホロメニュー解説:【ロ-3】業務改善アシスト」、弊社の伴走サービスの考え方については「kintone の伴走サービスって何が今までと違うのか」をご参照ください。

お問い合わせの内容

お客様はgusuku Customine ※ を用いてカスタマイズを作成しているのですが、

※ gusuku Customine(以下、カスタマイン)は、kintoneをさらに便利にするカスタマイズをノーコードで、ご自身で作成いただけるサービスです。

2025年2月時点で導入社数2000社を超え、さまざまな業務・業種のお客様にご利用いただいております。

https://customine.gusuku.io

詳細画面を開いたときに画像のようなエラーが出るというお問い合わせをいただきました。

エラーの内容は「Code: GAIA_CO02」というもので、複数回同じレコードの更新を試みているケースなどで発生することがあるものです。

なぜエラーが起きた?

では、これはなぜ起きたのでしょうか。

以下画像のような、「詳細画面を表示した時」にいろいろなフィールドを同時に変更するようなカスタマイズが実装されていました。

赤枠で囲ってあるアクション番号54、203番などに「フィールドに値をセットする」のようなフィールド値を変更する「やること」が設定されています。

通常、詳細画面で「フィールドに値をセットする」などで値を変更した場合、一連のアクションがすべて実行されたときに、レコードが自動的に保存されるという動作をします。

この動作については弊社サポートサイトの記事「詳細画面でフィールドに値をセットできますか?」をご一読ください。

上記サポートサイトの記事では1フィールドのみを変更し、保存しています。では、今回のお問い合わせのように複数のアクションでフィールドを同時に変更したらどうなるでしょうか。

先に記載した、

一連のアクションがすべて実行されたときに、レコードが自動的に保存される

という動作ですが、上記画像のように複数のアクションでフィールドを変更する場合、このレコードの自動保存が複数回実行されることがあります。

冒頭のエラーの原因はこのために発生しています。

問題の解決方法

では、解決方法としてどのようなものが考えられるでしょうか。

お問い合わせの内容を調査する過程で2つ思いつきました。

1.「レコードを更新する(キーの値を直接指定)」で更新を明示的に1回だけにする方法

こちらは実際にエラーを解決するために取った方法です。

先に記載した通り、「フィールドに値をセットする」などで値を変更するとレコードが自動的に保存されます。ですが、「レコードを更新する(キーの値を直接指定)」のようなレコードを更新するような「やること」は実行した時点でレコードが保存され、自動的に保存されることはありません。

アクショングラフでいうとこのような形になります。

青枠の部分で変更したい値を計算して、赤枠で「レコードを更新する(キーの値を直接指定)」を実行することで明示的にレコードの更新を1回にすることができます。

レコードが2回保存されることがないので、「Code: GAIA_CO02」のエラーが発生しなくなります。

2.アクションを実行するタイミングを「編集画面を表示した時」に変更する方法

こちらの方法は単純に値を更新するタイミングを「編集画面を表示した時」に変更するだけです。

編集画面では「フィールドに値をセットする」を実行してもフィールドの値が変更されるだけで、レコードが自動で保存されることはありません。レコードの保存は画面で保存ボタンを押す1回だけです。

レコードが2回保存されることがないので、「Code: GAIA_CO02」のエラーが発生しなくなります。

ちなみに、レコード編集画面ですと「フィールド値をまとめてセットする」でフィールド値を変更することも可能です。

いかがでしょうか。

いずれの方法も、レコードの保存を明示的に1回にすることが肝要です。

もし、詳細画面でレコードを更新するようなことがありましたら参考にしていただけると幸いです。

キミノマホロ for kintone

アールスリーでは業務改善・システム開発を行うサービスを「キミノマホロ for kintone」として提供しています。

キミノマホロ for kintone」は業務改善のプロセスをイロハで3つのフェーズに分け、フェーズごとに作業をメニュー化しています。

  【イ】業務改善の始まり:業務改善の方向性を決める

  【ロ】業務改善に必要なkintoneアプリ作成:業務改善を実現するための仕組み(kintoneアプリ)を作る

  【ハ】業務改善の実行サポート:業務改善を進める
システム開発グループではkintoneに関するお悩み相談をお受けする「kintone駆け込み相談室」を随時開催しています。kintoneのシステム開発でお悩みの方がいらっしゃいましたらぜひお申し込みください!

投稿者プロフィール

わたなべ