カテゴリー内の他の記事

自動採番プラグイン

フォローする

概要

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

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

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

設定画面(設定例)

autonum-1.JPG

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

autonum-2.JPG

自動採番プラグイン を利用する

STEP1:フォームを設定する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    接続語設定

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

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

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

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

     

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

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

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

サンプルプラグイン

plugin-sdk にアクセスしてフォルダごとダウンロードしてください。そのフォルダ内の「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

プラグインの開発手順 パッケージング を参考に、「autonum」をパッケージングします。

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

auto_num_plugin.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」に変更しました。
  • その他軽微な修正を行いました。

制限事項

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

注意事項

  • サンプルプラグインは、その動作を保証するものではありません。
  • サンプルプラグインの技術的なサポート等は行っていません。
  • 本プラグインをv1.1以前のプラグインからアップデートする際はプラグインの設定画面より設定を再保存する必要があります。

※kintoneプラグインはスタンダードコースでのみご利用いただけます。ライトコースではご利用いただけませんのでご注意ください。

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

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

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
岩崎

会社マスタ作成時、親コード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で対応可能か、またその場合の設定方法もご教示いただければと思います。 よろしくお願い致します。

岩崎により編集されました
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
岩崎

>cybozu Development team様

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

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

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

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

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

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

Avatar
cybozu Development team

小畑様

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

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

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

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

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

Avatar
小畑克哉

アクセス権

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

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

Avatar
cybozu Development team

小畑様

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

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

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

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

Avatar
小畑克哉

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

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

困りました・・・

Avatar
cybozu Development team

小畑様

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

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

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