Salesforce

透過 Salesforce 連接器,您可以對 Salesforce 資料執行插入、刪除、更新和讀取作業。

支援的版本

連接器需要 Web Services API。Salesforce Enterprise、Unlimited 和 Developer 版本原生支援 Web Services API。如要以額外費用在 Professional Edition 中啟用 Web Services API,請與 Salesforce 聯絡。連接器預設使用 Salesforce API 56.0 版。

事前準備

在 Google Cloud 專案中,執行下列工作:

  • 確認已設定網路連線。如要瞭解網路模式,請參閱「網路連線」。
  • 將 roles/connectors.admin IAM 角色授予設定連線器的使用者。
  • 將下列 IAM 角色授予要用於連接器的服務帳戶:
    • roles/secretmanager.viewer
    • roles/secretmanager.secretAccessor

    如果您沒有服務帳戶,請建立服務帳戶。連接器和服務帳戶必須屬於相同專案。

  • 啟用下列服務:
    • secretmanager.googleapis.com (Secret Manager API)
    • connectors.googleapis.com (Connectors API)

    如要瞭解如何啟用服務,請參閱「啟用服務」。如果專案先前未啟用這些服務或權限,系統會在設定連結器時提示您啟用。

設定連接器

連線專屬於資料來源。也就是說,如果有多個資料來源,您必須為每個資料來源建立個別的連結。如要建立連結,請按照下列步驟操作:

  1. 在 Cloud 控制台中,前往「Integration Connectors」>「Connections」頁面,然後選取或建立 Google Cloud 專案。

    前往「連線」頁面

  2. 按一下「+ 建立新連線」,開啟「建立連線」頁面。
  3. 在「地區」部分中,從「區域」清單選取地區,然後按一下「下一步」。

    如需所有支援區域的清單,請參閱「地點」一文。

  4. 在「連線詳細資料」部分,完成下列步驟:
    1. 從連接器清單中選取「Salesforce」Salesforce。
    2. 從「連接器版本」清單中選取連接器版本。
    3. 在「連線名稱」欄位中,輸入連線執行個體的名稱。連線名稱可包含小寫英文字母、數字或連字號,名稱開頭須為英文字母,結尾須為英文字母或數字,且長度不得超過 49 個半形字元。
    4. 視需要輸入連線執行個體的「Description」(說明)。
    5. 或者,可啟用 Cloud Logging,然後選取記錄層級。記錄層級預設為 Error。
    6. 在「服務帳戶」欄位中,選取具備必要角色的帳戶。
    7. (選用) 設定連線節點設定。
      • 節點數下限:輸入連線節點的數量下限。
      • 節點數上限:輸入連線節點數上限。

      節點是用來處理交易的連線單位 (或備用資源)。如要處理連線的更多交易,就需要更多節點;反之,如要處理較少的交易,則需要較少的節點。如要瞭解節點對連線器價格的影響,請參閱「 連線節點的定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。

    8. (選用) 如要為連線設定 Proxy 伺服器,請選取「Use proxy」(使用 Proxy) 並輸入 Proxy 詳細資料。
      • 「Proxy Auth Scheme」(Proxy 驗證方案):選取要用於 Proxy 伺服器的驗證類型。支援的驗證類型如下:
        • 基本:基本 HTTP 驗證。
        • 摘要:摘要 HTTP 驗證。
      • Proxy 使用者:用於向 Proxy 伺服器驗證的使用者名稱。
      • Proxy 密碼:使用者密碼的 Secret Manager 密碼。
      • Proxy SSL Type:連線至 Proxy 伺服器時要使用的 SSL 類型。支援的驗證類型如下:
        • 自動:預設設定。如果網址是 HTTPS 網址,則會使用「Tunnel」(通道) 選項。如果網址是 HTTP 網址,系統會使用「永不」選項。
        • 「Always」(一律):連線一律啟用 SSL。
        • 「永不」:連線未啟用 SSL。
        • 通道:連線是透過通道 Proxy 建立。Proxy 伺服器會開啟與遠端主機的連線,流量會透過 Proxy 來回傳輸。
      • 在「Proxy 伺服器」部分,輸入 Proxy 伺服器的詳細資料。
        1. 按一下「+ 新增目的地」。
        2. 選取「目的地類型」。
          • 主機位址:指定目的地的主機名稱或 IP 位址。

            如要與後端系統建立私人連線,請按照下列步驟操作:

    9. (選用) 按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
    10. 點選「下一步」。
  5. 在「目的地」部分,輸入要連線的遠端主機 (後端系統) 詳細資料,然後按一下「下一步」。
  6. 在「目的地類型」欄位中,選取所需類型。

    • 如要指定目的地主機名稱或 IP 位址,請選取「主機位址」,然後在「主機 1」欄位中輸入位址。
    • 如要建立私人連線,請選取「端點連結」。在「Endpoint Attachment」(端點連結) 清單中,選取為後端系統建立的端點連結。

    如要建立與後端系統的公開連線,並加強安全性,可以為連線設定靜態傳出 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址。

  7. 在「Authentication」(驗證) 部分,輸入驗證詳細資料。
    1. 選取「驗證類型」,然後輸入相關詳細資料。

      Salesforce 連線支援下列驗證類型:

      • OAuth 2.0 - 授權碼
      • OAuth 2.0 - JWT 持有者
      • OAuth 2.0 - 用戶端憑證
      • 使用者名稱和密碼
    2. 如要瞭解如何設定這些驗證類型,請參閱「設定驗證」。

    3. 點選「下一步」。
  8. 查看連線和驗證詳細資料,然後按一下「建立」。

設定驗證機制

根據要使用的驗證方式輸入詳細資料。

  • OAuth 2.0 - 授權碼
    • 用戶端 ID:用於要求存取權杖的用戶端 ID。
    • 範圍:以半形逗號分隔的所需範圍清單。
    • 用戶端密鑰:用於要求存取權杖的用戶端密鑰。
    • 密鑰版本:用戶端密鑰的版本。
    • 授權網址:建立用戶端時產生的授權網址。
  • OAUTH 2.0 - JWT 持有者
    • 連結的應用程式用戶端金鑰:Salesforce 為您建立的連結應用程式提供的用戶端金鑰。
    • 使用者名稱:與您建立的連結應用程式相關聯的使用者名稱。
    • 私密金鑰:Secret Manager 密鑰,內含私密金鑰檔案的內容。私密金鑰必須與提供給 Salesforce 的公開金鑰/憑證相符。
    • 密鑰版本:私密金鑰的版本。

    詳情請參閱「使用 JWT 建立 Salesforce 連線」。

  • OAuth 2.0 - 用戶端憑證
    • 用戶端 ID:您所建立應用程式的用戶端 ID。
    • 用戶端密鑰:Secret Manager 密鑰,內含您所建立已連結應用程式的用戶端密鑰。
    • 密鑰版本:用戶端密鑰的版本。
  • 使用者名稱和密碼
    • 使用者名稱:用於連線的 Salesforce 使用者名稱。
    • 密碼:Secret Manager 密鑰,內含與 Salesforce 使用者名稱相關聯的密碼。
    • 安全權杖:Secret Manager 密鑰,內含 Salesforce 提供給使用者的英數代碼 (區分大小寫)。
    • 密鑰版本:Secret Manager 密鑰的版本。

連線設定範例

本節列出您在建立連線時設定的各個欄位範例值。

使用者名稱和密碼連線類型

欄位名稱 詳細資料
位置 us-central1
連接器 Salesforce
連接器版本 1
連線名稱 google-cloud-salesforce-conn
啟用 Cloud Logging 是
記錄檔層級 錯誤
服務帳戶 SERVICEACCOUNT_NAME@developer.gserviceaccount.com
詳細程度 5
節點數量下限 2
節點數量上限 50
目的地類型 主機位址
主機 1 https://login.salesforce.com。
使用者名稱 使用者名稱
密碼 密碼
密鑰版本 1
安全性憑證 zrph####53HCM6D1ZdW####
密鑰版本 1

重新授權授權碼

如果您使用 Authorization code 驗證類型,且已在後端 Salesforce 應用程式中進行任何設定變更,請務必重新授權 Salesforce 連線。如要重新授權連結,請按照下列步驟操作:

  1. 在「連線」頁面中,按一下所需連線。

    系統隨即會開啟連線詳細資料頁面。

  2. 按一下「編輯」即可編輯連結詳細資料。
  3. 在「Authentication」部分,驗證「OAuth 2.0 - 授權碼」詳細資料。

    視需要進行必要變更。

  4. 按一下 [儲存]。系統會將您導向連線詳細資料頁面。
  5. 在「驗證」部分中,按一下「編輯授權」。系統會顯示「Authorize」(授權) 窗格。
  6. 按一下「Authorize」。

    授權成功後,「連線」頁面中的連線狀態會設為「有效」。

安裝 OAuth 2.0 連結的應用程式

為提升安全性,Salesforce 現在要求安裝所有使用 OAuth 2.0 驗證的連結應用程式。 這項規定適用於新連線和現有連線。這項異動表示,除非在 Salesforce 中安裝連結的應用程式,否則現有連線可能會停止運作。 前往 Salesforce 帳戶中的「Connected Apps OAuth Usage」頁面,然後安裝應用程式。 詳情請參閱連結的應用程式使用限制異動相關說明。

在整合中運用 Salesforce 連線

建立連線後,Apigee Integration 和 Application Integration 都會提供該連線。您可以在整合中透過「連接器」工作使用連線。

  • 如要瞭解如何在 Apigee Integration 中建立及使用連接器工作,請參閱「連接器工作」。
  • 如要瞭解如何在 Application Integration 中建立及使用連接器工作,請參閱「連接器工作」。

動作

這個連接器可讓您對 Salesforce 資料執行插入、刪除、更新和讀取作業。如要執行自訂 SQL 查詢,連接器提供「執行自訂查詢」動作。

如要建立自訂查詢,請按照下列步驟操作:

  1. 按照詳細操作說明 新增連接器工作。
  2. 設定連接器工作時,請在要執行的動作類型中選取「動作」。
  3. 在「動作」清單中,選取「執行自訂查詢」,然後按一下「完成」。

    圖片:顯示 execute-custom-query-action 圖片:顯示 execute-custom-query-action

  4. 展開「工作輸入」部分,然後執行下列操作:
    1. 在「Timeout after」(逾時時間) 欄位中,輸入查詢執行前的等待秒數。

      預設值:180 秒。

    2. 在「Maximum number of rows」(資料列數量上限) 欄位中,輸入要從資料庫傳回的資料列數量上限。

      預設值為 25。

    3. 如要更新自訂查詢,請按一下「編輯自訂指令碼」。系統會開啟「指令碼編輯器」對話方塊。

      圖片:顯示自訂 SQL 查詢 圖片:顯示自訂 SQL 查詢

    4. 在「Script editor」(指令碼編輯器) 對話方塊中輸入 SQL 查詢,然後按一下「Save」(儲存)。

      您可以在 SQL 陳述式中使用問號 (?) 代表單一參數,該參數必須在查詢參數清單中指定。舉例來說,下列 SQL 查詢會從 Employees 資料表選取與 LastName 資料欄指定值相符的所有資料列:

      SELECT * FROM Employees where LastName=?

    5. 如果您在 SQL 查詢中使用問號,請為每個問號點選「+ 新增參數名稱」,加入參數。執行整合時,這些參數會依序取代 SQL 查詢中的問號 (?)。舉例來說,如果您新增了三個問號 (?),就必須依序新增三個參數。

      圖片:顯示新增查詢參數 圖片:顯示新增查詢參數

      如要新增查詢參數,請按照下列步驟操作:

      1. 在「類型」清單中,選取參數的資料類型。
      2. 在「值」欄位中輸入參數值。
      3. 如要新增多個參數,請按一下「+ 新增查詢參數」。
    6. 「執行自訂查詢」動作不支援陣列變數。

Salesforce 連接器不支援 OFFSET 子句的參數化值,且無法使用查詢參數動態取代。不過,WHERE 子句支援查詢參數。

本節列出 Salesforce 連接器支援的動作。如要瞭解如何設定動作,請參閱「動作範例」。

CreateJobv2 動作

使用這項動作建立工作。

CreateJobV2 動作的輸入參數

參數名稱 資料類型 必填 說明
ObjectName 字串 是 用於作業的物件名稱,例如帳戶、廣告活動、事件等。
查詢 字串 否 要執行的查詢。
動作 字串 是 要在工作中使用的動作類型。有效值為「insert」、「delete」、「update」、「upsert」或「query」。
ExternalIdColumn 字串 否 要更新物件中的外部 ID 欄位。這是 upsert 作業的必要條件。欄位值也必須存在於 CSV 工作資料中。
ColumnDelimiter 字串 否 CSV 工作資料使用的資料欄分隔符號。預設值為 COMMA。有效值為「BACKQUOTE」、「CARET」、「COMMA」、「PIPE」、「SEMICOLON」和「TAB」。
LineEnding 字串 否 用於 CSV 工作資料的行尾,標示資料列的結尾。預設值為 LF。有效值為「LF」和「CRLF」。
MultiPartRequest 布林值 否 只有在 CSV 檔案中的資料不超過 20,000 個字元時,才能啟用這項功能。您也必須指定 CSV 檔案的路徑。
CSVFilePath 字串 否 指定 CSV 檔案的路徑。

如要瞭解如何設定 CreateJobV2 動作,請參閱「範例」。

UploadJobDataV2 動作

使用這項動作,將 CSV 格式的作業檔案上傳至 Salesforce。

UploadJobDataV2 動作的輸入參數

參數名稱 資料類型 必填 說明
ContentUrl 字串 否 這個工作的「上傳工作資料」要求所使用的網址。只有在工作處於「開啟」狀態時才有效。
CSVFilePath 字串 否 指定 CSV 檔案的路徑。
內容 字串 是 CSV 檔案內容 (InputStream)。只有在 CSVFilePath 為空白時才需要提供。

如要瞭解如何設定 UploadJobDataV2 動作,請參閱範例。

CreateBatch 動作

這項動作會建立 Salesforce 批次。

CreateBatch 動作的輸入參數

參數名稱 資料類型 必填 說明
JobId 字串 是 批次作業要新增至的工作 ID。
匯總 字串 是 要新增的物件匯總。指定執行批次查詢時要使用的查詢。
ContentType 字串 是 工作內容類型。有效值包括:CSV、XML、ZIP_CSV 和 ZIP_XML。如果您執行批次查詢,請將值設為 CSV。預設值為 XML。

CreateBatch 動作的輸出參數

如要瞭解如何設定 CreateBatch 動作,請參閱「範例」。

CreateJob 動作

這項動作會新增 Salesforce 物件項目。

CreateJob 動作的輸入參數

參數名稱 資料類型 必填 說明
ObjectName 字串 是 工作要使用的物件名稱
動作 字串 是 要在工作中使用的動作類型。

CreateJob 動作的輸出參數

如要瞭解如何設定 CreateJob 動作,請參閱「範例」。

GetBatch 動作

這項動作會取得 Salesforce 批次相關資訊。

GetBatch 動作的輸入參數

參數名稱 資料類型 必填 說明
JobId 字串 是 與批次相關聯的工作 ID。
BatchId 字串 是 要擷取的批次 ID。

GetBatch 動作的輸出參數

如要瞭解如何設定 GetBatch 動作,請參閱「範例」。

GetJob 動作

這項動作會取得 Salesforce 工作資訊。

GetJob 動作的輸入參數

參數名稱 資料類型 必填 說明
JobId 字串 是 要擷取的工作 ID。

GetJob 動作的輸出參數

如要瞭解如何設定 GetJob 動作,請參閱「範例」。

UploadAttachment 動作

這項動作會上傳附件,並將其與 Salesforce 中的實體建立關聯。

UploadAttachment 動作的輸入參數

參數名稱 資料類型 必填 說明
ObjectId 字串 是 要與上傳文件建立關聯的物件 ID。
FileName 字串 是 附件的名稱。
Base64Data 字串 是 要用做檔案內容的資料字串。

如要將 Salesforce 檔案上傳至 Google Cloud Storage,請使用二進位串流。

如要瞭解如何設定 UploadAttachment 動作,請參閱範例。

GetBatchResults 動作

這項動作會取得 Salesforce 批次作業的結果。

GetBatchResults 動作的輸入參數

參數名稱 資料類型 必填 說明
JobId 字串 是 與批次相關聯的工作 ID。
BatchId 字串 是 要擷取的批次 ID。
ContentType 字串 是 工作內容類型。

GetBatchResults 動作的輸出參數

如要瞭解如何設定 GetBatchResults 動作,請參閱範例。

DownloadContentDocument 動作

這項動作會從 Salesforce 下載文件。

DownloadContentDocument 動作的輸入參數

參數名稱 資料類型 必填 說明
ID 字串 是 要下載的文件 ID。
標題 字串 否 要下載的文件標題。
LocalPath 字串 是 下載檔案的本機儲存路徑。如未提供,系統會將檔案內容傳回記憶體。
編碼 字串 否 下載檔案的編碼。有效值為 NONE 和 BASE64。預設值為 BASE64。
FileStream 字串 否 未提供 LocalPath 時使用的輸出串流。可支援記憶體內或串流用途。

DownloadContentDocument 動作的輸出參數

參數名稱 資料類型 說明
FileId 字串 下載檔案的 ID。
成功 字串 這項參數會指出下載是否成功。
FileName 字串 下載檔案的名稱。
FullPath 字串 下載檔案的完整路徑。
FileData 字串 下載檔案的檔案資料。
FailureMessage 字串 下載失敗的檔案所顯示的失敗訊息。

Salesforce 連接器不會強制執行檔案下載大小上限。如果是 JSON 或 Base64 酬載,請將檔案大小限制在 40 MB 以下,以免酬載擴充、記憶體用盡或逾時。

如要瞭解如何設定 DownloadContentDocument 動作,請參閱範例。

動作範例

範例 - CreateJobV2

這個範例會建立 Job。

  1. 在 Configure connector task 對話方塊中,按一下 Actions。
  2. 選取「CreateJobV2」動作,然後按一下「完成」。
  3. 在 「Connectors」(連結器) 任務的 「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
     {
      "ObjectName": "Contact",
      "Action": "insert"
     }
  4. 如果動作成功,CREATEJOBV2 工作的 connectorOutputPayload 回應參數會包含類似下列內容的值:

     
      [{
      "ID": "750dM000005HjdnQAC",
      "State": "Open",
      "JobType": null,
      "ContentUrl": "services/data/v43.0/jobs/ingest/750dM000005HjdnQAC/batches",
      "ContentType": "CSV",
      "CreatedDate": "2024-08-07T09:16:16.000+0000",
      "CreatedById": "005dM0000061WSFQA2",
      "ConcurrencyMode": "Parallel",
      "SystemModStamp": "2024-08-07T09:16:16.000+0000"
      }] 

範例 - UploadJobDataV2

這個範例會將工作檔案上傳至 Salesforce。

  1. 在 Configure connector task 對話方塊中,按一下 Actions。
  2. 選取「UploadJobDataV2」動作,然後按一下「完成」。
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
     {
      "Content":   "FirstName,LastName,Email,MobilePhone,External_Id__c\\nGinelle,Merioth,gmerioth0@example.com,851-555-8435,4d13cac0-2c11-48e9-891d-49ee9508a6c7\\nDalli,Tumilson,dtumilson1@example.com,881-555-6742,38bcb24b-247f-498b-9502-c98995a1e04b\\nRobbin,Purveys,rpurveys2@example.com,732-555-6909,35d96c7a-3856-4809-8c49-35ddb9fa7dd9\\nLothaire,Ivanchenkov,livanchenkov3@example.com,144-555-1959,75f63f26-6f4a-406f-a9f4-807f4a8a7b51",
      "ContentUrl": "services/data/v43.0/jobs/ingest/750dM000005HjdnQAC/batches"
     }
  4. 如果動作成功,UploadJobDataV2 工作的 connectorOutputPayload 回應參數會包含類似下列內容的值:

     
      [{
      "Uploaded": "true"
      }]

範例 - CreateBatch

  1. 在 Configure connector task 對話方塊中,按一下 Actions。
  2. 選取「CreateBatch」動作,然後按一下「完成」。
  3. 在「資料對應」區段中 Open Data Mapping Editor,然後在「Input」欄位中輸入類似下列的值:
    {
    "JobId": "750dL000007EipxQAC",
    "Aggregate": "\n    Walter\n    White\n  \n  \n    Rob\n    Brown\n  \n",
    "ContentType": "XML"
    }
  4. 如果動作成功,CreateBatch 工作的 connectorOutputPayload 回應參數會包含類似下列內容的值:

     
    [{
      "ID": "751dL000003ziC5QAI",
      "JobID": "750dL000007EipxQAC",
      "ApexProcessingTime": "0",
      "ApiActiveProcessingTime": "0",
      "CreatedDate": "2024-09-03T04:48:53.000Z",
      "NumberRecordsFailed": "0",
      "NumberRecordsProcessed": "0",
      "State": "Queued",
      "StateMessage": null,
      "SystemModstamp": "2024-09-03T04:48:53.000Z",
      "TotalProcessingTime": "0"
    }]

範例 - CreateJob

  1. 在 Configure connector task 對話方塊中,按一下 Actions。
  2. 選取「CreateJob」動作,然後按一下「完成」。
  3. 在「資料對應」區段中 Open Data Mapping Editor,然後在「Input」欄位中輸入類似下列的值:
    {
      "ObjectName": "Campaign",
      "Action": "insert"
    }
  4. 如果動作成功,CreateJob 工作的 connectorOutputPayload 回應參數會包含類似下列內容的值:

     
     [{
      "ID": "750dL000007GgD7QAK",
      "JobID": "750dL000007GgD7QAK",
      "ObjectName": "Campaign",
      "Operation": "insert",
      "ApiVersion": "56.0",
      "ApexProcessingTime": "0",
      "ApiActiveProcessingTime": "0",
      "AssignmentRuleId": null,
      "ConcurrencyMode": "Parallel",
      "ContentType": "XML",
      "CreatedById": "005dL000007CalFQAS",
      "CreatedDate": "2024-09-03T05:31:41.000Z",
      "ExternalIdFieldName": null,
      "NumberBatchesCompleted": "0",
      "NumberBatchesQueued": "0",
      "NumberBatchesFailed": "0",
      "NumberBatchesInProgress": "0",
      "NumberBatchesTotal": "0",
      "NumberRecordsFailed": "0",
      "NumberRecordsProcessed": "0",
      "NumberRetries": "0",
      "State": "Open",
      "SystemModStamp": "2024-09-03T05:31:41.000Z",
      "TotalProcessingTime": "0"
    }]

範例 - GetBatch

  1. 在 Configure connector task 對話方塊中,按一下 Actions。
  2. 選取「GetBatch」動作,然後按一下「完成」。
  3. 在「資料對應」區段中 Open Data Mapping Editor,然後在「Input」欄位中輸入類似下列的值:
    {
      "BatchId": "751dL000003yKlJQAU",
      "JobId": "750dL000007EipxQAC"
    }
  4. 如果動作成功,GetBatch 工作的 connectorOutputPayload 回應參數會包含類似下列內容的值:

     
    [{
      "ID": "751dL000003yKlJQAU",
      "JobID": "750dL000007EipxQAC",
      "ApexProcessingTime": "0",
      "ApiActiveProcessingTime": "0",
      "CreatedDate": "2024-09-02T11:44:15.000Z",
      "NumberRecordsFailed": "0",
      "NumberRecordsProcessed": "0",
      "State": "Failed",
      "StateMessage": "InvalidBatch : Failed to parse XML. Unexpected XML element 'sObject' found at  START_TAG seen ... @1:9 it should be 'sObjects'",
      "SystemModstamp": "2024-09-02T11:44:15.000Z",
      "TotalProcessingTime": "0"
    }]

範例 - GetJob

  1. 在 Configure connector task 對話方塊中,按一下 Actions。
  2. 選取「GetJob 」動作,然後按一下「完成」。
  3. 在「資料對應」區段中 Open Data Mapping Editor,然後在「Input」欄位中輸入類似下列的值:
    {
      "JobId": "750dL000007EipxQAC"
    } 
  4. 如果動作成功,GetJob 工作的 connectorOutputPayload 回應參數會包含類似下列內容的值:

     
    [{
      "ID": "750dL000007EipxQAC",
      "JobID": "750dL000007EipxQAC",
      "ObjectName": "Campaign",
      "Operation": "insert",
      "ApiVersion": "56.0",
      "ApexProcessingTime": "0",
      "ApiActiveProcessingTime": "0",
      "AssignmentRuleId": null,
      "ConcurrencyMode": "Parallel",
      "ContentType": "XML",
      "CreatedById": "005dL000007CalFQAS",
      "CreatedDate": "2024-09-02T11:17:42.000Z",
      "ExternalIdFieldName": null,
      "NumberBatchesCompleted": "0",
      "NumberBatchesQueued": "0",
      "NumberBatchesFailed": "2",
      "NumberBatchesInProgress": "0",
      "NumberBatchesTotal": "2",
      "NumberRecordsFailed": "0",
      "NumberRecordsProcessed": "0",
      "NumberRetries": "0",
      "State": "Open",
      "SystemModStamp": "2024-09-02T11:17:42.000Z",
      "TotalProcessingTime": "0"
    }]

範例 - UploadAttachment

  1. 在 Configure connector task 對話方塊中,按一下 Actions。
  2. 選取「UploadAttachment」動作,然後按一下「完成」。
  3. 在「資料對應」區段中 Open Data Mapping Editor,然後在「Input」欄位中輸入類似下列的值:
    {
      "ObjectId": "001dL00000SC6j7QAD",
      "FileName": "My files/salesforce/con.csv",
      "Base64Data": "Y29ubmVjdG9ycyBpcyBiYWNr"
    }
  4. 如果動作成功,UploadAttachment 工作的 connectorOutputPayload 回應參數會包含類似下列內容的值:

     
    [{
      "Id": "00PdL000000EJUDUA4"
    }]

範例 - GetBatchResults

  1. 在 Configure connector task 對話方塊中,按一下 Actions。
  2. 選取「GetBatchResults」動作,然後按一下「完成」。
  3. 在「資料對應」區段中 Open Data Mapping Editor,然後在「Input」欄位中輸入類似下列的值:
    {
      "BatchId": "751dL000004D17FQAS",
      "JobId": "750dL000007XKUhQAO",
      "ContentType": "XML"
    }
  4. 如果動作成功,GetBatchResults 工作的 connectorOutputPayload 回應參數會包含類似下列內容的值:

     
    [{
      "ID": null,
      "Created": "false",
      "Success": "false",
      "Errors_Fields": "LastName",
      "Errors_Message": "Account: bad field names on insert/update call: FirstName, LastName",
      "Errors_StatusCode": "INVALID_FIELD_FOR_INSERT_UPDATE"
    }, {
      "ID": null,
      "Created": "false",
      "Success": "false",
      "Errors_Fields": "LastName",
      "Errors_Message": "Account: bad field names on insert/update call: FirstName, LastName",
      "Errors_StatusCode": "INVALID_FIELD_FOR_INSERT_UPDATE"
    }]

範例 - DownloadContentDocument

這個範例會使用文件 ID 從 Salesforce 下載文件。

  1. 在 Configure connector task 對話方塊中,按一下 Actions。
  2. 選取「DownloadContentDocument」動作,然後按一下「完成」。
  3. 在「資料對應」區段中 Open Data Mapping Editor,然後在「Input」欄位中輸入類似下列的值:
    {
      "Id": "069dM00000ABC123QAC",
      "LocalPath": "/tmp/salesforce_docs"
    }
  4. 如果動作成功,DownloadContentDocument 工作的 connectorOutputPayload 回應參數會包含類似下列內容的值:

     
    [{
      "FileId": "069dM00000ABC123QAC",
      "Success": "true",
      "FileName": "Contract.pdf",
      "FullPath": "/tmp/salesforce_docs/Contract.pdf"
    }]

範例 - DownloadContentDocument (記憶體內)

這個範例會從 Salesforce 下載文件,並儲存在記憶體中。

  1. 在 Configure connector task 對話方塊中,按一下 Actions。
  2. 選取「DownloadContentDocument」動作,然後按一下「完成」。
  3. 在「資料對應」區段中 Open Data Mapping Editor,然後在「Input」欄位中輸入類似下列的值:
      {"Title": "Invoice_Q4_2024" }
  4. 如果動作成功,DownloadContentDocument 工作的 connectorOutputPayload 回應參數會包含類似下列內容的值:

    [{"FileId": "069dM00000XYZ789QAC",
      "Success": "true",
      "FileName": "Invoice_Q4_2024.pdf",
      "FileData": "JVBERi0xLjQKJ..."
    }]

實體作業範例

本節說明如何在這個連接器中執行部分實體作業。

範例 - 建立附件

    實體建立附件只會建立附件,不會在其中加入內容檔案。如要新增檔案,我們需要在輸入內容中提供檔案內容,然後執行「上傳附件」動作。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取「附件」。
  3. 選取 Create 作業,然後按一下「完成」。
  4. 在「工作」的「資料對應器」部分,按一下 OpenDataMapping 編輯器,然後在 field: 中輸入類似下列的值:
    {
      "Name": "New Attachment",
      "Description": "New created attachment",
      "ParentId": "001dL00000SC6j7QAD",
      "Body": "Body"
    }
    
  5. 執行這個範例後,Connector 工作的 connectorOutputPayload 輸出變數會傳回類似下列內容的回應:

    {
      "Id": "00PdL000000EJKXUA4"
    }
    

範例 - 更新附件

    實體更新附件只會更新附件名稱或說明。如要新增檔案,我們需要在輸入內容中提供檔案內容,然後執行「上傳附件」動作。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取「附件」。
  3. 選取 Update 作業,然後按一下「完成」。
  4. 將實體 ID 設為「Update an Attachment」(更新附件)。如要設定實體 ID,請在「Tasks」(工作) 的「Data mapper」(資料對應工具) 部分中,按一下「EntityID」(實體 ID),然後在指定欄位中輸入 00PdL000000EJKXUA4。
  5. 在「工作」的「資料對應器」部分,按一下 OpenDataMapping 編輯器,然後在 field: 中輸入類似下列的值:
    {
      "Name": "New Attachment",
      "Description": "New updated attachment",
      "Body": "Body"
    }
    
  6. 或者,您也可以將 filterClause 設為 00PdL000000EJKXUA4,而非指定 entityId。

  7. 執行這個範例後,Connector 工作的 connectorOutputPayload 輸出變數會傳回類似下列內容的回應:

    {
      "Id": "00PdL000000EJKXUA4"
    } 
    

系統限制

每個節點的 Salesforce 連接器每秒最多可處理 28 筆交易,超過此限制的交易都會遭到節流。根據預設,Integration Connectors 會為連線分配 2 個節點 (提高可用性)。

Salesforce 連接器不支援 Upsert 實體作業。

如要瞭解 Integration Connectors 適用的限制,請參閱「限制」一文。

使用 Terraform 建立連線

您可以使用 Terraform 資源建立新連線。

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

如要查看用於建立連線的 Terraform 範本範例,請參閱範本範例。

使用 Terraform 建立這項連線時,您必須在 Terraform 設定檔中設定下列變數:

參數名稱 資料類型 必填 說明
proxy_enabled BOOLEAN 否 選取這個核取方塊,即可為連線設定 Proxy 伺服器。
proxy_auth_scheme ENUM 否 用來向 ProxyServer 代理伺服器驗證的驗證類型。支援的值包括:BASIC、DIGEST、NONE
proxy_user STRING 否 用於向 ProxyServer 代理程式驗證的使用者名稱。
proxy_password SECRET 否 用於向 ProxyServer Proxy 驗證身分的密碼。
proxy_ssltype ENUM 否 連線至 ProxyServer Proxy 時要使用的 SSL 類型,支援的值包括:AUTO、ALWAYS、NEVER、TUNNEL

向 Google Cloud 社群尋求協助

如要發布問題及討論這個連接器,請前往 Cloud 論壇的 Google Cloud 社群。

後續步驟