Adlib Release notes 7.2



Release notes

Axiell ALM Netherlands B.V.

Copyright © 2015 Axiell ALM Netherlands B.V.® All rights reserved. Adlib® is a product of Axiell ALM Netherlands B.V.®

The information in this document is subject to change without notice and should not be construed as a commitment by Axiell ALM Netherlands B.V. Axiell assumes no responsibility for any errors that may appear in this document. The software described in this document is furnished under a licence and may be used or copied only in accordance with the terms of such a licence. While making every effort to ensure the accuracy of this document, products are continually being improved.

As a result of continuous improvements, later versions of the products may vary from those described here. Under no circumstances may this document be regarded as a part of any contractual obligation to supply software, or as a definitive product description.

Contents

Introduction 1

1 New functionality 3

1.1 Quick searching anywhere in Adlib 3

1.2 Continue searching on equal field contents 4

1.3 Selecting another data source from anywhere in Adlib 5

1.4 Rearranging sorting fields 6

1.5 Managing your favorites 7

1.6 Renamed and relocated functions 8

1.7 Import image in Media menu 9

1.8 Relational searching optional in Advanced search 10

1.9 Currently active data language with icon 11

1.10 Pinning or unpinning the Pointer files window 11

1.11 Write set to assign the lowest free pointer file number 12

1.12 New display of absent multilingual data 12

1.13 New interface languages for Adlib 13

1.14 Locally viewing your records in The Collection Cloud 14

1.15 Images with colour profiles supported in Adlib 14

1.16 Designer Help in new format 15

1.17 Sorting in the Hierarchy browser 17

1.18 Create .inf documentation in a custom format 19

1.19 Uploading data to Europeana 21

1.19.1 Uploading and pushing data, the quick way 23

1.19.2 Uploading and pushing data, your own way 25

1.19.3 Configuration 32

1.20 Forcing identical terms in different domains 36

1.21 External translation of application texts 37

1.22 Adapl data preprocessing for label printing 43

1.23 ADAPL function for locking fields 46

1.24 After-read adapl option for import jobs 46

1.25 New reserved ADAPL variable &6[7] 48

1.26 Adlib startup option for data language 48

2 Other improvements 49

2.1 Display 49

2.2 Searching 51

2.3 Editing 53

2.4 Printing 59

2.5 Pointer files 60

2.6 Adloan 60

2.7 Import and export 61

2.8 Designer 61

2.9 ADAPL 63

2.10 SDI.exe 64

2.11 Registry 65

Introduction

These release notes describe a number of improvements in the Adlib executables, which are implemented in Adlib 7.2. This release is available from mid-November 2014 to all customers with a support contract and can be downloaded from the Adlib website.

You can simply install this software on top of your existing Adlib system (for versions 4.4 and higher). So you do not need to uninstall anything, but please make a backup of your databases and applications first.

From Adlib 5.0 a new license file is used: adlib.lic. If you are already using 5.0 or higher, you can use this upgrade immediately after installing; your license file has already been renewed, is in the right place and will not be overwritten by the upgrade. When you install this upgrade over an Adlib version that is older than 5.0, then the following applies: if you receive this release on CD, then on it you’ll find the proper license file; if you downloaded this release, then e-mail our helpdesk (ALM.UK.helpdesk@) for the necessary password and your license file. Place this file (you can make copies of it) after installation of the upgrade in your Adlib \bin and \tools or \executables folders (if present). The point is that the license file should be located in the same folders as your Adlib .exe files. How these folders are named is not important.

The release notes of previous major releases and service releases can be found on the Adlib website.

1 Backwards compatibility warning

New functionality in Adlib 6.6 for SQL Server and Oracle databases makes records that you change with this version or newer versions inaccessible to older versions of Adlib (adlwin.exe as well as wwwopac.exe). Please, keep this in mind if you would first like to try Adlib 7.2 before making the definitive upgrade. This limitation does not apply to CBF databases.

This means that you have to update wwwopac.exe to 7.2 too (this requirement does not apply to wwwopac.ashx). This may have consequences for your web application though because of some changes in the structured XML-format: previously, empty fields from field groups did not appear in the record XML, while from 6.6 they do.

You also need the latest version of Adlib Designer to implement functionality described in these release notes. However, when you modify your application in the new version of Designer, you won’t be able to edit that application anymore, of parts thereof, in older versions of Adlib Designer.

Because of changes in the .inf format due to the addition of new interface languages in Adlib 7.2, the following limitations apply when you edit your Adlib database structures using Designer 7.2:

• Afterwards you’ll no longer be able to adjust your database structures using an older version of Designer. You’ll have to use Designer 7.2 from now on.

• Afterwards you can no longer use Adlib versions (adlwin.exe and adloan.exe) older than version 7.2.

• Afterwards you’ll have to update wwwopac (.exe or .ashx) to version 7.2. The update of the .ashx version in itself may have consequences too:

o From wwwopac.ashx 3.7.14028, field names specified in the briefFields, detailFields, searchFields and authenticationConfiguration sections of adlibweb.xml will be validated to the requirements for XML element names on application start. If a field name doesn’t meet the requirements, the API will throw an exception (AdlibWebException) with details about the field name, section and the database. If you encounter the exception after your upgrade to wwwopac.ashx 3.7.14028 or higher, you’ll have to correct the problematic field names in the data dictionary (.inf file) and subsequently in adlibweb.xml.

The XML element name requirements are as follows: names may contain letters, numbers and other characters but they cannot start with a number or punctuation character or with the string ‘xml’. And names are not allowed to contain spaces.

o The Adlib API as used by the current version of wwwopac.ashx implements a strict policy concerning the definition of field tags: all tags used in records that you read or write using the API, must have been defined in the data dictionary. So when you’re about to start using the new version of wwwopac.ashx for your website, you may encounter errors because of this, since it is not uncommon in Adlib applications for tags to have been defined on the screen only or to have ended up in records via an import or adapl procedure. Axiell ALM has several tools in development (currently called ValidateDatabase and RemoveTagsFromData) which you can use to track down any undefined tags in your records (amongst other functionality), after which you can still define them in the relevant .inf to solve the issue. Ask our helpdesk for the status of these tools and the accompanying documentation.

2 New functionality

1 Quick searching anywhere in Adlib

From Adlib 7.2 you’ll be able to quickly start a new search from anywhere in Adlib, like from the detailed or list display, by selecting the desired access point from the new Quick search drop-down list in the Adlib Start menu. The function becomes active as soon as you’ve selected a data source to work with, in Step 1 of the Search wizard.

[pic]

The list contains the same access points as Step 2 of the Search wizard, for the currently opened data source.

[pic]

After your selection, the active display will close and the Search wizard will open directly with the chosen access point in Step 3.

[pic]

This works a lot faster than having to click the Back button from record display repeatedly to return to Step 2 in the Search wizard to be able to select a new access point.

2 Continue searching on equal field contents

Adlib 7.2 introduces an extra way of searching: from within every indexed field in detailed display of a record you can search directly for all records with the same field contents, simply via the pop-up menu.

In detailed display of a record, suppose you encounter the value ‘canvas’ in the Material field. If you decide you’d like to see all records with the material ‘canvas’, just right-click the relevant field and in the pop-up menu select the Find records for … option (Find records for ‘material=canvas’ in this example). The search will be performed untruncated and without relations. The search result will be presented in the brief or detailed display, as usual.

[pic]

When the option is greyed out, the field will have no index so you won’t be able to continue with this search option.

3 Selecting another data source from anywhere in Adlib

From 7.2, you can open a different data source from anywhere in Adlib (except while editing a record), using the File > Select database menu. It doesn’t matter if you’re currently searching, viewing a record in detailed display of are working with pointer files: simply click File > Select database and select the desired data source in the submenu. Move the mouse pointer over the thin bar with the arrow at the top or bottom of the submenu to have the list scroll up or down and show you more data sources. (The databases and their datasets won’t be displayed in a hierarchical structure here.) Immediately after your choice, Step 2 in the Search wizard will open, for the relevant data source.

[pic]

4 Rearranging sorting fields

De brief display of a search result can be sorted on multiple fields. Click the Sort button in the Start menu to open the Sort window and then double-click the fields on which you’d like to sort.

[pic]

New in 7.2 is that the order of the selected fields in the list on the right (and consequently the sorting order) can now easily be changed: in the Sort field properties list, select the name of the field that you’d like to move and use the key combination Ctrl+( (the Ctrl-key combined with the arrow-up key) or Ctrl+( to move the sorting field up or down.

[pic]

[pic]

5 Managing your favorites

If you often fill in the same texts, but you don’t want to have to type them each time, then you can label such texts as favorites for that field, so that you’ll be able to select that text directly from the right-click pop-up menu for that field next time.

In 7.2 you have the added option to manage the favorites you collected earlier: it is now possible to delete selected favorites or to change the order of the favorites in the pop-up menu.

Right-click the field for which to want to manage the favorites and in the pop-up menu select the Manage favorites option.

[pic]

In the Manage favorites window you can move a selected text up or down using the blue arrows or remove it with the red cross. Click OK to store the changes.

[pic]

6 Renamed and relocated functions

1 New Publish menu

The Collection Cloud buttons have been moved from the Start menu to the new, persistent Publish menu. In it you’ll also find the new Europeana buttons (see chapter 1.16 for more about that).

[pic]

2 Expert search renamed to Advanced search

The Expert search window where you can put together any desired search statement, will be called Advanced search from now on. You can open the window from the Adlib Start menu, for example, after you’ve selected a data source in Step 1 of the Search wizard.

Further, the Query by form option has been renamed to Search by form.

[pic]

3 Show invariant data has been removed

[pic]

The Show/Hide invariant data button has been removed. If a multilingual field has no value in the current data language while there exists an invariant value in a different data language, then that value will be displayed (greyed out) by default, from now on. (Also see chapter 1.10.)

4 Find image file renamed to Import image

The Find image file button in the Edit menu and the Explorer window it opens, have been renamed to Import image.

[pic]

7 Import image in Media menu

The Import image function, to link an image file to a record, was already available in the Edit menu but has now also been added to the Media menu in which all Media Viewer functions can be found. It doesn’t matter from which menu you start the function.

[pic]

8 Relational searching optional in Advanced search

Previously, searching a linked field in a SQL database on a non-preferred term via a search statement in the Advanced search would always replace that term in the background by the preferred term which would then be used in the actual search. So it made no difference if you searched on the preferred term or on (one of) the non-preferred term(s) associated with it.

From 7.2 this non-preferred term substitution only takes place if the new Use relations checkbox has been marked (which is the case by default). The setting will be stored for next time.

[pic]

Searching with relations enables Adlib to actually search on the preferred term when you’ve entered a non-preferred term. Adlib will also retrieve records with narrower terms and terms that are equivalent to the search key. This means that you can find more records than you may have expected. (Note that the search will not include any related terms.) However, hierarchical searching does influence the speed of searching: non-hierarchical searching is just faster because you’ll only be searching on the entered term, nothing else.

The new option doesn’t apply to CBF databases.

(Ref.no: 6560)

9 Currently active data language with icon

To make it more noticeable to users that they’re working in a multilingual application and to draw their attention to the currently set data language, a flag icon is now present in front of the code for the current data language in the status bar and this information has more space on either side. If your application is not multilingual, the data language box in the status bar will remain empty.

[pic]

10 Pinning or unpinning the Pointer files window

[pic]

In 7.2 the possibility has been added to decide for yourself if the Pointer files window must remain open after you’ve opened a pointer file (as was the default case in 7.1) or if it should close automatically (as was the case in even older versions). To this end, a pushpin icon has been added to the lower left corner of the window. Click the pushpin to switch between the two modes: blue means pinned down, grey means unpinned (and this has become the default setting again). Adlib remembers your setting for next time.

A pinned Pointer files window remains opened after you’ve chosen a pointer file and remains opened until you close it manually or until you start editing or outputting marked records in some way. The window closes automatically as well when you return to Step 1 of the Search wizard. Still, in detailed or brief display, amongst others, you can leave the window open, for instance to be able to quickly view several pointer files, one after the other. A pinned window can be closed manually via the Cancel button or via the white-red cross in the upper right corner of the window.

11 Write set to assign the lowest free pointer file number

[pic]

The Write set function in Adlib did always assign a number to a new pointer file which was 1 higher than the previously assigned number, even if lower numbers were available (when earlier created pointer files had been removed since then, for example). This has changed in 7.2: now when you let Adlib assign the new pointer file number it’ll become the lowest free pointer file number. (Ref.no: 6550, 4622)

12 New display of absent multilingual data

In Adlib 7.2, the Show/Hide invariant data button has been removed. If a multilingual field has no value in the current data language while there exists an invariant value in a different data language, then that value will be displayed (greyed out) by default, from now on. This makes translation of the relevant data more comfortable.

[pic]

Such an invariant field value will also be displayed in a different colour: light grey. The distinction clarifies that it concerns invariant data and that the relevant field value(s) haven’t yet been stored in the current data language in the record. However, as soon as you place the cursor in such a field with light grey text, the text colour will return to normal and that means that the value, unaltered or edited, will indeed be stored in the current data language in the relevant field as soon as you save the changes in the record. As long as field values are displayed in light grey, they won’t be stored.

[pic]

If a multilingual field hasn’t got a value in the current data language while it does in one of the other languages and no invariant value exists for the field in this record, then in display mode light grey suspension points will be displayed in the field (underlined if it concerns a linked field).

[pic]

In edit mode, the suspension points will be displayed too as long as the cursor is not located in the field: as soon as the cursor is placed in the field, the suspension points will disappear. In no case will the suspension points be stored in the record: they’re only meant to indicate that data in another data language has already been entered in the field.

[pic]

[pic]

[pic]

13 New interface languages for Adlib

The number of interface languages in which Adlib applications can be displayed, has been extended again. The currently available languages are: English, Dutch, French, German, Arabic, Italian, Greek, Portuguese, Russian, Swedish, Hebrew, Danish, Norwegian, Finnish and (from version 7.2.15007.1) Chinese.

In Adlib Designer you can set the application language (the language in which field names and labels and such are displayed in Designer) to each of these languages as well.

14 Locally viewing your records in The Collection Cloud

From Adlib 7.2 a list of records that you’ve uploaded earlier to The Collection Cloud from within the current data source, can be requested in your application.

Click the new List records button in the Publish menu of Adlib to show all relevant records in the list display. The button is available from several locations in Adlib, after selecting the desired data source in Step 1 of the Search wizard.

[pic]

It is important to realize that Adlib uses the original record numbers of the records you uploaded earlier to be able to show those records in the list display now. This means that applicable records which have since been removed from your database, cannot be shown.

Further note that the new button won’t be present in the toolbar of Adlib under Windows XP.

15 Images with colour profiles supported in Adlib

Certain types of images files, like jpeg and tiff, can have embedded, generic colour profiles which were embedded explicitly when the image file was created or edited. The effect of a generic colour profile is that it alters the colours of the relevant image to some more desirable spectrum, although the changes are usually minute. Combined with monitor and/or printer specific colour profiles, a publisher has full control over the resulting colours. Typically, such profiles are used in (desktop) publishing environments or other professional media processing businesses where colour fastness of images is very important.

From 7.2, adlwin.exe supports images with embedded ICC or WCS colour profiles, meaning that the embedded profile will actually be applied whenever images are displayed in Adlib. (Previously, such images were displayed without the colour profile being applied.) (Ref.no: 6543)

16 Designer Help in new format

With Designer 7.2, we introduce a new documentation format called Web Help, which displays in your browser. You can find it online at: . In the not too distant future it’ll replace the 7.1 version of the HTML Help as currently still offered by Adlib Designer and some other tools. For the time being though, you’ll have to click the link above (which you can save as a favorite in your browser) to open the 7.2 version of the Designer Help.

Some of the advantages of Web Help over HTML Help are:

• You always get to see the most up-to-date version of the documentation.

• Every detail page has its own URL, like: or ). This means you can store your often used help pages as favorites in your browser. And using a URL is also an easy way for you to refer to a help text in an e-mail to the helpdesk, should you have related questions. The URL can be copied from the URL box or via the Permalink button in the toolbar of the Web Help (depending on the browser you are using).

[pic]

If the button isn’t immediately visible on the right side of the Web Help toolbar, press F5 or Ctrl+F5 to refresh the page in your browser.

[pic]

• Succinct release notes per program will be included, like:

• The Search tab allows for searching on single or multiple keywords (truncated using *) or searching on a phrase enclosed in double quotes. Click a search result link to open it on the first tab.

• You can have multiple detail tabs open at once. If you want to hold on to the help text as it is currently displayed on the first tab while searching for other texts, click the Copy tab button in the toolbar to copy the first tab to a new tab. This leaves the first tab free to display other topics when you click one in the contents window pane or on the Search tab:

[pic]

To be honest, there are some minor disadvantages too:

• An internet connection is required to view the Web Help. However, if you don’t (always) have one, we can offer a .pdf file of the Web Help instead.

• Some help texts may concern a newer version of the software than you are still using, but every new option will be accompanied by the number of the version in which it was introduced. This way you’ll always know when some option doesn’t apply to your version of the software. 

|Tip: create a shortcut to the Adlib Web Help |

|If you’re a regular user of the Designer Help, having the online version only as a favorite in |

|your browser might still be too cumbersome. Instead, you could make a shortcut to the Web Help |

|for quick access: |

|Right-click your favorite browser’s shortcut icon and select Copy to > Desktop in the pop-up |

|menu. |

|Right-click the copied icon and select Properties in the pop-up menu. |

|On the General tab in the Properties dialog, change the name of the shortcut to Adlib Web Help, |

|for example. |

|On the Shortcut tab, enter the following URL (preceded by a space) behind the existing Target to |

|your browser’s executable: ? |

|ds_designer.html |

|(This may not work in all browsers but it does in Internet Explorer and Mozilla Firefox.) |

|Click OK in the Properties dialog and you’re done. Your new shortcut should open the Adlib Web |

|Help immediately. |

17 Sorting in the Hierarchy browser

For any term with narrowers, the Hierarchy browser always presented the narrower terms in the order in which the occurrences of the relevant field (e.g. the Parts field in an archive record) were stored in the record.

If the Sort values option for the internal link definition in Designer had been set to Ascending or Descending (instead of the default Unsorted), then the occurrences of the relevant narrower field would be sorted alphabetically ascending or descending before you stored an edited record. The same order would then also be displayed in the Hierarchy browser.

Yet when the values to be sorted on were of the alphanumerical type, you would not be able to sort these occurrences in the record and the values in the Hierarchy browser correctly (namely alphanumerically).

From Adlib 7.2, narrower occurrences in the record and the corresponding values in the Hierarchy browser are sorted ascending or descending according to the Sort values setting for the internal link (or not sorted at all), and the type of sorting will be determined by the Key type of the index on the main term field in the internal link definition.

So if you have an internal link definition like the following present in the Collect database in a model 4.2 application: part_of_reference object_number parts_reference, and you would set the Sort values option for it to Ascending and you would reindex the invno (IN) index (for the object_number field) with the Key type now set to Alpha-Numeric, then object numbers in the Hierarchy browser will now be sorted alphanumerically ascending. (If the Sort values setting is left to Unsorted, no sorting will be applied.)

Note that the sorting of the narrower field occurrences (Parts in this example) in any record will only be changed to the newly set sorting type when you edit and save the record: the sorting order in the Hierarchy browser no longer depends on the stored occurrences sorting order though.

[pic]

[pic]

Below, on the left, you can see an example of an archive hierarchy sorted alphabetically on object number, while the figure on the right displays the same hierarchy alphanumerically sorted on object number. (Ref.no: 5561)

|Limitations of alphanumerical indexes |

|When an alphanumeric value is indexed, it is reformatted so that every number in the string |

|becomes a ten-digit number starting with zeroes. For example, when in a record the string |

|A238HJK08aa2 has been registered, the index value (of which the user can remain unaware) becomes |

|A0000000238HJK0000000008aa0000000002. So, if the field you wish to create an alphanumerical index|

|for, contains values with many letter-number alterations, the index values can become pretty |

|lengthy and therefore you should set the Key size option of this index sufficiently high: for CBF|

|databases this is no problem but the key size for an index in an Adlib SQL database is limited to|

|100 characters. So if you employ an Adlib SQL database and you estimate that any reformatted |

|alpha-numeric strings might exceed 100 bytes, then it's best not to create an alphanumerical |

|index for this field and just accept alphabetical sorting. |

[pic] [pic]

18 Create .inf documentation in a custom format

In some Designer tools, like in the Application browser for a selected database or application, or in the Import or Export job editor, or the Record lock manager, it's possible to generate documentation about the currently selected object or the list of objects, by choosing File > Create documentation in the menu.

A Documentation window will open with a detailed description of the structure of the selected object. For a database for instance, this information comprises data on the database, its datasets, fields, indexes and links. And the documentation for an application will contain a detailed overview of its properties, menu texts and data sources.

The overview is nicely laid out, but if you rather have the bare XML view, you can switch to it through the View menu. In either view you can print the file via the menu or the Print documentation button, or save it as an XML file.

You may also select the text, or part of it, with the mouse cursor, and copy (Ctrl+C) and paste it (Ctrl+V) in any other document.

From Designer 7.2 (well, actually from version 7.1.14255.1), the View menu in the Documentation window for a selected database structure also contains the Fieldlist to CSV option.

[pic]

This option generates a .csv file containing a field list with some field properties. The header line contains the property names.

[pic]

In some cases you may find this type of documentation a better cross reference than the information produced by the List or XML option.

Note that the Documentation window display doesn’t respect the line endings in the generated .csv file, but that the file does contain line breaks, as you can see when you save the file as a .csv file and open it in MS Excel. (Contrary to the screenshot above, all lines are typically displayed consecutively in a single sentence if the window is wide enough.)

Also note that, to save this documentation as a .csv file, in the Save documentation as dialog you have to type the .csv extension behind the desired file name and set the Save as type option to All files.

[pic]

1 Creating your own database documentation

But that’s not all. The View menu in the Documentation window does not only show the List, XML and Fieldlist to CSV options, but also any other custom XSLT stylesheets in the new \DatabaseInfo subfolder of your Designer \Xsl folder. In there, you can already find the FieldListToCsv.xsl stylesheet. You can copy this stylesheet and adjust it to your liking or build an entirely new one based on the XML version of the documentation (there’s no .xsd available currently), to create your own type of database cross reference.

You can do the same for your application structures, by the way, by creating a new stylesheet and putting it in an \ApplicationInfo subfolder next to the \DatabaseInfo subfolder. This subfolder isn’t present yet by default, because there’s no applicable XSLT stylesheet yet either.

Important to note is that the location of these XSLT stylesheets depends on how you installed Adlib Designer. The zipped version which you can download from MyAdlib can be placed anywhere on your system or network, so you will know where to find it. When you install a new version of Designer, probably in a different folder, you just have to copy your custom stylesheets from \Xsl\DatabaseInfo in your old Designer folder to the same subfolder in your new Designer installation and you’re done.

However, if you are working with the click-once version of Adlib Designer, which automatically updates whenever you start Designer (and an update is available), the installation folder can be a little hard to find. When you run an updated click-once Designer version for the first time, the status bar will show you the destination of the installation. Typically, the path has the following syntax: C:\Users\.\AppData\Local\Apps\2.0\8W4ACD087.LTL\RAUT130.AO0\adli...exe_c0bd10001_none_14dc8ee48. The alphanumerical parts probably differ completely. Of the subfolders at the lowest level, choose the one that has been installed most recently to find your current click-once Designer installation. You can edit or add stylesheets for database structures there, in the \Xsl\DatabaseInfo subfolder, but do also create backups of those files because with the next automatic update you may lose them as the update will be installed in a new subfolder. You will then have to copy your backup XSLT files to \Xsl\DatabaseInfo in the newly installed version to have access to them again.

19 Uploading data to Europeana

Adlib 7.2 offers integrated access to the Europeana Connection Kit (ECK) enabling you to upload selected records to a so-called aggregator for Europeana, the European cultural and scientific heritage collaboration offering an internet portal to millions of digitized books, paintings, films, museum objects and archival records.

The ECK was developed in the Europeana Inside project, a cooperative project funded by the EU, in which Axiell ALM participated as a technical partner. The goal of the ECK is to facilitate the contribution of data to the Europeana portal.

Records will not be uploaded to Europeana directly: first you’ll upload records to the ECK, an intermediate third-party web service, allowing you to prepare your data online for the aggregator (like for example: ) and ultimately for Europeana, giving you full control over the final data which will be collected by Europeana at some later time. As a content provider you’ll solely have to deal with the aggregator as you’ll have no influence over the planning and procedures involved in Europeana’s harvesting of the data from your selected aggregator.

Before you can start using this functionality in Adlib, we recommend you contact the Collections Trust: to obtain more information about how to participate.

Thus far, the preparation and submission of collection data to Europeana was quite labour-intensive and for Adlib users it usually meant having to install an OAI server/repository which had to be harvested by an aggregator, a process over which you have no control.

As more and more institutions open up their collections by sharing their data on the internet (as already possible on Axiell ALM’s The Collection Cloud for example), the ECK and its direct accessibility from within the Adlib user interface is therefore again a leap forward as it allows you to easily “push” your object data to an aggregator for Europeana without requiring an OAI server (instead of having to rely on the “pull” of aggregator harvesting), also giving you much more control over exactly which data will be submitted.

After the initial setup (see chapter 1.19.3 ), you’ll find two active buttons in the new Publish menu in Adlib, allowing (authorized) users to upload a selection of records to the relevant ECK web service and subsequently to push the validated and converted data (LIDO or EDM) to the aggregator.

[pic]

1 Uploading and pushing data, the quick way

Since the upload and ECK functionality offer many advanced options, which you won’t always need, let’s first discuss the quick route through the forest:

1. In your object catalogue, find some records you wish to upload and mark them in the brief display.

2. Click the Upload record(s) button. Adlib will generate a temporary Adlib XML file of the records to upload and will then open the Europeana upload wizard. Typically, you can just click Next here, unless you want to create some reference of your upload, which you can do by marking the Create pointer file from selection option and/or the Retain the output files (xml, lido, zip) option.

[pic]

3. The next page in the upload wizard shows you the procedural steps in the automatic upload process as they take place. You’ll notice the Adlib XML is transformed and validated to LIDO and finally transferred to the record set manager at the ECK web service. Click Next.

[pic]

4. The final step of the wizard displays a log of the processed actions. If you want, you can copy the log to the clipboard or save it to a file, for future reference. Click Finish to close the wizard.

[pic]

5. We’re almost done now. Next, click the Manage record(s) button in the Publish menu to open the Europeana set manager. This looks quite complicated but if all the records you’ve uploaded are reported here as being Valid and Ready, then all you need to do now is click the Data push option in the right window pane to push your data to the aggregator (where it will wait for Europeana to harvest it). Before you do so, you may select one of the records in the list and click Preview to see how it will look on Europeana. If you’re not happy with the result, just don’t click Data push but instead Delete the problematic (selected) records from the list and Close the Europeana set manager.

[pic]

6. Wait for the transfer of your data to the aggregator to finish and click Close in the final message.

[pic] [pic]

2 Uploading and pushing data, your own way

If you’d like to have more control over the different procedural steps or if errors occur while uploading and/or pushing your data, you’ll have to know a little bit about the advanced options available.

1 Upload options

• Input file and Destination set – There are really two ways to create a record selection to upload.

The first is to mark records in the brief display of Adlib. This will cause the Input file and Destination set options to be read-only. The Input file box will show the path to the temporary XML file which will be created by Adlib and Destination set displays the current dataset name (being both source and destination) and next to it the real database name it represents.

[pic]

The second way is to not mark any records before you start the Europeana upload wizard and select an earlier made XML file (formatted as “grouped” XML) containing the data to be uploaded. Click the Browse button to select the desired XML file on your system. The XML file can be the result of an earlier export to grouped XML from within Adlib or the saved result of an earlier upload to the ECK (see the Retain the output files (xml, lido, zip) option). Why you would want to do it like this is up to you: maybe you’d just like to check the bare source data before uploading it.

[pic]

The Destination set drop-down list then allows you to select the “set” into which these records should be uploaded. You’ll find this list effectively contains the names of all the data sources in your Adlib application. For the time being, the rule of thumb here is to simply select the source dataset of the record XML. The option is here really for internal or future use, as its purpose is actually to set the folder name (namely the relevant Adlib database name as indicated behind the list , e.g. collect) in the record set manager of the ECK, into which the uploaded records will be stored, while Europeana has no subdivision in such datasets nor is there in the record set manager currently a filter to allow you to show uploaded records per dataset or something like that. Also, the currently available stylesheet that will transform your Adlib XML to LIDO, will only do that for (unilingual) object records. So the recommendation is to select the name of the original data source of the uploaded records here.

• Retain the output files (xml, lido, zip) – Particularly for a hand-picked record selection you may want to check the different stages the record XML is put through before it is uploaded to the ECK. Mark this checkbox to automatically save these stages in four different XML files in your Windows Documents\Adlib\

\ folder, namely: input.xml (containing the source grouped XML), parsed.xml (the XML after it has been parsed, maybe only showing different indentation), lido.xml (the XML after initial conversion to the LIDO format) and lido_pid.xml (in which the image references and LIDO record IDs have been resolved to proper URLs using your configuration settings). The lido_pid.xml file is also present in the output.zip file, renamed to adlib_lido.xml.

• Delete existing records from the set – Set this option if you’d like to remove all present records from the ECK record set manager before the currently uploaded records are inserted. You may want to do this if previous uploads were not satisfactory. Even though record contents will be deleted, a reference to the old record will remain, flagged as deleted, and you can still list those deleted records in the record set manager.

To make things even more complicated, records will only be deleted if you do not also mark the Don’t make the records ready (update only) option below: if you do mark that option too, the only records that will be removed now will be records that were never made Ready before (more about this in the section: The record set on the ECK web service).

Also realize that data which has already been pushed to the aggregator cannot be deleted from the aggregator anymore: deletion of uploaded data is currently only really possible before it has been pushed. It is possible though that a future version of the ECK will allow deletion from the aggregator, but that hasn’t been implemented so far.

• Don’t make the records ready (update only) – Select this option only if you want to upload records and have them validated but not yet commited. This advanced option is for experienced users only since it may cause two versions of each record to exist temporarily in the ECK record set (if those records were uploaded before). This allows you to upload records just to see if they validate and maybe because you’d like to preview them, without overwriting any earlier uploaded data in the record set which already has the Ready status.

If you mark this option, you’ll have to do a manual Commit in the Europeana set manager later on to make the newly uploaded records Ready for data pushing, if desired. If you don’t, you can still push the “old” version of those records though, before deleting the newly uploaded ones.

For more details about the workings of the ECK record set, see the section: The record set on the ECK web service.

• Create pointer file from selection – If you’d like Adlib to automatically create a pointer file for the records that you marked in the brief display, then select this option. You can use the pointer file for later reference, to check which records have already been uploaded, for instance. The pointer file name will be formatted like this: Records uploaded to set: . The Create pointer file from selection option will be inactive if you haven’t marked any records because you are planning to use an input file instead.

2 Europeana set manager options

The upper list box in the Europeana set manager will display uploaded records (even deleted ones), their latest update date and time (from the server) here and their validation Status and Ready status.

It may take several seconds before your uploaded records become visible or before any updates have been processed, so please be patient. The actions which are still awaiting to be processed on the server are listed in the Queue box. As long as the Next update in 15 seconds option at the bottom of the window is marked, the set manager will check with the server and update the list and the information on the other tabs every 15 seconds automatically, but it may take even longer than that for an update to be processed. Instead of waiting for the next 15 seconds you may also choose to click the update now option next to it to see if the results are in yet. The Queue will become empty after all queued actions have been processed.

[pic]

Status values

Possible Status values are:

• Valid – Validation of the uploaded LIDO XML has passed.

• Invalid – Validation of the uploaded LIDO XML has not passed. Information about the error leading to the failure can be found on the Errors tab. If the error states: Failed to communicate with web service, the error lies with the third-party web service but is probably temporary. Then click the Validate option on the right, repeatedly if necessary, to try again until succesful.

• Not checked – The ECK web service hasn’t come around to validating your upload yet. Please just wait until it does.

Ready values

Possible Ready values are:

• Yes – The relevant records have been validated and are ready to be pushed to the aggregator, using the Data push option in the right window pane.

• Yes (old) – The relevant records have been validated and are ready to be pushed to the aggregator, using the Data push option in the right window pane. However, there’s also a newer version of these records present in the record set (unless their Status is Deleted), which you can view by clicking the Preview option. If you like the newer version better than the old one (which can’t be previewed anymore), you’ll have to (Validate and) Commit to overwrite the old version with the new one. Yes (old) will change to Yes.

• – If the Ready status is empty it means No. You’ll have to (Validate these records, if not Valid already and) Commit them to make them Ready Yes.

Available actions

Possible actions to perform on the listed records can be started by clicking one of the options in the right window pane. Some only work on a single selected record, others on all records or on one or more selected records (Ctrl+click to select multiple records):

• Preview – Shows an HTML display of the selected record in your default browser. This is how the record data will be presented on Europeana. A record needs to be Valid to be previewed.

If two versions of a record are present in the set, the newer version will be shown.

• Validate – Tries to validate the uploaded LIDO XML of selected records or all records, regardless of their status.

If two versions of a record are present in the set, the newer version will be validated.

• Delete – Deletes the selected records or all records, regardless of their status and readyness. Although record content will be deleted, a reference to the record will remain present, with a Deleted flag attached to it. Record data which has already been pushed to the aggregator won’t be deleted from the aggregator.

If two versions of a record are present in the set, both versions will be deleted.

• Commit – Commits all Valid records which are not ready yet, to make them Ready Yes. If certain records weren’t validated yet, Commit tries to validate those first. And if the aggregator requires the pushed data to be formatted as EDM, Commit will also transform the LIDO XML to EDM XML (as set up in your ECK configuration).

The Commit option will be temporarily disabled if the Queue already contains a commit action.

Any Ready Yes (old) records will be overwritten by Valid new versions of those records.

• Data push – Pushes the data from all records with the Ready statusses Yes and Yes (old) to the aggregator. You cannot undo this data push. Data push does not work with the queue: it has to wait for a reply from the server and you’ll be notified so. The progress of the push procedure will be displayed in a message.

Screen tabs

The tabs available in the Europeana set manager are:

• Records – Shows the records uploaded from your institution. The “subtabs” Show all, Pending (records not processed yet), Valid, Invalid, Ready and Deleted are filters. A blue filter is an active filter. Click the filter label to switch it between active and inactive. For example: to only show all valid records, activate the Valid filter and deactivate the others. Or, to only show all valid and invalid records, activate the Valid and Invalid filters and deactivate the others. Adlib will retain your filter choice.

• Errors – Displays any validation errors from the web service if records didn’t pass validation. They may give a clue about what’s wrong, allowing you to fix it and upload the relevant records again.

• History – Shows a part of the log of all actions processed on the server. Click the Get more option in the upper right corner if you’d like to see more log entries.

• Messages – Shows sort of a log of errors, warnings and other information. Errors and warnings will cause a yellow warning icon to appear in the tab label:[pic]

Before you report any errors to our helpdesk, it’s good to know that not all possible errors are caused by Adlib or your configuration. After you click the Data Push option, for example, basically all non-Exception type errors will be caused by the ECK web service and you’ll have to contact your aggregator to report those errors.

|The record set on the ECK web service |

|All records that you or your colleagues upload to the ECK will end up in a record set that |

|divides the records into two groups: the ones that are Ready to be pushed to the aggregator |

|because they have been “commited”, which means they have been validated and possibly converted to|

|the EDM format (if that, instead of LIDO, would be the XML format required by the relevant |

|aggregator) and the ones that are not ready because they haven’t been validated and/or commited |

|yet. This division provides the condition for a unique, albeit confusing, characteristic allowing|

|any record to be present in this record set twice, once with the Ready status and once without |

|it: however, a duplicate record will only be visibly listed in the record set once! The Status |

|column will display the validation status of the newly uploaded version of a record if an older |

|version of the record is present as well, while the Status column will display the validation |

|status of the only available version of a record if no newer version is present. The Ready column|

|on the other hand, will display the status Yes for a ready record that has no competition from a |

|newer upload, while it will display Yes (old) if there’s and “old” record version ready to be |

|pushed to the aggregator while there’s also a newer, different or deleted version of the record |

|in the set, which hasn’t been commited yet. |

|If you never upload a record more than once, this situation will surely never occur; neither will|

|it if you never mark the Don’t make the records ready (update only) option in the wizard when |

|uploading data. Normally, you’ll upload a record only once and even if you accidentally upload |

|the same record twice, it will overwrite the existing version of the record in the record set on |

|the ECK web service (if validation succeeds and the record is automatically commited, that is). |

|The exception to the rule, causing two versions of a record to be present in the set, is when you|

|upload a record more than once while having marked the Don’t make the records ready (update only)|

|checkbox in the wizard, or when you upload a record more than once and find it doesn’t pass |

|automatic validation the second time. |

| |

|Having two versions of a record in the record set is no problem but you need to be aware of the |

|consequences if it does occur. As mentioned above, the way to tell if a record is present in the |

|record set twice, even though it’s only listed once, is if the Ready status of that record reads |

|Yes (old): |

|When you push data, only data which has the Ready status Yes or Yes (old) will be pushed. If you |

|want a newly uploaded copy (or maybe an altered version) of an earlier uploaded Ready: Yes (old) |

|record to overwrite it, you simply have to (Validate and then) Commit the selected record via |

|these options in the Europeana set manager. The new version of the record will overwrite the old |

|one and only one version of the record will remain in the record set. |

|If you delete one or more records from within the Europeana set manager, using the Delete option |

|in the right window pane, both versions of double records will be deleted from the record set. |

|On the other hand, if during upload of a second version of a record you had marked both the |

|Delete existing records from the set and the Don’t make the records ready (update only) option, |

|then you can tell from the Status: Deleted and Ready-ness Yes (old) of all pre-existing records |

|which you haven’t uploaded again just now, that even though these records have now been flagged |

|as deleted, the deletion hasn’t been commited because of the update only option. So here too, Yes|

|(old) indicates that there still is an old version present in the record set, ready to be pushed |

|or commited. If you Commit, all Ready: Yes (old) records flagged as Deleted will indeed be |

|deleted this time. |

|Of the selected record, the Preview option in the right window pane of the Europeana set manager,|

|displays the latest uploaded version, even if an older Ready version is present as well. |

|If there’s only a single version of the record present in the record set, then of course this |

|version will be used in the preview. |

3 Configuration

The two Europeana upload buttons in the Adlib interface can only become active if a correctly configured europeana.xml file is present in either the Adlib executables folder which contains adlwin.exe or the folder in which the .pbk file of the currently active application resides.

Further, if certain users need to be shielded from using the upload functionality, you can do so by adding the Upload records to Europeana method to all relevant data sources in your Adlib application structure, after which you set the appropriate access rights for it.

[pic]

You can edit the europeana.xml file manually via a text editor or manage these settings in Adlib Designer.

The following ECK configuration settings are available:

| |The URL of the Europeana Connection Kit (ECK) web service. This |

|ECK location (URL) |is currently hosted by Knowledge Integration Ltd (k-) but|

| |anyone is free to download and install the ECK on their own |

| |server. Example: |

| |This is the path to the AdlibXML-to-LIDO tranformation XSLT |

|LIDO stylesheet path |stylesheet. Example: F:\adlib\xslt\adlibXML2LIDO.xslt |

| |This is the provider ID. It's used by the ECK to tell the |

|Provider |various providers apart from each other. From a technical |

| |perspective this value is used to construct the correct ECK URL.|

| |The setting is also used during the Persistent Identifier (PID) |

| |generation for LIDO record IDs. Every LIDO record needs a PID. |

| |Example: DSOM |

| |This is the provider description. It's currently not being used.|

| |These settings are used to resolve the image URLs in the final |

|Full image URL |LIDO XML. The magic marker %data% will automatically be replaced|

| |by the image file name. There's a setting for the full image and|

| |one for the thumbnail. Examples using a wwwopac.ashx image |

|Thumbnail image URL |server: |

| | |

| | |

| | |

| | |

| | |

| | |

| |Push settings. See |

|Provider Identifier | for |

| |more information. You would receive these settings from your |

|Collection Identifier |aggregator. Because the ECK is not necessarily hosted by the |

| |aggregator, the pushProviderId can be different from the |

|Username |providerId. Example: |

| | |

|Password |DSOM |

| |DSOM |

| | |

| |fredrik |

| |A789dIUU |

| |The URL of the receiving SWORD server. SWORD is a protocol used |

|SWORD server URL |by the ECK to transfer data to the aggregator. Example: |

| | |

| |sword |

| |This can be either EDM or LIDO. Some aggregators prefer one |

|Data format |format over the other. The ECK can send both formats to the |

| |receiving server. |

[pic]

In Designer you can edit an existing europeana.xml file or create a new one. A new file can be made as follows:

1. Open your Adlib system in the Application browser of Adlib Designer.

2. Right-click the folder of the application from which you’d like to have access to the ECK (xplus for example) and select New > Europeana Configuration File in the pop-up menu.

3. The new configuration file will be created and it will appear underneath the Adlib .pbk file (or below the list of data sources if the application structure has been folded out).

[pic]

4. Now you can enter all settings without having to work with the XML file. For more information about these settings, see the description of the ECK configuration settings in the table above.

5. Click Apply to store the changes. If you leave this settings tab without clicking Apply, Designer will still ask if you’d like to save your changes.

An earlier created europeana.xml file present in the application folder can be opened here as well, to edit the existing settings.

Do copy the new or edited europeana.xml file to the folders of the desired other applications or move it to your Adlib \executables folder (if you’d rather manage the one copy) so that Adlib can make use of it. When Adlib looks for a europeana.xml file, it will do so in the folder of the active application first and only when it can’t find the file in there it will search the \executables folder.

20 Forcing identical terms in different domains

[pic]

Previously, when you used Adlib Designer to import an existing term into a linked field with a fixed domain other than any domain already associated with the term registered in its authority database, the new domain would automatically be added to the existing term record.

This is not always what you want though. Sometimes you would like to have the option to force a new linked term record for the identical term* and have the new domain associated with the new term record only. For instance, suppose you have an existing authority record for the term “bank” with the associated domain “furniture”. Now, if you were to import or enter the term “bank” in a linked field with the fixed domain “financial institution”, you would surely want to create a new linked “bank” record with the “financial institution” domain, instead of linking to the existing “bank” record associated with two different domains.

This option has now become available in Adlib Designer.

In Adlib Designer you’ll find the new Always create new domain records option on the Options tab in the Import job editor. Mark this checkbox to make sure that whenever an existing term is imported into a linked field with a domain different from the domain(s) for the already present term record, a new linked record will be created for that term, with the new associated domain. For an existing term without domain, the imported term will also be stored in a new record.

Note that the ability to create new records also depends on the Forcing always allowed and Process links options on the same tab.

* Duplicate terms in authority databases like the Thesaurus or Persons and institutions are only allowed if the indexes on the relevant fields can index non-unique keys as well. Typically this is the case when the internal links in these databases in your application are linked on reference (record number), not on value (although indexes on reference-linked internal links may still have been set to unique). By default, internal links on reference have only been implemented in our model applications 4.2 and higher. Further, the new option to have duplicate term records created, is offered regardless of whether indexes are indeed non-unique: if they are unique, regular error messages will inform you that the entered or imported term has to be unique. (Ref.no: 6051)

21 External translation of application texts

The Translations manager of Adlib Designer allows you to view, edit and/or translate all interface texts of your Adlib system in one overview (except for the Help files). The data in your database cannot be accessed this way. The files that can be opened in this tool are application structure files (.pbk), database structures (.inf), screen files (.fmt) and system text files (.txt). From these files, the texts you can edit and/or translate are message texts, button and screen field/box labels, enumeration texts, method (access point) texts, data source list texts, screen titles, application titles, and field names. All these texts can be edited or translated into as many languages as you wish to make available to users. (See the Managing translations topic in the Designer Web Help for more information about this tool.)

In Adlib Designer 7.1.13323.1, new functionality has been added to this tool. The new functionality is accessible from the File menu in the Translations manager: Import from file and Export to file.

[pic]

This functionality allows you to:

• export the currently loaded application texts in selected interface languages to an XML file;

• import an earlier exported and edited XML file into the currently loaded files and overwrite or insert one or more (newly) selected languages in the process.

The advantage here is that a single XML file containing all application texts to be edited or translated to a new interface language, can easily and safely be exchanged between your company and an external translator, because the translator no longer needs to have access to the application structure files. The translator can do his or her work by simply editing the XML file itself in a text editor. The resulting file can be sent back, after which you can import it into the actual application to update the relevant texts.

Let’s use an example to clarify things:

1. In Designer, select the main Adlib folder of your test environment to work in, using File > Change working folder.

2. Open the Translations manager, from the menu or the toolbar. If the window opens empty, load your application texts into it using File > Add application folder. If later on you want to export as many texts as possible to be translated, then mark all checkboxes in the Open folder with Adlib texts dialog.

[pic]

[pic]

3. When texts have been loaded into the Translations manager, click File > Export to file to open the Export translations window. Select the languages of the application translations you wish to export (for the translator to translate) and include the language(s) into which a new translation must now be made. Let’s use Hebrew for example. (English will always be exported, whether you mark the checkbox or not, and is used to match new translations to the correct Adlib objects when importing the edited XML file later on.) Exporting means that the application texts in the selected languages will be copied to a special XML file: as of yet, nothing will be changed in the original Adlib files from which the texts are exported.

Then click the … button behind the Export to file entry field, to select a folder and enter a file name for the XML file to be generated.

Click OK to start the export.

[pic]

4. Look up the XML file on your system and double-click it to open it. It will be structured like the example below. Note that because we’ve included the language still to be translated, empty XML tags for this language (Hebrew in this example) are present in the XML file, making it easy for the translator to insert the new texts.



Access

Toegankelijkheid

Restrictions d'accès

Access conditions

Raadpleging

Conditions d'accès

access_category.notes

toegangscategorie.opmerkingen

conditions_d_accès.notes

Accession

Inschrijving

Inscription

Accession analysis

Inschrijvingsanalyse

Analyse d'inscription



5. After editing/translating the file in an appropriate text editor, the translator should return the file. (Note that the English texts must not be edited in any way.) For example:



Access

Toegankelijkheid

גישה

Restrictions d'accès

Access conditions

Raadpleging

תנאי גישה

Conditions d'accès

access_category.notes

toegangscategorie.opmerkingen

גישה_סיווג.הערות

conditions_d_accès.notes

Accession

Inschrijving

הצטרפות

Inscription

Accession analysis

Inschrijvingsanalyse

ניתוח הצטרפות

Analyse d'inscription



6. Open your application folder in Designer again and in the Translations manager load all the application texts that you originally loaded for export. Only the actually loaded texts will be updated, by means of the match between the English translation in the loaded texts and the English translation in the imported file.

7. Click File > Import from file to open the Import translations window.

[pic]

Mark only the language(s) of the translation(s) with which you want to update your application files. The texts in the selected languages will be overwritten by the relevant texts from the XML file; the other present translations in the application files will remain unchanged.

Click OK to import the new translations.

8. In the Translations manager you can now check that the new translations have been added correctly.

[pic]

9. Remember to save all affected application files when you close Designer.

22 Adapl data preprocessing for label printing

When you print labels using the File > Print label option in Adlib, you print to printer-specific labels (using printer-specific templates, not Word templates) which may contain fixed texts, barcodes and field data from your Adlib records. From Adlib 7.2 it is possible as well to have a custom adapl preprocess any record data before a label is printed, similar to how you can use an adapl to preprocess data before printing to a Word template (although you never explicitly call the label template nor set the label template as an output format). You could use this functionality to have more control over how names of persons or institutions will be printed on your labels, for instance by dynamically limiting the length of data to be printed or to rearrange the order of printed details depending on what data is actually present in the record. All functionality of ADAPL is at your disposal.

1 Adding an adapl reference to the label template

Suppose you have the following Zebra printer label template to print an address:

CT~~CD,~CC^~CT~

^FX%title:Address label 12pt%^FS

^XA~TA-5274310~JSN^LT10^MN^MTD^PON^PMN^LH0,0^JMA^PR268447781,268447781~SD12^JUS^LRN^CI0^XZ

^XA

^MMC

^PW812

^LL0529

^LS0

^FT63,413^A0N,34,28^FH\^FD%field:postal_addr_street%.^FS

^FT63,374^A0N,34,33^FH\^FDt.a.v. %field:salutation% %field:initials% %field:last_name%^FS

^FT63,334^A0N,34,31^FH\^FD%field:name%^FS

^FT63,453^A0N,34,33^FH\^FD%field:postal_addr_postcode% %field:postal_addr_place%^FS

^FT63,492^A0N,34,33^FH\^FD%field:postal_addr_country%^FS

^PQ1,1,1,Y^XZ

Now if you’d like to have some adapl you wrote executed before each label is printed, you’ll have to include a reference to it in the template. You can do that in two ways:

• You can add a line like the following anywhere in the template (although inserted as the third line would be nice here):

^FX%adapl:..\\adapls\\myadapl.bin%^FS

• Or insert the part between ^FX and ^FS in the already present comments section, like so: ^FX%title:Address label 12pt%%adapl:..\\adapls\\myadapl.bin%^FS

Do of course change the name of the adapl to the name of your own adapl and note that the path must be relative to the Adlib application folder containing the adlib.pbk file. Also observe that every backslash in the path must be escaped by doubling it.

Save your edited label template and restart Adlib when you are ready to test your work.

Note that if for printing the adapl cannot be found, an error message will be displayed and no labels will be printed.

2 Writing a preprocessing adapl for label printing

Let’s look at an example adapl to get you started. Assume the name field included in the template above contains person names in the format ‘surname, first name’, and you would like to reverse this to ‘first name surname’ using an adapl. You could write the following very simple adapl to handle this:

* this adapl reverses 'surname, first name'

* to 'first name surname'.

%1 = name$(%1)

end

Please note the following:

• In this particular example the name field has field tag %1. Your own application could have different field names and tags.

• The ADAPL name$ function reverses a name if a comma appears in it. In this case it takes the value from tag %1, reverses it and temporarily stores it back in the tag. The reversed value is not stored in the database record, it is just present in memory for the moment.

• This adapl will be executed for every marked record in your selection, so when the adapls runs it has direct access to all field tags in the currently processed record (without the need to use FACS).

• Even though the adapl changes the contents of a field tag while the label template contains field names, Adlib will match the tag to the proper field name before printing, so when the name field is printed, the altered contents of tag %1 will actually be printed.

• In the label template you can use field tags instead of the English field names if you find that to be more clear, but you can’t use tags starting with a percent character. So in this example you would not be able to replace %field:name% by %field:%1%, for example, but you could replace %field:postal_addr_postcode% by %field:pc%, for example, if pc were the tag of the postal_addr_postcode field.

• You can use temporary tags in your adapl and template. Suppose tag xx does not appear in your database, then in your adapl you could fill this temporary tag with any value you like, include the tag in the template like you would with a normal field name or tag and the value will be printed. For example, to fill tag xx with today’s date, add the following line to your adapl: xx = date$(8)

Don’t forget to recompile your adapl and to actually include the tag in your label template too to get it printed.

This temporary tag won’t be stored in your records.

Further note that it is good practice to define temporary tags in the data dictionary of the relevant database, even though you won’t be storing anything in those tags permanently. The reason is that when you decide at a later time to add some new fields to your database, you won’t accidentally introduce tags that are already in use as temporary tags in adapls.

To learn more about creating printer-specific label templates, see chapter 15.11 in the Adlib User Guide. ADAPL programming, on the other hand, is explained in detail in the Designer web Help.

23 ADAPL function for locking fields

[pic]

Matching the Adlib Lock field for editing function (see chapter 12.10 in the Adlib User Guide), 7.2 offers the lockfield (tag, occ, language) function in the ADAPL programming language, in which tag must be the data dictionary field tag of the field to be locked, occ the occurrence number of the field occurrence (1 or higher) to be locked, and language should be provided in the form of an IETF language code like 'nl-NL' for Dutch or 'en-GB' for British English (also see the “Using Language Identifiers (RFC 3066)” document which can be found on the internet).

Result = LOCKFIELD(tag, occ, language)

Arguments

result, occ: integer

tag, language: text

All lockfield() arguments are mandatory. If the relevant field is not multilingual or if it is a multilingual linked field or you want to lock all languages of a non-linked multilingual field at once, then use the string '0' (a zero between single quotes) instead of a language code.

The function returns an integer error code: 0 if successful or a different value if an error has occurred.

An example of an application is when you’d like to import data from a previous and/or frozen system, data which should be protected from editing after the import: the new function allows you to lock the relevant field occurrences during the import.

The functionality to lock fields is only available for Adlib SQL and Oracle databases. (Ref.no: 6443)

24 After-read adapl option for import jobs

Besides the regular import adapl setting on the Options tab of an import job in Designer 7.2.14286.3 and higher, you can also set an adapl which will be executed a little before that, namely before any update process will be started, but still after reading the record from the exchange file and the mapping of the source fields to the target fields. To this end, the old Adapl procedure option has been renamed to Storage adapl (which will only be executed just before storage of the target record) while the new After read adapl option has been added. Both settings are optional and in both cases it concerns custom adapls which have been written especially for your import job.

[pic]

So the after-read adapl will be executed before any update process. This means that if you have set an Update tag for the import job, this adapl will be executed before the import procedure uses the update tag to search for an existing target record to update. You can use this fact particularly to preprocess the value which will end up in that update tag, an object number for instance. This may be necessary if the relevant data (object numbers in this example) in the exchange file has a different form than that data in the target records. Sometimes the source data may contain field data from which object numbers have to be extracted first, because there’s other data in the field too, or it is necessary to put object numbers together from data from multiple fields in the exchange file before they match object numbers in the existing target records. You can use the after-read adapl to actually do that processing. This adapl can in principle be programmed in the same way as the Storage adapl for an import job.

The after-read adapl will be executed with execution code 27, that is to say: &1=27. You can request such an execution code in the adapl itself if you wish to use the adapl for multiple goals and you want to have one piece of code executed just after reading the exchange record and another piece of code before storage. That way you’ll only have to write a single adapl which can be set in both options.

25 New reserved ADAPL variable &6[7]

The new ADAPL reserved variable &6[7] will contain the English name of the data source the user is currently working in. The name and its exact spelling will be obtained from the application definition file (.pbk) of the currently run application. That means &6[7] cannot be used in stand-alone adapls or in Step 1 of the Search wizard: in the first case there will be no current .pbk while in the second case the user will not have selected a data source yet.

Note that all databases and datasets listed in Step 1 of the Search wizard are called data sources. Data source names have been set in the .pbk while database and dataset names have been set in their own database definition files (.inf). (Ref.no: 6509)

26 Adlib startup option for data language

To have your multilingual Adlib application always start up in a preset data language, 7.2 allows you to use the –d command-line option. For example, insert –d en-GB behind the path to adlwin.exe in the Target of your Adlib shortcut to have the application always start up in the English data language. For example:

F:\Adlib\executables\adlwin.exe –d en-GB

3 Other improvements

In 7.2 the following functionality has been improved:

1 Display

1. Read-only access rights on the \data folder caused Adlib to ignore application access rights. When read-only access rights were set in Windows Explorer on the Adlib \data folder, then Adlib ignored any access rights specified in the application and automatically applied read-only rights to all fields in the databases. This was wrong, because application-defined access rights can be more restrictive than read-only. (Ref.no: 3314)

2. Only the first 79 characters of a screen field label were displayed on screen. When you created a screen field label that was longer than 79 characters only the first 79 characters were displayed on screen, even though the Screen editor in Designer doesn’t limit the length of the label. (Ref.no: 6119)

3. Scrolling through a large number of records (over 70000) was not possible. Scrolling on the brief display through a large number of records was not possible. The scroll bar would jump back to the beginning. (Ref.no: 6273)

4. The Derive button didn’t show the drop-down menu when it had been added to the Quick access toolbar. When the Derive button was added to the Quick access toolbar, the drop-down menu containing the derive options didn’t appear when the button was clicked. It was impossible to derive a record using this button. (Ref.no: 6278)

5. After closing a zoom screen, sometimes not the original record was shown but the one that was linked as 'part of'. After opening a Parts record B from record A (by clicking the Parts field on the Number | Relations tab in an object record) and subsequently opening a zoom screen by clicking the Collection field on the Identification tab and then closing it, you didn’t return to record B (from which you opened the zoom screen) but to record A (the part-of record of record B). (Ref.no: 6288)

6. Several buttons in the ribbon were displayed as if they were active but didn't actually work when the Pointer files window had been opened. Several buttons in the Adlib menus weren’t greyed out after you had opened the Pointer files window, and other buttons were active but didn’t do anything anymore. In the File menu, the Import, Export and Images buttons weren’t greyed out; in the Start menu, the Restart, New, Advanced search, QBF and Derive buttons no longer worked although they were displayed as being active; and also in the Start menu the Pointer files button should have been greyed out. (Ref.no: 5920)

7. The Hierarchy browser showed the wrong data when using a zoom screen. When you had opened a record and displayed the Hierarchy browser, clicking an underlined term to open its record in a zoom screen and then clicking its broader term in the zoom screen made the Hierarchy browser change its content to that of the linked database, instead of persisting in displaying the hierarchical contents of the primary database. (Ref.no: 4891)

8. The status bar sometimes stated: 1 record flagged, although no record was marked. In some circumstances, the status bar displayed the message: 1 record flagged, although no record had been marked. You could even use the Write set function, which resulted in a pointer file with zero hits though. If you actually marked individual records, the status message wouldn't be updated. (Ref.no: 6085)

9. Opening a zoom screen for a term linked on value while the term record didn’t exist, yielded two error messages. When a linked field was linked on value (not on link reference) and this field contained a value for which no linked record was available, then when you clicked this term in the record in display mode to open a zoom screen, two error messages were generated instead of just one. (Ref.no: 6088)

10. The $role constant for screen conditions only contained the first role assigned to a user. A user can have more than one role, but the $role constant for screen conditions only contained the first assigned role, so that a screen condition would not be evaluated correctly if it had been made for any user role but the first. (Ref.no: 6448)

11. A second zoom screen hid behind the first. When in display mode you opened a zoom screen to a linked record and in that zoom screen you clicked another linked term to open a second zoom screen, then the second zoom screen was opened behind the first. (Ref.no: 5698)

12. In RTL mode the record navigation buttons were swapped while their functionality remained the same. In right-to-left entry mode the arrow buttons to navigate to the first, previous, next or last record in the search result were swapped but the functionality behind each button remained the same. However, RTL mode users associatie “forward” with an arrow pointing left and “backward” with an arrow pointing to the right, so this fix restores the normal arrangement of these buttons in RTL mode but swaps their functionality. (Ref.no: 6399)

13. Hebrew field name wasn’t correctly displayed in Edit data for multilingual field… window caption. If you started a 2.0.6 (or comparable) Adlib application in RTL mode with the interface language set to Hebrew and in a multilingual Title field you opened the Edit data for mulilingual field… window, then the Hebrew translation of the title field name in the caption of this window was displayed incorrectly. (Ref.no: 6340)

14. A language switch sometimes caused interface texts to be shortened. If you switched interface languages in the advanced search system or in a Query by form and went back to the Search wizard, you would find that names of databases and access points were displayed shortened (cut off after a few letters). (Ref.no: 4480)

15. No text underneath last row of images in Thumbnails brief display. When you scrolled to the bottom of a large search result on the Thumbnails tab of a brief display, the bottom row displayed thumbnails but no accompanying text underneath it. Without a thumbnail for a record it seemed the record wasn’t even there. (Ref.no: 4835)

16. Opening a zoom screen from another zoom screen opened it behind the first zoom screen. When you had opened a first zoom screen and clicked an underlined value in that zoom screen, then the second zoom screen opened unnoticeably behind the first one. You had to move the first zoom screen to see the second one. (Ref.no: 6477)

17. A field suppress condition like C1 = 2A didn't work because one of the tags started with a digit. In field suppress conditions, tags starting with a number were not recognized as tags but instead were interpreted as text. (Ref.no: 6621)

18. Thumbnails with diacritics retrieved via wwwopac.ashx weren’t always displayed. Thumbnail images with diacritical characters in their file names were not displayed on the Thumbnails and Filmstrip tabs of a search result in Adlib, if those thumbnails were retrieved via wwwopac.ashx. (Ref.no: 6176)

2 Searching

19. Using a QBF in a SQL database and searching on a non-preferred term resulted in no records found. Using a Query by form in a SQL database and searching on a non-preferred term resulted in no records found because no preferred-term substitution was applied. (Ref.no: 5348)

20. Searching a CBF database on priref returned Record has just been deleted for every record. Searching a CBF database on record number displayed an (incorrect) Record has just been deleted messsage for every record in the search result that you double-clicked. (Ref.no: 5901)

21. Searching with a QBF used the broader term of the entered value and returned all narrower terms of that term. Searching with a Query by form used the broader term of the entered value and returned all narrower terms of that term.

With the fix, you now search on the entered term, but on any narrower terms of the entered term as well. (Ref.no: 6225)

22. Date range search results weren’t always correct. Records with various dates that should have been returned in the search result, weren’t, and vice versa. (Ref.no: 6258)

23. The Use relations checkbox wasn’t present for alpha-numeric access points. When the index for an access point was of the alpha-numeric type, the Use relations checkbox in Step 3 of the Search wizard (applies only to SQL databases) wasn’t available when you searched on this access point. (Ref.no: 6224)

24. Searching an article on source title returned an error 121 on parent-child relation when the parent record's title started with the same word as the source title of the article. When an article was linked to a serial using the source title link and also linked to a book in a parent-child relation, while the title of both the book and the serial started with the same word, then when you searched the Articles dataset on that particular word in the source title, Adlib would return an error 121 on the parent-child relation. (Ref.no: 6316)

25. Displaying the term list in the Find data for the field window for the first time, took a while. When you pressed Shift+F4 in the a linked field for the first time after starting Adlib, it took a while before the Find data for the field window was filled with the term list. (Ref.no: 6289)

26. Truncated searching with a QBF did not retrieve all relevant records. Truncated searching with a Query by form on a partial word did not retrieve all relevant records. The behaviour was unpredictable. (Ref.no: 6507)

27. No non-preferred term substitution in SQL. When you searched on a non-preferred term in a SQL database, using the advanced search language in Adlib, then no records would be found because the non-preferred term would not have been substituted by the preferred term. (Ref.no: 6360)

28. An advanced search with the “ ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download