Question
UiPath Integration Serviceの Salesforce『レポートを取得』アクティビティで取得したデータは report 型で出力されますが、そのままでは『Excel に書き込み』アクティビティで使用できません。
Salesforce の出力データを Excel に書き込む方法を教えてください。
Answer
原因
Salesforce の『レポートを取得』アクティビティで取得できる report 型データは、Excel 書き込みアクティビティでは直接使用できません。
解決策
『データ テーブルを Excel に書き込み』アクティビティは DataTable 型のデータ対応しています。そのため、report 型データを一度 JSON 形式の文字列に変換し、JSON を逆シリアル化して取得したキー・データ構造をもとにDataTable を再構築する必要があります。
作成した DataTable 型データは Excel に書き込むことが可能 です。
以下は実装例となります。
環境:
Studio v2024.10.6
UiPath.WebAPI.Activitiesパッケージ v2.3.0
手順:
1.『レポートを取得』アクティビティでデータを取得します。
2.『JSON にシリアル化』アクティビティで report 型のデータを JSON 形式の文字列に変換します。
3.『JSON を逆シリアル化』アクティビティで JSON 文字列をキーと値でアクセスできる構造に変換します。
4.『代入』で空のDataTable 型変数を作成します。右辺値:new System.Data.DataTable()
5.逆シリアル化した JSON の reportMetadata.detailColumns から列名を取得し、DataTable の列を構築します。右辺値:CType(JSONデータ.SelectToken(“$.reportMetadata.detailColumns”), Newtonsoft.Json.Linq.JArray)
6.JSON の factMap からレコードを順に取得し、各フィールド値を DataTable に追加します。
7.『データ テーブルを Excel に書き込み』アクティビティで DataTable を Excel に書き込みます。
注意
report型データのreportMetadata および factMap 構造については Salesforce 社の仕様であり、レポート形式や構成が変更される可能性があります。実装時には Salesforce の公式ガイドをご参照ください。