We have met with a strange issue in breadcrumb navigation:
We first click hyperlink of instance 201400024731
And we go to its detail page, then click Inbox Work center to return to the search result view. Then we click the second instance 201400024710 to reach its detail page, and click Inbox Work center again. Now we delete the 201400024731 via delete icon in toolbar, however we still can find the entry for it in breadcrumb drop down list. The worse thing is, after we choose the drop down list for 201400024731, we actually reach the detail page of 201400024710 which is completely wrong.
We found the issue is caused by missing implementation of GET_MAIN_ENTITY.
After implementing it the issue is gone. The reason why that method is necessary is because:
The class CL_BSP_WD_HIST_MANAGER_BASE has two event handlers:
ON_ENTITY_DELETED is responsible for the removal of history record of deleted bol instance from history storage.
it is registered on method ON_HISTORY_TRIGGER,
which is the event handler for event:
When we are navigating from search result to detail page, GET_MAIN_ENTITY will be called:
The returned main entity is registered for event handler ON_ENTITY_DELETED.
When this very instance is deleted, the event DELETED is raised and caught by event handler ON_ENTITY_DELETED( see callstack below)
The history entry for the deleted BOL entity( o:871) is removed in line 32:
Row one is removed, and in back button drop down list now the entity for deleted BOL entity is removed as expected.