1 Themenübersicht
Im Systemcockpit können Zielsysteme definiert werden, die dann über das Softwareaktualisierungscockpit versorgt werden können.
Diese Dokumentation beschreibt, wie Sie die Hintergrundanwendung „Zielsystem aktualisieren“ verwenden um die Aktualisierung solcher definierten Zielsysteme zu automatisieren.
2 Begriffsbestimmung
Der Semiramis-Workflow steuert die Bearbeitung von Aktivitäten durch das Semiramis-System und durch den Benutzer. Über Aktivitätsdefinitionen können Aktivitäten beim Eintreten von Ereignissen erzeugt werden. Der Semiramis-Workflow steuert über Serienaktivitäten regelmäßig wiederkehrende Aufgaben wie beispielsweise das Ausführen von Verarbeitungsaufträgen.
Der Semiramis-Workflow kann nur dann Prozesse abbilden, wenn geeignete Ereignisse genutzt werden können. Im Allgemeinen wird das Semiramis Business-Process-Management benötigt, um komplexe Prozesse abzubilden.
3 Anwendungsbeschreibung
Die Anwendung „Zielsystem aktualisieren“ erlaubt es die regelmäßige Aktualisierung von Zielsystemen zu vereinfachen. Sie sollten die Hintergrundanwendung „Zielsystem aktualisieren“ als Serie einrichten.
3.1.1 Ablauf Entwicklungssystem
Der Ablauf sieht wie folgt aus
- Softwareaktualisierungen suchen, die im Zielsystem noch nicht eingespielt wurden.
- Ermitteln von zugehörigen Entwicklungsaufträgen in den Status
- Ersttest erfolgt
- Im Zweittest
- Erledigt
- Erledigt ohne Änderung
- Abgeschlossen
- Für noch nicht freigegebene Softwareaktualisierungen wird die Freigabe geprüft.
- Noch nicht freigegebene aber freigebare Softwareaktualisierungen freigeben.
- Export der betroffenen und freigegeben Softwareaktualisierungen
- Kopieren der exportierten Softwareaktualisierungen in den entsprechenden import Ordner des Zielsystems.
- Installation auf dem Zielsystem starten.
- Aktivierung evtl. vorhandener Konfliktaufgaben auf dem Zielsystem starten.
- Nach Beendigung der Installation das programmierte Ereignis für erfolgreiche Installation feuern.
Hinweis:
In Test- und Qualitätssicherungssystemen (technisch: Level 7 Systeme), die Folgesystem mit Softwareaktualisierungen versorgen, müssen die Aufträge im Zustand „Erledigt“ sein. Außerdem wird geprüft, ob die entsprechend Supportauslieferung bereits bereit gestellt ist und nicht nur für einen speziellen Kunden gedacht ist.
Sollte eine Installation auf dem Zielsystem nicht möglich sein oder die Installation bricht ab, so werden entsprechende Ereignisse gefeuert.
Es kann vorkommen, dass einige Aufträge bzw. deren Softwareaktualisierungen nicht installiert werden konnten. Bspw. weil der Auftrag noch eine Abhängigkeit zu einem anderen Auftrag hat, der noch nicht fertig bearbeitet ist. Dies kann auch bei prinzipiell erfolgreichen Installationen geschehen. Eine Liste der Aufträge, die eigentlich installiert werden sollten, aber nicht installiert wurden, wird als Parameter des Ereignisses angehängt.
Trotz der Automatisierung sind u.U. manuelle Eingriffe in die Softwarelogistik nötig, z.B. um Kreuzabhängigkeiten aufzulösen.
Beispiel:
Softwareaktualisierung A benötigt Softwareaktualisierung B. Softwareaktualisierung B benötigt Softwareaktualisierung A.
In so einer Konstellation ist ein automatisches Freigeben der Softwareaktualisierungen nicht möglich und ein manueller Eingriff in der Anwendung „Softwareaktualisierungen“ ist nötig.
3.2 Identifikationsbereich
Feld | Erläuterung |
Ziel-System | Auswahl des Ziel-Systems, das aktualisiert werden
soll. Die Systeme, die zur Auswahl stehen, werden im Systemcockpit erfasst (Typ System, Karteireiter Editor, Karteireiter Softwareaktualisierungs-Ziel-Systeme).
|
Konfliktaufgaben aktivieren | Falls der Haken gesetzt ist, wird nach der Installation noch versucht auf dem Zielsystem potentiell vorhandene Konfliktaufgaben zu aktivieren. |
Auftragsart | Ein Entwicklungsauftrag der angegebenen Art wird automatisch angelegt, wenn dies zur Weiterverarbeitung von evtl. vorhandenen Konfliktaufgaben notwendig ist. |
Entwicklungsaufträge erledigen | Es wird versucht, betroffene Entwicklungsaufträge automatisch in den Status „Erledigt“ zu versetzen. |
Quell-Ordner | Ordner, in den das Quellsystem Softwareaktualisierungen exportiert. |
Ziel-Ordner | Ordner, aus dem das Quellsystem Softwareaktualisierungen zum Import einliest. |
Hinweis:
Die folgenden Einstellungen sind nur auf Level 1 oder 2 Standardentwicklungssystemen möglich und nötig.
Feld | Erläuterung |
Quell-Ordner | Ordner, in dem die Transportdateien liegen, die zur Aktualisierung des Zielsystems notwendig sind. |
Ziel-Ordner | Ordner des Zielsystems in den die Transporte zur
Aktualisierung des Zielsystems kopiert werden. |
Import-Ordner des Quellsystems | Ordner, in dem Transporte liegen, mit denen das Quellsystem aktualisiert wird.
Hinweis: Unverarbeitet Transporte hier verhindern den Weitertransport ins angegebene Zielsystem |
3.3 Aktivitätsdefinitionen
Die Anwendung feuert programmierte Ereignisse. Diese sind.
- cisag.sys.sis.log.RefreshTargetSystemAbort (Abbruch)
- cisag.sys.sis.log.RefreshTargetSystemNotPossible (Nicht möglich)
- cisag.sys.sis.log.RefreshTargetSystemSuccess (Erfolgreich)
Wenn Sie entsprechende Aktivitätsdefinitionen erzeugen, können Sie z.B. einem Verantwortlichen für das System per Workflow eine email schicken.
Es folgen beispielhafte Aktivitätsdefinitionen.
3.3.1 Aktivität: Abbruch
Im Folgenden die Beschreibung einer Aktivitätsdefinition, die an den Benutzer „ADMIN“ eine email mit einer Benachrichtigung über den Abbruch der Systemaktualisierung schickt. Die Platzhalter, z.B. {system}, werden für den „Betreff“ durch formatSubject bzw. für den Inhalt durch formatDescription ersetzt.
3.3.1.1 Tabellenreiter „Aktivität“
Betreff : Aktualisierung des Zielsystems {targetSystem} durch System {system} wurde abgebrochen.
Kategorie: email
Bearbeiter: Ausdruck
Bearbeitung: einzeln
Aktivitätstyp:email Nachricht
Email-versenden: immer
3.3.1.2 Tabellenreiter “Befehle”
setMailRecipientsTo(“ADMIN”); /* change to desired user */
setMailRecipientsCC(“DEPUTY”); /* maybe another user */
setMailTemplate(“”);
var targetSystem := parameters.targetSystem;
formatSubject(“system”, system);
formatSubject(“targetSystem”, targetSystem);
formatDescription(“system”, system);
formatDescription(“targetSystem”, targetSystem);
formatDescription(“description “, description);
3.3.1.3 Tabellenreiter Ereignisse
Programmiertes Ereignis : com.cisag.sys.sis.log.RefreshTargetSystemAbort
3.3.1.4 Tabellenreiter Texte
Hallo ,
Die Aktualisierung des Systems {targetSystem} durch das System {system} wurde abgebrochen.
{description}
Hinweis:
Das ist natürlich nur ein Vorschlag für den email Inhalt.
3.3.2 Aktivität: Aktualisierung nicht möglich
Falls zu dem Ausführungszeitpunkt die Aktualisierung nicht möglich ist, bspw. weil einen andere Aktualisierung bereits läuft, kann mit Hilfe der folgenden Aktivitätsdefinition darauf reagiert werden.
3.3.2.1 Tabreiter „Aktivität“
Betreff : Aktualisierung des Zielsystem {targetSystem} durch System {system} war nicht möglich.
Kategorie: email
Bearbeiter: Ausdruck
Bearbeitung: einzeln
Aktivitätstyp:email Nachricht
Email-versenden: immer
3.3.2.2 Tabellenreiter “Befehle”
setMailRecipientsTo(“ADMIN”); /* change to desired user */
setMailRecipientsCC(“DEPUTY”); /* maybe another user */
setMailTemplate(“”);
var targetSystem := parameters.targetSystem;
var description := parameters.description;
var failedAttemptCount := parameters.failedAttemptCount;
formatSubject(“system”, system);
formatSubject(“targetSystem”, targetSystem);
formatDescription(“system”, system);
formatDescription(“targetSystem”, targetSystem);
formatDescription(“failedAttemptCount”, failedAttemptCount);
formatDescription(“description”, description);
3.3.2.3 Tabellenreiter Ereignisse
Programmiertes Ereignis : com.cisag.sys.sis.log.RefreshTargetSystemNotPossible
Vorbedingung:
parameters.failedAttemptCount>1
Hinweis:
Die Vorbedingung kann man auch weglassen. Dann kommt bei jedem fehlgeschlagenen Versuch eine email.
3.3.2.4 Tabellenreiter Texte
Hallo,
Die Aktualisierung des Systems {targetSystem} durch das System {system} konnte nicht durchgeführt werden. Bislang gab es {failedAttemptCount} fehlgeschlagene Versuche.
{description}
Hinweis:
Das ist natürlich nur ein Vorschlag für den email Inhalt.
3.3.3 Aktivität: Aktualisierung erfolgreich
3.3.3.1 Tabellenreiter „Aktivität“
Betreff: Zielsystem {targetSystem} wurde erfolgreich durch System {system} aktualisiert.
Kategorie: email
Bearbeiter: Ausdruck
Bearbeitung: einzeln
Aktivitätstyp:email Nachricht
Email-versenden: immer
3.3.3.2 Tabellenreiter “Befehle”
setMailRecipientsTo(“ADMIN”); /* change to desired user */
setMailRecipientsCC(“DEPUTY”); /* maybe another user */
setMailTemplate(“”);
var targetSystem := parameters.targetSystem;
/* Format activity subject */
formatSubject(“system”, system);
formatSubject(“targetSystem”, targetSystem);
formatDescription(“system”, system);
formatDescription(“targetSystem”, targetSystem);
var notProcessed :=cast(HashMap, parameters.notProcessedOrders);
var HTML := “<HTML><HEAD> <TITLE>Resultate</TITLE></HEAD><BODY>”;
var tableHTML := “<TABLE BORDER=3>”;
var orders :=cast(HashMap[], notProcessed.orders);
var i:=0;
var added :=false;
while (i<size(orders)) {
var currentOrder := orders[i];
i:=i+1;
var currentType := cast(String, currentOrder.type);
var currentNumber := cast(String, currentOrder.number);
var since := dateString( cast(Timestamp, currentOrder.since));
if(added = false){
added := true;
tableHTML :=tableHTML +”<tr>+ <th> Type </th> <th> Nummer </th> <th> Versucht seit </th> <th> Failed </th> <th> Kommentar </th> </tr>”;
}
tableHTML :=tableHTML +”<tr> <td>”+currentType +”</td> <td>”+currentNumber + “</td> <td>”+since+”</td> “;
var reasons:=cast(HashMap[], currentOrder.reason);
var j:=0;
while(j<size(reasons)){
var currentReason := reasons[j];
var failed := cast(String, currentReason.failed);
var failedComment := cast(String, currentReason.comment);
j:=j+1;
if (j=1){
tableHTML :=tableHTML +”<td>”+ failed +” </td><td> “+ failedComment + “</td> </tr>”;
}else{
tableHTML :=tableHTML +”<tr> <td></td> <td></td> <td></td> <td>”+ failed +” </td><td> “+ failedComment + “</td> </tr>”;
}
}
}
tableHTML := tableHTML + “</TABLE>”;
if (added){
HTML :=HTML+tableHTML;
}
HTML := HTML + “</BODY></HTML>”;
formatDescriptionHTML(“table”,HTML);
3.3.3.3 Tabellenreiter Ereignisse
Programmiertes Ereignis : com.cisag.sys.sis.log.RefreshTargetSystemSuccess
Vorbedingung:
size(cast(HashMap[], cast(HashMap, parameters.notProcessedOrders).orders))>0
Hinweis:
Die Vorbedingung kann man auch weglassen. Dann kommt bei jedem erfolgreichen Aktualisieren eine email. Mit Vorbedingung nur wenn es Aufträge gibt, die aus welchem Grund auch immer nicht eingespielt werden konnten. Diese Aufträge müssten untersucht werden, wenn sie zu lange schon nicht eingespielt werden konnten. Die Gründe dafür sind sehr individuell und damit zu speziell als das man es in einer Anwendung abbilden könnte.
3.3.3.4 Tabellenreiter Texte
Hallo ,
das System {system} hat erfolgreich das Zielsystem {targetSystem} aktualisiert.
Folgende Aufträge wurden nicht verarbeitet:
{table}
Hinweis:
Das ist natürlich nur ein Vorschlag für den email Inhalt.
4 Customizing
Für die Anwendung Zielsystem aktualisieren“ sind in der Anwendung „Customizing“ keine Einstellungen festzulegen.
5 Business Entitys
Für die Anwendung „Zielsystem aktualisieren“ ist das nachfolgende Business Entity relevant, das Sie beispielsweise verwenden, um
- Berechtigungen zu vergeben,
- Aktivitätsdefinitionen einzurichten oder
- Daten zu importieren oder zu exportieren.
Einheit
com.cisag.sys.sis.obj.CodeRefreshDefinition
Das Business Entity gehört zu folgender Business-Entity-Gruppe:
SIS Objekte
6 Berechtigungen
Berechtigungen können sowohl mithilfe der Berechtigungsrollen als auch durch die Zuordnung einer Organisation vergeben werden. Das Berechtigungskonzept können Sie in der Technischen Dokumentation Berechtigungen nachlesen.
6.1 Spezielle Fähigkeiten
Für die Anwendung „Zielsystem aktualisieren“ bestehen keine speziellen Fähigkeiten.
6.2 Organisations-Zuordnungen
Für die Anwendung „Zielsystem aktualisieren“ ist eine Organisations-Zuordnung nicht erforderlich.
6.3 Besonderheiten
Für die Anwendung „Zielsystem aktualisieren“ bestehen keine Besonderheiten.
6.4 Berechtigungen für Geschäftspartner
Die Anwendung „Zielsystem aktualisieren“ ist für Geschäftspartner nicht freigegeben.