パッケージの実行の開始時にMSDynamics CRM Webサービスに接続し、パッケージ全体で接続を再利用したいのですが、SSIS変数を介して接続できませんでした。
OrganizationService.Execute
Webサービスタスクウィザードでサポートされていないメソッドを使用しているため、接続マネージャーを使用できません
crmOrganizationService
を作成し、crmOrganizationServiceProxy
System.Object
script task 1
そしてscript task 2
それらを読み書きすることができます内部script task 1
:
OrganizationServiceProxy
しOrganizationService
て接続します。オブジェクトの両方のインスタンスを変数に割り当てます
//create public OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(orgServiceManagement, adCredentials); public IOrganizationService _service =(IOrganizationService)_serviceProxy; //assign this.Variables.crmOrganizationServiceProxy= _serviceProxy; this.Variables.crmOrganizationService=_service;
内部script task 2
:
OrganizationServiceProxy _serviceProxy = (OrganizationServiceProxy)this.Variables.crmOrganizationServiceProxy
ステップ5でSystem.Object
、としてキャストできないため、無効なキャスト例外を受け取りますMicrosoft.Xrm.Sdk.Client.OrganizationServiceProxy
問題は、スクリプトタスク間で変数を渡す際の変数の基本的なボックス化にあると確信しています。それでも、私はより良い一般的なアプローチを見つけられませんでした。その中で、スクリプトタスク間でカスタムクラスのインスタンスを渡す必要があります。
ReflectionまたはカスタムSSISコンポーネントを使用することもできますが、それを行う価値はないかもしれません。
もう1つのオプションは、SSISパッケージとCRMの間で暫定Webサービスをホストし、接続をWebサービスにキャッシュすることです。多分それはあなたにとってはるかに簡単です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加