Ankündigung

Einklappen
Keine Ankündigung bisher.

Externe Prozesse (z.B. BATCH) ansteuern - Möglichkeiten / Alternativen zu "SYSCOM"

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Problem] Externe Prozesse (z.B. BATCH) ansteuern - Möglichkeiten / Alternativen zu "SYSCOM"

    Hallo,

    kennt jemand eine Möglichkeit, externe Prozesse via PML (oder auch .NET) anzusteuern (zu starten), ohne die (laut AVEVA "veraltete") "SYSCOM"-Methode zu verwenden?

    Wir haben momentan relativ diffizile Probleme mit "zu vielen gestarteten und nicht (sauber) beendeten" Prozessen.

    Ich frage mich - mit meinem "Laien-Wissen" - zwar immer, was es die laufende PDMS-Session "interessiert", welche und wie viele Prozesse "aus ihr heraus" gestartet wurden (so dass die PDMS-Session - immer beim folgenden Savework oder Getwork - mit einem "Fatal Error" abstürzt)?!

    Für Hinweise (auch auf evtl. schon vorhandene Threads im Forum, habe schon einige Stichworte in die Suche eingegeben, wurde aber leider nicht fündig) wäre ich sehr dankbar!

  • #2
    Servus!

    Ich verwende in C# .NET folgendes um externe Prozesse, z.B. ein Batch File zu starten.

    Code:
    using System.Diagnostics;
    
    Process process1 = new Process();
    // Konfiguration des Prozesses
    process1.StartInfo.FileName = "processToDo.exe";
    process1.StartInfo.Arguments = "-some -arguments"; //Hier kannst Du Argumente an den externen Prozess übergeben
    process1.WindowStyle = ProcessWindowStyle.Hidden;
    process1.Start();
    process1.WaitForExit();

    Ich bin zwar nur "Hobbyprogrammierer" ;-) , aber vielleicht kannst Du uns kurz beschreiben welche Tätigkeit Du extern ausführen möchtest.
    Zuletzt geändert von webmaster; 22.10.2014, 21:13.
    Der
    Webmaster


    Es gibt keine blöden Fragen, nur blöde Antworten

    Kommentar


    • #3
      Hallo webmaster,

      leider (!!!) habe ich keine Ahnung von C# und .NET - hoffe ich finde mal die Zeit, mich damit nebenbei zu befassen!
      Deshalb sagt mir auch dein "CODE" sehr wenig bis gar nichts.
      Ich gehe mal davon aus, dass das Ganze eine "Anwendung" darstellt? Oder ist das direkt im PML verbaggert? Allerdings müsstest Du ja dann aus dem PML heraus ein ".NET-Objekt" ansprechen, was ich hier nicht erkennen kann...

      Also was ich vor habe (bzw. bereits über "SYSCOM" tue, das führt aber zu den bereits angedeuteten Problemen):

      Im konkreten Beispiel geht es um ISO-Erstellung.

      Schritt 1: PDMS DESIGN im "ISODRAFTMODE": DXF-Datei, mit "roher" Isometrie erstellen
      Schritt 2: PDMS DRAFT in einer neuen Session starten (momentan via SYSCOM)
      Schritt 3: (In separater DRAFT-Session) Werte (Texte) Der PIPE und sonstiger Hierarchie-Elemente in ein SHEET schreiben und das SHEET als DGN exportieren.
      (Die DRAFT-Session wird inkl. MAKRO-Aufruf im TTY-Mode gestartet und "weiss" durch das bereits im DESI erzeugte ISODRAFT-Messagefile, um welche PIPE es geht...)
      Schritt 4: (Immernoch in der DRAFT-Session) Aufrufe mehrerer Microstation-Batch-Prozesse bzw. Batch-Konvertierungen. Hierzu benutze ich ebenfalls "SYSCOM"
      (Die MicroStation-Prozesse konvertieren von DXF in DGN, machen einen "MERGE" (Zusammenführung) der Einzel-Dateien, etc.)

      Also im Prinzip geht es mir immer nur darum, eine BATCH (oder auch eine EXE mit div. Optionen) quasi via "DOS-Modus" zu starten...

      Ich hoffe, diese kurze/sehr vereinfachte Beschreibung bringt Dir näher, was ich (in diesem Fall) vor habe

      Danke im Voraus, dass überhaupt jemand reagiert, ist ja keine Selbstverständlichkeit

      P.S. Bitte frag(t) erst gar nicht, WARUM das alles passieren muss... ihr kennt das: "Kundenwünsche" / "Projektspezifische" ganz besondere "Bedürfnisse" ...
      P.P.S Ich bin sehr gespannt auf E3D DRAW und darauf, was ich mir dann alles an selbstgestrickten Erweiterungen sparen kann. Habe zum Gück die Möglichkeit, das bald zu testen!

      Kommentar


      • #4
        Alter ich hab schon viel gesehen, aber das ist echt geil...
        Ich kann mir vorstellen, dass eines Deiner Probleme ist, das ein SYSCOM Befehl asynchron läuft!
        Damit kannst Du Dir nie sicher sein, dass der Aufruf fertig ist, wenn die Weiterverarbeitung startet...
        Ich glaub nicht, das Dir E3D dabei hilft.
        Wäre eher interessant was das Ziel ist!
        LG Herbert
        Geht net, gibt's net!
        [Entfessler Start]
        Ois wos I do verzapf, is mei eigana Bledsinn und spieglt net die Meinung der Bude wo I hakl (g'haklt hob oder hakl'n werd) wida.
        [Entfessler Ende]

        Kommentar


        • #5
          Hi,
          ich könnte mir vorstellen solche Sachen als Blöcke abarbeiten zu lassen, aber nicht pro Leitung, eher pro Programm - jagst halt X Leitungen durch die einzelnen Module
          - Iso's für X Leitungen -
          - Draft Olay, Schriftkopf etc. für diese X Stück
          - Draft export nach Microstation ....
          - Microstation ...

          Wenn nach jeder Iso ein Draft gestartet wird?? - Aber hallo
          mitn "M" geht's manchmal leichter, aber Winkelbemaßung geht a net

          Kommentar


          • #6
            @Herbert: ... tja, 2 Dinge sind unendlich, das Universum und ... die Möglichkeiten
            P.S. für die "Sicherstellung", dass ein Prozess fertig ist habe ich (pragmatisch) "Wartezeiten" eingebaut. Ich denke, das ist nicht wirklich das Problem. Das Problem scheint eher zu sein, dass die "Dos-Boxen" (durch Syscom-Aufruf) bzw. der dahinter steckende Prozess nicht sauber beendet werden. Es läuft ja auch alles sauber durch soweit. Nur dass eben NACH dem Durchlauf - und wie gesagt, nach dem folgenden Savework/Getwork - die PDMS-Session aussteigt. Damit KANN man zwar notgedrungen leben, aber es ist halt recht "unschön".

            @binford: Daran habe ich auch schon gedacht. Ich denke, das werde ich mal testen. Dafür muss ich halt mein PML wieder komplett umkrempeln ... bzw. PML, das ich "geerbt" habe.
            Der Charme, den die aktuelle Variante hat ist allerdings, dass eine ISO (auch mit mehreren Blättern) nach einem Durchlauf auch tatsächlich fertig ist.
            Die separate DRAFT-Session pro ISO läuft übrigens ziemlich schnell durch (ca. 10-20sek), da wird nicht wirklich viel gemacht.

            Vom AVEVA Support kam zu uns die Info, dass die Methode SYSCOM "veraltet" ist. Nur leider kam keine Ansage, was man stattdessen verwenden kann. Meine Hoffnung war, dass mir hier jemand z.B. ein .NET-Objekt zeigt, das ich stattdessen ansteuern kann, einfach nur um externe Prozesse zu starten.
            Zuletzt geändert von Model-Man; 24.10.2014, 11:04. Grund: Rechtschreibung :)

            Kommentar


            • #7
              Hallo Model-Man,
              es gibt noch eine Kette, aber mit syscom:

              (PDMS)syscom-->vbs-file-->pdms

              Ein Beispiel:
              Syscom 'test.vbs&'

              wo test.vbs sieht so aus:
              ----------------------------------------
              Err.Clear
              on error resume next

              --here your code bla bla bla

              PDMSApp.Activate
              ------------------------------------------
              Such mal bei Google was bedeutet ein vbs file


              Gruß


              Kommentar


              • #8
                Servus!


                Ja, Deinen Task würde ich auch blockmäßig ablaufen lassen. Natürlich könnte man es in C# programmieren, aber das wird Dein Problem wahrscheinlich nicht beheben.

                Es ist doch möglich die Isometrien anhand einer Liste abzuarbeiten, oder nicht?


                lg
                Markus
                Der
                Webmaster


                Es gibt keine blöden Fragen, nur blöde Antworten

                Kommentar


                • #9
                  Hallo Markus,
                  ja, ist prinzipiell möglich. Danke soweit für eure Überlegungen und Antworten.

                  Kommentar


                  • #10
                    Zitat von Model-Man Beitrag anzeigen
                    Vom AVEVA Support kam zu uns die Info, dass die Methode SYSCOM "veraltet" ist. Nur leider kam keine Ansage, was man stattdessen verwenden kann. Meine Hoffnung war, dass mir hier jemand z.B. ein .NET-Objekt zeigt, das ich stattdessen ansteuern kann, einfach nur um externe Prozesse zu starten.
                    Daß solche Antworten immer noch kommen ist eigentlich traurig. Gut wenn man ein paar der Jungs persönlich kennt und so etwas einfacher an Hilfestellung kommt.
                    Wir arbeiten auch immer paketweise ab, meistens über Zonen. Leitungen im Design vorbereiten, Detailplots, Draft-Underlay, Design im Isodraft-Mode -> mehrseitiges PDF pro Leitung. Funktioniert recht gut und geht schnell. Außerdem merkt man recht einfach wann der Durchlauf fertig ist.

                    Grüße,
                    Günther

                    Zu faul für eine gscheite Signatur

                    Kommentar

                    Lädt...
                    X