2016-06-08 3 views
2

Voraussetzungen:

ich zu Beginn der Paketausführung zu MS Dynamics CRM Web Services verbinden möchten und die Verbindung der ganzen Paket wieder verwenden, aber ich konnte dies nicht über SSIS-Variablen tun.SSIS-Skripttask `Ungültige Guss exception` bei Abrufen von komplexen Objekts von Variablen

ich nicht Verbindungs-Manager verwenden können, weil ich OrganizationService.Execute Methode verwenden, die nicht von WebService Task-Assistenten unterstützt wird

Schritte:

  1. Added Microsoft.Xrm.Sdk DLL zu GAC und Skriptverweise;
  2. Erstellt Datenfluß Aufgabe und zwei separate Skript Aufgaben innerhalb
  3. Erstellt 2 Paketvariablen crmOrganizationService und crmOrganizationServiceProxy
    • beide vom Typ System.Object
    • script task 1 und script task 2 kann sie lesen-schreiben
  4. Innen von script task 1:

    • Instanziieren Sie OrganizationServiceProxy und OrganizationService und stellen Sie eine Verbindung mit MS Dynamics CRM-Webdiensten her.
    • Weisen beide Instanzen von Objekten Variablen

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

  5. Innerhalb von script task 2:

    OrganizationServiceProxy _serviceProxy = (OrganizationServiceProxy)this.Variables.crmOrganizationServiceProxy

Fehler:

In Schritt 5 I Ungültige Guss Ausnahme wegen Unfähigkeit erhalten System.Object als Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy

Abhilfe zu werfen:

Ich bin sicher, dass das Problem in Grund Boxen von Variablen ist, während sie zwischen Skript Aufgaben übergeben. Ich habe jedoch keinen besseren allgemeinen Ansatz gefunden. In diesem muss ich Instanzen von benutzerdefinierten Klassen zwischen Skriptaufgaben übergeben.

Antwort

1

Sie könnten Reflection or a custom SSIS component verwenden, aber vielleicht ist es das nicht wert.

Die andere Option wäre, einen vorläufigen Webdienst zwischen Ihrem SSIS-Paket und CRM zu hosten und die Verbindung im Webdienst zwischenzuspeichern. Vielleicht ist das viel einfacher für dich.

Verwandte Themen