CORRESPONDING – MAPPING: nicht namensgleiche Felder mappen

Ich bin letztens auf ein Problem gestoßen, auf das bestimmt viele schon einmal gestoßen sind: Ich habe zwei Tabellen und möchte die Werte von der einen Tabelle in die andere übertragen. Easy going möchte man meinen, ich kann ja einfach MOVE-CORRESPONDING verwenden. Aber was macht man, wenn ein oder mehrere der Felder nicht namensgleich sind„CORRESPONDING – MAPPING: nicht namensgleiche Felder mappen“ weiterlesen

Transport Management System: TMS Auftragsmonitor

Die Übersicht über SAP Transportaufträge im Transport Management System zu behalten, ist ohne ChaRM nicht einfach. In welche Systeme, welche Aufträge importiert sind, wird häufig manuell und fehleranfällig über eine Schattenbuchhaltung in Excel realisiert. In diesem Beitrag implementieren wir einen TMS Auftragsmonitor, der uns die Übersicht über die Importe liefert. Damit wird kein Auftrag mehr„Transport Management System: TMS Auftragsmonitor“ weiterlesen

Ranorex Testautomatisierung mit SAP Funktionsbausteinen

Ranorex ist primär ein Werkzeug für den Test auf Ebene von User Interfaces (UI). SAP lässt sich mit Ranorex analog zu Web und Windows Anwendungen auf dieser Ebene testen. Eine bessere Alternative zum Test auf UI-Ebene ist der Test auf Serviceebene gemäß der Test Pyramide. Vorteile sind die bessere Wartbarkeit der Testfälle sowie die schnellere„Ranorex Testautomatisierung mit SAP Funktionsbausteinen“ weiterlesen

Transport Management System: Transport von Kopien Erzeuger

Eine typische Situation bei der ABAP Entwicklung ist, dass ein IT-Test wegen fehlender Testdaten nicht im Entwicklungssystem, sondern nur im Testsystem möglich ist. Steht ChaRM zur Verfügung, ist das schnell gemacht: ChaRM transportiert die Entwicklung als Transport von Kopien mit dem Transport Management System. Wenn nun aber kein ChaRM verfügbar ist, muss man den Transport„Transport Management System: Transport von Kopien Erzeuger“ weiterlesen

SAP BOPF: EPM Datengenerator

Beim Schreiben der beiden Blogs zum SAP BOPF API ( Teil 1, Teil 2 ) hatte ich zufällig gesehen, dass es den EPM Datengenerator  zum Füllen der EPM BOPF-Tabellen für Salesorder, Business Partner, Product etc. mit Demodaten gibt. /BOBF/EPM_DATA_GENERATOR ist ein ausführbares Programm und es gibt ein Problem: Das Programm bricht mit einem Laufzeitfehler ab.„SAP BOPF: EPM Datengenerator“ weiterlesen

SAP BOPF API Teil 2

Nachdem wir uns im 1. Teil im Allgemeinen mit der SAP BOPF API und im speziellen mit der Implementierung der CRUDQ-Operationen Create, Read und Update beschäftigt haben, folgt nun der 2. Teil mit den restlichen Operationen Delete und Query. Weitere Themen bei der Implementierung gegen die SAP BOPF API sind Assoziationen, Actions (entspricht OData Function„SAP BOPF API Teil 2“ weiterlesen

Test Seams: Mocking von Code Abhängigkeiten in ABAP Unit

ABAP Unit ist unter SAP Entwicklern wohl bekannt. In der Praxis wird ABAP Unit jedoch wenig eingesetzt. Ein häufiger Grund ist, dass der zu testende Code starke Abhängigkeiten zu Datenkonstellationen hat. Wenn man nun nicht die Möglichkeit hat, den Code für eine bessere Testbarkeit umzubauen, kann man Test Seams verwenden. Test Seams erlauben es, Quelltext„Test Seams: Mocking von Code Abhängigkeiten in ABAP Unit“ weiterlesen

SAP BOPF API Teil 1

Das Business Object Processing Framework (BOPF) ist ein Teil des ABAP Programming Model for SAP Fiori. BOPF steckt hinter den ObjectModel Annotations einer CDS View. BOPF gibt einer CDS View die Fähigkeit, nicht nur Daten zu lesen, sondern auch zu schreiben. In diesem Blog beschäftigen wir uns mit der SAP BOPF API. Wir implementieren CRUDQ„SAP BOPF API Teil 1“ weiterlesen

OData ABAP Unit Test

Testautomatisierung von OData Services in Zeiten von Continuous Integration und Continuous Delivery ist essentiell. Die Gründe sind, dass eigenentwickelte SAPUI5 Apps zunehmend geschäftskritische Funktionalitäten implementieren und der manuelle Test zu aufwendig ist. Das ABAP OData Framework ist mit dem ABAP Unit Test Framework integriert. OData ABAP Unit Test wird in der Online Doku SAP Gateway„OData ABAP Unit Test“ weiterlesen

Cache im ABAP-Umfeld: Generische Implementierung

Caching ist eine Form des Zwischenspeicherns von Daten, sodass Daten, die bereits von einer Datenbank geladen worden sind, nicht erneut geladen und verarbeitet werden müssen. Dieses Konzept existiert bei SAP. Hauptanwendungsbereich ist dabei das Cachen von Stammdaten. Allerdings existiert für Daten, die nicht zu den Stammdaten zählen, kein Cache. Zudem kann ich diesen Cache durch„Cache im ABAP-Umfeld: Generische Implementierung“ weiterlesen

SAP BOPF: Einführung in das Business Object Processing Framework

Um Geschäftsanwendungen möglichst effizient und standardisiert modellieren und implementieren zu können hat SAP das Business Object Processing Framework für ABAP entwickelt. SAP BOPF bietet viele Standardfunktionalitäten wie zum Beispiel das Lesen und Schreiben der Datenbanktabellen an. Dadurch kann ein Teil der Entwicklung standardisiert und Zeit eingespart werden. In diesem Beitrag werde ich die Grundlagen sowie„SAP BOPF: Einführung in das Business Object Processing Framework“ weiterlesen

ABAP in S/4HANA – Die SAP HANA Datenbank

S/4HANA ist im Moment DAS Thema im SAP Bereich sowohl für Unternehmen, die SAP Software verwenden, als auch für SAP-Entwickler und -Berater. Mit der für das Jahr 2025 gesetzten Deadline von SAP für den Auslauf des Supports für die bestehende ERP-Software steht für viele Unternehmen die Migration zu S/4HANA unmittelbar bevor. Auch für uns ABAP-Entwickler„ABAP in S/4HANA – Die SAP HANA Datenbank“ weiterlesen

REST Services in ABAP

Wer SAPUI5 Apps implementiert kennt OData. OData ist ein Standard für die Implementierung von REST-Services. Dass es auch möglich ist, REST Services in ABAP nativ zu implementieren, ist unserer Erfahrung nach nicht so bekannt. Die Eclipse Plugins der ABAP Development Tools kommunizieren zum Beispiel über REST mit dem SAP ABAP. Du wolltest schon immer wissen,„REST Services in ABAP“ weiterlesen

OData ABAP Entwicklung: Lesen Domänenfestwerte

Eine häufige Anforderung bei der SAPUI5 Entwicklung ist der Umgang mit den zahlreichen Schlüsseln, die im ERP Backend verwendet werden. Zu so einem Schlüssel muss durch die SAPUI5 App die Bedeutung angezeigt werden. In diesem Blog-Artikel entwickeln wir einen Function Import, welcher die NameValue-Paare für Dömänenfestwerte an die SAPUI5 App zurückliefert. Domänenfestwerte im SAP DDIC„OData ABAP Entwicklung: Lesen Domänenfestwerte“ weiterlesen

Performanzoptimierung des ABAP OData $Expand

Ein häufig anzutreffendes Performanzproblem bei der klassischen OData Entwicklung in ABAP ohne Nutzung von SADL ist das Lesen von Entitäten mitsamt assozierter Entitäten mittels $expand. Ein Beispiel ist eine SAPUI5 Worklist App, welche zu den angezeigten SalesOrders weitere Informationen aus dem zugehörigen Business Partner und den SalesOrderItems anzeigt. Das Performanzproblem kann man gut an dem„Performanzoptimierung des ABAP OData $Expand“ weiterlesen

SEGW-Projekt (OData Service) mitsamt Implementierung kopieren

Der Gateway Service Builder (Transaktion SEGW) ist das allseits bekannte Werkzeug zur Implementierung eines OData Service auf einem SAP ABAP-System. Der Service Builder bietet die Funktion ein SEGW-Projekt zu kopieren. Das Kopieren kann notwendig sein, wenn man eine neue Version eines vorhandenen Service parallel zur existierenden Version erstellen will man mit einem von SAP ausgelieferten„SEGW-Projekt (OData Service) mitsamt Implementierung kopieren“ weiterlesen

Wiederverwendbarer modaler Auswahldialog in ABAP mit CL_SALV_TABLE

In einer typischen ABAP Dynproanwendung benötigt man irgendwann die Funktionalität, Daten dem Benutzer in einem Popup zu präsentieren und die  Auswahl zu prüfen. Häufig wird so ein Dialog manuell implementiert, obwohl es funktional immer das Gleiche ist. Was ist CL_SALV_TABLE? Mit dem Funktionsbaustein REUSE_ALV_GRID_DISPLAY gibt es eine Standardfunktionalität zur Implementierung eines Dialogs als auch zur„Wiederverwendbarer modaler Auswahldialog in ABAP mit CL_SALV_TABLE“ weiterlesen