こんにちは。
リーデックス中澤です。
今回は、私が業務で引っかかったところである「レコード作成時、計算式で自動採番の項目を参照したら空欄になった」ことと、その解決方法についてまとめました。
同じ悩みを抱えている方がいましたら、ぜひ参考にしてください。
自動採番機能とは
自動採番機能は、レコードが作成される際にレコード内の項目データなどを使用して別の項目のデータを自動的に作成することができる機能です。
主な内容として、
- 自動的に連番がふれる
- 作成時にのみ実行される
- 年、月、日、文字列の変化をトリガーとして連番をリセットできる
が挙げられます。
詳しい説明はこちら↓
【便利!】プリザンターで自動採番機能をわかりやすく解説します。
テーブルの管理:エディタ:項目の詳細設定:自動採番 | Pleasanter
計算式機能とは
計算式機能は、レコード内の数値データから計算を行い、別の項目のデータとすることができる機能です。四則演算のほか、計算式(拡張)を使用すると、文字列の結合やif文による条件分岐なども取り扱えるようになり、さらに活用の幅が広がっています。
主な内容として、
- 関数を利用して条件分岐などの処理が扱える
- 作成時だけでなく更新時にも処理が実行される
- 自動ポストバックの設定が使える
が挙げられます。
詳しい説明はこちら↓
これで基礎は完璧!プリザンターの関数機能を余さずにお伝えします!
計算式で自動採番を設定した項目を参照すると
計算式内で自動採番を設定した項目を参照した場合、プリザンターがどのような挙動をするか検証しました。
1.分類Aに本日日付を取得する自動採番を設定

2.分類Bには連番の自動採番を設定

3.計算式を設定
分類Cに、分類Aと分類Bをハイフンで結合した文字列を返すように設定(自動採番でできるけど検証用ということで)

この状態でレコードを新規作成してみると・・・

分類Cのデータがハイフンのみとなっており、自動採番の項目が入力されていないことがわかります。

続いて更新ボタンをクリックすると、自動採番のデータは入力されているので、分類Cにデータが入ってきます。

この挙動から、レコード作成時には計算式で自動採番のデータを参照することができません。原因としては、自動採番の処理が計算式の処理より後に実行されるためであると考えられます。
解決方法
処理順による問題の解決策は下記3つ考えてみました。
- 更新ボタンをクリックする
更新時にはすでに自動採番のデータはレコードに存在するので、更新時には計算式は正しく動作します。ただ、作成した後に更新ボタンを都度押す必要があり、あまり望ましいものでないと思います。 - 全て自動採番で対応する
全て自動採番でできれば自動採番で対応してしまうのも手です。レコード内の日付データを抽出するときは、フォーマットの指定ができないため年、月、日などを抽出して各フォーマットを整える必要があります。 - サーバースクリプト
困ったときのサーバースクリプト。Javascriptが書ける人ならこちらで対応するのが楽かもしれません。
状況に応じて使い分けていただけるとよいかと思います。
まとめ
今回は自動採番機能と計算式機能の概要、それらの処理順に係る使用時の注意点についてまとめてみました。
弊社では、スクリプトやスタイルを利用したカスタマイズについてご支援させていただいております。スクリプトについて相談したい、業務を改善のために実現したい機能がある、や、本記事や過去の記事のスクリプトを応用したい、などありましたら、お気軽にお問合せください。
最後までご覧いただき、ありがとうございました。