Is one-way project and task sychronization between multiple instances of PS 2010 feasible? RRS feed

  • Question

  • How does custom programming come into play for "synchronizing" two (or more) separate PS 2010 production instances?

    (Each "instance" represents a set of five internal databases necessary for PS 2010 to function--draft, archive, publish, reporting, SharePoint--along with the associated licenses, hardware, OS in place.)

    Here is a scenario with one source PS 2010 instance and one receiving PS2010 instance:

    On date t0, it's possible to backup portfolio of 1000 projects in the "source" instance of PS 2010 and restore them to an independent, "receiving" instance of PS 2010.

    On date t1, perhaps a month later, the source portfolio is now 1015 projects in scope. 50 existing projects each have a new summary task with three children tasks. Durations and dates from most other projects in the source instance have also progressed/changed.

    By date t1 in the receiving instance of PS 2010 that was created on t0, planners have been adding data, including detailed tasks to the original 1000 projects.

    At the end of the day, t1, how is it possible for receiving instance of PS 2010 to achieve a one-way update from the source instance of PS 2010:

    1. Create 15 new projects
    2. Add 200 added tasks to 50 of the existing 1000 projects
    3. Update modified task dates, durations, and selected custom enterprise fields across the 1000 existing projects
    4. Have confidence that these updates have accurately taken place for all 1015 projects
    5. Perform a similar scope of update at t2, t3, t4, etc. as the source portfolio progresses in time

    I recognize that staying in one database would eliminate one-way synchronization challenges. Performing updates manually, one project at a time, is always possible, if not optimal.

    If a given task row already exists in two databases, field-by-field updates could be a valid approach for such tasks.

    From what I have discerned, PS 2010 (or 2007) has no built-in function or capability for selective task updates of multiple existing projects in a receiving instance where new tasks are created in the source instance. I'd really appreciate learning whether or not my hypothesis is valid.

    If custom programming makes this one-way sychronization possible with multiple (two or more) instances of PS 2010, would it be feasible to perform updates regularly (once a month?) without engaging a new programming effort each time? In my personal perspective, regular, selective project updates belong to business/project operations rather than IT/VBA folks.

    Thanks kindly.





    Wednesday, October 13, 2010 7:38 PM


All replies

  • Yes I have seen customers ask this in the past and it is certainly feasible now that PS handles all data with GUID, BUT it will require customization and might be a complex project depending on the exact need.
    Blog | Facebook | Twitter | Posting is provided "AS IS" with no warranties, and confers no rights.
    Project Server TechCenter | Project Developer Center | Project Server Help | Project Product Page
    Wednesday, October 13, 2010 11:59 PM
  • Christophe,

    Would you please provide an overview of how PS 2010 can insert/copy new tasks from projects scattered across one instance into another PS 2010 instance?

    How does it locate the parent task in a given project to create and integrate the new child tasks? Comparing GUIDs project by project and task by task across thousands of long-duration projects could be fairly time consuming, even on modern servers.

    Since multiple instances would increase the overall number of GUIDs, do we have a means to map a source-instance GUID with two (possibly four or more) receiving-instances of PS 2010?

    It's possible that future software releases after PS 2010 (say in three-five years) would require re-engineering the initial synchronization programming effort. Or, am I missing something here?

    I appreciate that you indicate that this multi-instance synchronization might be a complex project to accomplish. How long the synchronization process would take the PS 2010 instances offline each time (monthly plus ad hoc) to handle as many as 2000 projects in the master/source portfolio is another factor to ponder.

    Doing this one-off would be different than setting up a robust automation process that would enable operations personnel to schedule it once per month. My hunch is that each time one performs such one-way synchronization, a programmer would have to "tweak" the set of scripts to assure that everything remains functional.

    What is your feeling on the amount of programming support multi-instance synchronization would require in the long term? Feasible and realistically affordable do not always coincide <grin>.

    Thanks very much for your thoughtful answers.


    Thursday, October 14, 2010 1:10 PM
  • John this could be a lenghty discussion but will try to a high level response. You can leverage the PSI to get data from one instance and push it to another. Yes careful thinking needs to be done to figure out what is synchronized to ensure optimal performance.

    With regards to mapping yse, ideally you have a set of relationship tables that track the one to many relationships that requires synchronization.

    Can't comment on future versions.

    Again at a high level we do this two way sync when we integrate with other Line Of Business application like an ERP or Team Foundation Server for instance, so yes its very feasible.

    Estimating the effort is hard, I could hard code a one way project sync in a few hours but the challenge would be testing all the edge cases and ensuring all exceptions are handled correctly, and that could take days...

    Blog | Facebook | Twitter | Posting is provided "AS IS" with no warranties, and confers no rights.
    Project Server TechCenter | Project Developer Center | Project Server Help | Project Product Page
    Thursday, October 14, 2010 6:52 PM
  • Christophe,

    I suspect that this would be at least the same level of complexity as synchronizing with SAP.

    Avoiding heroic effort to achieve consistently clean transfer/update/creation of data would be a signficant operational requirement. 

    Having a world-class consultant accomplish this programming is ideal. My concern is how much proficiency in subsequent years of production one needs to make multi-instance synchronization remain robust after the consultant finishes his/her contract.

    As requirements evolve, I anticipate the need for at least weekly, if not nightly one-way synchronization from a master PM instance of PS 2010 to several receiving instances. Child tasks may move from one summary task in the master schedule to another (from one WBS branch to another WBS branch) with some frequency.

    I'm very impressed that you are not blinking at such a challenge, Chrisophe. Multi-instance synchronization can be a customization reality with PS 2010.




    Thursday, October 14, 2010 7:25 PM
  • Yes not blinking at the challenge because in the past when I was a consultant (currently have a marketing role) and I worked on this type of scenario and 2007 and now 2010 was a major improvement due to the fact that entities have now GUID. Yes get a competent consultant and down try to boil the ocean in one release :)
    Blog | Facebook | Twitter | Posting is provided "AS IS" with no warranties, and confers no rights.
    Project Server TechCenter | Project Developer Center | Project Server Help | Project Product Page
    Thursday, October 14, 2010 11:19 PM
  • Christophe,

    I had forgottten that you are a Microsoft employee. I would not have raised the question as I did with the possibility of having to redo synchronization scripts when a new release eventually happens.

    1. Would you mind clarifying your phrase, perhaps because of a typo:

    "...due to the fact that entities have not GUID"

    2. Is there any white paper or less formal documentation that you can recommend  that describes best practices using GUIDs for inter-system data synchronization? Possibly Rod Gil will discuss in his upcoming PS 2010 title, Developer's Guide to Microsoft Project 2010.

    3. From your experience, would you briefly comment on the challenges of creating a synchronization script when faced with a newly emerging WBS structure that is likely to mature over coming months and years? 

    Even though GUIDs are unique, I have concerns that any script prepared with an initial WBS design could "break" after many tasks take on a new parent (or different parents) within that WBS evolution in the source instance of PS 2010. Flexibility in adapting the WBS is almost as important as robust synchronization.

    Thanks very kindly, Christophe, for sharing your insights.




    Friday, October 15, 2010 2:01 PM
  • #1 yes fixed the typo, thanks for pointing out, basically a resource, a task, a project etc.. each have a unique GUID associated with them.

    #2 have not seen one, but stepping back from the PS world this is common for any app to app data exchange

    #3 not sure I understand the question

    Agree on the flexibility, again very similar challenge when you synchronize with SAP for instance

    Blog | Facebook | Twitter | Posting is provided "AS IS" with no warranties, and confers no rights.
    Project Server TechCenter | Project Developer Center | Project Server Help | Project Product Page
    Friday, October 15, 2010 7:22 PM
  • Christophe,

    On #3: I infer that having high flexibiity in the source instance WBS structure will tend towards additional complexity in making inter-system data transfers. An alternative, perhaps, is a later programming/PSI redo--reboiling the ocean anew <grin>.

    Thanks again.


    Friday, October 15, 2010 8:32 PM