serializeDataElements クラスは、すべての DDE、PH および Fields 要素の値を設定することで XML データをシリアル化する際に使用されます。レター PDF を生成 API は、このシリアル化された XML を使用してレターをレンダリングします。この処理により、(マップとして提供される)PH および Field データが(XML として提供される)DDI に追加されます。この API を使用すると、レターをレンダリングする前に変数とフィールドの値を提供できます。次の表で、DDE の値について説明します。
DDE
|
説明
|
ddiDataAsXml
|
XML としての DDI データ
|
phValues
|
変数名に対するその値を含むマップ
|
fieldValues
|
フィールドの somExpr に対するフィールドの値を含むマップ
|
serializeDataElements 構文は次のとおりです。 public String serializeDataElementsToXML(String ddiDataAsXml,Map<String,Object> phValues,Map<String,Object> fieldValues)
LetterRenderService.renderLetter() API データに提供された XML データには、次の形式で追加要素が含まれます。ここでプレースホルダー変数とフィールドの値が指定されます。
<data-root>
...
<fields> <!--starting element for fields -->
<field name="field1">value1</field> <!-- field's display-name is field1 and its value is set to value1. -->
<field name="field2" somExpr="xfa[0].template[0].field2">value2</field> <!-- Attribute somexpr is optional and can be used when display name is not sufficient to identify field uniquely -->
...
</fields>
<variables> <!--starting element for place holder variables-->
<variable name="var1">value1</variable> <!-- variable name is var1 and its value is set to value1 -->
....
</variables>
</data-root>
DDE の値は、XML データの一部として指定されます。renderLetter() は、XML データで提供された値を認識し、対応する DDE/PH/Field に使用できる値がある場合、これらの値は、その DDE/PH/Field に対して設定されます。他の値はすべて、バインドによって解決されます。XML データが変数またはフィールドで使用できる場合、フィールド/変数のバインドは考慮されません。例えば、保護されていないデータディクショナリにフィールドがバインドされ、XML データでそのフィールドの値が指定されている場合は、指定された値がレンダリングで使用されます。XML データで値が設定されていない場合、変数/フィールドの値は、バインドを使用して設定され(存在する場合)、「User」をバインドしている場合は空になります。例えば、保護されていないデータディクショナリに変数がバインドされ、XML データで値が指定されていない場合は、レターのレンダリング時にデータディクショナリの値が使用されます。
|
|
|