Mal eben nen Backup vom Projekt in zwei klicks

Problemstellung

Während der Projektbearbeitung möchte man grundlegende, strukturelle Änderungen machen, aber das Projekt nicht ggf. riskieren. Oder es geht auf die Baustelle und das komplette Projekt soll mit, damit Änderungen direkt umgesetzt werden können. Beides Beispiele für die Action backup. Das eine als einfache Sicherung, das andere als Backup zur externen Bearbeitung.

Problemlösung

Nehmen wir erst einmal nur den ersten Fall an: Das Projekt soll zur Sicherheit des Standes eben gesichert werden. Man könnte nun das komplette Projekt über den Kopierdialog als vollwertiges Projekt wegspeichern. Oder über fast den gleichen Weg das Projekt sichern. Beides über ein bisschen Navigation durch die Menüs möglich und bei beiden ist die Versuchung groß es einfach zu unterlassen. Deswegen meine Devise: Mach so etwas so schlicht und einfach, dass es entweder im Hintergrund geschieht oder es mit Minimalaufwand umsetzbar ist.

using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Scripting;

public class backup {
  [DeclareAction(ACTION_NAME)]
  public void backupProject() {
    // Variablen für Projektnamen und Speicherpfad
    string projektname = PathMap.SubstitutePath("$(PROJECTNAME)");
    string Path        = PathMap.SubstitutePath("$(PROJPROP_10045)") + "\\";
    
    // Objekte erzeugen
    CommandLineInterpreter cli = new CommandLineInterpreter();
    ActionCallingContext   acc = new ActionCallingContext();
    // Aufbau des Dateinamens (EPL-Version ist in der Zeit ums Upgrade interessant
    string timestamp  = DateTime.Now.ToString("yyyy-MM-dd_HH-mm");
    string backupname = projectName + "_" + timestamp + "_" 
                          + PathMap.SubstitutePath("$(EPLAN_VERSION)") + ".zw1";
    
    // Parametersatz bauen
    acc.AddParameter("TYPE",            "PROJECT");  // art des Backups
    acc.AddParameter("ARCHIVENAME",     backupname); // backupname
    acc.AddParameter("DESTINATIONPATH", Path);       // Zielpfad
    acc.AddParameter("COMMENT",                      // Begleitkommentar
            "Backup von: " + Environment.UserName + " Datum: " + timestamp + 
            " EPL-Version: " + PathMap.SubstitutePath("$(EPLAN_VERSION)") );
    acc.AddParameter("BACKUPAMOUNT", "BACKUPAMOUNT_ALL"); // sichert alles
    acc.AddParameter("BACKUPMEDIA",     "DISC");     // Projekt auf Festplatte sichern
    acc.AddParameter("INCLIMAGES",      "1");        // Bilder mit einschließen
    acc.AddParameter("BACKUPMETHOD",    "BACKUP");   // SOURCEOUT für die Auslagerung
    
    // backup ausführen
    cli.Execute("backup", acc);
    return backupname;
  }
}

So Funktionen haben sich besonders im Kontextmenü des Seitennavigators immer sehr bewährt. So ist man versuchter die Funktion vielleicht doch mal eben zu nutzen und sichert so im Zweifelsfall so einige zig Arbeitsstunden, weil sich dann ein Schritt leider als nicht reversible zeigt.

Wie geht nun das schnelle Auslagern? Denn wir wissen alle, das es nicht selten mal spontan los gehen soll und wir sind noch immer in Deutschland -> eher überschaubare Netzqualli für VPN und Co.
Dafür wird lediglich bei BACKUPMETHOD der Parameter auf SOURCEOUT gesetzt und schon ist das Projekt zumindest schon mal gepackt. Nicht vergessen noch den Speicherort anzupassen.

Kleiner Tipp am Rande: Wenn die Änderungen in der Ausgelagerten Datei nicht mehr benötigt werden, oder im Worstcase der Laptop nicht mehr nutzbar ist (defekt oder abhanden gekommen) ist nicht gleich das ganze Projekt verloren. Die Dateiendung der Linkdatei wurde zwecks Markierung der Auslagerung auf *.els geändert. Diese einfach auf *.elk für eine nicht revisioniertes, oder *.ell bei revisionierten Projekten ändern und weiter arbeiten. Zudem auch mal einfach auch in so eine Datei rein schauen (texteditor reicht).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert