開発情報・ナレッジ

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

DBトリガ レコードアクションの関数設定まとめ

DBトリガのレコードアクションでは、フィールドに値をマッピングする際に関数設定を利用することができます。
一見難しそうに見える関数設定ですが、サンプルを用意しましたのでぜひ参考にしてみてください。

レコードアクションの関数設定とは

DBトリガのレコードアクションの処理マッピングに関数設定を使用することで、関数や演算子、フィールドの値を組み合わせたデータ処理を設定をすることが可能です。

関数設定を使用するには、切り替えボタンで関数設定に切り替えた後、電卓アイコンをクリックします。 DBトリガのレコードアクションについては、サポートサイト DBトリガのレコードアクションを、
関数や演算子の詳細については、サポートサイト 条件式や計算式の記法をご参照ください。
この記事では、関数設定のサンプルをご紹介いたします。

関数設定サンプル(固定値)

フィールド内に固定の値をマッピングする場合のサンプルです。
テキスト
'テキスト'
テキストエリア
'テキストエリア'
※改行「\n」は使用できません。
メールアドレス
'email@example.com'
セレクト
'2'
※ラベルIDで指定してください。
マルチセレクト
MULTISELECT(1, 2)
※ラベルIDで指定してください。
整数
1234
数値
3.1415
電話番号
'+81 8011112222'
※国コードの指定が必要です。
日時
'2016-01-01T03:00:00Z'
※UTCで入力する必要があります。
日付
'2016-01-20'
月日
'01-20'
時刻
'12:34:56'
参照フィールド
1
※IDで指定してください。
参照フィールド(複数参照)
MULTI_REF_ARRAY(1, 2, 3)
※IDで指定してください。

関数設定サンプル(フィールド値や関数を使用した設定)

姓と名を結合する
@DB.nameSei || @DB.nameMei
フィールドタイプ:テキスト、テキストエリア
接頭文字+レコードID(ゼロ埋め)で自動発番
'PB' || LPAD(@DB._id, 5, '0')
フィールドタイプ:テキスト、テキストエリア
数字とアルファベットでランダム値を発番(小文字アルファベットと「I」と「O」を除く)
RANDOM_NUM_ALP(10, '[a-z, I, O]')
フィールドタイプ:テキスト、テキストエリア
IDを1から発番させる(テストデータ削除後など)
「- 20」の部分は最後に発番されたIDと同じ数を減算するように変更してください。
@DB._id - 20
ゼロ埋めLPAD()と組み合わせることも可能です。
LPAD(@DB._id - 20, 5, '0')
フィールドタイプ:テキスト、テキストエリア
一時的に重複しないメールアドレスを生成(入力必須やユニーク制約を回避したい場合に使用)
左パディングやランダム値発番 LPAD()、RANDOM_NUM_ALP()など はメールアドレスフィールドの関数設定で使えないといった制約がありますが、一度テキストフィールドに格納した後、別のレコードアクションを作成して結合をすることで対応可能です。
-ゼロ埋めID発番(レコードアクション1)
LPAD(@DB._id, 8, '0')
フィールドタイプ:テキスト
-発番したゼロ埋めIDとドメインを結合(レコードアクション2)
@DB.userID || '@spiral-platform.co.jp'
フィールドタイプ:メールアドレス
@DB.userID … レコードアクション1でゼロ埋めIDを格納したフィールド
1ヶ月後の日付
NOW() + INTERVAL('1 month')
フィールドタイプ:日時、日付、時刻
在庫数を購入数ぶん引く
@productDB.stock - @orderDB.quantity
フィールドタイプ:整数
残席を1減らす
@seminarDB.seats - 1
フィールドタイプ:整数
小計から消費税を計算(消費税率10%、小数点以下切り捨て)
@orderDB.subtotal * (10 / 100) - @orderDB.subtotal * (10 / 100) % 1
フィールドタイプ:整数

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