年次ごとの自動採番については、
年次ごとの自動採番を行うワザでも紹介されていますが、今回はこれを案件毎に採番する方法を解説します。
利用するアプリは2つです。
具体的には、アプリストアの「
営業支援(SFA)パック
」を利用します。
案件情報を登録する時の「案件名」に、任意のフィールド情報とともに、ルックアップで取得された「顧客ごとの連番」を文字列連結したうえで、デフォルト表示するというものです。
このアプリパックを
kintoneアプリストア
から追加してください。
デモ環境
デモ環境で実際に動作を確認できます。
ログイン情報は cybozu developer networkデモ環境で確認してください。
フォームイメージ
案件情報アプリのフォームのイメージは次のとおりです。
採番フォーマット
採番フォーマットは、[顧客名]-[連番5桁]-[案件種類]です。
フィールドの設定
顧客情報アプリ
顧客ごとの連番を管理する必要があるので、顧客情報アプリに採番管理用のフィールドを以下の内容で追加します。
普段必要なフィールドではないので、グループで隠しておくのもよいかと思います。
追加するフィールド | フィールド名 | 初期値 | フィールドコード |
---|---|---|---|
数値 | 案件連番 | 0 | 案件連番 |
次に、上記案件連番を更新するため、顧客情報のアプリIDが必要になります。
このID検索をするためのアプリコードを設定します。
設定は、アプリの設定 > 詳細設定 > 高度な設定より行います。
案件情報アプリ
案件情報アプリにも、上記の顧客情報アプリ同様の数値フィールドを追加します。
また、のちほど顧客情報アプリの更新時に必要なレコード番号を取得するため、以下のフィールドを追加します。
追加するフィールド | フィールド名 | 初期値 | フィールドコード |
---|---|---|---|
数値 | 案件連番 | 0 | 案件連番 |
数値 | 顧客情報レコード番号 | - | 顧客情報レコード番号 |
上記2フィールドを追加した後、顧客名ルックアップフィールドの設定、[ほかのフィールドのコピー]にて、[案件連番]および[顧客情報レコード番号]の値を取得するように設定します。
次に[案件名]に付与する任意のフィールドとして、以下を追加します。
ルックアップフィールドの値を変更したときにはイベントが発生しないため、追加するフィールドの値の変更イベントで案件名を設定します。
追加するフィールド | フィールド名 | 項目と順番 | フィールドコード |
---|---|---|---|
ドロップダウン | 案件種類 | 新規,追加,変更 | 案件種類 |
案件連番の取得と編集を行うソースコード
まず、レコード追加・編集画面で"案件種類"を変更した際に、「案件名」に採番を行うサンプルです。
sample.jsという名前で保存し、「案件情報」アプリに適用しましょう。
|
|
連番を更新するソースコード
以下は、レコードを追加した際に連番を更新するコードです。
sample.jsの30行目に追加します。
|
|
ソースコードの解説
顧客ごとの連番は、ルックアップフィールドの設定内容にある取得先の情報を使用します。
連番を更新するレコードの特定には、ルックアップで取得した顧客情報レコードIDを使用します。
アプリIDの取得には、
複数のアプリの情報を取得するを利用しました。
アプリ名や複数のアプリコードを利用して、アプリIDの一括取得が可能です。
ここでは設定したアプリコードから、アプリIDを取得しています。
注意事項など
顧客情報の案件連番更新に関する一連の処理は、案件登録時のapp.record.create.submit
イベントを元に、別のアプリのフィールドを更新します。
しかし、顧客情報が更新中の場合や、削除されている場合、連番は更新されません。
また、サンプルコード内のchange_events
変数に指定されていないフィールドの値を変更した場合は、手作業の修正による対応が必要となります。
以上のように、顧客ごとの連番整合性は限定的ですのでご注意ください。
このTipsは、2024年7月版kintoneで動作を確認しています。