cybozu developer network

カテゴリー内の他の記事

自動採番プラグイン

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.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 を公開しました。
    • プラグイン設定画面の言語に中国語を追加しました。「ログインユーザーの言語」が中国語の場合、中国語で表示されます。
  • 2021/03/03 v2.4 を公開しました。次の修正を行いました。
    • タイムゾーンが異なるユーザーやPCのシステム設定が実際の時間とずれているユーザーがレコードを登録すると、発番できずにレコード登録できないことがある現象を修正
  • 2021/08/13 v2.4.1 を公開しました。次の修正を行いました。
    • 使用している外部ライブラリーのファイルをプラグイン内にバンドル化
  • 2022/06/16 v2.4.2 を公開しました。次の修正を行いました。
    • 自動採番されるフィールドが空のレコードを登録すると、次に登録したレコードで正しく採番されない現象を解消
  • 2022/09/06 v2.4.3を公開しました。次の変更を行いました。
    • JavaScriptソースコードをES6以降の記法に書き換えました。

制限事項

  • モバイルからはプラグインを利用できません。

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

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

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

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

Avatar
塚本孝幸

このプラグインを導入したら、JQueryの.datepickerがundefineになるのですが。。。。導入やめますか。。。

Avatar
塚本孝幸

あ、ソース変えたら動きましたー。

Avatar
hiryukij

apiからのレコード登録時は、自動採番されませんでした。

あくまで画面からの登録に限る、ということでしょうか。

 

Avatar
cybozu Development team

hiryukij様

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

hiryukij様が記載いただいている通り、こちらは「画面からの登録に限る」というプラグインとなります。

> レコードを登録します。保存ボタンを押す際に、プラグインに設定された書式で対象のフィールドに採番されます。

「STEP4:プラグインを利用する」に上記のように記載させていただいているのですが、
こちらのプラグインは保存ボタンを押したタイミングで処理を行っているため、画面
からの登録時にのみ実行されます。

申し訳ございません。
よろしくお願い致します。

Avatar
hiryukij

cybozu developer network事務局 様

回答ありがとうございます。了解しました。別の方法で進めます。

Avatar
野口亜希子

接続語設定で(-)か(_)を選べますが、接続語が不要な場合はどのようにscriptを書けばよろしいでしょうか?

必須項目から外せばいいのかと思いましたが、変わりませんでした。接続語を付けないようにするには、どう設定したほうがいいのかご教授いただけますでしょうか。

        validateFormValue: function() {

// if (connective === 'null') {
// this.alert(this.settings.element.input.connectiveSelect,
// this.settings.i18n.alertMessage.notSelectedConnectionChar);
// validateResult = false;
// }

Avatar
cybozu Development team

野口亜希子様

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

申し訳ありませんが、こちらの欄は記事についてのフィードバックになりますため、

ご質問についてはcybozu developer コミュニティをご活用ください。自動採番プラグインの件で、と書いていただければ結構です。

よろしくお願い申し上げます。

Avatar
石野 真

自動採番プラグインを導入してまもなく、「自動採番の番号取得に失敗しました : 'moment' は定義されていません」

というエラーが時々出るようになりましたが、何が原因でしょうか。時間を置くとエラーにならず正常に登録できます。

Avatar
cybozu Development team

石野 真様

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

手元で確認したのですが、石野様の内容のエラーは表示されませんでした。

パッケージングしたサンプルをご利用の上、こちらの記事の手順通りに設定していただいている状況でしょうか?
問題点を特定する方法として「デバッグ」していただくと特定できるかもしれません。
下記の記事を是非参考にしていただけたらと思います。

動かない?そんな時はデバッグをしてみよう!入門編
https://developer.cybozu.io/hc/ja/articles/207613916

記事通りに設定していただき、動かない場合は是非こちらでご連絡ください!
もしも、JavaScriptファイルを変更し、独自でパッケージングしている場合は、cybozu developer コミュニティをご活用いただければと思います。

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

Avatar
石野 真

ご確認ありがとうございます。

パッケージングされたサンプルを手順通りに設定し、特にカスタマイズはしていません。

こちらでも再現性がないのでデバックしてもなかなかエラーが確認ができませんので

しばらく様子を見ます。

Avatar
flowers

会社マスタ作成時、親コードx7桁、補助コードy3桁でコードを持ちたいと考えています。

たとえば

株式会社ABC本社:0000001-000

株式会社ABC大阪支社:0000001-001

株式会社ABC北海道支社:0000001-002

XYZ株式会社本社:0000002-000

XYZ株式会社東京営業所:0000002-001 といったイメージです。

xxxxxxx-yyyという型式で自動採番したいのですが、この場合はどのように設定したら良いでしょうか。

7文字xと3文字yを入れるフィールドを別に用意する必要があるのか、10桁入力で接続語で-を選べば良いのでしょうか。

自動採番プラグインでの設定が無理な場合、javascriptで対応可能か、またその場合の設定方法もご教示いただければと思います。 よろしくお願い致します。

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

岩崎 様

ご質問ありがとうございます。

株式会社ABC本社とXYZ株式会社本社を本社アプリ、株式会社ABCの支社をABCアプリ、XYZ株式会社の支社をXYZアプリで管理していて、
ABCアプリとXYZアプリ側でLookupによってそれぞれの本社のコードを持ってくる場合は、次のような設定ができます。

採番の桁数に3を指定し、採番書式選択に本社コード+連番を指定します。

※当プラグインはレコードを登録するタイミングで通し番号(採番)を作成し、レコード順に採番していきますので、
 上記の例では、株式会社ABC北海道支社がレコード1、株式会社ABC大阪支社がレコード2の順で登録した場合、採番結果は以下になります。

 株式会社ABC大阪支社:0000001-002
 株式会社ABC北海道支社:0000001-001

>javascriptで対応可能か

javascriptは対応可能だと思います。
どこまでカスタマイズするかによるが、本社と支社を同じアプリで管理することも可能です。
ソースコードがかなり複雑になると思います。
ソースコードについては、本プラグインのdesktop.jsも参考になるかと思います。
https://github.com/kintone/plugin-sdk/blob/master/examples/autonum/js/desktop.js

※プラグインの場合は、設定画面から指定したフィールドを取ってくるのですが、JavaScriptカスタマイズの場合はフィールドコードを直接に指定します。

 

こちらのコメントは当記事へフィードバックいただくための場所です。
カスタマイズに関するご質問はcybozu developer コミュニティをご活用いただければkintone有志達が色々アドバスしてくれると思いますよ。

どうぞよろしくお願いいたします。

Avatar
flowers

>cybozu Development team様

ありがとうございます。同じアプリ内で管理をしたかったのですが、検討させていただきます。

flowersにより編集されました
Avatar
小畑克哉

レコードの閲覧・編集権限を作成者に割り当ててEveryoneには閲覧編集権限をつけていない状況で

APIトークンを設定欄に入力すると「APIトークンに正しい権限が設定されていません」のエラーが

出て保存できません、スペースはゲストスペースで利用し作成者にしかほかの入力内容は見せたく

ありません、初心者ですみませんが教えてください。

Avatar
cybozu Development team

小畑様

可能でしたら以下の情報もいただけますでしょうか。

- レコードのアクセス権設定のスクリーンショット

- APIトークンの生成画面のスクリーンショット

- (可能でしたら)ゲストスペースではなく普通のスペースのアプリの場合、同様の設定で同様の問題が発生するか

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

Avatar
小畑克哉

アクセス権

※セキュリティ上削除しました(事務局)

普通のスペースでも同じ現象です、よろしくお願いします

Avatar
cybozu Development team

小畑様

早速ありがとうございます。同様の設定にしてみましたが再現しませんでした。

考えられる原因として、APIトークンを生成後、「保存」ボタンは押したが、「アプリを更新」ボタンを押していないことが挙げられます。

(「アプリを更新」を押さないと、APIトークンが運用環境に反映されません。)

今一度ご確認をいただけますでしょうか。

Avatar
小畑克哉

ゲストスペースではないアプリは上記の方法で登録できましたが、やはり

ゲストスペースのアプリは同じ状況です、何か影響しているかわかりませんが

困りました・・・

Avatar
cybozu Development team

小畑様

ゲストスペースでAPIトークンが保存できない件、当方の環境でも再現しました。

原因調査をしておりますので、もうしばらくお待ちください。

Avatar
cybozu Development team

小畑様

ゲストスペースでAPIトークンが保存できない不具合を修正し、新しいバージョンv2.2のパッケージを本記事にて本日公開いたしました。

お手数ですが問題が解消するかどうかご確認をお願いいたします。

Avatar
小畑克哉

APIトークンの保存はできました!

ただ、ゲストユーザーからのレコード時に自動採番されません、

他のユーザーからのレコードには採番されるのですが…

よろしくお願いします。

Avatar
cybozu Development team

小畑様

こちらでもゲストユーザーでテストしましたが、想定通り採番でき、問題は再現できませんでした。

具体的な再現手順を教えていただけますか。

Avatar
katsuo

予算と実績をリアルタイムに把握する経費精算システムパッケージ

自動採番で交通費申請だけ自動採番されません。何か原因考えられますでしょうか。

Avatar
cybozu Development team

Katsuoさま

cybozu developer network運営事務局です。

「予算と実績をリアルタイムに把握する経費精算システムパッケージ」にて回答させていただいております。よろしくお願いいたします。

Avatar
つぼうち

自動採番プラグインで採番した「案件NO」は、フィルター機能で絞り込むことは出来ないのでしょうか?

 

Avatar
cybozu Development team

つぼうち様

自動採番プラグインで採番した文字列は、一覧からの絞り込みができないかというご質問でしょうか。

特にそのような制限はなく絞り込めるようになっています。

できない場合は、何か特定の条件で起きていると考えられますので、どのようなアプリを使っているか、設定画面のスクリーンショットなどをご教示いただけますと幸いです。

Avatar
つぼうち

ありがとうございます。

>自動採番プラグインで採番した文字列は、一覧からの絞り込みができないかというご質問でしょうか。

はいそうです。このアプリの「案件コード」が自動採番になっています。

「案件コード」は「2018_*****」などという形で、年号+NOとなっています。

フィルター機能で「2018_」を含むなどを検索するとうまくいきません。

特定のNo(例えば「2018_0001」など)と入れるとその案件が出てきますが、

絞りこみは出来ません。

Avatar
cybozu Development team

つぼうちさん

kintoneの検索の仕様で、英数字は単語単位でのみ検索できます。
2018_〇〇の場合、kintoneでは「2018」と「〇〇」ではなく、「2018_〇〇」で1単語として認識されます。

その関係で、「2018」や「〇〇」では検索や絞り込みができないということになります。
詳細は以下のヘルプをご参照ください。

▼データを検索する
https://jp.cybozu.help/k/ja/user/search/search_details.html

Avatar
Takao Ohba

レコードの再利用時にも、自動採番できるのでしょうか?

Avatar
cybozu Development team

Takao Ohba様

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

> レコードの再利用時にも、自動採番できるのでしょうか?

はい。自動採番されます。
再利用も、登録画面からの登録になりますので、保存ボタンを押していただくと、自動採番されたレコードが登録されます。

今後ともご利用、宜しくお願い致します。

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