ナビゲーションに戻る

クロスリファレンス関数

このセクションでは、アルファベット順で、クロスリファレンスの XSLT 拡張関数について説明します。

構文

xref:BulkPopulateDomainData(mapName, domainList, dataRowsPath, dataValuesPath, mode)

説明

この XREF ドメイン データのバルク ロード関数は、XML からクロスリファレンス データをロードします。XML ノードセットに設定されているデータ行を順番に処理し、指定されているドメイン リストとデータ値のパスを使用して、各行に設定されている各ドメインの値にアクセスします。その後、各データ行は、できるだけ効率よく処理するため、一括挿入を使用して、指定されたマップの XREF フレームワークに挿入されます。この関数は、大量のデータの処理に使用します。これにより、XREF フレームワークの物理的なデータ永続性層の抽象化層が提供されます。挿入はバルク モードで実行されるため、挿入シーケンスが完了するまで重複は検索されません。重複が見つかった場合、データ行はまったく挿入されません。ドメインに複数のエレメントが含まれる場合、ドメインの各値には、ドメインに含まれる各エレメントの値を、値マップ オプションで指定されている区切り文字で区切った複合値を指定する必要があります。このシナリオでは、変換フレームワークにデータを挿入する前に、この関数によって、ドメイン エレメント値の連結が解除されます。

パラメータ

パラメータ

説明

mapName

動的 (クロスリファレンス) 値マップの名前を文字列として指定します。

domainList

ドメイン名をカンマで区切ったリスト。インポートするデータ値の順序を指定します。

dataRowsPath

一連の XML ノードを生成する XPath 式。各ノードは 1 つのデータ行を表します。

dataValuesPath

データ行内のデータ値を含む各ノードを指定するために使用する (各データ行に関連する) XPath 式。このパスが評価されるときに返されるノードセットには、指定された domainList 内のドメインと同じ数のノードが含まれている必要があります。

mode

ADD モードのみがサポートされます。

戻り値

プロセスが成功したか失敗したかを示すブール値。

構文

xref:BulkPopulateElementData(mapName, elementList, dataRowsPath, dataValuesPath, mode)

説明

この XREF エレメント データのバルク ロード関数は、XML からクロスリファレンス データをロードします。XML ノードセットに設定されているデータ行を順番に処理し、指定されているエレメントと XPath 式のペアを使用して、各行に設定されているエレメントの値にアクセスします。その後、各データ行は、できるだけ効率よく処理するため、一括挿入を使用して、指定されたマップの XREF フレームワークに挿入されます。この関数は、大量のデータの処理に使用します。これにより、XREF フレームワークの物理的なデータ永続性層の抽象化層が提供されます。挿入はバルク モードで実行されるため、挿入シーケンスが完了するまで重複は検索されません。重複が見つかった場合、データ行はまったく挿入されません。

パラメータ

パラメータ

説明

mapName

動的 (クロスリファレンス) 値マップの名前を文字列として指定します。

elementList

エレメント名をカンマで区切ったリスト。インポートするデータ値の順序を指定します。

dataRowsPath

一連の XML ノードを生成する XPath 式。各ノードは 1 つのデータ行を表します。

dataValuesPath

データ行内のデータ値を含む各ノードを指定するために使用する (各データ行に関連する) XPath 式。このパスが評価されるときに返されるノードセットには、指定された domainList 内のドメインと同じ数のノードが含まれている必要があります。

mode

ADD モードのみがサポートされます。

戻り値

プロセスが成功したか失敗したかを示すブール値。

構文

xref:populateXRefRow(mapName, referenceElementName, referenceValue, elementName, elementValue, mode)

説明

populateXRefRow 関数を使用して、クロスリファレンス エレメントに値をロードします。

パラメータ

パラメータ

説明

mapName

クロスリファレンス マップの名前を文字列として指定します。

referenceElementName

参照エレメントの名前を文字列として指定します。

referenceValue

参照エレメント名に対応する値を文字列として指定します。

elementName

ロードするエレメントの名前を文字列として指定します。

elementValue

エレメントのロードに使用する値を文字列として指定します。

mode

この関数がエレメントをロードするモードを示します。ADD、LINK、または UPDATE のいずれかの値を指定できます。モード パラメータの値は、大文字と小文字が区別され、大文字だけで指定される必要があります。

戻り値

この関数は、ロードされるクロスリファレンス値を文字列として返します。

次の表に、Xref:populateXRefRow 関数の結果を示します。

モード

参照値

追加される値

結果

ADD

なし

あり

あり

なし

なし

あり

成功

例外

例外

LINK

なし

あり

あり

なし

なし

あり

例外

成功

例外

UPDATE

なし

あり

あり

なし

なし

あり

例外

例外

成功

次の表に、モードとその説明および例外の理由の例を示します。

モード

説明

例外の理由

ADD

参照値と値を追加します。以下に例を示します。

xref:populateXRefRow("customers", 
"PS","PS101","Common","CM001","ADD") 

参照値 PS101PS エレメントに追加し、値 CM001customers クロスリファレンス マップの Common エレメントに追加します。

次の理由で、例外が発生する可能性があります。

  • 指定されたクロスリファレンス マップが見つかりません。

  • 指定されたエレメントが見つかりません。

  • 提供された値が空です。

  • 追加する値は、対象のマップの対象のエレメントにおいて一意ではありません。

  • 対象の行のエレメントには既に値が存在します。

  • 参照値は存在しています。

LINK

既存の参照値に対応するクロスリファレンス値を追加します。以下に例を示します。

xref:populateXRefRow("customers", 
"Common","CM001","SBL","SB-101", 
"LINK")

[SB-101]customers クロスリファレンス マップの SBL エレメントに追加し、それを Common エレメントの値 [CM001] にリンクします。

次の理由で、例外が発生する可能性があります。

  • 指定されたクロスリファレンス マップが見つかりません。

  • 指定されたエレメントが見つかりません。

  • 提供された値が空です。

  • 参照値が見つかりません。

  • リンクする値が、対象のマップの対象のエレメントに存在しています。

UPDATE

既存の参照エレメントと値のペアに対応するクロスリファレンス値を更新します。以下に例を示します。

xref:populateXRefRow("customers","PS", 
"PS100","PS","PS1001","UPDATE") 

customers クロスリファレンス マップの PS エレメントの値 [PS100] を値 [PS1001] に更新します。

次の理由で、例外が発生する可能性があります。

  • 指定されたクロスリファレンス マップが見つかりません。

  • 指定されたエレメントが見つかりません。

  • 提供された値が空です。

  • 更新する値は、対象のマップの対象のエレメントにおいて一意ではありません。

  • 更新するエレメントに対して複数の値が見つかりました。

  • 参照値が見つかりません。

  • 対象の行のエレメントに値がありません。

構文

xref:populateXRefRowNVP(mapName, referenceDomain, referenceNVP, targetDomain, targetNVP, mode)

説明

xref:populateXrefRowNVP 関数を使用して、クロスリファレンス マップ内の複数のエレメントに値をロードします。

パラメータ

パラメータ

説明

mapName

クロスリファレンス マップの名前を文字列として指定します。

referenceDomain

参照ドメインの名前を文字列として指定します。

rreferencesNVP

参照エレメントおよび値の NVP リストを文字列として指定します。

targetDomain

ロードするドメインの名前を文字列として指定します。

targetNVP

エレメントおよび当該エレメントにロードする値の NVP リストを文字列として指定します。

mode

この関数がエレメントをロードするモードを示します。ADD、LINK、または UPDATE のいずれかの値を指定できます。モード パラメータの値は、大文字と小文字が区別され、大文字だけで指定される必要があります。

戻り値

次の表に、populateXrefRowNVP 関数の結果を示します。

モード

参照値

追加される値

結果

ADD

なし

あり

あり

なし

なし

あり

成功

例外

例外

LINK

なし

あり

あり

なし

なし

あり

例外

成功

例外

UPDATE

なし

あり

あり

なし

なし

あり

例外

例外

成功

次の表に、モードとその説明および例外の理由を示します。

モード

説明

例外の理由

ADD

参照値と追加する値を追加します。以下に例を示します。

xref:populateXRefRowNVP("Items", 
"PeopleSoft", "<Setid>SHARE</Setid> 
<ItemID>1005</ItemID>","Common", 
"<Common>” | generate-guid() | 
”</Common>","ADD")

PeopleSoft ドメインの参照値 SHARE/1005 および Common ドメインの値 <guid1> を追加します。

次の理由で、例外が発生する可能性があります。

  • 指定されたクロスリファレンス マップが見つかりません。

  • 指定されたドメインが見つかりません。

  • 指定されたエレメントが見つかりません。

  • 提供された値が空です。

  • 追加しようとしている値は、マップのドメイン内で一意ではありません。

  • 対象の行のエレメントには既に値が存在します。

  • 参照値は存在しています。

LINK

既存の参照値に対応するクロスリファレンス値を追加します。以下に例を示します。

xref:populateXRefRowNVP("Items", 
"PeopleSoft","<Setid>SHARE</Setid> 
<ItemID>1005</ItemID>","Retail", 
"<Product>RP0005</Product>","LINK")

RP005Retail ドメインに追加し、それを PeopleSoft ドメインの参照値 SHARE/1005 にリンクします。

次の理由で、例外が発生する可能性があります。

  • 指定されたクロスリファレンス マップが見つかりません。

  • 指定されたドメインが見つかりません。

  • 指定されたエレメントが見つかりません。

  • 提供された値が空です。

  • 参照値が見つかりません。

  • リンクする値が、対象のマップの対象のドメインに存在しています。

UPDATE

既存の参照エレメントと値のペアに対応するクロスリファレンス値を更新します。以下に例を示します。

xref:populateXRefRowNVP("Items", 
"PeopleSoft","<Setid>SHARE</Setid> 
<ItemID>1000</ItemID>","PeopleSoft", 
"<Setid>SHARE</Setid> 
<ItemID>10000</ItemID>","UPDATE")

PeopleSoft ドメインの ItemID エレメントの値 1000 を値 10000 に更新します。

次の理由で、例外が発生する可能性があります。

  • 指定されたクロスリファレンス マップが見つかりません。

  • 指定されたドメインが見つかりません。

  • 指定されたエレメントが見つかりません。

  • 提供された値が空です。

  • 更新する値は、対象のマップの対象のドメインにおいて一意ではありません。

  • 更新するドメインに対して複数の値が見つかりました。

  • 参照値が見つかりません。

  • 対象の行のエレメントに値がありません。

構文

xref:markForDelete(mapName, elementName, elementValue) 

説明

指定されているエレメントがシングル ドメインの唯一のエレメントである場合、xref:markForDelete 関数を使用して、クロスリファレンス マップ内の値を削除します。エレメントの値は削除済としてマークされます。複数のドメインがエレメントを参照しているか、エレメントを参照しているドメインに複数のプライマリ エレメントがある場合は、xref:markForDeleteNVP 関数を使用します。

クロスリファレンス マップの各行には、少なくとも 2 つのマッピングが設定されている必要があります。従って、行に 2 つのマッピングしかなく、一方の値を削除指定すると、別のエレメントの値も削除されます。

削除指定されたエレメント値は、存在していないものとして扱われます。従って、xref:populateXRefRow 関数を ADD モードで使用して、同じエレメントをロードできます。ただし、削除指定されているエレメント値は、xref:populateXRefRow 関数の LINK モードで、参照値として使用できません。

パラメータ

パラメータ

説明

mapName

クロスリファレンス マップ名を文字列として指定します。

elementName

値を削除するエレメントの名前を文字列として指定します。

elementValue

削除する値を文字列として指定します。

戻り値

この関数は、削除が成功した場合 "真" を返し、失敗した場合は "偽" を返します。

次の理由で、例外が発生する可能性があります。

  • 指定された名前のクロスリファレンス マップが見つかりません。

  • 指定されたエレメント名が見つかりません。

  • 指定されたエレメント名は、ドメインに対して一意ではありません。

  • 指定された値が空です。

  • 指定された値がエレメント内にありません。

  • 複数の値が見つかりました。

次のコードでは、customers クロスリファレンス マップの PS エレメントの値 PS001 が削除されます。

xref:markForDelete("customers","PS","PS001")

構文

xref:markForDeleteNVP(mapName, referenceDomain, referenceNVP)

説明

xref:markForDeleteNVP 関数を使用して、指定されたドメインのクロスリファレンス マップ内の値セットを削除します。エレメントの値は削除済としてマークされます。

クロスリファレンス マップの各行には、少なくとも 2 つのマッピングが設定されている必要があります。従って、行に 2 つのマッピングしかなく、一方の値を削除指定すると、もう一方のドメインの値も削除されます。

削除指定された値は、存在していないものとして扱われます。従って、xref:populateXRefRowNVP 関数を ADD モードで使用して、同じエレメントをロードできます。ただし、削除指定されているエレメント値は、xref:populateXRefRowNVP 関数の LINK モードで、削除指定されているエレメント値は、参照値として使用できません。

パラメータ

パラメータ

説明

mapName

クロスリファレンス マップ名を文字列として指定します。

referenceDomain

参照ドメインの名前を文字列として指定します。

referenceNVP

参照エレメントおよび削除する値の NVP リストを文字列として指定します。

戻り値

この関数は、削除が成功した場合 "真" を返し、失敗した場合は "偽" を返します。

次の理由で、例外が発生する可能性があります。

  • 指定された名前のクロスリファレンス マップが見つかりません。

  • 指定されたエレメント名が見つかりません。

  • このドメインの全てのエレメントが指定されていません。

  • 指定された値が空です。

  • 指定された値がエレメント内にありません。

  • 複数の値が見つかりました。

次のコードでは、PeopleSoft ドメインの Setid エレメントと ItemID エレメントに指定された値が、Items クロスリファレンス マップから削除されます。

xref:markForDeleteNVP ("Items","PeopleSoft","<Setid>SHARE</Setid><ItemID>1000</ItemID>")

構文

xref:lookupXRef (mapName, referenceElementName, xrefReferenceValue, elementName, needAnException)

説明

lookupXRef 関数を使用して、参照エレメントの特定の 1 つの値に対応する 1 つの値のクロスリファレンス エレメントを検索します。

パラメータ

パラメータ

説明

mapName

クロスリファレンス マップの名前を文字列として指定します。

referenceElementName

参照エレメントの名前を文字列として指定します。

referenceValue

参照エレメント名に対応する値を文字列として指定します。

elementName

値を検索するエレメントの名前を文字列として指定します。

needAnException

"真" または "偽" を指定します。

needAnException パラメータが "真" に設定されていると、検索対象の値がマップ内に見つからない場合、例外が発生します。needAnException パラメータが "偽" に設定されていると、検索対象の値がマップ内に見つからない場合、空の値が返されます。

戻り値

リクエストされたエレメントの値。

次の理由で、例外が発生する可能性があります。

  • 指定された名前のクロスリファレンス マップが見つかりません。

  • 指定されたエレメント名が見つかりません。

  • 指定された参照値が空です。

  • 複数のターゲット値が見つかりました。

次のコードでは、customers クロスリファレンス マップの Common エレメントから、PS エレメントの値 PS001 に対応する値が検索されます。

xref:lookupXRef("customers","PS","PS001","Common",true())

構文

xref:lookupXRefNVP (mapName, referenceDomain, referenceNVP, targetDomain, needAnException)

説明

lookupXRefNVP 関数を使用して、指定された参照ドメインの値セットに対応する、クロスリファレンス値を検索します。参照ドメインの全てのプライマリ エレメントは、NVP 参照リストに含める必要がありますが、識別子エレメントは任意です。

パラメータ

パラメータ

説明

mapName

クロスリファレンス マップの名前を文字列として指定します。

referenceDomain

参照ドメインの名前を文字列として指定します。

referenceNVP

参照エレメントおよび値の NVP リストを文字列として指定します。

targetDomain

値を検索するドメインの名前を文字列として指定します。

needAnException

"真" または "偽" を指定します。

needAnException パラメータが "真" に設定されていると、検索対象の値がマップ内に見つからない場合、例外が発生します。needAnException パラメータが "偽" に設定されていると、検索対象の値がマップ内に見つからない場合、空の値が返されます。

戻り値

戻り文字列には、ターゲット ドメインの全てのプライマリ エレメントと識別子エレメントの値が NVP リスト形式で含まれます。

次の理由で、例外が発生する可能性があります。

  • 指定された名前のクロスリファレンス マップが見つかりません。

  • 指定されたドメイン名が見つかりません。

  • 指定されたエレメント名が見つかりません。

  • 指定された参照値が空です。

  • 複数のターゲット値が見つかりました。

次のコードでは、PeopleSoft ドメインの値 SHARE/1000 に対応する、Items クロスリファレンス マップの Common ドメインに含まれる全てのエレメントの値が検索されます。

xref:lookupXRefNVP("Items","PeopleSoft","<Setid>SHARE</Setid><ItemID>1000</ItemID>","Common",true())