ローカル開発環境でレコードの値を取得できない

よろしくお願いします。

こちらを参考に、kintone.app.record.get();でレコードの値を取得しようとしています。

https://developer.cybozu.io/hc/ja/articles/201942014#step5

しかし、ローカル開発環境で実行するとnullが返ってきてしまい、期待した値を取得することができません。

(kintone.app.recordの中身が全てnullになっています)

 

その他以下のような状況です。

・JSファイルの読み込みはできている(テストのためconsole.log(“test”);などを実行すると表示されている)

・ブラウザのコンソールから同様に実行した場合は値が取得できる

レコードの状態などが関係しているのでしょうか?(現在下書き状態になっています)

お分かりの方がいらっしゃいましたら、よろしくお願いいたします。

mm様

お世話になっております。

cstapの江田と申します。

「kintone.app.record.get」を「kintone.events.on」のイベントハンドラ内で実行していたりしませんか?

もしその場合は、下記リンクの注意事項にもありますが、代わりに引数のeventオブジェクトからレコードデータを取得する必要があります。

https://developer.cybozu.io/hc/ja/articles/201942014#step2

江田様

コメントありがとうございます。

今回イベントハンドラは利用しておらず

(function() {

  console.log(kintone.app.record.get());

}).call(this);

この状態でレコードの中身が全てnullとして返ってくる、という状況です。

更に言えば

console.log(kintone.app.record.get());

これ単体でも全く同じ結果になります。

(ただしブラウザのコンソールでは正常な値が返る)

 

ちなみにget(レコード番号)としても結果同じでした。

こちらの件追記させていただきます。

(function() {
  kintone.events.on(‘app.record.detail.show’, function(event) {

})();

このイベントハンドラを使用する場合はレコードの値が取得できるということが確認できました。

 

しかし、今回行いたい動作として、

・現在のレコードの値

・隣接するレコードの値

の両方を同時に取得する必要があります。

 

当初はkintone.app.record.get(隣接するレコードのID);で取得するつもりだったのですが、

現状event.recordで現在のレコードの値を取得することはできるものの、それ以外のレコードの値を取得することができません。

何か良い方法があればご教示いただけないでしょうか。

 

mm様

お世話になっております。

kintone.app.record.get()は、「現在開いてるレコードデータをJSON形式で取得」するためのメソッドです。
引数でレコードIDを指定することはできません。

record.jsonを用いることで、アプリIDとレコードIDからレコードの取得ができます。
下記リンクの「レコードの取得(1件)」の「JavaScriptサンプル」の「kintone REST API」のコードを参考にするとよいと思います。
https://developer.cybozu.io/hc/ja/articles/202331474

また、上の「
(function() {
console.log(kintone.app.record.get());
}).call(this);
この状態でレコードの中身が全てnullとして返ってくる、という状況です。
」について、私の環境でも同様の動作を確認しました。
ファイル読み込み時点で「kintone.app.record.get()」を実行しても、nullを返すようですね。
どのタイミングから取得できるようになるかは厳密には調査していませんが、「自作したボタンをクリックしたときにレコード取得する」といった場合などには問題なく利用できそうですね。

江田様

ありがとうございます!

ご教示いただいたrecord.jsonでうまくレコードを取得することができました!