SAP Berater - Bibliothek
Bereiche Logistik, Module MM, SD und PP
ABAP-Programmierung, Datenmodelle
Informationen, Anfragen und Kontakt über bjh@bmksound.de

SAP Bibliothek: die Seite für Programmierer, Customizer, Konfigurierer, Datenmodellierer. Für Besucher, welche sich verklickt haben, können über Link jedoch schnell auf andere Themenbereiche wechseln. Dokumentationen, Training und Anwendungsbeispiele im ewm Umfeld (extended Warehouse Management, Lagerabwicklung) sind in einer eigenen ewm Übersicht zusammenfasst. Projektanbieter, Consulting-Agenturen, Projektmanager, welche nach Freelancern zur Bereicherung Ihres Teams suchen, wählen als Einstieg bitte die Übersichtsseite freiberufliche Mitarbeit oder die Projektübersicht Firmen, Konzerne, Gesellschaften, welche auf der Suche nach guter, optimierter Nischensoftware sind, um diese in Ihre EDV-Landschaft zu integrieren, wählen bitte die Frachtkostenberechnung oder die Exportsoftware Allgemeine Informationen, HTML oder Fotogalerien finden Sie auf der BJH Einstiegsseite Und noch allgemeiner und weitgestreut mit einer Fülle von Informationen auf dem Portal der BMK Sound.

Die Seite für SAP Kollegen, die ebenso wie ich sich der Programmierung in ABAP (Advanced Business Application Programming) unter SAP verschrieben haben, jedoch einen Knackpunkt zu lösen haben und einen Weg suchen, den effizientesten Algorithmus zu entwickeln. Diese Internetseite soll helfen, auf den vielleicht zündenden Gedanken zu gelangen, um dem Kunden die optimale Lösung bieten zu können. Auch wenn die Beispiele nur einen kleinen Umfang bieten, hoffe ich, dass ihr den richtigen Sprung findet. Alle Programme sind mit sehr viel Kommentar und Erklärungen gespickt. Die ABAP-Sourcen sind in HTML konvertiert, Kommentare sind ein wenig eingegraut, Befehlsworte sind in schwarz gehalten, variablen in blau und Konstanten in grün, um dem Ganzen ein wenig Farbe zu verleiten. Teilweise ist im Programm sogar ein Ausschnitt eingefügt, wie das Ergebnis aussieht, wenn Ihr das Programm laufen lasst. Für alle Programme, Seiten und Grafiken gilt das Urheberrecht und Copyright © BJH Software. Auf Vollständigkeit und Richtigkeit wird keine Gewähr übernommen. Fehler können immer passieren, ich bitte dieses zu entschuldigen.

Datenmodelle
Materialstamm
Datenstruktur

MARA MARC MARD
MBEW MAKT MARM
MVKE MLGN MLGT

Modul MM, SD: Materialstammdaten Materialwirtschaft
grafische Aufbereitung, wie die einzelnen SAP-Tabellen im Bereich der Materialstämme miteinander verknüpft sind. Material mit Werksbezug, Lagerort, Materialbewertung, Lagernummer und im Vertrieb mit der Vertriebsorganisation, Kurz- und Langtexte. Übersicht der Schlüssel-/ Fremdschlüsselbeziehungen.
Dokumente
Merkmale

Datenstruktur

DRAW DRAT TDWA
CABN CAWN AUSP

Modul PP: Dokumentenverwaltung / Merkmale Grafik
grafische Aufbereitung, wie die einzelnen SAP-Tabellen im Bereich der Dokumentenverwaltung miteinander verknüpft sind. Übersicht der Schlüssel-/Fremdschlüsselbeziehungen. Aussprung auch zu anderen Themengebieten sind gekürzt dargestellt.
Arbeitspläne
Datenstruktur

MAPL PLKO PLPO

Modul PP: Arbeitspläne Produktion
grafische Aufbereitung, wie die einzelnen SAP-Tabellen im Bereich der Arbeitspläne, Verknüpfungen und Planzuordnungen miteinander verknüpft sind.
Vertrieb
Datenstruktur

VBAK LIKP VBRK EIKP

Modul SD: Vertriebsbelege, Außenhandel Grafik
grafische Aufbereitung, wie die einzelnen SAP-Tabellen im Bereich der Vertriebsbelege und der Außenhandelsdaten miteinander verknüpft sind. Übersicht der Schlüssel- / Fremdschlüsselbeziehungen.
Programmierung
z_bjh_inner_join

interne Tabelle Einlesemöglichkeiten von externen Tabellen
Einlesemöglichkeiten von externen SAP-Tabellen in interne Tabellen Zugriffe auf Tabelle, welche über Fremdschlüssel verknüpft sind.Vorstellung unterschiedlicher Methodiken, dessen Einsatz im Fall zu Fall zu entscheiden ist unter den Gesichtspunkten zu erwartende Ergebnismenge, Performance, Komplexittät.

1.) Konventionel: geschachtelte Select-Struktur.
2.) Hashed: Blockweises Lesen der EKKO-Tabelle und mischen
3.) Join: allerdings satzweises Lesen und fortschreiben
4.) Join: auffüllen und einlesen in eine interne Tabelle
5.) Collect: Fremdschlüsselbeziehungen auffüllen
6.) Mega-Join: 7 Tabellen gleichzeitig verknüpft. Nur wenn die Werte in allen Tabellen zugeordnet werden konnten, ist der Datensatz gültig. Initialwerte führen zur Ablehnung des Datensatzes !

z_bjh_at_suchhilfe
Suchhilfe

HELP_VALUES_GET_WITH_TABLE

Suchhilfe freie Kombination
Suchhilfe für Felder, welche keine expliziete Suchhilfe über Struktur und Datenelement haben. Beispiel ist die Statusverwaltung in der Dokumentenverwaltung in Abhängigkeit der Dokumentenart. Programm führt keinerlei Aktionen aus !!!
z_bjh_migo
Selection Screen
Selection Reitertechnik
Selection Subscreen
Selection Pushbutton
Selection User Command

MB_CREATE_GOODS_MOVEMENT

Selection Screen Eingabegabemasken
Material Wareneingang und Warenausgang
Beispielprogramm für das Verbuchen einer Warenbewegung. Im Programm wird eine Position verbucht, wie => einstellbar über die Bewegungsart. Minimalausführung für die Werteversorgung. Storno ist integriert, ausführbar über die Materialbelegsnummer.
z_bjh_dynpro_tc
Dynpro - Table Control

ICON_CREATE

z_bjh_dynpro_tc.9200
keine Includes für PBO, PAI

Dynpro - Table Control Aufbau der Liste am Bildschirm
Beispielprogramm für die Be- und Verarbeitung eines Dynpros. Die ermittelte Liste, eine Auswahl an Bestellungen, wir im Dynpro als Table-Control angezeigt. Aktionen (außer Ende) sind das Anklicken oder Verändern der Menge, es erfolgt (nur zu Anschauungszwecken) eine Addtion der Menge um 0,1 und das Zurücksetzen der Markierung. Weitere Aktion ist der Absprung in den Materialstamm, Transaktion MM03. PBO und PAI Routinen sind im Programm, keine Includes.
z_bjh_dynpro_tab_fix
Dynpro - Tab Strip
Foto im Container

DP_CREATE_URL

z_bjh_dynpro_tab_fix.9300
z_bjh_dynpro_tab_fix.9301
z_bjh_dynpro_tab_fix.9302
keine Includes für PBO, PAI

Dynpro - Tab Strip / Registerkarten eingelagerte Subscreens
Beispielprogramm für Dynpro-Verarbeitung mit Tabstrips. Im Programm wird eine Lieferscheinnummer abgefragt und der Datensatz dazu gelesen. Die Ausgabe erscheint in einem Bildschirm mit Reitern (Tabstrips), wobei der erste Reiter die Lieferscheinnummer ausgibt und der zweite den Lieferanten. Programm bindet die Tabstrips fest (fix) ein, kein dynamisches Laden ! Dynpro 9301: Subscreen für Reiter 1 mit Container für Foto. Reiter 2 ausblendbar.
z_bjh_smartforms_mini
SmartForms

SSF_FUNCTION_MODULE_NAME
SO_USER_AUTOMATIC_INSERT

SmartForms Miniprogramm, Aufruf
Smart Forms dient zur Formulargestaltung und löst auf längere Zeit wohl SAP Script ab. Das Beispielprogramm zeigt die Ansteuerung des Druckes über Smart Forms. Das Programm führt keine Aktionen aus, liest auch keine Daten ein ! Das dazugehörige SmartForms-Formular benötigt nur 2 Ausgaben in einem Fenster, wobei der Texte und die Grafik Eingabeparameter sind. Das Programm kann als Test genutzt werden, da alle Aktionsrichtungen wie Druck, Fax und Email aktiv hinterlegt sind.
z_bjh_graphics
SmartForms
Excel

ALSM_EXCEL_TO_INTERNAL_TABLE

FB ZF_BJH_TXT

SmartForms Grafikverwaltung, Einspieln von Grafiken
Import von Grafiken für SmartForms oder SapScript. Laden von BMP (oder TIF) Grafiken für die Benutzung dieser Graphiken in SmartForms oder SapScript-Formularen (Tabelle STXBITMAPS). Es könnte zwar auch der Baustein genutzt werden, jedoch bietet sich mit diesem Programm die Möglichkeit, ohne Batch-Input einen Schwung von Grafiken anlegen zu können.
z_bjh_stxl
Langtext
Suchhilfe

READ_TEXT
SAVE_TEXT
HELP_VALUES_GET_WITH_TABLE

Fließtexte Reporting (Bildschirm)
Fließtexte auswerten und anzeigen können. Diese Texte entsprechen der VPSS-Struktur SDATXT. Die Texte werden im Cluster angelegt. Die Basis-(Header)-Tabelle ist die STXH. Dort werden die Daten herausselektiert, welche dann durch den Funktionsbaustein anzeigegerecht aufbereitet werden. Im Beispiel wird der Text im letzten Zeichen verändert und durch den Gegen-Funktionsbaustein zurückgeschrieben.

Diese Art der Fließtextbehandlung wird im gesamten SAP-System benutzt, deswegen sind mehrere vordefinierte Typen angezeigt und auch die Möglichkeit frei zu wählen. In diesem Beispiel werden die einzeln aufbereiteten Zeilen am Bildschirm ausgegeben.

z_bapi_material_savedata
Interface
Warnstufe - Ampel
TBDA2 (Matmas)
Selection-screen output
Langtext

BAPI_MATERIAL_SAVEDATA
READ_TEXT

BAPI Schnittstelle - Kopie eines Material mit Werkbezug
In diesem Programm wird eine Materialnummer als Referenz vorgegeben, die auf eine neue kopiert werden soll. Zusätzlich können noch ein Werk und ein Lagerort mitangegeben werden, welche ebenfalls dann sofort aufgebaut werden. Sollte zum Werk eine Bewertung vorhanden sein, wird diese auch kopiert. Gleiches gilt für Maßeinheiten, Materialkurztexte und auch Langtexte in allen Sprachen. Für alle anderen Strukturen sind die Unterprogramme zum Füllen der BAPI-Struktur vorhanden, jedoch werden sie nicht angesprungen.
z_bjh_bapi_routing_create
Interface
Warnstufe - Ampel
Langtext

BAPI_ROUTING_CREATE
READ_TEXT
SAPGUI_PROGRESS_INDICATOR
Z_F_DATEI_OUT (ZF_BJH_TXT)

BAPI Schnittstelle - Anlegen eines Arbeitsplanes
Kopie eines Arbeitsplanes. Es werden Materialien und Werke vorgegeben. Das Programm sucht daraus eine Ergebnismenge, die zusätzlich noch durch den Planstatus und das Datum weiter eingegrenzt werden kann. Danach werden die Pläne 1:1 kopiert. Zum Abschluß erfolgt noch eine Statistik über den gesamten Lauf, welches auch in eine Datei geschrieben werden kann.
z_bjh_bapi_po_create1
Interface
Warnstufe - Ampel

BAPI_PO_CREATE1

BAPI Schnittstelle - Anlegen einer Bestellung
Beispiel für Ansteuern des Bapis "BAPI_PO_CREATE1" (Enjoy-Version). Programm simuliert das Kopieren einer bestehenden Bestellung. Alle Programmparts sind in Classic ABAP geschrieben ! Das Programm liest für das Beispiel eine andere Bestellung ein, kopiert diese in die entsprechenden Felder und Tabellen, die der BAPI verarbeiten soll. Nach Durchlauf des Bapis kann der Status angezeigt werden, zur grafischen Unterstützung mit einer Ampel.
z_bjh_ftp_connect
Programmierung
Funktionsbaustein

FTP_COMMAND
FTP_CONNECT
FTP_DISCONNECT

FTP Transfer Dateien zwischen Systemen transportieren
Aktion eines FTP-Transfer. Das Programm beinhaltet die Möglichkeit des Datenaustausches zwischen 2 Systemes, wobei eine korrekte Anmeldung im Zielsystem geschehen soll (im hiesigen Fall Vorbelegung für Anmeldung im PC-Netzwerk). Im Quellsystem (SAP Basis Anwendung) braucht nur der Pfad definiert sein. Der Mandant wird automatisch eingepflegt. Danach erfolgt die Befehlsfolge, hier nur das Verschieben von Daten. Am Ende wird die Protokolltabelle am Bildschirm angeziegt, welche den Verlauf der Aktionen wiederspiegelt.
z_bjh_excel
Excel

Basis-Include ole2incl

EXCEL Ergebnis einer Liste in Excel anzeigen
Beispielprogramm, um von SAP Microsoft-Excel aufzurufen und ein Datenblatt der Tabelle mit Werten vorzubelegen. Zu Testzwecken sollen einige Felder der Positionen einer Bestellung angezeigt werden, die zuvor über Parameter selektiert wurden.
z_bjh_excel_in

ALSM_EXCEL_TO_INTERNAL_TABLE

EXCEL Schnittstelle. Daten aus einer Excel-Liste laden
Beispielprogramm zum Einlesen einer Excel-Tabelle und Bereitstellung deren Daten in einer internen Tabelle vom Format, wie auch andere Programme mit Dateilesealgorithmen arbeiten.
z_bjh_excel_doi

RFC_GET_STRUCTURE_DEFINITION

z_bjh_excel_doi.0100

EXCEL Version SAP R/3 DOI - Desktop Office Integration
Excel Mappe am Bildschirm aufblenden. In das Excel-Sheet kann der Tabelleninhalt einer beliebigen SAP Tabelle importiert werden. Nach dortiger Bearbeitung werden die Daten wieder nach SAP exportiert und stehen dort für die weitere Bearbeitung bereit.
z_bjh_alv
ALV Grid

ME_DISPLAY_PURCHASE_DOCUMENT
REUSE_ALV_LIST_DISPLAY
REUSE_ALV_GRID_DISPLAY

ALV ABAP List Viewer
ALV = ABAP List Viewer. Struktur und Funktionsbausteine für das einfache Anzeigen von Reporting-Liststrukturen, ohne den Aufbau über Write-Anweisung und Berechnung der Position durchführen zu müssen. Beispielprogramm zur Anzeige von Bestellköpfen und deren Positionen, ergänzt um ein grafisches Element. Hotspot auf die Bestellnummer.
z_bjh_alv_oo
ALV Grid OO

ME_DISPLAY_PURCHASE_DOCUMENT

ALV ABAP List Viewer, objektorientierte Version
Gleiche Funktionen wie im Beispielprogramm für den ALV in der klassischen Variante, jedoch hier über Klassen und Methoden. Zusätzlich wird auf ein Ereignis reagiert.
z_bjh_control_tree
Splitting Container

z_bjh_control_tree.9000

Tree Control Knotenstruktur im Baum
Das Programm bereitet eine einfach Baumstruktur (Tree-Control) aus Bestellungen auf und zeigt diesen Baum im linken Teil des Bildschirmes. Einige Funktionen im Bereich Knoten und Knotentechnik sind implementiert, ansonsten macht dieses Programm nichts. Der rechte Bildschirm bleibt leer.
z_bjh_control_pic
Splitting Container

DP_CREATE_URL
F4_FILENAME
GUI_UPLOAD

Picture Control Fotos und Bilder
SAP Programmierbeispiel. Programmierung eines Controles, welches ein Bild auf dem Bildschirm bringt. Das Bild kann entweder intern geladen werden, ein Bild, welches mit der SE78 bearbeitbar ist, oder extern als eine Grafikdatei von der Festplatte des Rechners, egal ob Bild, Foto oder Animation. Hinweis: Das Bild ist in einem Splitting Container untergebracht, wenn Sie jedoch ein Bild in einem Dynpro direkt einbetten möchten, so schauen Sie bitte im Programm z_bjh_dynpro_tab_fix , wo diese Methodik beschrieben ist *
z_bjh_control_textedit
Dynpro Container

READ_TEXT z_bjh_control_textedit.9900

Text Edit Control Texte erfassen
Beispielprogramm für das Nutzen des TextEdit-Controles in ABAP. Der Texteditor wird in einen Container eingelagert, mehrere Funktionen sind standardmäßig bereits aktiv (wie Daten laden, sichern, usw.). In diesem Beispiel wird ein zusätzliches Ereignis definieret, ein Doppelklick, welche ein Sternchen in der Zeile setzt oder es wieder zurücknimmt. *
z_bjh_email
Email

SO_NEW_DOCUMENT_ATT_SEND_API1

Email Email mit Anhangsdatei versenden
Beispielprogramm für das Versenden von Emails aus SAP heraus und einer Datei im Anhang. Emailempfänger, Text, Anhang und Inhalt sind von außen auffüllbar. Unterprogramm kann auch als Funktionsbaustein umgebaut werden, bei gleicher Variablenübergabe.
z_bjh_kunde_partner

WS_DOWNLOAD

SD - Rechnung Konditionssätze und Partnerrollen
Programm zum Ermitteln der Partnerrollen und der Konditionssätze zu einer Rechnung. Das Ergebnis wird in einer Tabelle aufbereitet und kann auf Datei gespeichert werden (nur lokal). Hinweis: Das Programm folgt nicht der Kontenfindung und benutzt auch nicht das Kalkulationsschema.
z_bjh_reichweite

AUFBAUEN_MDPSX_ANZEIGEN
MD_READ_MATERIAL_SIMPLE
STOCK_COVERAGE_GET
Material Bestandsreichweitenberechnung
Teilauszug aus der Transaktion MD04, Programm SAPMM61R. Es wurden alle Funktionsbausteine, Tabellen und Strukturen herausfiltriert, welche benötigt werden, um die Bestandsreichweite mit den Abhängigkeiten und Parametern seitens SAP zu berechnen. Inkonsistenzprüfung bei den PPS-Planungsperioden. Achtung: abgespeckte Version !!!
z_bjh_job_anstoss
z_bjh_job_warten

GET_PRINT_PARAMETERS
JOB_OPEN
JOB_SUBMIT
JOB_CLOSE
SHOW_JOBSTATE

Jobverarbeitung Jobs anstarten und abfragen
Programm zum Anstoß eines Jobs. Dadurch kann Zeit gespart werden, wenn der Job z.B. eine Stückliste auflösen soll, das Anstoßprogramm aber x Stücklisten benötigt. In diesem Programm soll das rufende Programm nur x Sekunden warten. Das auslösende / jobrufende Programm prüft jede Sekunde, ob der Job schon durch ist. Die Parameterübergabe erfolgt über eine Zwischendatei und festverdrahteten Schlüsseln.