MPP para XER

O MPP é um dos principais formatos do Microsoft Project frequentemente utilizado para armazenar cargas de trabalho, cronogramas e finanças. Desde o lançamento inicial do Microsoft Project em 1984, ele está sendo usado para gerenciar projetos, desenvolver cronogramas, definir orçamentos e alocar recursos. Portanto, o formato MPP é o tipo de arquivo nativo associado ao Microsoft Project e armazena informações do projeto ao salvar um projeto. Da mesma forma, o formato de arquivo XER é um formato de arquivo de projeto proprietário usado pelo aplicativo de planejamento e gerenciamento de projetos Primavera P6. Portanto, caso haja um requisito para converter os arquivos MPP para outro formato, precisamos instalar e configurar uma solução local ou optar por uma solução baseada em nuvem.

API de processamento do Microsoft Project

O Microsoft Project e o Primavera P6 estão entre os formatos de arquivo populares usados para atribuições de projeto, tarefas, recursos, calendários, atributos e informações de agendamento. Para facilitar que nossos clientes processem esses documentos programaticamente, desenvolvemos a API Aspose.Tasks Cloud, que é uma solução baseada em REST que permite que você obtenha itens de atribuição de projeto, adicione novas atribuições a projetos, obtenha todas as tarefas de um projeto, altere a posição da tarefa, adicione um calendário ao projeto, obtenha dados em escala de tempo e muito mais. Execute todas essas operações sem instalar nenhum software de terceiros.

Além disso, desenvolvemos o Aspose.Tasks Cloud SDK para .NET, que é um wrapper em torno do Aspose.Tasks Cloud e permite que você implemente todas as tarefas relacionadas ao gerenciamento de projetos no aplicativo .NET.

Instalação

Para usar o .NET Cloud SDK, o primeiro passo é instalá-lo no sistema. Ele está disponível para download no NuGet e no GitHub. Execute o seguinte comando no terminal para instalar o SDK via NuGet:

nuget install Aspose.Tasks-Cloud

Caso você precise instalar a partir do Gerenciador de Pacotes NuGet, execute o seguinte comando:

PM> Install-Package Aspose.Tasks-Cloud

Abordagem do Visual Studio

Outra abordagem é a instalação diretamente no Visual Studio:

  1. Abra o Solution Explorer.
  2. Expanda o projeto e clique com o botão direito do mouse na pasta Pacotes dentro da sua solução.
  3. Selecione a opção Gerenciar pacotes NuGet…
  4. Clique na aba Navegar e procure por “Aspose.Tasks-Cloud“.
  5. Clique na caixa de seleção ao lado do pacote Aspose.Tasks-Cloud, selecione a versão apropriada na aba direita e clique no botão Adicionar pacote.
Image 1:- Aspose.Tasks-Cloud as NuGet package.

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

Assinatura gratuita da nuvem

Para acessar as APIs do Cloud, precisamos primeiro criar uma conta de assinatura gratuita do Cloud. Sim, você ouviu direito. Uma conta de assinatura gratuita que fornece até 150 solicitações de processamento de documentos gratuitas. Nenhum cartão de crédito ou outros detalhes de pagamento são necessários. Então, para concluir este processo, visite Aspose.Cloud dashboard. Se você tiver uma conta GitHub ou Google, basta se inscrever. Caso contrário, clique no botão Create a new Account e forneça as informações necessárias. Agora, faça login no painel usando credenciais e expanda a seção Applications do painel e role para baixo em direção à seção Client Credentials para ver os detalhes do Client ID e do Client Secret.

Credenciais do cliente

Imagem 2:- Credenciais do cliente no painel do Aspose.Cloud.

MPP para XER em C#

Siga as etapas abaixo para realizar a conversão do arquivo MPP para o Primavera P6 XER no aplicativo C# .NET.

  • Primeiro, crie um objeto de configuração fornecendo os detalhes do ID do cliente e do segredo do cliente.
  • Em segundo lugar, crie um objeto de TasksApi enquanto passa o objeto Configuration como argumento.
  • Terceiro, leia o arquivo MPP da unidade local e carregue-o no armazenamento em nuvem usando o método UploadFile(..) do TasksApi.
  • Agora crie um objeto de GetTaskDocumentWithFormatRequest onde definimos o nome do MPP de entrada e o formato resultante da enumeração ProjectFileFormat.
  • Em seguida, chamamos o método GetTaskDocumentWithFormat(…) da TasksApi para iniciar o processo de conversão.
  • Por fim, para salvar a saída XER na unidade local, usamos o objeto File.Create dentro do método saveToDisk(…).
// Obter ClientID de https://dashboard.aspose.cloud/
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// criar um objeto de configuração
var config = new Configuration{ AppSid= clientID, AppKey = clientSecret };

// inicializar objeto Aspose.Tasks
var tasksApi = new TasksApi(config);

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

try
{
    // leia o arquivo MPP de entrada do armazenamento local
    using (var inputStream = new FileStream("/Users/nshahbaz/Downloads/" + inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest(inputFile, inputStream);
        
        // carregue o arquivo para o armazenamento em nuvem
        tasksApi.UploadFile(uploadFileRequest);
    }

    // inicializar o processo de conversão de MPP para 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 !");
    }

    // salve o arquivo resultante na unidade local
    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();
}

Converter MPP para Primavera P6 usando cURL

Os comandos cURL são outra maneira conveniente de acessar APIs REST por meio do terminal de linha de comando. Portanto, também podemos acessar o Aspose.Tasks Cloud por meio de comandos cURL e cumprir nossos requisitos. No entanto, antes de acessar as APIs, precisamos gerar um JSON Web Token (JWT) com base nos detalhes do ClientID e ClientSecret recuperados do painel do Aspose.Cloud. Execute o seguinte comando no terminal para gerar o token 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"

Depois que o token JWT for gerado, execute o seguinte comando para converter o arquivo MPP disponível no armazenamento em nuvem para o formato 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

O arquivo de amostra usado no exemplo acima pode ser baixado de Home move plan.mpp.

Conclusão

Neste artigo, discutimos as etapas sobre como converter o arquivo do Microsoft Project (MPP) para o arquivo Oracle Primavera P6 XER usando o snippet de código C# .NET, bem como o comando cURL. Além disso, o mecanismo de licenciamento foi projetado de forma tão flexível que você paga apenas pelo intervalo em que utilizou nossos serviços. Além disso, com a assinatura de conta gratuita, você tem direito a até 150 solicitações de processamento de documentos gratuitas. Então, quando estiver satisfeito com a API, você pode considerar optar por uma compra de licença que é bastante flexível. Você só é cobrado pelas solicitações que fez ao servidor e pode ser tão baixo quanto $ 0,005 / Chamada de API. Você pode visitar a página preços para mais detalhes.

No entanto, nossos Cloud SDKS são desenvolvidos sob MIT License, então seu snippet de código completo pode ser baixado do GitHub. Caso você encontre algum problema ao usar a API ou tenha alguma dúvida relacionada, sinta-se à vontade para entrar em contato via Free Support forum.

Artigos relacionados

Também recomendamos visitar os seguintes links para saber mais sobre: