Stephen Auriemma is one of the key composite application developers in the Notes team. Below he describes an important new feature that we're trying to get in 8.0.1 and that he implemented. This feature allows refering to different NSFs from composite applications in different environments as I blogged about some time ago. While the tooling aspect might not be optimal yet (e.g. we could have @Formula editor in CAE), the new capability is very powerful at runtime.
The links to the NSF components (the Notes:// URLs) in a composite application (CA) typically change between development environment and production environment. As a result the CA breaks when the CA is deployed to production environment. In addition there are time when a dynamic NotesURL can be used to customize a CA at runtime based on the role or rights of the user. For Notes 8.01 we we plan to add two new preferences CA XML com.ibm.notes.ComputedNotesURL and com.ibm.notes.ProcessOnlyOnUpdate described below.
1. The preference com.ibm.notes.ComputedNotesURL can be set in the advance tab of CAE to a value that is a macro of @functions that resolves to a Notes URL that will be added as a notesurl preference to the cached CA XML.
The following preference:
Would result in the addition of this preference to the cache:
A better example:
The following preference demonstrates how access a profile document:
*The examples are the raw CA XML and contain encoding. The Advanced Component Properties dialog in CAE will encode the characters ("e;&) for you.
2. This preference com.ibm.notes.ProcessOnlyOnUpdate can be set in the advance tab of CAE to a value of true or false.
A value of true (default) would indicate that the CA XML cache will be recomputed only when the CA XML design note is updated. A value of false would indicate that the CA XML cache will be recomputed each time it is requested. By default CA XML cache is only updated when the CA XML design note is modified. It is worth noting, that moving the Composite Application CA to a new location (such as to deploy the CA) will result in a new CA XML cache for the user.
The preference 'page level access' will override the preference com.ibm.notes.ProcessOnlyOnUpdate. For example if 'pagelevel access' is turned on we always return the CA XML even if the setting com.ibm.notes.ProcessOnlyOnUpdate is set to true.
Would result in the CA XML cache getting recomputed and updated each time a request for the CA XML was made.