<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">Dear Terran and everyone else
interested in the topic :-),</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">We have spent some time testing our
trigger (actually, more of them but especially the one which we
mentioned below ;-) and - as a result - have found out two things:</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">1) The granularity in crontab and in
the staff client interface must use the same case, meaning "daily"
and "Daily" are treated as two different values.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">2) Without the parameter
"--run-pending" triggers do not appear to work.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">What is a bit confusing in this respect
is the relevant description in documentation:</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">
<div><a
href="https://docs.evergreen-ils.org/eg/docs/3.8/admin/actiontriggers.html"
target="_blank" rel="noreferrer" class="moz-txt-link-freetext">https://docs.evergreen-ils.org/eg/docs/3.8/admin/actiontriggers.html</a></div>
<div><br>
</div>
<div>vs. the actual values included in sample crontab:<br>
</div>
<div><br>
</div>
<div><a
href="https://git.evergreen-ils.org/?p=Evergreen.git;a=blob;f=Open-ILS/examples/crontab.example;hb=2678ee1dfcc448968ba8e8ae7fd0da1bc69eeecf"
target="_blank" rel="noreferrer" class="moz-txt-link-freetext">https://git.evergreen-ils.org/?p=Evergreen.git;a=blob;f=Open-ILS/examples/crontab.example;hb=2678ee1dfcc448968ba8e8ae7fd0da1bc69eeecf</a></div>
<div><br>
</div>
<div>E.g., the documentation mentions "Hourly" (with the "H" - an
uppercase letter):</div>
<div><br>
</div>
<div>"Options are Hourly, Daily, Weekly, Monthly, Yearly, but you
may also create new values."</div>
<div><br>
</div>
<div>But the sample crontab includes the value "hourly" (all
lowercase letters):<br>
</div>
<div><br>
</div>
<div>0 * * * * . ~/.bashrc &&
$EG_BIN_DIR/action_trigger_runner.pl --osrf-config $SRF_CORE
--process-hooks --granularity hourly</div>
<div><br>
</div>
<div>Also, the crontab example commands under the heading "Passive
A/T event generation." do not include -run--pending parameter
but it seems that without it the triggers do not do what one
expect them to.</div>
<div><br>
</div>
<div>Maybe this observation would be useful to some of you who may
also struggle to make some triggers work :-).<br>
</div>
<div><br>
</div>
<div>Linda<br>
</div>
<div><br>
</div>
</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">On 5/3/22 21:31, Linda Jansová wrote:<br>
</div>
<blockquote type="cite"
cite="mid:d1b6a3d5-495e-07bd-f8c6-22654a1f33c0@gmail.com">
<div class="moz-cite-prefix">Dear Terran,</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Thank you very much for the hints and
especially for sharing your working config for this type of
notification! We will compare it with ours and hopefully find
out what has not been set up properly in our installation :-).</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Linda<br>
</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">On 5/3/22 21:23, Terran McCanna
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CALh4dLDai70x1wXWYin5Xjm16+m40M7tcK_4uSXwU1-JT_XZ9A@mail.gmail.com">
<div dir="ltr">
<div>My first thought was perhaps the "Daily" granularity
isn't set up in your cron jobs properly.<br>
</div>
<div><br>
</div>
<div>Also, you may want to check the Trigger Event Environment
(by clicking on the action trigger title rather than on the
row) to make sure it has all the field paths you need. <br>
</div>
<div><br>
</div>
<div>This is how we have our 10-day notice set up:</div>
<div><br>
</div>
<div><b>Trigger Event Environment:</b></div>
<div>billable_transaction.summary</div>
<div>circ_lib</div>
<div>circ_lib.billing_address</div>
<div>target_copy.call_number</div>
<div>usr</div>
<div>usr.card</div>
<div>usr.home_ou</div>
<div>usr.home_ou.billing_address</div>
<div>usr.home_ou.hours_of_operation</div>
<div>usr.home_ou.mailing_address</div>
<div>usr.home_ou.parent_ou<br>
</div>
<div><br>
</div>
<div><b>Settings:</b><br>
</div>
<div>Owning Library: PINES</div>
<div>Name: 10 Day Overdue Email Notification</div>
<div>Hook: checkout.due</div>
<div>Enabled: (checked)</div>
<div>Processing Delay: 10 days</div>
<div>Processing Delay Content Field: due_date</div>
<div>Processing Group Context Field: usr</div>
<div>Reactor: SendEmail</div>
<div>Validator: CircIsOverdue</div>
<div>Context Bib Path: target_copy.call_number.record</div>
<div>Context Item Path: target_copy</div>
<div>Context Library Path: circ_lib</div>
<div>Context User Path: usr</div>
<div>Granularity: overdue-notices</div>
<div>Max Event Validity Delay: 11 days</div>
<div>Retention Interval: 6 mons</div>
<div><br>
</div>
<div><b>Template: </b><br>
</div>
<div>[%- USE date -%]<br>
[%- user = target.0.usr -%]<br>
[%- homelib = user.home_ou -%]<br>
To: [%- params.recipient_email || user.email %]<br>
From: [%- helpers.get_org_setting(<a
href="http://homelib.id" moz-do-not-send="true">homelib.id</a>,
'org.bounced_emails') || homelib.email ||
params.sender_email || default_sender %]<br>
Reply-To: [%- helpers.get_org_setting(<a
href="http://homelib.id" moz-do-not-send="true">homelib.id</a>,
'org.bounced_emails') || homelib.email ||
params.sender_email || default_sender %]<br>
Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt
=> 1) %]<br>
Subject: [PINES] Overdue Library Materials<br>
<br>
Attention: [% user.first_given_name %] [% user.family_name
%]<br>
Card Number: [% user.card.barcode %]<br>
<br>
Our records indicate the following items are 10 days or more
overdue.<br>
<br>
[% FOR circ IN target %]<br>
[%- copy_details = helpers.get_copy_bib_basics(<a
href="http://circ.target_copy.id" moz-do-not-send="true">circ.target_copy.id</a>)
-%]<br>
Title: [% copy_details.title FILTER ucfirst %]<br>
Author: [% copy_details.author FILTER ucfirst %]<br>
Call No: [% circ.target_copy.call_number.label %]<br>
Barcode: [% circ.target_copy.barcode %]<br>
Checked Out At: [% <a href="http://circ.circ_lib.name"
moz-do-not-send="true">circ.circ_lib.name</a> %]<br>
Due Date: [%
date.format(helpers.format_date(circ.due_date), '%m-%d-%Y')
%]<br>
<br>
[% END %]<br>
<br>
Overdue fines will continue to accrue until items are
returned. Items may be returned and fines paid at any PINES
member library. Some libraries also accept online payments
at: <a href="https://gapines.org/login"
class="moz-txt-link-freetext" moz-do-not-send="true">https://gapines.org/login</a><br>
<br>
If you have any questions, please contact your home library
at:<br>
<br>
[% <a href="http://homelib.parent_ou.name"
moz-do-not-send="true">homelib.parent_ou.name</a> %]<br>
[% <a href="http://homelib.name"
moz-do-not-send="true">homelib.name</a> %]<br>
[%- SET addr = homelib.mailing_address -%]<br>
[%- IF !addr -%] [%- SET addr = homelib.billing_address
-%] [%- END %]<br>
[% addr.street1 %] [% addr.street2 %]<br>
[% addr.city %], [% addr.state %] [% addr.post_code %]<br>
[% homelib.phone %]<br>
[% homelib.email %]<br>
<br>
[%- SET liburl = helpers.get_org_setting(<a
href="http://homelib.id" moz-do-not-send="true">homelib.id</a>,
'lib.info_url') -%]<br>
[% liburl %]<br>
<br>
(Please have your library card number available.)<br>
<br>
<br>
You may also access your account online at: <a
href="https://gapines.org/login"
class="moz-txt-link-freetext" moz-do-not-send="true">https://gapines.org/login</a><br>
<br>
---------------------------------------------------------------<br>
<br>
This is an automatically generated message. Please do not
reply. If you believe you have received this message in
error, please contact the library listed above.<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr" class="gmail_signature"
data-smartmail="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div><br>
<div dir="ltr">
<table>
<colgroup><col width="94"><col
width="530"></colgroup><tbody>
<tr>
<td>
<p dir="ltr"><span><span><img
moz-do-not-send="true"
width="75" height="75"></span></span></p>
</td>
<td>
<p dir="ltr"><span>Terran
McCanna, PINES Program
Manager</span></p>
<hr>
<p dir="ltr"><span></span><span>Georgia
Public Library Service |
University System of
Georgia</span></p>
<p dir="ltr"><span>2872
Woodcock Blvd, Suite 250 l
Atlanta, GA 30341</span></p>
<p dir="ltr"><span>(404)
235-7138</span><span> | <a
href="mailto:tmccanna@georgialibraries.org" target="_blank"
class="moz-txt-link-freetext"
moz-do-not-send="true">tmccanna@georgialibraries.org</a>
<br>
</span></p>
<p dir="ltr"><span><a
href="http://help.georgialibraries.org"
target="_blank"
class="moz-txt-link-freetext"
moz-do-not-send="true">http://help.georgialibraries.org</a>
| <a
href="mailto:help@georgialibraries.org"
target="_blank"
class="moz-txt-link-freetext"
moz-do-not-send="true">help@georgialibraries.org</a><br>
</span></p>
<br>
<p dir="ltr"><a
href="https://www.facebook.com/georgialibraries"
target="_blank"
moz-do-not-send="true"><span><span><img
moz-do-not-send="true" width="36" height="36"></span></span></a><a
href="https://www.twitter.com/georgialibs"
target="_blank"
moz-do-not-send="true"><span><span><img
moz-do-not-send="true" width="35" height="35"></span></span></a><a
href="https://www.instagram.com/georgialibraries/"
target="_blank"
moz-do-not-send="true"><span><span><img
moz-do-not-send="true" width="34" height="34"></span></span></a><a
href="https://www.twitter.com/georgialibs"
target="_blank"
moz-do-not-send="true"><span></span></a></p>
</td>
</tr>
<tr>
<td colspan="2">
<p dir="ltr"><a
href="http://georgialibraries.org"
target="_blank"
moz-do-not-send="true"><span>Join
our email list</span></a><span>
</span><span>for stories of
Georgia libraries making
an impact in our
communities.</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Mon, May 2, 2022 at 2:26
AM Linda Jansová via Evergreen-general <<a
href="mailto:evergreen-general@list.evergreen-ils.org"
class="moz-txt-link-freetext" moz-do-not-send="true">evergreen-general@list.evergreen-ils.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote">
<div>
<p>Dear all,</p>
<p>We are on Evergreen 3.6.4 and are trying to make the
following trigger (notification email) work. We have
some other notification emails working correctly, so I
suppose we probably have something wrong with the
trigger configuration itself rather than with the email
server.<br>
</p>
<p>This notification is supposed to send an email to users
who have not returned their checked-out item(s) in time
- it should send the message one day after the due date.</p>
<p>Currently, we have the following setup:<br>
</p>
<p><b>Owning Library</b>: JAB</p>
<p><b>Name: </b>1 Day Overdue Email Notification - Jabok</p>
<p><b>Hook:</b> checkout.due</p>
<p><b>Enabled:</b> True</p>
<p><b>Processing Delay:</b> 1 day</p>
<p> <b>Processing Delay Context Field:</b> due_date</p>
<p><b>Processing Group Context Field:</b> usr</p>
<p><b>Reactor: </b>SendEmail</p>
<p><b>Validator:</b> CircIsOverdue</p>
<p><b>Granularity:</b> Daily</p>
<p><b>Max Event Validity Delay:</b> 2 days</p>
<p><b>Template:</b></p>
<p>[%- USE date -%]<br>
[%- user = target.0.usr -%]<br>
To: [%- params.recipient_email || user.email %]<br>
From: [%- params.sender_email || default_sender %]<br>
Subject: Nevracene knihy<br>
<br>
Ctenar: [% user.family_name %], [% user.first_given_name
%]<br>
<br>
Dovolujeme si Vas upozornit, ze uplynula vypujcni lhuta
u nekterych vypujcentych knihovnich jednotek. Na Vasem
konte zacalo nabyvat zpozdne ve vysi 2 Kc za knihovni
jednotku a den.<br>
<br>
Vypujcky s uplynulou vypujcni lhutou jiz NELZE
PRODLOUZIT a proto je nutne je prinest k vraceni do
knihovny (pokud nejsou rezervovane jinym ctenarem, je
pote eventualne mozne jejich opetovne pujceni).<br>
Dokud nebudou vraceny (a zaroven dokud nebudou zaplaceny
poplatky za zpozdne), je ctenarske konto blokovano a
NENI MOZNE PRODLUZOVAT VYPUJCNI LHUTU zadnych
vypujcenych knihovnich jednotek ani PUJCOVAT NEBO
REZERVOVAT ZADNE DOKUMENTY. Je take pozastavena moznost
splneni drive zadanych rezervaci nebo blokaci.<br>
<br>
<br>
Seznam knihovnich jednotech, u kterych jiz uplynula
vypujcni lhuta: <br>
<br>
[% FOR circ IN target %]<br>
[%- copy_details = helpers.get_copy_bib_basics(<a
href="http://circ.target_copy.id" target="_blank"
moz-do-not-send="true">circ.target_copy.id</a>) -%]<br>
Nazev: [% copy_details.title %]<br>
Autor: [% copy_details.author %]<br>
Carovy kon: [% circ.target_copy.barcode %]<br>
K vraceni dne: [%
date.format(helpers.format_date(circ.due_date),
'%Y-%m-%d') %]<br>
<br>
<br>
[% END %]<br>
</p>
<p>All other available fields are empty in our setup.<br>
</p>
<p>Compared to 7 Day Overdue Email Notification from <a
href="https://demo.evergreencatalog.com/eg/staff/admin/local/action_trigger/event_definition"
target="_blank" class="moz-txt-link-freetext"
moz-do-not-send="true">https://demo.evergreencatalog.com/eg/staff/admin/local/action_trigger/event_definition</a>
(which is Evergreen 3.8.0), fields Context Bib Path,
Context Item Path and Context Library Path are missing
from our interface. Have they been added to the
interface in some of the more recent Evergreen versions?
Or is it something we have lost along the way when
migrating from older Evergreen versions (during the
upgrade process)? This installation of ours is actually
more than a decade old and keeps being upgraded each
year...</p>
<p>Also, I have noticed that our template actually does
not include:</p>
<p>Date: [%- date.format(date.now, '%a, %d %b %Y %T
-0000', gmt => 1) %]<br>
<br>
Auto-Submitted: auto-generated</p>
<p>However, we have another one that seems to be working
fine where these two lines are also omitted...</p>
<p>The aforementioned 3.8.0 Evergreen demo also has -
compared to what we have:</p>
<p><b>Opt-In Setting Type</b>:
circ.default_overdue_notices_enabled</p>
<p><b>Opt-In User</b><b> Field:</b> usr</p>
<p>What is also different is that we have a daily
granularity while the demo installation does not have
any. Also, the demo server has a longer Max Event
Validity Delay - 8 days - while we only have two (maybe
two days are not sufficient in this case?).<br>
</p>
<p>(I understand that the demo server may not include the
pristine setup of this trigger as anybody could change
it so - probably in theory rather than in practice -
some non-default values might have been inserted since
it was last replaced with the original demo/default
data. However, I think it may be a good starting point
for making the comparisons anyway.)<br>
</p>
<p>Does anyone have any idea what should be wrong in our
configuration? Or where else should we look (like
library opening hours, granularity values accepted by
the cron job or something else entirely)?</p>
<p>Thank you in advance for sharing any tips!</p>
<p>Linda<br>
</p>
</div>
_______________________________________________<br>
Evergreen-general mailing list<br>
<a href="mailto:Evergreen-general@list.evergreen-ils.org"
target="_blank" class="moz-txt-link-freetext"
moz-do-not-send="true">Evergreen-general@list.evergreen-ils.org</a><br>
<a
href="http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general"
rel="noreferrer" target="_blank"
class="moz-txt-link-freetext" moz-do-not-send="true">http://list.evergreen-ils.org/cgi-bin/mailman/listinfo/evergreen-general</a><br>
</blockquote>
</div>
</blockquote>
<p><br>
</p>
</blockquote>
<p><br>
</p>
</body>
</html>