このセクションでは、LEI (IBM® Lotus Enterprise Integrator®) のデータ型変換について説明します。これはバックグラウンド情報として提供されます。この情報は、LC LSX クラスでスクリプトを作成する際に特に役立ちます。
各 Connector の章の最後には、Connector によって定義された、特定のデータソースに対するデータ型の変換テーブルが掲載されています。これらの表では、LEI または DECS (Domino® 基幹連携サービス) のアクションが Execute、Fetch、Insert および Update、Create の 4 つのセクションに分けられています。
アクティビティの実行中に、データはネイティブのデータ型から LEI または DECS の Field オブジェクトに転送されます (Field オブジェクトは FieldList オブジェクトの構成要素です)。FieldList は、LEI Server または Domino Server (DECS の場合) のメモリ (ディスクではありません) に一時的に保存されている、名前付きのフィールドのコレクションです。その後、データは LEI または DECS が識別可能な、最も互換性のあるデータ型に変換され、ターゲットへの転送、複製、コピー等の処理が実行されます。データは、LEI または DECS のフィールドに取り込まれるときと、ターゲットに転送されるときの 2 回変換されることになります。
キャラクタセットなどの変換では、最後の段階でソースからターゲットに直接変換することで、不要な変換を避けています。
データ型の変換プロセスを下図に示します。これは、LEI アクティビティの実行中にどのようにデータ型が変換されるかを一般的に示したものです。DECS は同様の変換プロセスを使用しますが、DECS での変換はデータソースと Domino の間の変換に限定されています。特定のデータソースでの特定のデータ型変換については、各 Connector の章のデータ型の変換テーブルを参照してください。
次に、データ型の変換についての詳細を説明します。
- LEI または DECS コネクションに対して実行オペレーションを行うと、データソースからの結果セットと、FieldList と呼ばれる LEI または DECS 内のメタデータ構造体が生成されます。[実行] テーブルには、結果セットのフィールドの型に基づいて、どの型の LEI または DECS フィールドを FieldList に追加するのかが定義されています。一般的に、データソースのそれぞれの型は、LEI または DECS の 1 つの型にマッピングされます。複数の値が掲載されている場合は、ソースデータ型の特定の属性は、LEI または DECS の型を変えられることを示します。
- フェッチオペレーションでは、データソースの結果セットを LEI または DECS の FieldList にフェッチするときに、どのようなデータ変換が有効かを定義します。Direct Transfer などのフォームをベースとするほとんどのアクティビティでは、フェッチの際に Connector によって生成された FieldList はフェッチ時の Connector にそのまま送り返される必要がありますが、LEI または DECS のスクリプトではそのような制限はありません。変換テーブルには、LEI または DECS の各データ型に対し、データソースのどの列をフィールドにフェッチするのかが定義されています。複数の値が掲載されている場合は、ソースの複数のデータ型を LEI または DECS の 1 つの型に変換できることを示します。LEI または DECS のバイナリフィールドについては、データのフォーマットに応じて型チェックの制限があります。例えば、LEI または DECS の数値リストフィールドには、Notes からのデータをフェッチしてくることができますが、LEI または DECS の日時リストにはフェッチできません。
- 挿入/更新オペレーションはフェッチオペレーションとは逆で、変換テーブルには LEI または DECS の各データ型ごとに、それを格納できるターゲットの有効なデータ型が定義されています。複数の値が掲載されている場合は、LEI または DECS の 1 つのデータ型をターゲットの複数のデータ型にマッピングできることを示します。中央の列のフォーマット情報は、フェッチオペレーションと同じように使用します。
- 作成オペレーションは、LEI または DECS の FieldList からデータターゲットにメタデータを作成します。テーブルは、LEI または DECS データ型をもとに、どのターゲットデータ型が作成されるかを定義します。複数の値が掲載されている場合は、LEI または DECS フィールドの書式情報によって選択される値が変わることを示しています。これは特に作成オペレーションに関連します。なぜなら、LEI または DECS フィールドには作成の際により詳細な設定を行うために追加の書式情報を含めることができるからです。また、これは Direct Transfer のようなオペレーションでは非常によくわかりますが、LEI または DECS のユーザーには、詳細なスクリプトを使用する場合以外は、その多くの部分が見えません。実行オペレーションは LEI または DECS FieldList メタデータに追加の書式情報を保存します。この情報は作成時に、ソースをより正確に (データターゲットによってサポートされる限りで) 複製するために使用されます。例えば、データソースの 2 バイトの符号なし整数は LEI または DECS の汎用 INT 型で表されます。しかし、オリジナルの情報は LEI または DECS に保管されたままで、このデータ型をサポートするデータターゲットに対しては、作成オペレーションのときにこの情報が使用されます。
要約すると、[実行] テーブルと [作成] テーブルは、データソースから LEI メタデータを作成するとき、または LEI もしくは DECS FieldList からデータターゲットメタデータを作成するときに、LEI または DECS が実行するデフォルトのマッピングを定義します。[フェッチ] テーブルと [挿入/更新] テーブルは、LEI または DECS とデータソースまたはターゲット間の有効なデータ型マッピングを定義します。