Copied from the comments of
MODDICORE-87 - confusion in JobProfile processing that has to be discussed:
1. Update of the MARC record implicitly triggers update of the Instance. Therefore, in order to update Instance, applying all the necessary protection settings, user has to create Profile with MARC-to-MARC Updates mapping profile and "Modify" action profile. Match also needs to be done on MARC fields, not Instance fields, as this kind of processing takes place in mod-source-record-storage.
2. Update of the Instance (without explicit update of the underlying MARC) would save the imported MARC as the source (not really update the existing, but replace the original one) and would use the specified MARC-to-Instance mapping profile to update the Instance (happens in mod-inventory). In order to apply protection settings (and protection overrides for that matter), there has to be a MARC-to-MARC mapping step (that takes place in mod-source-record-storage), which is absent in case of the simple Instance update. However, in case MARC-to-MARC mapping is present along with an action for updating MARC, there is no need for explicit Instance update.
Possible long-term solution (instead of MODSOURCE-196)
Break down the current logic of automatic updates and require from the users to list all the necessary actions on all the entities explicitly while creating a JobProfile. This way JobProfiles would be transparent and the logic of its processing - straightforward.
- remove pre-processing and post-processing steps
- add explicit "Create MARC record" step
- make explicit "Update MARC record" step (mandatory for updates of all other Folio records - Instance, Holding, Item)
Points to consider: If update of source MARC is mandatory for all the subsequent updates, how to ensure that user always adds this step building a JobProfile?