第 2 回 kintone コマンドラインツール(cli-kintone v0)でレコードの登録・削除をしてみよう

著者名:三宅 智子(サイボウズ株式会社)

目次

information

このチュートリアルは ver. 0.x.x の cli-kintone の使い方を紹介しています。
ver.1.0.0 以降の cli-kintone の使い方を紹介するチュートリアルは次のページを参照してください。
はじめよう cli-kintone

はじめに

前回の記事で、cli-kintone の導入とレコードの取得について理解していただけたと思います。
この先 kintone コマンドラインツールは cli-kintone と表記します。

今回も引き続きフィールドコードをカスタマイズした 顧客リストアプリ (External link) を利用して、レコードの追加と削除のやり方を紹介します。

レコードの追加

STEP1 追加するレコードのデータを CSV ファイルで用意する

まずは追加するレコードのデータの CSV ファイルを作成しましょう。
このとき、必須項目以外のフィールドは入力しなくても問題ありません。

1
2
3
4
"Company","Name"
"朝日商事","品川 吉織"
"赤松機械","中田 助勝"
"青木建設","友岡 春樹"

今回はこの内容を「customers.csv」とし、文字コードを Shift-JIS にして保存します。

STEP2 レコードを追加する

レコードを追加するときは、認証のオプションに加えて -f オプションでファイルを指定して追加します。
このとき作成したレコードのファイルのエンコーディングをエクスポート時と同様に -e オプションで指定します。

今回は Shift-JIS で作成したので sjis を指定しましょう。

実行ファイルと同じ場所に customers.csv を保存した場合
1
>cli-kintone.exe --import -a <アプリID> -d <ドメイン名> -t <APIトークン> -e sjis -f customers.csv
customers.csv のファイルパスを指定する場合
1
>cli-kintone.exe --import -a <アプリID> -d <ドメイン名> -t <APIトークン> -e sjis -f c:\Users\Desktop\customers.csv

customers.csv ファイルの途中行からインポートする場合
1
>cli-kintone.exe --import -a <アプリID> -d <ドメイン名> -t <APIトークン> -e sjis -f customers.csv -l 3

レコードを削除した後にレコードを追加

STEP1 すべてのレコードを削除してからレコードを追加する

cli-kintone でレコードを削除してからレコードを追加する際には -f オプションを利用したうえで -D オプションを利用します。
このときクエリで絞り込みをしない場合 すべてのレコードを削除 してからレコードが追加されます。

1
>cli-kintone.exe --import -a <アプリID> -d <ドメイン名> -t <APIトークン> -e sjis -D -f customers.csv

STEP2 クエリで絞り込みをしたレコードを削除してからレコードを追加する

レコード追加前に一部のレコードのみを削除したい場合、-q オプションを使って削除対象レコードをクエリで絞り込んでから実行する必要があります。
条件式の書き方は前回の取得のときと同様に クエリの書き方 を参考にしてください。

今回は担当者名に「瀧ヵ平」を含む最新 5 件のレコードを削除してから、新たにレコードを追加してみましょう。

1
>cli-kintone.exe --import -a <アプリID> -d <ドメイン名> -t <APIトークン> -q "Name like \"瀧ヶ平\" limit 5 offset 0" -e sjis -D -f customers.csv

テーブルを含むレコードを追加する

こちらも前回と同様 交通費申請アプリ (External link) を使って確認しましょう。

STEP1 テーブルを含むレコードの CSV ファイルを作成する

テーブルを含むレコードを追加する場合は、テーブルを含むレコードを取得した CSV と同じように、フィールドコードの行と各レコードの 1 行目の最初に *, を追加します。
すでにあるレコードを cli-kintone でエクスポートしたものを参考に CSV を作成すると間違いなく作れるかと思います。

1
2
3
4
5
6
7
8
9
*,"Title","Sum","Other","Date","Place","transportation","Price"
*,"3月分交通費","","テスト","2017-01-24","","",""
*,"2月分交通費","1400","テスト","2017-02-08","サイーボ株式会社","電車(往復)","400"
,"2月分交通費","1400","テスト","2017-02-24","株式会社ボーサイ","バス(往復)","600"
,"2月分交通費","1400","テスト","2017-02-27","サイボウズ株式会社","電車(往復)","400"
*,"1月分交通費","32700","テスト","2017-01-18","プププ株式会社","電車(往復)","400"
,"1月分交通費","32700","テスト","2017-01-25","AAA株式会社","飛行機(往復)","30000"
,"1月分交通費","32700","テスト","2017-01-30","ららら株式会社","電車(往復)","800"
,"1月分交通費","32700","テスト","2017-01-31","株式会社オー","タクシー","1500"

この内容を「subtable.csv」として Shift-JIS で保存しましょう。

STEP2 CSV ファイルを指定してレコードを追加する

テーブルを含まない場合と同様に、 -f オプションでファイルを指定してレコードを追加します。

1
>cli-kintone.exe --import -a <アプリID> -d <ドメイン名> -t <APIトークン> -e sjis -f subtable.csv

注意ポイント:チェックボックスや複数選択で複数チェックが入る場合の CSV 表現

今回のサンプルアプリにはありませんでしたが、フィールドに複数の値が含まれる場合は "" 内に改行区切りで選択される値を表記する必要があります。
Excel などで確認すると、セルの中で改行されて表示されると思います。
Excel で編集する場合は「Alt + Enter」を押すと、セル内で改行できます。

テーブル内でも同様に、テーブルの行内当該のフィールドの値を "" 内改行区切りで選択される値を表記します。

CSV 表現の例

上の画像のレコード 2 件の場合、次の CSV で表現できます。

1
2
3
4
5
6
"チェックボックス","複数選択"
"check1
check2","select1
select2
select3"
"check1","select2"

エクセルで表示した場合は次のとおりです。

CSV 表現の例(テーブル内のフィールドの場合)

上の画像のレコード 2 件を CSV で表現する場合以下になります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
*,"チェックボックス","複数選択"
*,"check1
check2","select1
select2
select3"
,"check2","select2"
,"check1","select2
select3"
,"check1
check2","select1
select3"
*,"check1","select2
select3"

エクセルで表示した場合は次のとおりです。

レコードが正しく追加されてない場合のデバッグ方法

おおむねエラーメッセージに対応すればエラーは解消されるとは思いますが、cybozu.com 共通管理から実行されたリクエストを見ると問題が特定しやすいです。
kintone の右上の歯車のマークのメニューから「cybozu.com 共通管理」へ移動し、左のカラムの「システム管理」内「監査ログ」の「閲覧とダウンロード」に移動します。

こちらの監査ログの一覧を見ると、レコード操作やその成否が、また表左の「i」マークをクリックすると詳細なレコード操作の内容が確認できます。
こちらを見て、cli-kintone からリクエストが届いているか、どのようなエラー内容が出ているかを見ることでうまくいかない原因を探しやすくなります。

まとめ

第 2 回はここまでです。
レコード追加と削除、いかがでしたでしょうか?
次回はレコードの更新をやっていきます。

information

この Tips は、cli-kintone Ver 0.10.2 と 2020 年 3 月版 kintone で動作を確認しています。