複数の別アプリへの自動更新について。

在庫の情報を持つアプリが2つあり、在庫入力を別アプリで行い、

フィールドにドロップダウンの済を選択すると、在庫情報を持つ2つのアプリの

ドロップダウンを自動更新したい。1つのアプリの際は下記jsファイルより

変更されます。2つの場合はどのようにコードを書けばいいでしょうか?

 

(function() {

 “use strict”;

 

 var getValue = function(field){

 var value = parseFloat(field);

 if(!Number.isNaN(value)){

 return value;

 }else{

 return 0;

 }

 }

 

 

 kintone.events.on([‘app.record.create.submit.success’, ‘app.record.edit.submit.success’], function(e) {

 var record = e.record;

 

 var body = {

 app:54,

 id:getValue(record[‘record’].value),

 record:{

 [‘status’]:{

 value:record[‘status’].value

 }

 }

 };

 

 

 kintone.api(‘/k/v1/record’,‘PUT’,body,function(resp){

 window.alert(“更新しました”);

 

 },function(resp){

 window.alert(“エラー”);

 console.log(resp);

 

 })

 

 return e;

 });

})();

 

よろしくお願いします!

まず、現在のコードに問題点があります。

REAT API は、非同期処理のため、REAT API の処理完了を待たずに処理がすすみ return e; が実行され、イベント処理が終了します。

タイミングによって、たまたま REST API が正常に実行されているかもしれませんが、REAT API の完了後にイベントを終了するようにしてください。

kintoneにおけるPromiseの書き方の基本

 

次に複数のアプリの更新については、下記が参考になります。

安全に在庫管理を行うテクニック

複数アプリへのレコード一括処理 の bulkRequest を使うと、「いずれかのAPIで処理が失敗した場合、すべての処理がロールバックされる」のでお勧めです。

こちらも Promise の書き方で、bulkRequest を呼び出してください。