For the production environment, we create a deployment package and upload the extension to production. The objects that are part of the extension change, and some have been removed. However, I noticed that there are objects in production tied to old extensions that cannot be removed. I thought that excluding the object from the extension would remove it. How can I remove these old objects tied to extensions that are no longer present in the system?
Hi @dbologna,
Can you please explain how the objects are tied to old extensions with concrete example if possible?
What errors are you getting when removing the old objects?
Can you try importing the old extensions first, then remove the old objects, lastly delete the imported old extension?
If the old extension is not available anymore, can you try recreating the missing dependent entities (with the exact entity name) and remove again?
Best,
Hi TonyZhans,
First of all, we're in a production environment and it's not possible to delete/import extensions.
I can create a new extension to which I add the old Things, but once I've imported the extension, these Things can't be removed because they're part of an extension.
Is there a way to remove a Thing that's part of an extension?
BR
Dimitri
Hi @dbologna,
To remove Things that are part of an extension, you have to delete the extension itself.
Please refer to Help Center for how to delete an extension.
You can then import the new extension without unwanted old Things.
If the imported extension has some issues, you should have detected this in Test or QA environment before going to production. It's a good chance to review your deployment process.
If the Things in extension have already been used by many other entities in Production, you may want to consider leaving the old Things as it is and simply mark them as deprecated or use permission control to hide the old things from developers.
Best,
Hi @dbologna
I would like to share some feedback based on our current project setup. We have developed a project on the development server and plan to import it to the test and production environments as an extension.
During my testing, I observed the following behavior:
For example, if a package contains Thing1, Thing2, and Thing3 and I import it on the test server, all three entities are successfully created. However, if I later delete Thing3 on the development server, rebuild the package, and re-import it on the test server, then Thing3 is also automatically deleted from the test system.
Additionally, an entity (e.g., a Thing) cannot be deleted manually if it is already part of an extension.
I have structured the setup using two projects — Project A and Project A Configs:
Project A contains all main application components such as Things (business logic services), Mashups, etc.
Project A Configs contains all configuration elements such as User Groups, Users, and Dataset Things (used for configuration data). These datasets drive mashup dropdowns and other filtering functionalities.
All User Groups are part of Project A Configs, except for one specific User Group that depends on Project A.
When I create an extension, I temporarily delete all users from this User Group, because they are already included in Project A Configs. After importing the extension, these users are automatically re-associated with the User Group, since they were previously imported manually (only required the first time).
This structure keeps the solution clean and maintainable.
Whenever we receive new configuration data from the customer (for example, new product types or station lists), I can easily update the corresponding Dataset Things directly through a dedicated mashup I’ve created for managing configuration data.