Hi Caroline, That works! Thank you so much. Removing the if condition and using a more specific regex substitution changed only the field I wanted and left the other alone. Oddly, if I say I want to do this to the "1st" field it still shows the problematic behavior (both fields are modified, the second receives a copy of the first's $u subfield), but if I set it to "all" then only the first field is modified. I will submit a bug report for that. Best, ERIC PHETTEPLACE Systems Librarian, Libraries (he/him) ephetteplace@cca.edu *CCA is situated on the traditional unceded lands of the **Chochenyo and Ramaytush Ohlone** peoples.* Black-owned bookstores in Oakland: Ashay by the Bay <https://ashaybythebay.com/>, Marcus Books <https://www.facebook.com/marcus.books/> :(){ :|: & };: On Wed, Aug 9, 2023 at 6:22 AM Caroline Cyr La Rose < caroline.cyr-la-rose@inlibro.com> wrote:
Hi Eric,
Did you try without the if? The regex replace should only replace the example.com links and leave the other ones alone.
I tried in 23.05.02 with
Copy and replace All field(s) 856 u to 856 u RegEx s/^https?:\/\/ example.com/https://proxy.cca.edu/url?=https://example.com/
the record was
856 _ _ ‡uhttps://example.com‡yLink to proxy 856 _ _ ‡uhttps://www.cca.edu‡yLink to retain
the modified record was
856 _ _ ‡uhttps://proxy.cca.edu/url?=https://example.com‡yLink to proxy 856 _ _ ‡uhttps://www.cca.edu‡yLink to retain
You could write a bug report for the "1st" vs "every" thing. Personally, I've never understood the "1st" option. It's probably because as you said it's not necessarily the first visually. And I'm not sure if the first would always be the one you need to change in all the records, records being so different from each other.
Best of luck!
Caroline On 2023-08-08 18:39, Eric Phetteplace wrote:
Hi Caroline,
Yes, they do happen to have different domains, one I want to preserve and one I want to proxy. Thank you for the suggestion! Using a more qualified regex seemed like it should work, but Koha still clobbers the second 856$u subfield. Here's a modified example:
Record 245 _ _ ‡aExample 856 4 0 ‡uhttps://example.com‡yLink to proxy 856 4 0 ‡uhttps://www.cca.edu‡yLink to retain
MARC modification Copy and replace 1st field(s) 856 u to field 856 u Regex ✅ s/^https?://example\.com/ https://proxy.cca.edu/url?=https://example.com/ If field 856 u matches m/https://example.com/ Regex ✅
Output record 245 _aExample 856 40 _uhttps://proxy.cca.edu/url?=https://example.com _yLink to proxy 856 40 _uhttps://proxy.cca.edu/url?=https://example.com _yLink to retain
As the "if" condition cannot stop the second field from being modified, the regex also cannot. Koha seems to take the first 856, check it against the if condition, and then copies the modified $u subfield to all other instances of 856$u no matter what is configured in the modification template. Again, I tested with both "all" and "1st" 856 fields and the result was the same. Saying "1st" 856 still modifies both 856s.
So am I stuck writing a bug report? There's no way to modify only one of a set of the same fields even with if conditions? I would expect other templates dealing with commonly repeated fields like subject headings to run into trouble then. Maybe only the "copy and replace" action has problems so fewer templates are affected?
Best,
ERIC PHETTEPLACE Systems Librarian, Libraries (he/him)
ephetteplace@cca.edu
*CCA is situated on the traditional unceded lands of the **Chochenyo and Ramaytush Ohlone** peoples.*
Black-owned bookstores in Oakland: Ashay by the Bay <https://ashaybythebay.com/>, Marcus Books <https://www.facebook.com/marcus.books/>
:(){ :|: & };:
On Mon, Aug 7, 2023 at 6:40 AM Caroline Cyr La Rose < caroline.cyr-la-rose@inlibro.com> wrote:
Hi Eric,
This has been my experience as well. I haven't found a way to modify only one field when there are more that one of the same tag in the same record.
Are the links you are trying to change all the same domain? Or a couple of different domains? If so, you could match the regex on a longer part of the URL e.g. s/^ https://some-online-resource.com/https://proxy.cca.edu/url?=https://some-onl...
You can have many options in one modification template, so you can have many "copy and replace" for various resources. Or you can do it by batch. The latter is usually what I've done in the past: make a report to have the URLs matching some-online-resource.com, batch modify those. Then change the modification template, change the report to have the URLs another-online-resource.com and batch modify those records, etc.
Good luck!
Caroline
Hi collective wisdom,
I'm running into a MARC modification template problem and I can't tell if I'm missing something or there's a bug/limitation. I know I could accomplish these edits with MARCEdit or a script, but I was hoping to use Koha's tools.
I have a record with two 856 fields with links, I want to apply our
On 2023-08-04 11:31, Eric Phetteplace wrote: proxy
server prefix to one link but not the other. That seems to be impossible; Koha clobbers the second link with a copy of the first. Here's a minimal example.
Record 245 _ _ ‡aExample 856 4 0 ‡uhttps://example.com‡yLink to proxy 856 4 0 ‡uhttps://www.cca.edu‡yLink to retain
MARC modification Copy and replace 1st field(s) 856 u to field 856 u Regex ✅ s/^http/ https://proxy.cca.edu/url?=http/ If field 856 u matches m/https://example.com/ Regex ✅
Output record 245 _aExample 856 40 _uhttps://proxy.cca.edu/url?=https://example.com _yLink to proxy 856 40 _uhttps://proxy.cca.edu/url?=https://example.com _yLink to retain
This happens whether I set the modification template to use the "1st" or "every" 856 field. I don't understand why the second 856 is touched at all, since it does not meet the "if" condition, much less why instead of receiving its own link proxied it gets the first 856 URL proxied.
Based on a few tests, it also seems like the "1st" field with respect to modification actions is not always the one that's visually first when I edit a record. I tried a set of three actions which 1) copied the first field to another, unused field, 2) modified it there, and then 3) copied it back, but Koha copied the second field instead.
Best,
ERIC PHETTEPLACE Systems Librarian, Libraries (he/him)
ephetteplace@cca.edu
*CCA is situated on the traditional unceded lands of the **Chochenyo and Ramaytush Ohlone** peoples.*
Black-owned bookstores in Oakland: Ashay by the Bay <https://ashaybythebay.com/>, Marcus Books <https://www.facebook.com/marcus.books/>
:(){ :|: & };: _______________________________________________
Koha mailing listhttp://koha-community.org Koha@lists.katipo.co.nz Unsubscribe:https://lists.katipo.co.nz/mailman/listinfo/koha -- Logo inLibro <https://inLibro.com> Caroline Cyr-La-Rose Bibliothécaire | Responsable de produit
T 833-INLIBRO (465-4276) <tel:833-465-4276> <833-465-4276>, poste 221 C caroline.cyr-la-rose@inlibro.com
www.inLibro.com <https://inLibro.com> _______________________________________________
Koha mailing list http://koha-community.org Koha@lists.katipo.co.nz Unsubscribe: https://lists.katipo.co.nz/mailman/listinfo/koha
-- [image: Logo inLibro] <https://inLibro.com> Caroline Cyr-La-Rose Bibliothécaire | Responsable de produit
T 833-INLIBRO (465-4276) <833-465-4276>, poste 221 C caroline.cyr-la-rose@inlibro.com
www.inLibro.com <https://inLibro.com>