カテゴリー内の他の記事

自動採番プラグイン

Index

注意事項

  • サンプルプラグインは、その動作を保証するものではありません。
  • サンプルプラグインの技術的なサポート等は行っていません。
  • APIトークン設定機能は、セキュアアクセスおよびIPアドレス制限を利用しない環境でのみ動作します。
  • 本プラグインをv1.1以前のプラグインからアップデートする際はプラグインの設定画面より設定を再保存する必要があります。
  • kintoneプラグインはスタンダードコースでのみご利用いただけます。ライトコースではご利用いただけませんのでご注意ください。

概要

顧客管理、日報、案件管理等々・・・日ごろ利用している様々なアプリに一意のIDをつけたい、という方向けのプラグインです。

本プラグインは年次ごとの自動採番を行うワザ 、自動採番して、レコード登録する をプラグイン化したものになります。

2017/04/20:設定項目に「APIトークン」と「採番の桁数」を追加しました。その他変更点は「更新履歴」よりご参考ください。

設定画面(設定例)

autonum-1.JPG

レコード詳細画面(レコード登録後)

autonum-2.JPG

プラグイン を利用する

STEP1:フォームを設定する

アプリのフォームを設定します。次のフィールドを配置します。

  • 自動採番用のフィールド
    採番対象のフィールドを配置します。文字列(1行)フィールドを使用します。
    ※テーブルに設定したフィールドは使用できません。

ほかのフィールドの配置は任意です。

STEP2:アプリにプラグインを追加する

アプリに自動採番プラグインを追加します。プラグインの追加方法は、kintone ヘルプを参照してください。
プラグインを追加する

STEP3:プラグインを設定する

  1. アプリ管理画面の「詳細設定」>「プラグイン」を開き、自動採番プラグインの歯車マークをクリックします。
  2. 各項目を設定します。
    項目名 説明
    自動採番フィールド選択

    採番を設定するフィールドを選択します。

    採番の桁数

    採番の桁数を指定します。1以上を指定する必要があります。

    ※「採番の桁数」は、採番の最大桁数を設ける機能ではなく、桁が足りない場合に、指定した桁数まで桁を補完するものです。
    例、「採番の桁数」に4を指定した場合の自動採番:
     0001
     0002
     0003  ← 4桁になるように補完
     ...
     9999
     10000 ←4桁を超える
    採番書式選択

    採番する際の書式を以下から選択します。

    • 連番
    • 日付+連番
    • 日付+テキスト+連番
    • テキスト+連番
    • テキスト+日付+連番
    日付書式選択

    採番書式選択で日付を選択している場合、日付の書式を以下から選択します。

    • 年月日(YYYYMMDD)
    • 年月(YYYYMM)
    • 月日(MMDD)
    • 月日年[西暦4桁](MMDDYYYY)
    • 月日年[西暦2桁](MMDDYY)
    • 月年[西暦4桁](MMYYYY)
    • 月年[西暦2桁](MMYY)
    • 年[西暦4桁](YYYY)
    • 年[西暦2桁](YY)
    テキスト入力

    採番書式選択でテキストを選択している場合、テキストの内容を入力します。

    接続語設定

    接続語を以下から選択します。

    • -(ハイフン)
    • _(アンダースコア)
    プレビュー 上記項目で選択した内容の採番をプレビューで表示します。(入力不可)
    連番リセットタイミング

    連番をリセットするタイミングを以下から選択します。
    ※採番書式選択で日付を選択していない場合、設定することはできません。

    • なし
    • 年毎
    • 月毎
    • 日毎
    APIトークン アクセス権の設定により、一部レコードの閲覧権限がないユーザーがレコードを登録した場合でも、正しい連番を採番するためにAPIトークンを入力します。

     

  3. [保存]をクリックします。
  4. 「アプリの設定」画面で[設定完了]をクリックすると、プラグインの設定がアプリに反映されます。

STEP4:プラグインを利用する

  1. レコードを登録します。保存ボタンを押す際に、プラグインに設定された書式で対象のフィールドに採番されます。
  2. 以降レコードを登録する毎に連番がカウントアップされます。

サンプルプラグイン

GitHub にアクセスしてフォルダごとダウンロードしてください。そのフォルダ内の「examples/autonum」に、今回のファイル群があります。
ファイル構成は次のとおりです。

209715393-1.jpg

autonum/
       css/
-51-modern-default.css
-config.css
-desktop.css html/ -config.html
img/
-icon.png
js/
-config.js
-desktop.js
manifest.json

こちらの手順を参考にパッケージングします。

パッケージングしたサンプル

プラグイン開発のためのサンプルであり、サポート対象外であることをご理解の上、ダウンロードしてください。

SAMPLE_autonum.plugin_v2.3.zip

更新履歴

2016/03/24 v1.0 を公開しました
2016/06/09 v1.1 を公開しました。ゲストスペース対応を行いました。
2017/04/20 v2.0 を公開しました。次の修正・機能追加を行いました。

  • 採番の桁数を指定できるように変更
  • 「日付書式選択」項目に次の4パターンを追加
    • 月日年[西暦4桁](MMDDYYYY)
    • 月日年[西暦2桁](MMDDYY)
    • 月年[西暦4桁](MMYYYY)
    • 月年[西暦2桁](MMYY)
  • プラグイン設定画面での採番プレビューの表示場所と表示形式を変更
  • トークン認証項目を追加(レコードのアクセス権を設定しているユーザー向け)
  • 自動採番フィールド選択、採番書式選択と接続語設定の設定を変更したタイミングで入力チェックを行うように変更
  • 画面の高さにより、ボタンとスクロールバーの表示場所が変わるように変更
    • 画面の高さ750px未満の場合:
      「Save」ボタンと「Cancel」ボタンを画面上部と底部に表示し、スクロールバーを画面の外側に表示
    • 画面の高さが750px以上の場合:
      「Save」ボタンと「Cancel」ボタンを画面上部のみに表示し、スクロールバーを画面の内側に表示
  • 設定画面をログインユーザーの言語によって日本語/英語を切り替えるように変更
    (中国語の場合には、英語が表示される)

2017/08/16 v2.1 を公開しました。以下の点を更新しております。

  • スタイルシートを「51-current-default.css」から「51-modern-default.css」に変更しました。
  • その他軽微な修正を行いました。

2017/11/22 v2.2 を公開しました。ゲストスペースでAPIトークンが保存できない不具合を修正しました。

2020/04/06 v2.3 を公開しました。プラグイン設定画面の言語に中国語を追加しました。「ログインユーザーの言語」が中国語の場合、中国語で表示されます。

制限事項

  • Internet Explorer 8では本プラグインはご利用いただけません。
  • スマートフォンでは、使用することができません。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
ほづみゆうき

自動採番プラグインを導入したのですが、番号の重複が発生するようになりました。
法則性もイマイチ見えませんが、何か過去の事例等ございますでしょうか。ご知見いただけますと幸いです。状況は以下のとおりです。
・登録は画面から行っている
・連番リセットタイミング選択は「なし」
・同じ日のレコードで重複はない
・重複した番号の作成者は別のアカウント(同じアカウントで作成したレコードでの重複は発生していない)
・重複が発生したのは特定の日以降(特にプラグインに関する設定は変更していないが、プラグイン導入後に新たなユーザに権限を付与して、その追加したユーザのレコードで重複が発生。プラグイン導入以前のユーザでは発生していない)。

Avatar
北城 彰

新規質問です。

始めまして、いつも便利に拝見させていただいています。

自動採番ですが、『ファイルから読み込む』を使用したときに裁判されず空白になってしますのですが対応策有りますでしょうか。

Avatar
cybozu Development team

北城 彰 様

こんにちは、cybozu developer network運営事務局です。

こちらの自動採番プラグインは、kintone JavaScript APIのレコード追加イベントを使用しております。

このイベントはレコード追加画面または再利用画面で発生するため、ファイル読み込みによるレコード追加には対応しておりません。

※参考:レコード追加画面の保存実行前イベント

https://developer.cybozu.io/hc/ja/articles/201941984#step2

 

対応策として、レコードが1件も登録されていないアプリで下記の操作を行ってから

レコード追加画面または再利用画面からレコードを追加すると、ファイル読み込みで追加したレコードの続きから自動採番されます。

1.自動採番プラグインの設定画面で、採番書式を設定する。

2.自動採番フィールドに対応するファイルの列に、1.と同じ書式で連番をつける。

3.ファイルを読み込む。

Avatar
cybozu Development team

ほづみゆうき 様

お世話になっております。cybozu developer network 運営事務局でございます。

こちらの環境で、ご質問頂いた事象が確認できませんでした。

ユーザー追加時に発生したとのことですので、今一度アプリの権限設定についてご確認お願い致します。

お手数をおかけしますが、よろしくお願い致します。

Avatar
maki

自動採番プラグインを導入しましたが、番号の重複が発生します。

どうやらIE11では重複が発生するようで、いまのところChromeでレコード追加した場合は重複が発生していません。

こちら、本当にブラウザの問題なのかご確認いただけないでしょうか。

よろしくお願いいたします。

Avatar
cybozu Development team

maki 様

お世話になっております。cybozu developer network事務局でございます。

IE11、Chromeで改めて動作を確認しましたが、採番の重複は確認できておりません。

大変恐れ入りますが、下記について情報を頂けますでしょうか。

  • 採番プラグインの設定詳細
  • 発生頻度(IE11で毎回起きるのか、毎回でなければどのくらいの頻度か)
  • どのような状況で発生したか(わかる範囲で構いません)
  • 重複した場合、エラー表示等通常と異なる動作はあったか

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

Avatar
芝佑託

自動採番プラグインを導入し、番号の重複が発生いたしました。

重複したレコードの番号を修正して、次からの採番を一つずらすことはできますか?

Avatar
PV

2人同時に保存ボタンを押した際、番号の重複が発生してしまいました。

回避する方法はございますか?

Avatar
cybozu Development team

PV 様

お世話になっております。cybozu developer network事務局でございます。

現在の仕様ですと、回避する方法はございません。
申し訳ありませんが、運用で回避していただけると幸いです。

よろしくお願いいたします。

Avatar
kyoden

レコードの再利用をした際にも自動発番されるようですが、

自動発番をするフィールドの値の重複を禁止した場合、

レコードの保存時にエラーになってしまいます。

連番設定しているのにも関わらず、同じ番号で発番されるようですが、

これの回避策はありますか?

Avatar
cybozu Development team

kyoden様

 

レコードの再利用をした際にも、保存ボタンを押すと自動採番される仕様になっています。

保存時にエラーになるのは想定の動作ではないため、

プラグインの設定内容、エラーの内容、ブラウザ、OSを教えていただけますでしょうか。

 

> 連番設定しているのにも関わらず、同じ番号で発番されるようですが、

こちらは上記の続きで、再利用画面を利用しエラーになった場合でしょうか。または別のケースになりますでしょうか。

当方で再現できていないため、再現可能な手順を教えてくださいますでしょうか。よろしくお願いいたします。

Avatar
kyoden

cybozu Development team 御中

 

>> 連番設定しているのにも関わらず、同じ番号で発番されるようですが、

>こちらは上記の続きで、再利用画面を利用しエラーになった場合でしょうか。または別のケースになりますでしょうか。

全て一連の流れです。

 

ブラウザはChromeの最新版(バージョン: 80.0.3987.100(Official Build) (64 ビット))で、OSはWindows 10 Pro 64ビットです。

プラグインについては添付画像の内容で設定しています。

フィールド名が「案件番号」というフィールドの設定にて「値の重複を禁止する」にチェックを入れてます。

レコードを複製して保存ボタンを押すと、「エラー」という背景が赤色のポップアップが表示され、レコードが保存できません。

そして、「案件番号」を確認すると、フィールド下部に

「値がほかのレコードと重複しています。」

という背景が赤色のエラーメッセージが表示されます。

本番環境でエラーが起こったので、アプリの動作確認でレコードが全くない状態で、

新規レコードを一つだけ作成し、それを複製しましたが、

やはり同様のエラーが発生します。

Avatar
cybozu Development team

kyoden 様

お世話になっております。cybozu developer network事務局でございます。
ご返信が遅くなり大変申し訳ありません。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

調査したところ、kintoneのモバイルアプリからレコードを追加した場合、
kyoden様の環境に近い現象を再現できました。

・現象の理由:
 モバイルアプリで追加したレコードはプラグインが未対応なため、番号フィールドが空になります。
 新規レコードを追加する際、一番最近のレコード(モバイルで追加したレコード)が空のため、
 1から番号を振り直すことになります。
 以前にすでに1番が存在する場合、重複エラーが出ます。

・「アプリの動作確認で確認しても同様のエラーが発生」現象について:
 自動採番プラグインが新しいレコードに番号を付与する際は、
 本番環境レコードの採番された番号を取得し、それを元に新しい番号を採番しています。
 そのため、「アプリの動作テスト」環境でレコードがなくても、
 本番環境にすでにある番号でしたら、本番環境と同じく重複エラーが出ることになります。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

もしkyoden様の環境が上記と同じ状況でしたら、回避策として、
番号形式が正しくないレコードを手動で削除して頂ければ、エラーが解消されると思います。

よろしくお願い致します。

cybozu Development teamにより編集されました
Avatar
SEAAAAAAA

2点質問させてください

 

1.0リセットする方法

自動採番プラグインを用いて、業務用通し番号を採番しています。

「連番」を活用しておりますが、年度ごとに0リセットしたいと考えています。

(社内システムの番号形態に合わせて R7XXXXX0→次年度R8XXXXX0のように採番しています)

前後のアプリとのリンクの関係で年度をまたがせたいと考えています。

0リセットするにはどうしたらよいでしょうか?

 

2.重複禁止

「文字+YYYYMM+連番」で採番するアプリがあります。

複数人で同時にレコード保存をしたところ、同じ番号で採番されてしまった例がいくつか発生しました。

重複が起きないようにするにはどうしたらよいでしょうか?

(採番結果を表示するためのフィールドに「重複禁止」を設定し難は逃れていますが、

他のアプリでは重複禁止を設定できない条件もあるため、根本的にどうしたらよいか知りたいです)

 

ぶしつけな質問で恐縮ですが、お力をお貸しいただけたら幸いです。

以上、よろしくお願いいたします。

 

Avatar
SEAAAAAAA

追記です

1桁で採番するよう設定していたところ、0→9の後、0に戻らず10.11.12と続いてしまいました。

Avatar
cybozu Development team

SEAAAAAAA 様

お世話になっております。cybozu developer network事務局でございます。

1.について

年度ごとに0リセットするには、フォーマットに年を含ませる必要があるので、
「テキスト+日付+番号」になるかと思います。
「テキスト+番号」で、番号を年度ごとにリセットすることは、現在の仕様ではできないです。

2.について

現在の仕様ですと、回避する方法はございません。
申し訳ありませんが、運用で回避していただけると幸いです。

>>桁で採番するよう設定していたところ、0→9の後、0に戻らず10.11.12と続いてしまいました。
こちらは確認してから返事させていただきますので、少しお時間がかかるかもしれません。

よろしくお願いいたします。

Avatar
cybozu Development team

SEAAAAAAA 様

>>桁で採番するよう設定していたところ、0→9の後、0に戻らず10.11.12と続いてしまいました。

確認したところ、

桁数の指定については、採番数に限界値をもうけるための機能ではなく、
桁が足りない場合に、桁をいくつ補完するかを設定するための機能なので、想定の動作です。
 
・1桁の場合
1
2 -> 足りているので補完しない
...
 
・2桁の場合
01
02 -> 足りないので(2-1= 1桁補完)
...
 
・5桁の場合
00001
00002 -> 足りないので(5-1= 4桁補完)
...
 
ご確認お願いいたします。

 

Avatar
吉田

お世話になります。吉田と申します。

自動採番プラグインを利用しているのですが、サイボウズの2020/7定期メンテナンスで実施される「APIのoffsetの上限値制限」の影響は受けませんでしょうか。

お手数ですがご教示お願いいたします。

吉田により編集されました
Avatar
cybozu Development team

吉田様

お世話になっております。cybozu developer network 運営局です。

当プラグインでは、offset を利用したレコード取得する処理はおこなっていないため、offset 上限値制限の影響は受けない認識です。
よろしくお願いいたします。

Avatar
吉田

cybozu developer network 運営局 御中

お世話になっております。吉田です。

早速のご回答、ありがとうございました。

ログインしてコメントを残してください。