[Evergreen-general] An action trigger for sending emails after bib records are created?
Linda Jansová
linda.jansova at gmail.com
Wed Jul 6 13:50:31 EDT 2022
Dear Michele,
Thank you for highlighting this bug!
I have summed up your observation and added it as a comment to the bug
so that it is easier for others to figure this out (and look forward for
the patch to be included in the future releases :-)!
Linda
On 7/6/22 17:24, Morgan, Michele wrote:
> Hi Linda,
>
> Since the purpose of a custom filter is to further limit events that
> are being created, adding one would not help if no events are
> currently succeeding.
>
> Perhaps you are running into this launchpad bug:
>
> https://bugs.launchpad.net/evergreen/+bug/1955079
>
> Since your triggers are using the same hook and reactor as the one
> that emails records from the catalog, I would suspect yours would also
> be affected by this bug.
>
> Hope this is helpful,
> Michele
>
> --
> Michele M. Morgan, Technical Support Analyst
> North of Boston Library Exchange, Danvers Massachusetts
> mmorgan at noblenet.org
>
>
>
> On Wed, Jul 6, 2022 at 4:49 AM Linda Jansová via Evergreen-general
> <evergreen-general at list.evergreen-ils.org> wrote:
>
> Hi everyone,
>
> As we have not managed to find a solution yet, we have examined
> the documentation
> (https://docs.evergreen-ils.org/eg/docs/3.9/admin/actiontriggers.html)
> again and have found out that a JSON custom filters can be added:
>
> --custom-filters=[filter_file]: File containing a JSON Object
> which describes any hooks that should use a user-defined filter to
> find their target objects. Defaults to:
> /openils/conf/action_trigger_filters.json
>
> Should the default (example) file
>
> https://git.evergreen-ils.org/?p=Evergreen.git;a=blob;f=Open-ILS/examples/action_trigger_filters.json.example;h=c56559f584c148b3a90808df6bb3c650fba0c3dd;hb=HEAD
>
> be okay? Or should some changes be made to it so that the
> biblio.format.record_entry.email hook actually sends the emails?*
> *
>
> Anyway, we believe that the following line from our crontab should
> take care of sending out the emails resulting from the processing
> of the aforementioned hook:
>
> */5 * * * * . ~/.bashrc && $EG_BIN_DIR/action_trigger_runner.pl
> <http://action_trigger_runner.pl> --osrf-config $SRF_CORE
> --run-pending
>
> But maybe we are mistaken to assume that this trigger (without any
> granularity) is handled using this crontab command?
>
> Any hints as to what and where check are much appreciated!
>
> Linda
>
>
> On 6/29/22 16:58, Linda Jansová wrote:
>>
>> Dear all,
>>
>> We are trying to make our action triggers work - we are on a 3.6
>> system and so far we have not found a working solution for a
>> trigger that would send an email after a bib record is created.
>>
>> As we suspect that there might be something wrong with our
>> crontab, attached is its current crontab setup.
>>
>> Bellow are two action triggers which we have (both
>> unsuccessfully) tried. The first one uses our original template
>> code (which - for some reason - had worked before we upgraded to
>> 3.6 last year) and the second one uses the template code from a
>> 3.9 community demo system
>> (https://demo.evergreencatalog.com/eg2/en-US/staff/admin/local/action_trigger/event_definition/31).
>> I am well aware that there is a version mismatch in the second
>> case but we decided to at least give it a try before digging deeper.
>>
>> *Action trigger with original template code and settings
>> (Evergreen 3.6):*
>>
>> *Owning Library: *CONS*
>> Name:* biblio.record_entry.email*
>> Hook: *biblio.format.record_entry.email*
>> Enabled:* ticked*
>> Processing Delay:* 00:00:00*
>> Processing Delay Context Field:* empty*
>> Processing Group Context Field:* owner*
>> Reactor:* SendEmail*
>> Validator:* NOOP_True*
>> Event Repeatability Delay:* empty
>>
>> *Definition ID:* 165*
>> Failure Cleanup:* DeleteTempBiblioBucket*
>> Granularity:* empty*
>> Max Event Validity Delay:* empty*
>> Message Library Path:* empty*
>> Message Template:* empty*
>> Message Title:* empty*
>> Message User Path:* empty*
>> Opt-In Setting Type:* empty*
>> Opt-In User Field:* empty*
>> Retention Interval:* empty*
>> Success Cleanup:* DeleteTempBiblioBucket*
>> Template:*
>>
>> [%- SET user = target.0.owner -%]
>>
>> To: [%- params.recipient_email || user.email %]
>>
>> From: [%- params.sender_email || default_sender %]
>>
>> Subject: Informace o dokumentech v katalogu
>>
>>
>> [% FOR cbreb IN target %][% title = '' %]
>>
>> [% FOR item IN cbreb.items;
>>
>> bre_id = item.target_biblio_record_entry;
>>
>>
>> bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
>>
>> FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or
>> @code="b"]');
>>
>> title = title _ part.textContent;
>>
>> END;
>>
>>
>> author =
>> bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
>>
>> item_type =
>> bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
>>
>> publisher = bibxml.findnodes('//*[@tag="260" or
>> @tag="264"]/*[@code="b"]').textContent;
>>
>> pubdate = bibxml.findnodes('//*[@tag="260" or
>> @tag="264"]/*[@code="c"]').textContent;
>>
>> isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
>>
>> issn = bibxml.findnodes('//*[@tag="022"]/*[@code="a"]').textContent;
>>
>> upc = bibxml.findnodes('//*[@tag="024"]/*[@code="a"]').textContent;
>>
>> %]
>>
>>
>> Číslo záznamu [% bre_id %]
>>
>> [% title %] [% author %]
>>
>> [% publisher %] [% pubdate %]
>>
>> [% IF isbn %]ISBN: [% isbn %][% END %][% IF issn %]ISSN: [% issn
>> %][% END %]
>>
>> Odkaz na záznam ve Společném katalogu Evergreen:
>> http://spok.jabok.cuni.cz/eg/opac/record/[% bre_id %]
>>
>> [% END %]
>>
>> [% END %]
>>
>>
>>
>>
>> -----------
>>
>> TIP: Odkaz na záznam(y) v katalogu vaší knihovny:
>>
>>
>> Pokud chcete vytvořit odkaz na knihu/dokument přímo do katalogu
>> vaší knihovny, přidejte čísla záznamu na konec níže uvedeného URL
>> vaší knihovny (za poslední lomítko):
>>
>> - Knihovna Jabok: https://knihovna.jabok.cuni.cz/eg/opac/record/
>>
>> - Evangelikální teologický seminář:
>> https://ets.jabok.cuni.cz/eg/opac/record/
>>
>> - Jáchymka: https://jachymka.jabok.cuni.cz/eg/opac/record/
>>
>> - Katolický domov studujících:
>> https://kds.jabok.cuni.cz/eg/opac/record/
>>
>> - Člověk v tísni: https://clovekvtisni.jabok.cuni.cz/eg/opac/record/
>>
>> - Hospic Dobrého Pastýře:
>> https://dobrypastyr.jabok.cuni.cz/eg/opac/record/
>>
>>
>>
>> *Action trigger with template code from the community demo server
>> (Evergreen 3.9):*
>>
>> *Owning Library:* CONS*
>> Name:* BibliografickeZaznamyEmail*
>> Hook:* biblio.format.record_email
>>
>> *Enabled:* ticked*
>> Processing Delay:* 00:00:00*
>> Processing Delay Context Field:* empty*
>> Processing Group Context Field:* owner*
>> Reactor: *SendEmail*
>> Validator:* NOOP_True*
>> Event Repeatability Delay:* empty*
>> Definition ID:* 213*
>> Failure Cleanup:* DeleteTempBiblioBucket*
>> Granularity:* empty*
>> Max Event Validity Delay:* empty*
>> Message Library Path:* empty*
>> Message Template:* empty*
>> Message Title:* empty*
>> Message User Path:* empty*
>> Opt-In Setting Type:* empty*
>> Opt-In User Field:* empty*
>> Retention Interval:* empty*
>> Success Cleanup:* DeleteTempBiblioBucket*
>> Template:*
>>
>> [%- USE date -%]
>>
>> [%- SET user = target.0.owner -%]
>>
>> To: [%- params.recipient_email || user_data.0.email || user.email %]
>>
>> From: [%- params.sender_email || default_sender %]
>>
>> Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]
>>
>> Subject: [%- user_data.0.subject || 'Bibliographic Records' %]
>>
>> Auto-Submitted: auto-generated
>>
>>
>> [%- FOR cbreb IN target;
>>
>>
>> flesh_list = '{mra';
>>
>> IF user_data.0.type == 'full';
>>
>> flesh_list = flesh_list _ ',holdings_xml,acp';
>>
>> IF params.holdings_limit;
>>
>> flimit = 'acn=>' _ params.holdings_limit _ ',acp=>' _
>> params.holdings_limit;
>>
>> END;
>>
>> END;
>>
>> flesh_list = flesh_list _ '}';
>>
>>
>> item_list = helpers.sort_bucket_unapi_bre(cbreb.items,{flesh =>
>> flesh_list, site => user_data.0.context_org, flesh_limit =>
>> flimit}, user_data.0.sort_by, user_data.0.sort_dir);
>>
>>
>> FOR item IN item_list -%]
>>
>>
>> [% loop.count %]/[% loop.size %]. Bib ID# [% item.id
>> <http://item.id> %]
>>
>> [% IF item.isbn %]ISBN: [% item.isbn _ "\n" %][% END -%]
>>
>> [% IF item.issn %]ISSN: [% item.issn _ "\n" %][% END -%]
>>
>> [% IF item.upc %]UPC: [% item.upc _ "\n" %][% END -%]
>>
>> Title: [% item.title %]
>>
>> [% IF item.author %]Author: [% item.author _ "\n" %][% END -%]
>>
>> Publication Info: [% item.publisher %] [% item.pubdate %]
>>
>> Item Type: [% item.item_type %]
>>
>> [% IF user_data.0.type == 'full' && item.holdings.size == 0 %]
>>
>> * No items for this record at the selected location
>>
>> [%- END %]
>>
>> [% FOR cp IN item.holdings -%]
>>
>> * Library: [% cp.circ_lib %]
>>
>> Location: [% cp.location %]
>>
>> Call Number: [% cp.prefix _ ' ' _ cp.callnumber _ ' ' _ cp.suffix %]
>>
>> [% IF cp.parts %] Parts: [% cp.parts _ "\n" %][% END -%]
>>
>> Status: [% cp.status_label %]
>>
>> Barcode: [% cp.barcode %]
>>
>>
>> [% END -%]
>>
>> [%- END -%]
>>
>> [%- END -%]
>>
>>
>> Do you have any idea about what might be preventing the trigger
>> from working properly? Or could you please share your working config?
>>
>> Or is there a way to switch on a debug mode in logging that could
>> shed more light on what is happening in our system when it comes
>> to action triggers and emails?
>>
>> Thank you very much for any hints!
>>
>> Linda
>>
>> **
>>
>
> _______________________________________________
> Evergreen-general mailing list
> Evergreen-general at list.evergreen-ils.org
> http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.evergreen-ils.org/pipermail/evergreen-general/attachments/20220706/bf007f8b/attachment-0001.htm>
More information about the Evergreen-general
mailing list