Search code examples
visual-studiossisetlbiml

Pass package parameters to Execute Package Task


I'm using BIML to generate a coordination package that will execute multiple SSIS packages (some parallel and some linear). (I'm using VS2012 and the SSIS project deployment model)

With the code below I can generate two dummy Execute Package Tasks:

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
  <Packages>
   <Package ConstraintMode="Linear" AutoCreateConfigurationsType="None" ProtectionLevel="DontSaveSensitive" Name="Coordination">     
   <Parameters>
     <Parameter Name="param1" DataType="Int64" IsRequired="true" IsSensitive="false">1</Parameter>        
   </Parameters>
   <Tasks>
     <Container Name="SEQ container" ConstraintMode="Parallel"> 
       <Tasks>
         <ExecutePackage Name="Run Package1">  
           <ExternalProjectPackage Package="Package1.dtsx" />
         </ExecutePackage>
         <ExecutePackage Name="Run Package2">  
           <ExternalProjectPackage Package="Package2.dtsx" />
         </ExecutePackage>
       </Tasks>
     </Container>
   </Tasks>
  </Package>
 </Packages>
</Biml>

BIDS Helper with generate the coordination package without any errors.

The next step in completing the coordination package is using a package parameter to control the executed packages. I don't see any way to pass the parameter "param1".

Is there any way to pass the parameter in BIML? (in the Execute SQL task I see this option, but not here)

UPDATE: There is a new version of BIDSHelper with the right support for project parameters...-> http://bidshelper.codeplex.com/releases/view/112755


Solution

  • Those options have been added to the latest builds of BIDSHelper, which will be shipping in the next two weeks. If you email [email protected], we can send you a pre-release, if you'd like. The syntax is:

    <Biml xmlns="http://schemas.varigence.com/biml.xsd">
        <Packages>
            <Package ConstraintMode="Linear" AutoCreateConfigurationsType="None" ProtectionLevel="DontSaveSensitive" Name="Coordination">
                <Parameters>
                    <Parameter Name="param1" DataType="Int64" IsRequired="true" IsSensitive="false">1</Parameter>
                </Parameters>
                <Tasks>
                    <Container Name="SEQ container" ConstraintMode="Parallel">
                        <Tasks>
                            <ExecutePackage Name="Run Package1">
                                <ExternalProjectPackage Package="Package1.dtsx" />
                                <ParameterBindings>
                                    <ParameterBinding Name="Param1" VariableName="System.PackageID" />
                                </ParameterBindings>
                            </ExecutePackage>
                            <ExecutePackage Name="Run Package2">
                                <ExternalProjectPackage Package="Package2.dtsx" />
                                <ParameterBindings>
                                    <ParameterBinding Name="Param1" VariableName="System.PackageID" />
                                </ParameterBindings>
                            </ExecutePackage>
                        </Tasks>
                    </Container>
                </Tasks>
            </Package>
        </Packages>
    </Biml>