

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 機會共享
<a name="custom-opportunity-sharing"></a>

## 如何 AWS 分享機會
<a name="how-aws-shares-opportunities"></a>

1. **增量匯出**：Amazon Web Services (AWS) 每小時匯出由 參考的新機會 AWS（和更新）。

1. **檔案建立**： AWS 產生符合特定格式的機會檔案。如需詳細的檔案規格，請參閱[機會欄位定義](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Fields.csv)。

1. **檔案上傳**：機會檔案會上傳到 `opportunity-outbound` 資料夾。

## 從 取用機會 AWS
<a name="consuming-opportunities-from-aws"></a>

若要有效利用來自 的機會 AWS，您需要建立與這些功能的自訂整合。

1. **檔案擷取**：
   + 使用排程任務，以您選擇的間隔定期掃描`opportunity-outbound`資料夾。
   + 擷取要處理的機會檔案。

1. **資料轉換和映射**：
   + 讀取每個檔案的內容之後，請將資料轉換並映射至客戶關係管理 (CRM) 系統中的機會記錄。
   + 如需欄位映射的指引，請參閱 [欄位映射](custom-field-mapping.md)。

1.  **機會識別**：
   + 使用 `partnerCrmOpportunityId`或 唯一識別每個機會`apnCrmUniqueIdentifier`。
   + 如果 `partnerCrmOpportunityId` 為空白且`apnCrmUniqueIdentifier`存在，則機會是來自 AWS Partner Network (APN) Customer Engagement (ACE) 的新推薦。
   + 如果兩個識別符都存在，則會將記錄視為來自 ACE 的更新。

1. **機會擷取**：擷取新機會或更新 CRM 系統中的現有機會。

1. **檔案管理**：
   + 成功處理每個機會和完整的檔案資料後，請從傳出資料夾刪除檔案。
   + 每個檔案都會自動封存在 `opportunity-outbound-archive` 資料夾中。

**整合和程式碼參考**：
+  若要讀取上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體的檔案，您可以使用 AWS Lambda 或直接從 CRM 系統讀取。
+ 使用下列 Lambda 和 Salesforce REST API 的範例代碼來驗證和更新 CRM 記錄。
  + **用於驗證檔案的 Lambda**：[ace\$1read\$1s3.py](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/ace_read_s3.py)。
  + **Salesforce REST API**：[Apex\$1Sample\$1REST\$1API\$1Code.cls](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Apex_Sample_REST_API_Code.cls)。
+ 如果您使用 Salesforce 以外的 CRM 系統，則必須提供專屬於您系統的程式碼來更新資料。

## 與 共用機會的更新 AWS
<a name="sharing-updates-to-opportunities-with-aws"></a>

1. **識別機會**：找到要與 共用更新的機會 AWS。

1. **資料轉換**：將資料轉換為 AWS 格式，如 中所述[欄位定義](resources.md#custom-field-definitions)。

1.  **檔案建立**：
   + 產生 JSON 格式的機會檔案。
   + 將時間戳記附加到每個檔案，確保所有檔案名稱都是唯一的，並遵循格式：`{name}_MMDDYYYY24HHMMSS.json`。

1.  **驗證和上傳**：
   + 驗證為 ACE Amazon S3 儲存貯體。
   + 將檔案上傳至 `opportunity-inbound` 資料夾。與 共用的所有檔案 AWS 都會自動封存在 `opportunity-inbound-archive` 資料夾中。
   + 當您將檔案上傳至 S3 時，請確定您提供儲存貯體擁有者的完整存取權：

     ```
     aws s3 cp example.jpg s3://awsexamplebucket --acl bucket-owner-full-control
     ```

      請參閱在[機會結果成功 Sample.json 中執行此命令的範例結果。](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Results-Success-Sample.json)

1. **檔案處理**：
   + 收到檔案時， AWS 會自動處理檔案。
   + 處理結果會上傳至 Amazon S3 儲存貯體中的 `lead-inbound-processed-results` 資料夾。這包括成功和錯誤的狀態，以及每個機會的任何錯誤訊息。
   + 這些處理的結果也會封存在 `opportunity-inbound-processed-results-archive` 資料夾中。
   + 如需詳細資訊，請參閱 [技術常見問答集 - 領導和機會](technical-faq-leads-and-opps.md)。

1. **回應處理**：
   + 您必須開發邏輯來取用這些回應、檢閱錯誤記錄、更正任何錯誤，以及將資料重新傳送至 ACE。
   + 您可以在常見問答集和疑難排解區段中找到範例錯誤。
   + 若要從 CRM 將檔案上傳至 Amazon S3：
     + 參考 AWS 簽章的版本。
     + 使用 HTTPS 請求上傳檔案。
   + 如需參考，請使用下列檔案將檔案上傳至 Amazon S3 儲存貯體：
     + **驗證 S3 儲存貯體**時：[S3\$1Authentication.cls](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/S3_Authentication.cls)
     + **將檔案上傳至 S3 儲存貯體**：[Sample\$1AceOutboundBatch.cls](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Sample_AceOutboundBatch.cls)
   + **注意：**檔案的大小不得超過 1 MB，而且不會處理重複的檔案。