Quantcast
Channel: SCN : Document List - ABAP Development
Viewing all articles
Browse latest Browse all 935

Validate data in Table Maintenance Generator event

$
0
0

The TMG event 01: Before Save., can be used instead of going for event 05: New Entry if you have validation process to do.


The problem with event 05 is that, control goes into the include/form only on the newly created entries. So, if you have you had to change any existing data, the control will not pass through the validation code !!


Here is a piece of code that you can use for your development purpose.


Here,

  • <action> is a flag that will have values as 'N' if a new entry is made or as 'U' if existing entry is modified.
  • <vim_total_struc>is a structure that holds the current looped value on TOTAL table.
  • it_total_zdata, internal table should be of type table z-table.


LOOP AT total.

  IF <action> EQ 'N' OR <action> EQ 'U'.

    APPEND <vim_total_struc> TO it_total_zdata.

  ENDIF.

ENDLOOP.


IF it_total_zdata[] IS NOT INITIAL.

* Perform validation

    LOOP AT it_total_zdata.

      IF it_total_zdata-name NE 'TESTNAME'.

        MESSAGE 'Name is not TESTNAME' TYPE 'S' DISPLAY LIKE 'E'.

        vim_abort_saving = c_abrt_save.

        sy-subrc = 4.

        EXIT.

      ENDIF.

    ENDLOOP.

ENDIF.


IMPORTANT POINTS  !!

  • Message should be of type 'S'. If not, the screen returns to SM30, which looks bad !! Make sure its displayed either as 'Error' or 'Warning'.
  • vim_abort_saving has to be set to 'X' to avoid data being saved. (Since the message popped is of type 'S', control proceeds further!!)
  • Set sy-subrc as '4' which stops further processing.


The above points are mandatory, if you want a message to be popped and wrong data still to be seen giving an opportunity to the user to rectify.


Viewing all articles
Browse latest Browse all 935

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>