REST APIのGETエラー

お世話になります。

 

現在、集計アプリと金額計算アプリを作成しています。

金額計算アプリでレコードが編集保存成功後、作成成功後に集計アプリの金額フィールドに転記したいです。

集計アプリでは毎月集計し、各レコードで利用者が異なります。

そのため、集計アプリに事前に利用者IDと集計年・集計月を登録しておき、GETする際に集計年・集計月・利用者IDで絞り込みを行おうと考えています。

GETとPUTを使用することになると思うので、まずはGETから取り組んでいますが、queryの部分?でエラーが出てしまいます。

 

GETの部分のエラーを直すのが第一ですが、もし可能であればPUTの部分のサンプル等もご教授いただけると大変助かります。

 

■ソースコード

(function() {

    ‘use strict’;

    const APP_ID = 500; //集計アプリID

let events = [‘app.record.create.submit.success’,‘app.record.edit.submit.success’];

    kintone.events.on(events, function(event) {

        let record = event.record;

        let year_field = record.年.value;

        let month_field = record.月.value;

        let userID_field = record.利用者ID.value;

        let year = ‘year = "’ + year_field + ‘"’;

        let month = ‘month = "’ + month_field + ‘"’;

        let userID = ‘userID = "’ + userID_field + ‘"’;

    let paramForGet = {

        ‘app’: APP_ID,

        ‘query’: ‘年 in ("’ + year + ‘“) and 月 in (”’ + month + ‘") and 利用者ID = "’ + userID + ‘"’,

    };

        console.log(paramForGet)

    return kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, paramForGet).then(function (resp) {

        console.log(resp);

        }, function(error) {

            console.log(error);

        });

    });

})();

 

■金額計算アプリ構成

【項目】 【フィールドコード】

数値 利用者ID

ドロップダウン 年

ドロップダウン 月

数値 利用金額

 

■集計アプリ構成

【項目】 【フィールドコード】

数値 利用者ID

ドロップダウン 年

ドロップダウン 月

数値 利用金額(ここに計算アプリの利用金額からコピーしたい)

let year = 'year = "' + year_field + '"';
let month = 'month = "' + month_field + '"';
let userID = 'userID = "' + userID_field + '"';

上記変数をを以下のクエリに入れると

'年 in ("' + year + '") and 月 in ("' + month + '") and 利用者ID = "' + userID + '"',

↓↓ このようになってしまいます。

'年 in ("year = 2021年") and 月 in ("month = 12月") and 利用者ID = "userID = XXXX"',

 

ですので変数に入れる値を以下のようにすれば

let year = record.年.value;
let month = record.月.value;
let userID = record.利用者ID.value;

↓↓こうなります(^^)/

'年 in ("2021年") and 月 in ("12月") and 利用者ID = "XXXX"',

 

 

集計アプリの対象となるレコードが1件しかないのであればこんな感じになるかと。

※動作検証はしておりません。

(function() {
  'use strict';
  const APP_ID = 500; //集計アプリID
    const events = ['app.record.create.submit.success','app.record.edit.submit.success'];

  kintone.events.on(events, async function(event) {
      let record = event.record;
      let year = record.年.value;
      let month = record.月.value;
      let userID = record.利用者ID.value;
      let paramForGet = {
          'app': APP_ID,
          'query': '年 in ("' + year + '") and 月 in ("' + month + '") and 利用者ID = "' + userID + '" limit 1',
        };

      // 取得
      await kintone.api(kintone.api.url('/k/v1/records', true), 'GET', paramForGet)
          .then(async function (resp) {
              if (!resp.records.length) return;
              let body = {
                  app: APP_ID,
                  id: resp.records[0].$id.value,
                  record: {
                      "利用金額": {
                          value: record["利用金額"].value
                      }
                  }
                }

              // 更新
              await kintone.api(kintone.api.url("/k/v1/record.json", true), "PUT", body)
                  .then(function(res) {
                      console.log(res);
                  }).catch(function(error) {
                      console.log(error);
                  });

          }).catch(function(error) {
              console.log(error);
          });
  });
})()