第 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 で動作を確認しています。