Deletion Of A Contact Is Not Handled/captured Correctly
(Doc ID 2239965.1)
Last updated on FEBRUARY 06, 2019
Applies to:Siebel CRM - Version 15.9 [IP2015] and later
Information in this document applies to any platform.
Customer would like to know how to handle / capture deletion of a Contact.
Customer has a requirement that when a Contact is deleted (i.e. removed from the database) that a process has to start to synchronize this delete with external applications. They tried to capture this delete event by having script on the BusComp_PreDeleteRecord event. This captured the delete action, enabling them to send the necessary info (Siebel Row Id) to the external application. However, it seems this PreDeleteRecord event is also triggered when a Contact is disassociated from another BC (in the situation where there is a many-to-many relationship between the two BCs). This does not seem to be correct behaviour, as then the Contact is merely disassociated, not removed from the database.
Moving the code to the DeleteRecord event does not work as the event does not seem to be triggered when the Contact is deleted directly (see Doc ID 2081389.1 and bug 22250075). When a user tries to delete the Contact in a detail view where it is the parent BC (the only type of view available for the user, due to security restrictions) only the PreDeleteRecord event is fired, but after deletion the script does not enter the DeleteRecord functionality. They can then not do a check whether the delete action was an actual delete or merely a disassociate.
Having the process be triggered as a workflow policy on the database level event IS DELETED is also not working. As the Contact is the parent BC the WF policy will not fire. This is documented in Bookshelf ( https://docs.oracle.com/cd/E14004_01/books/BPFWorkflow/customizing_workflow_policies28.html ). Furthermore, with the workflow policty the Row Id of the deleted record cannot be identified.
Given this situation and our requirement, their questions are:
1. How can they distinguish, in eScript, between an actual delete record and a disassociation event?
2. How can they capture the DeleteRecord event?
3. Is there any way to only capture the physical deletion of a record from the database, together with the Row Id of the record that has be?
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document