Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

What is this method for?

Former Member
0 Likes
1,565

method IF_EX_FI_TAX_BADI_010~TOP_OF_PAGE.

CLASS CL_EXIT_MASTER DEFINITION LOAD.

DATA: EXIT_OBJ_TAB TYPE SXRT_EXIT_TAB.

DATA: exitintf TYPE REF TO IF_EX_FI_TAX_BADI_010,

wa_flt_cache_line TYPE REF TO sxrt_flt_cache_struct,

flt_name TYPE FILTNAME.

DATA: flt_val_db TYPE LAND1,

desc_type(1) TYPE c, comp_num TYPE i.

DESCRIBE FIELD flt_val_db TYPE desc_type COMPONENTS comp_num.

FIELD-SYMBOLS:

<flt_co1> TYPE ANY,

<flt_co2> TYPE ANY.

flt_name = flt_val.

FIELD-SYMBOLS:

<exit_obj> TYPE SXRT_EXIT_TAB_STRUCT,

<flt_cache_line> TYPE sxrt_flt_cache_struct.

READ TABLE INSTANCE_FLT_CACHE ASSIGNING <flt_cache_line>

WITH KEY flt_name = flt_name

method_name = 'TOP_OF_PAGE'

.

IF sy-subrc NE 0.

CREATE DATA wa_flt_cache_line TYPE sxrt_flt_cache_struct.

ASSIGN wa_flt_cache_line->* TO <flt_cache_line>.

<flt_cache_line>-flt_name = flt_name.

<flt_cache_line>-method_name = 'TOP_OF_PAGE'.

READ TABLE INSTANCE_BADI_TABLE ASSIGNING <exit_obj>

WITH KEY flt_val = flt_name

method_name = 'TOP_OF_PAGE'.

If sy-subrc = 0.

<flt_cache_line>-valid = <exit_obj>-active.

IF <flt_cache_line>-valid = sxrt_true.

<flt_cache_line>-obj =

CL_EXIT_MASTER=>instantiate_imp_class(

CALLER = me

imp_name = <exit_obj>-imp_name

imp_class = <exit_obj>-imp_class ).

MOVE <exit_obj>-imp_class to <flt_cache_line>-imp_class.

MOVE <exit_obj>-imp_switch to <flt_cache_line>-imp_switch.

MOVE <exit_obj>-order_num to <flt_cache_line>-order_num.

ENDIF.

ELSE.

LOOP AT INSTANCE_BADI_TABLE ASSIGNING <exit_obj>

WHERE METHOD_NAME = 'TOP_OF_PAGE'.

APPEND <exit_obj> TO EXIT_OBJ_TAB.

ENDLOOP.

IF sy-subrc ne 0.

CALL METHOD CL_EXIT_MASTER=>CREATE_OBJ_BY_INTERFACE_FILTER

EXPORTING

CALLER = me

INTER_NAME = 'IF_EX_FI_TAX_BADI_010'

METHOD_NAME = 'TOP_OF_PAGE'

delayed_instance_creation = sxrt_true

IMPORTING

exit_obj_tab = exit_obj_tab.

APPEND LINES OF exit_obj_tab TO INSTANCE_BADI_TABLE.

ENDIF.

<flt_cache_line>-valid = sxrt_false.

LOOP at exit_obj_tab ASSIGNING <exit_obj>

WHERE ACTIVE = SXRT_TRUE.

<flt_cache_line>-valid = sxrt_true.

flt_val_db = <exit_obj>-flt_val.

IF comp_num = 0.

IF flt_val NP flt_val_db.

<flt_cache_line>-valid = sxrt_false.

ENDIF.

ELSE.

DO comp_num TIMES.

ASSIGN COMPONENT sy-index OF STRUCTURE flt_val

TO <flt_co1>.

ASSIGN COMPONENT sy-index OF STRUCTURE flt_val_db

TO <flt_co2>.

IF <flt_co1> NP <flt_co2>.

<flt_cache_line>-valid = sxrt_false.

EXIT.

ENDIF.

ENDDO.

ENDIF.

IF <flt_cache_line>-valid = sxrt_true.

<flt_cache_line>-obj =

CL_EXIT_MASTER=>instantiate_imp_class(

CALLER = me

imp_name = <exit_obj>-imp_name

imp_class = <exit_obj>-imp_class ).

MOVE <exit_obj>-imp_class to <flt_cache_line>-imp_class.

MOVE <exit_obj>-imp_switch to <flt_cache_line>-imp_switch.

MOVE <exit_obj>-order_num to <flt_cache_line>-order_num.

EXIT.

ENDIF.

ENDLOOP.

ENDIF.

INSERT <flt_cache_line> INTO TABLE INSTANCE_FLT_CACHE.

ENDIF.

IF <flt_cache_line>-valid = sxrt_true.

CALL FUNCTION 'PF_ASTAT_OPEN'

EXPORTING

OPENKEY = 'G4ItarzGIkVX00002XLIem'

TYP = 'UE'.

CASE <flt_cache_line>-imp_switch.

WHEN 'VSR'.

DATA: exc TYPE sfbm_xcptn, "#EC NEEDED

data_ref TYPE REF TO DATA.

IF <flt_cache_line>-eo_object is initial.

CALL METHOD ('CL_FOBU_METHOD_EVALUATION')=>load

EXPORTING

im_class_name = <flt_cache_line>-imp_class

im_interface_name = 'IF_EX_FI_TAX_BADI_010'

im_method_name = 'TOP_OF_PAGE'

RECEIVING

re_fobu_method = <flt_cache_line>-eo_object

EXCEPTIONS

not_found = 1

OTHERS = 2.

IF sy-subrc = 2.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

CHECK sy-subrc = 0.

ENDIF.

CLEAR data_ref.

GET REFERENCE OF FLT_VAL INTO data_ref.

CALL METHOD <flt_cache_line>-eo_object->set_parameter(

im_parmname = 'FLT_VAL'

im_value = data_ref ).

CLEAR data_ref.

GET REFERENCE OF IM_BUKRS INTO data_ref.

CALL METHOD <flt_cache_line>-eo_object->set_parameter(

im_parmname = 'IM_BUKRS'

im_value = data_ref ).

CLEAR data_ref.

GET REFERENCE OF IM_SELECTION_FIELDS INTO data_ref.

CALL METHOD <flt_cache_line>-eo_object->set_parameter(

im_parmname = 'IM_SELECTION_FIELDS'

im_value = data_ref ).

CLEAR data_ref.

GET REFERENCE OF IM_BUPLA INTO data_ref.

CALL METHOD <flt_cache_line>-eo_object->set_parameter(

im_parmname = 'IM_BUPLA'

im_value = data_ref ).

CLEAR data_ref.

GET REFERENCE OF IM_CURR_ITEMS INTO data_ref.

CALL METHOD <flt_cache_line>-eo_object->set_parameter(

im_parmname = 'IM_CURR_ITEMS'

im_value = data_ref ).

CALL METHOD <flt_cache_line>-eo_object->evaluate

IMPORTING

ex_exception = exc

EXCEPTIONS

raise_exception = 1

OTHERS = 2.

IF sy-subrc = 2.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN OTHERS.

EXITINTF ?= <flt_cache_line>-OBJ.

CALL METHOD EXITINTF->TOP_OF_PAGE

EXPORTING

FLT_VAL = FLT_VAL

IM_BUKRS = IM_BUKRS

IM_SELECTION_FIELDS = IM_SELECTION_FIELDS

IM_BUPLA = IM_BUPLA

CHANGING

IM_CURR_ITEMS = IM_CURR_ITEMS.

ENDCASE.

CALL FUNCTION 'PF_ASTAT_CLOSE'

EXPORTING

OPENKEY = 'G4ItarzGIkVX00002XLIem'

TYP = 'UE'.

ENDIF.

endmethod.

1 ACCEPTED SOLUTION
Read only

uwe_schieferstein
Active Contributor
0 Likes
1,016

Hello Methee

Class CL_EX_FI_TAX_BADI_010 is just a dummy implementation of interface IF_EX_FI_TAX_BADI_010.

Reasonable implementations of this interface (on ECC 6.0) are:

IMPPH_TAXREP_010	Tax report implementation BADI 010 for the Philippines	PH
IMPTH_TAXREP_010	Tax (VAT) report for Thailand - BADI 010	TH
RFIDBE_TAX_BADI_010	Tax (VAT) report for Belgium - BADI 010  (header + footer)	BE
RFIDIT_TAX_BADI_010	Tax (VAT) report for Italy - BADI 010  (header)	IT

The implementing classes are:

CL_IM_IMPPH_TAXREP_010
CL_IM_IMPTH_TAXREP_010
CL_IM_RFIDBE_TAX_BADI_010
CL_IM_RFIDIT_TAX_BADI_010

As you can see the reasonable implementations are named CL_IM_... (instead of CL_EX_...).

Regards

Uwe

method IF_EX_FI_TAX_BADI_010~TOP_OF_PAGE.

CLASS CL_EXIT_MASTER DEFINITION LOAD.

DATA: EXIT_OBJ_TAB TYPE SXRT_EXIT_TAB.

DATA: exitintf TYPE REF TO IF_EX_FI_TAX_BADI_010,

wa_flt_cache_line TYPE REF TO sxrt_flt_cache_struct,

flt_name TYPE FILTNAME.

DATA: flt_val_db TYPE LAND1,

desc_type(1) TYPE c, comp_num TYPE i.

DESCRIBE FIELD flt_val_db TYPE desc_type COMPONENTS comp_num.

FIELD-SYMBOLS:

<flt_co1> TYPE ANY,

<flt_co2> TYPE ANY.

flt_name = flt_val.

FIELD-SYMBOLS:

<exit_obj> TYPE SXRT_EXIT_TAB_STRUCT,

<flt_cache_line> TYPE sxrt_flt_cache_struct.

READ TABLE INSTANCE_FLT_CACHE ASSIGNING <flt_cache_line>

WITH KEY flt_name = flt_name

method_name = 'TOP_OF_PAGE'

.

IF sy-subrc NE 0.

CREATE DATA wa_flt_cache_line TYPE sxrt_flt_cache_struct.

ASSIGN wa_flt_cache_line->* TO <flt_cache_line>.

<flt_cache_line>-flt_name = flt_name.

<flt_cache_line>-method_name = 'TOP_OF_PAGE'.

READ TABLE INSTANCE_BADI_TABLE ASSIGNING <exit_obj>

WITH KEY flt_val = flt_name

method_name = 'TOP_OF_PAGE'.

If sy-subrc = 0.

<flt_cache_line>-valid = <exit_obj>-active.

IF <flt_cache_line>-valid = sxrt_true.

<flt_cache_line>-obj =

CL_EXIT_MASTER=>instantiate_imp_class(

CALLER = me

imp_name = <exit_obj>-imp_name

imp_class = <exit_obj>-imp_class ).

MOVE <exit_obj>-imp_class to <flt_cache_line>-imp_class.

MOVE <exit_obj>-imp_switch to <flt_cache_line>-imp_switch.

MOVE <exit_obj>-order_num to <flt_cache_line>-order_num.

ENDIF.

ELSE.

LOOP AT INSTANCE_BADI_TABLE ASSIGNING <exit_obj>

WHERE METHOD_NAME = 'TOP_OF_PAGE'.

APPEND <exit_obj> TO EXIT_OBJ_TAB.

ENDLOOP.

IF sy-subrc ne 0.

CALL METHOD CL_EXIT_MASTER=>CREATE_OBJ_BY_INTERFACE_FILTER

EXPORTING

CALLER = me

INTER_NAME = 'IF_EX_FI_TAX_BADI_010'

METHOD_NAME = 'TOP_OF_PAGE'

delayed_instance_creation = sxrt_true

IMPORTING

exit_obj_tab = exit_obj_tab.

APPEND LINES OF exit_obj_tab TO INSTANCE_BADI_TABLE.

ENDIF.

<flt_cache_line>-valid = sxrt_false.

LOOP at exit_obj_tab ASSIGNING <exit_obj>

WHERE ACTIVE = SXRT_TRUE.

<flt_cache_line>-valid = sxrt_true.

flt_val_db = <exit_obj>-flt_val.

IF comp_num = 0.

IF flt_val NP flt_val_db.

<flt_cache_line>-valid = sxrt_false.

ENDIF.

ELSE.

DO comp_num TIMES.

ASSIGN COMPONENT sy-index OF STRUCTURE flt_val

TO <flt_co1>.

ASSIGN COMPONENT sy-index OF STRUCTURE flt_val_db

TO <flt_co2>.

IF <flt_co1> NP <flt_co2>.

<flt_cache_line>-valid = sxrt_false.

EXIT.

ENDIF.

ENDDO.

ENDIF.

IF <flt_cache_line>-valid = sxrt_true.

<flt_cache_line>-obj =

CL_EXIT_MASTER=>instantiate_imp_class(

CALLER = me

imp_name = <exit_obj>-imp_name

imp_class = <exit_obj>-imp_class ).

MOVE <exit_obj>-imp_class to <flt_cache_line>-imp_class.

MOVE <exit_obj>-imp_switch to <flt_cache_line>-imp_switch.

MOVE <exit_obj>-order_num to <flt_cache_line>-order_num.

EXIT.

ENDIF.

ENDLOOP.

ENDIF.

INSERT <flt_cache_line> INTO TABLE INSTANCE_FLT_CACHE.

ENDIF.

IF <flt_cache_line>-valid = sxrt_true.

CALL FUNCTION 'PF_ASTAT_OPEN'

EXPORTING

OPENKEY = 'G4ItarzGIkVX00002XLIem'

TYP = 'UE'.

CASE <flt_cache_line>-imp_switch.

WHEN 'VSR'.

DATA: exc TYPE sfbm_xcptn, "#EC NEEDED

data_ref TYPE REF TO DATA.

IF <flt_cache_line>-eo_object is initial.

CALL METHOD ('CL_FOBU_METHOD_EVALUATION')=>load

EXPORTING

im_class_name = <flt_cache_line>-imp_class

im_interface_name = 'IF_EX_FI_TAX_BADI_010'

im_method_name = 'TOP_OF_PAGE'

RECEIVING

re_fobu_method = <flt_cache_line>-eo_object

EXCEPTIONS

not_found = 1

OTHERS = 2.

IF sy-subrc = 2.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

CHECK sy-subrc = 0.

ENDIF.

CLEAR data_ref.

GET REFERENCE OF FLT_VAL INTO data_ref.

CALL METHOD <flt_cache_line>-eo_object->set_parameter(

im_parmname = 'FLT_VAL'

im_value = data_ref ).

CLEAR data_ref.

GET REFERENCE OF IM_BUKRS INTO data_ref.

CALL METHOD <flt_cache_line>-eo_object->set_parameter(

im_parmname = 'IM_BUKRS'

im_value = data_ref ).

CLEAR data_ref.

GET REFERENCE OF IM_SELECTION_FIELDS INTO data_ref.

CALL METHOD <flt_cache_line>-eo_object->set_parameter(

im_parmname = 'IM_SELECTION_FIELDS'

im_value = data_ref ).

CLEAR data_ref.

GET REFERENCE OF IM_BUPLA INTO data_ref.

CALL METHOD <flt_cache_line>-eo_object->set_parameter(

im_parmname = 'IM_BUPLA'

im_value = data_ref ).

CLEAR data_ref.

GET REFERENCE OF IM_CURR_ITEMS INTO data_ref.

CALL METHOD <flt_cache_line>-eo_object->set_parameter(

im_parmname = 'IM_CURR_ITEMS'

im_value = data_ref ).

CALL METHOD <flt_cache_line>-eo_object->evaluate

IMPORTING

ex_exception = exc

EXCEPTIONS

raise_exception = 1

OTHERS = 2.

IF sy-subrc = 2.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN OTHERS.

EXITINTF ?= <flt_cache_line>-OBJ.

CALL METHOD EXITINTF->TOP_OF_PAGE

EXPORTING

FLT_VAL = FLT_VAL

IM_BUKRS = IM_BUKRS

IM_SELECTION_FIELDS = IM_SELECTION_FIELDS

IM_BUPLA = IM_BUPLA

CHANGING

IM_CURR_ITEMS = IM_CURR_ITEMS.

ENDCASE.

CALL FUNCTION 'PF_ASTAT_CLOSE'

EXPORTING

OPENKEY = 'G4ItarzGIkVX00002XLIem'

TYP = 'UE'.

ENDIF.

endmethod.

2 REPLIES 2
Read only

uwe_schieferstein
Active Contributor
0 Likes
1,017

Hello Methee

Class CL_EX_FI_TAX_BADI_010 is just a dummy implementation of interface IF_EX_FI_TAX_BADI_010.

Reasonable implementations of this interface (on ECC 6.0) are:

IMPPH_TAXREP_010	Tax report implementation BADI 010 for the Philippines	PH
IMPTH_TAXREP_010	Tax (VAT) report for Thailand - BADI 010	TH
RFIDBE_TAX_BADI_010	Tax (VAT) report for Belgium - BADI 010  (header + footer)	BE
RFIDIT_TAX_BADI_010	Tax (VAT) report for Italy - BADI 010  (header)	IT

The implementing classes are:

CL_IM_IMPPH_TAXREP_010
CL_IM_IMPTH_TAXREP_010
CL_IM_RFIDBE_TAX_BADI_010
CL_IM_RFIDIT_TAX_BADI_010

As you can see the reasonable implementations are named CL_IM_... (instead of CL_EX_...).

Regards

Uwe

Read only

0 Likes
1,016

We are using SAP R/3 version lower than 6.0 and I do see this method related in the program.

If you can explain how this method works so I can edit the pattern of top of page,please tell me.

Appreciate

Methee