kintoneからのデータの読み書きといえば、基本機能のファイルの書き出し・読み込みがありますが、残念なことにサブテーブルの読み込みや添付ファイルの入出力に対応していません。
弊社にも添付ファイルの一括出力や登録のカスタマイズに関する相談をいただくケースがありますが、実は問題を一発で解決できる便利なツール「kintone コマンドラインツール(β)」というのもがあります。
今回は、このコマンドラインツール(cli-kintone)の活用方法をご紹介したいと思います。
準備しよう
kintone コマンドラインツール(β)をcybozu.com developer networkから「プログラム(外部サイト)」を選択し、Windows版をダウンロードして任意のフォルダに展開します。
コマンドプロンプトを起動しよう
Windowsで利用する場合は、「コマンドプロンプト」を利用します。
コマンドプロンプトを起動して、上記展開したツール(cli-kintone.exe)配置先へ移動します。
ツール実行に必要な情報を確認しよう
ツール実行に必要なオプションと値を確認します。
kintoneへのデータ入出力時の認証ではユーザー名/パスワードかAPIトークンを利用できます。
トークンはアプリに紐づく認証キーになるため、アプリ管理者が有効/無効をコントロールができるため、通常はトークンの利用をオススメしますが、登録者/更新者がすべてAdministratorとなるため登録者や更新者を指定のユーザーにしたい場合はユーザー認証を利用するのが良いかと思います。
ここではAPIトークン利用を前提で進めていきます。
オプション 内容 確認した値 -a アプリID 99
※IDはURLに表示されています。-d サブドメイン名 joyzo.cybozu.com
※サブドメイン名はURLに表示されています。-t APIトークン xxxxxxxxxxxxxxx
※アプリの管理画面から発行できます。
アプリデータをCSVファイルに書き出そう
先ほど確認した必要な情報でツールを実行して、kintoneアプリデータをCSVファイルに書き出します。
>cli-kintone.exe –a アプリID –d サブドメイン名 –t APIトークン –e 文字コード > 出力ファイル名
入出力するデータの文字コードは標準がUTF-8ですのでここではUTF-8を前提とします。
例)全てのフィールドを出力する場合
>cli-kintone.exe -a 99 -d joyzo -t xxxxxxxxxxxxxxx > output.csv
特定のフィールドを出力する場合
出力したCSVを加工して利用する場合、多くのフィールドの中から必要なフィールドだけを出力したい事があります。その場合には、-cオプションを使用することで出力するフィールドを指定できます。
例)レコード番号,担当者名,TELのフィールドを出力する場合
>cli-kintone.exe -a 99 -d joyzo -t xxxxxxxxxxxxxxx -c “$id,担当者名,TEL” > l1output.csv
絞り込み条件・並び順を変えて出力する場合
顧客管理から住所が特定の県のデータを出力したいという場合には、-qオプションを使用することで絞り込み条件と並び順を指定できます。
例)住所フィールドに千葉県を含み、レコード番号の昇順で出力する場合
>cli-kintone.exe -a 99 -d joyzo -t xxxxxxxxxxxxxxx -q “住所 like \”千葉県\” order by $id asc” > l2output.csv
CSVファイルデータをアプリに読み込もう
ツールを実行して、CSVファイルデータをkintoneアプリに登録します。
登録済みデータの更新
既存のデータを更新するには、CSVファイルに$idカラムが必要となります。
先ほどCSV出力したアプリデータの郵便番号を変更する場合は、以下のようなCSVファイルを使用します。
ツールを実行して既存のデータを更新します。
>cli-kintone.exe -a 99 -d joyzo -t xxxxxxxxxxxxxxx -f reinput.csv
新規データ登録
CSVファイルに$idカラムが存在しない場合、新規にレコードが登録されます。
以下のような$idカラムが存在しないCSVファイルを用意します。
ツールを実行して新規にレコードを登録します。
>cli-kintone.exe -a 99 -d joyzo -t xxxxxxxxxxxxxxx -f newinput.csv
既存データを全て削除して登録
-Dオプションを利用するとアプリに登録されているレコードデータを全て削除して、CSVファイルのデータが登録されます。
サブテーブルを含むアプリデータをCSVファイルに書き出そう
見積管理や物品購入申請などアプリ内にサブテーブルを使用している場合に、サブテーブルの読み込みに対応しているcli-kintoneが便利です。
サブテーブルを含むとツールの実行作業が難しくなるのではないかと思いますが、サブテーブルを含まないものと同様のコマンドで実行できます。
前回と同様にAPIトークンの発行と対象のアプリIDを確認して、kintoneアプリデータをCSVファイルに書き出します。
>cli-kintone.exe -a 100 -d joyzo -t xxxxxxxxxxxxxxx > output.csv
結果は以下のように出力されます。
CSVファイルデータをサブテーブルを含むアプリに読み込もう
ツールを実行して、CSVファイルデータをkintoneアプリに新規登録します。
新規データ登録
前述の通りサブテーブルを含むアプリに関しても、CSVファイルに$idカラムが存在しない場合、新規にレコードが登録されます。
以下のような$idカラムが存在しないCSVファイルを用意します。
ツールを実行して新規にレコードを登録します。
>cli-kintone.exe -a 100 -d joyzo -t xxxxxxxxxxxxxxx -f newinput.csv
サブテーブルを含むアプリにも読み込めました!
kintoneアプリの添付ファイルを一括ダウンロードしよう
kintone上の添付ファイルを一括でダウンロードすることも簡単にできます。
–bオプションの後に、ダウンロード先を指定してkintoneアプリに登録されているレコード内の添付ファイルを一括ダウンロードします。
>cli-kintone.exe -a 99 -d joyzo -t xxxxxxxxxxxxxxx -b C:¥Tools¥kintone_cmd¥download
指定先のフォルダに添付ファイルデータが一括ダウンロードされました!
*CSVファイルも同時に出力する場合は、 > output.csv を追記します。
kintoneアプリに添付ファイルも一緒に一括登録しよう
kintoneでアプリを作成し、既存システムから添付ファイルも移行したいという時にcli-kintoneでアップロードすると便利です。
今回は上記のような初期導入時を想定して、新規登録を実施します。
ポイントは、-bオプションの後に、アップロードファイル配置先を指定するだけです。後はCSVファイルを使用した登録と同様です。
1.アップロード準備として、添付ファイルを配置します。
2.$idカラムが存在しないCSVファイルを用意します。
3.ツールを実行します。
>cli-kintone.exe -a 99 -d joyzo -t xxxxxxxxxxxxxxx -b C:¥Tools¥kintone_cmd¥upload -f newinput.csv
添付ファイルも含むレコードが一括で新規登録されました!
カスタマイズを必要とせずに、簡単に実行できるcli-kintoneは大変便利です。過去のデータを登録するのをどうするかを悩んで、kintoneの導入を見送っていた方は、このツールで解決できるかもしれません。是非ご活用ください。また、「kintone(キントーン)コマンドラインツールを使ってデータ移行してみる!」の記事は本稿の応用編となりますので、合わせて参考にして頂ければと思います。
関連記事