Sprachtransporte

Wenn man ein paar eigenentwickelte Transaktionen oder Reports im SAP-System in eine andere Sprache übersetzt hat, dann stellt als Nächstes sich häufig die Frage, wie diese Texte jetzt in weitere Systeme gelangen sollen. Die offensichtliche Antwort wäre, einfach noch einmal alle Objekte zu transportieren, die zu den übersetzten Transaktionen gehören. Und je nach Einstellung des Transportsystems klappt das auch ganz gut. Aber es ist schon etwas unschön, den ganzen Code noch einmal zu transportieren, wenn sich eigentlich nur die Texte auf der Benutzeroberfläche geändert haben. Vor allem dann, wenn der eigene Arbeitgeber für jeden Transport, den man weiterschiebt, umfassende Qualitätsprüfungen vorschreibt. Solche Qualitätsmaßnahmen mögen zwar sinnvoll sein für Transporte, die tatsächlich die Funktionsweise einer Transaktion u. Ä. ändern – aber Übersetzungen tun dies per Definition nicht.

Unser Beispielreport, auf Deutsch und auf Französisch!

Was sind Sprachtransporte?

Zu diesem Zweck gibt es Sprachtransporte, einen Typ von Transporten, der aus meiner Sicht viel zu selten eingesetzt wird. In Sprachtransporten werden nur die Übersetzungen transportiert, nicht die eigentlichen Entwicklungsobjekte. Das hat immense Vorteile und ist ganz einfach viel sauberer, denn man transportiert so wirklich nur dass, was transportiert werden soll. Sprachtransporte sind kein eigene Art von Transportaufträgen, sondern man verwendet einfach einen Workbenchauftrag oder einen Transport von Kopien. Zunächst zeige ich einmal kurz, wie das Ganze funktioniert, wenn man so einen Transport von Hand zusammenbaut.

Hier wurde der Report in SE63 übersetzt. Für die Qualität der französischen Übersetzung übernehme ich keine Garantie!

Beispiel

In unserem Beispiel haben wir die Textelemente des Reports /LUDECKE/TESTREPORT und des Datenelements /LUDECKE/TESTFELD aus dem Deutschen ins Französische übersetzt, einfach durch Abspringen nach SE63 aus dem jeweiligen Objekt. Dann legen wir zunächst einmal einen neuen Transportauftrag vom Typ Workbenchauftrag oder Transport von Kopien an. In die Objektliste des Transportauftrags oder der Aufgabe tragen wir nun von Hand wie unten abgebildet einige Objekt ein, in diesem Fall einen Report und ein Datenelement. Doch anstatt R3TR geben wir als Programm-ID hier LANG ein. Sobald wir die Eingabe abschließen, fragt uns das System nach einer Sprache. Hier geben wir FR ein.

In diesen Transport haben wir die Objekte, deren französische Texte transportiert werden sollen, manuell eingegeben.

Für alle weiteren Objekte vom Typ LANG, die wir eingeben, wird jetzt automatisch FR eingetragen. Wir können das jedoch manuell ändern und z. B. dasselbe Objekt mehrfach eintragen, mit unterschiedlichen Sprachen.

Freigabe des Sprachtransports

Wenn wir jetzt diesen Transportauftrag freigeben und ins nächste System importieren, wird exakt gar nichts an den eigentlichen Objekten geändert, sondern es werden nur die Übersetzungen importiert. Wenn ein Objekt im Zielsystem nicht existiert, gibt es einen RC-8. Wenn in einem Objekt im Zielsystem die Feldlänge kürzer ist als im Quellsystem, erhält man einen RC-4. In beiden Fällen werden die betreffenden Übersetzungen beim Import übersprungen, aber alle Übersetzungen, für die keine Fehler auftraten, werden erfolgreich importiert. In unserem Beispiel wurde das Datenelement /LUDECKE/TESTFELD nie ins Testsystem transportiert, daher schlägt hier der Import fehl. Die Textelemente des Reports /LUDECKE/TESTREPORT wurden aber trotz dieses Fehlers importiert.

So sieht der Fehler im Transportprotokoll aus, wenn ein Objekt, für das Übersetzungen importiert werden sollen, im Zielsystem nicht existiert.

Transaktion SLXT

Natürlich möchte niemand ständig einzelne Objekte in Transportaufträgen erfassen. Um also massenweise Übersetzungen in Transportaufträge zu schreiben, nutzt man die Transaktion SLXT. Diese Transaktion liest das Übersetzungsprotokoll aus, das beim Übersetzen geschrieben wird. Jedes Objekt, das man in Transaktion SE63 sichert, wird in dieses Protokoll geschrieben. Alle guten SAP-Übersetzungstools (natürlich auch die Übersetzungstools von LUDECKE) unterstützen dieses Übersetzungsprotokoll, und daher können mit der Transaktion SLXT auch Übersetzungen in Transportaufträge verfrachtet werden, die mit Drittanbietertools oder per Export übersetzt wurden.

In SLXT reicht es, Sprache, Transport und Zeitraum einzugeben, und schon wird ein Sprachtransport erzeugt.

In SLXT wählt man eine oder mehrere Sprachen sowie einen Transportauftrag aus, oder man gibt, wie im Beispiel, eine Beschreibung für einen neuen Transportauftrag an. Außerdem kann man auf diverse Weise die Objekte auswählen, für die Übersetzungen transportiert werden sollen. Am einfachsten finde ich die Auswahl nach Übersetzungsdatum, denn so erwischt man meistens genau die Objekte, die man benötigt. Nach dem Ausführen des Reports wird die Nummer des Sprachtransports ausgegeben, in den die Objekte geschrieben wurden. Ein Aufgabe wird hierbei nicht angelegt – die Transportobjekte landen direkt im Transportauftrag. Diesen kann man dann analog zum manuell angelegten Auftrag transportieren.