新規投稿
フォローする

マスタアプリの更新内容を各アプリにPUTで更新したい。

マスタアプリA    [氏名コード] [プロフィール] 更新ボタン

アプリB~E    [氏名コード] [プロフィール]

ーーーーーーーーーーーーーーーーーーーーーーーーー

マスタアプリA上の「更新ボタン」押下すると、B~Eアプリの同じ氏名コードの[プロフィール]を更新するプログラムです。

※氏名コードに重複はありません。

4つのアプリ(AppId;85,87,88,89)に更新したく、FOR文で順々にGET,PUTすればよいと思ったのですが、そのままだと「Loop内の関数処理はできません」といった構文エラーが出るため、getをオブジェクトに格納して処理しようとしてるのですが、うまくいきません。。同期の構文が崩れたからでしょうか。respRecordが取れてません。ヒントを頂ければ幸いです。

(function() {
  'use strict';
    kintone.events.on(['app.record.create.show','app.record.edit.show'], function(event) {
         
    var record = event.record;

      var postButton = document.createElement('button');
      postButton.id = 'post_button';
      postButton.innerText = '更新ボタン';
      
      
      postButton.onclick = function() {
        
       var nameChord = record.氏名コード.value;
       var profile = record.プロフィール.value;     
       

          var appId = [85,87,88,89];
          var query = "氏名コード = \"" + nameChord + "\"";
          
              for (var i = 0, l = appId.length; i < l; i++) {
                
                  var paramGet = {
                      'app': appId[i],
                      'query': query  
                  };
                    
                  const getRecord = kintone.api(kintone.api.url('/k/v1/records', true), 'GET', paramGet);
                  
                  var respRecord = getRecord[0];
        
                  var body = {
                    'app': appId[i],
                    'id': respRecord.$id.value,
                    'record': {
                      'プロフィール': {
                        'value': profile
                      }              
                    }
                  };
        
                  const putRecord =  kintone.api(kintone.api.url('/k/v1/record.json', true), 'PUT', body)
              }
          
      }
      
      kintone.app.record.getSpaceElement('post_button').appendChild(postButton);  
   return event;

  });
})();
0

2件のコメント

Avatar
村濱一樹

こちらの記事にある、「Column1: async/awaitで直感的に同期的処理を書く」というところを参考にしてみてはいかがでしょうか。

一番カンタンに非同期処理が行えると思います。

0
Avatar
井俊

村濱様

ご回答誠にありがとうございました!

お陰様で、async/await にて解決しました!!

この度は大変助かりました。

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