データのマップ
マッパーを使用して、ソース・データ構造とターゲット・データ構造間でデータをマップします。
「Oracle Integration 3でのOracle Mapperの使用」の「マップ・データ」を参照してください。
マッパーにアクセス
統合でマッピングを作成するには、まずマッパーにアクセスする必要があります。
ファイル添付コンテンツのエンコードおよびデコード
仮想ファイルシステム(VFS)を使用すると、ファイルを保存し、これらのファイルへの参照をメッセージ・ペイロードに内部的に使用できます。 VFSファイルのコンテンツを文字列要素にマップすることもできます。
-
RESTアダプタは、マルチパートの添付とapplication/octet-streamの機能をサポートしています。 添付ファイルはステージング領域に格納され、
attachmentReference(文字列キー)が生成されます。attachmentReferenceキーは、メッセージ・ペイロードの一部として送信され、後でステージング領域から添付ファイル・インスタンスを取得します。 -
FTPアダプタは、スキーマなしでファイルを読み書きするために
fileReferenceを使用します。fileReferenceは、VFSに格納されているファイルへの参照です。
-
ステージングされた添付ファイルの内容を、文字列要素にマップするには、内容をbase64文字列に変換します。
-
base64文字列を添付ファイルとして保存し、VFSリファレンスを生成します。
これらのタスクを実行するための2つのXPath関数が用意されています。 これらの関数は、どのアダプタでも動作します。
-
encodeReferenceToBase64(String reference): VFSのファイル参照を入力として受け入れ、ファイルのbase64エンコード・コンテンツを戻り値として返します。 この関数のファイル・サイズの上限は10 MBです。 ファイルが10 MBより大きい場合、Maximum file size supported is 10 MBの例外メッセージが表示されます。 -
decodeBase64ToReference(String base64String): base64でエンコードされたコンテンツを入力として受け取り、デコードし、base64でデコードされた値をVFS内のファイルに格納し、このファイルへの参照を返します。 コンテンツはすでにメモリーに入っているためサイズ制限はありません。エンコードされたbase64文字列の先頭にある
77u/テキストは、バイト順マークに関連し、使用されたエンコーディング方式(UTF-8)を示します。 これは、base64文字列をバイナリにデコードするために必要ありません。これは、文字列内のバイナリ・データを表すために必要です。 このテキストは、デコードの問題が発生しないように、元のbase64文字列から抽出および削除する必要があります。 エンコードされた文字列から削除されない場合は、文字列に変換されると、デコードされたデータに追加の領域があります。
これは、文字列に対する標準的なマッパー関数を使用して、base64でエンコードされた文字列から抽出および削除できます。 この情報は、base64でエンコードされた文字列をバイナリ・データにデコードする際には必要ありません。 これは、UTF-8エンコーディングを使用してバイナリ・データを読み取るために必要です。
-
fileReference -
attachmentReference -
streamReference
-
式ビルダー(統合で次のアクションを構成する場合):
-
通知
-
ロギング
-
スイッチ
-
割当て
-
-
マッパー(
>「関数」>「上級」を選択した後に表示されます)
添付ファイルは、ドキュメント・ファイルのタイプに限定されません。 たとえば、イメージをベース64でエンコードし、後で元のファイルにデコードすることができます。
添付ファイルがVFSに保存されると、後で添付ファイルを取得するためのキーが生成されます。 キーはマッパーにattachmentReference/fileReference/streamReferenceとして表示されます。 このキーは、ペイロードの一部としてOracle Integration内に伝播されます。 添付ファイルは、必要なときにのみ要求されます。 attachmentReference、fileReference、およびstreamReferenceの名前は、アダプタのタイプに基づいています。 たとえば、RESTアダプタでは、streamReferenceが使用されます。 参照のデータ型は文字列です。
マルチパート機能では、HTTPリクエストのペイロードに境界で区切られた複数の部分があります。 個々のパーツのそれぞれは添付ファイルとみなされます。 生のバイトの場合は、streamReferenceが使用されます。 FTPはfileReferenceを使用します。
時には、エンドポイントはbase64でエンコードされた値のみを受け入れます。 このような場合、参照はencodeReferenceToBase64への入力として渡され、ファイルのbase64でコード化されたコンテンツを取得します。 ここでもbase64でエンコードされた値をdecodeBase64ToReferenceへの入力として渡して、デコードされたコンテンツを含むファイルへの参照(ロケーション)を取得することができます。
マップ・ファイルのインポート
次のトピックを参照して、マップ・ファイルをOracle JDeveloperおよびOracle Integrationにインポートする方法を学習します。
ノート:
かわりに、マッパーでXSLTコードを直接編集することもできます。 これにより、XSLTコードをOracle Integrationからエクスポートし、テキスト・エディタまたはEclipseやOracle JDeveloperなどの別のグラフィカル・ツールでコードを手動で編集し、Oracle Integrationのマッパーにコードを再インポートする必要がなくなります。 「Oracle Integration 3でのOracle Mapperの使用」の「マッパーでのXSLTコードの編集」を参照してください。Oracle JDeveloperで編集するマップ・ファイルを含む統合をエクスポートできます。 「統合のエクスポート」を参照してください。
Oracle JDeveloperへのマップ・ファイルのインポート
Oracle Integrationアーカイブ・ファイルをOracle JDeveloperのOracle Service Busプロジェクトにインポートできます。 アーカイブ・ファイルには、内容がほぼ完成しているマップ・ファイルも空のマップ・ファイルも含めることができます。 このアクションにより、Oracle Integrationマッパーで実行できない拡張XSLTタスク(変数の作成、テンプレートの使用など)をOracle JDeveloperで実行できます。 Oracle JDeveloperでこれらの高度なタスクを完了した後、マップ・ファイルを保存し、Oracle Integrationに再インポートできます。
Oracle Integrationへのマップ・ファイルのインポート
Oracle Integrationマッパーで実行できない高度なXSLTタスク(変数の作成、テンプレートの使用など)を実行する必要がある場合があります。 このような場合、統合をエクスポートし、統合をOracle JDeveloperにインポートし、Oracle JDeveloperのXSLTマップ・エディタのマップ・ファイルでこれらの拡張タスクを実行し、マップ・ファイルを保存してOracle Integrationに再インポートできます。 マップ・ファイルは、Oracle JDeveloperのOracle Service Projectに基づく必要があります。
- ナビゲーション・ペインで、「設計」、「統合」の順にクリックします。
- マップ・ファイルのインポート先の統合をクリックします。
- マッパー・アイコンをクリックし、
、「インポート」の順に選択します。 - 「Browse」をクリックして、マップ・ファイル(
.xslファイル)を選択します。 統合全体をエクスポートしても、統合全体をOracle Integrationにインポートしなおさないことに注意してください。 エクスポートされた統合のマップ・ファイルをOracle Integrationにインポートするだけです。 - 「インポート」をクリックします。

