1

BIML <ScriptComponentProject> タグを使用して単純なフローを作成しようとしていますが、うまくいきません!

  • データ フローを手動で作成すると、完全に正常に動作します。

    • 私のデータフローは: SRC > SCRIPT-COMPONENT > TGT
    • 私が追加した唯一のロジックは、各受信行の行番号を計算することです (今のところ、ロジックを完全に単純に保ちます)。
  • 手動ソリューションが実行された場合:

    • 連続した行番号は TGT テーブル (test_np_02) に格納されます
    • すごい!
  • ただし、添付の BIML を使用してまったく同じパッケージを作成しようとすると、次のエラーが発生します。


SSIS 出力ログ:

Error 0 The namespace '<global namespace>' already contains a definition for 'Input0Buffer'.  ...\Designer\BufferWrapper.cs    14 14
Error 0 The namespace '<global namespace>' already contains a definition for 'UserComponent'. ...\Designer\ComponentWrapper.cs 12 14
Error 0 The namespace '<global namespace>' already contains a definition for 'Connections'.   ...\Designer\ComponentWrapper.cs 49 14
Error 0 The namespace '<global namespace>' already contains a definition for 'Variables'.     ...\Designer\ComponentWrapper.cs 60 14
EmitSsis. Internal Compiler Error: Workflow EmitSsis contains fatal errors. Phase execution halted.


BIML を使用して PKG を作成しようとすると、何が問題なのかわかりません。

  • パッケージを手動で(同じコードで)作成したとき、これらのエラーは決してポップアップしませんでした
  • 重要な C# ファイルを手動ソリューションから BIML にコピーして貼り付けました


質問/アイデア:

  1. ProjectCoreName、AssemblyProduct、および AssemblyTitle に使用する必要がある GUID と関係がありますか?

    • これは、BIML が展開されるたびに自動的に生成されますか?
    • もしそうなら、これらのアイテムの BIML 自体に GUID を作成するにはどうすればよいですか?
  2. <Files> タグ内の BIML で .cs ファイルを作成する順序に関係がありますか?

    • <Files> タグ内の <File> 項目の実際の順序は、BIML には関係ないと現在想定しています。
  3. BIML で "Resources.resx/Resources.Designer.cs" と "Settings.settings/Settings.Designer.cs" も生成する必要があるのでしょうか?

  4. 各 .cs ファイルに「#region Namespaces」セクションを含めることは本当に重要ですか?

    • 私はそれをマニュアルソルンから削除しました..それでもうまくいきました!


助けてください。

ノート:

  • SSDT 2015 と Varigence BIMLExpress 2017 (ビルド 5.0.61915.0) を使用しています。

  • これは、SRC 自体の SQLServer 内で ROW_NUMBER() を使用して非常に簡単に実行できることを認識していますが、次のようになります。

    • 簡単にするために、添付の例で OleDbSource を使用しています
    • 最後に、BIML を使用して何百ものコード PKG を生成する必要があります。これには、OleDB ではなく、SRC がフラット ファイルとして含まれます。
    • そして明らかに、生成された ScriptComponents を展開直後に動作させたいと思っています..それ以上の手動介入なし:)


ありがとう、


NP


BIML ファイル: https://drive.google.com/file/d/10O3aSL5IO34ULS44wl7IX4LUmPH_pI6V/view?usp=sharing

4

1 に答える 1

1

The error will disappear if you wrap your classes in a custom namespace.

namespace SomeNamespace {
    public class UserComponent: ScriptComponent
    {
         ...
    }

    public class Connections
    {
          ...    
    }

    public class Variables
    {
          ...     
    }
}

namespace SomeNamespace {

    public class Input0Buffer: ScriptBuffer
    {
         ...
    }
}

Also one remark about (dynamically) creating multiple packages from this Biml file: You will have to assign a dynamic namespace name like so:

namespace <#=variableContainingNamespaceName#> {
    ...
}

About your remarks:

  1. The issue is not related to the ProjectCoreName, but I fear that you may run into issues if you reuse the same ProjectCoreName for multiple packages generated from the same biml (without having actually tested it)
  2. No
  3. Not necessary
  4. No, the section is not necessarily required.
于 2018-04-19T11:32:22.427 に答える