

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 机会共享
<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) 客户参与 (ACE) 的新推荐。
   + 如果两个标识符都存在，则该记录将被视为来自 ACE 的更新。

1. **机会摄取**：在 CRM 系统中挖掘新机会或更新现有机会。

1. **文件管理**：
   + 成功处理每个机会和完整文件数据后，将文件从出站文件夹中删除。
   + 每个文件都会自动存档到该`opportunity-outbound-archive`文件夹中。

**集成和代码参考**：
+  要读取上传到亚马逊简单存储服务 (Amazon S3) 存储桶的文件， AWS Lambda 您可以使用您的 CRM 系统或直接从 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 API\$1C](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Apex_Sample_REST_API_Code.cls) \$1sample\$1rest\$1 ode.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
     ```

      在 Opportunity Results [成功示例.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\$1** [authentication.cls](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/S3_Authentication.cls)
     + **要将文件上传到 S3 存储桶：S** [ample AceOutboundBatch](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Sample_AceOutboundBatch.cls) \$1 .cls
   + **注意：**文件大小不得超过 1 MB，并且不会处理重复的文件。