お世話になります。
タイトルの様に、Aアプリのフィールドに格納された番号を使用して、ゲストアプリからのデータを取得Aアプリに結果を表示させたいと思っております。
ajaxを使用して(GET)でプログラムを組み試みましたところ、データ一括取得でクエリ記法も問題なくネットワークを確認しても無事とれておりました。
結果を、レコード詳細画面に表示をさせたいとおもいましたが、「undefined」と表示されたり書きなおして再度試したら今後は、「object Object」と表示されました。
何が原因なのか、確認しておりますが解決に至っておりません。
どうかアドバイスを頂けましたら幸いでございます。
宜しくお願い致します。
プログラムは、下記のようにしてみて実行すると[object Object]と表示されてしまいます。書き方が悪いのでしょうか?
(function () {
“use strict”;
kintone.events.on('app.record.detail.show',function (event) {
//右メニューにボタンを設置
var myIndexButton = document.createElement('button');
myIndexButton.id = 'my_index_button';
myIndexButton.innerHTML = '修理進捗状況';
kintone.app.record.getSpaceElement('my_index_button').appendChild(myIndexButton);
myIndexButton.onclick = function () {
//定数群
var record = event.record;
var productNo = record['管理番号']['value'];
var FIELDS = {'管理番号':'管理番号','処理状況':'status'};
var appId = 330;
//kintoneリクエスト
var requesturl = '/k/guest45/v1/records.json' + '?app=' + appId + '&fields[0]=' + '端末名' + '&fields[1]=' + '処理状況';
var query = '管理番号="'+ productNo +'"limit 1';
requesturl += '&query=' + encodeURIComponent(query);
function result() {
return $.ajax({
url: requesturl,
type: 'GET',
dataType: 'json'
})
}
result().done(function(data) {
alert(data);
}).fail(function(response) {
if(response.responseJSON){
if(response.responseJSON.message){
alert('[kintone]' + response.responseJSON.message);
}else{
alert('データ取得失敗');
}
}else{
alert('データ取得失敗');
}
})
};
});
})();
高橋 和哉さん
cstapの落合です。
いくつか気になる点があります。
まず、kintone REST APIを扱うときは、jQueryのajaxではなくkintone.apiを使って下さい。
URLの生成APIもあるので、これも使って下さい。
あと以下の行は、guest45ではなくguest/45としないと動かないかと思います。
var requesturl = '/k/guest45/v1/records.json' + '?app=' + appId + '&fields[0]=' + '端末名' + '&fields[1]=' + '処理状況';
以上、参考になりますでしょうか?
cstap 落合さま
はじめまして。宜しくお願いいたします。
ご回答ありがとうございました。
早速、ご指摘頂きました通り、下記のようにプログラムを書き換えてみましたところ、「object Object」と表示されてしまいました。
/*
* kintone 顧客リストプログラム
* 修理進捗状況を表示
* author @KazuyaTakahashi
*/
(function () {
“use strict”;
kintone.events.on('app.record.detail.show',function (event) {
//右メニューにボタンを設置
var myIndexButton = document.createElement('button');
myIndexButton.id = 'my_index_button';
myIndexButton.innerHTML = '修理進捗状況';
myIndexButton.onclick = function () {
//定数群
var record = event.record;
var productNo = record['管理番号']['value'];
var params = {
query: '管理番号="'+ productNo +'"limit 1'
};
//URL取得
var urlget = kintone.api.urlForGet('/k/guest/45/v1/records', {app: 330,fields:['端末名','処理状況']},true);
//kintoneREST API
kintone.api(urlget,'GET',params,function(resp){alert(resp);});
};
kintone.app.record.getSpaceElement('my_index_button').appendChild(myIndexButton);
});
})();
高橋 和哉さん
「object Object」と表示される件については、alert
の引数となっているresp
の中身が最終的な値を指すものではないためとでも言いますか。何かしらの値をalert
で表示させたいのであれば、resp.records[0]['端末名']['value']
等を引数に使うことが必要です。関連するトピックはこの辺(1, 2)ですが、JavaScriptの一般的なことですので、console.log()
とalert()
の違いをググったりされると良いかと思います。
cstap 落合さま
山下さま
お世話になります。
色々とアドバイス有難うございました。
結果を表示する事が出来ました。
復習もかねて、応用へ進みたいと思います。
宜しくお願い致します。