階層マッパー
h2hリソースを使用して、階層データを別の階層構造に変換する階層マッパーを作成または実行します。また、h2hリソースを使用して、階層マッパーに関するメタデータを取得することもできます。
h2hリソースは、URIで階層マッパーIDを使用します。階層マッパーIDを見つけるには、データ統合のユーザーインタフェースで階層マッパーを開きます。URLの最後の文字列が階層マッパーです。
例えば、URL https://dm-us.informaticacloud.com/diUI/products/integrationDesign/main/idsm/7sQJvjkeZLIfpWg6hpYwqJ/readである場合、階層マッパーIDは7sQJvjkeZLIfpWg6hpYwqJです。
階層マッパーの作成
階層マッパーを作成するには、POST要求を送信し、階層マッパーの詳細を指定します。
POST要求
次のURIを使用して、階層マッパーを作成します。
/h2h/api/v1/create/<hierarchical mapper ID>
次の表に、セクションのフィールドとその説明を示します。
フィールド | タイプ | 説明 |
|---|
name | 文字列 | 階層マッパーの名前。 |
description | 文字列 | 階層マッパーの説明。 |
projectName | 文字列 | 階層マッパーを保存するプロジェクト。 |
projectFolderPath | 文字列 | 階層マッパーを保存するプロジェクト内のフォルダ。 |
sourceXsd | 文字列 | ソースXSDファイル(EDI832__20190322_140316.xsdなど) |
sourceXsdDependencies | 配列 | ソースXSDファイルの依存関係のリスト。 |
targetXsd | 文字列 | ターゲットXSDファイル(X12_4010_810.xsdなど) |
targetXsdDependencies | 配列 | ターゲットXSDファイルの依存関係のリスト。 |
sourceRoot | 文字列 | ソース内のルート要素の名前。 |
targetRoot | 文字列 | ターゲット内のルート要素の名前。 |
variables | | 変数の詳細。変数オブジェクトには、名前、タイプ、リストインジケータ、および初期値が含まれます。 |
name | 文字列 | 変数名。 |
タイプ | 文字列 | 変数のデータ型 |
list | ブール | trueまたはfalse。 |
initialValue | 文字列 | 変数の初期値。 |
文 | 文字列 | 階層マッパー内のステートメントのカンマ区切りリスト。 |
encodedService | 文字列 | Base64でエンコードされたZIPファイル。これには、ソーススキーマとターゲットスキーマのソースXSDファイルとターゲットXSDファイル、およびそれらのXSDファイルの依存関係が含まれています。 |
POST応答
成功した場合、APIによって階層マッパーが作成されます。
POST要求の例
次の例に、階層マッパーを作成する場合の要求を示します。
POST <serverUrl>/h2h/api/v1/service/create
IDS-SESSION-ID: 689EaCniaW9b0YgwET5DwU
Content-Type: application/json
{
"name": "MigAsset2",
"description": "Migrated service",
"projectName": "Interfor_Mapping",
"projectFolderPath": "C:_Informatica_XMap_Interfor",
"sourceXsd": "EDI_810_0_2_0_2_0_0.xsd",
"sourceXsdDependencies": [],
"targetXsd": "X12_4010_810_schema_restricted_0_0_0_1_0_0_0_0_0_1.xsd",
"targetXsdDependencies": [
"X12_4010_810_schema_segments_restricted_0_1_0_2_0_1_0_1_0_2.xsd"
],
"sourceRoot": "DTedi810",
"targetRoot": "x12:interchanges",
"variables": [
{
"name": "IT_CTR",
"type": "xs:integer",
"list": false,
"initalValue": "0"
},
{
"name": "CTT_1",
"type": "xs:integer",
"list": false,
"initalValue": "0"
}
],
"statements": "[{\"output\":\"interchange/x12:TS_810\",\"mode\":\"Add\",\"input\":\".\",\"onFail\":\"propagate\",\"statementType\":\"Group\",\"name\":\"INPUT_LOOP\",\"skip\":true,\"statements\":[{\"output\":\"ST\",\"mode\":\"Add\",\"input\":\"InvoiceHeader\",\"onFail\":\"Skip\",\"statementType\":\"Group\",\"name\":\"ST\",\"skip\":true,\"statements\":[{\"output\":\"R01\",\"mode\":\"Add\",\"input\":\"'810'\",\"onFail\":\"propagate\",\"statementType\":\"Map\",\"name\":\"1\",\"skip\":false,\"statements\":[],\"statementNumber\":3},{\"output\":\"R02\",\"mode\":\"Add\",\"input\":\"invNum\",\"onFail\":\"propagate\",\"statementType\":\"Map\",\"name\":\"2- for now it's default value\",\"skip\":false,\"statements\":[],\"statementNumber\":4}],\"statementNumber\":2},{\"output\":\"BIG\",\"mode\":\"Add\",\"input\":\"InvoiceHeader\",\"onFail\":\"Skip\",\"statementType\":\"Group\",\"name\":\"BIG\",\"skip\":true,\"statements\":[{\"output\":\"R01\",\"mode\":\"Add\",\"input\":\"replace(invDate,'-','')\",\"onFail\":\"propagate\",\"statementType\":\"Map\",\"name\":\"1\",\"skip\":false,\"statements\":[],\"statementNumber\":6},{\"output\":\"R02\",\"mode\":\"Add\",\"input\":\"invNum\",\"onFail\":\"propagate\",\"statementType\":\"Map\",\"name\":\"2\",\"skip\":false,\"statementNumber\":7},[...]",
"encodedService": "UEsDBBQACAgIALiUSlkAAAAAAAAAAAAAAAAdAAAAb[...]"
}
簡潔にするため、ステートメントとエンコードされたサービス値は切り詰められています。
階層マッパーの実行
階層マッパーを実行するには、POST要求を作成し、階層マッパーが処理するXMLまたはJSONデータを指定します。データは、要求本文のバッファーとして、または階層マッパーに渡すファイルとして提供することができます。出力は、応答で返されるバッファにするか、ファイルに出力を書き込むことができます。
POST要求
次のURIを使用して、階層マッパーを実行します。
/h2h/api/v1/service/run/<hierarchical mapper ID>
次の表に、セクションのフィールドとその説明を示します。
フィールド | タイプ | 説明 |
|---|
agentGroupId | String | 階層マッパーを実行するためのランタイム環境。 ランタイム環境を指定しない場合、階層マッパーはクラウドサーバー上でネイティブに実行されます。 |
入力 | | 詳細を入力します。 |
type | 文字列 | 要求本文で送信する入力のタイプ。[バッファ]または[ファイル]を使用します。 |
値 | 文字列 | 階層マッパーに渡す値を入力します。入力がバッファである場合は、XMLまたはJSONデータを入力します。入力がファイルである場合は、ファイルへのパスを入力します。 |
出力 | | 出力の詳細。 |
type | 文字列 | 応答で受信する出力のタイプ。[バッファ]または[ファイル]を使用します。 |
値 | 文字列 | 応答で受信する出力。出力がバッファである場合は、空の文字列を使用します。出力がファイルである場合は、ファイルへのパスを入力します。 |
POST応答
成功した場合、階層マッパーはターゲット階層構造のデータを返します。
次の表に、応答内のフィールドとその説明を示します。
フィールド | タイプ | 説明 |
|---|
output | String | 出力値。出力は、バッファまたはファイルへのパスです。 |
message | 文字列 | 応答メッセージ(Success)。 |
バッファからファイルへのPOST要求の例
次の要求は、XMLデータをバッファとして変換し、変換されたデータを出力ファイルに格納する階層マッパーを実行します。
POST <server URL>/h2h/api/v1/service/run/<hierarchical mapper ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: jpaybAKQMsmdt7vLJ02z0
{
"agentGroupId": "016GOR25000000000005",
"input": {
"type": "buffer",
"value":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><HL7:MSH><MSH.1>1</MSH.1><MSH.2>^~\\&</MSH.2><MSH.3><HD.1>GHH_ADT</HD.1></MSH.3><MSH.7>20080115153000</MSH.7><MSH.9><MSG.1>ADT</MSG.1><MSG.2>A01</MSG.2><MSG.3>ADT_A01</MSG.3></MSH.9><MSH.10>0123456789</MSH.10><MSH.11><PT.1>P</PT.1></MSH.11><MSH.12><VID.1>2.6</VID.1></MSH.12><MSH.16>AL</MSH.16></HL7:MSH>"
},
"output": {
"type": "file",
"value": "/root/idsm"
}
}
成功すると、次の応答を受け取ります。
{
"output": "/root/idsm/hmapper_runtime_api_5040_output.xml",
"message": "Success"
}
バッファへのファイルのPOST要求の例
次の要求は、ファイル内のXMLデータを変換し、その出力を応答のバッファとして返す階層マッパーを実行します。
POST <server URL>/h2h/api/v1/service/run/<hierarchical mapper ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: jpaybAKQMsmdt7vLJ02z0
{
"agentGroupId": "016GOR25000000000005",
"input": {
"type": "file",
"value":"/root/idsm/2.6_parser_response.xml"
},
"output": {
"type": "buffer",
"value": " "
}
}
成功すると、次の応答を受け取ります。
{
"output": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<Departments>\r\n<Department name=\"\">\r\n<Employee>\r\n<Profile>\r\n<Id>0</Id>\r\n<FullName>1</FullName>\r\n<Skills>\r\n<FHIR4></FHIR4>\r\n<XYZ></XYZ>\r\n<hl7></hl7>\r\n<HIPAA></HIPAA>\r\n</Skills>\r\n</Profile>\r\n</Employee>\r\n</Department>\r\n</Departments>\r\n",
"message": "Success"
}
階層マッパーのメタデータの取得
階層マッパーに関するメタデータを取得するには、GET要求を使用して階層マッパーIDを指定します。
GET要求
次のURIを使用して、階層マッパーに関するメタデータを取得します。
/h2h/api/v1/idsm/metadata/<hierarchical mapper ID>
GET応答
成功すると、応答はメタデータを返します。
次の表に、応答内のフィールドとその説明を示します。
フィールド | タイプ | 説明 |
|---|
srcSchemaType | 文字列 | ソーススキーマタイプ |
tgtSchemaType | 文字列 | ターゲットスキーマタイプ |
srcSchemaContent | 文字列 | Base64でエンコードされたソーススキーマ |
tgtSchemaContent | 文字列 | Base64でエンコードされたターゲットスキーマ |
次の表に、階層マッパーの作成に使用されたアセットに基づいて応答が返すソーススキーマタイプとターゲットスキーマタイプを示します。
アセット | スキーマタイプ |
|---|
インテリジェント構造モデル | 任意 |
データサービスリポジトリ内のデータサービス | [ネイティブ形式での入力]が選択されているかどうかに応じてネイティブまたはXML |
XMLファイルからの階層スキーマ | XML |
JSONファイルからの階層スキーマ | JSON |
GETの例
次の要求により、階層マッパーに関するメタデータを取得します。
GET <server URL>/h2h/api/v1/idsm/metadata/<hierarchical mapper ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: jpaybAKQMsmdt7vLJ02z0
成功すると、次の応答が返されます。
{
"srcSchemaType": "XML",
"tgtSchemaType": "JSON",
"srcSchemaContent": "eJzNV+tP2zAQ/85fEWXqJ5RHk1CgoqCKthNSAY3HhvYFuYlLLSV2SNzXtD9+Zz...",
"tgtSchemaContent": "eJzNkL0OgjAUhXeegnRm0ZiYuBFlwBA0/q2kylVrUPByHYjh3aVVI2nAusnS3n..."
}
ソースとターゲットのスキーマ値は、簡潔にするために切り詰められています。