# kintoneAPIで、アプリAのデータをアプリBにコピーができない

**URL:** <https://community.cybozu.dev/t/topic/1649>\
**Category:** kintone 開発相談\
**Created:** [2023 年 6 月 8 日午前 11:25 UTC](https://community.cybozu.dev/t/topic/1649 "2023-06-08T11:25:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account346](https://avatars.discourse-cdn.com/v4/letter/l/a4c791/32.png) [@Legacy\_Account346](https://community.cybozu.dev/u/Legacy_Account346)\
**Post date:** [2023 年 6 月 8 日午前 11:25 UTC](https://community.cybozu.dev/t/topic/1649/1 "2023-06-08T11:25:38Z")

</div>

アプリAからアプリBにレコードをコピーしたいのですが、空っぽのレコードが追加されてしまいます。  
処理の内容は大まかに以下の通りです。

１．アプリAから特定の日時以降のレコードをGET

２．レコードが100件以上あると登録ができないため、100件ずつの2次元配列に分割

３．レコードの内容をアプリBのフィールド形式に変換

４．変換したデータをアプリBにPOST

特にエラー表記はされず、４で行った処理では、「変換したデータ」と同じ数の空のレコードが生成されているため、APIコール時の呼び出し方やbodyの構造に問題があるわけではなさそうです。  
「存在しないフィールドコードを指定した場合、そのフィールドは無視されてレコードが登録されます。」ということですので、POSTするデータの記述が間違っている気がしています。

POSTするレコードは以下のような形でアプリBの書式に変換しております。行ごとに記述がまちまちなのは書式をいろいろ試したためで、敢えてまちまちのまま表記します。  
以下は抜粋ですが、1レコードに全部で30フィールドほどあります。

```
   let leadBody = {
      "record": {
        連携アプリ_レコードNo: {value:additionLead.$id.value},
        連携アプリ_sid: {value:additionLead.sid.value},
        住所1: {"value":additionLead.address1.value},
        "住所2": {"value":additionLead.address2.value},
        "asignee": {"value":additionLead.asignee.value}
      }
    };

```

これを以下のrecordsの中にレコードごとの配列として格納します。  
sliceRecordsは100件ずつに分割済みです。

```
  let postBodyArray = [];
sliceAllUpdateLead.forEach(sliceRecords => {
    let postBody = {
      "app": APP_ID,
      "records": []
    };
    sliceRecords.forEach(record => {
   let respBody = setUpdateLead(record);
  postBody.records.push(respBody);
    });
   postBodyArray.push(postBody);

```

できた配列をアプリB（自分自身）に格納します。

```
  const postLead = async (postBodyArray) => {
    postBodyArray.forEach(postBody => {
      return kintone.api(kintone.api.url('/k/v1/records', true), 'POST', postBody, resp => {
      // success
      }, error => {
        // error
      console.log(error);
      });
    });
  };

```

先述の通り、レコードは生成されるのですが、値が格納されません。  
フィールドコードは正しいことは確認しております。  
エラーも表示されないため、原因がわからず参っております。

ご指摘のほどよろしくお願いします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1177](https://avatars.discourse-cdn.com/v4/letter/l/77aa72/32.png) [@Legacy\_Account1177](https://community.cybozu.dev/u/Legacy_Account1177)\
**Post date:** [2023 年 6 月 9 日午前 5:59 UTC](https://community.cybozu.dev/t/topic/1649/2 "2023-06-09T05:59:43Z")

</div>

コードは全文あるとありがたいです。主観で間違っていると思われる部分をピックアップされても、原因が他にある可能性があるので、客観的にコメントがしにくいです。

ということで憶測ですが、bodyの構造に問題があるわけではないとあるものの、POSTで空のレコードが出来る場合、おおむねリクエストボディの構造に問題があります。

```
   let leadBody = {
      "record": {
        連携アプリ_レコードNo: {value:additionLead.$id.value},
        連携アプリ_sid: {value:additionLead.sid.value},
        住所1: {"value":additionLead.address1.value},
        "住所2": {"value":additionLead.address2.value},
        "asignee": {"value":additionLead.asignee.value}
      }
    };

```

この部分ですが、これがそのままリクエストボディのrecords配列に入っているということでしょうか？

[複数のレコードを登録する](https://cybozu.dev/ja/kintone/docs/rest-api/records/add-records/#request)のリクエストボディの欄を見ると分かりますが、recordsという配列に入っているのはレコードオブジェクトになるので、これがrecordsの配列にそのまま入るのであれば

```
 let leadBody = {
    連携アプリ_レコードNo: {value:additionLead.$id.value},
    連携アプリ_sid: {value:additionLead.sid.value},
    住所1: {"value":additionLead.address1.value},
    "住所2": {"value":additionLead.address2.value},
    "asignee": {"value":additionLead.asignee.value}
    };

```

このような形にする必要があります（recordというオブジェクトは不要です）。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account346](https://avatars.discourse-cdn.com/v4/letter/l/a4c791/32.png) [@Legacy\_Account346](https://community.cybozu.dev/u/Legacy_Account346)\
**Post date:** [2023 年 6 月 9 日午前 7:16 UTC](https://community.cybozu.dev/t/topic/1649/3 "2023-06-09T07:16:38Z")

</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 年 9 月 29 日午前 6:05 UTC](https://community.cybozu.dev/t/topic/1649/4 "2023-09-29T06:05:28Z")

</div>

クローズされました: 2023 年 9 月 29 日午前 6:05 UTC

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