Cerca nel blog

giovedì 20 febbraio 2025

Job workflow SWU3 non pianificati - job con stato "Rilasciato/Sospeso" in SM37

 

Job workflow SWU3 non pianificati - job 

con stato "Rilasciato/Sospeso" in SM37

Nella transazione SWU3 è presente un simbolo giallo fulmine e non è possibile attivare i job workflow.

I job workflow non vengono pianificati automaticamente dalla Transazione SJOBREPO.


Il problema è che di sono i job, nella transazione SM37, che iniziano per SAP_WORKFLOW_* con stato "Rilasciato/Sospeso".

Se il sistema NON è in fase di upgrade o di copia, eseguire il report BTCTRNS2 per impostare lo stato dei 

background job su 'Rilasciato'. 


(Lo stato "Rilasciato/Sospeso" viene impostato prima dell'upgrade di un sistema o di una copia del sistema 

per evitare che i background job vengano eseguiti durante l'upgrade.)

L'output del report BTCTRNS2 sarà il seguente:


Rilanciando la tcode SWU3 si vedrà adesso la spunta verde





martedì 18 febbraio 2025

Elenco delle variabili di ambiente utilizzate in un programma

 

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                                                 *
************************************************************************
TABLEStadir.

DATAenvironment_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.

DATAgs_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-OPTIONSs_prog FOR tadir-obj_name OBLIGATORY NO INTERVALS .

  SELECTION-SCREEN SKIP 1.

  PARAMETERSp_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(25p_selall USER-COMMAND sel.
  SELECTION-SCREEN PUSHBUTTON 40(25p_desel USER-COMMAND des.
*  SELECTION-SCREEN END OF LINE.

  SELECTION-SCREEN SKIP 1.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_prog AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_prog.

    PARAMETERSpo_fugr AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_fugr.

    PARAMETERSpo_ldba AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_ldba.

    PARAMETERSpo_msag AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_msag.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_tran AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_tran.

    PARAMETERSpo_func AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_func.

    PARAMETERSpo_dial AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_dial.

    PARAMETERSpo_tabl AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_tabl.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_shlp AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_shlp.

    PARAMETERSpo_doma AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_doma.

    PARAMETERSpo_dtel AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_dtel.

    PARAMETERSpo_view AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_view.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_mcob AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_mcob.

    PARAMETERSpo_mcid AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_mcid.

    PARAMETERSpo_para AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_para.

    PARAMETERSpo_conv AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_conv.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_suso AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_suso.

    PARAMETERSpo_type AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_type.

    PARAMETERSpo_ttyp AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_ttyp.

    PARAMETERSpo_STRU AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_STRU.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_ENQU AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_ENQU.

    PARAMETERSpo_SQLT AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_SQLT.

    PARAMETERSpo_CLAS AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_CLAS.

    PARAMETERSpo_INTF AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_INTF.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_UDMO AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_UDMO.

    PARAMETERSpo_UENO AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_UENO.

    PARAMETERSpo_SHI3 AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_SHI3.

    PARAMETERSpo_CNTX AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_CNTX.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_TTAB AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_TTAB.

    PARAMETERSpo_IASP AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_IASP.

    PARAMETERSpo_IAMU AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_IAMU.

    PARAMETERSpo_IATU AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_IATU.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_CLIF AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_CLIF.

    PARAMETERSpo_SOBJ AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_SOBJ.

    PARAMETERSpo_WDYN AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_WDYN.

    PARAMETERSpo_WDYA AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_WDYA.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_xslt AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_xslt.

    PARAMETERSpo_enhs AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_enhs.

    PARAMETERSpo_ensc AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_ensc.

    PARAMETERSpo_enhc AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_enhc.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_enho AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_enho.

    PARAMETERSpo_sfbf AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_sfbf.

    PARAMETERSpo_sfsw AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR FIELD po_sfsw.

    PARAMETERSpo_devc AS CHECKBOX DEFAULT abap_true MODIF ID sp1.
    SELECTION-SCREEN COMMENT 65(15FOR FIELD po_devc.
  SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------
  SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERSpo_SQSC AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 5(15FOR FIELD po_SQSC.

    PARAMETERSpo_STOB AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 25(15FOR FIELD po_STOB.

    PARAMETERSpo_DDLS AS CHECKBOX DEFAULT abap_false MODIF ID sp1.
    SELECTION-SCREEN COMMENT 45(15FOR 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

  FREEgv_output_list[].
  LOOP AT s_prog ASSIGNING FIELD-SYMBOL(<lfs_prog>).
    FREEoutput_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(dbWITH '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(1NE 'Z' AND  <lfs_table>-object(1NE 'Y'.
      CLEAR<lfs_table>-object.
    ENDIF.
  ENDLOOP.

  DELETE p_table WHERE object IS INITIAL.

ENDFORM.