ILLiad ReShare Server Addon

This addon can be configured as a Decision Support Pipeline Addon or as a Server Addon and is installed using the ILLiad Customization Manager. See Installing and Configuring ILLiad Server Addons for more information. For more information on the Decision Support Pipeline, see Decision Support Pipeline Overview.

This addon is only compatible with ILLiad System Manager v9.1.4 or later.

If used with the Decision Support Pipeline, this is a stage 2 & 3 DSP addon. For more information on stages, see Decision Support Pipeline Overview.

Name

ReShare

Version

2.0.6

Author

Atlas Systems, Inc.

Description

The ILLiad ReShare addon is a Server Addon/Decision Support Pipeline (DSP) Addon that helps automate fulfillment through the ReShare service. It will process ILLiad requests placed in the Loan DSP pipeline or in a specified search queue, automatically initiate a ReShare request if appropriate, and poll the status of the ReShare request to automatically complete the ILLiad request or otherwise indicate it is unfilled.

Download

Release Notes

  • v2.0.6:

    • Fixed an issue where the addon would not always select and create a request for the item record with the most loanable holdings after querying the Shared Index.

    • For troubleshooting purposes, a note containing detailed search results will now be added to the ILLiad transaction when the addon queries the Shared Index for the requested item. This note will include the specific query type and query terms used to perform the search and the last five characters of each result's GUID. Results will be sorted in descending order by their loanable holdings count and records with no loanable holdings will be excluded from the list.

  • v2.0.5:

    • Fixed an issue where the addon sometimes did not update missing HRIDs on newly created requests.

Integration Known Issues

The following known issues may affect the addon’s functionality and are awaiting resolution:

  • Issue: Notes and/or volume information on the ILLiad request do not fully transfer to ReShare due to the 255-character limit in ReShare.

    • Status: As of v2.0.0 of the addon, notes, and volume information transferred from the ILLiad request to the ReShare request will be truncated to 252 characters if necessary and appended with “…” to indicate that the information has been truncated. The complete volume and note information can then be viewed on the associated ILLiad request if needed.

  • Issue: The ReShare addon may send ILLiad requests to the wrong UnfilledQueue and/or ErrorQueue for institutions running multiple copies of the addon configured with different values in the NVTGC and UnfilledQueue/ErrorQueue settings.

    • This issue was caused by the addon failing to filter requests by NVTGC when polling for updates from ReShare and is fixed in version 2.0.0.

  • Issue: If the pickup location for the borrowing library is set to the default_circ_desk in ReShare, then the pickup location on the borrowing library’s ILLiad request will be incorrectly updated to the lending library’s pickup location when the ReShare request is filled.

    • Status: ReShare just pushed out a fix that allows each pickup location to have a unique identifier. To verify, Atlas will help a couple of sites update this value and test the new parameters. The site will need to update its pickup locations with the new unique pickup location identifier in the PickupLocationLookupValue setting.

  • Issue: If a search by ISBN of the ReShare Shared Index returns multiple bibliographic records, the addon will route the request to a manual processing queue to allow ILL staff to decide which bibliographic record should be selected. A note will be added to the request indicating that multiple results were found. This is a result of the difference in metadata for each item such as the title.

    • Status: As of v1.0.7 of the addon, when searching the Shared Index using an OCLC number or ISBN returns multiple bibliographic records, the addon will now select the result with the most circulating holdings to create the ReShare request. Title, author, and date searches will still fail if more than one result is returned and the request will be routed to a queue for manual processing.

Configuration - Addon Settings

Addon settings are configured in the Server Addons form located in the ILLiad Customization Manager. These settings will be the same whether using the addon as a Server Addon or as a Decision Support Pipeline Addon.

Name

Type

Default

Description

Name

Type

Default

Description

NVTGC

String

ILL

This setting should be set to the same NVTGC that this addon is configured under in the Customization Manager. It is used to filter requests that should be processed by this addon. This is particularly important for shared server setups.

SharedIndexAPIUrl

String

 

The URL for the Shared Index API service.

ReshareAPIUrl

String

 

The URL for the Reshare API service.

ReshareAPIUsername

String

 

The username to use when authenticating against the Reshare API service.

ReshareAPIPassword

String

 

The password to use when authenticating against the Reshare API service.

ReshareTenant

String

 

Your institution's tenant ID or SLUG for the Reshare API service.

OpenURLListenerURL

String

 

The OpenURL endpoint used to create requests in ReShare.

OpenURLTenant

String

 

Your institution's symbol for the ReShare OpenURL endpoint.

SearchingMonitorQueue

String

Awaiting Reshare Search

Defines the ILLiad status that the addon will monitor for requests that it should try to fulfill through ReShare.

NotFoundQueue

String

Awaiting Request Processing

This defines the ILLiad status that requests will be routed to when a requestable item is not found in ReShare or when multiple matches are returned from a title, author, or date search and a single selection cannot be made.

UnfilledQueue

String

Awaiting Unfilled Processing

This defines the ILLiad status that requests will be routed to when they are marked unfilled in ReShare.

RequestSentQueue

String

Request Sent

This defines the ILLiad status that requests will be routed to when they are successfully requested in ReShare.

ErrorQueue

String

ReShare Error Processing

This defines the ILLiad status that requests will be routed to when the addon encounters an error that cannot be automatically resolved.

SendIdleRequestsToErrorQueue

Boolean

True (checked)

If true, requests with a ReShare statecode of REQ_IDLE will be routed to the error queue with a message added in the notes.

PatronIDField

String

{TableField:User.Username}

The value to use to identify who the request is for. This field supports table tags and will use the ILLiad request's username by default.

PickupLocationLookupValue

String

{TableField:User.NVTGC}

The value to use to identify a pickup location value of the request. This field supports table tags and will use the NVTGC of the owner of the ILLiad request by default. This value can then be used to lookup the ReShare pickup location code from the PickupLocationLookupMapping setting.

PickupLocationLookupMapping

String

ILL=DEFAULT_CIRC_DESK

A comma-separated mapping that defines the ReShare pickup location or LMS location code to use for a given ILLiad PickupLocationLookupValue, determined from the prior setting. If this mapping does not contain a key for the provided lookup value, the lookup value will be used without modification.

RequestPollingFrequency

String

10

Defines how frequently, in minutes, the addon will poll the ReShare service for status updates on submitted requests.

ReshareFilledStatuses

String

REQ_SHIPPED

A comma-separated list of the ReShare states that are considered to be filled.

ReshareUnfilledStatuses

String

REQ_END_OF_ROTA, REQ_UNABLE_TO_CONTACT_SUPPLIER

A comma-separated list of the ReShare states that are considered to be unfilled.

RequestPlaceholderID

String

ReShareIdPending

Placeholder value to use in the ILLNumber field on the ILLiad request for a new ReShare request for which an HRID is not yet available.

NoteAndLogPrefix

String

ReShare

Prefix used to identify log message and transaction notes made by the addon.

ReShare Configuration & Testing

Please contact your consortium for help acquiring the initial configurations and credentials listed below. If you have any questions concerning troubleshooting for installation, please contact Atlas Support (support@atlas-sys.com):

  • SharedIndexAPIUrl

  • ReshareAPIUrl

  • ReshareAPIUsername

  • ReshareAPIPassword

  • ReshareTenant

  • OpenURLListenerURL

  • OpenURLTenant

  • PatronIDField

  • PickupLocationLookupMapping

To obtain the values for ReshareAPIUsername and ReshareAPIPassword settings, you will have to first create a user in ReShare. The values for these settings will then be the username and password credentials for that user.

Converting the Casing of ILLiad Values Sent to ReShare

As of version 1.0.6, the tag replacement feature used to pull a value from a specified ILLiad database field in the PatronIDField and PickupLocationLookupValue settings now supports additional options to convert the casing of that value to all uppercase or lowercase characters before sending it to ReShare. This is useful when the casing for the pickup location or username value in ILLiad is different from the casing of those values in ReShare.

Formatting

To convert an ILLiad value to uppercase or lowercase, a comma should be added after the names of the specified database table and field in the tag used by the setting and followed by:

  • “Uppercase” to convert the value to uppercase:

    • {TableField:<DatabaseTableName>.<FieldName>,Uppercase}

  • “Lowercase” to convert the value to lowercase:

    • {TableField:<DatabaseTableName>.<FieldName>,Lowercase}

Example

If a user's username in ILLiad is 'asmith', but their username used by the ReShare system is 'ASMITH', then the value of the PatronIDField setting should be set as follows to convert the lowercase value from ILLiad to the uppercase value in ReShare: 

{TableField:User.Username,UpperCase}

ILLiad Shared Server Sites - Additional Configuration

ILLiad shared server sites will need to upload and configure the addon settings separately for each individual NVTGC on the ILLiad server. The addon settings and credentials will be the same across each NVTGC with the following exceptions, which must be adjusted appropriately for each NVTGC:

  • NVTGC

  • PickupLocationLookupMapping

Addon Workflow Chart

The chart below can be used as a reference to track the addon’s workflows for both Server Addon and DSP Addon configurations:

ReShare Addon Workflow Chart

Locating the ILLiad Request Information on a ReShare Request

Once a request has been successfully created in ReShare from an ILLiad request, the ILLiad transaction number and other citation information will display on the ILLiad request.

ILLiad Transaction Number

The associated ILLiad transaction number will be imported into the Other identifiers field within the Request information section on the ReShare request and can be used to crosscheck the status of the request between the two systems, if necessary:

ILLiad Transaction Number is stored on the ReShare request within the “Other identifiers” field.

ILLiad Citation Data

As of v2.0.4, the following citation data will be imported from the ILLiad request and will appear in the Citation metadata section of the ReShare request:

  • Title (LoanTitle)

  • Author (LoanAuthor)

  • ISBN (ISSN)

  • Date of publication (LoanDate)

  • Publisher (LoanPublisher)

  • Edition (LoanEdition)

  • Volume (CitedVolume)

Server Addon Information

Server Addon - Workflow

Once the addon settings listed above are configured, the ReShare addon will run as a Server Addon according to the following workflow:

Step One: Request Creation

The addon will work by monitoring the ILLiad status defined in the SearchingMonitorQueue setting:

  1. When a request enters the SearchingMonitorQueue, the addon will first confirm that the request is within the addon's scope by checking the user's NVTGC and confirming it's under the addon's NVTGC setting.

  2. If within the appropriate scope and as of v2.0.4, the addon will determine if the request was sent from the ReShare Client Addon for fulfillment. If so, the addon will skip steps 3-4 and will create the ReShare request for the specific ReShare item record that was selected in the client addon interface.

  3. If the request was not sent from the ReShare Client Addon, the addon will then search the ReShare Index using bibliographic data on the request with the following precedence (see the Detailed Shared Index Search Queries section below to view the specific queries the addon will use to search the Shared Index):

    1. By OCLC number if the ILLiad request has a value in ESPNumber (note that this field is displayed by default as OCLC Number on the ILLiad request form).

    2. If no results are found or if the OCLC number is not present on the ILLiad request, then it will search by ISBN if the ILLiad request has a value in ISxN.

    3. If no results are found or if the ISBN is not present on the ILLiad request, then it will search by title, author, and date using the LoanTitle, LoanAuthor, and LoanDate fields on the ILLiad request.

  4. As of v1.0.7:

    1. If a single result is returned from any of the types of searches listed above, the addon will create a ReShare request for the item.

    2. If multiple results are returned after performing an OCLC number or ISBN search, the addon will select the result with the most circulating holdings and create the ReShare request for the item.

    3. If multiple results are returned from a title, author, or date search, or if no matching items are found after searching on all available parameters, the ReShare request will not be created.

      1. The ILLiad request will then be routed to the status in the NotFoundQueue setting for manual processing and the addon’s workflow will stop here.

      2. As of v1.0.9, a note will be added to the request stating “More than one result when searching for bib info. Please add a standard number to request for better results.”

  5. If the ReShare request is successfully created, the addon determines the patron identifier and pickup location used for the ReShare request using the PatronIDField, PickupLocationLookupValue, and PickupLocationLookupMapping settings.

    1. The ILLiad request is then routed to the status in the RequestSentQueue setting and the ILL Number field on the request will be updated with the tracking ID number for the request in the ReShare system.

    2. As of v1.0.9, if the pickup location cannot be found, a note will be added to the request stating “Missing pickup location. Cannot create ReShare request” and the request will be routed to the status in the ErrorQueue setting.

Detailed Shared Index Search Queries

The ILLiad ReShare addon will search the Shared Index (step 2 above) using the following queries for each type of search, where {Base URL} is the URL in the addon’s SharedIndexAPIUrl setting:

  • OCLC Number Search: {Base URL}/search?lookfor={ESPNumber}&type=oclc_num&field[]=id&field[]=title&field[]=lendingStatus&sort=relevance&page=1&prettyPrint=false

    • {ESPNumber} will be substituted with the OCLC Number value on the ILLiad request (if present)

  • ISxN Search: {Base URL}/search?lookfor={ISxN}&type=ISN&field[]=id&field[]=title&field[]=lendingStatus&sort=relevance&page=1&prettyPrint=false

    • {ISxN} will be substituted with the ISxN value on the ILLiad request (if present)

  • Title/Author/Date Search: {Base URL}/search?join=AND&lookfor0[]={LoanTitle}&type0[]=title&lookfor0[]={LoanAuthor}&type0[]=author&lookfor0[]={LoanDate}&type0[]=year&field[]=id&field[]=title&field[]=lendingStatus&sort=relevance&page=1&prettyPrint=false

    • {LoanTitle}, {LoanAuthor}, and {LoanDate} will be substituted with the LoanTitle, LoanAuthor, and LoanDate values on the ILLiad request (if present)

Step Two: Request Fulfillment

After creating the ReShare request for the ILLiad request, the addon will poll the ReShare service according to the frequency defined in the RequestPollingFrequency setting, in minutes, to check the current state of requests and will automatically update their corresponding ILLiad requests that are in the RequestSentQueue in the following manner:

  1. The addon will retrieve all ReShare requests in the states defined in the ReshareUnfilledStatuses setting and check each one to see if there is a corresponding ILLiad request with a matching ILL Number field.

    1. If a matching ILLiad request is found, the addon will route that request to the status in the UnfilledQueue setting.

  2. The addon will retrieve all ReShare requests in the states defined in the ReshareFilledStatuses setting and check each one to see if there is a corresponding ILLiad request with a matching ILL Number field.

    1. If a matching ILLiad request is found, the addon will route that request to Request Finished.

Decision Support Pipeline Addon Information

Decision Support Pipeline - Additional Configuration

You can optionally also configure the addon as a Decision Support Pipeline Addon. The addon will still run as a normal Server Addon according to all of the steps listed above, but will also add additional DSP functionality to give you more flexibility and options for your workflows. To enable the additional DSP functionality for the addon follow these steps:

  1. Click on the ReShare addon within the Server Addons tab in the ILLiad Customization Manager.

  2. Click the Decision Support Pipeline tab located next to the Settings tab for the addon in the bottom half of the screen.

  3. Check Borrowing Loan under “Supported Pipelines.”

  4. Click on the DSP Business Rules tab at the top of the Customization Manager screen.

  5. Set up a business rule for the new ReShare addon according to your institution’s preferences.

Example business rule:

This business rule will send borrowing loan requests in the Borrowing Loan pipeline to the ReShare addon. If a match is found in the ReShare Index for the ILLiad request according to the criteria listed in the workflow section below, then a ReShare request will be automatically created for the ILLiad request.

  • Rule Number: Determines the precedence for this business rule in the pipeline. For example, if you’d like all requests to run through ReShare first before performing any other business rules, enter “1” here.

  • Pipeline: Borrowing Loan

  • Enabled: Yes

  • Rule Type: Automatic

  • Target Type: Addon

  • Target: ILLiad Reshare

  • Description: Send borrowing loan requests to ReShare

  • Match String: 1=1

Decision Support Pipeline - Workflow

Once configured, the addon will run according to the following workflow when a request enters stage 2 of the DSP Pipeline and the business rule for the addon is triggered:

Step One: Request Creation

Stage 2

  1. The addon looks at requests in the Awaiting Request Pipeline status and checks the ReShare Index to see if it can be found in the Shared Index using bibliographic data with the following precedence (see the Detailed Shared Index Search Queries section in the server addon workflow above to view the specific queries the addon will use to search the Shared Index):

    1. By OCLC number if the ILLiad request has a value in ESPNumber (note that this field is displayed by default as OCLC Number on the ILLiad request form).

    2. If no results are found or if the OCLC number is not present on the ILLiad request, then it will search by ISBN if the ILLiad request has a value in ISxN.

    3. If no results are found or if the ISBN is not present on the ILLiad request, then it will search by title, author, and date using the LoanTitle, LoanAuthor, and LoanDate fields on the ILLiad request.

  2. As of v1.0.7, the addon’s search of the Shared Index will either succeed or fail depending on the type of search performed and the results returned:

    1. The search will fail under these circumstances:

      1. If multiple results are returned from a title, author, or date search, or if no matching items are found after searching on all available parameters, the search will fail.

        1. The ILLiad request is then routed to Awaiting Pipeline Request Review for manual processing and the addon’s workflow will end here.

    2. The search will succeed under these circumstances:

      1. If a single result is returned from any type of search performed, the search will succeed.

      2. If multiple results are returned after performing an OCLC number or ISBN search, the addon will select the result with the most circulating holdings and the search will succeed.

  3. If the search is successful, ILLiad will then check the business rules and either automatically route the request to Awaiting Pipeline Sending and proceed to Stage 3 if the rule type is “Automatic,” or route the request to Awaiting Pipeline Request Review if the rule type is “Recommended.”

Stage 3

  1. The addon looks at requests in the Awaiting Pipeline Sending and submits a ReShare request for the ILLiad request, determining the patron identifier and pickup location used for the ReShare request using the PatronIDField, PickupLocationLookupValue, and PickupLocationLookupMapping settings.

  2. The ILLiad request is then routed to the status in the RequestSentQueue setting and the ILL Number field on the request will be updated with the tracking ID number for the request in the ReShare system.

  3. An entry for ReShare will also be added to the Fulfillment Data Table located in the Detail tab of the ILLiad request.

Step Two: Request Fulfillment

The fulfillment process for requests routed through the Decision Support Pipeline will proceed in the same manner as requests handled by the Server Addon, detailed above.