12-11-2009

Composite App frustration - how to start categorized views blank

Category Composite Applications
At work we are in the process of creating a Composite Application interface for our Document Management product.
And we have experienced a really annoying problem.

This is using Lotus Notes  8.5.1. And everything is NSF components.

Our Composite Application consists of four components. One form and three views.
The components are meant to navigate a document hieararchy tha looks like this:

Person Document
- Person case 1
-- Document 1.1
-- Document 1.2
- Person case 2
-- Document 2.1
-- Document 2.2
- Person case 3

So we have one person document. Linked to this document we have a number of Person case documents. And linked to a Person case document we have a number of Documents.
In our old interface we present this with twisties in a view.

We now - for the Composite Application - have three view components:
  • one component that displays a view of Person Documents
  • one component that displays a view of Person case documents
  • one component that displays a view of Documents

For starting off the browsing of the application we have a form where you can type a Person name and hit a button. The button activates a wire, sending the Person name to the Person Document component.
The Action in the Person Document component limits the display of documents in the view by using the built-in action "Filter view by category". The first column in the view contains Person names of course.
The two other view-based components work in the same fashion, showing a subset of the view content, filtered by using the Filter view by category action.

To start with we want the Composite Application to display blank views. This can be done by feeding the View-based components values that do not match any categories in the views. This works fine.
Just not all the time.

On our start-form - the one that accepts a Person name - we have some code that feeds dummy values to all three view-based components. This code is fired in the PostOpen event of the form. The dummy value is fed to the Filter view by category action on each View-based component.

And here is the problem. For some views, the dummy value-feeding works, for some it does not.
And we get the feeling that the problem lies with the order that the components load in when the Page gets rendered initially when the user opens the Page. The Form that sends out dummy values loads before some views, the PostOpen event sends dummy values down the wires, but some views are not loaded yet and they do not receive the dummy values.

Very frustrating.

I don't like what we are doing here in the first place. What I would prefer to do is to have the view-based components start off with some default values for the Filter view by category. Default values that would display nothing.
Or even better, I would like to have some way of telling the component to not even try to load view contents initially.
We have looked at what properties our View-based components have. There is one or two (like com.ibm.notes.viewCustomization.filterByCategory) that we have no clue about what might do but that actually could contain a fix for our problem, but Google has not been our friend yet. I wish that the documentation of what properties are available and how to use them was available. Preferably in one place.

25-09-2009

Notes client Multi page Composite App - how about performance

Category Composite applications
My good coleague Mounir helped me get data and answers for some very important performance-related questions when running a Composite Application in the Notes client. A Composite Application consisting of multiple pages.

The question was this:
We have a Composite Application consisting of two pages.
On Page 1 we have view A.
On Page 2 we have view B.
There are no wires between the two pages.
This is all Notes, Domino and NSF.

When I open up the application which starts on Page 1, I know that the client will retrieve the Design Note and view content (data rows) to display view A. But will the client also retrive the Design Note and content for view B?

My colleague did some NRPC-measurments - making the client log NRPC traffic. He had a look at the data and found the answer and also something unexpected.

The answer was no. When the client opens up Page 1, it totally ignores the content on Page 2. It does not even retrieve the Design Note for the view on the second page.
Good.

And then there was the unexpected bit of information.
When Mounir switched to Page 2, of course he saw NRPC traffic, retrieving the Design Note and view content.
When he then switched back to Page 1 he saw no NRPC traffic at all. He had expected to see NRPC traffic retrieving the view content again, but that did not happen.

The answer to the question I had was relevant because we are in the process of re-designing the User Interface of an application that has thousands of users, and we will probably be needing lots of pages (10 at least, maybe 20) in the samme Composite Application. We wanted to make sure that the client did not welcome the user with a 2-minute lockdown while it would be retrieving Design Notes and data content for all those pages.
So, that's one worry less.

The extra bit of information we got is good news. The application we are re-designing contains quite a lot of views and 100.000 documents. Today when users switch back and forth between two views, they hit the server each time they do the switch. In a composite application, if we create an interface where each view is on a separate page and we then have a user switching between two pages, they only hit the server once for each page, unless of course they start interacting with the views or with components that activate the view.

16-09-2009

Composite Application Editor will not edit Page Properties - you're hosed

Category Domino designer Composite Applications
A colleague and I have within a couple of days both seen this in the Composite Application Editor:
A picture named M2
If you see the same thing in your CAE, you are going to spend some time repairing your Lotus Notes 8 client.

Let me explain what's wrong with this picture.
If you are in the CAE and you right-click a Page and select "Edit Page Properties" and then click the Advanced tab, it is supposed to look like this:
A picture named M3
You see a list of Page properties. You can click Add to add new properties, you can click Edit to edit existing properties.

In the first screen dump, the list is empty and clicking the Add or Edit buttons displays error messages. There must be some kind of corruption in the CAE that has happened when this phenomenon shows up, because if you open up the same Composite Application with a CAE from a different workstation, you are still able to edit the properties.

My fix for the problem was to de-install the complete Notes client, delete my local Notes Data directory and the re-install. Takes hours to do. I will now start doing my Composite Application development in a VmWare image, making sure I have a backup copy of the image to roll back to.

Does anyone know of a quicker way of fixing the problem?

Translation

Jens vægt-o-meter

12/08-06: 96,9 kg
14/10-06: 90,1 kg
14/08-07: 94,3 kg
07/11-07: 88,9 kg
09/11-08: 96,3 kg
03/02-09: 93,6 kg
09/08-09: 96,7 kg
30/12-09: 89.6 kg
25/01-10: 88.9 kg
09/03-10: 87.3 kg
31/03-10: 86.3 kg
26/08-10: 94.2 kg

MiscLinks

geocaching

Profile for jbruntt

Visitors