Download - Etixpert Consulting GmbH, Zagreus 1
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
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
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
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
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
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
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:
• 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
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 "${error.filename}" does not exist.</z:log>
</z:on-error>
<file:read filename="/groups/public/<-filesystem->/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
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>=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/<-filesystem->/${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
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/<-filesystem->/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/<-filesystem->/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
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/<-filesystem->/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
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