Salesforceの情報を表計算アプリに転記する
Salesforceの情報を取得
ワークフローの設定例
下記手順にてワークフローを設定します。
整形したsalesforceの情報(CSVと同形式)データを呼び出します。
※ここでは、使用するExcelファイルがAUTOROのローカルストレージに保存されている状態を前提として解説しています。
なお、DropBoxやGoogleDriveに保存されているExcelファイルを扱いたい場合は、以下記事をご参照ください。
- GetFileアクションを設定します。
※AUTORO desktopの場合、この設定は不要です(後述) - AUTOROローカルストレージに保存されているExcelファイルを呼び出します。
※扱うファイルの拡張子が.xlsの場合は、こちらをご参考にご設定ください。
- SelectSheetアクションを設定します。
- 「エクセルファイル名」の欄には、先程取得したファイルのアウトプットを再利用してください。
※AUTORO desktopの場合、ローカルファイルパスを直接入力してください。 - 「ワークシート名」には、書き込むシートの名前を入力します。
※書き込むシート名が不明である場合の対処は、こちらをご覧ください。
※AUTORO desktopの場合
AUTORO desktopの場合は、GetFileアクションが不要となります。SelectSheetアクションの「エクセルファイル名」に、直接ファイルパスを書き込んでください。
整形したsalesforceの情報(CSVと同形式)データを呼び出します。
※ExcelOnlineとは、OneDriveやSharePoint上のxlsxブック対象アクションを指します。AUTOROのローカルストレージやGoogleDrive上のExcelファイルの操作は前項【Excelを使用する場合】をご覧ください。
- GetWorkbookアクションを設定します。
- 「プロバイダーID」にコネクション連携済みのIDを指定します。
- 任意のExcelOnlineファイルを呼び出します。
スプレッドシートに値を書き込むアクションはUpdateCells(セルの値を更新)/AppendValues(末尾に値を追加)の2つあります。今回はUpdateCellsを利用して書き込みを行います。
- UpdateCellsアクションを設定します。
- スプレッドシートパラメータにGetSpreadsheetのアウトプットが設定されているか確認します。
- 空欄になっている場合にはGetSpreadsheetのアウトプットを紐つけてください。
- 範囲パラメータには「シート1!A1」を設定します。
- ※シート名が「シート1」ではない場合は正しいシート名に書き換えてください。
- 値パラメータにはConvertJsonToArrayのアウトプットを設定します。
Excelワークシートに値を書き込むアクションはWriteRange/WriteCellの2つがあります。今回はCSVを扱うため、配列を書き込むアクションであるWriteRangeを利用して書き込みを行います。
- WriteRangeアクションを設定します。
- ワークシートパラメータにSelectSheetのアウトプットが設定されているか確認します。空欄になっている場合にはSelectSheetのアウトプットを紐つけてください。
- 2次元配列パラメータにはReadCSVのアウトプットを設定します。
- 書き込み位置のセルラベルパラメータには「A1」を設定します。
※書き込み開始位置が「A1」ではない場合は適宜書き換えてください。
書き込みが終了したらSaveFileアクションでシートを保存します。
「ファイル」のパラメータに紐つけるのは直前のWriteRangeのアウトプットではなく、GetFileのアウトプットであるためご注意ください。
※上書き保存はできません。
ここではAUTOROローカルストレージに保存していますが、他のオンラインストレージに保存したい場合は、ストレージプロバイダに他のオンラインストレージのコネクションをご登録ください。
取得したい情報がsalesforceのレポートにまとまっていれば、SalesforceGetReportアクションで取得したアウトプット(CSVと同形式)を書き込めばよいだけとなります。
これは2000行以内であれば整形不要で書き込めるため、(ConvertJsonToArray)が不要になります。
2001行以上の場合は、余計なヘッダー等が入るため「テーブルデータ変換」アクションなどで余計な行(3列名が空白、など)を削除してください
必要な情報が吐き出されるように整備したレポートがあると非常に便利です
# クエリを実行する +salesforce_query_1: action>: SalesforceQuery provider: '' query: "SELECT Id, Name\nFROM Account\nLIMIT 3" private: false meta: display: null # JSONを配列に変換 +convert_j_s_o_n_to_array_1: action>: ConvertJSONToArray json: +salesforce_query_1 header: ["Name","Id"] unwind: [] stringify: [] private: false # 既存のスプレッドシートを取得 +get_spreadsheet_1: action>: GetSpreadsheet provider: '' spreadsheet_id: '' private: false meta: display: # セルの値を更新 +update_cells_1: action>: UpdateCells spreadsheet: +get_spreadsheet_1 range: 'シート1!A1' values: +convert_j_s_o_n_to_array_1 private: false
# クエリを実行する +salesforce_query_1: action>: SalesforceQuery provider: '' query: "SELECT Id, Name\nFROM Account\nLIMIT 3" private: false meta: display: # JSONを配列に変換 +convert_j_s_o_n_to_array_1: action>: ConvertJSONToArray json: +salesforce_query_1 header: ["Name","Id"] unwind: [] stringify: [] private: false # ファイルを取得 +get_file_1: action>: GetFile provider: local filename: '' private: false meta: display: # ワークシートを選択 +select_sheet_1: action>: SelectSheet filename: +get_file_1 sheetname: 'シート1' private: false # 範囲に書き込む +write_range_1: action>: WriteRange worksheet: +select_sheet_1 table: +convert_j_s_o_n_to_array_1 celllabel: A1 private: false
# クエリを実行する +salesforce_query_1: action>: SalesforceQuery provider: '' query: "SELECT Id, Name\nFROM Account\nLIMIT 3" private: false meta: display: null # JSONを配列に変換 +convert_j_s_o_n_to_array_1: action>: ConvertJSONToArray json: +salesforce_query_1 header: ["Name","Id"] unwind: [] stringify: [] private: false # ワークブックを取得する +get_workbook_1: action>: GetWorkbook provider: '' workbook_id: '' private: false # セルの値を更新する +update_worksheet_cells_1: action>: UpdateWorksheetCells workbook: +get_workbook_1 range: 'Sheet1!A1' values: +convert_j_s_o_n_to_array_1 private: false
# レポートを取得する +salesforce_get_report_1: action>: SalesforceGetReport provider: '' reportId: '' outputData: report private: false meta: display: # 既存のスプレッドシートを取得 +get_spreadsheet_1: action>: GetSpreadsheet provider: '' spreadsheet_id: '' private: false meta: display: null # セルの値を更新 +update_cells_1: action>: UpdateCells spreadsheet: +get_spreadsheet_1 range: 'シート1!A1' values: +salesforce_get_report_1 private: false