如何在不编写脚本的情况下迁移 Salesforce 文件

如何在不编写脚本的情况下迁移 Salesforce 文件

Ana NetoProducts and Solutions Leave a Comment

将文件从 Salesforce 中迁移出来有诸多原因:存储成本、合规要求,或者仅仅是为了整合贵组织的内容存储位置。.

奇怪的是,在进行CRM迁移、系统整合或集成项目时,将文件从旧版CRM或其他业务系统迁移到Salesforce,其实也有充分的理由。.

无论哪种方式,都不需要编写脚本即可实现,包括将文件与正确记录保持关联、避免重复以及保留元数据这些难点。.

Want to migrate Salesforce files to SharePoint without coding?

Discover how 为 Salesforce 平台打造的 Document Extractor can make migrations smooth

#1 了解你要搬运的物品

在正式迁移之前,您需要对当前组织的部署情况进行一次快速摸底。.

  • 运行存储报告: 转到 设置 > 数据 > 存储使用情况 以准确统计您的文件存储与数据存储的原始容量。.
  • 查询模式: 运行一个简短的 SOQL 查询,或使用 API 工具,以获取“附件”、“文档”和“内容版本”中的行数。.
  • 识别大文件: 筛选出异常值。您是否需要传输大量大文件?请设定一个阈值(例如 25MB),并筛选出大于该阈值的文件,因为这些文件将决定您后续的批处理大小和网络吞吐量上限。.

请注意,如果您使用的是较旧的 Salesforce 组织,文档可能会分散在经典版存储和现代 Lightning 存储中。.

经典版(旧版):

  • 附件:旧模型中直接附加到记录上的文件
  • 备注:记录中的纯文本备注
  • “文档”文件夹:旧版的“文档”选项卡

闪电(现代):

  • 文件(ContentDocument / ContentVersion):当前标准
  • 增强型笔记:Lightning 推出的更丰富的笔记格式
  • 库(Salesforce CRM 内容):共享文件存储库

Salesforce 文件迁移的真正挑战并不在于移动原始二进制数据块(如 PDF、图像或日志),而在于保留关系上下文。.

在经典模式中,附件是父记录的一个简单子记录。在 Lightning 中,ContentVersion 存储实际的文件数据,该数据汇总到 ContentDocument 中,然后通过一个名为 ContentDocumentLink 的连接对象映射到记录。.

如果您要将文件从 Salesforce 中迁移出来,必须提取这些关联关系,以便目标系统(如 SharePoint、Azure Blob 或 AWS S3 存储桶)能够识别哪个文件属于哪个账户或案件。 如果您正在将文件导入系统,则必须将旧系统中的文件映射到这种现代化的多层 Lightning 架构中。若要在不编写自定义 Apex 批处理程序或 Python 脚本的情况下完成此操作,则需要一款能够原生理解这些底层 API 关系的工具。.

#2 确定源语言和目标语言

如果您的目标是 SharePoint:Document Extractor

Document Extractor 该解决方案专为在 Salesforce 与 SharePoint 在线版或本地部署环境之间传输文件而设计。.

它会处理所有繁重的工作。. Document Extractor 会监控与 Salesforce 中的账户、联系人、潜在客户、商机、报价、合同、订单、资产、电子邮件和自定义对象相关的文档,并在 SharePoint 中创建相应的文件夹结构。它负责处理所有必要的关联关系、边界情况和链接。.

您的用户完全不会察觉到任何异样。. 文件迁移到 SharePoint 后,Salesforce 中原位置会保留一个链接。 在后台,部分文件可能已存放在SharePoint中,而其他文件仍存储在Salesforce中,但用户在Salesforce中的使用体验保持一致。这意味着您可以分阶段进行迁移,边迁移边验证,从而避免风险较高的’大爆炸式”文件切换。.

设定开始日期。. 如果您不想一次性迁移所有内容,可以指定一个日期,仅迁移该日期之后创建的文件,这对希望分阶段进行迁移的大型组织非常有用。.

元数据。. 标准元数据文件属性(如“创建者”、“所有者”、“描述”、“版本”和“修改者”)会直接映射到 SharePoint,同时还会映射 ContentVersion 对象上定义的任何自定义字段。这确保了即使文件离开 Salesforce 生态系统,您也能完整保留文件历史、合规性及用户上下文信息。 除了文件属性之外,Document Extractor 还会将父记录字段(例如“账户名称”)映射到相应的 SharePoint 文件夹层次结构中。.

全面报道经典版和闪电版。. 支持附件、笔记、文档文件夹、文件、增强型笔记和库。没有任何内容会被遗漏。.

支持的 Salesforce 版本: 专业版、企业版、无限版和开发者版,均支持经典版和 Lightning Experience。支持的 SharePoint 版本包括 2013、2016、2019 以及 SharePoint Online / Office 365。.

有一个 免费试用 SaaS 15 天, ,无需信用卡,这段时间足以进行一次完整的概念验证。如果您想自行托管试用版,或者需要更多信息,这里有一个简单的 形式 您可以使用这些方式与我们联系。.

如果您的目标不是 SharePoint:Connect Bridge

并非每次文件迁移都始于或终于 SharePoint。您的文件源或目标可能是一个旧版 CRM、本地文件存储、专有文档管理系统,甚至完全是其他系统。正因如此, Connect Bridge 登场了。.

Connect Bridge 是一个集成平台,可将 Salesforce 与几乎任何数据库或业务应用程序连接起来。 您可以使用标准 SQL 语法与 Connect Bridge 进行通信,而在后台,它会将 SQL 查询(SELECT、INSERT、UPDATE、DELETE)转换为相应的 Salesforce API 调用。.

这对于以下情况特别有用:

  • 将 Salesforce 与本地数据库或旧系统进行同步
  • 构建目标系统非 SharePoint 的自定义集成
  • 具有特定合规或数据驻留要求的组织

对于反向迁移,Connect Bridge 能够处理任何您需要从中提取文件并导入到 Salesforce 的外部数据源,因此它也是进行入站迁移的理想工具。.

定价机制

Document Extractor 的定价基于 Salesforce 用户的数量,而非迁移文件的数量或大小。对于 Connect Bridge,定价则基于 Salesforce 用户的数量以及待迁移文件的数量。.

如果您需要处理大型文件集,这一点非常重要:一旦文件量达到数百吉字节,按每GB或按每文件收费的工具可能会产生出人意料的高额账单。.

基于用户的定价模式具有可预测性,无论您传输多少数据,都能让您灵活地分阶段迁移,并根据需要重新运行任务,而无需时刻关注计费情况。.

你是否还应该考虑自己动手做?

如果您熟悉 Python,那么 REST API 方案(例如从 ContentVersion 读取数据并推送至 Microsoft Graph)对于中等规模的一次性迁移是可行的。 但这其中存在真正的隐性成本:开发人员的时间投入、速率限制的处理、ContentDocumentLink 的去重逻辑、元数据的保留,以及那些只有在大型迁移运行到一半时才会显现的边际情况。.

对于大多数组织而言,选用一款开箱即用、提供免费试用、业绩良好且按用户数量计费的工具,是风险较低的选择。只有当您的需求无法通过标准工具满足,或者您有开发人员真正有闲置时间来全程负责该项目时,采用脚本开发的方式才具有合理性。.

入门

  • 是迁移到 SharePoint,还是从 SharePoint 导入到 Salesforce? Document Extractor 提供15天免费试用,无需信用卡。.
  • 还有其他源或目标吗? Connect Bridge 提供免费试用。.

并可通过以下方式为您解答疑问: 联系表 随时。.


关于作者

Ana Neto

作者 Ana NetoConnecting Software 技术顾问。

"自 1997 年以来,我一直是一名软件工程师,最近开始喜欢写作和公开演讲。您对本文有任何问题或评论吗?欢迎在下方留言!"

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.