Lade...
 

Batch-Dateien zum Starten einer ClassiX®-Anwendung

Batch-Dateien zum Starten einer ClassiX®-Anwendung

ClassiX® benötigt für den Start mehrere korrekt initialisierte Umgebungsvariablen (siehe auch Umgebungsvariablen).

Ein Großteil der Umgebungsvariablen wird in der Start-Batchdatei gesetzt, die mitgeliefert wird und den Namen project_START.BAT (z.B. Evaluate_START.bat) trägt. In dieser Start-Batchdatei sollten alle sensiblen Umgebungseinstellungen stehen, z.B. wo die Datenbank liegt. Diese so genannten Stamminformationen sind dort festgehalten und sollten nicht von Fall zu Fall verändert werden.

Zusätzlich gibt es noch maschinen- oder benutzerspezifische Variablen, welche in der project_init.bat gesetzt werden. Diese beiden Batchdateien werden von einer project.bat aufgerufen und können somit beliebig kombiniert werden.

project.bat

Die aufrufende Batchdatei greift auf die anderen beiden Batchdateien zu und erlaubt somit die individuelle Anpassung für bestimmte Umgebungsvariablen, welche überschrieben werden sollen und auch den Zugriff auf abweichende CXPs.
Somit können individuelle Batchdatei für verschiedene Bereiche und Zwecke angelegt werden.

call %~dp0\evaluate_init.bat

call %CX_ROOTDIR%\projects\evaluate_Start.bat %CX_ROOTDIR%\projects\evaluate.cxp

In der letzten Zeile wird die allgemeine project_START.BAT aufgerufen, mit der .cxp-Datei als Parameter. Alle weiteren Parameter werden direkt an die in der project_START.BAT aufgerufene .exe-Datei weitergegeben. Sowohl bei der project_START.BAT als auch bei der .cxp-Datei sollte man darauf achten, dass Dateinamen mit kompletter Pfadbeschreibung angegeben werden. Dies sollte immer relativ unter Verwendung von %CX_ROOTDIR% erfolgen.

project_init.bat

Einige wenige Umgebungsvariablen sind jedoch maschinen- oder benutzerspezifisch. Diese werden in einer aufrufenden project_init-Batchdatei gesetzt, die entsprechend abgestimmt werden muss. Die normalerweise mindestens benötigten Umgebungsvariablen sind folgende:

  • CX_ROOTDIR: Zeigt auf das root directory des Projektes, z.B. CX_ROOTDIR=c:\classix\Evaluate
  • CX_EDITOR: Pfad zum Texteditor und Aufrufparameter, z.B. CX_EDITOR=C:\eclipse\eclipse.exe --launcher.openFile %%s+%%d:%%d
  • CX_VERSION: Es sollte in der aufrufenden Datei auch definiert sein, mit welcher DLL-Version ClassiX® gestartet werden soll. Zum Beispiel 4.4 oder 4.5. Es sollte aber in der project_START.bat der Fall abgefangen werden, dass der Wert dieser Variable "ungültig" ist, dann sollte eine als Standard definierte Version gestartet werden.

Außerdem müssen die Landes-Informationen korrekt gesetzt werden, und zwar immer auf den Ort, an dem sich der Computer befindet:

  • CX_COUNTRY
  • CX_STATE
  • CX_REGION

Falls die ClassiX®-Lizenzen maschinengebunden sind, so muss auch für jeden Rechner individuell die Lizenzdatei angegeben werden.

  • CX_LICENSE_FILE

Neben diesen zwingend erforderlichen Umgebungsvariablen können in der lokalen Batch-Datei auch Angaben aus der allgemeinen Batch-Datei überschrieben werden. Die folgenden Umgebungsvariablen können zusätzlich gesetzt werden:

  • CX_BIN
  • CX_CUSTOMER_DATA
  • CX_LISTVIEW_READONLY_TXN
  • OS_AS_SIZE

Hier ein Beispiel für eine project_init-Batchdatei, die alle Punkte vereint:

IF NOT DEFINED CX_ROOTDIR SET CX_ROOTDIR=Y:\classix\Evaluate

IF NOT DEFINED SET CX_HELPROOT=
IF NOT DEFINED SET CX_HELPROOT_APPSWH=http://appswarehouse.de
IF NOT DEFINED SET CX_HELPROOT_INSTANTVIEW=http://instantview.org
IF NOT DEFINED SET CX_WIKI_HELP=TRUE

IF NOT DEFINED CX_EDITOR SET CX_EDITOR=C:\eclipse\eclipse.exe %%s+%%d:%%d

IF NOT DEFINED CX_COUNTRY SET CX_COUNTRY=049
IF NOT DEFINED CX_STATE SET CX_STATE=005
IF NOT DEFINED CX_REGION SET CX_REGION=001
IF NOT DEFINED CX_VERSION SET CX_VERSION=4.5

Dieses Beispiel setzt mit den ersten 6 Umgebungsvariablen die mindestens notwendigen, um ClassiX® allgemein hochfahren zu können.

Damit in der project.bat geänderte Umgebungsvariablen eingetragen werden können, sollten die Umgebungsvariablen in der project_init.bat nur gesetzt werden, wenn sie noch nicht existieren. Mit 'IF NOT DEFINED UMGEBUNGSVARIABLE' kann überprüft werden, ob die Umgebungsvariable schon existiert.

project_START.bat

In der allgemeinen project_START.BAT werden dann weitere Umgebungsvariablen gesetzt, teilweise in Abhängigkeit der bereits in der lokalen Batch-Datei gesetzten Variablen.

Beispiel für eine project_START.BAT:

REM CX_ROOTDIR und CX_HELPROOT sollen z.B. in einem aufrufenden BAT-File definiert werden!

REM ---
REM OStore-Variablen allg.
REM ---
IF NOT DEFINED OS_SCHEMA_PATH SET OS_SCHEMA_PATH=%CX_BIN%
IF NOT DEFINED OS_AUTH SET OS_AUTH=NONE
IF NOT DEFINED OS_AS_SIZE SET OS_AS_SIZE=0x5000000000
IF DEFINED CX_VERSION (
  IF -%CX_VERSION:~0,1%- == -4- (
    IF NOT DEFINED OS_ENABLE_DECACHE_SOFT_POINTERS_AFTER_AS_RELEASE SET OS_ENABLE_DECACHE_SOFT_POINTERS_AFTER_AS_RELEASE=1
  )
)

REM ---
REM ClassiX®-Variablen allg.
REM ---
IF NOT DEFINED CX_PROJECT_INITIALS SET CX_PROJECT_INITIALS=EVA
IF NOT DEFINED CX_PROJECT_NAME SET CX_PROJECT_NAME=EVALUATE
IF NOT DEFINED CX_VERSION SET CX_VERSION=4.5
IF NOT DEFINED CX_BIN SET CX_BIN=%CX_ROOTDIR%\%CX_VERSION%
IF NOT DEFINED CX_CUSTOMER_DATA SET CX_CUSTOMER_DATA=%CX_ROOTDIR%\APPSWH\%CX_PROJECT_NAME%\DATA

IF NOT DEFINED CX_BITMAP SET CX_BITMAP=%CX_ROOTDIR%\Bmp\%CX_PROJECT_NAME%;%CX_ROOTDIR%\Bmp
IF NOT DEFINED CX_SYSTEM SET CX_SYSTEM=%CX_ROOTDIR%\System\%CX_PROJECT_NAME%;%CX_ROOTDIR%\System
IF NOT DEFINED CX_CLUSTERING SET CX_CLUSTERING=255

IF NOT DEFINED CX_DATABASE SET CX_DATABASE=%CX_ROOTDIR%\projects\evaluate.cxd
IF NOT DEFINED CX_DATABASE_2 SET CX_DATABASE_2=%CX_ROOTDIR%\projects\evaluate_2.cxd
IF NOT DEFINED CX_DATABASE_3 SET CX_DATABASE_3=%CX_ROOTDIR%\projects\evaluate_3.cxd

IF NOT DEFINED CX_SYSTEM_DB SET CX_SYSTEM_DB=%CX_DATABASE%

IF NOT DEFINED CX_WORD_DOT SET CX_WORD_DOT=%CX_ROOTDIR%\System\classix.dot
IF NOT DEFINED CX_PATH SET CX_PATH=%CX_ROOTDIR%\APPSWH\%CX_PROJECT_NAME%;%CX_ROOTDIR%\APPSWH;%CX_ROOTDIR%\APPSWH\%CX_PROJECT_NAME%\DATA;%CX_ROOTDIR%\APPSWH\DATA
IF NOT DEFINED CX_LISTVIEW_READONLY_TXN SET CX_LISTVIEW_READONLY_TXN=50

IF NOT DEFINED BIRT_RESOURCE_FOLDER SET BIRT_RESOURCE_FOLDER=%CX_ROOTDIR%\BIRT
IF NOT DEFINED CX_REPORTS SET CX_REPORTS=%CX_ROOTDIR%\BIRT\%CX_PROJECT_NAME%;%CX_ROOTDIR%\birt
IF NOT DEFINED CX_REPORTS_OUT SET CX_REPORTS_OUT=%CX_ROOTDIR%\BIRT\%CX_PROJECT_NAME%
IF NOT DEFINED CLASSPATH SET CLASSPATH=%CX_BIN%\%BIRT_HOME%\ReportEngine\lib\*;%CLASSPATH%

REM ---
REM Windows-Variablen allg.
REM ---
SET PATH=%CX_BIN%;%CX_BIN%\ACETAO;%CX_BIN%\ELSTER;%PATH%
rem ---
rem Arbeitsverzeichnis setzen (wg. OS-Error und temp. Dateien)
rem ---

IF NOT DEFINED ADIR SET ADIR=C:\TEMP
IF DEFINED TEMP SET ADIR=%TEMP%
IF EXIST %ADIR% cd %ADIR%


REM ---
REM Start
REM ---
start "ClassiX" "%CX_BIN%"\cx_oso.exe %1 -iEvaluate.ini %2 %3 %4 %5

Wenn mehrere ClassiX® Systeme betrieben werden, z.B. ein Echt-System und ein Test-System, so hat es sich als praktikabel erwiesen, die entsprechenden Einstellungen in der allgemeinen Batch-Datei zu verankern und nur über einen Parameter zu steuern. Die allgemeine Batch-Datei könnte dann folgendermaßen aussehen:

REM CX_ROOTDIR und CX_HELPROOT sollen z.B. in einem aufrufenden BAT-File definiert werden!

IF "%2" == "ECHT" goto ECHT
IF "%2" == "TEST" goto TEST

:ECHT

IF NOT DEFINED CX_SERVER SET CX_SERVER=\\cxeva\EVA_DB
IF NOT DEFINED CX_DATABASE SET CX_DATABASE=%CX_SERVER%\ClassiX\Evaluate\projects\evaluate.cxd
IF NOT DEFINED OS_SCHEMA_PATH SET OS_SCHEMA_PATH=%CX_SERVER%\ClassiX\Evaluate\projects\edb
goto WEITER

:TEST

IF NOT DEFINED CX_SERVER SET CX_SERVER=\\clxdb0\CX_DB
IF NOT DEFINED CX_DATABASE SET CX_DATABASE=%CX_SERVER%\ClassiX\Evaluate\projects\evaluate_test.cxd
IF NOT DEFINED OS_SCHEMA_PATH SET OS_SCHEMA_PATH=%CX_SERVER%\ClassiX\Evaluate\projects\edb
goto WEITER

:WEITER

REM ... hier entsprechend weiter mit allgemeiner Batch-Datei wie oben.

Der Aufruf in der lokalen project-Batch-Datei steuert dann über einen weiteren Parameter, welches der ClassiX®-Systeme gestartet wird:

call %CX_ROOTDIR%\projects\evaluate_START.bat %CX_ROOTDIR%\projects\evaluate.cxp ECHT

Damit in der project.bat geänderte Umgebungsvariablen eingetragen werden können, sollten die Umgebungsvariablen in der project_START.bat nur gesetzt werden, wenn sie noch nicht existieren. Mit 'IF NOT DEFINED UMGEBUNGSVARIABLE' kann überprüft werden, ob die Umgebungsvariable schon existiert.

InstantView