kintone コマンドラインツール (cli-kintone)
(著者:瀧ヶ平 充)
Index
はじめに
第1回と第2回でcli-kintoneのレコードの取得と追加、削除について学びました。
それでは、今回も引き続き顧客リストアプリを使ってcli-kintoneによるレコードの更新をやっていきます。
CSV作成の際のフィールドコードはご自身の環境のものに合わせてください。
レコードIDを指定してレコードを更新する
STEP1 $id
のカラムを含むレコードのCSVデータを用意する
今回は前回追加した顧客3人のレコードに部門情報を加えてみましょう。
レコードの更新を行うには $id
のカラムを含むCSVを用意します。
レコードをcli-kintoneで取得し、そのCSVを編集する形で行うのが良いかと思います。レコードのCSVファイルへのエクスポート方法はこちらをご参照ください。
省略されたフィールドは変更されないので、CSVの入力は更新したいフィールドのみでOKです。
▼ idが"4","5","6"の場合のcsvファイル
こちらを update_customers.csv
としてShift-JISで保存します。
STEP2 レコードを更新する
追加時と同様のコマンドを実行するとレコードを更新できます。
-e
オプションを忘れると文字化けしてしまうので、-e sjis
を今回も指定しましょう。
▼ 実行ファイルと同じ場所に update_customers.csv を保存した場合
▼ 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 で確認したものになります。
記事に関するフィードバック
記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。