In this article we will look into the difference between the PER_ALL_ASSIGNMENTS_M and _F tables which is the most confusing part for developers when they want to build queries based on the assignment information tables.
There are multiple tables for Assignment Information and we will look into details on which table stores what information:
PER_ALL_ASSIGNMENTS_M – This is the core table which stores all assignment related information.
PER_ALL_ASSIGNMENTS_F – This is a view based our of PER_ALL_ASSIGNMENTS_M table and picks up only the latest row for each effective date.
If multiple transactions are not there for a day, both _M and _F fetches same data for that day. If there are MCPD (Multiple Changes Per Day) then _F will fetch only one row whereas _M will fetch multiple rows.
EFFECTIVE_LATEST_CHANGE = ‘Y’ is the only condition added to the PER_ALL_ASSIGNMENTS_M to get _F view.
PER_ALL_ASSIGNMENTS_M_ – This is the audit table for core assignment table. If Auditing for Assignment business object is enabled, then data will get stored in this table for every update/delete/correction on assignment information. All Audit tables end with underscore ( _ ) character.
Hope you are now clear on the difference between these tables and ready to use then as per your requirement.