1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【kintone】複数のレコードの更新-kintone Rest API(初心者/入門)

Last updated at Posted at 2024-02-24

はじめに

前回はRESTAPIを使用した複数のレコードの取得を試しました。

今回は複数のレコードの更新のサンプルになります。

手順

  1. アプリの設定は前回と同じとします。前回の記事と同じように数値フィールドを設定してください。
  2. 下記コードをコピペ保存してアプリ更新
  3. 一覧でボタンを押下して実行

説明

今回は数値が1という値を持つレコード全てを取得し、数値を2という値に書き換えるだけのサンプルです。

  • putBodyにappと更新するrecordsを記述します
  • recordsは,{id:レコードのID, record:{フィールドコード:{value:値}}}という各レコードの更新するデータの配列を入れてあげることで、各レコードの指定したフィールドの値を更新できます

処理として今回は、

  1. 取得してきたレコードをmapでレコード数分回っていき、全て2という値に書き換える
  2. putBodyのrecordsにrecords.mapを使用するとreturnで返ってきた内容が配列で作成されます。シンプルに配列を作成するに使える関数です

コード

test.js
(() => {
  "use strict";

  // ボタン押下時に書きかえる
  const testFunction = async () => {
    const appId = kintone.app.getId();

    const body = {
      app: appId,
      query:
        '数値 = "1"',
    };
    const res = await kintone.api(
      kintone.api.url("/k/v1/records.json", true),
      "GET",
      body
    );
    const records = res.records;
    if(records.length === 0){
      alert("recordsの取得ができませんでした。数値が1のレコードがありません")
      return
    }

    // 取得したrecordsの数値の合計
    records.map((record) => {
      // 取得した対象のレコードを2という値に書き換える
      record["数値"].value = 2;
    });

    // 書き換えたレコードをmapでまわしながら対象のフィールドだけ更新
    const putBody = {
      app: appId,
      records: records.map((record) => {
        return {
          id: record["レコード番号"].value,
          record: {
            数値: {
              value: record["数値"].value,
            },
          },
        };
      }),
    };

    console.log(putBody);

    await kintone.api(
      kintone.api.url("/k/v1/records.json", true),
      "PUT",
      putBody
    );

    // 画面の更新
    location.reload();
  };

  // レコードの一覧画面で実行していきます
  kintone.events.on("app.record.index.show", (event) => {
    // ボタンの設置と作成
    const button = document.createElement("button");
    button.innerText = "実行";
    button.addEventListener("click", testFunction);

    // kintoneに表示する要素(位置)を取得して、ボタンを設置。
    const el = kintone.app.getHeaderMenuSpaceElement();
    el.appendChild(button);

    // 必ずeventを返してあげる
    return event;
  });
})();

おわりに

今回は複数のレコードの更新をRESTAPIを使って行いました。
取得してきたレコードを一気に書き換える際に便利ですね。

それでは

楽しいkintoneライフを:relaxed:

また参考は下記に貼っておきます。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?