Add if/then logic to the field mapping profiles - DRAFT

Description

Current situation or problem: Have the ability to use regex or some sort of syntax for if/the, If call number range = x-y, then assign permanent location = z in the holdings record

In scope

  • How much logic is needed? Go to complete regex, or something smaller?

  • Make sure this can work for all 3 inventory record types

  • Also needed for SRS MARC records?

  • Also needed for orders?

  • Also needed for invoices?

Out of scope

Use case(s)
TBD: would be great to have some examples here from libraries

  • If field is 050, assign classification type LC vs If field is 060, assign classification type NLM

  • If 852 indicator 1 is x, assign classification y (see https://www.loc.gov/marc/holdings/hd852.html)

  • If call number range = x-y, then assign permanent location = z in the holdings record

Additional Use cases - ECS

  • Library A example: 050 mapping should also have 090 field added 

  • Library B - SuDoc Classification needed ??? 

  • Library C - Any classification scheme defined by the indicators or $2, LC, Non-LC (second indicator 4 of 050), documents, and the other (indicator 7, 8) 

  • Library D - State docs ???

  • Library E - At our institution, we use first indicator 8 in the holdings record for multiple things, so it could indicate that the item is a our Document, or a manuscript collection, etc. Our document would always have the source specified in $2 of the bib record (086 or 099), if that would be helpful to distinguish.  

  • One additional use case is we routinely remove certain 6xx fields related to subject thesauri.  Some of our logic looks like this in Alma:

    removeField "6**" if (exists "6**.{*,3}")

    removeField "6**" if (exists "6**.{*,4}")

    removeField "6**" if (exists "6**.{*,5}")

    removeField "6**" if (exists "6**.{*,6}")

    removeField "6**" if (exists "6**.2.acapub|agrissc)

     

    Also, at times we remove 856 fields when records come across with vendor specific data.  Examples such as this.

    removeField "856" if (exists "856.a.http://ebookcentral.proquest.com")

    removeField "856" if (exists "856.u.http://proxy.library.carleton.ca*")

    removeField "856" if (exists "856.u.http://libproxy.uwyo.edu*")

    removeField "856" if (exists "856.u.http://www.library.yorku.ca*")

Proposed solution/stories

Links to additional info

Questions

Priority

Fix versions

Development Team

Assignee

Solution Architect

Parent Field Value

None

Parent Status

None

defines

Checklist

hide

TestRail: Results

Activity

Show:

Details

Reporter

PO Rank

Release

Rank: Cornell (Full Sum 2021)

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created June 22, 2021 at 7:15 PM
Updated February 25, 2025 at 7:04 PM
TestRail: Cases
TestRail: Runs