cybozu developer network

カテゴリー内の他の記事

第3回 kintone コマンドラインツール(cli-kintone v0)でレコードの更新をしてみよう

この記事では ver. 0.x.x の cli-kintone の使い方を紹介しています。 ver.1.0.0 以降の cli-kintone の使い方は、次のページを参照してください。
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」)を重複禁止に変更します。

kintone_company.png

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」)を重複禁止にします。

kintone_title.png

STEP2 キーとなるフィールドコードの先頭に * をつけたCSVを作成する

次はCSVを作成します。

キーとなるフィールドの先頭に * を付けると、そのフィールドをキーとしてレコードを更新できます。先ほどと同じですね。

CSV一行目に「*Title」を含むレコードデータを作成します。

今度は各レコードに一行ずつ追加してみましょう。

これを update_subtable_by_title.csv としてShift-JISで保存します。

STEP3 レコードを更新する

キーとなるフィールドを指定する場合も、通常の追加・更新と同様のコマンドを実行します。

update_subtable_by_title.png

いかがでしたでしょうか。

第3回まででレコードの取得・追加・更新・削除など基本的なことをやってきました。そろそろcli-kintoneにも慣れてきたかと思います。

次回はクエリを使ったレコードの絞り込み、並び順の変更をやっていきたいと思います。

このTipsは、cli-kintone Ver 0.10.2 と2020年3月版 kintone で確認したものになります。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
Hiro
Hiroにより編集されました
サインインしてコメントを残してください。