新規投稿
フォローする

プリ内のフィールドと別アプリのレコード番号が一致した場合に、に別アプリのチェックボックスを自動更新する

背景・実現したいこと

①申込アプリのルックアップ機能で稟議アプリのレコード番号を取得(手動入力)。

②申込アプリ登録修正時に申込アプリの「稟議アプリのレコード番号」の稟議アプリレコードを探す

③②で探したレコード番号のチェックボックを自動更新(「済」にする)

※カスタマイズは申込アプリに適用しています。

 上記のことが実現したいですが、稟議アプリのレコードの取得までは確認できましたが、チェックボックスの自動更新がされない状態です。execRestAPI関数でなぜ200が返されないため更新がされていないと想定していますが、原因が分かっていないです。

ご教授お願いできますでしょうか。

お手数おかけしますが、よろしくお願い申し上げます。

 

利用したソースコード


 
 /**
  * データ取得(同期:1件)
  * @param appId アプリID
  * @param query 抽出条件
  */
 
 function getRecord(appId, query) {

  var record;
  var appUrl = kintone.api.url('/k/v1/records') + '?app='+ appId + '&query=' + encodeURIComponent(query) + ' offset 0';
   // alert(appUrl);

  // 同期リクエストを行う
  var xmlHttp = new XMLHttpRequest();
  xmlHttp.open("GET", appUrl, false);
  xmlHttp.setRequestHeader('X-Requested-With','XMLHttpRequest');
  xmlHttp.send(null);

  //取得したレコードを格納
  var respdata = JSON.parse(xmlHttp.responseText);
  if(respdata.records.length > 0){
   record = respdata.records[0];
  }

  return record;
 }

 

 

 

/**
  * REST API 実行
  * @param method POST/PUT/DELETE
  * @param url    URL
  * @param sync   同期 false/非同期 true
  * @param param  パラメータ
  */
 
 function execRestAPI(method, url, sync, param) {

  var xmlHttp = new XMLHttpRequest();
  var appUrl = kintone.api.url(url);
//alert(appUrl);

  xmlHttp.open(method, appUrl, sync);
  xmlHttp.setRequestHeader('X-Requested-With','XMLHttpRequest');
  xmlHttp.setRequestHeader('Content-Type','application/json');
  xmlHttp.send(JSON.stringify(param));

  if (xmlHttp.status != 200) {
   // error
   console.log(xmlHttp.responseText);
  }

  return xmlHttp.status;

 }
 
 

/**
  * 稟議アプリの更新
  * @param
  */
 
 function updKanri() {

  var kanriRecord = getRecord(659, '');  //695→申込アプリID
  if (!kanriRecord) {
   alert('a');
   return false;
  }
  //alert('a');

  // 確認メッセージ
  if (!confirm('b')) {
   return true;
  }
//alert('b');
 
  var unyoYmd = kanriRecord['関連口座情報']['value'][0]['value']['稟議レコード番号']['value'];
  //alert(unyoYmd);
  //  alert(kanriRecord['レコード番号']['value']);
 
   var RinRecord = getRecord(694, '');  //695→申込アプリID
  var param = {
  app : 694,    //695→稟議アプリID
  id  : RinRecord['レコード番号']['value'],          //稟議アプリのレコード番号
  record : {
  '申込書消込区分': { value : '済' }
   
    
   },
     
     
   "__REQUEST_TOKEN__" : kintone.getRequestToken()
   
   
   }
    //alert(kanriRecord['申込書消込区分']['value']);
//alert(申込書消込区分);

   var status = execRestAPI('PUT', '/k/v1/record', false, param);
  if (status != 200) {
  
   alert('5');
   return false;
  }


   //return true;

 }

         
         
         
  /*========================================================================/
 // 表示時のイベント(レコード一覧画面)
 /========================================================================*/
 
 kintone.events.on(['app.record.index.edit.submit', 'app.record.create.submit', 'app.record.edit.submit'], function(event) {
  var record = event.record;
/*-------------------------/
    / 管理マスタの更新
    /-------------------------*/
    var result;
 //   statusLabel.innerText = '(4/5) 管理マスタの更新中です…';
    
   result = updKanri();
 //   if (!result) {
 //    statusLabel.innerText = '';
    alert('稼動日報作成が異常終了しました2。');
  //   return;
  //  }
    
   // alert('稼動日報作成が異常終了しました。');
    
      return event;

 });
 

          
          
          
          
          
          
          
          
          
          

0

1件のコメント

Avatar
juridon

こんにちは!

 var status = execRestAPI('PUT', '/k/v1/record', false, param);
  if (status != 200) {
  
   alert('5');
   return false;
  }

ここで200が帰ってこなくてアラートの「5」が表示される状態でしょうか?

execRestAPI内でどこまでうまく動いているかconsole.logで確認するとか(例えば行番号)、
エラーメッセージなどをconsole.logで表示してみるのはいかがでしょうか??



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