Understand the technical validation requirements
The following items make a checklist of all requirements that you must meet before submitting an extension for validation. If you don't meet these mandatory requirements, your extension fails validation. To get code validation helping you bring your extension package to the Marketplace, you can enable the AppSourceCop code analyzer. Learn more in Using the code analysis tool.
Develop your extension in Visual Studio Code. See Developing extensions for information on this topic.
The app.json file has mandatory properties that you must include. The 'name,' 'publisher,' and 'version' properties must match the values set in your offer description. Here you can also read more about dependency syntax and multiple countries or regions per a single app syntax. See Mandatory app.json properties for information on this topic.
Coding of Date must follow a specific format (no longer region-specific) Use the format yyyymmddD. For example, 20170825D.
Remote services (including all Web services calls) can use either HTTP or HTTPS. However, HTTP calls are only possible by using the HttpRequest AL type. See the HTTP overview for information on this topic.
Only JavaScript based Web client add-ins are supported. The compiler automatically handles the zipping process. Include the new AL controladdin type, JavaScript sources, and build the app. See Control Add-In Object for information on this topic.
The .app file must be digitally signed. See Signing an APP Package File for information on this topic.
The user scenario document must contain detailed steps for all setup and user validation testing. See User Scenario Documentation for information on this topic.
Set the application areas that apply to your controls. Failure to do so results in the control not appearing in Dynamics 365 Business Central. See Application Area property for information on this topic.
Your extension must create permission sets and when marked, should give the user all setup and usage abilities. Don't require a user to have SUPER permissions for setup and usage of your extension. See the following link for information on this topic.
Before submitting for validation, ensure that you can publish, sync, install, uninstall, and reinstall your extension. These steps must be done in a Dynamics 365 Business Central environment. See How to publish your app for information on this topic.
Thoroughly test your extension in a Dynamics 365 Business Central environment. See Testing Your Extension for information on this topic.
Don't use OnBeforeCompanyOpen or OnAfterCompanyOpen. See Replacing these events for information on this topic.
Include the proper upgrade code allowing your app to successfully upgrade from version to version. See Upgrading Extensions for information on this topic.
When you design a page or codeunit for exposure as a web service, avoid generating UI because it can cause exceptions in the calling code. See Restrictions on UI for Objects Exposed as Web Services for information on this topic.
You're required to register affixes for your publisher name and to use them in your extension. In this way, we eliminate collision between apps. See Benefits and Guidelines for information on this topic.
You're required to include a Visual Studio Code test package with your extension. We recommend that you use automated testing with the AL Test Toolkit, and include as much code coverage as you can. See Testing the Advanced Sample Extension for information on this topic.
DataClassification is required for fields of all table extensions. Property must be set to other than ToBeClassified. See Classifying Data for information on this topic.
You must use the Profile object to add profiles instead of inserting them into the Profiles table. See Profile Object for information on this topic.
Use
addfirstandaddlastfor placing your actions on Business Central pages. These options eliminate breaking your app due to Business Central core changes. See Place actions and controls for information on this topic.The extension submitted must not be a runtime package. See Creating Runtime Packages for information on this topic.
The extension submitted must use translation files. See Working with Translation Files for information on this topic.
The extension submitted must specify the
applicationproperty in the app.json manifest. This property is required to compute the minimum release of Business Central targeted by your submission. See Mandatory app.json properties for information on this topic.The extension submitted must have a unique AppId. Every extension must have a unique AppId, and we can't submit per-tenant extensions and Marketplace apps with the same AppId. See Constraints on extension types for information on this topic.