Biblio::ILL::ISO::Shipped - Perl extension for handling ISO 10161 interlibrary loan Shipped messages
Version 0.01
Biblio::ILL::ISO::Shipped is a derivation of the abstract Biblio::ILL::ISO::ISO object, and handles the Shipped message type.
None.
Each of the set_() methods will croak on missing or invalid parameters.
Shipped ::= [APPLICATION 3] SEQUENCE { protocol-version-num [0] IMPLICIT INTEGER, -- { -- version-1 (1), -- version-2 (2) -- }, transaction-id [1] IMPLICIT Transaction-Id, service-date-time [2] IMPLICIT Service-Date-Time, requester-id [3] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-id [4] IMPLICIT System-Id OPTIONAL, -- mandatory when using store-and-forward communications -- optional when using connection-oriented communications responder-address [24] IMPLICIT System-Address OPTIONAL, intermediary-id [25] IMPLICIT System-Id OPTIONAL, supplier-id [26] IMPLICIT System-Id OPTIONAL, client-id [15] IMPLICIT Client-Id OPTIONAL, transaction-type [5] IMPLICIT Transaction-Type, --DEFAULT 1, -- DC - 'EXTERNAL' definition (see Supplemental-Item-Description) -- supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, shipped-service-type [27] IMPLICIT Shipped-Service-Type, responder-optional-messages [28] IMPLICIT Responder-Optional-Messages-Type OPTIONAL, supply-details [29] IMPLICIT Supply-Details, return-to-address [30] IMPLICIT Postal-Address OPTIONAL, responder-note [46] ILL-String OPTIONAL, shipped-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL }
new()
Base constructor for the class. It just returns a completely empty message object, which you'll need to populate with the various set_() methods, or use the read() method to read a Shipped message from a file (followed by a call to from_asn() to turn the read's returned hash into a proper Shipped message.
The constructor also initializes the Convert::ASN1 if it hasn't been initialized.
For any example code, assume the following: my $msg = new Biblio::ILL::ISO::Shipped;
To read a message from a file, use the following:
my $href = $msg->read("msg_03.shipped.ber"); $msg = $msg->from_asn($href);
The from_asn() method turns the hash returned from read() into a proper message-type object.
Sets the protocol version number. Acceptable parameter values are the strings: version-1 version-2
Sets the message's transaction-id. Expects a valid Biblio::ILL::ISO::TransactionId. my $tid = new Biblio::ILL::ISO::TransactionId("PLS","001","", new Biblio::ILL::ISO::SystemId("MWPL")); $msg->set_transaction_id($tid); This is a mandatory field.
Sets the message's service-date-time. Expects a valid Biblio::ILL::ISO::ServiceDateTime. my $dt_this = new Biblio::ILL::ISO::DateTime("20030623","114400"); my $dt_orig = new Biblio::ILL::ISO::DateTime("20030623","114015") my $sdt = new Biblio::ILL::ISO::ServiceDateTime( $dt_this, $dt_orig); $msg->set_service_date_time($sdt); This is a mandatory field.
Sets the message's requester-id. Expects a valid Biblio::ILL::ISO::SystemId. my $reqid = new Biblio::ILL::ISO::SystemId(); $reqid->set_person_name("David A. Christensen"); $msg->set_requester_id($reqid); This is an optional field.
Sets the message's responder-id. Expects a valid Biblio::ILL::ISO::SystemId. my $resid = new Biblio::ILL::ISO::SystemId("MWPL"); $msg->set_responder_id($resid); This is an optional field.
Sets the message's responder-address. Expects a valid Biblio::ILL::ISO::SystemAddress. my $rad = new Biblio::ILL::ISO::SystemAddress("SMTP","pls\@gov.mb.ca"); $msg->set_responder_address($rad); This is an optional field.
Sets the message's intermediary-id. Expects a valid Biblio::ILL::ISO::SystemAddress. my $iid = new Biblio::ILL::ISO::SystemId(); $iid->set_institution_name("The Great Library of Alexandria"); $msg->set_intermediary_id($iid); This is an optional field.
Sets the message's supplier-id. Expects a valid Biblio::ILL::ISO::SystemId. my $sid = new Biblio::ILL::ISO::SystemId("MWPL"); $msg->set_supplier_id($sid); This is an optional field.
Sets the message's client-id. Expects a valid Biblio::ILL::ISO::ClientId. my $cid = new Biblio::ILL::ISO::ClientId("David Christensen", "Most excellent", "007" ); $msg->set_client_id($cid) This is an optional field.
Sets the message's transaction-type. Expects a valid Biblio::ILL::ISO::TransactionType. my $tt = new Biblio::ILL::ISO::TransactionType("simple"); $msg->set_transaction_type($tt); This is a mandatory field.
Sets the message's shipped-service-type. Expects a valid Biblio::ILL::ISO::ShippedServiceType. my $sst = new Biblio::ILL::ISO::ShippedServiceType("loan"); $msg->set_shipped_service_type($sst); This is a mandatory field.
Sets the message's responder-optional-messages. Expects a valid Biblio::ILL::ISO::ResponderOptionalMessageType. my $rom = new Biblio::ILL::ISO::ResponderOptionalMessageType(1,1, "desires", "requires" ); $msg->set_responder_optional_messages($rom); This is an optional field.
Sets the message's supply-details. Expects a valid Biblio::ILL::ISO::SupplyDetails. my $smt = new Biblio::ILL::ISO::SupplyMediumType("audio-recording"); my $upmt = new Biblio::ILL::ISO::UnitsPerMediumType( $smt, 3); my $upmts = new Biblio::ILL::ISO::UnitsPerMediumTypeSequence( $upmt ); my $sc = new Biblio::ILL::ISO::ShippedConditions("no-reproduction"); my $tm = new Biblio::ILL::ISO::TransportationMode("Canada Post"); my $sv = new Biblio::ILL::ISO::ShippedVia( $tm ); my $sd = new Biblio::ILL::ISO::SupplyDetails("20030813", "20030920", 123, "45.67", $sc, $sv, new Biblio::ILL::ISO::Amount("50.00"), "50.00", $upmts ); $msg->set_supply_details($sd); This is a mandatory field.
Sets the message's return-to-address. Expects a valid Biblio::ILL::ISO::PostalAddress. my $rta = new Biblio::ILL::ISO::PostalAddress("Manitoba Public Library Services", "", "Unit 200", "1525 First Street South", "", "Brandon", "MB", "CANADA", "R7A 7A1" ); $msg->set_return_to_address($rta); This is an optional field.
Sets the message's responder-note. Expects a simple text string. $msg->set_responder_note("This is a responder note"); This is an optional field.
Biblio::ILL::ISO::ISO Biblio::ILL::ISO::Request Biblio::ILL::ISO::ForwardNotification Biblio::ILL::ISO::Shipped Biblio::ILL::ISO::Answer Biblio::ILL::ISO::ConditionalReply Biblio::ILL::ISO::Cancel Biblio::ILL::ISO::CancelReply Biblio::ILL::ISO::Received Biblio::ILL::ISO::Recall Biblio::ILL::ISO::Returned Biblio::ILL::ISO::CheckedIn Biblio::ILL::ISO::Overdue Biblio::ILL::ISO::Renew Biblio::ILL::ISO::RenewAnswer Biblio::ILL::ISO::Lost Biblio::ILL::ISO::Damaged Biblio::ILL::ISO::Message Biblio::ILL::ISO::StatusQuery Biblio::ILL::ISO::StatusOrErrorReport Biblio::ILL::ISO::Expired
See the README for system design notes.
For more information on Interlibrary Loan standards (ISO 10160/10161), a good place to start is:
http://www.nlc-bnc.ca/iso/ill/main.htm
David Christensen, <DChristensenSPAMLESS@westman.wave.ca>
Copyright 2003 by David Christensen
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Biblio::ILL::ISO::asn, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Biblio::ILL::ISO::asn
CPAN shell
perl -MCPAN -e shell install Biblio::ILL::ISO::asn
For more information on module installation, please visit the detailed CPAN module installation guide.