Integration ServiceのSalesforce『レポートを取得』アクティビティで取得したデータをExcelファイルに書き込む方法

:white_question_mark: Question

UiPath Integration Serviceの Salesforce『レポートを取得』アクティビティで取得したデータは report 型で出力されますが、そのままでは『Excel に書き込み』アクティビティで使用できません。
Salesforce の出力データを Excel に書き込む方法を教えてください。

:light_bulb: 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 の公式ガイドをご参照ください。

1 Like