KE EMu database integration
EMu uses a Texpress database engine: a multi-user and object oriented database management system. The Texpress kernel incorporates features that allow for easy creation and use of applications, accessed via a range of applications.
Terminology
- TexqlKE - Texpress
- Table - This refers to a single Texpress database. All Texpress databases, although controlled separately in terms of access privileges, etc., are accessible as Texql tables
- Column - This refers to an item in a Texpress database
- Nested table - This refers to a Texpress multi-field item which is not of type text or a multi-field text item with an associated Look-up table. Multi-field text items without Look-up tables are considered to be Texql text boxes, i.e. one atomic value of (continuous) text
- Tuple or row - This refers to a record in a Texpress table or a record derived by Texql as the result of a query
- Nested tuple - The multi-field Key and library items of Texpress are represented as nested tuples in Texql. This means that these items can be treated as atomic values or, alternatively, their components can be individually manipulated
- Atomic value - This refers to a value in a column of a tuple, i.e. the value of a field within a Texpress record
API Server Settings
After enabling the emu plugin, go to Options to start setting it up.
For server address use either IP (e.g. 192.168.1.10) or a URL (.e.g. https://emuapi.yourdomain.com).
EMu Script Settings
Clicking on "Test script" button will run the script in test mode. A popup will then be displayed showing the log of the script and giving two options to the user: "Cancel" to go back to the setup page, or "Process" to run the script live. Clicking on Process will take the user back to the setup page and the script will run in the background.
Select the script mode to tell ResourceSpace how it should behave: import metadata from EMu or have a master-slave relationship between EMu and ResourceSpace? Pulling all EMu records will also add media files found for a record. The original file of the new resource created will always be the first media file found (lowest media IRN found). If checksums do not match, ResourceSpace will take this as a new file change and add the new EMu media file as an alternative file for that resource.
Set Test mode to true if you don't want ResourceSpace to update fields but to just generate a log file. You can specify an interval at which ResourceSpace can run the script. Because this is likely to take a long time, developers suggested using anything above 1 day. Example: +3 day will mean the script will run at 3 days intervals. An e-mail address can be specified to be notified of how EMu syncing is going on or left blank and it will default to ResourceSpace notification e-mail.
For the number of days after which to notify administrators if the script did not successfully complete should, as a general rule, be set as 3 times the interval at which the script is supposed to run.
Last, if you want log files to be stored on the server, you will need to set a full path to the location of the logs. Note that from version 10.5 the location to store these files must be set in the system configuration file using e.g.
$emu_log_directory = "/var/log/resourcespace/emu_script.log";
EMu Settings
The plugins will need to know which ResourceSpace field will hold the unique object identifier (IRN) and to which resource types this applies for.
If the script mode will be set to "Pull all EMu records and keep RS and EMu in sync", then an extra field for adding a search criteria for syncing EMu with ResourceSpace will appear.
EMu & ResourceSpace mapping rules
The mappings between a record in EMu database and a ResourceSpace field is done by mapping the module, a column from that module and the field itself.
To add new empty rows, click on Add mapping. Once you are happy with your setup, click on Save configuration.
Notes on columns and atomic values:
When script mode is set to be "Import metadata from EMu", the module columns used will need to contain atomic values. This means you cannot use userdetails_tab, for example, as a column as that will expand into more information such as user_first_name, user_last_name and so on.
However, if the script mode is set to be "Pull all EMu records and keep RS and EMu in sync" then non-atomic values are allowed and will be saved in a CSV format. Because non-atomic values can be very big, ResourceSpace requires that RS fields mapped to non-atomic EMu fields to be either a multi line text box or a large multi line text box.
Checking IRNs
When the plugin is enabled and working, users will be notified if the IRN they input has retrieved any data or not. This happens on both upload and edit pages as follows:
- Upload - an error message will pop-up and the user can tick a check box to allow the upload to continue with the "invalid" IRN. They can also change it and retry (without ticking that checkbox).
- Edit - an error message will inform the user the IRN is "invalid". Note that at this point the information has already been saved so it's up to the user to rectify it.