将附件从Dynamics 3.0 MSSQL表导出到本地文件夹

时间:2012-09-11 21:59:02

标签: sql sql-server tsql stored-procedures dynamics-crm

我正在开发一个ETL项目,部分要求是从MS Dynamics CRM 3.0中提取电子邮件附件,以便迁移到Salesforce.com。

我难倒的部分是提取(即保存为本地文件夹中的文件),文档存储为DocumentBody字段下的MS SQL 2005“Text”(Base64)对象。

如果您熟悉MS Dynamics体系结构,则这些体系结构存储在“AnnotationsBase”表中。这是一个查询示例和几行输出:

SELECT top 1
   [AnnotationId]
  ,[OwningUser]
  ,[ObjectId]
  ,[Subject]
  ,[MimeType]
  ,[DocumentBody]
  ,[FileName]
FROM [Manufacturing_Company_MSCRM].[dbo].[AnnotationBase]
where isdocument = 1
order by filesize

AnnotationId: 02E5D4E3-​​5323-DC11-ADF9-0013726038EA

OwningUser: DC86BB76-0A74-DB11-8659-0013726038EA

ObjectId: ED0A7E57-4518-DC11-8EB4-0013726038EA

主题:注释于03/31/2009 1:19 PM由Microsoft CRM创建

MimeType: text / plain

DocumentBody: Rmlyc3QgTmFtZSxMYXN0IE5hbWUsRS1tYWlsIEFkZHJlc3MNCkpvaG4sU21pdGgsanNtaXRoQG1pY3Jvc29mdC5jb20NCkZyYW5rLEpvbmVzLGZqb25lc0Bjb250b3NvLmNvbQ0KLCwNCiwsDQosLA0KLCwNCiwsDQosLA0KLCwNCiwsDQosLA0KLCwNCiwsDQo =

FileName: bmc_import.csv


使用许多不同的mime类型和数千个附件,我怎么能编写一个方法来填充文件夹(让我们称之为“C:\ attachments \”)与这些文件(如c:\ attachments \ bmc_import.csv,c :\ attachments \ budget.xls等)?

感谢。

1 个答案:

答案 0 :(得分:3)

我在2011年写了一个关于如何使用Web服务执行此操作的示例。我意识到这是前面几个版本,并且是一种直接的SQL调用的不同方法,但您可能会发现它很有用。我不认为代码在Crm 3中会有很大的不同,只是如何执行服务调用并解析结果。

Exporting Attachments Mscrm 2011