カテゴリー内の他の記事

自動採番プラグイン

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.4.1.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 を公開しました。プラグイン設定画面の言語に中国語を追加しました。「ログインユーザーの言語」が中国語の場合、中国語で表示されます。

2021/03/03 v2.4 を公開しました。次の修正を行いました。

  • タイムゾーンが異なるユーザーやPCのシステム設定が実際の時間とずれているユーザーがレコードを登録すると、発番できずにレコード登録できないことがある現象を修正

2021/08/13 v2.4.1 を公開しました。次の修正を行いました。

  • 使用している外部ライブラリーのファイルをプラグイン内にバンドル化

制限事項

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

利用している OSS のライセンス情報

このプラグインで利用している OSS のライセンスは次のとおりです。

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

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
takahashi

こちらのプラグインを利用しようとしたら、表示がHTML表示?になってしまいました。原因はわかりますでしょうか?

Avatar
cybozu Development team

takahashi 様

お世話になっております。cybozu developer network 運営局です。
当方でもいくつかの環境でためしましたが、問題なく動作いたしました。
 
おそらく、固有の環境の問題かと思われますので、恐れ入りますが、cybozu developer コミュニティをぜひご活用ください。
Avatar
Owa

こちらのプラグインを利用させていただいているのですが、とあるアプリでユーザーごとにレコードの制限をかけているため、APIトークンを設定致しました。

APIトークンはアプリ設定の「APIトークン」から生成し、アクセス権には「レコード閲覧」を設定しております。

そこで生成されたトークンを本プラグインの「APIトークン」に記載し設定をしたのですが、レコード制限されたユーザーがレコードの登録を行っても、”エラー データの読み込みに失敗しました。権限がありません。(CB_N002 ~)”というエラーメッセージが出てしまいます。

こちら原因は何でしょうか?

試したこと

・APIトークンのアクセス権をすべてつけた

・アプリ管理権限のあるユーザーにレコードの制限をかけて試した

Avatar
cybozu Development team
Owa 様
 
お世話になっております。cybozu developer network 運営局です。
当方でも同じく、レコードのアクセス権にて閲覧権限のみ付与した環境でためしましたが、問題なく動作いたしました。何か別に原因があるのかもしれません。
 
また、恐れ入りますが、こちらのコメント欄は記事内容のフィードバック目的となっております。
個別の事象や、または技術的なご質問は、cybozu developer コミュニティをぜひご活用ください。
Avatar
K3

お世話になります。

KINTONE初心者のK3と申します。

KINTONEを採用し、私が稟議書を作成し自動採番プラグインを使用しています。

現在運用を始めましたが、問題が発生しており困っています。

 

問題点

まず、本年1月からテストを実施し特に問題なく稼働する事を確認

※テストに不参加だったAさんがパスワードを忘れた為、再発行(Aさん以外テスト参加)

➀Aさんが稟議作成。自動採番されず番号なしで保存される。

 プラグイン等確認しましたが特に問題なく、保存等を何回か繰り返すことで復旧。 

 →Aさんの稟議が決裁まで進んでしまった為、一度自動採番を解除し手入力で処理。

  再度自動採番プラグインを設定し保存。

『202102_001』は使われていました(手入力)が再度、稟議作成時『001』を発番した為『202002_001』の捨て番稟議発行。

※順調に『202102_002~006』まで発行。(Bさん・Cさん・Dさん作成)

➁Eさんがパスワードを忘れた為、パスワード再発行。

Eさん稟議作成。『202102_001』で発行。

Cさんに稟議作成依頼『202102_007』で発行。

Eさんの稟議No.『202102_006』を手入力にて修正。

➂Fさんが稟議作成。(パスワードも忘れていません)

 『202102_001』で発行。

Fさんに『008』まで番号を進めてもらい、『001~007』削除。

※本日、Gさんが稟議作成。『202102_009』で発行。

 

以上が問題点になります。

ヒント等でも構いませんのでご教授願います。

Avatar
cybozu Development team

K3 様

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

おそらく、モバイルからの操作などの何らかの理由で、
採番されていないレコードが作成されていることが原因かと推測します。
自動採番プラグインの仕様では、レコード ID が一番大きいものの値を元に採番されるため、
自動採番したいレコードの直前に採番が空のレコードがあると、再度 1 から採番されます。

解決策としては、レコード番号順かつ空番号がないように採番し直していただく必要がございます。
ご確認よろしくお願いします。

Avatar
K3

返答ありがとうございます。

空番号が存在していました。

この番号を埋め現在通常に稼働出来ております。

 

Avatar
山田友

ご担当者様
お世話になっております。

こちらの自動採番プラグインを利用させていただいているのですが、
kintoneでIPアドレス制限を掛ける場合、こちらのプラグインを継続利用するためには、どのIPアドレスを登録するべきでしょうか。

以下リンクに記載のIPアドレスでよろしいのでしょうか。

https://faq.cybozu.info/alphascope/cybozu/web/kintone/Detail.aspx?id=60&isCrawler=1

Avatar
cybozu Development team

山田友 様

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

注意事項として、IP アドレス制限およびセキュアアクセスを利用した環境では、

API トークン設定機能が動作しなくなる可能性がございます。

そのため、まずお客様がご利用中のプラグインで API トークンを設定しているかご確認いただきますようお願いいたします。

API トークンを設定している場合の解決策としては、以下の策が挙げられます。

   ※こちらは FAQ でも記載の通り、推奨していない設定となります。

  • kintone.plugin.proxy() でリクエストしている部分は、.s なしでリクエストするように、プラグインのコードを改修する

なお、注意事項に記載の通り、当プラグインに関する技術的なサポートは致しかねます。

また、恐れ入りますが、こちらのコメント欄は記事内容のフィードバック目的となっております。
個別の事象または技術的なご質問は、cybozu developer コミュニティをぜひご活用ください。

お手数ですが、ご確認のほどよろしくお願いいたします。

Avatar
takashi.k

便利に利用させて頂いておりますが、最近レコードに閲覧権限を設定したところ、正しく採番されなくなる現象がありました。

このような状態で自分が担当するレコードしか閲覧できない設定にした時、

レコード26 を Bさんが追加した場合は正しく採番され SS-0026 になりますが、

レコード26 を Aさんが追加した場合は  SS-0024 になってしまいます。

Aさんが閲覧できる範囲での最新が SS-0023 の為、次は SS-0024 になるのだろうと予想しています。

解決はなかなか難しそうですが、可能であればアップデートを期待します。よろしくお願いします。

Avatar
cybozu Development team

takashi.k 様

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

ご指摘いただきましたとおり、すべてのレコードが参照できていないと最後に作成したレコードが取得できなかった場合、このようになってしまいます。
社内チームにフィードバックいたします、ご連絡ありがとうございました。

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

 
 
Avatar
ohara

お世話になっております。

今年より自動採番プラグインを見積アプリの見積番号にて利用しております。

本日、自動採番フィールドで値が重複しているエラーがでています。

手入力にて登録していますが、現象を2アカウントで確認しましたが、別の1アカウントでは入力できています。

採番されずに空白のレコードはありませんでした。お手数ですが、改善方法をご教授ください。

Avatar
cybozu Development team

ohara 様

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

おそらくですが、
ユーザーによって権限設定により、閲覧できるレコードに制限があるからだと推測されます。
このプラグインでは、最新のレコードをもとに、採番をおこないますので、権限設定によってはこのような状況になってしまうかと思われます。

これを回避するには、
すべてのユーザーに対し閲覧権限を付与するか、
独自のJavaScriptカスタマイズや、プラグインをカスタマイズするなどで、権限に制限があっても採番できるようにする、などの必要があります。

また、恐れ入りますが、こちらのコメント欄は記事内容のフィードバック目的となっているため、

カスタマイズ方法など、記事から派生した技術的なご質問などがあれば cybozu developer コミュニティをご活用ください。

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

Avatar
ohara

cybozu developer network 運営様

お世話になっております。

アクセス権の権限設定を変更したところ、エラーは解消されました。ありがとうございました

技術サポートについてはコミュニティにて改めて相談させていただきます。

Avatar
ffffu

本プラグインを使用しており、下記事象が発生しております。

新規レコードには連番が振られていたのですが、モバイルアプリから登録したところ、自動採番される場所が空欄となるレコードが作成されてしまいました。

以降、新規登録したレコードは、1,2,3,4,,,,,とリセットされた状態からの再自動採番となっています。

 

モバイルアプリからの新規登録では自動採番はされないのでしょうか?
また、同事象を回避する方法など、ございますでしょうか?

 

以上、ご確認のほど、よろしくお願い致します。

Avatar
cybozu Development team

ffffu 様

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

> モバイルアプリでレコードを登録すると空欄になる

「制限事項」にあるように、このプラグインはスマートフォンに対応していません。
そのため、モバイルからレコードを登録しても自動採番されません。
対応する場合は、ご自身でプラグインのプログラムを修正していただく必要があります。

> 以降に登録したレコードは、1 から再採番される

空欄で登録されたレコードと1から再採番されたレコードを削除する必要があります。
削除すると、元々の番号から続けて再採番されるようになるかと思います。
参考:https://developer.cybozu.io/hc/ja/articles/209715393/comments/900002193566

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

Avatar
ffffu

cybozu developer network 運営局
ご担当者様

ご返答頂き、ありがとうございます。

> > 以降に登録したレコードは、1 から再採番される
>
> 空欄で登録されたレコードと1から再採番されたレコードを削除する必要があります。
> 削除すると、元々の番号から続けて再採番されるようになるかと思います。
実は事象が発生していたのが少し前の話であり、1から再採番されたレコードが現在すでに300件近く登録されているような状況です。
イメージとしては、下記です。
----------------------------------------
SP-202104-0000004798
SP-202104-0000004799
SP-202104-0000004800
(空欄登録)
SP-202104-0000000001
SP-202104-0000000002
SP-202104-0000000003


SP-202106-0000000298
SP-202106-0000000299
SP-202106-0000000300
----------------------------------------
今後の新規追加レコードを4801,4802というように連番にて登録させる方法は何かありますでしょうか。

0001~0300の番号はお客様へも通知しているものであるため、再採番されたレコードを削除することは不可となります。
また、csvエクスポートしてここの番号を手入力にて修正し、再度インポートする。という方法も同じく不可となります。

以上、ご確認のほど、よろしくお願い致します。

Avatar
cybozu Development team

ffffu 様

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

1〜から再発番されたレコードを削除したり、付け替えることは難しいということですね。

ダミーのレコードを登録し、ダミーのレコードの自動裁判するフィールドの値を、「次に発番されるべき番号の一つ前の番号を設定する」という方法は難しいでしょうか?

プラグインでは、最後に登録されたレコードの情報を元に、次の発番を行います。
最後に登録されたレコードの発番が「4800」であれば、次に登録したレコードは「4801」になるはずです。

ただ、記載していただいている番号のフォーマットを見ると、「SP-YYYYMM-自動採番した番号」のフォーマットになっており、登録した年月も番号に影響するようです。
例えば、最後に登録されたレコードが「SP-202106-0000000300」であっても、2021年の7月に初めて登録したレコードは「SP-202107-0000000001」になります。

4801,4802というように連番にて登録させるとのことですが、
6月にレコードを登録するときに「SP-202106-0000004801」になってよいのであれば、
ダミーのレコードの値を「SP-202106-0000004800」に設定します。

Avatar
ffffu

cybozu developer network 運営局
ご担当者様

早々にご返答頂き、ありがとうございます。

> ただ、記載していただいている番号のフォーマットを見ると、「SP-YYYYMM-自動採番した番号」のフォーマットになっており、登録した年月も番号に影響するようです。
> 例えば、最後に登録されたレコードが「SP-202106-0000000300」であっても、2021年の7月に初めて登録したレコードは「SP-202107-0000000001」になります。
月をまたいだ場合にも、連番はリセットされないように設定しております。
下記キャプチャをご確認ください。

> ダミーのレコードを登録し、ダミーのレコードの自動裁判するフィールドの値を、「次に発番されるべき番号の一つ前の番号を設定する」という方法は難しいでしょうか?
こちらの方法で問題ないのですが、ダミーのレコードの登録というのはどのように行えばよいでしょうか?
現在の状態でレコードを登録すると、次のレコードの自動採番の欄は「SP-202106-0000000301」となってしまいます。
自動採番の欄は手入力が出来ないのですが、以下のような流れでよいのでしょうか?
----------------------------------------------------------------------------
・自動採番のプラグインを無効にする

・ダミーレコード①を登録し、自動採番で入力されるはずだった欄を「SP-202106-0000004800」と手入力する

・自動採番のプラグインを有効にする

・ダミーレコード②を登録し、自動採番で入力される欄が「SP-202106-0000004801」となることを確認する

・ダミーレコード①②を削除する
----------------------------------------------------------------------------

 

以上、ご確認のほど、よろしくお願い致します。

 

Avatar
cybozu Development team

ffffu 様

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

> 月をまたいだ場合にも、連番はリセットされないように設定しております。

連番はリセットされないのですね。失礼いたしました。

> 自動採番の欄は手入力が出来ないのですが、以下のような流れでよいのでしょうか?

はい、その流れで問題なさそうです。

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

 

 

Avatar
nnnng

cybozu developer network運営チーム様

お世話になっております。

レコードが10万件以上ある場合も採番できるのでしょうか。

 

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

nnnng様

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

採番プラグインは最新レコードのデータに準じて採番しますので、特に問題はないかと思われます。
ただし、レコード数が多いとパフォーマンス上の懸念がでてくる可能性はあります。
詳しくは制限事項のkintoneの項を御覧ください。

また、こちらのコメント欄は記事内容のフィードバック目的となっているため、
もしも技術的なご質問やご不明点がある場合はcybozu developer コミュニティをご活用ください。

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

 

 

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