SFX Self-Hosted (Automatic Sync)

Modified on Fri, 30 Sep, 2022 at 4:03 AM

The SFX community has developed a process so that libraries using a self-hosted SFX system may send holdings data to Third Iron automatically.  This process eliminates the need to manually export and send holdings data, simplifying the way you can keep your BrowZine library up-to-date.


We are pleased to share this community knowledge.  As a community-created solution, Third Iron cannot provide technical support for your exact configuration.  If you need further assistance, we recommend addressing queries to an SFX user group listserv such as sfx-discuss-lor directly contact Ex Libris.


This step-by-step guide explains how to set up automated holdings uploads with your self-hosted SFX system.  This guide was assembled with help from other institutions using this configuration, so please pay special attention to directory structure and adapt this to your own system configuration.

Overall, the process requires you to set up a profile using the SFX built-in tools to export a holdings file that is compatible with BrowZine.  Next, you will set up a cron job which will trigger this export automatically, zip the file, and move it to a location on your server.  Third Iron will then automatically retrieve this file and update your BrowZine account at regular intervals.


1. Within SFX, create a custom profile that you will reference from the command line interface.  As seen in the screenshot below, first select "Advanced Export Profiles".  Next, click on "Manage Profiles" and a dialog box will appear.  Provided are the recommended settings :


Export Profile Name: BrowZine

Profile Description: Weekly Export

Select Output Format: TXT

Export Which Object Types: Serials

Export active portfolios with the following services: Check "getFullTxt" only

Export from *ALL* Targets 



2. We'll need to automate both executing the above Export Profile and moving the resulting file into a place where Third Iron can retrieve it.  Ex Libris already provides the tools to do the export, but we need to create a small script to automate compressing and moving the resulting file.  Below is a sample kindly provided by an SFX administrator.  In this case, the script is named "export_process.sh".   Please note that "sfx-instance-name" is the sfx instance name in use, so please use the appropriate path for your system


SFX uses this directory...


/exlibris/sfx_ver/sfx4_1/dbs/scratch 


...as its scratch directory for temporary writing of files.  Thus, this script serves to move the resulting file to the "export directory" which should be a public-facing URL that you can then give to Third Iron (or a URL for which Third Iron's IP is allowed).  It also zips the file to make it smaller for downloading.  As previously mentioned, your file paths will vary, so please adjust as appropriate.


EXPORT_DIR=/exlibris/sfx_ver/sfx4_1/sfx-instance-name/templates/img/browzine
SCRATCH_DIR=/exlibris/sfx_ver/sfx4_1/sfx-instance-name/dbs/scratch
rm $SCRATCH_DIR/browzine.zip.last
mv $SCRATCH_DIR/browzine.zip $SCRATCH_DIR/browzine.zip.last
cd $SCRATCH_DIR
zip browzine.zip browzine.txt
cp $SCRATCH_DIR/browzine.zip $EXPORT_DIR/browzine.zip

3. With this script now setup, the last step is to access the crontab file of your SFX server in order to schedule the automated export like what is seen below.  Two lines that need to be added are shown below.  


00 04 * * 01 /exlibris/sfx_ver/sfx4_1/sfx-instance-name/admin/kbtools/export.cron --mode=profile --profile=BrowZine --filename=browzine.txt
00 05 * * 01 /exlibris/sfx_ver/sfx4_1/sfx-instance-name/home/export_process.sh > /tmp/export_process.log

The first line references the export.cron tool that comes with SFX and is created by Ex Libris. When configured as shown, the export.cron script runs on a weekly schedule with the BrowZine profile we created in step 1, and names the file "browzine.txt".  Please note again that the exact directory for this script may vary depending on your SFX version.   


The second line then runs the script we created in step 2 shortly after the first script runs and also (optionally) logs the process as it occurs.


4. Once you have completed the steps below, please send us the URL we should be using to retrieve this zip file to [email protected]. If you place the zip file at a publicly-accessible URL, we can simply start processing it right away; if you want to lock down that URL by IP, we have a static IP address we can communicate to you that you can allow within the SFX admin. To get our static IP, please contact [email protected].