Deletion Of A Contact Is Not Handled/captured Correctly (Doc ID 2239965.1)

Last updated on MARCH 06, 2017

Applies to:

Siebel CRM - Version 15.9 [IP2015] and later
Information in this document applies to any platform.

Symptoms

Customer would like to know how to handle / capture deletion of a Contact.

Problem Description:
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 triggerend 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 triggerend 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?

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms