When dealing with the majority of child objects – either Standard or Custom – through the parent workspace, two options are displayed to the user for adding a new record: “Add New” and “Add Existing“.
The truth is sometimes the child object is not actually the child object. Example: If we want to create a Many-to-Many relationship we need to create an object in between the two objects that we want to link. Thus, the child object in the workspace is actual the “inter-table”.
Therefore, the “Add Existing” option no longer makes sense and it might actually confuse the user, as he might think he is adding an existing child record when in fact he is trying to add an existing “inter-table” record.
The solution to avoid this is to disable the “Add Existing” option for the user. But how can we do this? Well there are two ways.
a) Remove “Update” permissions for that object
Removing the “Update” permission from the Profiles will make the “Add Existing” option, on the top of the report, to be greyed out.
After removing the “Update” permission for the Profiles, the “Add Existing” option will be greyed out as follows.
b) Change the control that presents that object
This option is the best when the object between the two that we need to link with a Many-to-Many relationship needs to be updated.
Usually the control used on the Workspace to display a child object is the “Relationship Item”. This control will display the chosen report with the two options shown above: “Add New” and “Add Existing“.
But, if instead we replace the “Relationship Item” control by a “Report” control (and choose the same report to be displayed)…
… now the report will only show the “Add New” button, and the “Add Existing” option won’t be even shown.