« SearchSAP: "Duet: SAP customers see success, challenges ahead" | Main| SearchSAP's Rob Westervelt: SAP, Microsoft Duet versus Lotus Notes? »

(SnTT) NaSS Installation Toolkit - Part I, Introductions

QuickImage   
Category
Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 


For the next few Show-n-Tell Thursday posts I am going to spend some time introducing you to a new feature shipping with Notes access for SAP solutions (NaSS) - the Installation Toolkit and the Template Builder. There are some interesting technologies being used in this new feature, and I thought it would be fertile ground for at least a few SnTT posts. Today's post will simply be an introduction to the Installation Toolkit - what it is, why it is, and how it works from an end-user perspective.

Background
Notes access for SAP solutions is a new feature introduced after Notes 7.0.1 shipped. It is a template-based feature that contains five featuresets (or scenarios, or use cases - I use these terms interchangeably) in the 7.0.1 code:
  • Contact Management
  • Time Reporting
  • Vacation/Leave Request
  • Report Sheduling
  • Workflow

These five scenarios are contained in two templates - a modified version of the Mail 7 template, and a modified version of the Personal Address Book (7) template. So far, so good.

In 7.0.2 it gets more interesting, because there are three additional use cases:
  • HR Self Service for Managers
  • HR Self Service for Employees
  • SAP Business Activity/Calendar Scheduling

In the past when new template based features were shipped with Notes, it wasn't a big deal because there was a 1:1 relationship between the featureset and the template (e.g. Discussion template, Teamroom, etc.). But now we have a situation where it is a (>1):1 relationship - there is more than one featureset in a given template for NaSS.

This then begs the question - What if I don't want to deploy all of the use cases?

In 7.0.1 you have to follow a series of steps, outlined in the help file, that walk an experienced developer through the process of identifying and manually removing the design elements for the undesired use case.

But in 7.0.2 we wanted to make that process easier for our customers - and I responded to that desire with the concept of the Installation Toolkit , and within that toolkit the Template Builder wizard.

To begin, let's take a look at the Installation Toolkit...

Introduction to the Installation Toolkit
The NaSS Installation Toolkit is a database that is deployed as a part of the Domino 7.0.2 install kit. When an organization decides they want to deploy NaSS the administrator or developer uses the Installation Toolkit to facilitate this deployment. The Installation Toolkit contains the "source" templates for all of the NaSS use cases, as well as a great deal more information.

One of the more useful types of information stored in the Installation Toolkit is a list of all of the design elements that make up each of the NaSS scenarios. These "Design Element docs" are sorted and categorized in a variety of ways, such as by template, by featureset, by design element type, and so on. Here's a peek at couple of the views:

by Featureset view

You can view the NaSS design elements by Featureset...


by Design Element Type view

... or by the type of design element



These documents can be used to easily determine what elements are a part of each featureset in NaSS.

Now, as you can imagine, these documents are not created manually - these documents are automatically generated by an agent. This can be very useful, especially in situations where you are integrating NaSS with customized versions of the mail or personal address book templates. This agent not only identifies the featureset(s) to which the element belongs, but it also determines such things as the type of element (e.g. form, view, LotusScript or Formula agent, etc.) and whether the element is a new element or is a modified version of an existing element from the base template.

This code is one of the many coding techniques I'll be covering in the coming weeks.

But the documentation of the NaSS elements isn't the only thing in the Installation Toolkit - it also includes a useful feature known as the Template Builder wizard.

The Template Builder Wizard
As I mentioned earlier the deployment of the NaSS feature presented some new challenges for us. When we were coming up with our options to make it easier, we entertained the idea of releasing all of the various permutations of featureset combinations as a series of templates - and then quickly realized that this would create dozens of templates since we now have eight featuresets. So, I wanted to come up with something different. It had to be flexible, since we knew we would be creating additional featuresets. It had to be easy to understand, so that people could modify and extend it as needed. And it had to be simple to use out of the box - the people most likely to be using it would be administrators, not developers. Taking all of this into consideration, I came up with the Template Builder wizard.

The Template Builder wizard is a simple process that is accessed from the About document of the Installation Toolkit (there is also a button to make access easier in all of the views). The About document has a brief explanation of the database and the Template Builder wizard, and explains what is about to happen.

Installation Toolkit - About doc with Template Builder wizard


The first step in the Template Builder wizard allows the user to select the scenario(s) that will be deployed.
Template Builder - Step 1


The second step of the Template Builder wizard allows the administrator to specify the default settings for the SAP account in their user's Account document.
Template Builder - Step 2


This feature was added because we figured that one of the areas that would generate quite a bit of support calls for the customer would be the settings for the SAP Account document. For SAP accounts you have to specify more than just a server name and username/password. SAP accounts require the following information:
  • Server DNS/IP
  • Username
  • Password
  • Employee ID
  • System Name
  • System Number
  • Client Number
  • Language Code

As you can imagine, most users won't know this stuff past their user name and password - so the system has been designed to allow the administrator to specify the "other" stuff as default values for the user. When the user's Personal Address Book database design is updated with the NaSS design, and the user composes an SAP Account document, the values specified in Step 2 will automatically appear as default values.

This is another kewl code technique that I will explain in the coming weeks - and it wasn't as simple as it looks.

The third step of the Template Builder wizard allows the user to specify some areas that administrators often like to modify for their Notes/Domino template environment.
Template Builder - Step 3


You can change the database title, design template name (the name used by databases to inherit from this template), and file name for each production template being created. Additionally you can specify where (i.e. what directory) the production templates will be stored on an accessible local or mapped drive. Incidentally you will only have database options for templates that are being deployed - so if, for instance, you weren't deploying either of the HR Self Service scenarios, then those tabs would be hidden.

Notice that we're changing the Design Template name (the name used to inherit from this template). If you check, this is a read-only property in LotusScript; however in this code I give you a way to change this property very easily, and we'll cover that as well sometime soon.

Once you click Finish the following steps happen:
  1. The appropriate source templates are detached and placed in the specified directory
  2. The Title, design template name, and file name are changed to the desired values
  3. The design elements for the scenarios that are not being deployed are removed from the templates

This yet another technique that will be covered in the upcoming weeks. I'll show you how I identify the design elements to be removed, and then how I get a handle to them and delete them.

Special Mention
I would like to take this moment to mention a special person involved in the creation of this database - Marina Bodik of IBM/Lotus. She is on the template team, and stepped in to help me with the coding effort for this database. I threw a bunch of new ideas, concepts, and code at her, and she absorbed and used it in a very efficient and elegant way. In short, she made this possible, and deserves to be recognized for it.

Conclusion
Hopefully I've whet your appetite for some kewl code over the next few weeks. Some of this will be some old techniques used in new ways, and some of it will (hopefully) be completely new to you. We'll begin diving in next week with the code that generates the Design Element docs.

See you then!

Rock
**If you pick up a starving dog and make him prosperous, he will not bite you; that is the principal difference between a dog and a man.

Comments

1 - What intrigues me the most about this blog is the time tracking installation option in your modified mail template. Our non-profit organization is investigating Financial Packages in which we need to have a Time Tracking component integrated for reporting. In my ideal world of course it would play nice with Notes. From your experience creating this connector is SAP something we should be looking at?

Elijah Lapson

2 - Chad - Marina helped me get the code written, but I was the actual architect and lead developer. I came up with the concepts and implementation. In fact, I had considered doing it like you seem to have done (i.e. add elements to the base db programmatically, instead of removing them), but in this case it was easier to take away than to add.

I didn't know you had written that tool; if you like we can get together in IM or a web conference and "compare notes" - interested?

Rock

3 - I would be interested, I added my e-mail here. Even removing the unused design elements is an approach I did not think of.

4 - Looks very simple, a very nice improvement. It reminds me of Quick Elementer { Link }
I am curious how Marina has implemented this.

5 - This tool Rocks!

This is going to help me tremendously with customers and proof of concepts in their own SAP environments.

If I was a Notes Administrator, I would love this tool for deploying other applications as well, especially Mail and Calendar.

Any thoughts/plans on a more generic tool that could be used for ANY Notes application, or at least Notes Mail/Calendar?

Meet Rocky

Rock - February 2010
Rocky Oliver
If you see me at a conference, please stop me and say hi!

Calendar

Search

Categories

Proudly Employed By

Wofkflow Studios

LOTUS GEEK gear

Social Networking


Add to Technorati Favorites

View Rocky Oliver's profile on LinkedIn

Rocky  Oliver

LotusGeek Blog Roll

Why display a blog roll when Planet Lotus does it so much better?

Dilbert

Buy my book!

Blog Buttons

Atheist - Unitarian - Humanist

Poker Players Alliance