This project is read-only.

Project Parameters

Nov 26, 2014 at 3:20 PM
Hi Cedric,

I have come up against issues when I try to execute my SSIS packages with project level connection managers and project level parameters.

I execute the SSIS packages via the SSIS Catalog using the following:
    <setup>
        <etl-run catalog="SSISDB"
                 folder="DW"
                 project="Staging.SSIS"
                 name="Load_Table.dtsx"
                 server="localhost"
                 username="xxx\xxxx"
                 password="xxxxx" >
        </etl-run>
    </setup>
This runs fine however I need to change the project level parameter "prmFileDirectory", so I thought I would have to do the following:
    <setup>
        <etl-run catalog="SSISDB"
                 folder="DW"
                 project="Staging.SSIS"
                 name="Load_Table.dtsx"
                 server="localhost"
                 username="xxx\xxxx"
                 password="xxxxx" >
            <parameter name="prmFileDirectory">C:\Users\VREES\Documents\TFS\SECSU\Staging\Staging.UnitTest\Staging.SSIS.TestSuite\TestSourceData\</parameter>
        </etl-run>
    </setup>
I have discovered that the parameter tag which I have inserted only relates to a package level parameter and not a project level parameter.

Is there a way of getting this working so that I can modify the project param as part of the tests?

Regards,
Vaughan.
Nov 26, 2014 at 10:32 PM
Hello Vaughan,

Unfortunately it's not supported for the moment but it should be easy to implement. I'll probably add this to the next release.

The key is in the method Parameterize of NBi.Core.Etl.IntegrationService.EtlCatalogRunner
protected virtual IEnumerable<PackageInfo.ExecutionValueParameterSet> Parameterize(IEnumerable<EtlParameter> parameters)
{
            foreach (var param in parameters)
            {
                var execParam = new PackageInfo.ExecutionValueParameterSet()
                {
                    ObjectType = 30,
                    ParameterName = param.Name,
                    ParameterValue = param.StringValue
                };
                yield return execParam;
            }
}
For project level parameters the ObjectType should be set to 20 and not 30.

Now the question is how to know if it's a project or package parameter. We can provide this information in the xml test and forward it to this function. But IMHO it would be more user-friendly to check in the package if it's a project or package level parameter.
Nov 29, 2014 at 11:20 AM
Hello,

This nightly build https://ci.appveyor.com/project/CdricLCharlier/nbi/build/1.7.0.99065 should enable project parameter. Don't change your test, NBi will take of checking if it's a project or package parameter.

If it doesn't work your feedback is welcome.
Marked as answer by Seddryck on 12/23/2014 at 5:21 AM