Steps to reproduce
- Create an Object Manager package by selecting the Report to be deleted and setting the Action during the package creation to DELETE.
- Then deploy the package using Object Manager in another environment selection the option Import and Generate Undo package.
- See that the Undo package gets successfully created and it also shows the comment saying “Package successfully deployed”.
- But the report does not get deleted, since there are other Objects depending on it, it should return an error in such a case.
Cause
Generally speaking, Intelligence Server will execute the 'Delete' action with the best-effort strategy. If the object (set with 'Delete' action) is still been used by any object, Intelligence Server will fail to delete the object and print the information in the log. For a more detailed explanation, please check the section “How the Delete action is executed“ below.
How to check the failure deletion
When the end-user found the object still exists even though the action is set to Delete, the end-user could check the information from the source manipulator log:
2022-04-13 03:58:48.241-04:00 [HOST:tec-w-1003864][SERVER:][PID:10016][THR:16916][Client Services][Source Manipulator][UID:0][SID:0][OID:0][CDSSBulkMergeValidate.cpp:ValidateDeletion at line:679] Deletion failed: Object is in use: Object(Name="Year" Type=Attribute ID=8D679D5111D3E4981000E787EC6DE8A4 Proj=B19DEDCC11D4E0EFC000EB9495D0F44F Ver=24CEEC7044C6C7008EE0DF96565E9459 )
To check the log, end-users need to turn on the source manipulator log via Strategy Diagnostics and Performance Logging Tool ( “Client Services“->”Source Manipulator” ).
The above source manipulator log indicates that Attribute “Year“ is failed to be deleted since it is still in use. The failure deletion of the object will not fail the package import process. As a result, end-users will still get the “Package successfully deployed“ result.
If the end-user does want to delete the objects, the end-user needs to make sure objects, which depend on the target object, get deleted prior to the target object. Then, the end-user could apply the package again.