Hi,
in my days i've been doing some mmore or less extensive API coding and when i saw this problem described i got a flashback from another, but similar, problem.
My theory is this:
If you look at a form with an embedded view (could be from another db) you will have several CD records inside the $Body items (can be several), one which is a "CDResource" structure with a signature of "Href2" (notepeek can't display this for what it is, it just shows binary data). This structure holds amongst other things:
FileHint (i.e database filename to elements which it points to)
ServerHint (i.e Servername where pointed-to element resides)
TIMEDATE (i.e replica-id for the pointed-to element (view) in the other database
Now, one would think that these values would get filled in the same way no matter if the element was local to the database or from another database. It does not. If the view comes from the same database when the TIMEDATE is undefined (0) and the filehint and serverhint are empty.
If it on the other hand points to a view in another database, then it can work in one of several ways (as i have noticed).
TIMEDATE can be filled in, giving the replica-id, and/or filehint/serverhint can have values. So far so good.
Now to the weird part: Somethimes after saving something embedded that points to another database (could be an embedded view or a shared image for actionbar backgrounds, or.....) TIMEDATE gets filled out ok. If you then start to change other parts of your form and save a couple of times, you'll notice that the TIMEDATE gets "broken" (notespeek says "invalid data" in red color).
Then how can the notesclient "know" where to locate the elements when TIMEDATE is broken? My theory is that it hides this problem for the user and do on of the following:
1) scans a number of key databases such as names.nsf, headlines.nsf, bookmark.nsf... and tries to locate the element there.
2) if it can't find it, then ignores it, not showing any view (or image) at all.
So perhaps when you click on the view and "activates" it, the client don't know how to handle it and tries desperately to find it somewhere (which is what takes time)..
A theory anyway :)
Kind regards
Daniel