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 |
---|---|
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 |
|
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 |
---|---|
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 |
---|---|
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 |
---|---|
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 |
---|---|
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) |