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

    Problem with a homemade fix procedure

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

    Description:
    I have created a new homemade fix designed to change the second indicator of a bibliographic field, based on the content of a subfield from the same field.

    /xxx01/tab/import/856_indicateur_fix

    ! 2 3 4 5 6 7 8 9
    !-!!!!!-!!-!-!!!-!!!-!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1 856## COND-LOAD-VAL-MATCH N,$$3Table des mati?res
    2 856## CHANGE-SECOND-IND # 8

    xxx01/tab/tab_fix
    ! 1 2 3
    !!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
    856ID fix_doc_do_file_08 856_indicateur_fix

    When we run this fix with manage37, it does not replace the second indicator with a "8".

    Examples from the output file :

    030000434 856 L $$3R?sum?$$uhttp://www.uqtr.ca/biblio/notice/resume/30000434R.pdf
    030000434 856 L $$3Table des mati?res$$uhttp://www.uqtr.ca/biblio/notice/tablemat/30000434TM.pdf

    030004623 85641 L $$3Table des mati?res$$uhttp://www.loc.gov/catdir/toc/ecip0620/2006028907.html
    030004623 85642 L $$3Description de l'ouvrage$$uhttp://www.loc.gov/catdir/enhancements/fy0666/2006028907-d.html

    In these examples, the string "Table des mati?res" is present in the $3 subfield, so why isn't the second indicator replaced with a "8" ?

    What's wrong with that fix ?

    I also tried the following, but it's not working :

    ! 2 3 4 5 6 7 8 9
    !-!!!!!-!!-!-!!!-!!!-!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1 856## CHANGE-SECOND-IND-MATCH #,8,$$3Table des #

    The fix was run of our TEST server.

    Resolution:
    First, I find that replacing the indicator in a file of ALEPH Sequential File records doesn't work because of the grave accent over the e. However, when I added an 856 to a bib record online with this value:

    856 $$3 Table des mati?res $$u http://www.uqtr.ca/biblio/notice/tablemat/30000434TM.pdf

    and ran manage-37 with this in the fix_script:

    1 856## COND-LOAD-VAL-MATCH N,$$3Table des mati?res
    1 856## CHANGE-SECOND-IND # 8

    It did find the match and inserted the 8 in the second indicator position.

    However, there is another problem. If there are two 856 tags like this:

    856 $$3 R?sum? $$u http://www.uqtr.ca/biblio/notice/resume/30000434R.pdf
    856 $$3 Table des mati?res $$u http://www.uqtr.ca/biblio/notice/tablemat/30000434TM.pdf

    neiter tag gets the indicator change, even though the 2nd one worked the first time. The reason is the way COND-LOAD-VAL-MATCH works. This is a routine that says whether the record should be processed or not - not whether individual tags should be processed. So when you have this:

    1 856## COND-LOAD-VAL-MATCH N,$$3Table des mati?res

    it means don't process this record if you find an 856 that doesen't match this criteria. And even though one 856 does match, the system checks all the 856's. When it finds one that doesn't match, it skips the record altogether.

    However, I found a way to do what you want. I created a fix script with this single line:

    1 856## CHANGE-SECOND-IND-MATCH #,8,$$3Table des mati?res

    When I ran it on the record with two 856 tags, it resulted in this:

    856 $$3 R?sum? $$u http://www.uqtr.ca/biblio/notice/resume/30000434R.pdf
    856 8 $$3 Table des mati?res $$u http://www.uqtr.ca/biblio/notice/tablemat/30000434TM.pdf


    • Article last edited: 10/8/2013