In a previous serious of posts, I described the steps taken to migrate Lotus Notes content from a Sandbox database to the local Kapow database. At this point, I could use Kapow robots to transform the local content in place. However, I am going to skip to the next step and migrate the content to a SharePoint 2010 list.
I am still running Kapow Design Studio.
SharePoint List
I created a simple list named “SandBox” in SharePoint 2010. I do not really need to copy content for all of the columns; but I am doing it anyway just as an example.
I modified the All Items view to show content more relevant to what I migrated.
Creating the migration robot
Select the “Lotus Notes Sandbox Migration” project.
Create a new robot
Enter “NotesExtraction.robot” as the robot name and click [Next] to continue.
You can leave the URL blank for now. Click [Finish] to continue.
Below is a screenshot of the robot we want to create.
Load Page Step
I create the first step by right clicking on the “x” in the robot view window.
Click on [Insert Step Before] in the drop-down list.
The new step appears as “Unnamed”.
Click on [Select an Action] and then on the [Load Page] option in the Action tab in the Step view.
Enter the URL from which you want to start loading content to. In this example, I start from a SharePoint list view.
http://win-q085cbbhm02/sites/TestTeamSite/Lists/SandBox/AllItems.aspx
Click on [Configure] beside “Options”. The Options dialog box opens in the workspace. I have a Username and Password entered because I set my SharePoint web application to not allow anonymous access. Click [OK] to close the Options dialog box after setting the credentials.
Click on the “x” in the robot view window after you enter your URL.
The contents of the web page at the URL should load in the Windows view for you to see.
The HTML in the web page is displayed in the HTML view. Note that I have the “Ignore Styles” checkbox checked.
You can select HTML tags in either window and see the selection in both windows.
Query the Database
I need to query the database where all of the content was extracted to. Right-click on the “x” in the robot view window and click on “Insert Step Before”.
The new Click step should appear as below. Note how the current tags that were defined earlier continue be used. The new Step should appear. Update the step on the Action tab as seen below. Database is set to the objectdb and a SQL statement is added. Note that the Post variable is added to Variables. Then the variables are mapped in the Variables Map section.
Step |
Tag Finders |
Action |
Query Database |
Next, I need to get to the current tag. I created the table below to show how I got to the correct starting tag. Note how I name a tag in the “Name” field in the Action of step 1. Then I reference the tag name in the “In this Tag” field in the Tag Finders of step 2. This process repeats itself in each step. Only the first step refers to “Anywhere in Page” for the “Find Where” value for Tag Finders. All of the remaining steps refer to “In Current Tag”. That is how I drilled down through the HTML to get to the correct starting tag.
Note also that the first tag starts as seen in the image below. The image shows some content that I added in testing the migration robot. You should have the “Ignore Styles” checkbox checked to see the HTML without styles.
Step |
Tag Finders |
Action |
1 |
||
2 |
||
3 |
The final start tag step should place the starting point as seen in the image below. This basically places us close to where the [Add New Item] tag is.
Scroll down in the HTML window and look for the “Add new item” text. Right-click on it and select “Click” on the drop-down menu.
The new Click step should appear as below. Note how the current tags that were defined earlier continue be used.
Step |
Tag Finders |
Action |
Click |
I had to enter the credentials again by clicking on [Configure] beside Options. I clicked OK when I was done.
Right clicking on the “x” in the robot view window.
This will load the “New Item” screen. Scroll down the HTMO window named “Unnamed (2)” or something like that. It should be the newest window tab displayed. Look for the HTML fields as seen in the image below.
I created a series of steps to enter the text values into the HTML fields. Basically, I right-click in each field and select the “Enter Text” option to create each step. I select the applicable item from the Post variable for “text to enter”.
As you create each step, you should see the text inserted into the applicable field.
I created the following steps.
Step |
Tag Finders |
Action |
Enter Title |
||
Enter Unique Id |
||
Enter File Name |
||
Enter File Size Type |
||
Enter File Size |
||
Enter Platform |
||
Enter Release |
||
Enter Product |
||
Enter Category |
||
Enter Submitted By |
||
Enter Description |
||
Enter URL |
||
Enter Url File Attachment |
Grouping Steps
I grouped the steps by first selecting them with the mouse in the robot editor view.
Then click the [Group] button in the action bar. Enter a name “Enter Item Values” for the group and hit [Enter] on your keyboard.
You can now collapse and expand the group in the robot editor view by clicking on the [-+] button in the group.
Selecting File Attachment
Scroll down the HTML window until you see the section for adding a file attachment. Right-click on the Browse button and field so that both are selected. Click on the “Select File” option in the drop-down menu.
The new Select File step should appear as below. Note that you need to set file selection options to find the correct file. The original extraction robot extracted file attachments to the local file system in the C:\Temp directory. The filename string value was stored in the Post object.
Step |
Tag Finders |
Action |
Click |
I remember that some file attachments were missing from the extraction process. The error handling for this step should skip files that do not exist in C:\Temp.
Updated Screen
I should now see values in almost every field in the web page. At least, values for those fields that had corresponding values in the local database.
Right-click on the [OK] button and select the “Click” option. The new Click OK step should appear as below.
Step |
Tag Finders |
Action |
Click |
The error handling for this step should be the same as for the previous step.
Right-click on the [Save] button and select the “Click” option. The new Click Save step should appear as below.
Step |
Tag Finders |
Action |
Click |
The error handling for this step should be the same as for the previous two steps.
I had to enter the credentials again by clicking on [Configure] beside Options. I clicked OK when I was done.
Click on the “x” in the robot view window to end processing.
Save the robot.
Open a web browser to the SharePoint list and see if you added a new entry with the robot.
Click on the list item to see all of the details. All of the details from the original Notes database document are now in the SharePoint list. The URL’s still point to the Notes database. Normally, I would not have copied those over; but I did so here just as an example. I could also have run a transformation robot to update the URLs to point elsewhere.
I can open the file attachment by clicking on “wdpick.nsf” at the bottom of the page. Note that I did not recreate the confirmation page that existed in the Notes application. Instead, I attached the file attachment to the main document it belongs to. That was my choice to keep things simple here.
Also, I did not try to implement any document-level security that may have existed in the Lotus Notes application. I could also improve the user experience by creating a custom form for the list. I could also save the file attachments in a separate folder and link to them.
Conclusion
Many thanks to the Kapow support team for helping me through this process. I’m sure that they know better ways for some of the above steps. I did learn a lot using this hands-on approach. This effort was a great way to see how this content migration tool works.