Невозможно создать BIML для компонента скрипта

Я пытаюсь создать простой поток, используя тег BIML , но он не работает для меня!

  • если я создаю поток данных вручную, то он работает отлично!

    • мой поток данных имеет: 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.


Я не уверен, что происходит, когда я пытаюсь создать PKG, используя BIML:

  • эти ошибки никогда не появлялись, когда я создавал пакет вручную (с тем же кодом)
  • Я скопировал и вставил важные файлы C# из ручного решения в BIML


Вопросы / Идеи:

  1. это как-то связано с GUID, который должен использоваться для ProjectCoreName, AssemblyProduct и AssemblyTitle?

    • это автоматически генерируется каждый раз, когда BIML расширяется?
    • если да, то как я могу создать GUID в самом BIML для этих элементов.. чтобы он работал сразу после расширения?
  2. это как-то связано с последовательностью, в которой я должен создать файлы.cs в BIML, внутри тега ?

    • В настоящее время я предполагаю, что фактическая последовательность элементов в теге не имеет отношения к BIML
  3. Может ли быть так, что я должен генерировать "Resources.resx/Resources.Designer.cs" и "Settings.settings/Settings.Designer.cs", а также в BIML?

  4. действительно ли важно иметь раздел "#region Namespaces" в каждом файле.cs?

    • Я удалил это из руководства soln.., которое все еще работало отлично!


Пожалуйста, помогите.

Заметки:

  • Я использую SSDT 2015 и Varigence BIMLExpress 2017 (сборка 5.0.61915.0)

  • Я знаю, что это очень легко сделать с помощью ROW_NUMBER() в SQLServer в самом SRC, но:

    • Я использую OleDbSource в прилагаемом примере, чтобы просто
    • наконец, мне придется сгенерировать сотни кодовых PKG с BIML, которые будут иметь SRC в виде плоского файла, а не OleDB.
    • и, очевидно, я хотел бы, чтобы мои сгенерированные компоненты ScriptComponents работали сразу после расширения.. без каких-либо дополнительных ручных вмешательств:)


Thanx,


NP


Файл BIML: https://drive.google.com/file/d/10O3aSL5IO34ULS44wl7IX4LUmPH_pI6V/view?usp=sharing

1 ответ

Решение

Ошибка исчезнет, ​​если вы поместите ваши классы в пользовательское пространство имен.

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

    public class Connections
    {
          ...    
    }

    public class Variables
    {
          ...     
    }
}

namespace SomeNamespace {

    public class Input0Buffer: ScriptBuffer
    {
         ...
    }
}

Также одно замечание о (динамическом) создании нескольких пакетов из этого файла Biml: вам нужно будет присвоить динамическое имя пространства имен следующим образом:

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

О ваших замечаниях:

  1. Эта проблема не связана с ProjectCoreName, но я боюсь, что вы можете столкнуться с проблемами, если повторно использовать один и тот же ProjectCoreName для нескольких пакетов, сгенерированных из одного BIML (без фактического тестирования).
  2. нет
  3. Не обязательно
  4. Нет, раздел не обязательно обязателен.
Другие вопросы по тегам