RB0001: Agency code not showing against copies in discovery

also: RB0002: Agency not appearing in dropdown for user login.

When: RTAC shows up copies but the agency is not properly listed against the copy, the copy will not be able to participate in resource sharing.

When: Agency is not listed in the options for patron login in discovery

Discovery scaffold when records are found for a known host LMS but location mapping codes are not present (And in this case, agency records are not present).

Corresponding effect in locate (Note holdings line 2):

If either of the above 2 screenshots match the issue then

Task : reconcile host lms, agency and mappings.

  1. The System code + location code paring need to be present in the canonical location codes mapping table. For example in the above mappings from context:STLOUIS, domain:locations, value:42 to context:DCB, domain:agency: value: 6slou was absent

    1. Currently, the canonical location codes are held in a google sheet - that sheet is reference in read-only mode in the first code snippet below

  2. If not present, the appropriate codes need to be re-added and then the mapping table re-uploaded.

The following script can be used to re-post the updated mappings

#!/bin/bash TARGET="<https://your-dbc.somecons.com>" echo Logging in TOKEN=./login echo Posting consolidated location mappings curl -X POST $TARGET/admin/cfg -H "Accept-Language: en" -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" -d '{ "profile":"referenceValueMappingImport", "url":"<https://docs.google.com/spreadsheets/d/e/2PACX-1vTbJ3CgU6WYT4t5njNZPYHS8xjhjD8mevHVJK2oUWe5Zqwuwm_fbvv58hypPgDjXKlbr9G-8gVJz4zt/pub?gid=480381709&single=true&> output=tsv" }'
  1. It’s also important to check that the System code is properly defined - supposing that HOGWARTS is a stand-alone sierra library ensure that a hostlmss resource exists that describe that system

echo Ensure HOG curl -X POST $TARGET/hostlmss -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" -d '{ "id":"'uuidgen --sha1 -n $HOSTLMS_NS_UUID --name HOGWARTS'", "code":"HOGWARTS", "name":"Hogwarts", "lmsClientClass": "org.olf.dcb.core.interaction.sierra.SierraLmsClient", "clientConfig": { "base-url": "<https://hogwarts.edu/library> ", "key": "somekey", "page-size": "100", "secret": "somesecret", "ingest": "true" } }'

This will ensure that the system understands the system, and any location codes that are found coming from that system.

  1. Finally, Agencies can only be shown if they are present - check that your agency record is present

    1. look in the agencies table in psql

    2. use the /agencies endpoint

    3. use the graphql endpoint

    4. use the admin app agencies

If not present, post the agency record to the /agencies endpoint

echo "Posting without URL" curl -X POST "$TARGET/agencies" -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" -d "{ \\"id\\":\\"$AGENCY_UUID\\", \\"code\\":\\"$CODE\\", \\"name\\":\\"$NAME\\", \\"hostLMSCode\\": \\"$LMS\\", \\"authProfile\\": \\"$PROFILE\\" }"

Important note: Agencies WILL NOT load unless the hostLMSCode can be resolved to a system validated under step 3. POST to /agencies will 404 if the code cannot be resolved. Sometimes bulk agency loads happen before all systems are declared and this can be a cause of missing agency records.

After the above steps

and

 

Operated as a Community Resource by the Open Library Foundation