| Lines 258-263
          my $handlers = {
      
      
        Link Here | 
        
          | 258 |             'transaction_id', | 258 |             'transaction_id', | 
        
          | 259 |         ], | 259 |         ], | 
        
          | 260 |     }, | 260 |     }, | 
            
              |  |  | 261 |     hold => { | 
            
              | 262 |         name       => 'Hold', | 
            
              | 263 |         subroutine => \&build_hold_command_message, | 
            
              | 264 |         parameters => { | 
            
              | 265 |             hold_mode           => '+', | 
            
              | 266 |             transaction_date    => $transaction_date, | 
            
              | 267 |             expiration_date     => undef, | 
            
              | 268 |             pickup_location     => undef, | 
            
              | 269 |             hold_type           => undef, | 
            
              | 270 |             institution_id      => $location_code, | 
            
              | 271 |             patron_identifier   => $patron_identifier, | 
            
              | 272 |             patron_password     => $patron_password, | 
            
              | 273 |             item_identifier     => $item_identifier, | 
            
              | 274 |             title_identifier    => undef, | 
            
              | 275 |             terminal_password   => $terminal_password, | 
            
              | 276 |             fee_acknowledged    => $fee_acknowledged, | 
            
              | 277 |         }, | 
            
              | 278 |         optional => [ | 
            
              | 279 |             'expiration_date', | 
            
              | 280 |             'pickup_location', | 
            
              | 281 |             'hold_type', | 
            
              | 282 |             'patron_password', | 
            
              | 283 |             'item_identifier', | 
            
              | 284 |             'title_identifier', | 
            
              | 285 |             'terminal_password', | 
            
              | 286 |             'fee_acknowledged', | 
            
              | 287 |         ], | 
            
              | 288 |     }, | 
        
          | 261 | }; | 289 | }; | 
        
          | 262 |  | 290 |  | 
        
          | 263 | my $data = run_command_message('login'); | 291 | my $data = run_command_message('login'); | 
  
    | Lines 459-464
          sub build_checkin_command_message {
      
      
        Link Here | 
        
          | 459 |       . build_field( FID_CANCEL,       $cancel, { optional => 1 } ); | 487 |       . build_field( FID_CANCEL,       $cancel, { optional => 1 } ); | 
        
          | 460 | } | 488 | } | 
        
          | 461 |  | 489 |  | 
            
              |  |  | 490 | sub build_hold_command_message { | 
            
              | 491 |     my ($params) = @_; | 
            
              | 492 |  | 
            
              | 493 |     my $hold_mode         = $params->{hold_mode} || '+'; | 
            
              | 494 |     my $transaction_date  = $params->{transaction_date}; | 
            
              | 495 |     my $expiration_date   = $params->{expiration_date}; | 
            
              | 496 |     my $pickup_location   = $params->{pickup_location}; | 
            
              | 497 |     my $hold_type         = $params->{hold_type}; | 
            
              | 498 |     my $institution_id    = $params->{institution_id}; | 
            
              | 499 |     my $patron_identifier = $params->{patron_identifier}; | 
            
              | 500 |     my $patron_password   = $params->{patron_password}; | 
            
              | 501 |     my $item_identifier   = $params->{item_identifier}; | 
            
              | 502 |     my $title_identifier  = $params->{title_identifier}; | 
            
              | 503 |     my $terminal_password = $params->{terminal_password}; | 
            
              | 504 |     my $fee_acknowledged  = $params->{fee_acknowledged} || 'N'; | 
            
              | 505 |  | 
            
              | 506 |     return | 
            
              | 507 |         HOLD | 
            
              | 508 |       . $hold_mode | 
            
              | 509 |       . $transaction_date | 
            
              | 510 |       . build_field( FID_EXPIRATION,   $expiration_date,   { optional => 1 } ) | 
            
              | 511 |       . build_field( FID_PICKUP_LOCN,  $pickup_location,   { optional => 1 } ) | 
            
              | 512 |       . build_field( FID_HOLD_TYPE,    $hold_type,         { optional => 1 } ) | 
            
              | 513 |       . build_field( FID_INST_ID,      $institution_id                       ) | 
            
              | 514 |       . build_field( FID_PATRON_ID,    $patron_identifier                    ) | 
            
              | 515 |       . build_field( FID_PATRON_PWD,   $patron_password,   { optional => 1 } ) | 
            
              | 516 |       . build_field( FID_ITEM_ID,      $item_identifier,   { optional => 1 } ) | 
            
              | 517 |       . build_field( FID_TITLE_ID,     $title_identifier,  { optional => 1 } ) | 
            
              | 518 |       . build_field( FID_TERMINAL_PWD, $terminal_password, { optional => 1 } ) | 
            
              | 519 |       . build_field( FID_FEE_ACK,      $fee_acknowledged,  { optional => 1 } ); | 
            
              | 520 | } | 
            
              | 521 |  | 
        
          | 462 | sub build_renew_command_message { | 522 | sub build_renew_command_message { | 
        
          | 463 |     my ($params) = @_; | 523 |     my ($params) = @_; | 
        
          | 464 |  | 524 |  | 
  
    | Lines 580-591
          Options:
      
      
        Link Here | 
        
          | 580 |   -m --message     SIP2 message to execute | 640 |   -m --message     SIP2 message to execute | 
        
          | 581 |  | 641 |  | 
        
          | 582 |   Implemented Messages: | 642 |   Implemented Messages: | 
            
              | 583 |     patron_status_request |  |  | 
            
              | 584 |     patron_information | 
            
              | 585 |     item_information | 
            
              | 586 |     checkout | 
        
          | 587 |     checkin | 643 |     checkin | 
          
            
              | 588 |     renew | 644 |     checkout | 
        
          | 589 |     fee_paid | 645 |     fee_paid | 
            
              |  |  | 646 |     hold | 
            
              | 647 |     item_information | 
            
              | 648 |     patron_information | 
            
              | 649 |     patron_status_request | 
            
              | 650 |     renew | 
        
          | 590 | / | 651 | / | 
        
          | 591 | } | 652 | } | 
            
              | 592 | -  |  |  |