ERM to Alma Data Delivery Specification
- Licenses
- Interfaces (Vendor-level administrative and access information)
- E-inventory fields and linking
- Linking the license to e-product
- Linking the interface to e-product
- Enriching the e-product with ERM e-product fields
- Enriching ILS-originated orders with ERM Acquisition record fields (or e-inventory record fields if the order is not ILS-originated). There may be some local attributes configured in the e-product and acquisition fields (for example, non-CKB/global attributes) in your ERM.
- Packages
- Portfolios (standalone)
- Databases
Licenses
- License details (core license attributes such as license code, start date, and vendor)
The license code is the link between e-inventory and the license
- Terms (the DLF-ERMI terms which represent the license terms) – non-repeatable
Alma supports a fixed list of license terms, as listed in the XSD. The type of enumeration for the license terms is listed below in the License Terms and Types table.
- Notes (repeatable)
- License attachments (optional designation of related file attachments for the license)
License attachments should be provided in a separate directory called 'attachments', on the same level as the license XMLs. If the file names for the attachments overlap, the files can be placed in subdirectories under the attachments directory, for example 1/, 2/, etc. The files and directories can be zipped in one large file or many files. In the license xml, include the full path of the file relative to the attachments directory, like <p:filename>1/APA_Local_Load_License_2012.pdf</p:filename>
License Terms and Types
- LicenseTermsYesNo = Yes, No
- LicenseTermsPermittedProhibited = Prohibited, Permitted, Silent
- LicenseTermsUOM = CALENDARDAY, BUSINESSDAY, WEEK or free text
- FREE-TEXT = note field
License Term | License Term Code | Type of Enumeration |
---|---|---|
Accessibility Compliance Indicator |
ACCESSIBILITY |
LicenseTermsYesNo |
All Rights Reserved Indicator |
ALLRIGHTS |
LicenseTermsYesNo |
Applicable Copyright Law |
APPCLAW |
FREE-TEXT |
Archiving Right |
ARCHIVE |
LicenseTermsYesNo |
Archiving Format |
ARCHIVEFMT |
FREE-TEXT |
Archiving Note |
ARCHIVEN |
FREE-TEXT |
Authorized Users |
AUTHUSERDEF |
FREE-TEXT |
Citation Requirement Detail |
CITREQD |
FREE-TEXT |
Clickwrap Modification Clause Indicator |
CLICKWRAPI |
LicenseTermsYesNo |
Completeness of Content Clause Indicator |
COMPLETENESSI |
LicenseTermsYesNo |
Concurrency with Print Version Clause Indicator |
CONCURRPRINTI |
LicenseTermsYesNo |
Concurrent Users |
CONCURUSER |
FREE-TEXT |
Concurrent Users Note |
CONCURUSERN |
FREE-TEXT |
Confidentiality of Agreement |
CONFA |
FREE-TEXT |
Confidentiality of Agreement Note |
CONFAN |
FREE-TEXT |
Confidentiality of User Information Indicator |
CONFUSERI |
LicenseTermsYesNo |
Consortial Agreement Indicator |
CONSORTIALAGREEMENT |
LicenseTermsYesNo |
Content Warranty |
CONTWARR |
FREE-TEXT |
Course Pack Electronic |
COURSEPACKELEC |
LicenseTermsPermittedProhibited |
Course Pack Note |
COURSEPACKN |
FREE-TEXT |
Course Pack Print |
COURSEPACKPRINT |
LicenseTermsPermittedProhibited |
Course Reserve |
COURSERES |
LicenseTermsPermittedProhibited |
Course Reserve Note |
COURSERESNOTE |
FREE-TEXT |
Course Reserve Print |
COURSERESPRINT |
LicenseTermsPermittedProhibited |
Cure Period for Breach (Number) |
CUREBREACH |
FREE-TEXT |
Cure Period for Breach (Unit) |
CUREBREACHUOM |
LicenseTermsUOM |
Database Protection Override Clause Indicator |
DATAPROTOVERC |
LicenseTermsYesNo |
Digitally Copy |
DIGCOPY |
LicenseTermsPermittedProhibited |
Digitally Copy Note |
DIGCOPYN |
FREE-TEXT |
Distance Learning |
DISTANCE |
LicenseTermsPermittedProhibited |
Distance Learning Note |
DISTANCEN |
FREE-TEXT |
Electronic Link |
ELECLINK |
LicenseTermsPermittedProhibited |
Electronic Link Note |
ELECLINKNOTE |
FREE-TEXT |
Fair Use Clause Indicator |
FAIRUSE |
LicenseTermsYesNo |
Governing Jurisdiction |
GOVJUR |
FREE-TEXT |
Governing Law |
GOVLAW |
FREE-TEXT |
ILL Electronic (email) |
ILLELEC |
LicenseTermsPermittedProhibited |
ILL Record Keeping Note |
ILLN |
FREE-TEXT |
ILL General |
ILLPRINTFAX |
LicenseTermsPermittedProhibited |
ILL Record Keeping |
ILLRKRI |
LicenseTermsYesNo |
ILL Secure Electronic |
ILLSET |
LicenseTermsPermittedProhibited |
Incorporation of Images Figures and Tables Note |
IMAGESNOTE |
FREE-TEXT |
Incorporation of Images Figures and Tables Right |
IMAGESRIGHT |
LicenseTermsPermittedProhibited |
Indemnification by Licensee Clause |
INDEMLEEC |
FREE-TEXT |
Indemnification by Licensor Clause |
INDEMLORC |
FREE-TEXT |
Indemnification Note |
INDEMN |
FREE-TEXT |
Intellectual Property Warranty Indicator |
IPWARRI |
LicenseTermsYesNo |
License Replaced By |
LICENSREPLACEDBY |
FREE-TEXT |
License Replaces |
LICENSEREPLACES |
FREE-TEXT |
Licenses Reviewer Note |
LICENSEREVIEWERNOTE |
FREE-TEXT |
Local Authorized Users |
LAUTHUSERDEF |
FREE-TEXT |
Licensee Notice Period for Termination (Number) |
LEENOTICE |
FREE-TEXT |
Licensee Notice Period for Termination (Unit) |
LEENOTICEUOM |
LicenseTermsUOM |
Licensee Termination Condition |
LEETERMCON |
FREE-TEXT |
Licensee Termination Right |
LEETERMRIGHT |
LicenseTermsYesNo |
Licensor Notice Period for Termination (Number) |
LORNOTICE |
FREE-TEXT |
Licensor Notice Period for Termination (Unit) |
LORNOTICEUOM |
LicenseTermsUOM |
Licensor Termination Condition |
LORTERMCON |
FREE-TEXT |
Licensor Termination Right |
LORTERMRIGHT |
FREE-TEXT |
Maintenance Window |
MAINTWIN |
FREE-TEXT |
Non-Renewal Notice Period (Number) |
NONRNOTICE |
FREE-TEXT |
Non-Renewal Notice Period (Unit) |
NONRNOTICEUOM |
LicenseTermsUOM |
Other User Restriction |
OTHERUSERRSTRN |
FREE-TEXT |
Other Use Restrictions (Staff Note) |
OTHERUSERSTRN |
FREE-TEXT |
Performance Warranty Indicator |
PERFWARRIND |
LicenseTermsYesNo |
Performance Warranty Uptime Guarantee |
PERWARRUPTIME |
FREE-TEXT |
Perpetual Access Right |
PERPETUAL |
LicenseTermsYesNo |
Perpetual Access Holdings |
PERPETUALH |
FREE-TEXT |
Perpetual Access Note |
PERPETUALN |
FREE-TEXT |
Pooled Concurrent Users |
PCONCURUSER |
NUMERIC |
Print Copy |
PRINTCOPY |
LicenseTermsPermittedProhibited |
Print Copy Note |
PRINTCOPYN |
FREE-TEXT |
Remote Access |
REMOTE |
LicenseTermsYesNo |
Renewal Type |
RENEWTYPE |
FREE-TEXT |
Scholarly Sharing |
SCHOLSHARE |
LicenseTermsPermittedProhibited |
Scholarly Sharing Note |
SCHOLSHAREN |
FREE-TEXT |
Termination Requirements |
TERMREQS |
FREE-TEXT |
Termination Requirements Note |
TERMREQSN |
FREE-TEXT |
Termination Right Note |
TERMRIGHTN |
FREE-TEXT |
UCITA Override Clause Indicator |
UCITAOVERI |
LicenseTermsYesNo |
Usage Data Set Up Status |
USAGEDATASETUPSTATUS |
FREE-TEXT |
Walk-In User Term Note |
WALKIN |
FREE-TEXT |
If you cannot find a license term type, it is possible to add a new one. For more information, see Managing License Term Types. You can add the new term before or after loading the xml.
Interfaces (Vendor Access/Admin Data)
- Vendor / Vendor account details (core vendor/vendor account attributes such as codes and names)
The vendor code is mandatory. It is used to match the vendor code loaded from your ILS. If the vendor codes match, the details from the vendor are ignored, and ONLY the interface section is added to Alma. If the vendor code does not match any ILS vendor code, the vendor information is loaded. In this case, the vendor account is also mandatory.
- Contact information/Contact persons - Optional
Do not enter valid email addresses for vendors during the testing period to prevent emails from being sent to the vendors. Common practice is to put the word SCRUBBED in the email address, for example, vendor.name@SCRUBBED_vendor.com.
- Interface list (one or more interfaces)
The interface name is the match key to match e- inventory to your vendor interface records. Each specific interface name must be unique across ALL interface names in your institution.
- Admin fields
- Access fields
- Statistics fields
- Notes (repeatable)
E-inventory Fields and Linking
In the following table
- The Alma note records linked to e-inventory become Inventory notes
- The Alma note records linked to po_lines become Poline notes.
Matching Algorithm
If Excel.match_id is equal to sfx_id (non case sensivite) – use SFX Matching algorithm.
If the E-INVENTORY record is not found - use PO Matching algorithm.
If the E-INVENTORY record is not found – use ILS Matching algorithm.
If Excel.match_id is equal to po_id or poline_id (not case sensitive) – use PO Matching algorithm.
If the E-INVENTORY record is not found – use ILS Matching algorithm.
If Excel.match_id is equal to ils_bib_id (not case sensitive) – use ILS Matching algorithm.
Fields
Field name | Description | Alma location |
---|---|---|
match_id |
MANDATORY This represents the e-inventory id which will be enriched. That e-inventory may have originated in your SFX system or in your ILS system. If it originated in your ILS system, it may be determined via an order referencing that e-inventory or directly via a Bibliographic id. The non_sfx_id is the Alma resource ID. |
|
sfx_id |
Used by SFX Matching Algorithm. ID from SFX (Target ID for Packages/E-collections or Portfolio ID for Portfolios); Should be equal to the E-INVENTORY ORIGINATING_SYSTEM_ID for an sfx record. If Poline is matched, the Process creates Poline note with text: “ERM Linking SFX orig id = <sfx_id>” |
Shoud be equal to HDEMETADATA.ORIGINATING_SYSTEM_ID for an sfx record. |
poline_id | Used by PO Matching Algorithm. Should be equal to PO_LINE.PO_LINE_REFERENCE. If poline_id is not empty, the process creates an Inventory note with text: “ERM Linking PO Line Ref = <poline_id>” The poline_id is stored in the E-INVENTORY POLINEID attribute This is the primary orderid to which the relevant information will be mapped. associated_po lines if provided will be related to the primary one.The primary should be considered the most recent open order. |
PO_LINE.PO_LINE_REFERENCE: This is the PO Line Number in PO Line screens: PO Line details |
po_id | If provided, will match PO.PO_NUMBER and will automatically determine this order's electronic PO_LINE. Do not use if poline_id is provided. | Should be equal to PO.PO_NUMBER If po_id is not empty, the loader creates an Inventory note with text: “"ERM Linking PO Num = <po_id>” This is the PO Number in PO Line that were packed: PO Line details - PO number |
ils_bib_id |
Only relevant if no sfx_id (or poline_id/po_id) was provided This is the bib ID from your incoming ILS. |
Should be equal to MMS_RECORD.ORIGINATION_SYSTEM_ID PO Line list >> MMS_ID |
resource_type |
MANDATORY. Possible values: PACKAGE, DATABASE, PORTFOLIO This is used for: 1. determining if the resource is a package or portfolio along with sfx_id |
When resource_type = PORTFOLIO, add '99' to the beginning of the sfx_id. when resource_type = PACKAGE, add '61' to the beginning of the sfx_id. |
associated_poline_id | Will match the PO_LINE_REFERENCE in Alma Multiple associated_poline_ids may be passed with comma separation and will relate to the primary poline_id. |
|
associated_po_id | Will match PO.PO_NUMBER and will automatically determine this order's electronic POL witihn Alma. Do not use if asociated_poline_id was populated. | |
interface_id | Interface name from Alma Interface List The interface_id is the name, for example 'ACM Digital Library' |
If matched E-INVENTORY is an e-collection/package , store interface_id in Package.INTERFACEPUBLICNAME; If matched E-INVENTORY is of type PORTFOLIO, store interface_id in Package.VENDORNAME of corresponding e-collection/package record. |
license_id | Matches the LICENSE.CODE in Alma |
The process looks for Alma LICENSE where LICENSE.CODE = excel.license_id
|
original_resource_id | For potential matches in future - the key used to match the e-inventory in the ERM system. | If original_resource_id is not empty: Inventory note is created with content “ERM Linking original resource id = <original_resource_id>” If Poline is matched, Poline note is created with content “ERM Linking original resource id = <original_resource_id>” |
pol_subscr_start_date | Subscription start date for E-subscription orders in format: YYYYMMDD |
If PO_LINE record is matched, This is the Subscription from date in Continuous PO Lines screen:PO Line details >> Summary tab >> Subscription from date |
pol_subscr_end_date | Subscription end date for E-subscription orders in format: YYYYMMDD Important note: Filling this field and providing a pol_id or po_id will set the actual order subscription end date. In Alma, this field will cause automatic closure of the order when passed. |
If PO_LINE record is matched, This is the Subscription to date in Continuous PO Lines screen:PO Line details >> Summary tab >> Subscription to date |
pol_renewal_date | Next date to renew the E-subscription in format: YYYYMMDD |
If PO_LINE record is matched, This is the renewal date in Continuous PO Lines screen:PO Line details >> Summary tab >> Renewal date |
pol_renewal_reminder | Numeric (days). The number of days before which the order, if matched, will appear in Alma's renewal task list. |
If PO_LINE record is matched, This is the Renewal reminder period (days) in Continuous PO Lines screen:PO Line details >> Summary tab >> Renewal reminder period (days) |
vendor_reference_number | Text |
If PO_LINE record is matched, This is the Vendor reference number in PO Lines screen:PO Line details >> Summary tab >> Vendor reference number |
pol_note_code_1 | Text | |
pol_note_value_1 | Text | |
pol_note_code_x and pol_note_value_x up through 200 | Up to 200 pairs of columns pol_note_code_<num>, pol_note_value_<num> can be defined. For each pair of pol_node_code_<num>, pol_node_value_<num> columns: If PO_LINE record is matched, Poline note is created with content <CODE>:<VALUE> where <CODE> comes from pol_note_code_<num> and <VALUE> comes from pol_note_value_<num> If PO_LINE record is not matched, Inventory note with the same text is created. |
|
inv_note_code_1 | Text | |
inv_note_value_1 | Text | |
inv_note_code_x and inv_note_value_x up though 200 | Up to 200 pairs of columns inv_note_code_<num>, inv_note_value_<num> can be defined. For each pair of inv_node_code_<num>, inv_node_value_<num> columns: Inventory note is created with content <CODE>:<VALUE> where <CODE> comes from inv_note_code_<num> and <VALUE> comes from inv_note_value_<num>. |
|
aggregator | Enum: 0, 1 (0 = Selective,1 = Aggregator) Only relevant for non-SFX packages |
Stored in Package.AGGREGATOR. Not visible in Acq |
active | (not processed) | |
db_source | Text Used in conjunction with db_source_id |
Stored in Package.SOURCE Not visible in Acq |
db_source_id | Text Used in conjunction with db_source |
Stored in PackageEntityIECKB.SOURCEID Not visible in Acq |
id_type | Text |
Stored in InternalIdentifier.INTERNALIDENTIFIERTYPE Not visible in Acq |
id_value | Text |
Stored in InternalIdentifier.INTERNALIDENTIFIERVALUE Not visible in Acq |
is_free | Boolean Only relevant for non-SFX e-products |
Stored in Package.ISFREE Not visible in Acq |
embargo_operator | ENUM: </> Only relevant for non-SFX e-products |
Stored in MovingwallInventory.OPERATOR Not visible in Acq |
embargo_month | Numeric (# of months) Only relevant for non-SFX e-products |
Stored in MovingwallInventory.MONTH Not visible in Acq
|
coverage_from_year | Numeric (YYYY) Only relevant for non-SFX e-products |
Stored in DateInfoInventory.FROMYEAR Not visible in Acq |
coverage_from_month | Numeric (MM) Only relevant for non-SFX e-products |
|
coverage_from_day | Numeric (DD) Only relevant for non-SFX e-products |
|
coverage_to_year | Numeric (YYYY) Only relevant for non-SFX e-products |
Stored in DateInfoInventory.TOYEAR Not visible in Acq |
coverage_to_month | Numeric (MM) Only relevant for non-SFX e-products |
|
coverage_to_day | Numeric (DD) Only relevant for non-SFX e-products |
|
coverage_from_vol | Numeric Only relevant for non-SFX e-products |
Stored in DateInfoInventory.FROMVOLUME Not visible in Acq |
coverage_to_vol | Numeric Only relevant for non-SFX e-products |
Stored in DateInfoInventory.TOVOLUME Not visible in Acq |
coverage_from_issue | Numeric Only relevant for non-SFX e-products |
Stored in DateInfoInventory.FROMISSUE Not visible in Acq |
coverage_to_issue | Numeric Only relevant for non-SFX e-products |
Stored in DateInfoInventory.TOISSUE Not visible in Acq |
public_note | Text |
if matched E-INVENTORY is E-COLLECTION (PACKAGE or DATABASE) Not visible in Acq |
cancellation_restriction | Text | If PO_LINE is matched If the column contains yes (case ignored) – set PO_LINE.CANCEL_RESTRICTION to true If the column contains no (case ignored) – set PO_LINE.CANCEL_RESTRICTION to false |
cancellation_restriction_note | Text |
If PO_LINE is matched This is the Cancellation restriction note in PO Lines screen: PO Line details >> Summary tab >> Cancellation restriction note |
access_type | Text | If matched E-INVENTORY is of type E-COLLECTION (PACKAGE or DATABASE)) and access_type is not empty: if access_type is "perpetual" (ignore case) store “perpetual” in PackageEntityIEInventory.ACCESSTYPE else store “current” in PackageEntityIEInventory.ACCESSTYPE add PackageEntityIEInventory.ACCESSTYPE = "current" |
cross_ref | Boolean Only relevant for non-SFX e-products |
Stored in Dnx.PackageEntityServiceInventory.CROSSREFENABLED Not visible in Acq |
activate_from | YYYYMMDD Only relevant for non-SFX e-products |
Stored in Dnx.PackageEntityServiceInventory.ACTIVATEFROM Not visible in Acq |
activate_to | YYYYMMDD Only relevant for non-SFX e-products |
Stored in Dnx.PackageEntityServiceInventory.ACTIVATETO Not visible in Acq |
auto_active | Boolean Only relevant for non-SFX e-products |
Stored in Dnx.PackageEntityServiceInventory.AUTOACTIVE Not visible in Acq |
service_down_reason | Text |
Stored in Dnx.PackageEntityServiceInventory.SITEDOWNREASON Not visible in Acq |