Trigger CRM Access Control Engine(ACE) for any business entity
Author: Ravi K
Submitted: 27/09/2013
Description : This code snippet can be used to trigger ACE for any business object . As an example, we are using Business partner to trigger/update the ACE.
Super Object type for Business partner is ACCOUNTCRM.
Following code can be used to trigger/update the Access Control Engine for corresponding Business partner.
Data: lt_guid TYPE crmt_ace_object_guid,
ls_object_guids TYPE crms_ace_object_guid,
lt_guid_with_otype TYPE crmt_ace_objs_with_type,
lc_source TYPE crm_ace_prc_source.
.
CALL METHOD CL_CRM_ACE_OBJECT=>GET_CRM_OTYPE_OF_GUIDS
EXPORTING
IV_CRM_SUPER_TYPE = ‘ACCOUNTCRM’
IT_OBJECT_GUIDS = lt_guid “lt_guid contains GUID of BP for which ACE has to be triggered
IMPORTING
ET_GUIDS_WITH_OTYPE = lt_guid_with_otype.
CALL METHOD CL_CRM_ACE_OBJECT=>PROCESS_OBJECT_CHANGE
EXPORTING
IT_OBJECT_LIST = lt_guid_with_otype
IM_PRC_SRC_ID = lc_source.
COMMIT WORK.
The value of ACE process source ID (i.e, lc_source) can be obtained from database table CRM_ACE_PRC_SRC. In our case, it is PRC_SRC_REFRESH_TOOL.
The updated/triggered ACE object for corresponding entity can be seen in transaction code ACE_UPDATE.
Nice blog Ravi....
Great, very useful. Thanks!