ビジネスユーザーはデータディクショナリを介すことで、バックエンドデータソースの情報を使用できます。基礎となるデータモデルの技術的な詳細情報を把握する必要はありません。データディクショナリは複数のデータディクショナリ要素(DDE)で構成されています。これらのデータ要素を使用して、バックエンドデータを(顧客対応に使用する入力として)レターに統合します。
データディクショナリは、基礎となるデータ構造とその関連する属性を説明するメタデータの独立した表現です。データディクショナリはビジネス用語を使用して作成されます。また、基礎となるデータモデルの 1 つまたは複数にマッピングできます。。
データディクショナリは、単純要素、複合要素、コレクション要素という 3 種類の要素から構成されます。単純 DDE は、都市名などの情報を保持する文字列、数値、日付、Boolean 値などのプリミティブ要素です。複合 DDE は他の DDE を含むものであり、そのタイプはプリミティブ、複合、コレクションのいずれでもかまいません。例として、郵便番号、国、都道府県、市町村、番地で構成される住所が挙げられます。コレクションは、同類の単純 DDE または複合 DDE のリストです。例として、複数の住所や、請求先と出荷先の住所が異なる顧客が挙げられます。
Correspondence Management は、バックエンド、顧客、
様々な顧客向けの通信を作成するために、データディクショナリの構造に従って保存される、受信者固有のデータ。 例えば、ドキュメントの作成時には「{First Name} さん」や「{姓}".
一般のビジネスユーザーにとって、XSD(xml スキーマ)や Java クラスといった、メタデータ表現に関する知識は必要ありません。しかし、通常はソリューションを構築するために、これらのデータ構造や属性の利用が必要となります。
のインストール 互換性パッケージ 表示する データ辞書 オプションを Forms ページ。
データディクショナリの作成にはデータディクショナリエディターを使用します。または、XSD スキーマファイルをアップロードしてデータディクショナリを作成することができます。後からフィールドなどの必須の情報をさらに追加して、このデータディクショナリを拡張できます。データディクショナリの作成方法を問わず、ビジネスプロセスの所有者にはバックエンドシステムに関する知識は必要がありません。ビジネスプロセスの所有者に必要とされるのは、プロセスのドメインオブジェクトとその宛先に関する知識だけです。
類似した要素を必要とするレターが複数存在する場合は、共通データディクショナリを作成することができます。ただし、多数の要素が含まれているサイズの大きなデータディクショナリを作成すると、そのデータディクショナリを使用する場合や、レターやドキュメントフラグメントなどの要素を読み込む場合に、パフォーマンスが低下する可能性があります。パフォーマンスに関する問題が発生した場合は、レターごとに個別のデータディクショナリを作成してください。
フォーム/データディクショナリを選択します。
タップ データ辞書を作成.
プロパティ画面で以下を追加します。
タイトル: (オプション)データディクショナリのタイトルを入力します。 タイトルは一意である必要はなく、特殊文字や英語以外の文字を含めることもできます。レターなどのドキュメントフラグメントは、タイトル(利用可能な場合)を用いて参照されます。タイトルは、サムネイルやアセットプロパティなどで使用されます。データディクショナリは、名前ではなく、タイトルで参照されます。
名前:データディクショナリの一意の名前。「名前」フィールドでは、英数字およびハイフンのみ使用できます。「名前」フィールドは、タイトルフィールドに基づいて自動的に入力されます。「タイトル」フィールドに入力された特殊文字、スペース、および英数字以外の文字はハイフンに置き換えられます。「タイトル」フィールドの値は「名前」フィールドに自動的にコピーされますが、値を編集することもできます。
説明:(オプション)データディクショナリの説明。
タグ: (オプション)カスタムタグを作成するには、テキストフィールドに値を入力し、Enter キーを押します。 タグのテキストフィールドの下にカスタムタグが表示されます。このテキストを保存すると、新しく追加したタグも作成されます。
拡張プロパティ:(オプション)をタップします。 フィールドを追加 データディクショナリのメタデータ属性を指定します。 「プロパティ名」列に、固有のプロパティ名を入力します。「値」列に、プロパティに関連付ける値を入力します。
(オプション)データディクショナリの XSD スキーマ定義をアップロードするには、データディクショナリの構造ウィンドウのをタップします。 XML スキーマをアップロード. XSD ファイルを参照して選択し、をタップします。 開く. データディクショナリは、アップロードされた XML スキーマに基づいて作成されます。データディクショナリで要素の表示名や説明を調整する必要があります。これを行うには、要素の名前をタップして選択し、右側のペインのフィールドで説明、表示名、およびその他の詳細を編集します。
計算済み DD 要素の詳細については、 計算済みデータディクショナリ要素.
ユーザーインターフェイスを使用することで、スキーマファイルのアップロアー度をスキップして、新規でデータディクショナリを構築することもできます。新規で構築するには、この手順をスキップし次の手順に進みます。
「次へ」をタップします。
「プロパティの追加」画面でデータディクショナリに要素を追加します。また、データディクショナリの基本構造を取得するためにスキーマをアップロードするとことで、要素の追加・削除や、詳細を編集することができます。
要素の右側の 3 つのドットをタップし、データディクショナリの構造に要素を追加することができます。
「複合要素」、「コレクション要素」または「プリミティブ要素」を選択します。
次に、データディクショナリ作成の例を示します。
複合要素、コレクション要素、プリミティブ要素およびデータディクショナリ要素の操作の詳細については、「 データ辞書要素の XML スキーマへのマッピング.
データディクショナリでの検証の詳細については、 データ辞書エディターの検証.
(オプション)要素を選択後に、「詳細設定」タブでプロパティ(属性)を追加できます。また、 フィールドを追加 DD 要素のプロパティを拡張します。
(オプション)要素の右側の 3 つのドットをタップし、「 」を選択すると、任意の要素を削除できます 削除.
子ノードを持つ複合要素またはコレクション要素を削除すると、その子ノードも削除されます。
(オプション)データディクショナリの構造ペインの要素を選択し、フィールドと変数リストパネルで、要素に関連する必要な属性を変更または追加します。
「保存」をタップします。
既存のデータディクショナリをコピーして貼り付けることにより、そのデータディクショナリに類似するプロパティやコンテンツを持つ 1 つ以上のデータディクショナリを、すばやく作成することができます。
データディクショナリの編集中または表示中は、データディクショナリ内のどの要素が、どのテキスト、条件、レター、インタラクティブ通信に参照されているか確認できます。
データディクショナリを編集するには、次のいずれかの操作を行います。
または、データディクショナリをタップして表示します。
データディクショナリ内では、単純型要素をタップして選択します。複合要素とコレクション要素には参照元がありません。
要素の基本プロパティ、詳細プロパティと共に「貸したコンテンツ」が表示されます。
「貸したコンテンツ」をタップします。
「貸したコンテンツ」タブでは、テキスト、条件、レター、インタラクティブ通信が表示されます。それぞれの見出しには、選択した要素の参照数も表示されます。
要素を参照するアセットについて、見出しをタップして名前を確認します。
貸したコンテンツや他の要素を表示するには、要素をタップします。
要素を参照するアセットを表示するには、独自の名前をタップします。アセット、レターまたはインタラクティブ通信がブラウザーに表示されます。
データディクショナリページで、をタップします。 選択.
テストデータをダウンロードするデータディクショナリをタップし、 サンプル XML データをダウンロード.
タップ OK (アラートメッセージ内) XML ファイルがダウンロードされます。
XML ファイルを Notepad その他の XML エディタで開きます。XML ファイルは、データディクショナリおよび要素内のプレースホルダー文字列と同じ構造を持っています。レターのテストに使うデータでプレースホルダー文字列を置き換えます。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Company>
<Name>string</Name>
<Type>string</Type>
<HeadOfficeAddress>
<Street>string</Street>
<City>string</City>
<State>string</State>
<Zip>string</Zip>
</HeadOfficeAddress>
<SalesOfficeAddress>
<Street>string</Street>
<City>string</City>
<State>string</State>
<Zip>string</Zip>
</SalesOfficeAddress>
<HeadCount>1.0</HeadCount>
<CEO>
<PersonName>
<FirstName>string</FirstName>
<MiddleName>string</MiddleName>
<LastName>string</LastName>
</PersonName>
<DOB>string</DOB>
<CurrAddress>
<Street>string</Street>
<City>string</City>
<State>string</State>
<Zip>string</Zip>
</CurrAddress>
<DOJ>14-04-1973</DOJ>
<Phone>1.0</Phone>
</CEO>
</Company>
この例では、XML によってコレクション要素に 3 つの値用のスペースが作成されますが、値の数は必要に応じて増減できます。
データエントリの作成後は、テストデータを含むレターをプレビューする際に、この XML ファイルを使用することができます。
このテストデータを DD で追加できます(「DD」を選択し、「テストデータをアップロード」をタップして、この xml ファイルをアップロードします)。
その後、レターを通常(カスタムではなく)プレビューする場合、この XML データはレターで使用されます。 「カスタム」をタップして、この XML をアップロードすることもできます。
データディクショナリ実装の詳細コードサンプルを以下に示します。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="DCT" targetNamespace="DCT" xmlns:xs="https://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Company">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Type" type="xs:anySimpleType"/>
<xs:element name="HeadOfficeAddress" type="Address"/>
<xs:element name="SalesOfficeAddress" type="Address" minOccurs="0"/>
<xs:element name="HeadCount" type="xs:integer"/>
<xs:element name="CEO" type="Employee"/>
<xs:element name="Workers" type="Employee" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Employee">
<xs:complexContent>
<xs:extension base="Person">
<xs:sequence>
<xs:element name="CurrAddress" type="Address"/>
<xs:element name="DOJ" type="xs:date"/>
<xs:element name="Phone" type="xs:integer"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Person">
<xs:sequence>
<xs:element name="PersonName" type="Name"/>
<xs:element name="DOB" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Name">
<xs:sequence>
<xs:element name="FirstName" type="xs:string"/>
<xs:element name="MiddleName" type="xs:string"/>
<xs:element name="LastName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Address">
<xs:sequence>
<xs:element name="Street" type="xs:string"/>
<xs:element name="City" type="xs:string"/>
<xs:element name="State" type="xs:string"/>
<xs:element name="Zip" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
DDE に関連付けられる共通属性について、以下の表に示します。
属性 | タイプ | 説明 |
名前 | 文字列 | 必須。 DDE の名前。一意にする必要があります。 |
参照 名 |
文字列 | 必須. データディクショナリの階層や構造の変更に左右されない、DDE への参照を可能にする DDE の一意の参照名です。テキストモジュールは、この名前を使用してマップされます。 |
displayname | 文字列 | ユーザーにわかりやすい DDE の名前(オプション)。 |
description | 文字列 | DDE の説明。 |
elementType | 文字列 | 必須. DDEのタイプ:STRING、NUMBER、DATE、Boolean、COMPOSITE、COLLECTION のいずれかです。 |
elementSubType | 文字列 | DDE のサブタイプ: ENUM。elementType が STRING および NUMBER の場合のみ使用できます。 |
キー | ブール値 | DDE がキー要素であるかどうかを示す Boolean フィールド。 |
計算済み | ブール値 | DDE が計算済みかどうかを示す Boolean フィールド。計算済み DDE の値は、他の DDE 値の関数です。デフォルトでは、JSP 式がサポートされます。 |
式 | 文字列 | 「computed」DDEの式。デフォルトで提供される式評価サービスは、JSP EL 式をサポートしています。式サービスをカスタム実装に置き換えることができます。 |
valueSet | リスト | 列挙型 DDE に使用できる値のセット。例えば、アカウントタイプには(Saving, Current)値のみを設定できます。 |
extendedProperties | Object | DDE に追加されたカスタムプロパティ(ユーザーインターフェイス固有情報やその他の情報)のマップ。 |
必須 | ブール値 | このフラグは、データディクショナリに対応するインスタンスデータのソースに、この特定の DDE の値が含まれていなくてはならないことを示します。 |
綴じ方 | BindingElement | 要素の XML バインディングまたは Java バインディング。 |
データディクショナリには、計算済み要素を含めることもできます。計算済みデータディクショナリ要素は、常に式と関連付けられます。実行時にこの式が評価され、データディクショナリ要素の値が取得されます。計算済み DDE 値は、他の DDE 値またはリテラルによる関数です。デフォルトでは、JSP 式言語(EL)の式がサポートされます。EL 式は ${ } の文字を使用します。有効な式にはリテラル、演算子、変数(データディクショナリ要素の参照)および関数呼び出しを含めることができます。式においてデータディクショナリ要素を参照する際は、DDE の参照名を使用します。あるデータディクショナリに含まれるすべてのデータディクショナリ要素は、それぞれ一意の参照名によって特定されます。
計算済み DDE PersonFullName は、${PersonFirstName} ${PersonLastName} などの EL 連結式に関連付けることができます。
XSD を書き出すには、固有のデータマッピングが必要になります。これについては、次の表に示します。DDI 列は、DDI で利用できる DDE 値のタイプを示します。
XSD |
データディクショナリ |
DDI(インスタンス値のデータタイプ) |
xs:element(タイプ - 複合タイプ) |
DDE(タイプ - 複合) |
java.util.Map |
xs:element(maxOccurs > 1) |
DDE(タイプ - COLLECTION) |
java.util.List |
属性(タイプ - xs:id) |
DDE(タイプ - STRING) |
java.lang.String |
xs:attribute /xs:element(タイプ - xs:string) |
DDE(タイプ - STRING) |
java.lang.String |
xs:attribute /xs:element(タイプ - xs:boolean) |
DDE(タイプ - BOOLEAN) |
java.lang.Boolean |
xs:attribute /xs:element(タイプ - xs:date) | DDE(タイプ - DATE) | java.lang.String |
xs:attribute /xs:element(タイプ - xs:integer) | DDE(タイプ - NUMBER) | java.lang.Double |
xs:attribute /xs:element(タイプ - xs:long) | DDE(タイプ - NUMBER) | java.lang.Double |
xs:attribute /xs:element(タイプ - xs:double) | DDE(タイプ - NUMBER) | java.lang.Double |
列挙型と baseType の要素 - xs:string | 以下の DDE type - STRING サブタイプ — ENUM valueSet - ENUM に使用できる値 |
java.lang.String |
データディクショナリを作成したら、XML サンプルデータファイルとしてダウンロードして、テキストエントリを作成できます。
データディクショナリページで、をタップします。 選択 その後、データディクショナリをタップして選択します。
選択 サンプル XML データをダウンロード.
タップ OK (アラートメッセージ内)
Correspondence Management は、選択されたデータディクショナリの構造に基づいて XML ファイルを作成し、<data-dictionary-name>-SampleData の名称でコンピューターにダウンロードします。これで、XML またはテキストエディタでこのファイルを編集し、 レターの作成.
同じレターを異なる言語で顧客へ送信する場合、データディクショナリとデータディクショナリ要素の表示名、説明、および列挙値のセットをローカライズすることができます。
データディクショナリページで、をタップします。 選択 その後、データディクショナリをタップして選択します。
タップ ローカリゼーションデータをダウンロード.
タップ OK をクリックします。 Correspondence Management は、DataDictionary-<ddname>.zip.
Zip ファイルには、.properties ファイルが含まれています。このファイルでは、ダウンロードされたデータディクショナリを定義します。プロパティファイルのコンテンツは次のようになります。
#Wed May 20 16:06:23 BST 2015
DataDictionary.EmployeeDD.description=
DataDictionary.EmployeeDD.displayName=EmployeeDataDictionary
DataDictionaryElement.name.description=
DataDictionaryElement.name.displayName=name
DataDictionaryElement.person.description=
DataDictionaryElement.person.displayName=person
プロパティファイルは、データディクショナリの内容と表示名およびデータディクショナリ内の各データディクショナリ要素を各行で定義する構造になっています。さらに、プロパティファイルは各データディクショナリ要素の列挙値セットを 1 行で定義します。データディクショナリと同様に、対応するプロパティファイルは複数のデータディクショナリ要素の定義を持つことができます。さらに、ファイルには 1 つ以上の列挙値セットの定義を含めることができます。
別のロケールの .properties ファイルを更新するには、ファイルの表示名と説明の値を更新します。ローカライズする各言語でさらにファイルのインスタンスを作成します。サポートされる言語はフランス語、ドイツ語、日本語、英語のみです。
更新した様々なプロパティファイルを次の名前で保存します。
_fr_FR.properties French
_de_DE.properties German
_ja_JA.properties Japanese
_en_EN.properties English
.properties ファイル(または複数のロケール用のファイル)を 1 つの .zip ファイルにアーカイブします。
データディクショナリページで、を選択します。 詳細 > ローカリゼーションデータをアップロード ローカライズされたプロパティファイルを含む zip ファイルを選択します。
ローカリゼーションの変更を表示するには、ブラウザーのロケールを変更します。
データディクショナリの作成時または更新時に、データディクショナリエディターは強制的に以下の検証を行います。
データディクショナリレベルでの検証
データディクショナリ要素レベルでの検証
データディクショナリは XML スキーマから作成することも、データディクショナリユーザーインターフェイスを使用して作成することもできます。データディクショナリ内のすべてのデータディクショナリ要素(DDE)には XML バインディングフィールドがあり、DDE のバインディングを XML スキーマの要素に格納できます。各 DDE のバインディングは、親 DDE に対する相対パスにします。
Data Dictionary の実装の詳細を示すサンプルモデルおよびコードサンプルについては、以下に示します。
プリミティブ DDE とは、本来アトミックなフィールドまたは属性を表します。複合タイプ(複合 DDE)または繰り返し要素(コレクション DDE)以外で定義されたプリミティブ DDE は、XML スキーマ内のどの場所にも格納できます。プリミティブ DDE に対応するデータの場所は、その親 DDE のマッピングには依存しません。プリミティブ DDE は、XML バインディングフィールドのマッピング情報を使用して値を特定します。マッピングは次のいずれかに解釈されます。
単純なスキーマの例を以下に示します。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="https://www.w3.org/2001/XMLSchema">
<xs:element name='age' type='integer'/>
<xs:element name='price' type='decimal'/>
</xs:schema>
データディクショナリ要素 | デフォルトの XML バインディング |
---|---|
age | /age |
price | /price |
複合要素ではバインディングがサポートされていません。バインディングが提供されても無視されます。プリミティブ型の構成要素であるすべての子 DDE のバインディングは、絶対パスである必要があります。複合 DDE の子要素に対して絶対マッピングが使用できるので、XPath バインディングの観点で柔軟性が高くなります。複合 DDE を XML スキーマの複合タイプ要素にマッピングすると、その子要素のバインディングの範囲が制限されます。
以下の例は、メモ(note)のスキーマを示しています。
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
データディクショナリ要素 | デフォルトの XML バインディング |
note | 空(ヌル) |
コピー先: | /note/to |
コピー元: | /note/from |
heading | /note/heading |
body | /note/body |
コレクション要素が別のコレクション要素にマッピングできるのは、別のコレクション要素のカーディナリティが 1 より大きい場合のみです。コレクション DDE の子 DDE には、その親の XML バインディングに対する相対(ローカル)XML バインディングが含まれます。コレクション要素の子 DDE は親と同じカーディナリティを持つ必要があるので、カーディナリティの制約を守るために相対バインディングを必須とし、子 DDE に繰り返さない XML スキーマ要素が指定されないようにします。以下の例では、「TokenID」のカーディナリティが、その親コレクション DDE. の「Tokens」と同じである必要があります。
コレクション DDE を XML スキーマ要素にマッピングする場合:
コレクション要素に対応する DDE のバインディングは、絶対 XPath である必要があります。
コレクション要素のタイプを表す DDE には、バインディングを指定しません。バインディングを指定しても無視されます。
コレクション要素のすべての子 DDE のバインディングは、親コレクション要素の相対パスである必要があります。
以下の XML スキーマは、名前が Tokens で maxOccurs 属性が「unbounded」の要素を宣言しています。つまり、Tokens はコレクション要素です。
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Tokens>
<TokenID>string</TokenID>
<TokenText>
<TextHeading>string</TextHeading>
<TextBody>string</TextBody>
</TokenText>
</Tokens>
<Tokens>
<TokenID>string</TokenID>
<TokenText>
<TextHeading>string</TextHeading>
<TextBody>string</TextBody>
</TokenText>
</Tokens>
<Tokens>
<TokenID>string</TokenID>
<TokenText>
<TextHeading>string</TextHeading>
<TextBody>string</TextBody>
</TokenText>
</Tokens>
</Root>
このサンプルに関連付けられる Token.xsd は次のようになります。
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element name="Tokens" type="TokenType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="TokenType">
<xs:sequence>
<xs:element name="TokenID" type="xs:string"/>
<xs:element name="TokenText">
<xs:complexType>
<xs:sequence>
<xs:element name="TextHeading" type="xs:string"/>
<xs:element name="TextBody" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
データディクショナリ要素 | デフォルトの XML バインディング |
---|---|
Root | 空(ヌル) |
Tokens | /Root/Tokens |
複合 | 空(ヌル) |
TokenID | TokenID |
TokenText | 空(ヌル) |
TokenHeading | TokenText/TextHeading |
TokenBody | TokenText/TextBody |