Thanks for the additional information. Yeah, if you are limited to communicating via Z39.50, then your options are going to be much more confined. I don't think your strategy here is off track. Hopefully others using Z39.50/SRU more regularly can chime in if another path seems better.
It looks like you will also need to add that subfield to the actual 852 field output a few lines down, but you probably already figured that part out :) Finally, please submit a branch and bug on Launchpad once you have this working for you, as this seems like something others might find useful. Sincerely, Dan On Tue, Jan 2, 2018 at 10:37 AM, John Merriam <jmerr...@biblio.org> wrote: > Hi Dan. > > Yes, 'copy_id' is what I was looking for. Thank you so much for that! > > We need to have the id from the asset.copy table in the 852 subfield f of > our Z39.50 output for our holdings. I'm not sure exactly why but it is my > understanding that certain vendors that we work with need it there. > > If there is some other place we should be doing this I would like to > know. It seems to me WWW/SuperCat.pm is the only place to do it. > > Thanks again! > > > On 1/2/2018 10:23 AM, Daniel Wells wrote: > >> Hello John, >> >> This part of the code is pulling data from the unapi.bre() function in >> the DB, so in this case, you want 'copy_id', i.e.: >> >> ... >> f => $copy->getAttribute('copy_id'), >> ... >> >> This said, I think we'd all be interested to know exactly what you are >> trying to accomplish, as there are other existing APIs for getting copy >> IDs, so I am not sure if adding it into this SRU function is the easiest >> way to go. >> >> Sincerely, >> Dan >> >> >> On Tue, Jan 2, 2018 at 9:50 AM, John Merriam <jmerr...@biblio.org >> <mailto:jmerr...@biblio.org>> wrote: >> >> Hello. I am working in the perl module WWW/SuperCat.pm and trying >> to get the id of a row in asset.copy. For some reason I am getting >> back what looks like an unAPI URI instead of just the id of the >> row. I've been staring at this for a while and not sure why this is >> happening or the best way to fix it. This is around line 2030 in my >> WWW/SuperCat.pm in EG 2.12.8. The basic code flow in >> WWW/SuperCat.pm is: >> >> results retrieved from cstore >> my $marcxml = XML::LibXML->load_xml(...); >> my @copies; >> for my $node ($marcxml->getElementsByTagName('holdings')) { >> for my $volume ($node->getElementsByTagName('volume')) { >> for my $copy ($volume->getElementsByTagName('copy')) { >> push @copies, { >> f => $copy->getAttribute('id'), >> }; >> >> f ends up with unAPI stuff in it instead of just the row id that I >> am looking for. It looks like: >> >> ftag:open-ils.org:U2@acp/5826234 >> >> The part that I want is after the / I put in a hack to manipulate >> the unAPI string and strip out the / and everything in front of it >> but I don't want to leave it that way. I would like to do this the >> correct way. >> >> I'm not sure if it really is supposed to behave this way or not. >> Assuming it is, I was thinking maybe a function exists that can >> extract the row id from the unAPI URI? I wasn’t able to find one. >> >> Any ideas how to correctly get just the real row id from the >> database without the unAPI stuff? >> >> Thanks in advance! >> > > -- > > John Merriam > Evergreen System Specialist > Bibliomation, Inc. > 24 Wooster Ave. > Waterbury, CT 06708 > 203-577-4070 x108 >