Einzelpostenanzeige: Daten pro Zeile ergänzen (FI)
Dieser Artikel wird noch kontrolliert. Dies ist eine Vorab-Version!
Sollen die selektierten Einzelposten vor der Anzeige geändert bzw. ergänzt werden, wird der BTE 1650 benutzt und es sind folgende Schritte durchzuführen.
Betroffene Transaktionen
- FBL1N: Einzelposten Kreditoren
- FBL2N: Einzelposten Kreditoren
- FBL3N: Einzelposten Sachkonten
Customizing
In diesem Fall brauchen wir ein BTE, welches mit der Transaktion FIBF
eingestellt werden kann. Hierzu wird der BTE 1650 benötigt der unter P/S-Bausteine gefunden werden kann. Prüft ggf. auch die Produkte ob es hierzu bereits eine Einstellung gibt.
In diesem Beispiel finden sich zum BTE 1650 bereits zwei Ausprägungen:
Hier wird der Funktionsbaustein hinterlegt der eure Aktionen durchführen soll
Vorlage
Das gute an den BTEs ist, dass ihr Vorlagen mitbekommt für jede BTE-Nummer. Hier findet ihr den Vorlage-Funktionsbaustein unter:
FUNCTION SAMPLE_INTERFACE_00001650.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(I_POSTAB) LIKE RFPOS STRUCTURE RFPOS
*" EXPORTING
*" VALUE(E_POSTAB) LIKE RFPOS STRUCTURE RFPOS
*"----------------------------------------------------------------------
*-------------- Initialize Output by using the following line ----------
* E_POSTAB = I_POSTAB.
ENDFUNCTION.
Beispiel
Folgendes Beispiel: Bei der Anzeige von Belegen des Typs "ZP" soll der Belegtext (der leer ist) um den Namen des Gegenkontos ergänzt werden.
DATA
: ls_lfa1 TYPE lfa1
.
"Nur bei BLART = ZP SGTXT anpassen
CHECK I_POSTAB-BLART eQ 'ZP'.
"Nur leere SGTXT ändern
IF e_postab-sgtxt IS INITIAL.
SELECT SINGLE name1 name2 FROM lfa1
INTO CORRESPONDING FIELDS OF ls_lfa1
WHERE lifnr = e_POSTAB-GKONT
.
IF sy-subrc eQ 0.
"Wenn in NAME2 nichts steht, dann nur NAME1
IF ls_lfa1-name2 IS INITIAL.
E_POSTAB-sgtxt = ls_lfa1-name1.
ELSE.
"Sonst NAME1 - NAME2 anzeigen
CONCATENATE ls_lfa1-name1 '-' ls_lfa1-name2
INTO E_POSTAB-sgtxt SEPARATED BY space.
ENDIF.
ENDIF.
ENDIF.