115
Per: https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-extension-install-code

We have system triggers for OnInstallAppPerCompany() and OnInstallAppPerDatabase(). It would be very useful to have matching OnUninstallAppPerCompany() and OnUninstallAppPerDatabase().

Handling these through the existing Install subtype or a new Uninstall subtype would be good.
Category: Development
STATUS DETAILS
Under Review
Ideas Administrator

Thank you for your feedback. We are considering adding it to our longer term roadmap.

Best regards,
Business Central Team

Comments

J

It would be interesting for resetting standard values as Reports & Layouts once a customer no longer wants the extension.

Category: Development

J

Now that we got support for Isolated Events (https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-events-isolated), this should be quite straight forward to implement.


If the extension uninstall code fails, just proceed with uninstall.

Category: Development

J

Linked to old GitHub request for additional details (and closing that)
https://github.com/microsoft/AL/issues/191

Category: Development

J

Such event should exist but if u installing fails, we (VAR or customer) have to be able to force it.
Cleaning data could also be a task done by the platform and not by the app. If the user uninstall an app, he could have the ability to delete the data.

Category: Development

J

Great idea. For cleaning up setup that is connected to the app like job queues or report selections.

Category: Development

J

Brilliant idea, really looking forward to this beeing implemented.

Category: Development

J

I should be possible to prevent uninstalling, if this addon contains fiscal relevant data that has to be archived for auditing.
So every addon should not completely block deinstalling, but it may disallow it.

Category: Development

J

Some scenarios for which we need this:
Clean up data, like workflow triggers and responses.
Stop or pause subscriptions in case of monetization

We might need context information, e.g. is the uninstall performed automatically by the platform because of an upgrade or in a dependency chain. Then the app will most probably also be reinstalled moments later.
But the most interesting scenario is when a user decides to manually uninstall the app.

Category: Development

J

I think it would be good to have such methods. For example, to eliminate job queues that have been set up with extension objects.

Category: Development

J

Great Idea, but keep in mind that it should never be possible to block deinstallation of an app.

Category: Development