Notes SharePoint Blog

Steve Walch's blog about his favorite migration tool and other things related to Lotus Notes migration projects

Category Archives: QuickPlace

Migrating Lotus QuickPlace to SharePoint (Part 3): Discovery and Automation

In Part 2 [link] we examined the ins and outs of QuickPlace / QuickR migration jobs.  All the examples were using the Notes Migrator for SharePoint Designer Client, which specializes in designing and running one migration job at a time.  As discussed, QuickPlaces usually require multiple migration jobs in order to move the right content to the right type of list in SharePoint (Pages, Tasks, Discussion, Calendar, etc.).  Not only that, most QuickPlaces have multiple (sometimes hundreds of) rooms and sub-rooms, each of which would typically be migrated to a distinct SharePoint site or sub-site.  This means that migrating even a small number of QuickPlaces would get very tedious very quickly if you had to migrate each bit of content in every sub-room using the Designer Client.

Enter the other client, the Notes Migrator for SharePoint Migration Console.  This is the client that spans thousands of Notes databases instead of just one at a time and allows for a great deal of automation of your migration tasks.  This is extremely valuable in any large migration project, but is especially valuable for QuickPlace / QuickR projects.  Most QuickPlace rooms and sub-rooms are based on standard templates and, even though they tend to proliferate very quickly, they usually lend themselves to automated provisioning and automation quite nicely.

First a short word about machine requirements.  Although the tool is documented to require less, I definitely suggest that you have at least 4 GB of RAM available if you have a large environment to analyze and migrate.  Also watch out for your repository size.  If you have more than 4000 – 5000 databases you should consider splitting the project into multiple separate repositories, as described elsewhere.

(Warning!  Some of the features described below are only available in the Notes Migrator for SharePoint 5.x Premiere Edition today.  When version 6.0 is released, they will be available in the Starter and Standard Editions as well.)

Discovery

Everything in the Migration Console starts with Discovery.  This is the part where the tool scans your various Domino servers and finds all of the databases that are available there.  There are actually several types of Discovery you can perform with the product, all of which are available as actions on the main Notes Migrator for SharePoint scope node (top left) of the console. 

image

The first type of discovery is the general Discover Databases function.  This discovers all Notes databases on the server, regardless of whether they are really QuickPlace databases or not.  As shown below, you can pick the Domino servers you want (click on Manage Locations to add another server to the global list) and indicate that you would like to do a header analysis along the way. 

The tool attempts to classify all Notes databases based on the classification rules programmed into the tool (more on that later).  It can recognize that a database appears to be based on a QuickPlace template, but it does not attempt to look much deeper than that.  This is why you will see classes such as “QuickPlace (Unorganized Content)” in the various Notes Databases views; we have not really looked inside the database yet to see whether it is a room or sub-room and where it fits in a QuickPlace hierarchy. 

While this type of discovery is optional for a QuickPlace migration project, it can be very useful in cases where you have orphaned databases (no longer part of any hierarchy) or databases that you can’t access using your current Notes ID.  There will remain as “QuickPlace (Unorganized Content)” even after you do the deeper discovery (below).

image

Next you can also perform Discover QuickPlace Organization or Discover QuickR Organization operations.  As shown below, you can pick the QuickPlace servers you want (click on Manage List to add another server to the global list).  This type of discovery will crawl the metadata inside the QuickPlace databases and determine how they are structured in QuickPlace application terms of places, sub-rooms, etc.  Note that the classification of these databases will change to “QuickPlace” and “QuickPlace Sub-room”, etc., instead of just “QuickPlace (Unorganized Content)”.  More importantly, notice that you can now view the hierarchical QuickPlace application model under Applications scope node. 

image

Crawling a QuickPlace hierarchy is significantly slower than doing a simple database discovery.  For very large environments, where one QuickPlace might have hundreds of rooms and sub-rooms, you may want to discover just one QuickPlace at a time.  The trick to doing this is to specify a discovery location using the “<server>;<place>” format, where <place> is the short name of the QuickPlace (as you would see it in a browser URL).

image

Finally, you may want to perform a Discover Directory Entries operation.  This part is certainly optional, but will examine your Domino directory to determine which of your databases was mail-enabled (and many QuickPlace databases are).  This scan will even tell you what the mail address was for the mail-in databases was, which can be useful information when configuring similar behavior in Exchange/SharePoint. 

image

Analysis

Notes Migrator for SharePoint can help you do a great deal of analysis on each database you discovered.  Analysis is discussed in great detail in other posts, but I will summarize the capabilities here:

  • Analyze usage patterns, filtering out any names that should not count as true end-users
  • Analyze data complexity, including how many pages of each page type there are in each database 
  • Determine which documents have blocked or oversized file attachments that will not be allowed on SharePoint
  • Analyze design complexity, determining which QuickPlace rooms have been customized by end users
  • Extract all the user/group names used in a QuickPlace, so you can plan how to map them to Active Directory accounts (and deal with exceptions)

Note that all Discovery and Analysis data is available in the Database Properties dialog and most of it is also available in the Migration Console views.  You can design custom views and reports that display it or simply export it all to an XML file for reporting in Excel and other tools.

Defining the rules for provisioning and migration

Now we get to the really cool part: all that Discovery work you did above was not just so you could see what you have out there on your QuickPlace servers.  All that data you collected is going to be your “home base” for managing and automating much of your migration project.  The piece that makes all this happens is your classification rules.

Underneath the Classification Rules scope node you will see both Technical Classification Rules and Business Classification Rules.  For the purposes of automating your QuickPlace migrations we will be concerned with Technical Classification Rules and, in particular, the “QuickPlace” and “QuickPlace Sub-Room” classes.  (Substitute “QuickR” and “QuickR Sub-Room” classes if that is what you have.)

image

If you edit the “QuickPlace” class rule properties, you will see various details about how databases of this type are recognized, analyzed and triaged.  For now, skip over to the Auto Target tab.  Check the “Enable automatic Target Identification” checkbox and then select one of your existing SharePoint site collections as the “Base Site URL”.  This sets the top level under which all new QuickPlace rooms and sub-rooms will be migrated to. 

image

Next, check the “Create new site for each database” checkbox and press the Options button to specify how the site will be created.  The Name and Relative URL should be variable (using the substitution codes indicated at the bottom) as this class rule will be applied to many QuickPlaces.  In example below, the URL will be formatted using the original folder path.  The name and description will include the original QuickPlace application name.  Finally you can specify the SharePoint site template you want to use (the standard SharePoint Team Site template works nicely, but feel free to specify one of your custom templates) as well as other site creation options.

image

Similarly you should check the “Assign targets for every child application” and “Create new sub-site for every child application” and then set the site creation options, as described above.  This will cause all QuickPlace sub-rooms to get migrated as SharePoint sub sites.  As you will see shortly this is a recursive process that could generate a tree of hundreds of sub-sites automatically!

image

The last item on this tab is optional.  As discussed in Part 1 of this series, QuickPlace rooms have their own menus which are often customized and are often considered an important part of the design of the QuickPlace.  Depending on your particular situation, you may elect to use the standard Quick Launch menus defined in the your SharePoint site template (selected above) or you may decide that you want to migrate the old QuickPlace menus over to SharePoint instead.  If you want to replace the standard menus with migrated QuickPlace menus, check “Provision Navigation Links” and the “Replace Links”.

image

clip_image001

IMPORTANT: The “Provision Navigation Links” function uses the dynamic Link Tracking Service and therefore requires that the service be enabled when the actual migration occurs.

Now let’s move over to the Migration Jobs tab.  Check the “Enable Automatic Migration Job” checkbox and then define the desired security mapping options.  Security mapping details are described in great detail in other posts; I will summarize by saying that the options available here controls how QuickPlace access control rules are mapped at the site level whereas individual migration jobs control how QuickPlace access control rules are mapped at the list and individual document level. 

Also note that enabling these options will require you to establish a system for mapping Notes user/group names to Active Directory identities, which is essential for a real migration but might be considered optional for a proof of concept or first test migration where you want to get quick results.

image

Finally we have a set of migration jobs.  Every entry here is a complete migration job, as described in Part 2 of this series.  You can add, edit and delete migration jobs using the buttons at the bottom and the pop-up migration job designer. 

Note that Notes Migrator for SharePoint includes a complete set of migration jobs for QuickPlace and QuickR and you may or may not need to edit them.  The default jobs are designed to do a nice job migrating to sites created with the standard SharePoint Team Site template. 

Note that the top level QuickPlace class has an extra job for migrating the QuickPlace Welcome page to the SharePoint site’s Announcement area.  If you do not want to do that, you can simply delete that particular job.

Good reasons for wanting to customize the migration jobs in your QuickPlace class rules include:

  • You are using a different SharePoint template
  • You have a different idea how lists should be named or organized
  • You want to use Wiki pages, etc., instead of custom lists (the default)
  • You want to enable document-level security mapping for all migration jobs
  • You want to enable the Link Tracking Service for all migration jobs

Be sure to Press OK to save your work!

You should also edit the “QuickPlace Sub-Room” class rule and perform a similar set of edits.  You do not need to specify the Site Provisioning rules, as these were defined for the parent “QuickPlace” job and will applied recursively.  You should however specify Provision Navigation Links options, Security Mapping rules and Migration jobs that you want applied to any SharePoint sub-sites provisioned from your QuickPlace sub-rooms.

Assigning Targets and Jobs to Individual Databases

Now that you have defined your class rules, applying them to your actual databases is very easy.  Under the Applications scope node select the Apply Class Rules action.  Select Yes to include all the sub-rooms (recursively) and then indicate that you want to assign both the Migration Targets and Migration Jobs.  As with most Database properties, Migration Targets and Migration Jobs may be “locked” in some of your databases (because you made some manual entries), so it is usually a good idea to Override All Locks when applying the rules.

image

When the assignment is done, you can examine the log files to get an idea of what happened.  Even better, spot check some of the individual databases to see if things got assigned the way you expected them to.  In the example QuickPlace sub-room, the site path, the security mapping options and the migration jobs were all automatically assigned according to our rules for QuickPlace sub-rooms.

image  image

Note that the site shown above is indicated as a “Planned Site”.  This means that the SharePoint site does not really exist yet, but you can still assign databases and migration jobs to it.  You can even see it previewed in the tool’s SharePoint scope nodes.

image

You can now change any of the assigned properties for specific databases.  In fact a common way to deal with customized QuickPlaces is to first assign a complete set of default rules as described here, and then use the analysis functions of the tool to locate small end-user customizations that have occurred over the years.  You can decide on a case-by-case basis which customizations merit (for example) a customized migration job or even custom SharePoint development.

Migration Time!

There are a couple of tool configuration options (described in detail elsewhere) that you should pay attention to before migrating.

  • Logging level – Use Verbose for debugging, but don’t leave it that way for large migration jobs.
  • User/Group Mapping options – Needed to preserve author metadata as well as access permissions.
  • Link Tracking options – Keeps doc links working, even in an extended migration project

One configuration option that many people miss is the HTTP Link Detection feature.  If you configure the tool with mappings from URL prefixes to live Domino servers, it will try to resolve any HTTP links to other web-enabled Notes or QuickPlace documents and treat them as dynamic links in our Link Tracking Service.

clip_image002  clip_image002[4]

Finally it is time to migrate.  Under the Applications scope node (above) select the Migrate To SharePoint action.  Select Yes to include all the sub-rooms (recursively) and then indicate that you want to perform all provisioning and migration tasks.  (In practice, many people actually decide to provision all the sites and sub-sites first, verify those, and only then migrate all the content.)

image

The process described here is a “soup to nuts” approach for migrating QuickPlace / QuickR environments.  Hopefully you agree that the blend of automation and ability to customize as needed strikes the right balance, and that the trouble of setting the rules up correctly the first time more than pays for itself when you start applying those rules to large numbers of databases.

Migrating Lotus QuickPlace to SharePoint (Part 2): Migration jobs

In Part 1 [link] we discussed how QuickPlace works and how QuickPlaces are structured.  Now it’s time to start everyone’s favorite migration tool, Notes Migrator for SharePoint, and actually migrate something.  Again, if you have Lotus QuickR (the version that sits on top of Domino servers), everything in this post applies equally well to you. 

I should start by explaining that this article is going to dive deep into the nuts and bolts of QuickPlace migration jobs and is probably more than many people will ever want to know about.  As you will see in part 3, you can run the Migration Console to discover all your QuickPlaces and immediately start automating the migration process.  If you like the tool’s defaults and you don’t need to deal with lots of customized QuickPlaces, you don’t really need to know how the migration jobs work in great detail. 

Notes Migrator for SharePoint currently supports migrating from Notes, QuickPlace, QuickR, and Domino.Doc data sources.  Most of the posts on this blog show the tool running in “Notes mode”.  To run the Designer Client in “QuickPlace” or “QuickR” mode, you simply change the Type in the drop-down selector in the first tab.

image

People who are used to running the tool in Notes mode will notice that not much is different in QuickPlace mode.  The only difference, in fact, is the first tab where you select your data source and select (or design) a Data Definition for extracting the data you want to migrate.  Everything else (the SharePoint parts, the data Mapping parts, and the Advanced options) is exactly the same.

One digression before defining our migration job…  Notes Migrator for SharePoint always uses native Notes connections to access Domino servers and Notes databases.  This include the databases used to implement QuickPlace.  Our tool uses local Notes DLLs and your local Notes ID file to perform these operations. 

You should make sure in advance that your Notes ID has access rights to read those databases.  One quick way to achieve this is to have your Domino administrator add you to the QuickPlaceAdministratorsSUGroup in your Domino domain.

If you are prompted for passwords while using the tool, use your Notes password, not QuickPlace-specific passwords.  (To avoid such prompts, you can set your password permanently by pressing the Options button and going to the QuickPlace tab.)

To select your QuickPlace data source, press the Select button on the QuickPlace tab.  The first time you use this Selector, you will need to specify the name of your QuickPlace server.  Press the Add Server button (the green plus sign at the top) and add one or more QuickPlace servers using the Domino server name format.

3 4

If you have local replicas of your QuickPlace databases, you can specify “local” as the server name.  (While QuickPlace itself does not support running from local databases, working with local copies can reap big performance gains at migration time.)

Notes Migrator for SharePoint will remember your “favorite” QuickPlace server locations and you can use the drop down server selector at the top of the Select QuickPlace / Room dialog to switch between them.  Select the QuickPlace site, room or sub-room that you want to migrate and press OK.

5

Note: All migration jobs are scoped to a particular QuickPlace room or sub-room.  We will cover options for migrating all rooms in a QuickPlace all at once in a subsequent post.  For now, think in terms of a separate migration job for every room.

When you have selected your data source, you will probably be prompted to load a default Data Definition.  Notes Migrator for SharePoint ships with five predefined Data Definitions that work with standard QuickPlaces.  If the QuickPlace room you selected is based on the standard “MeetingRoom” template, you will be prompted to load one of these data definitions.  (If not, you will need to manually load a data definition or design one from scratch, as discussed in the next article in this series.)

6 7

The five predefined Data Definitions for standard QuickPlaces each select data in different ways.  They are designed with the “likely SharePoint targets” in mind.  We have found that most customers would like to re-platform their QuickPlace data as follows:

Predefined Data Definition Data selected Likely SharePoint Target
QP Pages All rich text pages, imported files, link pages and pages created with custom forms Custom List
QP Tasks Task Pages Task List
QP Calendar Calendar Pages (not including Task pages that show on the Calendar) Calendar List
QP Discussion All discussion posts and responses Discussion List
QP Members All member records (applicable to top-level rooms only) Contacts List

A question that savvy customers often ask at this point is “what about document libraries”?  QuickPlace has a “Library” construct and SharePoint has a very rich concept of Document Libraries with versioning, check-out, and great Office integration.  As discussed extensively in a prior post [link], the problem is that SharePoint document libraries work in terms of Files while QuickPlace pages often have much more than just a single file attachment.  QuickPlace pages, even the ones sitting in a “Library” folder, often include additional rich text and sometimes even more than one attachment per page.  Therefore we elected to include all such pages into our generic “QP Pages” Data Definition to avoid possible data loss.

If, however, you are confident that your users followed a strict one-attachment-per-page policy and did not add any additional rich text that should be considered part of “the document”, it would be a simple matter to grab just the attachments and send them to a SharePoint document library.  (Creating custom data definitions will be discussed in the next post in this series.)

For now, select the standard “QP Pages” Data Definition.  Information about the QuickPlace data source and your selected data definition will be displayed.  You can press the Preview button to see a sample of the QuickPlace data being extracted.

8 16

The rest of the migration process is the same as it would be for Notes and Domino.Doc data sources, so I will move through these parts fairly quickly.  For deep dives on using SharePoint content types, choice and lookup columns, security mapping, connections to remote sites, and other advanced features, see the other Tech Notes on this blog.

On the SharePoint tab, select a target SharePoint site and a List or Library.  Note that the drop down list at the top will help you quickly filter your choices based on the “likely target” described above.  Also note that you can provision a new List or Library by selecting just the SharePoint site and then typing in the new List/Library name.  As before, you will need to select a target Data Definition that describes how data should be written to SharePoint.

9 10

On the mapping tab, you will probably accept all the default mappings provided by the tool’s Auto Map function.  You can also add any additional mappings as needed.  The example below shows mapping the {FormName} field to the SharePoint “ContentType”.  (For more details on working with content types during a migration, see my earlier posts on this topic [link].)

12 11

Note that the Source Definition fields available for mapping in the above screen shot all contain curly brackets, for example {Name} and {FolderName}.  This indicates that these are pre-defined metadata fields instead of custom fields.  This actually brings up a significant difference between migrating QuickPlaces and “normal” Notes applications.  With Notes, nearly all data items are “custom” (i.e., your Source Data Definition needs to explicitly identify each one).  QuickPlace is a much more structured environment and most of what you need is predefined.

On the Advanced tab, you can specify Access Control List mapping options, document-level security mapping options, and any additional options that you care about.  Then run the migration job.

13 17

The results are pretty much identical to what you would get when migrating a “normal” Notes application:  very high fidelity rich text (fonts, tables, embedded images and attachments), additional Columns you decided to map, original creation dates and author names, etc.  In the example below, folders were generated by the mapping the QuickPlace folder name to the SharePoint folder name.

14 15

At this point, you might want to go back and run similar migration jobs to move the Discussion pages to a SharePoint Discussion list, Task pages to a Task list, etc.  (We will cover options for automatically running several jobs for a single QuickPlace room in a subsequent post.)

Later in this series, we will look into customizing QuickPlace Source Data Definitions.  This is where the real power lies to migrate custom Forms, custom Fields and even custom Place templates.  

But first, we will look at how to automate the provisioning of target SharePoint sites and running of migration jobs such as the ones shown above based on your discovery and analysis data.

Migrating Lotus QuickPlace to SharePoint (Part 1): The basics

[Updating and reposting an old series on migrating QuickPlace and QuickR sites to SharePoint.]

I remember when Lotus QuickPlace was introduced into the marketplace back in 1999.  As a developer then focused on using Domino to built cool web applications, I admit that I did not totally get it at first.  After all, there wasn’t much you could do with QuickPlace that you couldn’t do with Domino… and there was a lot you couldn’t do with QuickPlace.  The point, of course, is that you didn’t need a developer.  Users could spin off their own secure sites, define a few properties, and they were off and running with basic team collaboration capabilities.  Users could even add custom layouts, custom form types, custom fields, and even simple workflows. 

And did these sites ever proliferate!  When we talk to large customers who now want to move off of QuickPlace we are frequently talking about hundreds or (more often than not) thousands of QuickPlace rooms.  The good news is that mapping a QuickPlace to SharePoint tends to be fairly straightforward.  All the capabilities and content types in QuickPlace can be found in the simplest SharePoint team site.  This series of posts describes the migration process at both the conceptual level and a tool level (using Notes Migrator for SharePoint).

For those you who have never seen a QuickPlace, here an example. This particular QuickPlace is based on one of the early samples from Lotus (the “Rapid Response Team” government demo) and thus has a particular look-and-feel and layout.  Like most QuickPlaces, it has rich text publishing pages, a discussion area, a document library area, a team calendar, a task list and a member list.  A navigation menu on the left allows you to navigate around and, of course, you access it all in a browser. 

image  image  image

An important aspect of QuickPlace (not obvious from the above screen shots) is the fact that we are looking at a top level room.  A QuickPlace can have can have multiple sub-rooms, each as big as its parent room, and each having its own layout, theme, security rules, etc.  A tree of over 100 rooms and sub-rooms is not uncommon.

As mentioned above, QuickPlaces are customizable.  A particularly important aspect of this is the ability to create custom Forms or to extend existing Forms.  The following screen shots show customizing a form and adding a new field fields using one of the available field types.

image image

When you add new content to a QuickPlace, you typically press the New button to select a Form.  When you save your new document (a “page” in QuickPlace parlance), you decide which folder to put it in. 

image  image   image

Of course there are some obvious defaults in play here:  If you are in a Calendar, you probably want to create a new Calendar page.  And if you are saving a new Calendar page, you probably want to save it into your Calendar.  But it is important to note that QuickPlace is pretty flexible about that sort of thing.  There is nothing to stop you from putting a Task page in a Document Library or a Discussion folder. 

In fact, this is one of the few fundamental differences between SharePoint and QuickPlace:  SharePoint treats each List / Library as a separate container (each with a  strict schema and list of allowed content types). QuickPlace treats each room as a big bucket of pages and those pages are made to appear in particular places (folders, etc.) and can be easily moved.  There are advantages of both systems but you should be aware of this difference when you migrate. 

By the way, if you have Lotus QuickR, everything in this post (and on this blog) applies equally well to you.  QuickR is simply the new rebranded name for QuickPlace.  If you are running the version of QuickR that sits on top of Domino servers, you can migrate them using Notes Migrator for SharePoint just fine.

I want to end this first post with a comparison of SharePoint and QuickPlace concepts.  As you will see, there is almost a one-to-one mapping of concepts.  In the next post in this series, I will dive into how Notes Migrator for SharePoint handles migrating QuickPlace to SharePoint.

QuickPlace concept SharePoint concept
QuickPlace Site
Room / Sub-Room Site / Sub-Site
Folder List, Library or Folder
Page List Item or Library File
Form List Definition or Content Type
Fields Columns
Members Members
QuickPlace Permissions Site Permissions
Page readers and writers Document Permissions
Library Document Library Template
Calendar Calendar List Template
Task List Task List Template
Menu Quick Launch
Imported File List Item Attachment or Library File

CBTs available for Notes Migrator for SharePoint

Our EMEA support team (one of three global support centers where you can get awesome support on my product) has recently put together a series of Computer Based Training labs on installing and using Notes Migrator for SharePoint.  Of course their immediate objective was to better support customers who might be struggling with certain aspects of the product, but (as usual) these guys have over-achieved and what they delivered was an entire training course! 

The table of contents for the first release is shown below.  Each of the links points to a “solution” on the Quest SupportLink web site.  A login is required.  Any Quest customer should have an account on this site, but if you don’t have one, a really good way to get one is to register to download a free trial version of Notes Migrator for SharePoint [link].  This automatically gives you 30 days of free support, including access to the SupportLink site where you will find a wealth of information about all Quest products. You can download the entire set of labs packaged into a single downloadable installable file (48mb) here https://support.quest.com/SUPPORT/index?page=solution&id=SOL52223 or use the individual links below.

Thanks to Maxim and Nerio on the EMEA Migration/SharePoint Support team for all your work on this and your ongoing support of our customers.  I think you have proven yet again that Quest support is not your average call center!

 

1.Basic configuration of Notes Migrator for SharePoint components

• Lab1. NMSP Console Configuration
• Lab2. Configuring NMSP Services
• Lab3. Configuring Global Options using Console (Designer)

2. Using NMSP Console

• Lab1. Discovering migration sources
• Lab2. Analyzing migration sources
• Lab3. Managing migration sources
• Lab4. Migrating data to SharePoint
• Lab5. Automatic target/job assignment
• Lab6. Reports and custom reports
• Lab7. Views and custom views
• Lab8. Managing Tasks

3. Document library migration using NMSP Designer

• Lab1. Standard document library migration to a SharePoint document library
• Lab2. Standard document library migration to a custom SharePoint list
• Lab3. Standard document library migration to a SharePoint Form library
• Lab4. Standard document library migration to ASPX (Basic) pages
• Lab5. Standard document library migration to HTML pages

4. Extending migration

• Lab1. Keywords migration
• Lab2. Migration of multi-valued keywords (e.g. Categories)
• Lab3. Working with strings using Notes formula language
• Lab4. Customizing migration path using Notes formula language
• Lab5. Migrating approval state

5. Permissions migration

• Lab1. Configuring user mapping via ADSI/LDAP lookup
• Lab2. Configuring user mapping via Text File lookup
• Lab3. Configuring user mapping via Domino lookup
• Lab4. Configuring user mapping via Notes Database lookup

6. Quick Place migration

•  Lab1. Migrating Quick Place

7. Domino.Doc migration

• Lab1. Migrating Domino.Doc

 

More labs are coming.  Please send us your suggestions.

Follow

Get every new post delivered to your Inbox.