Skip to content

ALOps App License Check

Check App files against a BC license

Property Value
Task name (Azure DevOps) ALOpsAppLicenseCheck@3
Action name (GitHub) alops-applicensecheck
Version 3.0.0
Category Utility
OS requirement Both
Preview yes

Validates Business Central App (.app) files against a BC license to ensure all objects are licensed.

Inputs

license

Name Type Required Default Platform Description
licensefile Text yes (empty) Both Set the BC License File. Path or Url.
expiry_text Text no (empty) Both String to find in license to match for ExpiryDate.
expiry_dateformat Text no (empty) Both Date Format of the Expiry date, example: dd.MM.yyyy
expiry_dayswarning Text no (empty) Both Amount of days before License-Expiry for triggering a warning
expiry_checkonly Boolean no false Both When enabled, only the license expiry check is performed and the full license object check is skipped.

artifacts

Name Type Required Default Platform Description
artifact_path Text no (empty) Both Path for App Artifact.
artifact_filter Text yes *.app Both Filter used for locating App file relative to $(artifact_path).
artifact_include Text no (empty) Both Include-Filter used for locating App file relative to $(artifact_path).
artifact_exclude Text no (empty) Both Exclude-Filter used for locating App file relative to $(artifact_path).
use_alops_compiler_apps Boolean no false Both When enabled, artifact_path and artifact_filter are ignored. Instead, the task reads app paths from the ALOPS_COMPILE_ARTIFACT_ARRAY environment variable (comma-separated), which is populated by a preceding ALOpsAppCompiler task.

exclusions

Name Type Required Default Platform Description
exclude_ranges Text no (empty) Both Exclude-Ranges from LicenseCheck (Buffer / Temporary tables). Format: 60000..60099,70000..70100
exclude_tables Boolean no false Both Exclude Table objects from LicenseCheck.
exclude_codeunits Boolean no false Both Exclude Codeunit objects from LicenseCheck.
exclude_pages Boolean no false Both Exclude Page objects from LicenseCheck.
exclude_reports Boolean no false Both Exclude Report objects from LicenseCheck.
exclude_xmlports Boolean no false Both Exclude XMLPort objects from LicenseCheck.
exclude_queries Boolean no false Both Exclude Query objects from LicenseCheck.

altool

Name Type Required Default Platform Description
altool_package_version Text yes 18.0.33.65164-beta Both Version of the microsoft.dynamics.businesscentral.development.tools NuGet package to use for altool.exe and CodeAnalysis DLL.

behavior

Name Type Required Default Platform Description
warning_only Boolean no false Both Only post warning, do not fail pipeline.

Outputs

Name Description
checklicense_output Summary text of license check results.

Usage

- task: ALOpsAppLicenseCheck@3
  displayName: 'ALOps App License Check'
  inputs:
    licensefile:                                # Set the BC License File. Path or Url. $(licensefile)
    expiry_text:                                # String to find in license to match for ExpiryDate. $(expiry_text)
    expiry_dateformat:                          # Date Format of the Expiry date, example: dd.MM.yyyy $(expiry_dateformat)
    expiry_dayswarning:                         # Amount of days before License-Expiry for triggering a warning $(expiry_dayswarning)
    expiry_checkonly: False                     # When enabled, only the license expiry check is performed and the full license object check is skipped. $(expiry_checkonly)
    artifact_path:                              # Path for App Artifact. $(artifact_path)
    artifact_filter: *.app                      # Filter used for locating App file relative to $(artifact_path). $(artifact_filter)
    artifact_include:                           # Include-Filter used for locating App file relative to $(artifact_path). $(artifact_include)
    artifact_exclude:                           # Exclude-Filter used for locating App file relative to $(artifact_path). $(artifact_exclude)
    use_alops_compiler_apps: False              # When enabled, `artifact_path` and `artifact_filter` are ignored. Instead, the task reads app paths from the `ALOPS_COMPILE_ARTIFACT_ARRAY` environment variable (comma-separated), which is populated by a preceding ALOpsAppCompiler task. $(use_alops_compiler_apps)
    exclude_ranges:                             # Exclude-Ranges from LicenseCheck (Buffer / Temporary tables). Format: 60000..60099,70000..70100 $(exclude_ranges)
    exclude_tables: False                       # Exclude Table objects from LicenseCheck. $(exclude_tables)
    exclude_codeunits: False                    # Exclude Codeunit objects from LicenseCheck. $(exclude_codeunits)
    exclude_pages: False                        # Exclude Page objects from LicenseCheck. $(exclude_pages)
    exclude_reports: False                      # Exclude Report objects from LicenseCheck. $(exclude_reports)
    exclude_xmlports: False                     # Exclude XMLPort objects from LicenseCheck. $(exclude_xmlports)
    exclude_queries: False                      # Exclude Query objects from LicenseCheck. $(exclude_queries)
    altool_package_version: 18.0.33.65164-beta  # Version of the microsoft.dynamics.businesscentral.development.tools NuGet package to use for altool.exe and CodeAnalysis DLL. $(altool_package_version)
    warning_only: False                         # Only post warning, do not fail pipeline. $(warning_only)
- name: ALOps App License Check
  uses: HodorNV/ALOps-V3/alops-applicensecheck@v3   <!-- TODO: confirm action repo path -->
  with:
    licensefile: ''
    expiry_text: ''
    expiry_dateformat: ''
    expiry_dayswarning: ''
    expiry_checkonly: 'false'
    artifact_path: ''
    artifact_filter: '*.app'
    artifact_include: ''
    artifact_exclude: ''
    use_alops_compiler_apps: 'false'
    exclude_ranges: ''
    exclude_tables: 'false'
    exclude_codeunits: 'false'
    exclude_pages: 'false'
    exclude_reports: 'false'
    exclude_xmlports: 'false'
    exclude_queries: 'false'
    altool_package_version: '18.0.33.65164-beta'
    warning_only: 'false'