cli-kintoneを使って、csvからサブテーブル上のデータを空欄化(削除)したい
下記の環境でcli-kintoneを使ってkintoneデータ(サブテーブルを含めた)のRead/Writeをしています。
その中で前回Writeしたサブテーブルのデータを個別に削除する必要が出てきたのですが、うまく削除できません(無視される、履歴に残らない)。
なにか気がつことがあればご教授ください。
環境とやったこと
Windows11 cmd.exeでのbatchによるcli-kintone.exe @version1.14.0を利用
(1)cli-kintoneとcsvを使ってサブテーブルへの各項目へのデータ書き込み、データを伴った更新はできています。
(2)すでに書き込まれているデータに対して、データを個々に削除をして空欄化したいのですが、csvに ,“”, や,としても無視(履歴も残らない)されてしまいます。
実行例
#動くcsv(新規、修正データを伴った更新)
「受付番号」は親のUniqKey、
「状況」はサブテーブルのUniq_ID名、
「状況名」はサブテーブルの項目名
"*","受付番号","状況","状況名"
"*","CL24-087","1662519","あああ"
"","CL24-087","1662797","いいい"
#→「あああ」、「いいい」はkintone上に書き込まれている
「状況名」の項目データを削除したく、""などを記載してみる
"*","受付番号","状況","状況名"
"*","CL24-087","1662519",""
"","CL24-087","1662797",
#どちらもエラーにはならず無視?される(履歴にも残らない)
以上、なにか参考になるようなことがあればご教授いただければ幸いです。
よろしくお願いいたします。
aaaさん、ご連絡ありがとうございます。
やはり仕様上できないのですね、、、。勉強になります。
" “(半角スペース)もやってみたのですが、前回との差分でUpdateしようとすると今度は、その項目が"0"と返ってくるのでそれをescapeをしないといけないし、ドロップダウン項目も引っかかるのでどうしたものかと思っていました。
確認したところ、挙動的には、更新した後でcli-kintoneでexportしたデータを見ると、
→ドロップダウン項目は、” “(半角スペース)で更新することで「空欄」になる
→一般の記載項目は、” "(半角スペース)で更新すると"0"が返ってくる
と異なるようです。これで作るしかない、ということですね。
kintoneコマンドラインツール(cli-kintone) - cybozu developer network には、
テーブルのあるレコードを追加または更新する
標準機能のファイル書き出しと同じように、テーブルのデータごとに、1レコードの内容を複数行に分けて記載します。
ファイルの先頭列の「」から次の「」の前までの行が、1つのレコードのデータを表します。
ファイルの先頭列は、「」という項目名にします。
各レコードのデータの開始行の先頭列には「」を記載し、それ以外は空にします。
注意
既存のレコードのテーブルを更新する場合の注意点
- データを変更しないテーブルの行があっても、CSVファイルにはすべての行データを記載してください。
ファイルに記載していない行データは削除されます。
- データを更新しないテーブルのフィールドがあるときは、次のどちらかを> 行ってください。
行わない場合、ファイルに記載されていないテーブルのフィールドの値は空> になります。
- 行のIDを記載する。
行のIDは、record export
を使ってテーブルのデータを表示したときのテーブルフィールドの値で確認できます。
- テーブルに含まれるすべてのフィールドのデータを記載する。
とあるのですが、““で更新をかけると、もとのデータに影響を与えない、書き変わらないので、この記載の仕様は合っていないような気がします。リンク先には「cli-kintoneでは、テーブル内フィールドの更新値が全て””(空文字)の指定となっている場合、更新対象(kintone REST APIへのリクエスト対象)に含めない仕様としております。」とありますので、そういう仕様ということなのですね。
aaa
5
cli-kintoneで再現仕様としているのですが、うまくいきません。
空白で上書きできてしまいました。
*,"レコード番号","テーブル","文字列__1行__1"
*,"1","703597","1534"
,"1","703599",""
質問者のレコードはどのようになっているのでしょうか?
「受付番号」は親のUniqKey、
「状況」はサブテーブルのUniq_ID名、
「状況名」はサブテーブルの項目名
という部分が理解できませんした。