Framework:MakroExecutor

Aus CoPlanner 10
Zur Navigation springenZur Suche springen

Beschreibung

Der MakroExecutor dient dazu, um ohne einen CoPlanner Client geöffnet zu haben, Makros ausführen zu können. Der Aufruf erfolgt über die DOS – Eingabeaufforderung.

Hinweis  Wenn in einem aufgerufenen Makro Meldungen bzw. Fragen ausgegeben werden so werden diese vom MakroExecutor ignoriert und die Ausführung wird weiter fortgsetzt. Auch Maskenaufrufe werden ignoriert.

Einrichten der Verbindung

Wie bei allen Clients des CoPlanner existiert hierfür eine Konfigurationsdatei mit dem Namen ClientConfig.xml. Dieses liegt im selben Verzeichnis wie der MakroExecutor.

<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<ClientConfig>
   <IpSettings>
      <Version>1</Version>
      <Serverurl>https://meinzugriffsname:4443/coplanner</Server>
      <MaxRows>100000</MaxRows>
      <MaxCells>0</MaxCells>
   </IpSettings>
</ClientConfig>

Tragen Sie bei der Serverurl die URL an, über welche Sie den CoPlanner Server ansprechen können. MaxRows ist die Anzahl der Datensätze, die maximal an den Client gesendet werden können (ist für den MakroExecutor jedoch nicht relevant).

Einrichten der Verbindung vor CoP 10 HF 1.2

Wie bei allen Clients des CoPlanner existiert hierfür eine Konfigurationsdatei mit dem Namen ClientConfig.xml. Dieses liegt im selben Verzeichnis wie der MakroExecutor.

<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<ClientConfig>
   <IpSettings>
      <Version>1</Version>
      <Server>localhost</Server>
      <Port>8963</Port>
      <MaxRows>100000</MaxRows>
      <MaxCells>0</MaxCells>
      <TcpFormatter>Native</TcpFormatter>
      <SSLCommonName></SSLCommonName>
   </IpSettings>
</ClientConfig>

Tragen Sie bei Server den Namen oder die IP des Rechners ein, auf welchem der CoPlanner Server installiert ist ein. Port ist jenes TCP Port, das vom Server geöffnet wird um die Kommunikation mit den Clients zu ermöglichen (Standard: 8963). MaxRows ist die Anzahl der Datensätze, die maximal an den Client gesendet werden können (ist für den MakroExecutor jedoch nicht relevant).

Aufruf

In unserem Beispiel nehmen wir an, dass der CoPlanner im Programm – Verzeichnis des Systemlaufwerks liegt. Dh. der Pfad dorthin lautet C:\Programme\CoPlanner. Bei CoPlanner Server Installationen finden Sie den MakroExecutor im Verzeichnis Tools. Der Name des MakroExecutors lautet CopMakro. Als Kommandozeilenparameter wird ihm der Name des Makros, welches Sie ausführen möchten übergeben. Nehmen wir an, das Makro heißt „MyCopMakro“. Der Aufruf lautet: C:\Programme\CoPlanner\Tools\MakroExecutor\CopMakro.exe Makroname=MyCopMakro

Hinweis  Der Aufruftext ist casesensitive. Das bedeutet, dass die Groß-/Kleinschreibung des Makronamens ausschlaggebend ist.
Hinweis  Der Makroexecutor muss immer auf dem System sein, wo er aufgerufen wird. Sind zum Beispiel CoPlanner Applikationsserver und SQL Server auf getrennten Systemen und der Makroexecutor wird über einen SQL Server Task ausgeführt, so muss er am SQL Server liegen.

Nach dem Bestätigen des Befehls wird eine Verbindung hin zum CoPlanner Server aufgebaut und das Makro wird ausgeführt. Ist in dem Makro eine Importprozedur enthalten oder Aufgaben, die einen bestimmten Plan betreffen gibt es die Möglichkeit, Benutzer, Plan und Unternehmen dem MakroExecutor mitzuteilen und sich dadurch mit einem bestimmten Benutzer, an ein Unternehmen und an einen gewünschten Plan anzumelden. Die ist durch die Datei SessionSetting.xml möglich.


<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<SessionSetting>
   <Version>1</Version>
   <User>Administrator</User>
   <Password>pwd</Password>
   <Entity>Bike GmbH</Entity>
   <Plan>Plan Bike GmbH</Plan>
</SessionSetting>


Tragen Sie bei User den gewünschten Benutzer und bei Password das zugehörige Passwort ein. Entity steht für Unternehmen und bei Plan tragen Sie den Plan ein, an den Sie sich anmelden möchten.

Hinweis  Keiner der obigen Einträge darf Sonderzeichen enthalten, also z.B. auch keine Umlaute!


Um hier keine Namen, sondern COPSYS_IDs verwenden zu können, muss anstatt dem Namen die COPSYS_ID in eckigen Klammern eingetragen werden.

z.B.

   <Entity>[1]</Entity>


Um das Makro für mehrere Pläne hintereinander ausführen zu können, gibt es die Möglichkeit in dem Szenariomanager bei den entsprechenden Plänen das Flag Macroexecutor Anmeldung zu aktivieren. In der SessionSettings.xml muss bei dem Plan dann folgender Tag angegeben werden:

   <Plan>[MAKROPLANS]</Plan>


Erweiterter Aufruf

  • ReturnServerError: Man kann den MakroExecutor mit dem Parameter ReturnServerError aufrufen. Dieser führt zu einer Rückgabe von 1, sofern es einen roten Würfel im System gibt, welcher noch nicht quittiert wurde, auch wenn dieser vor Start der Makroausführung schon vorhanden war und 0 sofern es keine unquittierten roten Würfel gibt. Die Rückgabe kann man z.B. in Batch-Skripts und SQL-Server Jobs zur Fortsetzungsprüfung nutzen („On Success…“).


Z.B. C:\Programme\CoPlanner\Tools\MakroExecutor\CopMakro.exe Makroname=MyCopMakro ReturnServerError


SSPI

Im Makroexecutor ist es möglich (ab der Version 9.3 HF 2.3) diesen als SSPI User ausführen zu lassen.

Dafür muss ein eigener SSPI User in der Domäne und im CoPlanner angelegt werden. Dieser ist lediglich für die Ausführung von Makros zuständig. Über diesen User laufen in weiterer Folge alle Makros.

Hinweis  Die Makros müssen abgesichert werden!

Hierfür muss vor dem ersten Makro eine Fortsetzungsbedingung definiert sein, siehe Screenshot:


Framework, Definition der Fortsetzungsbedingung

Wobei der Ausdruck die Copsys_ID des“ Makro-Users“ ist.

Für die SSPI Anmeldung ist im SessionSettings.xml als Username nichts und als Kennwort "SSPI" zu hinterlegen.

<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<SessionSetting>
   <Version>1</Version>
   <User></User>
   <Password>SSPI</Password>
   <Entity>Bike GmbH</Entity>
   <Plan>Budget 2013</Plan>
</SessionSetting>