CSVファイルをkintoneにインポートする際、「更新登録」を行うにはレコードを一意に特定する「キー」が必要です。しかし、基幹システムや業務システムから出力されるCSVには、キーとなる列が存在しないケースが少なくありません。
本記事では、「DataSyncer® for kintone(データシンカー®)」のカラム結合機能を使い、キーがないCSVでも更新登録を実現する方法を解説します。
キーがないCSVで起きる問題
kintoneにCSVファイルをインポートする際に、「キー」が存在しないCSVファイルは、全て新規レコードとして扱われるため、同一のレコードが存在すると二重登録されてしまいます。
よくあるケース
-
売上実績CSV: 日付+店舗コードの組み合わせで一意になるが、単独のキー列がない
-
生産実績CSV: 製造ライン+製品コード+日付で一意だが、キーとして設計されていない
-
請求データCSV: 会社コード+請求月で特定できるが、キー列が用意されていない
「DataSyncer for kintone(データシンカー)」のカラム文字結合機能を使用すると、CSVファイルのカラム同士を合成してキーを自動生成するため、同一レコードを「更新」することができます(二重登録されることがありません)。
例えば、請求管理システムのデータを毎日kintoneに更新処理をかけたい場合、前日分と同じレコードを投入しても二重に登録されないため、登録済みのレコードを事前に取り除くなどの処理が不要になります。
詳細
下記のような6レコードのCSVファイルをキーを指定しないで2回投入すると同一レコードが二重に登録されてしまいます(合計12レコード)。

このような場合はレコードにキーを設定すると、キーが同じレコードは更新処理となり、二重に追加されることはありません。
ただし、今回のように「キー列がない」CSVファイルでは事前にキーとなる文字列を手動で作成しておく必要があります。例えば「会社コード+請求月」という列を作って、データを作成しそれをキーとして登録する必要があります。
「DataSyncer for kintone (データシンカー)」で解決
データシンカーでは、事前に手動でキーとなる文字列を作成する必要がありません。簡単な設定をしておくだけで複数のカラムを組み合わせたキーを生成して、kintoneに登録することができます。
設定方法
設定アプリの「フィールドマッピング」で組み合わせたいカラムと結合する際のマーク文字列を設定します。
- 結合文字が2カラムの場合
{"concatenate": {"col_1": "会社コード", "col_2": "請求月", "mark": ""}}
- 結合文字が3カラムの場合
{"concatenate": {"col_1": "会社コード", "col_2": "請求No", "col_3": "請求月", "mark": ""}}
- "concatenate" / "col_1" / "col_2" / "col_3" / "mark"は予約語です。
上記の太字文字「会社コード」と「請求月」のカラム列を「 _ 」の文字で結合することができます。この結合文字列をキーとして設定したのが以下の例です。

一度上記の設定を行えば、同一レコードを含むCSVが来ても合成したキー文字列で更新処理が掛かるようになります。(同一レコードが二重登録されません)
なお、登録先のアプリのフィールドには「値の重複を禁止する」を設定しておいてください。

まとめ
キーがないCSVでも、データシンカーのカラム結合機能を使えば更新登録が実現できます。毎回のExcel加工が不要になり、フォルダに置くだけで正確なデータ更新が自動化されます。
売上実績・生産実績・請求データなど、定期的にCSVを取り込む業務で効果を発揮します。kintone x CSV連携の基本機能についてはCSV to kintone デモ動画もあわせてご覧ください。
当ブログのコンテンツについては、できる限り正確な情報を提供するように努めておりますが正確性や安全性を保証するものではありません。情報が古くなっていることもございます。当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。プライバシーポリシー

