カテゴリー内の他の記事

第10回 kintone REST APIを利用したレコード取得

フォローする

(著者:Cstap 落合 雄一

はじめに

前回、kintone REST APIをはじめて利用しましたが、アプリ情報やレコード情報の取得についてもkintone REST APIを利用することができます。この機会にトライしてみましょう(^^)

アプリ情報の取得

それでは、レコード情報の前にアプリ情報の取得で肩慣らししましょう(^^♪

アプリ情報の取得には、 kintone REST API (アプリ) のアプリ情報の取得(1件)  を利用します。

kintone REST APIをkintone JavaScript APIから利用する方法は、前回紹介しましたね(*^_^*)

では早速、これらを利用してアプリ情報を取得する処理を書いてみましょう(^^♪

いかがでしょう?ここでは、前回説明を省略したcallbackについて少し補足しておきます(^^)
成功時のcallbackに指定した無名関数を見てみて下さい。

成功時のcallbackはリクエストが成功した場合に実行され、APIからの戻り値(レスポンス)は引数として渡されます。取得した値の内容と使い方については、アプリ情報の取得(1件) のプロパティを確認してみましょう(^^♪

上図に示されたプロパティ群が、JSON形式でresp変数に格納されています。なお失敗時のcallbackについては、省略可のうえ特にするべきこともないため、今回は記述していません(^^)

それでは、このJavaScriptを前回作成した参照ログアプリにアップロードして実行してみましょう(^^♪

アプリ情報からアプリ名が取得出来ている事が確認できましたね\(*^▽^*)ノ

検索条件(クエリ)

kintone REST APIでレコード情報を一括取得するAPIは、レコードの一括取得(クエリで条件を指定) ですが、このAPIを使うにあたって「クエリ」について押さえておきましょう(^^♪

レコード一覧のクエリ文字列を取得する(order by, limit, offset付き) を見てみて下さい。このJavaScript APIで、現在の検索条件にあたるクエリ文字列を取得することができます。さっそく確かめてみましょう(^^♪

クエリに対する理解を深めるため、他の検索条件もいろいろ試して、検索条件とクエリ文字列の関係を確かめてみましょう\(^o^)/

アプリの準備

第7回 カスタマイズビューを利用してみよう で、信号機のアプリを作りました。今回は、このアプリを使ってkintone REST APIを利用したレコードの一括取得にチャレンジしてみましょう(^^♪

それでは、信号機のアプリのカスタマイズビューの設定を変えるところからはじめます。下図のように、「ページネーションを表示する」のチェックを外した状態で更新し、一覧画面を表示してみてください。

第7回で追加したJavaScriptにより、以下のような表示になりましたね。

これは、「ページネーションを表示する」のチェックを外したため、event.recordsにデータが格納されていないからです。

レコードの一括取得

今のままだとレコード情報がないため、kintone REST APIを使ってレコードの一括取得を行いましょう(^^♪

それでは、レコードの一括取得(クエリで条件を指定) を確認してみましょう。

ここまで来ればリクエストは簡単に作れそうです。fieldパラメータは省略して良いので、それ以外の2つを指定してレコードを一括取得してみましょう(^^♪

できました。\(*^▽^*)ノ

ちなみにここまで敢えて触れませんでしたが、レコードの一括取得(クエリで条件を指定)で一度に取得出来るレコード数は100件までです。その辺りについての応用編として、101件以上を「さらに表示」ボタンを使って表示する のほうに活用例を書いておきましたので、是非そちらもご覧ください(^^)

最後に

kintone JavaScript APIも、kintone REST APIを利用した方法もだいぶ出来るようになりましたね(^^) kintone APIのドキュメント の中にはまだ紹介していないAPIもありますが、ここまで理解された皆さんはきっとドキュメントを読み進めながらより高度なカスタマイズが出来ると思います(*^_^*)

Let’s kintoneカスタマイズ\(^o^)/

このTipsは、2014年11月版で確認したものになります。

<<第9回 kintone REST APIを利用したレコード追加 | 第11回 kintone REST APIを利用したレコード更新>>

デモ環境

https://dev-demo.cybozu.com/k/16/

※デモ環境についての説明はこちら

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

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
ako.nakayama

第1回から勉強させていただいています。
具体的な流れで書いてあり、とても参考になりました。
REST APIの理解をもっと深めていきたいと思っています。11回目の連載も楽しみにしています。

Avatar
hsy横山

落合様

お世話になります

hsy横山です。

kintoneのレコード更新を以下の範囲で作成しようと思います。

1.同一レコードのフィールドの値を 条件で更新(外部より 値を指定)

2.レコードを条件で別アプリに出力

この場合、jsでのコードは、レコードを持っている元のアプリにjsを書く様になりますでしょうか

ご教示戴けます様お願いします

Avatar
武井 琢治

hsy横山さん

サイボウズスタートアップス武井です。

 

おっしゃる内容だけですと、具体像が見えにくいので回答しにくいのですが、

1.については、どのタイミングで更新するかでJSの書くべき場所が変わってくると思います。

例えば、「レコードを持っていない別のアプリのレコードを保存したタイミングで、元のアプリのレコードを更新したい」のであれば、

それは「別のアプリ」の方でJSを書く必要があります。

2.についても、出力するタイミングが問題で、元のアプリの保存時や、何かのボタンを押したときなどであれば、

「元のアプリ」でJSを書く必要があります。

Avatar
hsy横山

武井様

お世話になります。

回答戴き有難う御座いました。

 

集計後のレコードで帳票を作成します。その為のワークです。

処理前にレコードをjsで削除してから、毎回追加出力を考えております。

レコードを削除するjsのサンプルがあれば、ご教示お願いします。

 

<別件です>

kintoneのレコードをエクセルに直接貼り付けexcel帳票として印刷できる技法は、ございましでしょうか

Avatar
武井 琢治

レコード削除については以下のURLにサンプルコードがあります。

https://cybozudev.zendesk.com/hc/ja/articles/201941794

Avatar
hsy横山

武井様

お世話になります。

回答有難う御座いました。

レコード削除の確認させて戴きます

アプリ間で更新する場合、更新先のアプリidが判れば、更新をREST APIで可能でしょうか

いま レコード一覧イベント画面にボタンを置き、動かそうとしております。

①更新先 レコードを全件削除後、クエリーで追加、一つのjsで記載を考えています。

処理の手順が不慣れですので、ご教示戴けると助かります

 

Avatar
武井 琢治

>アプリ間で更新する場合、更新先のアプリidが判れば、更新をREST APIで可能でしょうか

更新の場合、アプリIDの他に、更新対象レコードのレコード番号が必要だと思います。

Avatar
hsy横山

武井様

 

回答有難う御座います。

常に追加では、更新先のレコード番号は、不要でしょうか

宜しくお願いします。

 

EXCEL連携についても教えて戴きたくお願いします。

 

 

 

Avatar
武井 琢治

レコード追加であればレコード番号は不要です。

レコード更新であればレコード番号は必要です。

 

Excelについては、本記事と関連しないと思うので、

コミュニティで改めて質問されてみてはいかがでしょうか。

Avatar
hsy横山

武井様

 

回答有難う御座います。

追加で教えて下さい。

元アプリのレコードをクエリーで抽出し、別にアプリに値をセットする場合の

Record の記述をREST APIで見ましたが、レコードの値を入れる記述しか例示がありません。

元のフィールドの値を送る場合の記述をご教示下さい

 

Avatar
hsy横山

失礼しました

補足です レコードの値を入れる記述とは、VALUE'TEST1'とか、VALUE '1234'等との事です

ログインしてコメントを残してください。
Powered by Zendesk