> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 条件エディタの使用

> CData Arc で条件エディタを使用して、マッピングの宛先ノードに条件付きロジックを追加する方法。

export const siteNameShort = "Arc";

**条件マッピングエディタ**では、宛先ノードに条件を追加して、その条件がtrue の場合にのみ出力ドキュメントに要素を含めることができます。条件エディタを使用すると、ソースの値に基づいて宛先ノードの値を設定することもできます。個々のルールやルールのグループを追加し、条件が満たされた場合にマッピングが実行するアクションを指定することで、複雑な条件を構築できます。

エディタを開くには、宛先ドキュメント内のノードにマウスを移動し、フィルタ <img src="https://mintcdn.com/cdata-arc/97fbscTC2p-cCdS3/public/images/xmlmap_condition_icon.png?fit=max&auto=format&n=97fbscTC2p-cCdS3&q=85&s=a645d993ea38923724e33e324498bb66" alt="フィルタ" noZoom style={{ display: "inline-block", verticalAlign: "middle", height: "0.9em", margin: 0 }} width="25" height="24" data-path="public/images/xmlmap_condition_icon.png" /> アイコンをクリックします。

<img src="https://mintcdn.com/cdata-arc/6KwLqCromZpN96Gn/public/images/edi_condition_editor.png?fit=max&auto=format&n=6KwLqCromZpN96Gn&q=85&s=f04e282f654aa98f62d749decc8e35e7" width="800" data-path="public/images/edi_condition_editor.png" />

条件に名前を付け、**ルールを追加**または**グループを追加**をクリックします。

ルールを作成するときは、ドロップダウンを使用して選択します。以下から選択できます：

* 入力XML
  * 値：評価対象のXPath にある値
  * データ型：値のデータ型（文字列、数値、日時）
* メッセージヘッダー
  * 値：評価対象のメッセージヘッダーの値
  * データ型：値のデータ型（文字列、数値、日時）
  * 出現回数：ドキュメント内でXPath が出現する回数
  * インデックス：評価中のForeach ループの現在の反復回数を表すインデックス
* 変数
  * 値：評価対象の変数の値
  * データ型：値のデータ型（文字列、数値、日時）

条件にXPath を選択すると、エディタにドキュメントのツリー表示が現れるので、次の画像のように必要なXPath を簡単に見つけることができます。

<img src="https://mintcdn.com/cdata-arc/97fbscTC2p-cCdS3/public/images/xmlmap_condition_select.png?fit=max&auto=format&n=97fbscTC2p-cCdS3&q=85&s=ba3c5fffbc3fea68107d56679f588268" width="800" data-path="public/images/xmlmap_condition_select.png" />

ルールやグループは並べ替えが可能です。ハンドル <img src="https://mintcdn.com/cdata-arc/97fbscTC2p-cCdS3/public/images/xmlmap_condition_handle.png?fit=max&auto=format&n=97fbscTC2p-cCdS3&q=85&s=98b9e5be8874eac1586905842e505d86" alt="ハンドル" noZoom style={{ display: "inline-block", verticalAlign: "middle", height: "0.9em", margin: 0 }} width="20" height="21" data-path="public/images/xmlmap_condition_handle.png" /> をクリックし、オブジェクトを新しい位置にドラッグします。

条件の定義が完了したら、演算子の右側にあるテキストボックスに、条件が満たされた場合に実行される動作を指定します。

以下からステータスを選択します：

* Success
* Warning
* Error

**通知を送信**にチェックを入れ、**宛先**と**件名**フィールドを入力して、条件のステータスに関するE メールを送信します。

<Note>**アラートを設定**をクリックして新しいブラウザタブを開き、**設定**ページの**アラート**タブで**E メール設定**を設定できます。これらの設定が正しく行われていない場合、E メール通知は送信されません。</Note>

最後に、テキストボックスの**Else** セクションを使用して、条件が満たされない場合に実行する動作を指定します。

<img src="https://mintcdn.com/cdata-arc/97fbscTC2p-cCdS3/public/images/xmlmap_condition_rightside.png?fit=max&auto=format&n=97fbscTC2p-cCdS3&q=85&s=dc46df2345b601023b5b5b42c7e62bed" width="400" data-path="public/images/xmlmap_condition_rightside.png" />

**Else, Set Action to** ドロップダウンから、以下のいずれかを選択します：

* マッピングから完全に**要素を除外**する
* **値をマップ**で値をマッピングする
* **異なる値を割り当てる**で別の値を割り当てる（条件保存後に式またはカスタムスクリプトとして定義されます）

ステータスおよび通知オプションは、上部のセクションと同様に機能します。

条件を保存すると、マッピングエディタに表示され、マッピング内の他のリーフノードと同じように動作します。ソース側から要素をドラッグ＆ドロップしたり、式やカスタムスクリプトを記述したりすることも可能です。

<img src="https://mintcdn.com/cdata-arc/97fbscTC2p-cCdS3/public/images/xmlmap_condition_else.png?fit=max&auto=format&n=97fbscTC2p-cCdS3&q=85&s=8ac5e0edf9ba893650ed5365f423dc32" width="400" data-path="public/images/xmlmap_condition_else.png" />

条件付きロジックは、先読み構文を使用して実現することもできます。親要素は、親要素内の値にコンテキストを提供する子要素によって修飾されることがよくあります。このような場合、不要な値を除外するために複数の条件を作成するよりも、先読み構文を使用する方が簡単な場合があります。先読み構文の使い方について、詳しくは[Lookahead](./mapping-node-value-editor#lookahead) を参照してください。

## スクリプトモード

右上隅のスクリプトモードトグルをオンにすることで、{siteNameShort}Script 構文を使用してカスタム条件を指定できます。

### マッピング条件のスクリプトモード

スクリプトモードをON にしたら、ウィンドウにカスタム条件を記述し、上記と同じようにページの右側で以下の操作を行います：

* メッセージのステータスを設定する
* 通知を送信する
* マッピングに *Else* 条件を追加し、条件が満たされない場合にマッピングから要素を除外する

<img src="https://mintcdn.com/cdata-arc/6KwLqCromZpN96Gn/public/images/edi_mapping_condition_script_mode.png?fit=max&auto=format&n=6KwLqCromZpN96Gn&q=85&s=ee53ffc174a2ec3bcf7d830ffc31b45f" width="800" data-path="public/images/edi_mapping_condition_script_mode.png" />

<Note>
  * エディタは、入力中に条件を検証します。**無効な条件**というメッセージが表示された場合は、構文に何らかの問題があるため解決が必要です。
  * デザイナでレンダリングできない{siteNameShort}Script 条件を作成した場合、デザイナモードに戻ると、{siteNameShort} はデザイナモードでこの設定をレンダリングできないという警告が表示されます。デザイナモードに切り替えると、既存の設定の変更はすべて失われます。
</Note>

カスタム条件エディタの一般的な使用法の1つは、ソースドキュメントの2つの動的な値を比較することです（1つの動的な値を静的な値と比較するのではなく）。

例えば、次のカスタム条件を使用すると、ソースXML 内の2つの値が等しいかどうかを確認できます：

`'[xpath(element1)]' == '[xpath(data/element2)]'`

<Note>上の例にある一重引用符は必須です。</Note>

次の例のように、{siteNameShort}Script フォーマッタを使用して、カスタム条件でブール論理を実行することもできます：

`[xpath(element1) | equals([xpath(data/element2])])]`

この構文では、一重引用符は必要ないことにご注意ください。

{siteNameShort}Script のすべてのフォーマッタの詳細については、[フォーマッタ](../scripting/value-formatters/formatters)を参照してください。
