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

    When doing a search on ISSN, one ADM gets different results

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

    Description:
    We have an ISSN search set up for our ACQ index. This index creates entries in the Z79 table. It works for all checked libraries but 1. The Z79 table has an entry for the ISSN in both ADMs.

    TST50 - Z79 entry

    01 z79_index \
    02 z79_rec_key \
    03 type ...........ISSN
    03 filing_text ....0194-5947
    03 doc_number_1 ...000001189
    03 sequence_1 .....00001
    02 z79_alpha ........L
    02 z79_text .........0194-5947
    02 z79_order_key \
    03 doc_number .....000001189
    03 sequence .......00001
    02 z79_filter_1 .....TST
    02 z79_filter_2 .....SV
    02 z79_filter_3 .....
    02 z79_filter_4 .....S
    02 z79_filter_5 .....AE
    02 z79_filter_6 .....N
    02 z79_filter_7 .....N
    02 z79_filter_8 .....P
    02 z79_filter_9 .....20030802
    02 z79_filter_10 ....20030802


    MSU50 - Z79 entry:

    01 z79_index \
    02 z79_rec_key \
    03 type ...........ISSN
    03 filing_text ....0194-5947
    03 doc_number_1 ...000218680
    03 sequence_1 .....00001
    02 z79_alpha ........L
    02 z79_text .........0194-5947
    02 z79_order_key \
    03 doc_number .....000218680
    03 sequence .......00001
    02 z79_filter_1 .....MSU
    02 z79_filter_2 .....SV
    02 z79_filter_3 .....7
    02 z79_filter_4 .....S
    02 z79_filter_5 .....AE
    02 z79_filter_6 .....N
    02 z79_filter_7 .....N
    02 z79_filter_8 .....P
    02 z79_filter_9 .....20030701
    02 z79_filter_10 ....20030701


    When I do a search on this ISSN in TST50, I get my one record and can do my work. When I do the same search in MSU50, I get a set of records. I turned on the pc transaction_log and caught the different results.

    The search in TST50:

    01 c0335_remote \
    02 c0335_service ............C0335
    02 c0335_action .............
    02 c0335_library ............TST50
    02 c0335_con_lng ............ENG
    02 c0335_user_name ..........PALS101
    02 c0335_user_password ......**********
    02 c0335_error_code .........00
    02 c0335_error_control_id ...0000
    02 c0335_error_alpha ........
    02 c0335_error_text .........
    02 c0335_message_text .......
    02 c0335_data ...............0194-5947
    02 c0335_code ...............ISSN
    02 c0335_reply \
    03 adm_doc_number .........000000000
    03 item_sequence ..........000000
    03 multi_adm_doc ..........
    03 set_library ............
    03 set_number .............000000
    IP Address : 199.017.248.124:0

    ELAPSED-TIME: C0335 10:51:23 136.9214

    01 c0335_remote \
    02 c0335_service ............C0335
    02 c0335_action .............
    02 c0335_library ............TST50
    02 c0335_con_lng ............ENG
    02 c0335_user_name ..........PALS101
    02 c0335_user_password ......**********
    02 c0335_error_code .........00
    02 c0335_error_control_id ...0000
    02 c0335_error_alpha ........
    02 c0335_error_text .........
    02 c0335_message_text .......
    02 c0335_data ...............0194-5947
    02 c0335_code ...............issn
    02 c0335_reply \
    03 adm_doc_number .........000001189
    03 item_sequence ..........000000
    03 multi_adm_doc ..........
    03 set_library ............SYS01
    03 set_number .............092792

    The search in MSU50:

    01 c0335_remote \
    02 c0335_service ............C0335
    02 c0335_action .............
    02 c0335_library ............MSU50
    02 c0335_con_lng ............ENG
    02 c0335_user_name ..........PALS106
    02 c0335_user_password ......**********
    02 c0335_error_code .........00
    02 c0335_error_control_id ...0000
    02 c0335_error_alpha ........
    02 c0335_error_text .........
    02 c0335_message_text .......
    02 c0335_data ...............0194-5947
    02 c0335_code ...............ISSN
    02 c0335_reply \
    03 adm_doc_number .........000000000
    03 item_sequence ..........000000
    03 multi_adm_doc ..........
    03 set_library ............
    03 set_number .............000000


    01 c0335_remote \
    02 c0335_service ............C0335
    02 c0335_action .............
    02 c0335_library ............MSU50
    02 c0335_con_lng ............ENG
    02 c0335_user_name ..........PALS106
    02 c0335_user_password ......**********
    02 c0335_error_code .........00
    02 c0335_error_control_id ...0000
    02 c0335_error_alpha ........
    02 c0335_error_text .........
    02 c0335_message_text .......
    02 c0335_data ...............0194-5947
    02 c0335_code ...............issn
    02 c0335_reply \
    03 adm_doc_number .........000000000
    03 item_sequence ..........000000
    03 multi_adm_doc ..........Y
    03 set_library ............SYS01
    03 set_number .............092793

    The only difference I see is that the multi_adm_doc flag is set to Y in the MSU50 result.

    Why is this set? I've tried the same type of search in other ADMs and I get the single record back even though there are multiple records system wide. It is only the MSU50 searches that end up with

    Resolution:
    If the ADM has multiple doc records which contain the ISSN, then an index will display which contains all doc records which contain this ISSN in *all* ADMs. (If the ADM has only a single doc record which contains the ISSN, the system will go to it directly -- without displaying an index.)

    The following SQL shows that there are two MSU50 records connected to a doc record with ISSN 01945947:

    sys01@ALEPH1> select substr (z103_rec_key,1,14) from z103 where z103_lkr_type = 'ADM' and substr(z103_rec_key_1,6,9) in (select z11_doc_number from z11 where z11_rec_key like 'ISSN 01945947%');
    **** Hit return to continue ****

    SUBSTR(Z103_REC_KEY,1,14)
    ------------------------------------------
    BSU50000143049
    BSU50000149755
    DTE50000001095
    HRL50000010378
    LRL50000003960
    MSU50000218680
    MSU50006199794
    SCS50000285412
    SCS50000297116
    SCS50003699321
    TST50000001189


    This is the underlying program logic....

    pc_serial_c0335.cbl:

    STRING
    "serial2_find_"
    C0335-CODE (1: L)
    DELIMITED BY SIZE
    INTO
    PROG-NAME
    END-STRING.
    ...
    CALL PROG-NAME USING
    C0335-LIBRARY
    C0335-DATA
    C0335-ADM-DOC-NUMBER
    C0335-ITEM-SEQUENCE
    C0335-SET-LIBRARY
    C0335-SET-NUMBER
    C0335-ERROR-CODE
    END-CALL.
    MOVE SAVE-LIBRARY TO ACTIVE-LIBRARY.

    IF C0335-ERROR-CODE = 33 <-------------
    THEN
    MOVE ZERO TO C0335-ERROR-CODE
    MOVE "Y" TO C0335-MULTI-ADM-DOC
    END-IF.


    serial2_find_issn.cbl:

    CALL "serial2_get_admdoc_from_set" USING
    ADM-LIBRARY
    BIB-LIBRARY
    BUF-FIND-SET-NUMBER
    L-DOC-NUMBER
    ERROR-CODE
    END-CALL.

    IF ERROR-CODE = ZERO
    THEN
    MOVE L-DOC-NUMBER TO DOC-NUMBER
    ELSE
    MOVE 33 TO L-ERROR-CODE <-----------------
    MOVE ZERO TO DOC-NUMBER
    END-IF.


    serial2_get_admdoc_from_set.cbl:

    IF MATCH-COUNT > 1
    THEN
    MOVE ZERO TO DOC-NUMBER
    MOVE 24 TO L-ERROR-CODE
    END-IF.


    • Article last edited: 10/8/2013