2015 Control-M Folder-Generierung mittels Excel Andreas Moessinger amoessinger@atics.de 1
Ausgangssituation 2015 Bei vielen Unternehmen erfolgt die Übergabe von neuen Batch-Jobabläufen noch sehr manuell. Mitarbeiter der Fachabteilungen, IT-Organisatoren und IT-Projektmitarbeiter beschreiben Batchjobabläufe häufig in EXCEL, WORD oder VISIO. Basierend auf diesen Informationen definieren anschließend die Mitarbeiter vom Data Center die Abläufe im Control-M. Dieser zeitaufwändige Prozess wird noch durch Verständigungsprobleme verschärft, da immer wieder Rückfragen erforderlich sind. Manuelle personenorientierte Definitionen führen immer zu unterschiedlichen Qualitäten, da nicht jede Person den gleichen Wissenstand hat. 2
Ausgangssituation Firmenbeispiele EXCEL 2015 2 1 3 4 5 3
Ziel 2015 Mitarbeiter der Fachabteilungen, IT-Organisatoren und IT-Projektmitarbeiter beschreiben Batchjobabläufe mittels einer vom Data Center zur Verfügung gestellten Excel Vorlage. Die Informationen werden als CSV Datei gespeichert in einem von ATICS vorgegeben Format Diese Informationen laufen in das ATICS Tool atcsv2ctm ein, welche BMC CONTROL-M Folder erzeugt. Für die einzelnen Jobtypen werden vom Data Center selbst erstellte vordefinierte Mustervorlagen herangezogen. Für Standardvorgaben, wie z.b. Quantitative Ressourcen, allgemeingültige Conditions oder bei z/os Jobs der Standardchange des Sysouts auf eine Joblogarchivklasse Das Ergebnis kann direkt in der GUI von BMC CONTROL-M geöffnet werden. 4
atcsv2ctm 2015 Bevor wir die einzelnen Komponenten im Detail anschauen, demonstrieren wir die Arbeitsweise an einem Beispiel live. Beispiel-1 - Ziel Ein Folder mit 15 Jobs für einen Control-M Server Version 8 Version 7 5
atcsv2ctm - Detail: Ablauf-Schaubild 2015 Online oder BATCH BMC CONTROL-M XML Format Erstellung Version 7 und Version 8 atcsv2ctm CSV dateiname XML SKELS Jobtypen XML Data Center Mitarbeiter CTM/EM GUI 6
atcsv2ctm Detail: Eingabe-Excel / CSV 2015 7
atcsv2ctm Detail: ATICS-Variablen 2015 Folder #%#FN#%# #%#APPLICATION#%# #%#SUBAPPLICATION#%# Job #%#CONTROLM#%# #%#HOSTGR#%# #%#%JOBNAME#%# #%#DESCRIPTION#%# #%#MB#%# #%#COMMAND#%# #%#US#%# 8
atcsv2ctm Detail: ATICS-Variablen 2015 In den Jobtypen können ATICS Variablen genutzt werden ATICS Variablenname Feld in der GUI Version 8 #%#FN#%# Folder Name #%#FOLDERDESCRIPTION#%# Description #%#FOLDERLIB#%# Folder Library Control-M Server #%#CONTROLM#%# muss im XML angepasst werden #%#FN#%# Parent Folder #%#%JOBNAME#%# Job Name #%#DESCRIPTION#%# Description #%#COMMAND#%# Command #%#FILEPATH#%# File Path #%#JCLLIB#%# Member Library #%#MB#%# Member #%#MB#%# File Name #%#HOSTGR#%# Host/Host Group Run as #%#US#%# Connection Profile #%#APPLICATION#%# Application #%#SUBAPPLICATION#%# Sub Application #%# definierte Variablen Doc Member #%# definierte Variablen Doc File / Url #%#%JOBNAME#%# SAP Job Name Feld in der GUI Version 7 Table Description Table Lib CONTROL-M muss im XML angepasst werden Parent Table Jobname Description Command File Path Mem Lib Mem Name File Name Node ID/Group Owner SAP: Account Application Group Doc Mem Doc File / Url SAP: Jobname 9
atcsv2ctm Detail: Jobtype (SKEL) COMMAND# 2015 Folder XML <FOLDER DATACENTER="#%#CONTROLM#%#" VERSION="800" PLATFORM="UNIX" FOLDER_NAME="#%#FN#%#" REAL_FOLDER_ID="0" TYPE="1"> 10
atcsv2ctm Detail: Jobtype (SKEL) COMMAND# 2015 Job XML <JOB JOBISN="0" APPLICATION="#%#APPLICATION#%#" SUB_APPLICATION="#%#SUBAPPLICA TION#%#"... JOBNAME="#%#%JOBNAME#%#" DESCRIPTION="#%#DESCRIPTION#%# " CREATED_BY="u139040" RUN_AS="#%#US#%#" CRITICAL="0" TASKTYPE="Command" CYCLIC="0" NODEID="#%#HOSTGR#%#" DOCLIB="/#%#%JOBN AME#%#.html" INTERVAL="00001M" MEMLIB="$HOME/AM/Scripts" CMDLINE="#%#COMMAND#%#" CONFIRM="0"... PARENT_FOLDER="#%#FN#%#"> 11
atcsv2ctm Detail: Jobtype (SKEL) COMMAND# 2015 Gespeichert als XML NORMAL_COMMAND# <?xml version="1.0" encoding="utf-8"?> <!--Exported at 16-03-2015 09:57:43--> <DEFTABLE xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="folder.xsd"> <FOLDER DATACENTER="#%#CONTROLM#%#" VERSION="800" PLATFORM="UNIX" FOLDER_NAME="#%#FN#%#" REAL_FOLDER_ID="0" TYPE="1"> <JOB JOBISN="0" APPLICATION="#%#APPLICATION#%#" SUB_APPLICATION="#%#SUBAPPLICATION#%#" MEMNAME="#%#MB#%#" JOBNAME="#%#%JOBNAME#%#" DESCRIPTION="#%#DESCRIPTION#%# " CREATED_BY="u139040" RUN_AS="#%#US#%#" CRITICAL="0" TASKTYPE="Command" CYCLIC="0" NODEID="#%#HOSTGR#%#" DOCLIB="/#%#%JOBNAME#%#.html" INTERVAL="00001M" MEMLIB="$HOME/AM/Scripts" CMDLINE="#%#COMMAND#%#" CONFIRM="0" RETRO="0" MAXWAIT="7" MAXRERUN="0" AUTOARCH="1" MAXDAYS="0" MAXRUNS="0" DAYS="ALL" JAN="1" FEB="1" MAR="1" APR="1" MAY="1" JUN="1" JUL="1" AUG="1" SEP="1" OCT="1" NOV="1" DEC="1" DAYS_AND_OR="O" SHIFT="Ignore Job" SHIFTNUM="+00" SYSDB="1" IND_CYCLIC="S" RULE_BASED_CALENDAR_RELATIONSHIP="O" APPL_TYPE="OS" MULTY_AGENT="N" USE_INSTREAM_JCL="N" CYCLIC_TOLERANCE="0" CYCLIC_TYPE="C" PARENT_FOLDER="#%#FN#%#"> <QUANTITATIVE NAME="JOBRUN" QUANT="1" ONFAIL="R" ONOK="R" /> </JOB> </FOLDER> </DEFTABLE> 12
atcsv2ctm Detail: Jobtype (SKEL) COMMAND# 2015 Gespeichert als XML SMART_COMMAND# <?xml version="1.0" encoding="utf-8"?> <!--Exported at 16-03-2015 15:56:54--> <DEFTABLE xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="folder.xsd"> <SMART_FOLDER JOBISN="0" APPLICATION="#%#APPLICATION#%#" SUB_APPLICATION="#%#SUBAPPLICATION#%#" JOBNAME="#%#FN#%#" DESCRIPTION="#%#FOLDERDESCRIPTION#%# " CREATED_BY="u139040" RUN_AS="#%#US#%#" CRITICAL="0" TASKTYPE="SMART Table" CYCLIC="0" INTERVAL="00001M" CONFIRM="0" RETRO="0" MAXWAIT="0" MAXRERUN="0" AUTOARCH="1" MAXDAYS="0" MAXRUNS="0" DAYS="ALL" JAN="1" FEB="1" MAR="1" APR="1" MAY="1" JUN="1" JUL="1" AUG="1" SEP="1" OCT="1" NOV="1" DEC="1" DAYS_AND_OR="O" SHIFT="Ignore Job" SYSDB="1" ADJUST_COND="N" IND_CYCLIC="S" APPL_TYPE="OS" USE_INSTREAM_JCL="N" CYCLIC_TOLERANCE="0" CYCLIC_TYPE="C" PARENT_FOLDER="#%#FN#%#" DATACENTER="#%#CONTROLM#%#" VERSION="800" PLATFORM="UNIX" FOLDER_NAME="#%#FN#%#" TYPE="2"> <JOB APPLICATION="#%#APPLICATION#%#" SUB_APPLICATION="#%#SUBAPPLICATION#%#" MEMNAME="#%#MB#%#" JOBNAME="#%#%JOBNAME#%#" DESCRIPTION="#%#DESCRIPTION#%# " CREATED_BY="u139040" RUN_AS="#%#US#%#" CRITICAL="0" TASKTYPE="Command" CYCLIC="0" NODEID="#%#HOSTGR#%#" DOCLIB="/#%#%JOBNAME#%#.html" INTERVAL="00001M" MEMLIB="$HOME/AM/Scripts" CMDLINE="#%#COMMAND#%#" CONFIRM="0" RETRO="0" MAXWAIT="7" MAXRERUN="0" AUTOARCH="1" MAXDAYS="0" MAXRUNS="0" DAYS="ALL" JAN="1" FEB="1" MAR="1" APR="1" MAY="1" JUN="1" JUL="1" AUG="1" SEP="1" OCT="1" NOV="1" DEC="1" DAYS_AND_OR="O" SHIFT="Ignore Job" SHIFTNUM="+00" SYSDB="1" IND_CYCLIC="S" RULE_BASED_CALENDAR_RELATIONSHIP="O" APPL_TYPE="OS" MULTY_AGENT="N" USE_INSTREAM_JCL="N" CYCLIC_TOLERANCE="0" CYCLIC_TYPE="C" PARENT_FOLDER="#%#FN#%#"> <QUANTITATIVE NAME="JOBRUN" QUANT="1" ONFAIL="R" ONOK="R" /> </JOB> <RULE_BASED_CALENDAR NAME="EVERYDAY" MAXWAIT="00" DAYS_AND_OR="O" JAN="1" FEB="1" MAR="1" APR="1" MAY="1" JUN="1" JUL="1" AUG="1" SEP="1" OCT="1" NOV="1" DEC="1" SHIFT="Ignore Job" RETRO="0" DAYS="ALL" LEVEL="N" /> </SMART_FOLDER> 13 </DEFTABLE>
atcsv2ctm Detail: Ausführung atcsv2ctm 2015 atcsv2ctm kann per Commandline ausgeführt werden Aufruf: atcsv2ctm CSV dateiname Kontrollmitteilungen 14
atcsv2ctm Detail: Ausführung atcsv2ctm 2015 atcsv2ctm kann als Windows Batchjob ausgeführt werden Protokoll Windows Batchjob 15
atcsv2ctm Detail: Das generierte XML File 2015 16
atcsv2ctm Detail: Das Ergebnis in der WLA GUI 2015 Definitionen aus CSV 17
atcsv2ctm Detail: Das Ergebnis in der WLA GUI 2015 Generierte Definitionen Übernommen aus CSV Übernommen aus SKEL Generiertes Conditionformat 18
atcsv2ctm 2015 Beispiel-2 - Ziel Ein Smart Folder mit 30 Jobs für zwei Control-M Server Global Condition Generierung mit Prefix GC z/os Conditions in GROSSBUCHSTABEN / DS Conditions as is 19
atcsv2ctm 2015 Beispiel-2 Excel-Datei Foldertyp legt fest, ob SMART_ oder NORMAL_ SKELS Dateien benutzt werden. Angabe der Vorläufer Jobnamen oder 1.Stelle *-Zeichen manuelle Condition. Mehrere Angaben werden durch Komma getrennt. 20
atcsv2ctm 2015 Beispiel-2 - Global Condition Generierung mit Prefix GC z/os Conditions in GROSSBUCHSTABEN DS Conditions as is Eingabe Global Condition z/os Normal Condition DS Normal Condition Condition aus SKEL Ausgabe Global Condition 21
atcsv2ctm 2015 Beispiel-3 - Ziel Ein Folder mit 30 Jobs für vier Control-M Server Globale Condition zwischen Distributed Control-M Servern und z/os Multi Commandline Unterstützung bei Linux/Unix Batchjobs 22
atcsv2ctm 2015 Beispiel-3 Excel-Datei Mehrere Kommandos bei einem Linux/Unix Commandjob. sleep 30;sleep 10; exit 5 Vier Control-M Server. Abhängigkeiten zwischen Distributed Jobs von unterschiedlichen Control-M Servern und Distributed Jobs und z/os Jobs. 23
atcsv2ctm 2015 Beispiel-3 Eine Global Condition zwischen Distributed Control-M Servern und z/os Sobald ein z/os Control-M Server beteiligt ist, wird die Condition in Großbuchstaben umgesetzt. 24
atcsv2ctm 2015 Beispiel-3 Multi Commandline Unterstützung bei Linux/Unix Batchjobs, obwohl CSV Trennzeichen das Semikolon ist. 25
atcsv2ctm 2015 Beispiel-3 Standards, welche im SKEL hinterlegt werden, werden automatisch übernommen, z.b. bei einem z/os Job die Change Sysout Definition, oder eine Standardmeldung bei einem Abbruch. 26
atcsv2ctm 2015 Beispiel-4 - Ziel Ein Folder mit 12 Jobs und ein Smart Folder mit 12 Jobs für vier Control-M Server Umsetzung von Folder Variablen und Job Variablen 27
atcsv2ctm 2015 Beispiel-4 Excel-Datei 28
atcsv2ctm 2015 Beispiel-4 Die Folder Variablen werden in der Folder Definition aller Control-M Server umgesetzt. Bei z/os Control-M Servern, werden die Definitionen in Großbuchstaben umgesetzt. 29
atcsv2ctm 2015 Beispiel-4 Die Job Variablen werden bei Distributed Systems Control-M Server as is umgesetzt. Bei z/os Control-M Servern, werden die Definitionen in Großbuchstaben umgesetzt. 30
atcsv2ctm Zusammenfassung Version 1.1.06 2015 Installation.NET Windowsanwendung Per Commandline aufrufbar oder als Batchjob ATICS Passwortmodul Nutzung Nutzung einer zentralen Parameterdatei Auslagerung von Messages in eine Messagedatei je Sprache Anwendung Unterstützung von BMC CONTROL-M Version 7 und 8 Mehrere Folder/Table per Excel (hintereinander) möglich Variablen Unterstützung auf Smart Folder Ebene und auf Job-Ebene Multi Datacenter fähig, d.h. ein Folder kann Jobs aus unterschiedlichen Data Center (Control-M Servern) enthalten Festlegung: Folder/Table-Name ist auf allen Data Centern gleich! Foldername immer groß wegen z/os Support. 31
atcsv2ctm - Zusammenfassung Version 1.1.06 2015 Anwendung (Fortsetzung) Job-Abhängigkeiten im Excel basierend auf den Vorläuferjobnamen (predecessor) Condition-Format für automatische Generierung [Foldername des Vorläuferjobs]-[Vorläuferjobname]_[Foldername des Nachläuferjobs]-[Nachläuferjobname] Eingabe-Conditions werden nach OK-Jobende wieder gelöscht Conditions as is bei Distributed Systems Plattformen Conditions immer GROSS bei z/os Plattform DS übergreifende Conditions innerhalb eines Folders werden als Global Conditions generiert mit Prefix GC- Möglichkeit der Definition im Excel von externen-/manuellen Abhängigkeiten (Conditions) Sonstiges Muster Eingabe-Excel für CSV Erstellung Handbuch Fordern Sie Ihr Installationspaket, kostenlos zum Testen für 30 Tage an, per Email an software[add]atics.de. 32
Weitere Kunden-Anforderungen 2015 Bei der Vorstellung von atcsv2ctm bei Kunden wurden zwei neue Themen diskutiert: Könnte man auch den Weg zurück, d.h. BMC Control-M XML in einem Excel Format zur Verfügung stellen. Die Idee wurde aufgegriffen und in einem Prototypen atctm2csv realisiert, den ich Ihnen heute zeigen möchte. Wäre es auch möglich einen Änderungsdienst zu implementieren, d.h. eine CSV Datei mit den Änderungen, wird gegen ein Control-M XML File ausgeführt und dementsprechend werden die Änderungen durchgeführt. Unsere Überlegungen hierzu möchte ich Ihnen heute ebenfalls vorstellen. 33
atctm2csv Prototyp Version 1.0.00 2015 Liest ein über die BMC GUI exportiertes XML File mit einem oder mehreren Foldern ein und übersetzt dies in das ATICS CSV Format. Zur Zeit werden die Dependency und Variablen noch nicht aufgelöst Die Dependency wurde noch nicht berücksichtigt, da hier zuerst einmal definiert werden muss, welches Format ein Kunde einsetzt. Laut dem heutigen Design von atcsv2ctm können Abhängigkeiten auch aus den SKELs kommen, d.h. eventuell muss man hier mit White- oder Black-Listen aus einer INI Datei arbeiten Die Variablen stellen keine Problem dar, waren bei der Entwicklung des Prototyps in atcsv2ctm noch nicht realisiert. Im Folgenden will ich Ihnen den Prototyp kurz live vorstellen. 34
atctm2csv Prototyp Live Vorstellung 2015 Unsere vier Beispiele von atcsv2ctm haben wir alle in einen Workspace geladen und diesen dann als XML File exportiert. 35
atctm2csv Prototyp Live Vorstellung 2015 Aufruf von atctm2csv per Commandline 36
atctm2csv Prototyp Live Vorstellung 2015 Das erzeugte EXCEL-File auf Basis der generierten CSV Datei. 37
atcsvuctm geplanter Prototyp Version 1.0.00 2015 Eine CSV Datei mit den Änderungssätzen läuft gegen eine exportiertes Control-M XML File. Eine Änderung kann sein: I U D Insert - Hinzufügen eines neuen Jobs Update Verändern eines Jobs oder Smart Folder Satzes Delete Löschen eines Jobs und und und. Das hängt ganz von den Kundenwünschen ab, die wir gerne mit Ihnen diskutieren. 38
Vielen Dank für Ihre Aufmerksamkeit! 2015 39
2015 Vielen Dank für Ihre Aufmerksamkeit 40