Dynprofeld, PAI, Inhalt ändern

Für ein Dynpro soll der Inhalt eines Feldes manipuliert werden.

Es soll eine Suchhilfe für den Namen einer Datei auf dem Applikationsserver an ein Dynprofeld angedockt werden.
Das Besondere ist hier, dass der Frontendbenutzer keine Leserechte für das Verzeichnis bekommt. Um die Dateiauswahl mit dem SAP-Systemuser durchzuführen, bietet sich der FuB „F4_DXFILENAME_TOPRECURSION“ an.
Der FuB sorgt also für die Dateiauswahl. Nun müssen wir dessen Rückgabewert noch in das DYNPRO-Feld zurückschreiben. Dafür gibt es den FuB „C14Z_DYNP_WRITE_FIELD“. Der Aufrufzeitpunkt ist PAI. Das Unterprogramm sollte also im ProzessAfterInput aufgerufen werden.
  WRITE SPOOL_ID TO LV_F4_PATH.
* WRITE SY-HOST TO LV_HOST.
CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
EXPORTING
I_LOCATION_FLAG = 'A'
I_SERVER = ''
I_PATH = LV_F4_PATH
FILEMASK = '*.*'
FILEOPERATION = 'R'
IMPORTING
* O_LOCATION_FLAG =
* O_SERVER =
O_PATH = LV_LONGPATH
* ABEND_FLAG =
EXCEPTIONS
RFC_ERROR = 1
ERROR_WITH_GUI = 2
OTHERS = 3.
IF SY-SUBRC 0.
* Implement suitable error handling here
ENDIF.

WRITE LV_LONGPATH TO LV_DOCID.

CALL FUNCTION 'DSVAS_DOC_FILENAME_SPLIT'
EXPORTING
PF_DOCID = LV_DOCID
IMPORTING
* PF_DIRECTORY =
PF_FILENAME = LV_PF_FILENAME
* PF_EXTENSION =
.


WRITE LV_PF_FILENAME TO LV_VALUE.

IF NOT LV_VALUE IS INITIAL.
CALL FUNCTION 'C14Z_DYNP_WRITE_FIELD'
EXPORTING
I_PROGRAM = 'ZCTC_SD'
I_DYNPRO = '1000'
I_FIELDNAME = 'PRAEFIX'
I_LINE = 0
* I_FLG_AT_ENTER = ESP1_TRUE
* I_FLG_READ_BEFORE = ESP1_FALSE
I_VALUE = LV_VALUE.
CLEAR LV_VALUE.
ENDIF.


ENDFORM. " SEARCH_FILE

Schreibe einen Kommentar