2016-06-08 8 views
2

Предпосылки:

Я хочу подключиться к веб-сервисам MS Dynamics CRM в начале выполнения пакета и повторно использовать соединение по всему пакету, но я не удалось сделать это через переменные SSIS.задача SSIS сценария `Invalid литая exception` при получении сложного объекта от переменных

Я не могу использовать Диспетчер соединений, потому что я использую OrganizationService.Execute метод, который не поддерживается мастером Task WebService

шаги:

  1. Добавлено Microsoft.Xrm.Sdk библиотеки DLL в GAC и к ссылкам сценария;
  2. создания потока данных задач и два отдельных задания сценария внутри
  3. Created 2 переменных пакета crmOrganizationService и crmOrganizationServiceProxy
    • оба типа System.Object
    • script task 1 и script task 2 могут читать, писать их
  4. Внутри от script task 1:

    • Проинсталлировать OrganizationServiceProxy и OrganizationService и подключиться к веб-службам MS Dynamics CRM.
    • задавать как экземпляры объектов к переменным

      //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 я получаю Invalid исключения броска из-за неспособность бросить System.Object в Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy

Решение:

Я уверен, что эта проблема в основном боксе переменных при прохождении их между задачами сценария. Но я не нашел лучшего общего подхода. Внутри него мне нужно передать экземпляры пользовательских классов между скрипт-задачами.

ответ

1

Вы можете использовать Reflection or a custom SSIS component, но, возможно, делать это не стоит.

Другой вариант - разместить промежуточную веб-службу между вашим SSIS-пакетом и CRM и кэшировать соединение в веб-сервисе. Возможно, вам намного легче.

 Смежные вопросы

  • Нет связанных вопросов^_^