Tech Blog

Generating a Handle Persistent Identifier in Alma

This article explains how to generate and publish Handle persistent identifiers (henceforth: ‘Handle PI’ or ‘PI’) for Alma records. It assumes the existence of a functioning local Handle server (including an institution prefix) and basic knowledge of Handle. Information on how to install and configure a Handle server and the Handle framework in general is available at the Handle.Net Registry website.

Note: The following workflow was developed and tested using a Handle v8.1 server.


The procedure includes the following steps:

1. Control Number Configuration
2. Creating and Running a Handle PI generation Normalization Process
3. Generating and Exporting a Handle Batchfile

Note: Institutions may chose to generate and manage PIs externally by loading/enriching Alma bibs with self-generated PIs. In such cases, only the final step is relevant.


Control Number Configuration

A Handle PI is essentially a combination of a fixed prefix and a unique sequence, and our target is to enrich our bibliographic records with this information. To keep the PI unique we rely on the Alma Control Number infrastructure, which manages sequences. Information on how to add a sequence is available here, so we will only focus on the specifics of a Handle sequence configuration.

  • Sequence Name: This will appear in the Normalization Task and should indicate that it is Handle related. If your institution requires more than one Handle sequence (e.g. multiple prefixes are used, or separate sequence ranges) this would be the place to disambiguate them.
  • Sequence Start: If Alma is not the only system generating Handle PIs with your Handle prefix, or if you have bibs with preexisting PIs, set this field to a value that will not conflict with said systems/records. Such institutions should be aware that Alma currently does not support a ‘Sequence End’ parameter.
  • Method: Set to “Prefix + Sequence”.
  • Prefix: Your assigned Handle prefix followed by a slash. If you choose to express your PIs as URIs, you may do so. In our example, we’ll use the info URI scheme.
  • Padding: Unnecessary.
  • Add Parenthesis: False.

Creating and Running a Handle PI generation Normalization Process

The next step is to create a normalization job that will allow us to enrich our bibs with a generated PI. Like all normalization jobs, this is done by creating a normalization process for my selected metadata schema. Normalization processes need to be configured separately for each metadata schema; in this example we will configure a job for MARC21 records. Here too we rely on the Normalization processes documentation and focus on the Handle aspects.

Create a new Normalization Process, we add a task and select the built-in BibGenerateHandle task. In the task parameters, we’ll select the sequence we created. The target field will be set to 024.


We create a set, locate the job created by the process just defined, and run it.



The bib records now contain 024 fields with a generated PI:


Generating and Exporting a Handle Batchfile

The final step in our process is to provide the Handle server with the necessary information to create handles with the relevant URLs. Alma does not communicate directly with your Handle server; it will generate a batchfile which the Handle ‘GenericBatch’ command line utility can run. For more information, see the HANDLE.NET Technical Manual.

To generate a batchfile, we will run an “Export Handles” job, documented here. A few things to keep in mind:

  • Target location: The job will place the batchfile on a FTP location – this should be set up before running the job.
  • Authentication: The batchfile may need to contain Handle authentication details. These can be added by the job. If you do not want to store this information in Alma, you may add it to the batchfile manually after running the job.
  • Job Parameters: Since these are new Handles, we will select the “Create” operation and add two URLs – one to the Primo fullview page and one direct link to the Alma viewer.


After running the job, we can download the batchfile for inspection:



Once satisfied with the results, you can set up an automated process where the jobs are run on a schedule and the batchfile is retrieved from the FTP location and used to update your Handle server.

Leave a Reply