Skip to Main Content

Alma Fulfillment Resource Guide

This guide covers all aspects of the fulfillment process. This includes maintaining all patron records, loaning materials, returning/renewing loaned materials, managing lost items dealing with fines and fees as well as course reserves.

Loading User Records in Batch

Alma Patron Loads

The patron load file process is an integral part of the Alma system. These files contain records that are sent by each institution's IT department and are generated by their enterprise system (PeopleSoft, Banner, Workday, etc.). These records contain updated information about each student, staff, and faculty member affiliated with the college or university. Alma uses these records in order to check out materials, place holds on items, and allow access to content in Primo VE.

Loading Patron Record Files in Alma

Patron load files are usually sent to FLVC on a periodic basis, either daily or once a week. The files must be in a specific format (XML) using the approved field outlined in the specifications. Each institution has the choice of either submitting two files, a student file and a staff file, or submitting one combined file of both students and staff. All files must be sent to FLVC's Secure FTP server where they will be picked up by Alma at a specified time. [Note: Access to FLVC's SFTP server is restricted. If you need access to the server, please contact the FLVC Help Desk.]

The specifications for creating a patron load file can be found here:  Patron Load Specifications

All files must be zipped before being uploaded on the server. Files should be placed in the following directory:

  • Student Files should be placed in the /alma/student directory of the server.
  • Staff files should be placed in the /alma/staff directory of the server.
  • Combined files (student and staff records) should be placed in the /alma directory.

Alma is configured to automatically load any new file on an hourly, daily, weekly, or monthly schedule as specified by the institution.

Files must be loaded to FVLC's SFTP server prior to the scheduled time. For instance, if Alma is configured to load a file every day at 3am for a library, the file must be put on the SFTP server before that time.

If a student and a staff file are sent, the student file will be loaded first, followed by the staff file. Both files cannot be loaded simultaneously.

Patron File Reports

Once a patron file is loaded successfully, Alma generates several reports that can be viewed by library staff. To see these reports:

  1. From the main Alma screen, choose Admin from the left menu, then click on Manage a Job from the menu that appears.
  2. The Monitor Jobs screen should appear with three tabs at the top: Scheduled, Running, and History.

    Click on the History Tab.

  3. From the completed jobs listed, look for a job called Users SYNCHRONIZE using profile XXXX... [Note: If you use the Job Category filter and choose Users, it will narrow down the list.]

  4. Once you've found the process, click on it to review the summary report.

    Information about the number of records processed, created, changed, and rejected are listed.

  5. If you want to review the records that were rejected, find the Rejected Users section listed near the bottom and click on the arrow to the right.

  6. An xml file will be listed. To view a list of these records, click on the ellipse to the right and choose Preview Records.

    The detailed list will appear with the User ID Number and the reason why each record did not load.

Patron Load Errors

Error: Content is not allowed in Prolog

Here is a good article on the “content is not allowed in prolog” error:
(Many times it seems to be a bad character in the header, or something wrong in the header.  Usually deleting the header fixes it.)

To find an invalid UTF-8 character in a file:  grep -axv ‘.*’ file.txt  ;  UNIX command, use the free program “Git Bash” for a UNIX environment on your PC.

ERROR:  Primary id taken by another user

The “primary id taken by another user” error takes some research:

  • Determine what the patron load is sending as a primary ID. (usually on the report)
  • Search Alma with that ID.
  • What you will often find is that that ID is the right person, but it is in their Alma record as a barcode, or some “other identifier”, but not the primary ID.
  • If it is a barcode, make sure you note the ID from the load, delete the barcode 1st, then change the primary ID in alma to match the one in the load.
  • There can be other problems, but that is the most common one. The one thing to keep in mind is that all IDs within the record must be unique.  For instance, you can’t have a barcode and primary as the same number.

ERROR: The entity name must immediately follow the '&' in the entity reference.

The '&' character should be "&".  It is a utf8 character.

                <address preferred="true" segment_type="External">
                    <line1>2346 SE E & T Cir</line1>
*** either replace & with 'and' or '&amp;'


ERROR: User is not external

If you see a record on your error report that says “not external”, then you need to look up the patron by the primary ID in Alma and switch the user from Internal to External.

When you pull up the patron, in the upper right corner (if you have the correct permissions) you should see a button that says “Toggle Account Type”:

You will then get a message that looks like this:

Click Confirm.


ERROR: XML document structures must start and end within the same entity.

Most common cause:  File either does not start with <users> element or doesn’t end with it.
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>


ERROR: zip END header not found


ERROR: The primary identifier is already taken by another user in this feed

This error can normally be ignored. It usually comes up when a there are two patron files loaded - a student and a staff file for example - and the patron is in both files. If matching patron records are in both files, then one will load but one will not and throw the duplicate error. A quick check of the patron record to see if they have the proper user group is all that should be necessary,