CDT を使用したデータの変換

「開発者」 役割を持つユーザーは、 「セルフサービス」「構成」 タブの 「CDT 設定 XML」 セクションで変換を指定することにより、CDT を使用して、ソース環境の特定の値をターゲットに適した値に自動的に変換することができます。 これらの変換は、ターゲット環境にデプロイされる前にソース・データに対して実行されます。

通常、開発環境と実稼働環境では、サーバー名や IP アドレスなどのネットワーク設定の値が異なります。 IBM Sterling® Order Management System のいくつかの構成データテーブルは、ホスト名、IP アドレス、および URL を格納します。 これらの値はソース環境に対して有効ですが、このデータをターゲット環境にデプロイする場合は、これらの値を更新する必要があります。

対応する列が NULL 可能な場合は、CDT 変換ロジックを使用して値を nullに変換することもできます。 例えば、 Column1 が NULL 可能で、ソース・データベース内の値が value1である場合、 <runtime>/resources/ydkresources/ydkprefs.xml ファイル内の以下の指定を使用して、ターゲット・データベースの Table1 内の Column1 の値を null に更新できます。
 <Transformations>
              <Table Name="table1">
                 <Column Name="column1">
                    <Transform Match="value1" Replace=""/>
                  </Column>
               </Table>
 </Transformations>

Replaceの値が "" または "NULL" として指定されている場合、その値は null として扱われ、ターゲット・データベース内の列は nullに設定されます。

構成を XML にエクスポートする場合、CDT はすべてのヌル値の列を無視します。 しかし、ヌルは特定の OMS 構成に有効な値です。 CDT はそのような列を無視するため、XML ベースのデプロイメント・アプローチではターゲット・データベースにデプロイされません。 この問題を解決するには、ソース環境から XML に構成をエクスポートするときに nullnon-null 値に変換するように CDT 変換を構成します。 その後、XML がターゲット環境にインポートされるときに、同じ値を NULL に変換する必要があります。

例えば、 null は、 YFS_SOURCING_RULE_DTL 表内の FUTURE_INVENTORY_WINDOW 列の有効な値です。 ydkprefs.xml ファイルの対応する SourceTargetPairの下に以下の指定を追加して、 FUTURE_INVENTORY_WINDOW 列のすべての null 値を 999に変換します。
<Transformations>
             <Table Name="YFS_SOURCING_RULE_DTL">
                 <Column Name="FUTURE_INVENTORY_WINDOW">
                     <Transform Match="" Replace="999"/>
                 </Column>
             </Table>
</Transformations>
ターゲット・データベースで 999null に変換するには、 ydkprefs.xml ファイルのそれぞれの SourceTargetPair で次のように後方変換を指定します。
<Transformations>
              <Table Name="YFS_SOURCING_RULE_DTL">
                 <Column Name="FUTURE_INVENTORY_WINDOW">
                    <Transform Match="999" Replace=""/>
                 </Column>
              </Table>
</Transformations>

変換を指定することにより、 FUTURE_INVENTORY_WINDOW 列のすべての null 値がターゲット・データベースに正しくデプロイされるようにすることができます。