Understand the technical validation requirements

Completed

The following is 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 will fail validation. To get code validation and helping you to bring your extension package to AppSource, you can enable the AppSourceCop code analyzer.

  • Develop your extension in Visual Studio Code. See Developing extensions for information on this topic.

  • The app.json file has mandatory settings that you must include. Here you can also read more about dependency syntax and multiple countries or regions per a single app syntax. See json files 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 zipping process is handled automatically by the compiler. Simply 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 will result in the control not appearing in Dynamics 365 Business Central. See Application Area property for information on this topic.

  • Permission set(s) must be created by your extension and when marked, should give the user all setup and usage abilities. A user must not be required to have SUPER permissions for setup and usage of your extension. See the following for information on this topic.

  • Before submitting for validation, ensure that you can publish, sync, install, uninstall, and reinstall your extension. This 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.

  • Pages and code units that are designed to be exposed as Web Services must not generate any UI that would cause an exception in the calling code. See Restrictions on UI for Objects Exposed as Web Services for information on this topic.

  • You are required to prefix or suffix the Name of your fields and objects. This eliminates collision between apps. See Benefits and Guidelines for information on this topic.

  • You are required to include a Visual Studio Code test package with your extension. Ensure that you 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 addfirst and addlast for placing your actions on Business Central pages. This eliminates breaking your app due to Business Central core changes. See Place actions and controls for information on this topic.