Use the new Shift+Alt+E shortcut in the AL code editor to invoke a list of all events. You can use type ahead to dynamically search and filter the event list, and when pressing return to select an event entry, an event subscriber for the event will be inserted at the cursor position in the active AL code editor window.
Declare multiple variables of the same type in the same line, using a comma to separate variable names. For example, "foo, bar : Integer;
Using Sync-NAVApp, a developer can move a field from a table to a table extension without the need to write upgrade code
The partners will use a new API (fixed app management endpoint, of FAME) and Azure DevOps services to manage their apps and orchestrate the steps of the release (release pipeline). Once a partner app has been tested in a Docker container and has passed automated AppSource validation checks, the production-ready app will be submitted for the AppSource automatic and additional manual validation via the Microsoft Partner Center portal as usual. When the app is approved, the ISV will proceed with a phased rollout of the app to all of its customers, using the previous version of the ISV app, across multiple countries. New versions of the partner apps will be made available to the customers to upgrade to on the Extension Management page so that customers can install or upgrade to those when they see fit.
When developing extensions that integrate with Common Data Service, Business Central 2020 release wave 1 will bring extensibility capabilities, where Common Data Service tables and Common Data Service table extensions can be created. This will allow for any custom attribute to be synchronized
Business Central artifacts (Reports, API Pages, and Queries) now can get access to a read-only replica of the database. The Page, Report and Query objects have a new property called “DataAccessIntent” that can take values ReadOnly or ReadWrite. This property works as a hint for the server, which will connect to the secondary replica if possible. When a workload is executed against the replica, insert/delete/modify operations are not possible, so a new validation is introduced for ReadOnly objects. Any of these operations will throw an exception at runtime (new compile-time validation will be added in the future)
Use the new interface object to declare an interface name along with its methods, and apply the implements keyword along with the interface names on objects that implement the interface methods. The interface object itself does not contain any code, only signatures, and cannot itself be called from code, but must be implemented by other objects. The compiler checks to ensure implementations adhere to assigned interfaces. A new QuickFix CodeAction can be used to insert interface stubs, if the compiler errors on one or more interface implementations are missing.