2

BIML を使用して SSIS パッケージを生成しようとしています。そのパッケージ内で、パッケージ構成が有効になっている必要があります (下の図のように)。そのため、パッケージは既存の構成ファイルを使用します (オプション: re-use exsising)。

ここに画像の説明を入力

私は次のバージョンを使用しています:

  • OS : Windows 2008 R2 エンタープライズ
  • DB : 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/に従ってこれを試しました。

4

2 に答える 2

2

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>

COD_INSTANCE 変数の Value プロパティに値 1 を割り当てているだけです。

BIDS Helper は、角を青く塗りつぶすことで、この変数に設定があることを知らせてくれます

ここに画像の説明を入力

私のバージョンの 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>

パッケージ配置モデルでもプロジェクト配置モデルでも結果は同じで、驚きました。Project Deployment Model では、パッケージ構成を使用する機能がなくなるだろうと考えました。

于 2016-06-21T13:22:42.343 に答える
0

うーん...私のBIMLファイルはうまく機能し、上記のように設定されています...

しかし...生成された.dtsxファイルを開くと、何もありません

(VS 2013 シェル、BIDS Helper 1.7.0、SSIS Designer 12.0.2430.0)

于 2017-08-09T22:00:16.980 に答える