User Guide and Reference

Library Advanced Features

Hide Navigation Pane

Library Advanced Features

Previous topic Next topic No directory for this topic  

Library Advanced Features

Previous topic Next topic Topic directory requires JavaScript JavaScript is required for the print function  

Overview

Library

 

As we have already seen above in The Hierarchy and Environment, an Account has Libraries and Organizations under it. Also, there are also special libraries called "Releases" and "Service Packs" which we will call here "Compatibility Settings"; but these are assigned to Organizations. Also, the Organization itself has its own library elements attached to itself. Here are the different Libraries and their locations:

 

Library Type

Location or Association

Compatibility Settings

Releases

Live above the Workplace structure.

Each Organization is associated with a particular release.

Service Packs

Live above the Workplace structure.

Each Organization may be associated with particular service packs.

A Service Pack is also relevant to a particular release.

Any Library that is neither a Release or Service Pack is termed an "ordinary" Library.

Ordinary Libraries

Native Libraries and Style Packs

Style Packs are Libraries packaged by Avoka Technologies. Otherwise, they are ordinary Libraries.

"Native" here means that the Libraries live in the Account, and are therefore already shared with the Account

Shared Libraries and Shared Style Packs

These are ordinary Libraries that live in other Accounts and which have been explicitly shared with this Account.

The Organization's Internal Library

Lives inside the Organization, not — unlike the other Libraries in the Account — as a separate Library entity under the Account.

The elements in the Organization's Internal Library affect all Projects in the Organization regardless of other settings.

 

Composer Account Administration

If you wish to carry out work on Libraries, you should consult the "Transact Composer Account Administration Guide". This is a handy reference on where to go in the Composer user interface in order to carry out such important Library-related tasks as:

 

Allocating users at the Organization and Project levels

Creating and importing libraries

Inspecting which libraries are available to Organizations

Assigning Libraries from other Accounts to an Organization

Maintaining Libraries and their contents (style sheets, templates, custom types and property sets)

Ongoing maintenance

Maintaining compatibility through revision maintenance of Organizations

 

The Administration Guide gives a number of tasks to be completed in order to make Libraries and particular Templates available to Project users. The rest of this topic below discusses the theory on how the stack of inheritance works and what its effects are. The administration tasks and the theory work together and both need to be understood.

 

How Libraries Relate to Organizations and Projects

There are 2 properties in the behavior of libraries that need to be understood here:
 

Visibility and

Inheritance

 

Visibility is the easier to understand. Inheritance then is a consequence of  visibility.

 

Inheritance is extremely important. It determines what templates are available at the form level and the style of each template at the Project level. Please refer to Inheritance Within Forms. especially the diagram showing how the inheritence of library components then affect the behavior of the form's elements.

 

Visibility

Ordinary Libraries at the Account Level

Ordinary Libraries — those not part of the Compatibility libraries  — are visible at the Account Level.

 

The rules for visibility for ordinary Libraries operate at the Account level and are:

 

Libraries that are live in an Account are visible to all Organizations in the Account. This includes Libraries imported into an Account via a package. ("Workspace -> <Account> -> Import Library or Organization link")

The Libraries of an Account can be explicitly shared (or not shared) with other Accounts. (Go to "Workspace -> <Account> -> <Library> -> Administration tab -> Library Share sub tab".)

 

Visibility means that the components of the Library, with the exception of templates, are shared by all Organizations and their children in the Account. Here, we do not include Administration (the configuration settings for visibility for users and Organizations) and Problems (a log of error messages for the Library).

 

Compatibility Libraries

Compatibility Libraries contain Releases and Service Packs; these are visible at the Organization Level. They are allocated at the Organization level in the wizard when a new Organization is created ("Workspace ->  Create New Organization link"). Compatibility can be changed later (via "Workspace -> Organization -> Change Release action button"), meaning that the Organization will point to a different set of compatibility Libraries.

 

So, the consequence is that different Organizations in the same Account can be compatible with different Composer versions and service packs.

 

The Organization's Internal Library

In terms of its type of contents, the internal Library is pretty much an Ordinary Library. But in terms of its effect, it is the most powerful of all the Libraries because it lies above the Search Path settings of the Organization.

 

Search Path Inclusion at Organization Level

When an Account is visible to an Account, either by virtue of belonging to the Account or by being shared, the contents of the Library still doesn't affect the Organization until it has been included in the Organization's Share Path. You specify the share path in "Workspace -> <Organization> -> Update Organization Details action button -> second screen of the resultant wizard".

 

Note: the choice of Libraries for search path inclusion is only between Libraries native to, or shared with, the Account.

 

Templates

Template availability operates at the Project level. Only Templates from visible, search path-included Libraries can marked "Available" to a Project.

 

Visibility Summary

Note: Visibility has to cascade down from the Account Level. Thus, for a Template to be allowed for a project, its Library has to be shared at the Account Level and put into the Search Path at the Organization Level.

 

Level

Object

Location

Method

Account

Ordinary Library (Templates, Stylesheets, Custom Types, Resources)

Within Account

Always Visible

In another Account

Shared with other accounts:

"Workspace -> <Account> -> <Library> -> Administration tab -> Library Share sub tab"

Organization

Compatibility Libraries (Releases and Service Packs)

Assigned to Organization through "Release Settings"

In wizard when creating account
"Workspace -> <Account> -> Create New Organization link"
 
or when updating Organization
"Workspace -> <Account> -> <Organization -> Change Release action button"

Ordinary Library (Templates, Stylesheets, Custom Types, Resources)

Anywhere in the environment.
Must be shared with the Account and included in the Search Path

In wizard when creating account
"Workspace -> <Account> -> Create New Organization link" and 2nd screen of the resulting wizard
 
or when updating Organization
"Workspace -> <Account> -> <Organization -> Update Organization Details action button", 2nd screen of the resulting wizard.

Internal Library

Is automatically allocated to every Project in the Organization.

Affects all Projects in the Organization and its settings overide all other settings.

Examine and populate this library through "Workspace -> <Account> -> <Organization> -> the tabs Stylesheets to Resources"

Project

Templates

Anywhere in the environment.
Containing Library must be shared with the Organization

Allow or Block the template from being used in new forms in the project.
"Workspace -> <Account> -> <Organization> -> <Project> -> Block or Allow this template to be used in new forms in this Project action button".

 

Inheritance

The Cascade

Stylesheets and Custom Objects now live in the Libraries, not in Templates. All Organizations now inherit all the Stylesheets, Custom Objects and Resources contained in the Compatibility Libraries.

 

This means that all users have access to all the objects in a release and that all the release's widgets will appear in the Form Editor's palette. (In fact, if you have the access, you can open a release and you will find that the widgets in the "Custom Types" tab, though you must check "Include non-editable types" to see them.)

 

So, there is a cascade of inheritance at the Project Level. which is where the Library visibility settings matter. Forms within the project inherit the Library visibility of their Project. The form inherits all the Stylesheets, Custom Objects and Resource, plus all of the allowed Templates, of all the visible Libraries.

 

Search Path Order

So, what happens when there is a conflict, for example stylesheets in different libraries with the same name? This is resolved as follows, moving through the stack of libraries from the least significant to number 1 in the Search Order and then to the Internal Library:

 

Compatibility Library -> Search Order Library n -> ......... -> Search Order Library 1 -> Organization's Internal Library

 

The Internal Library, therefore, lies at the top of the stack.

 

You set the Search Order in "Workspace -> <Organization> -> Update Organization Details action button -> second screen of the resultant wizard":

assignLibraries

Do note that where n > 2, the search order for the other lesser significance libraries may still matter because the element at the top of the stack may not specify every parameter and those that are not specified will be populated according to the order of values encountered in the stack.