Richie H’s Weblog

Sharepoint and Stuff

Migrating Plumtree 5.0x to MOSS2007

(Work in progress… Tell me what else you think I need to put in)
Background

Recently, the organisation I work for decided to move away from a long standing relationship with Plumtree Portal and embrace MOSS 2007.
The initial process we undertook was to do a gap analysis of the 2 systems.
We identified the main areas of concern and held workshops for Available Web Parts, Branding & Navigation, Knowledge Directory, Analytics, and Collaboration Server.

The next stages were 2 fold:

  1. The business were sent off on a task to archive, delete and generally reduce the total size of the migration.  Initially we were looking at something like 500 communities and 2000 projects.
  2. Technical were to produce metrics for the most commonly used Portlets, migrating site structure and security, and Collaboration Server projects, documents and version history which in turn could be extrapolated.

POC and Initial Estimate

The initial process we undertook was to do some ballpark worst case(everything done manually) estimates.  To achieve this we looked at:

  • Project Structure
  • Project Security
  • Average Number of Documents per Project
  • Average Number of Versions per Document
  • Community Structure
  • Community Security
  • Community Supporting Article Pages
  • Most highly used Portlets

We then ran a small pilot to see how much work it would be to migrate each section.  Once you have the basic you can then extrapolate this based on the expected number of instances per community and the total number of communities.

The numbers we used were:

Item Time Taken per Item(hrs)
Community/Page creation(includes adding web parts) 1
Community Security(includes resolving nested Plumtree groups) 1
Project Security(includes resolving nested Plumtree groups) 1
Project Documents 0.5/version(Includes download and Re-upload)
Portlets 1 (Depends on what is used)

In our case we create a Team Site for each project which takes about 5mins so wasn’t considered a significant part of the estimation.

After we extrapolated these numbers using an 8 hour day and a 250 working day year we got to a number…… a big number, I believe the projected was somewhere near 22 man years.

If your still reading this you must really want to do this…. or someone isn’t listening to you telling them to start from new.

Worth knowing before you get started

Before moving forward, it’s probably worth mentioning a few restriction Sharepoint has:

  1. You can only update the Last Modified/Created date and person by using the API and submitting the document that way.
  2. When you crawl documents into Sharepoint you replicate the file systems ACL, you do not get the option to override this at crawler level as you can in Plumtree(this was a huge issue for us as the ACL in many cases was junk)
  3. No Sharepoint URL can be greater than 260 characters
  4. Sharepoint has no concept of Global groups except for AD
  5. You cannot nest Sharepoint groups like you can in Plumtree
  6. All Sub Site groups are held within the Site Collection
  7. Out of the box Sharepoint blocks certain file types, a full list is available here and is configurable via Administration Site-> Operations -> Blocked File types.  The ones which caused us issues to date are MSI, EXE and CHM.

Knowing some of those points would have saved a lot of issues when designing the system.

Getting Started

When you first get started, you will need to plan to have several tracks running simultaneously within the project.  Within our project we had 3 track leads for Content, Implementation and Architecture.

  • Content, covered Branding, which Portlets were to be migrated, what the mapping between Web Parts and Portlets was, and the applicable estimates for any custom work
  • Implementation, covered the roles and responsibilities, what the hierarchy of the new system would look like, security management etc.
  • Architecture, covered what hardware we needed to provide a robust solution to serve out 10,000 user base

Content

Portlet to Web Part Mapping

The mapping exercise is probably the most critical section from an end user point of view(only because I ran this piece).

We set out with a set of Portlets and asked the business to describe what they used each Portlet for what functionality was absolutely needed and what was optional, basically a business requirement document.  We then passed the work off to an outsource team who set about documenting the functionality as they saw it, eg. what buttons are there and what do they do.  The offshore team, all of whom had Sharepoint knowledge then recommended a Sharepoint solution based on the findings with a %’age match, functionality which was missing, and any additional functionality.  The business was then walked through the solutions and asked which if any recommendation they would take.  If none of the out of the box solutions were suitable the solution was passed to Technical for estimation.  This area is where many battle will be fought.  We started with 34 Portlets and needed to custom deliver 18 Web Parts.  Following on from estimation and various follow-up meetings trying to understand the business requirements we managed to work our way down to 7 custom, 4 were needed immediately and 3 nice to have.

This is where you must do the work.  Getting the business to accept the out of the box solutions will save you many man hours better used writing migration tools or branding.

Time wise we planned for 1/2 a day of time to generate business requirements, 2 days to document actual functionality and proposed solution, and then 1/2 – 1 day per document to present the solution and work through the proposals.

Branding

When it comes to branding this can either be very simple or not.  Recently, my company spent a small fortune getting Plumtree consultants to implement a Design Agencies nightmare and it fell to your truly to not only migrate the design, but also make it faster.

Sharepoint Branding is split into several sections, some will allow you to control colours and widths, others allow you to change the HTML document structure.  The areas are Site Definition, Master Page,Page Layout, Core.css, ~custom~.css, Themes:

  • Site Definitions allow you to specify different Master Pages, Page Layouts, Lists, Navigation Items, Default Web Parts and Custom CSS files and Features etc. all of which are applied when the Site/Site Collection is created
  • Master pages are selectable at a site level and let you completely change the layout of your page.  Master pages are only applied to Site areas and not to areas such as lists screens.  Do not delete placeholder tags from the master page, use the visible=false attribute and place them all in an asp:panel with the visible=false attribute set, this will ensure they do not render.  Sharepoint expect these placeholders to be there.
  • Page Layouts are more important when using Publishing but basically allow you to control the HTML that appears in various sections declared in the master page
  • Core.css Changes to this file will impact all Sharepoint sites on the system.  I never change any Sharepoint files as they may get overwritten when the server is patched
  • ~custom~.css is a safe way to apply your own CSS file.  The file can be called whatever you choose and you can generate different ones for different scenarios.  When writing custom css remember to only override what you need.  Most people take a copy of core.css, rename it, change the bits they need and delete the rest, otherwise you end up downloading the same file twice
  • Themes are a collection of images and css which are applied by the user selecting the appropriate option from a list

Time wise this activity is solely dependent on the requirements.  I spent 7 days modifying the Team Site master page,  creating custom site definitions, modifying the CSS and writing a custom feature which would enable various parts of the site.

Implementation

Structure

When building the Sharepoint hierarchy, keep in mind that Site Collections are a good way of grouping similar sites together and apply the same look and feels quite straightforwardly using the inherit parent master page and inherit parent style sheet options.  The fact Sharepoint stores all sub site management groups in the parent Site Collection will also make things easier if you have lots of separate Site Collections as you will a more appropriate list.  The disadvantages of separate site collections are:

  • There will be breadcrumb issues unless you use the Portal Connection, as this component always starts at the root Site Collection
  • You cannot share Sharepoint groups between site collections, in this case you will need AD or maintain the user base in 2 locations
  • Most web parts don’t allow retrieving content between site collections, in particular the content by query one
  • I’m sure there’s more

 

Plumtree Components

Analytics

Sharepoint has usage tracking, but this is much more like an external sites requirement(Referrers, Top Sites etc).  We found that there is a huge gap between what analytics can do and what Sharepoint can.  Sharepoint has by day or by month tracking.  You will not get more than 31 days as the data is deleted from the database by 1 of the Jobs

Collaboration

Due to the size and nature of Collaboration server items, we decided to generate a separate Projects area and setup each project as a standalone Team Site Collection.  This allowed the users to store large quantities of data, provide granular access to security and generate sub sites for any sub projects/work streams.  To accelerate the migration we developed a custom tool which read the Plumtree database, created the Site Collection, mapped security  flattening existing Plumtree groups, exported each file version from the database and in turn uploaded it to the Sharepoint Shared Documents List resetting the Last Modified/Created by and date fields.  Click here for Creating Sites or here for Uploading Files and altering meta information related article

Knowledge Directory

The Knowledge Directory was removed and any documents which were required were removed from the shared drives and uploaded to Sharepoint

Search

Sharepoint out of the box doesn’t support wild card searching.  A free alternative is available from Ontolica which overrides the default search control and enable wildcard searching from the search box.  It does not however allow wildcard searching from the people picker.
After enabling the Ontolica search we are no longer tracking search usage report data.
I have spent several days looking into this and found the cause not to be with Ontolica but with the way Sharepoint builds it’s usage data. 
Basically Sharepoint Usage is based on the Search Text Box.  If you don’t have the Sharepoint  search box web part on the results page then the usage data isn’t tracked. 
I’ve posted this all over the place and I can’t get anyone to tell me I’m wrong… or that I’m right.  I’d love to be told I’m wrong and it’s config, but the usage data is only tracked on our system when the Out of the Box Search Box   is on the results page.

Structure and Content

In the end all the content and Community structure was migrated by hand.  This was a much more accurate/efficient model and in reality we are pushing though several communities a day with 4 resources working on it

User Profile

User profiles within Sharepoint are totally inconsistent.  If you click a user link from the search results page, you’ll probably end up on their my profile page, if you select a user from a user list, contact web part or any of the Last Modified, Create By links then you will be taken to the Sites User Info screen.  Clicking edit on this screen for the actual user does nothing in most scenarios and in most instances is very confusing.  You can work around this by setting the Portal Connection to the My Sites root URL.  This however restricts you from ever having any connected sites and you will always have the Portal Connection text in the breadcrumb trail.
We have worked around this by overriding the Delegate Control on the UserDisp.aspx page.  For more information I have posted an article on this.  But essentially it redirects anyone who hits the UserDisp.aspx page from a specified host to the My Profile screen.  Click here for more information

Conclusion

There are a few companies available, who describe experience in this area.  In most instances we found that they were cost prohibitive and brought little more to the party than we had ourselves.  If you check my posts I have given several examples of how we found ways around common problems which you can re-use and am happy to answer any questions on.

 

Any questions? Anything not clear? Drop me a comment and let me know

14 Responses to “Migrating Plumtree 5.0x to MOSS2007”

  1. Lori said

    Hi Richie,

    Thank you so much for the valuable information. This will really help us out as we spec out our migration requirements (just started) and Plumtree to Sharepoint feature mapping.

    Most of our portlets are what we call “pointer portlets” – very simple portlets which point to static HTML pages. Our ASP and .NET portlets are only using the EDK to grab the user credentials (token) from LDAP for SSO (if the app includes authentication – as many do not). Also – portlets may be pointing to images on the image server. We are in the process of changing authentication to AD for all applications launched from the portal as well as all portlets integrated with the portal. I assume that we will need to remove the EDK dll from references of all apps using it and recompile the code before trying to point to it from a Sharepoint portal. Some of the OTB portlets like Snapshot query and community links will need to point to something similar within Sharepoint or be rebuilt – both are used quite a bit.

    The one area which concerns us is administration – we have a centralized portal team which manages the portal and all applications integrated with the portal – does a administration utility like in Plumtree even exist in Sharepoint or does this need to be rebuilt.

    Also – you mentioned companies which have this expertise. Do you work for one of these companuies? Are you avaiable as a subject matter expert for a short term assignment?

    We have about 200 active projects with versioning and audit trail, some project leaders use the other features available in collab but this is a small number – migrating that stuff over is not important.

    I assume that we will have to recreate all community content in Sharepoint manually – I’m not as worried about this.

    Anyway – I am coninuing to research our options. If you have any other suggestions, I would greatly apprecitate it.

    Thanks,
    Lori

  2. richieh77 said

    I really appreciate your comments, I couldn’t beleive how little info was out there when we started this.

    We had 2 offshore teams in and 1 UK based team.

    All I can say is that the offshores wanted to customise…. well everything and the onshore team wanted to have a lengthy gap analysis, design and portlet harmogenisation process.

    We just didn’t have the time to load the front end of the project due to support termination constraints.

    I don’t have the exact figures to hand but we moved 170 communities and 400 projects in around 2 months I think. We utilised 2-3 offshore resources to copy and paste content from our HTML editor into the Sharepoint Content Editor, 1 dedicated dodcument and site creator, 1 project migrator and 1 QA person.

    We hosted the entire Community Structure within 1 single site collection that utilised a customised Team Site template. This meant we had a Site Collection Image Library available which we simply copied the entire plumtree imageserver folder to (less the bea content)

    Again stright forward as you can access the library via \\intranet…\Site Collection Images or map a network drive, 2 things to remember, make sure you enable the WebClient service and ensure you match the correct case(this had me for 2 days)

    Sharepoint has a section called Central Admin. Within here you can configure servers, create sites/web apps etc. There is also a section called the SSP which allows you to configure farm level properties, search settings, crawlers, mySites, Data Catalogs etc.

    It all depends on what you need the admin area to do. Most of the items you need from a Plumtree point of view are now held at the Site Colleciton level.

    You’ll also need to keep in mind that Sharepoint doesn’t allow the same method for organising objects like Plumtree did, there are no admin folders with portlets etc in it. In Sharepoint Web Part and there visibility is controlled at Site Collection level.

    Do you plan to use WSS 3 or MOSS 2007?

    Some useful things for your migration
    Replace Link allows you to specify an old URL and a new URL and replace all instances in a ListItem or File.
    http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spfile.replacelink.aspx

    Forward Links allows you to query an splistitem or spfile for links http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spfile.forwardlinks.aspx

    I am currently Full Time employed but any questions drop me a note and I’ll do my best to guide you

  3. Lori said

    Hi Richie,

    We are going to be using MOSS 2007. In addition to migrating our plumtree portal over to MOSS, the company that acquired us will be building out their portal in MOSS. Currently they have a lot of Sharepoint sites (siloed approach)-I think they have around 1,200 sites. Plus they are using an old content management system for their intranet site. We are going to migrate/build out our portal first and then they will migrate their content over to MOSS.

    I’m stressing the importance of design. We are planning on building one portal – this would require that both teams (the company I work for now and the company that is acquiring us) work together now to design the information architecture, layout, taxonomy, features/functionality, security, etc. I’m a little concerned with how to integrate the 1,200 existing sharepoint sites into MOSS also – but I guess we will cross that bridge when we get there.

    Plus we are using Documentum – something else we will need to integrate with Sharepoint down the road.

    Again – thank you for all of your help and info. The information that you provided will be a big help as we get this project underway.

    Lori :)

  4. Cp said

    Hi Richie,
    Thanks for your valuable information on the plumtree to MOSS 2007 migration.
    I do have few clarifications regarding the migration of collaboration services.
    As part of your migration what are the services that’s been migrated from plum tree to MOSS.
    Have you written custom code to migrate from plumtree to MOSS.

    Also,Can you please provide as inputs on how much effort you have made to migrate a single service.

    Thanks
    -Cp

  5. Lori said

    Hi Richie,

    We are just starting the discovery with Microsoft today. Microsoft estimates this to take about 3 weeks. Design will start immediatley following the discovery. I will keep you posted.

    Lori

  6. richieh77 said

    Hey Cp,
    In short yes we did write a custom tool. It took me between 5 and 10 days to get it somewhere close to what we needed. Most if not all the lessons I learned are on this blog which should help anyone following this path.

    For our migration we had to Create a Document Workspace; mirror the security; migrate the document folder structure, migrate the files and previous versions as well as the change audit trail. We did not move announcements, calendars or discussions.

    You will not be able to migrate the files and alter the Changer/Modified Date of the new list item without using the API

    Lori,
    Luck to you, I really hope this turns out well. All I can say is we’re delighted with the go live and came in well under budget. The business love the simplicity around the URL’s as they now are something tangeible.

    We are currently in post go live clean up and roadmapping, from this point of view we have Searching, keeping the URL’s short enough not to break the fixed quota and the Usage Stats to contend with.

    Watch out for wildcard searching… I have made an ammedment

  7. Vijay said

    Hi Riche,

    Thanks for sharing this information.
    Do you know any tool, which can migrate communities content to sharpeoint.

    Thanks in advance.

  8. richieh77 said

    The only 1 I’ve heard of is Tzunami.

    I have no idea about this tools capability and offer no recommendations as to it’s capabilities.

    But it is out there.

    In our scenario we decided to do it manually, we had 3 on site resources QA, Site Structure/Security Admin and 1 developer, in addition and 2-3 offshore resources. As the majority of our content was links and HTML this worked really well.

    Our system had been in place for 5 years prior to the migration. There was out of date content, badly structured communities, inappropriate portets being used etc….

    Doing things manually encourages the business to archive content in the interest of reducing time and cost. We’re in a much cleaner and better place from not carrying the mistakes from our previosu system with us.

  9. Anup Karade said

    Hi Richie!
    Great article ! Thank you for the valuable inputs. My company is also looking for this solution for moving BEA ALUI 5.0.2 to MOSS 2007.
    Some info here
    1. The BEA site conssist of about 90 communities with 300 pages
    2. There are about 625 ALUI Collaboration sites with migration of documents, their version history, calendar ,task,discussion security permission and memberships in scope.
    3. Migration of 550 ALUI groups to share point groups

    I need you help and guidance on following points
    1. Need to know in what sequence we should approach the project
    For ex Start with he importing profiles from AD then go for hand to hand migration of community sites
    2. Any script or tool to move Knowledge Directory documents, transfer security and metadata,

    And any other guidance from you.
    Thanks again
    Anup

  10. richieh77 said

    Hi Anup,

    We actually used TCS to help us with our migration, reach out to Srinidhi or Rohan, if you need last names let me know and I’ll send them via private mail.

    Points 1 and 2 is not to far from where we were… see post regarding It’s all over.
    Point 3… groups are a pain… Plumtree allowed you to nest, Sharepoint doesn’t, we use AD to control most access and then a very small number of groups in the Site Collection, incidently if you create 500 groups across your 90 sites, but only have 1 site collection, no matter which group management screen you goto you’ll see all 500+extras.

    OK, most important part is understanding what you have and where your going. We spent weeks looking at each portlet’s functionality and then mapping to a Sharepoint web part, this speeds up migration no end as the migrators know exactly what they’re doing. Secondly Content Types and Mapped Columns, understand what you need and implement them. Bring in AD users. Setup security groups. Run Community Migration and Collaboration in Parallel.

    Knowledge Directory #sigh#, Sharepoint doesn’t do this well, uploaded isn’t to bad, but crawled is a nightmare. Currently the Sharepoint crawl brings an index card in, but doesn’t bring the physical file with it unless you go custom, as a result you can’t META or ACL tag it. If the files are uploaded, they’ll be in the Plumtree Document Repositry. If this is the case they’ll need to be uplaoded to a Sharepoint list using a routine similar to the Collaboration Migration.

    I have broken the collaboration site migration across the early posts on this group. This article has the logic and some key table names in the comments to Lori, the rest cover file uploading, creating folders, altering author/modified date etc, syncing security, site collection creation, all you need to do is stitch the pieces together.
    bring in user profiles from AD,

  11. Anup Karade said

    Dear Richie,
    Thanks for the reply!
    Kindly send me the last names , email addressess of Srinidhi and Rohan. I can contact them, if they are still with us!

    Regards
    Anup

  12. Agraha said

    Greetings, Richie. I am working for a scientific company in Seattle doing research on cancer therapies. We are wanting to migrate from PlumTree to SharePoint, and your article is extremely helpful. I wonder if you could advise us more about your custom tool for reading the Plumtree database, creating the Site Collection…as you describe under Collaboration.

    I am sure it would save us huge amounts of time if we might be able to use in some way code from your custom tool. I did read the two links you mention on Creating Sites and Uploading Files and see the code excerpts also. But, again, it would be so great to be able to build upon all the work you did for this conversion. We are preparing the specs exactly as you have suggested as well–such as the number of Portlets and custom web parts.

    Thank you so much. Also, it would be so helpful to have the means of contacting Srinidhi and Rohan as well.

    Yours sincerely,
    Agraha
    alevine@ctiseattle.com

  13. Fehmina said

    Hi Richie,
    I have to do the exact same thing Manual Migration from plumtree to SharePoint 2010. I am new to plumtree so am confused where to start from. I have some concerns too i mean what can be migrated and what can’t. First i dont understand whether it can be done without using any migration tool. For basic sites we wont use any of migration tool else we have zeroed down on Tzunami. i am not sure how portlet will be transferred to sharepoint.
    i would really appreciate if you could reply back to me

    Thanks..
    fems

    • richieh77 said

      Hi Fems,
      It’s been several years since we were on Plumtree.
      You are either going to need a migration tool, a migration team or discard what the business has and get them to re-build.

      We built a migration tool, it took less than 1 month @ internal rate of £250/day so probably around £5000 the 3rd party tools were 10-100 times that

      We used simple SQL queries to retrieve a list of communities, security and documents and then a console application to create the sites using the SP API
      We then created separate Queries to retrieve collaboration server projects, security and documents, and created team sites(or document centres) again reusing the console application to query the database and set everything up.
      Get your Analysts/PM’s to determine what sites are dead and not needed.
      Also do a mapping exercise, map Portlet to web parts, we elected to do this side of the migration manually with offshore resources rather than complicating migrations.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.