Package Properties
A package property can be defined inside of a Package.
There are ten supported property types. They are listed here:

Defining a package property
The default value is the returned value if the solution is not part of a version.
Example

Use PackageProperty in a Sql script
@PackageProperty[PropertyName] in a Sql script
A package property value can be used inside a Sql script.
The returned value is a string representation of the data type. Example of use can be:
@PackageProperty[Profitbase.PackagePropTests.Planning.StartDate].DateExpr
Example
You may want to filter data based on a package property value.

Note
@PackageProperty[name].DateExpr is recommended for casting package properties to datetime.
@PackageProperty[Profitbase.PackagePropertyTests.DateTime].DateTimeOffsetStr
@PackageProperty[Profitbase.PackagePropertyTests.DateTime].DateTimeUtcStr

Use PackageProperty in a PowerShell script
@PackageProperty[PropertyName] in a PowerShell script
A package property value can be used inside a PowerShell script. The returned value is a string representation of the data type. Example of use can be:
$date =
[datetime]::ParseExact('@PackageProperty[Profitbase.PackagePropTests.Planning.NationalHoliday].DateStr',"yyyyMMdd",[Globalization.CultureInfo]::InvariantCulture)
Write-Output $date.Year
Example
Here is an example of use in PowerShell script.

Note
@PackageProperty[name].DateStr is recommended for getting yyyyMMdd formatted representation of date/datetime package properties.
$datetimeoffset =
[datetimeoffset]::ParseExact('@PackageProperty[Profitbase.PackagePropertyTests.DateTime].DateTimeOffsetStr',"yyyyMMdd HH:mm:ss zzz",[Globalization.CultureInfo]::InvariantCulture)
Write-Output $datetimeoffset
$datetimeutc =
[datetime]::ParseExact('@PackageProperty[Profitbase.PackagePropertyTests.DateTime].DateTimeUtcStr',"yyyyMMdd HH:mm:ss",[Globalization.CultureInfo]::InvariantCulture)
Write-Output $datetimeutc

Use Directive in a worksheet column expression
Directive("@PackageProperty[PropertyName]") in a worksheet column expression
A package property value can be used inside a worksheet column’s Is Hidden Expression (Caption Expression and Is Read Only Expression is also supported).
The returned object can be cast to a proper data type. Example of use can be:
((DateTime)Directive("@PackageProperty[Profitbase.PackageName.Planning.StartDate]")).Year == 2020
Example
Here is an example of use in a worksheet column Is Hidden Expression.

((DateTimeOffset)Directive("@PackageProperty[Profitbase.PackagePropertyTests.DateTime]")) == new DateTimeOffset(new DateTime(2021, 8, 19, 16, 0, 0), new TimeSpan(2, 0, 0))

Use PackageProperty in a data flow
Use @PackageProperty in a data flow
A package property value can be utilized as a parameter value in a data flow. The returned value can be cast to the proper data type.
Example
Adding a PowerShell script with a parameter decalaration.

Adding a data flow item parameter
With @PackageProperty[PropertyName] as Default Value

Note
Use @PackageProperty[name].DateStr when dealing with dates to ensure culture invariant datetime parsing.
Mapping the parameters in the Run PowerShell Script Arguments section

Executing the data flow to test that the parameter is parsed OK
