ILS lookups not working with data imported via XSLT

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

ILS lookups not working with data imported via XSLT

Andrew Krause
Hi all,

Will VuFind perform ILS lookups if a XSL import is used for records instead of MARC?  I'm not specifying any recordtype during the import.  Otherwise everything is working as expected.

We are using the Symphony ILS.  The ID is in place for all the records and that should be all that is needed to do the Symphony WebAPI requests.  I'm not seeing any outgoing requests though.

Thanks!

Andrew

------------------------------------------------------------------------------
_______________________________________________
VuFind-General mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/vufind-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ILS lookups not working with data imported via XSLT

Demian Katz

Andrew,


Is there a compelling reason that you're using XSL instead of importing MARC records? This is the first time I've heard of anyone using non-MARC records in combination with a traditional ILS. VuFind is currently coded on the assumption that it only needs an ILS connection when dealing with MARC records, so the easiest solution would be to simply import MARC records.


Fortunately, if using MARC is not an option for whatever reason, it would actually not be very difficult at all to do a small amount of refactoring to add ILS support to other types of records. My recommendation would be this:


1.) Create a VuFind\RecordDriver\IlsAwareTrait, and move all of the methods that refer to $this->ils in VuFind\RecordDriver\SolrMarc into this trait. Also move the $holdLogic, $titleHoldLogic and $ils properties.


2.) Adjust the SolrMarc record driver to use this trait instead of containing the code directly.


3.) Now you can also create a SolrIls record driver that extends SolrDefault and also uses this trait. If you configure this new record driver with a factory similar to the one SolrMarc is using, and then adjust your XSL to put "ils" in the recordtype field of Solr, everything should work properly (unless I'm missing something).


Whether or not we need this for your use case, I think this is a good idea to improve the organization and flexibility of the code -- it's one of several things I'd eventually like to do to make the ILS driver organization more logical. If you need this work done and feel up to the task, a pull request containing these changes would be a very helpful contribution to the project. Obviously I'm happy to help with more detailed assistance as needed. If you don't have time for it, let me know and I'll put it into my own work queue, though it will of course take me a little while to get to it.


- Demian



From: Andrew Krause <[hidden email]>
Sent: Thursday, November 17, 2016 6:40 PM
To: [hidden email]
Subject: [VuFind-General] ILS lookups not working with data imported via XSLT
 
Hi all,

Will VuFind perform ILS lookups if a XSL import is used for records instead of MARC?  I'm not specifying any recordtype during the import.  Otherwise everything is working as expected.

We are using the Symphony ILS.  The ID is in place for all the records and that should be all that is needed to do the Symphony WebAPI requests.  I'm not seeing any outgoing requests though.

Thanks!

Andrew

------------------------------------------------------------------------------
_______________________________________________
VuFind-General mailing list
[hidden email]
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fvufind-general&data=01%7C01%7Cdemian.katz%40villanova.edu%7Ce1dac70d879a42053d1308d40f5909a3%7C765a8de5cf9444f09cafae5bf8cfa366%7C1&sdata=Fm53e%2BTBzV69Irdyqu2IOIygUzUqzSCnbg1%2BDd6egJ0%3D&reserved=0

------------------------------------------------------------------------------

_______________________________________________
VuFind-General mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/vufind-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ILS lookups not working with data imported via XSLT

Andrew Krause

Demian,

 

Our MARC records are not really up to the standard needed to make things look good in VuFind without jumping through a lot of hoops.

 

The first thing that stood out is that I would have incorrect or many matches for the item's format.  Many of our DVDs come up as either "Slide" or "DVD" & "Blu-ray".  Both can be a bit confusing, especially when we don't own the Blu-ray.  I decided to get around it by using Item Categories that we already populate in Symphony.  I was unable to point SolrMarc to the Item Categories because they are in subfields starting with a number instead of a letter.  I ended up remapping the subfields in the 999 tag to unused ones between A-Z, before importing the MARC records to overcome that.  That is about the time I started to lose interest in dealing with the MARC records.

 

The built in Symphony reports for extracting MARC data either extracts way more data than we need or fails to give the internal Item ID used for doing item lookups with the WebAPI.  Luckily one of the most commonly used reports gives us exactly what we need in XML format.  I already wrote something that processes XML reports as they are completed.  Being able to reuse this for keeping the catalog up to date really simplifies things.

 

Currently I'm using the GMD for the format and falling back on the Symphony Item Categories if there is not a GMD.  For the genre facet, I'm grabbing the data from the call numbers.  This greatly reduces the total number of possible genres.  I will most likely do the same for languages as well.  The author and title fields are both cleaned up a bit to get rid of some of the messiness commonly seen in our OPAC.  In the end having most of the customizations in one XSLT file is a lot easier.

 

Thanks for the hints.  The SolrMarc driver and new trait are working as expected. 

 

I’m still having trouble with the new factory code or the SolrIls driver.  Not sure which is causing an issue.  It doesn’t look like any of the new code in the factory ever gets used when I try it out. 

 

Factory addition for factory.php:  http://pastebin.com/6UprpMxL

It is an exact clone of the contents of the SolrMarc one.  Doubt anything is wrong there.

 

My virtually empty SolrIls:  http://pastebin.com/EdUzFTYC

I’m sure I must be missing something pretty obvious. If I add the SolrIls code to SolrDefault, the lookups work as hoped.  Is there somewhere else that I may need to add a reference to SolrIls? 

 

Thanks.

 

Andrew

 


From: Demian Katz <[hidden email]>
Sent: Friday, November 18, 2016 7:31 AM
To: Andrew Krause; [hidden email]
Subject: Re: ILS lookups not working with data imported via XSLT

 

Andrew,

 

Is there a compelling reason that you're using XSL instead of importing MARC records? This is the first time I've heard of anyone using non-MARC records in combination with a traditional ILS. VuFind is currently coded on the assumption that it only needs an ILS connection when dealing with MARC records, so the easiest solution would be to simply import MARC records.

 

Fortunately, if using MARC is not an option for whatever reason, it would actually not be very difficult at all to do a small amount of refactoring to add ILS support to other types of records. My recommendation would be this:

 

1.) Create a VuFind\RecordDriver\IlsAwareTrait, and move all of the methods that refer to $this->ils in VuFind\RecordDriver\SolrMarc into this trait. Also move the $holdLogic, $titleHoldLogic and $ils properties.

 

2.) Adjust the SolrMarc record driver to use this trait instead of containing the code directly.

 

3.) Now you can also create a SolrIls record driver that extends SolrDefault and also uses this trait. If you configure this new record driver with a factory similar to the one SolrMarc is using, and then adjust your XSL to put "ils" in the recordtype field of Solr, everything should work properly (unless I'm missing something).

 

Whether or not we need this for your use case, I think this is a good idea to improve the organization and flexibility of the code -- it's one of several things I'd eventually like to do to make the ILS driver organization more logical. If you need this work done and feel up to the task, a pull request containing these changes would be a very helpful contribution to the project. Obviously I'm happy to help with more detailed assistance as needed. If you don't have time for it, let me know and I'll put it into my own work queue, though it will of course take me a little while to get to it.

 

- Demian

 


From: Andrew Krause <[hidden email]>
Sent: Thursday, November 17, 2016 6:40 PM
To: [hidden email]
Subject: [VuFind-General] ILS lookups not working with data imported via XSLT

 

Hi all,

Will VuFind perform ILS lookups if a XSL import is used for records instead of MARC?  I'm not specifying any recordtype during the import.  Otherwise everything is working as expected.

We are using the Symphony ILS.  The ID is in place for all the records and that should be all that is needed to do the Symphony WebAPI requests.  I'm not seeing any outgoing requests though.

Thanks!

Andrew

------------------------------------------------------------------------------
_______________________________________________
VuFind-General mailing list
[hidden email]
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fvufind-general&data=01%7C01%7Cdemian.katz%40villanova.edu%7Ce1dac70d879a42053d1308d40f5909a3%7C765a8de5cf9444f09cafae5bf8cfa366%7C1&sdata=Fm53e%2BTBzV69Irdyqu2IOIygUzUqzSCnbg1%2BDd6egJ0%3D&reserved=0


------------------------------------------------------------------------------

_______________________________________________
VuFind-General mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/vufind-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ILS lookups not working with data imported via XSLT

Demian Katz

Andrew,

 

Thanks for the detailed explanation – this makes sense. However, SolrMarc should not have a problem dealing with numeric subfields. If that is your biggest obstacle, it may be worth revisiting… but if things are working to your satisfaction now, that is of course perfectly fine too!

 

Regarding the problem with SolrILS, is it possible that you have not yet registered your factory in module.config.php? Here’s the place in the core VuFind module where factories are registered:

 

https://github.com/vufind-org/vufind/blob/master/module/VuFind/config/module.config.php#L507

 

Also note that, unless your site configured in httpd-vufind.conf to use development mode, this configuration is cached, so you’ll need to empty $VUFIND_LOCAL_DIR/cache/configs before your changes will take effect.

 

If you’re still having trouble, please let me know! In any case, I’m happy that you’re making progress, and thanks for submitting the trait pull request. I should get that merged very soon, once I’m done with my post-vacation catch-up.

 

- Demian

 

From: Andrew Krause [mailto:[hidden email]]
Sent: Sunday, November 27, 2016 1:41 PM
To: Demian Katz
Cc: [hidden email]
Subject: Re: ILS lookups not working with data imported via XSLT

 

Demian,

 

Our MARC records are not really up to the standard needed to make things look good in VuFind without jumping through a lot of hoops.

 

The first thing that stood out is that I would have incorrect or many matches for the item's format.  Many of our DVDs come up as either "Slide" or "DVD" & "Blu-ray".  Both can be a bit confusing, especially when we don't own the Blu-ray.  I decided to get around it by using Item Categories that we already populate in Symphony.  I was unable to point SolrMarc to the Item Categories because they are in subfields starting with a number instead of a letter.  I ended up remapping the subfields in the 999 tag to unused ones between A-Z, before importing the MARC records to overcome that.  That is about the time I started to lose interest in dealing with the MARC records.

 

The built in Symphony reports for extracting MARC data either extracts way more data than we need or fails to give the internal Item ID used for doing item lookups with the WebAPI.  Luckily one of the most commonly used reports gives us exactly what we need in XML format.  I already wrote something that processes XML reports as they are completed.  Being able to reuse this for keeping the catalog up to date really simplifies things.

 

Currently I'm using the GMD for the format and falling back on the Symphony Item Categories if there is not a GMD.  For the genre facet, I'm grabbing the data from the call numbers.  This greatly reduces the total number of possible genres.  I will most likely do the same for languages as well.  The author and title fields are both cleaned up a bit to get rid of some of the messiness commonly seen in our OPAC.  In the end having most of the customizations in one XSLT file is a lot easier.

 

Thanks for the hints.  The SolrMarc driver and new trait are working as expected. 

 

I’m still having trouble with the new factory code or the SolrIls driver.  Not sure which is causing an issue.  It doesn’t look like any of the new code in the factory ever gets used when I try it out. 

 

Factory addition for factory.php:  http://pastebin.com/6UprpMxL

It is an exact clone of the contents of the SolrMarc one.  Doubt anything is wrong there.

 

My virtually empty SolrIls:  http://pastebin.com/EdUzFTYC

I’m sure I must be missing something pretty obvious. If I add the SolrIls code to SolrDefault, the lookups work as hoped.  Is there somewhere else that I may need to add a reference to SolrIls? 

 

Thanks.

 

Andrew

 


From: Demian Katz <[hidden email]>
Sent: Friday, November 18, 2016 7:31 AM
To: Andrew Krause; [hidden email]
Subject: Re: ILS lookups not working with data imported via XSLT

 

Andrew,

 

Is there a compelling reason that you're using XSL instead of importing MARC records? This is the first time I've heard of anyone using non-MARC records in combination with a traditional ILS. VuFind is currently coded on the assumption that it only needs an ILS connection when dealing with MARC records, so the easiest solution would be to simply import MARC records.

 

Fortunately, if using MARC is not an option for whatever reason, it would actually not be very difficult at all to do a small amount of refactoring to add ILS support to other types of records. My recommendation would be this:

 

1.) Create a VuFind\RecordDriver\IlsAwareTrait, and move all of the methods that refer to $this->ils in VuFind\RecordDriver\SolrMarc into this trait. Also move the $holdLogic, $titleHoldLogic and $ils properties.

 

2.) Adjust the SolrMarc record driver to use this trait instead of containing the code directly.

 

3.) Now you can also create a SolrIls record driver that extends SolrDefault and also uses this trait. If you configure this new record driver with a factory similar to the one SolrMarc is using, and then adjust your XSL to put "ils" in the recordtype field of Solr, everything should work properly (unless I'm missing something).

 

Whether or not we need this for your use case, I think this is a good idea to improve the organization and flexibility of the code -- it's one of several things I'd eventually like to do to make the ILS driver organization more logical. If you need this work done and feel up to the task, a pull request containing these changes would be a very helpful contribution to the project. Obviously I'm happy to help with more detailed assistance as needed. If you don't have time for it, let me know and I'll put it into my own work queue, though it will of course take me a little while to get to it.

 

- Demian

 


From: Andrew Krause <[hidden email]>
Sent: Thursday, November 17, 2016 6:40 PM
To: [hidden email]
Subject: [VuFind-General] ILS lookups not working with data imported via XSLT

 

Hi all,

Will VuFind perform ILS lookups if a XSL import is used for records instead of MARC?  I'm not specifying any recordtype during the import.  Otherwise everything is working as expected.

We are using the Symphony ILS.  The ID is in place for all the records and that should be all that is needed to do the Symphony WebAPI requests.  I'm not seeing any outgoing requests though.

Thanks!

Andrew

------------------------------------------------------------------------------
_______________________________________________
VuFind-General mailing list
[hidden email]
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fvufind-general&data=01%7C01%7Cdemian.katz%40villanova.edu%7Ce1dac70d879a42053d1308d40f5909a3%7C765a8de5cf9444f09cafae5bf8cfa366%7C1&sdata=Fm53e%2BTBzV69Irdyqu2IOIygUzUqzSCnbg1%2BDd6egJ0%3D&reserved=0


------------------------------------------------------------------------------

_______________________________________________
VuFind-General mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/vufind-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ILS lookups not working with data imported via XSLT

Andrew Krause

Demian,

 

In “marc_local.properties” I tried “building = 9991”.  When importing I got this message: “Error: Illegal character <1> found in scanner state subfield”.  I didn’t look into it much further than that. 

 

Ah yes, I forgot to modify module.config.php.  After getting that fixed, I found I was missing a getConsortialIDs() function.  I ended up using the “ctrlnum” field for the returned value. 

 

I’m not sure how I’ll deal with getBibliographicLevel() other than having it return a dummy value as it is now.

 

ILS support for XML records is working really well now.  Thanks again.

 

Andrew

 

From: Demian Katz [mailto:[hidden email]]
Sent: Monday, November 28, 2016 7:50 AM
To: Andrew Krause
Cc: [hidden email]
Subject: RE: ILS lookups not working with data imported via XSLT

 

Andrew,

 

Thanks for the detailed explanation – this makes sense. However, SolrMarc should not have a problem dealing with numeric subfields. If that is your biggest obstacle, it may be worth revisiting… but if things are working to your satisfaction now, that is of course perfectly fine too!

 

Regarding the problem with SolrILS, is it possible that you have not yet registered your factory in module.config.php? Here’s the place in the core VuFind module where factories are registered:

 

https://github.com/vufind-org/vufind/blob/master/module/VuFind/config/module.config.php#L507

 

Also note that, unless your site configured in httpd-vufind.conf to use development mode, this configuration is cached, so you’ll need to empty $VUFIND_LOCAL_DIR/cache/configs before your changes will take effect.

 

If you’re still having trouble, please let me know! In any case, I’m happy that you’re making progress, and thanks for submitting the trait pull request. I should get that merged very soon, once I’m done with my post-vacation catch-up.

 

- Demian

 

From: Andrew Krause [[hidden email]]
Sent: Sunday, November 27, 2016 1:41 PM
To: Demian Katz
Cc: [hidden email]
Subject: Re: ILS lookups not working with data imported via XSLT

 

Demian,

 

Our MARC records are not really up to the standard needed to make things look good in VuFind without jumping through a lot of hoops.

 

The first thing that stood out is that I would have incorrect or many matches for the item's format.  Many of our DVDs come up as either "Slide" or "DVD" & "Blu-ray".  Both can be a bit confusing, especially when we don't own the Blu-ray.  I decided to get around it by using Item Categories that we already populate in Symphony.  I was unable to point SolrMarc to the Item Categories because they are in subfields starting with a number instead of a letter.  I ended up remapping the subfields in the 999 tag to unused ones between A-Z, before importing the MARC records to overcome that.  That is about the time I started to lose interest in dealing with the MARC records.

 

The built in Symphony reports for extracting MARC data either extracts way more data than we need or fails to give the internal Item ID used for doing item lookups with the WebAPI.  Luckily one of the most commonly used reports gives us exactly what we need in XML format.  I already wrote something that processes XML reports as they are completed.  Being able to reuse this for keeping the catalog up to date really simplifies things.

 

Currently I'm using the GMD for the format and falling back on the Symphony Item Categories if there is not a GMD.  For the genre facet, I'm grabbing the data from the call numbers.  This greatly reduces the total number of possible genres.  I will most likely do the same for languages as well.  The author and title fields are both cleaned up a bit to get rid of some of the messiness commonly seen in our OPAC.  In the end having most of the customizations in one XSLT file is a lot easier.

 

Thanks for the hints.  The SolrMarc driver and new trait are working as expected. 

 

I’m still having trouble with the new factory code or the SolrIls driver.  Not sure which is causing an issue.  It doesn’t look like any of the new code in the factory ever gets used when I try it out. 

 

Factory addition for factory.php:  http://pastebin.com/6UprpMxL

It is an exact clone of the contents of the SolrMarc one.  Doubt anything is wrong there.

 

My virtually empty SolrIls:  http://pastebin.com/EdUzFTYC

I’m sure I must be missing something pretty obvious. If I add the SolrIls code to SolrDefault, the lookups work as hoped.  Is there somewhere else that I may need to add a reference to SolrIls? 

 

Thanks.

 

Andrew

 


From: Demian Katz <[hidden email]>
Sent: Friday, November 18, 2016 7:31 AM
To: Andrew Krause; [hidden email]
Subject: Re: ILS lookups not working with data imported via XSLT

 

Andrew,

 

Is there a compelling reason that you're using XSL instead of importing MARC records? This is the first time I've heard of anyone using non-MARC records in combination with a traditional ILS. VuFind is currently coded on the assumption that it only needs an ILS connection when dealing with MARC records, so the easiest solution would be to simply import MARC records.

 

Fortunately, if using MARC is not an option for whatever reason, it would actually not be very difficult at all to do a small amount of refactoring to add ILS support to other types of records. My recommendation would be this:

 

1.) Create a VuFind\RecordDriver\IlsAwareTrait, and move all of the methods that refer to $this->ils in VuFind\RecordDriver\SolrMarc into this trait. Also move the $holdLogic, $titleHoldLogic and $ils properties.

 

2.) Adjust the SolrMarc record driver to use this trait instead of containing the code directly.

 

3.) Now you can also create a SolrIls record driver that extends SolrDefault and also uses this trait. If you configure this new record driver with a factory similar to the one SolrMarc is using, and then adjust your XSL to put "ils" in the recordtype field of Solr, everything should work properly (unless I'm missing something).

 

Whether or not we need this for your use case, I think this is a good idea to improve the organization and flexibility of the code -- it's one of several things I'd eventually like to do to make the ILS driver organization more logical. If you need this work done and feel up to the task, a pull request containing these changes would be a very helpful contribution to the project. Obviously I'm happy to help with more detailed assistance as needed. If you don't have time for it, let me know and I'll put it into my own work queue, though it will of course take me a little while to get to it.

 

- Demian

 


From: Andrew Krause <[hidden email]>
Sent: Thursday, November 17, 2016 6:40 PM
To: [hidden email]
Subject: [VuFind-General] ILS lookups not working with data imported via XSLT

 

Hi all,

Will VuFind perform ILS lookups if a XSL import is used for records instead of MARC?  I'm not specifying any recordtype during the import.  Otherwise everything is working as expected.

We are using the Symphony ILS.  The ID is in place for all the records and that should be all that is needed to do the Symphony WebAPI requests.  I'm not seeing any outgoing requests though.

Thanks!

Andrew

------------------------------------------------------------------------------
_______________________________________________
VuFind-General mailing list
[hidden email]
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fvufind-general&data=01%7C01%7Cdemian.katz%40villanova.edu%7Ce1dac70d879a42053d1308d40f5909a3%7C765a8de5cf9444f09cafae5bf8cfa366%7C1&sdata=Fm53e%2BTBzV69Irdyqu2IOIygUzUqzSCnbg1%2BDd6egJ0%3D&reserved=0


------------------------------------------------------------------------------

_______________________________________________
VuFind-General mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/vufind-general
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: ILS lookups not working with data imported via XSLT

Demian Katz

Andrew,

 

I tried to reproduce the indexing problem you describe using several different versions of VuFind, but I was unsuccessful. I’m copying this message to the solrmarc-tech list in case anyone there has an idea, but since you’ve found an alternative solution, this is probably not an urgent problem. If you could share exactly which VuFind release you are using, though, that might be good to know.

 

Regarding getConsortialIDs, I’d recommend simply making that function return null – it only matters in a very narrow edge case where a consortium is using VuFind in a very specific way; most users should be able to ignore it. If you update to the version of the IlsAwareTrait that I merged to master yesterday, you can safely omit the function definition and the code will continue to work. As I mentioned on the pull request, you’ll still need the dummy getBibliographicLevel function if we keep the code as-is, but it may be worth refactoring to have a separate function to determine when holds are legal. In that situation, we could move the getBibliographicLevel logic back to the SolrMarc record driver and keep it as a MARC-specific detail, and we could determine some other default behavior for the trait. If you think this would be valuable, feel free to open another pull request; if not, we can live with it as it is for the moment.

 

thanks,

Demian

 

From: Andrew Krause [mailto:[hidden email]]
Sent: Monday, November 28, 2016 6:12 PM
To: Demian Katz
Cc: [hidden email]
Subject: RE: ILS lookups not working with data imported via XSLT

 

Demian,

 

In “marc_local.properties” I tried “building = 9991”.  When importing I got this message: “Error: Illegal character <1> found in scanner state subfield”.  I didn’t look into it much further than that. 

 

Ah yes, I forgot to modify module.config.php.  After getting that fixed, I found I was missing a getConsortialIDs() function.  I ended up using the “ctrlnum” field for the returned value. 

 

I’m not sure how I’ll deal with getBibliographicLevel() other than having it return a dummy value as it is now.

 

ILS support for XML records is working really well now.  Thanks again.

 

Andrew

 

From: Demian Katz [[hidden email]]
Sent: Monday, November 28, 2016 7:50 AM
To: Andrew Krause
Cc: [hidden email]
Subject: RE: ILS lookups not working with data imported via XSLT

 

Andrew,

 

Thanks for the detailed explanation – this makes sense. However, SolrMarc should not have a problem dealing with numeric subfields. If that is your biggest obstacle, it may be worth revisiting… but if things are working to your satisfaction now, that is of course perfectly fine too!

 

Regarding the problem with SolrILS, is it possible that you have not yet registered your factory in module.config.php? Here’s the place in the core VuFind module where factories are registered:

 

https://github.com/vufind-org/vufind/blob/master/module/VuFind/config/module.config.php#L507

 

Also note that, unless your site configured in httpd-vufind.conf to use development mode, this configuration is cached, so you’ll need to empty $VUFIND_LOCAL_DIR/cache/configs before your changes will take effect.

 

If you’re still having trouble, please let me know! In any case, I’m happy that you’re making progress, and thanks for submitting the trait pull request. I should get that merged very soon, once I’m done with my post-vacation catch-up.

 

- Demian

 

From: Andrew Krause [[hidden email]]
Sent: Sunday, November 27, 2016 1:41 PM
To: Demian Katz
Cc: [hidden email]
Subject: Re: ILS lookups not working with data imported via XSLT

 

Demian,

 

Our MARC records are not really up to the standard needed to make things look good in VuFind without jumping through a lot of hoops.

 

The first thing that stood out is that I would have incorrect or many matches for the item's format.  Many of our DVDs come up as either "Slide" or "DVD" & "Blu-ray".  Both can be a bit confusing, especially when we don't own the Blu-ray.  I decided to get around it by using Item Categories that we already populate in Symphony.  I was unable to point SolrMarc to the Item Categories because they are in subfields starting with a number instead of a letter.  I ended up remapping the subfields in the 999 tag to unused ones between A-Z, before importing the MARC records to overcome that.  That is about the time I started to lose interest in dealing with the MARC records.

 

The built in Symphony reports for extracting MARC data either extracts way more data than we need or fails to give the internal Item ID used for doing item lookups with the WebAPI.  Luckily one of the most commonly used reports gives us exactly what we need in XML format.  I already wrote something that processes XML reports as they are completed.  Being able to reuse this for keeping the catalog up to date really simplifies things.

 

Currently I'm using the GMD for the format and falling back on the Symphony Item Categories if there is not a GMD.  For the genre facet, I'm grabbing the data from the call numbers.  This greatly reduces the total number of possible genres.  I will most likely do the same for languages as well.  The author and title fields are both cleaned up a bit to get rid of some of the messiness commonly seen in our OPAC.  In the end having most of the customizations in one XSLT file is a lot easier.

 

Thanks for the hints.  The SolrMarc driver and new trait are working as expected. 

 

I’m still having trouble with the new factory code or the SolrIls driver.  Not sure which is causing an issue.  It doesn’t look like any of the new code in the factory ever gets used when I try it out. 

 

Factory addition for factory.php:  http://pastebin.com/6UprpMxL

It is an exact clone of the contents of the SolrMarc one.  Doubt anything is wrong there.

 

My virtually empty SolrIls:  http://pastebin.com/EdUzFTYC

I’m sure I must be missing something pretty obvious. If I add the SolrIls code to SolrDefault, the lookups work as hoped.  Is there somewhere else that I may need to add a reference to SolrIls? 

 

Thanks.

 

Andrew

 


From: Demian Katz <[hidden email]>
Sent: Friday, November 18, 2016 7:31 AM
To: Andrew Krause; [hidden email]
Subject: Re: ILS lookups not working with data imported via XSLT

 

Andrew,

 

Is there a compelling reason that you're using XSL instead of importing MARC records? This is the first time I've heard of anyone using non-MARC records in combination with a traditional ILS. VuFind is currently coded on the assumption that it only needs an ILS connection when dealing with MARC records, so the easiest solution would be to simply import MARC records.

 

Fortunately, if using MARC is not an option for whatever reason, it would actually not be very difficult at all to do a small amount of refactoring to add ILS support to other types of records. My recommendation would be this:

 

1.) Create a VuFind\RecordDriver\IlsAwareTrait, and move all of the methods that refer to $this->ils in VuFind\RecordDriver\SolrMarc into this trait. Also move the $holdLogic, $titleHoldLogic and $ils properties.

 

2.) Adjust the SolrMarc record driver to use this trait instead of containing the code directly.

 

3.) Now you can also create a SolrIls record driver that extends SolrDefault and also uses this trait. If you configure this new record driver with a factory similar to the one SolrMarc is using, and then adjust your XSL to put "ils" in the recordtype field of Solr, everything should work properly (unless I'm missing something).

 

Whether or not we need this for your use case, I think this is a good idea to improve the organization and flexibility of the code -- it's one of several things I'd eventually like to do to make the ILS driver organization more logical. If you need this work done and feel up to the task, a pull request containing these changes would be a very helpful contribution to the project. Obviously I'm happy to help with more detailed assistance as needed. If you don't have time for it, let me know and I'll put it into my own work queue, though it will of course take me a little while to get to it.

 

- Demian

 


From: Andrew Krause <[hidden email]>
Sent: Thursday, November 17, 2016 6:40 PM
To: [hidden email]
Subject: [VuFind-General] ILS lookups not working with data imported via XSLT

 

Hi all,

Will VuFind perform ILS lookups if a XSL import is used for records instead of MARC?  I'm not specifying any recordtype during the import.  Otherwise everything is working as expected.

We are using the Symphony ILS.  The ID is in place for all the records and that should be all that is needed to do the Symphony WebAPI requests.  I'm not seeing any outgoing requests though.

Thanks!

Andrew

------------------------------------------------------------------------------
_______________________________________________
VuFind-General mailing list
[hidden email]
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Fvufind-general&data=01%7C01%7Cdemian.katz%40villanova.edu%7Ce1dac70d879a42053d1308d40f5909a3%7C765a8de5cf9444f09cafae5bf8cfa366%7C1&sdata=Fm53e%2BTBzV69Irdyqu2IOIygUzUqzSCnbg1%2BDd6egJ0%3D&reserved=0


------------------------------------------------------------------------------

_______________________________________________
VuFind-General mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/vufind-general
Loading...