Autoren-Archive: Patrick Weber

Introduction

As mentioned in the last blog of this series, we defined our own Clean Core Index. Clean Core Index is a KPI to measure our Clean Core compliance. A Clean Core Index of 0 means, our system is 100% Clean Core compliant and can be run in a public cloud scenario.

The Clean Core Index is one of the most important aspect in our Clean Core strategy. For details about our strategy, please refer to the previous blog entry of this series.

... weiterlesen

Introduction

You may have heard about the term "Clean Core". This blog will not explain what Clean Core means. I've spend lot of time to get familiar with Clean Core and found many great resources and blogs explaining almost all aspects. I don't want to repeat them here.

This blog series instead focuses on what we learned about Clean Core, what our Clean Core strategy looks like and how we try to get back control about our custom developments.

... weiterlesen

Der Change Pointer ist eine komfortable Funktion, um Stammdatenänderungen, etwa Materialstammdaten, an Drittsysteme weiterzugeben. Dabei wird im Falle einer Änderung ein IDOC erstellt, welches die Segmente enthält, deren Daten geändert wurden.

Eine Delta-Versorgung des Drittsystems ist jedoch nicht immer gewünscht oder möglich. Der SAP Standard sieht leider keine Möglichkeit vor, ein vollständiges IDOC im Falle einer Stammdatenänderung zu versenden.

In der SAP Community wird seit Jahren daher vorgeschlagen, mittels Modifikation oder Kopie des Reports

RBDMIDOC begegnen.

Im Wesentlichen werden dabei stets die geschriebenen Daten des Change Pointers (Tabelle BDCP unter ECC, BDCP2 unter S/4) geändert und die Spalte FLDNAME mit dem Wert ALELISTING belegt.

Statt der Kopie oder der Modifikation kann auch das BAdI BDCP_BEFORE_WRITE verwendet werden

... weiterlesen

Eine Fiori Elements ListReport Applikation bietet auf der Listenansicht eine Filterleiste. Hierüber kann der Listenumfang basierend auf Filterausdrücken eingeschränkt werden. Im Filter werden allerdings nur Spalten angeboten, welche in der zugrundeliegenden CDS View (konrekt in der root view) angeboten werden.

Mittels virtual elements kann man darüber hinaus auch Filter zu Spalten anbieten, die nur in einer Assoziation der root view enthalten sind.

... weiterlesen

Wie hier beschrieben PDF Dokumente in ABAP zusammenführen soll ein bestehendes PDF Dokument aus dem KPRO auf der Rückseite eines anderen PDF Dokuments, welches mittels ADS erstellt wird, eingebettet werden. Das auf der genannten Seite beschriebene Vorgehen funktioniert nur dann zuverlässig, wenn beide PDF Dokumente das gleiche Papierformat verwenden.

Im vorliegenden Fall wird ein PDF im DIN-A4 Format erstellt. Das einzubettende PDF Dokument liegt jedoch im DIN-A2 Format vor. Das Zusammenführen der Dokumente funktioniert zwar, der spätere Ausdruck auf einem DIN-A4 Drucker hingegen nicht. Die Zeichnung wird nicht skaliert ausgegeben.

Lösung

Wenn die Zeichnung als Bildformat vorliegt, kann die Ausgabe in einem Image Container im ADS erfolgen. Die Bilder werden in diesem Fall passend in den Container skaliert.

Mittels der Klasse ZCL_BC_PDF_CONVERTER kann ein existierendes PDF Dokument in ein Bildformat konvertiert werden. Die Klasse nimmt das PDF als XSTRING entgegen. Die Konvertierung selbst wird auf dem Application Server mittels System Kommando durchgeführt. Dabei wird das Tool pdftoppm (poppler-utils), welches bereits in der Linux Distribution des Application Server enthalten ist, genutzt.

Voraussetzung

Mit der Transaktion SM69 wird ein Systemkommando wie folgt definiert

Nutzung der Klasse

Die Konvertierung kann wie folgt durchgeführt werden

data: lv_data type xstring,
      lv_result type xstring,
     
      " auslesen des PDF aus dem kpro, Spool oder andere Quelle.
      " das PDF muss als Binärdaten vorliegen, nicht als Datei
     
          DATA(lo_converter) = NEW zcl_bc_pdf_converter(  ).
          lo_converter->set_source_data( lv_data ).
          lo_converter->convert(  ).
          lv_result = lo_converter->get_conversion_result(  ).

Zur Konvertierung werden temporäre Dateien auf dem Application Server angelegt und nach der Konvertierung gelöscht.

Verweis

Bei Interesse finden Sie die Klasse unter folgendem Repository

https://github.com/sap-weberpatrick/zcl_bc_pdf_converter

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