# 自動採番が反映されない

**URL:** <https://community.cybozu.dev/t/topic/6153>\
**Category:** kintone 開発相談\
**Created:** [2022 年 7 月 13 日午前 1:34 UTC](https://community.cybozu.dev/t/topic/6153 "2022-07-13T01:34:36Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2037](https://avatars.discourse-cdn.com/v4/letter/l/57b2e6/32.png) [@Legacy\_Account2037](https://community.cybozu.dev/u/Legacy_Account2037)\
**Post date:** [2022 年 7 月 13 日午前 1:34 UTC](https://community.cybozu.dev/t/topic/6153/1 "2022-07-13T01:34:36Z")

</div>

初めまして。

初心者なのでこちらをよく参考にさせていたいております。

以下のソースコードで自動採番をしました。（300001~始まる6桁）

採番はできますが、見積番号（文字列（1行））に反映されません。

とても困っていますのでご教授いただければと思います。

(function() {

&nbsp; ‘use strict’;

&nbsp; // レコード追加、編集画面の表示前処理  
&nbsp; var eventsShow = [‘app.record.create.show’, ‘app.record.edit.show’, ‘app.record.index.edit.show’];  
&nbsp; kintone.events.on(eventsShow, function(event) {

&nbsp; &nbsp; var record = event.record;

&nbsp; &nbsp; if ((‘app.record.create.show’).indexOf(event.type) \>= 0) {  
&nbsp; &nbsp; &nbsp; record.見積番号.value = ‘’;  
&nbsp; &nbsp; }  
&nbsp; &nbsp; record.見積番号.disabled = true;

&nbsp; &nbsp; return event;

&nbsp; });

&nbsp; // レコード追加画面の保存前処理  
&nbsp; kintone.events.on(‘app.record.create.submit’, function(event) {

&nbsp; &nbsp; var recNo = 1;  
&nbsp; &nbsp; var record = event.record;

&nbsp; &nbsp; // URLを設定する  
&nbsp; &nbsp; var appUrl = kintone.api.url(‘/k/v1/records’, true) +  
&nbsp; &nbsp; ‘?app=’ + kintone.app.getId() + ‘&query=’ + encodeURI(‘limit 1&fields[0]=$id’);

&nbsp; &nbsp; var xmlHttp = new XMLHttpRequest();

&nbsp; &nbsp; // 同期リクエストを行う  
&nbsp; &nbsp; xmlHttp.open(‘GET’, appUrl, false);  
&nbsp; &nbsp; xmlHttp.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);  
&nbsp; &nbsp; xmlHttp.send(null);

&nbsp; &nbsp; if (xmlHttp.status === 200) {  
&nbsp; &nbsp; &nbsp; if (window.JSON) {  
&nbsp; &nbsp; &nbsp; &nbsp; var obj = JSON.parse(xmlHttp.responseText);  
&nbsp; &nbsp; &nbsp; &nbsp; if (obj.records.length \> 0) {  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try {  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; recNo = parseInt(obj.records[0].$id.value, 10) + 1;  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } catch (e) {  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; event.error = ‘番号が取得できません。’;  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }  
&nbsp; &nbsp; &nbsp; &nbsp; }  
&nbsp; &nbsp; &nbsp; &nbsp; // 自動採番を番号に設定する  
&nbsp; &nbsp; &nbsp; &nbsp; var autoEstNo = ‘3’ + (‘000000’ + recNo).slice(-5);  
&nbsp; &nbsp; &nbsp; &nbsp; alert(‘見積番号 ’ + autoEstNo + ’ を登録します’);  
&nbsp; &nbsp; &nbsp; &nbsp; record.見積番号.value = autoEstNo;  
&nbsp; &nbsp; &nbsp; } else {  
&nbsp; &nbsp; &nbsp; &nbsp; event.error = xmlHttp.statusText;  
&nbsp; &nbsp; &nbsp; }  
&nbsp; &nbsp; } else {  
&nbsp; &nbsp; &nbsp; record.見積番号.error = ‘番号が取得できません。’;  
&nbsp; &nbsp; }  
&nbsp; &nbsp; return event;  
&nbsp; });  
})();

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2229](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account2229](https://community.cybozu.dev/u/Legacy_Account2229)\
**Post date:** [2022 年 7 月 13 日午前 7:28 UTC](https://community.cybozu.dev/t/topic/6153/2 "2022-07-13T07:28:51Z")

</div>

矢野 理子さん

こんにちは。

&nbsp;

$id（レコード番号）で採番しているからだと思います。

以下のように見積番号に変えてみてください。

```
'?app=' + kintone.app.getId() + '&query=' + encodeURI('limit 1&fields[0]=見積番号');

recNo = parseInt(obj.records[0].見積番号.value, 10) + 1;

```

&nbsp;

補足になりますが、JavaScriptに慣れてきましたら

XMLHttpRequestよりも[kintone.api](https://community.cybozu.dev/hc/ja/articles/202331474-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%8F%96%E5%BE%97-GET-#:~:text=%E3%82%B3%E3%83%94%E3%83%BC%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F-,%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E4%B8%80%E6%8B%AC%E5%8F%96%E5%BE%97%EF%BC%88%E3%82%AF%E3%82%A8%E3%83%AA%E3%81%A7%E6%9D%A1%E4%BB%B6%E3%82%92%E6%8C%87%E5%AE%9A%EF%BC%89,-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E3%82%AF)と[async/await](https://community.cybozu.dev/hc/ja/articles/900001244323-%E7%9B%AE%E6%8C%87%E3%81%9B-JavaScript%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E4%B8%AD%E7%B4%9A%E8%80%85-%EF%BC%92-Promise%E3%81%AE%E3%81%8B%E3%82%8F%E3%82%8A%E3%81%ABasync-await%E7%B7%A8-)の組合せで記述することをおすすめします。

いずれも当サイトにサンプルコードがありますので、ご参照ください。

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2037](https://avatars.discourse-cdn.com/v4/letter/l/57b2e6/32.png) [@Legacy\_Account2037](https://community.cybozu.dev/u/Legacy_Account2037)\
**Post date:** [2022 年 7 月 14 日午前 12:21 UTC](https://community.cybozu.dev/t/topic/6153/3 "2022-07-14T00:21:09Z")

</div>

[koichi](https://community.cybozu.dev/hc/ja/profiles/900225082446-koichi)&nbsp;様

ご連絡いただきまして、ありがとうございます。

上記のコードに変更したところ、以下の表記になってしまいました。

原因がわからず、困っております。

ご教授いただければ幸いです。

&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2229](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account2229](https://community.cybozu.dev/u/Legacy_Account2229)\
**Post date:** [2022 年 7 月 14 日午前 2:00 UTC](https://community.cybozu.dev/t/topic/6153/4 "2022-07-14T02:00:06Z")

</div>

コードの全体をもう一度見せていただけますか？

または、以下部分だけでも問題ございません。

&nbsp;

```
var appUrl = kintone.api.url('/k/v1/records', true) + '?app=' + kintone.app.getId() + '&query=' + encodeURI('limit 1&fields[0]=見積番号');

if (obj.records.length > 0) {
  try {
        recNo = parseInt(obj.records[0].見積番号.value, 10) + 1;
    } catch (e) {
        event.error = '番号が取得できません。';
    }
}

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2037](https://avatars.discourse-cdn.com/v4/letter/l/57b2e6/32.png) [@Legacy\_Account2037](https://community.cybozu.dev/u/Legacy_Account2037)\
**Post date:** [2022 年 7 月 14 日午前 2:39 UTC](https://community.cybozu.dev/t/topic/6153/5 "2022-07-14T02:39:28Z")

</div>

[koichi](https://community.cybozu.dev/hc/ja/profiles/900225082446-koichi) 様

ご連絡ありがとうございます。

コードは以下の通りになります。

ご確認の程よろしくお願いいたします。

```
(function() {

  'use strict';

  // レコード追加、編集画面の表示前処理
  var eventsShow = ['app.record.create.show', 'app.record.edit.show', 'app.record.index.edit.show'];
  kintone.events.on(eventsShow, function(event) {

    var record = event.record;

    if (('app.record.create.show').indexOf(event.type) >= 0) {
      record.見積番号.value = '';
    }
    record.見積番号.disabled = true;

    return event;

  });

  // レコード追加画面の保存前処理
  kintone.events.on('app.record.create.submit', function(event) {

    var recNo = 1;
    var record = event.record;

    // URLを設定する
    var appUrl = kintone.api.url('/k/v1/records', true) +
    '?app=' + kintone.app.getId() + '&query=' + encodeURI('limit 1&fields[0]=見積番号');

    var xmlHttp = new XMLHttpRequest();

    // 同期リクエストを行う
    xmlHttp.open('GET', appUrl, false);
    xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    xmlHttp.send(null);

    if (xmlHttp.status === 200) {
      if (window.JSON) {
        var obj = JSON.parse(xmlHttp.responseText);
        if (obj.records.length > 0) {
          try {
           recNo = parseInt(obj.records[0].見積番号.value, 10) + 1;
          } catch (e) {
            event.error = '番号が取得できません。';
          }
        }
        // 自動採番を番号に設定する
        var autoEstNo = '3' + ('000000' + recNo).slice(-5);
        alert('見積番号 ' + autoEstNo + ' を登録します');
        record.見積番号.value = autoEstNo;
      } else {
        event.error = xmlHttp.statusText;
      }
    } else {
      record.見積番号.error = '番号が取得できません。';
    }
    return event;
  });
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2229](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account2229](https://community.cybozu.dev/u/Legacy_Account2229)\
**Post date:** [2022 年 7 月 14 日午前 3:16 UTC](https://community.cybozu.dev/t/topic/6153/6 "2022-07-14T03:16:23Z")

</div>

ありがとうございます。

&nbsp;

私の環境では問題なく300001から採番されるのですが

アプリ内のレコードが0件の状態から行って、そちらの症状が出ますか？

&nbsp;

また、ソースコードの文字コードが「UTF-8」になっていることも合わせてご確認ください。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2037](https://avatars.discourse-cdn.com/v4/letter/l/57b2e6/32.png) [@Legacy\_Account2037](https://community.cybozu.dev/u/Legacy_Account2037)\
**Post date:** [2022 年 7 月 14 日午前 4:25 UTC](https://community.cybozu.dev/t/topic/6153/7 "2022-07-14T04:25:10Z")

</div>

[koichi](https://community.cybozu.dev/hc/ja/profiles/900225082446-koichi)&nbsp;様

ご連絡ありがとうございます。

新しくアプリをつくるから他のアプリを再利用し、試してみたところ300001番から採番されました。

現アプリはまだ始動していませんが、試しでレコードを何行か作っていたのが問題なのかもしれません。

色々とご指導をいただきまして、ありがとうございました。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2229](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account2229](https://community.cybozu.dev/u/Legacy_Account2229)\
**Post date:** [2022 年 7 月 14 日午前 6:30 UTC](https://community.cybozu.dev/t/topic/6153/8 "2022-07-14T06:30:21Z")

</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:** [2025 年 5 月 1 日午前 7:27 UTC](https://community.cybozu.dev/t/topic/6153/9 "2025-05-01T07:27:03Z")

</div>

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