DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

exe erstellen

Hallo zusammen...
 
Hab einige scripte geschrieben, die endlich machen was ich will. Nun hab ich eine Start-Funktion, der ich eine boolesche Variable übergebe, die entscheidet, ob ich einen Dialog starte oder direkt eine Auswertung starte. Nun würde ich gern eine batch-Datei oder ähnliches bauen, die diese Script startet. In dem batch müsste ne Abfrage stehen, ob DIAdem bereits offen ist und ob DIAdem gerade eine Auswertung durchführt.
Ist sowas möglich? Ausweg wäre ein Script, das DIAdem startet und in DIAdem kann ich ja ein Script bestimmen, das beim Programmstart ausgeführt wird, dann fehlt mir aber immer noch die Abfrage ob die Software bereits in mache ist.
 
Jemand Erfahrung?
 
MfG Michael
0 Kudos
Message 1 of 10
(4,678 Views)
Hallo Michael!
 
Diese Aufgabe hatte ich vor Jahren auch 'vor der Brust'. Es zeigte sich das diese (zusammen mit weiteren Anforderungen) sauber nur durch ein eigenes Startprogramm zu erledigen ist,das ich dann für unser X-Frame entwickelt habe.
 
Einzige Alternative die ich sehe ist nicht schön aber vielleicht hilfreich. Dein Auswertungsskript kann am Anfang eine bestimmte Datei anlegen und zum Schluss wieder löschen. Wenn die Datei vorhanden ist läuft dein Skript. Großer Nachteil: stürzt dein Skript ab bleibt die Datei ggf. erhalten. In einem Batch kann man glaube ich nicht abfragen ob eine Datei vorhanden ist, man kann aber ja alternativ ein VBS schreiben das dann im WSH läuft. Dann brauchst du nur ein DIAdem (deutlich weniger Resourvenverbrauch!).
 
Hoffe das hilft
 
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 2 of 10
(4,664 Views)

Hallo Matthias...

Wie kann ich denn eine Funktion eines Scripts über eine Kommando-Zeile starten, kannst du mir da ein kleines Beispiel geben???

Das wäre echt super!

 

MfG Michael

0 Kudos
Message 3 of 10
(4,605 Views)

Hallo Michael!

Eine Prozedur in einem Script kann man mit dem ScriptStart in der Kommandozeile starten. Dazu muss man nur den optionalen 2. Paramter auf den Namen der Prozedur setzen.

Matthias

Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 4 of 10
(4,598 Views)

Hallo nochmal...

Also ich hab nun ne batch-Datei, die mein DIAdem startet und mittels /CScriptStart() ein Script mit einer Prozedur startet.

Nun der nächste Schritt. Bei diesem Verfahren öffnet sich ein neuer DIAdem-Prozess. Kann ich den Script-Aufruf auch machen, wenn DIAdem bereits läuft?

Kann ich die Rückgaben der aufgerufenen Prozeduren abfragen?

 

Mit freundlichen Grüssen

Michael

0 Kudos
Message 5 of 10
(4,581 Views)
Hallo Michael!
 
Eine direkte Rückgabe eines Werte geht nicht. Schau dir nochmal meinen ersten Reply an. Daraus solltest du die notwendigen Ideen bekommen. Ist aber auf jeden Fall etwas Arbeit und tricky.
 
Viel Erfolg
 
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 6 of 10
(4,576 Views)
Hallo nochmal...
 
Also vorweg, ich hab noch nie mit wsh gearbeitet. Das ich keine Rückgabewerte  direkt aus DIAdem erhalten kann hab ich mir fast gedacht, ist vlt ja möglich, dass ich die Werte in eine Datei schreibe und aus dieser wieder auslese.
Dann hab ich nur ein weiteres Problem. Wenn ich DIAdem zum Beispiel über ein JAVA-Interface steuern möchte, kann ich zwar durch ein Kommando DIAdem mit dem zusatz /CScriptStart aufrufen, aber kann ich anschliessend auch weiter Scripte aufrufen? Was ich mein ist, das DIAdem ja auch einige Funktionen zur Verfügungstellt, wenn ich aber über die Kommandozeile aufrufe, kennt er ja nicht die DIAdem-Befehle.
Also mein Ziel ist es DIAdem extern zu steuern? Und die Grundlegende Frage ist eigentlich, ob es möglich ist, dies Vorhaben zu verwirklichen?
 
MfG Michael
0 Kudos
Message 7 of 10
(4,559 Views)
Hallo Michael!
 
Vielleicht haben wir bisher etwas aneinander vorbei geredet. Ich helfe gerne weiter, muss nur alle Randbedingungen kennen damit die Vorschläge auch brauchbar sind. Kannst du also bitte vorweg nochmal dein Szenario in Stichpunkten beschreiben und welche Werkzeuge du verwendest (Java?).
 
Allgemein vorweg die beiden Wege wie man DIAdem aufrufen kann:
 
a) als EXE
b) als OLE Automation Server
 
Bei a) muss man zur Kommuinkation mit der Aufrufer sich etwas einfallen lassen. Input ist noch einfach, die Rückgabe muss über Datei/Registry/etc. erfolgen. Ob DIAdem arbeitet oder rmit einer Box (ggf. Fehlerbox) steht kann man von Aussen nicht abfragen.
 
Bei b) muss zuerstmal der Aufrufer in der Lage sein Automation Server zu erzeugen (CreateObject in VBS). Geht das kann man DIAdem Variablen lesen/schreiben und Befehle synchron/asynchron absetzen. Das ist recht flexibel für Input und Rückgabe. Läuft kein DIAdem wird von Windows automatisch eines gestartet (mit Grundeinstellungen aus der Registry). Läuft bereits eines verbindet man sich mit diesem (DIAdem Default Einstellung, kann aber auch anders eingestellt werden). Bei mehreren laufenden DIAdems ist es zufällig welches man 'erwischt'.
 
Mehr Hilfe wenn mir die Randbedinungne klar sind.
 
Matthias
 
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 8 of 10
(4,558 Views)

Hey Matthias,

b) scheint genau das zu sein was ich suche.

Also was ich basteln will ist ein Client-Server-System. Es ist möglich mittels Java Kommandos absetzen (wie in Kommandozeile), die dann vom Betriebssystem ausgeführt werden.  Ich möchte evtl. eine Java-Lösung nutzen, um dann DIAdem von jedem anderen Rechner (unabhängig vom Betriebssysem) steuern zu können.

Als wenn ich dich richtig verstanden habe, kann ich mir eine OLE-Objekt basteln (wie auch immer das gehen mag, auch hier kenn ich mich nicht aus und muss mich dann erst schlau machen). Dieses Objekt kann ich nun zumindest von anderen Win-Rechner über eine Client-Applikation steuern.

Ist das so richtig???

Danke für Deine Hilfe!

0 Kudos
Message 9 of 10
(4,552 Views)
Hallo Michael!
 
Ja auch über Rechnergrenzen hinaus sollte die Nutzung möglich sein (Stichwort DCOM). Habe ich aber nur mal vor Jahren getestet und nie in einem Projekt eingesetzt. Ich erinnere mich das man Windows passend konfigurieren musste damit das möglich ist, da man so über Rechnergrenzen auch ziemlichen Schaden anrichten kann. Meine Erfahrungen mit DIAdem im Server-Betrieb sind aber unabhängig von der gewählten Komminikationsart nicht wirklich gut. DIAdem scheint nicht für diese Anwendung (weiter-)entwickelt zu werden. Z.B. ist das Fehlerhandling ein riesiges Problem. Für ein gut verfügbares System muss man auf dem Server einigen Aufwand unabhängig von DIAdem treiben. Darüberhinaus stellt sich dann immer die Frage wieviel DIAdem maximal auf dem Server parallel laufen sollen. Je nach Rechner sind 4 schon zuviel!
 
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 10 of 10
(4,548 Views)