Transporte und sog. "Überholer"

Alle Fragen rund um Basisthemen
12 Beiträge • Seite 1 von 1
12 Beiträge Seite 1 von 1

Transporte und sog. "Überholer"

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
hi!

Auf unserem System wird laufend entwickelt und daher kommt es hin- und wieder auch zu Überholern. Vor allem da wir keine eigene Testabteilung haben müssen bei uns die Applikationsbetreuer das Übernehmen. Daraus ergibt sich weiters ein Terminkonflikt.
Jetzt kanns es also vorkommen, dass die Änderung A bereits auf auf dem Qualitätsicherungssystem ist, aber noch nicht fertig getestet wurde. Änderung B braucht aber teilweise Änderungen aus A, ist aber schon getestet. Typisches Linke-Hand-Weiß-Nicht-Was-Rechte-Macht-Syndrom. Transport B wird auf P-System gespielt und prompt Syntax-Error.

Ich habe jetzt den Auftrag Möglichkeiten zu finden wie man solche Probleme im Vorfeld entdecken kann.
Wir haben schon ein selbst gestrickte Lösung Einsatz, die Standard-Überholer entdeckt (Objekt A in zwei unterschiedlichen Transporten) aber das reicht (offensichtlich) nicht.

Ein Testimport, war meine erste Idee. Bringt aber nichts da z.B. die Syntax nicht mitgeprüft wird.
Ein Schattensystem ähnlich bei einem Releasewechsels wäre meine nächste Idee.

Ich habe im Zuge eines Programm-Verkaufes mal ein Tool erstellt, mit dem man dessen Abhängigkeiten ermitteln kann, um so einen vollständigen Transport zu erstellen zu können. Es ist zwar nicht ganz perfekt, schaffte aber so um die 90 - 95% eines "normalen" Programms zu ermitteln.
Die Überlegung war jetzt alle Objekte eines Auftrages mit diesem Tool zu analysieren und das Ergbnise mit der Objektliste der anderen Aufträge zu vergleichen. Sollte es eine Überschneidung geben, hat man mit ziemlicher Wahrscheinlichkeit einen Überholer.

Dann hab ich noch im Internet das Tool U:RforTIA - Utility Resolution for Transport Impact Analysis gefunden. Auf den ersten Blick scheint es genau das zu machen was ich mir bereits überlegt habe.

Kennt jemand dieses Tool und kann mir einen kurzen Erfahrungsbericht geben?
Oder weiß jemand eine andere Möglichkeit wie man Transport-Überholungen vermeiden kann? (Außer einer besseren Organisation :evil: )

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Transporte und sog. "Überholer"

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Hi ADT!
Oragnisatorisch kann man es kaum lösen/ überwachen.
Woran scheitert denn dein selbst geschriebenes Programm?
viel kann das eigentlich nicht sein, denn die Verfolgung der Objekte eines Transportauftrags ist ansich recht einfach.
Man muss halt die aktuellen Objekte aller zu transportierenden Aufträge lesen und prüfen, in welchen vorherigen Aufträgen diese enthalten waren.
Für diese Aufträge muss man dann prüfen, ob diese ins Prod-System importiert wurden. wenn ja, ist alles gut, wenn nicht, dann muss halt eine Warnung kommen "HALT! STOP! Der Auftrags muss vorher!!"
Das habe sogar ich geschafft 8) :
http://tricktresor.de/content/index.php ... 27&aID=358
funktioniert zwar nur für Reports, aber das Objekt ansich sollte ja egal sein.

Kniffelig wird es dann für Tabelleneinträge...

Das von dir erwähnte Tool kenne ich nicht, habe aber mit der Firma wegen eines anderen Tools Kontakt gehabt. Allerdings wollten sie für das Tool Geld haben, da warte ich dann erstmal, bis ich genau abschätzen kann, ob ich das wirklich brauche... ;)

Ansonsten kenne ich den realtech Transportmanager. Der ist preislich ganz ok glaube ich und funktioniert bis auf ein paar Kleinigkeiten sehr gut.

Gruß
Enno

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
a-dead-trousers


Re: Transporte und sog. "Überholer"

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Alternativ gibt es noch die Lösung "POP" von Daniel.
Vom Prinzip her sehr genial..! :up: :D

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
a-dead-trousers


Re: Transporte und sog. "Überholer"

Beitrag von black_adept (Top Expert / 4103 / 128 / 945 ) »
adt hat geschrieben:Oder weiß jemand eine andere Möglichkeit wie man Transport-Überholungen vermeiden kann?
Ich halte das für extrem schwierig - wenn überhaupt machbar. Die Ideen mit den Objektvergleichen in den Transportaufträgen gehen ja schon mal in die richtige Richtung und sollten einen Großteil der üblichen Überholer abfangen - aber folgendes Beispiel würde z.B. nicht entdeckt werden.

- Jemand entfernt ein Feld aus einer Struktur. Änderung geht in Transportauftrag #2
- Ein Programm welches dieses Feld benötigt wird auch angepasst. Leider dieses Programm wg. anderer Änderungen in einem anderen Transportauftrag #1 gesperrt.

Beide Transporte werden freigegeben und in das Q-System eingespielt ohne Fehler ( erst #1, dann #2 )

Da die Objektlisten disjunkt sind, würde ein Objektvergleich keine Kollision feststellen wenn man nun Auftrag #2 zuerst freigeben möchte, aber der Dump im Produktiv ist trotzdem vorprogrammiert. ( Dieses Szenario tritt auch dann auf, wenn mehrere Personen an ein und derselben Funktionsgruppe am rumwerkeln sind, da der Include, der die FuBa-Namen enthält in einem Auftrag gesperrt ist, der 2. der einen neuen FuBa anlegt dies aber im Allgemeinen nicht mitbekommt ).
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Transporte und sog. "Überholer"

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
ewx hat geschrieben:Woran scheitert denn dein selbst geschriebenes Programm?
viel kann das eigentlich nicht sein, denn die Verfolgung der Objekte eines Transportauftrags ist ansich recht einfach.
Naja, das Programm war für einen anderen Einsatzzweck gedacht und müsste halt erweitert werden. Die Frage ist ob es nicht dann besser wäre gleich auf ein "etabliertes" Tool zu wechseln.
Dein Beispiel (Tricktresor) ist genau, dass was wir jetzt auch schon einstzen, aber Objektabhängigkeiten werden dabei nicht erkannt.
Beispiel: Funktionsbaustein in Transport A und Aufrufstelle im Transport B.

Der realtech Transportmanager, scheint recht umfangreich zu sein und es gibt jetzt keine Infos wie das mit "Dem Vermeinden von Überholern" umgesetzt ist.

Gibts mehr Infos zu POP?
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Transporte und sog. "Überholer"

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
black_adept hat geschrieben:Ich halte das für extrem schwierig - wenn überhaupt machbar. Die Ideen mit den Objektvergleichen in den Transportaufträgen gehen ja schon mal in die richtige Richtung und sollten einen Großteil der üblichen Überholer abfangen - aber folgendes Beispiel würde z.B. nicht entdeckt werden.
...
Mir ist schon klar, dass man eine 100% Lösung nie erreichen wird.
Man wird aber sicher mit der Zeit merken bei welchen Vorgehensweisen am öftesten Probleme auftreten und entsprechende Prüfungen entwicklen können die genau da ansetzten. Um jetzt nicht das Rad wieder neu erfinden zu müssen, such ich nach bestehenden Impelementierungen um dann zu prüfen ob die für unsere Firma einsetzbar sind.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Transporte und sog. "Überholer"

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
a-dead-trousers hat geschrieben:Dein Beispiel (Tricktresor) ist genau, dass was wir jetzt auch schon einstzen, aber Objektabhängigkeiten werden dabei nicht erkannt.
Beispiel: Funktionsbaustein in Transport A und Aufrufstelle im Transport B.
Das wird auch kaum ein Tool leisten können... es sei denn: POP ;)
Ich könnte mir vorstellen, dass man den Code Inspector dahingehend erweitern könnte, dass er jedes Programm "auseinander nimmt" und prüft, ob verwendete Funktionsbausteine, Tabellen, Klassen im Q-System vorhanden sind oder nicht.
Allerdings gäbe es dann auch Abhängigkeiten, die man nicht mehr auflösen könnte:
Beispiel:
Funktionsbaustein X in Transport A und Aufrufstelle im Transport B.
Funktionsbaustein Y in Transport B und Aufrufstelle im Transport A.
Wobei das schon sehr speziell ist... ;)
a-dead-trousers hat geschrieben:Der realtech Transportmanager, scheint recht umfangreich zu sein und es gibt jetzt keine Infos wie das mit "Dem Vermeinden von Überholern" umgesetzt ist.
Hier wird wirklich jedes Objekt geprüft. Falls ein Auftrag vorher transportiert werden muss, wird man darauf hingewiesen. Wenn man den von black_adept genannten Fall hat, dann kann man einen Nachtransport mit der aktuellen Tabelle machen und im Transportmanager festlegen, dass dieser Auftrag zwingend VOR dem anderen Auftrag transportiert werden muss, damit es zu keinem Syntaxfehler kommt.
Oder man hat Transport A mit Tabellendefinition und Transport B mit der Verwendung. Dann gibt man B frei => Syntaxfehler, weil Tabelle noch nicht da ist. Dann kann man auch festlegen, dass erst A und dann B importiert werden muss.
Zudem gibt es Genehmigungsverfahren, so dass Aufträge erst freigegeben werden müssen, bevor sie ins P importiert werden.
a-dead-trousers hat geschrieben:Gibts mehr Infos zu POP?
Vieleicht direkt bei Daniel....
Ganz allgemein funktioniert das Tool so, dass die Objekte aus den Transportaufträgen nicht freigegeben werden, sondern per eigener Transaktion in das Test-System "gebeamt" werden. Wenn man dann einen Fehler feststellt, kann man diesen beheben und wieder die Objekte ins Test-System "beamen". Solange, bis jemand sagt: Alles gut. Dann wird der EINE Transportauftrag frei gegeben und transportiert.
Natürlich kann es dann immer noch passieren, dass Entwickler A die Tabelle A anlegt und Entwickler B diese Tabelle in seinem Transportauftrag verwendet. Jeder hat seine Sachen "rübergebeamt" und alles ist gut. Erst wenn Entwickler B seinen Transport ohne Tabelle A frei gibt, kracht es im P.
ein bisserl Organisation gehört halt dazu...
Ich hoffe, ich tue ihm nicht Unrecht, aber in der letzten Version konnten noch keine Klassen "gebeamt" werden. Das wäre natürlich ein KO-Kriterium. Zumindest für mich.
Auf jeden Fall ist POP ein genialer Ansatz für ein etwas anderes Transportwesen.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
a-dead-trousers


Re: Transporte und sog. "Überholer"

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
ewx hat geschrieben:Ich könnte mir vorstellen, dass man den Code Inspector dahingehend erweitern könnte, dass er jedes Programm "auseinander nimmt" und prüft, ob verwendete Funktionsbausteine, Tabellen, Klassen im Q-System vorhanden sind oder nicht.
Allerdings gäbe es dann auch Abhängigkeiten, die man nicht mehr auflösen könnte:
Beispiel:
Funktionsbaustein X in Transport A und Aufrufstelle im Transport B.
Funktionsbaustein Y in Transport B und Aufrufstelle im Transport A.
Wobei das schon sehr speziell ist... ;)
Doch, das sollte schon funktioniern.
Ich verwende derzeit die Tabellen D010SINF, D010INC, D010TAB für die Ermittlung der Abhängigkeiten (WBCROSS / Verwendungsnachweis wäre sonst auch noch möglich)
Für die Funktionsbausteine suche ich dann im Coding nach dem Schlüsselwort CALL FUNCTION und versuchen dann die entsprechende Funktionsgruppe zu ermitteln.
Das Ganze läuft rekursiv und sobald ich keine neuen Objekte mehr finde habe ich die größtmögliche Menge der betroffenen Objekte. Das ganze wird dann noch nach Namensraum (Kunde, SAP, usw.) gefiltert und übrig bleiben abhängigen (Kunden-)Objekte.

Jetzt hab ich mir gedacht, dass ich diese Ergbnisliste (nur) mit der Objektliste von anderen Transporten vergleiche um so Überschneidungen zu finden.
Aber das Ganze ist wie gsagt nur eine Überlegung und meine Befürchtung ist, dass dann plötzlich jeder Transport in diese Kategorie fallen könnte, weil meine Ermittlung der Abhängigkeiten zu umfangreich ist.

lg ADT
Zuletzt geändert von a-dead-trousers am 23.05.2012 08:16, insgesamt 1-mal geändert.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Transporte und sog. "Überholer"

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
a-dead-trousers hat geschrieben:Jetzt hab ich mir gedacht, dass ich diese Ergbnisliste (nur) mit der Objektliste von anderen Transporten vergleiche um so Überschneidungen zu finden.
Dann müsstest du ja auch noch prüfen, ob sich die Parameter von Funktionsbausteinen geändert haben und diese technisch prüfen:
Ist der Parameter von FB X, den ich im Programm verwende, auch im Zielsystem vorhanden?
Bzw: Übergebe ich alle vom FB X verlangten Parameter? (=> Erweiterte Programmprüfung, Code Inspector!)
Ziemlich viel Arbeit... Von Klassen und Vererbung wollen wir mal gar nicht erst anfangen... ;)
Könnte man sicherlich dann nach und nach implementieren, aber kommen solche Querschläger wirklich so häufig vor?

Oft ist es auch üblich, das wirklich organisatorisch zu unterstützen (nicht zu lösen! ;):
Transportiert werden darf nur nach 19:00 Uhr.
Jeder Entwickler oder ein Verantwortlicher muss nach dem Transport prüfen, ob die Transporte korrekt importiert wurden.

Re: Transporte und sog. "Überholer"

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
a-dead-trousers hat geschrieben:Auf unserem System wird laufend entwickelt und daher kommt es hin- und wieder auch zu Überholern. Vor allem da wir keine eigene Testabteilung haben müssen bei uns die Applikationsbetreuer das Übernehmen. Daraus ergibt sich weiters ein Terminkonflikt.
Jetzt kanns es also vorkommen, dass die Änderung A bereits auf auf dem Qualitätsicherungssystem ist, aber noch nicht fertig getestet wurde
Diese Frage stellte mir ein Kunde mal und ich wörtlich gesagt: Na kein Wunder, ihr transportiert hier ja auch wie in den 80er Jahren!

Ihr macht einen prinzipiellen Fehler: Wenn ein Objekt in einem Transportauftrag ist, ist es für andere gesperrt und er bekommt eine Meldung, dass er das nicht bearbeiten kann. Der Fehler ist die Freigabe des Transportauftrages vor der Produktivsetzung, denn diese Freigabe hebt die Sperrung auf.

Es gibt im Wesentlichen DREI Lösungsmöglichkeiten:
- Abwicklung des gesamten Change-Management-Prozesses mit dem Solution Manager.
- Behelfen durch die grundsätzliche Arbeitsweise des SolMan
- Das Einsetzen von POP, wie ewx schon schrieb

Wir (also eigentlich ich ;) ) haben beim obigen Kunden im Zuge eines Projektes diese drei Möglichkeiten eingehend geprüft.

Der Punkt 2 bedarf einer Erläuterung:
Der SolMan arbeitet mit Transporten von Kopien. Das kann man auch händisch. Man gibt NICHT den Transportauftrag frei, wenn man seine Objekte aufs Testsystem schieben will, sondern tut das erst zur Produktivsetzung. Vorher legt man einen sog. Transport von Kopien an, übernimmt die relevanten Objekte in diese Kopie und transportiert diese statt des Originalauftrages.

Wichtig ist dabei, dass man bei "Updates" der Änderungen nur die Objekte übernimmt, die man auch geändert hat, weil sonst von allen anderen Objekten Versionen geschrieben werden. So wird jede Versionshistorie zu einem unverständlichen Wust.

Ergebnis: Die Objekte bleiben gesperrt und kein anderer kommt heran. Wenn er heran MUSS (Fehler im P), muss er sich mit dem Sperrenden absprechen.

Zu Punkt 3: Es gibt ein Tool, dass Objekte von einem auf ein anderes System kopieren kann, das nennt sich POP. Im Zuge dieses Projektes haben wir auch diese Möglichkeit geprüft.

Entschieden wurde für Lösung 2, mit Lösung 3 arbeite ich seit geraumer Zeit (bei einem anderen Kunden) sehr erfolgreich, weil bestimmte Parameter stimmen. Ich konnte sogar mit Lösung 3 arbeiten, als beim obigen Kunden das Transportsystem komplett ausgefallen ist.

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
a-dead-trousers

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Transporte und sog. "Überholer"

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
ralf.wenzel hat geschrieben:Der SolMan arbeitet mit Transporten von Kopien. Das kann man auch händisch. Man gibt NICHT den Transportauftrag frei, wenn man seine Objekte aufs Testsystem schieben will, sondern tut das erst zur Produktivsetzung. Vorher legt man einen sog. Transport von Kopien an, übernimmt die relevanten Objekte in diese Kopie und transportiert diese statt des Originalauftrages.

Wichtig ist dabei, dass man bei "Updates" der Änderungen nur die Objekte übernimmt, die man auch geändert hat, weil sonst von allen anderen Objekten Versionen geschrieben werden. So wird jede Versionshistorie zu einem unverständlichen Wust.
Das klingt brauchbar und liese sich organisatorisch sicher umsetzten.

Ich sag mal Danke an Alle die mir inzwischen Tipps geliefert haben.
Werd dann mal die genannten Tools bzw. Vorgehensweisen genauer unter die Lupe nehmen.

Falls noch wer weitere Infos hat, bitte posten.
Vielleicht liese sich ja daraus dann hier im Forum ein Tipp-Sammlung erstellen.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Transporte und sog. "Überholer"

Beitrag von airwaver (Specialist / 134 / 0 / 1 ) »
Moin zusammen,

wir kämpfen auch ab und zu mit dem "Überholer"-Problem. Vor Jahren habe ich dazu mal eine Funktion entwickelt, die es dem Entwickler wenigstens vor Augen halten soll, dass sein geändertes Objekt bereits in einem anderen, nicht produktiven Transport enthalten ist. Die Funktion wird ausgeführt, bevor ich meine Transporte aus dem Q- in das P-System bringen möchte.

Meine Funktion geht dabei wie folgt vor:
- Objektliste des aktuellen Transportes lesen
- alle Transporte aus dem Produktionspuffer lesen
(wir haben einen virtuellen Puffer vor den eigentlichen Produktionspuffer geschaltet)
(damit erwische ich alle Transporte, die noch nicht nach Produktion gegangen sind)
- Vergleich der einzelnen Objekte des Transports #1 mit allen Objekten aus den Puffer-Transporten
- bei Überschneidung wird geprüft, ob der Transport #1 nach oder vor dem gefunden Puffer-Transport in den Puffer gekommen ist
- wenn nachher, dann wird ein entsprechender Hinweis ausgegeben

Was meine Funktion nicht leistet, ist ein Abgleich von Tabelleninhalten oder das Überprüfen der Verwendung (wie oben bereits beschrieben). Wir sind jedoch alle zufrieden mit der Funktion. Sie zeigt zumindest auf, dass ich mir die anderen Transporte mal ansehen sollte.

Im vorletzten und letzten Jahr wurden allerdings größere Einführungen gemacht. Dabei gab es seeehhhrrrr viele Transporte. Diese dann in entsprechender Reihenfolge zu transportieren und vorher noch die Abhängigkeiten zu prüfen, war fast unmöglich. Es waren einfach zu viele Änderungen. Da entstand der Auftrag den Realtech TransportManager zu prüfen. Diesen werden wir uns demnächst mal ansehen und eine Probe-Installation machen. Außerdem überlegen wir den SyncAssist einzusetzen. Dazu schreibe ich gleich einen neuen Threat. Vielleicht könntet ihr mir dazu beim Brainstorming helfen?
POP kannte ich bisher nicht. Werde ich mir auch gleich einmal ansehen.

@ADT: Vielleicht konnte ich dir ja noch einen Denkanstoß geben.

Gruß an alle
Andy

Seite 1 von 1

Vergleichbare Themen

2
Antw.
720
Views
Transporte und überholer
von kaim77 » 06.01.2022 14:58 • Verfasst in ABAP® für Anfänger
0
Antw.
3117
Views
Webservice & Transporte
von debianfan » 07.06.2017 11:02 • Verfasst in Web Application Server
1
Antw.
1301
Views
Transporte zu Paketen
von gse » 07.06.2006 10:17 • Verfasst in ABAP® Core
2
Antw.
3096
Views
Importqueue Transporte
von dkast » 09.06.2017 10:17 • Verfasst in ABAP® Core
0
Antw.
1498
Views
FuGru / Namensraum / WB-Transporte
von bapimueller » 18.09.2018 12:46 • Verfasst in Basis

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8528
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2431
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3711

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8528
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2431
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3711

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor einer Woche von Manfred K. 1 / 2842
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Wochen von snooga87 1 / 4651