When developing for different client versions, you have the problem that newer clients have more features than the older ones. For example, Notes 8.5.1 can use XPages or the Notes Document Container in a composite app, Notes 8.0.2 cannot.
If you're in an environment with different client versions, that leads to a problem: how to provide newer clients with, for example, XPages components while keeping backward compatibility to older clients?
To start an application with a XPages UI on a 8.5.1 client and a classic Notes frameset on older clients, you can use the following technique:
1.) in the composite application editor, create two CA pages:
a) one page with for example XPage components for the 8.5.1 client (let's name it "start-851")
b) another page with a NSF frameset component, showing the classic Notes frameset (let's name that page "start-classic")
2.) create a Notes page "starter" with a script like this in the postOpen event
Dim ws As New notesUIWorkspace
Dim session As New notesSession
If Not ws.IsInCompositeApp Then
Elseif session.NotesBuildVersion >= 368 Then
3.) create four Notes framesets:
a) a frameset named "Start" with ONE frame displaying the page "starter"
b) a frameset named "classic" with your classic Notes frameset (holding pages, view etc)
c) a frameset named "(ca_classic)" with one frame, showing nothing, connect the frameset to the composite app page "start-classic"
d) a frameset named "(ca_851)" with one frame, showing nothing, connect the frameset to the composite app page "start-851"
4.) set the db properties to start with the "Start" frameset
Then when opening the application the following logic is exectured:
- app opens with frameset "Start", holding the page "starter"
-> the postOpen of the page "starter" is executed
-> the postOpen event checks
a) if we are in a composite app -> if not, open the frameset "classic"
b) else: are we a client < 8.5.1? -> if yes, open the frameset "(ca_classic)"
c) else: we are 8.5.1 or later -> open the frameset "(ca_851)" with the new XPages UI.