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