開発情報・ナレッジ

投稿者: SPIRERS ナレッジ向上チーム 2023年3月17日 (金)

データの登録時にIDを自動発番する方法

データの登録時にIDを自動発番させたいというご要望をよく耳にします。
サイト管理側でIDを自動発番をする場合は、1手間加える必要があるため(※ ver.2.23時点)、
今回、設定方法をご紹介いたします。

使用機能

DBの登録トリガ レコードアクション と サイトの登録フォームブロック 自動登録の2つを組み合わせて使用します。

2つの機能を組み合わせる理由とイメージ

現在の機能では、DBで必須制約をかけたフィールドがフォームで使用していないと保存されないため、
ID発番時には、必須制約を自動登録に設定することで、使用状態にします。
※今後のアップデートにより変更される可能性がございます。

SPIRAL ver.2では、サイトからの登録→DBトリガの順に同期処理で動作します
DBに固定値を登録した後にDBトリガを使用して自動発番した値に上書く処理となります。

設定方法

フィールド追加
DBに自動登録とDBトリガで使用するフィールドを追加します。
▼ 追加するフィールド
項目名 フィールドタイプ DB上で必須な属性
自動発番ID テキスト
必須制約:あり
ユニーク制約:あり
登録トリガ「レコードアクション」設定
IDを発番し格納するためのレコードアクションを設定します。
DBトリガでは関数設定をつかってIDを自動発番することができます。
▼ レコードアクションアクション設定内容
アクション先 自DB
アクション先への操作 更新
ID自動発番&フィールド格納 処理
データが登録された際にIDを自動発番しDBに格納させたいので、下記に設定します。
発動条件 指定する
経路条件:すべての経路
※データ一括登録時には動作しません。
処理タイプ 更新
処理マッピング アクション先DBフィールド:自動発番ID = 格納値:
'PB' || LPAD(@testDB._id, 5, '0')

※関数設定を使用します。詳しくは サポートサイトをご参考ください。
※上記の場合、接頭語「PB」、レコードIDを元にゼロで左埋めした5桁の値を文字列として連結した値が生成されます。その他の発番方法はこちらご参考ください。
エラー処理 全てエラー終了
詳細な設定方法は DBトリガのレコードアクション をご覧ください。
登録フォーム「自動登録」設定
固定値を登録するための自動設定を行います。
自動発番するIDのフィールドを指定し、任意の文字列 1 を設定ください。
トリガにて更新される値になるため、好きな値で問題ありません。

最後に

設定後は動作確認を必ず行い、動作に問題がないか確認をしてください。
また、不具合や 他にもこういう事やりたい などあれば、下記の「コンテンツに関しての要望はこちら」からご連絡ください。

解決しない場合はこちら コンテンツに関しての
要望はこちら