第 3 回 kintone コマンドラインツール(cli-kintone v0)でレコードの更新をしてみよう
このチュートリアルではver. 0.x.xのcli-kintoneの使い方を紹介しています。
ver.1.0.0以降のcli-kintoneの使い方を紹介するチュートリアルは次のページを参照してください。
はじめよう cli-kintone
はじめに
第1回と第2回でcli-kintoneのレコードの取得と追加、削除について学びました。
それでは、今回も引き続き
顧客リストアプリ
を使ってcli-kintoneによるレコードの更新をやっていきます。
CSV作成の際のフィールドコードはご自身の環境のものに合わせてください。
レコード ID を指定してレコードを更新する
STEP1 「$id」のカラムを含むレコードの CSV データを用意する
今回は前回追加した顧客3人のレコードに部門情報を加えてみましょう。
レコードを更新するには$id
のカラムを含むCSVを用意します。
レコードをcli-kintoneで取得し、そのCSVを編集する形で行うのがよいかと思います。
レコードのCSVファイルへのエクスポート方法は
第 1 回 kintone コマンドラインツール(cli-kintone v0)を使ってみよう!を参照してください。
省略されたフィールドは変更されないので、CSVの入力は更新したいフィールドのみでOKです。
次はidが"4","5","6"の場合のcsvファイルです。
|
|
こちらをupdate_customers.csvとしてShift-JISで保存します。
STEP2 レコードを更新する
追加時と同様のコマンドを実行するとレコードを更新できます。
Shift-JISで保存したため、-e
オプションを使って、-e sjis
を指定しましょう。
-
実行ファイルと同じ場所にupdate_customers.csvを保存した場合
1
>cli-kintone.exe --import -a <アプリID> -d <ドメイン名> -t <APIトークン> -e sjis -f update_customers.csv
-
update_customers.csvのファイルパスを指定する場合
1
>cli-kintone.exe --import -a <アプリID> -d <ドメイン名> -t <APIトークン> -e sjis -f c:\Users\Desktop\update_customers.csv
キーとなるフィールドを指定してレコードを更新する
STEP1 キーとなるフィールドを重複禁止の設定にする
cli-kintoneでは、重複禁止のフィールドを指定してレコードを更新できます。
今回はアプリの設定を変更して、「会社名」のフィールド(フィールドコードでは「Company」)を重複禁止に変更します。
STEP2 キーとなるフィールドコードの先頭に * をつけた CSV を作成する
フィールドを重複禁止にしたら、次はCSVを作成します。
キーとなるフィールドの先頭に*
をつけると、そのフィールドの値に一致するレコードが更新されます。
今回は「Company」を重複禁止にしたので、CSVの一行目に*Company
を含むレコードデータを作成します。
先ほど部門情報を加えた3つのレコードに対し、名前を変更して電話番号を追加するCSVが以下になります。
|
|
これをupdate_customers_by_company.csvとしてShift-JISで保存します。
STEP3 レコードを更新する
キーとなるフィールドを指定する場合も、追加・更新と同様のコマンドを実行します。
|
|
レコードの更新と追加を同時に行う
STEP1 CSV ファイルを用意する
レコードの更新と追加を同時に行う場合、CSVでレコードIDを指定する必要があります。
CSVファイルの書き方は以下のような形になります。
追加するレコード
$id
のカラムを""
にして、その他の項目を入力します。
このとき、必須項目は値を必ず入力する必要があります。
更新するレコード
通常の$id
のカラムに対応する数値を入れ、その他の更新したい項目を入力します。
このとき、フィールドの値を変更したくない場合は元の値を、そうでない場合は新しい値を入力してください。
以上を踏まえてレコードデータを書くと、次のようになります。
|
|
こちらはupdate_and_post_customers_by_company.csvとしてShift-JISで保存します。
STEP2 レコードを更新・追加する
こちらの場合も、追加・更新と同様のコマンドを実行します。
|
|
レコードを削除したあとで更新する
STEP1 CSV ファイルを用意する
レコード追加時と同様に、更新時も実行前にレコードを削除できます。
IDまたはフィールドのどちらを指定する場合でもよいので、レコード更新時に利用するCSVをそのまま利用すれば大丈夫です。
今回は、最初のupdate_customers.csvを用いて更新処理をしてみましょう。
STEP2 レコードを削除・更新する
追加時と同様に、-D
および-f
オプションを指定すると削除後の更新が可能です。
このとき、更新するレコードが削除対象に含まれないように、-q
オプションでクエリを指定する必要があります。
今回update_customers.csvはレコードIDが4,5,6のものを更新するので、これらを含まない最新2件のレコードを削除してから更新してみましょう。
|
|
また、IDを指定する場合は追加するレコードをCSVに記述すれば、削除後に追加・更新を同時に行うことも可能です。
テーブルを含むレコードの ID を指定して更新する
テーブルの表現を使って更新用CSVを作成すると、テーブルを含むレコードも同様に更新できます。
今回も前回と同じく、
交通費申請アプリ
を使って確認しましょう。
STEP1 $id
とテーブルを含むレコード更新用 CSV ファイルを作成する
前回または前々回で扱ったテーブルの表記方法は、フィールドコードの行と各レコード1行目の最初に*,
を追加していました。
今回も同様に更新用のCSVを作っていきます。
IDを指定するので、$id
カラムを追加します。
以下は、レコードIDが1,2,3の場合の例です。
前回追加したレコードの「金額」フィールド(フィールドコードは「Price」)の内容を変更しています。
|
|
これをupdate_subtable.csvとしてShift-JISで保存します。
STEP2 レコードを更新する
通常のレコード更新と同様のコマンドで、テーブルを含むレコードも更新できます。
|
|
キーとなるフィールドコードを指定して、テーブルを含むレコードを更新する
STEP1 キーとなるフィールドを重複禁止の設定にする
テーブルを含む場合も、重複禁止のフィールドを指定してレコードを更新できます。
こちらでは「タイトル」のフィールド(フィールドコードでは「Title」)を重複禁止にします。
STEP2 キーとなるフィールドコードの先頭に * をつけた CSV を作成する
次はCSVを作成します。
キーとなるフィールドの先頭に*
を付けると、そのフィールドをキーとしてレコードを更新できます。
先ほどと同じですね。
CSV一行目に*Title
を含むレコードデータを作成します。
今度は各レコードに一行ずつ追加してみましょう。
|
|
これをupdate_subtable_by_title.csvとしてShift-JISで保存します。
STEP3 レコードを更新する
キーとなるフィールドを指定する場合も、通常の追加・更新と同様のコマンドを実行します。
|
|
まとめ
いかがでしたでしょうか。
第3回まででレコードの取得・追加・更新・削除など基本的なことをやってきました。
そろそろcli-kintoneにも慣れてきたかと思います。
次回はクエリを使ったレコードの絞り込み、並び順の変更をやっていきたいと思います。
このTipsは、cli-kintone Ver 0.10.2と2020年3月版kintoneで動作を確認しています。