我正在处理一个 ETL 项目,部分要求是从 MS Dynamics CRM 3.0 中提取电子邮件附件,以便迁移到 Salesforce.com。
我被难住的部分是提取(即保存为本地文件夹中的文件),在 DocumentBody 字段下存储为 MS SQL 2005“文本”(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
拥有用户: DC86BB76-0A74-DB11-8659-0013726038EA
对象 ID : ED0A7E57-4518-DC11-8EB4-0013726038EA
主题: Microsoft CRM 于 2009 年 3 月 31 日下午 1:19 创建的注释
MimeType:文本/纯文本
DocumentBody: Rmlyc3QgTmFtZSxMYXN0IE5hbWUsRS1tYWlsIEFkZHJlc3MNCkpvaG4sU21pdGgsanNtaXRoQG1pY3Jvc29mdC5jb20NCkZyYW5rLEpvbmVzLGZqb25lc0Bjb250b3NvLmNvbQ0KLCwNCiwsDQosLA0KLCwNCiwsDQosLA0KLCwNCiwsDQosLA0KLCwNCiwsDQo =
文件名: bmc_import.csv
对于许多不同的 mime 类型和数千个附件,我如何编写一种方法来使用这些文件(如 c:\attachments\bmc_import.csv、c:\attachments \budget.xls 等)?
谢谢。