0

SSIS のデータフロー タスクの一部として Web サービスを使用しようとしています。現在、データ フロー内に Web サービス参照を含むスクリプト タスクがあります。

タスクが最終的に行う必要があるのは、内部データベースからすべての郵便番号を収集する > 作成した Web サービスを使用して、郵便番号のレイ/ロングを取得する > 緯度/経度をテーブルにエクスポートする.

前に言ったように、スクリプトをセットアップして動作しているように見えますが、パッケージを実行しようとするとCannotCreateUserComponentExceptionエラーが発生します。

これに関するヘルプは素晴らしいですか、それとも別のアプローチですか? 私は SSIS の Web サービスに慣れていないので、これが私が思いつく最善の解決策です。

編集:

現在、スクリプトは から郵便番号を受け取り、OLE DB Source"lat,long" 形式の文字列を出力します (おそらく)。Web サービスは社内の誰かによって作成されFindCoordinates、文字列値 (郵便番号) を受け取る 1 つのメソッドが呼び出されます (これは、Google ジオコード xml を呼び出すと思いますが、彼が何をしたかは正確にはわかりません)。現在私のスクリプトにあるコードは次のとおりです。

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
using SC_6c1b642acd544cd5b01c032b6f8dfd03.csproj.MyService;
using System.Xml;
using System.Web.Services;

[WebService(Namespace = "http://microsoft.com/webservices/")]
[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{

    public override void PreExecute()
    {
        base.PreExecute();
        /*
          Add your code here for preprocessing or remove if not needed
        */
    }

    public override void PostExecute()
    {
        base.PostExecute();
        /*
          Add your code here for postprocessing or remove if not needed
          You can set read/write variables here, for example:
          Variables.MyIntVar = 100
        */
    }

    public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        String postal = Row.PostalCode;
        Service service = new Service();

        Row.LatLong = service.FindCoordinates(postal);
    }

}

この助けを願っています。

4

0 に答える 0