Schlagwort-Archive: ABAP

Manchmal reicht eine einfache CDS View nicht aus, um die Daten für eine E-Mail zusammen zu tragen. Bei komplexen Business Logiken kann der Aufwand, dies in Views abzubilden, groß sein. Möglicherweise existieren aber bereits Funktionsbausteine oder Klassen, welche die Daten bereitstellen.

Auf der folgenden Seite ist beschrieben, wie ein E-Mail Template mittels ABAP Code mit Daten versorgt werden kann.

... weiterlesen

Mit S/4-HANA führt SAP eine neue Möglichkeit zum E-Mail Versand ein. Bisher wurden E-Mail Vorlagen als SAPScript- oder Standard Texte definiert.

Unter S/4-HANA können E-Mail Templates als ABAP Entwicklungsobjekte definiert werden. Diese basieren auf einer CDS View, deren Daten innerhalb der E-Mail verwendet werden können.

Dieser Beitrag ist der erste in einer Serie über die Verwendung von E-Mail Templates. Beginnen wir zunächst mit der Definition eines Templates.

... weiterlesen

Problem

Aus SAP heraus soll ein bestehendes PDF Dokument gedruckt werden. Das Dokument wurde nicht mittels Adobe Forms Service erstellt, sondern z.B.: über Dienste zum Objekt an einen Materialstammsatz abgelegt.

Auf dieser Seite ist beschrieben, wie ein PDF Dokument, welches im SAP Dokumentenmanagementsystem abgelegt ist oder mittels GUI_UPLOAD hochgeladen wurde, mittels ABAP ausgedruckt werden kann.

... weiterlesen

Die Texte einer BSP Applikation werden in dem Online Text Repository gespeichert (OTR) Dabei werden zwei Arten von Texten unterschieden, Kurztexte (max. 255 Zeichen) und Langtexte.

OTR

Das Online Text Repository dient zum Speichern und Verwalten von Texten. Die Texte können wiederverwendbar sein. Es können aber auch Texte abgelegt werden, die nicht wiederverwendet werden können. Jeder Text erhält eine eindeutige ID (GUID)

Kurztexte

Kurztexte sind maximal 255 Zeichen lang und können in anderen Applikationen wiederverwendet werden.

Anlegen

Aus dem Web Application Builder heraus lassen sich die verfügbaren Standardtexte anzeigen

Zudem können hier neue Texte erstellt werden.

Jeder Text erhält dabei einen eindeutigen Alias, über den er wiederverwendet werden kann.

Einbinden

Eingebunden wird der Text über seinen Alias Namen

<htmlb:group id    = "BASIC_DATA"
             title = "<%= OTR(SOTR_VOCABULARY_BASIC/BASIC_DATA) %>" >

Übersetzen

Zur Übersetzung kann die Transaktion SOTR_EDIT verwendet werden. Dazu einen Kurztext im Änderungsmodus öffnen und dann über Springen -> Übersetzung in die Übersetzung verzweigen.

Langtexte

Langtexte können länger als 255 Zeichen sein, sie werden aber nicht wiederverwendet. Außerdem sollte der Gebrauch von Langtexten sparsam verwendet werden (siehe weiter unten).

Anlegen/Einbinden

Das Anlegen und Einbinden erfolgt in einem Schritt. Zunächst muss der Text in einem <OTR> Tag eingebunden werden. Der Text wird hier in der Originalsprache abgelegt. Durch Aktivieren der Seite wird der Text automatisch im OTR angelegt, intern wird der (nach wie vor sichtbare Text) durch die GUID des OTR Textes ersetzt.

<htmlb:textView text = "<otr>Hier steht der ganz wichtige Text</otr>" />

Wird der Text nun nochmals im Original geändert und die Seite aktiviert, wird ein neuer OTR Text abgelegt. Dies führt zu zahlreichen, verwaisten Einträgen, wenn z.B. Rechtschreibfehler korrigiert werden.

Um einen fehlerhaften Eintrag zu korrigieren, muss man die SOTR_EDIT verwenden. AUF KEINEN FALL den fehlerhaften Eintrag in der BSP Applikation innerhalb des <OTR> Tags korrigieren.

Übersetzen

Die Übersetzung erfolgt direkt aus dem Web Application Builder.

Nur über diesen Weg ist eine korrekte Übersetzung gewährleistet. Wird die Übersetzung im SOTR_EDIT vorgenommen, kann der Verwendungsnachweis verloren gehen, wenn der Originaltext angepasst wird. Dies führt zu einem Verlust der Übersetzung.

Zahlreiche Tabellen in SAP bestehen aus sehr vielen, fast gleich lautenden Spalten. In Customizing Tabellen findet man oft eine Situation wie in folgendem Beispiel aus dem WM Umfeld vor.

Die Tabelle T334p enthält alle Lagerplatztypen, auf denen in einem bestimmten Lager ein bestimmter Lagereinheitentyp gelagert werden kann.

In einem Programm sollen nun zu einem Datensatz alle Lagerplatztypen durchlaufen/verarbeitet werden. Hier wäre eine Schleife um die einzelnen Spalten hilfreich. Zwar gibt es im ABAP Sprachumfang keine passende Anweisung, ich möchte an dieser Stelle aber eine Lösung vorstellen, mit der solche Tabellen komfortabel verarbeitet werden können.

... weiterlesen