From: Joe Atzberger Date: Mon, 10 May 2010 21:37:13 +0000 (+0000) Subject: Add 3M extension constants and structuralize EXPORT_TAGS X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=572600f29c361a01e2e98814107fdac354a380f3;p=working%2FSIPServer.git Add 3M extension constants and structuralize EXPORT_TAGS --- diff --git a/Sip/Constants.pm b/Sip/Constants.pm index 1449b47..1a8ac53 100644 --- a/Sip/Constants.pm +++ b/Sip/Constants.pm @@ -31,180 +31,91 @@ use Exporter; our (@ISA, @EXPORT_OK, %EXPORT_TAGS); -@ISA = qw(Exporter); +BEGIN { + @ISA = qw(Exporter); + %EXPORT_TAGS = ( -@EXPORT_OK = qw(PATRON_STATUS_REQ CHECKOUT CHECKIN BLOCK_PATRON - SC_STATUS REQUEST_ACS_RESEND LOGIN PATRON_INFO - END_PATRON_SESSION FEE_PAID ITEM_INFORMATION - ITEM_STATUS_UPDATE PATRON_ENABLE HOLD RENEW - RENEW_ALL PATRON_STATUS_RESP CHECKOUT_RESP - CHECKIN_RESP ACS_STATUS REQUEST_SC_RESEND - LOGIN_RESP PATRON_INFO_RESP END_SESSION_RESP - FEE_PAID_RESP ITEM_INFO_RESP - ITEM_STATUS_UPDATE_RESP PATRON_ENABLE_RESP - HOLD_RESP RENEW_RESP RENEW_ALL_RESP - REQUEST_ACS_RESEND_CKSUM REQUEST_SC_RESEND_CKSUM - FID_PATRON_ID FID_ITEM_ID FID_TERMINAL_PWD - FID_PATRON_PWD FID_PERSONAL_NAME FID_SCREEN_MSG - FID_PRINT_LINE FID_DUE_DATE FID_TITLE_ID - FID_BLOCKED_CARD_MSG FID_LIBRARY_NAME - FID_TERMINAL_LOCN FID_INST_ID FID_CURRENT_LOCN - FID_PERM_LOCN FID_HOME_LIBRARY FID_HOLD_ITEMS - FID_OVERDUE_ITEMS FID_CHARGED_ITEMS FID_FINE_ITEMS - FID_SEQNO FID_CKSUM FID_HOME_ADDR FID_EMAIL - FID_HOME_PHONE FID_OWNER FID_CURRENCY FID_CANCEL - FID_TRANSACTION_ID FID_VALID_PATRON - FID_RENEWED_ITEMS FID_UNRENEWED_ITEMS FID_FEE_ACK - FID_START_ITEM FID_END_ITEM FID_QUEUE_POS - FID_PICKUP_LOCN FID_FEE_TYPE FID_RECALL_ITEMS - FID_FEE_AMT FID_EXPIRATION FID_SUPPORTED_MSGS - FID_HOLD_TYPE FID_HOLD_ITEMS_LMT - FID_OVERDUE_ITEMS_LMT FID_CHARGED_ITEMS_LMT - FID_FEE_LMT FID_UNAVAILABLE_HOLD_ITEMS - FID_HOLD_QUEUE_LEN FID_FEE_ID FID_ITEM_PROPS - FID_SECURITY_INHIBIT FID_RECALL_DATE - FID_MEDIA_TYPE FID_SORT_BIN FID_HOLD_PICKUP_DATE - FID_LOGIN_UID FID_LOGIN_PWD FID_LOCATION_CODE - FID_VALID_PATRON_PWD + SC_msgs => [qw( + PATRON_STATUS_REQ + CHECKOUT CHECKIN + SC_STATUS REQUEST_ACS_RESEND + LOGIN PATRON_INFO END_PATRON_SESSION + FEE_PAID ITEM_INFORMATION ITEM_STATUS_UPDATE + HOLD RENEW RENEW_ALL + PATRON_ENABLE + BLOCK_PATRON + )], - FID_PATRON_BIRTHDATE FID_PATRON_CLASS FID_INET_PROFILE + ACS_msgs => [qw( + PATRON_STATUS_RESP + CHECKOUT_RESP CHECKIN_RESP + ACS_STATUS REQUEST_SC_RESEND + LOGIN_RESP PATRON_INFO_RESP END_SESSION_RESP + FEE_PAID_RESP ITEM_INFO_RESP ITEM_STATUS_UPDATE_RESP + HOLD_RESP RENEW_RESP RENEW_ALL_RESP + PATRON_ENABLE_RESP + )], - SC_STATUS_OK SC_STATUS_PAPER SC_STATUS_SHUTDOWN - SIP_DATETIME); + SC_status => [qw(SC_STATUS_OK SC_STATUS_PAPER SC_STATUS_SHUTDOWN)], + formats => [qw(SIP_DATETIME)], + constant_msgs => [qw(REQUEST_ACS_RESEND_CKSUM REQUEST_SC_RESEND_CKSUM)], -%EXPORT_TAGS = ( + field_ids => [qw( + FID_PATRON_ID FID_ITEM_ID + FID_TERMINAL_PWD FID_PATRON_PWD + FID_PERSONAL_NAME FID_DUE_DATE + FID_SCREEN_MSG FID_PRINT_LINE + FID_TITLE_ID FID_BLOCKED_CARD_MSG + FID_TERMINAL_LOCN FID_INST_ID + FID_CURRENT_LOCN FID_LIBRARY_NAME + FID_PERM_LOCN + FID_HOLD_ITEMS FID_HOLD_ITEMS_LMT + FID_OVERDUE_ITEMS FID_OVERDUE_ITEMS_LMT + FID_CHARGED_ITEMS FID_CHARGED_ITEMS_LMT + FID_FINE_ITEMS FID_SEQNO + FID_CKSUM FID_HOME_ADDR + FID_EMAIL FID_HOME_PHONE + FID_OWNER FID_CURRENCY + FID_CANCEL + FID_TRANSACTION_ID FID_VALID_PATRON + FID_RENEWED_ITEMS + FID_UNRENEWED_ITEMS + FID_FEE_ACK + FID_START_ITEM FID_END_ITEM FID_QUEUE_POS + FID_PICKUP_LOCN FID_FEE_TYPE + FID_RECALL_ITEMS + FID_FEE_AMT FID_FEE_LMT + FID_EXPIRATION + FID_SUPPORTED_MSGS + FID_HOLD_TYPE + FID_UNAVAILABLE_HOLD_ITEMS + FID_HOLD_QUEUE_LEN + FID_FEE_ID FID_ITEM_PROPS + FID_RECALL_DATE FID_SECURITY_INHIBIT + FID_MEDIA_TYPE FID_SORT_BIN + FID_HOLD_PICKUP_DATE + FID_LOGIN_UID FID_LOGIN_PWD + FID_LOCATION_CODE + FID_VALID_PATRON_PWD + FID_PATRON_BIRTHDATE + FID_PATRON_CLASS + FID_INET_PROFILE - SC_msgs => [qw(PATRON_STATUS_REQ CHECKOUT CHECKIN - BLOCK_PATRON SC_STATUS - REQUEST_ACS_RESEND LOGIN - PATRON_INFO - END_PATRON_SESSION FEE_PAID - ITEM_INFORMATION - ITEM_STATUS_UPDATE - PATRON_ENABLE HOLD RENEW - RENEW_ALL)], + FID_COLLECTION_CODE + FID_CALL_NUMBER + FID_DESTINATION_LOCATION + FID_ALERT_TYPE + FID_HOLD_PATRON_ID + FID_HOLD_PATRON_NAME + )], + ); - ACS_msgs => [qw(PATRON_STATUS_RESP CHECKOUT_RESP - CHECKIN_RESP ACS_STATUS - REQUEST_SC_RESEND LOGIN_RESP - PATRON_INFO_RESP - END_SESSION_RESP - FEE_PAID_RESP ITEM_INFO_RESP - ITEM_STATUS_UPDATE_RESP - PATRON_ENABLE_RESP HOLD_RESP - RENEW_RESP RENEW_ALL_RESP)], - - constant_msgs => [qw(REQUEST_ACS_RESEND_CKSUM - REQUEST_SC_RESEND_CKSUM)], - - field_ids => [qw( FID_PATRON_ID FID_ITEM_ID - FID_TERMINAL_PWD - FID_PATRON_PWD - FID_PERSONAL_NAME - FID_SCREEN_MSG - FID_PRINT_LINE FID_DUE_DATE - FID_TITLE_ID - FID_BLOCKED_CARD_MSG - FID_LIBRARY_NAME - FID_TERMINAL_LOCN - FID_INST_ID - FID_CURRENT_LOCN - FID_PERM_LOCN - FID_HOME_LIBRARY - FID_HOLD_ITEMS - FID_OVERDUE_ITEMS - FID_CHARGED_ITEMS - FID_FINE_ITEMS FID_SEQNO - FID_CKSUM FID_HOME_ADDR - FID_EMAIL FID_HOME_PHONE - FID_OWNER FID_CURRENCY - FID_CANCEL - FID_TRANSACTION_ID - FID_VALID_PATRON - FID_RENEWED_ITEMS - FID_UNRENEWED_ITEMS - FID_FEE_ACK FID_START_ITEM - FID_END_ITEM FID_QUEUE_POS - FID_PICKUP_LOCN - FID_FEE_TYPE - FID_RECALL_ITEMS - FID_FEE_AMT FID_EXPIRATION - FID_SUPPORTED_MSGS - FID_HOLD_TYPE - FID_HOLD_ITEMS_LMT - FID_OVERDUE_ITEMS_LMT - FID_CHARGED_ITEMS_LMT - FID_FEE_LMT - FID_UNAVAILABLE_HOLD_ITEMS - FID_HOLD_QUEUE_LEN - FID_FEE_ID FID_ITEM_PROPS - FID_SECURITY_INHIBIT - FID_RECALL_DATE - FID_MEDIA_TYPE FID_SORT_BIN - FID_HOLD_PICKUP_DATE - FID_LOGIN_UID FID_LOGIN_PWD - FID_LOCATION_CODE - FID_VALID_PATRON_PWD - - FID_PATRON_BIRTHDATE - FID_PATRON_CLASS - FID_INET_PROFILE)], - - SC_status => [qw(SC_STATUS_OK SC_STATUS_PAPER - SC_STATUS_SHUTDOWN)], - - formats => [qw(SIP_DATETIME)], - - all => [qw(PATRON_STATUS_REQ CHECKOUT CHECKIN - BLOCK_PATRON SC_STATUS - REQUEST_ACS_RESEND LOGIN PATRON_INFO - END_PATRON_SESSION FEE_PAID - ITEM_INFORMATION ITEM_STATUS_UPDATE - PATRON_ENABLE HOLD RENEW RENEW_ALL - PATRON_STATUS_RESP CHECKOUT_RESP - CHECKIN_RESP ACS_STATUS - REQUEST_SC_RESEND LOGIN_RESP - PATRON_INFO_RESP END_SESSION_RESP - FEE_PAID_RESP ITEM_INFO_RESP - ITEM_STATUS_UPDATE_RESP - PATRON_ENABLE_RESP HOLD_RESP - RENEW_RESP RENEW_ALL_RESP - REQUEST_ACS_RESEND_CKSUM - REQUEST_SC_RESEND_CKSUM FID_PATRON_ID - FID_ITEM_ID FID_TERMINAL_PWD - FID_PATRON_PWD FID_PERSONAL_NAME - FID_SCREEN_MSG FID_PRINT_LINE - FID_DUE_DATE FID_TITLE_ID - FID_BLOCKED_CARD_MSG FID_LIBRARY_NAME - FID_TERMINAL_LOCN FID_INST_ID - FID_CURRENT_LOCN FID_PERM_LOCN FID_HOME_LIBRARY - FID_HOLD_ITEMS FID_OVERDUE_ITEMS - FID_CHARGED_ITEMS FID_FINE_ITEMS - FID_SEQNO FID_CKSUM FID_HOME_ADDR - FID_EMAIL FID_HOME_PHONE FID_OWNER - FID_CURRENCY FID_CANCEL - FID_TRANSACTION_ID FID_VALID_PATRON - FID_RENEWED_ITEMS FID_UNRENEWED_ITEMS - FID_FEE_ACK FID_START_ITEM - FID_END_ITEM FID_QUEUE_POS - FID_PICKUP_LOCN FID_FEE_TYPE - FID_RECALL_ITEMS FID_FEE_AMT - FID_EXPIRATION FID_SUPPORTED_MSGS - FID_HOLD_TYPE FID_HOLD_ITEMS_LMT - FID_OVERDUE_ITEMS_LMT - FID_CHARGED_ITEMS_LMT FID_FEE_LMT - FID_UNAVAILABLE_HOLD_ITEMS - FID_HOLD_QUEUE_LEN FID_FEE_ID - FID_ITEM_PROPS FID_SECURITY_INHIBIT - FID_RECALL_DATE FID_MEDIA_TYPE - FID_SORT_BIN FID_HOLD_PICKUP_DATE - FID_LOGIN_UID FID_LOGIN_PWD - FID_LOCATION_CODE FID_VALID_PATRON_PWD - FID_PATRON_BIRTHDATE FID_PATRON_CLASS - FID_INET_PROFILE - SC_STATUS_OK SC_STATUS_PAPER SC_STATUS_SHUTDOWN - SIP_DATETIME - )]); + # Add the contents of the other ":class" tags to make an ":all" class (deleting duplicates) + # This is the textbook example from http://perldoc.perl.org/Exporter.html + my %seen; + push @{$EXPORT_TAGS{all}}, grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach keys %EXPORT_TAGS; + Exporter::export_ok_tags('all'); # now add :all to @EXPORT_OK +} # # Declare message types @@ -338,16 +249,24 @@ use constant { FID_PATRON_BIRTHDATE => 'PB', FID_PATRON_CLASS => 'PC', - # SIP Extension for reporting patron internet privileges + # SIP Extension for reporting patron internet privileges... application unknown FID_INET_PROFILE => 'PI', + + # SIP Extensions by 3M spec: Document Revision 1.20, 02/14/2005 + FID_COLLECTION_CODE => 'CR', + FID_CALL_NUMBER => 'CS', + FID_DESTINATION_LOCATION => 'CT', + FID_ALERT_TYPE => 'CV', + FID_HOLD_PATRON_ID => 'CY', + FID_HOLD_PATRON_NAME => 'DA', }; # # SC Status Codes # use constant { - SC_STATUS_OK => '0', - SC_STATUS_PAPER => '1', + SC_STATUS_OK => '0', + SC_STATUS_PAPER => '1', SC_STATUS_SHUTDOWN => '2', }; @@ -357,3 +276,5 @@ use constant { use constant { SIP_DATETIME => "%Y%m%d %H%M%S", }; + +1;