BIML включает конфигурацию пакета SSIS

Я пытаюсь создать пакет SSIS с помощью BIML. Внутри этого пакета должна быть включена конфигурация пакета (как на картинке ниже). Таким образом, пакет использует существующий файл конфигурации (вариант: повторное использование exsising).

введите здесь описание изображения

Я использую следующую версию:

  • ОС: Windows 2008 R2 Корпоративная
  • БД: СТАВКИ MSSQLSERVER 2012
  • (Визуальная студия): 2012 г.

Я попытался использовать следующий код:

Часть PackageConfiguration

 <!-- SET PACKAGE CONFIGURATION (DOES NOT WORK YET!!! )  -->       
    <PackageConfigurations>
        <PackageConfiguration Name="ADWHConfig">
          <ExternalFileInput ExtrnalFilePath="D:\ADWH\SSIS_ConfigFiles\ADWHConfig.dtsConfig">    
          </ExternalFileInput>
       </PackageConfiguration>
    </PackageConfigurations>

Полный сценарий

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <#
        var cod_process = "80010007";
        var strDestenationTable =" BLA_BLA";
    #>

    <Connections>
        <OleDbConnection Name="LocalHost.ADWH01.dwh_user"
                         ConnectionString="Data Source=.;User ID=dwh_user;Initial Catalog=ADWH01;Provider=SQLNCLI11.1;database=ADWH01;Password=dbadmin_dwh;"
                         CreatePackageConfiguration="false">
        </OleDbConnection>
    </Connections>

    <Packages>
        <Package Name="TEST" ConstraintMode="Linear" >
            <Variables>
                <Variable Name="COD_INSTANCE" DataType="Int64">0</Variable>
                <Variable Name="COD_PROCESS" DataType="Int64">0</Variable>
                <Variable Name="ROW_COUNT" DataType="Int32">0</Variable>
                <Variable Name="COD_PROCESS_STATUS" DataType="String"></Variable>

                <!-- SET VARIABLES LOAD CALENDER -->
                <Variable Name="LOAD_STRATEGY" DataType="String"></Variable>
                <Variable Name="LOAD_CALENDER" DataType="Object"></Variable>
                <Variable Name="FirstDayOfPeriod" DataType="DateTime">1/1/1900</Variable>
                <Variable Name="LastDayOfPeriod" DataType="DateTime">1/1/1900</Variable>

                <!-- SET VARIABLES LOAD SNAPSHOT -->
                <Variable Name="LOAD_SNAPSHOTS" DataType="Object"></Variable>
                <Variable Name="M_UTC_SNAPSHOT" DataType="DateTime">1/1/1900</Variable>
                <Variable Name="M_COD_SOR" DataType="Int64">0</Variable>
            </Variables>

            <!-- SET PACKAGE CONFIGURATION (DOES NOT WORK YET!!! )  -->
            <PackageConfigurations>
                <PackageConfiguration Name="ADWHConfig">
                    <ExternalFileInput ExternalFilePath="D:\ADWH\SSIS_ConfigFiles\ADWHConfig.dtsConfig"></ExternalFileInput>
                </PackageConfiguration>
            </PackageConfigurations>

            <Tasks>
                <Dataflow Name="TEST 123">
                    <Transformations>
                        <OleDbSource Name="SNAPSHOT" ConnectionName="LocalHost.ADWH01.dwh_user">
                            <ExternalTableInput Table="DSAOMA.SNAPSHOT_D_KREDIETOVEREENKOMST2"></ExternalTableInput>
                            <Columns>
                                <Column SourceColumn="M_UTC_START" TargetColumn="M_UTC_START"></Column>
                                <Column SourceColumn="M_UTC_END" TargetColumn="M_UTC_END"></Column>
                                <Column SourceColumn="IDC_CONTRACT" TargetColumn="IDC_KREDIET_CONTRACT"></Column>
                                <Column SourceColumn="AFSCHRIJVINGSCODE_EWO_WOT" TargetColumn="AFSCHRIJVINGSCODE_EWO_WOT"></Column>
                                <Column SourceColumn="CONTRACTNUMMER" TargetColumn="ContractNummer"></Column>
                                <Column SourceColumn="DATUM_AANKOOP_KREDIET" TargetColumn="Datum_Aankoop_Krediet"></Column>
                                <Column SourceColumn="RISICOKLASSE" TargetColumn="Risicoklasse"></Column>
                                <Column SourceColumn="PROVISIEKLASSE" TargetColumn="Provisieklasse"></Column>
                            </Columns>
                        </OleDbSource>
                        <DerivedColumns Name="EXPRIndicatie_EWO_WOT">
                            <Columns>
                                <Column Name="Indicatie_EWO_WOT" DataType="VarNumeric" ReplaceExisting="false">!ISNULL(AFSCHRIJVINGSCODE_EWO_WOT) ? (DT_WSTR, 255)"J" :(DT_WSTR, 255) "N"</Column>
                            </Columns>
                            <InputPath OutputPathName="SNAPSHOT.Output"></InputPath>                    
                        </DerivedColumns>
                    </Transformations>
                </Dataflow>
            </Tasks>
        </Package>
</Packages>
</Biml>

Но это не работает, когда я создаю пакет. Пожалуйста, помогите мне исправить эту проблему. Я попробовал это, следуя веб-сайту http://www.cathrinewilhelmsen.net/2014/06/17/package-configurations-and-connection-managers-in-biml/, чтобы добиться этого.


person Erik hoeven    schedule 21.06.2016    source источник
comment
Вам нужно будет объяснить, что происходит... какие ошибки вы получаете... все, что вы пробовали...   -  person BIDeveloper    schedule 21.06.2016


Ответы (1)


Я уменьшил ваш Biml, но смог сгенерировать пакет. Что он не делает, и, возможно, это ваша проблема, так это то, что он фактически не создает файл .dtsconfig. Это бремя на вас.

Вот мой пример dtsconfig

<?xml version="1.0"?>
<DTSConfiguration>
    <DTSConfigurationHeading>
        <DTSConfigurationFileInfo GeneratedBy="billinkc" GeneratedFromPackageName="so_37936760" GeneratedFromPackageID="{7E71E2C4-B411-4CF7-9A18-30A021832B5B}" GeneratedDate="6/21/2016 8:07:55 AM"/>
    </DTSConfigurationHeading>
    <Configuration ConfiguredType="Property" Path="\Package.Variables[User::COD_INSTANCE].Properties[Value]" ValueType="Int64">
        <ConfiguredValue>1</ConfiguredValue>
    </Configuration>
</DTSConfiguration>

Я просто присваиваю значение 1 свойству Value переменной COD_INSTANCE.

Помощник по BIDS сообщит мне о конфигурации этой переменной, заштриховав угол синим цветом.

введите здесь описание изображения

В моей версии вашего biml изменены только свойства, чтобы они соответствовали моей локальной машине (и я удалил тело потока данных), суть конфигурации осталась прежней.

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
        <Connections>
        <OleDbConnection Name="LocalHost.ADWH01.dwh_user"
            ConnectionString="Data Source=localhost\dev2014;Initial Catalog=tempdb;Provider=SQLNCLI11.0;Integrated Security=SSPI;"
            CreatePackageConfiguration="false">
        </OleDbConnection>
    </Connections>
    <Packages>
        <Package Name="so_37936760" ConstraintMode="Linear" >

            <Variables>
                <Variable Name="COD_INSTANCE" DataType="Int64">0</Variable>
                <Variable Name="COD_PROCESS" DataType="Int64">0</Variable>
                <Variable Name="ROW_COUNT" DataType="Int32">0</Variable>
                <Variable Name="COD_PROCESS_STATUS" DataType="String"></Variable>

                <!-- SET VARIABLES LOAD CALENDER -->
                <Variable Name="LOAD_STRATEGY" DataType="String"></Variable>
                <Variable Name="LOAD_CALENDER" DataType="Object"></Variable>
                <Variable Name="FirstDayOfPeriod" DataType="DateTime">1/1/1900</Variable>
                <Variable Name="LastDayOfPeriod" DataType="DateTime">1/1/1900</Variable>

                <!-- SET VARIABLES LOAD SNAPSHOT -->
                <Variable Name="LOAD_SNAPSHOTS" DataType="Object"></Variable>
                <Variable Name="M_UTC_SNAPSHOT" DataType="DateTime">1/1/1900</Variable>
                <Variable Name="M_COD_SOR" DataType="Int64">0</Variable>
            </Variables>

            <!-- SET PACKAGE CONFIGURATION (DOES NOT WORK YET!!! )  -->
            <PackageConfigurations>
                <PackageConfiguration Name="ADWHConfig">
                    <ExternalFileInput ExternalFilePath="c:\ssisdata\so\so_37936760.dtsConfig"></ExternalFileInput>
                </PackageConfiguration>
            </PackageConfigurations>

            <Tasks>
                <Dataflow Name="TEST 123">

                </Dataflow>
            </Tasks>
        </Package>
</Packages>    
</Biml>

Результаты одинаковы, независимо от того, использую ли я модель развертывания пакетов или модель развертывания проекта, что меня удивило. Я полагал, что модель развертывания проекта лишила бы возможности использовать конфигурацию пакета.

person billinkc    schedule 21.06.2016
comment
bilinkc, спасибо за быстрый ответ. Я не хочу создавать файл конфигурации пакета. Я не хочу использовать существующий файл конфигурации, хранящийся в папке. Так вот вопрос как мне это сделать? - person Erik hoeven; 21.06.2016
comment
Не уверен, что следую. Это создает пакет, который ожидает найти там файл конфигурации. Если файл не существует, вы получите информационное сообщение, когда пакет откроется/запустится, указав Warning loading so_37936760.dtsx: Failure importing configuration file: "c:\ssisdata\so\DoesNotExist.dtsConfig". - person billinkc; 21.06.2016