SAP/Maintenance View

Maintenance View How to find Status Flag

Denise 2015. 3. 20. 16:33
Ref program : LSVIMF44
form : vim_process_assigns

# View 의 추가부분.

  MODULE set_if_data.
  MODULE liste_after_loop.

# 호출부분.

MODULE set_if_data INPUT.

  CHECK function EQ 'SAVE'.
  PERFORM save_if_data.

ENDMODULE.

# 함수호출부분.

FORM save_if_data .

  DATA : lv_offset TYPE i.

  lv_offset = x_header-after_tabc / cl_abap_char_utilities=>charsize
            + x_header-aft_txttbc / cl_abap_char_utilities=>charsize.

  LOOP AT total.
    CASE total+lv_offset(1).
      WHEN space.

*--- save I/F log
      WHEN OTHERS.

        CALL FUNCTION 'ZMGB_SET_IF_DATA'
          EXPORTING
            iv_logtype = total+lv_offset(1)
            iv_table   = x_header-roottab
            is_data    = total.

    ENDCASE.
  ENDLOOP.

ENDFORM.

# 데이터 처리부분.

FUNCTION zmgb_set_if_data.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(IV_LOGTYPE) TYPE  ZMGGE_LOGTYPE
*"     REFERENCE(IV_TABLE) TYPE  TABNAME
*"     REFERENCE(IS_DATA) TYPE  ANY
*"----------------------------------------------------------------------

  CONSTANTS : lc_prefix TYPE char10 VALUE 'ZBMT'.

  DATA : lv_target TYPE tabname,
         lv_subrc  TYPE sy-subrc.

  DATA : lo_desc TYPE REF TO cl_abap_structdescr,
         lo_ref  TYPE REF TO data.

  DATA : ls_zmggsdate TYPE zmggsdate.

  FIELD-SYMBOLS : <ls_data>  TYPE any,
                  <lv_value> TYPE any.

*--- Convert to Target Table Name
  lv_target = iv_table.
  REPLACE ALL OCCURRENCES OF lc_prefix IN lv_target WITH space.
  CONDENSE lv_target.
  CONCATENATE 'ZMGBI' lv_target INTO lv_target.

*--- Check table
  CALL FUNCTION 'DD_EXIST_TABLE'
    EXPORTING
      tabname      = lv_target
      status       = 'A'
    IMPORTING
      subrc        = lv_subrc
    EXCEPTIONS
      wrong_status = 1
      OTHERS       = 2.
  IF lv_subrc IS NOT INITIAL OR sy-subrc <> 0.
    EXIT.
  ENDIF.

*--- get Structure
  lo_desc ?= cl_abap_typedescr=>describe_by_name( lv_target ).

  CREATE DATA lo_ref TYPE HANDLE lo_desc.
  ASSIGN lo_ref->* TO <ls_data>.

*--- Save data
  ls_zmggsdate-erdat = sy-datum.
  ls_zmggsdate-erzet = sy-uzeit.
  ls_zmggsdate-ernam = sy-uname.

  MOVE-CORRESPONDING is_data      TO <ls_data>.
  MOVE-CORRESPONDING ls_zmggsdate TO <ls_data>.

*--- set Log Type.
  ASSIGN COMPONENT 'LOGTYP' OF STRUCTURE <ls_data>
                TO <lv_value>.
  <lv_value> = iv_logtype.
  UNASSIGN <lv_value>.

*--- set Log Type.
  ASSIGN COMPONENT 'ZLOGSEQ' OF STRUCTURE <ls_data>
                TO <lv_value>.
  CALL FUNCTION 'ZMGG_GET_LOGSEQ'
    IMPORTING
      ev_zlogseq = <lv_value>.

  MODIFY (lv_target) FROM <ls_data>.

ENDFUNCTION.

'SAP > Maintenance View' 카테고리의 다른 글

Modification Date Control.  (0) 2015.11.11