Bug 13937: Add a Z39.50 daemon that can inject item status MARC subfields
authorJesse Weaver <pianohacker@gmail.com>
Fri, 11 Dec 2015 21:26:20 +0000 (14:26 -0700)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Tue, 8 Oct 2019 13:39:30 +0000 (14:39 +0100)
commitf089d393dc421f484bb806b0c587ffefe0d9020b
tree1192f3c0c5fa3c593ee373dea4c0c958823a1e0d
parenta3615f8c10510ed1974a1017134788d3995e99a3
Bug 13937: Add a Z39.50 daemon that can inject item status MARC subfields

This creates a new daemon, misc/z3950_responder.pl, which can respond to
Z39.50 requests. By default, it just proxies searches to Zebra.

If desired, however, it can also add a subfield to the item tags on
outgoing records with a textual description of the item's status
(checked out, lost, etc.). This is useful for certain ILL systems. These
strings can be translated using the 'Z3950_STATUS' authorized value.

Test plan:
  1) Start the Z39.50 server using `perl misc/z3950_responder.pl`.
  2) Connect to the server using `yaz-client 127.0.0.1:9999/biblios`.
  3) Run a search, such as `find @attr 1=1016 book`.
  4) Fetch the results both one at a time with `show 1` and in a batch
     using `show 1+5`.
  5) Turn on MARCXML using `format xml` and `elements marcxml`, and
     verify that the records are still correctly fetched.
  6) Enable the item status subfield by restarting the server with the
     option `--add-item-status=k`.
  7) Search for and fetch records, and verify that a $k subfield is
     added to the item tags as appropriate. It should show some
     combination of "Checked Out", "Lost", "Not For Loan", "Damaged",
     "Withdrawn", "In Transit", or "On Hold" as appropriate, or
     "Available".
  8) Add an authorized value named "Z3950_STATUS" with any of the keys
     "AVAILABLE", "CHECKED_OUT", "LOST", "NOT_FOR_LOAN", "DAMAGED",
     "WITHDRAWN", "IN_TRANSIT" or "ON_HOLD", and verify that their
     descriptions are used instead of the default values above.

Signed-off-by: George Williams <george@nekls.org>
Signed-off-by: Stefan Berndtsson <stefan.berndtsson@ub.gu.se>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
C4/Installer/PerlDependencies.pm
Koha/Logger.pm
Koha/Z3950Responder.pm [new file with mode: 0644]
Koha/Z3950Responder/Session.pm [new file with mode: 0644]
etc/log4perl.conf
misc/z3950_responder.pl [new file with mode: 0755]