必殺技みたいな名前、エンティティフォームメタデータとは!?

前回はエンティティフォームのオプションについてお伝えしました。
今回はさらに細かい項目の設定についてです。

スポンサーリンク

エンティティフォームは画面の設定、では項目単位は?

前回お伝えしたエンティティフォームは、画面単位での設定でしたが、それをさらに細かくした項目単位での設定が可能です。
使用するものはエンティティフォームメタデータ
名前が長くてもはや必殺技みたいな名前。

エンティティフォームメタデータでできること

エンティティフォームメタデータはポータル管理のメニューにはありませんので、エンティティフォームから設定します。

エンティティフォームとエンティティフォームメタデータは1:Nの関係なので、エンティティフォームのレコード詳細から、[エンティティフォームメタデータ]タブにエンティティフォームメタデータのサブグリッドが表示されているので、そこからレコード追加していきます。
エンティティフォームメタデータの追加

設定を適用したい項目がある場合は「種類」を「属性」に選択して、対象の項目を選択。
エンティティフォームメタデータで対象の項目を指定

「属性」を選択すると、設定できる内容が下にいっぱい現れるので、あとはそこで項目単位の追加の設定を入れ込む形となります。

タブやサブグリッドなど他にも選択できることがありますが、今回は項目に関する設定に絞って説明するため種類は属性にしたいと思います。
他のものはいつかやる・・・かも!?

エンティティフォーム内で独自に必須項目とする

フィールドを必須項目にすれば入力必須にすることができますが、エンティティフォームメタデータ内で必須にすることで必須化することも可能です。
これにより、同じフォームを使った場合でも、フォームから入力した時は任意項目、エンティティフォームメタデータを使用した時は必須になることができます。

検証セクションの「フィールドが必須」にチェックを入れることで、指定したエンティティフォームに限り入力が必須化されます。

エンティティフォームメタデータの項目の必須化

「必須フィールド検証エラーメッセージ」ではエラーメッセージの設定が言語ごとに設定できるのでお好きなようにカスタマイズしましょう。
設定がなくてもデフォルトのメッセージが出てくれるので無理に設定する必要はないようです。

初期値を入れるまたは保存したときに値を入れる

これもよく使う方法かと思います。
エンティティフォーム内で編集させたくない項目なんだけど、値としては持っておきたい項目もあるかと思います。
画面裏側のステータス系とかは、入力者がいちいち意識しない項目だと思うので、かなり重宝する設定でしょう。

事前に初期値を入れる場合は、「フィールドの事前設定」セクション内を設定します。
「種類」には「値」or「今日の日付」or「現在のポータルユーザ」から選択できます。
「値」を選んだ場合は固定値を設定します。
「今日の日付」は文字通り本日日付がセットされます。主に日付項目で使うことになるでしょう。
「現在のポータルユーザ」はログインユーザに関連する情報をセットしておきます。

例えば、取引先担当者(Contact)で会社名を現在ログイン中のポータルユーザの会社名に事前セットしたい場合はこうなります。
現在のポータルユーザーでフィールドの事前設定

ポータル上からエンティティフォームを開いた時はこうなります。
ポータル上でのエンティティフォーム表示

保存時に特定の値で保存しておきたい場合は、「保存時に値を設定する」セクションに同じように書きましょう。

フィールドの事前設定でオプションセットのある選択肢を事前設定するとき、値は選択肢の文言ではなく、値を入れます。
マルチ言語に対応するため、共通コードである値を入れている訳ですね。オプションセットのこの部分
オプションセットは値を入れる数値部分を入れる訳ですが、ここで注意するのがカンマを抜いた数字で入力すること。つまり、こうではなく。
オプションセット選択肢の間違った値設定

こう。
オプションセット選択肢の正しい値設定

ここでセットする値は、数字、論理値(true or false)、文字列のいずれにも対応できるようにテキスト項目になっています。
中身の処理がどうなっているかは憶測なんですが、カンマ付き数字を入れてしまうと、テキストを数値に変換する過程でカンマが入っている故に数字ではなく文字列として扱われてしまうんだと思います。

ここめっちゃハマりました(汗)。
値をそのままコピペしがちなところも罠です。
ググってもなかなか載っていなかったからしんどかった。。。

ここではエンティティフォームメタデータの話になりますが、サイト設定などの値を持つ項目についても同様のことが言えると思います。

正規表現

入力項目に対して決まった形式で入力させることも可能です。
形式の指定は正規表現を使って表現することができます。

「検証」セクションに正規表現の欄がありますので、そこにルールを入れましょう。
例えば、背番号は3桁以内の数字に限定されるので、エンティティフォームメタデータはこのように書きます。
エンティティフォームメタデータで正規表現

これでポータルから入力する時は正規表現が適用されます。
ポータルからの入力で正規表現が適用される

これでだいぶ入力が幅広く制限され、データの精度が格段にアップします。

まだまだあるけど工事中。。。

エンティティフォームメタデータはまだまだ内容が盛りだくさんなので、随時ここに追加予定です。

コメント