2012-09-11 39 views
1

我正在開發一個ETL項目,部分要求是從MS Dynamics CRM 3.0中提取電子郵件附件以便遷移到Salesforce.com。將附件從Dynamics 3.0 MSSQL表導出到本地文件夾

我被難倒的部分是在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

主題:微軟CRM

Mime類型上2009年3月31日下午1時19分創造了注: text/plain的

DocumentBody: Rmlyc3QgTmFtZSxMYXN0IE5hbWUsRS1tYWlsIEFkZHJlc3MNCkpvaG4sU21pdGgsanNtaXRoQG1pY3Jvc29mdC5jb20NCkZyYW5rLEpvbmVzLGZqb25lc0Bjb250b3NvLmNvbQ0KLCwNCiwsDQosLA0KLCwNCiwsDQosLA0KLCwNCiwsDQosLA0KLCwNCiwsDQo =

文件名: bmc_import.csv


與許多不同的MIME類型和數千個附件的,我怎麼能腳本的方式來填充文件夾(我們稱之爲「C:\附件\」),這些文件(如C:\附件\ bmc_import .csv,c:\ attachments \ budget.xls等)?

謝謝。

+2

它可能有助於知道'DocumentBody'存儲在'base64'格式。 –

回答

3

我已經在博客中介紹瞭如何在2011年使用web服務完成此任務的一個示例。我意識到這是前面提供的幾個版本,它們是直接調用sql的不同方法,但您可能會發現它很有用。我不認爲代碼在Crm 3中會有很大的不同,服務調用是如何執行的以及結果的解析。

Exporting Attachments Mscrm 2011

+0

你能說清楚它是什麼語言,你對數據庫做了什麼樣的調用?這不是一個SQL查詢。 – Yaaqov

+1

它是一個C#,WCF Soap Web服務調用。正如我在我的帖子中提到的那樣,它不是sql。 –

+0

謝謝。你知道T-SQL是否與你的函數等價嗎? byte [] data = convert.FromBase64String(e.Attributes [「documentbody」]。ToString()); – Yaaqov

相關問題