[OPEN-ILS-GENERAL] unAPI from getAttribute in WWW/SuperCat.pm?
Daniel Wells
dbwells at gmail.com
Tue Jan 2 11:46:41 EST 2018
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 <jmerriam at 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 <jmerriam at biblio.org
>> <mailto:jmerriam at 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 at 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://libmail.georgialibraries.org/pipermail/open-ils-general/attachments/20180102/7a322a07/attachment.html>
More information about the Open-ils-general
mailing list