0% found this document useful (0 votes)
29 views12 pages

Update LFA1 Via Excel Sheet

Update LFA1 table via Excel sheet

Uploaded by

Tushar Karhale
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views12 pages

Update LFA1 Via Excel Sheet

Update LFA1 table via Excel sheet

Uploaded by

Tushar Karhale
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 12

*&---------------------------------------------------------------------*

*& Report ZS2P_LFA1_CUST_UPLOAD


*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zs2p_lfa1_cust_upload.

TYPES:BEGIN OF ty_upload,
lifnr TYPE lifnr,
zzmsme_stus TYPE zzdemsme_stus,
zzmsme_r_num TYPE zzdemsme_r_num,
zzmsme_r_date TYPE char10,
zzrpt_stat TYPE zzderpt_stat,
zzrpt_name TYPE zzderpt_name,
zzrpt_strtdate TYPE char10,
zzrpt_e_date TYPE char10,
zzstri_o_comp TYPE zzdestri_o_comp,
zzcer_ofin_num TYPE zzdecer_ofin_num,
zze_inv_app TYPE zzdee_inv_app,
zzmsme_c_stat TYPE zzdemsme_c_stat,
zzmsme_c_sdate TYPE char10,
zzmsme_c_edate TYPE char10,
zzgst_c_stat TYPE zzdegst_c_stat,
zzgst_c_sdate TYPE char10,
zzgst_c_edate TYPE char10,
zz_non_gstdec TYPE zzde_non_gstdec,
zzpan_card TYPE zzdepan_card,
zzno_pan_che TYPE zzdeno_pan_che,
zzdcha_license TYPE zzdecha_license,
zz_aa_dec TYPE zzde_aa_dec,
zznature_bus TYPE zzdenature_bus,
zzspeci_person TYPE zzdespeci_pers,
END OF ty_upload.

TYPES:BEGIN OF ty_final,
lifnr TYPE lifnr,
zzmsme_stus TYPE zzdemsme_stus,
zzmsme_r_num TYPE zzdemsme_r_num,
zzmsme_r_date TYPE zzdemsme_r_date,
zzrpt_stat TYPE zzderpt_stat,
zzrpt_name TYPE zzderpt_name,
zzrpt_strtdate TYPE zzderpt_strtdate,
zzrpt_e_date TYPE zzderpt_e_date,
zzstri_o_comp TYPE zzdestri_o_comp,
zzcer_ofin_num TYPE zzdecer_ofin_num,
zze_inv_app TYPE zzdee_inv_app,
zzmsme_c_stat TYPE zzdemsme_c_stat,
zzmsme_c_sdate TYPE zzdemsme_c_sdate,
zzmsme_c_edate TYPE zzdemsme_c_edate,
zzgst_c_stat TYPE zzdegst_c_stat,
zzgst_c_sdate TYPE zzdegst_c_sdate,
zzgst_c_edate TYPE zzdegst_c_edate,
zz_non_gstdec TYPE zzde_non_gstdec,
zzpan_card TYPE zzdepan_card,
zzno_pan_che TYPE zzdeno_pan_che,
zzdcha_license TYPE zzdecha_license,
zz_aa_dec TYPE zzde_aa_dec,
zznature_bus TYPE zzdenature_bus,
zzspeci_person TYPE zzdespeci_pers,
END OF ty_final.
TYPES : BEGIN OF ty_error,
lno TYPE bapi_line,
lifnr TYPE lifnr,
msg TYPE bapi_msg,
END OF ty_error.
DATA:lt_upload TYPE TABLE OF ty_upload,
ls_upload TYPE ty_upload,
lt_final TYPE TABLE OF ty_final,
ls_final TYPE ty_final,
lt_error TYPE TABLE OF ty_error,
ls_error TYPE ty_error,
lv_date TYPE datum.
DATA : lv_file TYPE string.
*- Validate
TYPE-POOLS: vrm.
DATA: git_status TYPE vrm_values.
DATA: gs_status TYPE vrm_value.
DATA: rpt_status TYPE vrm_values.
DATA: rpt_gs_status TYPE vrm_value.
DATA: gt_strike TYPE vrm_values.
DATA: gs_strike TYPE vrm_value.
DATA: gt_inv TYPE vrm_values.
DATA: gs_inv TYPE vrm_value.
DATA: gt_nat_bus TYPE vrm_values.
DATA: gs_nat_bus TYPE vrm_value.
DATA: gt_speci TYPE vrm_values.
DATA: gs_speci TYPE vrm_value.
*- End of Validate
PARAMETERS : p_file TYPE rlgrap-filename OBLIGATORY.

INITIALIZATION.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.


PERFORM get_f4_file.

START-OF-SELECTION.

IF p_file IS INITIAL.
MESSAGE 'Please select file to process' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.

PERFORM get_upload.

PERFORM process_data.

PERFORM update_data.

PERFORM display_data.

* BREAK-POINT.
*&---------------------------------------------------------------------*
*& Form get_f4_file
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM get_f4_file .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form get_upload
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM get_upload .
lv_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lv_file
filetype = 'ASC'
has_field_separator = 'X'
dat_mode = ' '
* IMPORTING
* filelength = lv_filelength
* header = lv_headerxstring
TABLES
data_tab = lt_upload.

DELETE lt_upload INDEX 1.


ENDFORM.
*&---------------------------------------------------------------------*
*& Form process_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM process_data .

LOOP AT lt_upload INTO ls_upload.


DATA(lv_index) = sy-tabix.
*- Validate vendor
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = ls_upload-lifnr
IMPORTING
output = ls_upload-lifnr.

SELECT SINGLE * FROM lfa1 INTO @DATA(ls_lfa1) WHERE lifnr = @ls_upload-lifnr.


IF NOT sy-subrc IS INITIAL.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Vendor Number Invalid'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
*- Validate dates
* ZZMSME_R_DATE
IF NOT ls_upload-zzmsme_r_date IS INITIAL.
CLEAR lv_date.
CONCATENATE ls_upload-zzmsme_r_date+6(4) ls_upload-zzmsme_r_date+3(2)
ls_upload-zzmsme_r_date(2) INTO lv_date.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = lv_date
* EXCEPTIONS
* PLAUSIBILITY_CHECK_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Date format is Invalid'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
ls_final-zzmsme_r_date = lv_date.
ENDIF.
* ZZRPT_E_DATE
IF NOT ls_upload-zzrpt_e_date IS INITIAL.

CLEAR lv_date.
CONCATENATE ls_upload-zzrpt_e_date+6(4) ls_upload-zzrpt_e_date+3(2)
ls_upload-zzrpt_e_date(2) INTO lv_date.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = lv_date
* EXCEPTIONS
* PLAUSIBILITY_CHECK_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Date format is Invalid'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
ls_final-zzrpt_e_date = lv_date.
ENDIF.
* ZZMSME_C_SDATE
IF NOT ls_upload-zzmsme_c_sdate IS INITIAL.

CLEAR lv_date.
CONCATENATE ls_upload-zzmsme_c_sdate+6(4) ls_upload-zzmsme_c_sdate+3(2)
ls_upload-zzmsme_c_sdate(2) INTO lv_date.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = lv_date
* EXCEPTIONS
* PLAUSIBILITY_CHECK_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Date format is Invalid'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
ls_final-zzmsme_c_sdate = lv_date.
ENDIF.
* ZZMSME_C_EDATE
IF NOT ls_upload-zzmsme_c_edate IS INITIAL.

CLEAR lv_date.
CONCATENATE ls_upload-zzmsme_c_edate+6(4) ls_upload-zzmsme_c_edate+3(2)
ls_upload-zzmsme_c_edate(2) INTO lv_date.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = lv_date
* EXCEPTIONS
* PLAUSIBILITY_CHECK_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Date format is Invalid'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
ls_final-zzmsme_c_edate = lv_date.
ENDIF.
* ZZGST_C_SDATE
IF NOT ls_upload-zzgst_c_sdate IS INITIAL.

CLEAR lv_date.
CONCATENATE ls_upload-zzgst_c_sdate+6(4) ls_upload-zzgst_c_sdate+3(2)
ls_upload-zzgst_c_sdate(2) INTO lv_date.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = lv_date
* EXCEPTIONS
* PLAUSIBILITY_CHECK_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Date format is Invalid'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
ls_final-zzgst_c_sdate = lv_date.
ENDIF.
* ZZGST_C_EDATE
IF NOT ls_upload-zzgst_c_edate IS INITIAL.

CLEAR lv_date.
CONCATENATE ls_upload-zzgst_c_edate+6(4) ls_upload-zzgst_c_edate+3(2)
ls_upload-zzgst_c_edate(2) INTO lv_date.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = lv_date
* EXCEPTIONS
* PLAUSIBILITY_CHECK_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Date format is Invalid'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
ls_final-zzgst_c_edate = lv_date.
ENDIF.
*ZZRPT_STRTDATE
IF NOT ls_upload-zzrpt_strtdate IS INITIAL.

CLEAR lv_date.
CONCATENATE ls_upload-zzrpt_strtdate+6(4) ls_upload-zzrpt_strtdate+3(2)
ls_upload-zzrpt_strtdate(2) INTO lv_date.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = lv_date
* EXCEPTIONS
* PLAUSIBILITY_CHECK_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Date format is Invalid'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
ls_final-zzrpt_strtdate = lv_date.
ENDIF.

*- VRM SET VALUES


*- ZZMSME_STUS
REFRESH git_status.
gs_status-key = ' '.
gs_status-text = ' ' .
APPEND gs_status TO git_status.
gs_status-key = '1'.
gs_status-text = 'Micro' .
APPEND gs_status TO git_status.

gs_status-key = '2'.
gs_status-text = 'Medium' .
APPEND gs_status TO git_status.

gs_status-key = '3'.
gs_status-text = 'Small' .
APPEND gs_status TO git_status.

gs_status-key = '4'.
gs_status-text = 'Others' .
APPEND gs_status TO git_status.

gs_status-key = '5'.
gs_status-text = 'Not an MSME' .
APPEND gs_status TO git_status.

gs_status-key = '6'.
gs_status-text = ' ' .
APPEND gs_status TO git_status.

READ TABLE git_status INTO DATA(ls_stat1) WITH KEY key = ls_upload-zzmsme_stus.


IF NOT sy-subrc is INITIAL.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Upload Valid MSME Status'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
* CALL FUNCTION 'VRM_SET_VALUES'
* EXPORTING
* id = 'LFA1-ZZMSME_STUS'
* values = git_status[]
* EXCEPTIONS
* id_illegal_name = 1
* OTHERS = 2.

*- ZZRPT_STAT
REFRESH rpt_status.
rpt_gs_status-key = ' '.
rpt_gs_status-text = ' ' .
APPEND rpt_gs_status TO rpt_status.

rpt_gs_status-key = '01'.
rpt_gs_status-text = 'Holding Company of TPL' .
APPEND rpt_gs_status TO rpt_status.

rpt_gs_status-key = '02'.
rpt_gs_status-text = 'Subsidiary of Holding Company' .
APPEND rpt_gs_status TO rpt_status.

rpt_gs_status-key = '03'.
rpt_gs_status-text = 'Associate of Holding company' .
APPEND rpt_gs_status TO rpt_status.

rpt_gs_status-key = '04'.
rpt_gs_status-text = 'Entity holding more than 20%' .
APPEND rpt_gs_status TO rpt_status.

rpt_gs_status-key = '05'.
rpt_gs_status-text = 'Subsidiary of "Entity holding more than 20%"' .
APPEND rpt_gs_status TO rpt_status.

rpt_gs_status-key = '06'.
rpt_gs_status-text = 'Unincorporated JVs of TPL' .
APPEND rpt_gs_status TO rpt_status.

rpt_gs_status-key = '07'.
rpt_gs_status-text = 'Subsidiary of TPL' .
APPEND rpt_gs_status TO rpt_status.
rpt_gs_status-key = '08'.
rpt_gs_status-text = 'Incorporated JVs of TPL' .
APPEND rpt_gs_status TO rpt_status.

rpt_gs_status-key = '09'.
rpt_gs_status-text = 'Associate of TPL' .
APPEND rpt_gs_status TO rpt_status.

rpt_gs_status-key = '10'.
rpt_gs_status-text = 'Subsidiary of "Subsidiary to TPL"' .
APPEND rpt_gs_status TO rpt_status.

READ TABLE rpt_status INTO ls_stat1 WITH KEY key = ls_upload-zzrpt_stat.


IF NOT sy-subrc is INITIAL.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Upload Valid RPT status'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
* CALL FUNCTION 'VRM_SET_VALUES'
* EXPORTING
* id = 'LFA1-ZZRPT_STAT'
* values = rpt_status[]
* EXCEPTIONS
* id_illegal_name = 1
* OTHERS = 2.
*- ZZSTRI_O_COMP
REFRESH gt_strike.
gs_strike-key = ' '.
gs_strike-text = ' ' .
APPEND gs_strike TO gt_strike.

gs_strike-key = '1'.
gs_strike-text = 'Yes' .
APPEND gs_strike TO gt_strike.

gs_strike-key = '2'.
gs_strike-text = 'No' .
APPEND gs_strike TO gt_strike.
READ TABLE gt_strike INTO ls_stat1 WITH KEY key = ls_upload-zzstri_o_comp.
IF NOT sy-subrc is INITIAL.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Upload Valid strike off companies'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
* CALL FUNCTION 'VRM_SET_VALUES'
* EXPORTING
* id = 'LFA1-ZZSTRI_O_COMP'
* values = gt_strike[]
* EXCEPTIONS
* id_illegal_name = 1
* OTHERS = 2.
*-ZZE_INV_APP
REFRESH gt_inv.
gs_inv-key = ' '.
gs_inv-text = ' ' .
APPEND gs_inv TO gt_inv.

gs_inv-key = '1'.
gs_inv-text = 'Yes' .
APPEND gs_inv TO gt_inv.

gs_inv-key = '2'.
gs_inv-text = 'No' .
APPEND gs_inv TO gt_inv.
READ TABLE gt_inv INTO ls_stat1 WITH KEY key = ls_upload-zze_inv_app.
IF NOT sy-subrc is INITIAL.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Upload Valid invoice appllicability'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
* CALL FUNCTION 'VRM_SET_VALUES'
* EXPORTING
* id = 'LFA1-ZZE_INV_APP'
* values = gt_inv[]
* EXCEPTIONS
* id_illegal_name = 1
* OTHERS = 2.
*-ZZNATURE_BUS
REFRESH gt_nat_bus.
gs_nat_bus-key = ' '.
gs_nat_bus-text = ' ' .
APPEND gs_nat_bus TO gt_nat_bus.

gs_nat_bus-key = '01'.
gs_nat_bus-text = 'Manufacturer' .
APPEND gs_nat_bus TO gt_nat_bus.

gs_nat_bus-key = '02'.
gs_nat_bus-text = 'Service Provider' .
APPEND gs_nat_bus TO gt_nat_bus.

gs_nat_bus-key = '03'.
gs_nat_bus-text = 'Trader' .
APPEND gs_nat_bus TO gt_nat_bus.
READ TABLE gt_nat_bus INTO ls_stat1 WITH KEY key = ls_upload-zznature_bus.
IF NOT sy-subrc is INITIAL.
ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Upload Valid nature of business'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
* CALL FUNCTION 'VRM_SET_VALUES'
* EXPORTING
* id = 'LFA1-ZZNATURE_BUS'
* values = gt_nat_bus[]
* EXCEPTIONS
* id_illegal_name = 1
* OTHERS = 2.
*- ZZSPECI_PERSON
REFRESH gt_speci.
gs_speci-key = '01'.
gs_speci-text = 'Yes' .
APPEND gs_speci TO gt_speci.

gs_speci-key = ' '.


gs_speci-text = ' ' .
APPEND gs_speci TO gt_speci.
READ TABLE gt_speci INTO ls_stat1 WITH KEY key = ls_upload-zzspeci_person.

IF NOT sy-subrc is INITIAL.


ls_error-lno = lv_index.
ls_error-lifnr = ls_upload-lifnr.
ls_error-msg = 'Upload Valid Specified Person'.
APPEND ls_error TO lt_error.
CONTINUE.
ENDIF.
* gs_speci-key = '02'.
* gs_speci-text = ' ' .
* APPEND gs_speci TO gt_speci.

* CALL FUNCTION 'VRM_SET_VALUES'


* EXPORTING
* id = 'LFA1-ZZSPECI_PERSON'
* values = gt_speci[]
* EXCEPTIONS
* id_illegal_name = 1
* OTHERS = 2.
*- END OF VRM SET VALUES field wise
ls_final-lifnr = ls_upload-lifnr.
ls_final-zzmsme_stus = ls_upload-zzmsme_stus.
ls_final-zzmsme_r_num = ls_upload-zzmsme_r_num.
*ZZMSME_R_DATE
ls_final-zzrpt_stat = ls_upload-zzrpt_stat.
ls_final-zzrpt_name = ls_upload-zzrpt_name.
*ZZRPT_STRTDATE
*ZZRPT_E_DATE
ls_final-zzstri_o_comp = ls_upload-zzstri_o_comp.
ls_final-zzcer_ofin_num = ls_upload-zzcer_ofin_num.
ls_final-zze_inv_app = ls_upload-zze_inv_app.
ls_final-zzmsme_c_stat = ls_upload-zzmsme_c_stat.
*ZZMSME_C_SDATE
*ZZMSME_C_EDATE
ls_final-zzgst_c_stat = ls_upload-zzgst_c_stat.
*ZZGST_C_SDATE
*ZZGST_C_EDATE
ls_final-zz_non_gstdec = ls_upload-zz_non_gstdec.
ls_final-zzpan_card = ls_upload-zzpan_card.
ls_final-zzno_pan_che = ls_upload-zzno_pan_che.
ls_final-zzdcha_license = ls_upload-zzdcha_license.
ls_final-zz_aa_dec = ls_upload-zz_aa_dec.
ls_final-zznature_bus = ls_upload-zznature_bus.
ls_final-zzspeci_person = ls_upload-zzspeci_person.
APPEND ls_final TO lt_final.
CLEAR:ls_final,lv_date.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form update_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM update_data .
LOOP AT lt_final INTO ls_final.
DATA(lv_index) = sy-tabix.
UPDATE lfa1 SET zzmsme_stus = ls_final-zzmsme_stus
zzmsme_r_num = ls_final-zzmsme_r_num
zzmsme_r_date = ls_final-zzmsme_r_date
zzrpt_stat = ls_final-zzrpt_stat
zzrpt_name = ls_final-zzrpt_name
zzrpt_strtdate = ls_final-zzrpt_strtdate
zzrpt_e_date = ls_final-zzrpt_e_date
zzstri_o_comp = ls_final-zzstri_o_comp
zzcer_ofin_num = ls_final-zzcer_ofin_num
zze_inv_app = ls_final-zze_inv_app
zzmsme_c_stat = ls_final-zzmsme_c_stat
zzmsme_c_sdate = ls_final-zzmsme_c_sdate
zzmsme_c_edate = ls_final-zzmsme_c_edate
zzgst_c_stat = ls_final-zzgst_c_stat
zzgst_c_sdate = ls_final-zzgst_c_sdate
zzgst_c_edate = ls_final-zzgst_c_edate
zz_non_gstdec = ls_final-zz_non_gstdec
zzpan_card = ls_final-zzpan_card
zzno_pan_che = ls_final-zzno_pan_che
zzdcha_license = ls_final-zzdcha_license
zz_aa_dec = ls_final-zz_aa_dec
zznature_bus = ls_final-zznature_bus
zzspeci_person = ls_final-zzspeci_person

WHERE lifnr = ls_final-lifnr.

IF sy-subrc = 0.
ls_error-lno = lv_index.
ls_error-lifnr = ls_final-lifnr.
ls_error-msg = 'SUCCESS'.
APPEND ls_error TO lt_error.
COMMIT WORK AND WAIT.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM display_data .
DATA:alv TYPE REF TO cl_salv_table.
DATA:message TYPE REF TO cx_salv_msg.
IF NOT lt_error IS INITIAL.
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = alv
CHANGING
t_table = lt_error ).
CATCH cx_salv_msg INTO message.
" error handling
ENDTRY.

alv->display( ).
ELSE.
MESSAGE e000(zmm01) WITH 'No Data Found'.
ENDIF.
ENDFORM.

You might also like