<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>