MPP'den XER'e

MPP, iş yüklerini, çizelgeleri ve finansları depolamak için sıklıkla kullanılan Microsoft Project’in birincil biçimlerinden biridir. Microsoft Project’in 1984’teki erken sürümünden bu yana, projeleri yönetmek, çizelgeler geliştirmek, bütçeler belirlemek ve kaynakları tahsis etmek için kullanılmaktadır. Bu nedenle, MPP biçimi Microsoft Project ile ilişkili yerel dosya türüdür ve bir projeyi kaydederken proje bilgilerini depolar. Benzer şekilde, XER dosya biçimi, Primavera P6 proje planlama ve yönetim uygulaması tarafından kullanılan tescilli bir proje dosya biçimidir. Bu nedenle, MPP dosyalarını başka bir biçime dönüştürme gereksinimi olması durumunda, şirket içi bir çözüm kurmamız ve yapılandırmamız veya bulut tabanlı bir çözüm seçmemiz gerekir.

Microsoft Project işleme API’si

Microsoft Project ve Primavera P6, proje atamaları, görevler, kaynaklar, takvimler, nitelikler ve zamanlama bilgileri için kullanılan popüler dosya biçimleri arasındadır. Müşterilerimizin bu belgeleri programatik olarak işlemesini kolaylaştırmak için, proje atama öğelerini almanıza, projelere yeni atamalar eklemenize, bir projenin tüm görevlerini almanıza, görev konumunu değiştirmenize, projeye bir takvim eklemenize, zaman ölçekli veriler almanıza ve çok daha fazlasına olanak tanıyan REST tabanlı bir çözüm olan Aspose.Tasks Cloud API’sini geliştirdik. Tüm bu işlemleri herhangi bir üçüncü taraf yazılımı yüklemeden gerçekleştirin.

Ayrıca, Aspose.Tasks Cloud‘yi çevreleyen bir sarmalayıcı olan Aspose.Tasks Cloud SDK for .NET‘yı geliştirdik ve tüm proje yönetimiyle ilgili görevleri .NET uygulaması içerisinde uygulamanıza olanak sağladık.

Kurulum

.NET Cloud SDK’yı kullanmak için ilk adım, onu sisteme kurmaktır. NuGet ve GitHub üzerinden indirilebilir. SDK’yı NuGet üzerinden kurmak için lütfen terminalde aşağıdaki komutu çalıştırın:

nuget install Aspose.Tasks-Cloud

NuGet Paket Yöneticisi’nden yükleme yapmanız gerekirse lütfen aşağıdaki komutu çalıştırın:

PM> Install-Package Aspose.Tasks-Cloud

Visual Studio yaklaşımı

Başka bir yaklaşım da doğrudan Visual Studio içinden kurulumdur:

  1. Çözüm Gezgini’ni açın.
  2. Projeyi genişletin ve çözümünüz içindeki Paketler klasörüne sağ tıklayın.
  3. NuGet Paketlerini Yönet… seçeneğini belirleyin.
  4. Gözat sekmesine tıklayın ve “Aspose.Tasks-Cloud” ifadesini arayın.
  5. Aspose.Tasks-Cloud paketinin yanındaki onay kutusunu tıklayın, sağ sekmede uygun sürümü seçin ve Paket Ekle butonuna tıklayın.
başlık

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

Ücretsiz Cloud aboneliği

Cloud API’lerine erişmek için öncelikle ücretsiz bir bulut abonelik hesabı oluşturmamız gerekiyor. Evet, doğru duydunuz. 150’ye kadar Ücretsiz belge işleme isteği sağlayan ücretsiz bir abonelik hesabı. Kredi kartı veya başka ödeme bilgileri gerekmiyor. Bu nedenle bu işlemi tamamlamak için lütfen Aspose.Cloud panosunu ziyaret edin. GitHub veya Google hesabınız varsa, sadece Kaydolun. Aksi takdirde, Yeni Hesap Oluştur düğmesine tıklayın ve gerekli bilgileri sağlayın. Şimdi kimlik bilgilerini kullanarak panoya giriş yapın ve panodan Uygulamalar bölümünü genişletin ve İstemci Kimliği ve İstemci Gizli Bilgisi ayrıntılarını görmek için İstemci Kimlik Bilgileri bölümüne doğru aşağı kaydırın.

Müşteri Kimlik Bilgileri

Resim 2:- Aspose.Cloud panosundaki İstemci Kimlik Bilgileri.

C#‘da MPP’den XER’e

MPP dosyasının C# .NET uygulamasında Primavera P6 XER’e dönüştürülmesi için lütfen aşağıda verilen adımları izleyin.

  • Öncelikle Client ID ve Client Secret detaylarını sağlayarak bir Configuration nesnesi oluşturun.
  • İkinci olarak, Yapılandırma nesnesini bir argüman olarak geçirirken TasksApi nesnesini oluşturun.
  • Üçüncüsü, MPP dosyasını yerel sürücünüzden okuyun ve TasksApi’nin UploadFile(..) metodunu kullanarak bulut depolama alanına yükleyin.
  • Şimdi, ProjectFileFormat numaralandırmasından giriş MPP adını ve sonuç biçimini tanımladığımız GetTaskDocumentWithFormatRequest nesnesini oluşturun.
  • Daha sonra dönüştürme işlemini başlatmak için TasksApi’nin GetTaskDocumentWithFormat(…) metodunu çağırıyoruz.
  • Son olarak, çıktı XER’i yerel sürücüye kaydetmek için saveToDisk(…) metodunun içindeki File.Create nesnesini kullanırız.
// ClientID'yi https://dashboard.aspose.cloud/ adresinden alın
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// bir yapılandırma nesnesi oluştur
var config = new Configuration{ AppSid= clientID, AppKey = clientSecret };

// Aspose.Tasks nesnesini başlat
var tasksApi = new TasksApi(config);

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

try
{
    // Giriş MPP dosyasını yerel depolama alanından oku
    using (var inputStream = new FileStream("/Users/nshahbaz/Downloads/" + inputFile, FileMode.Open))
    {
        var uploadFileRequest = new PostCreateRequest(inputFile, inputStream);
        
        // dosyayı bulut depolama alanına yükle
        tasksApi.UploadFile(uploadFileRequest);
    }

    // MPP'den XER'e dönüştürme sürecini başlat
    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 !");
    }

    // sonuç dosyasını yerel sürücüye kaydet
    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();
}

cURL kullanarak MPP’yi Primavera P6’ya dönüştürün

cURL komutları, REST API’lerine komut satırı terminali aracılığıyla erişmenin bir başka kullanışlı yoludur. Bu nedenle, cURL komutları aracılığıyla Aspose.Tasks Cloud’a erişebilir ve gereksinimlerimizi karşılayabiliriz. Ancak, API’lere erişmeden önce, Aspose.Cloud panosundan alınan ClientID ve ClientSecret ayrıntılarına dayalı bir JSON Web Token (JWT) oluşturmamız gerekir. Lütfen JWT token’ını oluşturmak için terminalde 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=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

JWT token’ı oluşturulduktan sonra, Cloud depolamada bulunan MPP dosyasını XER formatına dönüştürmek için lütfen aşağıdaki komutu çalıştırın.

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

Yukarıdaki örnekte kullanılan örnek dosya Home move plan.mpp adresinden indirilebilir.

Çözüm

Bu makalede, Microsoft Project (MPP) dosyasının C# .NET kod parçacığı ve cURL komutunu kullanarak Oracle Primavera P6 XER dosyasına nasıl dönüştürüleceği adımlarını ele aldık. Ayrıca, lisanslama mekanizması o kadar esnek tasarlanmıştır ki yalnızca hizmetlerimizi kullandığınız aralık için ödeme yaparsınız. Ayrıca, ücretsiz hesap aboneliği kapsamında 150’ye kadar Ücretsiz belge işleme isteği almaya hak kazanırsınız. Dolayısıyla API’den memnun kaldığınızda, oldukça esnek olan bir lisans satın alma seçeneğini düşünebilirsiniz. Yalnızca sunucuya yaptığınız istekler için ücretlendirilirsiniz ve bu ücret API Çağrısı başına 0,005 ABD Doları kadar düşük olabilir. Daha fazla ayrıntı için pricing sayfasını ziyaret edebilirsiniz.

Bununla birlikte, Cloud SDK’larımız MIT Lisansı altında geliştirilmektedir, bu nedenle tam kod parçacıkları GitHub adresinden indirilebilir. API’yi kullanırken herhangi bir sorunla karşılaşırsanız veya ilgili bir sorunuz varsa, lütfen Ücretsiz Destek forumu aracılığıyla bizimle iletişime geçmekten çekinmeyin.

İlgili makaleler

Daha fazla bilgi edinmek için aşağıdaki bağlantıları da ziyaret etmenizi öneririz: