Using CRM_ORDER_ACE_PUBLISH to trigger Object Context Update
Has anyone used CRM_ORDER_ACE_PUBLISH to trigger ACE object context update for specific objects?
Does anyone know of a better way of triggering an object context update for specific objects?
One of our ACE rules says that the Account Owner of a Customer should see all BT's for that customer. Of course a BT doesn't really know or care who the account owner of its customer partner is... so, the AFO gets the customer from partner info and from the customer it gets the account owner and sets the GUID of the account owner as an actor while the AFU just sets the users' BP GUID as its actor. There we have our connection and it all works well.
However, when the account owner of a customer changes the user contexts update fine but the object context update is not, of course, triggered. This means that the new account owner cannot see older BT's for her new account. Once a BT is edited the object context is updated and the new account owner gets to see that BT. Obviously with years worth of old BT's they're not all going to be edited any time soon.
So our problem is with triggering object context update.
Of course from ACE_UPDATE we can go to the Object Context tab and update the context there, but there's no way of finding only those objects that we're interested in. We can do a full update but that runs for hours.
It seems to me that SAP use CRM_ORDER_ACE_PUBLISH to push entries to the ACE worklist table in the DB and trigger the job...
Does anyone have some experience using the FM to trigger the object context update?
Have I completely overlooked some other, normal and good way of doing this?
Patrick O'Niell replied
In case someone searches for this in the future... It seems to work fine.
I collect from crmd_orderadm_h those entries that I wish to update their object contexts and pass them to CRM_ORDER_ACE_PUBLISH (it_records_to_update). The FM makes entries in the ACE worklist DB table and the next time the ACE job runs those objects contexts' are updated... seems fine.