Xref ユーティリティ クラス メソッド
このセクションでは、Xref クラス メソッドについて説明します。メソッドは、アルファベット順で説明します。
構文
BulkPopulateDomainData (mapName, domainList, dataRows, dataValuesPath, mode)
説明
この XREF ドメイン データのバルク ロード関数は、XML からクロスリファレンス データをロードします。XML ノードセットに設定されているデータ行を順番に処理し、指定されているドメイン リストとデータ値のパスを使用して、各行に設定されている各ドメインの値にアクセスします。その後、各データ行は、できるだけ効率よく処理するため、一括挿入を使用して、指定されたマップの XREF フレームワークに挿入されます。この関数は、大量のデータの処理に使用します。これにより、XREF フレームワークの物理的なデータ永続性層の抽象化層が提供されます。挿入はバルク モードで実行されるため、挿入シーケンスが完了するまで重複は検索されません。重複が見つかった場合、データ行はまったく挿入されません。ドメインに複数のエレメントが含まれる場合、ドメインの各値には、ドメインに含まれる各エレメントの値を、値マップ オプションで指定されている区切り文字で区切った複合値を指定する必要があります。このシナリオでは、変換フレームワークにデータを挿入する前に、この関数によって、ドメイン エレメント値の連結が解除されます。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的 (クロスリファレンス) 値マップの名前を文字列として指定します。 |
domainList |
ドメイン名の配列。インポートするデータ値の順序を指定します。 |
dataRows |
XML ノードの配列で、配列内の各ノードは 1 つのデータ行に相当します。 |
dataValuesPath |
データ行内のデータ値を含む各ノードを指定するために使用する (各データ行に関連する) XPath 式。このパスが評価されるときに返されるノードセットには、指定された domainList 内のドメインと同じ数のノードが含まれている必要があります。 |
mode |
ADD モードのみがサポートされます。 |
戻り値
プロセスが成功したか失敗したかを示すブール値。
例
Local EOTF_CORE:Xref:Functions &xref = create EOTF_CORE:Xref:Functions(); Local string &mapName = "VendorIDs"; Local array of string &domainList = ...; Local array of XmlNode &dataRows = ...; Local string &dataValuesPath = "..."; Local string &mode = "ADD"; Local boolean &success = &xref.BulkPopulateDomainData(&mapName, &domainList, &dataRows, &dataValuesPath, &mode);
構文
BulkPopulateElementData (mapName, elementList , dataRows, dataValuesPath, mode)
説明
この XREF エレメント データのバルク ロード関数は、XML からクロスリファレンス データをロードします。XML ノードセットに設定されているデータ行を順番に処理し、指定されているエレメントと XPath 式のペアを使用して、各行に設定されているエレメントの値にアクセスします。その後、各データ行は、できるだけ効率よく処理するため、一括挿入を使用して、指定されたマップの XREF フレームワークに挿入されます。この関数は、大量のデータの処理に使用します。これにより、XREF フレームワークの物理的なデータ永続性層の抽象化層が提供されます。挿入はバルク モードで実行されるため、挿入シーケンスが完了するまで重複は検索されません。重複が見つかった場合、データ行はまったく挿入されません。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的 (クロスリファレンス) 値マップの名前を文字列として指定します。 |
elementList |
エレメント名の配列。インポートするデータ値の順序を指定します。 |
dataRows |
XML ノードの配列で、配列内の各ノードは 1 つのデータ行に相当します。 |
dataValuesPath |
データ行内のデータ値を含む各ノードを指定するために使用する (各データ行に関連する) XPath 式。このパスが評価されるときに返されるノードセットには、指定された elementList 内のエレメントと同じ数のノードが含まれている必要があります。 |
mode |
ADD モードのみがサポートされます。 |
戻り値
プロセスが成功したか失敗したかを示すブール値。
例
Local EOTF_CORE:Xref:Functions &xref = create EOTF_CORE:Xref:Functions(); Local string &mapName = "VendorIDs"; Local array of string &elementList = ...; Local array of XmlNode &dataRows = ...; Local string &dataValuesPath = "..."; Local string &mode = "ADD"; Local boolean &success = &xref.BulkPopulateElementData(&mapName, &elementList, &dataRows, &dataValuesPath, &mode);
構文
ExtractData (mapName, domainList, tempRecName, instance)
説明
XREF データ抽出関数を使用して、セット ベースの SQL を作成および実行し、指定されたテーブルにクロスリファレンス データを抽出できます。データを抽出する前に、指定されたプロセス インスタンスの一時テーブルから全てのデータが削除されます。エレメント値は、指定されているドメイン リストの順序を使用し、次に、値マップ定義で指定されているエレメントの順序を使用して、一時レコードのフィールドにマッピングされます。ドメインが指定されていない場合は、エレメント値は、値マップ定義で指定されているエレメントの順序のみを使用して、一時レコードのフィールドにマッピングされます。この関数により、XREF フレームワークの物理的なデータ永続性層の抽象化層が提供されます。この関数は、大量のデータの処理に使用します。
一時テーブルには、次の設計上の制約があります。
1 列目は PROCESS_INSTANCE になります。
2 列目は UniqueGUID (EOTF_COMMONELEMENT) に使用されます。
残りの列は、指定されたドメインのエレメントに対応します。
注: 3 列目の名前が EOTF_IMPORT_FLG の場合、エクスポート中に [N] という値が設定されます。
一時テーブルの列名は、マップのエレメント名に一致している必要はありません。
一時テーブルでは、ProcessInstance、UniqueGUID が一意のキーになります。
指定された各ドメインのエレメントのインデックスを作成すると、パフォーマンスが向上する可能性があります。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的なクロスリファレンス マップの名前を文字列として指定します。 |
domainList |
データを抽出する値マップ ドメインの名前。マップに含まれる全てのドメインのデータを抽出するには、このパラメータに null または空の配列を指定します。 |
tempRecName |
抽出したデータを格納する一時テーブルの名前を文字列として指定します。 |
instance |
プロセス インスタンスを適用する場合に使用する数値を整数で指定します。 |
戻り値
プロセスが成功したか失敗したかを示すブール値。
例
Local EOTF_CORE:Xref:Functions &xref = create EOTF_CORE:Xref:Functions(); Local string &mapName = "VendorIDs"; Local array of string &domainList = CreateArray("PS"); Local string &tempRecName = Record.HR_VENDOR_TAO; Local boolean &success = &xref.ExtractData(&mapName, &domainList, &tempRecName, &instance);
構文
LookupValue (mapName, referenceElementName, referenceValue, elementName, needAnException)
説明
クロスリファレンス値マップの参照エレメント値を検索し、指定されているエレメント名の等値を返します。この形式の検索は、単一の参照エレメントを検索して、単一のエレメント値を返す場合に使用されます。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的 (クロスリファレンス) 値マップの定義の名前を文字列として指定します。 |
referenceElementName |
値を検索する Xref 内のエレメントの名前を文字列として指定します。 |
referenceValue |
検索対象の Xref 内のエレメントの値を文字列として指定します。 |
elementName |
等値を返す Xref 内のエレメントの名前を文字列として指定します。 |
needAnException |
エラー メッセージを返す場合は "真"、空白を返す場合は "偽"。 |
戻り値
Xref 内の elementName の等値を含む文字列の配列。
例
この例では、&TestName クロスリファレンス マップの UniqueGUID エレメントの値 &guid1 を検索し、&EBS1 エレメントの等値を返します。
Local string &returnValue = &xref.LookupValue(&TestName, &UniqueGUID, &guid1, &EBS1, True);
この例は、&TestName クロスリファレンス マップの &EBS1 エレメントに存在しない値を検索し、NeedAnException パラメータが "偽" であった場合に、デフォルト値 (空白) が返されることを確認します。
&returnValue = &xref.LookupValue(&TestName, &EBS1, "NotFound", &UniqueGUID, False);
構文
LookupValue1M ( mapName, referenceElementName, referenceValue, elementName, needAnException)
説明
クロスリファレンス値マップの参照エレメント値を検索し、名前付きの値ペア (NVP) リストとして、指定されているエレメント名の等値を返します。この形式の検索は、単一の参照エレメントを検索して、指定されたエレメント用の 1 対多の等値を返す場合に使用されます。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的 (クロスリファレンス) 値マップの定義の名前を文字列として指定します。 |
referenceElementName |
値を検索する Xref 内のエレメントの名前を文字列として指定します。 |
referenceValue |
検索対象の Xref 内のエレメントの値を文字列として指定します。 |
elementName |
等値を返す Xref 内のエレメントの名前を文字列として指定します。 |
needAnException |
エラー メッセージを返す場合は "真"、空白を返す場合は "偽"。 |
戻り値
クロスリファレンス内の elementName の等値を含む文字列の配列を返します。
例
この例は、&TestName クロスリファレンス マップの UniqueGUID エレメントの値 &guid1 を検索し、&EBS1 エレメントの等値を返します。
Local array of string &returnValue; &returnValue = &xref.LookupValue1M(&TestName, &UniqueGUID, &guid1, &EBS1, True);
この例では、&TestName クロスリファレンス マップの UniqueGUID エレメントに存在しない値を検索し、NeedAnException が "偽" の場合に返される値がないことを確認します。
&returnValue = &xref.LookupValue1M(&TestName, &UniqueGUID, "NotFound", &EBS1, False);
構文
LookupValueNVP (mapName, referenceDomain, referenceNVP, targetDomain, needAnException)
説明
クロスリファレンス マップの参照ドメイン エレメント値を検索し、指定されたドメインの全てのエレメントの等値を NVP リストとして返します。この形式の検索は、参照ドメインまたは返されるドメインに複数のエレメントが存在する場合に使用します。参照ドメインの全ての必須エレメントは、NVP 参照リストに含める必要がありますが、オプションのエレメント (おそらく識別子) は含める必要はありません。戻り文字列には、必須エレメントであるかどうかを問わず、ターゲット ドメインの全てのエレメントの値が NVP リスト形式で含まれます。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的 (クロスリファレンス) 値マップの定義の名前を文字列として指定します。 |
referenceDomain |
値を検索する XREF 内のドメインの名前を文字列として指定します。 |
referenceNVP |
検索対象の、参照ドメイン内のエレメントと値のペアを、DataElement の配列として指定します。 |
targetDomain |
等値を返すドメインの名前を文字列として指定します。 |
needAnException |
エラー メッセージを返す場合は "真"、デフォルト値が設定された NVP を返す場合は "偽"。 |
戻り値
ターゲット ドメインのエレメントの等値を含む、名前と値のペアの DataElement 配列、またはデフォルト値。
例
この例では、&TestName クロスリファレンス マップの UniqueGUID ドメインの値 &guid1 を検索し、&RTK ドメインの等値を返します。
Local array of EOTF_CORE:Common:DataElement &returnValue = &xref.LookupValueNVP(&TestName, &UniqueGUID, &UniqueGUIDrequestValues, &RTK, True);
構文
MarkForDelete (mapName, elementName, elementValue)
説明
指定されているエレメントがシングル ドメインの唯一のエレメントである場合、クロスリファレンス マップ内の値を削除します。複数のドメインがエレメントを参照しているか、複数のプライマリ エレメントがあるドメインでエレメントが使用されている場合は、xref:markForDeleteNVP 関数を使用します。エレメントの値は削除済としてマークされます。1 行に 2 つのマッピングしかない場合に、一方の値が削除指定されると、もう一方のドメインの値も削除されます。削除指定されたエレメント値は、存在していないものとして扱われます。従って、xref:populateXRefRow 関数を ADD モードで使用して、同じエレメントをロードできます。ただし、削除指定されているエレメント値を、xref:populateXRefRow 関数の LINK モードで参照値として使用すると、エラーが発生します。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的 (クロスリファレンス) 値マップの定義の名前を文字列として指定します。 |
elementName |
値を削除する Xref 内のエレメントの名前を文字列として指定します。 |
elementValue |
削除対象の Xref 内のエレメントの値を文字列として指定します。 |
戻り値
削除が成功した場合は "真"。
例
この例では、Customers クロスリファレンス マップの PS エレメントの値 PS001 が削除されます。
&return=&xref.MarkForDelete("Customers", "PS", "PS001")
構文
MarkForDeleteNVP (mapName, referenceDomain, referenceNVP)
説明
指定されたドメインのクロスリファレンス マップ内の値セットを削除します。エレメントの値は削除済としてマークされます。1 行に 2 つのマッピングしかない場合に、一方の値が削除指定されると、もう一方のドメインの値も削除されます。削除指定された値は、存在していないものとして扱われます。従って、xref:populateXRefRowNVP 関数を ADD モードで使用して、同じエレメントをロードできます。ただし、削除指定されているエレメント値を、xref:populateXRefRowNVP 関数の LINK モードで参照値として使用すると、エラーが発生します。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的 (クロスリファレンス) 値マップの定義の名前を文字列として指定します。 |
referenceDomain |
値を削除する Xref 内のドメインの名前を文字列として指定します。 |
referenceNVP |
削除対象の、参照ドメイン内のエレメントと値のペアを、DataElement の配列として指定します。 |
戻り値
削除が成功した場合は "真"。
例
この例では、Items クロスリファレンス マップから、EBS ドメインの指定された値を削除します。
Local array of EOTF_CORE:Common:DataElement &ebsNVP1 = CreateArrayRept(create EOTF_CORE:Common:DataElement(&EBS1), 1); &ebsNVP1 [1].value = &value1; Local boolean &return = &xref.MarkForDeleteNVP("Items", &EBS1, &ebsNVP1);
構文
PopulateData (mapName, domainName, tempRecName, recName, instance)
説明
XREF データ ロード関数を使用して、セット ベースの SQL を作成および実行し、指定されたソース レコード (テーブルまたはビュー) からクロスリファレンス データをロードできます。この関数により、XREF フレームワークの物理的なデータ永続性層の抽象化層が提供されます。この関数は、大量のデータの処理に使用します。
この関数では、次のステップが作成および実行されます。
指定されたプロセス インスタンスの一時テーブルから全てのデータが削除されます。
指定されたドメインの既存の XREF データが、インポート フラグが [N] に設定されている一時テーブルに抽出されます。
注: エレメント値は、(名前ではなく) マップ エレメントの順序に従って、レコードのフィールドにマップされます。
更新フラグが [Y] に設定されている場合、重複のないステージ データの行が、一時テーブルに既に存在していない場合は挿入されます。
注: 一致するフィールド名を基に、一時テーブルからステージングへと、フィールドがマッピングされます。
一時テーブルで GUID が空白の部分には、GUID が作成されます。
インポート フラグが [Y] に設定されている場合、XREF データが一時テーブルから挿入されます。
ステージ データが更新され、一時テーブルの GUID が設定されます。
一時テーブルには、次の設計上の制約があります。
1 列目は PROCESS_INSTANCE になります。
2 列目は UniqueGUID (EOTF_COMMONELEMENT) に使用されます。
3 列目の名前は EOTF_IMPORT_FLG である必要があります (この関数による内部使用に必要)。
残りの列は、指定されたドメインのエレメントに対応します。
一時テーブルの列名は、マップのエレメント名に一致している必要はありません。
一時テーブルの列名は、ステージ テーブルの対応しているフィールドと一致している必要があります。
一時テーブルでは、ProcessInstance、UniqueGUID がキーになり、重複 (空白) が許されます。
指定された各ドメインのエレメントのインデックスを作成すると、パフォーマンスが向上する可能性があります。
注: この関数はどのデータも検証しないため、ロードするデータが、値マップ定義で定義されている制約に違反していないことをユーザーが確認する必要があります。データ ルールに違反している場合、将来、マップの使用に影響が出る可能性があります。既存のデータ値よりも一時テーブルのフィールドを短く定義したことで、既存のデータ値が切り捨てられる可能性については、この関数は対処しません。このような切り捨てが起きた場合、エラーはスローされませんが、既存の値はステージ値と適切に対応付けされず、意図せず重複データが作成される可能性があります。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的 (クロスリファレンス) 値マップの名前を文字列として指定します。 |
domainName |
データのロード先の値マップ ドメインの名前を文字列として指定します。 |
tempRecName |
抽出した既存の XREF データを格納する一時テーブルの名前を、文字列として指定します。 |
recName |
データをロードするステージング レコードの名前を文字列として指定します。 |
instance |
プロセス インスタンスを適用する場合に使用する数値を整数で指定します。 |
戻り値
プロセスが成功したか失敗したかを示すブール値。
例
Local EOTF_CORE:Xref:Functions &xref = create EOTF_CORE:Xref:Functions(); Local string &mapName = "VendorIDs"; Local string &domainName = "PS"; Local string &tempRecName = Record.HR_VENDOR_TAO; Local string &recName = Record.HR_VENDOR_STG; Local boolean &success = &xref.PopulateData(&mapName, &domainName, &tempRecName, &recName, &instance);
構文
PopulateValue (mapName, referenceElementName, referenceValue, elementName, elementValue, mode)
説明
クロスリファレンス マップの参照エレメント値を検索し、同じデータ行の別のエレメントに等値をロードします。この形式のロードは、単一の参照エレメントを検索して、単一のエレメント値をロードする場合に使用されます。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的 (クロスリファレンス) 値マップの定義の名前を文字列として指定します。 |
referenceElementName |
値を検索する Xref 内のエレメントの名前を文字列として指定します。 |
referenceValue |
検索対象の Xref 内のエレメントの値を文字列として指定します。 |
elementName |
等値の提供先の Xref 内のエレメントの名前を文字列として指定します。 |
elementValue |
エレメントに提供する等値を文字列として指定します。 |
mode |
この関数がエレメントをロードするモードを示します。ADD、LINK、または UPDATE のいずれかの値を指定できます。モード パラメータの値は、大文字と小文字が区別され、大文字だけで指定される必要があります。 |
戻り値
データがロードされた Xref 行の UniqueGUID 値。
例
この例は、&TestName クロスリファレンス マップの UniqueGUID エレメントの値 &guid1 を検索し、&EBS1 エレメントの等値を &value1 に更新します。
&value1 = &value1 | "0"; &returnValue = &xref.PopulateValue(&TestName, &UniqueGUID, &guid1, &EBS1, &value1, &UPDATE);
この例は、UniqueGUID エレメントの値 &guid3 と EBS1 エレメントの値 &value3 を &TestName クロスリファレンス マップ データに追加します。
Local string &guid3 = UuidGen(); Local string &value3 = "00003"; &returnValue = &xref.PopulateValue(&TestName, &EBS1, &value3, &UniqueGUID, &guid3, &ADD);
この例は、EBS1 エレメントの値 &value4 を &TestName クロスリファレンス マップ データに追加し、コードによって自動的にランダムな UniqueGUID を作成します。
Local string &value4 = "00004"; &returnValue = &xref.PopulateValue(&TestName, &EBS1, &value4, &UniqueGUID, "", &ADD);
構文
PopulateValueNVP (mapName, referenceDomain, DataElement referenceNVP, targetDomain, targetNVP, mode)
説明
クロスリファレンス マップの参照ドメイン エレメント値を検索し、同じデータ行の別のドメインのエレメントに等値をロードします。この形式のロードは、参照ドメインまたはターゲット ドメインに複数のエレメントが存在する場合に使用します。参照ドメインの全ての必須エレメントは、NVP 参照リストに含める必要がありますが、オプションのエレメント (識別子など) は含める必要はありません。
パラメータ
パラメータ |
説明 |
---|---|
mapName |
動的 (クロスリファレンス) 値マップの定義の名前を文字列として指定します。 |
referenceDomain |
値を検索する Xref 内のドメインの名前を文字列として指定します。 |
referenceNVP |
検索対象の、参照ドメイン内のエレメントと値のペアを、DataElement の配列として指定します。 |
targetDomain |
等値のロード先のドメインの名前を文字列として指定します。 |
targetNVP |
Xref マップ内の、ロード対象のエレメント名とその等値 (NVP) を、DataElement の配列として指定します。 |
mode |
この関数がエレメントをロードするモードを示します。ADD、LINK、または UPDATE のいずれかの値を指定できます。モード パラメータの値は、大文字と小文字が区別され、大文字だけで指定される必要があります。 |
戻り値
データがロードされた Xref 行の UniqueGUID 値。
例
この例は、&TestName クロスリファレンス マップの UniqueGUID エレメントの値 &guid1 を検索し、&EBS1 エレメントの等値を &value1 に更新します。
&value1 = &value1 | "0"; &ebsNVP1 [1].value = &value1; &returnValue = &xref.PopulateValueNVP(&TestName, &UniqueGUID, &guidNVP1, &EBS, &ebsNVP1, &UPDATE);
この例は、UniqueGUID エレメントの値 &guid3 と EBS1 エレメントの値 &value3 を &TestName クロスリファレンス マップ データに追加します。
Local string &guid3 = UuidGen(); Local array of EOTF_CORE:Common:DataElement &guidNVP3 = CreateArrayRept(create EOTF_CORE:Common:DataElement(&UniqueGUID), 1); &guidNVP3 [1].value = &guid3; Local string &value3 = "00003"; Local array of EOTF_CORE:Common:DataElement &ebsNVP3 = CreateArrayRept(create EOTF_CORE:Common:DataElement(&EBS1), 1); &ebsNVP3 [1].value = &value3; &returnValue = &xref.PopulateValueNVP(&TestName, &EBS, &ebsNVP3, &UniqueGUID, &guidNVP3, &ADD);
この例は、 EBS1 エレメントの値 &value4 を &TestName クロスリファレンス マップ データに追加し、コードによって自動的にランダムな UniqueGUID を作成します。
Local array of EOTF_CORE:Common:DataElement &guidNVP4 = CreateArrayRept(create EOTF_CORE:Common:DataElement(&UniqueGUID), 1); Local string &value4 = "00004"; Local array of EOTF_CORE:Common:DataElement &ebsNVP4 = CreateArrayRept(create EOTF_CORE:Common:DataElement(&EBS1), 1); &ebsNVP4 [1].value = &value4; &returnValue = &xref.PopulateValueNVP(&TestName, &EBS, &ebsNVP4, &UniqueGUID, &guidNVP4, &ADD); &requestValues = CreateArrayRept(create EOTF_CORE:Common:DataElement(&EBS1), 1); &requestValues [1].value = &value4;