Q4 2019 (Edelweiss) Release Notes

Table of Contents

Important Upgrade Considerations

This section outlines all changes that require special consideration for customers in production.  Configuration changes may be needed to prevent operational interruptions.

  • Circulation rules - As of  UXPROD-2130 - Getting issue details... STATUS , fee/fine policies are now required in every circulation rule.  To ensure proper functioning of FOLIO without specifying overdue and lost item policies, institutions can add this generic text to every circulation rule: "o overdue-fine-policy i lost-item-fee-policy" [Questions? contact Emma Boettcher]
  • Loan history - The back end for loan history settings (anonymization) has been completed, as of UXPROD-2068 - Getting issue details... STATUS . Institutions should configure their loan history settings according to their local policies to ensure that loans are not anonymized accidentally. [Questions? contact Emma Boettcher]
  • HRID - The HRID start value for instances, holdings records and items is 1. This may cause collisions with existing HRIDs. The start number should be higher than the last used one for the inventory type. This needs to be done either via an API or the DB directly. Note, this will be less of an issue (or not an issue at all) when the HRID number part increases from 8 to 11, though "in00000001" vs "in00000000001" may be a bit confusing, however generated HRIDs will no longer collide with existing ones. [Questions? contact Ann-Marie Breaux (Deactivated)]
    • Settings - HRID settings, via Settings->Inventory→HRID handling, attempt to access the HRID settings API without permissions granted by the UI causing 403 errors. The workaround is to manually add the required backend permissions for the HRID settings API ("inventory-storage.hrid-settings.item.get" and "inventory-storage.hrid-settings.item.put"). It appears this has been corrected post Edelweiss, but will need an Edelweiss hotfix. Until a hotfix is created, this note should remain here. See:  UIIN-800 - Getting issue details... STATUS
    • HRID handling in SRS - Hotfix applied to Edelweiss to follow the Inventory Instance HRID setting when new MARC Bibliographic records are created in Source Record Storage (SRS). mod-source-record-manager v2.0.2  MODSOURMAN-206 - Getting issue details... STATUS
  • Permissions for Settings (Inventory) pages  - a temporary new permission has been introduced: Settings (Inventory): Display list of settings pages. This change imply if a user needs to be able to edit a given settings page, e.g. Alternative title types in Inventory, then the user need following two permissions: 1) Settings (Inventory): Display list of settings pages and 2) Settings (Inventory): Create, edit, delete alternative title types. Similar Display list-permissions are defined for: Acquisition units, Data import, Developer, ERM usage, Finance, Invoice, Licenses, Notes, Orders, and Tags. [Questions? contact Charlotte Whitt]
  • Patron notices [Questions? contact Darcy Branchini]
    • Multiple loans/items are now supported for notices triggered by due date/time (typically courtesy and overdue notices). Please note that the syntax for multiples can be added by using {{#loans}} {{/loans}} with tokens in between those the start and end loop tags. Also, real time should be unchecked in the policy. You can still use real-time for short term loans (minutely or hourly), but multiples are not supported for these.
    • Multiple loans/items are now supported for notices triggered by check out. They will be bundled automatically by session. Session can be closed by clicking the "End session" button, closing the browser, logging out of FOLIO, and the time out due to inactivity (Settings > Circulation > Other settings). Please note the syntax above for multiple loans/item. It's required for templates using this trigger otherwise the token values will be empty (we will be adding a way for this to fail more gracefully in Q1 2020). Also note, that multiple loans/items is not yet supported for notices triggered by check in.
    • There are now two options for date/time tokens, including date only or date and time. As expected, date will render the Date only and DateTime will render both.
    • The schema for patron notice policies has changed. The "sendWhen" enumeration no longer contains "Recall loanee". Any existing patron notice policy with this value will no longer load in Edelweiss causing UI errors (page becoming unstable) when viewing circulation rules that use this policy or viewing patron notice policies in settings, possibly failures in other places as well.
    •  Workaround for schema changes

      In Edelweiss release the triggering event option Recall loanee was renamed to Item recalled and moved from request notices to loan notices (CIRCSTORE-155). Therefore, all existing patron notice policies, which rely on this no-longer-existing triggering event, must be altered manually to ensure smooth migration to the new release. There are several ways to achieve this:

       Option 1: via UI

      Before upgrade:

      1) find all patron notice policies which include request notices with triggering event Recall loanee

      2) remove these notices from their respective policies

      After upgrade:

      1) change the type of templates used in deleted notices from Request to Loan

      2) make sure those templates are not used by other patron notice policies, and make appropriate adjustments in case they are

      3) recreate deleted notices, but this time as loan notices with triggering event Item recalled

       Option 2: via API

      After the upgrade:

      1) make a GET request to: /patron-notice-policy-storage/patron-notice-policies

      2) find the policy with request notice(s) having Recall loanee as triggering event

      Example response:

      {
        "patronNoticePolicies": [
          {
            "id": "f26bf769-55be-41b8-9849-024023a0519a",
            "name": "Test policy",
            "active": true,
            "metadata": {
              "createdDate": "2020-01-24T14:48:12.506+0000",
              "createdByUserId": "7113320e-ab95-53ae-a420-186cfec0b912",
              "updatedDate": "2020-01-27T10:10:03.102+0000",
              "updatedByUserId": "7113320e-ab95-53ae-a420-186cfec0b912"
            },
            "loanNotices": [],
            "feeFineNotices": [],
            "requestNotices": [
              {
                "templateId": "52014796-3b54-4e37-80fd-c919210044fc",
                "format": "Email",
                "realTime": true,
                "sendOptions": {
                  "sendWhen": "Recall loanee"
                }
              }
            ]
          }
        ],
        "totalRecords": 1
      }

      3) for every such notice, change the value of sendWhen from Recall loanee to Item recalled

      4) move the changed notice(s) from requestNotices[] array to loanNotices[] array of the parent policy

      5) send a PUT request with the updated patron notice policy JSON to:

      /patron-notice-policy-storage/patron-notice-policies/{patron_notice_policy_id}

      Example request:

      PUT /patron-notice-policy-storage/patron-notice-policies/f26bf769-55be-41b8-9849-024023a0519a

      {
          "id": "f26bf769-55be-41b8-9849-024023a0519a",
          "name": "Test policy",
          "active": true,
          "metadata": {
            "createdDate": "2020-01-24T14:48:12.506+0000",
            "createdByUserId": "7113320e-ab95-53ae-a420-186cfec0b912",
            "updatedDate": "2020-01-27T10:11:35.810+0000",
            "updatedByUserId": "7113320e-ab95-53ae-a420-186cfec0b912"
          },
          "loanNotices": [
            {
              "templateId": "52014796-3b54-4e37-80fd-c919210044fc",
              "format": "Email",
              "realTime": true,
              "sendOptions": {
                "sendWhen": "Item recalled"
              }
            }
          ],
          "feeFineNotices": [],
          "requestNotices": []
      }

      6) in the UI, change the type of the template(s) used in the updated notice(s) from Request to Loan

      7) make sure these templates are not used by other patron notice policies, and make appropriate adjustments in case they are

      8) repeat steps 3-7 for every such "broken" patron notice policy found in step 2

       Option 3: via DB

      Before or after the upgrade:

      1) find table patron_notice_policy in schema diku_mod_circulation_storage

      2) find a patron notice policy with request notice(s) having Recall loanee as triggering event

      3) for every such notice, change the value of sendWhen from Recall loanee to Item recalled

      4) move the changed notice(s) from requestNotices[] array to loanNotices[] array of the parent policy

      Original policy JSON:

      {
        "id": "f26bf769-55be-41b8-9849-024023a0519a",
        "name": "Test policy",
        "active": true,
        "metadata": {
          "createdDate": "2020-01-24T14:48:12.506+0000",
          "createdByUserId": "7113320e-ab95-53ae-a420-186cfec0b912",
          "updatedDate": "2020-01-27T10:10:03.102+0000",
          "updatedByUserId": "7113320e-ab95-53ae-a420-186cfec0b912"
        },
        "loanNotices": [],
        "feeFineNotices": [],
        "requestNotices": [
          {
            "templateId": "52014796-3b54-4e37-80fd-c919210044fc",
            "format": "Email",
            "realTime": true,
            "sendOptions": {
              "sendWhen": "Recall loanee"
            }
          }
        ]
      }

      Fixed policy JSON:

      {
          "id": "f26bf769-55be-41b8-9849-024023a0519a",
          "name": "Test policy",
          "active": true,
          "metadata": {
            "createdDate": "2020-01-24T14:48:12.506+0000",
            "createdByUserId": "7113320e-ab95-53ae-a420-186cfec0b912",
            "updatedDate": "2020-01-27T10:11:35.810+0000",
            "updatedByUserId": "7113320e-ab95-53ae-a420-186cfec0b912"
          },
          "loanNotices": [
            {
              "templateId": "52014796-3b54-4e37-80fd-c919210044fc",
              "format": "Email",
              "realTime": true,
              "sendOptions": {
                "sendWhen": "Item recalled"
              }
            }
          ],
          "feeFineNotices": [],
          "requestNotices": []
      }

      5) in the UI, change the type of the template(s) used in the updated notice(s) from Request to Loan

      6) make sure these templates are not used by other patron notice policies, and make appropriate adjustments in case they are

      7) repeat steps 3-6 for every such "broken" patron notice policy

      8) commit your changes

      Also, triggerint event Overdue in loan notices was removed in Edelweiss. Every notice created with this trigger must be reconfigured in the UI to use option Loan due date/time instead. This must be done prior to upgrade to Edelweiss.

  • Staff slips [Questions? contact Darcy Branchini]
    • Pick slips for page requests have been implemented. You run these on demand by service point by going to Requests > Print pick slips for (service point). 
    • In order for pick-slips to be printed correctly, the whole content of a template must be wrapped in a new multiple-items block:

      This new pair of tokens is not included in the list of available tokens yet, so at this point they have to be added to templates manually.
  • Budgets (finance-storage) - The Edelweiss release introduces a new unique index on the budget's 'name' field.  This constraint is added automatically as part of the upgrade procedure.  However, this process will fail if existing budget record names are not unique.  [Questions? contact Craig McNally
    • Workaround - ensure that all budget's have unique names before performing the upgrade to Edelweiss.  This can be done directly in the FOLIO UI in the finance app.
    • MODFISTO-83 - Getting issue details... STATUS
  • Codex Search - There are no visible codex permissions that can be granted to users to allow codex search to function since the codex API is now protected with permissions. Backend permissions ("codex-mux.all" and "codex-ekb.all") must be added via the API or via other less intuitive ways. See:  UISE-119 - Getting issue details... STATUS
  • Ledgers (finance-storage) - A new required field "fiscalYearOneId" has been added to the ledger.  It would be very difficult to accurately guess the appropriate value to put here in a migration script, so manual steps must be taken once migration has completed.
    • Workaround - Manually specify a value for the new required field in each ledger.  This can be done directly in the UI.
    • Until this is fixed, the "funds" tab of finance may not work correctly.
    • [Questions? contact Craig McNally
  • Order Templates - Order templates have been moved from mod-configuration to mod-orders/mod-orders-storage.  Since this is a cross-module migration, the standard data migration scripts are inadequate.  Luckily, the templates can more or less be moved as-is from one place to the other.  This can be accomplished via the APIs.  The shell script below demonstrates how this would work.  [Questions? contact Craig McNally
    • order template migration script
      #!/bin/bash
      
      curl $OKAPI/configurations/entries?limit=2147483647 -H "X-Okapi-Token: $TOKEN" -G --data-urlencode 'query=(module=ORDERS and configName=ORDERS.order-templates)' -w'\n' -s | jq '.configs[] | "\(.id)|\(.value)"' -r > templates
      cat templates | \
      while read TEMPLATE
      do
        ID=$(echo "$TEMPLATE" | cut -d\| -f1);
        JSON=$(echo "$TEMPLATE" | cut -d\| -f2- | jq ". += {\"id\": \"$ID\"}");
        curl $OKAPI/orders/order-templates -H "Content-Type: application/json" -H "X-Okapi-Token: $TOKEN" -XPOST -d "$JSON"
      done
  • Configuration – Upgrading from mod-configuration-5.1.0 to mod-configuration-5.3.0 stops with "ERROR: column "orig_id" is of type uuid but expression is of type jsonb" (https://folio-org.atlassian.net/browse/MODCONF-46). Workaround:

Post-Release Hotfixes

Date (verified in BugFest)Bug fixedDocumentation on GitHub
2/13/2020Request from Chalmers on having the Instance, item list to include Volume and Year, caption. Core Functional team implemented the solution - see UIIN-954

https://github.com/folio-org/ui-inventory/releases/tag/v1.13.4

2/14/2020Changes to have SRS use the Inventory HRID settings accidentally broke the "View source" button in Inventory. Fojiet have now fixed it - see UIIN-980https://github.com/folio-org/ui-inventory/releases/tag/v1.13.5

Fix json-schema for lost item fee policy. UIU-1156, UICIRC-422

Fix PostgreSQL connection memory leak by updating RMB to 27.1.2. MODFEE-26, RMB-485

https://github.com/folio-org/mod-feesfines/releases/tag/v15.6.1

https://github.com/folio-org/mod-feesfines/releases/tag/v15.6.2

4/23/2020

Fix: Return email address even when no physical address exists

https://github.com/folio-org/mod-ncip/releases/tag/v1.1.2



Top 10 Areas of Growth

FOLIO Edelweiss Top 10 Areas of Growth.pdf

New Features by Epic (Sub-Project)

epic link key summary
Loading...
Refresh

Closed Bugs

May include some bugs closed but not included in the Q3 release

Unable to render Jira chart macro due to an execution error.


All Closed Bugs and Stories

May include some bugs closed but not included in the Q3 release

Unable to render Jira chart macro due to an execution error.

Known Issues at Time of Release (January 10, 2020)

Unable to render Jira chart macro due to an execution error.