Sadly, a common issue we are encountering is abysmally slow integration of Microsoft Project XML files with Deltek Cobra. Customers attempting to perform integration are waiting quite literally hours for the process to complete: and then only to have it fail on some occasions.
As you would expect, this is both frustrating and basically a show stopper for some groups, causing them to create workarounds. A common solution is creating .CSV files of schedule data from Microsoft Project and thus doing an end run around the more convenient XML integration.
The .CSV solution does work because the CSV files are much, much smaller than their bloated XML counterparts. I’ve encountered this problem so frequently now, that it’s time to share my recommended solution with you all in hopes that it restores faith in the Deltek Cobra EVMS solution for those who are close to, or actually loosing it.
The Reason
Every time we have encountered this complaint, we have learned that the Deltek Cobra clients are installed in a different geographical location to the Cobra application server. Every time: sometimes hundreds of miles across state lines or even across the entire country. So, no kidding, the performance stinks when you are trying to process very large and detailed files over huge distances. Microsoft Project XML files contain daily time-phased data.
That is to say, for every resource assigned to a activity, there is a daily record of the hours assigned. Add to this the fact that each record has headers, tags and other syntax surrounding it and you quickly build an enormous file. The daily time-phased data is awesome because it allows Cobra to create a very accurate spread of planned value in the project. But if you are not working on a Deltek Cobra client that shares a local network with the Cobra Application Server, then suddenly all bets are off. Here’s what’s happening.
Let’s say, for example, that you are using a Deltek Cobra client in Amarillo, Texas, but the company’s Cobra server is hosted 1,584 miles away in Fairfax, Virginia. The integration wizard is pointing to an XML file on your local PC’s disk drive.
When you start the integration, the application server is doing much of the processing, and is therefore parsing the XML file over the 1,500 mile wide area network. Couple this with the previously mentioned bloated XML files, and pretty soon things are getting jammed up.
The Cobra users in the Fairfax office however, are experiencing no such issues. Their XML files load in just minutes – no problem.
The Solution
The solution is simple and well within any IT budget. We need the XML file to be on a disk drive that is local to the network where the Deltek Cobra Application Server is installed, or even better, is on the same physical disk drive being used by the Cobra Application Server.
To do this, create a shared folder on that disk drive that is visible to both the Cobra Application Server and the remote users in Texas. Something like a shared folder mapped as an S: drive that is physically resident on the Cobra Application Server’s disk drive would do nicely.
It looks like this:
Now, when a Cobra user in Texas wants to integrate with a Microsoft Project XML file, they copy it to the shared ‘S: drive’ that is mapped and visible on their local machine. This places the file on the disk drive that is physically in Fairfax. Now, when they do the integration, they point at that shared drive in the integration wizard.
Because the file is now local, the Cobra Application Server is processing the file right there, reading directly off its own disk drive and not having to read millions of data packets over a 1,500 mile distance.
Summary
This is a proven solution. Many of our customers have made this change to their setup and found it to be orders of magnitude faster than remote XML integrations. So, if you are struggling with abysmal performance when integrating your Microsoft Project XML files with Deltek Cobra, then forward this blog’s URL to your IT folks and ask them to set this up for you.
Now I’m no software engineer, but in essence this does seem to be a workaround to a design defect in Deltek Cobra’s architecture. Would it not be rather cool if Deltek could implement a software solution that simulates this workaround?
That is to say: when a Cobra client user points the integration wizard at a local XML file, internally the process first copies this file over the network to a temporary area of memory on the Application Server, and then process it from there. The user would be unaware of the event, but would see massive improvements in performance without having to remember to copy the XML files to special shared folders to achieve the same affect.