Search

About Me

I am the "Lotus Technology & Productivity Advisor" for IBM Asia Pacific. I'm based in Singapore.

Ads by Google

Visitors

<-- img src="http://api.hostip.info/flag.php" border="0" alt="The country of your IP access" / > Visitors to wissel.net

« Syncing documents in 2 views | Main| 20 Easy Steps to Screw Up a Domino Upgrade »

Customizing system templates

QuickImage
Everything in Notes can be customized by tweaking with the design. I highly recommend never to tweak design in a database itself, but use Domino's template capability. You can have multiple databases using the same layout. Even if you build a specialized custom application you will have at least 3 databases sharing the same design: development sample data, UAT sample data and production data. So use template, and NO hiding the design is not a nice thing to do and actually not a security feature (it's rather an obscurity feature).
In a lot of installations I came across system databases have been altered: the Domino directory, the log, the mail template etc. IBM's support always has a hard time helping in this environments. There is a rather strict policy to insist on original IBM templates. Following a few easy steps however you can eat your cake and have it too. The secret is to use the template system wisely. Following the steps has quite some advantages:
  • Your customizations are protected from being overwritten since they are sitting in their own database
  • Your customizations are visible since they are sitting in their own database
  • Since the original templates are untouched future fixes are easily included in your actual database
  • You can switch back and forth between the IBM template and your customized template using "replace design". This is extremely useful when troubleshooting issues: switch to the original IBM template, if the problem is gone you know where to look. If the problem persists you don't need to argue with support about customization having an impact

These are the steps:

Template Customization
  1. Create a new database based on the original IBM template with inheritance active. In the database properties give that database a template name (be sure to keep the master template name intact)
  2. Delete all design elements you want to customize from the database created in step 1
  3. Create a new empty database, give it a template name and copy all design elements you want to customize into this database. Say NO to the question of "inherit changes"
  4. Customize your design elements. Rule of thumb: try to be minimal invasive.
  5. Copy the altered (or additional) design elements to the database you created in step 1. Say YES to the question "inherit changes"
  6. Replace the design of the system database with your new template

Happy customize!

Comments

Gravatar Image1 - Don't forget the bit about using "refresh design" to update the merged template with code updates from both the IBM and the customization tempate (and the fact that this will happen automatically if all these templates are on the server and the Design task runs at night).

Also, there may occasionally be a need to re-apply your customizations to an element newly updated by IBM, which may be hard to identify without doing a design comparison using a tool like Teamstudio Delta. If you've taken good notes about what your customizations were, it shouldn't be too hard to re-apply them, in which case knowing for sure that IBM has changed a given element is less important - just do it regardless.

I'd also want to emphasize that when giving your merged template a name (your Step 1), be absolutely sure that 1) the name is unique across your entire environment, and 2) if you ever take a "backup" of your merged template that you remember to erase the template name in the backup (which is the most common way of violating #1).

Gravatar Image2 - On the first look it seems like your approach is the same as mine. However there are a few substantial differences:
- You never know if that "Prohibit Design Refresh" was intentionally or not, which is not a good situation for audits.
- You use replace design by accident or accidentally uncheck the "Prohibit Design Refresh" option and your changes are gone.

I've seen this happen over and over again, this is why I recommend to separate the elements. Relying on a checkbox to protect code you have written is rather fragile.
stw

Gravatar Image3 - Wouldn't you provide the same thing by making the customizations on the template (example: companypubnames.ntf) created in Step 1., but after making the customizations - checking the "prohibit design refresh or replace to modify" in the design element properties.

That way when you upgrade to the next version of Domino and a new pubnames.ntf comes along, you know which pieces you have modified and/or added. You can safely refresh design with the new template, and then make any customizations that you know you need to make.

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::rolleyes:;-)

Disclaimer

This site is in no way affiliated, endorsed, sanctioned, supported, nor enlightened by Lotus Software nor IBM Corporation. I may be an employee, but the opinions, theories, facts, etc. presented here are my own and are in now way given in any official capacity. In short, these are my words and this is my site, not IBM's - and don't even begin to think otherwise. (Disclaimer shamelessly plugged from Rocky Oliver)

© 2003 - 2008 Stephan H. Wissel - all rights reserved as listed here: Unless otherwise labeled by its originating author, the content found on this site is made available under the terms of an Attribution/NonCommercial/ShareAlike Creative Commons License, with the exception that no rights are granted -- since they are not mine to grant -- in any logo, graphic design, trademarks or trade names of any type.

Get Firefox Use OpenDNS