Reference data values

Reference data values

On installation/upgrade/initialisation of mod-agreements and mod-licences we have a number of ways in which data may be populated. The aim is to document what data falls into each of these categories and make sure we are happy with this situation or if any of it should be changed.

Accessing reference data values

The controlled values can then be accessed through the URL pattern “/erm/refdataValues/domain/property i.e.

/erm/refdataValues/TitleInstance.Type

Additionally values can also be accessed by searching for refdata as such:

erm/refdata?filters=desc=TitleInstance.Type

Reference data default values

These reference data values are populated through the use of the @Defaults interface within the domain model, then upon the modules initialisation these values are automatically generated, these @Defaults are present within the code as follows:

@CategoryId(defaultInternal=true) @Defaults(['Monograph', 'Serial']) RefdataValue type

Reference data populated through defaults:

mod-agreements

Reference Data category

Default values

Reference Data category

Default values

AgreementRelationship.Type

@Defaults(['Supersedes', 'Provides post-cancellation access for', 'Tracks demand-driven acquisitions for', 'Related to', 'Has backfile in'])

DocumentAttachment.AtType

@Defaults(['Licence', 'Misc', 'Consortium negotiation document'])

InternalContact.Role

@Defaults(['Subject specialist'])

LicenseAmendmentStatus.Status

@Defaults(['Current', 'Future', 'Historical', 'Does not apply'])

PersistentJob.Result

@Defaults(['Success', 'Partial success', 'Failure', 'Interrupted'])

PersistentJob.Status

@Defaults(['Queued', 'In progress', 'Ended'])

Pkg.LifeCycleStatus

@Defaults(['Current', 'Retired', 'Expected', 'Deleted'])

Pkg.Type

@Defaults(['Aggregated Full Text', 'Abstracts and Index', 'Package'])

Pkg.availabilityScope

@Defaults(['Global'])

RemoteLicenseLink.Status

@Defaults(['Controlling', 'Future', 'Historical'])

StringTemplate.Context

@Defaults(['urlProxier', 'urlCustomiser'])

SubscriptionAgreement.AgreementStatus

@Defaults(['Draft', 'Requested', 'In negotiation', 'Active', 'Closed'])

SubscriptionAgreement.AgreementType

@Defaults(['Draft', 'Trial', 'Current'])

SubscriptionAgreement.ContentType

@Defaults(['Books', 'Journals', 'Database', 'Audio', 'Video'])

SubscriptionAgreement.ReasonForClosure

@Defaults(['Cancelled', 'Ceased', 'Superseded', 'Rejected'])

SubscriptionAgreement.RenewalPriority

@Defaults(['Definitely renew', 'For review', 'Definitely cancel'])

SubscriptionAgreementOrg.Role

@Defaults(['Content provider'])

TitleInstance.Subtype

@Defaults(['Print', 'Electronic'])

TitleInstance.Type

@Defaults(['Monograph', 'Serial'])

mod-licenses



Reference Data category

Default values

Reference Data category

Default values

DocumentAttatchment.AtType

@Defaults(['Consortium authorization statement', 'Product data sheet', 'Vendor terms and conditions'])

InternalContact.Role

@Defaults(['Subject specialist'])

License.Type

@Defaults(['Local', 'Consortial', 'National', 'Alliance' ])

LicenseOrg.Role

@Defaults(['Licensor'])

License.Status

@Defaults(['In negotiation','Not yet active', 'Active', 'Rejected', 'Expired'])

License.EndDateSemantics

@Defaults(['Explicit', 'Open ended', 'Implicit'])



Reference data value from services

Some reference data values are populated within a service through the lookupOrCreate function i.e

RefdataValue.lookupOrCreate(‘TitleInstance.PublicationType’, ‘Book’, ‘Book’)

For example, upon package ingest if an AvailabilityConstraint, AvailabilityScope or ContentType does not already exist within the reference data value, then it is created and added to the controlled values

Agreements

Service

Refdata category

Service

Refdata category

PackageIngestService

AvailabilityConstraint.Body

PackageIngestService

Pkg.AvailabilityScope

PackageIngestService

Pkg.ContentType

IdentifierService

IdentifierOccurrence.Status

onLoadReference

Upon creating or upgrading a tenant, the onLoadReference function for mod-argreements is called from within the ErmHouseKeepingService, for mod-licenses this is called from within LicenseHousekeepingService , along with other tenant configurations, this also populates various reference data values without an explicit domain model associated with them. For example:

RefdataValue.lookupOrCreate(FileStorageEngines, ‘LOB’) RefdataValue.lookupOrCreate(FileStorageEngines, S3)

Agreements

Refdata category

Refdata values

Refdata category

Refdata values

AuthIdent

Other, Email Domain, ORCID, Over Institute, Over IP Range, Ringgold ID, ROR ID

FileStorageEngines

LOB, S3

Yes/No/Other

Yes, No, Other (See notes)

Licenses

Refdata category

Refdata values

Refdata category

Refdata values

FileStorageEngines

LOB, S3

Permitted/Prohibited

Permitted (explicit), Permitted (explicit) under conditions, Permitted (interpreted), Prohibited (explicit), Prohibited (interpreted), Unmentioned, Not applicable

Yes/No/Other

Yes, No, Other (See notes)