このConnected Learning Pathでは、XMLファイルをCSVに変換する方法を説明するChainを作成します。また、データセットを比較して違いを分離する方法を探ります。
主な学習目標 | XMLコネクタ |
副次的学習目標 | 表形式変換スマートフィルタ、区切り文字の変更、高度なクエリコマンド |
前提条件 | XMLコネクタ接続の構成 |
テンプレート | CLP|XMLデータへのアクセス |
ステップ1:チェーンを作る
- 新しいチェーンを追加する
- チェーンの名前CLP|XML データへのアクセス
- チェーン変数を2つ作る:
- Chain Variablesの下にあるプラス記号を2回クリックする。
- XML変数
- CSV変数
- セーブ・ザ・チェーン
ステップ2:CSV形式でデータを取得する
HTTPコネクタを使用して、人数関連データをCSV形式で取得します。後のステップでは、同様の人数情報をXML形式で取得し、データセットを比較して差異を特定する。
- HTTP Connector からGET Command を Start ノードに追加します。
- コマンドを以下のように設定する:
名称 | GET - CSV形式の人員数 |
ユーザー名 | <空白のまま |
パスワード | <空白のまま |
CA証明書 | <空白のまま |
証明書 | <空白のまま |
証明書の秘密鍵 | <空白のまま |
応答を表示 | チェック済み |
URL | cv-CSV-Employee チェーン変数 |
クエリー文字列 | <空白のまま |
コンテンツタイプ | テキスト/csv |
応答 | <空白のまま |
- コマンドを保存する
ステップ3:XML形式でデータを取得する
HTTP コネクタを使用して、XML 形式の人数関連データを取得します。ステップ2で述べたように、この後のステップでは、XMLデータセットとCSVデータセットを比較し、相違点を特定する。
- HTTP コネクタ からGET コマンドをチェーンに追加する。
- スタートノード(GET - CSV形式のヘッドカウント)をGET コマンドに接続します。
- コマンドを以下のように設定する:
名称 GET - XML形式の人数 ユーザー名 <空白のまま パスワード <空白のまま CA証明書 <空白のまま 証明書 <空白のまま 証明書の秘密鍵 <空白のまま ショー・レスポンス チェック済み URL cv-XML-Employee チェーン変数 クエリー文字列 <空白のまま コンテンツタイプ application/xml 応答 <空白のまま - コマンドを保存する
ステップ4:XMLファイルを区切り文字に変換する
XML Connector を使用して、XML データを CSV フォーマットに変換し、区切りフォーマットのデータを必要とするチェインの後のコマンドを利用できるようにする。
- Element List to CSV コマンドをXML Connector からチェーンに追加。
- GET - Headcount in XML Format Command を Element List toCSV Command に接続する。
- Input File パラメーターで、GET - Headcount in XML Format Command からResponse Output を選択する。
- Input Text パラメータは空白のままにする。
- Path to root パラメータに、以下のエンベロープ情報を入力する:
/従業員データ/従業員
- プレビュー結果 パラメータをチェックする。
- Columns 」セクションで、「Add」ボタンを12回クリックする。
- 追加された各カラムについて、Column Name とXPath フィールドの両方に、前のステップでプレビューしたデータレコードのフィールド名を入力します。
- 例:emp_id
- ⚠️ XPathフィールドは大文字と小文字を区別し、エンベロープの大文字と小文字を一致させなければならない。
- Multi-value Delimiterパラメータにパイプ(|)を入力する。
- コマンドを保存する
- 追加された各カラムについて、Column Name とXPath フィールドの両方に、前のステップでプレビューしたデータレコードのフィールド名を入力します。
- チェーンを発行、実行、実行する。
- Element List to CSV - All Employees Command ノードのLog タブを確認し、従業員のリストが表示されていることを確認する。
⚠️ このステップの実行と結果の確認は省略しないでください。このコマンドのコピーがチェーンに作成され、その後、コマンドの複数のインスタンスにわたってエラーを修正する必要があるからです。
ステップ 5: 変換したXMLをタブ区切りからカンマ区切りに変更する
Tabular Transformation Connector を使用して、XML 変換で生成された出力をタブ区切り形式からカンマ区切り形式に変換する。
- Change Delimiter Command fromTabular Transformation Connector to the Chain を追加します。
- Element List to CSV - All Employees Command とChange Delimiter Command を接続します。
- コマンドを以下のように設定する:
名称 | 区切り文字の変更 - 全従業員 |
入力ファイル | 変換ファイル 要素リストからの CSV 出力 - 全社員 コマンド |
入力デリミター | \t |
出力デリミター | , |
- コマンドを保存する。
ステップ6:CSVとXMLデータセットを比較し、相違点を特定する
XML データセットとネイティブ CSV データセットの違いを体系的に識別するには、Advanced Query を使用します。この例では、XMLデータセットの中で、CSVデータセットと異なるレコードや欠落しているレコードを特定する。XMLデータセットにない追加のレコードがCSVデータセットにあったとしても、この演習では特定されない。
- Tabular Transformation Connector からAdvanced Query Command をチェーンに追加します。
- Change Delimiter - All Employees Command をAdvanced Query Command に接続します。
- コマンドに名前を付ける高度なクエリ - 全従業員
- Tables セクションで、Add ボタンをクリックし、2つ目のタブを追加する。
- 最初のテーブルについては、Change Delimiter - All Employees CommandからのCSV Result Outputを指定する。
- テーブル名 にXML を指定する。
- 2つ目のテーブルには、GET - Headcount in CSV Format CommandからのResponse Output を指定します。
- テーブル名 にCSV を指定する。
- Queryパラメータに以下を入力する:
- 最初のテーブルについては、Change Delimiter - All Employees CommandからのCSV Result Outputを指定する。
XMLから*を選択 EXCEPT CSVから*を選択
-
- Input Delimiter およびOutput Delimiter フィールドで、Comma を指定する。
- 結果のプレビュー オプションをチェックする。
- セーブコマンド
- チェーンを発行、実行、実行する。
- Advanced Query - All Employees Command node のLog タブを確認し、クエリによって返されたレコードの従業員 ID が以下のものと一致することを確認します。
社員ID
01-6875791
10-4199621
38-3932553
63-0417180
78-3600453
85-6818050
97-2828467
ステップ7:コマンドグループの追加
コマンドをよりよく整理するために、チェーンにコマンドグループを追加します。このステップを踏むことは、この練習では必須であるが、チェインの技術的要件ではない。このステップは、単にチェーンのノードを整理する機能を説明するためのものである。
- Command Group をChainに追加する。
- GET - Headcount in XML Format コマンドをコマンドグループの In セクションに接続する。
- コマンドグループをクリックし、スポイトアイコンを選択してコマンドの色を赤 に変更します。
- グループ名正社員
ステップ8:CSVデータを現役社員のみに絞り込む
スマートフィルタを使用して、従業員がアクティブである従業員レコードのみを保持します。フィルタを定義する際、terminated(termed)フィールドが空白であることは、従業員がアクティブであることを示すと仮定する。
- Tabular Transformation Connector からSmart Filter Rows Command をチェーンに追加します。
- コマンドグループからGroup Start をSmart Filter Command に接続する。
- コマンドを編集する:
- コマンドの名前を指定します:Smart Filter Rows - CSV Data - Active Employees.
- Input file パラメータで、GET - Headcount in CSV Format コマンドからのResponse Output を選択します。
- Output file パラメータは空白のままにする。
- カンマ をデリミタ として指定する。
- フィルター セクション、
- テキスト フィルタの追加 ボタンをクリックする。
- 列名 パラメーターに、用語 と入力する。
- Case Insensitive オプションをチェックする。
- Condition ドロップダウンから、Equals を選択する。
- Compare Text パラメーターに、true と入力する。
- Not オプションをチェックする。
- Trim チェックボックスをオフのままにします。このフィルターは、termed フィールドに、true の値が含まれていない(つまり、false または空白)レコードを特定する。
- プレビュー結果 オプションをチェックしたままにする。
- 逆オプションにより、スマートフィルターは、フィルター条件に一致するすべての行を保持(チェックあり)または削除(チェックなし)することができます。この演習では、termedフィールドの値がtrueまたは空白であるすべての行を保持したい。そのために、 Inverse オプションをチェックする。
- コマンドを保存する。
ステップ9:XMLデータを区切り文字に変換しながらフィルタリングする
このステップでは、XMLデータを区切り形式に変換しながらフィルタリングし、アクティブな従業員のみを特定する。このデータセットはその後、フィルタリングされたCSVデータセットと比較され、差異が特定される。
- Element List to CSV - All Employees Commandをコピーします。
- グループ開始 コマンドグループから要素リスト→CSV-全社員(コピー) コマンドに接続する。
- コマンドを編集する。
- コマンド名を指定します:Element List to CSV - Active Employees.
- Path to rootパラメータには、以下のように入力する。以下の書式は、termedフィールドの値がtrueでないことに基づいてフィルタリングする。
/employee_data/employee[termed!='true']」。
- コマンドを保存する。
ステップ10:フィルタリングされたXMLデータをカンマ区切りに変更する
全従業員名簿と同様に、XMLからタブ区切りに変換されたフィルタリングされた正社員名簿は、カンマ区切りに変換する必要があります。
- Change Delimiter - All Employees コマンドをコピーする。
- Element List to CSV - Active Employees Command をElement Change Delimiter - All Employees (Copy) Command に接続する。
- コマンドを編集する。
- コマンドに名前をつける:デリミターの変更 - 現役社員
- Input file パラメータを変更して、Converted File Output fromElement List to CSV - Active Employees Command を使用します。
- コマンドを保存する。
ステップ11:現役社員との違いをチェックする
全従業員名簿と同様に、XMLからタブ区切りに変換されたフィルタリングされた正社員名簿は、カンマ区切りに変換する必要があります。
- Advanced Query - All Employees Command をコピーします。
- コマンドグループのOut をAdvanced Query - All Employees (Copy) Command に接続する。Advanced Query - All EmployeesコマンドをGroup Outに接続することで、Group Outのコマンドにチェインが進む前にGroup Startに接続されているすべてのコマンドが終了するようになります。
- コマンドの編集
- コマンドに名前を付けます:Advanced Query - Active Employees.
- Tables セクションで、両方のテーブルのFile パラメータを変更する:
テーブル | ファイル |
XML | CSV 結果出力 デリミター変更 - 現役社員コマンドから |
シーエスブイ | スマートフィルタ行出力 スマートフィルタ行から出力 - アクティブのみ、CSVデータコマンド |
- コマンドを保存する。
ステップ12:エクササイズのテスト
チェーンが完成したら、結果をテストする。
- チェーンを公開する。
- Execute をクリックし、Run Chain を選択する。
- チェーンが完了したら、「Advanced Query - Active Employees」ノードをクリックします。
- Outputsタブで、4レコードが出力されたことを確認する。
- ログ]タブをクリックし、クエリによって返されたレコードの従業員IDが以下のものと一致することを確認します。
社員ID
01-6875791
63-0417180
78-3600453
85-6818050
チェーンを使ったデータ変換の詳細については、Connected Learning Paths - Transformation Introduction をご覧ください!