機械翻訳について

フォームでのメッセージの表示

検証ルールを使用して、特定の条件が満たされた場合にメッセージを表示します。 ルールを作成するときは、ルールを適用する条件を定義し、表示するメッセージを定義します。

検証ルールは、特定のページではなく、オブジェクト・レベルで設定されます。 つまり、フォームの検証ルール(たとえば、BudgetDetailsビジネス・オブジェクトを編集するためのフォーム)を定義すると、そのフォームが使用され、条件が満たされるすべてのページにルールが適用されます。

検証ルールは、フォームに入力されたデータに基づいて何らかのタイプの警告メッセージを表示する場合に特に役立ちます。 「人員数」が1000を超えている場合に、予算額を更新するようユーザーに通知するメッセージを表示するとします。 「人員数」フィールドに入力された値をチェックするルールを作成し、次のようなメッセージを次の形式で表示できます:



ノート:

検証ルールでは、oj-dyn-formフォーム・コンポーネントを使用してレンダリングされたフォーム内のメッセージのみが表示されます。 古いバージョンのフォーム・コンポーネント(oj-dynamic-form)を使用してレンダリングされたフォームがアプリケーションにある場合、それらのフォームで検証ルールが正しく機能しません。

ページで使用されているフォーム・コンポーネントのバージョンを確認するには、次のようにします :

  1. フォーム・コンポーネントを選択して、コンポーネントの詳細ペインを「プロパティ」ペインで開きます。
  2. コンポーネントの名前の上にカーソルを置いて「情報」アイコン(情報)を表示し、アイコンの上にカーソルを移動してコンポーネントの「情報」ポップアップを開きます。

    「前述の例では、このフォームがoj-dyn-formフォーム・コンポーネントを使用してレンダリングされていることがポップアップに示されています」

フィールドを検証するルールの作成

上の例のように動作するルールを作成する方法を見てみましょう。「人員数」フィールドの値が1000を超える場合に、メッセージをフォームに表示します。

検証ルールを作成するには:

  1. フォームを含むページを開き、「プロパティ」ペインの「ビジネス・ルール」の下にある「フィールド値の検証」をクリックします。

    ページがページ・デザイナで開かれているときに「フィールド値の検証」ボタンが表示されない場合は、フォームが定義されているレイアウトを開き、「検証」タブを開きます。



  2. 新規ルールの作成
    • 一部のルールがすでに定義されている場合は、ルールの作成をクリックして「検証の作成」ダイアログ・ボックスを開きます。

      ルールを最初から作成するのではなく、既存のルールを複製して、新しいルールの基準として使用できます。 ルールを複製するには、リスト内のルールを右クリックし、「複製」をクリックします。

    • まだルールがない場合は、「+検証」をクリックします。

  3. ダイアログ・ボックスで「標準」「ルール・タイプ」を選択し、ラベル、IDおよび説明を入力します。 「Create」をクリックします。

    「検証の作成」ダイアログ・ボックスでは、「テンプレート」ドロップダウン・リスト(アプリで定義されている場合)を使用して検証ルールを選択するか、ルール・タイプ(通常、If/elseまたはSwitch)を選択できます。 詳細は、「If/Elseルールの追加」および「スイッチ・ルールの追加」を参照してください。

  4. 「編集」をクリックし、ルールの条件を指定します。 完了したら、「完了」をクリックします。

    標準の条件ビルダーを使用して検証ルールの条件を作成するか、「拡張式の使用」をクリックして拡張式ビルダー(「より複雑な条件の作成」)を使用できます。

    このルールでは、2つの条件を作成: ジョブ・ロールは「プロジェクト・マネージャ」で、「人員数」の値は1000より大きくする必要があります。 ルールは、次の両方の条件が満たされた場合に適用されます:



  5. メッセージの詳細を指定します。

    条件が満たされると、フォームの「予算金額」フィールドに警告メッセージ「予算の更新」が表示されます。

    1. 「+メッセージ」をクリックします。
    2. 「サマリー」および「詳細」フィールドにメッセージ・テキストを入力します。

      これらの2つのフィールドを使用して、メッセージのテキストを入力します。

      • サマリー メッセージ・ダイアログのタイトルに「サマリー」テキストが表示されます。 インライン警告を使用している場合、「サマリー」フィールドのテキストは、ページに表示されませんが、必須フィールドです。
      • 詳細 詳細テキストは実際のテキスト・メッセージです。 このテキストは、インライン警告を表示している場合はフォームにインラインで表示され、インラインで表示されていない場合はメッセージ・ダイアログに表示されます。

      メッセージ・テキストは、「This number is invalid」などの単純な文字列にすることも、フィールド値やコンテキスト・パラメータをメッセージに渡して、よりターゲットを絞ったメッセージに書き込むこともできます。 たとえば、「詳細」フィールドに次のようなものを追加できます: [[ 'Restricted feedback applies to ' + $fields.PersonName.$value() + 'は' + $objectContext.Department + 'の一部です。フィードバック制限なしで部門から誰かを選択してください。]]

      変数やオブジェクトなど、様々なタイプを含むメッセージを作成するには、メッセージを[[ ]]で囲んで、オブジェクトがオブジェクトとして扱われ、評価され、プレーン・テキストとして扱われないようにする必要があります。 メッセージを構築するには、静的テキストを引用符で囲む必要があり、+演算子を使用して静的テキスト、変数およびその他のエンティティを連結する必要があります:



      「サマリー」および「詳細」テキストの翻訳を生成するには、テキスト・フィールドにマウス・ポインタを重ねてから、文字列を翻訳可能にしますをクリックして「翻訳可能文字列」ポップアップを開きます:



      「翻訳可能文字列」ポップアップにパラメータを追加することはできませんが、「Expression Editor」アイコンtoをクリックして式エディタを開き、パラメータを使用する場合は翻訳オブジェクトを手動で編集できます。 詳細は、「表示テキストの変換キーの生成」を参照してください。

    3. 「重大度」ドロップダウン・メニューで警告を選択します。

      「重大度」メニューには、次のオプションがあります:

      • エラー これは、ユーザーがフォームを送信する前に修正する必要があるデータがある場合に選択します。 これは最も高い重大度レベルです。
      • 警告 たとえば、ユーザーが入力したデータをチェックすることを知らせる場合などに、フィールドに注意を促す場合に選択します。 警告メッセージが表示されても、ユーザーはページと対話できなくなります。
    4. 「ターゲット・フィールド」ドロップダウン・メニューにインライン・メッセージを表示するフィールドを選択します。


      ターゲット・フィールドを選択せず、フォームに編集可能なフィールドが1つのみ含まれている場合、そのメッセージが自動的に適用されます。

      ノート:

      次の場合、メッセージはインラインで表示されません:

      • ターゲット・フィールドは選択せず、フォームに複数のフィールドがあります。
      • 複数のターゲット・フィールドを選択しました。

      メッセージをインラインではなくダイアログ・ボックスに表示する場合は、メッセージを処理するようにページ内のメッセージ・コンポーネントを手動で構成する必要があります。

ルールに別のメッセージを追加するには、別のフィールドに異なるテキストが表示されているメッセージを記述し、「+メッセージ」をクリックして新しいメッセージを作成し、その詳細を指定します。

ルールが機能しているかどうかを確認するには、ライブ・ビューでページを表示し、ルールをトリガーする値を入力してフォームをテストします。



検証ルールでテンプレートを使用

検証ルールを使用して、oj-dyn-formコンポーネントを使用してレンダリングされた動的フォームでのみメッセージを表示できます。 ただし、フォームでフィールド・テンプレートを使用する場合は、メッセージを表示するメカニズムを手動で構成する必要があります。

oj-dyn-formでフィールド・テンプレートを使用する場合は、フォーム・コンポーネントで検証メッセージをリスニングし、フォームにメッセージを表示するメカニズムを作成する必要があります。 フィールド・テンプレートでは、表示可能なメッセージは$messagesコンテキストを介して公開されます。

ノート:

エディタで検証ルールを構成する場合、メッセージに対して選択できるターゲット・フィールドは1つのみです。 複数のフィールドにメッセージを表示する場合は、そのメカニズムを手動で作成する必要があります。