電話番号欄
電話番号フィールドには、検証および正規化機能が組み込まれた状態で連絡先番号が格納されます。 すべての値は E.164 フォーマット (a + に 7 ~ 15 桁の数字が続く形式、例: +15551234567) で保存され、フォーム、API、通知全体で一貫した表現が提供されます。
電話番号フィールドを追加する
-
グローバルメニュー(
)を開き、[コントロールパネル]タブに移動し、[オブジェクト]をクリックします。 -
編集したいオブジェクト定義をクリックしてください。
-
フィールド タブに移動し、 追加 ボタン (
をクリックします。 -
ラベル と フィールド名 を入力してください。
-
フィールドタイプとして「電話番号 」を選択してください。

-
エントリに値を指定する必要がある場合は、 を有効にし、 を必須にします。
-
[Save(保存)]をクリックします。
保存後、[フィールド] タブのフィールドをクリックして、国ソースを設定します (下記 国ソースの設定 を参照)。
国別ソースの設定
電話番号の各フィールドには国コードソースが必要で、これは入力された値に国コードがどのように適用されるかを制御します。
-
オブジェクト定義の「フィールド」タブで、「 電話番号 」フィールドをクリックして編集します。
-
国別ソースの下で、オプションを選択してください。
ユーザーによって定義: ユーザーは電話番号を入力する際に国を選択します。 この欄はどの国の数値でも受け付けます。
修正済み: 国 ドロップダウンが表示されます。 国を選択してください。 ユーザーが国番号なしで電話番号を入力すると、設定済みの国番号が自動的に先頭に追加されて保存されます。
-
[Save(保存)]をクリックします。
オブジェクト定義が公開された後でも、国別ソースを更新できます。
検証と保存
Objects は電話番号の値を保存する前に、先頭の + を除くすべての非数字文字を削除し、結果を E.164 フォーマットに対して検証します。 + に続いて 7〜15 桁の数字が続かない値は拒否されます。
固定国ソースフィールドの場合、 + のプレフィックスがないエントリは、保存前に設定された国コードを受け取ります。 + というプレフィックスを含むエントリは、設定された国の発信コードで開始する必要があります。そうでない場合は拒否されます。
APIのレスポンスはすべて、ユーザーが入力した値の種類に関わらず、E.164形式で値を返します。
フィールドオプション
電話番号フィールドは、以下の標準的なオブジェクトフィールドオプションをサポートしています。
- 必須: 値のないエントリは拒否されます。
- 一意の値のみを受け入れる: 同じ電話番号が 2 つ保存されるのを防ぎます。 このオプションは、フィールド作成後に変更することはできません。
- デフォルト値: 新規エントリに事前入力値を設定します。 デフォルト値は、E.164形式の有効な電話番号である必要があります。 固定フィールドの場合、値の国コードがフィールドに設定されている国と一致している必要があります。
- ローカライゼーション: オブジェクト定義でローカライゼーションが有効になっている場合、言語またはロケールごとに個別の電話番号を保存します。
電話番号フィールドは、 式ビルダー および 通知テンプレートの変数としても使用できます。
APIで電話番号フィールドを使用する
オブジェクト管理 REST API を介してオブジェクト定義のフィールドを照会すると、各電話番号フィールドには、レスポンスに "businessType": "PhoneNumber" が含まれます。 このプロパティを使用すると、電話番号フィールドと標準のテキストフィールドをプログラムで区別できます。
エントリを作成または更新する際は、電話番号を文字列として渡してください。 E.164形式を直接使用することも、フィールドが固定国番号ソースを使用する場合(発信国番号が保存前に付加される場合)はローカル番号を使用することもできます。 フォームにおいて、「ユーザーが定義」フィールドには、国コード選択欄と現地番号入力欄が表示されます。送信前に、フィールドはE.164値を自動的に生成します。 API呼び出しでは、E.164文字列全体を直接指定する必要があります。
curl -X "POST" "http://localhost:8080/o/c/contactRequests?restrictFields=actions" \
-H "Content-Type: application/json" \
-u 'test@liferay.com:learn' \
-d '{"phoneNumber": "+15551234567"}'
phoneNumber をフィールドの設定済みフィールド名に、 contactRequests をオブジェクトの API エンドポイント名に置き換えてください。