# 一か月以上経ったレコードを削除したい

**URL:** <https://community.cybozu.dev/t/topic/5818>\
**Category:** kintone 開発相談\
**Created:** [2022 年 3 月 18 日午前 8:29 UTC](https://community.cybozu.dev/t/topic/5818 "2022-03-18T08:29:32Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1558](https://avatars.discourse-cdn.com/v4/letter/l/87869e/32.png) [@Legacy\_Account1558](https://community.cybozu.dev/u/Legacy_Account1558)\
**Post date:** [2022 年 3 月 18 日午前 8:29 UTC](https://community.cybozu.dev/t/topic/5818/1 "2022-03-18T08:29:32Z")

</div>

kintone RESTAPIで取得してきたJSONデータのレコードIDをbodyのidsにセットしましたが、配列に入っているものの形式が違うのか400エラーが出ます。取得してきたvalueデータを変換しなくてはならないのでしょうか。いろいろ試しましたが、検討がつきません。よろしくお願いします。

&nbsp;

(function(){

&nbsp; &nbsp; “use strict”

&nbsp; &nbsp; var recid = [];

&nbsp; &nbsp; kintone.events.on(‘app.record.index.show’, function(event) {

&nbsp; &nbsp; &nbsp; var query = “Day \< FROM\_TODAY(-1,MONTHS)”;

&nbsp; &nbsp; &nbsp; var body = {

&nbsp; &nbsp; &nbsp; &nbsp; ‘app’: kintone.app.getId(),

&nbsp; &nbsp; &nbsp; &nbsp; ‘query’: query,

&nbsp; &nbsp; &nbsp; };

&nbsp; &nbsp;

&nbsp; &nbsp; &nbsp; kintone.api(kintone.api.url(‘/k/v1/records’, true), ‘GET’, body, function(resp) {

&nbsp; &nbsp; &nbsp; &nbsp; // success

&nbsp; &nbsp; &nbsp; &nbsp; for(var i = 0; i \< resp.records.length; i++) {

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; recid.push(JSON.parse(resp.records[i][‘レコード番号’].value));

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //parseInt(resp.records[i][‘レコード番号’].value,10)

&nbsp; &nbsp; &nbsp; &nbsp; };

&nbsp; &nbsp; &nbsp; &nbsp; recid.map(id =\> id.textContent);

&nbsp; &nbsp; &nbsp; }, function(error) {

&nbsp; &nbsp; &nbsp; &nbsp; // error

&nbsp; &nbsp; &nbsp; &nbsp; console.log(error);

&nbsp; &nbsp; &nbsp; });

&nbsp; &nbsp; });

&nbsp;

&nbsp; &nbsp; kintone.events.on(‘app.record.index.show’, function(event) {

&nbsp;

&nbsp; &nbsp; &nbsp; var body2 = {

&nbsp; &nbsp; &nbsp; &nbsp; ‘app’: kintone.app.getId(),

&nbsp; &nbsp; &nbsp; &nbsp; ‘ids’: recid,

&nbsp; &nbsp; &nbsp; };

&nbsp;

&nbsp; &nbsp; &nbsp; kintone.api(kintone.api.url(‘/k/v1/records.json’, true), ‘DELETE’, body2, function(resp) {

&nbsp; &nbsp; &nbsp; &nbsp; // success

&nbsp; &nbsp; &nbsp; &nbsp; console.log(resp);

&nbsp; &nbsp; &nbsp; &nbsp;

&nbsp; &nbsp; &nbsp; }, function(error) {

&nbsp; &nbsp; &nbsp; &nbsp; // error

&nbsp; &nbsp; &nbsp; &nbsp; console.log(error);

&nbsp; &nbsp; &nbsp; });

&nbsp; &nbsp;

&nbsp; &nbsp; &nbsp; return event;

&nbsp; &nbsp; });

&nbsp; &nbsp; })();

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account871](https://avatars.discourse-cdn.com/v4/letter/l/50afbb/32.png) [@Legacy\_Account871](https://community.cybozu.dev/u/Legacy_Account871)\
**Post date:** [2022 年 3 月 20 日午前 1:59 UTC](https://community.cybozu.dev/t/topic/5818/2 "2022-03-20T01:59:06Z")

</div>

どこがおかしいか確認していく方針を立てました。

1. 

```
    var body2 = {
      'app': kintone.app.getId(),
      'ids': recid,
      };

```

のところに直接レコード番号を配列としていれてみて消えることを確認。

1. 

recidの配列の形に問題があるのかを調べる。

```
      for(var i = 0; i < resp.records.length; i++) {
        recid.push(JSON.parse(resp.records[i]['レコード番号'].value));
        //parseInt(resp.records[i]['レコード番号'].value,10)
      };
        recid.map(id => id.textContent);

```

のあたりでrecidに対象のレコード番号が入っていないのではないか？

debugger/console.log/ブレークポイントなどを使って調べる。debuggerでは値が入るが、消す部分でrecidの中身が消えているように見える。

1. 

```
  kintone.events.on('app.record.index.show', function(event) {

```

が 2つあることに気づく。これだと一覧の表示をすると同時に処理が行われてしまうのか？うまく行かない。

4)処理を対象レコードを探す部分と消す部分を一つにまとめる。

5)対象レコードがない場合にも空のレコード番号で消そうとしてしまうのでtotalCountを追加する。削除対象レコードが0なら処理を中止する

6)いままで削除したことなかったので知らなかったのですが、一覧画面でレコードを削除すると表示するタイミング存在したレコードが表示後に削除さます。レコードの実体はないが画面には残ります。

再読み込みすると消えます。

一覧に表示されているレコードの詳細画面をクリックしようとするとレコードが削除されていますと表示されます。

```
(function() {
  'use strict';

  kintone.events.on('app.record.index.show', (event) => {
    const query = 'Day < FROM_TODAY(-1,MONTHS)';
    const body = {
      app: kintone.app.getId(),
      query: query,
      totalCount: true
    };

    kintone.api(
      kintone.api.url('/k/v1/records', true),
      'GET',
      body,
      (resp) => {
        if (resp.totalCount === "0"){
            return event;
        }
        const recid = [];
        // success
        resp.records.map(row => recid.push(row.レコード番号.value));
        const body2 = {
          app: kintone.app.getId(),
          ids: recid,
        };
        kintone.api(
          kintone.api.url('/k/v1/records.json', true),
          'DELETE',
          body2,
          (resp2) => {
            // success
            console.log(resp2);
          },
          (error) => {
            // error
            console.log(error);
          }
        );
      },
      (error) => {
        // error
        console.log(error);
      }
    );
  });
  return event;
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1558](https://avatars.discourse-cdn.com/v4/letter/l/87869e/32.png) [@Legacy\_Account1558](https://community.cybozu.dev/u/Legacy_Account1558)\
**Post date:** [2022 年 3 月 21 日午後 11:27 UTC](https://community.cybozu.dev/t/topic/5818/3 "2022-03-21T23:27:53Z")

</div>

一から丁寧に教えていただきありがとうございます！

初心者なので、ぜんぜん考えが足りなかったみたいです。

もう一度確認して試行錯誤してみます。ありがとうございます。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account871](https://avatars.discourse-cdn.com/v4/letter/l/50afbb/32.png) [@Legacy\_Account871](https://community.cybozu.dev/u/Legacy_Account871)\
**Post date:** [2022 年 3 月 22 日午前 12:58 UTC](https://community.cybozu.dev/t/topic/5818/4 "2022-03-22T00:58:40Z")

</div>

感想です。

・一覧画面表示で削除で本当によいのか？確認画面などは必要か？

・本当にデータを消す必要があるのか、表示を直近１ヶ月にすることではだめか。

・「FROM\_TODAY(-1,MONTHS)」の詳細がわからず不安。2/28の1ヶ月前は1/28でよいのか？1/31を期待していないか？

・削除が成功したら表示上データが残るので自動で画面更新をかけてあげると良さそうです。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1558](https://avatars.discourse-cdn.com/v4/letter/l/87869e/32.png) [@Legacy\_Account1558](https://community.cybozu.dev/u/Legacy_Account1558)\
**Post date:** [2022 年 3 月 22 日午前 1:13 UTC](https://community.cybozu.dev/t/topic/5818/5 "2022-03-22T01:13:10Z")

</div>

そこまで教えていただくと本当に申し訳なく思います。

お世話になります。すみません。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2023 年 10 月 5 日午前 12:47 UTC](https://community.cybozu.dev/t/topic/5818/6 "2023-10-05T00:47:22Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
