MPP в XER

MPP — один из основных форматов Microsoft Project, часто используемый для хранения рабочих нагрузок, расписаний и финансов. С момента раннего выпуска Microsoft Project в 1984 году он используется для управления проектами, разработки расписаний, установления бюджетов и распределения ресурсов. Таким образом, формат MPP является собственным типом файла, связанным с Microsoft Project, и сохраняет информацию о проекте при сохранении проекта. Аналогично, формат файла XER — это фирменный формат файла проекта, используемый приложением планирования и управления проектами Primavera P6. Поэтому в случае необходимости преобразования файлов MPP в другой формат нам необходимо либо установить и настроить локальное решение, либо выбрать облачное решение.

API обработки Microsoft Project

Microsoft Project и Primavera P6 входят в число популярных форматов файлов, используемых для проектных заданий, задач, ресурсов, календарей, атрибутов и информации о расписании. Чтобы облегчить нашим клиентам программную обработку этих документов, мы разработали API Aspose.Tasks Cloud, который представляет собой решение на основе REST, позволяющее вам получать элементы проектных заданий, добавлять новые задания в проекты, получать все задачи проекта, изменять положение задачи, добавлять календарь в проект, получать данные по времени и многое другое. Выполняйте все эти операции без установки стороннего программного обеспечения.

Кроме того, мы разработали Aspose.Tasks Cloud SDK для .NET, который представляет собой оболочку вокруг Aspose.Tasks Cloud и позволяет вам реализовывать все задачи, связанные с управлением проектами, в приложении .NET.

Установка

Чтобы использовать .NET Cloud SDK, первым шагом является его установка в системе. Он доступен для загрузки через NuGet и GitHub. Выполните следующую команду в терминале, чтобы установить SDK через NuGet:

nuget install Aspose.Tasks-Cloud

Если вам необходимо выполнить установку из диспетчера пакетов NuGet, выполните следующую команду:

PM> Install-Package Aspose.Tasks-Cloud

Подход Visual Studio

Другой подход — установка непосредственно в Visual Studio:

  1. Откройте обозреватель решений.
  2. Разверните проект и щелкните правой кнопкой мыши папку Packages в вашем решении.
  3. Выберите опцию «Управление пакетами NuGet…».
  4. Нажмите на вкладку «Обзор» и найдите «Aspose.Tasks-Cloud».
  5. Установите флажок рядом с пакетом Aspose.Tasks-Cloud, выберите соответствующую версию на правой вкладке и нажмите кнопку Добавить пакет.
заголовок

Image 1:- Aspose.Tasks-Cloud as NuGet package.

Бесплатная подписка на облако

Чтобы получить доступ к API облака, нам сначала нужно создать бесплатную учетную запись подписки облака. Да, вы не ослышались. Бесплатная учетная запись подписки, предоставляющая до 150 бесплатных запросов на обработку документов. Не требуются данные кредитной карты или другие платежные реквизиты. Поэтому для завершения этого процесса, пожалуйста, посетите панель управления Aspose.Cloud. Если у вас есть учетная запись GitHub или Google, просто зарегистрируйтесь. В противном случае нажмите кнопку Создать новую учетную запись и укажите необходимую информацию. Теперь войдите в панель управления, используя учетные данные, разверните раздел «Приложения» на панели управления и прокрутите вниз до раздела «Учетные данные клиента», чтобы увидеть данные идентификатора клиента и секретного ключа клиента.

Учетные данные клиента

Изображение 2: Учетные данные клиента на панели управления Aspose.Cloud.

MPP в XER в C#

Чтобы выполнить преобразование файла MPP в Primavera P6 XER в приложении C# .NET, выполните указанные ниже действия.

  • Прежде всего, создайте объект конфигурации, указав данные идентификатора клиента и секретного ключа клиента.
  • Во-вторых, создайте объект TasksApi, передав объект Configuration в качестве аргумента.
  • В-третьих, считайте MPP-файл с локального диска и загрузите его в облачное хранилище, используя метод UploadFile(..) TasksApi.
  • Теперь создаем объект GetTaskDocumentWithFormatRequest, где мы определяем входное имя MPP и результирующий формат из перечисления ProjectFileFormat.
  • Затем мы вызываем метод GetTaskDocumentWithFormat(…) TasksApi, чтобы инициировать процесс преобразования.
  • Наконец, для сохранения выходного XER на локальном диске мы используем объект File.Create внутри метода saveToDisk(…).
// Получите ClientID с https://dashboard.aspose.cloud/
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// создать объект конфигурации
var config = new Configuration{ AppSid= clientID, AppKey = clientSecret };

// инициализировать объект Aspose.Tasks
var tasksApi = new TasksApi(config);

String inputFile = "Home move plan.mpp";
String resultant = "Output.xer";

try
{
    // прочитать входной MPP-файл из локального хранилища
    using (var inputStream = new FileStream("/Users/nshahbaz/Downloads/" + inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest(inputFile, inputStream);
        
        // загрузить файл в облачное хранилище
        tasksApi.UploadFile(uploadFileRequest);
    }

    // инициализировать процесс преобразования MPP в XER
    var response = tasksApi.GetTaskDocumentWithFormat(new GetTaskDocumentWithFormatRequest
    {
        Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xer,
        Name = inputFile,
        Folder = null,
    });

    if (response != null )
    {
        Console.WriteLine("Successfully converted MPP to XER !");
    }

    // сохранить полученный файл на локальном диске
    saveToDisk(response, "/Users/nshahbaz/Downloads/" + resultant);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

public static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

Конвертируйте MPP в Primavera P6 с помощью cURL

Команды cURL — еще один удобный способ доступа к REST API через терминал командной строки. Таким образом, мы также можем получить доступ к Aspose.Tasks Cloud через команды cURL и выполнить наши требования. Однако перед доступом к API нам необходимо сгенерировать JSON Web Token (JWT) на основе сведений ClientID и ClientSecret, полученных из панели управления Aspose.Cloud. Выполните следующую команду в терминале, чтобы сгенерировать токен JWT.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

После генерации токена JWT выполните следующую команду, чтобы преобразовать файл MPP, доступный в облачном хранилище, в формат XER.

curl -X GET "https://api.aspose.cloud/v3.0/tasks/Home%20move%20plan.mpp/format?format=xer&returnAsZipArchive=false" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-o Converted.xer

Использованный файл-образец. Приведенный выше пример можно загрузить с Home move plan.mpp.

Заключение

В этой статье мы обсудили шаги по преобразованию файла Microsoft Project (MPP) в файл Oracle Primavera P6 XER с помощью фрагмента кода C# .NET, а также с помощью команды cURL. Более того, механизм лицензирования был разработан настолько гибко, что вы платите только за тот интервал, в течение которого вы пользовались нашими услугами. Кроме того, в рамках бесплатной подписки на учетную запись вы имеете право на до 150 бесплатных запросов на обработку документов. Поэтому, как только вы будете удовлетворены API, вы можете рассмотреть возможность покупки лицензии, которая является довольно гибкой. Вы платите только за запросы, которые вы сделали на сервер, и она может составлять всего 0,005 долл. США / вызов API. Вы можете посетить страницу pricing для получения более подробной информации.

Тем не менее, наши Cloud SDKS разработаны под лицензией MIT, поэтому их полный фрагмент кода можно загрузить с GitHub. Если у вас возникнут какие-либо проблемы при использовании API или у вас возникнут какие-либо вопросы, пожалуйста, свяжитесь с нами через бесплатный форум поддержки.

Похожие статьи

Мы также рекомендуем посетить следующие ссылки, чтобы узнать больше о: