新規投稿
フォローする

app.record.create.submit.successではREST APIが動かないが、app.record.edit.submit.successでは動くプログラム

いつもお世話になっております。

下記プログラムでアプリAレコード登録時にアプリBへアプリAのURLを貼り付ける処理を行っています。

editでは動きますが、createではうまく動かない状況が発生しています。

開発ツールでは「https://ドメイン.cybozu.com/k/146/show#record=373 に移動しました」と出ていますが、どうしてこのような表示がされてしまうのかわかりません。

原因をご存知の方はご教授いただけますと幸いです。

どうぞよろしくお願いいたします。

 

(function() {
"use strict";

var aAppId = 93; //マスタアプリのID

console.log('マスタ更新用');

kintone.events.on(['app.record.create.submit.success',
'app.record.edit.submit.success'], async function(event) {

console.log('マスタ更新用イベントIN');
var rec = await event['record'];

if(!rec['マスタのレコード番号']['value']){
return event;
}

 
console.log(rec['レコード番号']['value']);
var hako1 = await rec['マスタのレコード番号']['value']; //材料マスタアプリレコードID
var hako2 = await rec['レコード番号']['value']; //材料マスタ[一般名]アプリのURL
var hako3 = await 'https://ドメイン.cybozu.com/k/146/show#record=' + hako2;

//PUT//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//書き込み用配列
var parm = await {
'app':aAppId,
'id':hako1 , //材料マスタアプリレコードID
'record':{
 
//1つめのデータ
'alert':{'value': hako3},
 
},
};
 
await kintone.api('/k/v1/record','PUT',parm,
function(resp){console.log(resp);},
function(err){console.log(err);}
)
return event;

});

})();
0

4件のコメント

Avatar
rex0220

kuma さん

原因は、わかりませんが、パッと見たところ不要な await がたくさんあります。

とりあえず、「await kintone.api」以外の await は不要だと思いますので、取って見てはいかがでしょうか?

0
Avatar
kin太郎

アプリBへアプリAのURLを貼り付ける処理を非同期処理で記載されていないので

処理が終わる前にレコード登録後の画面に遷移しているのではないでしょうか

kintone API で Promise を使ってみよう!

0
Avatar
kuma

rex0220さん

いつも大変お世話になっております。

お返事いただきありがとうございます。ご指摘の通りにしてみました。

先ほど気づいたのですが、この現象はFirefoxでのみ発生するようで、

Google Chromeでは発生しませんでした…。

0
Avatar
kuma

kin太郎さん

お返事いただきありがとうございます。

ご教授いただいた方法を試してみましたが、残念ながら改善

しませんでした。

 

0
サインインしてコメントを残してください。