Thursday 3 May 2018

Tenant Customization Rules in Dynamics 365 Business Central



As I mentioned in my previous training session here,
we came across below error while Uploading Tenant Customization App in production environment.

Publish operation failed with code PackageValidationFailed. Details: Extension validation failed. View the error details for more information.

There are certain rules that needs to be followed while developing tenant customizations.

1.   If we have created PageExtension object then we have to make sure that all Page fields, parts and action controls have ApplicationArea property set.

2.   If we have created new Table object then we have to make sure that
·       Object ID must be in free range.
·       Field ID must be in free range.
·       We have to create new Permission Set with new table created. (I have attached sample permission set format below, these permission sets to be included in folder where we are developing)

3.   If we have created Page Object then we have to make sure that all Page fields, parts and action controls have ApplicationArea property set.

4.   If we have created Report Object then we have to make sure that Report request page field controls have ApplicationArea property set.

5.   Functions must not subscribe to CompanyOpen events.

6.   Property 'target' should not have ‘Internal’ in app.json file.

7.   Encryption key functions must not be invoked.

8.   Test assertion functions are not allowed in a non-test context.





<PermissionSets>
  <PermissionSet RoleID="<Add your ROLE ID>" RoleName="<Add your role name>">
    <Permission>
      <ObjectType>0</ObjectType>
      <ObjectID>50100</ObjectID>
      <ReadPermission>1</ReadPermission>
      <InsertPermission>0</InsertPermission>
      <ModifyPermission>0</ModifyPermission>
      <DeletePermission>0</DeletePermission>
      <ExecutePermission>0</ExecutePermission>
      <SecurityFilter />
    </Permission>
    <Permission>
      <ObjectType>1</ObjectType>
      <ObjectID>50100</ObjectID>
      <ReadPermission>0</ReadPermission>
      <InsertPermission>0</InsertPermission>
      <ModifyPermission>0</ModifyPermission>
      <DeletePermission>0</DeletePermission>
      <ExecutePermission>1</ExecutePermission>
      <SecurityFilter />
    </Permission>
  </PermissionSet>
</PermissionSets>

No comments:

Post a Comment