0

SSISパッケージ内でNet.TCPWCFサービスを呼び出そうとしています。スクリプトコンポーネントを設定し、サービスリファレンスで.NETFrameworkを3.5に変更しました。以下のリンクにある例に基づいてサンプルパッケージを作成しています。

WCFを使用してWebサービスにアクセスするようにSSISパッケージを構成する方法

リンクにはPreExecuteメソッドをオーバーライドするように記載されていますが、SQL2008R2のスクリプトコンポーネント内でメソッドを見つけることができません。

私のパッケージのスクリプトコンポーネントは、次のコードで始まります。

[System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

ただし、上記の記事に書かれている例のコードは次のとおりです。

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent

関連する参照を修正するためにコードをコピーしようとしましたが、の参照がどこに含まれていませんUserComponent

誰かが私がここで間違っていることを指摘できますか?

4

1 に答える 1

1

問題の原因:

データフロータスク内で使用可能な変換の代わりに、[制御フローScript Task]タブで使用可能なものを使用しています。Script Component

違いを示すSSIS2008R2パッケージ:

Business Intelligence Development Studio(BIDS)2008 R2でSSISパッケージを作成し、という名前を付けSO_10121670.dtsxます。

BIDSは、デフォルトで[制御フロー]タブを表示します。ツールボックスから、以下に示すようにドラッグアンドドロップScript TaskData Flow Taskます。

制御フロー

スクリプトタスクをダブルクリックして、を表示しScript Task Editorます。スクリプトタスクエディタで、[スクリプト]ページをクリックし、[Edit Script...

スクリプトタスクエディタ

Integration Services Script Taskコードエディタが開きます。ScriptMainクラスがから継承していることに気付くでしょうMicrosoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

MSDNの記事でこのスクリプトタスクを使用していない例。

スクリプトタスク

[制御フロー]タブで、[データフロータスク]をダブルクリックして、[データフロー]タブに切り替えます。ツールボックスの[データフロー変換]セクションScript Componentからをドラッグアンドドロップします。

データフロータスク

スクリプトコンポーネントをドラッグアンドドロップすると、Select Script Component Typeダイアログが表示されます。要件に合った適切なものを選択する必要があります。このサンプルでは、​​タイプをに設定してSource、スクリプトエディターを表示できるようにします。をクリックしOKます。

スクリプトコンポーネントタイプを選択します

スクリプトコンポーネントをダブルクリックして、を表示しScript Transformation Editorます。スクリプト変換エディターで、[スクリプト]ページをクリックし、[Edit Script...

スクリプト変換エディター

Integration Services Script Componentコードエディタが開きます。クラスがScriptMainから継承していることに気付くでしょうUserComponentこれは、 MSDNブログ記事のWCFサンプルコードを練習するために使用する必要のあるコンポーネントです。

あなたが探していPreExecuteたコードの中にメソッドを見ることができます。Script Component

スクリプトコンポーネント

于 2012-04-12T19:35:52.667 に答える