Domino Designer : Locked design element problem

Hi there,

by chance I found out, that it is unfortunately possible to refresh a Notes database with a template file that contains several desing objects that have a desing lock and thus are under construction.
Thus it can happen that the server refreshes automatically desing elments which are still under construnction (Design lock) will be refreshed into a productive DB. That can cause quiet some trouble !

Is that a bug of my Designer 12.0.2 FP6 on Win 11 or is that meant to be like this ?

Sincerly
Jochen "Joe" Herrmann

Hi joe

If for the particular design element , you have checked "Prohibit Design refresh to Replace or Modify", replace design will not change the locked elements. Have you done that besides Locking the design element.

please see screen shot below:

Hello @Rajneesh Sharma ,

thats right. That is a work around if there are only one or 2 productiv database of the template.

But you have to set this in the productiv DB, not the template db where you actually are developing. If there are more databases that inherit their design from this template you have to set this in all DBs as developer:

1. the right to change this in a productive design in each of these DB's concerned and
2. you have to keep track of all of them and don forget one to set ... and reset each element if done


Thats not really very effectiv and prone to subsequent errors , right ?

Kind Regards,

Joe

I would look at it as follows :

The lock design works in a manner that it can be changed only at the administrative server by auth designer access users. I would also hide database design before deployment at various servers. So the design now is under the control at the designated server. Whenever changes are made, they are passed on as templates with proper version numbers. So far so good.

Now, there might be some critical forms or views or other components which you feel should never change even if they changed in the dev template. These components could be those that integrate with third party systems or any other critical components. These are the ones for which you set the flag " dont replace or refresh......" . All other cases are served well with access control + lock design+ hide design.

Whenever such a template is used to replace design of active db , dont replace.... flag will get set where needed. But where the flag is already set in prod db, it wont change..

Hope this helps.

Regards.

Ps: did you check my reply on precedence of formname and aliases.?

Design locking is a method to prevent two developers from updating the same design element, not inheritance, so this is how I'd expect it to work.

If it's in the template then it should update any DB that inherits regardless of the design lock.

You can stop the databases from inheriting from the template by unticking "Database file is a master template" but I'd recommend doing any development work in a separate copy of the DB.

@Glen Urban

I guess we have different perspectives on this point.

If I work on a design element and lock it, then I assume that it is protected against another developer and that it is not in a half ready state spread around into other databases.

Yes I know that for this reason its a good idea to develope on a different server and in another DB, but his, unfortunately, is not always possible. And I just had such a case, thus I became aware of the problem. So back to square one.

I think it is not too difficult for HCL to simply exclude design elements, if there design is locked, in a design refesh. Would be effective and simple. Guess I will open an idea for it in HCL Ideas.

What do you guys think about it ?

Kind Regards

Joe

Won't putting yourself as the sole manager and designer for a template serve the same purpose?

We'll have to agree to disagree on this. I wouldn't welcome your proposed change as, for me, it would be working unexpectedly, and there would be the risk of developers accidently leaving a design lock on and breaking an application.

In your proposed change if someone created a new database from the template there could be missing design elements because a developer had locked them.

@Rajneesh Sharma

thanks for the reply.

Unfortunately it would not work for us. The support has to have also access to the template db.
And I, as a developer , do not have developer access to all productive DBs.

Kind Regards

Joe

What we follow is as follows...

Db is say Test.nsf

Template is Test.ntf

Dev work uses TestDev.nsf

After TestDev.nsf is ok , we save it as two copies, Test.ntf and TestVersion1.ntf, TestVersion2.ntf and so on.

Upload the Test.ntf on production server.

You always have all the versions numbered for the dev templates on your dev server. Solution to your issue would be a variation of this administrative procedure and not technical, till the idea you are proposing is taken up by hcl

By the way, did you test my reply on the issue of preference for form name or alias?

My idea is now in HCL Domino Ideas under

https://domino-ideas.hcltechsw.com/ideas

DDXP-I-1357

Since ideas must now first be approved by HCL, it is possible that it is not yet visible ... :-(

Kind Regards

Joe

Addendum:
https://domino-ideas.hcltechsw.com/ideas/DDXP-I-1357

Hi there,

at the moment I bend all ‘Inherit from the design template’ in the productive DB with a non-existent but unique template name (project number & date) to prevent it from being updated.

Not very efficient if a template has several productive DBs.

Joe

you may as well uncheck inherit design option.
Regards

Thanks Rajneesh,

yes that would work too. But then later nobody knows why it was set. If the referenced template for the design element is clearly a project number and Date its obvious.

Joe