Business Need

For one of our customers, a pharmaceutical company in Central Europe, we are implementing M-Files solution as a main solution for managing Projects and Project Documentation. M-Files has great flexibility when it comes to design and implementation of various objects. So it is easily adoptable for variety range of implementations from Invoice Processing, HR, CRM to Project Management.

Our customer needs functionalities that are, more or less, part of every project management solution:

  • Project Management
  • Phase and Milestone Management
  • Project Finance
  • Project Documents
  • Task and Resource Planning

In M-Files we have GANTT Chart View which serves as a great way for Project Managers to manage resources and to track project plan. Still, our pharma customer and users within company are used to work with Microsoft Project and their project managers would like to do the planning using Microsoft Project.

In order to support both planning within M-Files and Microsoft Project, we have to develop our own solution which will do two-way integration. The main goal is to support high-level project management planning within M-Files and then use Microsoft Project client for detailed resource planning.

The Solution

After detailed analysis of requirements and possible solutions, we decided to create .MPP (Microsoft Project file) for every project in M-Files. This solution would allow project managers to have .MPP file that is always accurate with data from M-Files. On each project change we have to update document in order to have accurate data within .MPP file. Moreover, we need to do update on everything changed from within Microsoft Project as well as to create new objects in M-Files.

Why Aspose.Task?

In order to achieve these functionalities, we decided to use Aspose.Task. Apsose.Task is a library that contains set of different actions that allows you to work with MS Project File. Creation of new task is simple as:

Task task = project.RootTask.Children.Add("Task 1"); Task subtask = task.Children.Add("Task 1.1");

Every time user makes some changes in .MPP file we will read all available MS Project objects (tasks, phases, resources,…) and match them with our current situation in M-Files.

foreach (var task in project.RootTask.SelectAllChildTasks()) { // Update task }

The usage of Aspose.Net is amazingly straightforward and it allows you to read, write and manipulate Microsoft Project documents without any Microsoft Project dependencies. Basically, any action that you can use in MS Project is supported within library and you can do whatever manipulation you would like to do (create new project, handle resources, manage assignments, sort tasks, work with custom properties, …).

As a partner that develops M-Files add-ons, it is great to have Aspose.Task library. We will continue to develop this M-Files — Microsoft Project integration and we do believe that many partners and M-Files customers would find it useful for their Project Management solutions.