[Also applies to v8]{class="badge positive" title="Also applies to Campaign v8"}
フォームの編集 editing-forms
概要
マーケターやオペレーターは、入力フォームを使用してレコードを作成、変更、プレビューできます。 Forms:データを視覚的に表現
Campaign v7 から v8 への移行の一環として、Campaign Classic のドキュメントセットを効率化および再編成しました。 共通機能は、Campaign v8 ドキュメントセットでのみ使用できるようになりました。 入力フォームについて詳しくは、Campaign v8 ドキュメント を参照してください。
入力フォームを作成および変更できます。
- デフォルトで配信されるファクトリ入力フォームを変更できます。 工場出荷時の入力フォームは、工場のデータスキーマに基づいています。
- 定義したデータスキーマにもとづいて、カスタム入力フォームを作成できます。
Formsはxtk:form タイプのエンティティです。 入力フォーム構造は、xtk:form スキーマで表示できます。 このスキーマを表示するには、メニューから管理 > 設定 > データスキーマを選択します。 フォーム構造の詳細(Campaign v8 ドキュメント)を参照してください。
入力フォームにアクセスするには、メニューから 管理 > 設定 > 入力フォーム を選択します。
フォームをデザインするには、XML エディターでXML コンテンツを編集します。
詳細情報(Campaign v8 ドキュメント)。
フォームをプレビューするには、「プレビュー」タブをクリックします。
フォームタイプ
さまざまな種類の入力フォームを作成できます。 フォームタイプは、ユーザーがフォームをどのように移動するかを決定します。
-
コンソール画面
これはデフォルトのフォームタイプです。 フォームは1 ページで構成されます。
-
コンテンツ管理
コンテンツ管理にこのフォームタイプを使用します。 この ユースケース を参照してください。
-
アシスタント
このフォームは、特定の順序で並べられた複数のフローティングスクリーンで構成されます。 利用者は、ある画面から次の画面へ移動します。 詳細情報(Campaign v8 ドキュメント)。
-
アイコンボックス
このフォームは複数のページで構成されます。 フォームを移動するには、フォームの左側にあるアイコンを選択します。
-
ノートブック
このフォームは複数のページで構成されます。 フォームを移動するには、ユーザーはフォームの上部にあるタブを選択します。
-
縦長ペイン
このフォームにはナビゲーションツリーが表示されます。
-
横長ペイン
このフォームには、項目のリストが表示されます。
画像への参照
画像を検索するには、メニューから管理 > 構成 > 画像を選択します。
画像をフォーム内の要素(アイコンなど)に関連付けるには、画像への参照を追加します。 例えば、<container>要素でimg属性を使用します。
構文:img="namespace:filename.extension"
次の例は、ncm名前空間からbook.pngおよびdetail.png画像への参照を示しています。
<container img="ncm:book.png" label="General">
[…]
</container>
<container img="ncm:detail.png" label="Details">
[…]
</container>
これらの画像は、ユーザーがクリックして複数ページのフォームを移動するアイコンに使用されます。
シンプルなフォームの作成 create-simple-form
フォームを作成するには、次の手順に従います。
-
メニューから、管理 > 設定 > 入力フォームを選択します。
-
リストの右上にある「新規」ボタンをクリックします。
-
フォームプロパティを指定します。
-
フォーム名と名前空間を指定します。
フォーム名と名前空間は、関連するデータスキーマと一致する可能性があります。 次の例は、
cus:orderデータスキーマのフォームを示しています。code language-xml <form entitySchema="xtk:form" img="xtk:form.png" label="Order" name="order" namespace="cus" type="iconbox" xtkschema="xtk:form"> […] </form>または、
entity-schema属性でデータスキーマを明示的に指定することもできます。code language-xml <form entity-schema="cus:stockLine" entitySchema="xtk:form" img="xtk:form.png" label="Stock order" name="stockOrder" namespace="cus" xtkschema="xtk:form"> […] </form> -
フォームに表示するラベルを指定します。
-
必要に応じて、フォームタイプを指定します。 フォームタイプを指定しない場合は、デフォルトでコンソール画面タイプが使用されます。
マルチページフォームをデザインする場合は、
<form>要素でフォームタイプを省略し、コンテナでタイプを指定できます。
-
-
「保存」をクリックします。
-
フォーム要素を挿入します。
例えば、入力フィールドを挿入するには、
<input>要素を使用します。xpath属性をXPath式としてフィールド参照に設定します。 詳細情報(Campaign v8 ドキュメント)。この例では、
nms:recipientスキーマに基づく入力フィールドを示します。code language-xml <input xpath="@firstName"/> <input xpath="@lastName"/> -
フォームが特定のスキーマタイプに基づいている場合は、このスキーマのフィールドを検索できます。
-
挿入/ドキュメントフィールドをクリックします。
-
フィールドを選択し、OKをクリックします。
-
-
必要に応じて、フィールドエディターを指定します。
デフォルトのフィールドエディターは、各データタイプに関連付けられます。
- 日付タイプフィールドの場合、フォームには入力カレンダーが表示されます。
- 列挙タイプのフィールドの場合、フォームには選択リストが表示されます。
次のフィールドエディタータイプを使用できます。
table 0-row-2 1-row-2 2-row-2 3-row-2 フィールドエディター フォーム属性 ラジオボタン type="radiobutton"チェックボックス type="checkbox"ツリーを編集 type="tree"詳しくは、 メモリリストコントロール を参照してください(Campaign v8 ドキュメント)。
-
オプションで、フィールドへのアクセスを定義します。
table 0-row-3 1-row-3 2-row-3 3-row-3 要素 属性 説明 <input>read-only="true"フィールドへの読み取り専用アクセスを提供します <container>type="visibleGroup" visibleIf="edit-expr"条件付きで表示されるフィールドグループ <container>type="enabledGroup" enabledIf="edit-expr"条件付きでフィールドグループを有効にする 例:
code language-xml <container type="enabledGroup" enabledIf="@gender=1"> […] </container> <container type="enabledGroup" enabledIf="@gender=2"> […] </container> -
必要に応じて、コンテナを使用してフィールドをセクションにグループ化します。
code language-xml <container type="frame" label="Name"> <input xpath="@firstName"/> <input xpath="@lastName"/> </container> <container type="frame" label="Contact details"> <input xpath="@email"/> <input xpath="@phone"/> </container>
複数ページフォームの作成 create-multipage-form
複数のページフォームを作成できます。 他のフォーム内にフォームをネストすることもできます。 コンテナ、ノートブック、アイコンボックスフォーム の詳細をご覧ください(Campaign v8 ドキュメント)。
工場出荷時の入力フォームの変更 modify-factory-form
ファクトリフォームを変更するには、次の手順に従います。
-
工場出荷時の入力フォームを変更します。
- メニューから、管理 > 設定 > 入力フォームを選択します。
- 入力フォームを選択して修正します。
ファクトリ データ スキーマを拡張することはできますが、ファクトリ入力フォームを拡張することはできません。 ファクトリ入力フォームを再作成することなく、直接変更することをお勧めします。 ソフトウェアのアップグレード時に、工場出荷時の入力フォームの変更がアップグレードと結合されます。 自動結合が失敗した場合は、競合を解決できます。 詳細情報。
例えば、追加フィールドを含むファクトリスキーマを拡張する場合、このフィールドを関連するファクトリフォームに追加できます。
フォームの検証 validate-forms
フォームに検証コントロールを含めることができます。
必須フィールドの確認
次の必須情報を確認できます。
- 必須フィールドには
required="true"属性を使用します。 <leave>ノードを使用して、これらのフィールドを確認し、エラーメッセージを表示します。
この例では、電子メールアドレスが必要で、ユーザーがこの情報を提供していない場合はエラーメッセージが表示されます。
<input xpath="@email" required="true"/>
<leave>
<check expr="@email!=''">
<error>The email address is required.</error>
</check>
</leave>
式フィールド (Campaign v8 ドキュメント)と フォームコンテキスト (Campaign v8 ドキュメント)について詳しく説明します。
値の検証
JavaScript SOAP呼び出しを使用して、コンソールからフォームデータを検証できます。 これらの呼び出しを使用して複雑な検証を行います。例えば、値を承認済み値のリストと照合します。 詳細情報(Campaign v8 ドキュメント)。
-
JS ファイルに検証関数を作成します。
例:
code language-js function nms_recipient_checkValue(value) { logInfo("checking value " + value) if (…) { logError("Value " + value + " is not valid") } return 1 }この例では、関数の名前は
checkValueです。 この関数は、nms名前空間のrecipientデータ型を確認するために使用されます。 チェックされている値がログに記録されます。 値が無効な場合は、エラーメッセージがログに記録されます。 値が有効な場合は、値1が返されます。返された値を使用して、フォームを変更できます。
-
フォームで、
<soapCall>要素を<leave>要素に追加します。この例では、SOAP呼び出しを使用して
@valueToCheck文字列を検証します。code language-xml <form name="recipient" (…)> (…) <leave> <soapCall name="checkValue" service="nms:recipient"> <param exprIn="@valueToCheck" type="string"/> </soapCall> </leave> </form>この例では、
checkValueメソッドとnms:recipientサービスが使用されています。- サービスは名前空間とデータタイプです。
- メソッドは関数名です。 名前では大文字と小文字が区別されます。
呼び出しは同期して実行されます。
すべての例外が表示されます。
<leave>要素を使用する場合、入力された情報が検証されるまで、ユーザーはフォームを保存できません。
次の例では、フォーム内からサービス呼び出しを行う方法を示します。
<enter>
<soapCall name="client" service="c4:ybClient">
<param exprIn="@id" type="string"/>
<param type="boolean" xpathOut="/tmp/@count"/>
</soapCall>
</enter>
この例では、入力はプライマリキーであるIDです。 ユーザーがこのIDのフォームに入力すると、このIDを入力パラメーターとしてSOAP呼び出しが行われます。 出力はこのフィールドに書き込まれるブール値です:/tmp/@count。 このブール値はフォーム内で使用できます。 フォームコンテキスト の詳細(Campaign v8 ドキュメント)を参照してください。