Package Properties
Package Properties are variables that can be used by functionality within the Solution that the Package is deployed. The most common case for Package Properties is when Packages are used in Work Processes. Package Properties defines the settings for Work Process Versions that process owners can manage to configure Work Process Versions. Examples of typical Package Properties are planning period start dates and end dates.
When creating Package Properties, it is essential to use a naming scheme that makes the property unique. For example, if you want a property named “StartDate”, and your Package is called “Hypotesia”, you should name your property “Hypotesia.StartDate”.
It needs to be unique, because different packages can be deployed to the same Solution, and the scope of a Package Property is the Solution, not the Package. The reason for the scope being the Solution and not the Package is that Package Properties also serve as interfaces between Packages.
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.