Spike: eholdings App and Agreement App Integration

Priority

Environment

None

Template

None

Description

A library may decide to use Agreements App as a way to manage the relationship it has with a Vendor over a period time. As a result, the library may decide to associate an Agreement to an eholdings package or title+package detail record.

The library should be able to add an Agreement to

  • multiple package

  • multiple title+package

Screenshots
https://drive.google.com/file/d/1B-2EkPollcCibuMT28np2-BvV8LdODcD/view?usp=sharing

Spike Deliverables:

  • Determine if current Agreement App functionality supports

    • Ability to search for Agreements

    • Ability to create an Agreement

    • Ability to attach an agreement to eholdings package/ title+package

    • Ability to access attached agreement record via eholdings provider/package/title+package detail records

    • Ability to unassign an agreement from a package/title+package

    • Ability to return # of agreements and statuses

  • Determine if Agreements app can support the above screenshots

  • Document findings on confluence

  • Present to team

  • Main dev contact for mod-agreements - Ian Ibbotson

Development Team

Spitfire

Release

None

Story Points

Sprint

Checklist

hide

TestRail: Results

Activity

Show:

Carole GodfreyFebruary 8, 2019 at 4:14 PM
Edited

on your question:

Is there a way from an eholdings provider record to make a call to get all agreements tied to any package tied to that provider?

Sample decode package look up request

Based on the current API it is not directly available – only way I see it may be possible is by doing a query using the first part of packageId (which is providerId) – per below question. Not sure if this is recommended/suggested -

– wondering on this question – could we do a query for items.reference that starts with '19-' for example (which is the provider id portion of the package id) items.reference==19-1615?
Note – above query would pull in packages and title+packages both. Naming convention for title+packages (resource) is providerId-packageId-titleId.

Is there a cleaner way to indicate providerId at the point when we establish the link to a package or title+package?

Khalilah GambrellFebruary 8, 2019 at 3:42 PM

- regarding this bullet "Ability to access attached agreement record via eholdings provider/package/title+package detail records"

  • Is there a way from an eholdings provider record to make a call to get all agreements tied to any package tied to that provider?

Carole GodfreyFebruary 6, 2019 at 10:09 PM
Edited

Determine if current Agreement App functionality supports

1. Ability to search for Agreements (yes)

Below request observed from ERM UI (network traffic) when searching for agreements (by name and status) and sorting by name (asc or descending)

2. Ability to create an Agreement (yes)

Sample link to example POST request which creates an agreement with a single linked eHoldings package

https://github.com/folio-org/mod-agreements/blob/ed710822f9ead110f8eb2639d2cfc9f0bbd9322c/scripts/eholdings/create_agreement.sh#L13

3. Ability to attach an agreement to eholdings package/ title+package (yes)

Sample PUT request to add a package

https://github.com/folio-org/mod-agreements/blob/ed710822f9ead110f8eb2639d2cfc9f0bbd9322c/scripts/eholdings/create_agreement.sh#L36

4. Ability to access attached agreement record via eholdings provider/package/title+package detail records - (package and title/package - yes, provider -no)

Sample code to search for an agreement based on package or package title

https://github.com/folio-org/mod-agreements/blob/ed710822f9ead110f8eb2639d2cfc9f0bbd9322c/scripts/eholdings/create_agreement.sh#L48

https://github.com/folio-org/mod-agreements/blob/892be44b13a42379f926215965ae9e895d2b9d76/scripts/dev_submit_pkg.sh#L203

5. Ability to unassign an agreement from a package/title+package (yes)

https://github.com/folio-org/mod-agreements/blob/ed710822f9ead110f8eb2639d2cfc9f0bbd9322c/scripts/eholdings/create_agreement.sh#L45

6. Ability to return # of agreements and statuses (yes) -- assuming list results

Available as part of 1 or 4 (list of results – provides count and can be filtered by status)

This can be gotten by a request such as the following

It may be possible to additionally set pagination so that it doesn't return records to do this more efficiently, But the basic query is as noted in the example

7. Determine if Agreements app can support the above screenshots

Based on current screen shot (Yes) – supports this functionality
https://drive.google.com/file/d/1B-2EkPollcCibuMT28np2-BvV8LdODcD/view?usp=sharing

Below notes are regarding prior/obsolete screen
On previous screenshots for search – only sort by name is available (no relevance)
https://drive.google.com/file/d/1KfGis8oqMfACoR3nlDvWK9mbjE9zQOrI/view
Mapping of displayed detailed fields - fields can be added where attributes are dynamic – similar to licenses (note – not in place yet)

last updated - ?
name - name
start date - startDate
end date - endDate
cancellation date - cancellationDeadline
vendor - vendor
status - agreementStatus
subscription term - ?
description - description
renewal status - renewalPriority?
auto-renew - isPerpetual?

Below reference to controller and model for SubscriptionAgreement
https://github.com/folio-org/mod-agreements/blob/892be44b13a42379f926215965ae9e895d2b9d76/service/grails-app/controllers/org/olf/SubscriptionAgreementController.groovy
https://github.com/folio-org/mod-agreements/blob/892be44b13a42379f926215965ae9e895d2b9d76/service/grails-app/domain/org/olf/erm/SubscriptionAgreement.groovy

Natalia ZaitsevaJanuary 16, 2019 at 2:49 PM

some documentation could be found here and Java sources here

Done

Details

Assignee

Reporter

Fix versions

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created January 8, 2019 at 2:29 PM
Updated February 14, 2019 at 2:59 PM
Resolved February 14, 2019 at 2:59 PM
TestRail: Cases
TestRail: Runs