新規投稿
フォローする

文字列操作について

REST APIのGETにてレコードをクエリを使って特定のレコードを取得したいと考えております。クエリは文字列となるのですが、この制御が上手くいきません。

Get_bodyのqueryに編集中の値を代入するようにしております。(下記コードを参照していただければと思います)

しかし、query変数にはクエリに記述するべき文字列が格納されているのですが、、Get_body内のqueryを除くと「\」が入ってしまっており、結果、API関数が失敗するという感じになっております。

参照したURL

https://developer.cybozu.io/hc/ja/articles/900001057206-kintone-API-%E3%81%AE%E3%82%AF%E3%82%A8%E3%83%AA%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9%E3%81%AE%E5%9F%BA%E6%9C%AC 

この文字列部分の記述で間違いなど、ご指摘いただければありがたいです。
場合によっては、文字列ではなく、ユニークな数値をキーにするという回避方法もあるのかなと感じております。

(function() {
  'use strict';
  
  //自動ルックアップ対象となるアプリのID(社員一覧アプリ)
  var updateAppId = 12;
  
  ///////////////////////////////////////////////////
  //自動ルックアップ関数
  function lookupfunction(event){
    
    let record = event.record;
    let schoolname = record.school_name.value;
  var query  = 'schoolname = "' + schoolname + '"';
    
    //レコード取得用のリクエストパラメータ
    var Get_body = {
        "app":updateAppId,
        "query":query
    };
   
    debugger;
    
    return kintone.api(kintone.api.url('/k/v1/records', true),'GET',Get_body).then(function(resp){
      
        //GET成功時の処理=ルックアップの更新
        let records = resp.records;
        
        console(resp.records);
      
    }).then(function(resp2){
      
        alert('ルックアップの更新が完了しました');    
      
    }).catch(function(error){
      
        //エラー発生時の処理
        alert('ルックアップの更新でエラーが発生しました\n'+ error.message);
        return event;
        
    });

  }//end lookupfunction
  
  
  /////////////////////////////////////////////////
  //kintoneイベント処理
  kintone.events.on(['app.record.index.edit.submit.success',    //レコード編集保存後
                     'app.record.edit.submit.success'],         //レコード一覧編集保存後
                    lookupfunction
                    );
})();
0

2件のコメント

Avatar
koichi

吉原大騎さん

こんにちは。

 

クエリは誤ってないと思います。

恐らく、console(resp.records); がエラーのcatchに入る原因と思います。

正しくは、console.log(resp.records);

koichiにより編集されました
1
Avatar
吉原大騎

koichiさんありがとうございます。

ご指摘いただいたエラーが悪さをしていたんですね。

一部修正した形で上手く自動ルックアップを実現することができました!

お忙しいところありがとうございました!

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