new: SAP Tricks hinzugefügt.

This commit is contained in:
Jan Jambor 2024-08-14 10:03:48 +02:00
parent 858e6c5661
commit 6ad8e36fd2
15 changed files with 133 additions and 0 deletions

133
know-how/sap-tricks.md Normal file
View file

@ -0,0 +1,133 @@
# SAP Tricks
Navigation mit Fenstern im Transaktionsfeld
`/N` = Wechsel
`/O` = Neue Session
## Tabellen
Ansicht via SE16N
T001W - Werke
T024E - EKORG
TVKO - VKORG
PROJ - Projekte
T179 - Produkthierarchie
## Transaktionen
Projekte: CJ20N
SQ00: Start Queries (haben manchmal Leute, die alle anderen SQ** nicht haben)
SQ01: Queries pflegen
SQ02: Infoset pflegen  
SQ03: Benutzergruppen pflegen
SE38: ABAP Editor
SA38: ABAP ausführen
SU01 - Benutzer pflegen
SU01D - Benutzer anzeigen
/UI2/FLP - Fiori Launchpad
## SAP Darstellung
Dark Theme = Quartz Dark Theme
Old School = Blue Crystal Theme
![SAP Dark Theme](../resources/images/sap-tricks-theme-1.png)
![SAP Dark Theme](../resources/images/sap-tricks-theme-2.png)
## Text markieren
So kann man zum Beispiel mehrere Zellen markeiren, geht aber nur auf einem Bildschirm ohne scrollen.
```text
CTRL+Y
```
## SE16N
Wenn keine Berechtigung, dann mal mit "ZSE16N" versuchen zu starten, gemäss Alex Friess soll dass das selbe sein, nur ohne Änderungsberechtigung.
Feldlängen anzeigen via "Technische Sicht":
![Feldlängen anzeigen](../resources/images/sap-tricks-se16n-1.jpg)
Varianten speichern oder holen:
![Varianten speichern oder holen](../resources/images/sap-tricks-se16n-2.png)
Technische Felder in Listenausgabe:
![Technische Felder in Listenausgabe](../resources/images/sap-tricks-se16n-3.png)
![Technische Felder in Listenausgabe](../resources/images/sap-tricks-se16n-4.png)
## SQ01/SQ02 Export in Excel
Ein Excel Export funktioniert über diesen Knopf nicht in jedem Fall
Hier geht es aber immer
![SQ01/SQ02 Export in Excel](../resources/images/sap-tricks-sq0102-1.png)
Oder der Button, wenn vorhanden
![SQ01/SQ02 Export in Excel](../resources/images/sap-tricks-sq0102-2.png)
## SQ02 InfoSet: Berechnete Spalte
Kann mittels ABAP errreicht werden.
![SQ02 InfoSet Berechnete Spalte](../resources/images/sap-tricks-sq02-1.png)
Typ und Länge vom Feld am besten bei einem anderen ähnlichen Feld abgucken in der SE16N
CHAR = C
![SQ02 InfoSet Berechnete Spalte](../resources/images/sap-tricks-sq02-2.png)
Den neuen Eintrag dann selektieren und Coding zum Feld anlegen
![SQ02 InfoSet Berechnete Spalte](../resources/images/sap-tricks-sq02-3.png)
Beispiel Code
```ABAP
DATA: lv_vbund TYPE vbund.
CLEAR: lv_vbund.
CHECK: kna1-kunnr IS NOT INITIAL OR lfa1-lifnr IS NOT INITIAL.
IF kna1-kunnr IS NOT INITIAL.
SELECT SINGLE vbund INTO lv_vbund FROM kna1 WHERE kunnr = kna1-kunnr.
ELSEIF lfa1-lifnr IS NOT INITIAL.
SELECT SINGLE vbund INTO lv_vbund FROM lfa1 WHERE lifnr = lfa1-lifnr.
ENDIF.
vbund = lv_vbund. " Assign the value to the additional field
```
SAP ist was Queries angeht eine mühsame Kneifzange, wenn man keine Berechtigung oder Ahnung hat als Developer.
1. Infoset anlegen. Da bildet man die Beziehung zwischen Tabellen mittels JOIN ab. Aber es ist sehr limitiert. Im konkreten Fall habe ich das gebaut:
![SQ02 InfoSet Berechnete Spalte](../resources/images/sap-tricks-sq02-4.jpg)
1. Query bauen. Hier gibt es keine CASE WHEN Funktion. Im konkreten Fall hätte ich dann 2 Spalten mit VBUND gehabt, einmal die aus der LFA1 und einmal die aus der KNA1. Ich will aber je nachdem was es ist, was ich da gerade selektiere das Ergebnis in einer Spalte.
Das ABAP Code Schnipselchen ist der Inhalt eines sogenannten Zusatzfeldes. Die ist eine berechnete Spalte im SAP Slang. Es wird also in der Spalte geschaut, haben wir eine KNA1 oder eine LFA1 und dann je nachdem, was es ist die VBUND genommen.
## Änderungshistorie BP Geschäftspartner felder
Transaktion BP
Geschäftspartner auswählen
Feld suchen, was man ansehen will und Text markieren
Zusätze > Änderungshistorie > Für dieses Feld
![Änderungshistorie](../resources/images/sap-tricks-aenderungshistorie-1.png)
![Änderungshistorie](../resources/images/sap-tricks-aenderungshistorie-2.png)