Header Image -

Monthly Archives

4 Articles

The fun part of migration efforts

by dave 0 Comments

Standard disclaimer – the ‘migratenotes’ posts come from a Notes Migration blog that I wrote from 2007-2010.  More Info


There is one part of migrating to a new platform that I am truly enjoying — the cleanup work on the Notes/Domino system. I love taking an old, cumbersome app, and refactoring the code into a quick, simple design with significant performance and UI improvements. I can usually reduce the support needs at the same time, frequently reducing the headcount required to support the apps by well over 50%.

We end up doing this kind of refactoring on many apps before thinking about a migration because many of the apps have have devolved into such massive heaps of spaghetti code tht they need a good refactoring just to understand exactly what the current functions are.  Once the refactoring is done, then we talk to the business about whether all components are still needed, and look at whether or not a change in a business process may allow us to simplify the app even more. What we find is that through this simplification process, the migration becomes only partially technical, but as often as not, a business transformation is the result of the technical work. A a chunk of the time, the resulting app is so easy to use and maintain that we just stick with it, and don’t migrate it after all.

Correcting My Ignorance

by dave 0 Comments

Standard disclaimer – the ‘migratenotes’ posts come from a Notes Migration blog that I wrote from 2007-2010.  More Info


A year ago on this blog, I listed some Notes functions that did not have equivalents in SharePoint.

Over this past year, as I learned more, I learned that I was just plain wrong.

So let me take the time to correct my statements,  and lay out the functions in SharePoint to replace the following Notes functions:

  • Hide-Whens – Can be computed in your XSLT via SharePoint designer.
  • Reader/Author access computed based on document data – Still not available based on my current knowledge.
  • Flexible Workflow, sending to different recipients, or selecting a different workflow based on document data – Not available as a single workflow, but multiple workflows can be combined to achieve these types of functions.
  • More than 2000 items in a view – Available, but not recommended. Apparently that limitation is not a technical limit, just a performance guideline.
  • Private Views – Yeah, these exist. Stored on the server, though, not locally.
  • Agents – Not available as a SharePoint function, but you can write scheduled jobs on the server in .NET, etc.
  • Action Bar/Shared Actions -Available in Infopath.

There ya go – just reinforces my point that even the most open minded Notes person will not “get” SharePoint development right off the bat. It take times to learn the new moving parts and figure out how to put them together…

Disconnecting the Data Infrastructure

by dave 0 Comments

Standard disclaimer – the ‘migratenotes’ posts come from a Notes Migration blog that I wrote from 2007-2010.  More Info


One of the challenges we’ve encountered as we migrate application off of Lotus Notes and over to SharePoint is what I call the “data infrastructure.” There may be a better term for this, I dunno… but I am talking about those Notes databases that are shared data repositories for the enterprise, but not applications unto themselves.

For example, we have a database with a record for each employee, with their Job Title, Location, Phone, etc. We have another one for just IT employees that tracks who falls into specific support roles for each office location. And yet another that holds generic keyword lists… our office locations, department lists, etc, etc.

Some of this may be stored in the NAB in some organizations, too… but that doesn’t change the problem — one way or another, you need to replace these data sources with new ones.

For some (most) data, just a new SharePoint list is sufficient. Or multiple lists. But the hassle comes in data conversion, and/or data maintenance, especially if there is yet a deeper root data source that was populating the Notes data.

What I have done to make this process go forward is the following:

  1. Create the new data sources first, before even trying to migrate any apps.
  2. Create Web Services to publish data from the new source as XML, thereby making it available to either Notes or SharePoint (or anything else for that matter).
  3. Disconnect the Notes apps without migrating – go into the code and just update it to read the Web Service, without making any other changes.
  4. Once everything is disconnected, kill off the old data databases. Now you can go forth and concentrate on migration efforts.

One of the key pieces of information that got me going down this path was the (not-so-profound) epiphany that AJAX calls are not limited to web browsers. They work great in the Notes Client, too. The XMLHTTP object is just an object in the OS like anything else:

Set xmlhttp = CreateObject(”Msxml2.XMLHTTP”)

So I just declare the object, call my Web Service’s URL, and parse the resulting XML for whatever purpose is appropriate. Once the data is available in LotusScript, any existing code can take over from there.

I haven’t thought of any efficient way to make this work in @functions… I suppose you could use @URLOpen to pull in the Web Service data, but I suspect by the time you got done parsing everything, it would have been easier to just re-write your code in LotusScript.

“Bad” Technical Answers to Problems

by dave 0 Comments

Standard disclaimer – the ‘migratenotes’ posts come from a Notes Migration blog that I wrote from 2007-2010.  More Info


Not much posting recently because nothing profound has been going on. We’ve been moving Notes apps over to SharePoint, doing easy stuff first. Simple forms and workflows that can turn into a sharepoint list, calendars, discussions, etc.

Just a couple tidbits we’ve learned:

1) If a user needs to see the old data for a fixed amount of time, we decided migrating the data to SharePoint is wasted effort. Instead, just give them a web interface to the Notes data, either in a new window or an Iframe from the SharePoint UI. Customers are very pleased with this.

2) Icons in columns – We don’t think much of this as developers… sure, we can put up a green checkbox or some other icon in a Notes column. It is such an easy feature, it threw us for a loop when SharePoint couldn’t do something so simple in a column. But it can be done with Dataviews. So we’ve had to pick up some more Designer and XSLT skills to match the options available to us in Notes. Same thing when trying to calculate anything based on “multiple lines of text”. Can’t be done as a standard list option… needs to be done via XSLT in a dataview.

But the real reason I wanted to post was to share our new “Bad” answers to strange, unexplicable problems in SharePoint.

We realized that, as many Notes Devs know, sometimes a problem just isn’t easy to diagnose, and some folks have standardized answers that sound plausible, but which are totally false, and just serve to get people off our back while we figure out the real problem. I’ve gotten over this bad habit as I’ve aged, and now freely admit, “I dunno… lemme go figure it out.”, but I still hear plenty of Notes folks who says things like. “Hmm… there must be some database corruption. I’ll go work on it.”. Which often means the same thing as “I dunno.”

So in jest, we came up with the two following statements in cases of unexplained SharePoint problems when you just want the boss off your back so you can go find a real answer:

1) “It sounds like an Office 2007 integration bug.” – for end-user problems.
2) “That sounds like a timer job issue.” – for server-related issues.