Visualizzazione post con etichetta function. Mostra tutti i post
Visualizzazione post con etichetta function. Mostra tutti i post

giovedì 25 marzo 2010

Leggere messaggi di ritorno call transaction

Per poter leggere il testo dei messaggi di ritorno di una call transaction è possibile utilizzare la seguente funzione:

DATA: va_msgid LIKE sy-msgid,
va_msgno LIKE sy-msgno,
va_msgty LIKE sy-msgty,
messaggio LIKE message.

LOOP AT tb_messtab.
CLEAR:va_msgid,va_msgno,va_msgty.
va_msgid = tb_messtab-msgid.
va_msgno = tb_messtab-msgnr.
va_msgty = tb_messtab-msgtyp.
CALL FUNCTION 'WRITE_MESSAGE_NEW'
EXPORTING
msgid = va_msgid
msgno = va_msgno
msgty = va_msgty
msgv1 = tb_messtab-msgv1
msgv2 = tb_messtab-msgv2
msgv3 = tb_messtab-msgv3
msgv4 = tb_messtab-msgv4
msgv5 = ' '
IMPORTING
* ERROR =
messg = messaggio.
CLEAR wa_out.
MOVE messaggio-msgtx TO wa_out-line.
APPEND wa_out TO tb_out.
ENDLOOP.

Il risultato può essere il seguente:





giovedì 18 marzo 2010

Inviare popup ad un utente

Utilizzando la funzione TH_POPUP è possibile inviare messaggi in popup ad un utente specifico:









giovedì 12 novembre 2009

Listare contenuto di una directory

Per poter listare il contenuto di una directory locale del server SAP è possibile utilizzare la seguente function:

EPS_GET_DIRECTORY_LISTING

La function accetta come parametri una directory di partenza e restituisce una tabella contenente la lista dei file presenti.

venerdì 19 giugno 2009

Ricercare valori in un set

Per poter gestire dinamicamente un set di valori è possibile creare tramite la transazione GS01 un set di valori specificando il riferimento al campo di una tabella per indicare la tipologia di valori che il set contiene. La transazione appare cosi:


Per poter verificare se un determinato valore è presente nel set creato è possibile utilizzare la seguente function:



DATA va_trovato LIKE aasel1-option.
DATA setid LIKE sethier-setid.

CLEAR: aktyp,
setid,
wa_tcode,
va_trovato.


MOVE 'Z_TRANS_FATT_MOD' TO setid.
MOVE sy-tcode TO wa_tcode.

CALL FUNCTION 'Z_CTRL_SET'
EXPORTING
setid = setid
val_da_trovare = wa_tcode
IMPORTING
val_trovato = va_trovato
EXCEPTIONS
set_not_found = 1
illegal_field_replacement = 2
illegal_table_replacement = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

La funtion può restituisce nel valore va_trovato solo 2 valori: SI o NO.

Il test da eseguire è :
if va_trovato EQ 'SI'.

lunedì 15 giugno 2009

Selezionare directory locale

Questa function può essere utilizzata per poter selezionare una directory utilizzando l'espora risorse di Windows.
In particolare io l'ho utilizzata per far selezionare una directory nella quale salvare i pdf creati dal programma.


data: str_path type string.

CALL METHOD cl_gui_frontend_services=>directory_browse
* EXPORTING
* WINDOW_TITLE =
* INITIAL_FOLDER =
CHANGING
selected_folder = str_path
* EXCEPTIONS
* CNTL_ERROR = 1
* ERROR_NO_GUI = 2
* NOT_SUPPORTED_BY_GUI = 3
* others = 4.

Il risultato è la seguente popup: