bcquality/community/knowledge/appsource/define-profiles-as-al-objects.md
Stefano Demiliani 45ac371e7a
Add AL-focused AppSource validation guidance (#142)
* knowledge(appsource): add AL validation guidance

* Address Marketplace review feedback

* Address remaining Marketplace review feedback

* Align AppSource review applicability outcome
2026-09-14 12:42:45 +02:00

1.2 KiB

bc-version domain keywords technologies countries application-area
all
appsource
profile-object
profile-table
install-codeunit
role-center
page-customization
al
w1
all

Define profiles as AL objects

Description

Profiles delivered by a Marketplace extension must be declared as AL profile objects. A profile object is validated with its Role Center and page customizations when the extension is compiled and is registered through extension synchronization. Inserting profile-table records from install or setup code bypasses that object lifecycle.

Best Practice

Declare each app-owned profile with the profile object and set its RoleCenter, user-facing caption, and optional customizations in AL. Let installation and synchronization register the object.

See sample: define-profiles-as-al-objects.good.al.

Anti Pattern

Install, upgrade, or setup code that creates an app-owned profile by inserting a Profile table record. Detection signal: a Record Profile variable followed by Insert in profile provisioning code.

See sample: define-profiles-as-al-objects.bad.al.