SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

GenericTemplate to Access LDB



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> List Generation, LDB, Spool Process, SAP Query, Report Painter
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1639

PostPosted: Wed Apr 16, 2008 5:43 pm    Post subject: GenericTemplate to Access LDB Reply with quote

GenericTemplate to Access LDB

Source https: //wiki.sdn.sap.com/wiki/display/Snippets/GenericTemplate+to+Access+LDB

Code:
*&---------------------------------------------------------------------*
*& Report ZFTI_TEMPL_TRL_VIA_FUBA
*&---------------------------------------------------------------------*
*& REPORTING-TEMPLATE for access to the logical databases with
*customer specific coding
*& If the logical databases provide the information you need, but
*& you are limited due to the limited report/list generation potentials
*& of the SAP Query, this reporting template may help you creating
*& your own specific reports faster and more easily.
*&---------------------------------------------------------------------*

REPORT zfti_templ_trl_via_fuba.
* The following report acts as a TEMPLATE with executable example coding
* To use this template you have to COPY it into your local namespace.
* Please copy the complete report including its INCLUDEs
* What does COPY mean? You have to know (or you will see it if you
* debug the program) that the template works as follows:
* 1. First of all you have to know, which data of which LDB you need.
* 2. A usual report selection screen is defined. This may contain
* selections which are supported by the choosen LDB, others may be
* specific.
* 3. The selections which are supported by the choosen LDB are
* transformed in a way, the communication module LDB_PROCESS
* can handle it easily.
* In order to standardize selections, communication with the LDB and ALV
* output processing, 3 DDIC structures are defined:
* 1. required fields: ZFTI_TEMPL_REQU_LDB_FIELDS
* 2. output fields: ZFTI_TEMPL_OUTPUT_FIELDS
* 3. selection screen: ZFTI_TEMPL_SELSCREEN_ITEMS
* Read the below instructions and do the changes accordingly
************************************************************************
***
* First of all declare following DDIC structures:
* 1. One containing the required fields from the selected LDB with
* the same field name as in the requested LDB structure.
* 2. One containing the output fields for the ALV
* 3. One containing the fields and parameters for the selection screen
* Since this report is an executable example, this example runs on
* existing DDIC structures created for this example
* !!! Attention !!!
* For some fields additional parameters are required
* e.g. for fields in display currency the fields
* - display currency
* - currency translation type
* The symbol ### indicates that the required values have to be entered.
* Replace ### by suitable values.
* For Ex:
* ### Type in the LDB node name for call of LDB:
* g_con_ldbnode TYPE ldbnode
* VALUE 'POSITIONS',
* In above statement replace the LDB node with the required value
* The symbol ??? indicates that addn logic can be added at these places.
************************************************************************
********
* use of FTI_REP_TEMP_MAP Table
************************************************************************
********
* DB table 'FTI_REP_TEMP_MAP' consists of the mapping between selection
* parameters of local report to the the corresponding
* selection PARAMETER of the LDB.
* An entry into this table must be made for every
* sel param of local
* report to the sel param of LDB , if they are different. OR this should
* be done manually in the program.
* For Ex :
* valarea FOR fti_templ_selscreen_items-valuation_area
* Since valuation area is defined as 's_vlarea' in the LDB
* of'POSITIONS'
* mapping must be done between these two entries .
* Hence make an entry into the
* table of 'FTI_REP_TEMP_MAP'
*
************************************************************************
*********
** Tables declaration needed for select-options:
TABLES: fti_templ_selscreen_items.
************************************************************************
* type declarations (needed always):
************************************************************************
TYPE-POOLS:
rsfs,
rsds,
slis,
ftico.
************************************************************************
*
* Type in the required values
************************************************************************
*
CONSTANTS:
*### Type in the LDB name for call of LDB:
g_con_ldbname TYPE ldbnam VALUE ftico_ldbnam_positions,
*### Type in the LDB node name for call of LDB:
g_con_ldbnode TYPE ldbnode VALUE 'POSITIONS',
*### Type in the name of the mapping table
gt_con_dbmap_name TYPE dbnam VALUE 'FTI_REP_TEMP_MAP',
*### Type in name of output structure (for ALV),
g_con_name_alv_struc TYPE tabname VALUE 'FTI_TEMPL_OUTPUT_FIELDS',
*### Type in name of the structure containing the required
* fields from ldb
gt_con_name_ldb_struc TYPE ddobjname VALUE 'FTI_TEMPL_REQU_LDB_FIELDS' ,
*current program name
g_con_callback_prog TYPE rsdsprog
* VALUE 'RFTI_TEMPL_TRL_VIA_FUBA',
VALUE sy-repid,
* callback form name
g_con_callback_form TYPE rsdsform VALUE 'CALLBACK_FORM'.
************************************************************************
* Declare the internal tables of the required type here
************************************************************************
DATA:
* transport of report selection to LDB via LDB_PROCESS:
g_wrk_ldb_fields TYPE rsfs_tab_fields,
g_tab_ldb_fields TYPE rsfs_fields,
gt_rsparams TYPE rsparams_tt,
gt_errors TYPE bapierr_t,
*### result data from LDB( Enter the LDB name accordingly)
g_tab_ldb_result TYPE TABLE OF fti_ldb_tr_positions,
g_wrk_ldb_result TYPE fti_ldb_tr_positions,
*### output data ( Enter the output structure name accordingly)
g_tab_output_result TYPE TABLE OF fti_templ_output_fields.
DATA: gwa_callback TYPE ldbcb,
gt_callback TYPE ldbcb_tt.
************************************************************************
****
* selection screen
* ###
* Please modify the selection screen as per the requirements)
************************************************************************
****
* block 1 - product categories
---------------------------------------------*
selection-screen: begin of block b1 with frame title text-s01.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETER: p_jse TYPE fti_ldb_flg_se.
SELECTION-SCREEN COMMENT 3(30) text-f01 FOR FIELD p_jse.
SELECTION-SCREEN POSITION 34.
PARAMETER: p_jotc TYPE fti_ldb_flg_otc.
SELECTION-SCREEN COMMENT 37(43) text-f02 FOR FIELD p_jotc.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETER: p_jlo TYPE fti_ldb_flg_lo.
SELECTION-SCREEN COMMENT 3(30) text-f03 FOR FIELD p_jlo.
SELECTION-SCREEN POSITION 34.
PARAMETER: p_jlof TYPE fti_ldb_flg_lof.
SELECTION-SCREEN COMMENT 37(40) text-f04 FOR FIELD p_jlof.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK b1.
* block 2 - selections ------------------------------------------------*
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-s02.
SELECT-OPTIONS: s_bukrs FOR fti_templ_selscreen_items-company_code
OBLIGATORY,
s_vlarea FOR fti_templ_selscreen_items-valuation_area
NO-EXTENSION
NO INTERVALS
OBLIGATORY,
s_valcls FOR fti_templ_selscreen_items-valuation_class,
s_gsart FOR fti_templ_selscreen_items-prod_type,
s_ranlse FOR fti_templ_selscreen_items-security_id,
s_rldepo FOR fti_templ_selscreen_items-security_account,
s_rfha FOR fti_templ_selscreen_items-deal_number,
s_ranlvd FOR fti_templ_selscreen_items-loans_contract.
PARAMETERS: p_date TYPE fti_stichtag
OBLIGATORY
DEFAULT sy-datum,
p_rst_pb TYPE fti_rstich_pb
OBLIGATORY
AS LISTBOX VISIBLE LENGTH 20
DEFAULT '1',
p_var TYPE slis_vari,
p_errlog TYPE fti_ldb_tr_parameters-flg_errlog_output
AS CHECKBOX,
p_logsav TYPE fti_ldb_tr_parameters-flg_ballog_db_save
AS CHECKBOX.
SELECTION-SCREEN: END OF BLOCK b2.
* block 3 - output control --------------------------------------------*
SELECTION-SCREEN: BEGIN OF BLOCK b3 WITH FRAME TITLE text-s03.
*selection-screen comment 01(11) text-f10 for field p_skalv. "Skalierung
PARAMETERS: p_skflg TYPE xfeld AS CHECKBOX.
PARAMETERS: p_skalv TYPE ts70skal_vor DEFAULT '3'.
PARAMETERS: p_decim TYPE ts70skal_nach DEFAULT '0'.
SELECTION-SCREEN: END OF BLOCK b3.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.
  PERFORM fill_f4_layout CHANGING p_var.

AT SELECTION-SCREEN.
  IF p_jse IS INITIAL AND
  p_jlo IS INITIAL AND
  p_jotc IS INITIAL AND
  p_jlof IS INITIAL.
    MESSAGE w003(fti_ldb_message).
  ENDIF.
************************************************************************
* begin main program:
************************************************************************
***** START-OF-SELECTION:
START-OF-SELECTION.
*??? add additional required checks
END-OF-SELECTION.
************************************************************************
***** END-OF-SELECTION
**Fills all the parameters from the query definition into a structure
  PERFORM fill_req_ldb_ccsf
  USING gt_con_name_ldb_struc
  g_con_ldbnode
  CHANGING g_tab_ldb_fields.
* selects data via LDB and populates 'g_tab_ldb_result' which contains
* the result data
*??? Delete the report specific select options from gt_rsparams[]
  PERFORM call_ldb.
*??? Add additional logic in the below form routine to add addn. fields
* to the result data
  PERFORM process_ldbdata_to_resultdata.
*??? Add additional logic in field-catalog if needed (output via ALV)
  PERFORM alv_output.
************************************************************************
***** INCLUDES
  INCLUDE zfti_templ_trl_via_fuba_setf01.
  INCLUDE zfti_templ_trl_via_fuba_wrif01.
*----------------------------------------------------------------------*
***INCLUDE ZFTI_TEMPL_TRL_VIA_FUBA_SETF01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form call_ldb
*&---------------------------------------------------------------------*
* 1. transform type of select-options
* 2. call LDB via LDB_PROCESS masked by FTI_TEMPL_TRL_LDB_BY_FUBA
* 3. data are given back in callback routine
*----------------------------------------------------------------------*
FORM call_ldb.
  DATA:
  lwa_sel_ddic_map TYPE fti_rep_temp_map,
  lt_sel_ddic_map TYPE TABLE OF fti_rep_temp_map,
  lwa_rsparams TYPE rsparams,
  lt_rsparams TYPE TABLE OF rsparams,
  lwa_error TYPE bapierr,
  l_program_map TYPE programm.
  FIELD-SYMBOLS:
  <wa_rsparams> TYPE rsparams.
  l_program_map = sy-cprog.
** gets complete selections from selection screen
  CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
       EXPORTING
            curr_report     = sy-cprog
       TABLES
            selection_table = lt_rsparams
       EXCEPTIONS
            not_found       = 1
            no_report       = 2
            OTHERS          = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
** cleansing of LT_RSPARAMS from system generated entries:
  LOOP AT lt_rsparams ASSIGNING <wa_rsparams>.
    IF <wa_rsparams>-selname CP '%*' OR
    <wa_rsparams>-selname CP 'SP$*'.
      DELETE lt_rsparams INDEX sy-tabix.
    ENDIF.
    IF <wa_rsparams>-low IS INITIAL AND <wa_rsparams>-high IS INITIAL .
      DELETE lt_rsparams INDEX sy-tabix.
    ENDIF.
  ENDLOOP.
** modifying LT_RSPARAMS:
  LOOP AT lt_rsparams ASSIGNING <wa_rsparams>.
    IF <wa_rsparams>-selname EQ 'P_DATE'.
      MOVE: 'I' TO <wa_rsparams>-sign,
      'EQ' TO <wa_rsparams>-option,
      'S' TO <wa_rsparams>-kind,
      'S_DATS' TO <wa_rsparams>-selname.
    ENDIF.
  ENDLOOP.
** load mapping data:
  SELECT * FROM (gt_con_dbmap_name)
  INTO TABLE lt_sel_ddic_map
  WHERE programm = l_program_map.
** sorting
  SORT lt_sel_ddic_map BY selparam_prog.
  SORT lt_rsparams BY selname.
** Loop through each row and get its corresponding sel. param for the
  ldb
***??? Delete the Param's which donot belong to LDB
  loop at lt_rsparams assigning <wa_rsparams>.
  READ TABLE lt_sel_ddic_map INTO lwa_sel_ddic_map
  WITH KEY programm = l_program_map
  selparam_prog = <wa_rsparams>-selname.
  IF sy-subrc EQ 0.
    <wa_rsparams>-selname = lwa_sel_ddic_map-selparam_ldb.
  ENDIF.
  IF <wa_rsparams>-selname EQ 'P_SKFLG'.
    CONTINUE.
  ENDIF.
  IF <wa_rsparams>-selname EQ 'P_SKALV'.
    CONTINUE.
  ENDIF.
  IF <wa_rsparams>-selname EQ 'P_DECIM'.
    CONTINUE.
  ENDIF.
  APPEND <wa_rsparams> TO gt_rsparams[].
ENDLOOP.
**call to fuba
gwa_callback-ldbnode = g_con_ldbnode.
gwa_callback-get = ftico_xtrue.
gwa_callback-get_late = ftico_xfalse.
gwa_callback-cb_prog = g_con_callback_prog.
gwa_callback-cb_form = g_con_callback_form.
APPEND gwa_callback TO gt_callback.
*** call the LDB:
CALL FUNCTION 'LDB_PROCESS'
     EXPORTING
          ldbname                     = g_con_ldbname
          field_selection             = g_tab_ldb_fields
     TABLES
          callback                    = gt_callback
          selections                  = gt_rsparams
     EXCEPTIONS
          ldb_not_reentrant           = 1
          ldb_incorrect               = 2
          ldb_already_running         = 3
          ldb_error                   = 4
          ldb_selections_error        = 5
          ldb_selections_not_accepted = 6
          variant_not_existent        = 7
          variant_obsolete            = 8
          variant_error               = 9
          free_selections_error       = 10
          callback_no_event           = 11
          callback_node_duplicate     = 12
          callback_no_program         = 13
          callback_no_cbform          = 14
          dyn_node_no_type            = 15
          dyn_node_invalid_type       = 16
          OTHERS                      = 17.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " call_ldb
*&--------------------------------------------------------------------*
*& Form callback_form
*&--------------------------------------------------------------------*
* Callback form for LDB
* Workarea will be filled from LDB
* results are then stored in a global table
*---------------------------------------------------------------------*
FORM callback_form                                          "#EC CALLED
USING name TYPE ldbn-ldbnode
workarea TYPE fti_ldb_tr_positions
mode TYPE c
selected TYPE c.
  MOVE-CORRESPONDING workarea TO g_wrk_ldb_result.
  APPEND g_wrk_ldb_result TO g_tab_ldb_result[].
ENDFORM. " callback_form
*&---------------------------------------------------------------------*
*& Form process_ldbdata_to_resultdata
*&---------------------------------------------------------------------*
* Here the result data of a ldb call can be processed and
* prepared for output
*----------------------------------------------------------------------*
FORM process_ldbdata_to_resultdata.
*** Changes to data cld be done here
ENDFORM. " process_ldbdata_to_resultdata
*&---------------------------------------------------------------------*
*& Form set_alv_fieldcat_n_Layout
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
FORM set_alv_fieldcat_n_layout
CHANGING c_layout TYPE slis_layout_alv
c_tab_fieldcat TYPE slis_t_fieldcat_alv.
  FIELD-SYMBOLS: <wa_fieldcat> TYPE slis_fieldcat_alv.
** create default field catalogue with DDIC information of
** output structure:
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
* I_PROGRAM_NAME = g_con_callback_prog
* I_INTERNAL_TABNAME =
  i_structure_name = g_con_name_alv_struc
  i_client_never_display = 'X'
* I_INCLNAME =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
  CHANGING
  ct_fieldcat = c_tab_fieldcat
  EXCEPTIONS
  inconsistent_interface = 1
  program_error = 2
  OTHERS = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
** modify the field catalogue in a specific required way:
  IF p_skflg = ftico_xtrue.
    IF <wa_fieldcat>-fieldname CP '*_LC' OR
    <wa_fieldcat>-fieldname CP '*_PC'.
      <wa_fieldcat>-round = p_skalv.
      <wa_fieldcat>-decimals_out = p_decim.
    ENDIF.
  ENDIF.
ENDLOOP.
ENDFORM. " set_alv_fieldcat_n_layout
*&---------------------------------------------------------------------*
*& Form alv_output
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
FORM alv_output.
  DATA: l_layout TYPE slis_layout_alv,
  lt_fieldcat TYPE slis_t_fieldcat_alv,
  l_wrk_variant LIKE disvariant.
**??? Add additional logic to build the field catalog (example of a
  layout given)
  perform set_alv_fieldcat_n_layout
  changing l_layout
  lt_fieldcat.
**Variant
  l_wrk_variant-report = sy-repid.
  l_wrk_variant-username = sy-uname.
  l_wrk_variant-variant = p_var.
**??? Add the required addn parameters ( example of an ALV call given)
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
  i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
  i_callback_top_of_page = 'PRINT_TOP'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* i_structure_name = 'FTI_TEMPL_OUTPUT_LIST_FIELDS'
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
  it_fieldcat = lt_fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
  i_save = 'A'
  is_variant = l_wrk_variant
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
  TABLES
  t_outtab = g_tab_output_result
  EXCEPTIONS
  program_error = 1
  OTHERS = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM. " alv_output
*&--------------------------------------------------------------------*
*& FORM print_top *
*&--------------------------------------------------------------------*
FORM print_top.                                             "#EC CALLED
  DATA: l_tab_commentary TYPE slis_t_listheader,
  l_wrk_commentary LIKE LINE OF l_tab_commentary,
  text(100) TYPE c,
  e_date(10) TYPE c,
  f_date(10) TYPE c,
  d_date(10) TYPE c,
  z_date(10) TYPE c,
  r_date(10) TYPE c,
  l_txt_int_rate(10) TYPE c.
** Example for layouting ALV header:
* Convert key date into printable format
  WRITE p_date TO f_date.
** In the list header there is supported the output of different
** "information types" with different font sizes
* Typ 'H' (Header) - Hauptuberschrift
  l_wrk_commentary-typ = 'H'.
  l_wrk_commentary-info = 'Test-Bestandsliste TR'.
  APPEND l_wrk_commentary TO l_tab_commentary.
* Typ 'S' (Selektion) - Informationen zur Selektions
* (hier z.B. Selektionsdatum)
  l_wrk_commentary-typ = 'S'.
  l_wrk_commentary-info = f_date.
  APPEND l_wrk_commentary TO l_tab_commentary.
* interne Tabelle mit den Listkopf-Infos wird
* im HTML-Control angezeigt:
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
            it_list_commentary = l_tab_commentary.
ENDFORM. "print_top
*&---------------------------------------------------------------------*
*& Form fill_req_ldb_ccsf
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_CON_NAME_LDB_STRUC text
* <--P_G_TAB_LDB_FIELDS text
*----------------------------------------------------------------------*
FORM fill_req_ldb_ccsf USING u_con_name_ldb_struc TYPE ddobjname
u_node TYPE ldbnode
CHANGING c_tab_ldb_fields TYPE rsfs_fields.
  DATA: lt_dd03p LIKE dd03p OCCURS 0 WITH HEADER LINE,
  lwa_ccsf TYPE rsfs_tab_fields.
  CALL FUNCTION 'DDIF_TABL_GET'
       EXPORTING
            name          = u_con_name_ldb_struc
       TABLES
            dd03p_tab     = lt_dd03p
       EXCEPTIONS
            illegal_input = 1
            OTHERS        = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  MOVE u_node TO lwa_ccsf-tablename.
  LOOP AT lt_dd03p.
    APPEND lt_dd03p-fieldname TO
    lwa_ccsf-fields.
  ENDLOOP.
  SORT lwa_ccsf-fields.
  APPEND lwa_ccsf TO c_tab_ldb_fields .
ENDFORM. " fill_req_ldb_ccsf
*&---------------------------------------------------------------------*
*& Form fill_f4_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_P_VAR text
*----------------------------------------------------------------------*
FORM fill_f4_layout CHANGING c_var TYPE slis_vari.
  DATA: l_wrk_variant TYPE disvariant,
  l_exit TYPE c.
  l_wrk_variant-report = sy-repid.
  l_wrk_variant-username = sy-uname.
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
       EXPORTING
            is_variant = l_wrk_variant
            i_save     = 'A'
       IMPORTING
            e_exit     = l_exit
            es_variant = l_wrk_variant
       EXCEPTIONS
            not_found  = 1.
  IF sy-subrc = 1.
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ELSEIF l_exit = space.
    c_var = l_wrk_variant-variant.
  ENDIF.
ENDFORM. " fill_f4_layout
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> List Generation, LDB, Spool Process, SAP Query, Report Painter All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.