この章では、マッピング・エディタを使用して変換を編集するプロセスを説明します。
この章の内容は次のとおりです。
マッピング・エディタはブラウザベースのアプリケーションで、これを使用すると、事前作成済の統合マッピングをカスタマイズできます。変更内容は階層化されたカスタマイズとして保存され、パッチまたはアップグレードの適用時にオーバーライドされないように保護されます。また、このアプリケーションでは、カスタマイズをマージして、影響を受けたコンポジット・サービスをランタイム環境にデプロイすることもできます。
この項では、マッピング・エディタに関する次の管理タスクについて説明します。
マッピング・エディタを有効にするには、AIAMappingCustomizerエンタープライズ・ロールが適切なユーザーに割り当てられている必要があります。
このロールはOracle WebLogic管理者がユーザーに対して有効にする必要があります。
AIAMappingCustomizerエンタープライズ・ロールは、AIAHomeアプリケーションのデプロイ後にOracle WebLogicコンソールで使用可能になります。
AIAMappingCustomizerエンタープライズ・ロールをユーザーに割り当てる手順は、次のとおりです。
Oracle WebLogic Server管理コンソールを開きます。
「セキュリティ・レルム」→「myrealm」→「ユーザーとグループ」の順にナビゲートして、ユーザーを選択します。
「ユーザーの設定」画面で、「グループ」タブを選択します。
「AIAMappingCustomizer」を「使用可能」から「選択済み」に移動します。
「保存」ボタンをクリックします。
そのユーザーのOracle SOAコア拡張機能コンソールでマッピング・エディタのパネルが使用可能になります。
AgileAPI.jarを共有ライブラリとしてデプロイすると、ユーザーはAgileフレックスフィールドのユーザー定義名を取得して、「マッピング・エディタ」ページでの編集時に表示できます(表22-2の「フレックスフィールド名の表示」を参照)。
マッピング・エディタではAgileAPI.jar
ファイルを使用して、ソースまたはターゲット・システムがAgileである変換に対応するフレックスフィールド名を取得します。
初期状態では、スタブ・バージョンのAgileAPI.jar
ファイルがSOAサーバーのAgileAPI 1.0, 0.0共有ライブラリにデプロイされています。しかし、現時点でAgile XSLTファイルをマッピング・エディタで編集しようとすると、「フレックスフィールド名の警告。」エラーが表示されます(図22-1を参照)。
図22-1 「フレックスフィールド名の警告。」エラー
「フレックスフィールド名の警告。」ダイアログにリストされているシステムでの現行のセッション中にこのエラーが再度表示されないようにする場合は、「今後、この警告を表示しない。」オプションを選択します。
フレックスフィールド名機能を有効にするには、AgileAPI.jar
ファイルを共有ライブラリとしてWebLogicサーバーにデプロイする必要があります。AgileAPI.jar
ファイルではwlsauth.jar
およびcrypto.jar
ファイルを使用します。これら3つのJARファイルは実行時に使用可能である必要があります。また、wlsauth.jar
およびcrypto.jar
ファイルは、SOAサーバー起動時のクラスパスに含まれている必要があります。
AgileAPI.jar
、wlsauth.jar
およびcrypto.jar
ファイルには、Agileサーバーの次の場所からアクセスできます。
<AGILE_HOME>
/integration/sdk/lib/AgileAPI.jar
<AGILE_HOME>
/<AGILE_DOMAIN>
/lib/wlsauth.jar
<AGILE_HOME>
/<AGILE_DOMAIN>
/lib/crypto.jar
<AGILE_HOME>
の場所はインストールに応じて異なります。
マッピング・エディタでは、Agile 9.3.1.2、9.3.2および9.3.3バージョンとバイナリ互換性のあるAgileAPI.jarファイルのバージョンのみをサポートしています。
Agile APIの使用に関する詳細は、Agile PLM 9ドキュメント・ライブラリで入手可能なSDK開発者ガイドのAgile APIの使用に関する項を参照してください。
AgileAPI.jarファイルを共有ライブラリとしてデプロイする手順は、次のとおりです。
これで、ユーザーはAgile変換に対応するユーザー定義のフレックスフィールド名を、「マッピングの検索」ページで表示できると同時に、「マッピング・エディタ」ページでAgile変換を編集する際にも表示できます。
「マッピングの検索」ページを起動するには、Oracle SOAコア拡張機能コンソールにナビゲートし、「AIAマッピング・エディタ」セクションにある「実行」ボタンをクリックします。
図22-2に示すように、「マッピングの検索」ページが表示されます。このページには、2つのセクションがあります。上部のセクションでは、検索基準を入力できます。下部のセクションには、カスタマイズ可能な変換ファイル(.xsl)がリストされます。変換ファイルには、統合の際にデータをソースからターゲットに変換する個々のマッピングが格納されています。このリストは、MapperConfiguration.xmlファイルから導出されたものです。
図22-2 「マッピングの検索」ページ
「フィルタ」エリアに用意されているフィルタを使用すると、カスタマイズする変換ファイルを容易に検出できます。表22-1に、フィルタとその説明を示します。
表22-1 「マッピングの検索」ページの「フィルタ」エリア
フィールド | 説明 |
---|---|
一致 |
「すべて」または「いずれか」の検索パラメータに基づいて変換を取得できます。 |
変換名 |
ファイル・システムにある変換ファイル(.xsl)の名前。 |
サービス・ソリューション・コンポーネント |
プロジェクト・ライフサイクル・ワークベンチにあるサービス・ソリューション・コンポーネントの名前。 |
ソース・システム |
送信元のアプリケーション・システム。 |
ビジネス・タスク |
プロジェクト・ライフサイクル・ワークベンチにあるビジネス・タスクの名前。 |
ターゲット・システム |
受信先のアプリケーション・システム。 |
PIP |
プロジェクト・ライフサイクル・ワークベンチにあるプロセス統合パック(Oracleによって提供される事前作成済の統合)の名前。 |
カスタマイズ済 |
変換がカスタマイズされているかどうかに基づいてフィルタ処理します。 |
「フィルタ」のいずれかのフィールドに検索パラメータを入力して、「検索」をクリックします。
マッピング検索の結果を操作するには、表22-2で説明されているコントロールを使用します。
表22-2 「マッピングの検索」ページのコントロール
コントロール | 説明 |
---|---|
編集 |
選択した変換を編集してカスタム・マッピングを適用する場合にクリックします。 |
フレックスフィールド名の表示 |
「編集」ボタンと組み合せて使用します。選択すると、ソースまたはターゲット・アプリケーションのメタデータに対する動的問合せが実行されて、フレックスフィールドに対応するユーザー定義名が取得され、「マッピング・エディタ」ページにビジネス・エイリアスとして表示されます。 注意: このリリースでサポートされているアプリケーションはE-Business SuiteおよびAgileです。 Agileマッピングの編集時に「フレックスフィールド名の警告。」メッセージが表示された場合は、「AgileAPI.jarファイルの共有ライブラリとしてのデプロイ」を参照してください。 E-Business Suiteマッピングの編集時に警告メッセージが表示された場合は、その警告メッセージの内容とSOAサーバー・ログを使用してトラブルシューティングしてください。 |
デプロイ |
マッピングをカスタマイズした後、カスタマイズ・レイヤーをベース・ファイルにマージして、影響を受けたコンポジット・サービスをランタイム・サーバーにデプロイする場合にクリックします。 |
カスタマイズの削除 |
カスタマイズしたすべてのマッピングを選択した変換から削除する場合にクリックします。 |
変換を編集する手順は、次のとおりです。
変換を選択します。
(オプション)ソースまたはターゲット・システムがE-Business SuiteまたはAgileの場合は、「フレックスフィールド名の表示」オプションを選択して、フレックスフィールドに対応するユーザー定義名を表示します。
注意:
このオプションを選択すると、マッピングのロードに時間がかかる場合があります。
「編集」ボタンをクリックします。
「マッピング・エディタ」ページが表示されます。
「マッピング・エディタ」ページでは、図22-3に示すように、既存のマッピングを表示して拡張できます。マッピング・エディタには、選択した変換から既存のマッピングが事前ロードされます。個別のマッピングの追加、変更および削除ができます。「マッピング・エディタ」ページは複数のフレームに分割されています。
図22-3 「マッピング・エディタ」ページ
編集している変換ファイル(.xsl)の名前が表示されます。
保存して閉じる: このボタンでは、マッピングの変更をカスタマイズ・レイヤーに保存して「マッピングの検索」ページに戻ります。
取消: このボタンでは、マッピングの変更を保存せずに「マッピングの検索」ページに戻ります。
ターゲット・フレームは、左上部に表示される最初のフレームです。ターゲット・スキーマ名が記載され、ターゲット・スキーマ要素が表示されます。マッピング・エディタは、出力ドキュメントを作成できるように設計されています。ページは、左側でターゲット要素を選択し、マッピングを作成する右側の要素にドラッグ・アンド・ドロップするように配置されています。
ターゲット要素はツリー構造で表示されます。属性のみの子を含む要素は最初は展開されていません。これらを展開すると、属性要素が表示されます。ツリーは、最初は6番目の子まで展開されています。6番目の子の下に子がある場合、それらの子は展開されません。MaxDepth値はMapperConfiguration.xmlファイルで構成できます。
「要素の検索」では、ツリー内の要素を検索できます。検索する要素の名前を入力し、[Enter]を押すか、またはアイコンをクリックして検索を開始します。入力したテキストを含む次の要素が取得されます。[Enter]を押し続けるか、またはアイコンを複数回クリックすることで、一致する次の要素を検索できます。
「* すべてのアイテム」、「マップ済」および「未マップ」オプションを使用して要素をフィルタ処理できます。
* すべてのアイテム: ターゲット・スキーマのすべての要素が表示されます。
マップ済: マップ済のターゲット要素のみを表示するようにツリーがフィルタ処理されます。子要素がマップ済の場合は、その親が表示されてターゲット・スキーマの構造がそのまま保持されます。
未マップ: 現在マップされていないターゲット要素のみを表示するようにツリーがフィルタ処理されます。子要素がマップされていない場合は、その親がマップ済であっても親が表示され、ターゲット・スキーマの構造がそのまま保持されます。
任意の要素を右クリックして、先頭として表示、「すべて縮小」または「すべて展開」を選択します。
このフレームは2つの列に分割されています。これらは「ノード名」と「マッピング・サマリー」です。
「マッピング・サマリー」列は、ターゲット要素にマップされている内容のサマリーです。ソース要素、変数、テキストおよび関数が表示されます。マッピングで関数が使用されている場合は通常、ソース要素、変数、テキスト、演算子などを含むいくつかのパラメータが含まれています。「マッピング・サマリー」列の長さには制限があり、関数で使用される様々な組合せすべてを格納することができないため、関数が使用され、その関数にパラメータが渡されることを伝えるために省略書式が表示されます。
カスタマイズされたマッピングがあるターゲット要素は、青色のドット・インディケータでマークされます。
ターゲット要素を選択すると、「マッピング・ビルダー」フレームの「マッピング」セクションに完全な式が表示されます。
右側にあるこのフレームには、アコーディオン・コントロール内の3つのセクションであるソース・スキーマ、「マッピング・コンポーネント」および「変数」が表示されます。このフレーム内の3つのセクションにはすべて検索フィールドがあります。
ソース・スキーマ
ソース要素はツリー構造で表示されます。属性のみの子を含む要素は最初は展開されていません。これらを展開すると、下に属性要素を表示できます。ツリーは、最初は6番目の子まで展開されています。6番目の子の下に子がある場合、それらの子は展開されません。MaxDepth値はMapperConfiguration.xmlファイルで構成できます。
ソース要素にあるチェック・マークは、その要素がすでにターゲットにマップされていることを示します。
「要素の検索」では、ツリー内の要素を検索できます。検索する要素の名前を入力した後は、[Enter]を押すか、またはアイコンをクリックして検索を開始します。入力したテキストを含む次の要素が取得されます。[Enter]を押し続けるか、またはアイコンを複数回クリックすることで、一致する次の要素を検索できます。
ソース要素はマップされていないターゲット要素または「マッピング・ビルダー」内にドラッグ・アンド・ドロップできます。あるいは、「マッピングに追加」ボタンをクリックして、選択したソース要素を「マッピング・ビルダー」に挿入できます。
注意:
ソース要素をマッピングに挿入すると、現在の実行コンテキストに基づいて適切な相対または絶対パスが自動的に計算されます。
マッピング・コンポーネント: 「マッピング・コンポーネント」は「XSL要素」、「関数」および「演算子」で構成されています。
「XSL要素」は、XSL言語で最も頻繁に使用される要素のサブセットです。すべてのマッピング文はXSL要素で始める必要があります。次の要素がサポートされています。
Attribute: マッピングの完成に属性が必要な場合に使用します。たとえば、nil属性をtrue
に設定している場合です。
Choose: 複数のケースを使用して条件を指定する場合に使用します。When
要素は、Choose
とともに自動的に挿入されます。
For-each: 繰返しソース要素を繰返しターゲット要素にマップする場合に使用します。For-each文では、実行コンテキストが変更され、その結果として、子の文内のソースおよび変数の相対パスが自動的に調整される場合があります。
If: 単一のケースを使用して条件を指定する場合に使用します。
Otherwise: Choose
文で最終条件を指定する場合にこの文を使用します。
Text: リテラル値を指定する場合に使用します。
Value-of: 実際のマッピング割当を実行する場合にこの主文を使用します。
When: Choose
文で条件を指定する場合に使用します。Choose
がまだ親の文でない場合は、自動的にWhen
とともに挿入されます。
「関数」は、日付関数、拡張関数、文字列関数などの標準的なXPATH関数で構成されています。DVM、XREFなどの頻繁に使用されるAIA関数もあります。
「演算子」は、「加算」、「論理積」、「除算」、「次より大きい」、「次より小さい」などで構成されています。
「マッピング・コンポーネント」セクションでは、「検索」および「マッピングに追加」もサポートされています。
変数: 選択したターゲット要素に使用できる変数が表示されます。変数はコンテキストに依存します。
ターゲット要素を最初に選択すると、そのターゲット要素がマップされていない場合のみ、適用可能な変数が表示されます。これはvalue-of select文としてターゲット要素にドラッグ・アンド・ドロップできます。
変数は、「マッピング」パネルで行が選択されている場合にも表示されます。選択したマッピング行に適用可能であるかぎり、変数が表示されます。
特定の変数にはツリー構造が設定されている場合があります。このような変数を展開するとその変数の子が表示され、リーフ・ノードに到達するまで引き続き展開できます。
注意:
変数要素をマッピングに挿入すると、現在の実行コンテキストに基づいて適切な相対または絶対パスが自動的に計算されます。
「変数」セクションでは、「検索」および「マッピングに追加」もサポートされています。
このフレームには、マッピング作成ユーティリティが用意されており、ユーザーは複雑なマッピングを作成して編集できます。このフレームは、左下部にあります。このフレームには、2つのセクションがあります。
マッピング・ビルダー・ヘッダー
ターゲット要素: (上部のターゲット・フレームで)選択したターゲット要素のフルパスが表示されます。
保存: 「マッピング・ビルダー」内で加えた変更をメモリー内の内部ドキュメントに保存します。1つのターゲット要素の変更を保存してから別のターゲット要素を選択する必要があります。
取消: 「マッピング・ビルダー」内で加えた変更を破棄します。ターゲット・マッピングは以前の状態に戻ります。
マッピングのクリア: ターゲット要素に対して実行されたマッピングをすべて消去します。
コンテキスト
現在選択されているターゲット要素がどの条件とコード・パスでマップされるかをユーザーが理解するのに役立つ関連コンテキスト情報が表示されます。コンテキストは編集できません。実行コンテキストには、マッピングを実行するために満たす必要があるapply templates、match templates、call templates、for-each、choose/when/otherwiseおよびif文が含まれる場合があります。このペインは最初は閉じた状態です。内容を表示するには、ペインのサイズを元に戻すアイコンをクリックします。
マッピング
ターゲット要素のマッピングで使用されている文の完全なコレクションが表示されます。マッピングには、マッピングの割当自体に加えて、ターゲットに影響を与える条件文が含まれます。ユーザーは、次のツールバー・オプションを使用して、文を挿入、編集または削除できます。
挿入: Insert Parent
、Insert Sibling Before
、Insert Sibling After
およびInsert Child
の各文を「マッピング」ペインに挿入するオプションを提供します。このオプションは、ユーザーがペイン内で文を右クリックしたときに表示されるコンテキスト・メニューからも使用できます。
編集: ユーザーは選択した文を展開して、その文を構成しているサブコンポーネントを表示できます。展開したサブコンポーネントは編集可能です。このボタンとコンテキスト・メニューの「編集」オプションは、編集可能な文に対してのみ有効になります。たとえば、value-of select、if、whenなどの文です。ペイン内の編集可能な文の前には鉛筆アイコンが表示されます。
編集完了: このオプションは、「編集」ボタンをクリックし、選択した文を展開すると有効になります。サブコンポーネントのいずれかに対する変更を加えた後は、このボタンをクリックして変更を完了し、文を縮小します。「保存」ボタンをクリックすると、「編集完了」ボタンが自動的にクリックされます。
入力リテラル: このオプションは、展開したサブコンポーネントに、リテラルに変更可能な式が含まれている場合に有効になります。
削除: このオプションは、選択した文または式が削除に適格である場合に有効になります。
この項では、単純な例を使用して、「マッピング・エディタ」ページの使用方法を示します。
複雑な条件が必要ない場合は、単純なマッピングを実行できます。たとえば、ソース・システムの製品IDをターゲット・システムの製品IDにマップする必要があり、条件が必要ない場合は、単純なマッピングを実行します。
図22-4 マッピング式ビルダー画面
要素の単純なマッピングを実行する手順は、次のとおりです。
ターゲット・フレームで、マップする必要がある要素を選択します。
ソース・フレームで、マップする必要がある要素を選択します。
ソース要素を、マップする必要があるターゲット要素行にドラッグします。
その行の「マッピング・サマリー」列がソース要素でリフレッシュされ、要素がカスタマイズされたことを示す青色のドットで行が強調表示されます。
マッピング・ビルダー・フレームが、直前に作成した単純なマッピング用の完全なマッピング文でリフレッシュされます。単純な割当を行うXSLのvalue-of
文が自動的に追加されます。
この方法で、変数をターゲットにマップすることもできます。ただし、マッピング・コンポーネントは、マッピング・ビルダーでのみマップできます。
注意:
作成済のマッピングを削除するには、ターゲット・フレームで要素を選択して、「マッピングのクリア」ボタンをクリックします。
条件や関数などを必要とする複雑なマッピングを実行する場合は、マッピング・ビルダーを使用します。
マッピング・ビルダーを使用してマッピングを作成する手順は、次のとおりです。
ターゲット・フレームで要素を選択します。
選択した要素がマップされていない場合は、「マッピング」セクションに空の行が追加され、「-- ここにドラッグ・アンド・ドロップまたは入力」というテキストが表示されます。
選択した要素がマップ済の場合、「マッピング」セクションにはそのターゲットの完全なマッピング文のセットが表示されます。続行する前に、空の行を作成して新しい文を追加したり、既存の文を編集できます。詳細は、後続の新しいマッピング文の行を追加する手順を参照してください。
ソース要素を選択してドラッグし、「マッピング」セクションの空の行にドロップします。
単純な割当を行うXSLのvalue-of
文が追加されます。
あるいは、ソース要素を選択し、「マッピング式に追加」ボタンをクリックすることもできます。
変更作業の完了後は、「編集完了」ボタンをクリックします。
「保存」をクリックします。
マッピング文の行を編集する手順は、次のとおりです。
「マッピング」セクションで、編集する行を選択します。
「編集」をクリックして、必要な変更を加えます。
この文を展開して、そのサブコンポーネントを表示します。ソース、関数、演算子または変数を既存のサブコンポーネント行に挿入することによって既存のサブコンポーネントを編集します。
変更作業の完了後は、「編集完了」ボタンをクリックします。
「保存」をクリックします。
マッピングの変更をすべて保存する手順は、次のとおりです。
すべての編集の完了後に、「保存して閉じる」ボタンをクリックします。この操作によって、変換の検索ページが表示されます。このページは、カスタマイズした変換をデプロイする際に役立ちます。
マッピングの変更をすべて破棄するには、「取消」ボタンをクリックします。
式の編集に進む前に、「マッピング・エディタの編集ルール」の項を参照してください。
新しいマッピング文の行を追加する手順は、次のとおりです。
「挿入」ボタンをクリックし、親、兄弟の前、兄弟の後、または子の行を選択します。
目的の位置に空の行が追加され、「-- ここにドラッグ・アンド・ドロップまたは入力」
というテキストが表示されます。
「マッピング・コンポーネント」セクションから、XSL要素を新しい行にドラッグ・アンド・ドロップします。たとえば、if
を選択します。
この文を展開して、次の必須サブコンポーネントを表示します。
Test(if XSL要素の必須属性)の子行。
Testの下に新しい空の行がデフォルト設定され、「-- ここにドラッグ・アンド・ドロップまたは入力(Test用)」
というテキストが表示されます。
有効なソース、関数、演算子または変数を新しい空の子行に挿入して、新しいXSL要素を完成します。関数または演算子を挿入した場合は、行を再び展開して、その必須サブコンポーネントを表示します。同様に完成させます。
変更作業の完了後は、「編集完了」ボタンをクリックします。
「保存」をクリックします。
この項では、変換を編集する際のルールについて説明します。各フィールドの編集ルールについても詳細に説明します。
空の行: ターゲット・タグ、ソース要素、マッピング・コンポーネント、変数またはリテラルが含まれていない行。空の行は、ドラッグ・アンド・ドロップまたは入力可能であることが示されます。
ターゲット・タグ: ターゲット要素のタグを定義するXML文。
属性値テンプレート・マッピング: 式ビルダー・ウィンドウに表示される属性値テンプレートの式。
正規マッピング: 属性値テンプレートを対象としないマッピング。
マッピング・コンポーネント: 「マッピング・コンポーネント」アコーディオン・パネル下にリストされるコンポーネント。
文: XML要素またはXMLの完全な文。
祖先の文: 共有文を除いた、親、祖父母、曾祖父母などの文。
サブコンポーネント: 文の一部またはサブコンポーネントの一部。
共有文: そのスコープ内に複数の兄弟ターゲット要素があるXSLT文。
OOTB: Out Of The Box(初期状態)。
次の文は読取り専用です。
xsl:copy
xsl:copy-of
xsl:element
xsl:attribute
xsl:for-each
属性値テンプレートが指定されたターゲット・タグ
関数または演算子が指定された、「マッピング・コンポーネント」パネルにリストされていない初期状態の文
表22-3に、変換の編集中に実行できる様々なドラッグ・アンド・ドロップ(D&D)または入力アクティビティを示します。
表22-3 ドラッグ・アンド・ドロップまたは入力
D&D | D&D | D&D | D&D | D&D | D&D | タイプ | |||
---|---|---|---|---|---|---|---|---|---|
マッピング・タイプ | 親 | 宛先 | ソース要素 | XSLT要素 | XSLT属性 | 関数 | 演算子 | 変数 | リテラル |
N/A |
N/A |
ターゲット・ツリー内のマップされていないターゲット |
はい |
いいえ |
いいえ |
いいえ |
いいえ |
はい |
いいえ |
N/A |
N/A |
ターゲット・ツリー内のマップ済のターゲット |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
正規 |
ターゲット・タグ |
空の行 |
はい |
はい |
いいえ |
いいえ |
いいえ |
はい |
はい |
正規 |
XSLT要素 |
空の行 |
いいえ |
はい |
はい |
いいえ |
いいえ |
いいえ |
(1) はい |
正規 |
XSLT属性 |
空の行 |
はい |
いいえ |
いいえ |
はい |
はい |
はい |
はい |
正規 |
関数 |
空の行 |
はい |
いいえ |
いいえ |
はい |
はい |
はい |
はい |
正規 |
演算子 |
空の行 |
はい |
いいえ |
いいえ |
はい |
はい |
はい |
はい |
正規 |
リテラル |
空の行 |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
属性値テンプレート |
任意 |
空の行 |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
任意 |
任意 |
ターゲット・タグ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
正規 |
任意 |
ソース要素 |
はい |
いいえ |
いいえ |
はい |
はい |
はい |
はい |
属性値テンプレート |
属性 |
ソース要素 |
はい |
いいえ |
いいえ |
いいえ |
いいえ |
はい |
はい |
正規 |
任意 |
変数 |
はい |
いいえ |
いいえ |
はい |
はい |
はい |
はい |
属性値テンプレート |
属性 |
変数 |
はい |
いいえ |
いいえ |
いいえ |
いいえ |
はい |
はい |
正規 |
任意 |
XSLT要素 |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
正規 |
任意 |
XSLT属性 |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
正規 |
任意 |
関数 |
はい |
はい |
はい |
はい |
はい |
はい |
はい |
正規 |
任意 |
演算子 |
はい |
はい |
はい |
はい |
はい |
はい |
はい |
正規 |
ターゲット |
リテラル |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
はい |
正規 |
テキストXSL要素 |
リテラル |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
はい |
正規 |
value-of XSL要素のSelect属性 |
リテラル |
はい |
いいえ |
いいえ |
はい |
はい |
はい |
はい |
属性値テンプレート |
任意 |
関数 |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
属性値テンプレート |
任意 |
演算子 |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
属性値テンプレート |
任意 |
リテラル |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
(2)なし |
任意 |
任意 |
任意の読取り専用 |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
いいえ |
(1) 可: <xsl:text>に対して有効。その他のxslt文は実行時にエラーになります。
(2) なし: この親に対して空の行を作成することはできません。
注意:
異なる属性を持つ2つの子要素を追加すると、マッピング・エディタでは両方の子要素が保存されます。同じ属性を持つ2つの子要素を追加すると、マッピング・エディタでは1つの属性のみが保存されます。これは予想された動作です。
表22-4では、新しい行を挿入できる状況を説明します。
表22-4 行を挿入する際のルール
挿入形式 | 挿入形式 | 挿入形式 | 挿入形式 | |||
---|---|---|---|---|---|---|
マッピング・タイプ | 選択した行の親 | 選択した行 | 親 | 子 | 兄弟の前 | 兄弟の後 |
正規 |
なし |
任意 |
はい |
はい |
いいえ |
いいえ |
正規 |
任意 |
ターゲット・タグ |
はい |
はい |
はい |
はい |
正規 |
任意 |
XSLT要素 |
はい |
はい |
はい |
はい |
正規 |
XSLT要素 |
XSLT属性 |
いいえ |
(1) はい |
はい |
はい |
正規 |
任意 |
関数 |
いいえ |
はい |
いいえ |
いいえ |
正規 |
任意 |
演算子 |
いいえ |
はい |
いいえ |
いいえ |
正規 |
サブコンポーネント |
サブコンポーネントとしてのリテラル |
いいえ |
いいえ |
いいえ |
いいえ |
正規 |
XML文 |
XML文の値としてのリテラル |
はい |
いいえ |
いいえ |
いいえ |
正規 |
任意 |
ソース要素 |
いいえ |
いいえ |
いいえ |
いいえ |
正規 |
任意 |
変数 |
いいえ |
いいえ |
いいえ |
いいえ |
属性値テンプレート |
任意 |
任意 |
いいえ |
いいえ |
いいえ |
いいえ |
(1) 可: <xsl:text>に対して有効。その他のxslt文は実行時にエラーになります。
この項では、変換を削除する際のルールについて説明します。
ターゲット要素がリーフ要素の場合は、ターゲット・タグとすべての子の文が変数宣言も含めて削除されます。
ターゲット要素が親要素の場合、マッピング・エディタでは、子ターゲット・マッピングがすべて削除されるまで親の削除は許可されません。最初に子を削除してから親を削除する必要があります。
式のUIにターゲット要素タグの祖先の文が表示される場合、その祖先の文は他のターゲットと共有されておらず、それが表示される理由です。これらの祖先の文は祖先の変数とともに削除されます。
個別に保存した文は、属性値テンプレートの文から除外されます。
マッピング全体の削除は、個別の文の削除より優先します。
作成したが保存していない文は削除できます。これらに適用するルールはありません。
削除対象の文によってソース実行コンテキスト(たとえば、for each)が定義されている場合は、一時的に読取り専用のフラグが設定されるため、削除できません。
ターゲット・タグの文が親ターゲット・タグで、子ターゲットにマッピングが設定されている場合、その文は削除できません。
ターゲット・タグの文に子の文がある場合、その文は削除できません。
ターゲット・タグに祖先の文がある場合、その文は削除できません。
子、親または祖先のないターゲット・タグの文のみを削除対象としてください。
属性値テンプレートの例: <changeEBO:CreateEngineeringChangeOrderList actionCode="CREATE">文のアクション="CREATE"の削除。
属性値テンプレートはマッピング全体として削除できます。個々の行は削除できません。
この項では、for-eachの編集ルールについて説明します。
実行コンテキスト: 実行コンテキストはスコープの概念です。実行コンテキストが定義されると、それぞれの子XSL文がその実行コンテキストを継承します。実行コンテキストは主に次のXSLT文で定義されます。
<xsl:template match='xxxx'>
<xsl:apply-template select='xxx'/>
<xsl:for-each select='xxx'/>
xxxは実行コンテキストを定義するXPath式です。
実行コンテキスト定義: 実行コンテキストを定義するXSL文。
ペイロードまたは変数に基づいた実行コンテキスト: 実行コンテキストは、ペイロード(ソース)または変数のパス(相対/絶対)を使用して定義できます。相対パスを使用したXPath式は、現在の実行コンテキストの情報にアクセスします。つまり、実行コンテキストが変数に基づいている場合は、相対パスによってペイロード・コンテンツではなく変数コンテンツがアクセスされます。
実行コンテキスト依存(ECD)文: ECD文は、相対パスが設定されたXPathを使用した文です。
属性値テンプレートはXSLTではありません。ただし、このマニュアルでは、属性に割り当てられた値に相対パスが使用されている場合は、属性値テンプレートをECD文とみなします。
不明な実行コンテキスト: これは、実行コンテキストを定義している文(for-each、apply-templateなど)に無効なXPathがある場合、または有効なXPathだが複雑なXPathが使用されているためにマッパーが解読できない場合に発生します。このような文とそのスコープについては、実行コンテキストに不明のフラグが設定されます。
編集不可の文: 次のような、式ビルダーに表示されない文:
変数の宣言
テンプレートの呼出し
テンプレートの宣言
読取り専用の文
ワイルドカードXPathを使用した文(//xxx)
初期状態(OOTB)のfor-each: OOTBのfor-eachスコープに編集不可のECD文が含まれている場合、その<xsl:for-each>文は読取り専用に設定されます。
OOTBのfor-eachに不明な実行コンテキストがある場合、その<xsl:for-each>文は読取り専用に設定されます。
OOTBの不明な実行コンテキスト: コンテキスト定義文に不明な実行コンテキストが定義されている場合は、ECDの子の文がすべて読取り専用に設定されます。
<xsl:for-each>のドラッグ・アンド・ドロップまたは既存の<xsl:for-each>の編集: <xsl:for-each>は、次の状況の場合は、ドラッグ・アンド・ドロップまたは編集できます。
新しいfor eachスコープの下に編集不可のECD文がない。編集不可のECD文がある場合は、エラーが表示されます。
<xsl:for-each>を親ターゲットのタグ文の祖先の文として挿入すると、そのターゲットの子マッピングのマッピング文は、新しいfor-eachのスコープ内となります。これらの文も編集不可のECD文として評価されます。
編集モードの子の文が存在しない。編集モードの子の文が存在する場合は、エラーが表示されます。
< xsl:for-each>の削除: xsl:for-eachは、次の場合を除いて削除できます。
読取り専用の場合。
<xsl-for-each>スコープに編集不可のECD文が含まれている場合。
<xsl:for-each>を追加、変更または削除すると、実行コンテキストが変更されます。
実行コンテキストが変更されると、ECDの子の文(新しい<xsl:for-each>スコープ下の文)は、新しいコンテキストが導入される前と同じデータに引き続きアクセスするように調整されます。マッパーは、可能なかぎり相対パスを維持し続けようとします。
新しい実行コンテキストがペイロードから変数(またはその逆)に変更されたり、ある変数から別の変数に変更されると、ECDの子の文は、実行コンテキストの変更前と同じデータに引き続きアクセスするために絶対パスを使用するように調整されます。
新しい実行コンテキストが、ある場所から同じペイロードまたは変数内の別の場所に変更されると、ECDの子の文は、引き続き相対パスを使用して調整されます。これは、XPathのナビゲーション・コマンド(「../」、「.」、「/」)を使用して行われます
絶対パスで指定された文は、実行コンテキスト変更時に調整されません。
ECD文が式ビルダーに表示されている場合は、調整された相対パスを即時に確認できます。子ターゲット・マッピングにおけるECDの子の文は、「保存」ボタンをクリックすると自動的に調整されます。
表22-5に、実行コンテキストの変更時に調整される相対パスの例をいくつか示します。
表22-5 実行コンテキストの変更時に調整される相対パスの例
実行コンテキスト変更前->変更後(次の行) |
従業員名のXPathの調整前->調整後(次の行) |
/company/employee/employee/name |
first_name |
/company/employees/employee |
name/first_name |
$department |
/company/employee/employee/name/first_name |
/company/employees/employee |
/company/employee/employee/name/first_name |
実行コンテキスト変更前->変更後(次の行) |
会社電話番号のXPathの調整前->調整後(次の行) |
/company/employee/employee/name |
../../../phone_number |
/company/employees/employee |
../../phone_number |
$department |
/company/phone_number |
/company |
/company/phone_number |
実行コンテキスト変更前->変更後(次の行) |
会社の市区町村所在地の絶対XPath。調整されません。 |
/company/employee/employee/name |
/company/address/city |
/company/employees/employee |
/company/address/city |
$department |
/company/address/city |
実行コンテキスト変更前->変更後(次の行) |
変数$departmentから部門名のXPath。これは絶対パスのため調整されません。 |
/company/employee/employee/name |
$department/name |
/company/employees/employee |
$department/name |
$department |
$department/name |
マッピング・エディタでMDSレイヤー・カスタマイズを利用する際に以前に推奨されたように、_Custom.xslにコードを配置する必要はありません。
マッピング・エディタを使用すると、既存の変換を変更して、変更内容を新しいmdssysフォルダに保存できるようになりました。
mdssysフォルダにはmapperuiを含むサブフォルダが格納されます。このサブフォルダには、変更されたxslと名前が一致するxmlファイルが格納されます。たとえば、AgileCreateEngineeringChangeOrderListABM_to_CreateEngineeringChangeOrderListEBM.xsl.xmlです。
このxmlファイルには、元のxslファイルに加えられたマッピングの変更が格納されます。これらのマッピングの変更は、一意のxml:id=”mapperui_xxxでマーキングされています。このファイルのマッピングは初期状態にマージされ、マッピング・エディタに適切に表示されます。
カスタマイズ・レイヤーのマッピングは、事前作成済の統合のアップグレードやパッチの適用時に影響されません。
カスタマイズした変換は、カスタマイズ列でマークが付けられます。カスタマイズした変換をデプロイするには、その変換を選択して、「デプロイ」ボタンをクリックします。
「デプロイ」ボタンをクリックすると、次の処理が実行されます。
カスタマイズ・レイヤーがベースXSLファイルがマージされて、マージ・ファイルが作成されます。
選択したコンポジット・サービスに対してカスタムのデプロイメント計画が生成されます。
SOAコア拡張機能のAIDユーティリティを使用してカスタムのデプロイメント計画が実行され、選択したコンポジット(複数可)がランタイム・サーバーに再デプロイされます。