後から計算式を設定すると、登録済みのレコードは計算結果が反映しないのをどうにかする

みなさんこんにちは。
kintoneおばちゃんこと、ジョイゾーの根崎です。
初めてキントマニアの記事を書きました。
どうぞよろしくお願いいたします。

弊社では初回開発無料の定額39万円でkintoneアプリを開発する定額型開発サービス「システム39」を提供しております。kintoneの導入やアプリ開発でお困りの方は、お気軽にご相談ください。
*Webでの打ち合わせも可能です。

   kintoneのアプリ開発はこちら <相談無料>    

今回のテーマは、「利用中のアプリに計算フィールドを追加したり、計算式を変更した場合、既存レコードに計算結果が反映されない問題」です。
結論から申しますと、すべてのレコードを更新して、計算式の設定を反映する必要があるわけですが、こちらではその方法を2つご紹介します。

後から追加した計算フィールドには計算結果は反映されません

再編集(編集ボタン→保存ボタン)を繰り返して、1レコードずつ更新する。

「(すべて)」の一覧画面でレコードの編集ボタンと保存ボタンをクリックして、1レコードずつ更新します。

一覧画面の編集ボタンをクリック
保存ボタンをクリック
追加した計算フィールドに計算結果が反映されます

レコード数が少ない場合には、この単純な繰り返し作業で解決!
ですが、レコード数が多いと、地味に大変な作業ですよね。

CSVファイルを読み込んで一括更新する

もう一つは、CSVファイルの入出力を行って、一括でレコード更新を行う方法です。
一括であっという間にレコードを更新することはできますが、操作はくれぐれも慎重に行ってくださいね。
※念のため、当該アプリの全データを書き出してバックアップファイルを作成しておきましょう。
※CSV入出力に不慣れな方はどなたかと確認しながら操作なさることをお勧めします。

それでは具体的な手順をご紹介します。

レコードの一括更新用CSVファイルを書き出す

まずは、レコードのデータをCSVファイルに書き出して、レコードの一括更新用ファイルを作成します。
※データを更新する対象フィールドは、レコード番号と任意のフィールド1つだけを対象とします。(データを更新するフィールドを少なくすることで、誤って上書きしてしまうリスクを最小限に抑えられます。一括更新用のフィールドをひとつ追加するのもありですね)

(1)すべてのレコードを対象とするため(すべて)の一覧画面を開きます。


(2)画面右上の「・・・」ボタンをクリックし、「ファイルを書き出す」を選択します。
※「ファイルに書き出す」が表示されない場合は、ファイル書き出し権限(アクセス権)の変更が必要となります。


(3)「ファイルに書き出す」画面に変わります。
※「先頭行を項目にする」にチェックを入れます。
※出力フィールドは「レコード番号」と任意のフィールド(以下「更新者」)を1つだけ選びます。
※計算フィールドは「書き出し」はできますが、次の操作である「読み込み」ができません。
また、レコード番号だけでは「読み込み」ができません。

画面を確認後、画面左上の「書き出す」ボタンをクリック

(4)「出力されたファイル」画面に変わります。
状況が「完了」に変わりましたら、詳細欄のCSVファイルをダウンロードします。

(5)ダウンロードしたファイルを開いてみましょう。
「レコード番号」と「更新者」の2列が書き出されていることを確認します。

一括更新用CSVファイルを読み込む

書き出したCSVファイルを読み込みます。

(1)画面左上の「・・・」ボタンをクリックし、「ファイルから読み込む」を選択します。

(2)「ファイルから読み込む」画面に変わります。
①で「ファイルの書き出し」で、ダウンロードしたファイルを指定します。
②で、プレビューでファイルの中身を確認します。

「アプリのフィールド」:レコード番号
の「ファイルの列」がレコード番号になっていること、さらに
「一括更新のキー」にチェックが入っていることを確認します。
また、
「アプリのフィールド」:更新者
の「ファイルの列」が更新者になっていることを確認します。

※それ以外フィールドは(指定しない)になっていることを確認します。

すべてを確認したら画面左上の「読み込む」ボタンをクリック

一括更新の結果を確認する

読み込みが正常に完了すると計算フィールド(税込み金額)が反映されたことを確認
※すでに登録されているレコードの作成者/更新者の値を変更して
ファイルで読み込んでも、作成者/更新者フィールドの値は更新(変更)されません。

注意点のおさらい

最後に注意点をおさらいしましょう。
・CSVを「すべて」の一覧の画面で書き出す
・書き出すフィールドはレコード番号と任意のフィールドだけにする
・読み込み時に「一括更新キー」を設定する(レコード番号)
・読み込み時に更新不要な項目は選択しない

これらの確認を怠りますと、
・更新されないレコードが残る
・不要なレコードが追加されてしまう
・既存のレコードの値が書き換えられてしまう
といった事が発生するおそれがあります。

作業前にバックアップをとってから、ひとつひとつの操作を(できれば他の方と一緒に)確認しながら作業なさることをお薦めします。

なお、CSVファイルの書き出し/読み込みにつきましては以下「kintoneヘルプ」や以前のキントマニアの記事でも詳しく説明されていますので、ご参考になさってください。

▼ファイルにデータを書き出すhttps://jp.cybozu.help/k/ja/user/app_collectdata/export/data_export.html

▼ファイルからレコードのデータをアプリに読み込むhttps://jp.cybozu.help/k/ja/user/using_app/import_records/import_csv.html

▼kintoneのCSVファイル読み込みで失敗しないための工夫(1)フィールド編
https://www.joyzo.co.jp/blog/10700

最後まで読んでいただいてありがとうございました。
今後も記事を書いていきますのでどうぞよろしくお願いします
kintoneおばちゃんでした。

弊社では初回開発無料の定額39万円でkintoneアプリを開発する定額型開発サービス「システム39」を提供しております。kintoneの導入やアプリ開発でお困りの方は、お気軽にご相談ください。
*Webでの打ち合わせも可能です。

   kintoneのアプリ開発はこちら <相談無料>    

同じカテゴリーの記事