MPP'den XML'e

MPP Dosyasını XML’e Dönüştürme | Microsoft Project dosyasını C# ile XML’e aktarma

Microsoft Project en popüler ve yaygın proje yönetim yazılımlarından biridir. Yazılım, projeleri planlamanıza, görev atamanıza, kaynakları ve iş akışlarını yönetmenize, raporlar oluşturmanıza vb. olanak tanır. Ancak, MS Project kayıtlı olmayan kullanıcılar için MPP formatlı dosyayı açma veya düzenleme olanağı sağlamaz. Bu, satın alınmış bir Microsoft Project lisansınız yoksa MPP dosyalarıyla çalışamayacağınız anlamına gelir. Bu nedenle, proje dosyalarını paylaşırken, alıcı yalnızca görüntülemek istese bile bir MS Project aboneliğine sahip olmalıdır. Bu nedenle, MPP dosyasının XML’e dönüştürülmesi iyi bir çözüm olabilir.

Microsoft Project Dosya Dönüştürme API’si

Aspose.Tasks Cloud, proje yönetim dosyalarını çeşitli Desteklenen Dosya Biçimlerine dönüştürme, işleme ve oluşturma özellikleri sunan REST API’mizdir. Proje dosyasını işlemek için dosyayı bulut depolama alanından yükleyebilir, projeyi primavera DB biçiminden (primavera SQLite.db veya primavera XML) içe aktarabilir ve projeyi belirtilen bir bağlantı dizesiyle veritabanından içe aktarabilir veya projeyi Project Online’dan içe aktarabilirsiniz. Bu makalenin kapsamına göre, NuGet ve GitHub adresinden indirilebilen Aspose.Tasks Cloud SDK for .NET kullanacağız. Lütfen SDK’yi NuGet aracılığıyla yüklemek için terminalde aşağıdaki komutu çalıştırın:

nuget install Aspose.Tasks-Cloud

SDK’yı doğrudan NuGet paket yöneticisine kurmak için lütfen aşağıdaki komutu çalıştırın:

 PM> Install-Package Aspose.Tasks-Cloud

Şimdi Aspose.Cloud panosunu ziyaret ederek ücretsiz bir abonelik hesabı oluşturmamız gerekiyor. GitHub veya Google hesabınızı kullanarak Kaydolun veya Yeni Hesap Oluştur öğesine tıklayın ve İstemci Kimlik Bilgilerinizi edinin.

MPP’yi C#’ta XML’e dönüştürme

Dönüştürme işlemini C# .NET kullanarak gerçekleştirmek için lütfen aşağıda belirtilen adımları izleyin

  • Öncelikle ClientSecret ve ClientId ayrıntılarını argüman olarak geçirirken bir TasksApi nesnesi oluşturmamız gerekiyor
  • İkinci olarak, MPP içeriğini FileStream örneğine yükleyin
  • Şimdi MPP içeriği içeren bir dosya adı ve Akış örneği gerektiren PostCreateRequest sınıfının bir nesnesini oluşturun
  • Bir dosyayı Cloud depolama alanına yüklemek için TasksApi’nin UploadFile(…) metodunu çağırın
  • Ardından, GetTaskDocumentWithFormatRequest sınıfının bir nesnesini oluşturun
  • ProjectFileFormat numaralandırmasından XML değerini belirtin ve değeri GetTaskDocumentWithFormatRequest nesnesinin Format özelliğine atayın
  • Şimdi dönüştürme işlemini gerçekleştirmek için GetTaskDocumentWithFormat(…) metodunu çağırın
  • Son adımın çıktısı Stream örneğinde kaydedildiğinden, çıktıyı yerel sürücüye kaydetmek için File.Create nesnesini kullanmamız gerekir. Ayrıntılar saveToDisk(..) özel yönteminde görülebilir.
// ClientID'yi https://dashboard.aspose.cloud/ adresinden alın
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// TasksApi örneği oluştur
TasksApi tasksApi = new TasksApi(clientSecret, clientID);

// MPP dosya adını girin
String inputFile = "Home move plan.mpp";
// sonuç XML dosya adı
String resultant = "Converted.xml";

try
{

    // proje belgesini yerel sistemden akış örneğine oku
    using (var inputStream = new FileStream("C:\\Users\\shahbnay\\Downloads\\"+inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest("Home move plan.mpp", inputStream);
        // dosyayı bulut depolama alanına yükle
        tasksApi.UploadFile(uploadFileRequest);
    }
   
    // MPP dosya dönüştürme isteği oluştur
    var request = new GetTaskDocumentWithFormatRequest();
    
    // Cloud depolama alanından giriş MPP adını belirtin
    request.Name = inputFile;
    
    // XML'i sonuç biçimi olarak ayarla
    request.Format = Aspose.Tasks.Cloud.Sdk.Model.ProjectFileFormat.Xml;
    
    // Parametre doğruysa, HTML kaynakları ayrı dosyalar olarak dahil edilir ve
    // Sonuç olarak html dosyası zip paketi halinde geri döndürüldü.
    request.ReturnAsZipArchive = false;
    
    // belge dönüştürme işlemini gerçekleştir
    Stream response = tasksApi.GetTaskDocumentWithFormat(request);

    if (response != null)
    {
        Console.WriteLine("Successfully converted MPP to XML !");
    }
    
    // sonuç dosyasını yerel sistem sürücüsüne kaydetmek için özel yöntem
    saveToDisk(response, "C:\\Users\\shahbnay\\Downloads\\" + resultant);
}catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// akış içeriğini dosya nesnesi olarak kaydetme yöntemi
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

Yukarıdaki örnekte kullanılan örnek dosyalar Home move plan.mpp ve Converted.xml üzerinde bulunabilir.

cURL Komutlarını Kullanarak MPP’yi XML’e Dönüştürme

cURL komutları, REST API’lerine komut satırı terminali aracılığıyla erişmek için mükemmel bir mekanizma sağlar. Aspose.Tasks Cloud da REST prensiplerine göre geliştirildiğinden, cURL komutlarını kullanarak API’ye erişebiliriz. Ancak API’lere yalnızca yetkili kişiler erişebildiğinden, İstemci Kimliği ve İstemci Gizli Ayrıntıları’na dayanarak bir JWT erişim belirteci oluşturmamız gerekir. Lütfen JWT erişim belirteci oluşturmak için aşağıdaki komutu çalıştırın.

 curl -v "https://api.aspose.cloud/connect/token" \
 -X POST \
 -d "grant_type=client_credentials&client_id=4db2f826-bf9c-42e7-8b2a-8cbca2d15553&client_secret=d757548a9f2558c39c2feebdf85b4c44" \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Accept: application/json"

MPP dosyasını Cloud depolamaya yüklemek için lütfen aşağıdaki cURL komutunu çalıştırın.

curl -X PUT "https://api.aspose.cloud/v3.0/tasks/storage/file/Home%20move%20plan.mpp" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-d {"File":{}}

Son olarak, MPP dönüşümünü XML formatına dönüştürmek ve çıktıyı yerel sürücüye (belirtilen yola) kaydetmek için aşağıdaki komutu çağırın.

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

Çözüm

Makalede Microsoft Project dosyasının C# .NET kod parçacığı kullanılarak XML’e nasıl dönüştürüleceğiyle ilgili ayrıntılar paylaşıldı. Ayrıca, tüm Cloud SDK’larımızın bir MIT lisansı altında geliştirildiğini ve bu nedenle tam kod parçacığının GitHub adresinden indirilebileceğini lütfen unutmayın. API’yi kullanırken herhangi bir sorunla karşılaşırsanız veya ilgili sorularınız varsa lütfen Ücretsiz Ürün destek forumu aracılığıyla bizimle iletişime geçmekten çekinmeyin.

İlgili makaleler

Ayrıca daha fazla bilgi edinmek için aşağıdaki bağlantıları ziyaret etmenizi öneririz