242

Etixpert Consulting GmbH, Zagreus 1

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

1

Etixpert Consulting GmbH, Zagreus 1.3

2

Etixpert Consulting GmbH, Zagreus 1.3

Inhaltsverzeichnis

1 Einleitung 15

2 Zagreus im Überblick 19

2.1 ZAGREUS Server . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.1.1 Connections . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.1.2 Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.1.3 Prozesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.1.4 Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.1.5 Metadaten . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.1.6 Vorteile des ZAGREUS Servers . . . . . . . . . . . . . . . 28

2.2 ZAGREUS Client . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.2.1 Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2.1.1 Serververwaltung . . . . . . . . . . . . . . . . . . 30

2.2.1.2 Userverwaltung . . . . . . . . . . . . . . . . . . . 30

2.2.1.3 Objektverwaltung . . . . . . . . . . . . . . . . . 31

2.2.1.4 Filebrowsing . . . . . . . . . . . . . . . . . . . . 31

2.2.2 Script-Editor . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.2.2.1 Der gra�sche Editor . . . . . . . . . . . . . . . . 33

2.2.2.2 Komplexe Abläufe . . . . . . . . . . . . . . . . . 34

2.2.2.3 Container Logik . . . . . . . . . . . . . . . . . . 34

2.2.2.4 Prozessprotokoll - Loggingmechanismen . . . . . 35

2.2.2.5 Errorhandling . . . . . . . . . . . . . . . . . . . 36

4 INHALTSVERZEICHNIS

2.2.2.6 Objektorientierung - Wiederverwendbarkeit vonElementen . . . . . . . . . . . . . . . . . . . . . 36

2.2.2.7 Automatisierung der Prozesse . . . . . . . . . . 38

2.2.3 Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3 Installation 41

3.1 Installation unter Windows . . . . . . . . . . . . . . . . . . . . . 41

3.1.1 Kopieren der Dateien . . . . . . . . . . . . . . . . . . . . 41

3.1.2 Kon�gurationsparameter einstellen . . . . . . . . . . . . . 41

3.1.3 Windows-Service einrichten . . . . . . . . . . . . . . . . . 42

3.2 Installation unter Linux . . . . . . . . . . . . . . . . . . . . . . . 43

3.2.1 Kopieren der Dateien . . . . . . . . . . . . . . . . . . . . 43

3.2.2 Kon�gurationsparameter einstellen . . . . . . . . . . . . . 43

3.2.3 Zagreus Server starten/stoppen . . . . . . . . . . . . . . . 44

3.3 Libraries für Drittapplikationen . . . . . . . . . . . . . . . . . . . 44

3.4 Lizenzschlüssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.5 Zagreus Excel Service . . . . . . . . . . . . . . . . . . . . . . . . 47

4 Zagreus Server 49

4.1 Client-Server Kommunikation . . . . . . . . . . . . . . . . . . . . 49

4.2 Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.2.1 Queuing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.2.2 Parallelisierung . . . . . . . . . . . . . . . . . . . . . . . . 51

4.2.3 Gruppieren von Execution Engines . . . . . . . . . . . . . 51

4.3 Job Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.4 Metadata-Repository . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.5 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.6 Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.7 Kommunikation Server-Execution Engine . . . . . . . . . . . . . 55

4.8 Kommunikation Server-Server . . . . . . . . . . . . . . . . . . . . 55

4.8.1 Key-Generierung . . . . . . . . . . . . . . . . . . . . . . . 55

4.9 Server-Kon�guration . . . . . . . . . . . . . . . . . . . . . . . . . 56

Etixpert Consulting GmbH, Zagreus 1.3

INHALTSVERZEICHNIS 5

5 Zagreus Client 59

5.1 Zagreus Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.1.1 Server Administration . . . . . . . . . . . . . . . . . . . . 61

5.1.2 Benutzerverwaltung . . . . . . . . . . . . . . . . . . . . . 61

5.1.3 Objektverwaltung . . . . . . . . . . . . . . . . . . . . . . 63

5.1.3.1 Versionierung . . . . . . . . . . . . . . . . . . . . 64

5.1.3.2 Importieren von Objekten . . . . . . . . . . . . . 64

5.1.4 File-Browsing . . . . . . . . . . . . . . . . . . . . . . . . . 65

5.1.5 MSTR-Connection Browsing . . . . . . . . . . . . . . . . 66

5.1.6 BO-Connection Browsing . . . . . . . . . . . . . . . . . . 66

5.1.7 Database-Connection Browsing . . . . . . . . . . . . . . . 67

5.1.8 IMAP-Browsing . . . . . . . . . . . . . . . . . . . . . . . 67

5.1.9 POP3-Browsing . . . . . . . . . . . . . . . . . . . . . . . . 69

5.1.10 WebService-Browsing . . . . . . . . . . . . . . . . . . . . 70

5.1.11 Benutzer/Gruppen Variablen . . . . . . . . . . . . . . . . 70

5.2 Menü-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.2.1 Tools/Options . . . . . . . . . . . . . . . . . . . . . . . . 71

5.3 Script Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.3.1 Arbeiten mit dem Script Editor . . . . . . . . . . . . . . . 71

5.3.2 Wiederverwendbarkeit . . . . . . . . . . . . . . . . . . . . 73

5.3.3 Containerlogik . . . . . . . . . . . . . . . . . . . . . . . . 74

5.3.4 Outline-View . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.3.5 Script-Dokumentation . . . . . . . . . . . . . . . . . . . . 76

5.4 Script Ausführung . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.4.1 Zeitgesteuerte Ablaufpläne . . . . . . . . . . . . . . . . . 76

5.4.2 Ereignisgesteuerte Ablaufpläne . . . . . . . . . . . . . . . 76

5.4.3 Script Parameter . . . . . . . . . . . . . . . . . . . . . . . 77

5.5 Ablaufüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . 77

5.6 Serversteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.7 Browser Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.7.1 Graph-Editor . . . . . . . . . . . . . . . . . . . . . . . . . 81

Etixpert Consulting GmbH, Zagreus 1.3

6 INHALTSVERZEICHNIS

5.7.2 Hochladen von Dateien . . . . . . . . . . . . . . . . . . . 81

5.7.3 Kopiereinstellungen . . . . . . . . . . . . . . . . . . . . . 82

6 Scripts 85

6.1 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

6.2 Script-Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

6.3 Engine Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.3.1 Base Expressions . . . . . . . . . . . . . . . . . . . . . . . 87

6.3.2 Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.3.3 Zusammengesetzte Variablen . . . . . . . . . . . . . . . . 88

6.3.4 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . 89

7 Execution Engine - Allgemeine Funktionen 91

7.1 Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

7.2 Fehlergruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

7.2.1 Actor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

7.2.2 ActorInterrupted . . . . . . . . . . . . . . . . . . . . . . . 92

7.2.3 AttributeParsing . . . . . . . . . . . . . . . . . . . . . . . 92

7.2.4 AttributeRequired . . . . . . . . . . . . . . . . . . . . . . 93

7.2.5 Connection . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.2.6 Convertion . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.2.7 Custom . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.2.8 DB Error . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.2.9 Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.2.10 File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.2.11 FileNotFound . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.2.12 FileWriting . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.2.13 FOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.2.14 FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.2.15 HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.2.16 IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.2.17 Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Etixpert Consulting GmbH, Zagreus 1.3

INHALTSVERZEICHNIS 7

7.2.18 MSTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

7.2.19 Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

7.2.20 TemplateCalling . . . . . . . . . . . . . . . . . . . . . . . 95

7.2.21 TemplateCreation . . . . . . . . . . . . . . . . . . . . . . 95

7.2.22 TypeMismatch . . . . . . . . . . . . . . . . . . . . . . . . 95

7.2.23 XSLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

7.2.24 Zip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

7.3 Allgemeine Attribute . . . . . . . . . . . . . . . . . . . . . . . . . 96

7.4 Ergebnis-Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . 97

7.4.1 Elementzugri� auf ein Ergebnis-Array . . . . . . . . . . . 98

7.4.2 Elementzugri� auf das Ergebnis einer System-Action . . . 98

7.4.3 Elementzugri� auf das Ergebnis einer SQL-Abfrage . . . . 98

7.4.4 Elementzugri� auf das Ergebnis einer Parse-Action . . . . 99

7.4.5 Elementzugri� auf das Ergebnis einer Filter-Action . . . . 99

7.5 Vorde�nierte Variablen und Funktionen . . . . . . . . . . . . . . 100

7.6 GOTO-Funktionalität . . . . . . . . . . . . . . . . . . . . . . . . 102

8 Actions - Standardfunktionen 105

8.1 Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

8.1.1 z:alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

8.1.2 z:array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

8.1.3 z:break . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

8.1.4 z:block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

8.1.5 z:call-template . . . . . . . . . . . . . . . . . . . . . . . . 107

8.1.6 z:compare . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

8.1.7 z:continue . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

8.1.8 z:documentation . . . . . . . . . . . . . . . . . . . . . . . 109

8.1.9 z:exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

8.1.10 z:�lter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

8.1.11 z:�reevent . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

8.1.12 z:foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Etixpert Consulting GmbH, Zagreus 1.3

8 INHALTSVERZEICHNIS

8.1.13 z:format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

8.1.14 z:if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

8.1.15 z:include . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

8.1.16 z:java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

8.1.17 z:join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

8.1.18 z:log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

8.1.19 z:log�le . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

8.1.20 z:loglevel . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

8.1.21 z:not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

8.1.22 z:on-error . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

8.1.23 z:on-event . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

8.1.24 z:parse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

8.1.25 z:raise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

8.1.26 z:sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

8.1.27 z:switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

8.1.28 synchron . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

8.1.29 z:system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

8.1.30 z:template . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

8.1.31 z:text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

8.1.32 z:union . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

8.1.33 z:variable . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

8.1.34 z:while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

8.2 Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

8.2.1 mail:close . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

8.2.2 mail:connection . . . . . . . . . . . . . . . . . . . . . . . . 127

8.2.3 mail:send . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

8.2.3.1 mail:body . . . . . . . . . . . . . . . . . . . . . . 128

8.2.3.2 mail:attachment . . . . . . . . . . . . . . . . . . 129

8.2.4 mail:getinfo . . . . . . . . . . . . . . . . . . . . . . . . . . 129

8.2.5 mail:getmsg . . . . . . . . . . . . . . . . . . . . . . . . . . 130

8.3 File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

Etixpert Consulting GmbH, Zagreus 1.3

INHALTSVERZEICHNIS 9

8.3.1 �le:close . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

8.3.2 �le:connection . . . . . . . . . . . . . . . . . . . . . . . . . 133

8.3.3 �le:copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

8.3.4 �le:delete . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

8.3.5 �le:dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

8.3.6 �le:eof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

8.3.7 �le:exist . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

8.3.8 �le:move . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

8.3.9 �le:neof . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

8.3.10 �le:read . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

8.3.11 �le:readline . . . . . . . . . . . . . . . . . . . . . . . . . . 137

8.3.12 �le:write . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

8.4 FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

8.4.1 ftp:cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

8.4.2 ftp:close . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

8.4.3 ftp:connection . . . . . . . . . . . . . . . . . . . . . . . . . 138

8.4.4 ftp:delete . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

8.4.5 ftp:dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

8.4.6 ftp:get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

8.4.7 ftp:lcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

8.4.8 ftp:md . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

8.4.9 ftp:mget . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

8.4.10 ftp:mput . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

8.4.11 ftp:put . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

8.4.12 ftp:rename . . . . . . . . . . . . . . . . . . . . . . . . . . 144

8.5 Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

8.5.1 db:begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

8.5.2 db:call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

8.5.2.1 db:param . . . . . . . . . . . . . . . . . . . . . . 146

8.5.3 db:close . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

8.5.4 db:commit . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Etixpert Consulting GmbH, Zagreus 1.3

10 INHALTSVERZEICHNIS

8.5.5 db:jdbc-connection . . . . . . . . . . . . . . . . . . . . . . 147

8.5.6 db:odbc-connection . . . . . . . . . . . . . . . . . . . . . . 148

8.5.7 db:rollback . . . . . . . . . . . . . . . . . . . . . . . . . . 149

8.5.8 db:sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

8.5.8.1 db:param . . . . . . . . . . . . . . . . . . . . . . 150

8.6 FOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

8.7 XSL-Transformation . . . . . . . . . . . . . . . . . . . . . . . . . 153

8.7.1 xslt:transform . . . . . . . . . . . . . . . . . . . . . . . . . 153

8.7.1.1 xslt:param . . . . . . . . . . . . . . . . . . . . . 153

8.7.2 xslt:query . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

8.8 HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

8.8.1 http:connection . . . . . . . . . . . . . . . . . . . . . . . . 155

8.8.2 http:get . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

8.8.3 http:post . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

8.9 ZIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

8.9.1 zip:dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

8.9.2 zip:�le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

8.9.2.1 zip:item . . . . . . . . . . . . . . . . . . . . . . . 158

8.9.3 zip:read . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

8.10 Zagreus Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8.10.1 zs:connection . . . . . . . . . . . . . . . . . . . . . . . . . 160

8.10.2 zs:copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

8.10.3 zs:createevent . . . . . . . . . . . . . . . . . . . . . . . . . 162

8.10.4 zs:createresource . . . . . . . . . . . . . . . . . . . . . . . 163

8.10.5 zs:createschedule . . . . . . . . . . . . . . . . . . . . . . . 164

8.10.6 zs:createscript . . . . . . . . . . . . . . . . . . . . . . . . . 165

8.10.6.1 zs:option . . . . . . . . . . . . . . . . . . . . . . 166

8.10.6.2 zs:variable . . . . . . . . . . . . . . . . . . . . . 166

8.10.7 zs:delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

8.10.8 zs:getresource . . . . . . . . . . . . . . . . . . . . . . . . . 168

8.10.9 zs:getschedules . . . . . . . . . . . . . . . . . . . . . . . . 168

Etixpert Consulting GmbH, Zagreus 1.3

INHALTSVERZEICHNIS 11

8.10.10 zs:getvariable . . . . . . . . . . . . . . . . . . . . . . . . . 169

8.10.10.1 zs:variable . . . . . . . . . . . . . . . . . . . . . 169

8.10.11 zs:jobinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

8.10.12 zs:joblist . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

8.10.13 zs:list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

8.10.14 zs:move . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

8.10.15 zs:resourceinfo . . . . . . . . . . . . . . . . . . . . . . . . 173

8.10.16 zs:runscript . . . . . . . . . . . . . . . . . . . . . . . . . . 174

8.10.16.1 zs:option . . . . . . . . . . . . . . . . . . . . . . 175

8.10.16.2 zs:variable . . . . . . . . . . . . . . . . . . . . . 175

8.10.17 zs:schedule . . . . . . . . . . . . . . . . . . . . . . . . . . 175

8.10.18 zs:servercontrol . . . . . . . . . . . . . . . . . . . . . . . . 176

8.10.19 zs:setcurrent . . . . . . . . . . . . . . . . . . . . . . . . . 178

8.10.20 zs:setvariable . . . . . . . . . . . . . . . . . . . . . . . . . 178

8.10.21 zs:unschedule . . . . . . . . . . . . . . . . . . . . . . . . . 179

8.10.22 zs:variable . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

8.10.23 zs:wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

8.11 Web-Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

8.11.1 ws:connection . . . . . . . . . . . . . . . . . . . . . . . . . 181

8.11.2 ws:call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

8.11.2.1 ws:param . . . . . . . . . . . . . . . . . . . . . . 182

8.12 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

8.12.1 z:system-custom . . . . . . . . . . . . . . . . . . . . . . . 183

9 Actions - Drittapplikationen 187

9.1 Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

9.1.1 excel:connection . . . . . . . . . . . . . . . . . . . . . . . 187

9.1.2 excel:info . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

9.1.3 excel:read . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

9.1.4 excel:workbook . . . . . . . . . . . . . . . . . . . . . . . . 189

9.1.4.1 excel:data . . . . . . . . . . . . . . . . . . . . . . 190

Etixpert Consulting GmbH, Zagreus 1.3

12 INHALTSVERZEICHNIS

9.1.5 Zagreus Excel-WebService . . . . . . . . . . . . . . . . . . 193

9.2 MicroStrategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

9.2.1 mstr:close . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

9.2.2 mstr:connection . . . . . . . . . . . . . . . . . . . . . . . . 195

9.2.3 mstr:report . . . . . . . . . . . . . . . . . . . . . . . . . . 197

9.2.4 mstr:document . . . . . . . . . . . . . . . . . . . . . . . . 199

9.2.5 mstr:excel . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

9.2.6 mstr:htmldocument . . . . . . . . . . . . . . . . . . . . . 203

9.2.7 mstr:export . . . . . . . . . . . . . . . . . . . . . . . . . . 204

9.2.8 mstr:execution-�ags . . . . . . . . . . . . . . . . . . . . . 206

9.2.8.1 mstr:execution-�ag . . . . . . . . . . . . . . . . . 207

9.2.9 mstr:�lter . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

9.2.10 mstr:�lter-group . . . . . . . . . . . . . . . . . . . . . . . 210

9.2.11 mstr:�ash . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

9.2.11.1 mstr:param . . . . . . . . . . . . . . . . . . . . . 212

9.2.12 mstr:historylist . . . . . . . . . . . . . . . . . . . . . . . . 213

9.2.13 mstr:result-�ags . . . . . . . . . . . . . . . . . . . . . . . 214

9.2.13.1 mstr:result-�ag . . . . . . . . . . . . . . . . . . . 214

9.2.14 OLAP-Funktionen . . . . . . . . . . . . . . . . . . . . . . 216

9.2.14.1 mstr:axis . . . . . . . . . . . . . . . . . . . . . . 216

9.2.14.2 mstr:attribute . . . . . . . . . . . . . . . . . . . 217

9.2.14.3 mstr:attribute-form . . . . . . . . . . . . . . . . 217

9.2.14.4 mstr:metrics . . . . . . . . . . . . . . . . . . . . 217

9.2.14.5 mstr:metric . . . . . . . . . . . . . . . . . . . . . 217

9.2.15 mstr:page-by-selection . . . . . . . . . . . . . . . . . . . . 218

9.2.15.1 mstr:page-by . . . . . . . . . . . . . . . . . . . . 218

9.2.16 mstr:page-by-all . . . . . . . . . . . . . . . . . . . . . . . 219

9.2.17 mstr:pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

9.2.18 mstr:prompt . . . . . . . . . . . . . . . . . . . . . . . . . 223

9.3 Business Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

9.3.1 bo:close . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

Etixpert Consulting GmbH, Zagreus 1.3

INHALTSVERZEICHNIS 13

9.3.2 bo:connection . . . . . . . . . . . . . . . . . . . . . . . . . 226

9.3.3 bo:copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

9.3.4 bo:delete . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

9.3.5 bo:�lter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

9.3.6 bo:�lter-group . . . . . . . . . . . . . . . . . . . . . . . . 229

9.3.7 bo:import . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

9.3.8 bo:info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

9.3.9 bo:list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

9.3.10 bo:prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

9.3.11 bo:report . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

9.3.12 bo:schedule . . . . . . . . . . . . . . . . . . . . . . . . . . 235

10 Copyright Notizen 239

Etixpert Consulting GmbH, Zagreus 1.3

14 INHALTSVERZEICHNIS

Etixpert Consulting GmbH, Zagreus 1.3

Kapitel 1

Einleitung

IT Herausforderungen

IT Abteilungen und deren Leiter sind nicht zu beneiden.Den ständig steigenden Anforderungen werden kontinu-ierlich Budgetkürzungen gegenübergestellt. Damit sich einUnternehmen am Markt behaupten kann, werden immermehr Prozesse in die EDV ausgelagert, damit alles schnel-ler, exakter und kostengünstiger abläuft. Werden für dieseSchritte Investitionen in die technische Infrastruktur meistnoch genehmigt, stöÿt man mit der Bitte um Aufstockungder Personalressourcen fast immer auf taube Ohren. In die-sem Fall ist doppelter Einsatz aber auch Kreativität ge-fragt. Und diese führt in den meisten Fällen zu jenem Be-reich, der als das Wundermittel für alle Probleme gehandeltwird: Automatisierung.

Automatisierung von Geschäftsprozessen

Das durch die Automatisierung von Geschäftsprozessen tatsächlich Kosten undAufwendungen reduziert werden können, steht auÿer Diskussion, es stellt sichnur die Frage, wie diese am besten umgesetzt wird. Durch Zeitdruck wird al-

16 Einleitung

lerdings meist der einfachste und damit schnellste Weg gewählt. So werden Zu-satzfunktionen von Softwareprodukten, Open-Source Codes, Eigenprogrammie-rungen oder Spezialsysteme mit eingeschränkter Funktionalität gewählt, um dasZiel der Automatisierung zu erreichen. Aber wie so oft, ist der schnellste Wegnicht immer der beste. Es können zwar kurzfristig Erfolge bei Kosten- und Res-sourcenreduktion erreicht werden, doch nach einiger Zeit stellen sich negativeNebene�ekte ein.

Negative Auswirkungen

Durch die rasche Umsetzung werden anvielen Stellen im EDV-System automa-tische Abläufe integriert, die für Da-tenaustausch, Prüfungsroutinen, Pro-grammaufrufe und ähnliches zuständigsind. Diese dezentralen Abläufe habenaber entscheidende Nachteile, da sie zu-sammenhanglos ablaufen und keine Ab-hängigkeiten berücksichtigen. E�zienteReaktionen auf Fehler oder Warnungenkönnen nicht oder nur sehr aufwendigintegriert werden. Darüber hinaus sindWartung, Erweiterungen oder neue An-forderungen nur mit sehr groÿem Auf-wand realisierbar.

Zentralisierung

Wie kann man dieser Automatisierungsfalle (kurzfristige Zielerreichung auf Ko-sten längerfristiger Probleme) entgehen? Der wichtigste Aspekt für eine nach-haltige Automatisierung heiÿt Zentralisierung. Nur wenn sämtliche Abläufe ineinem zentralen System gebündelt werden, können die Vorteile einer Automa-tisierung der Geschäftsprozesse tatsächlich genutzt werden:

• Zentralisierung und Vereinfachung der Abläufe

• Einfache De�nition von Abhängigkeiten der Prozesse untereinander

• Minimierung des Neuentwicklungs- und Wartungsaufwandes

• Zentrales Error-Handling mit integrierter Loggingfunktionalität

• Gesamtmonitoring aller Prozesse an einer zentralen Stelle

Aufgrund der Vielfältigkeit der unterschiedlichen Prozessanforderungen sindgängige Softwarelösungen nicht in der Lage, eine Zentralisierung von automa-tischen Prozessabläufen zu unterstützen. Hier wird eine Software benötigt, diegenau für diese Bedürfnisse entwickelt wurde.

Etixpert Consulting GmbH, Zagreus 1.3

17

ZAGREUS - Ihr zentrales Pro-zessmanagement

ZAGREUS wurde als moderne Prozess-plattform für jede Unternehmensgröÿeund -typ entwickelt. Mit einer umfas-senden Funktionsbibliothek ausgestat-tet, ermöglicht ZAGREUS eine schnel-le Abbildung aller digital verarbeitba-ren Unternehmensabläufen. Und dasin Verbindung mit vielen zusätzlichenVorteilen:

• Keine Programmierung

• Nutzung vorhandener System-komponenten

• Unterstützung der meistenDatenhaltungs- und Betriebssy-steme

• Administration an einer zentralenStelle

Flexible Lösung für einzigartige Unternehmen

Jedes Unternehmen ist einzigartig. Trotzdem gibt es eine Standardsoftwarelö-sung, die so �exibel ist, dass sie sich genau an Ihre Bedürfnisse anpassen kann.ZAGREUS ist schnell installiert und sofort einsetzbar - Plug and Play. Füreinen sichtbaren Erfolg müssen nicht zusätzlich monatelange und vor allemteure Projekte durchgeführt werden. Alte Prozesse sind rasch abgelöst, neueschnell umgesetzt. Am überzeugendsten ist ZAGREUS allerdings wenn mandie Software in Aktion sieht. Nach wenigen Minuten erkennt man, welchenNutzen ZAGREUS tatsächlich bietet.

Etixpert Consulting GmbH, Zagreus 1.3

18 Einleitung

Etixpert Consulting GmbH, Zagreus 1.3

Kapitel 2

Zagreus im Überblick

ZAGREUS ist die Lösung für eine Automation aller Unternehmensabläufe, diedigital verarbeitet werden können. Der reibungslose Ablauf aller Prozesse istdie Grundvoraussetzung für ein gut funktionierendes Unternehmen. ZAGREUSstellt sicher, dass Reihenfolge, Abhängigkeiten, das Zusammenspiel und dieWechselwirkungen von Prozessen berücksichtigt und eingehalten werden. Dar-über hinaus helfen ein e�zientes Errorhandling und eine ausgeklügelte Logging-Funktionalität Probleme zu erkennen und im geeigneten Ausmaÿ auf diese zureagieren. Ein umfassendes Monitoring rundet das Gesamtpaket ab. Dass ZA-GREUS unterschiedliche Datenbasis verarbeiten und mit einer Vielzahl vonSoftwaresystem kommunizieren kann, versteht sich dabei von selbst. Man kannZAGREUS nicht in gängige Softwarekategorien zwängen, dafür verfügt die Lö-sung über zu viele unterschiedliche Funktionalitäten. Weder Jobscheduling, In-formation Delivery, Work�ow Plattform oder Alarmsystem alleine, können dieAnwendungsmöglichkeiten umfassend beschreiben. ZAGREUS vereinigt all die-se Funktionen zu einem einzigartigen Werkzeug, das Unternehmen wirklicheUnterstützung und Vereinfachung im täglichen Geschäft bietet. Im Grunde ge-nommen ist ZAGREUS das Missing Process Link für jedes Unternehmen. End-lich gibt es ein Werkzeug, mit dem alle IT-Prozesse über eine zentrale Prozess-Plattform abgearbeitet werden.

Situation in vielen Unternehmen

Bevor wir näher auf die Möglichkeiten von ZAGREUS eingehen, betrachten wireinmal die Situation, die in vielen Unternehmen vorherrscht:

Eine Vielzahl von Softwaresystemen unterstützt die täglichen Arbeitsprozesse.Vieles wird durch Mitarbeiter manuell erledigt, einiges wird bereits automatischabgearbeitet. Da das Ziel Automatisierung heiÿen muss, da nur so die stetsgeforderten Einsparungen bei Ressourcen, Zeit und Kosten realisiert werden

20 Zagreus im Überblick

Abbildung 2.1: Parallele Prozesse ohne Zusammenspiel

können, wird diesem Punkt seitens Geschäftsführung und IT groÿe Aufmerksam-keit beigemessen. Zur Umsetzung werden vorhandene Funktionen der im Ein-satz be�ndlichen Softwarelösungen, Drittapplikationen oder Eigenentwicklungenherangezogen.

Das Resultat ist in vielerlei Hinsicht nicht immer zufriedenstellend. Die Au-tomatisierung der IT-Prozesse wird zwar punktuell erreicht, aber mit welchenNebenwirkungen (siehe auch Abbildung 2.1):

• Die meisten Prozesse laufen parallel und zusammenhanglos ab.

• Interaktionen zwischen den Automatisierungssystemen sind nicht möglich

• Abhängigkeiten können nicht oder mit groÿen Aufwand de�niert werden

• Die Wartung der Systeme benötigt starken Ressourcenaufwand

• Neue Anforderungen können nur mit groÿem Aufwand integriert werden

• Weitere Automatisierungsschritte erhöhen Komplexität, Aufwand und Ko-sten

Problemlöser ZAGREUS

Hier kommt nun ZAGREUS ins Spiel. ZAGREUS besitzt alle Voraussetzungenum eine weitreichende Automatisierung von Prozessen umzusetzen UND die be-schriebenen Unzulänglichkeiten zu beheben. Aufgrund seiner Architektur kann

Etixpert Consulting GmbH, Zagreus 1.3

21

Abbildung 2.2: Zentraler Prozessserver

ZAGREUS als zentrale Komponente zwischen allen Systemen installiert werden.Mit einer umfassenden Funktionsbibliothek und den �exiblen Anbindungsmög-lichkeiten von Datenbanken und Softwaresystemen, stellt ZAGREUS das idealeWerkzeug für die Umsetzung der gestellten Anforderungen dar. Mit ZAGREUSstellt sich ein Tool vor, das sich nahtlos in ein Unternehmen integriert und sofortnutzbringend eingesetzt werden kann (siehe Abbildung 2.2).

Umstieg auf ZAGREUS

Natürlich wurden in vielen Unternehmen bereits entsprechende Investitionengetätigt, um Abläufe IT-technisch abzubilden. Diese Investitionen jetzt einfachabzuschreiben, ist sicher kein leichter Schritt. Warum sollte man sich dennochfür ZAGREUS entscheiden? Für ZAGREUS sprechen eine Vielzahl von Argu-menten, die wichtigsten sind:

• Minimierung des Entwicklungsaufwandes neuer IT-Prozesse

• Reduzierung des Wartungsaufwandes gegen Null

• Zentralisierung der Abläufe

• Vereinfachung der Abläufe

• Schneller Return on Investment

ZAGREUS ist schnell installiert. Sind danach alle Verbindungen zu den relevan-ten Datenquellen und Systemen hergestellt, ist der Aufwand für die Erstellungvon automatischen Prozessen eine sehr rasche Angelegenheit. Durch den Ein-satz von ZAGREUS können daher vorhandene IT-Prozesse schnell verbessert

Etixpert Consulting GmbH, Zagreus 1.3

22 Zagreus im Überblick

und neue erstellt und integriert werden. Und das alles mit geringstem zukünfti-gen Wartungs- und Ressourcenaufwand.

Vorteile von ZAGREUS

ZAGREUS ist so vielseitig wir Ihr Unternehmen. Entnehmen Sie aus der rechtenAufstellung eine Auswahl der Vorteile.

• Mächtige, moderne Prozessplattform auf Client-Server Basis

• Umfangreiche Funktionsbibliothek (Out-of-the-Box )

• Graphisches Userinterface zur einfachen und intuitiven Erstellung kom-plexer Prozesse

• Event- und zeitabhängige Steuerung von Projektabläufe

• Vollintegriertes Errorhandling und Prozess-Logging

• Umfassende Monitoring Funktionalität

• Wiederverwendbarkeit bereits vorhandener Prozesskomponenten (Objekt-ansatz )

Moderne Plattform für mehr Flexibilität und Automatisierung

ZAGREUS ist eine moderne Softwarelösung, die seit 2004 auf Basis moder-ner Softwarekomponenten von der Fa. ETIXPERT entwickelt wird. Wir habeneine langjährige Erfahrung mit der Unterstützung von IT-basierenden Unter-nehmensabläufen und haben bereits ab 2002 (aus Ermangelung geeigneter Al-ternativen) ein Softwaretool entwickelt, das erfolgreich bei Kunden eingesetztwird. Mit ZAGREUS gehen wir nun den entscheidenden nächsten Schritt undbringen eine professionelle Softwarelösung auf dem Markt, die unseren Vorstel-lungen einer kundenfreundlichen und nutzbringenden Software entspricht.

Die Entwicklungsvorgaben für ZAGREUS basieren auf all den Anforderungen,die uns im Laufe unserer Kundenbetreuung untergekommen sind. Das Resultatist eine integrative, �exible und leicht zu integrierende Softwareplattform, die imengen Zusammenspiel mit vorhandenen Hard- und Softwarekomponenten mehrFlexibilität und Automatisierung in jedes Unternehmen bringt

Funktionsvielfalt, der Schlüssel zum Erfolg

Der groÿe Vorteil von ZAGREUS liegt in der Vielfalt der angebotenen Funktio-nen und deren Zusammenspiel. Es wird der Groÿteil aller Prozesskomponentenabgedeckt, die in einer komplexen IT-Landschaft vorkommen. Die unterschied-lichen Funktionen können in die folgenden acht Funktionsgruppen eingeteiltwerden.

Etixpert Consulting GmbH, Zagreus 1.3

23

• Abarbeitung von Systembefehlen auf Betriebssy-stemsebene (UNIX, LINUX, Windows).

• Synchroner oder asynchroner Aufruf von Pro-grammen innerhalb des gesamten LANs

• Datenmanipulation: Übermittlung, Austausch,Transformation und Verknüpfung der unterschied-lichsten Datenformate

• Information Delivery: Versand, Ausgabe und Zu-stellung von Daten über zahlreiche Medien (dar-unter: SMS, Email, Drucker, Internet) unter Be-rücksichtigung der gewünschten Formatierung

• Job-Scheduling: Zeit- oder eventbasierter Aufrufder de�nierten Prozesse

• Verknüpfung von Prozessen: Einfacher Aufbaukomplexer und vollautomatisierter Work�ows mitHilfe aller vorhandener Funktionen

• Logging und Errorhandling: Automatische Proto-kollierung aller Schritte und entsprechende Reak-tion auf eingestellte Fehlermeldungen oder War-nungen

• Vollintegriertes Monitoring aller Prozesse und de-ren Teilschritte

Die Mächtigkeit von ZAGREUS entsteht durch das �exible Zusammenspiel al-ler Funktionsbereiche, das eine einfache Abbildung und Umsetzung komplexerProzesse ermöglicht. Mit Hilfe von simplen Vorgängen, können die einzelnenSchritte eines Work�ows erstellt, miteinander verknüpft und in Abhängigkeitengebracht, sowie in logische Abläufe gezwängt werden.

Die zeitliche Logik der Abläufe übernimmt ein Scheduler, der zum richtigenZeitpunkt die gewünschten Prozesse startet. Das Errorhandling, oft einer derumständlichsten und aufwendigsten Arbeitsschritte, ist bei ZAGREUS ein �xerBestandteils des Ablaufs und schlieÿt den Kreis der umfassenden Funktionsviel-falt.

Client - Server Architektur

Um ein abgerundetes Softwarepaket anbieten zu können, wurde als technischeBasis eine moderne Client-Server Architektur gewählt. Der ZAGREUS Clienterzeugt aus gra�sch erstellten Prozessen einen Script-Code, der vom ZAGREUSServer (der die eigentliche Arbeit erledigt) interpretiert werden kann. Das Script(der Prozess) wird dann aufgrund eines hinterlegten Ablaufplanes (Schedule)

Etixpert Consulting GmbH, Zagreus 1.3

24 Zagreus im Überblick

Abbildung 2.3: Serverarchitektur ZAGREUS

zum richtigen Zeitpunkt vom Server als Job gestartet und der gesamte de�nierteProzess durchgeführt.

Execution Engines

Sobald ein Prozess gestartet wird, übergibt der ZAGREUS Server den Job aneine Execution Engine. Da das Zusammenspiel mit einer Vielzahl von ExecutionEngines zur selben Zeit vorgesehen ist, ist die Abarbeitung mehrerer parallelerJobs möglich. Das gesamte System wird daher nicht blockiert, wenn aufgrundeiner synchronen Jobverarbeitung eine Execution Engine für längere Zeit aufeine Rückantwort warten muss.

2.1 ZAGREUS Server

Das Herzstück von ZAGREUS ist der Server. Der ZAGREUS Server kann unterUNIX, Windows und LINUX installiert werden. Wird er an zentraler Stelle imNetzwerk platziert und bekommt Zugri� auf Datenbanken, Log-Files, wichtigeDateien und Work�owsysteme (STMP-Server,HTTP-Server, ERP- und CRMSystem, usw.) steht einer raschen und e�ektiven Nutzung nichts mehr im Weg(siehe Abbildung 2.3).

Der Server besteht aus einigen logisch getrennten Bereichen die zusammen die

Etixpert Consulting GmbH, Zagreus 1.3

2.1 ZAGREUS Server 25

Gesamtfunktionalität von ZAGREUS ausmachen. Durch das Zusammenspielder Komponenten entstehen Mächtigkeit und Flexibilität, die es ermöglichen,ZAGREUS exakt an die Anforderungen eines Unternehmens anpassen zu kön-nen.

2.1.1 Connections

Um mit der IT-Welt kommunizieren zu können, besitzt ZAGREUS eine Reihevon Schnittstellen, die sogenannten Connections. Über Connections werden dieVerbindungen zu anderen Systemen hergestellt, um Datenaustausch und Sy-stemkommunikation zu ermöglichen. Grundsätzlich können zwei Gruppen vonConnections unterschieden werden:

Connections zu Datenquellen

Sowohl für den Input als auch für den Output muss ZAGREUS mit Datenquel-len jeglicher Art Verbindungen aufbauen und interagieren. Egal ob Informationaus einer Textdatei über Email versendet, Daten in Datenbanktabellen geschrie-ben oder Schnittstellen mit ASCII Files beschickt werden, ZAGREUS stellt dienotwendigen Verbindungen zur Verfügung. Daten-Connectoren sind:

• ODBC / JDBC: Verbindung zur relationalen Datenbankwelt

• HTML / XML: Verbindung zur Welt des Internets

• ASCII: Verbindung zu allen Text�les

• MS-Excel: Verbindung zur Microsoft Produkten

System-Connections

Das Kommunikation mit anderen Systemen funktioniert nicht nur über den Aus-tausch von Daten. Ein �exibles Work�owsystem muss auch direkte Interaktionenmit anderen Softwaresystemen ermöglichen. System-Connectoren sind:

• FTP: Lesen und schreiben von Daten über FTP Protokoll

• SMTP Server: Versand von Information über Email, SMS und Voice

• HTTP: Kommunikation mit dem Internet

• MSTR: Kommunikation mit dem Business Intelligence Tool MicroStrategy

• MDX (noch in Entwicklung): Kommunikation mit OLAP-Schnittstellen

Etixpert Consulting GmbH, Zagreus 1.3

26 Zagreus im Überblick

Abbildung 2.4: Action-Elemente

2.1.2 Actions

ZAGREUS bietet eine umfassende Funktionsbibliothek an. Jede dieser Funktio-nen wird durch eine Aktion (Action) dargestellt. Die Actions sind in logischeGruppen eingeteilt und werden über eine Funktionspalette für die Erstellungvon Prozessen angeboten. Jede Action hat spezi�sche Einstellungsparameter.Das Spektrum reicht von der einfachen Texteingabe bis zur vielschichtigen Hin-terlegung von notwendigen Informationen für einen Email-Versand. Aufgrundder o�enen Architektur von ZAGREUS, können neue Actions innerhalb kurzerZeit entwickelt und integriert werden (siehe Abbildung 2.4).

2.1.3 Prozesse

Ein ZAGREUS Prozess wird mit Hilfe von Connectoren und Actions entwickelt.Pro Prozess werden die notwendigen Connectoren de�niert oder aus dem bereitsbestehenden Pool inkludiert. Danach wird der logische Ablauf des Prozessesmit Hilfe der Actions de�niert. Dazu werden einfach die notwendigen Actionsin der richtigen Reihenfolge in den Prozessbereich gezogen und die jeweiligenParameter de�niert. Bei diesem Vorgang wird man durch die intuitive gra�scheOber�äche bestmöglich unterstützt.

ZAGREUS Prozesse können ohne Programmierung, ja sogar ohne groÿes EDVKnow-How erstellt werden.

Etixpert Consulting GmbH, Zagreus 1.3

2.1 ZAGREUS Server 27

Abbildung 2.5: Komplexe Prozesse - einfache Umsetzung

2.1.4 Scheduler

Ein wesentlicher Faktor für die vollständige Automatisierung von IT-Prozessenist die Sicherstellung, dass die Prozesse auch zum richtigen Zeitpunkt gestartetwerden. Der ZAGREUS Scheduler bietet die Möglichkeit Prozesse entweder zeit-abhängig oder ereignisgesteuert zu starten. Je nach Anforderung können daherProzesse zu einem bestimmten Zeitpunkt gestartet werden, oder der Startimpulswird von einem anderen System oder Job gegeben.

Für beide Varianten bietet ZAGREUS einen einfachen und gleichzeitig e�ektivenAblaufeditor.

2.1.5 Metadaten

Obwohl die Metadaten keine sichtbare Rolle bei Entwicklung und Ablauf derProzesse spielen, ist doch gerade die Art der Speicherung der Steuerungsdatenein wesentlicher Faktor für die einfache Handhabung und die Flexibilität vonZAGREUS. ZAGREUS speichert alle beschreibenden Daten in einer relationalenDatenstruktur ab, wo sie als zentralerSteuerungsinformationen für das Systemzur Verfügung stehen.

Durch den zentralen und objektorientierten Ansatz ermöglichen die Metadatendie einfache Wiederverwendbarkeit bereits erstellter Prozessteile. Eine weiterewichtige Rolle spielen sie bei der Speicherung der operativen Ablau�nformationder Prozesse, die hier für Logging-Auswertungen gespeichert werden.

Etixpert Consulting GmbH, Zagreus 1.3

28 Zagreus im Überblick

Abbildung 2.6: ZAGREUS Scheduler

2.1.6 Vorteile des ZAGREUS Servers

Der ZAGREUS Server bietet die notwendige Funktionalität für einen reibungs-losen Prozessablauf. Und eine Fülle weiterer Vorteile, die eine Automatisierungder IT unterstützen.

• Alle Funktionen an einer zentralen Stelle

• UNIX, LINUX, Windows Betriebssystem

• Parallelisierung der Prozesse möglich

• Metadatengetrieben,

• Objektorientierter Ansatz - Wiederverwendbarkeit gegeben

• Event- und Zeitscheduler

• Funktionalität jederzeit erweiterbar

2.2 ZAGREUS Client

Für die Erstellung der Prozesse bietet ZAGREUS eine intuitive gra�sche Ober-�äche (GUI - Graphical User Interface) an, mit dem sämtliche Funktionen desZAGREUS Server bedient werden können. Die Ober�äche des Clients ist in

Etixpert Consulting GmbH, Zagreus 1.3

2.2 ZAGREUS Client 29

Abbildung 2.7: ZAGREUS Client

Abbildung 2.8: Mehrere ZAGREUS Server - ein Browser

mehrere Abschnitte untereilt, damit eine übersichtliche Arbeit gewährleistet ist(siehe Abbildung 2.7).

Die Ober�äche des ZAGREUS Client kann in drei groÿe Anwendungsbereicheeingeteilt werden:

• Browser: für die Verwaltung von Anwendern und Objekten, sowie der ZA-GREUS Servereinheiten

• Prozessentwicklung: Erstellung und Wartung von Work�ows und Prozes-sen, sowie der Hinterlegung der operativen Ablaufpläne

• Monitoring: Anzeige von aktiven Services und deren Logging Information,sowie Historienberichte über bereits abgelaufene Services

2.2.1 Browser

Der Browser gleicht in Aufbau und Logik jedem anderen Objektbrowser.Er bietet die Navigation durch bereits angelegte und ermöglicht die Anla-ge neuer Objekte. Zu den ZAGREUS Objekten gehören ZAGREUS Server,

Etixpert Consulting GmbH, Zagreus 1.3

30 Zagreus im Überblick

Abbildung 2.9: Serververwaltung

User/Usergruppen, Ablaufpläne, Prozesse, Vorlagen, Connectoren sowie Da-teien, die für Prozesse benötigt und von ZAGREUS verwaltet werden. (sieheAbbildung 2.8).

2.2.1.1 Serververwaltung

Es ist natürlich möglich, mehrere ZAGREUS Server auf unterschiedlichen Rech-nern zu installieren. Vielleicht macht eine Sicherheitsvorgabe den Ablauf vonProzessen auf einem einzigen Server unmöglich oder es ist eine logische Tren-nung von Prozessen gewünscht. Der Client-Browser ist in der Lage mit mehrerenServern gleichzeitig zu interagieren.

Ein Kontextmenü ermöglicht die Anmeldung zu ZAGREUS Servern und derenVerwaltung. Es können neue Server hinzugefügt, bestehende Server De�nitio-nen verändert (z.B. Anmeldung über einen anderen User) oder gelöscht werden(siehe Abbildung 2.9).

Wird die Anmeldung an einen Server gewählt, wird eine Verbindung hergestellt.Sämtliche Objekte, die auf dem Server vorhanden sind und aufgrund der Sicher-heitseinstellungen für den User zur Verfügung stehen, werden geladen.

2.2.1.2 Userverwaltung

ZAGREUS bietet eine umfassende Userverwaltung an. Aufgrund der Anmel-dung mit einem bestimmten User erhält der Anwender Zugri� auf vorde�nierteObjekte, Ordner und Funktionalitäten. Jeder User erhält einen eigenen Ord-nerbereich, in dem seine eigenen Objekte abgelegt werden können. Aufgrundder Zuteilung des Users zu einer oder mehreren Anwendergruppen wird eben-falls der Zugri� auf dort gespeicherte Objekte gewährt. Diese Objekte könnendann entweder nur wiederverwendet oder, falls es die Sicherheitseinstellungenerlauben, auch verändert werden.

Etixpert Consulting GmbH, Zagreus 1.3

2.2 ZAGREUS Client 31

Abbildung 2.10: Benutzerverwaltung

2.2.1.3 Objektverwaltung

In der Objektverwaltung können Objekte angelegt, verändert oder gelöscht wer-den. ZAGREUS unterscheidet folgende Objekte:

• Script: Verwaltung von Prozessen und Work�ows

• Template: Verwaltung von wiederverwandbaren Objekten

• Connection: Verwaltung von Datenverbindungen

• Schedule: Verwaltung von Event- oder zeitgesteuerten Abläufen

• Text File: Verwaltung von Textdateien, die direkt für den Ablauf vonProzessen herangezogen werden können.

Je nach Wahl der Objektart (siehe Abbildung 2.11), ö�net sich der entsprechen-de Editor zur weiteren Verarbeitung.

2.2.1.4 Filebrowsing

Eine zusätzliche Funktion des Client Browsers ist die Möglichkeit der Navi-gation durch Ordner- und Dateistrukturen des Dateisystems. Der Anwenderhat Zugri� auf Dateien, die ihm aufgrund der Sicherheitseinstellungen zur Ver-fügung gestellt werden. Diese Dateien können durch Drag and Drop in Prozesse

Etixpert Consulting GmbH, Zagreus 1.3

32 Zagreus im Überblick

Abbildung 2.11: Objekttypen

Abbildung 2.12: Filebrowsing

Etixpert Consulting GmbH, Zagreus 1.3

2.2 ZAGREUS Client 33

Abbildung 2.13: Manipulation von Actions

eingebunden werden. Für die Verwaltung stehen die Möglichkeit der Bearbei-tung (editieren) sowie Laden neuer und Löschen alter Dateien zur Verfügung(siehe Abbildung 2.12).

2.2.2 Script-Editor

Die Entwicklung der Prozess-Scripte erfolgt über einen graphischen Editor. ImHintergrund erzeugt ZAGREUS einen Code, der vom ZAGREUS Server in-terpretiert wird. Dieser Code wird im XML-Format geschrieben und kann vonEDV-versierten Anwendern auch direkt editiert werden. Obwohl es keine Funkti-on gibt, die nicht durch den graphischen Editor abgedeckt wird, kann es manch-mal hilfreich sein, auch den Script-Code direkt zu editieren.

2.2.2.1 Der gra�sche Editor

Die Erstellung von neuen Prozess-Scripts erfolgt zu erst einmal auf dem Reiÿ-brett. Der Ablauf sollte soweit wie möglich feststehen. Auch muss bekannt sein,welche Daten- und Systemverbindungen benötigt werden, da diese selbstver-ständlich bei Erstellung des Prozesses zur Verfügung stehen müssen.

Ist der Ablauf skizziert, kann die Arbeit im gra�schen Editor beginnen. Nach-einander werden die benötigten Actions aus der Palette in den Editor gezogen,die Parameter hinterlegt und der genaue Ablauf (die richtige Reihenfolg derActions) festgelegt.

Über ein Kontextmenü, das mit Hilfe der rechten Maustaste aufgerufen wer-

Etixpert Consulting GmbH, Zagreus 1.3

34 Zagreus im Überblick

den kann, können Veränderungen an den Actions vorgenommen werden (sieheAbbildung ). Dazu bietet der Editor folgende Funktionen an:

• Namen ändern: Der Anwender kann einen sprechenden Namen vergeben

• Move Up/Down: Je nach Anforderung kann eine Action innerhalb des Ab-laufs früher oder später aufgerufen werden. Die Nummerierung verändertsich entsprechend.

• Attribute editieren: Die jeweiligen Attribute und Parameter können übereinen eigenen Editor befüllt werden

• Ansicht: Eine Action kann entweder in einer Icon-, einer Default-, odereiner detaillierten (Full) Ansicht angezeigt werden.

• Prozesspfeile anzeigen: Zur besseren Sichtbarkeit können Pfeile zur folgen-den und von der vorangehenden Action eingeblendet werden.

• Action als Attribut: Innerhalb einer verschachtelten Prozesslogik könnenActions auch als Attribute/Parameter angezeigt werden.

2.2.2.2 Komplexe Abläufe

Nicht immer sind Abläufe so einfach wie: Lies Daten, erzeuge Email, versendeEmail.

Oft sind Abhängigkeiten, Dateninhalte und das Vorhandensein bestimmter Ob-jekte für die Steuerung von Prozessen ausschlaggebend. ZAGREUS bietet hiereine Fülle unterschiedlicher Actions an, wie IF, For-Each, While, usw. Mit Hil-fe dieser speziellen Funktionen werden sogenannte verschachtelte Prozesse ent-wickelt, die genau den Vorgaben entsprechen. So kann z.B. ein Prozess solangeEmails verschicken, wie in einer Tabelle Emailadressen mit der Endung .ATvorhanden sind. Der Hauptprozess läuft also innerhalb einer WHILE-Schleifeab. In diesem Fall wandelt sich die einfache WHILE- Action in einem eigenenProzess-Container um, in dem der eigentliche Hauptprozess als Sub-Prozessabläuft.

ZAGREUS hat kein Limit für die Anzahl und Tiefe von Verschachtelungen undSub-Prozessen in der Container Logik. Egal wie komplex Prozesse sind, mitZAGREUS kann die Umsetzung einfach im gra�schen Editor umgesetzt werden.

2.2.2.3 Container Logik

Jeder Prozess besteht aus mehreren Teilschritten. Jeder Teilschritt kann aberauch wieder in weitere Teilschritte untergliedert werden. Zur Abbildung kom-plexer Prozesse, wurde in ZAGREUS der Objektcontainer eingeführt. Der Con-tainer ist eine in sich geschlossen Einheit, deren Funktion(en) innerhalb des

Etixpert Consulting GmbH, Zagreus 1.3

2.2 ZAGREUS Client 35

Abbildung 2.14: Container Logik

Prozesses aufgerufen werden. An Container werden die notwendigen Parameterund Daten für den Ablauf. Beinhaltet ein Container weitere Sub-Container, sogilt dieselbe Logik des Zusammenspiels, wie zwischen zwei parallelen Contai-nern.

Die Abbildung 2.14 zeigt die Funktionslogik der Container: Solange eine Email-Adresse in der Kundendatei vorhanden ist, wird pro Kunde ein Email mit einerProduktinformationsbroschüre versendet. Der gesamte Prozess läuft innerhalbeines WHILE-Containers ab, wobei der eigentliche Email-Versand samt Atta-chementerzeugung erst in einem dritten Sub-Container statt�ndet.

2.2.2.4 Prozessprotokoll - Loggingmechanismen

Bei jedem Prozess gibt es Ablaufpunkte, die protokolliert werden sollen, damitman den Verlauf nachvollziehen kann. ZAGREUS bietet für das Logging eineeigene Action an, die, wann immer sie im Laufe eines Prozesses aufgerufen wird,die entsprechende Meldung anzeigt. Gleichzeitig wird diese Information auch inden Metadaten für die spätere Nachvollziehbarkeit gespeichert (siehe Abbildung2.15).

Etixpert Consulting GmbH, Zagreus 1.3

36 Zagreus im Überblick

Abbildung 2.15: Logging Action

Abbildung 2.16: Error-Handling Actions

2.2.2.5 Errorhandling

Ein weiterer wesentlicher Faktor für die Automatisierung von Prozessen ist dasError Handling. Es muss sichergestellt sein, dass das System beim Auftreteneines Problems automatisch richtig reagiert. Mit Hilfe der Action On Errorkann aufgrund des Ergebnisses eines Prozessteilschrittes sofort eine geeigneteHandlung gesetzt werden. Die Action Raise übergibt das Ergebnis von Error-Parametern an übergelagerte Prozesse weiter, so dass auch auf höherer Ebenerichtig reagiert werden kann (siehe Abbildung 2.16). Mit diesen beiden Out-of-the-Box Funktionen kann das Error-Handling eines Prozesses sehr einfach, aberüberaus detailliert und genau abgebildet werden.

2.2.2.6 Objektorientierung - Wiederverwendbarkeit von Elementen

Viele Teilabläufe innerhalb eines Unternehmens wiederholen sich. Es wäre al-lerdings aufwendig immer aufs Neue die gleichen Prozesselemente anlegen zumüssen. ZAGREUS bietet Funktionen, die den Arbeitsaufwand deutlich mini-mieren und obendrein den zukünftigen Wartungsaufwand drastisch reduzieren.Da sich die Einstellungen des Elements vererben, müssen zukünftige Änderun-gen nur an einer Stelle durchgeführt werden.

Etixpert Consulting GmbH, Zagreus 1.3

2.2 ZAGREUS Client 37

Abbildung 2.17: Templates

Abbildung 2.18: Connections

Templates

Mit ZAGREUS können Template (Vorlagen)-Scripts mit bestimmten, wieder-kehrenden Funktionen de�niert werden. Diese Templates können dann immerwieder in weiteren Scripts integriert werden. Die Anlage von Templates ist dannsinnvoll, wenn es bestimmte Abläufe (z.B. Einlesen einer Exceldatei) gibt, diesich oftmals wiederholen, jedoch beim Aufruf je nach Work�ow unterschiedlicheParameter benötigen. Wurde ein Template angelegt, kann dieses über die Acti-on Call Template in jeden anderen Prozess integriert werden (siehe Abbildung2.17).

Connections

Ein spezieller Script-Typ ist eine Connection. Mit Connections können Verbin-dungen zu Datenbanken und Softwaresystemen aufgebaut werden. Connectionswerden einmalig erstellt und bei Bedarf am Anfang eines Scripts integriert.Das über die Connection verbundene System steht für die weiteren Prozess-schritte zur Verfügung. Typische Connections sind Verbindungen zum Standard-Emailserver oder zur Kundendatenbank (siehe Abbildung 2.18).

Include

Die Integration vorhandener Scripts in ein neues Scripts erfolgt über die IncludeFunktion. Neben Templates und Connections kann eigentlich jedes Script wie-

Abbildung 2.19: Include

Etixpert Consulting GmbH, Zagreus 1.3

38 Zagreus im Überblick

Abbildung 2.20: Ablaufplan hinterlegen

derverwendet werden. Durch einfaches Drag and Drop werden fertige Prozessein neuen Abläufen integriert. Es steht auch eine Kopierfunktion zur Verfügung,allerdings geht bei deren Nutzung der objektorientierte Ansatz verloren.

2.2.2.7 Automatisierung der Prozesse

Der letzte Schritt der Prozesserstellung ist die Produktivsetzung. Prozesse kön-nen zwar auf Knopfdruck (Button Run) ausgeführt werden, automatisiert wirdder Ablauf aber erst nach Zuteilung eines Ablaufplanes (Schedules). Ein Pro-zess bekommt je nach Bedarf ein oder mehrere Ablaufpläne zugeteilt. Jedes Mal,wenn ein Ablaufplan startet, wird auch der Prozess ausgeführt. Die Bandbreiteder Gründe für den Start eines Prozesses ist mannigfaltig. Egal ob eine Prozessalle x Sekunden oder nur einmal im Jahr, wenn eine bestimmte Anzahl von Ta-bellenzeilen überschreitet wird ausgeführt werden soll, ZAGREUS unterstütztjede Art der Ablaufplanung

Vorteile des ZAGREUS-Scripteditors

ZAGREUS bietet sämtliche Funktionen für die �exibel Erstellung eines Pro-zessscripts auf gra�scher Basis.

• Intuitive Benutzerober�äche für die einfache Erstellung komplexer Abläufe

• Drag and Drop Funktionalität anstatt aufwendiger Programmierarbeiten

• Benutzerlogik auf funktioneller, Objekt-, so wie auf Datenzugri�slogik

2.2.3 Monitoring

Ein wichtiger Teil eines funktionierenden Work�ow-Systems ist das Monitoring.Nur durch die Kontrolle von Prozessen kann gewährleistet werden, dass das

Etixpert Consulting GmbH, Zagreus 1.3

2.2 ZAGREUS Client 39

Abbildung 2.21: Übersicht aktive Jobs und Logs

System den Anforderungen entsprechend läuft, alle Scripts fehlerfrei laufen unddie gewünschten Ergebnisse erzielt werden.

ZAGREUS bietet einen eigenen Berichtsteil für ein umfassendes Monitoring an(siehe Abbildung 2.21).

Es können sowohl aktuell laufende (Active Jobs), als auch bereits abgearbeiteteProzesse (Finished Jobs) kontrolliert werden. Pro Prozess wird eine Zeile mitden wichtigsten Ablau�nformationen angezeigt. Um weitere Details zu erhalten,kann man sich zu jedem Job die Protokoll-Information ansehen.

Etixpert Consulting GmbH, Zagreus 1.3

40 Zagreus im Überblick

Etixpert Consulting GmbH, Zagreus 1.3

Kapitel 3

Installation

Zagreus kann sowohl für Windows als auch für Linux (Unix) installiert werden.

3.1 Installation unter Windows

Die Installations-CD enthält bereicht die richtige Dateistruktur. Für die korrekteInstallations müssen folgende Schritte durchgeführt werden:

• Kopieren der Dateien in das gewünschte Programmverzeichnis

• Einstellen der Pfade in den Kon�gurationsdateien

• Installieren als Windows-Service

3.1.1 Kopieren der Dateien

Zagreus ist so kon�guriert, dass es unter

c:\Programme\zagreus

installiert wird. Von der Installations-CD müssen die Dateien nur in dieses Ver-zeichnis kopiert werden.

3.1.2 Kon�gurationsparameter einstellen

Falls Zagreus in einem anderen Verzeichnis installiert wird, müssen folgendeEinträge angepasst werden:

42 Installation

• Server-Kon�guration:

Datei: server\conf\conf.properties

engine.FSAccessRoot=c\:\\programme\\zagreus\\filesystem

engine.userlib.mstr8.0.2=c\:\\programme\\zagreus\\server\\prog\\WEB-INF\\lib-mstr\\mstr8.0.2

engine.userlib.mstr8.0.3=c\:\\programme\\zagreus\\server\\prog\\WEB-INF\\lib-mstr\\mstr8.0.3

engine.userlib.db=c\:\\programme\\zagreus\\server\\prog\\WEB-INF\\lib-db

engine.userlib.fop=c\:\\programme\\zagreus\\server\\prog\\WEB-INF\\lib-fop

backup.dir=c\:\\programme\zagreus\backup

jobexport.xmlfile=c\:\\programme\zagreus\\export\\zagreus.export.xml

jobexport.jobfile=c\:\\programme\zagreus\\export\\zagreus.export.job

jobexport.logfile=c\:\\programme\zagreus\\export\\zagreus.export.log

• Service-Kon�guration:

Datei: server\service\conf\wrapper.conf

# Java Application

wrapper.java.command=C:/Programme/zagreus/jre1.5.0_06/bin/java

# Java Additional Parameters

wrapper.java.additional.1=-Dzagreus.home=c:/Programme/zagreus/server

wrapper.java.additional.2=-Dzagreus.javahome=c:/Programme/zagreus/jre1.5.0_06

• Client-Kon�guration:

Datei: setenvironment.bat

set JAVA_HOME=C:\Programme\zagreus\jre1.5.0_06

set ZAGREUS_HOME=C:\Programme\zagreus\server

set ZAGREUS_CLIENT_HOME=C:\Programme\zagreus\client

3.1.3 Windows-Service einrichten

Um Zagreus als Windows-Service einzurichten, muss die Datei

C:\Programme\zagreus\server\service\bin\InstallApp-NT.bat

ausgeführt werden. Danach kann das Service über die Dienste in der System-steuerung gestartet und gestoppt werden. Alternativ kann für den Start desService auch

net start zagreus

in einem Command-Fenster verwendet werden. Für den Stop des Services:

net stop zagreus

Etixpert Consulting GmbH, Zagreus 1.3

3.2 Installation unter Linux 43

3.2 Installation unter Linux

Die Installations-CD enthält bereicht die richtige Dateistruktur. Für die korrekteInstallations müssen folgende Schritte durchgeführt werden:

• Kopieren der Dateien in das gewünschte Programmverzeichnis

• Einstellen der Pfade in den Kon�gurationsdateien

3.2.1 Kopieren der Dateien

Zagreus ist so kon�guriert, dass es unter

/home/zagreus

installiert wird. Von der Installations-CD müssen die Dateien nur in dieses Ver-zeichnis kopiert werden.

3.2.2 Kon�gurationsparameter einstellen

Falls Zagreus in einem anderen Verzeichnis installiert wird, müssen folgendeEinträge angepasst werden:

• Server-Kon�guration:

Datei: server/conf/conf.properties

engine.FSAccessRoot=/home/zagreus/filesystem

engine.userlib.mstr8.0.2=/home/zagreus/server/prog/WEB-INF/lib-mstr/mstr8.0.2

engine.userlib.mstr8.0.3=/home/zagreus/server/prog/WEB-INF/lib-mstr/mstr8.0.3

engine.userlib.db=/home/zagreus/server/prog/WEB-INF/lib-db

engine.userlib.fop=/home/zagreus/server/prog/WEB-INF/lib-fop

backup.dir=/home/zagreus/backup

jobexport.xmlfile=/home/zagreus/export/zagreus.export.xml

jobexport.jobfile=/home/zagreus/export/zagreus.export.job

jobexport.logfile=/home/zagreus/export/zagreus.export.log

• Start Server:

Datei: startserver.sh

ZAGREUS_JAVA_HOME=/home/zagreus/jre1.5.0_10

ZAGREUS_HOME=/home/zagreus/server

ZAGREUS_CLIENT_HOME=/home/zagreus/client

Etixpert Consulting GmbH, Zagreus 1.3

44 Installation

• Stop Server:

Datei: stopserver.sh

ZAGREUS_JAVA_HOME=/home/zagreus/jre1.5.0_10

ZAGREUS_HOME=/home/zagreus/server

ZAGREUS_CLIENT_HOME=/home/zagreus/client

• Client-Kon�guration:

Datei: gui/start.sh

ZAGREUS_JAVA_HOME=/home/zagreus/jre1.5.0_10

ZAGREUS_HOME=/home/zagreus/server

ZAGREUS_CLIENT_HOME=/home/zagreus/client

3.2.3 Zagreus Server starten/stoppen

Um den Zagreus-Server zu starten muss die Datei

/home/zagreus/startserver.sh

ausgeführt werden. Für das Beenden:

/home/zagreus/stopserver.sh

3.3 Libraries für Drittapplikationen

Zagreus kann für die verschiedene Applikationen die entsprechenden Librarieseinbinden.

MicroStrategy

Für MicroStrategy sind es die WEB-API Dateien. Die Folgenden Dateien müs-sen dazu im im Kon�gurations�le spezi�zierten Verzeichnis (server/prog/WEB-INF/lib-mstr) vorhanden sein:

• JavaWebAPI.jar

• WebObjects.jar

• WebUtils.jar

• WebXMLUtil.jar

Etixpert Consulting GmbH, Zagreus 1.3

3.3 Libraries für Drittapplikationen 45

Da diese Dateien nicht Teil der Zagreus-Installations CD sind, müssen sie schonvorort installiert sein.

JDBC

Wird auf Oracle, SQL-Server, Postgres etc, mittels JDBC zugegri�en, müs-sen die entsprechenden JDBC-Treiber in das angegeben Userlib-Verzeichnis(server/prog/WEB-INF/lib-db) kopiert werden. Diese Dateien sind nicht Teilder Zagreus-Installations CD, und müssen vom jeweiligen Datenbank-Herstellergeholt werden.

Business Objects

Für Business Objects sind es die Web-API Dateien. Die Folgenden Dateien müs-sen dazu im im Kon�gurations�le spezi�zierten Verzeichnis (server/prog/WEB-INF/lib-bo) vorhanden sein:

• cesession.jar

• cecore.jar

• celib.jar

• ceplugins.jar

• cereports.jar

• ceutils.jar

• cexsd.jar

• corbaidl.jar

• bocon�g.jar

• CRDBJavabeansServer.jar

• CRDBJavaServer.jar

• CRDBJavaServerCommon.jar

• CRDBJDBCServer.jar

• CRDBXMLServer.jar

• crlov.jar

• CrystalCharting.jar

• CrystalCommon.jar

• CrystalContentModels.jar

Etixpert Consulting GmbH, Zagreus 1.3

46 Installation

• CrystalDatabaseConnectors.jar

• CrystalExporters.jar

• CrystalExportingBase.jar

• CrystalQueryEngine.jar

• CrystalReportEngine.jar

• dsws-bicatalog.jar

• dsws-common.jar

• dsws-publish.jar

• dsws-queryservice.jar

• dsws-reportengine.jar

• dsws-session.jar

• ebus405.jar

• InstallEndSdkWrapper.jar

• jrcadapter.jar

• jrcerom.jar

• jtools.jar

• keycodeDecoder.jar

• Meta�leRenderer.jar

• rasapp.jar

• rascore.jar

• rebean.jar

• rebean.common.jar

• rebean.fc.jar

• rebean.wi.jar

• ReportPrinter.jar

• ReportTemplate.jar

• ReportViewer.jar

• rpoifs.jar

Etixpert Consulting GmbH, Zagreus 1.3

3.4 Lizenzschlüssel 47

Abbildung 3.1: Lizenzschlüssel einspielen

• Serialization.jar

• URIUtil.jar

• webreporting.jar

• webreporting-jsf.jar

• wilog.jar

Da diese Dateien nicht Teil der Zagreus-Installations CD sind, müssen sie separatinstalliert werden.

3.4 Lizenzschlüssel

Nach der Installation muss noch der Lizenzschlüssel eingespielt werden. Daspassiert über das Kontextmenü der Serverde�nition im Client (Get licence in-formation ...). Siehe Abbildung 3.1.

3.5 Zagreus Excel Service

Für das neue Zagreus Excel Service gibt es ein eigenes Setup.exe. Nach demDurchführen des Setups wurde das Service bereits installiert, aber noch nicht

Etixpert Consulting GmbH, Zagreus 1.3

48 Installation

gestartet. Im installierten Verzeichnis be�ndet sich die Kon�gurationdatei Za-greusExcel.exe.con�g. In diesem File kann der Port für das Service geändertwerden. Für das Service darf nicht der LocalSystem Account verwendet wer-den, da dieser normalerweise keine Rechte hat, Excel auszuführen. Deshalb muÿder Logon für dieses Service noch geändert werden. Danach kann das Servicegestartet werden.

Weiters ist noch zu beachten, daÿ die Macro-Security für Excel für diesen Useranzupassen ist. Bei niedrigiger Sicherheitsstufe können Makros ausgeführt wer-den, bei mittlere Sicherheitsstufe erscheint ein Popup-Fenster für eine Interak-tion. Das kann aber im Serverbetrieb nicht beantwortet werden. Bei hoher Si-cherheitsstufe müssen die Trusted Sources gesetzt werden, da sonst die Macrosdeaktiviert sind.

Sollen zehntausende von Zeilen nach Excel exportiert werden, muÿ eventuellnoch die .NET-Umgebung angepasst werden. Dazu müssen im File

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config\machine.config

die maximale RequestLength und eventuell noch verschiedene Timeout-Werteangepasst werden. Folgende Zeile kann an das Ende des Elements system.webeingefügt werden.

<httpRuntime maxRequestLength="65536" executionTimeout="1800" shutdownTimeout="1800"/>

Etixpert Consulting GmbH, Zagreus 1.3

Kapitel 4

Zagreus Server

Der Zagreus Server ist das Herzstück der ganzen Zagreus-Applikaton. Er regelt die Kommu-nikation mit den Clients, führt Scripts aus, verwaltet alle Objekte in einer Datenbank undprotokolliert jede Tätigkeit. Der Server ist zuständig für folgende Aufgaben:

• Client-Server Kommunikation

• Job Execution

• Job Scheduling

• Metadata Repository

• Logging

• Backup

Der Zagreus-Server kann unter Windows und Linux (Unix) installiert werden. Einen Überblicküber die Zagreus-Architektur zeigt Abbildung 4.1.

4.1 Client-Server Kommunikation

Die Interaktion mit dem Server läuft über Web-Services. Mittels SOAP-Requests können An-fragen an den Server gestellt werden. Sei es, dass der Inhalt eine Folders abgefragt wird, einScript gestartet wird, die Job-Tabelle angesehen wird etc. Die volle Funktionalität der Client-Server Kommunikation kann über den Zagreus-Client ausgeschöpft werden. Zusätzlich gibt esauch die Möglichkeit, über Web-Browser oder Commandline, Scripts zu starten bzw. Eventsauszulösen. Der Standardport für die Kommunikation ist 7323. Dieser Port kann im Kon�-gurations�le geändert werden. Die Aktivitäten des Servers werden in einem eigenen Log-Fileprotokolliert (im Verzeichnis server/log).

4.2 Execution

Eine weitere wichtige Aufgabe des Servers ist es, Scripts auszuführen. Für die Ausführung istein eigener Prozess zuständig, eine sogenannten Execution Engine. Der Server übergibt daserste Script der Warteschlange der nächsten freien Execution Engine zur Ausführung. Jede

50 Zagreus Server

Abbildung 4.1: Zagreus Architektur

Etixpert Consulting GmbH, Zagreus 1.3

4.2 Execution 51

Execution Engine hat seine eigenen Runtime-Einstellungen, die beim Start aus der Server-Kon�gurationsdatei geladen werden. Es kann aber vorkommen, dass gewisse Scripts höhereSpeicheranforderungen haben, oder länger laufen oder andere Libraries laden müssen. Falls einScript andere Parameter enthält wie die Execution Engine, wird diese gestoppt und mit denneuen Parametern neu gestartet. Folgende Parameter sind für die Ausführung kon�gurierbar.

• engine.jvmopts: Speicheranforderungen

• engine.maxrunning Maximale Laufzeit (in Millisekunden)

• engine.loglevel Loglevel

• engine.userlib diese Libraries werden zur Ausführung geladen

Vor Beginn der Ausführung werden auch die Variablen der Benutzer, Gruppen und Scriptsgesetzt. Die Execution Engine führt die Scripts im Kontext ihres Benutzers aus. Dh. sie kannnur auf Objekte zugreifen, auf die der Besitzer des Scripts auch Zugri� hat, zum einen in denMetadaten zum anderen im Filesystem.

4.2.1 Queuing

Beim Start eines Scripts wird dieses in die Job-Warteschlange eingereiht. Die Scripts landenje nach ihrer Priorität eher am Beginn oder eher am Ende der Warteschlange. Die Stan-dardpriorität wird im Server-Kon�gurations�le angegeben. Für jedes Script kann dieser Wertüberschrieben werden. Ein weiterer wichtiger Paramter ist die maximale Queuing-Time. Siegibt an, wie lange ein Job maximal auf die Ausführung warten darf. Folgende Parameter sindfür die Job-Warteschlange kon�gurierbar.

• script.priority: Priorität des Scripts (ein Wert von 1 hat höchste Priorität). Priori-täten können für Benutzer, Gruppen und für Scripts vergeben werden.

• engine.maxqueuetime: Maximale Wartezeit (in Millisekunden)

• engine.maxparallelexecution: kann für ein Script angegeben werden (als Script-Parameter). Damit kann angegeben werden, wie oft ein Script gleichzeitig ausgeführtwerden darf. Ein Wert gleich 1 bedeutet, dass es nicht mehrmals parallel ausgeführtwerden darf, obwohl es öfters in der Warteschlange drankommen würde und mehrereExecution Engines verfügbar wären.

4.2.2 Parallelisierung

Je nach Lizenz können mehrere Execution Engines gestartet werden. Die Kommunikation desServers mit den einzelnen Engines (Prozessen) passiert über ein internes Protokoll. Standard-mäÿig hört die erste Exectution Engine am Port 5001, die zweite auf Port 5002 usw. DerStartport kann auch im Server-Kon�gurations�le geändert werden. Jede Execution Engineprotokolliert die Ausführung in einer eigenen Datei (im Verzeichnis server/log).

Neben der Parallelisierung der Execution Engines kann noch innerhalb einer Engine par-allelisert werden. Alle Schritte innerhalb einer Foreach-Schleife können in mehrere Threadsaufgeteilt und gleichzeitig abgearbeitet werden. Auch diese Parallelisierung ist von der Lizenzabhängig!

4.2.3 Gruppieren von Execution Engines

Execution Engines lassen sich auch in Gruppen zusammenfassen. Z.B. können 2 ExecutionEngines in der Gruppe 1 sein und die dritte in Gruppe 2. Damit lassen sich gezielt Jobs in einevon den beiden Gruppen schleusen. Jede der beiden Gruppen kann dann eigene Einstellungen

Etixpert Consulting GmbH, Zagreus 1.3

52 Zagreus Server

besitzen. Damit lassen sich z.B. kurze Administrator-Jobs immer auf der Execution Engine 3,die sich in der Gruppe 2 be�ndet starten, und Langläufer dürfen immer nur die ersten beidenExecution Engines in Gruppe 1 be�nden. Welcher Job in welche Gruppe kommt, kann überPrioritäten, User, Gruppen oder Scripts festgelegt werden.

# Legt fest, wieviel Gruppen es gibt

queue.groups.num=2

# Legt fest welche Execution Engins in die Gruppe 1 kommen.

# Mehrere Werte werden durch Komma getrennt eingegeben.

queue.groups.1.worker=1,2

queue.groups.1.user=

queue.groups.1.group=

queue.groups.1.script=

queue.groups.1.priority=

queue.groups.2.worker=3

queue.groups.2.user=admin

queue.groups.2.group=

queue.groups.2.script=

queue.groups.2.priority=

# Legt die Standardeinstellungen für die erste Execution Engine fest.

# Wird nichts angegeben, werden die Standardeinstellungen des Servers genommen.

worker.1.maxparallelexecution=1

worker.1.maxrunning=10000

worker.1.jvmOpts=

worker.1.loglevel=

worker.1.userlib.default=

worker.1.userlib.db=

4.3 Job Scheduling

Zagreus besitzt die Möglichkeit, Scripts

• Zeit bzw.

• Ereignis

gesteuert auszuführen. Damit können regelmäÿige Abläufe sowie Einzelstarts realisert werden.Ereignisse können über den Zagreus-Client, Batch-�les oder Web-Browser Aufrufen ausgelöstwerden.

4.4 Metadata-Repository

Alle Zagreus-Objekte werden in einer eigenen Datenbank abgelegt. Jedes Objekt verfügt übereinen eindeutigen Identi�er (Resource ID). Folgende Objekttypen sind zu unterscheiden:

• Script

• Connection

• Template

• Time-Schedule

Etixpert Consulting GmbH, Zagreus 1.3

4.5 Logging 53

• Event-Schedule

• Textdatei

• Binärdatei

• Folder

• Benutzer

• Gruppe

Die Kommunikation zwischen Server und Datenbank läuft über JDBC und Port 1528 ab.Dieser Port kann im Server-Kon�gurations�le geändert werden.

4.5 Logging

Neben den Logs für den Zagreus-Server und die Execution Engines werden noch zwei Tabellenin der Metadatenbank gewertet, und zwar:

• Job-Tabelle

• Scriptlog-Tabelle

Die Job-Tabelle zeigt Informationen über den Jobstatus:

• Jobid

• Status

• Scriptpath

• Beginnzeit der Ausführung

• Endezeit der Ausführung

• Anzahl der Log-Zeilen

• Ausführungsmodus (direkt, scheduled)

• Beginnzeit in der Warteschlange

• Resultmessage eines Scripts

Die Scriptlog-Tabelle gibt die Informationen während der Scriptausführung aus.

• Zeitpunkt der Ausführung

• Action-Name

• Message

Die Scriptlog-Tabelle bzw. die Activelog-Tabelle kann sich in den Metadaten, in einer anderenDatenbank oder in Text�les be�nden. Aus Performancegründen sollten sie sich in Text�lesbe�nden. Die De�nition wird auch in den conf.properties, engine.�nishedlogs.handler festge-legt.

#Zagreus Datenbank

#engine.activelogs.handler=internal

#File für die ActiveLogs

engine.activelogs.handler=file

engine.activelogs.file.folder=c:/Programme/zagreus/server/log/active

#File für die FinishedLogs

engine.finishedlogs.handler=file

Etixpert Consulting GmbH, Zagreus 1.3

54 Zagreus Server

engine.finishedlogs.file.folder=c:/Programme/zagreus/server/log/finished

#Beispiel für eine #DB-Konfiguration

#engine.finishedlogs.handler=jdbc

engine.finishedlogs.jdbc.connectionurl=jdbc:microsoft:sqlserver://192.168.1.91:1433;databaseName=Northwind

engine.finishedlogs.jdbc.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver

engine.finishedlogs.jdbc.user=demo

engine.finishedlogs.jdbc.password=demo

Wird die Zagreus-Metadatenbank als Speicherort für die Scriptlog-Tabelle gewählt, kann siegemeinsam mit der Finishedjob-Tabelle in regelmäÿigen Abständen exportiert werden. Nachdem Export werden die Einträge in den Metadaten gelöscht. Im Server-Kon�gurations�le kannder Zeitpunkt und der Ort für den Export eingestellt werden. Die Zeitangabe ist im normalenCron-Format. Der Export kann im Textmodus oder im XML-Modus erfolgen. Der Textmoduserzeugt eine Datei für die Job-Tabelle und Scriptlog-Tabelle, während im XML-Modus beideInhalte in einer XML-Struktur abgelegt werden. Falls nur eine Exportmöglichkeit benötigtwird, kann die andere einfach auskommentiert werden.

# scheduling at every first day of the month at 3:00 AM

jobexport.schedule=0 0 3 1 * ?

jobexport.xmlfile=c\:\\temp\\zagreus.export.xml

jobexport.jobfile=c\:\\temp\\zagreus.export.job

jobexport.logfile=c\:\\temp\\zagreus.export.log

#timeout in days, export and delete entriey only if their begin-queuing-time

#is older than jobexport.timeout

jobexport.timeout=14

Werden in conf.properties alle Ausgabemöglichkeiten auskommentiert, werdenab Zagreus 1.2 die entsprechenden Daten gelöscht aber nicht mehr exportiert,falls der Export-Schedule eingeschalten ist. Nach dem Löschen der Zeilen werdendie beiden Tabellen komprimiert. Damit werden die dazugehörigen Dateien wie-der geschrumpft. Das führt auch zu wesentlich kleineren Metadaten. Währenddes Exports, dem Löschen und Komprimieren werden keine Jobs ausgeführt.Welche Jobs exportiert/gelöscht werden sollen kann über den jobexport.timeoutgesteuert werden. Dieser wird in Tagen angegeben. Jobs die älter als dieser Wertsind, werden dann exportiert/gelöscht.

4.6 Backup

Da die Metadaten alle Objekte speichern ist eine Sicherung dieser Daten notwen-dig. Dazu wird während der Laufzeit in einem bestimmten Intervall ein Backupangelegt. Die Zeitangabe ist im normalen Cron-Format. Zusätzlich kann auchder Ort der Backup-Dateien angegeben werden. Damit die Anzahl der Siche-rungen nicht dauerhaft ansteigt, gibt es auch einen Timeout-Wert. Dadurchwerden alle Sicherungen, die älter als X-Tage sind automatisch gelöscht. AlleEinstellungen be�nden sich wieder im Server-Kon�gurations�le.

#Cron Eintrag und Verzeichniseintrag für das automatische Backup der Metadaten

backup.schedule=0 1 * * * ?

backup.dir=c\:\\backup

# backups older than backup.timeout days will be deleted

backup.timeout=7

Etixpert Consulting GmbH, Zagreus 1.3

4.7 Kommunikation Server-Execution Engine 55

4.7 Kommunikation Server-Execution Engine

Der Server kommuniziert ab Version 1.2 mit den Execution Engines über eineneigenen Thread. Damit kann der Status der Execution Engines jederzeit abge-fragt werden. Dazu gibt es eine neue Anzeige im Zagreus Client. Der Serverüberprüft auch regelmäÿig die Kommunikation mit den Engines (Standardwertist 60 Sekunden).

# timeout in millisecondsjvmpool.keepalivetimeout=60000

4.8 Kommunikation Server-Server

Ab Zagreus Version 1.3 besteht die Möglichkeit Scripts von einem Server aufeinem anderen zu starten. Diese Remote-Funktion kann auch über eine sichereVerbindung laufen. Dafür brauchen der aufrufende Zagreus Server und der aus-führende Server einen private key und den public key des Servers und vice versa.Der ausführende Server braucht einen private key und den public key des cli-ents. Die Keys müssen sich im Verzeichnis be�nden auf das die System-VariableZagreus_Home zeigt.

• server.key enthält den private key des Servers

• client.key enthält den private key des Clients (z.B. für die zs:runscript-Action

• server.trustedlients public keys von allen trusted clients

• client.trustedservers public keys von allen trusted servers

Wenn ein Client im File client.trustedservers nicht den public key des Serversenthält, dann kann keine Verbindung zustande kommen. Wenn der Server im �leserver.trustedclients nicht den public key des Clients enthält, kann der Clientnicht authenti�ziert werden und es stehen nur eingeschränkte Funktionen zurVerfügung, zs:runscript-Aufrufe sind dann aber nicht möglich.

4.8.1 Key-Generierung

Für die Erstellung der notwendigen Keys ist das keytool -Werkzeug notwendig1

Zuerst wird für den Server und den Client ein privat-public key Paar generiert.

keytool -keystore server.key -alias jetty -genkey -keyalg RSAkeytool -keystore client.key -alias axis -genkey -keyalg RSA

1Dieses Tool be�ndet sich im bin-Verzeichnis des Java Runtime Environment.

Etixpert Consulting GmbH, Zagreus 1.3

56 Zagreus Server

Beim Aufruf wird nach einem keystore Passwort gefragt. Es sollte zagreus lauten,ebenso das certi�cate Password. Danach muss der zerti�zierte Key exportiertwerden. Die keys können einen Alias bekommen.

keytool -export -keystore server.key -alias jetty -file server.cerkeytool -export -keystore client.key -alias axis -file client.cer

Das Key-Tool speichert den public key für den Server (using alias jetty) inder Datei server.cer und den client public key (using alias axis) in der Dateiclient.cer. Die Zerti�kate können dann in die keystores des Servers und derClients eingetragen werden. Zuerst wird client.cer auf den Server kopiert unddas folgende Kommando ausgeführt:

keytool -import -keystore server.trustedclients -alias client1 -file client.cer

Für jeden Client muss ein anderer alias verwendert werden, z.B.: client1, client2,etc. Danach wird server.cer auf den Client kopiert und das folgende Kommandoausgeführt:

keytool -import -keystore client.trustedservers -alias server1 -file server.cer

Für jeden Server auf den dieser Client zugreifen darf muss ein anderer aliasverwendet werden, z.B.: server1, server2, etc.

4.9 Server-Kon�guration

Das Server-Kon�gurations�le conf.properties be�ndet sich im Folder ser-ver/conf. Hier be�nden sich alle Einstellungen, wie sie in den Punkten vorherbeschrieben sind. Eine Beispielkon�guration könnte wie folgt aussehen.

#Folder für den Filesystem-Zugriff. Die Execution Engine kann nur Files aus diesem Folder erreichen.

engine.FSAccessRoot=c\:\\program files\\zagreus\\filesystem

#Standard Java Virtual Machine Speichereinstellungen

engine.jvmopts=-Xms64M -Xmx512M

#Maximale Laufzeit eines Scripts (in Millisekunden)

engine.maxrunning=2000000

#Maximale Wartezeit eines Scripts (in Millisekunden)

engine.maxqueuetime=60000

#Standard Loglevel

engine.loglevel=info

#Starport für die Execution Engines, für jede Engine wird der Port um 1 erhöht.

jvmpool.startport=5000

#Wieviel parallele Execution Engines sollen nach dem Start zur Verfügung stehen.

jvmpool.paralleljobs.default=2

Etixpert Consulting GmbH, Zagreus 1.3

4.9 Server-Kon�guration 57

#Maximale Anzahl von parallelen Execution Engines

jvmpool.paralleljobs.max=2

#Standard Script-Priorität

script.priority=100

# timeout in milliseconds

jvmpool.keepalivetimeout=60000

#Standard Libraries, die verwendet werden sollen.

engine.userlib.default=mstr8.0.2,db,fop,bo

engine.userlib.mstr8.0.2=c\:\\program files\\zagreus\\server\\prog\\WEB-INF\\lib-mstr\\mstr8.0.2

engine.userlib.mstr8.0.3=c\:\\program files\\zagreus\\server\\prog\\WEB-INF\\lib-mstr\\mstr8.0.3

engine.userlib.bo=c\:\\program files\\zagreus\\server\\prog\\WEB-INF\\lib-bo

engine.userlib.db=c\:\\program files\zagreus\\server\\prog\\WEB-INF\\lib-db

engine.userlib.fop=c\:\\program files\\zagreus\\server\\prog\\WEB-INF\\lib-fop

# Legt fest, wieviel Gruppen es gibt

queue.groups.num=2

# Legt fest welche Execution Engins in die Gruppe 1 kommen.

# Mehrere Werte werden durch Komma getrennt eingegeben.

queue.groups.1.worker=1,2

queue.groups.1.user=

queue.groups.1.group=

queue.groups.1.script=

queue.groups.1.priority=

queue.groups.2.worker=3

queue.groups.2.user=admin

queue.groups.2.group=

queue.groups.2.script=

queue.groups.2.priority=

# Legt die Standardeinstellungen für die erste Execution Engine fest.

# Wird nichts angegeben, werden die Standardeinstellungen des Servers genommen.

worker.1.maxparallelexecution=1

worker.1.maxrunning=10000

worker.1.jvmOpts=

worker.1.loglevel=

worker.1.userlib.default=

worker.1.userlib.db=

#Zagreus Datenbank

#engine.activelogs.handler=internal

#File für die ActiveLogs

engine.activelogs.handler=file

engine.activelogs.file.folder=c:/Programme/zagreus/server/log/active

#File für die FinishedLogs

engine.finishedlogs.handler=file

engine.finishedlogs.file.folder=c:/Programme/zagreus/server/log/finished

#Beispiel für eine #DB-Konfiguration

#engine.finishedlogs.handler=jdbc

engine.finishedlogs.jdbc.connectionurl=jdbc:microsoft:sqlserver://192.168.1.91:1433;databaseName=Northwind

engine.finishedlogs.jdbc.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver

Etixpert Consulting GmbH, Zagreus 1.3

58 Zagreus Server

engine.finishedlogs.jdbc.user=demo

engine.finishedlogs.jdbc.password=demo

#Cron Eintrag für das automatische Backup der Metadaten

backup.schedule=0 1 * * * ?

backup.dir=c\:\\backup

# backups older than backup.timeout days will be deleted

backup.timeout=7

#Export der Jobtabelle und Scriptlog-Tabelle

# scheduling at every first day of the month at 3:00 AM

# jobexport.schedule=0 0 3 1 * ?

jobexport.xmlfile=c\:\\temp\\zagreus.export.xml

jobexport.jobfile=c\:\\temp\\zagreus.export.job

jobexport.logfile=c\:\\temp\\zagreus.export.log

#timeout in days

jobexport.timeout=30

#Datenbank-Port

derby.port=1528

#Server-Port

server.listener.port=7323

Etixpert Consulting GmbH, Zagreus 1.3

Kapitel 5

Zagreus Client

Der Zagreus Client bietet eine gra�sche Ober�äche, mit der sämtliche Funk-tionen des Zagreus Server bedient werden können. Der Client ist in mehrereAbschnitte unterteilt, die eine übersichtliche Arbeitsweise ermöglichen. Es kön-nen dabei folgende Anwendungsbereiche unterschieden werden:

• Browser: Verwalten von Servern,Benutzern und Objekten

• Script-Entwicklung: gra�sche Entwicklung von Abläufen

• Monitoring: Überwachung aktueller und historischer Job-Abläufe

Abbildung 5.1 zeigt die einzelnen Abschnitte.

5.1 Zagreus Browser

Der Browser dient für:

• die Verwaltung von Serverde�nitionen

• die Verwaltung von Benutzern und Gruppen

• das Browsen durch die Metadaten-Folder

• das Testen von Connections

• das Browsen durch Connection-Objekte von JDBC-, ODBC-, MSTR-,IMAP-, POP3-Connections

• das Browsen durch das Filesystem

60 Zagreus Client

Abbildung 5.1: Zagreus Client

Abbildung 5.2: Server Verbindung anlegen

Etixpert Consulting GmbH, Zagreus 1.3

5.1 Zagreus Browser 61

5.1.1 Server Administration

Über das Icon Add Server de�nition wird eine neue Server-Verbindung angelegt(siehe Abbildung 5.2). Folgende Parameter müssen dabei angegeben werden:

Server Parameter:

Connection name: Name der Verbindung

Host: Rechnername oder IP-Adresse

Port: Serverport

User: Benutzername

Password: Passwort

Save Password: Checkbox für die dauerhafte Speicherung des Passwort aufder Client-Seite. Das Passwort wird verschlüsselt gespeichert.

Nach dem Anlegen kann die Verbindung zum Server geö�net werden. Entwederüber das Kontextmenü, das mit der rechten Maustaste über der Serverde�nitiongeö�net wird, oder einfach durch einen Doppelklick auf die Serverde�nition. Eskönnen beliebige viele Serverde�nitionen angelegt werden.

5.1.2 Benutzerverwaltung

Bei der Installation von Zagreus existiert bereit der User admin. Zusätzlich gibtes eine Gruppe public, die die Tutorial-Beispiele enthält. Der Folder users istleer. Ein neuer Benutzer wird über die Kontextmenüfunktion Create new userdes Folders users angelegt. Folgende Parameter werden dabei festgelegt (sieheAbbildung 5.3):

User Parameter:

User login name: Name des Benutzers

Password: Passwort

Password again: Bestätigung des Passworts

Administrator: wird diese Checkbox angekreuzt, ist dieser User auchgleichzeitig ein Administrator, und hat damit vollen Zugri� auf alleObjekte!

User title: Anrede

First name: Vorname

Last name: Nachname

Birthday: Geburtsdatum

Email: Email-Adresse

Etixpert Consulting GmbH, Zagreus 1.3

62 Zagreus Client

Abbildung 5.3: Neuen Benutzer anlegen

Mobile phone: Mobilnummer

Groups: Hier werden alle angelegten Gruppen aufgelistet und es kann fest-gelegt werden, ob dieser User Leserechte (R), Schreibrechte (W) oderAusführungsrechte für Scripts (X) dieser Gruppe hat.

Description: Kommentar zum Benutzer

Unterschiedliche User können derselben Gruppe angehören. Sie können dannauf alle Objekte dieser Gruppe zugreifen. Eine Gruppe kann wieder eine Gruppeenthalten. Eine neue Gruppe wird über die Kontextmenüfunktion Create newgroup des Folders groups angelegt. Folgende Parameter werden dabei festgelegt(siehe Abbildung 5.4):

Gruppen Parameter:

Group name: Name der Gruppe

Group is on the base level: Die Gruppe wir direkt unter dem Object groupsangelegt.

Subgroup of: Die neue Gruppe wird als Subgruppe der ausgewählten Grup-pe angelegt.

Description: Kommentar zur Gruppe

Etixpert Consulting GmbH, Zagreus 1.3

5.1 Zagreus Browser 63

Abbildung 5.4: Neue Gruppe anlegen

5.1.3 Objektverwaltung

Der Browser ermöglicht sich durch alle angelegten Folder durchzuklicken. KleineIcons symbolisieren die unterschiedlichen Objekttypen:

• Script

• Connection

• Template

• Time-Schedule

• Event-Schedule

• Textdatei

• Binärdatei

• Folder

• Benutzer

• Gruppe

Über das Kontextmenü kann zu jedem Objekt Detailinformation angezeigt wer-den, siehe Abbildung 5.5. Mit dem Icon Create new resource kann ein neuesObjekt angelegt werden. Dabei wird nicht nur der Name sondern auch der Ob-jekttyp angegeben. Mit dem Objektbrowser können einzelne Scripts bzw. ganzeFolder von einem Verzeichnis in ein anderes kopiert werden. Es besteht auchdie Möglichkeit einen ganzen Folder von einem Server auf einen anderen zu

Etixpert Consulting GmbH, Zagreus 1.3

64 Zagreus Client

Abbildung 5.5: Detailinformationen zu einem Objekt

kopieren. Z.B. kann auf diese Weise von einem Entwicklungsrechner auf einenProduktionsrechner kopiert werden. Bei der Kopie wird für die neue angelegtenObjekte eine neue eindeutige Objekt-ID vergeben!1

5.1.3.1 Versionierung

Für jedes Zagreus-Objekt können mehrere Versionen abgespeichert werden (sie-he Abbildung 5.6). Es können beliebig viele Versionen angelegt werden. Eine vonden Versionen kann als aktuelle Version verwendet werden. Die Referenzierungder unterschiedlichen Versionen in Scripts läuft über die Resource-ID, die abZagreus 1.3 auch die Versionsnummer enthält. Wird keine Versionsnummer an-gegeben, wird die aktuelle Version eines Scripts genommen. Im Zagreus-Browserwerden die neuen Versionen in einer Verzeichnisstruktur angezeigt.

5.1.3.2 Importieren von Objekten

Im Zagreus-Browser können lokale Dateien in die Metadaten hochgeladen wer-den. Standardmäÿig werden sie als binäre Dateien abgelegt. Durch die Verwen-dung von speziellen File-Extensions z.B scr für ein Script, können die richtigenZagreus-Objekte kreiert werden. Mögliche Werte für die Extensions sind:

• scr Script

1Hinweis: In /public/Tutorial darf nicht mehr geschrieben werden. Dieser Folder enthältdie Tutorial-Beispiele und wird nur mehr von Etixpert aktualisiert.

Etixpert Consulting GmbH, Zagreus 1.3

5.1 Zagreus Browser 65

Abbildung 5.6: Abspeichern einer neuen Version

• con Connection

• tmp Template

5.1.4 File-Browsing

Eine zusätzlich Funktion des Browsers ist die Möglichkeit der Navigation durchOrdner- und Dateistrukturen des Dateisystems des Servers. Der Benutzer hatZugri� auf Dateien, die ihm aufgrund der Sicherheitseinstellungen zur Verfügunggestellt werden. Bei der Neuanlage eines Users wird ein eigenes Verzeichnis mitder Account-Nummer des Users im Filesystem-Ordern des Servers angelegt. Aufdieses hat nur der User selbst und der Administrator Zugri�. Auch Gruppenhaben ihren eigenen Ordner im Filesystem. Jedes Mitglied dieser Gruppe mitLeserechten kann auf diese Dateien zugreifen. Symbolische Links unter Unixbzw. Shortcuts unter Windows werden unterstützt. Scripts, die am Filesystemgespeichert werden, können nicht ausgeführt werden, da Filesystem-Dateien alsTyp Text bzw. Binärdatei interpretiert werden.

Etixpert Consulting GmbH, Zagreus 1.3

66 Zagreus Client

5.1.5 MSTR-Connection Browsing

Es wird die MSTR-Folderstruktur ge-zeigt aber nur die Elemente, die in Za-greus auch verwendet werden können:Filter, Prompts, Report Service Do-kumente, Berichte, HTML-Dokumente.Zusätzlich kann mit Drag-and-Drop einBericht oder Dokument in den Ar-beitsbereich gezogen werden und eswird die entsprechende Action automa-tisch eingefügt. Über die Kontextmenü-Funktion Disconnect kann die Verbin-dung wieder beendet werden.

5.1.6 BO-Connection Browsing

Es wird die BO-Folderstruktur gezeigtaber nur die Elemente, die in Zagreusauch verwendet werden können: Do-kumente, Berichte und Prompts. Zu-sätzlich kann mit Drag-and-Drop einBericht oder Dokument in den Ar-beitsbereich gezogen werden und eswird die entsprechende Action auto-matisch eingefügt (inkl. der Prompts).Bei Prompts besteht die Möglichtkeit,Elemente anzuzeigen und diese dannmittels Drag-and-Drop als Antwort inein Container-Attribut zu ziehen. Überdie Kontextmenü-Funktion Disconnectkann die Verbindung wieder beendetwerden.

Etixpert Consulting GmbH, Zagreus 1.3

5.1 Zagreus Browser 67

Abbildung 5.7: IMAP Browser

5.1.7 Database-Connection Browsing

Neben einer allgemeinen Datenbankin-fo werden auch alle Tabellen (inkl. Spal-tende�nitionen) und Views aufgelistet.Mit der Kontextmenüfunktion ShowData werden die ersten 100 Zeilen derTabelle oder des Views in einem eige-nen Fenster angezeigt. Diese Daten wer-den standardmäÿig im unteren Fenster-Bereich (Active Jobs/Logs) angezeigt.Über die Kontextmenü-Funktion Dis-connect kann die Verbindung wieder be-endet werden.

5.1.8 IMAP-Browsing

Für IMAP-Verbindungen werden alle Folder und Subfolder angezeigt. In Klam-mern die Anzahl der ungelesene und gelesene Emails. Mit der Kontextmenü-funktion Show mail info werden die Emails des ausgewählten Folder in einemeigenen Fenster angezeigt. Es werden die Felder From, To, Sent date, Receiveddate und Subject angezeigt. Siehe auch folgende Abbildung 5.7.

Etixpert Consulting GmbH, Zagreus 1.3

68 Zagreus Client

Abbildung 5.8: POP3 Browser

Etixpert Consulting GmbH, Zagreus 1.3

5.1 Zagreus Browser 69

Abbildung 5.9: WebService Browser

5.1.9 POP3-Browsing

Für POP3-Verbindungen wird der INBOXx-Folder angezeigt. In Klammern dieAnzahl der Emails im INBOX-Folder. Mit der Kontextmenüfunktion Show mailinfo werden die Emails des INBOX in einem eigenen Fenster angezeigt. Es wer-den die Felder From, To, Sent date, Received date und Subject angezeigt. SieheAbbildung 5.8.

Etixpert Consulting GmbH, Zagreus 1.3

70 Zagreus Client

Abbildung 5.10: De�nition von Gruppenvariablen

5.1.10 WebService-Browsing

Für WebService-Verbindungen werden die entsprechenden Einträge des WSDL-Files angezeigt. Zusätzlich kann mit Drag-and-Drop eine Webservice-Call (ausden MainsServices) in den Arbeitsbereich gezogen werden und es wird die ent-sprechende Action automatisch eingefügt (inkl. der Parameter). Siehe Abbildung5.9.

5.1.11 Benutzer/Gruppen Variablen

Für Gruppen und Benutzer können globale Variablen de�niert werden, die injedem Script dieser Gruppe, dieses Users verwendet werden können. Es wird derName der Variablen und der Standardwert in einer eigenen Dialog-Box eingege-ben (siehe Abbildung 5.10). Mit der Kontextmenüfunktion Set user variables...bzw. Set group variables... wird diese Dialog-Box aufgerufen.

Etixpert Consulting GmbH, Zagreus 1.3

5.2 Menü-Funktionen 71

5.2 Menü-Funktionen

5.2.1 Tools/Options

• Graph-Editor Einstellungen: legtden View-Modus für die Container an.Sollen die Attribute autmatisch ange-zeigt werden, wenn sie von der Palettein den Arbeitsbereiche gezogen werdenoder nicht.

• Extensions: für pdf, xls, xsl, xmlund txt Dateien können Programmeauf der Client-Seite angegeben wer-den, die direkt zum Ö�nen der Datei-en verwendet werden sollen. Damit kön-nen direkt Programme vom Zagreus-Server am Client betrachtet werden.In diesen Einstellungen kann auchein Temp-Verzeichnis angegeben wer-den. Wird das nicht angegeben, wirdauf das Standard-Temp-Verzeichnis ko-piert, bevor die Datei geö�net wird.

5.3 Script Editor

Die Entwicklung der Scripts erfolgt über einen gra�schen Editor. Im Hintergrundwird dabei ein XML-File erzeugt, dass alle Anweisungen für die Execution En-gine enthält. Ein Script kann als ein Prozess bzw. als ein Work�ow verstandenwerden.

5.3.1 Arbeiten mit dem Script Editor

Die Arbeit im gra�schen Editor ist denkbar einfach. Durch Drag and Dropwerden aus der Palette Action-Container in den Arbeitsbereich gezogen. JedeAction kann auch innerhalb einer anderen Action gezogen werden. Am unterenFensterrand be�nden sich zwei Reiter: Graph View und XML-View. Damit kann

Etixpert Consulting GmbH, Zagreus 1.3

72 Zagreus Client

Abbildung 5.11: Container Kontextmenü

zwischen den beiden Modi hin- und hergeschalten werden. Eine Action (oderContainer) enthält auch Eigenschaften (Attribute) die durch anklicken editiertwerden können.

Durch Klicken mit der Maustaste auf einen Container ö�net sich eine Kon-textmenü, mit dem folgende Funktionen ausgeführt werden können (siehe auchAbbildung 5.11).

Kontextmenü:

Undo Move: Rückgängig machen der letzten Edit-Aktion.

Redo: Wiederholen der letzten Edit-Aktion

Copy element: Kopiere einen Container in die Zwischenablage.

Paste element: Füge einen Container aus der Zwischenablage ein.

Print: Druckt den Inhalt der Gra�kbereichs, inklusive aller Kommentareund des XML-Codes in einem vorde�nierten Format. Dient zu Doku-mentationszwecken.

Add/change label..: Änder die Beschriftung eines Containers

Etixpert Consulting GmbH, Zagreus 1.3

5.3 Script Editor 73

Add/change comment...: Fügt einen Kommentar zu einem Container

Edit attributes...: Ö�net eine Dialogbox zum Editieren aller Attribute desContainers

Add/change text in dialog...: Ö�net eine Dialogbox mit einem grossenTextfeld zum Editieren des Inhalts eines Containers.

Iconized: zeigt den Container als Icon an

Default: zeigt den Container ohne die Attribute an

Full: zeigt Container mit Attributen und Textinhalt

Show link from sibling: zeichnet eine Verbindungslinie vom Vorgänger-Container zum ausgewählten Container.

Hide link from sibling: Versteckt die Verbindungslinie vom Vorgänger-Container

Comment element: damit kann eine ganze Actions mit einem Mausklickauskommentiert wird. Kommentierte Elemente werden grau darge-stellt. Enthält eine Action Kindelemente, werden diese automatischemitkommentiert. Im Xml-View werden diese Actions mit __ gekenn-zeichnet. Kommentierte Element werde bei der der Ausführung desScripts nicht berücksichtigt.

Fit to content: passt die Grösse eines Containers der Grösse der Kind-Element an

Move Up: verändert die Reihenfolge der Container. Schiebt den ausgewähl-ten Container um eins nach oben. Kann auch über die PageUp-Tasteerreicht werden.

Move Down:verändert die Reihenfolge der Container. Schiebt den ausge-wählten Container um eins nach unten. Kann auch über die Page-Down-Taste erreicht werden.

View element as attribute: Jedes Element kann damit in ein Attribut derAction umgewandelt werden.

View attribute as element: Jedes Attribut kann damit in ein Kindelementder Action umgewandelt werden.

Delete: löscht den ausgewählten Container

5.3.2 Wiederverwendbarkeit

Die Wiederverwendbarkeit von Objekten zur Scripterstellung wird auf mehrereArten unterstützt.

• Copy und Paste von Elementen

• Inkludieren von bereit angelegten Scripts mittels Drag and Drop vom Ob-jektbrowser. Dabei wird automatisch eine include-Action eingefügt. Eignetsich am besten für Connections.

Etixpert Consulting GmbH, Zagreus 1.3

74 Zagreus Client

• Verwenden von Templates. Durch Drag and Drop vom Objektbrowser inden Gra�kbereicht, wird die Palette um alle Templates erweitert, die diesesTemplate-Script enthält. Diese können dann wieder wie eine Action ausder Palette in den Arbeitsbereich hineingezogen werden.

• Inkludieren von bereit angelegten Scripts mittels CTRL-Drag and Dropvom Objektbrowser. In diesem Fall wird eine Kopie des Scripts als Con-tainer eingefügt.

• CTRL-SHIFT Scriptname. Wird beim Drag and Drop vom Objektbrowserdie CRTL und SHIFT Taste gehalten, kann dieses Script über ein Attributeines Containers fallengelassen werden. Es wird automatisch die Script-IDeingefügt. Zusätzlich wird der exakte Pfad automatisch in den Kommentareingetragen.

5.3.3 Containerlogik

Jeder Prozess der in einem Script abgebildet wird, besteht aus mehreren Teil-schritten. Jeder Teilschritt kann wieder aus weiteren Teilschritten gebildet wer-den. Z.B. kann ein Excel-File als Attachment in eine Mail-Action eingebun-den werden. Ein Attachmant-Container ist selbst ein Kind-Element des Mail-Containers. Grundsätzlich gilt, dass der Output einer Action als Input für eineneue Action verwendet werden kann. Zur besseren Übersicht kann ein Subcontai-ner aus dem Elternobjekt mittels des kleinen Icons in der Titelzeile rausgezogenwerden. Es werden dabei automatisch Linien zwischen dem Eltern- und demKindelement gezeichnet.

5.3.4 Outline-View

Der neue Outline Modus soll die Bearbeitung von groÿen und tief verschach-telten Scripts erleichtern. Neben dem bisher bekannten Arbeitsbereich, gibt esdrei neue Fenster (siehe Abbildung 5.12):

• Outline: zeigt die Action-Elemente in einer Baumansicht. durch Dop-pelklick auf ein Element, ö�net sich im Arbeitsberich ein neues Fenster(Outline View). Dieses enthält nur mehr die Kindelement der ausgewähl-ten Action. Um auf das Gesamtbild zu kommen, muss nur auf Graph Viewoder XML View geklickt werden.

• Attributes: Zeigt die Attribute der ausgewählten Action. Die Attribu-te können in dieser Ansicht auch editiert werden. Drag-and-Drop vomObjekt-Browser funktioniert auch in dieser Ansicht ebenso wie das Kon-textmenü.

Etixpert Consulting GmbH, Zagreus 1.3

5.3 Script Editor 75

Abbildung 5.12: Outline View

Etixpert Consulting GmbH, Zagreus 1.3

76 Zagreus Client

• Variables/Functions: Dieses Fenster zeigt die vorhandenen System-Variablen, Funktionen und die Variablen die im Script de�niert sind. DasNachschauen im Handbuch entfällt damit.

5.3.5 Script-Dokumentation

Die Menüfunktion File/Document Script bzw. das Printer-Icon in derIconliste erzeugt eine Dokumentation des ausgewählten Scripts imPDF-Format. Kopf- und Fuÿzeilen können individuell angepaÿt werden.

Weitere Einstellungen:

• Papierformat (A3,A4 bzw.Hoch/Querformat)

• Tiefe der Hierarchie

• XML-Ausgabe (ja, nein)

• hierarchische Strukur (ja,nein)

• Icons (ja, nein)

5.4 Script Ausführung

Scripts können zwar auf Knopfdruck (Button Run) ausgeführt werden, auto-matisiert wird der Ablauf aber erst nach Zuteilung eines Ablaufplans (Schedu-le). Ein Script kann auch mehreren Ablaufplänen zugeteilt werden. Die Zutei-lung passiert über das Kontextmenu eines Scripts im Objektbrowser (ScheduleScript ...) Über das Kontextmenü eines Schedules können auch alle zugewiese-nen Scripts abgefragt werden. Aber nur der Administrator sieht wirklich allezugewiesenen Scripts, da andere User aus Sichertheitsgründen nur ihre eigenenScripts sehen können.

5.4.1 Zeitgesteuerte Ablaufpläne

Die Eingabe eines Zeitgesteuerten Ablaufplanes entspricht der Eingabe eineCron-Jobs (siehe auch Abbildung 5.13).

5.4.2 Ereignisgesteuerte Ablaufpläne

Über die De�nition eines Ereignisses kann ein Script einem Ereignis zugewiesenwerden. Wird das Ereignis ausgelöst, werden alle Scripts, die diesem Ereignis

Etixpert Consulting GmbH, Zagreus 1.3

5.5 Ablaufüberwachung 77

Abbildung 5.13: Schedule

zugwiesen sind, ausgeführt. Ein Ereignis kann auf mehrere Arten ausgelöst wer-den:

• Kontextmenü des Ereignisses

• Fireevent-Action

• Commandline-Client

• Web-Browser

5.4.3 Script Parameter

Es kann vorkommen, dass gewisse Scripts höhere Speicheranforderungen haben,eine höhere Priorität oder länger laufen oder andere Libraries laden müssen.Falls ein Script andere Parameter enthält wie die Execution Engine, wird diesegestoppt und mit den neuen Parametern neu gestartet. Abbildung 5.14 zeigt dieEingabemaske für die Execution Engine Parameter, Queuing Parameter und dieVariablen Spezi�kation.

5.5 Ablaufüberwachung

Ein wichtiger Teil eines funktionierenden Systems ist die Überwachung der ein-zelen Aktivitäten. Im Monitor-Teil des Clients werden Information über laufendund beendete Jobs angezeigt.

Monitor-Fenster:

Etixpert Consulting GmbH, Zagreus 1.3

78 Zagreus Client

Abbildung 5.14: Script Parameter und Variablen

Abbildung 5.15: Finished Jobs

Etixpert Consulting GmbH, Zagreus 1.3

5.5 Ablaufüberwachung 79

Abbildung 5.16: Finished Jobs Optionen

Active Jobs: zeigt Informationen über aktuell laufenden Jobs. Über dasOptionen-Icon im rechten oberen Teil des Monitorbereichs, könnendie Spalten ausgewählt werden, die angezeigt werden sollen. Über dierechte Maustaste kann das Kontextmenü aufgerufen und damit lau-fende Jobs abgebrochen werden.

Active Logs: zeigt aktuelle Log-Ausgaben während der Ausführung derScripts

Execution Engines: ö�net die Anzeige über den aktuellen Status aller Exe-cution Engines. Über ein Kontextmenü kann jede Execution Engineein- bzw. ausgeschalten werden.

Finished Jobs: zeigt Informationen über fertige bzw. abgebrochene Jobs(siehe Abbildung 5.15). Über das Optionen-Icon im rechten oberenTeil des Monitorbereichs, können die Spalten ausgewählt werden, dieangezeigt werden sollen. Zusätzlich können auch noch Filter für dieReduzierung der Ergebnisse angewendet werden. Standardmäÿig wer-den nur alle Jobs angezeigt, die am heutigen Tag ausgeführt wurden(siehe Abbildung 5.16). Die Anzeige kann über das Icon Refresh immerwieder aktualisiert werden. Im Drop-Down Menü der Finished Jobs,gibt es jetzt die Möglichkeit die angezeigten Jobs aus der Datenbankzu löschen. Durch Aufruf dieser Funktion, werden diese Daten zuerstexportiert und dann gelöscht. Dabei werden die Einstellungen für den

Etixpert Consulting GmbH, Zagreus 1.3

80 Zagreus Client

Abbildung 5.17: Aktivieren bzw. Deaktivieren von Serverkomponenten

Export in der conf.properties Datei des Servers hergenommen. Die-se Funktion wurde nicht in die Icon-Bar aufgenommen, damit mannicht irrtümlich draufklickt, wenn man die Anzeige der Finished-Jobsaktualisieren möchte.

Finished Logs: zeigt Log-Ausgaben zu einem bestimmten fertiggestelltenJob. Durch Doppelklick einer Zeile in der Job-Status Anzeige bzw.über Kontextmenüaufruf kann diese Ausgabe aufgerufen werden.

5.6 Serversteuerung

Ab Version 1.3 lassen sich die folgenden Zagreus-Komponenten ein- bzw. aus-schalten. Über das Administrationsmenü kann jede einzelen Komponente akti-viert bzw. deaktiviert werden (siehe Abbildung 5.17).

• scheduler Stoppt den Scheduler, d.h. es werden keine Script vom Schedulerin die Queue gestellt.

• queue Stopp die Queue, d.h. es werden keine Scripts aus der Queue mehrzu den Execution Engines weitergereicht.

• direct runner Es können keine Script über den Zagreus-Browser gestartetwerden.

Das Administrationsmenü enthält noch die Auswahlmöglichkeit alle Kon�gu-rationsparameter aus der Datei conf.properties neu zu laden Restart JVMPool.

5.7 Browser Optionen

Für einige Zagreus-Funktionen (Browser und Graph-Editor) gibt es spezielleEinstellungen, die je nach Bedarf geändert werden können. Diese betre�en

• Kopieren von Objekten

Etixpert Consulting GmbH, Zagreus 1.3

5.7 Browser Optionen 81

Abbildung 5.18: Optionen für den Graph-Editor

• Graph-Editor Verhalten

• Hochladen von Dateien

5.7.1 Graph-Editor

Siehe Abbildung 5.18. Enthält Einstellungen für den Grapheditor:

• Standard-Attributansicht einer Action

• Resizing von Containern

• Transparenz von Containern

• Minimalgröÿe eines Containers

5.7.2 Hochladen von Dateien

Siehe Abbildung 5.19. Enthält Einstellungen für das Hochladen und für dieDirektanzeige von Dateien. Es kann für die folgenden Dateiextensions ein An-zeigeprogramm am Client angegeben werden:

• pdf

• xml

Etixpert Consulting GmbH, Zagreus 1.3

82 Zagreus Client

Abbildung 5.19: Optionen für den Up- bz w. Download

• xsl

• xls

• txt

Dabei werden die Daten auf den Client geladen und dann im jeweiligen Pro-gramm angezeigt. Deshalb kann auch noch der Pfad angegeben werden, in denendie Dateien zwischengespeichert werden. Wird kein Pfad angegeben, ist es derStandard Zagreus-GUI-Pfad. Für das Hochladen von Dateien kann spezi�ziertwerden, ob eine etwaige Datei-Extension als Objektidenti�er gewertet werdensoll, damit diese Datei in das entsprechende Zagreus-Objekt konvertiert wird.

5.7.3 Kopiereinstellungen

Siehe Abbildung 5.20. Enthält Einstellungen für das Kopieren von Objekten.

• Überschreiben von Dateien: entweder immer oder mit Prä�x oder lasseein eventuell vorhandenes Objekt unverändert.

• Version: Kopiere nur die ausgewählte Version oder alle Versionen.

• Kopieren auf einen anderen Zagreus-Server: verwende die gleiche Objekt-Id bzw. soll ein eventuell vorhandenes Zielobjekt überschrieben werdenoder nicht.

Etixpert Consulting GmbH, Zagreus 1.3

5.7 Browser Optionen 83

Abbildung 5.20: Optionen für das Kopieren von Objekten

Etixpert Consulting GmbH, Zagreus 1.3

84 Zagreus Client

Etixpert Consulting GmbH, Zagreus 1.3

Kapitel 6

Scripts

6.1 Überblick

Scripts sind spezielle XML-Dateien. Wie jede XML-Datei enthält sie Elemente,die wieder Attribute und Sub-Elemente und Textelement beinhalten können.Diese Scripts enthalten die Anweisungen (Actions und Script-Ausdrücke) fürdie Execution Engine.

6.2 Script-Ausdrücke

Attribute und Textelemente beinhalten Script-Ausdrücke. Diese werden wäh-rend der Laufzeit ausgewertet.

<z:log>script_expression</z:log>

Dieses kleine Beispiel zeigt eine log-Action als XML-Element, und das Textele-ment enthält einen Script-Ausdruck. In diesem Fall ist es ein einfacher Text:"script_expression".

Um auch komplexere Ausdrücke verwenden zu können, benutzt die ExecutionEngine eine Javascript-ähnliche Notation. Im folgenden werden diese Ausdrückeals "Engine Expression" oder einfach "Expression" bezeichnet.

Script-Ausdrücke können Engine-Expressions enthalten:

<z:log>value of variable a is $a</z:log>

Dieses Beispiel zeigt einen Script-Ausdruck der die Engine-Expression a ent-hält. Bei der Ausführung wird dieser Ausdruck durch den Inhalt der Variable aersetzt. Mit $ wird der Beginn einer Engine-Expression markiert.

86 Scripts

Ein Script-Ausdruck kann mehrere Expressions enthalten. Das folgende Beispielzeigt den Inhalt von den beiden Variablen a und b:

<z:log>a=$a,b=$b</z:log>

Im vorigen Beispiel wurden die Variablen als Expressions verwendet und derGültigkeitsbereich von $ reicht bis zum Ende des Variablennamens (bis zumnächsten Trennzeichen). Wird ein komplexerer Ausdruck benötigt, muss diesermit ${...} angegeben werden.

<z:log>Numeric expression: ${1 + 1}</z:log>

<z:log>Member access expression: ${a.x}</z:log>

<z:log>Array access expression: ${a[1]}</z:log>

<z:log>

Function calling expression:

${substring("this is a string", 5, 8}}

</z:log>

Innerhalb einer Expression werden Variablen ohne $ verwendet!

Das folgende Beispiel zeigt nochmals den Unterschied einer einfachen Expressionmit $ zu einer mit ${...}.

<z:log>a=$a.x</z:log>

<z:log>a=${a.x}</z:log>

Die erste Zeile zeigt den Inhalt von a, dann wird der Punkt und der Buchstabex gedruckt, während die zweite Zeile den Inhalt von Element x der Variable aangibt.

Auch einige Sonderzeichen müssen in Expressions angegeben werden.

<z:log>first line: ${"\n"} second line</z:log>

<z:log>the text \n displayed as is</z:log>

Im ersten Beispiel wird \n substituiert und als neue Zeile interpretiert, wäh-rend im zweiten Beispiel es genau so angezeigt wird, wie es im log-Elementangegeben wird.

Soll $ als Buchstabe in einem Script-Ausdruck verwendet werden, muss er dop-pelt angegeben werden:

<z:log>revenue: $value$$</z:log>

Nach der Variablensubstitution für $value wird ein einfaches Dollarzeichen aus-gegeben. Werden Expressions in Attributen verwendet, so dürfen keine doppel-ten Hochkomma " benutzt werden. In diesen Fällen kann das einfache Hoch-komma ' für Strings verwendet werden:

<file:read filename="${substring('this is a string', 5, 7)}"/>

Etixpert Consulting GmbH, Zagreus 1.3

6.3 Engine Expressions 87

6.3 Engine Expressions

Engine Expressions werden durch die Execution Engine ausgeführt. Expressionswerden mit $ oder ${...} Ausdrücken angegeben. Expressions werden durchBasisausdrücke und Operatoren gebildet.

6.3.1 Base Expressions

Basisausdrücke sind die einfachsten Ausdrücke. Alle zusammengesetzten Ex-pressions bestehen aus diesen einfachen Ausdrücken.

• Variablen

• Zahlenwerte: 1, -2, 0.6, -1.2e-30

• Zeichenketten: "string", 'string'

In Zeichenketten können Sonderzeichen verwendet werden. In diesem Fall mussaber ein \ vorangestellt werden. Folgende Kombinationen sind möglich:

• \n: neue Zeile

• \r: Carriage return

• \t: Tabulator

• \': einfaches Hochkomma

• \": doppeltes Hochkomma

• \\: Backslash

6.3.2 Operatoren

In Expressions können folgende Operatoren verwendet werden:

• Elementzugri�-Operatoren: ., []

• Arithmetische Operatoren: +, -, ∗, /, %

• Relationale Operatoren: <, >, =1, <=, >=, <>, ∼ (für reguläre Ausdrücke)

• Logische Operatoren: and, or, not

• Zuweisungsoperator: :=2,

1Kann auch für binäre Vergleiche verwendet werden!2Kopiert die Werte und nicht die Referenz, wenn zwei Variablen auf beiden Seiten stehen.

Etixpert Consulting GmbH, Zagreus 1.3

88 Scripts

Die Ausführungsreihenfolge von Sub-Expressions wird durch die Priorität derOperatoren bestimmt. Operatoren mit höherer Priorität werden zuerst ausge-wertet. Bei gleicher Priorität wird von links nach rechts ausgewertet. EinzigeAusnahme ist der Zuweisungsoperator. Dieser wird von rechts nach links ausge-wertet. Die oben angeführte Liste der Operatoren enthält schon die Reihenfolgeder Prioritäten. Der Elementzugri� hat die höchste Priorität, der Zuweisungs-operator die niedrigste. Die Operatoren in der gleichen Zeile haben die gleichePriorität.

6.3.3 Zusammengesetzte Variablen

Zusammengesetzte Variablen enthalten noch andere Variablen. Eine zusammen-gesetzte Variable ist ein Synonym for assoziative Listen. Die abgelegten Wertenkönnen über den Elementzugri�soperator . abgefragt werden.

a.x

Das Beispiel zeigt, wie auf das Element x der Variable a zugegri�en wird. Zu-sammengesetzte Variablen können auch Elemente besitzen die keinen Identi�erbesitzen. In diesem Fall kann nicht über den Elementzugri�soperator . abgefragtwerden. Stattdessen muss der [$expression] Operator verwendet werden, wo-bei $expression den Namen des Elements angibt.

a[1]

Dieser Ausdruck referenziert das Element mit dem Namen 1 der Variable a.Werden keine Identi�er angegeben, werden alle Elemente automatisch durchnu-meriert, beginnend mit 1. Im folgenden Beispiel führen beide Ausdrücke zumselben Ergebnis.

a.x;

a["x"];

Zusammengesetzte Variablen können auf die folgende Art und Weise erstelltwerden:

// Erstelle eine leere zusammengesetzte Variable

a := [];

// Wird auf ein nicht existierendes Element referenziert, wird dieses Element

// erstellt. Das Array muss aber vorher definiert werden (siehe Zeile oben)!

a.x = 1;

// Erstelle eine assoziative Liste:

b := ["x":1,"y":2];

// Referenziere auf Element der Liste b:

bx1 := b.x;

bx2 := b["x"]

by1 := b.y;

by2 := b["y"]

Etixpert Consulting GmbH, Zagreus 1.3

6.3 Engine Expressions 89

6.3.4 Statements

Anweisungen innerhalb eines Ausdrucks haben eine ähnlich Syntax wie in denProgrammiersprachen C, C++, Java, oder Javascript. Einzelne Abweichungenwerden im folgenden beschrieben.

• einfache Anweisung: Expression mit ; am Ende

• mehrfache Anweisungen: mehrere Expressions innerhalb von { und }

• if-Anweisung: Führt eine Anweisung bei einer gültigen Bedingung aus.

• switch-Statement: Führt Anweisungen entsprechend einem bestimmtenWert aus.

• for-Schleife: Für alle Elemente einer Expression werden die enthaltenenAnweisungen durchgeführt.

• while-Schleife: Führt alle enthaltenen Anweisungen durch, solange dieBedingung gültig ist.

• break: Stoppt die Ausführung für while, for bzw. switch.

• continue: Verwirft die restlichen Anweisungen einer Schleife und setzt amBeginn des nächsten Schleifendurchlaufs fort.

Beispiele:

// IF-Statement

if (x < 0) {

x := x * -1;

}

// IF-Statement mit Else

if (x < 0) {

x := -1;

} else {

x := +1;

}

// Switch Statement

switch (x) {

case 1: x := 3; break;

case 2: x := 2; break;

case 3: x := 1; break;

default: x := 0; break;

}

// For-Schleife

sum = 0;

for (item in x) {sum := sum + item;}

// Break-Statement

Etixpert Consulting GmbH, Zagreus 1.3

90 Scripts

sum = 0;

for (item in x) {

sum := sum + item;

if (sum > 10) break;

}

// Continue-Statement

sum = 0;

for (item in x) {

if (item < 0) continue;

sum := sum + item;

}

Etixpert Consulting GmbH, Zagreus 1.3

Kapitel 7

Execution Engine -Allgemeine Funktionen

7.1 Fehlerbehandlung

Die Fehlerbehandlung beruht auf einem Throw-catch Mechanismus. Somit kön-nen mehrere Aktionen zusammengefasst werden und mit einem Error-Handlerbehandelt werden.

Tritt ein Fehler auf, wird der Fehler an den ersten Handler weitergereicht, derihn verarbeiten kann. Gibt es keinen entsprechenden Handler, wird die Ausfüh-rung der Action gestoppt und der Fehler an die Eltern-Action weitergereicht.Ein Handler übernimmt nur dann einen Fehler, wenn der Fehler mit einem derfolgenden Kriterien zusammenpasst:

• Name des Fehlers

• Name der Fehlergruppe

• oder Name einer übergeordneten Gruppe des Fehlers, z.B. ist IO die über-geordnete Gruppe eines FileNotFound Fehlers.

Siehe auch z:on-error.

Zusätzlich gibt es noch die Möglichkeit, den Fehlerbehandlungsmechanismus zuverfeinern. Dazu stehen nochmals einige Paramter zu Verfügung.

Parameter:on-error-next-child Bei true wird bei Auftreten eines Fehlers bei der

nächsten Kind-Action fortgesetzt. Ohne dieses Attribut wird die Aus-führung der aufrufenden Action gestoppt.

92 Execution Engine - Allgemeine Funktionen

on-error-next-sibling Bei true, wird bei Auftreten eines Fehlers bei dernachfolgenden Geschwister-Action fortgesetzt. Ohne dieses Attributwird der Fehler an die Eltern-Action weitergereicht.

Beispiele:Tutorial: Error Handling/Script - OnError 01

Tutorial: Error Handling/Script - OnError 02

Tutorial: Error Handling/Script - OnError 03

Tutorial: Error Handling/Script - OnError 04

xml-Code:<z:log">START</z:log>

<z:block on-error-next-sibling="true">

<z:on-error error-name="">

<z:log>Test Failed, filename &quot;${error.filename}&quot; does not exist.</z:log>

</z:on-error>

<file:read filename="/groups/public/&lt;-filesystem-&gt;/unknownfile" binary="true"/>

<z:log>next child is executed</z:log>

</z:block>

<z:log>next sibling is executed</z:log>

<z:log>END</z:log>

7.2 Fehlergruppen

Im folgenden werden die Top-Level-Fehlergruppen, die bei der Ausführung auf-treten können, angeführt.

7.2.1 Actor

Dieser Fehler wird bei Problemen während der Ausführung einer Action ausge-löst.

7.2.2 ActorInterrupted

Dieser Fehler wird bei der Unterbrechung der Ausführung einer Action ausgelöst.

Mitglied von:Actor

7.2.3 AttributeParsing

Fehler beim Parsen der Attribute einer Action.

Mitglied von:Actor

Etixpert Consulting GmbH, Zagreus 1.3

7.2 Fehlergruppen 93

7.2.4 AttributeRequired

Fehlt eine verp�ichtendes Attriute einer Action, wird dieser Fehler ausgelöst.

Mitglied von:Actor

7.2.5 Connection

Fehlgeschlagene Verbindungen lösen diesen Fehler aus.

7.2.6 Convertion

Fehler bei der Typ-Conversion von Strings nach Zahlen.

7.2.7 Custom

Bei diesem Typ wird der benutzerde�nierte Fehler ausgelöst. Dadurch kann aufdiesen Namen referenziert werden. Siehe auch on-error.

Mitglied von:Actor

7.2.8 DB Error

Fehler bei Datenbank-Actions.

Mitglied von:IO

7.2.9 Excel

Fehler bei Excel-Actions.

Mitglied von:IO

7.2.10 File

Fehler bei File-Actions.

Mitglied von:IO

Etixpert Consulting GmbH, Zagreus 1.3

94 Execution Engine - Allgemeine Funktionen

7.2.11 FileNotFound

Das angegebene File kann nicht gefunden werden.

Mitglied von:File

7.2.12 FileWriting

Das angegeben File nicht geschrieben werden.

Mitglied von:File

7.2.13 FOP

Fehler bei FOP-Actions.

Mitglied von:IO

7.2.14 FTP

Fehler bei FTP-Actions.

Mitglied von:IO

7.2.15 HTTP

Fehler bei HTTP-Actions.

Mitglied von:IO

7.2.16 IO

Allgemeiner Fehler bei IO-Zugri�en.

Mitglied von:Actor

Etixpert Consulting GmbH, Zagreus 1.3

7.2 Fehlergruppen 95

7.2.17 Mail

Fehler bei Mail-Actions.

Mitglied von:IO

7.2.18 MSTR

Fehler bei MSTR-Actions.

Mitglied von:IO

7.2.19 Parser

Fehler bei der Parse-Action.

Mitglied von:Actor

7.2.20 TemplateCalling

Fehler beim Aufruf von nicht existierenden Templates.

Mitglied von:Actor

7.2.21 TemplateCreation

Fehler bei Erstellen von Templates.

Mitglied von:Actor

7.2.22 TypeMismatch

Enthält ein Attribut einen Wert mit einem nicht kompatiblen Typ, wird dieserFehler ausgelöst.

Mitglied von:Actor

Etixpert Consulting GmbH, Zagreus 1.3

96 Execution Engine - Allgemeine Funktionen

7.2.23 XSLT

Fehler bei Xslt-Actions.

Mitglied von:IO

7.2.24 Zip

Fehler bei Zip-Actions.

Mitglied von:IO

7.3 Allgemeine Attribute

Jede Action hat ihre eigenen Attribute. Daneben gibt es aber zusätzliche At-tribute, die für jede Action verwendet werden können. Diese werden mit Drag-and-Drop einfach in den Container gezogen.

Attribute:alias Wenn ein Alias angegeben wird, wird das Ergebnis der Action au-

tomatisch in einer Variablen mit diesem Namen abgelegt. Siehe auchz:alias.

date-format Spezi�ziert das Datumsformat. Es wirddie Standard JAVA-Formatierung verwendet (siehehttp://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html).

debug-output Wird das Script im Debug-Modus ausgeführt, wird das Er-gebnis in dem angegeben File abgespeichert. Wenn das Ergebnis meh-rere Elemente enthält und es keine binären Inhalte hat, werden alleim gleichen File abgelegt, getrennt durch eine neue Zeile. Für binärenInhalt sollte das Attribut output-separated verwendet werden. Sieheauch �le:write.

eval-output Bei true wird das Ergebnis als Script-Expression behandelt,und es werden z.B. noch Variablensubstitutionen durchgeführt.

label Sprungmarke für GOTO-Expressions

loglevel Spezi�ert die Log-Ebenen. Mögliche Werte sind:user, error, info, debug

newline-char Zeilentrennzeichen, wird für das Schreiben von Files ver-wendet. Der Wert ist Plattform abhängig, \n für Linux und \r\n fürWindows.

no-result Bei true wird das erzeugte Ergebnis nicht verwendet.

Etixpert Consulting GmbH, Zagreus 1.3

7.4 Ergebnis-Attribute 97

number-format Spezi�ziert das Ausgabeformat von Zahlenwerten.Es wird die Standard JAVA-Formatierung verwendet (siehehttp://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html).

on-error-next-child Setzt im Fehlerfall beim nächsten Kindelement fort.Die Fehlermeldung wird als INFO-Zeile in das Log geschrieben.

on-error-next-sibling Setzt im Fehlerfall beim nächsten Geschwisterele-ment fort. Die Fehlermeldung wird jetzt als INFO-Zeile in das Loggeschrieben.

output Speichert das Ergebnis in dem angegeben File. Wenn das Ergebnismehrere Elemente enthält und es keine binären Inhalte hat, werden alleim gleichen File abgelegt, getrennt durch eine neue Zeile. Für binärenInhalt sollte das Attribut output-separated verwendet werden. Sieheauch �le:write.

output-separated Speichert das Ergebnis in Files, die von diesem Attri-but abgeleitet werden. Die Dateinamen werden aus dem angegebenenFilenamen gefolgt von einem Unterstrich und dem Item-Namen (oderseinem Index, wenn kein Name verfügbar ist) und einer Extension ge-bildet. Siehe auch �le:write.

result-attributes Die Ergebnisattribute werden in dieser Variablengespeichert. Standardmäÿig werden sie in der Variablen name-space_actorname abgelegt. Z.B. ist die Standardergebnisvariable fürmstr:report dann mstr_report.

7.4 Ergebnis-Attribute

Einige Actions liefern zusätzlich zur Ergebnismenge noch weitere Informationen,die in einer assoziativen Liste zurückgegeben werden. Folgende Schlüssefelderkönnen abgefragt werden.

• execution_time: Ausführungszeit in Millisekunden milliseconds

• error: Fehler-Code, falls ein Problem bei der Ausführung aufgetreten ist

• errormsg: Fehlermeldung, falls ein Problem bei der Ausführung aufgetre-ten ist

Das folgende Beispiel liest eine Datei und protokolliert die Ergebnisattribute.

<file:read

filename="/groups/public/Tutorial/Excel/SampleData.xls"

binary="true"

result-attributes="result"

/>

<z:log>$result</z:log>

Log: [execution_time:16]

Etixpert Consulting GmbH, Zagreus 1.3

98 Execution Engine - Allgemeine Funktionen

7.4.1 Elementzugri� auf ein Ergebnis-Array

Die Action z:array z.B. liefert ein Array zurück. Die einzelnen Elemente könnenüber den Schlüssel referenziert werden:

<z:array alias="array">

<z:alias name="x">value1</z:alias>

<z:alias name="y">value2</z:alias>

</z:array>

<z:log>${array.x},${array.y}</z:log>

Log: value1,value2

Gibt es keinen Schlüssel (ein Schlüssel beginnt mit einem Unterstrich oder einemBucstaben), dann der . Operator nicht verwendet werden. In diesem Fall kannüber den Index in eckicken Klammern [] zugegri�en werden:

<!-- store the result to the variable "array"-->

<z:array alias="array">

<z:alias name="x">value1</z:alias>

<z:alias name="y">value2</z:alias>

<z:variable name="">value3</z:variable>

</z:array>

<z:log>${array.x},${array.y},${array[3]</z:log>

Log: value1,value2,value3

7.4.2 Elementzugri� auf das Ergebnis einer System-Action

Die Action z:system liefert eine Liste von Textelementen zurück. Jedes Elementist eine Zeile. Um auf alle Zeilen zugreifen zu können, kann die foreach-Actionverwendet werden. Soll nur auf eine bestimmte Zeile zugegri�en werden, kannder [] Operator mit der Indexangabe verwendet werden. Die erste Zeile beginntmit Index 1.

<!-- store the result to the variable "data"-->

<z:system alias="data">dir</z:system>

<!-- access all the rows-->

<z:foreach key="row" in="$data">

<z:log>$row</z:log>

</z:foreach>

<!-- access only the first row-->

<z:log>${data[1]}</z:log>

7.4.3 Elementzugri� auf das Ergebnis einer SQL-Abfrage

Die Action db:query liefert eine Tabelle zurück. Um auf alle Zeilen zugreifen zukönnen, kann die foreach-Action verwendet werden. Soll nur auf eine bestimmte

Etixpert Consulting GmbH, Zagreus 1.3

7.4 Ergebnis-Attribute 99

Zeile zugegri�en werden, kann der [] Operator mit der Indexangabe verwendetwerden. Die erste Zeile beginnt mit Index 1. Da eine Zeile eine Liste ist, kannhier wieder über den Spaltennamen referenziert werden.

<!-- store the result to the variable "data"-->

<db:query alias="data" connection-name="sql-connection">

Select id, name, address From customers

</db:query>

<!-- accessing all lines -->

<z:foreach key="row" in="$data">

<z:log>id = ${row.id}, name = ${row.name}, address = ${row.address}</z:log>

</z:foreach>

<!-- accessing only data from the first line -->

<z:alias name="row">${data[1]}</z:alias>

<z:log>id = ${row.id}, name = ${row.name}, address = ${row.address}</z:log>

7.4.4 Elementzugri� auf das Ergebnis einer Parse-Action

Die Action z:parse liefert eine Tabelle zurück. Der Zugri� erfolgt auf die selbeArt und Weise wie bei db:query.

<!-- store the result to the variable "data"-->

<z:parse alias="data"

row-separator=";"

column-separator=","

header = "yes">

id,name,address;

1,John Smith,John's address;

2,William Gates,Bill's address

</z:parse>

<!-- accessing all lines -->

<z:foreach key="row" in="$data">

<z:log>id = ${row.id}, name = ${row.name}, address = ${row.address}</z:log>

</z:foreach>

<!-- accessing only the first lines -->

<z:alias name="row">${data[1]}</z:alias>

<z:log>id = ${row.id}, name = ${row.name}, address = ${row.address}</z:log>

7.4.5 Elementzugri� auf das Ergebnis einer Filter-Action

Die Action z:�lter liefert eine Tabelle zurück. Der Zugri� erfolgt auf die selbeArt und Weise wie bei db:query.

<!-- store the result to the variable "data"-->

<z:parse alias="data"

row-separator=";"

column-separator=","

header = "yes">

id,name,address;

1,John Smith,John's address;

2,William Gates,Bill's address

Etixpert Consulting GmbH, Zagreus 1.3

100 Execution Engine - Allgemeine Funktionen

</z:parse>

<!-- filtering the lines where name contains the substring "John" -->

<z:filter alias="filtered" key="line"

where-expr="line.name ~ 'John'">$data</z:filter>

<!-- accessing all lines -->

<z:foreach key="row" in="$data">

<z:log>id = ${row.id}, name = ${row.name}, address = ${row.address}</z:log>

</z:foreach>

<!-- accessing only the first lines -->

<z:alias name="row">${data[1]}</z:alias>

<z:log>id = ${row.id}, name = ${row.name}, address = ${row.address}</z:log>

7.5 Vorde�nierte Variablen und Funktionen

Alle Actions können die folgenden Variablen verwenden.

• date: aktuelles Datum im Format yyyy-MM-dd

• debugMode: steuert das Verhalten des allgemeinen Attributsdebug-output. Bei true wird die Ausgabe in das im Attributedebug-output angegebene File geschrieben.

• jobId: eindeutige Job-Nummer einer Script-Ausführung

• loglevel: aktuelles Log-Level, siehe auch z:loglevel

• parallelLoops Anzahl der parallelen Schleifen in der ForEach-Scleife

• queueingTime Queuing Time

• scheduleId Schedule-ID

• scheduleName Schedule-Name

• schedulePath Schedule-Pfad

• scriptId: eindeutige Script-ID

• scriptName: Name des Scripts

• scriptPath: Pfad zum Script

• scriptDesc: Script-Beschreibung

• serverIP: IP-Adress des Zagreus-Servers

• serverVariables: Sammlung aller Server-Variablen

• threadId Thread-ID

• time: aktuelle Zeit im Format hh:mm:ss.SSS

Etixpert Consulting GmbH, Zagreus 1.3

7.5 Vorde�nierte Variablen und Funktionen 101

• zagreusVersion Zagreus Version

Neben den Variablen gibt es noch folgende Standardfunktionen:

• date(text) konvertiert Text in das Datumsformat

• date(text, format) konvertiert Text in das Datumsformat, dass imformat Parameter angegeben wird

• dateadd(datepart, value, date) addiert den angegeben Wert zum Da-tum. Mögliche Werte für datepart siehe weiter unten.

• dateadiff(datepart, date1, date2) berechnet die Di�erenz zwischenden beiden angegeben Zeiten. Mögliche Werte für datepart siehe unten.Mögliche Werte für datepart sind:

� yy, yyyy, year,

� m, mm, month,

� d, dd, day,

� ww, wk, week,

� hh, hour,

� n, mi, minute

� s, ss, second

� ms, millisecond

• format( object, format_specifier): liefert die textuelle Repräsenta-tion eines Objekts. Die Formatangabe ist Typ-abhängig. Für Zahlenob-jekte hat es dasselbe Format wie in Excel.

• gettype(object) liefert den Type eines Objekts

• isbinary(object) liefert true, wenn das Object binär ist

• isnumber(object) liefert true, wenn das Objekt eine Zahl ist

• keys(record) liefert ein Liste von Feldnamen eines Zagreus-Arrays

• length( list): liefert die Anzahl von Elementen eines Record-Objektszurück.

• length( record): liefert die Anzahl von Elementen eines Record-Objektszurück.

• length( text): liefert die Länge eines Text-Objekts zurück.

• ltrim(text) Löscht führende Leerzeichen.

• number( object): konvertiert ein Objekt in eine Zahl. Ist keine Umwand-lung möglich, wird 0 zurückgeliefert.

Etixpert Consulting GmbH, Zagreus 1.3

102 Execution Engine - Allgemeine Funktionen

• number( object, format): konvertiert ein Object in ein Zahl unter Ver-wendung eines bestimmten Formats. Das Format hat die gleiche Strukturwie die Zahlenformatierung in Excel. Ist keine Umwandlung möglich, wird0 zurückgeliefert.

• number(object, format, lang) konvertiert ein Object in ein Zahl unterVerwendung eines bestimmten Formats und Sprache. Das Format hat diegleiche Struktur wie die Zahlenformatierung in Excel. Ist keine Umwand-lung möglich, wird 0 zurückgeliefert.

• replace(text, string1, string2): ersetzt in text den string1 mitstring2, wobei string1 reguläre Ausdrücke enthalten kann.

• rtrim(text) Löscht Leerzeichen auf der rechten Seite einer Zeichenkette.

• time(text) konvertiert Text in Zeitformat

• time(text, format) konvertiert Text in das Zeitformat, dass im formatParameter angegeben wird

• sleep(int): Sleep-Funktion, hält die Ausführung für den spezi�ziertenZeitraum an. Die Zeitspanne wird in Millisekunden angegeben.

• substring( text, pos): extrahiert einen Teilstring ab der angegebenenPosition.

• substring( text, from, to): extrahiert einen Teilstring von der ange-gebenen Position "from" bis zur Position "to".

• translate(text, string1, string2): ersetzt in text einzelne Zeichenvon string1 durch einzelne Zeichen von string2

• trim(text) Löscht Leerzeichen links und rechts einer Zeichenkette.

7.6 GOTO-Funktionalität

Die sequentielle Ausführung der Actions kann durch die Verwendung vonGOTO-Expressions umgangen werden. Dazu muss die Action, in die verzweigtwerden soll, das Attribute label inklusive eines Wertes beinhalten. Danachkann von einer anderen Action auf diese Marke verwiesen werden. Das passiertüber das Kontextmenü Manage goto Expressions ..., siehe Abbildung 7.1.Der Inhalt bzw. die Syntax für die Verzweigungsbedingunen entsprechen denvon normalen Expressions.

Beispiel:Tutorial: Kernel/Script - GOTO 01

Etixpert Consulting GmbH, Zagreus 1.3

7.6 GOTO-Funktionalität 103

Abbildung 7.1: GOTO-Funktion

Etixpert Consulting GmbH, Zagreus 1.3

104 Execution Engine - Allgemeine Funktionen

Etixpert Consulting GmbH, Zagreus 1.3

Kapitel 8

Actions - Standardfunktionen

Das Um- und Auf von ZAGREUS sind die Vielzahl von unterschiedlichen Ac-tions, die jede für sich für die Ausführung einer Aufgabe bzw. eines Prozes-ses übernimmt. In der gewünschten Reihenfolge zusammengestellt, ergeben sieeine �exible und einzigartige Möglichkeit zur Automatisierung von Unterneh-mensabläufen. Eine Action ist eine in sich geschlossene Funktion, die bei Aufrufdie gestellte Aufgabe ausführt. Dabei können Variablen, Parameter und andereSteuerungsmechanismen den Ablauf nach Wunsch beein�ussen. Zusätzlich gibtes noch eine Reihe von Steuerungsfunktionen (foreach, while, etc.).

8.1 Kernel

Die Kernel-Actions enthalten grundlegenden Funktionen, wie sie auch aus ande-ren Entwicklungsumgebungen bekannt sind. Neben üblichen Variablende�nitio-nen, Schleifen, Anweisungen, Fehlerbehandlung etc. gibt es auch spezielle Acti-ons, die mit Tabellendaten, wie sie Zagreus verwendet, umgehen können (format,parse, �lter, etc.). Die Kernel-Actions sind in jeder Zagreus-Installation enthal-ten. Einzig und allein Systemaufrufe können bei der Installation ausgeschaltenwerden.

8.1.1 z:alias

De�niert eigentlich eine Variable. Der Wert wird auf den evalutierten Inhaltdes Containers gesetzt. Der Unterschied zu z:variable ist, dass z:alias inanderen Actions (z.B. z:join, z:array) verwendet werden kann. z:alias gibtalso einem Datencontainer, der mit Hilfe einer anderen Action aufgebaut wurde,einen sprechenden Namen. Über diesen Namen kann der Bereich im weiterenAblauf angesprochen werden. Der Inhalt kann ein einfacher Wert sein, oder auch

106 Actions - Standardfunktionen

eine komplexere Datenstruktur (z.B. ein eingelesenes Text�le).

Parameters:key Name der Variablen

Beispiel:Tutorial: Kernel/Script - Alias 01

xml-Code:<z:alias name="x" >value</z:alias>

<z:log">$x</z:log>

8.1.2 z:array

De�niert ein assoziatives Array von seinen Inhalten. Die Elemente können mitihrem Index oder über ein alias-Attribute referenziert werden.

Beispiel:Tutorial: Kernel/Script - Array 01

xml-Code:<z:array alias="array">

<z:alias name="x">value1</z:alias>

<z:alias name="y">value2</z:alias>

<z:variable name="z">value3</z:variable>

</z:array>

<z:log>${array.x},${array.y},${array[3]}</z:log>

8.1.3 z:break

Unterbricht den Ablauf der Schleife (while oder foreach) in der diese Actionaufgerufen wird.

Beispiel:Tutorial: Kernel/Script - Break 01

xml-Code:<z:foreach key="element" in="${[1,2,3,4,5,6,7]}">

<z:if test="${element = 4}">

<z:then">

<z:break/>

</z:then>

</z:if>

<z:log>$element</z:log>

</z:foreach>

Etixpert Consulting GmbH, Zagreus 1.3

8.1 Kernel 107

8.1.4 z:block

Fast mehrere Actions zu einem Block zusammen. Damit können mehrere An-weisungen hinter einem Icon versteckt werden, bzw. kann die Fehlerbehandlungüber die Elemente des Blocks gelegt werden. Hat sonst keine weitere Funktion.

8.1.5 z:call-template

Ruft ein vorde�niertes Template auf. Beim Aufruf können Parameter übergebenwerden. Der gra�sche Script-Editor unterstützt den Aufruf von Templates. MitDrag-and-Drop wird einfach das Template-File in den Bearbeitungsbereich gezo-gen. Daraufhin erscheint am Ende der Palette ein neuer Eintrag, der alle de�nier-ten Templates enthält. Jetzt kann einfach die entsprechende z:call-templateAction in den Bearbeitungsbereich gezogen werden. Entält das Template-Filemehrere Templates, werden alle in der Palette angezeigt.

Parameter:name Name des Templates

Beispiel:Tutorial: Kernel/Script - CallTemplate 01

xml-Code:<z:include filename="/groups/public/Tutorial/Kernel/Template 01"/>

<z:call-template name="logging">

<z:param name="param1">Zagreus</z:param>

<z:param name="param2">Zeus</z:param>

</z:call-template>

<z:call-template name="logging"/>

8.1.6 z:compare

Vergleicht das Ergebnis der ersten beiden Kind-Actions. Der Vergleich wirdzeilenweise gemacht, ähnlich zum Unix command "di�". Das Ergebnis ist eineWert vom Typ boolean. Es können auch binäre Vergleiche, z.B. ein Vergleichvon Excel-Dateien, damit gemacht werden.

Ergebnisattribute:• differences eine Liste der Unterschiede, jeder Eintrag stellt ein Paarvon gleichen Intervallen dar, in denen Unterschiede gefunden wurden.Bei einem Binärvergleich kann so eine Liste nicht zurückgeliefert wer-den.

• count Anzahl der Unterschiede (entspricht der Anzahl der Elementein der Di�erenzliste)

Etixpert Consulting GmbH, Zagreus 1.3

108 Actions - Standardfunktionen

Beispiel:Tutorial: Kernel/Script - Compare 01

xml-Code:<!-- comparing text data -->

<z:log>

<z:compare>

<z:text>a

b

c</z:text>

<z:text>a

b

d</z:text>

</z:compare>

</z:log>

<z:log>$z_compare</z:log>

<!-- comparing tables -->

<z:log>

<z:compare>

<z:parse row-separator=";"

column-separator=","

header="true"

>a,b,c;1,2,3;4,5,6</z:parse>

<z:parse row-separator=";"

column-separator=","

header="true"

>a,b,c;1,2,3;5,5,6</z:parse>

</z:compare>

</z:log>

<z:log>$z_compare</z:log>

<!-- comparing binary files -->

<z:log>

<z:compare>

<file:read filename="i/groups/public/Tutorial/Excel/SampleData.xls" binary="true"/>

<file:read filename="/groups/public/Tutorial/Excel/SampleData.xls" binary="true"/>

</z:compare>

</z:log>

<z:log>$z_compare</z:log>

8.1.7 z:continue

Setzt mit dem nächsten Wert einer Schleife (while oder foreach) fort.

Beispiel:Tutorial: Kernel/Script - Continue 01

xml-Code:<z:foreach key="element" in="${[1,2,3,4,5,6,7]}">

<z:if test="${element = 4}">

<z:then">

<z:continue/>

Etixpert Consulting GmbH, Zagreus 1.3

8.1 Kernel 109

</z:then>

</z:if>

<z:log>$element</z:log>

</z:foreach>

8.1.8 z:documentation

Legt für das spezi�zierte Script eine Dokumentation im PDF-Format an. DerFunktionsumfang entspricht der neuen Document Script-Funktion im Client.

Parameter:�lename ScriptId oder Scriptpfad

justicon Bei true wird nur ein Icon für den root-Container gezeichnet.Der Standardwert ist false.

graphview Bei true wird eine hierarchiesche Struktur gezeichnet. DerStandardwert ist true.

graphpage spezi�ziert das Seitenformat für die Gra�k. Mögliche Wertesind: A4portrait, A4landscape, A3portrait, A3landscape

display-level Bis zur welcher Stufe soll die detailierte Ausgabe erfolgen.Bei keiner Angabe wird bis zur letzten Ebene ausgegeben.

elements Sollen nur einzelne Elemente ausgegeben werden, müssen sie hierangegeben werden: z.B. 1.2

header-left Linker Teil der Kopfzeile

header-center Mittlerer Teil der Kopfzeile

header-right Rechter Teil der Kopfzeile

footer-left Linker Teil der Fusszeile

footer-center Mittlerer Teil der Fusszeile

footer-right Rechter Teil der Fusszeile

script-version Zagreus Version

include-xml Bei true wird am Ende auch das XML ausgegeben. Der Stan-dardwert ist true.

Hinweis: Folgende Variablen können in den Kopf- und Fusszeilen verwendetwerden:

• logo: Zagreus-Logo,

• page: Seitennummer

• numpages: Gesamtzahl der Seiten

• scriptname: Script-Name

Etixpert Consulting GmbH, Zagreus 1.3

110 Actions - Standardfunktionen

• scriptpath: Script-Pfad

• scriptdesc: Script-Beschreibung

• date: Datum

• time: Uhrzeit

• zagreusversion: Zagreus Version

Beispiel:Tutorial: Kernel/Script - Documentation 01

xml-Code:<z:documentation

filename="id:402881480f7062fa010f7063f1a60011"

justicon="false"

graphview="true"

graphpage="A4portrait"

display-level=""

elements=""

header-left="#{scriptname}"

header-center="#{scriptdesc}"

header-right="#{logo}"

footer-left="Company name"

footer-center="#{page} of #{numpages}"

footer-right="#{date}"

script-version="1.2"

include-xml="true"

/>

8.1.9 z:exit

Beendet die weitere Ausführung eines Scripts. Der Inhalt dieser Action wirdals Return-Wert an den Server zurückgeliefert, bzw. als Output für einezs:runscript-Action. Es ist auch möglich einen Rückgabewert in die Finished-Job Tabelle zu schreiben (Attribut message).

Parameter:message Der Wert dieses Attributes wird als Rückgabewert in die

Finished-Job Tabelle geschrieben.

Beispiel:Tutorial: Kernel/Script - Exit 01

xml-Code:<z:log>Start</z:log>

<z:exit message="">Exit from the Script</z:exit>

<z:log>End</z:log>

Etixpert Consulting GmbH, Zagreus 1.3

8.1 Kernel 111

8.1.10 z:�lter

Filtert die Daten nach den angegeben Kriterien. Bei Verwendung von Tabel-len als Datenquelle können auch die Spalten ausgewählt werden. Das Ergebnisist vom gleichen Datentype wie die Quelle. Werden Zeilen eines Text�les ge�l-tert, ist das Ergebnis auch zeilenorientiert. Wird eine Tabelle ge�ltert, ist dasErgebnis auch eine Tabelle.

Parameter:select Selektiert und/oder benennt Spalten, vorausgesetzt es handelt sich

um Tabellen. Mehrere Spalten werden mit Kommas getrennt. DerSpaltenbezeichner kann dabei umbenannt werden, z.B. neu=alt.

key Variablenname der auf die ausgewählten Daten zeigt. Diese Variablewird im Filterausdruck verwendet.

where-expr Filterausdruck, es können alle konventionellen Vergleichsope-ratoren verwendet werden (<,<=,>,>=,= und auch für reguläreAusdrücke. Die Verneinung wird mit ! angegeben, z.B. ! .

row-separator Zeilentrennzeichen, wenn Text ge�ltert werden soll.

distinct Bei true werden Zeilen mit dem gleichen Inhalt herausge�ltert

Ergebnisattribute:• rowcnt: Anzeil der Zeilen

• execution_time: Dauer der Ausführung (in ms)

Beispiele:Tutorial: Kernel/Script - Filter 01

Tutorial: Kernel/Script - Filter 02

Tutorial: Kernel/Script - Filter 03

xml-Code:<z:filter

select=""

key="figure"

where-expr="figure>=3"

row-separator=","

alias="filtered">

1,2,3,4,5

</z:filter>

<z:log>$filtered</z:log>

<z:log>Zeilen: ${z_filter.rowcnt}</z:log>

8.1.11 z:�reevent

Löst ein Zagreus Event aus. Alle Scripts, die diesem Ereignis zugewiesen sind,werden sofort ausgeführt.

Etixpert Consulting GmbH, Zagreus 1.3

112 Actions - Standardfunktionen

Parameter:event-id ObjektId des auszulösenden Events

Beispiel:Tutorial: Kernel/Script - Fireevent 01

xml-Code:<z:fire-event event-id="402881480f3edfe1010f5847d9590030"/>

8.1.12 z:foreach

Für jedes einzelne Element des im INBereich hinterlegten Arrays, werden dienachfolgenden Aktionen ausgeführt. Dabei können die einzelnen Felder diese Ar-rays über die De�nition eines Schlüssels (keyAttribut) referenziert werden, z.B.$key.feld1. Die Ausführung kann durch z:break bzw. z:continue beein�usstwerden. Zusätzlich ist eine parallele Ausführung aller inneren Anweisungen mög-lich. Dafür muss nur das parallelAttribut auf einen höheren Wert eingestelltwerden (Standardwert=1). Enthält z.B. die Liste über die die Schleife läuft 100Elemente, und parallel=4, dann werden 4 Teillisten mit je 25 Elementen gleich-zeitig abgearbeitet. Für jede Teilliste wird ein eigener Thread gestartet. DieseFunktionaliät muss aber durch den Lizenzkey freigeschalten sein!

Parameters:in enthält die Liste über die iteriert wird (Kann als Attribut und als Kin-

delement de�niert werdne!)

key Variable mit der auf das aktuelle Listenelement referenziert wird.

parallel Anzahl der parallelen Ausführungsstränge. Wenn parallel>1,dann hat die z:break Action keine Auswirkung auf die Ausführungder anderen Threads!

Ergebnisattribute:• counter Schleifenzähler, über z_foreach.counter kann die Nummerdes aktuellen Elements abgefragt werden.

Beispiele:Tutorial: Kernel/Script - Foreach 01

Tutorial: Kernel/Script - Foreach 02

xml-Code:<z:foreach

key="element"

in="${[1,2,3,4,5,6,7]}"

>

<z:log >$element</z:log>

</z:foreach>

Etixpert Consulting GmbH, Zagreus 1.3

8.1 Kernel 113

8.1.13 z:format

Transformatiert die Daten des Containers in das angegeben Format (xml, html,text, ini). Dient für die Umwandlung von Daten vom Zagreus-Tabellenformatin das entsprechende Zielformat.

Parameters:type Formatangabe, mögliche Werte sind: "text", "xml", "html" oder

"ini". Standardformat ist "text".

row-separator Zeichen für die Zeilentrennung

column-separator Zeichen für die Spaltentrennung

header Bei true oder yes wird eine Kopfzeile geschrieben.

Beispiele:Tutorial: Kernel/Script - Format 01

Tutorial: Kernel/Script - Format 02

Tutorial: Kernel/Script - Format 03

Tutorial: Kernel/Script - Format 04

xml-Code:<z:log _x="26" _y="38" _w="-1" _h="-1" _v="0">

<z:format

type="xml"

row-separator=""

column-separator=""

header="true"

alias="formatted">

<z:parse

row-separator="\n"

column-separator=";"

header="true"

type=""

alias="res">

<file:read

filename="/groups/public/Tutorial/Kernel/TestData.txt"

binary="false"/>

</z:parse>

</z:format>

</z:log>

8.1.14 z:if

Tri�t der im test-expr-Attribut angegebene Ausdruck zu, dann werden dieActions des THEN-Zweigs ausgeführt, tri�t er nicht zu, jene des ELSE-Zweigs.Die Testbedingung kann selbst als Action de�niert werden, solange sie trueoder false zurückliefert, z.B. file:exist.

Etixpert Consulting GmbH, Zagreus 1.3

114 Actions - Standardfunktionen

Parameter:test-expr Bedingungsausdruck, hier ist die Verwendung von ${} nicht not-

wendig, da der Ausdruck standardmäÿig als Expression betrachtetwird.

Kindelemente:z:then

z:else

Beispiele:Tutorial: Kernel/Script - If 01

xml-Code:<z:variable name="x">2</z:variable>

<z:if test-expr="x <= 2">

<z:then>

<z:log>Then Part</z:log>

</z:then>

<z:else>

<z:log>Else Part</z:log>

</z:else>

</z:if>

8.1.15 z:include

Inkludiert ein Script an der eingefügten Stelle und führt es aus. Ermöglich da-mit den modularen Aufbau von Scripts, da es einfach auf ein anderes Scriptreferenziert. Damit können z.B. die Verbindungsinformation für Datenbanken,etc. einmalig angelegt und in anderen Scripts verwendet werden.

Parameter:�lename Scriptname (inklusive Pfad, bzw. id ID)

Beispiel:Tutorial: Kernel/Script - Include 01

xml-Code:<z:include

filename="id:402881480f3edfe1010f61e63983004f"

/>

8.1.16 z:java

Ruft eine externe Java-Methode auf. Diese Methode sollte statisch de�niert seinund einen String-Wert als Parameter haben. Beim Aufruf können über z:paramauch Parameter übergeben werden. Wenn z:param das name-Attribute enthält,wird der Name mit einem - vor dem Wert eingefügt.

Etixpert Consulting GmbH, Zagreus 1.3

8.1 Kernel 115

Parameters:class Java-Klasse. Die angegebene Klasse muss sich in einem classpath

der Execution Engine be�nden.

method Methode der Klasse. Die Methode sollte statisch sein und nur einString[] Argument haben.

Kindelemente:z:param

xml-Code:<z:log>

<z:java class="test.Test" method="main">

<z:param>Hello</z:param>

<z:param>World</z:param>

</z:java>

</z:log>

<z:log>Sample with param names</z:log>

<z:log>

<z:java class="test.Test" method="main">

<z:param name="message">Hello</z:param>

<z:param name="target">World</z:param>

</z:java>

</z:log>

<z:log>The code above is equivalent to this code</z:log>

<z:log>

<z:java class="test.Test" method="main">

<z:param>-message</z:param>

<z:param>Hello</z:param>

<z:param>-target</z:param>

<z:param>World</z:param>

</z:java>

</z:log>

8.1.17 z:join

Verknüpft zwei beliebige Datenbereiche. So können SQL-Abfragen mit Excel-oder ASCII-Dateien über ein oder mehrere gemeinsame Felder verbunden wer-den. Zusätzlich können einzelne Ergebnisspalten selektiert werden.

Parameters:select Selektiert und/oder benennt Spalten. Mehrere Spalten werden mit

Kommas getrennt. Der Spaltenbezeichner kann dabei umbenannt wer-den, z.B. neu=alt.

where-expr where-Bedingung. Diese Expression nutzt die Alias-Namender Subactions, um auf die einzelnen Spalten zu referenzieren. Ist dieangegebene Expression falsch, wird eine leere Menge zurückgegeben.Einen Natural Join erreicht man durch das Weglassen der Expression.Outer Joins werden über die Operatoren =+, += und +=+ angegeben.

Etixpert Consulting GmbH, Zagreus 1.3

116 Actions - Standardfunktionen

distinct Bei true werden Zeilen mit dem gleichen Inhalt herausge�ltert

Beispiele:Tutorial: Kernel/Script - Join 01

Tutorial: Kernel/Script - Join 02

xml-Code:<z:log>

<z:join

select="a.Father,b.Mother,a.Son"

where-expr="a.Son=b.Son">

<z:alias name="a">

${[['Father':'Zeus', 'Son':'Zagreus'], ['Father':'Zeus';, 'Son':'Ares']]}

</z:alias>

<z:alias name="b">

{[['Son':'Zagreus', 'Mother':'Semele'], ['Son':'Ares', 'Mother':'Hera']]}

</z:alias>

</z:join>

</z:log>

8.1.18 z:log

Schreibt den Inhalt in die Standard-Logging-Einheit. Wird eine andere Log-Datei mit z:logfile angegeben, wird in diese geschrieben.

Beispiel:Tutorial: Kernel/Script - Log 01

xml-Code:<z:log>enter log message here</z:log>

8.1.19 z:log�le

Spezi�ziert eine Datei als Logging-Einheit. Alle Log-Einträge ab dieserContainer-Ebene schreiben in diese Datei.

Parameters:�lename Datei, in die die Logging-Informationen geschrieben werden.

Wird dieses Attribut leer gelassen, wird die Loggin-Information wiederin die Standardeinheit geschrieben.

Beispiel:Tutorial: Kernel/Script - Log�le 01

xml-Code:<z:log>START: Default log</z:log>

Etixpert Consulting GmbH, Zagreus 1.3

8.1 Kernel 117

<z:logfile filename="/groups/public/Tutorial/Kernel/Log.txt"/>

<z:log>$date $time: Logging to file</z:log>

<z:logfile filename=""/>

<z:log>END: Default log again</z:log>

8.1.20 z:loglevel

De�niert wieviel Informationen in das Log aufgenommen werden sollen: user,error, info, debug

levelGibt an, auf welcher Ebene Log-Informationen ausgegeben werden sollen.Mögliche Werte sind: user, error, info, debug

user: Schreibt nur die z:log Einträge

error: Schreibt z:log und Fehlermeldungen

info: Schreibt zusätzlich noch Info-Meldungen der Execution Engine

debug: Schreibt zusätzlich noch Debug-Informationen

Beispiel:Tutorial: Kernel/Script - Loglevel 01

xml-Code:<z:loglevel level="error"/>

<z:log">START: Default log</z:log>

<file:read filename="/groups/public/Tutorial/Kernel/TestData.txt" binary="false" />

<z:log >END: Default log</z:log>

<z:loglevel level="info" />

<file:read filename="/groups/public/Tutorial/Kernel/TestData.txt" binary="false"/>

8.1.21 z:not

Führt die Negation des Outputs des Kindelements durch.

Beispiel:Tutorial: Kernel/Script - Not 01

xml-Code:<z:log>

<z:not>${true}</z:not>

>/z:log>

Etixpert Consulting GmbH, Zagreus 1.3

118 Actions - Standardfunktionen

8.1.22 z:on-error

De�niert eine Fehlerbehandlungsroutine für einen bestimmten Fehler. Der Inhaltdes Containers wird dann ausgeführt, wenn der Fehler in den nachfolgenden Ac-tions des gleichen Containers aufgetreten ist. Wird kein bestimmter Fehlernameangegeben, wird bei jeglichem Fehler die Ausführung der Fehler-Actions ange-stossen. Während der Ausführung kann die lokale Variable "error" verwendetwerden, um den Kontext des Fehlers abzufragen. Der Fehler wird auch ins Loggeschrieben. Nach der Fehlerbehandlung wird dieser nicht mehr in den nächsthöheren Container weitergeleitet, ausser es wird über z:raise eine neuer Fehlergeneriert.

Parameter:error-name Name des Fehlers auf den reagiert werden soll

Gültigkeitsbereich:Die Fehlerbehandlungsroutine ist gültig ab ihrer De�nition bis zur letztenAction im selben Container. Fehler die vorher auftreten werden daher nichtabgefangen.

Allgemeines zur Fehlerbehandlung:

Tritt ein Fehler während der Ausführung auf, generiert das System einen Feh-lercode (Text). Der Fehlercode kann folgendes enthalten:

• FEHLERGRUPPE: z.B. File

• FEHLER: Fehler werden in verschiedene Gruppen eingeteilt z.B. der Feh-lertyp FileNotFound gehört zur Gruppe File und dieser wieder zur Grup-pe IO. Siehe auch den Abschnitt über Exceptions.

• FEHLERNAME: Wird mit z:raise ein benutzerde�nierter Fehler ausge-löst, wird ein spezieller Fehler mit diesem Namen generiert. Über diesenNamen kann der Fehler dann abgefangen werden.

Nachdem die Execution Engine einen Fehler generiert hat, wird ein entspre-chender Error Handler gesucht. Die Übereinstimmung funktioniert nach folgen-den Regeln:

• Der Fehlername (Attribute error-name) ist gleich dem FEHLER.

• Der Fehlername (Attribute error-name) ist gleich der FEHLERGRUPPE.

• Der Fehlername (Attribute error-name) ist gleich dem benutzerde�nier-ten FEHLERNAMEN.

Etixpert Consulting GmbH, Zagreus 1.3

8.1 Kernel 119

Ist die Fehlerroutine gefunden, werden die darin enthalten Actions ausgeführt.In diesen Actions kann auf die Action, in der der Fehler aufgetreten ist, über dieVariable "error" referenziert werden. Jede Variable und jedes Attribute kann miterror.variable_name oder error.attribute_name abgefragt werden. Nachdem vollständigen Ablauf des Fehlerroutine wird die aktive Action gestopptund mit der nächsten Action fortgesetzt.

Wird kein geeigneter Error Handler gefunden, wird die Ausführung an der ak-tiven Stelle gestoppt und bei den übergeordneten Action solange gesucht

• bis ein geeigneter Error Handler gefunden ist,

• oder bis das rootElement erreicht ist.

Im ersten Fall wird die gefundene Fehlerbehandlungsroutine ausgeführt, im zwei-ten Fall wird die Ausführung des Scripts mit einem Fehler beendet.

Beispiele:Tutorial: Error Handling/Script - OnError 01

Tutorial: Error Handling/Script - OnError 02

Tutorial: Error Handling/Script - OnError 03

Tutorial: Error Handling/Script - OnError 04

xml-Code:<z:block>

<z:on-error error-name="IO">

<z:log>IO-error: filename ${error.filename} does not exist.</z:log>

</z:on-error>

<file:read filename="/groups/public/<-filesystem->/unknownfile" binary="true"/>

</z:block>

<z:block>

<z:on-error error-name="File">

<z:log>File-error: filename ${error.filename} does not exist.</z:log>

</z:on-error>

<file:read filename="/groups/public/<-filesystem->/unknownfile" binary="true"/>

</z:block>

<z:block>

<z:on-error error-name="">

<z:log>Test Failed, filename ${error.filename} does not exist.</z:log>

</z:on-error>

<file:read filename="/groups/public/<-filesystem->/unknownfile" binary="true"/>

</z:block>

8.1.23 z:on-event

De�niert einen Event-Handler für ein bestimmtes Ereignis. Der Inhalt dieserAction wird dann immer bei Eintritt des Ereignisses ausgeführt. Der Gültig-

Etixpert Consulting GmbH, Zagreus 1.3

120 Actions - Standardfunktionen

keitsbereich ist der Parent-Container des Event-Handlers. Folgende Ereignissewerden behandelt:

• after-all-children Die Handler-Actions werden nach dem letzten Kin-delement ausgeführt.

• before-all-children Die Handler-Actions werden vor dem ersten Kin-delement ausgeführt.

• after-child Die Handler-Actions werden nach jedem Kindelement aus-geführt.

• before-child Die Handler-Actions werden vor jedem Kindelement aus-geführt.

Parameter:event-name Name des Ereignisses

Beispiel:Tutorial: Kernel/Script - OnEvent 01

xml-Code:<z:on-event event-name="after-all-children">

<z:log>At the end</z:log>

</z:on-event>

<z:on-event event-name="after-child">

<z:log">After all children</z:log>

</z:on-event>

<z:log>Action 1</z:log>

<z:log>Action 2</z:log>

8.1.24 z:parse

Transformiert eine Textdatei in die interne Tabellenstruktur.

Parameter:row-separator Zeilentrennzeichen, Standardwert ist "\n"column-separator Spaltentrennzeichen, Standardwert ist " "

column-names Liste von Spaltennamen, durch Beistriche getrennt. Wenndiese Liste angegeben wird, wird das Attribute header immer alsfalse interpretiert.

�xed-�elds De�niert den Beginn und das Ende einer Spalte. Wird diesesAttribute de�niert, wird das Attribut column-separator negiert. DasFormat ist eine List von Von-Bis Sequenzen wieder durch Beistrichegetrennt. Z.B. -20,21-25,26- Hier wird vom Beginn der Zeile bis zur20.sten Stelle die erste Spalte eingelesen, von 21-25 Spalte 2 und abZeichen 26 bis zum Ende der Zeile Spalte 3. Das erste Zeichen beginntan der Position 1.

Etixpert Consulting GmbH, Zagreus 1.3

8.1 Kernel 121

header Bei true wird die erste Zeile als Spaltenüberschrift genommen.

type Bei ini werden Zeilen der Form Name=Value angenommen und ent-sprechend eingelesen. Ist nur für das Lesen von ini-Dateien interes-sant.

Beispiel:Tutorial: Kernel/Script - Parse 01

Tutorial: Kernel/Script - Parse 02

xml-Code:<z:parse

row-separator=";"

column-separator=","

column-names=""

fixed-fields=""

header="false"

type=""

alias="x">

a,b,c;1,2,3;4,5;6,7,8,9,10

</z:parse>

<z:log>First Line: ${x[1]}, First element in first line: ${x[1][1]}</z:log>

8.1.25 z:raise

Löst einen Fehler mit dem angegebenen Namen aus. Dieser generierte Feh-ler kann durch einen Error-Handler abgefangen werden, oder die Ausführungstoppt mit einer Fehlermeldung.

Parameter:error-name Name des Fehlers

Beispiel:Tutorial: Kernel/Script - Raise 01

xml-Code:<z:block>

<z:on-error

error-name="user-error">

<z:log>User error has happened</z:log>

</z:on-error>

<z:raise error-name="user-error"/>

</z:block>

8.1.26 z:sort

Sortiert den Inhalt einer Action.

Etixpert Consulting GmbH, Zagreus 1.3

122 Actions - Standardfunktionen

Parameter:key Variable, die im by Aattribut verwendet wird

by Sortier-Expression (siehe weiter unten)

distinct Bei true werden Zeilen mit dem gleichen Inhalt herausge�ltert

Sortier-Expressions können Feldbezeichnungen getrennt durch Komma enthal-ten. Feldasudrücke sind Expressions, die sich auf Daten in einer Zeile beziehen(z.B. die Felder der Variable, die im Attribute key angegeben wird). Indiesen Ausdrücken kann auch die Sortierreihenfolge spezifiziertwerden,asc oder desc.

Beispiel:Tutorial: Kernel/Script - Sort 01

xml-Code:<z:sort

key="Father"

order-by="Father

asc" distinct="true"

alias="x">

<z:parse

row-separator="\n"

column-separator=";"

column-names=""

fixed-fields=""

header="true" type="" >

Father;Son

Zeus;Zagreus

Kronos;Zeus

Zeus;Zagreus

</z:parse>

</z:sort>

<z:log>$x</z:log>

8.1.27 z:switch

Führt eine der innerhalb liegenden Subactions case oder else aus,abhängig von der Test-Expression.

Parameter:test-expr Bedingungsausdruck, hier ist die Verwendung von

${} nicht notwendig, da der Ausdruck standardmäÿig alsExpression betrachtet wird.

Kindelemente:z:case • value: Ausdruck der mit dem Bedingungsausdruck

verglichen wird.

z:else

Etixpert Consulting GmbH, Zagreus 1.3

8.1 Kernel 123

Beispiel:Tutorial: Kernel/Script - Switch 01

xml-Code:<z:variable name="x">b</z:variable>

<z:switch test-expr="$x">

<z:case value="a">

<z:log>case a</z:log>

</z:case>

<z:case value="b">

<z:log">case b</z:log>

</z:case>

<z:else>

<z:log>other value</z:log>

</z:else>

</z:switch>

8.1.28 synchron

Wartet auf das Ende alle mittels async=true gestarteten Actions.Async-Actions müssen den Async-Event-Listener unterstützen. Biszur Version 1.3 ist das nur die zs:runscript-Action.

Beispiel:Tutorial: Kernel/Script - Synchron 01

xml-Code:<z:synchron>

<zs:runscript

script-name="/groups/public/Tutorial/Kernel/util/sleep"

async="true">

<zs:variable name="sleep_time" value="3000" />

</zs:runscript>

<zs:runscript

script-name="/groups/public/Tutorial/Kernel/util/sleep"

async="true" >

<zs:variable name="sleep_time" value="6000" />

</zs:runscript>

</z:synchron>

8.1.29 z:system

Führt ein System-Kommando aus und liefert den generiertenStandard-Output als Ergebnis zurück.

Parameter:async Mögliche Werte sind true oder false. Bei true wartet

die Zagreus Eecution Engine nicht auf das Ende desSystembefehls, sondern macht sofort weiter.

Etixpert Consulting GmbH, Zagreus 1.3

124 Actions - Standardfunktionen

shell Spezifiert die Command-Shell, die für die Ausführungverwendet werden soll. Standardwert ist sh für Linux andUnix Systeme, und cmdfür Windows Systeme.

shell-param Specifiziert den ersten Parameter für dieCommand-Shell. Dieser Parameter legt fest, dass dasnächste Argument das auszuführenden Kommando enthält.Standardwert für sh ist -c und/c für cmd.

encoding Gibt noch das Encoding für die Shell an, z.B Cp850für den deutschen Zeichensatz.

Exceptions:External

Beispiel:Tutorial: Kernel/Script - System 01

xml-Code:<z:log>

<z:on-error error-name="External">

<z:log>the exit code ${error.z_system.exit_value} is not zero</z:log>

</z:on-error>

<z:system

async="false"

shell=""

shell-param=""

ncoding="Cp850"

>dir</z:system>

</z:log>

8.1.30 z:template

Definiert eine Script-Schablone. Ist vergleichbar mit einerProzedur mit Parametern. Der Inhalt eines Templates wirdausgeführt, wenn diese Schablone mit z:call-template aufgerufenwird. Bei der Definition werden Standardwerte für etwaigeParameter festgelegt, die beim Aufruf mit anderen Wertenüberschrieben werden können. Templates können innerhalbeines Scripts definiert werden, oder über z:include auchimportiert werden. Dazu muss das Template aber als ObjekttypTemplate gespeichert werden und nicht als Objekttyp Script. EinTemplate-File kann mehrere Template-Definitionen enthalten. Aufdiese Art und Weise können Scripts modulartig aufgebaut werden.

Parameter:name Name des Templates

Kindelemente:z:param • name: Name des Parameters

Etixpert Consulting GmbH, Zagreus 1.3

8.1 Kernel 125

Beispiel:Tutorial: Kernel/Template 01

xml-Code:<z:template name="logging">

<z:param name="param1">default value1</z:param>

<z:param name="param2">default value2</z:param>

<z:log>Parameter1: $param1 Parameter2: $param2</z:log>

</z:template>

8.1.31 z:text

Erlaubt das Einfügen eines Textes bzw. eines Ausdrucks ander gewünschten Stelle. Damit können Textelemente und andereContainer beliebig aneinander gereiht werden.

Beispiel:Tutorial: Kernel/Script - Text 01

xml-Code:<file:write filename="/groups/public/Tutorial/Kernel/Textaction.txt" append="false">

<z:text>We are reading the text from a file!</z:text>

<file:read filename="/groups/public/Tutorial/Kernel/TestData.txt" binary="false" />

<z:text>After reading the text, we include another text-section.</z:text>

</file:write>

8.1.32 z:union

Bildet die Vereinigungsmenge von zwei Zagreus-Tabellen.

Beispiel:Tutorial: Kernel/Script - Union 01

xml-Code:<z:union>

<z:parse

row-separator=";"

column-separator=","

header="true"

alias="f1">

a,b,c;1,2,3;

</z:parse>

<z:parse

row-separator=";"

column-separator=","

header="true"

alias="f2">

a,b,c;4,5,6;

</z:parse>

</z:union>

<z:log>$x</z:log>

Etixpert Consulting GmbH, Zagreus 1.3

126 Actions - Standardfunktionen

8.1.33 z:variable

Definiert eine Variable. Der Wert der Variable wird auf denInhalt des Containers gesetzt. Eine Variable ist nur in ihremContainer gültig. Wird sie im Root-Container definiert, ist siein allen Sub-Actions gültig. Enthält eine Sub-Action die gleicheVariablendeklaration, dann gilt diese lokal und überschreibt dieglobalere Variable.

Parameter:name Name der Variablen

Beispiel:Tutorial: Kernel/Script - Variable 01

xml-Code:<z:variable name="x">outer</z:variable>

<z:block>

<z:variable name="x">inner</z:variable>

<z:log>inner variable: $x</z:log>

</z:block>

<z:log>outer variable: $x<z:log>

8.1.34 z:while

Führt die innerhalb liegenden Actions solange durch, bis dieAbbruchbedingung erreicht ist. Die Ausführung kann auch durchz:break unterbrochen werden.

Parameter:test-expr Bedingung für die Schleife

Beispiel:Tutorial: Kernel/Script - While 01

xml-Code:<z:variable name="x" >${number(3)}</z:variable>

<z:while test-expr="x>=0">

<z:log>$x</z:log>

<z:text">${x:=x-1}</z:text>

</z:while>

Etixpert Consulting GmbH, Zagreus 1.3

8.2 Email 127

8.2 Email

Mittels des SMTP-Protokolls können Emails verschickt werden. Fürdas Versenden einer Email muss zuerst eine Verbindung zu einemMail-Server hergestellt werden. Die Action mail:send versendetdann über diese Verbindung eine Mail. Jede mail:send-Action kannum die Actions mail:body und mail:attachment erweitert werden.

8.2.1 mail:close

Schlieÿt eine Mail-Server-Verbindung. Normalerweise werden alleVerbindungen geschlossen, wenn die Action beendet ist in der siedefiniert ist. Mit dieser Action ist es möglich, die Verbindungselbständig zu beenden. Die Verbindung wird bei Bedarf wiederautomatisch geöffnet.

Parameter:connection-name Name der Verbindung

Exceptions:Mail

8.2.2 mail:connection

Definiert die Verbindung zum Mail-Server.

Parameter:name Name der Verbindung

server SMTP-Servername oder IP-Adresse (Erforderlich)

port Port des SMTP-Servers (Optional )

user Benutzername, falls Authentifizierung notwendig ist(Optional)

password Passwort für den angegebenen Benutzer (Optional)

cpassword Verschlüsseltes Passwort (Optional)

protocol Protokoll (smtp,pop3,imap)

Ergebnisattribute:• server Mail-Server

• user Mail-Benutzername

• protocol Mail-Protokollt

Etixpert Consulting GmbH, Zagreus 1.3

128 Actions - Standardfunktionen

Exceptions:Mail

Beispiel:Tutorial: Connections/SMTP - Email Server

8.2.3 mail:send

Versendet eine Email-Nachricht.

Parameter:connection-name Name der Verbindung (Erforderlich)

from Absender Email-Adresse (Erforderlich).

from-display-name Anzeigename der Absenderadresse (Optional)

to Empfänger-Adresse (Erforderlich)

cc CC-Email-Adresse (Optional)

bcc BCC-Email-Adresse (Optional)

reply-to Antwortadresse (Optional)

reply-to-display-name Antwortname (Optional)

subject Betreffzeile (Optional)

Hinweis:Die Adress-Attribute (to, bc, ccc) können mehrere Adressenenthalten. Sie müssen durch ein Komma getrennt angegebenwerden. Es kann aber auch eine Liste oder Record verwendetwerden. Dann wird automatisch eine Komma-separierte Listegeneriert.

Exceptions:Mail

Beispiel:Tutorial: Email/Script 01 - Simple Email

8.2.3.1 mail:body

Spezifiziert den Email-Body. Es können mehrere text aus demTool-Abschnitt verwendet werden, um verschieden Textteilemiteinander kombinieren zu können.

Parameter:content-type Mögliche Werte: text/plain und text/html.

Standardwert ist text/plain

Etixpert Consulting GmbH, Zagreus 1.3

8.2 Email 129

Beispiele:Tutorial: Email/Script 02 - Simple Text Email

Tutorial: Email/Script 03 - Simple Html Email

8.2.3.2 mail:attachment

Spezifiziert den Email-Anhang.

Parameters:content-type Inhaltstyp des Email-Anhangs. Mögliche Werte:

application/octet-stream, application/pdf, ...

�lename Dateiname für den Anhang

Beispiel:Tutorial: Email/Script 04 - Email with Attachment

8.2.4 mail:getinfo

Holt allgemeine Informationen über ein elektronisches Postfach.Es werden keine Emails abgeholt, nur die Anzahl der Emails imPostfach.

Parameter:connection-name Name der Verbindung, in der Verbindung muss

beim Attribut protocol pop3 oder imap eingetragen sein.

folder Folder, von dem die Informationen geholt werden sollen.Standardwert ist 'INBOX'. Bei POP3-Verbindungen ist nurdieser Wert möglich, bei 'IMAP' sind auch andere Foldermöglich

Ergebnisattribute:• messages: Anzahl der Emails im Postfach

• read: Anzahl der gelesenen Emails im Postfach (nur beiIMAP sinnvoll)

• unread: Anzahl der ungelesenen Emails im Postfach (nurIMAP sinnvoll)

• execution_time: Dauer der Ausführung

Exceptions:Mail

Beispiel:Tutorial: Email/Script 05 GetInfo

Etixpert Consulting GmbH, Zagreus 1.3

130 Actions - Standardfunktionen

xml-Code:<mail:getinfo

connection-name="pop3"

folder="INBOX"

/>

8.2.5 mail:getmsg

Holt eine Email von einem POP3 oder IMAP-Server.

Parameter:connection-name Name der Verbindung, in der Verbindung muss

beim Attribut protocol pop3 oder imap eingetragen sein.

folder Folder, von dem die Informationen geholt werden sollen.Standardwert ist 'INBOX'. Bei POP3-Verbindungen ist nurdieser Wert möglich, bei 'IMAP' sind auch andere Foldermöglich

delete true oder false, bei true wird die Email nach demDownload gelöscht.

message-�lter spezifiziert welche Arten von Nachrichtenheruntergeladen werden sollen. Mögliche Werte sind:"read" , "unread", and "all" (dh. read und unread).Standardwert ist "all".

from Startindex-Wert, ab dem die Nachrichten geladen werdensollen. Standardwert ist 1. Die älteste Nachricht hatIndex 1, die zweitälteste den Index 2, etc. Die neuesteNachricht kann auch mit Index -1, die zweitneueste mit -2etc. referenziert werden.

to Der Index der letzten Nachricht, die abgeholt werden soll.Standardwert ist der Index der letzen Nachricht. Dieälteste Nachricht hat Index 1, die zweitälteste den Index2, etc. Die neueste Nachricht kann auch mit Index -1, diezweitneueste mit -2 etc. referenziert werden.

idx Index der Nachricht, die abgeholt werden soll. Wirdeine Index gesetzt, werden die Attribute from und toautomatisch auf diesen Wert gesetzt.

message-id Message-ID der Nachricht, die abgeholt werden soll

move-to Name des IMAP-Folders, in den die Nachricht abgelegtwerden soll. In Kombination mit dem Attribut delete gibtes folgende Möglichkeiten: bei delete=true wird die Emailin diesen Folder verschoben, bei delete=false wird dieEmail kopiert.

Etixpert Consulting GmbH, Zagreus 1.3

8.2 Email 131

fetch-content true oder false, beitt false wird nur der Nachrichten-Header abgefragt.Der Body und die Attachments werden nicht abgefragt.Standardwert ist true.

Ergebnis:

Hinweis:Das Ergebis dieser Action ist eine Liste von Nachrichten.Wird das Attribute idx verwendet, wird die Nachricht selbstzurückgeliefert. Der Nachrichten-Record besteht aus denfolgenden Feldern:

• from: der Absender der Email

• to: der Empfänger der Email

cc CC-Email-Adresse

bcc BCC-Email-Adresse

date Datum des Email-Versands

• reply_to: Reply-to Feld der Email

• subject: Betreff

• body: Email-Body

• attachments: Liste von Anhängen. Dieses Feld existiertnur dann, wenn es Attachments gibt.

Die Liste der Attachments enthält die Informationen zu deneinzelnen Anhängen mit den folgenden Feldern:

• name: Name des Anhangs

• content_type: content-type des Anhangs

• content: Inhalt des Anhangs

Ergebnisattribute:• messages: Anzahl der abgefragten Mails

• read: Anzahl der gelesenen Mails

unread Anzahl der ungelesenen Mails

excecution_time Ausführungszeit

Exceptions:Mail

Beispiele:Tutorial: Email/Script 06 GetMsg

Etixpert Consulting GmbH, Zagreus 1.3

132 Actions - Standardfunktionen

xml-Code:<mail:getinfo

connection-name="pop3"

folder="INBOX"

result-attributes="msg"

/>

<z:variable name="x" >${number(msg.messages)}</z:variable>

<z:while test-expr="x&gt;=1">

<mail:getmsg

connection-name="pop3"

folder="INBOX"

from=""

to=""

idx="$x"

message-id=""

delete="false"

message-filter="all"

attachments="true"

alias="email"

/>

<z:text>${x:=x-1}</z:text>

<z:log>from: ${email.from}</z:log>

<z:if test-expr="email.attachments">

<z:then>

<z:foreach key="attach">

<z:in>${email.attachments}</z:in>

<z:log>name=${attach.name}, content-type=${attach.content_type}</z:log>

<z:block

output="/groups/public/&lt;-filesystem-&gt;/${attach.name}">${attach.content}

</z:block>

</z:foreach>

</z:then>

</z:if>

</z:while>

Etixpert Consulting GmbH, Zagreus 1.3

8.3 File 133

8.3 File

Mit den File-Actions können folgende Dateifunktionen abgebildetwerden:

• Kopieren einer Datei

• Löschen einer Datei

• Anlegen eines Verzeichnisses

• Datei auf Existenz prüfen

• Datei verschieben

• Datei einlesen

• Datei schreiben

• Datei zeilenweise lesen

Zagreus kann einerseits auf Objekte in der Metadatenbank als auchauf Dateien am Filesystem des Servers zugreifen.

8.3.1 �le:close

Schlieÿt eine Datei-Verbindung. Normalerweise werden alleVerbindungen geschlossen, wenn die Action beendet ist in der siedefiniert ist. Mit dieser Action ist es möglich, die Verbindungselbständig zu beenden. Die Verbindung wird bei Bedarf wiederautomatisch geöffnet.

Parameter:connection-name Name der Verbindung

Exceptions:FileNotFound

File

8.3.2 �le:connection

Spezifiziert eine Connection zu einer Datei. Damit muss fürLese/Schreiboperationen die Datei nicht immer wieder geöffnetund geschlossen werden. Das führt zu einer wesentlichenPerformanceverbesserung.

Etixpert Consulting GmbH, Zagreus 1.3

134 Actions - Standardfunktionen

Parameter:name Name der Connection

�lename Dateiname

mode Zugriffsart. Mögliche Werte sind read, write, append.Standardwert ist read.

Ergebnisattribute:• filename Dateiname

• mode Zugriffsart

Exceptions:FileNotFound

File

Beispiel:Tutorial: File/Script 08 - File Readline

8.3.3 �le:copy

Kopiert ein Objekt oder eine Datei. Funktioniert nur amFilesystem! Für Kopien in den Metadaten ist es derzeit nichtgeeignet.

Parameter:from Quelldatei

to Zieldatei

Exceptions:FileNotFound

File

Beispiel:Tutorial: File/Script 01 - File Copy

8.3.4 �le:delete

Löscht ein Objekt bzw. eine Datei.

Parameter:�lename Dateiname

Exceptions:FileNotFound

File

Beispiel:Tutorial: File/Script 02 - File Delete

Etixpert Consulting GmbH, Zagreus 1.3

8.3 File 135

8.3.5 �le:dir

Listet den Inhalt eines Verzeichnisse auf. Der Ergebnis wird inein Array geschrieben.

Parameter:path Verzeichnisname

Exceptions:FileNotFound

File

Beispiel:Tutorial: File/Script 03 - File Dir

8.3.6 �le:eof

Testet eine File-Connection, ob das Ende bereits erreicht ist.Liefert true zurück, wenn das das Dateiende erreicht ist, sonstfalse.

Parameter:name Name der Verbindung

Exceptions:File

Beispiel:Tutorial: File/Script 08 - File Readline

8.3.7 �le:exist

Liefert true zurück, wenn das angegebene Objekt bzw. die Dateiexistiert.

Parameter:�lename Dateiname

Exceptions:File

Beispiel:Tutorial: File/Script 04 - File Exists

Etixpert Consulting GmbH, Zagreus 1.3

136 Actions - Standardfunktionen

8.3.8 �le:move

Verschiebt ein Objekt bzw. eine Datei.

Parameter:from Quelldatei

to Zieldatei

Exceptions:FileNotFound

File

Beispiel:Tutorial: File/Script 05 - File Move

8.3.9 �le:neof

Testet eine File-Connection, ob das Ende bereits erreicht ist.Liefert true zurück, wenn das Dateiende noch nicht erreicht ist,sonst false.

Parameter:name Name der Verbindung

Exceptions:File

Beispiel:Tutorial: File/Script 08 - File Readline

8.3.10 �le:read

Liest den Inhalt einer Datei.

Parameter:�lename Dateiname

binary Mögliche Werte: true oder false. Bei true wirddas Objekt als Binärfile betrachtet, dh. dienewline-character werden nicht verändert. Standardwertist false.

Ergebnisattribute:• lines Anzahl der eingelesenen Zeilen

Etixpert Consulting GmbH, Zagreus 1.3

8.3 File 137

Exceptions:FileNotFound

File

Beispiel:Tutorial: File/Script 06 - File Read

8.3.11 �le:readline

Liest eine Zeile eines Textfiles und verschiebt den Zeilenpointerum eine Zeile.

Parameter:name Name der Verbindung

Ergebnisattribute:• length Länge der eingelesenen Zeile

Exceptions:File

Beispiel:Tutorial: File/Script 08 - File Readline

8.3.12 �le:write

Schreibt den Inhalt der Kindelemente in eine Datei. Die Dateikann über eine Connection oder den Dateinamen angesprochenwerden. Die Connection hat den Vorteil, dass die Datei nureinmal aufgemacht wird. Beim Verlassen der Container-Ebenewird sie automatisch geschlossen. Beim Schreiben mittels append

funktioniert es nur am Filesystem! Für Dateien in den Metadatenist es derzeit nicht geeignet!

Parameter:connection-name Name der Verbindung

�lename Dateiname

append Mögliche Werte: true oder false. Bei true wird an dieDatei angehängt. Das macht aber nur bei Textdateien Sinn.Bei false wird die Datei überschrieben.

Exceptions:FileWriting

File

Beispiel:Tutorial: File/Script 07 - File Write

Etixpert Consulting GmbH, Zagreus 1.3

138 Actions - Standardfunktionen

8.4 FTP

Zagreus kann Dateien von einem FTP-Server lesen, bzw. auf einenFTP-Server ablegen.

8.4.1 ftp:cd

Ändert das aktuelle Verzeichnis am FTP-Server. Die Actionsftp:mput und ftp:mget verwenden diesen Folder.

Parameter:connection-name Name der FTP-Verbindung

folder Verzeichnis, in das gewechselt werden soll

Exceptions:FTP

Beispiel:Tutorial: Ftp/Script 02 - FTP

xml-Code:<ftp:cd

connection-name="win2003"

folder="test"/>

8.4.2 ftp:close

Schlieÿt eine FTP-Verbindung. Normalerweise werden alleVerbindungen geschlossen, wenn die Action beendet ist in der siedefiniert ist. Mit dieser Action ist es möglich, die Verbindungselbständig zu beenden. Die Verbindung wird bei Bedarf wiederautomatisch geöffnet.

Parameter:connection-name Name der Verbindung

Exceptions:FTP

8.4.3 ftp:connection

Definiert die Verbindung zum FTP-Server.

Etixpert Consulting GmbH, Zagreus 1.3

8.4 FTP 139

Parameter:name Name der Verbindung

server FTP-Server oder IP-Adresse (Erforderlich)

port Port des FTP-Servers (Optional)

user Benutzername, falls Authentifizierung notwendig ist(Optional)

password Passwort für den angegebenen Benutzer (Optional)

cpassword Verschlüsseltes Passwort (Optional)

path Pfad, der nach dem Verbindungsaufbau geöffnet wird(Optional)

keepalive-timeout Durch die Angabe eines Wertes inMillisekunden, wird nach dieser Zeitspanne ein Signal zumFTP-Server geschickt, um die Verbindung offen zu halten.Damit wird verhindert, daÿ der FTP-Server die Verbindungdurch einen Timeout beendet.

proxy-address" Proxy Server (Optional)

proxy-port" Proxy Port (Optional )

proxy-user" Proxy Server Benutzername (Optional)

proxy-password" Proxy Server Passwort (Optional)

proxy-cpassword" Proxy Server verschlüsseltes Passwort(Optional)

proxy-type" Proxy Server Typ (Optional) Mögliche Werte sind:

• none

• SITE remotehost

• USER user@remotehost

• USER proxyuser@remotehost

• USER user@remotehost proxyuser

• USER user@proxyuser@remotehost

Ergebnisattribute:• server Domain

• port Port

• user Benutzername

• proxy-user Proxy Server Benutzername

Beispiel:Tutorial: Connections/FTP

Etixpert Consulting GmbH, Zagreus 1.3

140 Actions - Standardfunktionen

xml-Code:<ftp:connection

name="win2003"

server="192.168.1.91"

port="1121"

user="zagreus"

password="zagreus"

cpassword=""

proxy-address=""

proxy-port=""

proxy-user=""

proxy-password=""

proxy-cpassword=""

proxy-type=""

path=""/>

8.4.4 ftp:delete

Löscht ein File im aktuelle Verzeichnis am FTP-Server.

Parameter:connection-name Name der FTP-Verbindung

�lename Dateiname

Exceptions:FTP

Beispiel:Tutorial: Ftp/Script 02 - FTP

xml-Code:<ftp:delete

connection-name="win2003"

filename="logo*.jpg"/>

8.4.5 ftp:dir

Listed den Inhalt des aktuellen Verzeichnisses am FTP-Server.

Parameter:connection-name Name der FTP-Verbindung

�lename Filterausdruck der Wildcards (*) enthalten kann.

Exceptions:FTP

Beispiel:Tutorial: Ftp/Script 02 - FTP

Etixpert Consulting GmbH, Zagreus 1.3

8.4 FTP 141

xml-Code:<z:log>

<ftp:dir

connection-name="win2003"

filename="*"/>

</z:log>

8.4.6 ftp:get

Holt eine Datei von einem FTP-Server.

Parameter:connection-name Name der FTP-Verbindung

�lename Dateiname

binary Bei true wird die Datei als Binärfile behandelt, dh.die newline character werden nicht ersetzt. Standardwertist false.

Exceptions:FTP

Beispiel:Tutorial: Ftp/Script 01 - FTP Up- and Download

xml-Code:<ftp:get

connection-name="win2003"

filename="ftp/logo.jpg"

binary="true"

output="/groups/public/Tutorial/Ftp/logo.jpg"/>

8.4.7 ftp:lcd

Ändert das lokale Verzeichnis am Zagreus-Server. Die Actionsftp:mput und ftp:mget verwenden diesen Folder.

Parameter:connection-name Name der FTP-Verbindung

folder Verzeichnis, in das gewechselt werden soll

Exceptions:FTP

Beispiel:Tutorial: Ftp/Script 02 - FTP

Etixpert Consulting GmbH, Zagreus 1.3

142 Actions - Standardfunktionen

xml-Code:<ftp:lcd

connection-name="win2003"

folder="/groups/public/Tutorial/Ftp"/>

8.4.8 ftp:md

Legt ein neues Verzeichnis am FTP-Server an.

Parameter:connection-name Name der FTP-Verbindung

folder Verzeichnis, in das gewechselt werden soll

Exceptions:FTP

Beispiel:Tutorial: Ftp/Script 02 - FTP

xml-Code:<ftp:md

connection-name="win2003"

folder="test"/>

8.4.9 ftp:mget

Holt mehrere Dateien vom FTP-Server.

Parameter:connection-name Name der FTP-Verbindung

from Filter für Dateinamen, Wildcards (*,?) können verwendetwerden.

to Lokales Verzeichnis, in das kopiert werden soll.

binary Bei true wird die Datei als Binärfile behandelt, dh.die newline character werden nicht ersetzt. Standardwertist false.

Exceptions:FTP

Beispiel:Tutorial: Ftp/Script 02 - FTP

xml-Code:<ftp:mget

connection-name="win2003"

from="*jpg"

to=""

binary="true"/>

Etixpert Consulting GmbH, Zagreus 1.3

8.4 FTP 143

8.4.10 ftp:mput

Kopiert mehrere Dateien auf den FTP-Server.

Parameter:connection-name Name der FTP-Verbindung

from Filter für Dateinamen, Wildcards (*,?) können verwendetwerden (am lokalen Zagreus-Server).

to Verzeichnis am FTP-Server, in das kopiert werden soll.

binary Bei true wird die Datei als Binärfile behandelt, dh.die newline character werden nicht ersetzt. Standardwertist false.

Exceptions:FTP

Beispiel:Tutorial: Ftp/Script 02 - FTP

xml-Code:<ftp:mput

connection-name="win2003"

from="*jpg"

to=""

binary="true"/>

8.4.11 ftp:put

Legt eine Datei am angegebenen FTP-Server ab. Das Attriutefilename legt dabei den Dateiname am FTP-Server fest.

Parameters:connection-name Name der FTP-Verbindung

�lename Dateiname, des abzulegenden Files

binary Bei true wird die Datei als Binärfile behandelt, dh.die newline character werden nicht ersetzt. Standardwertist false.

Exceptions:FTP

Beispiel:Tutorial: Ftp/Script 01 - FTP Up- and Download

Etixpert Consulting GmbH, Zagreus 1.3

144 Actions - Standardfunktionen

xml-Code:<ftp:put

connection-name="win2003"

filename="ftp/logo1.jpg">

<file:read

filename="/groups/public/Tutorial/Ftp/logo.jpg"

binary="true"/>

</ftp:put>

8.4.12 ftp:rename

Benennt eine Datei am FTP-Server um.

Parameter:connection-name Name der FTP-Verbindung

from Datei, die umbenannt werden soll

to Neuer Dateiname

Exceptions:FTP

Beispiel:Tutorial: Ftp/Script 02 - FTP

xml-Code:<ftp:rename

connection-name="win2003"

from="logo.jpg"

to="logo1.jpg"/>

Etixpert Consulting GmbH, Zagreus 1.3

8.5 Datenbank 145

8.5 Datenbank

Zagreus kann über eine JDBC/ODBC-Verbindung auf Datenbankenzugreifen. Mittels der db:sql Action kann ein beliebigesSQL-Statement ausgeführt werden.

8.5.1 db:begin

Startet eine neue Datenbank-Transaktion. Bis zum nächstendb:commit oder db:rollback wird autocommit auf false gesetzt.Geht die Datenbanktransaktion aus irgendeinem Grund schief, wirdspätestens beim automatischen Schlieÿen der Verbindung am Endedes Scripts das Rollback durchgeführt.

Parameters:connection-name Name der Verbindung

Exceptions:DB

Beispiel:Tutorial: Database/Script 03 - Database

xml-Code:<db:begin connection-name="sqlserver"/>

8.5.2 db:call

Führt eine Stored-Procedure aus. Stored-Procedures können nichtmit db:sql ausgeführt werden!

Parameter:connection-name Name der Verbindung

Exceptions:DB

Beispiel:Tutorial: Database/Script 02 Database

xml-Code:<db:call connection-name="oracle" _v="0" _w="-1" _h="-1">

<db:param id="1" type="varchar" name="result" _v="0" _w="-1" _h="-1"/>

<z:text _v="0" _w="-1" _h="-1">testprocedure3('test',?)</z:text>

</db:call>

<z:log _v="0" _w="-1" _h="-1">$db_call, ${db_call.result}</z:log>

Etixpert Consulting GmbH, Zagreus 1.3

146 Actions - Standardfunktionen

8.5.2.1 db:param

Parameter:param registriert einen Rückgabeparameter für den Aufruf der

Stored Procedure.

Parameter:id Index des Rückgabeparameters

type Datentyp des Parameters, einige Datbenbanken verlangedie explizite Angabe des Typs. Mögliche Werte sind:

• bigint

• binary

• bit

• blob

• boolean

• clob

• char

• date

• decimal

• double

• float

• integer

• longvarbinary

• longvarchar

• numeric

• real

• smallint

• time

• timestamp

• tinyint

• varbinary

• varchar

name Name der Variable, die den Rückgabewert enthält. DieRückgabewerte werden mit ? im Prozeduraufruf angegeben.Der Rückgabewert wird als Ergebnisattribut von db:call

zurückgegeben. Der angegeben Name wird dann für dieseErgebnisattribut verwendet.

Exceptions:DB

Beispiel:Tutorial: Database/Script 02 - Database

Etixpert Consulting GmbH, Zagreus 1.3

8.5 Datenbank 147

8.5.3 db:close

Schlieÿt eine Datenbank-Verbindung. Normalerweise werden alleVerbindungen geschlossen, wenn die Action beendet ist in der siedefiniert ist. Mit dieser Action ist es möglich, die Verbindungselbständig zu beenden. Die Verbindung wird bei Bedarf wiederautomatisch geöffnet.

Parameter:connection-name Name der Verbindung

Exceptions:DB

8.5.4 db:commit

Sendet commit für die Änderungen und setzt autocommit wiederzurück.

Parameters:connection-name Name der Verbindung

Exceptions:DB

Beispiel:Tutorial: Database/Script 03 - Database

xml-Code:<db:commit connection-name="sqlserver"/>

8.5.5 db:jdbc-connection

Definiert eine JDBC-Verbindung.

Parameter:name Name der Verbindung

domain Domain-Name im Connection.String (Erforderlich)

driver Java class name des JDBC-Treiber (Erforderlich)

server Server-Name oder IP-Adresse. (Erforderlich)

port Port des Datenbankservers (Optional)

user Benutzername, falls Authentifizerung notwendig ist(Optional)

Etixpert Consulting GmbH, Zagreus 1.3

148 Actions - Standardfunktionen

password Passwort für die angegebenen Benutzer (Optional)

cpassword Verschlüsseltes Passwort (Optional)

database Datenbankname (Optional)

autocommit: spezifiziert das Commit-Verhalten nach jedereinzelnen db:sql Anweisung (Optional), Standardwert isttrue.

null-value: ersetzt Null-Werte einer SQL-Abfrage durch denangegeben Wert (Optional).

date-format: spezifiziert das Ausgabeformatfür Datumswerte (Optional). Es wird dieStandard JAVA-Formatierung verwendet (siehehttp://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html).

number-format: spezifiziert das Ausgabeformatvon Zahlenwerten (Optional). Es wird dieStandard JAVA-Formatierung verwendet (siehehttp://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html).

Ergebnisattribute:• domain Domain

• driver JDBC-Treiber

• server Datenbankserver

• port Port

• user Benutzername

• db Datenbank

Beispiel:Tutorial: Connections/DATABASE - JDBC - Northwind

8.5.6 db:odbc-connection

Definiert eine ODBC-Verbindung.

Parameter:name Name der Verbindung

dsn ODBC Data Source Name (Erforderlich)

user Benutzername, falls Authentifizerung notwendig ist(Optional)

password Passwort für die angegebenen Benutzer (Optional)

cpassword Verschlüsseltes Passwort (Optional)

database Datenbankname (Optional)

Etixpert Consulting GmbH, Zagreus 1.3

8.5 Datenbank 149

autocommit: spezifiziert das Commit-Verhalten nach jedereinzelnen db:sql Anweisung (Optional), Standardwert isttrue.

null-value: ersetzt Null-Werte einer SQL-Abfrage durch denangegeben Wert (Optional).

date-format: spezifiziert das Ausgabeformatfür Datumswerte (Optional). Es wird dieStandard JAVA-Formatierung verwendet (siehehttp://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html).

number-format: spezifiziert das Ausgabeformatvon Zahlenwerten (Optional). Es wird dieStandard JAVA-Formatierung verwendet (siehehttp://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html).

Ergebnisattribute:• domain Domain

• driver ODBC-Treiber

• dsn ODBC Data Source Name

• db Datenbankname

Beispiel:Tutorial: Connections/DATABASE - ODBC - Northwind

8.5.7 db:rollback

Löscht die Änderungen der Transaktion wieder und setzt autocommit

wieder zurück.

Parameters:connection-name Name der Verbindung

Exceptions:DB

Beispiel:Tutorial: Database/Script 03 - Database

xml-Code:<db:rollback connection-name="sqlserver"/>

Etixpert Consulting GmbH, Zagreus 1.3

150 Actions - Standardfunktionen

8.5.8 db:sql

Führt ein SQl-Statement aus. Es darf immer nur ein Statementangegeben werden! Ausnahme: Es ist möglich mehrereInsert-Statements einzugeben (jedes Statement in einer neuenZeile).

Parameters:connection-name Name der Verbindung

Ergebnisattribute:• rowcnt Enthält die Anzahl der betroffen Zeilen beiSelect/Insert/Delete-Statements

Exceptions:DB

Beispiel:Tutorial: Database/Script 01 - Database

8.5.8.1 db:param

Parameter:param registriert einen Eingabeparameter für den Aufruf

eines SQL-Statements. Hauptsächlich für die Übergabe vonCLOB und BLOB.

Parameter:id Index des Eingabeparameters

type Datentyp des Parameters, einige Datbenbanken verlangedie explizite Angabe des Typs. Mögliche Werte sind:

• bigint

• binary

• bit

• blob

• boolean

• clob

• char

• date

• decimal

• double

• float

• integer

• longvarbinary

Etixpert Consulting GmbH, Zagreus 1.3

8.5 Datenbank 151

• longvarchar

• numeric

• real

• smallint

• time

• timestamp

• tinyint

• varbinary

• varchar

name bleibt leer. dieser Parameter wird nur fürRückgabewerte von Stored Procedures verwendet.

Exceptions:DB

Beispiel:Tutorial: Database/Script 04 - Database CLOB

Etixpert Consulting GmbH, Zagreus 1.3

152 Actions - Standardfunktionen

8.6 FOP

Wendet den Apache xsl:fo Prozessor auf ein Formatted-ObjectsXML-File an, um eine PDF-, PS- bzw. RTF-Datei zu erzeugen. AlsKind-Element kann direkt ein FO-File geladen werden, bzw. miteiner xslt:transform-Action erzeugt werden.

Parameter:target FOP-Prozessor Ausgabeformat, mögliche Werte sind pdf,

ps, rtf. Der Standardwert ist pdf.

Exceptions:FOP

Beispiel:Tutorial: FOP/Script 01 - FOP

Etixpert Consulting GmbH, Zagreus 1.3

8.7 XSL-Transformation 153

8.7 XSL-Transformation

8.7.1 xslt:transform

Transformiert XML mithilfe des angegebenen XSLT-Files.

Parameter:xsl Name des XSLT-Files

merging Mögliche Werte sind true und false. Bei true werdenmehree Quellfiles in eine einheitliche XML-Strukturgebracht. Es besteht aber auch die Möglichkeit, selbsteine XML-Strukur über text-Elemente zu definieren.

Hinweis:Folgende Struktur wirde bei mehreren Files (merging=true)automatisch angelegt:

<files>

<file id="1">...first source ...</file>

<file id="2">...second source ...</file>

...

<file id="n">...n-th source ...</file>

</files>

Exceptions:XSLT

Beispiel:Tutorial: XSLT/Script 01 - Xslt

8.7.1.1 xslt:param

Parameter:param Parameter für die XSLT-Transformation. Der Wert wird

als Text des Containers eingegeben.

Exceptions:XSLT

Beispiel:Tutorial: XSLT/Script 02 - Xslt

8.7.2 xslt:query

Führt eine XQUERY-XSLT Transformation durch. XQUERY wurdezum Abfragen von XML-Daten entwickelt, entspricht daher einerSQL-Abfrage für eine Datenbank.

Etixpert Consulting GmbH, Zagreus 1.3

154 Actions - Standardfunktionen

Parameter:xquery XQUERY-Ausdruck

omit-xml-declaration true oder false. Standardwert ist true.

Exceptions:XSLT

Beispiel:Tutorial: XSLT/Script 03 - Xslt - Xquery

xml-Code<z:variable name="xml">

<table>

<tr><th>ID</th><th>NAME</th></tr>

<tr><td>2</td><td>Condiments</td></tr>

<tr><td>3</td><td>Confections</td></tr>

<tr><td>4</td><td>Dairy Products</td></tr>

<tr><td>5</td><td>Grains/Cereals</td></tr>

<tr><td>6</td><td>Meat/Poultry</td></tr>

<tr><td>7</td><td>Produce</td></tr>

<tr><td>8</td><td>Seafood</td></tr>

</table>

</z:variable>

<xslt:query

xquery="data(/table/tr[2]/td[1])"

alias="res">$xml

</xslt:query>

<z:log _x="43" _y="366" _w="105" _h="91" _v="0" _z="2" _s="false">$res</z:log>

<z:log _x="260" _y="207" _w="257" _h="177" _v="0" _z="3" _s="false">

<xslt:query

xquery="for $$x in //td[2] return data($$x)"

omit-xml-declaration="true">

$xml

</xslt:query>

</z:log>

Etixpert Consulting GmbH, Zagreus 1.3

8.8 HTTP 155

8.8 HTTP

Für das Lesen von Daten von Web-Servern stehen die Actionshttp:connection und http:get zur Verfügung.

8.8.1 http:connection

Definiert eine Verbindung zu einem Web-Server

Parameter:name Name der Verbindung

server Http-Server oder IP-Adresse (Erforderlich)

port Port des Web-Servers (Optional)

user Benutzername, falls Authentifizierung notwendig ist(Optional)

password Passwort für den angegebenen Benutzer (Optional)

cpassword Verschlüsseltes Passwort (Optional)

path Präfix für alle Get-Anforderungen (Optional)

proxy Proxy-Server (Optional)

Beispiel:Tutorial: Connections/HTTP Etixpert

8.8.2 http:get

Setzt einen Get-Request auf die angegebene Http-Verbindung ab.

Parameter:connection-name Name der Http-Verbindung

request GET-Anforderung (dh. welche Seite soll abgefragtwerden)

Exceptions:HTTP

Beispiel:Tutorial: Http/Script 01 - Http Etixpert Homepage

Etixpert Consulting GmbH, Zagreus 1.3

156 Actions - Standardfunktionen

8.8.3 http:post

Setzt einen Post-Request auf die angegebene Http-Verbindung ab.Der Inhalt der Action wird dabei an die Web-Site übermittelt.

Parameter:connection-name Name der Http-Verbindung

request Post-Anforderung (dh. welche Seite soll aufgerufenwerden)

Exceptions:HTTP

Etixpert Consulting GmbH, Zagreus 1.3

8.9 ZIP 157

8.9 ZIP

8.9.1 zip:dir

Liest den Inhalt eines gezippten Files.

Parameter:�lename Dateiname

path Dateipräfix (normalerweise der Pfad)

Exceptions:Zip

Beispiel:Tutorial: ZIP/Script 01 - Zip

xml-Code:<z:log>

<zip:dir filename="/groups/public/Tutorial/Zip/data.zip" path=""/>

</z:log>

8.9.2 zip:�le

Legt ein Zip-File an. Alle item-Kindelemente werden in diesesFile gepackt.

Parameter:

Kindelemente:zip:item

Exceptions:Zip

Beispiel:Tutorial: ZIP/Script 02 - Zip

xml-Code:<zip:file output="/groups/public/Tutorial/Zip/data.zip">

<zip:item filename="data.txt">

<file:read filename="/groups/public/Tutorial/File/data.txt" binary="false"/>

</zip:item>

<zip:item filename="data1.txt">

<file:read filename="/groups/public/Tutorial/File/data.txt" binary="false"/>

</zip:item>

</zip:file>

Etixpert Consulting GmbH, Zagreus 1.3

158 Actions - Standardfunktionen

8.9.2.1 zip:item

Spezifiziert die Datei, die in das Zip-File gepackt werdensoll. Specifies an item to packed into a zip file. Gepackt wirdder Inhal dieses Elements. Es muss daher eventuell noch einefile:read-Action verwendet werden.

Parameter:�lename Dateiname im Zip-File

Beispiel:Tutorial: ZIP/Script 02 - Zip

8.9.3 zip:read

Extrahiert eine Datei aus einer Zip-Datei.

Parameter:�lename Name des Zip-Files

path Pfad des zu entpackenden Files

binary bei true wird die entpackte Datei als binäre Dateiinterpretiert.

Exceptions:Zip

Beispiel:Tutorial: ZIP/Script 03 - Zip

xml-Code:<zip:read

filename="/groups/public/Tutorial/Zip/data.zip"

path="data.txt"

binary="false"

output="/groups/public/Tutorial/Zip/data_extracted.txt"'

/>

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 159

8.10 Zagreus Server

Die Zagreus Server-Actions erlauben es, Scripts auf einemanderen Server auszuführen, zu kopieren, etc. Damit könnenmehrere Zagreus-Server von einem Zagreus-Server ferngesteuertwerden. Die Kommunikation zwischen den Zagreus Servern kann überPublic/Private Keys verschlüsselt werden. Folgende Funktionenstehen zur Verfügung:

• zs:connection: definiert die Verbindung zu einem ZagreusServer

• zs:copy: kopiert ein Script von einem Zagreus-Server auf denanderen

• zs:createevent: legt einen neuen Eventschedule an

• zs:createresource: legt eine beliebiges Zagreus-Objekt an

• zs:createschedule: legt einen neuen Timeschedule an

• zs:createscript: legt ein neues Script an

• zs:delete: löscht ein Script auf einem Zagreus-Server

• zs:getschedules: listet alle Schedules eines Zagreus-Servers

• zs:getresource: holt ein Zagreus-Objekt von einemZagreus-Server

• zs:getserverinfo: listet Information über den aktuellenServerzustand (Anzahl wartender Jobs, Anzahl geradeausgeführter Jobs, etc.)

• zs:getvariable: liest Variablen auf User-, Gruppen-, Scriptund Jobebene

• zs:jobinfo: liefert die Information aus der Finished-JobTabelle für einen Job

• zs:joblist: filtert die Finished-Job Tabelle

• zs:list: liefert die Kind-Elemente einer Resource

• zs:move: verschiebt oder benennt ein Script um

• zs:option: setzt Parameter für Scripts

• zs:resourceinfo: liefert die Objektinfo (id, name, path,etc.)

Etixpert Consulting GmbH, Zagreus 1.3

160 Actions - Standardfunktionen

• zs:runscript: startet ein Script, Parameter können gesetztwerden, Return-Werte können abgefragt werden. Damit kanndirekt auf ein Resultat eines Scripts reagiert werden.

• zs:schedule: hängt ein Script an einen Schedule

• zs:servercontrol: führt eine Zagreus-Server-Command aus

• zs:setcurrent: setzt die aktuelle Version einesZagreus-Objekts

• zs:setvariable: setzt Variablen auf User-, Gruppen-, Scriptund Jobebene

• zs:unschedule: entfernt ein Script von einem Schedule

• zs:variable: ???

• zs:wait: wartet bis ein Job auf einem anderen Zagreus-Serverfertig ist

8.10.1 zs:connection

Definiert die Verbindung zu einem Zagreus Server. DieseVerbindung kann in allen ZS-Actions verwendet werden. Wird ineiner ZS-Action keine Verbindung angegeben, wird automatisch deraufrufende Zagreus-Server als ausführender Server angenommen.

Parameter:name Name der Verbindung

server Zagreus-Server oder IP-Adresse (Erforderlich)

port Port des Zagreus-Servers

user Benutzername

password Passwort für den angegebenen Benutzer

cpassword Verschlüsseltes Passwort

secure Bei true wird eine verschlüsselte Verbindung (https)für die Kommunikation zwischen den beiden Servernverwendet.

Ergebnisattribute:• server Server

• port Port

• user Benutzername

• secure Secure-Connection (true oder false)

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 161

Exceptions:ZS

Beispiel:Tutorial: Connections/Zagreus - Server

xml-Code:<zs:connection

name="Zagreus"

server="localhost"

port="7323"

user="admin"

assword=""

cpassword=""

secure="false"/>

8.10.2 zs:copy

Kopiert ein Zagreus-Objekt von einem Zagreus-Server auf einenanderen. Der normale Output der Action ist die Resource-Id desneuen Objekts.

Parameter:connection-name Name der Verbindung

source-id Quellobjekt-ID

source-name Quellobjekt-Name und Pfad, wird nur beim Fehleneiner source-id verwendet.

folder-id ID es Verzeichnisses in das kopiert werden soll

folder-name Pfad des Zielverzeichnisses, wird nur beim Fehleneiner folder-id verwendet.

target-name Name der Kopie

copy-parameters bei true werden auch die Variablen undanderen Scriptparameter mitkopiert. Standardwert istfalse.

overwrite existiert im Zielverzeichnis schon ein Objektmit diesem Namen, dann kann mit diesem Attribut dieweitere Vorgangsweise defniert werden. Bei true wirddas vorhanden Objekt überschrieben. Bei false wird keineKopie erstellt. Wird eine andere Zeichenkette verwendetz.B. Kopie von , dann wird diese Zeichenkette am Beginndes neuen Namens gestellt. Gibt es diesen Objektname auchschon, wird ein Zähler an das Ende des Namens gestellt.

all-versions Bei true werden alle Versionen kopiert. true istauch der Sandardwert.

Etixpert Consulting GmbH, Zagreus 1.3

162 Actions - Standardfunktionen

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 01 - Copy

xml-Code:<zs:copy

connection-name=""

source-name="/public/Tutorial/ZS/Script 01 - Copy"

source-id=""

folder-name=""

folder-id="00939846323f4d8ebb7a8d83be544427"

target-name="Kopie"

copy-parameters="true"

overwrite="Copy of"

all-versions="true"

/>

8.10.3 zs:createevent

Legt einen neuen Eventschedule an. Der normale Output der Actionist die Resource-Id des neuen Events. Exisitert der Event schonim Zielverzeichnis, wird er überschrieben.

Parameter:connection-name Name der Verbindung

event-name Name des Events

folder-id ID es Verzeichnisses in das der Event erstelltwerden soll

folder-name Pfad des Zielverzeichnisses, wird nur beim Fehleneiner folder-id verwendet.

description Beschreibung für den neuen Event

overwrite existiert im Zielverzeichnis schon ein Objektmit diesem Namen, dann kann mit diesem Attribut dieweitere Vorgangsweise defniert werden. Bei true wirddas vorhanden Objekt überschrieben. Bei false wird keineKopie erstellt. Wird eine andere Zeichenkette verwendetz.B. Kopie von , dann wird diese Zeichenkette am Beginndes neuen Namens gestellt. Gibt es diesen Objektname auchschon, wird ein Zähler an das Ende des Namens gestellt.

Ergebnisattribute:

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 163

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 02 - CreateEvent

xml-Code:<zs:createevent

connection-name="Zagreus"

event-name="Ereignis"

folder-name="/public/Tutorial/ZS"

folder-id=""

description="ich bin ein event"

result-attributes="res"

alias="x"

/>

8.10.4 zs:createresource

Legt eine beliebiges Zagreus-Objekt an. Der normale Output derAction ist die Resource-Id des neuen Objekts. Existiert dasObjekt bereits, wird es überschrieben.

Parameter:connection-name Name der Verbindung

resource-name Name des neuen Objekts

folder-id ID es Verzeichnisses in das das neue Objekt erstelltwerden soll

folder-name Pfad des Zielverzeichnisses, wird nur beim Fehleneiner folder-id verwendet.

description Beschreibung der neuen Resource

type Objekttyp, mögliche Werte sind:

• binary

• connection

• event

• folder

• script

• template

• timeschedule

overwrite existiert im Zielverzeichnis schon ein Objektmit diesem Namen, dann kann mit diesem Attribut dieweitere Vorgangsweise defniert werden. Bei true wirddas vorhanden Objekt überschrieben. Bei false wird keineKopie erstellt. Wird eine andere Zeichenkette verwendet

Etixpert Consulting GmbH, Zagreus 1.3

164 Actions - Standardfunktionen

z.B. Kopie von , dann wird diese Zeichenkette am Beginndes neuen Namens gestellt. Gibt es diesen Objektname auchschon, wird ein Zähler an das Ende des Namens gestellt.

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 03 - CreateResource

xml-Code:<zs:createresource

connection-name=""

resource-name="newscript"

folder-name="/public/Tutorial/ZS"

folder-id=""

type="script"

alias="x">

<file:read filename="id:365e047a59af44009db16aa20ba4085e" binary="false" />

</zs:createresource>

<z:log>$x</z:log>

8.10.5 zs:createschedule

Legt einen neuen Timeschedule an. Wird kein Wert eingegeben,entspricht das einem Every in der GUI-Variante. Der normaleOutput der Action ist die Resource-Id des neuen Objekts.

Parameter:connection-name Name der Verbindung

schedule-name Name des TimeSchedules

folder-id ID es Verzeichnisses in das der neue Zeitplanerstellt werden soll

folder-name Pfad des Zielverzeichnisses, wird nur beim Fehleneiner folder-id verwendet.

description Beschreibung des TimeSchedules

year Jahr

month Monate

day Tag; falls gesetzt, überschreibt es denday-of-week-Parameter

day-of-week Wochentag

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 165

hour Stunde

minute Minute

second Sekunde

overwrite existiert im Zielverzeichnis schon ein Objektmit diesem Namen, dann kann mit diesem Attribut dieweitere Vorgangsweise defniert werden. Bei true wirddas vorhanden Objekt überschrieben. Bei false wird keineKopie erstellt. Wird eine andere Zeichenkette verwendetz.B. Kopie von , dann wird diese Zeichenkette am Beginndes neuen Namens gestellt. Gibt es diesen Objektname auchschon, wird ein Zähler an das Ende des Namens gestellt.

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 04 - CreateSchedule

xml-Code:<zs:createschedule

connection-name=""

schedule-name="Every 6 minutes in August 2009"

folder-name="/public/Tutorial/ZS"

folder-id=""

year="2009"

day-of-week=""

month="8"

day=""

hour=""

minute="0/6"

second=""

alias="x"/>

<z:log>$x</z:log>

8.10.6 zs:createscript

Legt ein neues Script an. Im Unterschied zu zs:createresourcekönnen hier auch Parameter und Variablen definiert werden. Dernormale Output der Action ist die Resource-Id des neuen Objekts.Existiert das Scripts bereits, wird es überschrieben.

Parameter:connection-name Name der Verbindung

script-name Name des neuen Scripts

Etixpert Consulting GmbH, Zagreus 1.3

166 Actions - Standardfunktionen

folder-id ID des Verzeichnisses, in dem das Script erstelltwird

folder-name Pfad des Zielverzeichnisses, wird nur beim Fehleneiner folder-id verwendet.

description Beschreibung des Scripts

overwrite existiert im Zielverzeichnis schon ein Objektmit diesem Namen, dann kann mit diesem Attribut dieweitere Vorgangsweise defniert werden. Bei true wirddas vorhanden Objekt überschrieben. Bei false wird keineKopie erstellt. Wird eine andere Zeichenkette verwendetz.B. Kopie von , dann wird diese Zeichenkette am Beginndes neuen Namens gestellt. Gibt es diesen Objektname auchschon, wird ein Zähler an das Ende des Namens gestellt.

Kindelemente:zs:option

zs:variable

8.10.6.1 zs:option

Definiert einen Parameter für ein Script.

Parameter:name Name der Option (des Parameters)

value Wert

8.10.6.2 zs:variable

Definiert eine Script-Variable.

Parameter:name Name der Variable

value Wert

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 05 - CreateScript

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 167

xml-Code:<zs:createscript

connection-name=""

script-name="testscript1"

folder-name="/admin/013_Tutorial/ZS"

folder-id=""

alias="x">

<zs:option

name="engine.maxrunning"

value="125"

/>

<zs:option

name="script.priority"

value="12"

/>

<zs:variable

name="vari"

value="Zagreus"

/>

<zs:variable

name="fule"

value="automates your IT"

/>

<file:read

filename="id:c5a630001b254944ad91aea4910b9b5a"

binary="false"

/>

</zs:createscript>

<z:log>$x</z:log>

8.10.7 zs:delete

Löscht ein Script auf einem Zagreus-Server.

Parameter:connection-name Name der Verbindung

resource-id ID der zu löschenden Resource

resource-name Pfad und Name der zu löschenden Resource. Wirdnur beim Fehlen einer resource-id verwendet.

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 06 - Delete

xml-Code:<zs:delete

Etixpert Consulting GmbH, Zagreus 1.3

168 Actions - Standardfunktionen

connection-name=""

resource-name=""

resource-id="05be592252ce45c69796cbce5408684c"

/>

8.10.8 zs:getresource

Holt ein Zagreus-Objekt von einem Zagreus-Server.

Parameter:connection-name Name der Verbindung

resource-id ID der Resource

resource-name Pfad und Name der Resource. Wird nur beimFehlen einer resource-id verwendet.

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 08 - GetResource

xml-Code:<zs:getresource

connection-name=""

resource-name="/public/Tutorial/ZS/source.xml"

resource-id=""

output="/public/Tutorial/ZS/xy.xml"

/>

8.10.9 zs:getschedules

Listet alle Schedules auf, an die ein bestimmtes Script angehängtwurde.

Parameter:connection-name Name der Verbindung

schedule-id Schedule-Id

schedule-name Name und Pfad des Schedules

fullpath Bei true wird der komplette Pfad zurückgeliefert, beifalse nur die ID. Standardwert ist true.

Ergebnisattribute:

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 169

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 07 - GetSchedules

xml-Code:<zs:getschedules

connection-name=""

script-name=""

script-id="11fd14cba9b04bbfb3e9d34888bf8bd4"

fullpath="true"

alias="x"

result-attributes="res"

/>

<z:log>$x</z:log>

<z:log>$res</z:log>

8.10.10 zs:getvariable

Liest Variablen auf User-, Gruppen-, Script und Jobebene. Überzs:variable-Subelemente können die Variablen eingeschränktwerden. Wird nichts angegeben, werden alle gesetzten Variablenund Parameter zurückgegeben.

Parameter:connection-name Name der Verbindung

script-id ID der Resource

script-name Pfad und Name der Resource

account-name Benutzername, dessen Variable gelesen werdensoll

account-id Benutzer-ID, dessen Variable gelesen werden soll

Kindelemente:zs:variable

8.10.10.1 zs:variable

Filtert eine bestimmte Script-Variable.

Parameter:name Name der Variable

Ergebnisattribute:

Etixpert Consulting GmbH, Zagreus 1.3

170 Actions - Standardfunktionen

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 09 - GetVariable

xml-Code:<zs:getvariable

connection-name=""

script-name=""

script-id="9de1522056fa46c1958687c78691a63d"

account-name=""

account-id=""

alias="x">

<zs:variable name="vari" value=""/>

</zs:getvariable>

<z:log>$x</z:log>

<zs:getvariable

connection-name=""

script-name=""

script-id=""

account-name="admin2"

account-id=""

alias="x"

/>

<z:log>$x</z:log>

8.10.11 zs:jobinfo

Liefert die Information aus der Finished-Job Tabelle für einenJob.

Parameter:connection-name Name der Verbindung

job-id Job-Id

Ergebnisattribute:• beginexectimeBeginnausführungszeit

• beginqueuetimeBeginn-QueuingTime

• durationDauer

• endexectime Ausführungsendzeit

• endqueuetimeEnde-QueuingTime

• engineIdEngine-Id

• execmodeAufrufmodul

• execpriority Ausführungspriorität

• jobcount Jobzähler

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 171

• jobidJob-Id

• numoflogsAnzahl Log-Zeilen

• resultMessageErgebnisnachricht

• scriptdescScript-Beschreibung

• scriptidScript-Id

• scriptnameScript-Name

• scriptpath Script-Pfad

• startpriorityStartpriorität

• statusScript-Status

• userId Benutzer-Id

• userName Benutzername

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 10 - JobInfo

xml-Code:<zs:jobinfo

connection-name=""

job-id="402881db1b872247011b8eeb58d40169"

alias="x"

/>

<z:log>$x</z:log>

8.10.12 zs:joblist

Liefert die Informationen aus der Active-Job Tabelle für Jobs,die gerade laufen, abgebrochen werden oder auf die Ausführungwarten.

Parameter:connection-name Name der Verbindung

Ergebnisattribute:• rowcnt Anzahl der Zeilen (Anzahl der Jobs)

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 11 - JobList

Etixpert Consulting GmbH, Zagreus 1.3

172 Actions - Standardfunktionen

xml-Code:<zs:joblist

connection-name=""

alias="x"

result-attributes="res"

/>

<z:log>$x</z:log>

<z:log>$res</z:log>

8.10.13 zs:list

Liefert die Kind-Elemente einer Resource.

Parameter:connection-name Name der Verbindung

parent-id Parent-Id

parent-name Pfad des Parents

Ergebnisattribute:• rowcnt Anzahl der Zeilen

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 12 - List

xml-Code:<zs:list

connection-name=""

parent-name=""

parent-id="00939846323f4d8ebb7a8d83be544427"

result-attributes="res"

alias="x"

/>

<z:log>$x</z:log>

<z:log>$res</z:log>

8.10.14 zs:move

Verschiebt oder benennt ein Script um. Es können keine einzelnenVersionen verschoben werden. Wird eine Versionsnummer beimAttribte script-id angegeben, wird trotzdem das Script mit allenVersionen verschoben.

Parameter:connection-name Name der Verbindung

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 173

resource-id Quellobjekt-ID

resource-name Quellobjekt-Name und Pfad, wird nur beimFehlen einer source-id verwendet.

folder-id ID es Verzeichnisses in das kopiert werden soll

folder-name Pfad des Zielverzeichnisses, wird nur beim Fehleneiner folder-id verwendet.

target-name Name der Kopie

overwrite existiert im Zielverzeichnis schon ein Objektmit diesem Namen, dann kann mit diesem Attribut dieweitere Vorgangsweise defniert werden. Bei true wirddas vorhanden Objekt überschrieben. Bei false wird keineKopie erstellt. Wird eine andere Zeichenkette verwendetz.B. Kopie von , dann wird diese Zeichenkette am Beginndes neuen Namens gestellt. Gibt es diesen Objektname auchschon, wird ein Zähler an das Ende des Namens gestellt.

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 13 - Move

xml-Code:<zs:move

connection-name=""

resource-name=""

resource-id="c5a630001b254944ad91aea4910b9b5a"

folder-name=""

folder-id="00939846323f4d8ebb7a8d83be544427"

target-name=""

overwrite=""

alias="x"

result-attributes="res"/>

<z:log>$x</z:log>

<z:log>$res</z:log>

8.10.15 zs:resourceinfo

Liefert die Objektinfo. Der Standardoutput enthält die gleichenDaten, die im Zagreus-Browers für ein Objekt angezeigt werden.

Parameter:connection-name Name der Verbindung

Etixpert Consulting GmbH, Zagreus 1.3

174 Actions - Standardfunktionen

resource-id Quellobjekt-ID

resource-name Quellobjekt-Name und Pfad, wird nur beimFehlen einer resource-id verwendet.

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 14 - ResourceInfo

xml-Code:<z:format

type="ini"

row-separator=""

column-separator=""

header="false"

output="/admin/013_Tutorial/ZS/info.txt">

<zs:resourceinfo

connection-name=""

resource-name=""

resource-id="9b0397205bc14738b8492d497240306e"

/>

</z:format>

8.10.16 zs:runscript

Startet ein Script auf einem Zagreus-Server, dabei könnenParameter und Variablen gesetzt werden. Wird das Script mitasync=true ausgeführt, wird die Job-Id zurückgeben, ansonstender Return-Wert des Scripts.

Parameter:connection-name name of the connection

script-id Script-Id

script-name Script-Name und Pfad, wird nur beim Fehlen einerscript-id verwendet.

async true oder false, soll auf das Ergebnis gewartet werdenoder nicht. Standardwert ist true.

Kindelemente:zs:option

zs:variable

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 175

8.10.16.1 zs:option

Definiert einen Parameter für ein Script.

Parameter:name Name der Option (des Parameters)

value Wert

8.10.16.2 zs:variable

Definiert eine Script-Variable.

Parameter:name Name der Variable

value Wert

Ergebnisattribute:• jobid Job-Id

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 15 - RunScript

xml-Code:<zs:runscript

connection-name=""

script-id="255895317a254b3b95e5194d0f09d607"

script-name=""

async="true"

alias="x"

result-attributes="res">

<zs:variable name="sleep_time" value="2000"/>

</zs:runscript>

<z:log>$x</z:log>

<z:log>$res</z:log>

8.10.17 zs:schedule

Hängt ein Script an einen Schedule.

Parameter:connection-name Name der Verbindung

script-name Pfad und Name des SC

script-id ID des Scripts

Etixpert Consulting GmbH, Zagreus 1.3

176 Actions - Standardfunktionen

schedule-name Pfad und Name des Schedules

schedule-id ID des Schedules

append Bei true wird das Script an den angegeben Schedulegehängt. Ist dieses Script auch bei anderen Scheduleangehängt, wird das nicht geändert. Bei false wirddas Script nur an den spezifizierten Schedule gehängtund etwaige andere Scheduleeinträge werden gelöscht,sodaÿ dieses Script nur an diesem einen Schedule hängt.Standardwert ist true.

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 16 - Schedule

xml-Code:<zs:schedule

connection-name=""

script-name=""

script-id="c5a630001b254944ad91aea4910b9b5a"

schedule-name="/admin/013_Tutorial/every 5 min1"

schedule-id=""

append="false"

/>

8.10.18 zs:servercontrol

Führt ein Zagreus-Server-Command aus, liefert das Ergebnis desCommands als Action-Output zurück.

Parameter:command

• set-enable-queue Schaltet die Job-Queue ein oder aus.Mögliche Werte sind true oder false.

• get-enable-queue Liest den Status der Job-Queue.

• set-enable-schedulerSchaltet den Scheduler ein oderaus. Mögliche Werte sind true oder false.

• get-enable-scheduler Liest den Status des Schedulers

• set-enable-runscript Schaltet die Scriptausführungein oder aus. Mögliche Werte sind true oder false.

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 177

• get-enable-runscriptLiest den Status derScriptausführung.

• set-enable-workerSchaltet eine Execution-Engine einoder aus. Paramter ist ein Array, das die Worker-Idund den Status enthält. Mögliche Werte für den Statussind true oder false.

• get-enable-worker Liest den Status derExecution-Engines.

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 17 - ServerControl

xml-Code:<z:log>

<zs:servercontrol

connection-name=""

command="get-enable-worker">

1

</zs:servercontrol>

</z:log>

<z:log>

<zs:servercontrol

connection-name=""

command="set-enable-worker">

${[1,false]}

</zs:servercontrol>

</z:log>

<z:log>

<zs:servercontrol

connection-name=""

command="get-enable-queue"

/>

</z:log>

<z:log>

<zs:servercontrol

connection-name=""

command="set-enable-queue">

false

</zs:servercontrol>

</z:log>

<z:log>

<zs:servercontrol

connection-name=""

command="get-enable-runscript"

/>

</z:log>

Etixpert Consulting GmbH, Zagreus 1.3

178 Actions - Standardfunktionen

<z:log>

<zs:servercontrol

connection-name=""

command="set-enable-runscript">

false

</zs:servercontrol>

</z:log>

8.10.19 zs:setcurrent

Setzt die aktuelle Version eines Zagreus-Objekts. Wird in derresource-id eine Versionsnummer angegeben und auch im Attributversion, wird immer der letztere verwendet.

Parameter:connection-name Name der Verbindung

resource-id Objekt-Id, hier darf keine Versionsnummereingegeben werden.

resource-name Pfad und Name eines Objekts, wird nur beimFehlen einer resource-id verwendet.

version Versionsnummer

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 18 - SetCurrent

xml-Code:<zs:setcurrent

connection-name=""

resource-id="446562d7759c4fa28b2255875c978911"

resource-name=""

version="1.0.0.1"

/>

8.10.20 zs:setvariable

Setzt Variablen auf User-, Gruppen-, Script und Jobebene.

Parameter:connection-name Name der Verbindung

script-id Script-Id

Etixpert Consulting GmbH, Zagreus 1.3

8.10 Zagreus Server 179

script-name Pfad und Name eines Scripts, wird nur beim Fehleneiner script-id verwendet.

account-id Benutzer-Id

account-name Benutzername, wird nur beim Fehlen eineraccount-id verwendet. Es können Benutzer- und Gruppennameeingegeben werden.

append Bei true wird die neue Variable zu den existierendenangehängt bzw. eine existierende überschrieben, bei falsewerden zuerst die existierenden Variablene gelöscht.

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 19 - SetVariable

xml-Code:<zs:setvariable

connection-name=""

script-id=""

script-name=""

account-id=""

account-name="admin"

append="true">

<zs:variable name="x" value="w"/>

</zs:setvariable>

8.10.21 zs:unschedule

Entfernt ein Script von einem Schedule. Wird kein Scheduleangegeben, wird das Script von allen Schedules entfernt.

Parameter:connection-name Name der Verbindung

script-id ID des Scripts

script-name Pfad und Name des SC

schedule-id ID des Schedules

schedule-name Pfad und Name des Schedules

Ergebnisattribute:

Etixpert Consulting GmbH, Zagreus 1.3

180 Actions - Standardfunktionen

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 20 - Unschedule

xml-Code:<zs:unschedule

connection-name=""

script-id="446562d7759c4fa28b2255875c978911"

script-name=""

schedule-id="8931aff7f0c9464fbb1ecfae71c0045f"

schedule-name=""

/>

8.10.22 zs:variable

8.10.23 zs:wait

Wartet bis ein Job auf einem anderen Zagreus-Server fertigist.

Parameter:connection-name Name der Verbindung

job-id Job-Id

Ergebnisattribute:

Exceptions:ZS

Beispiel:Tutorial: ZS/Script 21 - Wait

xml-Code:<zs:wait

connection-name=""

job-id="402881db1b872247011b8eeb58d40169"

/>

Etixpert Consulting GmbH, Zagreus 1.3

8.11 Web-Service 181

8.11 Web-Service

8.11.1 ws:connection

Definiert eine WebService-Verbindung.

Parameter:connection-name Name der Verbindung

user Benutzername

password Passwort für den angegebenen Benutzer (Optional)

cpassword Verschlüsseltes Passwort (Optional)

wsdl-uri WSDL-File (wird nur vom Zagreus-Browser verwendet)

address WebService-Adresse (wird von der Execution Engineverwendet)

Ergebnisattribute:• user Benutzername

Exceptions:WS

Beispiel:Tutorial: ZS/Connections/Zagreus - Server WebService

xml-Code:<ws:connection

name="zagreus"

server="localhost"

port="7323"

user="admin"

password="admin"

cpassword=""

wsdl-uri="http://localhost:7323/zagreus/zagreus_actions.wsdl"

address=""/>

8.11.2 ws:call

Ruft ein WebService auf.

Parameter:connection-name Name der Verbindung

namespace Namespace der WebService-Methode

address Adresse der WebService-Methode, wird in derws:connection kein Wert im Attribut address gesetzt,wird dieser genommen.

Kindelemente:ws:param

Etixpert Consulting GmbH, Zagreus 1.3

182 Actions - Standardfunktionen

8.11.2.1 ws:param

Definiert einen Parameter für einen WebService-Aufruf.

Parameter:name Name des Parameters

type Typ des Parameters

namespace Namespace des Parameters

null Bei true wird der Wert als NULL-Wert behandelt.

Ergebnisattribute:

Exceptions:WS

Beispiel:Tutorial: WS/Script 01 - WS Zagreus

xml-Code:<ws:call

name="runScript"

namespace="http://axis.server.zagreus.etixpert.com"

connection-name="zagreus"

address="http://localhost:7323/zagreus/services/MainService">

<ws:param

type="string"

namespace="http://www.w3.org/2001/XMLSchema"

name="scriptIdOrPath"

null="false">

255895317a254b3b95e5194d0f09d607

</ws:param>

<ws:param

type="int"

namespace="http://www.w3.org/2001/XMLSchema"

name="sleep_time"

null="false">

1000

</ws:param>

</ws:call>

Etixpert Consulting GmbH, Zagreus 1.3

8.12 Miscellaneous 183

8.12 Miscellaneous

Im Abschnitt Misc sind Actions zusammengefasst, die Aufrufevon anderen Programmen darstellen. Dazu wurde eine speziellez:system-custom-Action geschaffen, die eine anpassbare Versionder z:system-Action darstellt. Damit können Programme imVerzeichnis bin gestartet werden. Ab Zagreus 1.3 sind folgendeProgramme vorkonfiguriert.

• psexec führt Prozesse auf einem anderen Windows Rechner aus

• psservice liest Service-Informationen auf einem WindowsRechner aus

• plink führt eine ssh-Shell auf einem anderen Rechner aus

• remote-psexec-connection Verbindungsinformationen für dieSysinternal Tools (psexec, psservice, etc.)

• remote-plink-connection Verbindugsinformation für plink

Diese Liste kann natürlich um andere Aufrufe erweitert werden.Dazu muss in im template.xml ein entsprechender Eintrag gemachtwerden.

8.12.1 z:system-custom

Diese Action ist die konfigurierbare Version der z:system-Action.Sie verwendet einige versteckte Attribute, die im graphischenEditor nicht sichtbar sind. Alle diese Attribute beginnen deshalbmit _. Alle oben genannten Actions sind auf diese Art und Weisekonfiguriert worden.

Parameter:_name Gibt den Namen des ausführbaren Programms an. Wird

nichts angegeben, wird kein Programm ausgeführt. Trotzdemkann es sinnvoll sein, dass eine Action ohne _nameAttribute definiert wird. Z.B. die Connections fürpsexec und plink können auf diese Art und Weise definiertwerden. Sie stellen damit eine Liste von Argumentendar, die dann in der eigentlichen Action wiederverwendetwerden können. Damit kann eine virtuelle Connection fürähnlichen Actions definiert und wiederverwendet werden,wie z.B. für psexec und psservice. Die ausführbarenProgramme müssen sich im Verzeichniss

<ZAGREUS_HOME>/prog/WEB-INF/bin

Etixpert Consulting GmbH, Zagreus 1.3

184 Actions - Standardfunktionen

befinden.

_out In diese Variable werden die Argumente kopiert. Wirddieses Attribut angegeben, wird die Argumentliste indiese Variable kopiert.

_opts Liste der Argumente. Format: text=value. Text undWert werden durch = getrennt. Ist = aber Bestandteildes Texts, dann kann das mit = angegeben werden. DasFormat des Werts ist: [+]attribute-name[:]. Beginntes mit + dann bedeutet es, das die Variable bereitseine Argumentliste enthält, die bei einem vorigenz:system-custom-Aufruf in das Attribut _out geschriebenwurde. Diese wird jetzt in diese Argumentliste kopiert.Endet die Liste nicht mit :, bedeutet das, dass es sichum ein Flag handelt. Der entsprechende Textpart wird nurdann in die Argumentliste kopiert, wenn das Attribut inattribute-name true ist. z.B. -l1=l2, -l1 wird nur dannin die Argumentliste kopiert, wenn l2=true. z.B.

{<z:system-custom _args="-l1=l2" ... l2="true"/>}

Endet die Liste mit : dann bedeutet das eine Wertangabe.z.B.

<z:system-custom _args="-xxx=l2:" ... l2="yyy"/>

In diesem Beispiel wird die Argumenliste -xxx yyyerzeugt. Der Inhalt der Action kann noch zusätzliche(nicht erweiterbare) Argumente enthalten. Ein Spezialfallist das Attribut password. Sein Wert kann auchdurch cpassword ersetzt werden, und damit kann dieverschlüsselte Passworteingabe verwendet werden.

Beispiel:Tutorial: Misc/Script 01 - Plink

xml-Code:<z:system-custom

_a="remote-plink-connection"

_opts="=+server: -l=user: -pw=password:"

_out="+connection"

connection="wien"

server="192.168.1.8"

user="zagreus"

password="zagreus"

cpassword=""/>

<z:system-custom

_a="plink"

_name="plink"

_opts="=+connection-name: "

connection-name="wien" >

Etixpert Consulting GmbH, Zagreus 1.3

8.12 Miscellaneous 185

./test.sh

</z:system-custom>

Etixpert Consulting GmbH, Zagreus 1.3

186 Actions - Standardfunktionen

Etixpert Consulting GmbH, Zagreus 1.3

Kapitel 9

Actions - Drittapplikationen

Zagreus ermöglicht verschiedene Drittapplikationen alsDatenquelle bzw. als Ort/Format indem Ergebnisse geschriebenwerden können.

9.1 Excel

Auf Excel-Dateien kann lesend und schreiben zugegriffen werden.Folgende Funktionen werden abgedeckt:

• Daten aus einer Excel-Tabelle lesen (excel:read)

• Daten in eine Excel-Tabelle schreiben (excel:workbook,excel:data)

• Wiederverwendung von Excel-Blätter als Schablone für neueBlätter.

• Auslesen von Eigenschaften einer Excel-Datei (excel:info)

9.1.1 excel:connection

spezifiziert die Verbindung zu einem ZagreusExcel-WebService.

Parameter:name

server

port

188 Actions - Drittapplikationen

service

user

password

cpassword

Exceptions:Excel

Beispiel:Tutorial: Excel/Script 03 Excel Workbook ExcelServer

xml-Code<excel:connection

name="excel"

server="localhost"

port="9400"

service="service.asmx"

user=""

password=""

cpassword=""

/>

9.1.2 excel:info

Liest die Tabellenblätter eines Workbooks. Ergebnis ist eineZagreus-Tabelle mit allen Blattnamen.

Parameter:�lename Name der Excel-Datei

Ergebnisattribute:• sheetcnt Anzahl der Tabellenblätter

Exceptions:Excel

Beispiel:Tutorial: Excel/Script 04 - Excel Info

xml-Code<excel:info

filename="/groups/public/Tutorial/Excel/SampleData.xls"

result-attributes="x"

alias="y"/>

<z:log>$y</z:log>

<z:log>$x</z:log>

Etixpert Consulting GmbH, Zagreus 1.3

9.1 Excel 189

9.1.3 excel:read

Liest Daten aus einer Excel-Datenquelle. Unterstützt auch Excel2007.

Parameter:�lename Name des Excel-Files, das geladen werden soll.

Anhand der ersten Bytes wird erkannt, ob es sich um eineExcel 2007 Datei oder eine ältere Verison handelt.

sheet Name des Tabellenblatts

row Beginnzeile

column Beginnspalte, es wird die Excel Notation verwendet,z.B. der Name der ersten Spalte is A.

to-row Bis zu dieser Zeile wird gelesen. Wird kein Werteingegeben, wird bis zur ersten leeren Zelle in derSpalte column gelesen.

to-column Bis zu dieser Spalte wird gelesen. Bleibt der Wertleer, wird bis zur ersten leeren Zelle der Zeile rowgelesen.

header Wenn der Wert yes oder true ist, wird die erste Zeileals Header-Information gewertet, dh. die Spaltennamenwerden importiert. Ansonster werden die Spalten-Indizesals Spaltennamen verwendet. Der Standardwert ist true.

hidden-data Bei tt true werden alle Zellen gelesen, sonst nuralle Zellen die nicht auf irgendeine Weise ausgeblendetsind (gefiltert oder ausgeblendet). Standardwert istfalse. Dieses Feature funktioniert nur ab Excel Version2007 (xslx-Workbooks).

Exceptions:Excel

Beispiel:Tutorial: Excel/Script 01 Excel Read

9.1.4 excel:workbook

Erstellt ein neues Excel-File. Es kann ein komplett neues Fileerstellt werden, bzw. es kann die Formatierungen von einerSchablone verwenden, um neue Tabellenblätter entsprechend dieserVorgaben zu erzeugen.

Parameter:connection-name Name der Verbindung zum

Zagreus-Excel-Service, bleibt dieses Attribut leer,

Etixpert Consulting GmbH, Zagreus 1.3

190 Actions - Drittapplikationen

wird die integrierte Excel-Export Version verwendet.Erst durch die Angabe einer Connection wird dasExcel-Service verwendet! Kann nur im Zusammenhang mitdem ZagreusExcel-Service verwendet werden!

template Diese Excel-File wird eingelesen und die darindefinierten Tabellenblätter können als Schablonenverwendet werden (mit dem Attribute reuse der excel:dataaction). Formatierungen und Inhalte des Templates werdendann im neuen File übernommen. Autofilter, Pivottabellenund Excel-Zeichenobjekte werden zwar unterstützt,befinden sich aber noch in einem experimentellenStatus. Es kann daher bei einzelnen Schablonen bzw. beispeziellen Excel-Objekten oder Funktionen zu Problemen imAusgabefile kommen. In so einem Fall bitte das Templatean den Zagreus Support senden, damit abgeklärt werdenkann, ob es für diese Spezialfälle eine Lösung gibt, oderes nicht unterstützt wird.

hide-unused-sheets Die Excel-Datei, die als Vorlageverwendet wird, kann mehrere Blätter enthalten. Damitim Ergebnis-File die nicht benutzten Blätter nichtangezeigt werden, wird dieses Attrbut auf false gesetzt.Der Standardwert ist false.

Exceptions:Excel

9.1.4.1 excel:data

Die excel:workbook Action macht nur Sinn, wenn auch Datengeschrieben werden. Das geschieht mit excel:data. Der Inhaltdieser Action wird an die definierte Stelle geschrieben.excel:data ist immer ein Kind-Element von excel:workbook. Es kannnatürlich mehrere excel:data-Elemente in einem excel:workbookgeben.

Parameter:sheet Name des Tabellenblattes, in dem geschrieben wird. Wird

dieses Attribut nicht befüllt, versucht das System dasAttribut result-name zu verwenden. Existiert diesesAttribut auch nicht, wird data als Tabellenblattnameverwendet.

row Beginnzeile des Datenexports

column Beginnspalte des Datenexports, es wird die ExcelNotation verwendet, z.B. der Name der ersten Spalte isA.

Etixpert Consulting GmbH, Zagreus 1.3

9.1 Excel 191

rel-row Offset für die Beginnzeile. Die Zeilenposition wirdrelativ zum Ende des vorigen Exports berechnet.

rel-column Offset für die Beginnspalte. Die Spaltenpositionwird relativ zum Ende des vorigen Exports berechnet.

header Bei true oder yes, wird die Kopfzeile der Datenquellemit exportiert. Der Standardwert ist yes.

formatting Bei true oder yes wird das Zellenformat derDatenquelle in Excel transformiert. Derzeit wird dasfür MicroStrategy-XML-Daten berücksichtigt.

location Zielort im Excelfile. Die möglichen Werte sind:

• body : Die Daten werden in das Tabellenblattgeschrieben. Ist auch der Standardwert.

• headerleft : Linker Teil der Kopfzeile

• headercenter : Mittlerer Teil der Kopfzeile

• headerright : Rechter Teil der Kopfzeile

• footerleft : Linker Teil der Fusszeile

• footercenter : Mittlerer Teil der Fusszeile

• footerright : Rechter Teil der Fusszeile

column-width setzt die Breite der Spalten nach dem Einfügenvon Daten, auch wenn formatierte Daten z.B. ausMicroStrategy verwendet werden, z.B: A:50,50,20;E:20,30(Beginne bei Spalte A und setzte die Spaltenbreite von Aauf 50, von B auf 50 und von C auf 20. Setze bei SpalteE mit Breite 20 fort, und setze die Breite der SpalteF auf 30. Eine automatische Anpassung wird durch dieAngabe von column-width=auto erreicht. Dazu werden dieSpaltenbreiten nach einer standardmäÿigen proportionalenSchriftart berechnet.

preservecolumnwidth Wird ein formatierter MSTR-Bericht inExcel exportiert, kann die Spaltenbreite eines Templatesdamit beibehalten werden. Standartwert ist false.

protection aktiviert den Blattschutz true). Standardwertist true. Der Blattschutz kann auch mit einem Passwortversehen werden.

password Passwort für den Blattschutz

cpassword Verschlüsseltes Passwort für den Blattschutz

reuse Name des Tabellenblattes das als Vorlage verwendetwird.

header-format Spezifiziert das Format der Kopfzeilenvon einzufügenden Daten, überschreibt ein eventuellvorhandenes Format der Quelldaten.

Etixpert Consulting GmbH, Zagreus 1.3

192 Actions - Drittapplikationen

data-format Spezifiziert das Format der Datenzeilenvon einzufügenden Daten, überschreibt ein eventuellvorhandenes Format der Quelldaten.

macro-before Es können mehrere Macros (durch Semikolongetrennt) angegeben werden, die vor dem Einfügen derDaten ausgeführt werden sollen. Kann nur im Zusammenhangmit dem ZagreusExcel-Service verwendet werden!

macro-after Es können mehrere Macros (durch Semikolongetrennt) angegeben werden, die nach dem Einfügen derDaten ausgeführt werden sollen. Kann nur im Zusammenhangmit dem ZagreusExcel-Service verwendet werden!

Hinweis zur Formatierung: Die Parameter für header-format unddata-format werden als Name:Wert Paar eingegeben. MehrereParameter werden duch Semikolon getrennt (ähnlich zu CascadeStyle Sheets CSS) eingegeben. Die folgenden Parameter sinderlaubt:

• number-format Angabe des Zahlenformat (Format wie in Excelselbst)

• font-name Schriftartname, z.B. Arial

• font-weight Mögliche Werte: normal, bold

• font-style Mögliche Werte:: normal, italic

• color Schriftfarbe im #rrggbb Format

• background-color Hintergrundfarbepossible im #rrggbb Format

• text-align Mögliche Werte: center, right, left

• vertical-align Mögliche Werte: top, middle, bottom

• border-style Border style für alle Seiten. Mögliche Werte:solid, none

• border-style-top Mögliche Werte: solid, none

• border-style-bottom Mögliche Werte: solid, none

• border-style-left Mögliche Werte: solid, none

• border-style-right Mögliche Werte: solid, none

• border-color sets Border color für alle Seiten. Angabe im#rrggbb Format

• border-color-top Angabe im #rrggbb Format

Etixpert Consulting GmbH, Zagreus 1.3

9.1 Excel 193

• border-color-bottom Angabe im #rrggbb Format

• border-color-left Angabe im #rrggbb Format

• border-color-right Angabe im #rrggbb Format

• word-wrap Zeilenumbruch innerhalb einer Zelle, Standardwertist true, mögliche Werte: true, false

Beispiel:Tutorial: Excel/Script 02 Excel Workbook

9.1.5 Zagreus Excel-WebService

Für die Version 1.2 wurde ein eigenes Excel-Export-WebServiceimplementiert. Dieses .NET-Programm wird zusammen mit Excelals Service auf einem Windows-Rechner installiert. Das Serviceverwendet .NET 2.0, das schon auf dem Rechner installiert seinmuÿ.

Das Zagreus-Excel-Service wurde für MS-Office relevante Aufgabenentwicklelt und nutzt dafür die am Server installierten MS-OfficeKomponenten. Durch deren Verwendung ist es möglich, die volleFunktionalität von Excel, z.B. Cliparts, Macros, Pivot-Tabellen,etc. zu verwenden, die die Zagreus integrierte Excel-ExportEngine nicht unterstützt.

Diese Service wurde speziell für grafisch ansprechendeExcel-Templates realisiert. Deshalb solle es eigentlich nur imZusammenhang mit Templates verwendet werden. Das Einfügen vonunformatierten Daten geht sehr schnell, sollen aber formatierteMSTR-Daten eingefügt werden, kann das schon etwas länger dauern,da für jede Zelle das DCOM-Interface aufgerufen werden muss.

Dieses neue Service wurde als Webservice realisert, und Zagreuskommunziert über SOAP-Requests mit diesem Server, der auchauf einem anderen Rechner installiert werden kann. Der Portvon diesem Server wird über ein Konfigurationsfile festgelegt(ZagreusExcelServer.exe.config ).

Beispiel:Tutorial: Excel/Script 03 Excel Workbook ExcelServer

xml-Code<excel:connection

name="excel"

server="localhost"

port="9400"

Etixpert Consulting GmbH, Zagreus 1.3

194 Actions - Drittapplikationen

service="service.asmx"

user=""

password=""

cpassword=""

/>

<excel:workbook

hidenotusedsheets="false"

output="/groups/public/&lt;-filesystem-&gt;/Example1.xls"

template="" hide-unused-sheets="false"

connection-name="excel">

<excel:data

sheet="sheet"

row="1"

column="A"

header="false"

reuse=""

formatting="false"

location="body"

rel-row=""

rel-column=""

column-width=""

protection="false"

password=""

cpassword=""

header-format=""

data-format=""

macro-before=""

macro-after=""

>Zagreus automates your IT

</excel:data>

</excel:workbook>

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 195

9.2 MicroStrategy

MicroStrategy ist ein BI Softwarehersteller aus den USA. Übereine Java-API bietet MicroStrategy den vollen Zugriff auf dieFunktionalität seiner zentralen Einheit, den Intelligence Server.ZAGREUS verbindet sich über diese Schnittstelle und kann sofortals vorgelagerte aktive Informationsdrehscheibe von MicroStrategyeingesetzt werden.1

Die Anlage eines Services ist denkbar einfach:

• Herstellung einer Verbindung zum MicroStrategy IntelligenceServer über die vorgesehen Schnittstelle

• Abruf von einem Bericht-XML, Report Services Dokument,HTML-Dokument, Text-Export

• Nutzung der unterschiedlichen Formatierungsformen

• Nutzung der ZAGREUS Funktionalität um die Berichtsergebnissenach Belieben den Adressaten weiterzuleiten

9.2.1 mstr:close

Schlieÿt eine MSTR-Verbindung. Normalerweise werden alleVerbindungen geschlossen, wenn die Action beendet ist in der siedefiniert ist. Mit dieser Action ist es möglich, die Verbindungselbständig zu beenden. Die Verbindung wird bei Bedarf wiederautomatisch geöffnet.

Parameter:connection-name Name der Verbindung

Exceptions:MSTR

9.2.2 mstr:connection

Definiert eine Verbindung zu einem MicroStrategy-Server.

Parameter:name Name der Verbindung

1Bei Verwendung des Connectors zu den Softwareprodukten von MicroStrategy muss derLizenznehmer die dafür notwendigen MicroStrategy Lizenzen besitzen oder erwerben! Für dieAnbindung von MicroStrategy nutzt Zagreus Komponenten des MicroStrategy Web-API.

Etixpert Consulting GmbH, Zagreus 1.3

196 Actions - Drittapplikationen

server MicroStrategy Intelligence Server Name oder IP-AdresseMandatory item[port]Port des MicroStrategy Servers(Optional )

user Benutzername für die Authentifizierung (Erforderlich)

password Passwort für den angegebenen Benutzer (Optional)

cpassword Verschlüsseltes Passwort (Optional)

project MicroStrategy Projekt (Erforderlich)

path Standardpfad zu den Berichten (Optional)

cache Standard Cache-Executionflag kann überschrieben werden(Optional)

locale Standard Locale-ID (Optiional)

request-timeout Timeout für Anforderungen, in Millisekunden(Optional)

server-busy-timeout Zeit in der Antwort vom Server kommenmuss, in Millisekunden (Optional)

page-by-timeout Zeitspanne, die mindestens für einepage-by-Antwort gewartet wird, in Millisekunden(Optional)

encoding Encoding-Setting für den XML-Output

Ergebnisattribute:• server MicroStrategy Intelligence Server Name

• port Port des MicroStrategy Servers

• user Name des Berichts

• project MicroStrategy Projekt

• encoding Encoding-Setting für den XML-Output

Exceptions:MSTR

Beispiel:Tutorial: Connections/MSTR - Demoserver

xml-Code:<mstr:connection

name="MicroStrategy Tutorial"

server="192.168.1.82"

port="34952"

user="Administrator"

password=""

cpassword=""

project="MicroStrategy Tutorial"

path=""

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 197

cache=""

locale=""

request-timeout=""

server-busy-timeout=""

page-by-timeout=""

encoding="ISO-8859-1"

/>

9.2.3 mstr:report

Holt einen MicroStrategy Bericht in XML-Format vom Server, bzw.als Bilddatei (im Graph-Modus).

Parameter:connection-name Name der Verbindung zum MicroStrategy Server

id Berichts-ID (GUID des Berichts)

name Berichtsname (wird nur verwendet wenn keine idangegeben ist), kompletter Pfad z.B. /ÖffentlicheObjekte/Berichte/Zagreus/Bericht 1

msgid Message-ID, jeder Historienliste-Eintrag hat eineeindeutige Nummer

history-idx nimmt die Indexnummer 1 aus der Historienliste(erster Bericht der Historienliste). Die Historienlisteist nach Datum geordnet.

history-name Berichtsname, wenn es einige Berichte mitdemselben Namen gibt, wird der Aktuellste (nach Datumsortiert) genommen.

banding true oder false, sollen Daten gruppiert abgerurenwerden oder nicht

sql true oder false, legt fest, ob das Berichts-SQL imXml-Output des Berichts enthalten sein soll. Standardwertist false.

cache true oder false, legt fest, ob der Berichtscacheverwendet werden darf oder nicht. Standardwert ist true.

async true oder false, soll auf das Ergebnis gewartet werdenoder nicht. Standardwert ist false.

update-cache true oder false, legt fest, ob der Berichtscacheaktualisert werden soll. Standardwert ist true.

history true oder false, soll der Bericht in dieHistorienliste gestellt werden oder nicht. Standardwertist false.

graph true oder false, legt den Rückgabetyp des Berichtsfest. Bei true wird eine Grafik zurückgeliefert.Standardwert ist false

Etixpert Consulting GmbH, Zagreus 1.3

198 Actions - Drittapplikationen

rows Anzahl der XML-Zeilen, die der Bericht zurückliefert.Wird kein Wert angegeben, werden all Zeilenzurückgeliefert (Optional)

encoding gibt den Zeichensatz für das XML an (fürdeutsche Daten ist es ISO-8859-1, es kann damit dieencoding-Einstellung der mstr:connection überschriebenwerden (Optional)

page-by-timeout Zeitspanne, die mindestens für einepage-by-Antwort gewartet wird, in Millisekunden(Optional)

page-by-required true oder false, das Ergebnisattribut page_-by wird gesetzt. Standardwert ist false. Dieses Attributenthält die Page-by Auswahl des Berichts.

�lter-details-required true oder false, das Ergebnisattributfilter_details wird gesetzt. Standardwert ist false.Dieses Attribute enthält die Filderdetails einesBerichts.

Kindelemente:mstr:axis

mstr:�ltergroup

mstr:�lter

mstr:page-by-selection

mstr:page-by-all

mstr:prompt

mstr:execution-�ags

mstr:result-�ags

Ergebnisattribute:• id Berichts-ID

• msgid Message-ID des abgefragten Berichts

• name Name des Berichts

• user Benutzername

• project Projektname

• page_by Attribute im Page-by Bereich. Wenn es mehrereAttribute sind, werden sie als Liste zurückgegeben.

• filter_details Filter-Details des Berichts

• rowcnt Anzahl der Berichtszeilen

• error MicroStrategy Fehlercode, falls der Bericht nichtausgeführt werden kann

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 199

• errormsg MicroStrategy Fehlermeldung, falls der Berichtnicht ausgeführt weren kann

Exceptions:MSTR

Beispiele:Tutorial: MicroStrategy/Script 01 MSTR-Report in XML by id

Tutorial: MicroStrategy/Script 01 MSTR-Report in XML by name

xml-Code:<mstr:report

connection-name="MicroStrategy Tutorial"

id="882E89FE4CEE7E16CDD6AFAEDC9A1CCB"

name=""

msgid=""

history-idx=""

history-name=""

banding="false"

sql="false"

cache="true"

async="false"

history="false"

graph="false"

rows=""

encoding=""

page-by-timeout="0"

page-by-required="false"

filter-details-required="false"

output="/groups/public/&lt;-filesystem-&gt;/Example1.xml"

/>

9.2.4 mstr:document

MicroStrategy Report Services erstellen PDF-Fils. Mit dieserAction können diese PDF-Dokumente vom MicroStrategy Serverabgerufen werden.

Parameter:connection-name Name der Verbindung zum MicroStrategy Server

id Dokument-ID (GUID des Report Service Dokuments)

name Name des Report Service Dokuments (wird nur verwendet,wenn keine id angegeben ist), kompletter Pfad z.B./Öffentliche Objekte/Berichte/Zagreus/Dokument 1

msgid Message-ID, jeder Historienliste-Eintrag hat eineeindeutige Nummer

history-idx nimmt die Indexnummer 1 aus der Historienliste(erstes Element der Historienliste). Die Historienlisteist nach Datum geordnet.

Etixpert Consulting GmbH, Zagreus 1.3

200 Actions - Drittapplikationen

history-name Dokumentsname, wenn es einige Dokumente mitdemselben Namen gibt, wird das Aktuellste (nach Datumsortiert) genommen.

format pdf oder excel, spezifiziert das Ausgabeformat.Standardwert ist pdf.

async true oder false, soll auf das Ergebnis gewartet werdenoder nicht. Standardwert ist false.

history true oder false, soll das Dokument in dieHistorienliste gestellt werden oder nicht. Standardwertist false.

page-by-timeout Zeitspanne, die mindestens für einepage-by-Antwort gewartet wird, in Millisekunden(Optional)

Kindelemente:mstr:page-by-selection

mstr:prompt

Ergebnisattribute:• id Document-ID

• msgid Message-ID des abgefragten Dokuments

• name Name des abgefragten Dokuments

• user Benutzername

• project Projektname

• error MicroStrategy Fehlercode, falls der Bericht nichtausgeführt werden kann

• errormsg MicroStrategy Fehlermeldung, falls der Berichtnicht ausgeführt weren kann

Exceptions:MSTR

Beispiele:Tutorial: MicroStrategy/Script 02 MSTR-Report Service by id

Tutorial: MicroStrategy/Script 02 MSTR-Report Service byname

xml-Code:<mstr:document

connection-name="MicroStrategy Tutorial"

id="1CE64E974A5D80DA0298A19E2F8B9C98"

name=""

msgid=""

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 201

history-idx=""

history-name=""

format="pdf"

async="false"

history="false"

page-by-timeout="0"

output="/groups/public/<-filesystem->/RS1.pdf"

/>

9.2.5 mstr:excel

Exportiert die Daten eines MicroStrategy-Berichts im Office 2000Excel-Format.

Parameter:connection-name Name der Verbindung zum MicroStrategy Server

id Berichts-ID (GUID des Berichts)

name Berichtsname (wird nur verwendet wenn keine idangegeben ist), kompletter Pfad z.B. /ÖffentlicheObjekte/Berichte/Zagreus/Bericht

msgid Message-ID, jeder Historienliste-Eintrag hat eineeindeutige Nummer

history-idx nimmt die Indexnummer 1 aus der Historienliste(erstes Element der Historienliste). Die Historienlisteist nach Datum geordnet.

history-name Berichtsname, wenn es einige Berichte mitdemselben Namen gibt, wird das Aktuellste (nach Datumsortiert) genommen.

page-by-required true oder false, das Ergebnisattribut page_-by wird gesetzt. Standardwert ist false. Dieses Attributenthält die Page-by Auswahl des Berichts.

�lter-details-required true oder false, das Ergebnisattributfilter_details wird gesetzt. Standardwert ist false.Dieses Attribute enthält die Filderdetails einesBerichts.

cache true oder false, legt fest, ob der Berichtscacheverwendet werden darf oder nicht. Standardwert ist true.

async true oder false, soll auf das Ergebnis gewartet werdenoder nicht. Standardwert ist false.

update-cache true oder false, legt fest, ob der Berichtscacheaktualisert werden soll. Standardwert ist true.

expand-all-pages Mögliche Werte sind true or false. Bei truewerden alle Seiten exportiert

Etixpert Consulting GmbH, Zagreus 1.3

202 Actions - Drittapplikationen

export-�lter-details Mögliche Werte sind true or false. Beitrue werden die Filterdetails exportiert.

export-headers-as-text Mögliche Werte sind true or false. DieKopfzeile wird bei true als Text exportiert.

export-metrics-as-text Mögliche Werte sind true or false. Beitrue werden die Metriken als Text exportiert.

export-remove-extra-columns Mögliche Werte sind true orfalse. Bei true werden die leeren Spalten entfernt.

Kindelemente:mstr:axis

mstr:�ltergroup

mstr:�lter

mstr:page-by-selection

mstr:prompt

Result attributes:• id report id of the requested report

• msgid message id of the requested report

• name name of the requested report

• user login name of the connected user

• project project name where the requested report islocated

• page_by Attributes of the generated page. When generatingmore pages, it is a list

• filter_details Text value containing filter details

• rowcnt number of rows generated

• error MSTR error code when an error occurs

• errormsg MSTR error message when an error occurs

Exceptions:MSTR

Beispiele:Tutorial: MicroStrategy/Script 12 MSTR-Excel

xml-Code:<mstr:excel

connection-name="mstr"

id="58F1CF964AC0E111CCFF008F8417962B"

name=""

msgid=""

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 203

history-idx=""

history-name=""

async="false"

cache="true"

update-cache="true"

history="false"

page-by-required="false"

filter-details-required="false"

expand-all-pages="false"

export-filter-details="false"

export-headers-as-text="true"

export-metrics-as-text="false"

export-remove-extra-columns="false"

/>

9.2.6 mstr:htmldocument

Holt ein HTML-Dokument vom MicroStrategy Server.

Parameter:connection-name Name der Verbindung zum MicroStrategy Server

id HTML-Dokument-ID (GUID des HTML-Dokuments)

name Name des HTML-Dokuments (wird nur verwendet, wenn keineid angegeben ist

msgid Message-ID, jeder Historienliste-Eintrag hat eineeindeutige Nummer

history-idx nimmt die Indexnummer 1 aus der Historienliste(erstes Element der Historienliste). Die Historienlisteist nach Datum geordnet.

history-name HTML-Dokumentname, wenn es einige HTML-Dokumentemit demselben Namen gibt, wird das Aktuellste (nach Datumsortiert) genommen.

async true oder false, soll auf das Ergebnis gewartet werdenoder nicht. Standardwert ist false.

history true oder false, soll das HTML-Dokument in dieHistorienliste gestellt werden oder nicht. Standardwertist false.

Kindelemente:mstr:prompt

Ergebnisattribute:• id HTML-Document-ID

• msgid Message-ID des abgefragten Dokuments

• name Name des abgefragten HTML-Dokuments

Etixpert Consulting GmbH, Zagreus 1.3

204 Actions - Drittapplikationen

• user Benutzername

• project Projektname

• error MicroStrategy Fehlercode, falls der Bericht nichtausgeführt werden kann

• errormsg MicroStrategy Fehlermeldung, falls der Berichtnicht ausgeführt weren kann

Exceptions:MSTR

Beispiel:Tutorial: MicroStrategy/Script 03 MSTR-HTML-Document in

Email

xml-Code<mail:send

connection-name="smtp"

from="[email protected]" from-display-name=""

to="[email protected]" cc="" bcc="" reply-to="" reply-to-display-name=""

subject="Test Email">

<mail:body content-type="text/html">

<mstr:htmldocument

connection-name="MicroStrategy Tutorial"

id="93E4BA1A42D8C41854B48E8FC61A20FF"

name=""

msgid=""

history-idx=""

history-name=""

async="false"

history="false"

/>

</mail:body>

</mail:send>

9.2.7 mstr:export

Exportiert die Daten eines MicroStrategy-Berichts im Textformat.Der Textexport ist wesentlich schneller als ein XML-Export. GroÿeDatenmengen (>100.000 Zeilen) können damit in einer vernünftigenZeit vom Intelligence Server geholt werden.

Parameter:connection-name Name der Verbindung zum MicroStrategy Server

id Berichts-ID (GUID des Berichts)

name Berichtsname (wird nur verwendet wenn keine idangegeben ist), kompletter Pfad z.B. /ÖffentlicheObjekte/Berichte/Zagreus/Bericht

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 205

msgid Message-ID, jeder Historienliste-Eintrag hat eineeindeutige Nummer

history-idx nimmt die Indexnummer 1 aus der Historienliste(erstes Element der Historienliste). Die Historienlisteist nach Datum geordnet.

history-name Berichtsname, wenn es einige Berichte mitdemselben Namen gibt, wird das Aktuellste (nach Datumsortiert) genommen.

page-by-timeout Zeitspanne, die mindestens für einepage-by-Antwort gewartet wird, in Millisekunden(Optional)

page-by-required true oder false, bei true wird dasErgebnisattribut page_by gesetzt. Wird das Kindelementmstr:page-by-all verwendet, dann werden beipage-by-required=true die Elemente der Pageby-Attributedirekt in das Ergebnis geschrieben (immer am Beginn einesneuen Datensatzes).

�lter-details-required true oder false, bei true wird dasErgebnisattribut filter_details gesetzt

header-pre�x Präfix für die Kopfzeilenzellen (Optional)

header-post�x Postfix für die Kopfzeilenzellen (Optional)

metric-pre�x Präfix für die Metrikwerte

metric-post�x Postfix für die Metrikwerte

daf true oder false, legt fest, ob die Attribute-Feldnamenexportiert werden sollen

separator Spaltentrennzeichen

header true oder false, legt fest, ob die Kopfzeileexportiert werden soll

Kindelement:mstr:axis

mstr:�ltergroup

mstr:�lter

mstr:page-by-selection

mstr:page-by-all

mstr:prompt

Ergebnisattribute:• id Berichts-ID

• msgid Message-ID des abgefragten Berichts

Etixpert Consulting GmbH, Zagreus 1.3

206 Actions - Drittapplikationen

• name Name des Berichts

• user Benutzername

• project Projektname

• page_by Attribute im Page-by Bereich. Wenn es mehrereAttribute sind, werden sie als Liste zurückgegeben.

• filter_details Filter-Details des Berichts

• rowcnt Anzahl der Berichtszeilen

• error MicroStrategy Fehlercode, falls der Bericht nichtausgeführt werden kann

• errormsg MicroStrategy Fehlermeldung, falls der Berichtnicht ausgeführt weren kann

Exceptions:MSTR

Beispiel:Tutorial: MicroStrategy/Script 04 MSTR-Export

xml-Code<mstr:export

connection-name="MicroStrategy Tutorial"

id="882E89FE4CEE7E16CDD6AFAEDC9A1CCB"

name=""

msgid=""

history-idx=""

history-name=""

page-by-timeout="0"

page-by-required="true"

filter-details-required="true"

header-prefix=""

header-postfix=""

metric-prefix=""

metric-postfix=""

daf="false"

separator=";"

output="/groups/public/<-filesystem->/Export.txt"

result-attributes="mstr"

/>

<z:log>Report: ID:${mstr.id}, Name: ${mstr.name}</z:log>

<z:log>User: ${mstr.user}, Project: ${mstr.project}</z:log>

<z:log>Pageby: ${mstr.page_by}, Filter: ${mstr.filter_details}</z:log>

<z:log>RowCount: ${mstr.rowcnt}</z:log>

9.2.8 mstr:execution-�ags

Aufzählung aller manuell gesetzten Execution flags.

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 207

Parameter:append true oder false, bei true werden die MicroStrategy

Standard-Execution flages nicht gelöscht, bevor die hierangeführten Flags gesetzt werden.

execution-�ag Execution flag

Kindelemente:mstr:execution-�ag

9.2.8.1 mstr:execution-�ag

Spezifiziert ein MicroStrategy Execution flag für dieBerichtsausführung.

Parameter:value Name des Execution flags.

Mögliche Execution flags:• DssXmlExecutionFresh

• DssXmlExecutionDefaultPrompt

• DssXmlExecutionUseCache

• DssXmlExecutionUpdateCache

• DssXmlExecutionInboxKeepAsIs

• DssXmlExecutionSaveToInbox

• DssXmlExecutionResolve

• DssXmlExecutionGenerateSQL

• DssXmlExecutionCheckWebCache

• DssXmlExecutionUseWebCacheOnly

• DssXmlExecutionGenerateDatamart

• DssXmlExecutionSubsetting

• DssXmlExecutionReBuildPreviewOnly

• DssXmlExecutionExport

• DssXmlExecutionDefault

• DssXmlExecutionDrillByManipulation

Beispiel:Tutorial: MicroStrategy/Script 05 MSTR-Execution flags

Etixpert Consulting GmbH, Zagreus 1.3

208 Actions - Drittapplikationen

xml-Code<mstr:report

connection-name="MicroStrategy Tutorial"

id="882E89FE4CEE7E16CDD6AFAEDC9A1CCB"

name=""

msgid=""

history-idx=""

history-name=""

banding="false"

sql="false"

cache="true"

async="false"

history="false"

graph="false"

rows=""

encoding=""

page-by-timeout="0"

page-by-required="false"

filter-details-required="false"

output="/groups/public/<-filesystem->/Example5.xml">

<mstr:execution-flags

append="true" >

<mstr:execution-flag value="DssXmlExecutionGenerateSQL" />

<mstr:execution-flag value="DssXmlExecutionUseCache" />

</mstr:execution-flags>

</mstr:report>

9.2.9 mstr:�lter

Definiert einen Filterausdruck für eine MSTR-Action.Normalerweise ist es innerhalb einer mstr:filter-group-Action,aber es kann auch einzeln verwendet werden. In diesem Fallwird der Filter implizit als einzelnes Element in einermstr:filter-group-Action verwendet.

Parameter:variable Name der Variable (Attribut, Metrik oder

Attribut-Form. Um ein Attribut-Form anzugeben muss auchdas Attribut angegeben werden, z.B. "Region.ID" oder"Country:DESC"; die Zeichen ".", ":" and "\\" könnenverwendet werden..

operator Gibt den Filter-Operator an.

value ein konstanter Wert. Falls der Operator mehrereWerte akzeptiert, können diese getrennt durch ";";angegeben werden. Im Fall von "between" and "not between"Operatoren, können die beiden Werte getrennt durch "and"angegeben werden. (siehe auch die Beispiele).

Mögliche Werte für den Operator sind:

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 209

• =, equals, exactly

• <>, !=, not equals, different

• >, greater, more

• <, less

• >=, greater or eq, more or eq

• <=, less or eq

• between (für numerische Werte)

• not between (für numerische Werte)

• null, is null

• not null

• in, in list

• not in, not in list

Beispiele:Tutorial: MicroStrategy/Script 14 MSTR-OLAP-Filter

xml-Code<!-- simple filter definition -->

<mstr:excel

connection-name="mstr"

id="7A272CA5450E4F42FD7A02B99810A4EE"

name=""

msgid=""

history-idx=""

history-name=""

async="false"

cache="true"

update-cache="true"

history="false"

expand-all-pages="false"

export-filter-details="false"

export-headers-as-text="true"

export-metrics-as-text="false"

export-remove-extra-columns="false"

output="/admin/out.xls">

<mstr:filter

variable="Revenue"

operator="<"

value="200000" />

</mstr:excel>

Etixpert Consulting GmbH, Zagreus 1.3

210 Actions - Drittapplikationen

9.2.10 mstr:�lter-group

Ermöglicht die Bildung von komplexen Filtergruppierungen undkann Filter als auch andere Filtergruppen enthalten. Über dasoperator-Attribut wird Verbindung der einzelnen Filter bzw.Filtergruppen gesteuert.

Parameters:operator Operator für die Filtergruppierung.

Mögliche Werte sind:

• and, &&

• or, ||

• not, !

Kindelemente:mstr:�lter

Beispiele:Tutorial: MicroStrategy/Script 15 MSTR-OLAP-FilterGroup

xml-Code<!-- more complex filter definition -->

<mstr:excel

connection-name="mstr"

id="7A272CA5450E4F42FD7A02B99810A4EE"

name=""

msgid=""

history-idx=""

history-name=""

async="false"

cache="true"

update-cache="true"

history="false"

expand-all-pages="false"

export-filter-details="false"

export-headers-as-text="true"

export-metrics-as-text="false"

export-remove-extra-columns="false"

output="/admin/out.xls">

<mstr:filter-group

operator="or" >

<mstr:filter

variable="Revenue"

operator="between" value="100000 and 300000" _/>

<mstr:filter

variable="Region"

operator="in"

value="Southeast;Central" />

</mstr:filter-group>

</mstr:excel>

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 211

9.2.11 mstr:�ash

Dient zum Export von MicroStrategy Report Service Dokumenten imFlash-Format.

Parameter:connection-name Name der Verbindung zum MicroStrategy Server

id Dokument-ID (GUID des Report Servcice Dokuments)

name Berichtsname (wird nur verwendet wenn keine idangegeben ist), kompletter Pfad z.B. /ÖffentlicheObjekte/Berichte/Zagreus/Bericht 1

msgid Message-ID, jeder Historienliste-Eintrag hat eineeindeutige Nummer

history-idx nimmt die Indexnummer 1 aus der Historienliste(erster Bericht der Historienliste). Die Historienlisteist nach Datum geordnet.

history-name Berichtsname, wenn es einige Berichte mitdemselben Namen gibt, wird der Aktuellste (nach Datumsortiert) genommen.

cache true oder false, legt fest, ob der Berichtscacheverwendet werden darf oder nicht. Standardwert ist true.

async true oder false, soll auf das Ergebnis gewartet werdenoder nicht. Standardwert ist false.

history true oder false, soll der Bericht in dieHistorienliste gestellt werden oder nicht. Standardwertist false.

page-by-timeout Zeitspanne, die mindestens für einepage-by-Antwort gewartet wird, in Millisekunden(Optional)

swf SWF-Datei für die Anzeige der Daten

format Ausgabeformat für die Flash-Datei. Mögliche Werte: mhtoder files.Im Format mht wird einen mht-Datei generiert,die alle Daten enthält. Stellt das bevorzugte Format fürden Versand per Email dar. Im Formatfiles werden separateDateien für SWF-, Daten-, HTLM-Dateien etc. erstellt.Werden diese Dateien in einen Folder gespeichert,kann durch den Aufruf der HTML-Datei der Flash-Berichtangesehen werden.

mstr:param Parameter für die SWF-Datei. Die notwendigenPArameter sind abhängigig vom jeweiligen SWF-File.

Kindelemente:mstr:page-by-selection

Etixpert Consulting GmbH, Zagreus 1.3

212 Actions - Drittapplikationen

mstr:page-by-all

mstr:param

mstr:prompt

mstr:execution-�ags

mstr:result-�ags

Ergebnisattribute:• id Berichts-ID

• msgid Message-ID des abgefragten Berichts

• name Name des Berichts

• user Benutzername

• project Projektname

• error MicroStrategy Fehlercode, falls der Bericht nichtausgeführt werden kann

• errormsg MicroStrategy Fehlermeldung, falls der Berichtnicht ausgeführt weren kann

Exceptions:MSTR

9.2.11.1 mstr:param

Spezifiziert Parameter für ein SWF-File in einermstr:flash-Action.

Parameter:name Name des Parameters

type Typ des Parameters, kann leer sein oder resource bwz.constant.

value Wert des Parameters

Beispiele:Tutorial: MicroStrategy/Script 11 MSTR-Flash

xml-Code:<mstr:flash

connection-name="mstr"

id="41A748C64339A46184B82EAA1F5570FF"

name=""

msgid=""

history-idx=""

history-name=""

async="false"

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 213

cache="true"

history="false"

swf="DashboardViewerLocal.swf"

format="mht"

page-by-timeout="0"

output="/admin/&lt;-filesystem-&gt;/mstr/dashboard.mht">

<mstr:param

name="ResBundleURL"

type="resource"

value="DashboardViewerBundle_1033.xml"

/>

<mstr:param

name="NumberLocale"

type="constant"

value="1033"

/>

</mstr:flash>

9.2.12 mstr:historylist

Liefert alle Einträge der Historienliste. Das Ergebnis isteine Zagreus-Tabelle die folgenden Eigenschaften eines jedenHistorienlisteneintrags enthält:

• name

• msgid

• creationtime

• starttime

• finishtime

• statusid,

• statusmsg

Parameter:connection-name Name der Verbindung zum MicroStrategy Server

Ergebnisattribute:user Historenliste dieses Users wird abgefragt

project Projektname

rowcnt Anzahl der Einträge

execution_time Ausführungszeit

Exceptions:MSTR

Etixpert Consulting GmbH, Zagreus 1.3

214 Actions - Drittapplikationen

Beispiele:Tutorial: MicroStrategy/Script 13 MSTR-Historylist

xml-Code:<mstr:historylist

connection-name="mstr"

result-attributes="x"

output="/admin/history.txt"

/>

<z:log>$x</z:log>

9.2.13 mstr:result-�ags

Aufzählung aller manuell gesetzten Result flags.

Parameter:append true oder false, bei true werden die MicroStrategy

Standard-Execution flages nicht gelöscht, bevor die hierangeführten Flags gesetzt werden.

result-�ag Result_flag

Kindelemente:mstr:result-�ag

9.2.13.1 mstr:result-�ag

Spezifiziert ein MicroStrategy Result flag für die Erstellung desBerichtsergebnisses.

Parameter:value Name des Result flags

Mögliche Result flags:• DssXmlResultDtlsExprNothing

• DssXmlResultDtlsExprEmbedded

• DssXmlResultDtlsExprAll

• DssXmlResultXmlSQL

• DssXmlResultDtlsTemplateLimits

• DssXmlResultDtlsTemplateUnit

• DssXmlResultWorkingSet

• DssXmlResultNoDerivedPromptXml

• DssXmlResultXmlDisplayProperties

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 215

• DssXmlResultNoResolution

• DssXmlResultGraph

• DssXmlResultFilter

• DssXmlResultBandingAutoApply

• DssXmlResultRawData

• DssXmlResultDrillHigh

• DssXmlResultDrillMedium

• DssXmlResultDrillLow

• DssXmlResultGrid

• DssXmlResultBandingStyle

• DssXmlResultFolderPath

• DssXmlResultRelatedReports

• DssXmlResultNoPageHeader

• DssXmlResultMinimal

• DssXmlResultViewReport

• DssXmlResultPutToInboxRead

• DssXmlResultStatusOnlyIfNotReady

• DssXmlResultNoNumberFormatting

• DssXmlResultInboxMessage

• DssXmlResultDefaultFormatProperties

• DssXmlResultDatamartTableName

• DssXmlResultPageTreeStyle

• DssXmlResultPreserve

• DssXmlResultPositiveFlags

Beispiel:Tutorial: MicroStrategy/Script 06 MSTR-Result flags

xml-Code<mstr:report

connection-name="MicroStrategy Tutorial"

id="882E89FE4CEE7E16CDD6AFAEDC9A1CCB"

name=""

msgid=""

history-idx=""

history-name=""

banding="false"

sql="false"

cache="true"

async="false"

history="false"

Etixpert Consulting GmbH, Zagreus 1.3

216 Actions - Drittapplikationen

graph="false"

rows=""

encoding=""

page-by-timeout="0"

page-by-required="false"

filter-details-required="false"

output="/groups/public/<-filesystem->/Example6.xml">

<mstr:result-flags

append="true" >

<mstr:result-flag value="DssXmlResultWorkingSet" />

<mstr:result-flag value="DssXmlResultXmlSQL" />

</mstr:result-flags>

</mstr:report>

9.2.14 OLAP-Funktionen

Falls MicroStrategy-OLAP-Services zur Verfügung stehen, kann dasAussehen der Reports bei den Actions

• mstr:report

• mstr:excel

• mstr:pdf

• mstr:export

beeinflusst werden. Für diese Reports können die Attribute (undauch die Attribut-Forms) bzw. die Metriken in den Zeilen, Spaltenund dem PageBy-Bereich spezifiziert werden. Zusätzlich ist auchnoch die Angabe eines odere mehrerer Ergebnisfilter möglich.

9.2.14.1 mstr:axis

Definiert den Spalten-, Zeilen- bzw. PageBy-Bereich. Ein Bereichkann Attribute und ein Metriken-Element enthalten. Wird einBereich nicht angegeben, dann wird er so belassen, wie er imReport defiert ist, ausser den Elementen, die in einem anderenBereich angegeben werden. Wird das Metriken-Element nichtangegeben, bleibt es auf seiner ursprünglichen Stelle als letztesElement.

Parameter:index Index des Bereichs. 1=Zeilenbereich, 2=Spaltenbereich,

3=PageBy-Bereich

name Reportbereich, mögliche Werte sind row, column undpageby

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 217

Kindelemente:mstr:attribute

mstr:metrics

9.2.14.2 mstr:attribute

Definiert ein Attribute, das auf einen bestimmten Bereichangezeigt werden soll.

Parameter:id GUID des Attributs

name Name des Attributes,kann alternativ zur ID verwendetwerden

9.2.14.3 mstr:attribute-form

Definiert eine Attribute-Form.

Parameter:id GUID der Attribut-Form

name Name der Attribut-Form, kann alternativ zur IDverwendet werden

9.2.14.4 mstr:metrics

Definiert die Metriken, die in einen bestimmten Bereichplatziert werden sollen. Diese Action enthält eine oder mehreremstr:metric-Actions. Werden keine Metriken angegeben, dann werdendiejenigen genommen, die im Originalbericht angegeben sind.

9.2.14.5 mstr:metric

Definiert eine Metrik innerhalb der mstr:metrics-Action.

Parameter:id GUID der Metrik

name Name der Metrik, kann alternativ zur ID verwendetwerden

Beispiele:Tutorial: MicroStrategy/Script 16 MSTR-OLAP

Etixpert Consulting GmbH, Zagreus 1.3

218 Actions - Drittapplikationen

xml-Code<mstr:excel

connection-name="mstr"

id="1E7860EE4DC4346B78A6CC87E96DE232"

name=""

msgid=""

history-idx=""

history-name=""

async="false"

cache="true"

update-cache="true"

history="false"

expand-all-pages="false"

export-filter-details="false"

export-headers-as-text="true"

export-metrics-as-text="false"

export-remove-extra-columns="false"

output="/admin/out.xls" >

<mstr:axis name="row" >

<mstr:attribute name="Category" >

<mstr:attribute-form name="DESC" />

</mstr:attribute>

<mstr:metrics>

<mstr:metric name="Revenue" />

<mstr:metric name="Profit" />

</mstr:metrics>

</mstr:axis>

<mstr:axis name="column" >

<mstr:attribute name="Region" />

</mstr:axis>

</mstr:excel>

9.2.15 mstr:page-by-selection

Faÿt alle page-by-Attribute zusammen. Kann für MSTR-Reports undMSTR-Report Services verwendet werden.

Kindelemente:mstr:page-by

Note:Es ist auch möglich mehrere page-by-selection Elementeanzugeben.

9.2.15.1 mstr:page-by

Spezifiziert für ein Attribut das gewünschte Element.

Parameter:title Name des Attributes

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 219

pos Position des Attributes, kann statt dem Attributnamenverwendet werden

value Attributeelement; Hinweis: Wenn dasMicroStrategy-Attribue mit ID und BEZ in derElementansicht definiert ist, müssen beide Werteangegeben werden (getrennt mit einem Doppelpunkt).Mehrfachantworten werden mit einem Semikolon getrennt.

Note:Wird page-by-selection in einem Report Service verwendet,kommt es auf die richtige Reihenfolge an. Diese muss mit derDefinition im Report Sercice Dokument übereinstimmen. Es kannin diesem Fall kein Attribute gesetzt werden, wenn nicht allevorhergehenden richtig eingeben werden.

Beispiel:Tutorial: MicroStrategy/Script 07 MSTR-Page-by-selection

xml-Code:<mstr:report

output="/groups/public/<-filesystem->/Pageby.xml"

connection-name="MicroStrategy Tutorial"

id="4CF493DB428BFEEFC3D2AEB8B5054074"

name=""

msgid=""

history-idx=""

history-name=""

banding="false"

sql="false"

cache="true"

async="false"

history="false"

graph="false"

rows=""

encoding=""

page-by-timeout="0"

page-by-required="false"

filter-details-required="false" >

<mstr:page-by-selection >

<mstr:page-by title="Country" value="USA" />

<mstr:page-by title="Region" value="Southeast" />

</mstr:page-by-selection>

</mstr:report>

9.2.16 mstr:page-by-all

Erzeugt den Output für alle möglichen Page-by Kombinationen.

Beispiel:Tutorial: MicroStrategy/Script 08 MSTR:export-page-by-all

Etixpert Consulting GmbH, Zagreus 1.3

220 Actions - Drittapplikationen

xml-Code<mstr:export

connection-name="MicroStrategy Tutorial"

id="4CF493DB428BFEEFC3D2AEB8B5054074"

name=""

msgid=""

history-idx=""

history-name=""

page-by-timeout="0"

page-by-required="false"

filter-details-required="false"

header-prefix=""

header-postfix=""

metric-prefix=""

metric-postfix=""

daf="no"

separator=";"

output="/groups/public/<-filesystem->/Export08.txt">

<mstr:page-by-all />

</mstr:export>

9.2.17 mstr:pdf

Exportiert einen MSTR-Bericht im PDF-Format, der Export wirddabei vom MSTR-Server gemacht. Es stehen dabei alle Eigenschaftenfür den MSTR-Pdf-Export zur Verfügung.

Parameter:connection-name Name der Verbindung zum MicroStrategy Server

id Berichts-ID (GUID des Berichts)

name Berichtsname (wird nur verwendet wenn keine idangegeben ist), kompletter Pfad z.B. /ÖffentlicheObjekte/Berichte/Zagreus/Bericht

msgid Message-ID, jeder Historienliste-Eintrag hat eineeindeutige Nummer

history-idx nimmt die Indexnummer 1 aus der Historienliste(erstes Element der Historienliste). Die Historienlisteist nach Datum geordnet.

history-name Berichtsname, wenn es einige Berichte mitdemselben Namen gibt, wird das Aktuellste (nach Datumsortiert) genommen.

cache true oder false, legt fest, ob der Berichtscacheverwendet werden darf oder nicht. Standardwert ist true.

update-cache true oder false, legt fest, ob der Berichtscacheaktualisert werden soll. Standardwert ist true.

async true oder false, soll auf das Ergebnis gewartet werdenoder nicht. Standardwert ist false.

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 221

history true oder false, soll das Dokument in dieHistorienliste gestellt werden oder nicht. Standardwertist false.

expand-all-pages true oder false, legt fest ob alle Page-byElemente exportiert werden sollen

margin-left linker Seitenrand

margin-right rechter Seitenrand

margin-top Kopfzeilengröÿe

margin-bottom Fuÿzeilengröÿe

header-left linker Kofpzeilenbereich

header-center mittlerer Kopfzeilenbereich

header-right rechter Kopfzeilenbereich

footer-left linker Fuÿzeilenbereich

footer-center mittlerer Fuÿzeilenbereich

footer-right rechter Fuÿzeilenbereich

coverpage Deckblatt, mögliche Werte true oder false

max-header-size maximale Kopfzeilengröÿe

max-footer-size maximale Fuÿzeilengröÿe

orientation Papierausrichtung, mögliche Werte sind: portrait,landscape

paper-width Papierbreite

paper-height Papierhöhe

paper-type Papierart, mögliche Werte sind: letter, legal,executive, folio, A3, A4, A5

scale-percentage Schriftgröÿenanpassung in Prozent

scale-pages-wide Anpassen auf x-Seiten in der Breite

scale-pages-tall Anpassen auf x-Seiten in der Höhe

measurement-unit Maÿeinheit

Kindelement:mstr:axis

mstr:�ltergroup

mstr:�lter

mstr:prompt

mstr:page-by-selection

Ergebnisattribute:• id Berichts-ID

Etixpert Consulting GmbH, Zagreus 1.3

222 Actions - Drittapplikationen

• msgid Message-ID des abgefragten Berichts

• name Name des Berichts

• user Benutzername

• project Projektname

• error MicroStrategy Fehlercode, falls der Bericht nichtausgeführt werden kann

• errormsg MicroStrategy Fehlermeldung, falls der Berichtnicht ausgeführt weren kann

• execution_time Ausführungszeit

Exceptions:MSTR

Beispiel:Tutorial: MicroStrategy/Script 10 MSTR-Pdf

xml-Code<mstr:pdf

connection-name="MicroStrategy Tutorial"

id="882E89FE4CEE7E16CDD6AFAEDC9A1CCB"

name=""

msgid=""

history-idx=""

history-name=""

async="false"

cache="true"

history="false"

expand-all-pages="false"

margin-left=""

margin-right=""

margin-top=""

margin-bottom=""

header-left=""

header-center=""

header-right=""

footer-left=""

footer-center=""

footer-right=""

coverpage="false"

max-header-size=""

max-footer-size=""

orientation="landscape"

paper-width=""

paper-height=""

paper-type="A4"

scale-percentage=""

scale-pages-wide=""

scale-pages-tall=""

measurement-unit="cm"/>

<z:log>Report: ${mstr_pdf}</z:log>

Etixpert Consulting GmbH, Zagreus 1.3

9.2 MicroStrategy 223

9.2.18 mstr:prompt

Spezifiziert die Antworten für MicroStrategy-Filterprompts. DieEingabefilter müssen als eigenes Objekt definiert sein. Filter,die direkt im Bericht definiert sind, können nicht beantwortetwerden. Es werden auch Prompts unterstützt. Bei Prompts werdenauch Expression (z.B. ID=2005 oder ID in (1;2) ) unterstützt.

Parameter:id ID des Eingabefilters

name Name des Eingabefilters, (wird nur verwendet wenn keineid angegeben ist), kompletter Pfad z.B. /ÖffentlicheObjekte/Berichte/Zagreus/Eingabefilter

value Antwort auf den Eingabefilter

Beispiel:Tutorial: MicroStrategy/Script 09 MSTR prompt

xml-Code:<excel:workbook

template=""

hide-unused-sheets="false"

output="/groups/public/<-filesystem->/Prompt.xls">

<excel:data

sheet="Revenue"

row="1"

column="A"

header="true"

reuse=""

formatting="false"

location="body"

rel-row=""

rel-column=""

protection="false"

password=""

cpassword="" >

<mstr:report

connection-name="MicroStrategy Tutorial"

id="4CF493DB428BFEEFC3D2AEB8B5054074"

name=""

msgid=""

history-idx=""

history-name=""

banding="false"

sql="false"

cache="true"

async="false"

history="false"

graph="false"

rows=""

encoding=""

page-by-timeout="0"

Etixpert Consulting GmbH, Zagreus 1.3

224 Actions - Drittapplikationen

page-by-required="false"

filter-details-required="false" >

<mstr:prompt

id="917B871C4741EB7C46C2348DFA7627C5"

name=""

value="South;Central" />

</mstr:report>

</excel:data>

</excel:workbook>

Etixpert Consulting GmbH, Zagreus 1.3

9.3 Business Objects 225

9.3 Business Objects

Business Objects ist ein weltweit agierenderBI-Softwarehersteller. Über eine Java-API bietet Business ObjectsZugriff auf die Funktionalität seiner zentralen Einheit, den BOXI Server. ZAGREUS verbindet sich über diese Schnittstelle undkann sofort als vorgelagerte aktive Informationsdrehscheibe vonBusiness Objects eingesetzt werden.2

Über eine Connection wird die Verbindung zum BO-Serverhergestellt. Danach können Dokumente, Berichte und CrystalReports abgerufen werden. Die Daten werden bei jedem Aufrufaktualisiert. Es können unterschiedliche Ausgabeformateeingestellt werden und Eingabe-Prompts beantwortet werden.Folgende neue Actions stehen dafür zur Verfügung:

• bo:connection: definiert die Verbindung zu einem BusinessObjects XI Server

• bo:copy: kopiert ein Objekt in ein anderes Verzeichnis.

• bo:delete: Löscht ein Objekt aus dem Repository.

• bo:filter: Definiert einen Ergebnisfilter für ein Dokument.

• bo:filter-group: Definiert mehrere Ergebnisfilter für einDokument.

• bo:import: Importiert den Inhalt der Action in dasRepository.

• bo:info: Liest die Eigenschaften eines BO-Objekts aus.

• bo:list: Listet Informationen für mehrere Objekt auf.Zusätzlich können noch Filter für die Einschränkung derObjekte verwendet werden.

• bo:prompt: Spezifiziert die Antworten für einen BO-Filtereines BO-Dokuments.

• bo:report: Holt ein BO-Dokument vom Server. Es werden DeskI-und WebI-Dokumente unterstützt. Die Daten werden immeraktualisiert. Folgende Ausgabeformate sind möglich:

� DeskI-Dokumente: bo,pdf,xls,csv

2Bei Verwendung des Connectors zu den Softwareprodukten von Business Objects mussder Lizenznehmer die dafür notwendigen Business Objects Lizenzen besitzen oder erwerben!Für die Anbindung von Business Objects nutzt Zagreus Komponenten des Business ObjectsWeb-API.

Etixpert Consulting GmbH, Zagreus 1.3

226 Actions - Drittapplikationen

� WebI-Dokumente: bo,pdf,xls,csv

� Crystal Reports: word,text,rtf,crystalreport,pdf,editable rtf,csv

Wird das report-Attribute verwendet, kann auch ein einzelnerBO-Report aus einem BO-Dokument extrahiert werden. Dabeiwerden die folgenden DeskI- und WebI-Reports unterstützt:

� DeskI-Reports: bo,pdf,xls,csv,xml,html

� WebI-Reports: bo,pdf,xls,csv,xml

• bo:schedule: Hängt ein WebI oder DeskI Dokument an einendefinierten BO-Schedule.

9.3.1 bo:close

Schlieÿt eine BO-Verbindung. Normalerweise werden alleVerbindungen geschlossen, wenn die Action beendet ist in der siedefiniert ist. Mit dieser Action ist es möglich, die Verbindungselbständig zu beenden. Die Verbindung wird bei Bedarf wiederautomatisch geöffnet.

Parameter:connection-name Name der Verbindung

Exceptions:BO

9.3.2 bo:connection

Definiert eine Verbindung zu einem Business ObjectsXI-Server.

Parameter:name Name der Verbindung

cms BO-XI-Server Name oder IP-Adresse inklusive Port, z.Bbo-server:6400

user Benutzername für die Authentifizierung

password Passwort für den angegebenen Benutzer

cpassword Verschlüsseltes Passwort

auth Authentifizierungsart, mögliche Werte sindsecEnterprise, secLDAP, secWinAD

Etixpert Consulting GmbH, Zagreus 1.3

9.3 Business Objects 227

Ergebnisattribute:• cms BO-XI-Server Name oder IP-Adresse inklusive Port

• auth Authentifizierungsart

• user Benutzername

Exceptions:BO

Beispiel:Tutorial: Connections/BO - Demoserver

xml-Code:<bo:connection

name="BO"

cms="BO-Server:6400"

user="administrator"

password=""

cpassword=""

auth="secEnterprise"/>

9.3.3 bo:copy

Kopiert ein Objekt in ein anderes Verzeichnis.

Parameter:connection-name Name der Verbindung

source-id ID des Quellobjekts

source-name Pfad und Name des Quellobjekts (wird nurverwendet, wenn die Quell-ID nicht angegeben wird.

folder-id ID des Zielverzeichnisses

folder-name Pfad und Name des Zielverzeichnisses (wird nurverwendet, wenn die Ziel-ID nicht angegeben wird.

title der neue Name des kopierten Objekts, falls es dieseObjekt schon gibt, wird automatisch ein Zähler an denNamen gehängt und bei jeder weiteren Kopie um einserhöht.

recursive mögliche Werte sind: true, false. Bei true wird auchder ganze Subbaum (z.B. Historieneinträge) mitkopiert.

Ergebnisattribute:• execution_time Ausführungszeit

Exceptions:BO

Etixpert Consulting GmbH, Zagreus 1.3

228 Actions - Drittapplikationen

Beispiele:Tutorial: Business Objects/Script 03 BO Copy

xml-Code:<bo:copy

connection-name="etixpert"

source-id="773"

source-name=""

folder-id="23750"

folder-name=""

title="copied file"

recursive="false"/>

9.3.4 bo:delete

Löscht ein Objekt aus dem Repository.

Parameter:connection-name Name der Verbindung

document-id Dokument-ID

document-name Dokumentname (wird nur verwendet wenn keineid angegeben ist), kompletter Pfad zum Dokument mussangegeben werden

instance-index Gibt es mehrer Instanzen eines Objekts könnendiese über einen Index angegeben werden. Mögliche Wertesind "first" and "last". Index 1 bedeutet die älteste, -1die letzte Instanz.

Ergebnisattribute:• execution_time Ausführungszeit

Exceptions:BO

Beispiele:Tutorial: Business Objects/Script 04 BO Delete

xml-Code:<bo:delete

connection-name="etixpert"

document-id="23908"

document-name=""

instance-index=""/>

Etixpert Consulting GmbH, Zagreus 1.3

9.3 Business Objects 229

9.3.5 bo:�lter

Definiert einen Filterausdruck für eine bo:reportbzw.bo:list-Action. Diese Action ist normalerweise innerhalbeiner filter-group-Action. Es können aber auch mehrerenbo:filter-Actions ohne Gruppierung verwendet werden, aber dannwird implizit eine AND-Verknüpfung angenommen.

Parameter:variable Name der Variable

operator Vergleichsoperator, mögliche Werte sind: <, <=, =,<>, =>, >, between, in.

value Vergleichswert

Ergebnisattribute:

Exceptions:BO

Beispiele:Tutorial: Business Objects/Script 05 Filter

xml-Code:<bo:report

connection-name="BO"

document-id="864"

document-name=""

report-id=""

report-index="0"

report-name=""

format="pdf"

output="/admin/<-filesystem->/BO/element.pdf">

<bo:filter

variable="Land"

operator="="

value="France"/>

</bo:report>

9.3.6 bo:�lter-group

Ermöglicht die Bildung von komplexen Filtergruppierungen undkann Filter als auch andere Filtergruppen enthalten. Über dasoperator-Attribut wird Verbindung der einzelnen Filter bzw.Filtergruppen gesteuert.

Parameter:operator Operator für die Filtergruppierung. Mögliche Werte

sind AND und OR

Etixpert Consulting GmbH, Zagreus 1.3

230 Actions - Drittapplikationen

Kindelemente:bo:�lter

bo:�lter-group

Ergebnisattribute:

Exceptions:BO

Beispiele:Tutorial: Business Objects/Script 06 BO FilterGroup

xml-Code:<bo:report

connection-name="BO"

document-id="864"

document-name=""

report-id=""

report-index="0"

report-name=""

format="pdf"

output="/admin/<-filesystem->/BO/element.pdf">

<bo:filter-group operator="OR">

<bo:filter

variable="Land"

operator="="

value="France"/>

<bo:filter

variable="Dienstleistung"

operator="="

value="Bungalow"/>

</bo:filter-group>

</bo:report>

9.3.7 bo:import

Importiert den Inhalt der Action in das Repository.

Parameter:connection-name Name der Verbindung

folder-id ID des Zielverzeichnises

folder-name Name des Zielverzeichnisses (wird nur verwendet,wenn keine ID angegeben wird).

title Name des importierten Objekts im Repository

type Zusatzinfo über den Typ des importierten Objekts.Mögliche Werte sind CrystalReport, Excel, FullClient,Pdf, Program, Text, WebI .

Etixpert Consulting GmbH, Zagreus 1.3

9.3 Business Objects 231

Kindelemente:jede Zagreus-Action:

Ergebnisattribute:• execution_time Ausführungszeit

Exceptions:BO

Beispiele:Tutorial: Business Objects/Script 07 BO Import

xml-Code:<bo:import

connection-name="etixpert"

folder-id="23750"

folder-name=""

title="imp objext"

type="Excel">

<file:read

filename="/admin/<-filesystem->/excel.xls"

binary="true"/>

</bo:import>

9.3.8 bo:info

Liest die Eigenschaften eines BO-Objekts aus.

Parameter:connection-name Name der Verbindung

document-id Dokument-ID

document-name Dokumentname (wird nur verwendet wenn keineid angegeben ist), kompletter Pfad zum Dokument mussangegeben werden

instance-index Gibt es mehrer Instanzen eines Objekts könnendiese über einen Index angegeben werden. Mögliche Wertesind "first" and "last". Index 1 bedeutet die älteste, -1die letzte Instanz.

Ergebnisattribute:• execution_time Ausführungszeit

Exceptions:BO

Beispiele:Tutorial: Business Objects/Script 08 BO Info

Etixpert Consulting GmbH, Zagreus 1.3

232 Actions - Drittapplikationen

xml-Code:<z:format

type="ini"

row-separator=""

column-separator=""

header="false"

output="/admin/<-filesystem->/info.ini">

<bo:info

connection-name="etixpert"

document-id="773"

document-name=""

instance-index="last"/>

</z:format>

Ergebnis:

type=Pdf

title=Abfrage und Berichtfilter

owner=Administrator

parentfolder=770

starttime=2007-11-25

ownerid=12

creationtime=2007-11-25

endtime=2007-11-25

id=23326

lastruntime=2007-11-25

keyword=

universeid=((SI_TOTAL 0))

isinstance=true

modificationtime=2007-11-25

description=

children=0

parent=773

schedulestatus=1

Children=0 gibt an, dass es 0 Instanzen gibt.

Für Instanzen wird zusätzlich noch der Schedule Status ausgegeben.

Für Dokumente werden die Anzahl der Reports und die Anzahl der Prompts

zusätzlich ausgegeben.

9.3.9 bo:list

Listet Informationen für mehrere Objekt auf. Zusätzlich könnennoch Filter für die Einschränkung der Objekte verwendet werden.Beim Auflisten der Objekte kann mittels bo:filter-group undbo:filter die Suche eingeschränkt werden.

Parameter:connection-name Name der Verbindung

parent Filter für das Elternobject

ownerid Filter für die OwnerID

owner Filter für den Owner-Namen

Etixpert Consulting GmbH, Zagreus 1.3

9.3 Business Objects 233

type Filter für den Objekttyp (Excel, Pdf, etc.)

isinstance Filter für Instanzen

schedulestatus Filter für den Schedule-Status

recursive Mögliche Werte sind true und false. Bei true wirdauch in allen Unterverzeichnissen/Kindelementen gesucht.

Kindelemente:bo:�lter

bo:�lter-group

Ergebnisattribute:• rowcntAnzahl Zeilen

• execution_time Ausführungszeit

Exceptions:BO

Beispiele:Tutorial: Business Objects/Script 09 BO List

xml-Code:<bo:list

connection-name="etixpert"

title=""

parent=""

ownerid=""

owner=""

type="Excel"

isinstance=""

schedulestatus=""

recursive="false"

output="/admin/<-filesystem->/list.txt">

</bo:list>

<z:log>$bo_list</z:log>

9.3.10 bo:prompt

Spezifiziert die Antworten für einen BO-Filter einesBO-Dokuments/Reports.

Parameter:index Prompt-Index innerhalb eines Dokuments

name Prompt-Name, wird nur verwendet wenn kein indexangegeben ist

value Prompt-Antworten, Mehrfachantworten werden mitSemikolon getrennt angegeben

Etixpert Consulting GmbH, Zagreus 1.3

234 Actions - Drittapplikationen

Exceptions:MSTR

Beispiele:Tutorial: Business Objects/Script 01 BO Document

xml-Code:<bo:prompt

index="2"

name=""

value="Galagers;Ishimoto"

/>

9.3.11 bo:report

Holt ein BO-Dokument vom Server. Es werden DeskI- undWebI-Dokumente unterstützt.

Parameter:connection-name Name der Verbindung zum Business Objects-XI

Server

document-id Dokument-ID

document-name Dokumentname (wird nur verwendet wenn keineid angegeben ist), kompletter Pfad zum Dokument mussangegeben werden

instance-index Gibt es mehrer Instanzen eines Objekts könnendiese über einen Index angegeben werden. Mögliche Wertesind "first" and "last". Index 1 bedeutet die älteste, -1die letzte Instanz.

report-id Berichts-ID innerhalb eines Dokuments

report-index Berichts-Index innerhalb eines Dokuments

report-name Berichtsname innerhalb eines Dokuments

format Ausgabeformat, mögliche Werte sind:bo,pdf,xls,csv,word,text,rtf,crystal report,editablertf

append-�lter Fertige Berichte können auf das Ergebnisgefiltert werden. Dazu kann zusätzlich festgelegt werden,ob ein bereits existierender Dokumentfilter verwendetwerden soll oder nicht. Mögliche Werte sind true undfalse.

create-instance Legt bei der Berichtsausführung eine neueInstanz an.

refresh Mögliche Werte sind true und false. Bei false wird derBericht nicht aktualisert.

Etixpert Consulting GmbH, Zagreus 1.3

9.3 Business Objects 235

save-to-folder-id Speichert den Bericht im angegeben Folder.

save-to-folder-name Speichert den Bericht im mittel Pfadnameneingegeben Folder (wird nur verwendet wenn keinesave-to-folder-id angegeben ist)

save-to-title Speichert das Dokument unter einem neuen Namen.

Kindelemente:bo:prompt

bo:�lter

bo:�lter-group

Ergebnisattribute:• execution_time Ausführungszeit

Exceptions:BO

Beispiele:Tutorial: Business Objects/Script 01 BO Document

Tutorial: Business Objects/Script 02 BO Report

xml-Code:<bo:report

connection-name="etixpert"

document-id="2157"

format="pdf"

report-index="" >

<bo:prompt

index="0"

name=""

value="French Riviera" />

<bo:prompt

index="1"

name=""

value="France" />

<bo:prompt

index="2"

name=""

value="Galagers;Ishimoto" />

</bo:report>

9.3.12 bo:schedule

Hängt ein WebI oder DeskI Dokument an einen definiertenBO-Schedule. Die Parameter sind die gleichen wie im BO-Scheduler.

Parameter:connection-name Name der Verbindung

Etixpert Consulting GmbH, Zagreus 1.3

236 Actions - Drittapplikationen

document-id Dokument-ID

document-name Dokumentname (wird nur verwendet wenn keineid angegeben ist), kompletter Pfad zum Dokument mussangegeben werden

document-format Zielformat, mögliche Werte sind pdf, xls, bo

wait-on-event Name des Ereignisses auf das gewartet wird .

trigger-event Name des Ereignisses, das ausgelöst wird

destination-inbox Name der Ziel-Inbox

instance-title Name der zu erstellenden Instanz

starttime Zeitpunkt für die erste Ausführung

endtime Zeitpunkt für die letzte Ausführung

timing-type Art des Schedules, ögliche Werte sind once,hourly, daily, weekly, monthly, nthday, firstmonday,lastday

minute Anzahl der Minuten zwischen zwei Ausführungen (ist nurfür hourly)

hour Anzahl der Stunden zwischen zwei Ausführungen

day Anzahl der Tage zwischen 2 Ausführungen (nur für dailyund nthday)

month Anzahl der Monate zwischen zwei Ausführungen (nur fürmonthly)

dayofweek Tag der Ausführung, Tage können z.B. als Sunday,Monday, etc. oder auch als Abkürzung angegeben werden(Sun, Mon, etc.). Mehrere Tage können durch Semikolongetrennt eingegeben werden. Intervalle werden durch einenBindestrich angegeben. Z.B. "Mon-Thursday;Sat" (Aber nurfür type="weekly".)

Kindelemente:bo:

Ergebnisattribute:• execution_time Ausführungszeit

Exceptions:BO

Beispiele:Tutorial: Business Objects/Script 10 BO Schedule

Etixpert Consulting GmbH, Zagreus 1.3

9.3 Business Objects 237

xml-Code:<bo:schedule

connection-name="etixpert"

document-id="773"

document-name=""

format=""

wait-on-event=""

trigger-event=""

destination-inbox=""

instance-title=""

starttime="${date('2008-01-30 22:10:00.000', 'yyyy-MM-dd HH:mm:ss.SSS')}"

endtime=""

timing-type="once"

minute=""

hour=""

day=""

dayofweek=""

month=""/>

<z:log>$bo_schedule</z:log>

Etixpert Consulting GmbH, Zagreus 1.3

238 Actions - Drittapplikationen

Etixpert Consulting GmbH, Zagreus 1.3

Kapitel 10

Copyright Notizen

Zagreus verwendet verschiedene Open Source Tools. Im folgendenwerden alle durch Copyright geschützten Tools aufgezählt.

- ant (http://ant.apache.org/)Build tools(used for packing resources (SOAP))

- ant-lr (http://www.antlr.org)Tool for Language recognition(used by jasper)

- asm (http://asm.objectweb.org)java bytecode manipulator(used by jasper)

- axis (http://ws.apache.org/axis)SOAP implementation

- c3p0 (http://www.mchange.com/projects/c3p0/index.html)JDBC3 Connection and Statement Pooling

- cglib (http://cglib.sourceforge.net)Code generation library(used by jasper)

- bd-ojb (http://db.apache.org/ojb)Object-Relational Bridge(used by hibernate)

- derby (http://db.apache.org/derby)

240 Copyright Notizen

database server

- dom4j (http://www.dom4j.org/)XML framwork

- ehcache (http://ehcache.sourceforge.net)general cacher engine

- hibernate (http://www.hibernate.org)object persistence manager

- jaas (http://java.sun.com/products/jaas)Java Authentication and Authorization Service

- jasper (http://tomcat.apache.org/)JSP engine

- servlet (http://java.sun.com/products/servlet)Java servlet implenentation

- jaxrpc (http://java.sun.com/webservices/jaxrpc)engine for RPC (Remote Procedure Calling)

- jta (http://java.sun.com/products/jta)Java Transaction API

- log4j (http://logging.apache.org/log4j)Logger subsystem

- jetty (http://www.mortbay.org)Web Server

- quartz (http://www.opensymphony.com/quartz/)Job scheduler

- saaj (http://java.sun.com/webservices/saaj/index.jsp)SOAP with Attachment API

- spring (http://www.springframework.org)Java/J2EE platform

- wsdl4j (http://sourceforge.net/projects/wsdl4j)Web Services Description Language library

- xerces (http://xerces.apache.org/xerces-j)XML parser

Etixpert Consulting GmbH, Zagreus 1.3

241

- activation (http://java.sun.com/products/javabeans/jaf)JavaBeans Activation Framework(used by server system (axis), and javamail)

- avalon-framework.jar (http://avalon.apache.org)Tools for component and container programming(used by fop)

- batik (http://xmlgraphics.apache.org/batik)SVG engine(used by fop)

- edtftpj (http://www.enterprisedt.com/products/edtftpj)ftp action groups

- fop.jar (http://xmlgraphics.apache.org/fop)XML Formattting Object processor

- javamail (http://java.sun.com/products/javamail)Mailing API(used by server (axis) and mail action groups)

dsn.jarimap.jarmail.jarmailapi.jarpop3.jarsmtp.jar

- jaxen (http://jaxen.org)XPath engine

- jdom (http://www.jdom.org)API for xml handling

- xalan (http://xml.apache.org/xalan-j)xslt processor

-------------------------------------------------------------Zagreus Client:

Based on Eclipse Platform:- RCP (Rich Client Platform)- GEF (Graphical Editing Framework)- Eclipse GUI Components: SWT (Standard Widget Toolkit), Draw2d, JFace

Etixpert Consulting GmbH, Zagreus 1.3

242 Copyright Notizen

Developing:- Eclipse IDE- JDT (Java Development Tools) plugins- VEP (Visual Editor Project) plugins- GEF (Graphical Editing Framework) plugins- EMF (Eclipse Modelling Framework) plugins- PDE (Plugin Development Environment)

Etixpert Consulting GmbH, Zagreus 1.3