我正在开发一个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等)?
感谢。
答案 0 :(得分:3)
我在2011年写了一个关于如何使用Web服务执行此操作的示例。我意识到这是前面几个版本,并且是一种直接的SQL调用的不同方法,但您可能会发现它很有用。我不认为代码在Crm 3中会有很大的不同,只是如何执行服务调用并解析结果。