You are on page 1of 12

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

*& Include ZFI_BPC_IC_REPOSTING_F01


*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form F_01_VALIDATION
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM f_01_validation .

DATA: lv_hkont TYPE zsaknr.


** Check if atleast single entry is found for the selection screen combination.

SELECT target_gl FROM zcon_ic_repost_f UP TO 1 ROWS INTO lv_hkont WHERE partner


IN s_bp
AND hkont IN
s_source.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE e000.
ENDIF.

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

* DATA:lt_source TYPE STANDARD TABLE OF ts_data,


DATA:lt_source TYPE STANDARD TABLE OF zcon_ic_repost_f,
lt_doc TYPE STANDARD TABLE OF ts_doc,
lt_bseg TYPE STANDARD TABLE OF ts_bseg,
lt_bseg1 TYPE STANDARD TABLE OF ts_bseg,
lv_date TYPE sy-datum,
lv_yr TYPE gjahr,
lv_month TYPE monat,
lt_ownership TYPE TABLE OF zcon_ownership, "added rku
lt_target_gl TYPE TABLE OF zcon_target_gl,
ls_ownership LIKE LINE OF lt_ownership,
ls_target_gl LIKE LINE OF lt_target_gl.

FIELD-SYMBOLS:<lwa_bseg> TYPE ts_bseg.

SELECT * INTO TABLE lt_source FROM zcon_ic_repost_f WHERE partner IN s_bp


AND hkont IN s_source.

IF sy-subrc NE 0.
* Raise Error
MESSAGE s001 DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ELSE.
SORT lt_source BY partner hkont.
ENDIF.

** Fetch data for the source GL posted in Last


CALL FUNCTION 'OIL_LAST_DAY_OF_PREVIOUS_MONTH'
EXPORTING
i_date_old = sy-datum
IMPORTING
e_date_new = lv_date.
IF sy-subrc EQ 0.
lv_yr = lv_date+0(4).
lv_month = lv_date+4(2).
lv_month = '07'."lv_date+4(2)'.
ENDIF.

**** Fetch documents posted Last month

SELECT a~bukrs,
a~belnr,
a~gjahr,
a~blart,
a~bldat,
a~budat,
a~xblnr,
a~bktxt,
a~waers,
b~bschl,
b~koart,
b~umskz,
b~drcrk, b~hsl,
b~zuonr, b~sgtxt,
b~ukostl, b~prctr, b~racct, b~kunnr, b~lifnr,
b~rassc
INTO CORRESPONDING FIELDS OF TABLE @lt_bseg FROM bkpf AS a INNER JOIN
acdoca AS b
ON ( a~bukrs = b~rbukrs ) AND
( a~belnr = b~belnr ) AND
( a~gjahr = b~gjahr )
FOR ALL ENTRIES IN @lt_source
WHERE a~bukrs IN @s_bukrs
* AND a~gjahr = @lv_yr
* AND a~monat = @lv_month
AND a~budat IN @s_date
AND b~rldnr = @p_ledger
AND b~racct = @lt_source-hkont
AND b~rassc IN @s_bp .

IF sy-subrc EQ 0.
SELECT a~bukrs,
a~belnr,
a~gjahr,
a~blart,
a~bldat,
a~budat,
a~xblnr,
a~bktxt,
a~waers,
b~bschl,
b~koart,
b~umskz,
b~shkzg, b~dmbtr, b~wrbtr, b~valut, b~zuonr, b~sgtxt,
b~kostl, b~projn, b~prctr, b~hkont, b~kunnr, b~lifnr,
b~xref1, b~xref2, b~xref3
INTO TABLE @lt_doc FROM bkpf AS a INNER JOIN bseg AS b
ON ( a~bukrs = b~bukrs ) AND
( a~belnr = b~belnr ) AND
( a~gjahr = b~gjahr )
FOR ALL ENTRIES IN @lt_bseg
WHERE a~bukrs = @lt_bseg-bukrs
AND a~belnr = @lt_bseg-belnr
AND a~gjahr = @lt_bseg-gjahr.
IF sy-subrc EQ 0.
SORT lt_doc BY bukrs belnr gjahr.
ENDIF.
ENDIF.

*********
* SELECT a~bukrs,
* a~belnr,
* a~gjahr,
* a~blart,
* a~bldat,
* a~budat,
* a~xblnr,
* a~bktxt,
* a~waers,
* b~bschl,
* b~koart,
* b~umskz,
* b~shkzg, b~dmbtr, b~wrbtr, b~valut, b~zuonr, b~sgtxt,
* b~kostl, b~projn, b~prctr, b~hkont, b~kunnr, b~lifnr,
* b~xref1, b~xref2, b~xref3
* INTO TABLE @lt_doc FROM bkpf AS a INNER JOIN bseg AS b
** INTO TABLE @lt_bseg FROM bkpf AS a INNER JOIN bseg AS b
* ON ( a~bukrs = b~bukrs ) AND
* ( a~belnr = b~belnr ) AND
* ( a~gjahr = b~gjahr ) AND
* ( a~monat = @lv_month ) FOR ALL ENTRIES IN @lt_source
* WHERE a~bukrs IN @s_bukrs
* AND a~gjahr = @lv_yr
* AND a~monat = @lv_month
* AND b~hkont = @lt_source-hkont.
* IF sy-subrc EQ 0.
** SORT lt_doc BY bukrs belnr gjahr hkont.
* SORT lt_bseg BY bukrs belnr gjahr racct.
* DELETE ADJACENT DUPLICATES FROM lt_doc COMPARING bukrs belnr gjahr hkont.
* ENDIF.
* ENDIF.
** To get both Dr and Cr entry of accounting document.
* SELECT a~bukrs,
* a~belnr,
* a~gjahr,
* a~blart,
* a~bldat,
* a~budat,
* a~xblnr,
* a~bktxt,
* a~waers,
* b~bschl,
* b~koart,
* b~umskz,
** b~shkzg, b~dmbtr, b~wrbtr, b~valut, b~zuonr, b~sgtxt,
* b~drcrk, b~hsl, "b~valut,
* b~zuonr, b~sgtxt,
** b~kostl, b~projn, b~prctr, b~hkont, b~kunnr, b~lifnr "b~xref1,
b~xref2, b~xref3
* b~ukostl, b~prctr, b~racct, b~kunnr, b~lifnr, "b~xref1, b~xref2,
b~xref3
* b~rassc
** INTO TABLE @lt_bseg FROM bkpf AS a INNER JOIN bseg AS b
* INTO CORRESPONDING FIELDS OF TABLE @lt_bseg FROM bkpf AS a INNER JOIN
acdoca AS b
* ON ( a~bukrs = b~rbukrs ) AND
* ( a~belnr = b~belnr ) AND
* ( a~gjahr = b~gjahr )
* FOR ALL ENTRIES IN @lt_doc
* WHERE a~bukrs = @lt_doc-bukrs
* AND a~belnr = @lt_doc-belnr
* AND a~gjahr = @lt_doc-gjahr
* AND b~rldnr = '0L'
* AND b~racct = @lt_doc-hkont
* AND b~rassc IN @s_bp .
*
* IF sy-subrc EQ 0.
** IF lt_bseg IS NOT INITIAL.
* SORT lt_bseg BY bukrs belnr gjahr.
* LOOP AT lt_bseg ASSIGNING <lwa_bseg>.
* CONCATENATE <lwa_bseg>-bukrs <lwa_bseg>-belnr <lwa_bseg>-gjahr INTO
<lwa_bseg>-doc.
* ENDLOOP.
* lt_bseg1 = lt_bseg.
* DELETE lt_bseg1 WHERE rassc EQ s_bp.
* ENDIF.

PERFORM f_03_process_doc USING lt_source lt_doc lt_bseg.


ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_03_PROCESS_DOC
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> LT_SOURCE
*& --> LT_DOC
*&---------------------------------------------------------------------*
FORM f_03_process_doc USING it_source TYPE tt_source
it_doc TYPE tt_doc
it_bseg TYPE tt_bseg.

DATA:lwa_doc TYPE ts_doc,


* lwa_source TYPE ts_data,
lwa_source TYPE zcon_ic_repost_f,
lwa_bseg TYPE ts_bseg,
lv_subrc TYPE sy-subrc,
lwa_doc_header TYPE bapiache09,
lwa_gl_item TYPE bapiacgl09,
lwa_ap_item TYPE bapiacap09,
lwa_ar_item TYPE bapiacar09,
lwa_curr TYPE bapiaccr09,
lv_count TYPE i.

** Reverse the existing Entry and post new document with target GL

LOOP AT it_bseg INTO lwa_bseg.


** Fill BAPI Structure
PERFORM f_05_post_doc USING it_doc lwa_bseg it_source.

ENDLOOP.

* LOOP AT it_source INTO lwa_source.


* LOOP AT it_doc INTO lwa_doc WHERE hkont = lwa_source-hkont.
* ADD 1 TO lv_count.
* IF lv_count EQ 1.
* CALL FUNCTION 'TB_FI_DOCUMENT_REVERSE'
* EXPORTING
* companycode = lwa_doc-bukrs
* document = lwa_doc-belnr
** DOCUMENT2 =
* year = lwa_doc-gjahr
** OBJ_KEY =
** DATE_OF_REVERSAL =
** PERIOD_OF_REVERSAL =
* reason_for_reversal = '02'
** FLOW_IN =
** SIMULATION = ' '
* EXCEPTIONS
* error = 1
* OTHERS = 2.
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ELSE.
** Post accounting document
** lwa_header-
* ENDIF.
* CLEAR lv_count.
* ENDIF.
* ENDLOOP.
* ENDLOOP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_04_REV_DOC
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> LWA_DOC
*& <-- LV_SUBRC
*&---------------------------------------------------------------------*
*FORM f_04_rev_doc USING lwa_doc TYPE ts_doc
FORM f_04_rev_doc USING lwa_bseg TYPE ts_bseg
CHANGING xv_subrc TYPE sy-subrc
xv_err_msg TYPE string.
CALL FUNCTION 'TB_FI_DOCUMENT_REVERSE'
EXPORTING
companycode = lwa_bseg-bukrs
document = lwa_bseg-belnr
* DOCUMENT2 =
year = lwa_bseg-gjahr
* OBJ_KEY =
* DATE_OF_REVERSAL =
* PERIOD_OF_REVERSAL =
reason_for_reversal = '02'
* FLOW_IN =
* SIMULATION = ' '
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = syst-msgid
msgnr = syst-msgno
msgv1 = syst-msgv1
msgv2 = syst-msgv2
msgv3 = syst-msgv3
msgv4 = syst-msgv4
IMPORTING
message_text_output = xv_err_msg.
* xv_subrc = 4.
ELSE.
xv_subrc = 0.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_05_POST_DOC
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> LT_BSEG
*& --> LWA_DOC
*&---------------------------------------------------------------------*
FORM f_05_post_doc USING it_doc TYPE tt_doc
iwa_bseg TYPE ts_bseg
it_source TYPE tt_source.
* it_bseg TYPE tt_bseg
* xwa_doc TYPE ts_doc
* xwa_doc TYPE ts_bseg
* lwa_source TYPE ts_data.
* lwa_source TYPE zcon_ic_repost_f.

DATA:lwa_bseg TYPE ts_bseg,


lwa_doc_header TYPE bapiache09,
lwa_gl_item TYPE bapiacgl09,
lwa_ap_item TYPE bapiacap09,
lwa_ar_item TYPE bapiacar09,
lwa_curr TYPE bapiaccr09,
lv_count TYPE posnr_acc,
lv_subrc TYPE sy-subrc,
lv_type TYPE bapiache09-obj_type,
lv_key TYPE bapiache09-obj_key,
lv_sys TYPE bapiache09-obj_sys,
lwa_return TYPE bapiret2,
lwa_source TYPE zcon_ic_repost_f,
lwa_final TYPE ts_final,
lwa_doc TYPE ts_doc,
lv_err_msg TYPE string,
lt_gl TYPE STANDARD TABLE OF bapiacgl09,
lt_ap TYPE STANDARD TABLE OF bapiacap09,
lt_ar TYPE STANDARD TABLE OF bapiacar09,
lt_curr TYPE STANDARD TABLE OF bapiaccr09,
lt_return TYPE STANDARD TABLE OF bapiret2.

CLEAR:lv_count, lwa_doc_header,lt_gl, lt_ar, lt_ap, lt_curr,lt_return.


LOOP AT it_doc INTO lwa_doc WHERE bukrs = iwa_bseg-bukrs AND
belnr = iwa_bseg-belnr AND
gjahr = iwa_bseg-gjahr.

IF lv_count IS INITIAL.
lwa_doc_header-bus_act = 'RFBU'.
lwa_doc_header-obj_type = 'BKPFF'.
lwa_doc_header-username = sy-uname.
lwa_doc_header-header_txt = lwa_doc-bktxt.
lwa_doc_header-comp_code = lwa_doc-bukrs.
lwa_doc_header-doc_date = sy-datum.
lwa_doc_header-pstng_date = sy-datum.
* lwa_doc_header-doc_type = 'SA'.
lwa_doc_header-doc_type = lwa_doc-blart.
ENDIF.

ADD 1 TO lv_count.
CASE lwa_doc-koart.
WHEN 'S'.
lwa_gl_item-itemno_acc = lv_count.
* Replace GL Account
IF lwa_doc-hkont = iwa_bseg-racct.
READ TABLE it_source INTO lwa_source WITH KEY partner = iwa_bseg-rassc
hkont = iwa_bseg-racct.
IF sy-subrc EQ 0.
lwa_gl_item-gl_account = lwa_source-target_gl.
ENDIF.
ELSE.
lwa_gl_item-gl_account = lwa_doc-hkont.
ENDIF.
lwa_gl_item-item_text = lwa_doc-sgtxt.
lwa_gl_item-ref_key_1 = lwa_doc-xref1.
lwa_gl_item-ref_key_2 = lwa_doc-xref2.
lwa_gl_item-ref_key_3 = lwa_doc-xref3.
lwa_gl_item-alloc_nmbr = lwa_doc-zuonr.
lwa_gl_item-costcenter = lwa_doc-kostl.
lwa_gl_item-profit_ctr = lwa_doc-prctr.
APPEND lwa_gl_item TO lt_gl.
* Currency Structure
lwa_curr-itemno_acc = lv_count.
lwa_curr-currency = lwa_doc-waers.
IF lwa_doc-shkzg = 'H'.
lwa_curr-amt_doccur = lwa_doc-dmbtr * -1.
ELSE.
lwa_curr-amt_doccur = lwa_doc-dmbtr.
ENDIF.
APPEND lwa_curr TO lt_curr.
CLEAR:lwa_gl_item,lwa_curr.
WHEN 'K'.
lwa_ap_item-itemno_acc = lv_count.
lwa_ap_item-vendor_no = lwa_doc-lifnr.
lwa_ap_item-ref_key_1 = lwa_doc-xref1.
lwa_ap_item-ref_key_2 = lwa_doc-xref2.
lwa_ap_item-ref_key_3 = lwa_doc-xref3.
lwa_ap_item-alloc_nmbr = lwa_doc-zuonr.
lwa_ap_item-item_text = lwa_doc-sgtxt.
APPEND lwa_ap_item TO lt_ap.
* Currency Structure
lwa_curr-itemno_acc = lv_count.
lwa_curr-currency = lwa_doc-waers.
IF lwa_doc-shkzg = 'H'.
lwa_curr-amt_doccur = lwa_doc-dmbtr * -1.
ELSE.
lwa_curr-amt_doccur = lwa_doc-dmbtr.
ENDIF.
APPEND lwa_curr TO lt_curr.
CLEAR:lwa_ap_item,lwa_curr.
WHEN 'D'.
lwa_ar_item-itemno_acc = lv_count.
lwa_ar_item-customer = lwa_doc-kunnr.
lwa_ar_item-ref_key_1 = lwa_doc-xref1.
lwa_ar_item-ref_key_2 = lwa_doc-xref2.
lwa_ar_item-ref_key_3 = lwa_doc-xref3.
lwa_ar_item-alloc_nmbr = lwa_doc-zuonr.
lwa_ar_item-item_text = lwa_doc-sgtxt.
APPEND lwa_ar_item TO lt_ar.
* Currency Structure
lwa_curr-itemno_acc = lv_count.
lwa_curr-currency = lwa_doc-waers.
IF lwa_doc-shkzg = 'H'.
lwa_curr-amt_doccur = lwa_doc-dmbtr * -1.
ELSE.
lwa_curr-amt_doccur = lwa_doc-dmbtr.
ENDIF.
APPEND lwa_curr TO lt_curr.
CLEAR:lwa_ar_item,lwa_curr.
WHEN OTHERS.
ENDCASE.
ENDLOOP.

lwa_final-source = lwa_source-hkont.
lwa_final-target = lwa_source-target_gl.
lwa_final-belnr = iwa_bseg-belnr.
lwa_final-bukrs = iwa_bseg-bukrs.
lwa_final-gjahr = iwa_bseg-gjahr.

PERFORM f_04_rev_doc USING iwa_bseg CHANGING lv_subrc lv_err_msg .


lwa_final-message = lv_err_msg.
IF lv_subrc EQ 0.
* lwa_final-REVERSED = abap_true.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = lwa_doc_header
* CUSTOMERCPD =
* CONTRACTHEADER =
IMPORTING
obj_type = lv_type
obj_key = lv_key
obj_sys = lv_sys
TABLES
accountgl = lt_gl
accountreceivable = lt_ar
accountpayable = lt_ap
* ACCOUNTTAX =
currencyamount = lt_curr
* CRITERIA =
* VALUEFIELD =
* EXTENSION1 =
return = lt_return.
* PAYMENTCARD =
* CONTRACTITEM =
* EXTENSION2 =
* REALESTATE =
* ACCOUNTWT =.
IF sy-subrc EQ 0.
LOOP AT lt_return INTO lwa_return WHERE type = 'E'.
CONCATENATE lwa_final-message_1 lwa_return-message
INTO lwa_final-message_1 SEPARATED BY space.
ENDLOOP.
READ TABLE lt_return INTO lwa_return WITH KEY type = 'S'.
IF sy-subrc EQ 0.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'


* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
.

** Success Message.
lwa_final-belnr_1 = lv_key+0(10).
lwa_final-bukrs_1 = lv_key+10(4).
lwa_final-gjahr_1 = lv_key+14(4).
lwa_final-message_1 = 'Document Posted Succesfully'.
ENDIF.
* ENDLOOP.
ENDIF.
ELSE.
lwa_final-reversed = abap_false.
ENDIF.

APPEND lwa_final TO gt_final.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> GT_FINAL
*&---------------------------------------------------------------------*
FORM f_display_data USING it_final TYPE tt_final.
DATA: lwa_fcat TYPE slis_fieldcat_alv,
lt_fcat TYPE slis_t_fieldcat_alv.

PERFORM f_fill_field USING '1' '1' 'GT_FINAL' 'SOURCE' 'Source GL'


CHANGING lt_fcat. "SOURCE
PERFORM f_fill_field USING '1' '2' 'GT_FINAL' 'BELNR' 'Document Number'
CHANGING lt_fcat. "BELNR
PERFORM f_fill_field USING '1' '3' 'GT_FINAL' 'BUKRS' 'Company Code'
CHANGING lt_fcat. "BELNR
PERFORM f_fill_field USING '1' '4' 'GT_FINAL' 'GJAHR' 'Fiscal Year'
CHANGING lt_fcat. "BELNR
PERFORM f_fill_field USING '1' '5' 'GT_FINAL' 'REVERSED' 'Reversed'
CHANGING lt_fcat. "BELNR
PERFORM f_fill_field USING '1' '6' 'GT_FINAL' 'MESSAGE' 'Message'
CHANGING lt_fcat. "BELNR
PERFORM f_fill_field USING '1' '7' 'GT_FINAL' 'TARGET' 'Target GL'
CHANGING lt_fcat. "BELNR
PERFORM f_fill_field USING '1' '8' 'GT_FINAL' 'BELNR_1' 'Document Number'
CHANGING lt_fcat. "BELNR
PERFORM f_fill_field USING '1' '9' 'GT_FINAL' 'BUKRS_1' 'Company Code'
CHANGING lt_fcat. "BELNR
PERFORM f_fill_field USING '1' '10' 'GT_FINAL' 'GJAHR_1' 'Fiscal Year'
CHANGING lt_fcat. "BELNR
PERFORM f_fill_field USING '1' '11' 'GT_FINAL' 'MESSAGE_1' 'Message'
CHANGING lt_fcat. "BELNR

*PERFORM f_fill_field USING '1' '1' TEXT-011 TEXT-000 TEXT-012 CHANGING lt_fcat.
"SOURCE
* PERFORM f_fill_field USING '1' '2' TEXT-011 TEXT-001 TEXT-013 CHANGING lt_fcat.
"BELNR
* PERFORM f_fill_field USING '1' '3' TEXT-011 TEXT-002 TEXT-014 CHANGING lt_fcat.
"BUKRS
* PERFORM f_fill_field USING '1' '4' TEXT-011 TEXT-003 TEXT-015 CHANGING lt_fcat.
"GJAHR
* PERFORM f_fill_field USING '1' '5' TEXT-011 TEXT-004 TEXT-016 CHANGING lt_fcat.
"REVERSED
* PERFORM f_fill_field USING '1' '6' TEXT-011 TEXT-005 TEXT-017 CHANGING lt_fcat.
"MESSAGE
* PERFORM f_fill_field USING '1' '7' TEXT-011 TEXT-006 TEXT-018 CHANGING lt_fcat.
"TARGET
* PERFORM f_fill_field USING '1' '8' TEXT-011 TEXT-007 TEXT-013 CHANGING lt_fcat.
"BELNR_1
* PERFORM f_fill_field USING '1' '9' TEXT-011 TEXT-008 TEXT-014 CHANGING lt_fcat.
"BUKRS_1
* PERFORM f_fill_field USING '1' '10' TEXT-011 TEXT-009 TEXT-015 CHANGING lt_fcat.
"GJAHR_1
* PERFORM f_fill_field USING '1' '11' TEXT-011 TEXT-010 TEXT-017 CHANGING lt_fcat.
"MESSAGE_1

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 = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
it_fieldcat = lt_fcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_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 =
* O_PREVIOUS_SRAL_HANDLER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = gt_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* implement suitable error handling here
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_FILL_FIELD
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> TEXT_000
*& --> P_1
*& --> TEXT_001
*& --> TEXT_002
*& --> CALL
*& --> FUNCTION
*& --> P_
*& --> T_OUTTAB
*& --> =
*&---------------------------------------------------------------------*
FORM f_fill_field USING iv_row TYPE sy-curow
iv_pos TYPE sy-cucol
iv_tab TYPE slis_tabname
iv_fieldname TYPE slis_fieldname
iv_text TYPE dd03p-scrtext_m
CHANGING xt_fcat TYPE slis_t_fieldcat_alv.

DATA:lwa_fcat TYPE slis_fieldcat_alv.

lwa_fcat-row_pos = iv_row.
lwa_fcat-fieldname = iv_fieldname.
lwa_fcat-col_pos = iv_pos.
lwa_fcat-tabname = iv_tab.
lwa_fcat-seltext_l = iv_text.
APPEND lwa_fcat TO xt_fcat.

ENDFORM.

You might also like