他のアプリのフィールド値を利用してフィールドの自動計算を行うにあたって、rest APIのGETメソッドを用いたところうまくいきませんでした。デバックしてみたところ、以下のようなソースだとreturn event;がkintone.api();より先に実行されているなど、理解できていない部分がありました。
他のアプリのフィールド値を利用して自動計算を行う方法はあるでしょうか。
以下のソースの原因または上記の方法が分かる方に教えていただきたいです。
kintone.events.on(‘app.record.create.show’ , function(event) {
kintone.api(
kintone.api.url(‘/k/v1/records’, true),
‘GET’,
{
“app”: updateAppId,
“query”: ‘estimate_no = "’ + event.record.estimate_no.value + ‘"’
},
function(resp) {
var records = resp.records;
//レコード取得後の処理
}
);
return event;
});
秋山俊介さん
cstapの落合です。
REST API のkintone.Promiseオブジェクトを使った記述方法を参考にすると良いかと思います。
Promiseを使うことにより、ご要望の機能は実現できるかと思います。
ご回答ありがとうございました。
現在Promiseを用いて作成しているのですが、
Promiseを調べたところ、サポートされているのが
submit系のイベントだと知り、もう1つ質問させていただきたいと思います。
show系イベントでの他アプリのフィールド値を活用した方法は
現在はできない、または別の方法があるのでしょうか。
再度、ご回答いただけると幸いです。
では、レコード取得後にレコードに値をセットする を使ってみてはどうでしょう?
再度のご回答ありがとうございます。
レコード取得後にレコードに値をセットしてみてはどうでしょう、ということでしたが、
Peomiseを用いて他アプリから値を取得した後にレコード値のセットを行えばよいのではないか
という解釈で間違っていないでしょうか。
何度もお聞きしてすみませんが、お答えいただけると幸いです。
Peomiseを用いて他アプリから値を取得した後にレコード値のセットを行えばよいのではないかという解釈で間違っていないでしょうか。
kintone.app.record.set を使う場合は、Promise を用いる必要はありません。通常の kintone.api で非同期で取得後にレコードの値をセットして下さい。
説明が不足していて申し訳ないです…
最初に質問を挙げさせていただいた際に記したソースのように
kintone.apiを用いた際のfunction(resp)内でレコード値のセットを行う
ということですね。
数回にわたるご回答、誠にありがとうございます。
回答していただく時間が早いため、とても助かっております。
最初に質問を挙げさせていただいた際に記したソースのように
kintone.apiを用いた際のfunction(resp)内でレコード値のセットを行うということですね。
そうです!
また何かありましたらご質問下さい!
時間があれば回答します(^^)