# 添付ファイルの更新：app.record.create.submit.successでは失敗して、app.record.edit.submit.successでは成功する

**URL:** <https://community.cybozu.dev/t/topic/5328>\
**Category:** kintone 開発相談\
**Created:** [2021 年 10 月 2 日午前 3:04 UTC](https://community.cybozu.dev/t/topic/5328 "2021-10-02T03:04:29Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account394](https://avatars.discourse-cdn.com/v4/letter/l/85e7bf/32.png) [@Legacy\_Account394](https://community.cybozu.dev/u/Legacy_Account394)\
**Post date:** [2021 年 10 月 2 日午前 3:04 UTC](https://community.cybozu.dev/t/topic/5328/1 "2021-10-02T03:04:29Z")

</div>

レコードの新規登録と更新後にPDFファイルを添付ファイルを更新したいのですが、

「app.record.edit.submit.success」時は成功して、「app.record.create.submit.success」時は失敗します。

エラー内容は、

**{code: ‘CB\_VA01’, id: ‘M9FdANAQCDt1T6LcEoQR’, message: ‘入力内容が正しくありません。’, errors: {…}}**

filekeyはどちらも取得出来ています。

&nbsp;

```
    kintone.events.on(['app.record.create.submit.success', 'app.record.edit.submit.success'], function (event) {

        //blobで出力

        var blob = pdfDoc.output('blob');

        // FormDataにファイルを格納

        var formData = new FormData();

        formData.append(' __REQUEST_TOKEN__', kintone.getRequestToken());

        formData.append('file', blob, InvoiceNum + '.pdf');

        //HttpRequestの送信

        var key;

        var xmlHttp = new XMLHttpRequest();

        xmlHttp.open('POST', kintone.api.url('/k/v1/file.json', true), false);

        xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');

        xmlHttp.send(formData);

        if (xmlHttp.status === 200) {

            key = JSON.parse(xmlHttp.responseText).fileKey;

        }

        console.log("key : " + key);

        var json = {

            app: kintone.app.getId(),

            id: kintone.app.record.getId(),

            record: {

                shiharaiMeisai: {

                    value: [{ fileKey: key }]

                }

            }

        };

        return kintone.api(

            kintone.api.url('/k/v1/record', true),

            'PUT',

            json

        ).catch(function (resp) {

            var errmsg = 'エラーが発生しました。 登録時';

            if (resp.message !== undefined) {

                errmsg += '' + resp.message;

            }

            console.log(errmsg);

            console.log(resp);

            alert(errmsg);

        });

    });

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1517](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account1517](https://community.cybozu.dev/u/Legacy_Account1517)\
**Post date:** [2021 年 10 月 4 日午前 3:01 UTC](https://community.cybozu.dev/t/topic/5328/2 "2021-10-04T03:01:56Z")

</div>

‘app.record.create.submit.success’ イベントでは、まだ kintone.app.record.getId() でレコードIDを取得できません。

event.recordId に、入っていますのでそちらが使えます。

なお xmlHttp.open の同期処理は、多くのブラウザーで非推奨となっていますので、Promise を使った処理に変更されたほうがいいと思います。
