2016-06-08 96 views
2

先決條件檢索複雜對象:

我想在包執行開始連接到MS Dynamics CRM中的Web服務和重用遍佈包的連接,但我沒有通過SSIS變量做到這一點。SSIS腳本任務`無效的轉換exception`從變量

我不能使用連接管理器,因爲我使用OrganizationService.Execute方法不是由WebService的任務嚮導

步驟支持:

  1. 新增Microsoft.Xrm.Sdk的DLL到GAC和腳本參考;
  2. 創建數據流任務和內部
  3. 創建2個變量crmOrganizationServicecrmOrganizationServiceProxy
    • 類型的兩個兩個獨立的腳本任務System.Object
    • script task 1script task 2可以讀寫它們
  4. script task 1

    • 實例化OrganizationServiceProxyOrganizationService並連接到MS Dynamics CRM Web服務。
    • 分配對象的兩個實例變量

      //create public OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(orgServiceManagement, adCredentials); public IOrganizationService _service =(IOrganizationService)_serviceProxy; //assign this.Variables.crmOrganizationServiceProxy= _serviceProxy; this.Variables.crmOrganizationService=_service;

  5. 內的script task 2

    OrganizationServiceProxy _serviceProxy = (OrganizationServiceProxy)this.Variables.crmOrganizationServiceProxy

錯誤:

在步驟5我接受,因爲無法投的無效轉換異常System.ObjectMicrosoft.Xrm.Sdk.Client.OrganizationServiceProxy

解決方法:

我敢肯定,問題是變量的基本拳法,而通過他們的腳本任務之間。但我沒有找到更好的一般方法。在它內部,我需要在腳本任務之間傳遞自定義類的實例。

回答

1

你可以使用Reflection or a custom SSIS component但也許這樣做是不值得的。

另一種選擇是在SSIS包和CRM之間託管臨時Web服務,並在Web服務中緩存連接。也許這對你來說容易得多。