Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Fields in a mapping profile can be constructed via the FOLIO UI. Some level of validation exists in the FOLIO UI but much less on Data Import APIs. The FOLIO settings UI is responsible for enumerating valid values that a field can contain. This list of "accepted value" is saved into mod-data-import-converter-storage as is. Incorrect accepted values can be saved in mod-data-import-cs. mod-data-import-cs needs to be augmented to apply validation steps similar to the FOLIO UI. mod-data-import-cs should make calls to retrieve pertinent reference data from other FOLIO modules as needed. As it stands, critical business logic lives only in the FOLIO UI when it should be present in the FOLIO module.

A representation of a mapping field should exist in mod-data-import-cs. This representation should also have a link to its origin; some URL most likelyFOLIO domain areas like Inventory, Orders, Invoices. With the mapping field origin present, this will allow mod-data-import-cs to be able to do the same validation that the FOLIO UI performs.

...

Profile validation should start occurring on mod-data-import-cs. Upon creation or update of a job profile, validation should occur with data sourced from the mapping field origin. Good error messages should be returned to allow easier troubleshooting. Adding this to mod-data-import-cs will make it independent from the FOLIO UI.

mod-data-import-cs will validate every Match, Action, Mapping & Job profile that is persisted within. mod-data-import-cs will be aware of the origin of a profile, e.g. action profile for "create instance", belongs to inventory. Inventory will validate the profile and send a response back to mod-data-import-cs. Some preliminary validations should occur at mod-data-import-cs. Here is a sequence diagram of the example
Image Added

mod-inventory can be replaced with other FOLIO domain areas for validation of components of a Job Profile. mod-data-import-cs will determine the destination of a Profile object.

The endpoint should be similar to /inventory/data-import-profiles/validate. The endpoint will accept an array of Profiles and return an arrray of results. Order of the results should match the corresponding input.


3. Profile Transformation

...