Transportauftrag und Transportaufgabe

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

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 / SE09 (Transport Organizer)

  • Zwischen den Transaktionen SE10 und SE09 gibt es in aktuellen SAP-Systemen keinen funktionalen Unterschied und es sollte auch keine unterschiedlichen Berechtigungen bei den Transaktionen SE09 und SE10 geben.
  • Meist nutzen die SAP-Berater/Entwickler die Transaktion SE10.

SE10 13.jpg

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 SE10 5.jpg oder F7.

SE10 1.jpg

Liste Transporte im Transportorganizer

  • Im Mandanten 125 (Kurzbezeichnung "Customizing") gibt es hier Workbenchaufträge.
  • 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

SE10 2b.jpg

Eigenschaften eines Transportauftrages

SE10 4.jpg

Dokumentation eines Transportauftrages

SE10 4.jpg

Oftmals hilft es zum Transportauftrag zu dokumentieren

  • Ticketnummer und Titel des Tickets
  • Ansprechpartner
    • Entwickler
    • Berater
    • Fachbereich
  • Wichtigste Entwicklungsobjekte im Transport
  • Abhängigkeiten zu anderen Transporten (sofern vorhanden)
  • Kurzbeschreibung zu Änderungen im Transport

Speziell wenn bei den Entwicklungen mit Transporte von Kopien ins Q gearbeitet wird, hat man in der Regel beim Produktivtransport nur einen Transportauftrag - und bei diesem lohnt es sich dann auch einige Minuten in die Dokumentation zu investieren unter dem Reiter "Dokumentation". Wenn man dann noch externe Dokumentation erstellen muss, kann man diese Dokumentation auch per copy&paste übernehmen und spart so Zeit bei der externen Dokumentation. Diese Dokumentation auf dem Reiter "Dokumentation" kann man für jeden Transportauftrag erstellen, der ins Produktiv geht. Transporte von Kopien sollte man nicht dokumentieren, um redundante Dokumentation zu vermeiden. Letztlich interessieren nur die Transporte, die ins Produktiv gehen sollen, bzw. bereits gegangen sind.

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. Aber hier lohnt der Versuch. wenn man sich ein Entwicklungsobjekt näher anschauen will.

SE10 3.jpg

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.

Standardtransportauftrag1.jpg


Man klickt auf den gewünschten Transportauftrag und wählt im Kontextmenü "Standardauftrag setzen".

Standardtransportauftrag2.jpg


Die Farbe des Transportauftrags ändert sich auf weiß.

Standardtransportauftrag3.jpg


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.
  • 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 abgewiesenn 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.

SE10 14.jpg

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/der 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

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", 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.

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 SCC1 (Kopie Transportauftrag zu Mandant)

Freigabestatus Transporte zurücksetzen (Report Report RDDIT076)

  • Sehr spannend ist, dass SAP einen Report RDDIT076 entwickelt hat, um auch bereits frei gegebene Transportaufgaben und sogar freigegebene Transportaufträge den Freigabestatus wieder zurücksetzen zu können.
  • Es soll aber nur in manchen SAP-Systemen funktionieren und im Oktober 2021 mit dem einem Sicherheitshinweis inaktiv gemacht werden.
  • Auch wenn es möglich ist, sollte man diese Funktion nur für freigegebene Transportaufgaben nutzen.
  • Siehe https://rz10.de/sap-basis/transport-management/sap-transport-status-zuruecksetzen/

Freigabestatus Transportaufgabe zurücksetzen im Debugger SE16

  1. SE16 ausführen mit einer Tabelle und Tabellenübersicht anzeigen in der Sicht "SAP Standardliste".
  2. Doppelklick auf einen Datensatz
  3. In OK-Code-Zeile „/h“ eingeben und ENTER.
  4. Der Debugger wird ausgeführt
  5. Variable CODE eingeben. Inhalt ist "SHOW".
  6. Wert der Variable CODE in "EDIT" ändern und F8.
  7. 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 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.

SE10 6.jpg

Bei einem fehlerhaften Transport setzt man den Cursor auf den Transportauftrag und drückt in der Symbolleiste auf SE10 7.jpg.

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 SE10 7.jpg.

SE10 8.jpg

Hier muss auf das Symbol SE10 10.jpg geklickt werden.

SE10 9.jpg.

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.

SE10 11.jpg

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.

SAP-Tabellen Transportaufträge

Web-Links

Literatur