レコードの値を取得してみよう
今回は、kintone JavaScript APIを使って、kintoneアプリからレコードの値を取得する方法を学びましょう。
カスタマイズを適用するアプリ
レコード詳細画面にボタンを配置してみよう で利用したアプリを使います。
追加したボタンの押下時にレコードの値を取得する
レコードの値を取得する kintone JavaScript APIを利用して、メニューの空白部分に追加したボタンをユーザーがクリックした時に、表示しているレコードの値を取得する方法を説明します。
レコードの値を取得する流れ
追加したボタンをクリックした時にレコードの値を取得したい場合、次の流れで処理を実装します。
- 追加したボタンに対して、JavaScriptのイベントハンドラーで
onclick
イベントを発生させる。 kintone.app.record.get()
でレコードの値を取得する。
レコードの値を取得するサンプルコード
アプリに次のカスタマイズを適用してみましょう。
メニューの空白部分のボタンがクリックされたら、レコードの値を取得し、スペースフィールドに取得した更新日時を表示するサンプルコードです。
|
|
レコード詳細画面を開いてボタンをクリックした際に、次のようにスペースフィールドに更新日時の値が表示されていればレコードの値の取得に成功しています。
注意点① フィールド形式とフォーマット
スペースフィールドに表示された更新日時と更新日時フィールドの日時を見比べると、2つの日時の書式が違っていますね。
このように、APIから取得した値は、Webページ上に表示されている値と書式/フォーマットが異なる場合もあります。
今後、コードを書いていくときには注意しましょう。
フィールド形式とフォーマットの詳細は、
フィールド形式
と
日時のフォーマット
を確認してください。
注意点② kintone.events.on()のイベントハンドラー内では利用できない
実際の現場では、レコードの値を取得する場合、今回のように「ボタンを置いてクリック時に取得する」というユースケースより「ページの表示時に取得する」というユースケースの方が一般的に多いと思います。
ここで、誤解しやすい重要な注意点があります。
それは、kintone.events.on()
のイベントハンドラー内ではkintone.app.record.get()
を実行できないということです!
つまり、次のコードは動きません。
|
|
レコードの値を取得する の制限事項にも記載されていますが、誤解しやすいポイントなので、忘れないように注意しましょう。
それでは、kintone.events.on()
のイベントハンドラー内で、レコードのデータを取得するにはどうすればいいでしょうか。
その方法について、次の章で説明します。
kintone.events.on()のイベントハンドラー内でレコードの値を取得する
kintone.events.on()
のイベントハンドラー内で、レコードのデータを取得する方法を説明します。
レコードの値を取得する流れ
レコード詳細画面ページの表示時にレコードの値を取得したい場合、次の流れで処理を実装します。
kintone.events.on
で、 レコード詳細画面を表示した後のイベントapp.record.detail.show
を指定する。- イベントハンドラーに渡される引数のイベントオブジェクトからレコードの値を取得する。
イベントオブジェクトについては、のちほど詳しく説明します。
レコードの値を取得するサンプルコード
アプリに次のカスタマイズを適用してみましょう。
レコード詳細画面を開くと、レコードの値を取得し、
レコード詳細画面にボタンを配置してみよう
で追加したスペースフィールドに取得した値を表示するサンプルコードです。
|
|
レコード詳細画面を開いたときに、先ほどと同様に、スペースフィールドに更新日時の値が表示されていればレコードの値の取得に成功しています。
レコード詳細画面を表示した後のイベントのイベントオブジェクトには、レコードのデータが含まれています。
そのため、kintone.app.record.get()
と同様に表示されたレコードデータを取得できます。
イベントオブジェクトとは
ここで、先ほどから出てきている「イベントオブジェクト」について解説します。
コードの中のevent
がイベントオブジェクトにあたります。
|
|
イベントオブジェクトにどのような値が入ってくるかは、 レコード詳細画面を表示した後のイベント のイベントオブジェクトのプロパティの表で確認できます。
コードを簡単に解説すると、「イベントオブジェクトのrecordプロパティの中からフィールドコードが”更新日時”の要素を指定し、その値を取得している」という処理になっています。
|
|
イベントオブジェクトのプロパティはイベントごとに異なります。
そのため、実装の際は、それぞれの
イベント
のページでイベントオブジェクトのプロパティを確認しましょう。
補足
kintoneのイベントオブジェクトについては、はじめようkintone APIの kintoneのイベントオブジェクト も参考にしてください。
おわりに
今回は、kintoneアプリからレコードの値を取得する方法について学びました。
kintone.app.record.get()
がkintone.events.on()
のイベントハンドラー内で実行できない点は、初心者が特に間違いやすいポイントなので注意しましょう。
次回は、 イベントオブジェクトを使ったフィールドの値を書き換えてみよう で、イベントオブジェクトを使ったレコードの更新について学習しましょう。