Ideal development environment?

This is a question regarding how to set up a proper LN development environment so that changes can be migrated/released to production with minimum hassle (no borken doc links, overwriting user docs etc.).

Right now I am struggling with setting up a proper development path due to issues with doc links. I.e. doc links reference the incorrect document.

I have developed a LN database which is basically an online form with validations/approval workflow.

Part of the workflow function is to send out emails to users containing the link to the relevant doc in the database. Therefore the users only need to click on the doc link and perform their tasks (without having to understand that there is a database behind it).

The problem is that:

  1. users are using the production db every day

  2. doc links cannot change (need to keep same replica ID)

  3. many minor changes are required

I created a replica for development and kept it on a test server. Somehow, old doc links always tries to open up the development db in the test server. i.e. doc links refer to incorrect version of the database.

If I edit the live database on the fly, it is risky…

Any suggestions?

JJ

Subject: Ideal development environment?

doclinks will take a user to a replica of the db… which server it goes to based upon 1) when that user was last in the db, which server was that user last on, 2) for this db, which server does that user have an icon on their workspace (yep) and 3) which server comes up first when the user’s client starts looking (based upon Search Server setting in location doc and that server’s alphabetical listing in catalog in users mail/home server’s nab)

Bottom line: if you want to keep your users going to your production server and NOT your development server… uncheck, in the replication settings, replicate ACL and change the acl on your development server so that only developers are authorized to open it… everyone else ‘No Access’ - then each person’s client can only take them to the correct server. When the client sees the user isn’t authorized to use that one, it will skip your development server and keep looking for that replica on your other server(s).

Oh by the way, I know you didn’t ask about this however, if you’re making doclinks on the development server, that’s fine cause they will work in production as if you made them there… only caveat: if you expect the doclinks to work for web users, the filepath on the server where you made them must match the filepath in production. Like I said, this doesn’t matter for Notes Client users.

:slight_smile:

Subject: RE: Ideal development environment?

Thanks for the info. Doc links were a bit of mystery to me as it can often find replica on a different server (even if the doc link specified server A, it goes to server B).

One other thing is how do I migrate the developed code over to production?

If I simply replace the production db (same replica so doc link is ok), the data that the users may have entered during the mean time is lost …

Does this mean I have to schedule down time and copy the data from production db over to the development db?

Some of the changes are so small (and user wants it asap) that I don’t want to schedule downtime. One time LN gave up on me (just got strangely corrupted) during pilot that I am afraid to do anything without going through the development path.

Subject: RE: Ideal development environment?

Lookup templates in the help system.

You can make design changes in templates etc. and apply then to a database. This is one of the powerful features of notes, the design logic and display etc. is separate to the data.

Subject: RE: Ideal development environment?

Is templates for forms only?

I am changing shared code, database events, outlines, shared action, bit and pieces of the elements making up a LN db and wish to roll in the changes without downtime.

Subject: RE: Ideal development environment?

Templates can replace everything except the data.

Be sure to look in the Domino Designer Help, lots of great info in there.

Just search for “template”

A key one for you to read is titled:

Making and distributing design changes

Also the one titled:

templates

The Domino Designer help says the following for templates:

A template is a skeleton that contains design elements, but no documents. When you use a template to create a database, the template’s design elements are copied to the database created from that template. You can use the Designer templates as is or customize them. Or, you can create a template by creating a database with the NTF file extension and the “Database is a template” property. This property enables the master template to distribute design changes automatically to databases created from it. Databases that inherit their designs from master templates receive the latest changes through a nightly server task.

Subject: RE: Ideal development environment?

I did read the help. However, I was a little unsure what is contained in the “templates”. I am still not that familiar with the LN terminology.

I have code everywhere (including database events).

Is there a more comprehensive net resource on templates?

JJ

Subject: RE: Ideal development environment?

Hi Jon

Not sure if you ever figured this out but in non-technical terms… The template is where you create, update, and test all your forms, views, LN Code, etc. When you “refresh design” to your production copy it only refreshes the forms, views, LN Code, etc. It doesn’t change actual data. So anything the user was working on before will still be there. If you changed field names then the data could change but if you’re just updating code and changing views then the data that they were entering will not be changed.

You can refresh design several times if you need to without losing data. Sometimes if the user is in the db when you are refreshing they may experience replica/save errors but they should just close the db and reopen.

Hope this helps