Elenco delle variabili di ambiente utilizzate in un programma
In SAP, esiste un modo standard per elencare le variabili di ambiente utilizzate in un programma. È accessibile tramite la transazione SE38, tramite Menu-Utilità-Variabili di ambiente.
Il programma seguente mostra un esempio di come elencare gli elementi dati e i moduli funzione utilizzati in un programma. L'elenco degli oggetti che possono essere inclusi per la visualizzazione è menzionato nel codice seguente.
In Input, oltre ad inserire i programmi, si può selezionare se vedere solo gli oggetti custom o tutti, e quali oggetti in particolare devono essere ricercati.
In output si ottiene il seguente risultato:

*&---------------------------------------------------------------------*
*& Report ZLISTA_VARIABILI
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Zlista_variabili.
************************************************************************
*variable declarations *
************************************************************************
TABLES: tadir.
DATA: environment_selection TYPE envi_types,
gv_OBJECT_NAME TYPE tadir-obj_name,
source_searched TYPE TABLE OF rsfind,
output_list TYPE TABLE OF senvi,
gv_output_list TYPE TABLE OF senvi.
DATA: gs_alv_layout TYPE lvc_s_layo,
gt_alv_fieldcat TYPE lvc_t_fcat,
gt_alv_events TYPE slis_t_event,
gt_alv TYPE ztt_qmel_alv,
gs_alv TYPE zclone_qmel_alv.
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE TEXT-t01.
SELECT-OPTIONS: s_prog FOR tadir-obj_name OBLIGATORY NO INTERVALS .
SELECTION-SCREEN SKIP 1.
PARAMETERS: p_custom AS CHECKBOX DEFAULT abap_false.
SELECTION-SCREEN END OF BLOCK b01.
SELECTION-SCREEN BEGIN OF BLOCK b02 WITH FRAME TITLE TEXT-t02.
* SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN PUSHBUTTON 5(25) p_selall USER-COMMAND sel.
SELECTION-SCREEN PUSHBUTTON 40(25) p_desel USER-COMMAND des.
* SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP 1.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_prog AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_prog.
PARAMETERS: po_fugr AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_fugr.
PARAMETERS: po_ldba AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_ldba.
PARAMETERS: po_msag AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_msag.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_tran AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_tran.
PARAMETERS: po_func AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_func.
PARAMETERS: po_dial AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_dial.
PARAMETERS: po_tabl AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_tabl.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_shlp AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_shlp.
PARAMETERS: po_doma AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_doma.
PARAMETERS: po_dtel AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_dtel.
PARAMETERS: po_view AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_view.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_mcob AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_mcob.
PARAMETERS: po_mcid AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_mcid.
PARAMETERS: po_para AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_para.
PARAMETERS: po_conv AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_conv.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_suso AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_suso.
PARAMETERS: po_type AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_type.
PARAMETERS: po_ttyp AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_ttyp.
PARAMETERS: po_STRU AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_STRU.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_ENQU AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_ENQU.
PARAMETERS: po_SQLT AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_SQLT.
PARAMETERS: po_CLAS AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_CLAS.
PARAMETERS: po_INTF AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_INTF.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_UDMO AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_UDMO.
PARAMETERS: po_UENO AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_UENO.
PARAMETERS: po_SHI3 AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_SHI3.
PARAMETERS: po_CNTX AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_CNTX.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_TTAB AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_TTAB.
PARAMETERS: po_IASP AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_IASP.
PARAMETERS: po_IAMU AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_IAMU.
PARAMETERS: po_IATU AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_IATU.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_CLIF AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_CLIF.
PARAMETERS: po_SOBJ AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_SOBJ.
PARAMETERS: po_WDYN AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_WDYN.
PARAMETERS: po_WDYA AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_WDYA.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_xslt AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_xslt.
PARAMETERS: po_enhs AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_enhs.
PARAMETERS: po_ensc AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_ensc.
PARAMETERS: po_enhc AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_enhc.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_enho AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_enho.
PARAMETERS: po_sfbf AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_sfbf.
PARAMETERS: po_sfsw AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_sfsw.
PARAMETERS: po_devc AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
SELECTION-SCREEN COMMENT 65(15) FOR FIELD po_devc.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: po_SQSC AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 5(15) FOR FIELD po_SQSC.
PARAMETERS: po_STOB AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 25(15) FOR FIELD po_STOB.
PARAMETERS: po_DDLS AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
SELECTION-SCREEN COMMENT 45(15) FOR FIELD po_DDLS.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b02.
************************************************************************
*INITIALIZATION *
************************************************************************
INITIALIZATION.
p_selall = 'Seleziona tutto'.
p_desel = 'Deseleziona tutto'.
*ALV
PERFORM set_alv_layout CHANGING gs_alv_layout.
PERFORM set_alv_events CHANGING gt_alv_events.
************************************************************************
* AT SELECTION-SCREEN. *
************************************************************************
AT SELECTION-SCREEN.
IF sy-ucomm = 'SEL'.
po_prog = abap_true.
po_fugr = abap_true.
po_ldba = abap_true.
po_msag = abap_true.
po_tran = abap_true.
po_func = abap_true.
po_dial = abap_true.
po_tabl = abap_true.
po_shlp = abap_true.
po_doma = abap_true.
po_dtel = abap_true.
po_view = abap_true.
po_mcob = abap_true.
po_mcid = abap_true.
po_para = abap_true.
po_conv = abap_true.
po_suso = abap_true.
po_type = abap_true.
po_ttyp = abap_true.
po_STRU = abap_true.
po_ENQU = abap_true.
po_SQLT = abap_true.
po_CLAS = abap_true.
po_INTF = abap_true.
po_UDMO = abap_true.
po_UENO = abap_true.
po_SHI3 = abap_true.
po_CNTX = abap_true.
po_TTAB = abap_true.
po_IASP = abap_true.
po_IAMU = abap_true.
po_IATU = abap_true.
po_CLIF = abap_true.
po_SOBJ = abap_true.
po_WDYN = abap_true.
po_WDYA = abap_true.
po_xslt = abap_true.
po_enhs = abap_true.
po_ensc = abap_true.
po_enhc = abap_true.
po_enho = abap_true.
po_sfbf = abap_true.
po_sfsw = abap_true.
po_devc = abap_true.
po_SQSC = abap_true.
po_STOB = abap_true.
po_DDLS = abap_true.
ELSEIF sy-ucomm = 'DES'.
po_prog = abap_false.
po_fugr = abap_false.
po_ldba = abap_false.
po_msag = abap_false.
po_tran = abap_false.
po_func = abap_false.
po_dial = abap_false.
po_tabl = abap_false.
po_shlp = abap_false.
po_doma = abap_false.
po_dtel = abap_false.
po_view = abap_false.
po_mcob = abap_false.
po_mcid = abap_false.
po_para = abap_false.
po_conv = abap_false.
po_suso = abap_false.
po_type = abap_false.
po_ttyp = abap_false.
po_STRU = abap_false.
po_ENQU = abap_false.
po_SQLT = abap_false.
po_CLAS = abap_false.
po_INTF = abap_false.
po_UDMO = abap_false.
po_UENO = abap_false.
po_SHI3 = abap_false.
po_CNTX = abap_false.
po_TTAB = abap_false.
po_IASP = abap_false.
po_IAMU = abap_false.
po_IATU = abap_false.
po_CLIF = abap_false.
po_SOBJ = abap_false.
po_WDYN = abap_false.
po_WDYA = abap_false.
po_xslt = abap_false.
po_enhs = abap_false.
po_ensc = abap_false.
po_enhc = abap_false.
po_enho = abap_false.
po_sfbf = abap_false.
po_sfsw = abap_false.
po_devc = abap_false.
po_SQSC = abap_false.
po_STOB = abap_false.
po_DDLS = abap_false.
ENDIF.
************************************************************************
*START OF SELECTION *
************************************************************************
START-OF-SELECTION.
environment_selection-prog = po_prog. "Programa
environment_selection-fugr = po_fugr. "Gruppo Funzioni
environment_selection-ldba = po_ldba. "DB logico
environment_selection-msag = po_msag. "Classe Messaggi
environment_selection-tran = po_tran. "Transazioni
environment_selection-func = po_func. "Function module
environment_selection-dial = po_dial. "Modulo interattivo
environment_selection-tabl = po_tabl. "Tabelle
environment_selection-shlp = po_shlp. "Help di ricerca
environment_selection-doma = po_doma. "Dominio
environment_selection-dtel = po_dtel. "Elemento dati
environment_selection-view = po_view. "View
environment_selection-mcob = po_mcob. "Oggetti matchcode
environment_selection-mcid = po_mcid. "ID matchcode
environment_selection-para = po_para. "Param. SET/GET
environment_selection-conv = po_conv. "Exit di conversione
environment_selection-suso = po_suso. "Oggetti autorizzazione
environment_selection-type = po_type. "Gruppi tipi
environment_selection-ttyp = po_ttyp. "Tipi tabella
environment_selection-stru = po_STRU. "Struttura
environment_selection-enqu = po_ENQU. "Oggetti di blocco
environment_selection-sqlt = po_SQLT. "Tabelle SQL
environment_selection-clas = po_CLAS. "Classi
environment_selection-intf = po_INTF. "Interfacce
environment_selection-udmo = po_UDMO. "Modello dati
environment_selection-ueno = po_UENO. "Tipo entità
environment_selection-shi3 = po_SHI3. "Menu area
environment_selection-cntx = po_CNTX. "contesto
environment_selection-ttab = po_TTAB. "Tipi tabella
environment_selection-iasp = po_IASP. "Servizi Internet
environment_selection-iamu = po_IAMU. "Oggetti Mime
environment_selection-iatu = po_IATU. "HTML template
environment_selection-clif = po_CLIF. "Classe/interface
environment_selection-sobj = po_SOBJ. "tipo di oggetto 'Business'
environment_selection-wdyn = po_WDYN. "web dynpro component"
environment_selection-wdya = po_WDYA. "Applicazione Web dynpro
environment_selection-xslt = po_xslt. "programma XSL
environment_selection-enhs = po_enhs. "Enhancement Spot
environment_selection-ensc = po_ensc. "Enhancement Spot Composite
environment_selection-enhc = po_enhc. "Enhancement Composite
environment_selection-enho = po_enho. "Enhancement
environment_selection-sfbf = po_sfbf. "Business Functions
environment_selection-sfsw = po_sfsw. "Switch
environment_selection-devc = po_devc. "pacchetto
environment_selection-sqsc = po_SQSC. "Proxies procedura database
environment_selection-stob = po_STOB. "Entità
environment_selection-ddls = po_DDLS. "Sorgenti DDL
FREE: gv_output_list[].
LOOP AT s_prog ASSIGNING FIELD-SYMBOL(<lfs_prog>).
FREE: output_list[], source_searched[].
gv_OBJECT_NAME = <lfs_prog>-low .
TRANSLATE gv_OBJECT_NAME TO UPPER CASE.
CALL FUNCTION 'REPOSITORY_ENVIRONMENT_SET_RFC'
EXPORTING
obj_type = 'PROG'
environment_types = environment_selection
object_name = gv_OBJECT_NAME
TABLES
environment = output_list
source_objects = source_searched.
IF output_list IS NOT INITIAL.
APPEND LINES OF output_list TO gv_output_list.
ENDIF.
ENDLOOP.
IF gv_output_list[] IS NOT INITIAL.
PERFORM vis_custom TABLES gv_output_list
USING p_custom.
SORT gv_output_list BY call_obj.
PERFORM set_alv_fieldcat CHANGING gt_alv_fieldcat.
PERFORM display_alv USING gs_alv_layout
gt_alv_fieldcat
gt_alv_events
gv_output_list.
ELSE.
MESSAGE s000(db) WITH 'Nessun Dato estratto' DISPLAY LIKE 'E'.
ENDIF.
*&---------------------------------------------------------------------*
*& Form set_alv_layout
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& <-- GS_ALV_LAYOUT
*&---------------------------------------------------------------------*
FORM set_alv_layout CHANGING es_alv_layout TYPE lvc_s_layo.
es_alv_layout-cwidth_opt = abap_true.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form set_alv_events
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& <-- GT_ALV_EVENTS
*&---------------------------------------------------------------------*
FORM set_alv_events CHANGING ct_alv_events TYPE slis_t_event.
DATA ls_alv_events TYPE slis_alv_event.
ls_alv_events-name = slis_ev_top_of_page.
ls_alv_events-form = slis_ev_top_of_page.
APPEND ls_alv_events TO ct_alv_events.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form set_alv_fieldcat
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& <-- GT_ALV_FIELDCAT
*&---------------------------------------------------------------------*
FORM set_alv_fieldcat CHANGING ct_fieldcat TYPE lvc_t_fcat.
DATA ls_alv_fieldcat TYPE lvc_s_fcat.
DATA lt_fieldcat TYPE lvc_t_fcat.
DATA lv_col_pos TYPE lvc_colpos.
FIELD-SYMBOLS <fs_fieldcat> TYPE lvc_s_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
i_structure_name = 'SENVI'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = ct_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form display_alv
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> GS_ALV_LAYOUT
*& --> GT_ALV_FIELDCAT
*& --> GT_ALV_EVENTS
*& --> OUTPUT_LIST
*&---------------------------------------------------------------------*
FORM display_alv USING is_alv_layout TYPE lvc_s_layo
it_alv_fieldcat TYPE lvc_t_fcat
it_alv_events TYPE slis_t_event
it_alv_out TYPE table.
DATA lv_repid TYPE syrepid.
lv_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = lv_repid
* i_callback_top_of_page = 'TOP_OF_PAGE'
is_layout_lvc = is_alv_layout
it_fieldcat_lvc = it_alv_fieldcat
TABLES
t_outtab = it_alv_out
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form vis_custom
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> GV_OUTPUT_LIST
*& --> P_CUSTOM
*&---------------------------------------------------------------------*
FORM vis_custom TABLES p_table STRUCTURE senvi
USING pvcustom.
CHECK pvcustom IS NOT INITIAL.
LOOP AT p_table ASSIGNING FIELD-SYMBOL(<lfs_table>).
IF <lfs_table>-object(1) NE 'Z' AND <lfs_table>-object(1) NE 'Y'.
CLEAR: <lfs_table>-object.
ENDIF.
ENDLOOP.
DELETE p_table WHERE object IS INITIAL.
ENDFORM.
SE MI CONTATTATE IN PRIVATO, PAGATE LA META' DEL PREZZO DI AMAZON, E POTETE SCEGLIERE IL FORMATO WORD o PDF.
>>> RECENSIONI DEI LIBRI su Amazon Kindle <<<