cli-kintoneでcsvデータのUPDATE or INSERT

初歩的な質問で申し訳ございません。

cli-kintoneのCSVインポートを利用して作成済アプリへのupdate or insertをしたいと考えてます。

◆update:アプリ側に、csv内キー(*)と同一のレコードがある場合

◆insert:アプリ側に、csv内キー(*)と同一のレコードがない場合

単にインポートすると、insertしたいレコード(=アプリ側にキーが存在しない)場合、

–「updateKey」に指定した条件にあてはまるレコードが見つかりません。

とエラーが表示されてしまいました。

どのようなやり方があるか(そもそもcli-kintoneでは実現できない?)、ご教示いただければ幸いです。

ATARU 様

ご質問ありがとうございます。

データの更新と追加を同時に行う場合は、

更新キーではなく、CSVでレコードIDを指定する必要があると思います。

詳細は第3回 レコードの更新をしてみようの「レコードIDを指定してレコードを更新する」をご参考ください。

cybozu Development team 様

ご回答いただきありがとうございます。わかりづらく申し訳ございません…。

ちなみに、レコードIDを利用せず、レコードの一括更新 or 新規追加を実現することは可能でしょうか?

 

「CSV内のレコードIDが(アプリ側に同一のIDが)あれば一括更新、CSV内のレコードIDがブランクの場合は新規追加」

になろうかと(ご案内いただいたページ)存じますが、やりたいこととしては、

「CSV内指定のIDが(アプリ側に同一のIDが)あれば一括更新、CSV内指定のIDが(アプリ側に同一のIDが)なければレコード新規追加」

というイメージです。※以下、参考図

ご教示いただければ幸いです。

ATARU 様

レコードID指定せずに、更新と登録を同時に行うことができないと思います。

レコードID指定する場合の例
CSVファイルに次のように記載すれば、
"$id"欄に空またはアプリに存在しないレコードIDの場合は新規追加、その以外場合は一括更新を行うと思います。
つまり、 "株式会社A"の行は更新、"株式会社B"の行は新規登録となります。

また、企業IDを重複不可に指定することで、一括登録の際に重複の企業IDが存在する場合、エラーとなり、更新・登録を中止します。

“$id”  “企業名”  “企業ID”  
”1”   “株式会社A” “2222”    ←(1111→2222に更新)
””   “株式会社B” “4444” 

追記

cli-kintoneを使わずに、カスタマイズで実現できますが、ややこしいです。
①アプリAとアプリBを用意します。
②アプリA:企業IDの重複禁止にチェックしません。
③レコードIDも更新keyも設定せずに、CSVにあるすべてのレコードをアプリAに登録します。
④カスタマイズで、アプリAからデータを取得して、取得したデータ中の企業IDがアプリBに存在するか判断します。
⑤存在する場合、更新を行い、存在しない場合はアプリBに登録します。

akika 様

ご教示いただきありがとうございました!

追記に記載いただいた内容を踏まえ、開発を進めてみます。

略儀ながらこちらの連絡を持ちまして御礼申し上げます。

どうぞよろしくお願い申し上げます。