|
||
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. |
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.
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.
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 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.
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.
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.
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 |
Ordinary Library (Templates, Stylesheets, Custom Types, Resources) |
Anywhere in the environment. |
In wizard when creating account |
|
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. |
Allow or Block the template from being used in new forms in the project. |
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.
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":
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.