Transportauftrag und Transportaufgabe
Siehe Kategorie: Transportauftrag.
Siehe Basis.
Siehe Access Tabellenbeziehung Transportauftrag/-Aufgabe.
Die Transaktion SE10 Transportorganizer verwaltet die Transportaufträge des Systems.
Transportauftrag und Transportaufgabe
- Leicht zu verwechseln sind die beiden Begriffe "Transportauftrag" und "Transportaufgabe".
- Zu einer Transportaufgabe gehört in aller Regel ein oder mehrere Transportaufträge. Sie stehen in einer 1-N-Beziehung. Eine Transportaufgabe ist immer genau einem Transportauftrag zugeordnet und ein Transportauftrag kann N Transportaufgaben haben.
- Wird ein Entwicklungsobjekt im Entwicklungssystem angelegt oder geändert und es gibt noch keinen Transportauftrag zu diesem Entwicklungsobjekt, öffnet sich ein Fenster und fragt nach einem offenen Transportauftrag oder man legt einen neuen Transportauftrag an. Wenn man dann das Entwicklungsobjekt zu diesem Transportauftrag speichert, wird automatisch auch eine Transportaufgabe unterhalb des Transportauftrags angelegt und das Entwicklungsobjekt darin gespeichert.
- Weitere Transportaufgaben zum Transportauftrag werden benötigt, wenn mehrere Entwickler dem Transportauftrag zugeordnet sind. Eine Transportaufgabe wird genau einem SAP-User zugeordnet. Eine Anlage einer Transportaufgabe ohne SAP-User oder mit mehr als einem SAP-User ist nicht möglich.
- Mehrere Transportauftragen unterhalb eines Transportauftrags entstehen auch dann, wenn Transportaufgaben freigegeben sind, aber der Transportauftrag noch nicht. Freigegebene Transportaufgaben können keine weiteren Entwicklungsobjekte aufnehmen.
Transaktion SE10 (Transport Organizer)
- Zwischen den Transaktionen SE10 und SE09 gibt es in aktuellen SAP-Systemen keinen großen funktionalen Unterschied. Der Unterschied besteht nur in der Vorselektion der Transporttypen. Workbench-Objekte, Customizing-Objekte und Transporte von Kopien. Aber das kann auch in beiden Transaktionen geändert werden. Die meisten arbeiten in der Transaktion SE10.
Transportorganizer Einstieg
Selektion nach
- Benutzer (Default ist der eigene Benutzername)
- Auftragstyp (Meist "Customizing-Aufträge" und "Workbench-Aufträge"). Häufig auch "Transporte von Kopien".
- Auftragsstatus ("Änderbar" und "Freigegeben").
- Im Datumsfeld nach "Freigegeben" selektiert man z. B. die letzten 6 Monate.
Die Transporte werden aufgerufen durch den Button
oder F7.
Liste Transporte im Transportorganizer
- Hier im Projektbeispiel gibt es den Mandanten 125 (Kurzbezeichnung "Customizing") und es sind Workbenchaufträge zu sehen.
- Das Zielsystem ist /TP_ECC/ (Kurzbezeichnung "Transportgroup ECC 6.0 Systems").
- Hier gibt es die zwei Transportaufträge E01K988949 und E01K988945 vom Benutzer ..UE006.
- Zum Transport E01K988945 gibt es eine Transportaufgabe E01K988946.
- In der Transportaufgabe gibt es u. a. Funktionsbausteine, Reporte, Tabellen, Funktionsgruppen und Transaktionen.
- Es gibt z. B. die Funktionsbausteine /XXX/SD_GET_DATA_TRANSPORT und /XXX/SD_SPLIT_LFRGN_JE_WE
Eigenschaften eines Transportauftrages
In den Eigenschaften vom Transportauftrag sieht man neben dem Transportauftrag
- Kurzbeschreibung Transportauftrag (Meist Ticketnummer/Projektname o. ä. und sprechende Bezeichnung)
- Zielgruppe (dahinter stehen die SAP-Zielsysteme)
- Quellmandant
- Inhaber (SAP-Name)
- Status (Änderbar oder Freigegeben)
- Letzte Änderung (Datum und Uhrzeit)
- das Feld Projekt ist in aller Regel leer
Dokumentation eines Transportauftrages
In aller Regel wird die Dokumentation des Transpauftrags nicht gepflegt. Aber es kann durchaus hilfreich sein.
- Ticketnummer/CR/Projekt und Kurzbeschreibung
- Link zum Ticket
- Ansprechpartner (Entwickler, Berater, Fachbereich)
- Wichtigste Entwicklungsobjekte im Transport
- Abhängigkeiten zu anderen Transporten (sofern vorhanden)
- Kurzbeschreibung zur Funktionalität im Transport
Diese Dokumentation sollte nur man nur bei Workbench-Transporten und Customizing-Transporten erstellen und nicht bei Transporte von Kopien. Alle Objekte von Transporten von Kopien haben eine Repräsentation in einem Workbench-/Customizingauftrag und daher wäre eine Dokumentation in Transporten von Kopien redundant und unnötig.
Bei den Transporten, die auch ins Produktivsystem gehen, lohnt es sich einige Minuten in die Dokumentation zu investieren unter dem Reiter "Dokumentation". Diese kleine Dokumentation kann man oft in den Kopfbereich eines Programms übernehmen per copy&paste und spart so Zeit bei der Codingdokumentation. Die Dokumentation vom Transportauftrag hilft dem Entwickler auch selber sich zu erinnern über den Zweck eines Transportauftrags.
Sprung zum Entwicklungsobjekt
Ein Doppelklick auf den Funktionsbausteinnamen /XXX/SD_GET_DATA_TRANSPORT ruft den Funktionsbaustein in der Transaktion SE37 (Function Builder) auf. Ein Doppelklick auf das Eintrag zum Entwicklungsobjekt mit Öffnung der passender Bearbeitungstransaktion klappt bei vielen Entwicklungsobjekttypen. Bei vielen auch nicht. Dann muss man die passende Transaktion kennen um sich das Entwicklungsobjekt aufzurufen. Der Doppelklick klappt z. B. bei Programmen, Funktionsbausteinen und Klassen.
Entwicklungsobjekte zum Transportauftrag hinzufügen
Es lassen sich sowohl zur Transportaufgabe, als auch zum Transportauftrag manuell Objekte hinzufügen. Gewöhnlich erscheint eine Dialogbox bei einer Änderung oder Neuanlage eines Entwicklungsobjektes, wo man dem Entwicklungsobjekt einen Transportauftrag zuweist. Manche Objekte, wie z. B. SAPscript-Formulare (Transaktion SE71) oder SAPscript-Textbausteine (Transaktion SO10) sind so programmiert, dass keine Dialogbox zum Hinzufügen zu einem Transportauftrag erscheint. Hier können die Objekte im Transportorganizer hinzugefügt werden durch die Angabe ihres eindeutigen Keys.
- PGMID
- OBJECT
- OBJ_NAME
Standardtransportauftrag festlegen
Gerade in einem größeren Entwicklungsobjekt hat man manchmal lediglich einen Workbench- oder Customizing-Transportauftrag, in den man über einen längeren Zeitraum viele Entwicklungsobjekte hineinspeichert. Da nervt es etwas, wenn man bei jedem neuen Entwicklungsobjekt immer wieder auf jeweils den gleichen Transportauftrag verweisen muss.
Man kann jedoch einen Transportauftrag als Standard erklären.
Man klickt auf den gewünschten Transportauftrag und wählt im Kontextmenü "Standardauftrag setzen".
Die Farbe des Transportauftrags ändert sich auf weiß.
Bei einem neuen Entwicklungsobjekt wird dieser Transportauftrag nun gleich zum Speichern vorgeschlagen.
Transportaufträge verschmelzen
- Manchmal passiert es, dass man versehentlich zwei Transportaufträge angelegt hat für die gleiche Entwicklung und dies dann erst während der Entwicklung auffällt und bereits Objekte in beiden Transportaufträgen sind oder verschiedene Entwickler wollen ihre Entwicklungen zu einem Projekt zusammenführen.
- Hier kann man die Aufträge verschmelzen. Man klickt einen Transportauftrag mit der rechten Maustaste an und wählt den Eintrag "Aufträge verschmelzen". Die Objekte von einem Transportauftrag werden in den zweiten Transportauftrag verschoben und anschließend der erste Transportauftrag gelöscht.
Entwicklungsobjekte verschieben
- Es lassen sich Objekte von einer Transportaufgabe in eine andere Transportaufgabe eines anderen Transportauftrags verschieben mit dem Button "Objekt verschieben".
- Ist die Transportaufgabe bereits freigegeben, dann scheitert zunächst das Verschieben mit einem Hinweis auf die Sperrung im aktuellen Transportauftrag. Dann muss auf der Ebene des Transportauftrags das Objekt zunächst aus dem Transportauftrag herausgelöscht werden, ehe man das Entwicklungsobjekt auf der Ebene der Transportaufgabe verschieben kann. Ebenso würde zunächst das Verschieben abgewiesen werden, wenn das Entwicklungsobjekt in einer anderen Transportaufgabe gesperrt ist und hier die Transportaufgabe noch nicht freigegeben ist. Dann sollte man in dieser noch nicht freigegebenen Transportaufgabe das Verschieben vollziehen.
Transportaufgabe freigeben
- Entwicklungsobjekte, die bei der Aktivierung einem Transportauftrag hinzugefügt werden, werden einer Transportaufgabe zugeordnet. Hier stehen die Entwicklungsobjekte in der Tabelle E071 auch zunächst nur auf der Ebene der Transportaufgabe.
- Erst bei der Freigabe einer Transportaufgabe werden deren Objekte in der Tabelle E071 auch zum Transportauftrag kopiert. Siehe Access Tabellenbeziehung Transportauftrag/-Aufgabe.
Transporte von Kopien
- Transporte von Kopien können Objekte von normalen Workbench-/Customizing-Aufträgen aufnehmen. Die Transporte von Kopien sind dafür da zwischen den Systemen zu transportieren - ob sie landen nicht in der Transportqueue vom Produktivsystem. So können die Originaltransporte so lange offen bleiben, bis die Produktivfreigabe erfolgt. Es ist dann sehr elegant auch bei umfangreichen Entwicklungen nur 1-2 Transportaufträge ins Produktivsystem transportieren zu müssen. So bleibt die Transportqueue vom Produktivsystem auch deutlich übersichtlicher.
- Transporte von Kopien
Andere Transaktionen
Transaktion SCC1 (Kopie Transportauftrag zu Mandant)
Transaktion SE01 (Transport Organizer erweiterte Sicht)
- Über die Transaktion SE01 lassen sich einzelne Transportaufträge aufrufen und nach Objekten suchen über alle Transportaufträge.
Transaktion SE03 (Transport Organizer Tools)
Transaktion STMS (Transport Management System)
- Mit der Transaktion STMS werden Transporte von einem SAP-System zum nächsten transportiert.
- Wird ein Transportauftrag freigegeben, wird entsprechend der eingestellten Transportschicht der Auftrag in die eingestellten Importqueues der eingestellten SAP-Systeme eingestellt, aber nicht automatisch importiert.
- Man markiert in der STMS den Transportauftrag und klickt dann auf den "LKW"-Symbol, um den Auftrag zu importieren.
- Bei vielen Kunden ist auch ein Job aufgesetzt, der in einem bestimmten Intervall (z. B. 5 Minuten) die noch nicht importierten Transportaufträge ins Qualitätssystem importiert. Der Transport ins Produktivsystem wird von der Basis (oder vom Berater/Entwickler, je nach Organisationsstruktur) manuell importiert - manchmal zu festgelegten Transporttagen. Wenn sehr viele Objekte neu generiert werden (z. B. bei einer Änderung eines Z-Appends bei der Tabelle VBAK), ist es dringend angeraten den Produktivtransport am späten Abend oder Wochenende zu machen, wenn möglichst wenige/keine User im Produktivsystem arbeiten und keine Jobs laufen.
Freigabestatus Transportaufgabe zurücksetzen im Debugger SE16
- Im Feld E070-TRSTATUS steht der Freigabestatus von der Transportaufgabe und vom Transportauftrag. Möglich ist es mit dem Debugger über SE16 den Freigabestatus wieder von R (Freigegeben) auf D (Änderbar) zurück zu setzen.
- Siehe https://intellify.de/blog/sap-bw-on-hana/sap-transportauftrag-freigabestatus-zuruecknehmen
- SE16 ausführen mit einer Tabelle und Tabellenübersicht anzeigen in der Sicht "SAP Standardliste".
- Doppelklick auf einen Datensatz
- In OK-Code-Zeile „/h“ eingeben und ENTER.
- Der Debugger wird ausgeführt
- Variable CODE eingeben. Inhalt ist "SHOW".
- Wert der Variable CODE in "EDIT" ändern und F8.
- Nun können alle Werte des Datensatzes (bis auf den Key) geändert werden.
Fehlerhafte Transporte (Returncode 8) analysieren und korrigieren
Es kommt regelmäßig vor, dass ein Transport nicht fehlerfrei ins Zielsystem transportiert werden kann, weil z. B. ein abhängiges Objekt nicht im Transportauftrag und nicht im Zielsystem vorhanden ist. In diesem Fall bekommt man den Returncode 8 und der Fehler ist zu analysieren und korrigieren. Hier ist der Transportauftrag E01K989403 auf einen Fehler gelaufen. Diese Transportfehler sind zeitnah zu korrigieren, weil sehr häufig Teile des vom fehlerhaften Transport ins Zielsystem transportiert wurden und hier nun Syntaxfehler (z. B. in Programmen oder Klassen) verursachen. Auch bei einem Returncode 8 sind alle Objekte ins Zielsystem transportiert und das kann auch nicht rückgängig gemacht werden.
Bei einem fehlerhaften Transport setzt man den Cursor auf den Transportauftrag und drückt in der Symbolleiste auf
.
Die Transportprotokollübersicht erscheint. Rot sind die Zeilen markiert, die auf einen Fehler gelaufen sind. Die zu transportierenden Objekte sind nicht alle vollständig im Zielsystem angekommen. Man klickt auf der betreffenden Zeile wieder auf
.
Hier muss auf das Symbol
geklickt werden.
Nun erscheint eine Erklärung. In diesem Fall wurde das Top-Include zum Report "/XXX/SD_SHIPMENT_ADVICE_TOP" in einem anderen Transportauftrag gespeichert. Das führte dann zum Syntaxfehler im Zielsystem im Report.
Es wird nun in diesem Fall das fehlende Objekte in einen neuen Transportauftrag gespeichert und der alte Transportauftrag kann erneut - nun fehlerfrei - importiert werden. Alternativ kann im neuen Transportauftrag der alte Transportauftrag aufgenommen werden und der alte Transportauftrag gelöscht werden.
Ein "Klassiker" bei einem fehlerhaften Transport ist, dass man eine Tabelle oder Struktur angelegt hat und hier kundeneigene Datenelemente (Z-Objekte) verwendet werden, von denen man davon ausgeht, dass sie in allen SAP-Systemen vorhanden sind. Diese Datenelemente (und zugehörige Domänen) dann aber in der Entwicklung in einem anderen Transportauftrag sich befinden, der noch nicht ins Q/P-System transportiert wurde.
Sperren in Transportaufträgen
- Wird ein Entwicklungsobjekt geändert/angelegt, wird die Änderung in einem Transportauftrag gespeichert. Ändert nun der gleiche Entwickler oder ein anderer Entwickler das gleiche Entwicklungsobjekt, wird die weitere Änderung automatisch im gleichen Transportauftrag gesperrt. Ändert ein anderer Entwickler das Entwicklungobjekt, wird im gleichen Transportauftrag eine neue Transportaufgabe angelegt und die Änderung dort gespeichert. Beide Entwickler arbeiten jedoch immer mit dem aktuellen Stand des Objektes.
- Die Entwickler können somit am gleichen Entwicklungsobjekt arbeiten. Aber jedoch nicht zur gleichen Zeit, da im Moment der Bearbeitung eines Entwicklungobjektes eine Schreibsperre gesetzt wird. Möchte der zweite Entwickler am Entwicklungsobjekt eine Änderung vornehmen, dann müsste der erste Entwickler erst einmal aus dem Änderungsmodus in den Anzeigemodus bezüglich dem Entwicklungobjektes wechseln oder die Änderungstransaktion verlassen.
- Das Entwicklungsobjekt könnte einem zweiten Transportauftrag manuell hinzugefügt werden. Aber die Sperre bleibt bei einem Transportauftrag. Das manuelle Hinzufügen macht man manchmal, um z. B. ein Entwicklungsobjekt über einen Transportauftrag schon einmal ins Produktivsystem zu bringen, wobei im anderen Transportauftrag noch viele Objekte sind, die noch noch nicht ins Produktivsystem dürfen, weil sie in der laufenden Entwicklung sind.
SAP-Tabellen Transportaufträge
Web-Links
- SAP-Hilfe: Transport-Organizer
- SAP-Hilfe: Funktionen des Transport-Organizers
- my.theobald-software.com: Import Transport Request with STMS (EN)
Literatur
- ABAP Workbench - 100 Tipps & Tricks, von Christian Assig, S. 734












