innerhalb der VA02, wenn du auf dem bild bist, von wo du auf "verkaufsbeleg -> beliefern" gehen möchtest, gehst du auf "system -> status".
dort siehst du, dass ausgeführte programm SAPMV45A und der oberflächenstatus U ist.
jetzt in die SE80 und das programm SAPMV45A aufrufen, den dann darunter aufgeführten ordner "GUI-status" öffnen und auf den status "U" klicken.
jetzt klappst du das + bei menüleiste auf und klickst auf verkaufsbeleg. (genau das, was du eigentlich innerhalb der VA02 machen würdest).
nun siehst du, dass der funktionscode, welcher "Liefern" zugeordnet ist, "FLI1" heisst.
(jetzt muss ich ein bisschen abkürzen, weil ich nicht so lange zeit habe, jedenfalls hast du nun einen status, der dir schon viele informationen liefert.)
wenn du jetzt innerhalb des programms SAPMV45A nach "FLI1" suchst (global im rahmenprogramm) bekommst du ein paar fundstellen.
unter anderem eine, welche recht interessant klingt:
Include MV45AF0F_FCODE_FLI1
FORM FCODE_FLI1.
SET PARAMETER ID 'VKO' FIELD VBAK-VKORG.
SET PARAMETER ID 'VTW' FIELD VBAK-VTWEG.
SET PARAMETER ID 'SPA' FIELD VBAK-SPART.
IF SY-DATAR = SPACE AND
SVBAK-TABIX = 0.
LEAVE TO TRANSACTION 'VL01N'.
ENDIF.
PERFORM FCODE_EXIT(SAPLV00F).
ENDFORM.
um das zu verifizieren, setzt du dir im include MV45AF0F_FCODE_FLI1 innerhalb der from FCODE_FLI1 einen breakpoint und führst danach die VA02 aus (neu aufrufen!). der breakpoint wird angesprungen.
mit weiterem durchdebuggen von dort aus kommst du zur form FCODE_FLIF im include MV45AF0F_FCODE_FLIF.
endgültig in die VL01N springt das programm dann aus dem programm LV00FF0F in der form FCODE_BEARBEITEN.
lange rede, kurzer sinn: es wird wirklich die transaktion VL01N aufgerufen.