cybozu developer network

カテゴリー内の他の記事

第1回 kintone コマンドラインツール(cli-kintone v0)を使ってみよう!

この記事では ver. 0.x.x の cli-kintone の使い方を紹介しています。 ver.1.0.0 以降の cli-kintone の使い方は、次のページを参照してください。
kintone コマンドラインツール (cli-kintone)

(著者:サイボウズ 三宅 智子)

Index

はじめに

kintoneではExcel/CSVを使ってデータのインポートエクスポートをすることができますが、コマンドラインからもCSVファイルを使って同様なことができます!

※ コマンドラインはCSVファイルのみ対応しています。


kintone コマンドラインツールとは、簡単にコマンドライン上からkintoneにデータのインポート・エクスポートをできるようにしたツールのことです。

「はじめようkintone コマンドラインツール」では、以下のような方向けに、基本的な操作方法や活用方法をご紹介していきます。

  • エクセルなどと連携させたいけど、プログラミング少し苦手という方
  • コマンドラインでのデータのインポートやエクスポートをしたいという初心者の方

通常のCSVのデータ入出力ではできないことも、こちらのコマンドラインツールを使えばできる!なんてこともあったりします。

初回は、まず「環境設定」と「レコードデータの取得」というテーマでお届けします。

レコードの登録・削除など、その後の回の内容は左サイドメニューからご確認頂けます。

環境の準備

kintoneのコマンドラインツールを利用するにあたり、まずは下準備です。OSはWindows/Linux/Mac OS Xの3種類での動作を確認しています。
本シリーズでは、Windowsの利用を想定して記事を書いています。

コマンドラインツールのダウンロードと基本的な使い方については以下でご紹介していますので、ご参照ください。

※コマンドラインツールは、動作を保証するものではありません。
※ソースコードの変更および再配布、商用利用等はライセンスに従ってご利用可能です。

それでは早速環境設定に移っていきましょう!

STEP1 ツールをダウンロードする

kintone コマンドラインツール(β)の動作OSやダウンロード用のツールについてはこちらに記載があるので、まずはそちらを確認します。

kintone コマンドラインツールはReleases kintone/cli-kintone (Github)からダウンロードできます。Windows/Linux/Mac OS Xと3種類の実行ファイルが用意されています。
ダウンロードしたZip形式のファイルを解凍して、cli-kintone.exeをCドライブ直下Program Filesなど任意のフォルダに置いてください。
※本記事では、Version 0.7.1 windows-x64.zipを使っています。

また、本記事ではShift-JIS形式のCSVを作成して取得や更新や登録処理を行っていきます。Shift-JIS形式で保存できるテキストエディタもご準備ください。

STEP2 コマンドプロンプトを立ち上げる

Windowsの場合、「キー」+「Rキー」で下の「ファイル名を指定して実行」画面を立ち上げて、名前欄に「cmd」と入力します。OKをクリックするとコマンドプロンプトが立ち上がります。
(Macの場合は、ターミナルというアプリケーションを起動します。)

STEP3 コマンドラインツールを実行する

cdコマンドで、cli-kintone.exeを置いたディレクトリに移動します。
※ディレクトリはフォルダーと同義です。以下ディレクトリと表記します。
※「cd <スペース> <exeファイルを置いたディレクトリ>」 と入力すると、
指定したディレクトリに移動してくれます。Change Directoryと英語に変換するとイメージつきやすいですね!

他にもこの先知らないコマンドが出てくるかもしれないですが、そんなときは検索して調べてみてください。
次に引数を何も指定せずに実行すると、コマンドラインツールで利用可能なオプションが表示されます。
オプションの詳細はこちらの記事をご参照ください。

mac OS をご利用の方は、cli-kintone コマンドを実行する前に、ダウンロードして頂いた「cli-kintone」へパスを通していただく必要があります。
bash_profile などに cli-kintone が保存されているディレクトリへパスを通していただければ、cli-kintone コマンドが実行可能になります。

kintone.png

この後、上記のオプションを利用して各種操作をしていきます。

※コマンドラインツールを利用する際は、常に最新版であることを確認してお使いください。
※セキュアアクセス環境には対応していません。

データの取得

この後のシリーズでは、データの追加/削除/更新などの処理についてもご紹介しますが、まず第1回事始めとして「データの取得」を試してみたいと思います。

その前にデータを取得するアプリをご用意ください。ここではアプリストアにある顧客リストアプリを利用します。
デモデータも数件入れておきます。後々分かりやすいようにフィールドコードも英数に修正しておきましょう。

アプリの準備ができたら、上述のオプションを利用してデータの取得を行います。パターンがいくつかあるので、順にご紹介していきます。

STEP1 ユーザー名/パスワードでkintoneのデータを表示する

ドメイン名がsample.cybozu.com、アプリIDが777、ログイン名がmynameの場合の例です。

mynameユーザーのパスワードを入力すると、以下のようにCSV形式ですべてのフィールドのデータがエクスポートされます。

※セキュリティ保護のため、パスワードを入力してもコマンドライン上には何も見えないようになっています。

※kintone.comやcybozu.cnのドメインを指定する場合は、sampleだけでなく、sample.kintone.com/sample.cybozu.cnのようにFQDNを指定するようにしてください。

1行目にはフィールド名ではなく、フィールドコードがエクスポートされます。

JSON形式で表示するには、認証オプションの後ろに続けて-o jsonを指定します。他のサービスにデータを受け渡したい時などは、JSON形式のデータを利用するケースが多いです。

※途中で処理を中断したい場合は、CTRL+Cを押してください。

STEP2 APIトークンを利用してkintoneのデータを表示する

APIトークンを利用すると、パスワードを入力しなくてもデータをインポート・エクスポートすることができます。APIトークンを使うメリットは・・・

  • ユーザー認証が必要ない
  • 限られたアプリのみ操作できる
  • 実行できる操作を制限することができる
    などが挙げられます。

APIトークンの生成方法はこちらをご参照ください。実行したい操作に合わせて、APIトークンの権限を設定していただく形になります。

※APIトークン認証を使った場合は、全てAdministratorが実行した操作として判断されます。

STEP3 Shift-JISでCSVファイルにエクスポートする

データをコマンドライン上で表示するだけでなく、次はファイルにエクスポートしてみます。諸事情(*後述)によりここではAPIトークンを利用しています。

kintoneではデフォルトでUTF-8で文字列データがエクスポートされるので、それ以外の文字コードでエクスポートしたい場合は-eオプションを利用します。
ここではsample.csvというファイルにShift-JIS形式でエクスポートします。

※エクスポート先のディレクトリを指定せずにCSVにエクスポートすると、コマンドラインツールの実行ファイルを置いたディレクトリに保存されます。
Cドライブ直下などに実行ファイルを置いているとシステム管理権限の影響で「アクセス拒否されました」とエラーが出る可能性があります。
その場合は、必ずエクスポート先のディレクトリのパスを指定してください。

▼実行ファイルを置いたディレクトリにそのまま保存

▼ディレクトリを指定して保存(ここではデスクトップに保存)

*ユーザー認証でデータをCSVにエクスポートしようとすると、パスワード要求がされず「あれれ?」となると思います。
 要求はされないもののコマンド上でパスワード入力すると、データとともに「Password」という文字列がCSVにエクスポートされます。
 そもそもの説明をすると、「コマンド>ファイルのパス」という書き方をファイルのリダイレクトと言うのですが、これはコマンドラインへの出力内容をファイルにエクスポートするという処理になります。
 なのでデータとともにPasswordという文字列もエクスポートされるのです。
 基本的にはファイルへのエクスポートという操作は、バッチ処理(自動実行)を想定したものなので、その場合は認証オプションの後ろに続けて-p オプションでパスワード指定してエクスポートするようにしてください。

STEP4 エクスポートするフィールドを指定する

さらに-cオプションを使うと、エクスポートするフィールドを指定することができるので、やってみます。ここでは$idと会社名と担当者名のみエクスポートします。
書き方としては、「-c "書き出したいフィールドコード"」になります。

※フィールド名ではなく、フィールドコードで指定します。ここよく間違うので注意ポイントです!

STEP5 絞り込み条件と並び順を指定する

-qオプションを使うことで、絞り込み条件と並び順を指定できます。条件式の書き方はこちらを参照してください。
ここでは、部署名が「営業部」のレコードの$idと会社名と担当者名と部署名を、レコード番号降順でエクスポートします。
クエリ指定箇所のエスケープ処理も忘れずに!

STEP6 テーブルのデータはどのような形式で表示されるのか確認する

最後にテーブル付きのレコードデータはどのように表示されるのか見てみます。慣れれば大丈夫ですが、少し見方がややこしいので要注意です。
ここでは以下の交通費申請アプリを利用しています。

3件ほどデータを登録してコマンドラインツールで表示してみます。

CSVファイルのエクスポート結果は以下になります。

CSVでどのフィールドがどこに対応しているのか見にくい場合は、Excelファイルで開いて見てください。

ここから見方の解説です。

書き出したCSVの1行目には1列目に"*"マークが出力され、その後フィールドコード名が並びます。2行目以降で"*"マークがついていない行は、テーブル内の2行目以降のデータになります。
上記のCSVデータの場合、3レコードがエクスポートされています。レコード番号1番のテーブル内に4行分、レコード番号2番のテーブル内に3行分のデータが入っているため、CSVでもそれぞれその行数分のデータがエクスポートされています。

実際に登録しているデータは以下になります。考えるときの参考にしてみてください。

また、テーブルを含むレコードの登録については「第2回 レコードの登録・削除をしてみよう」で、
テーブルを含むレコードの更新については「第3回 レコードの更新をしてみよう」で詳しく解説していきます。

第1回、無事最後まで完走できましたでしょうか?今回はここら辺で!次回はデータの追加と削除をやっていきます。お楽しみに^^

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

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

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

Avatar
cybozu Development team

小泉直哉(ミッドランドITソリューション) 様
cybozu developer network 事務局でございます。

kintone コマンドラインツールの使い方のテーブルの書き出し、読み込みが参考になるかと思います。

その他、記事とは直接関係がない、または技術的なご質問などがあればぜひcybozu developer コミュニティをご活用ください。

Avatar
kintone_user72630

> cli-kintone.exe --export -a <アプリID> -d <ドメイン名> -u <ログイン名> -c "$id,Company,Name,Department" -q "Department = \"営業部\" order by $id asc"

上記のコマンドを参考に、当日に更新されたレコードだけを抜き出したいのですが、下記2点がわからず困っております。

 ・標準で追加される「更新日時」の項目名

 ・「更新日時が当日」の指定方法

ご教授頂けますと幸いです。

Avatar
cybozu Development team

kintone_user72630 様
cybozu developer network 事務局でございます。

「更新日時」フィールドのフィールドコードは、デフォルトでは「更新日時」となっております。

また、更新日時が当日のレコードを抽出する方法については、条件式の書き方が記載されているこちらのページが参考になるかと思います。

その他、記事とは直接関係がない、または技術的なご質問などがあればぜひcybozu developer コミュニティをご活用ください。

cybozu Development teamにより編集されました
Avatar
Okamoto

いつもお世話になります。

コマンドラインツールを利用させていただいております。

コマンドラインツールで、一覧やクロス集計をダウンロードをすることは可能でしょうか。

可能でしたらその際のコマンド指定方法等ご教授お願いいたします。

Avatar
cybozu Development team

Okamoto 様

お世話になっております。cybozu developer network 運営でございます。

コマンドラインツールは、アプリのレコードデータのインポート・エクスポートを実現するためのものとなっており、
一覧や表などのフォームやアプリ設定データの出し入れは想定しておらず、不可、となっています。
使い方や概要に関しては当シリーズを確認いただくか、ドキュメント(英語)をご確認ください。

よろしくお願い致します。

Avatar
Okamoto

cybozu developer network 運営様

いつもお世話になっております。

回答ありがとうございます。本件承知いたしました。

今後ともどうぞよろしくお願い申し上げます。

Avatar
YasHiro

cybozu developer network 運営局 ご担当様、

kintoneからのエクスポート時においてチェックボックス項目をエクスポート対象に指定した場合、複数の選択肢が選ばれているチェックボックス項目のCSVファイル出力結果は、どのような形となるのでしょうか?

YasHiroにより編集されました
Avatar
cybozu Development team

YasHiro 様

お世話になっております。cybozu developer network 運営でございます。

「第2回 kintone コマンドラインツールでレコードの登録・削除をしてみよう」の記事内の「注意ポイント:チェックボックスや複数選択で複数チェックが入る場合のCSV表現」の項にありますように、チェックボックスで複数選択されている場合は改行で表現されます。

よろしくお願い致します。

Avatar
NMT

初歩的なご質問で恐縮ですが、ご教授願います。

登録済レコード数、約5,500件のバックアップ目的で、
cli-kintoneを使ってエクスポートしようとしましたが、160件しか
csvエクスポートできませんでした。全てエクスポートできないのであれば、記述誤りかとも思いますが、一部だけしかエクスポートされない点が解せません。出力レコードを確認すると、直近登録分の160件でした。
なにか設定が漏れていないか確認させてください。よろしくお願いします。

Avatar
cybozu Development team

NMT

お世話になっております。cybozu developer network 運営でございます。

クエリの指定によって件数は変わり得ますが、指定なければ全件取得されるかと思われます。
cli-kintoneに指定しているユーザーの権限などに問題はありませんでしょうか?

恐れ入りますが、こちらのコメント欄は記事内容のフィードバック目的となっているため、
記事から派生した技術的なご質問はcybozu developer コミュニティをご活用ください。

よろしくお願い致します。

Avatar
Permanently deleted user

お世話になります。

下記で「ERROR: Error: connect ETIMEDOUT」になります。

cli-kintone.exe record export --base-url https:/XXXXXXXX.cybozu.com --app NNN --api-token XXXXXX

対策方法をご教授いただけると助かります。

よろしくお願いします。

 

 

Avatar
cybozu Development team

和田様

お世話になっております。cybozu developer network 事務局です。

お使いの cli-kintone のバージョンとOSを教えていただいてもよろしいでしょうか。

Avatar
Permanently deleted user

お世話になります。
以下になります。
●cli-kintoneのバージョン

C:\cli-kintone>cli-kintone --version
1.2.0

●OS

エディション:Windows 10 Enterprise
バージョン:20H2

Avatar
cybozu Development team

和田 將利

お世話になっております。cybozu developer network 運営でございます。

コマンドの内容にも問題がみあたらず、バージョンも最新であることと、
エラー内容から察するに通信など環境起因の問題があるかもしれません。

ネットワーク接続が問題ないかなど一度ご確認いただければと存じます。
例えばセキュリティソフトが通信を止めていたり会社のネットワーク環境の制限などはあり得るかと思います。

よろしくお願い致します。

サインインしてコメントを残してください。