Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    tab_match_script_oclc and record overlays

    • Article Type: General
    • Product: Aleph
    • Product Version: 16.02

    Description:
    We are doing some loader testing with multiple copies of the same item going to three sublibraries and encounter this problem: Three different records are being created - each has the item and holding for the correct sublibrary, but there should only be one bib record since it's the same item. In our oclc_server log, we see the message, "5016 Input docx was inserted into DB" for each record processed, indicating it is adding a new bib record for each library.

    Why would one ADM create separate bib records for each while one is matching and merging as appropriate? We have checked to ensure that both units were doing the same process on OCLC Connexion so we believe there should be no difference in that portion of the procedures.

    Resolution:
    The problem is the structure of tab_match_script_oclc. You currently have this:

    !!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!-!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!>
    01 match_doc_gen 1+ stop TYPE=IND,TAG=035##,SUBFIELD=a,CODE=035
    01 0 goto 02
    02 match_doc_gen 1+ stop TYPE=IND,TAG=020##,SUBFIELD=a,CODE=ISBN
    02 0 goto 03
    03 match_doc_gen 1+ stop TYPE=IND,TAG=022##,SUBFIELD=a,CODE=ISSN
    03 0 goto 05
    05 1 stop
    05 0 stop
    05 2+ stop

    This says if there is more than one hit, stop. Since there would be exactly 1 hit in this situation, it doesn’t stop. What you want to do is stop and return to the calling program as soon as you find a single match. I think the table should be changed to look more like this:

    !!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!-!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!>
    01 match_doc_gen 1 stop TYPE=IND,TAG=035##,SUBFIELD=a,CODE=035
    01 1+ goto 02
    01 0 goto 02
    02 match_doc_gen 1 stop TYPE=IND,TAG=020##,SUBFIELD=a,CODE=ISBN
    02 1+ goto 03
    02 0 goto 03
    03 match_doc_gen 1 stop TYPE=IND,TAG=022##,SUBFIELD=a,CODE=ISSN
    03 1+ goto 05
    03 0 goto 05
    05 1+ stop
    05 0 stop

    I had stared at the original table for quite a while and thought it was okay, but I didn't realize that "1+" means "2 or more" matches. So, in your current script table, there is no case for 1 match; you match for multiples and for 0, but not for 1. So, the suggested change to the script might very well solve your problem.


    • Article last edited: 10/8/2013