Re: [OPEN-ILS-DEV] SIP2: Unexpected Results from Patron Info Request (Msg 64)

2008-04-23 Thread David J. Fiander

Brandon,

That makes sense.

This probably hasn't come up before because there are few SIP clients  
that implement lots of enhanced functionality, like renewing and  
paying fines at the terminal.


The code that handles what data gets put into the holds, overdue,  
etc, fields isn't in my SIP protocol code; it's part of the ILS  
backend module that I call.


So, Bill's the one that decided to return the title, rather than the  
barcode.  Well, my test stub code returned titles, because that makes  
it easy to read the packets, and Bill just mirrored that.


Either way, it's pretty straight-forward. you just need to edit the  
ILS::Patron::hold_items() function to return the right stuff from the  
patron record.


- David

On 22-Apr-2008, at 21:30 , Brandon W. Uhlman wrote:


Hi, all.

I think this question is probably going to be for David Fiander,  
mostly, if he still hangs out in these here parts. Maybe Bill or  
someone else with some general experience with SIP2 (not  
necessarily Evergreen) can provide some advice as well.


The SIP Message 63, Patron Information Request, takes a number of  
parameters, the most important of which is a patron barcode (AA).  
In response, the ACS responds with a message 64, Patron Information  
Response, which contains a bunch of information about the patron,  
name, various circulation limits, and a list of the items currently  
charged/overdue/on hold/etc.


Currently, title information on these items is being returned  
through a chain of  calls initiated by calling __circ_to_title().  
Our SIP client vendor expects message 64 to return the item  
identifier (barcode). Further information about the item (including  
title) is received by issuing a message 17 (Item Information  
Request), and receiving back message 18, Item Information Response.


I think the SIP2 standard is poorly written enough that you can  
return any piece of information about the item and still adhere to  
it. The fact that a title can't be guaranteed to identify a  
*unique* item, and that numerous SIP2 requests on the client side,  
including msg 17 (info request) and 29 (renew) expect barcodes,  
leads me to believe that message 64 should *return* barcodes where  
it currently returns titles.


Does anyone have any thoughts on this? If the general consensus is  
that msg 64 should return barcodes, I can prepare and submit a  
patch to that effect.


Thanks,

Brandon

==
Brandon W. Uhlman, Systems Consultant
Public Library Services Branch
Ministry of Education
Government of British Columbia
605 Robson Street, 5th Floor
Vancouver, BC  V6B 5J3

Phone: (604) 660-2972
E-mail: [EMAIL PROTECTED]
[EMAIL PROTECTED]





Re: [OPEN-ILS-DEV] SIP2: Unexpected Results from Patron Info Request (Msg 64)

2008-04-23 Thread Bill Erickson

David J. Fiander wrote:

Brandon,

That makes sense.

This probably hasn't come up before because there are few SIP clients 
that implement lots of enhanced functionality, like renewing and paying 
fines at the terminal.


Right.  I can also see cases where the data is displayed to the user, in 
which case titles are a good thing to return.




The code that handles what data gets put into the holds, overdue, etc, 
fields isn't in my SIP protocol code; it's part of the ILS backend 
module that I call.


So, Bill's the one that decided to return the title, rather than the 
barcode.  Well, my test stub code returned titles, because that makes it 
easy to read the packets, and Bill just mirrored that.


Either way, it's pretty straight-forward. you just need to edit the 
ILS::Patron::hold_items() function to return the right stuff from the 
patron record.


In Brandon's case, we're talking about Patron::overdue_items() and 
Patron::charged_items(), though, right?


Shortly, I'll be implementing an org unit setting to support the 
suppression of holds information in patron information requests.  (In 
the case where the client doesn't care about the holds information and a 
patron has 50+ holds, it's just passing around a lot of unnecessary 
data.)  Along those same lines, we could add an additional org unit 
setting to determine what data is returned from the 
overdue|charged_items() calls...


-bill



--
Bill Erickson
| VP, Software Development  Integration
| Equinox Software, Inc. / The Evergreen Experts
| phone: 877-OPEN-ILS (673-6457)
| email: [EMAIL PROTECTED]
| web: http://esilibrary.com


Re: [OPEN-ILS-DEV] SIP2: Unexpected Results from Patron Info Request (Msg 64)

2008-04-23 Thread Mike Rylander
On Wed, Apr 23, 2008 at 11:38 AM, Bill Erickson [EMAIL PROTECTED] wrote:
 David J. Fiander wrote:

  Brandon,
 
  That makes sense.
 
  This probably hasn't come up before because there are few SIP clients that
 implement lots of enhanced functionality, like renewing and paying fines at
 the terminal.
 

  Right.  I can also see cases where the data is displayed to the user, in
 which case titles are a good thing to return.


Indeed.  I don't remember checking out a book called 23423400234...



 
  The code that handles what data gets put into the holds, overdue, etc,
 fields isn't in my SIP protocol code; it's part of the ILS backend module
 that I call.
 
  So, Bill's the one that decided to return the title, rather than the
 barcode.  Well, my test stub code returned titles, because that makes it
 easy to read the packets, and Bill just mirrored that.
 
  Either way, it's pretty straight-forward. you just need to edit the
 ILS::Patron::hold_items() function to return the right stuff from the patron
 record.
 

  In Brandon's case, we're talking about Patron::overdue_items() and
 Patron::charged_items(), though, right?

  Shortly, I'll be implementing an org unit setting to support the
 suppression of holds information in patron information requests.  (In the
 case where the client doesn't care about the holds information and a patron
 has 50+ holds, it's just passing around a lot of unnecessary data.)  Along
 those same lines, we could add an additional org unit setting to determine
 what data is returned from the overdue|charged_items() calls...


I think this is perfect.  sip2.display.item_info.type =
(title|barcode|...) or similar and have the SIP2 driver investigate
that setting.

  -bill



  --
  Bill Erickson
  | VP, Software Development  Integration
  | Equinox Software, Inc. / The Evergreen Experts
  | phone: 877-OPEN-ILS (673-6457)
  | email: [EMAIL PROTECTED]
  | web: http://esilibrary.com




-- 
Mike Rylander
 | VP, Research and Design
 | Equinox Software, Inc. / The Evergreen Experts
 | phone: 1-877-OPEN-ILS (673-6457)
 | email: [EMAIL PROTECTED]
 | web: http://www.esilibrary.com


Re: [OPEN-ILS-DEV] SIP2: Unexpected Results from Patron Info Request (Msg 64)

2008-04-23 Thread David J. Fiander
From Brandon's report, it looks like the client he's dealing with  
expects a barcode, and knows that it needs to pass the barcode back  
to the ILS to get the human item information associated with that  
barcode.


Regardless, this change requires at least extensive consultation with  
the current user community, or a system-level configuration parameter  
(as Mike suggested), or both.


Don't get too carried away about suppressing the returning of holds  
information without further exploration either. My reading of the  
protocol is that the client may send a simple Patron Info Request to  
find out how many of each thing there is, and then follow up with a  
more complex Patron Info Request to get the details about a class of  
item. We _know_ that multiple PI Requests are necessary, since a  
single PI Response can only return info about one class of item.


Of course, if you already have log info indicating that clients  
(software) are stupid and asking for way too much info all at once,  
then go wild. It might make sense to say, There are 53 holds  
outstanding, and then present a list of just the first 10, and count  
on the client (software, again) knowing enough to request further  
info if desired.


- David

On 23-Apr-2008, at 11:38 , Bill Erickson wrote:


David J. Fiander wrote:

Brandon,
That makes sense.
This probably hasn't come up before because there are few SIP  
clients that implement lots of enhanced functionality, like  
renewing and paying fines at the terminal.


Right.  I can also see cases where the data is displayed to the  
user, in which case titles are a good thing to return.


The code that handles what data gets put into the holds, overdue,  
etc, fields isn't in my SIP protocol code; it's part of the ILS  
backend module that I call.
So, Bill's the one that decided to return the title, rather than  
the barcode.  Well, my test stub code returned titles, because  
that makes it easy to read the packets, and Bill just mirrored that.
Either way, it's pretty straight-forward. you just need to edit  
the ILS::Patron::hold_items() function to return the right stuff  
from the patron record.


In Brandon's case, we're talking about Patron::overdue_items() and  
Patron::charged_items(), though, right?


Shortly, I'll be implementing an org unit setting to support the  
suppression of holds information in patron information requests.   
(In the case where the client doesn't care about the holds  
information and a patron has 50+ holds, it's just passing around a  
lot of unnecessary data.)  Along those same lines, we could add an  
additional org unit setting to determine what data is returned from  
the overdue|charged_items() calls...


-bill



--
Bill Erickson
| VP, Software Development  Integration
| Equinox Software, Inc. / The Evergreen Experts
| phone: 877-OPEN-ILS (673-6457)
| email: [EMAIL PROTECTED]
| web: http://esilibrary.com




Re: [OPEN-ILS-DEV] SIP2: Unexpected Results from Patron Info Request (Msg 64)

2008-04-23 Thread Mike Rylander
On Wed, Apr 23, 2008 at 12:19 PM, David J. Fiander [EMAIL PROTECTED] wrote:
 From Brandon's report, it looks like the client he's dealing with expects a
 barcode, and knows that it needs to pass the barcode back to the ILS to get
 the human item information associated with that barcode.

  Regardless, this change requires at least extensive consultation with the
 current user community, or a system-level configuration parameter (as Mike
 suggested), or both.

To be fair, Bill suggested it.  I just produced an example.


  Don't get too carried away about suppressing the returning of holds
 information without further exploration either. My reading of the protocol
 is that the client may send a simple Patron Info Request to find out how
 many of each thing there is, and then follow up with a more complex Patron
 Info Request to get the details about a class of item. We _know_ that
 multiple PI Requests are necessary, since a single PI Response can only
 return info about one class of item.


I agree, and had skipped that part of the suggestion. I think we
should return all the data that the client asks for, no paging,
assuming the spec does not provide for paging.

  Of course, if you already have log info indicating that clients (software)
 are stupid and asking for way too much info all at once, then go wild. It
 might make sense to say, There are 53 holds outstanding, and then present
 a list of just the first 10, and count on the client (software, again)
 knowing enough to request further info if desired.

  - David



  On 23-Apr-2008, at 11:38 , Bill Erickson wrote:


  David J. Fiander wrote:
 
   Brandon,
   That makes sense.
   This probably hasn't come up before because there are few SIP clients
 that implement lots of enhanced functionality, like renewing and paying
 fines at the terminal.
  
 
  Right.  I can also see cases where the data is displayed to the user, in
 which case titles are a good thing to return.
 
 
   The code that handles what data gets put into the holds, overdue, etc,
 fields isn't in my SIP protocol code; it's part of the ILS backend module
 that I call.
   So, Bill's the one that decided to return the title, rather than the
 barcode.  Well, my test stub code returned titles, because that makes it
 easy to read the packets, and Bill just mirrored that.
   Either way, it's pretty straight-forward. you just need to edit the
 ILS::Patron::hold_items() function to return the right stuff from the patron
 record.
  
 
  In Brandon's case, we're talking about Patron::overdue_items() and
 Patron::charged_items(), though, right?
 
  Shortly, I'll be implementing an org unit setting to support the
 suppression of holds information in patron information requests.  (In the
 case where the client doesn't care about the holds information and a patron
 has 50+ holds, it's just passing around a lot of unnecessary data.)  Along
 those same lines, we could add an additional org unit setting to determine
 what data is returned from the overdue|charged_items() calls...
 
  -bill
 
 
 
  --
  Bill Erickson
  | VP, Software Development  Integration
  | Equinox Software, Inc. / The Evergreen Experts
  | phone: 877-OPEN-ILS (673-6457)
  | email: [EMAIL PROTECTED]
  | web: http://esilibrary.com
 





-- 
Mike Rylander
 | VP, Research and Design
 | Equinox Software, Inc. / The Evergreen Experts
 | phone: 1-877-OPEN-ILS (673-6457)
 | email: [EMAIL PROTECTED]
 | web: http://www.esilibrary.com


[OPEN-ILS-DEV] SIP2: Unexpected Results from Patron Info Request (Msg 64)

2008-04-22 Thread Brandon W. Uhlman

Hi, all.

I think this question is probably going to be for David Fiander,  
mostly, if he still hangs out in these here parts. Maybe Bill or  
someone else with some general experience with SIP2 (not necessarily  
Evergreen) can provide some advice as well.


The SIP Message 63, Patron Information Request, takes a number of  
parameters, the most important of which is a patron barcode (AA). In  
response, the ACS responds with a message 64, Patron Information  
Response, which contains a bunch of information about the patron,  
name, various circulation limits, and a list of the items currently  
charged/overdue/on hold/etc.


Currently, title information on these items is being returned through  
a chain of  calls initiated by calling __circ_to_title(). Our SIP  
client vendor expects message 64 to return the item identifier  
(barcode). Further information about the item (including title) is  
received by issuing a message 17 (Item Information Request), and  
receiving back message 18, Item Information Response.


I think the SIP2 standard is poorly written enough that you can return  
any piece of information about the item and still adhere to it. The  
fact that a title can't be guaranteed to identify a *unique* item, and  
that numerous SIP2 requests on the client side, including msg 17 (info  
request) and 29 (renew) expect barcodes, leads me to believe that  
message 64 should *return* barcodes where it currently returns titles.


Does anyone have any thoughts on this? If the general consensus is  
that msg 64 should return barcodes, I can prepare and submit a patch  
to that effect.


Thanks,

Brandon

==
Brandon W. Uhlman, Systems Consultant
Public Library Services Branch
Ministry of Education
Government of British Columbia
605 Robson Street, 5th Floor
Vancouver, BC  V6B 5J3

Phone: (604) 660-2972
E-mail: [EMAIL PROTECTED]
[EMAIL PROTECTED]