式ツリー
式ツリーにはそれぞれ、マップやストラクチャーエレメントに目的が関連付けられています。使用される式ツリーは次のとおりです。
- Value: エレメントの値を定義します。式やマップエレメントへの単純な参照にもなります。
- Loop: 出力マップエレメントのループ方法を定義します。この式ツリーのルートはループファンクションであることが必要です。詳細は、ループ式をご覧ください。
- Validate: 検証論理をエレメントに関連付けることができます。この式の結果がfalseであれば、検証エラーが報告されます。詳細は、検証式をご覧ください。
- Emit: エレメントがオプションや選択項目の部分である場合に、そのエレメントが発行される(強制的に表示される)条件を定義します。この式の結果がtrue (真)の場合、または式が指定されていない場合はエレメントが発行されます。それ以外の場合は発行されません。詳細は、発行式をご覧ください。
- IsPresent: このエレメントが存在し、それによって入力プロセッサーで使用されると考えれられる条件を定義します。この条件が省略されていたりtrueである場合、エレメントは使用されます。条件が指定されていたりfalseである場合、エレメントは無視されます。これはFlat (COBOLを含む)やEDIでのみ使用されます。これらは自己記述型ではないデータのストリームを処理する必要があるため、リーダーには、処理されるデータやスキップされるデータを記述する追加情報が必要となります。この式ツリーで指定できるものには、次の制限があります。
- 集計ファンクションは使用されません。
- エレメントを参照する時は、ループの現在の反復内に存在する値を返します。
- 参照されているどのストラクチャーエレメントも、エレメントツリーのIsPresent式に含まれているエレメントで(またはその前に)出現することが必要です。
- Null: この出力マップエレメントをnullとして発行する時期を決定します。この式ツリーの結果がtrueの場合、エレメントはnull値として発行されます。Null式ツリーは、コンテナーであるエレメント(None以外のエレメントグループのタイプ)のためだけに存在します。詳細は、Null式をご覧ください。
- IO/Database: 入力操作や出力操作(読み取りや書き込みを他のドキュメントインスタンスにリダイレクトするなど)を利用できます。さらに、エレメントがデータベースと対話する方法をコントロールするデータベースファンクションも利用できます。詳細は、入出力の式をご覧ください。
- Util: 出力マップエレメントに関連付けられているユーティリティ式です。Utilタブにあるものはすべてマップエレメントが実行される前に実行されるため、SetVariableファンクションを使用できます(必要であれば他のファンクションと組み合わせることもできます)。
式ツリーはストラクチャーエレメントとマップエレメントのために存在します。ストラクチャーエレメントで定義された式ツリーは、該当するマップエレメントにコピーされます。これによって、たとえばストラクチャーでループ式を事前定義し、そのストラクチャーを使用するどのマップにも事前定義ループ式を使用させることができます。また、マップ内の特定のエレメントに別のループ式ツリーを提供して上書きすることもできます。