100% found this document useful (1 vote)
385 views65 pages

Z - Check - CBT - Version 12

This report checks the customizing for Brazil CBT (Condition-Based Tax) calculation by comparing customizing tables to steps in a PDF manual and BC-SET files from SAP Note 1706309. The report does not change any data. It has undergone 12 versions with various fixes and enhancements to checks performed. The user must select the folder where the BC-SET files have been extracted.

Uploaded by

Nelson Pereira
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
100% found this document useful (1 vote)
385 views65 pages

Z - Check - CBT - Version 12

This report checks the customizing for Brazil CBT (Condition-Based Tax) calculation by comparing customizing tables to steps in a PDF manual and BC-SET files from SAP Note 1706309. The report does not change any data. It has undergone 12 versions with various fixes and enhancements to checks performed. The user must select the folder where the BC-SET files have been extracted.

Uploaded by

Nelson Pereira
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/ 65

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

*& Report Z_CHECK_CBT


*& ----------------------------------------------------------------------------*
*& Title: Report to check the Localization Brazil CBT according to note 1706309
*& ----------------------------------------------------------------------------*
*& This report will check the Customizing for the Localization Brazil CBT
*& (Condition-Based Tax) Calculation.
*&
*& THIS REPORT <<< DOES NOT >>> CHANGE ANY DATA
*&
*& It will check the customizing tables and compare it to the PDF manual steps
*& and BC-SET files available in note 1706309.
*&
*& To use it, download the BC-Sets from note 1706309 and select the folder in
*& the selection screen.
*&
*& ----------------------------------------------------------------------------*
*& Created by Rodrigo Guerra (i814591)
*& ----------------------------------------------------------------------------*
*&
*& Version 1
*& - Based on note's version 8, from 16.09.2014 09:20:10
*& ----------------------------------------------------------------------------*
*&
*& Version 2
*& - 4.2.5.2 -> display was wrong (KOAID field was used for everything).
*& - 4.4.14.2 -> Coding mistake. Texts were wrong and have been updated.
*& ----------------------------------------------------------------------------*
*&
*& Version 3
*& - 4.2.6.1 -> display was wrong (fields were mixed up) and bc-set logic was
*& wrong.
*& - 4.2.6.2 -> display was wrong and logic was also wrong.
*& - 4.4.20 -> Currency was wrong. Corrected.
*& ----------------------------------------------------------------------------*
*&
*& Version 4
*& - Line 3186 - RVABRA BC-Set Reading -> Sort incorrect causing dump. OK.
*& - Line 3241 - TAXBRA BC-Set Reading -> Sort incorrect causing dump. OK.
*& ----------------------------------------------------------------------------*
*&
*& Version 5
*& - 4.2.12.2 - checks enhanced
*& - 4.2.12.2 - checks enhanced
*& ----------------------------------------------------------------------------*
*&
*& Version 6
*& - 4.4 - Hint added regarding the Withholding functionality
*& ----------------------------------------------------------------------------*
*&
*& Version 7
*& - 4.2.12.2 - Cosmetic changes implemented in order to improve information
*& ----------------------------------------------------------------------------*
*&
*& Version 8
*& - 4.2.8 - Internal Codes are now sorted in alphabetic order for easier
*& reading
*& ----------------------------------------------------------------------------*
*&
*& Version 9
*& - 4.2.9 - Section enhanced. Internal Codes x Tax groups checked
*& ----------------------------------------------------------------------------*
*&
*& Version 10
*& - 4.2.9 - Section enhanced. ICMSNONCONTRIBUTOR added to the check
*& ----------------------------------------------------------------------------*
*&
*& Version 11
*& - 4.2.9 - The reading of Internal Codes has changed and now the BC-Sets are
*& read.
*& In addition to that, some of the hardcoded Internal Codes have
*& been enhanced.
*& Warning for other internal codes now highlighted for more
*& attention.
*& ----------------------------------------------------------------------------*
*& Version 12
*& - Cosmetic and usability changes. When version changes, update the contents
*& of variable textver.
*& ----------------------------------------------------------------------------*

REPORT Z_CHECK_CBT.

INCLUDE <list>.

************************************************************************
* Selection-Screen
************************************************************************
SELECTION-SCREEN COMMENT 1(78) textver.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK PPROC WITH FRAME TITLE title01.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 31.
PARAMETERS PPROC_MM TYPE T683-KALSM OBLIGATORY DEFAULT 'TAXBRA'.
SELECTION-SCREEN COMMENT 1(29) text01 FOR FIELD PPROC_MM.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 31.
PARAMETERS PPROC_SD TYPE T683-KALSM OBLIGATORY DEFAULT 'RVABRA'.
SELECTION-SCREEN COMMENT 1(29) text02 FOR FIELD PPROC_SD.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK PPROC.

SELECTION-SCREEN BEGIN OF BLOCK FILE WITH FRAME TITLE title02.


SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 31.
PARAMETERS PATH_STR TYPE STRING OBLIGATORY. "Folder Name
SELECTION-SCREEN COMMENT 1(29) text03 FOR FIELD PATH_STR.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(78) text06 .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK FILE.

* SELECTION-SCREEN BEGIN OF BLOCK CHECKS WITH FRAME TITLE title03.


* SELECTION-SCREEN BEGIN OF LINE.
* SELECTION-SCREEN POSITION 31.
* PARAMETERS P_CHALL RADIOBUTTON GROUP GR1.
* SELECTION-SCREEN COMMENT 1(30) text04 FOR FIELD P_CHALL.
* SELECTION-SCREEN END OF LINE.
* SELECTION-SCREEN BEGIN OF LINE.
* SELECTION-SCREEN POSITION 31.
* PARAMETERS P_CHWRG RADIOBUTTON GROUP GR1.
* SELECTION-SCREEN COMMENT 1(30) text05 FOR FIELD P_CHWRG.
* SELECTION-SCREEN END OF LINE.
* SELECTION-SCREEN END OF BLOCK CHECKS.

INITIALIZATION.
textver = 'Z_CHECK_CBT - Check CBT Customizing Tool - Version 12'.

title01 = 'Pricing Procedures that need to be analysed'.


title02 = 'Enter the folder where the BC-Sets .zip has been extracted to'.
* title03 = 'Checks to be performed'.

text01 = 'Pricing Procedure (MM)'.


text02 = 'Pricing Procedure (SD)'.
text03 = 'Folder where BC-Sets are:'.
* text04 = 'Report ALL Customizing'.
* text05 = 'Report only WRONG Customizing'.
text06 = 'It is mandatory to download the BC-Sets from SAP Note 1706309.'.

************************************************************************
* Data Declaration
************************************************************************
* Nodes
TYPES :
BEGIN OF gty_contents,
name TYPE seu_name,
tlevel TYPE seu_level,
nlength TYPE seu_nodeln,
color TYPE seu_color,
text TYPE seu_text,
tlength TYPE seu_nodeln,
tcolor TYPE seu_color,
END OF gty_contents.

* ---- BC-Sets structure


TYPES: BEGIN OF BCS_VALUES,
TABLENAME TYPE STRING,
RECNUMBER TYPE STRING,
FIELDNAME TYPE STRING,
VALUE TYPE STRING,
END OF BCS_VALUES.
DATA: BC_VALUES type BCS_VALUES.

* ---- Standard Access Sequences


TYPES: BEGIN OF STD_ACS_SEQUENCES,
APPL TYPE T682-KAPPL,
ACCS TYPE T682-KOZGF,
END OF STD_ACS_SEQUENCES.
DATA: STD_ACS_SEQ type STD_ACS_SEQUENCES.

* ---- Standard Conditions


TYPES: BEGIN OF STD_CONDITIONS,
APPL TYPE T683S-KAPPL,
COND TYPE T683S-KSCHL,
ACCS TYPE T682-KOZGF,

KSTAT TYPE T683S-KSTAT,


KOFRM TYPE T683S-KOFRM,
KOFRA TYPE T683S-KOFRA,
KVSL1 TYPE T683S-KVSL1,
STUNR TYPE T683S-STUNR,

KOAID TYPE T685A-KOAID,


KRECH TYPE T685A-KRECH,
KNTYP TYPE T685A-KNTYP,
TYPE TYPE STRING,
END OF STD_CONDITIONS.
DATA: STD_COND type STD_CONDITIONS.

* ---- Conditions without STUNR


TYPES: BEGIN OF STD_COND_STUNRR,
COND TYPE T683S-KSCHL,
STUNR TYPE T683S-STUNR,
END OF STD_COND_STUNRR.
DATA: STD_COND_STUNR type STD_COND_STUNRR.

* ---- Standard WHT Types


TYPES: BEGIN OF STD_WHTT,
WHTTYPE TYPE T059K-WITHT,
PROCKEY TYPE T059K-KTOSL,
KSCHL TYPE T682-KOZGF,
MINBASE TYPE T059MINMAX-WT_WTMINB,
ACC TYPE STRING,
END OF STD_WHTT.
DATA: STD_WHT type STD_WHTT.

* ---- Standard Account Keys


TYPES: BEGIN OF STD_ACC_KEYS,
APPL TYPE T687-KAPPL,
KVSL1 TYPE T687-KVSL1,
STAZF TYPE T007B-STAZF,
STBKZ TYPE T007B-STBKZ,
STGRP TYPE T007B-STGRP,
STNSK TYPE T007B-STNSK,
END OF STD_ACC_KEYS.
DATA: STD_ACC_KEY type STD_ACC_KEYS.

* ---- Standard Int. Cods to Cnd. Typs


TYPES: BEGIN OF STD_INTCOD_CNDTYPS,
CODE TYPE J_1BTXCOND-CODE,
KAPPL TYPE J_1BTXCOND-KAPPL,
KSCHL TYPE J_1BTXCOND-KSCHL,
END OF STD_INTCOD_CNDTYPS.
DATA: STD_INTCOD_CNDTYP type STD_INTCOD_CNDTYPS.

* ---- Standard Mapping Tax Groups x Internal Codes


TYPES: BEGIN OF STD_TAXGR_ICODE,
CONTROL TYPE STRING,
TAXGRP TYPE J_1BTAXGRPCD-TAXGRP,
CODE TYPE J_1BTAXGRPCD-CODE,
END OF STD_TAXGR_ICODE.
DATA: STD_TAXG_ICODE type STD_TAXGR_ICODE.

* ---- Standard Mapping Tax Tables x Condition Tables


TYPES: BEGIN OF STD_MAP_TO_COND,
TABNAME TYPE J_1BVIEWMAP-TABNAME,
KOTABNR TYPE J_1BVIEWMAP-KOTABNR,
END OF STD_MAP_TO_COND.
DATA: STD_MAPP_TO_COND type STD_MAP_TO_COND.

* ---- Standard Mapping Tax Conditions x Nota Fiscal Fields (TX)


TYPES: BEGIN OF STD_MAP_COND_NF_FIELDSTX,
APPL TYPE T683S-KAPPL,
PROC TYPE T683-KALSM,
TTYP TYPE T685-KSCHL,

RATE TYPE CNFRATE,


RATE_MAP TYPE J_1BKOMVMAP,
RATE4DEC TYPE CNFRATE,
RATE4DEC_MAP TYPE J_1BKOMVMAP,
SRATE TYPE CNFRATE,
SRATE_MAP TYPE J_1BKOMVMAP,
QRATE TYPE CNFQRATE,
QRATE_MAP TYPE J_1BKOMVMAP,
QRATE4DEC TYPE CNFQRATE,
QRATE4DEC_MAP TYPE J_1BKOMVMAP,
VALUE TYPE CNFVALUE,
VALUE_MAP TYPE J_1BKOMVMAP,
BASE TYPE CNFEXCBAS,
BASE_MAP TYPE J_1BKOMVMAP,
QBASE TYPE CNFEXCBAS,
QBASE_MAP TYPE J_1BKOMVMAP,
EXCBAS TYPE CNFEXCBAS,
EXCBAS_MAP TYPE J_1BKOMVMAP,
OTHBAS TYPE CNFOTHBAS,
OTHBAS_MAP TYPE J_1BKOMVMAP,
WHTCOLLCODE TYPE CNFWHTCCDE,
WHTCOLLCODE_MAP TYPE J_1BKOMVMAP,
BASERED1 TYPE CNFBASERED1,
BASERED1_MAP TYPE J_1BKOMVMAP,
BASERED2 TYPE CNFBASERED2,
BASERED2_MAP TYPE J_1BKOMVMAP,
END OF STD_MAP_COND_NF_FIELDSTX.
DATA: STD_MAP_COND_NFTX type STD_MAP_COND_NF_FIELDSTX.

* ---- Standard Mapping Tax Conditions x Nota Fiscal Fields (V)


TYPES: BEGIN OF STD_MAP_COND_NF_FIELDSV,
APPL TYPE T683S-KAPPL,
PROC TYPE T683-KALSM,
TTYP TYPE T685-KSCHL,

RATE TYPE CNFRATE,


RATE_MAP TYPE J_1BKOMVMAP,
RATE4DEC TYPE CNFRATE,
RATE4DEC_MAP TYPE J_1BKOMVMAP,
SRATE TYPE CNFRATE,
SRATE_MAP TYPE J_1BKOMVMAP,
QRATE TYPE CNFQRATE,
QRATE_MAP TYPE J_1BKOMVMAP,
QRATE4DEC TYPE CNFQRATE,
QRATE4DEC_MAP TYPE J_1BKOMVMAP,
VALUE TYPE CNFVALUE,
VALUE_MAP TYPE J_1BKOMVMAP,
BASE TYPE CNFEXCBAS,
BASE_MAP TYPE J_1BKOMVMAP,
QBASE TYPE CNFEXCBAS,
QBASE_MAP TYPE J_1BKOMVMAP,
EXCBAS TYPE CNFEXCBAS,
EXCBAS_MAP TYPE J_1BKOMVMAP,
OTHBAS TYPE CNFOTHBAS,
OTHBAS_MAP TYPE J_1BKOMVMAP,
WHTCOLLCODE TYPE CNFWHTCCDE,
WHTCOLLCODE_MAP TYPE J_1BKOMVMAP,
BASERED1 TYPE CNFBASERED1,
BASERED1_MAP TYPE J_1BKOMVMAP,
BASERED2 TYPE CNFBASERED2,
BASERED2_MAP TYPE J_1BKOMVMAP,
END OF STD_MAP_COND_NF_FIELDSV.
DATA: STD_MAP_COND_NFV type STD_MAP_COND_NF_FIELDSV.

* Struktur, um BC-Set Daten auf externes File zu schreiben


TYPES: BEGIN OF scpr_transfer %_FINAL,
line(450),
END OF scpr_transfer.

* Int. Tabelle zu scpr_transfer


TYPES: scpr_transfertab TYPE scpr_transfer OCCURS 10.

* ---- Data declaration - BC-Set files


DATA: p_file1 LIKE rlgrap-filename, "File Name
p_file2 LIKE rlgrap-filename, "File Name
p_file3 LIKE rlgrap-filename, "File Name
p_file4 LIKE rlgrap-filename, "File Name
p_file5 LIKE rlgrap-filename, "File Name
p_file6 LIKE rlgrap-filename, "File Name
p_file7 LIKE rlgrap-filename, "File Name
p_file8 LIKE rlgrap-filename, "File Name
p_file9 LIKE rlgrap-filename, "File Name
p_file10 LIKE rlgrap-filename. "File Name

* ---- Data declaration - customizing tables


DATA: IT_TTXD1 like TTXD OCCURS 0 WITH HEADER LINE,
IT_TTXD2 like TTXD OCCURS 0 WITH HEADER LINE,
IT_TTXC like TTXC OCCURS 0 WITH HEADER LINE,
IT_J_1BTXJUR like J_1BTXJUR OCCURS 0 WITH HEADER LINE,
IT_J_1BTREG_CITY like J_1BTREG_CITY OCCURS 0 WITH HEADER LINE,
IT_J_1BCONDTAXACT like J_1BCONDTAXACT OCCURS 0 WITH HEADER LINE,
IT_J_1BCBTAXPROCTX like J_1BCBTAXPROC OCCURS 0 WITH HEADER LINE,
IT_J_1BCBTAXPROCV like J_1BCBTAXPROC OCCURS 0 WITH HEADER LINE,
IT_T005 like T005 OCCURS 0 WITH HEADER LINE,
IT_T682TX like T682 OCCURS 0 WITH HEADER LINE,
IT_T682V like T682 OCCURS 0 WITH HEADER LINE,
IT_T685TX like T685 OCCURS 0 WITH HEADER LINE,
IT_T685V like T685 OCCURS 0 WITH HEADER LINE,
IT_T685ATX like T685A OCCURS 0 WITH HEADER LINE,
IT_T685AV like T685A OCCURS 0 WITH HEADER LINE,
IT_T687TX like T687 OCCURS 0 WITH HEADER LINE,
IT_T687V like T687 OCCURS 0 WITH HEADER LINE,
IT_T007B like T007B OCCURS 0 WITH HEADER LINE,
IT_J_1BTXCOND like J_1BTXCOND OCCURS 0 WITH HEADER LINE,
IT_T683STX like T683S OCCURS 0 WITH HEADER LINE,
IT_T683SV like T683S OCCURS 0 WITH HEADER LINE,
IT_J_1BTAXGRPCD like J_1BTAXGRPCD OCCURS 0 WITH HEADER LINE,
IT_J_1BCONDMAP like J_1BCONDMAP OCCURS 0 WITH HEADER LINE,
IT_J_1BVIEWMAP like J_1BVIEWMAP OCCURS 0 WITH HEADER LINE,
IT_J_1BSDKON0V like J_1BSDKON0 OCCURS 0 WITH HEADER LINE,
IT_J_1BSDKON0TX like J_1BSDKON0 OCCURS 0 WITH HEADER LINE,
IT_TSTL like TSTL OCCURS 0 WITH HEADER LINE,
IT_T005Q like T005Q OCCURS 0 WITH HEADER LINE,
IT_T059P like T059P OCCURS 0 WITH HEADER LINE,
IT_T059K like T059K OCCURS 0 WITH HEADER LINE,
IT_J_1ATXREL like J_1ATXREL OCCURS 0 WITH HEADER LINE,
IT_A397 like A397 OCCURS 0 WITH HEADER LINE,
IT_T059Z like T059Z OCCURS 0 WITH HEADER LINE,
IT_T059MINMAX like T059MINMAX OCCURS 0 WITH HEADER LINE,
IT_J_1BNFTXCONDTX like J_1BNFTXCOND OCCURS 0 WITH HEADER LINE,
IT_J_1BNFTXCONDV like J_1BNFTXCOND OCCURS 0 WITH HEADER LINE.

* ---- Data declaration - Hard-Coded Tables / Standard Values


DATA: IT_STD_ACS_SEQ like STD_ACS_SEQ OCCURS 0 WITH HEADER LINE,
IT_STD_CONDTX like STD_COND OCCURS 0 WITH HEADER LINE,
IT_STD_CONDV like STD_COND OCCURS 0 WITH HEADER LINE,
IT_STD_INTCOD_CNDTYP like STD_INTCOD_CNDTYP OCCURS 0 WITH HEADER LINE,
IT_STD_TAXG_ICODE like STD_TAXG_ICODE OCCURS 0 WITH HEADER LINE,
IT_STD_MAP_TO_COND like STD_MAPP_TO_COND OCCURS 0 WITH HEADER LINE,
IT_STD_MAP_COND_NFTX like STD_MAP_COND_NFTX OCCURS 0 WITH HEADER LINE,
IT_STD_MAP_COND_NFV like STD_MAP_COND_NFV OCCURS 0 WITH HEADER LINE,
IT_STD_WHT like STD_WHT OCCURS 0 WITH HEADER LINE,
IT_STD_ACC_KEY LIKE STD_ACC_KEY OCCURS 0 WITH HEADER LINE,
IT_STD_COND_STUNRTX LIKE STD_COND_STUNR OCCURS 0 WITH HEADER LINE,
IT_STD_COND_STUNRV LIKE STD_COND_STUNR OCCURS 0 WITH HEADER LINE.

* --- BC-SETs read elements


DATA: file_version TYPE STRING,
key type STRING,
path_and_filename TYPE STRING,
proftext TYPE STRING,
directory TYPE STRING,
charx TYPE C,
P_CHWRG TYPE STRING,
P_CHALL TYPE STRING.

* --- Others
DATA: form965 TYPE string,
form966 TYPE string.

DATA :
gs_nodetab TYPE snodetext,
gt_nodetab TYPE TABLE OF snodetext.

DATA :
gs_contents TYPE gty_contents,
gt_contents TYPE TABLE OF gty_contents.
************************************************************************
* Download BC-Sets HTML Viewer
************************************************************************

DATA: dockingbottom TYPE REF TO cl_gui_docking_container,


html TYPE REF TO cl_gui_html_viewer,
repid TYPE syrepid.

DATA: lt_html TYPE TABLE OF char255,


ls_html TYPE char255.
DATA: lv_url TYPE char255.

*PARAMETERS: p_check. " used for docking container

************************************************************************
* Folder selection
************************************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR PATH_STR.


* CALL FUNCTION 'F4_FILENAME' "F4 help for file browsing
* EXPORTING
* program_name = syst-cprog
* dynpro_number = syst-dynnr
* field_name = ' '
* IMPORTING
* file_name = p_file1.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE


EXPORTING
WINDOW_TITLE = 'Select Directory'
CHANGING
SELECTED_FOLDER = PATH_STR
EXCEPTIONS
CNTL_ERROR = 1.

CALL METHOD CL_GUI_CFW=>FLUSH


EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2.

************************************************************************
* Download BC-Sets HTML Viewer
************************************************************************

AT SELECTION-SCREEN OUTPUT.

* Create container
repid = sy-repid.
CREATE OBJECT dockingbottom
EXPORTING
repid = repid
dynnr = sy-dynnr
side = dockingbottom->DOCK_AT_BOTTOM
extension = 50.

* Create HTML control


CREATE OBJECT html
EXPORTING
parent = dockingbottom.
* insert HTML
ls_html = '<p>Download the BC-Sets at SAP Note ' &
'<a href="https://launchpad.support.sap.com/#/notes/1706309" ' &

'target="_blank">https://launchpad.support.sap.com/#/notes/1706309</a></p>'.
APPEND ls_html TO lt_html.
ls_html = '<p>Follow the instructions at Knowledge Base Article link ' &
'<a href="https://launchpad.support.sap.com/#/notes/2133195" ' &

'target="_blank">https://launchpad.support.sap.com/#/notes/2133195</a></p>'.
APPEND ls_html TO lt_html.

* Load the HTML


CALL METHOD html->load_data
IMPORTING
assigned_url = lv_url
CHANGING
data_table = lt_html
EXCEPTIONS
dp_invalid_parameter = 1
dp_error_general = 2
cntl_error = 3
OTHERS = 4.

* Show it
html->show_url( lv_url ).

************************************************************************
* Start-Of-Selection
************************************************************************
START-OF-SELECTION.

P_CHALL = 'X'.

PERFORM BUILD_INTERNAL_TABLES.

PERFORM DATABASE_READ.

* --- Read BC-Set files from Folder


IF NOT PATH_STR IS INITIAL.
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
percentage = 9
text = 'Reading BC-Set Account Keys for FI/MM...'.
wait up to 1 seconds.
CONCATENATE PATH_STR '\ZCSC_BR_CBT_ACCOUNT_KEYS_FI.bcs' INTO P_FILE1.
PERFORM READ_BCS_FILE USING 1.

call function 'SAPGUI_PROGRESS_INDICATOR'


exporting
percentage = 19
text = 'Reading BC-Set Account Keys for SD...'.
wait up to 1 seconds.
CONCATENATE PATH_STR '\ZCSC_BR_CBT_ACCOUNT_KEYS_SD.bcs' INTO P_FILE2.
PERFORM READ_BCS_FILE USING 2.
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
percentage = 29
text = 'Reading BC-Set Conditions Types MM...'.
wait up to 1 seconds.
CONCATENATE PATH_STR '\ZCSC_BR_CBT_CONDITION_TYPES_MM.bcs' INTO P_FILE3.
PERFORM READ_BCS_FILE USING 3.

call function 'SAPGUI_PROGRESS_INDICATOR'


exporting
percentage = 39
text = 'Reading BC-Set Conditions Types SD...'.
wait up to 1 seconds.
CONCATENATE PATH_STR '\ZCSC_BR_CBT_CONDITION_TYPES_SD.bcs' INTO P_FILE4.
PERFORM READ_BCS_FILE USING 4.

call function 'SAPGUI_PROGRESS_INDICATOR'


exporting
percentage = 49
text = 'Reading BC-Set Internal Codes x Condition Types...'.
wait up to 1 seconds.
CONCATENATE PATH_STR '\ZCSC_BR_CBT_INT_CODS_TO_CND_TYPS.bcs' INTO P_FILE5.
PERFORM READ_BCS_FILE USING 5.

call function 'SAPGUI_PROGRESS_INDICATOR'


exporting
percentage = 59
text = 'Reading BC-Set Internal Codes Definition...'.
wait up to 1 seconds.
CONCATENATE PATH_STR '\ZCSC_BR_CBT_INTERNAL_COND_CODES.bcs' INTO P_FILE6.
PERFORM READ_BCS_FILE USING 6.

call function 'SAPGUI_PROGRESS_INDICATOR'


exporting
percentage = 69
text = 'Reading BC-Set Map MM Values to Nota Fiscal fields...'.
wait up to 1 seconds.
CONCATENATE PATH_STR '\ZCSC_BR_CBT_MAP_MM_VLS_TO_NF_FDS.bcs' INTO P_FILE7.
PERFORM READ_BCS_FILE USING 7.

call function 'SAPGUI_PROGRESS_INDICATOR'


exporting
percentage = 79
text = 'Reading BC-Set Map SD Values to Nota Fiscal fields...'.
wait up to 1 seconds.
CONCATENATE PATH_STR '\ZCSC_BR_CBT_MAP_SD_VLS_TO_NF_FDS.bcs' INTO P_FILE8.
PERFORM READ_BCS_FILE USING 8.

call function 'SAPGUI_PROGRESS_INDICATOR'


exporting
percentage = 89
text = 'Reading BC-SET RVABRA (SD)...'.
wait up to 1 seconds.
CONCATENATE PATH_STR '\ZCSC_BR_CBT_RVABRA_CALC_PROCD_SD.bcs' INTO P_FILE9.
PERFORM READ_BCS_FILE USING 9.

call function 'SAPGUI_PROGRESS_INDICATOR'


exporting
percentage = 99
text = 'Reading BC-SET TAXBRA (MM)...'.
wait up to 1 seconds.
CONCATENATE PATH_STR '\ZCSC_BR_CBT_TAXBRA_CALC_PROCD_MM.bcs' INTO P_FILE10.
PERFORM READ_BCS_FILE USING 10.
ENDIF.

************************************************************************
* Report Display
************************************************************************

*CLEAR gt_contents.
*CLEAR gs_contents.

*GS_CONTENTS-NAME = 'Results'.
*GS_CONTENTS-TLEVEL = '01'.
*GS_CONTENTS-NLENGTH = STRLEN( GS_CONTENTS-NAME ).
*GS_CONTENTS-COLOR = 1.
*IF P_CHALL = 'X'.
* GS_CONTENTS-TEXT = 'Report ALL Customizing'.
*ELSE.
* GS_CONTENTS-TEXT = 'Report only WRONG Customizing'.
*ENDIF.
*GS_CONTENTS-TCOLOR = 1.
*GS_CONTENTS-TLENGTH = '75'.
*APPEND GS_CONTENTS TO GT_CONTENTS.

call function 'SAPGUI_PROGRESS_INDICATOR'


exporting
percentage = 50
text = 'Preparing report display...'.
wait up to 1 seconds.

* Report Version
WRITE: / ICON_INFORMATION AS ICON, textver.
WRITE: /.

WRITE: / 'INSTRUCTIONS:'.
WRITE: / 'Use this report to review the customizing in your system.'.
FORMAT INVERSE COLOR = 6.
WRITE 'This report DOES NOT change any data.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /(130) 'You can double-click at the view/table/transaction names to open it
directly (if you have the authorization).'.
WRITE: / 'TIP: Use', ICON_SEARCH AS ICON, '(CTRL + F) to find specific information
or topics.'.
WRITE: /.
ULINE.

* '4.1.3.1 Structure for Tax Jurisdiction Code (view V_TTXD)'.


IF IT_TTXD1[] IS INITIAL.
* FORMAT COLOR 7 INTENSIFIED ON.
WRITE: /(120) '4.1.3.1 Structure for Tax Jurisdiction Code (view V_TTXD)'.
* FORMAT INTENSIFIED OFF COLOR = 0.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'Calculation procedure TAXBRA not correctly
maintained'.
WRITE: / ' Make sure you maintain the following entry:'.
WRITE: / ' Scheme TAXBRA'.
WRITE: / ' Length 1 03 '.
WRITE: / ' Length 2 07 '.
WRITE: / ' Length 3 EMPTY '.
WRITE: / ' Length 4 EMPTY '.
WRITE: / ' Taxes line by line X '.
WRITE: /.
ULINE.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
* FORMAT COLOR 7 INTENSIFIED ON.
WRITE: / '4.1.3.1 Structure for Tax Jurisdiction Code (view V_TTXD)'.
* FORMAT INTENSIFIED OFF COLOR = 0.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_OKAY AS ICON, 'OK'.
WRITE: /.
ULINE.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
CLEAR IT_TTXD1.

* '4.1.3.2 Activate External Tax Calculation (view V_TXD_E)'.


IF IT_TTXD2[] IS INITIAL.
* FORMAT COLOR 7 INTENSIFIED ON.
WRITE: /(120) '4.1.3.2 Activate External Tax Calculation (view V_TXD_E)'.
* FORMAT INTENSIFIED OFF COLOR = 0.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'Activation of the external tax calculation not
set'.
WRITE: / ' Make sure you maintain the following entry:'.
WRITE: / ' Scheme TAXBRA'.
WRITE: / ' External system C '.
WRITE: / ' All other fields EMPTY '.
WRITE: /.
ULINE.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
* FORMAT COLOR 7 INTENSIFIED ON.
WRITE: /(120) '4.1.3.2 Activate External Tax Calculation (view V_TXD_E)'.
* FORMAT INTENSIFIED OFF COLOR = 0.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_OKAY AS ICON, 'OK'.
WRITE: /.
ULINE.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
CLEAR IT_TTXD2.

* '4.1.3.3 Define Logical Destination (table TTXC)'.


IF IT_TTXC[] IS INITIAL.
WRITE: /(120) '4.1.3.3 Define Logical Destination (table TTXC)'.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'Logical destination not defined'.
WRITE: / ' Make sure you maintain the following entry:'.
WRITE: / ' Event JUR'.
WRITE: / ' Function Module J_1BTAXJUR_DETERMINE_NEW'.
WRITE: / ' RFC destination EMPTY '.
WRITE: /.
ULINE.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
WRITE: /(120) '4.1.3.3 Define Logical Destination (table TTXC)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_OKAY AS ICON, 'OK'.
WRITE: /.
ULINE.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
CLEAR IT_TTXC.

* '4.1.4.1 Define Tax Jurisdiction Codes (view J_1BTXJURV)'.


IF IT_J_1BTXJUR[] IS INITIAL.
WRITE: /(120) '4.1.4.1 Define Tax Jurisdiction Codes (view J_1BTXJURV)'.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'Tax jurisdcition codes not maintained'.
WRITE: / ' Make sure you maintain at least ONE entry with the following
structure:'.
WRITE: / ' SP 3550308 - S�o Paulo'.
WRITE: / ' o SP = Region / State (Attention: it is SP and space)'.
WRITE: / ' o 35 = SP State code according to IBGE'.
WRITE: / ' o 50308 = S�o Paulo City (Munic�pio de S�o Paulo)'.
WRITE: / ' Enter all required tax jurisdiction codes in this table according to
this rule.'.
WRITE: /.
ULINE.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
WRITE: /(120) '4.1.4.1 Define Tax Jurisdiction Codes (view J_1BTXJURV)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_OKAY AS ICON, 'OK (at least one entry found)'.
WRITE: / ' If ISS is not calculating correctly, check this customizing'.
WRITE: /.
ULINE.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
CLEAR IT_J_1BTXJUR.

* '4.1.4.2 Assign Jurisdiction Codes to Ranges of Postal Codes (view


J_1BTREG_CITYV)'.
IF IT_J_1BTREG_CITY[] IS INITIAL.
WRITE: /(120) '4.1.4.2 Assign Jurisdiction Codes to Ranges of Postal Codes (view
J_1BTREG_CITYV)'.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'Postal Codes not assigned to Jurisdcition
codes'.
WRITE: / ' For each tax jurisdiction codes, assign the geographical region and
the beginning'.
WRITE: / ' and ending postal codes. The system:'.
WRITE: / ' o first accesses the data in this activity to determine the tax
jurisdiction'.
WRITE: / ' code.'.
WRITE: / ' o if it does not find an entry there, it reads the tax region from
the Define'.
WRITE: / ' Brazilian Tax Regions and Assign to Geographical Regions
Customizing activity.'.
WRITE: /.
ULINE.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
WRITE: /(120) '4.1.4.2 Assign Jurisdiction Codes to Ranges of Postal Codes
(view J_1BTREG_CITYV)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_OKAY AS ICON, 'OK (at least one entry found)'.
WRITE: / ' If ISS is not calculating correctly, check this customizing'.
WRITE: /.
ULINE.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
CLEAR IT_J_1BTREG_CITY.

* '4.1.4.3 Update organizational units with tax jurisdiction code'.


IF P_CHALL = 'X'.
WRITE: /(120) '4.1.4.3 Update organizational units with tax jurisdiction code'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_LED_YELLOW AS ICON, '(MANUAL TASK) This is necessary for:'.
WRITE: / ' o Company Codes (view V_T001)'.
WRITE: / ' o Plants (view V_T001W)'.
WRITE: / ' o Business Places (Filial) (view J_1BBRANCV)'.
WRITE: / ' o General addresses of central address management which are used
as delivery addresses'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.

* '4.2.1 Activate condition generation (table J_1BCONDTAXACT)'.


IF IT_J_1BCONDTAXACT[] IS INITIAL.
WRITE: /(120) '4.2.1 Activate condition generation (table J_1BCONDTAXACT)'.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'Condition based tax calculation NOT ACTIVE'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ULINE.
ELSE.
IF P_CHALL = 'X'.
WRITE: /(120) '4.2.1 Activate condition generation (table J_1BCONDTAXACT)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_OKAY AS ICON, 'OK'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ULINE.
ENDIF.
ENDIF.
CLEAR IT_J_1BCONDTAXACT.
* '4.2.2 Specify Calculation Procedures for Condition-Based Tax Calculation (view
J_1BCBTAXPROCV)'.
IF IT_J_1BCBTAXPROCTX[] IS INITIAL.
WRITE: /(120) '4.2.2 Specify Calculation Procedures for Condition-Based Tax
Calculation (view J_1BCBTAXPROCV)'.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'For MM, the standard TAXBRA is missing. Make
sure the standard is created before creating your own.'.
WRITE: / ' Usage A'.
WRITE: / ' Application TX'.
WRITE: / ' Calculation Procedure TAXBRA'. "PPROC_MM.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
WRITE: /(120) '4.2.2 Specify Calculation Procedures for Condition-Based Tax
Calculation (view J_1BCBTAXPROCV)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_OKAY AS ICON, 'MM OK'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
CLEAR IT_J_1BCBTAXPROCTX.
IF IT_J_1BCBTAXPROCV[] IS INITIAL.
WRITE: /(120) '4.2.3 Specify Calculation Procedures for Condition-Based Tax
Calculation (view J_1BCBTAXPROCV)'.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'For SD, the standard RVABRA is missing. Make
sure the standard is created before creating your own.'.
WRITE: / ' Usage A'.
WRITE: / ' Application V'.
WRITE: / ' Calculation Procedure RVABRA'. "PPROC_SD.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ULINE.
ELSE.
IF P_CHALL = 'X'.
WRITE: /(120) '4.2.3 Specify Calculation Procedures for Condition-Based Tax
Calculation (view J_1BCBTAXPROCV)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_OKAY AS ICON, 'SD OK'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ULINE.
ENDIF.
ENDIF.
CLEAR IT_J_1BCBTAXPROCV.

* '4.2.4 Access sequences'.


WRITE: /(120) '4.2.4 Access sequences'.
WRITE: / ' 4.2.4.1 Define access sequences for application TX (MM/FI) (transaction
OBQ2)'.
READ TABLE IT_STD_ACS_SEQ WITH KEY APPL = 'TX'.
LOOP AT IT_STD_ACS_SEQ WHERE APPL = 'TX'.
READ TABLE IT_T682TX WITH KEY KOZGF = IT_STD_ACS_SEQ-ACCS.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Access sequence ', IT_STD_ACS_SEQ-
ACCS, ' is missing.'.
WRITE: / ' It is necessary to import this access sequence from client
000.'.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Access sequence ', IT_STD_ACS_SEQ-ACCS, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T682TX.
ULINE.

WRITE: / ' 4.2.4.2 Define access sequences for application V (SD) (transaction
V/07)'.
READ TABLE IT_STD_ACS_SEQ WITH KEY APPL = 'V'.
LOOP AT IT_STD_ACS_SEQ WHERE APPL = 'V'.
READ TABLE IT_T682V WITH KEY KOZGF = IT_STD_ACS_SEQ-ACCS.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Access sequence ', IT_STD_ACS_SEQ-
ACCS, ' is missing.'.
WRITE: / ' It is necessary to import this access sequence from client
000.'.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Access sequence ', IT_STD_ACS_SEQ-ACCS, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T682V.
ULINE.

* '4.2.5 Condition types'.


WRITE: /(120) '4.2.5 Condition types'.
WRITE: / ' 4.2.5.1 Create condition types for application TX (MM/FI) (transaction
OBQ1)'.
READ TABLE IT_STD_CONDTX WITH KEY APPL = 'TX'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_DUMMY AS ICON, 'Conditions not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
LOOP AT IT_STD_CONDTX WHERE APPL = 'TX'.
READ TABLE IT_T685TX WITH KEY KSCHL = IT_STD_CONDTX-COND
KOZGF = IT_STD_CONDTX-ACCS.
IF SY-SUBRC = 0.
READ TABLE IT_T685ATX WITH KEY KSCHL = IT_STD_CONDTX-COND
KOAID = IT_STD_CONDTX-KOAID
KRECH = IT_STD_CONDTX-KRECH
KNTYP = IT_STD_CONDTX-KNTYP.
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Condition type ', IT_STD_CONDTX-COND, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition type ', IT_STD_CONDTX-
COND, ' is wrong.'.
WRITE: / ' The standard customizing is wrong. Correct is:'.
WRITE: / ' - Condition Class :', IT_STD_CONDTX-KOAID.
WRITE: / ' - Calculation Type :', IT_STD_CONDTX-KRECH.
WRITE: / ' - Condition Category:', IT_STD_CONDTX-KNTYP.
ENDIF.
ELSE.
READ TABLE IT_T685TX WITH KEY KSCHL = IT_STD_CONDTX-COND.
FORMAT INVERSE COLOR = 6.
IF SY-SUBRC = 4.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition type ', IT_STD_CONDTX-
COND, ' is missing.'.
ELSE.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition type ', IT_STD_CONDTX-
COND, ' is wrong.'.
WRITE: / ' The access sequence for this condition is wrong. Correct
is:'.
WRITE: / ' - Access Sequence :', IT_STD_CONDTX-ACCS.
ENDIF.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T685TX.
CLEAR IT_T685ATX.
ULINE.

WRITE: / ' 4.2.5.2 Create condition types for application V (SD) (transaction
V/06)'.
READ TABLE IT_STD_CONDV WITH KEY APPL = 'V'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_DUMMY AS ICON, 'Conditions not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
LOOP AT IT_STD_CONDV WHERE APPL = 'V'.
READ TABLE IT_T685V WITH KEY KSCHL = IT_STD_CONDV-COND
KOZGF = IT_STD_CONDV-ACCS.
IF SY-SUBRC = 0.
READ TABLE IT_T685AV WITH KEY KSCHL = IT_STD_CONDV-COND
KOAID = IT_STD_CONDV-KOAID
KRECH = IT_STD_CONDV-KRECH
KNTYP = IT_STD_CONDV-KNTYP.
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Condition type ', IT_STD_CONDV-COND, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition type ', IT_STD_CONDV-COND,
' is wrong.'.
WRITE: / ' The standard customizing is wrong. Correct is:'.
WRITE: / ' - Condition Class :', IT_STD_CONDV-KOAID.
WRITE: / ' - Calculation Type :', IT_STD_CONDV-KRECH.
WRITE: / ' - Condition Category:', IT_STD_CONDV-KNTYP.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
READ TABLE IT_T685V WITH KEY KSCHL = IT_STD_CONDV-COND.
IF SY-SUBRC = 4.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition type ', IT_STD_CONDV-
COND, ' is missing.'.
ELSE.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition type ', IT_STD_CONDV-
COND, ' is wrong.'.
WRITE: / ' The access sequence for this condition is wrong. Correct
is:'.
WRITE: / ' - Access Sequence :', IT_STD_CONDV-ACCS.
ENDIF.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T685V.
CLEAR IT_T685AV.
ULINE.

WRITE: /(120) '4.2.6 Account Keys'.


WRITE: / ' 4.2.6.1 Define account keys for MM/FI (transaction OBCN)'.
READ TABLE IT_STD_ACC_KEY WITH KEY APPL = 'TX'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_DUMMY AS ICON, 'Account keys not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
LOOP AT IT_STD_ACC_KEY WHERE APPL = 'TX'.
READ TABLE IT_T687TX WITH KEY KAPPL = 'TX'
KVSL1 = IT_STD_ACC_KEY-KVSL1.
IF SY-SUBRC = 0.
READ TABLE IT_T007B WITH KEY KTOSL = IT_STD_ACC_KEY-KVSL1
STAZF = IT_STD_ACC_KEY-STAZF
STBKZ = IT_STD_ACC_KEY-STBKZ
STGRP = IT_STD_ACC_KEY-STGRP
STNSK = IT_STD_ACC_KEY-STNSK.
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Account key ', IT_STD_ACC_KEY-KVSL1, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Account key ', IT_STD_ACC_KEY-KVSL1,
' is wrong.'.
WRITE: / ' The standard customizing is wrong. Correct is:'.
WRITE: / ' - Tax type :', IT_STD_ACC_KEY-STGRP.
WRITE: / ' - Not deductible :', IT_STD_ACC_KEY-STAZF.
WRITE: / ' - Posting indicator:', IT_STD_ACC_KEY-STBKZ.
WRITE: / ' - Not discount rel.:', IT_STD_ACC_KEY-STNSK.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Account key ', IT_STD_ACC_KEY-KVSL1,
' is missing.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T687TX.
CLEAR IT_T007B.
ULINE.

WRITE: / ' 4.2.6.2 Define account keys for SD (view V_T687)'.


READ TABLE IT_STD_ACC_KEY WITH KEY APPL = 'V'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_DUMMY AS ICON, 'Account keys not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
LOOP AT IT_STD_ACC_KEY WHERE APPL = 'V'.
READ TABLE IT_T687V WITH KEY KAPPL = 'V'
KVSL1 = IT_STD_ACC_KEY-KVSL1.
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Account key ', IT_STD_ACC_KEY-KVSL1, ' is
OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Account key ', IT_STD_ACC_KEY-KVSL1, '
is missing.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T687V.
CLEAR IT_T007B.
ULINE.

* '4.2.7 Define internal codes for tax conditions (view J_1BCONDMAPV)'.


IF P_CHALL = 'X'.
WRITE: /(120) '4.2.7 Define internal codes for tax conditions (view
J_1BCONDMAPV)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_LED_YELLOW AS ICON, 'Delivered with BC set
ZCSC_BR_CBT_INTERNAL_COND_CODES. No check performed.'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ULINE.
ENDIF.

* '4.2.8 Assign condition types to internal codes for tax conditions (table
J_1BTXCOND)'.
WRITE: /(120) '4.2.8 Assign condition types to internal codes for tax conditions
(view J_1BTXCOND)'.
READ TABLE IT_STD_INTCOD_CNDTYP.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_DUMMY AS ICON, 'Cond. types x Int. codes not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
SORT IT_STD_INTCOD_CNDTYP ASCENDING BY CODE.
LOOP AT IT_STD_INTCOD_CNDTYP.
READ TABLE IT_J_1BTXCOND WITH KEY CODE = IT_STD_INTCOD_CNDTYP-CODE
KAPPL = IT_STD_INTCOD_CNDTYP-KAPPL
KSCHL = IT_STD_INTCOD_CNDTYP-KSCHL.
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
CONDENSE IT_STD_INTCOD_CNDTYP-CODE NO-GAPS.
WRITE: / ICON_OKAY AS ICON, 'Internal code ', IT_STD_INTCOD_CNDTYP-CODE,
'Appl.', IT_STD_INTCOD_CNDTYP-KAPPL, ' correctly assigned to ',
IT_STD_INTCOD_CNDTYP-KSCHL.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'Internal code ', IT_STD_INTCOD_CNDTYP-CODE,
'Appl.', IT_STD_INTCOD_CNDTYP-KAPPL, ' assignment is wrong.'.
WRITE: / ' ', '
Assign it to condition:', IT_STD_INTCOD_CNDTYP-KSCHL.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_STD_INTCOD_CNDTYP.
CLEAR IT_J_1BTXCOND.
ULINE.

WRITE: /(120) '4.2.9 Assign internal code to tax group (view J_1BCONDMAPV)'.
SORT IT_STD_TAXG_ICODE BY CODE ASCENDING CONTROL ASCENDING.
LOOP AT IT_STD_TAXG_ICODE WHERE CONTROL = 1.
READ TABLE IT_J_1BTAXGRPCD WITH KEY TAXGRP = IT_STD_TAXG_ICODE-TAXGRP
CODE = IT_STD_TAXG_ICODE-CODE.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'Tax group ', IT_STD_TAXG_ICODE-TAXGRP, ' is
missing/wrong.'.
READ TABLE IT_J_1BTAXGRPCD WITH KEY TAXGRP = IT_STD_TAXG_ICODE-TAXGRP.
IF SY-SUBRC = 0.
CONDENSE IT_STD_TAXG_ICODE-CODE NO-GAPS.
WRITE: / ' The internal code is wrong for this tax group. Correct is',
IT_STD_TAXG_ICODE-CODE.
ENDIF.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_OKAY AS ICON, 'Tax group ', IT_STD_TAXG_ICODE-TAXGRP, ' is
OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_J_1BTAXGRPCD.

LOOP AT IT_STD_TAXG_ICODE WHERE CONTROL = 2.


READ TABLE IT_J_1BCONDMAP WITH KEY CODE = IT_STD_TAXG_ICODE-CODE
TAXGRP = IT_STD_TAXG_ICODE-TAXGRP.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
CONDENSE IT_STD_TAXG_ICODE-CODE NO-GAPS.
WRITE: / ICON_INCOMPLETE AS ICON, 'Internal Code ', IT_STD_TAXG_ICODE-CODE, '
is missing/wrong.'.
READ TABLE IT_J_1BCONDMAP WITH KEY CODE = IT_STD_TAXG_ICODE-CODE.
IF SY-SUBRC = 0.
IF IT_STD_TAXG_ICODE-TAXGRP = ''.
WRITE: / ' The tax group is wrong for this internal code. Correct is
BLANK.'.
ELSE.
WRITE: / ' The tax group is wrong for this internal code. Correct is',
IT_STD_TAXG_ICODE-TAXGRP.
ENDIF.
ENDIF.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
IF IT_STD_TAXG_ICODE-TAXGRP = ''.
WRITE: / ICON_OKAY AS ICON, 'Internal Code ', IT_STD_TAXG_ICODE-CODE, ' is
OK.', ' Tax Group = Empty'.
ELSE.
WRITE: / ICON_OKAY AS ICON, 'Internal Code ', IT_STD_TAXG_ICODE-CODE, ' is
OK.', ' Tax Group = ', IT_STD_TAXG_ICODE-TAXGRP.
ENDIF.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_J_1BCONDMAP.

FORMAT INVERSE OFF COLOR = 0.


WRITE: / ICON_LED_YELLOW AS ICON, 'ALL OTHER Internal Codes should NOT be assigned
to any Tax Group! ' COLOR COL_POSITIVE INTENSIFIED.
WRITE: / ' This usually leads to Migration problems, if the assignment is
incorrect.' COLOR COL_POSITIVE INTENSIFIED.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.

* 4.2.10 Tax groups for dynamic exceptions (table J_1BTXCOND)'.


IF P_CHALL = 'X'.
WRITE: / '4.2.10 Tax groups for dynamic exceptions (view J_1BTXGRUOP)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_LED_YELLOW AS ICON, 'Delivered by SAP.'.
WRITE: / ' You can define groups in the range from 10 to 89. The numbers
between 0 and 9'.
WRITE: / ' as well as between 90 and 99 are reserved for SAP. These groups
should not be'.
WRITE: / ' deleted. SAP delivers the groups 1, 5 and 97 to 99.'.
WRITE: / ' After defining the groups, you can use program J_1B_EXT_ACC_SEQ
which will'.
WRITE: / ' create the access sequences accordingly.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.

WRITE: /(120) '4.2.11 Assign condition tables to tax rate tables (view
J_1BVIEWMAP)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_LED_YELLOW AS ICON, 'Delivered with BC set
ZCSC_BR_CBT_CND_TBS_TAX_RT_TBS.'.
FORMAT INVERSE OFF COLOR = 0.
SORT IT_STD_MAP_TO_COND ASCENDING BY TABNAME.
LOOP AT IT_STD_MAP_TO_COND.
READ TABLE IT_J_1BVIEWMAP WITH KEY TABNAME = IT_STD_MAP_TO_COND-TABNAME
KOTABNR = IT_STD_MAP_TO_COND-KOTABNR.
IF SY-SUBRC = 4.
READ TABLE IT_J_1BVIEWMAP WITH KEY TABNAME = IT_STD_MAP_TO_COND-TABNAME.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Table', IT_STD_MAP_TO_COND-TABNAME,
' is missing'.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Table', IT_STD_MAP_TO_COND-TABNAME,
' is wrong'.
IF IT_STD_MAP_TO_COND-KOTABNR <> '601'.
WRITE: / ' The cond. table assigned to this tax table is wrong.
Correct is', IT_STD_MAP_TO_COND-KOTABNR.
ELSE.
FORMAT INVERSE COLOR = 4.
WRITE: / ' The cond. table assigned to this tax table can differ from
the recommended 601.'.
ENDIF.
ENDIF.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Table', IT_STD_MAP_TO_COND-TABNAME, ' is
OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_STD_MAP_TO_COND.
ULINE.

WRITE: /(120) '4.2.12 Tax calculation logic'.


WRITE: / ' This checks if the standard conditions are present in the analysed
pricing procedure.'.
WRITE: / ' 4.2.12.1 Calculation Procedure in MM/FI:', PPROC_MM, '(compared with
TAXBRA) (transaction OBQ3)'.
READ TABLE IT_STD_CONDTX WITH KEY APPL = 'TX'.
SORT IT_STD_CONDTX ASCENDING BY STUNR.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_DUMMY AS ICON, 'Conditions not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
LOOP AT IT_STD_CONDTX WHERE APPL = 'TX' AND STUNR <> 0.
READ TABLE IT_T683STX WITH KEY KVEWE = 'A'
KAPPL = 'TX'
KALSM = PPROC_MM.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
* WRITE: / ' ', SYM_RIGHT_HAND AS SYMBOL, 'Pricing procedure ', PPROC_MM, '
not found.'.
ELSE.
FORMAT INVERSE COLOR = 5.
* WRITE: / ' ', SYM_RIGHT_HAND AS SYMBOL, 'Pricing procedure ', PPROC_MM, '.'.
FORMAT INVERSE OFF COLOR = 0.
READ TABLE IT_T683STX WITH KEY KVEWE = 'A'
KAPPL = 'TX'
KALSM = PPROC_MM
KSCHL = IT_STD_CONDTX-COND.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition ', IT_STD_CONDTX-COND, '
not found.'.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
READ TABLE IT_T683STX WITH KEY KVEWE = 'A'
KAPPL = 'TX'
KALSM = PPROC_MM
KSCHL = IT_STD_CONDTX-COND
KSTAT = IT_STD_CONDTX-KSTAT
KOFRM = IT_STD_CONDTX-KOFRM
KOFRA = IT_STD_CONDTX-KOFRA
KVSL1 = IT_STD_CONDTX-KVSL1.
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Condition type ', IT_STD_CONDTX-
COND, ' found and OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition type ', IT_STD_CONDTX-
COND, ' is wrong.'.
WRITE: / ' The settings for this condition are wrong. Recommended
settings are:'.
WRITE: / ' - Statistical flag :', IT_STD_CONDTX-KSTAT.
WRITE: / ' - Cond. Formula :', IT_STD_CONDTX-KOFRM.
* Version 5 changes
* IF IT_STD_CONDTX-COND = 'ICMI'.
* WRITE: / ' - Cond. Basis Form.: 965 (for partial
deliveries/billing - Note 984871)'.
* ELSEIF IT_STD_CONDTX-COND(2) = 'BX'.
* WRITE: / ' - Cond. Basis Form.: 966 (for partial
deliveries/billing - Note 984871)'.
* ELSE.
WRITE: / ' - Cond. Basis Form.:', IT_STD_CONDTX-KOFRA.
* ENDIF.
* Version 5 changes
WRITE: / ' - Account Key :', IT_STD_CONDTX-KVSL1.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T683STX.
CLEAR IT_STD_CONDTX-COND.
ULINE.

WRITE: / ' 4.2.12.2 Calculation Procedure in SD:', PPROC_SD, '(compared with


RVABRA) (transaction V/08)'.
READ TABLE IT_STD_CONDV WITH KEY APPL = 'V'.
SORT IT_STD_CONDV ASCENDING BY APPL STUNR.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_DUMMY AS ICON, 'Conditions not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
LOOP AT IT_STD_CONDV WHERE APPL = 'V' AND STUNR <> 0.
* FORMAT INVERSE COLOR = 5.
* WRITE: / ' ', SYM_RIGHT_HAND AS SYMBOL, 'Pricing procedure ', PPROC_SD, '.'.
READ TABLE IT_T683SV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
* WRITE: / ' ', SYM_RIGHT_HAND AS SYMBOL, 'Pricing procedure ', PPROC_SD, '
not found.'.
ELSE.
FORMAT INVERSE COLOR = 5.
* WRITE: / ' ', SYM_RIGHT_HAND AS SYMBOL, 'Pricing procedure ', PPROC_SD, '.'.
FORMAT INVERSE OFF COLOR = 0.
READ TABLE IT_T683SV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD
KSCHL = IT_STD_CONDV-COND.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition ', IT_STD_CONDV-COND, '
not found.'.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
* Version 7 changes
IF IT_STD_CONDV-COND = 'ICMI'.
READ TABLE IT_T683SV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD
KSCHL = IT_STD_CONDV-COND
KSTAT = IT_STD_CONDV-KSTAT
KOFRM = IT_STD_CONDV-KOFRM
KOFRA = '965'
KVSL1 = IT_STD_CONDV-KVSL1.
IF SY-SUBRC = 0.
FORM965 = 'OK'.
ELSE.
READ TABLE IT_T683SV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD
KSCHL = IT_STD_CONDV-COND
KSTAT = IT_STD_CONDV-KSTAT
KOFRM = IT_STD_CONDV-KOFRM
KOFRA = IT_STD_CONDV-KOFRA
KVSL1 = IT_STD_CONDV-KVSL1.
FORM965 = 'NOT'.
SY-SUBRC = 4.
ENDIF.
ELSEIF IT_STD_CONDV-COND(2) = 'BX'.
READ TABLE IT_T683SV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD
KSCHL = IT_STD_CONDV-COND
KSTAT = IT_STD_CONDV-KSTAT
KOFRM = IT_STD_CONDV-KOFRM
KOFRA = '966'
KVSL1 = IT_STD_CONDV-KVSL1.
IF SY-SUBRC = 0.
FORM966 = 'OK'.
ELSE.
READ TABLE IT_T683SV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD
KSCHL = IT_STD_CONDV-COND
KSTAT = IT_STD_CONDV-KSTAT
KOFRM = IT_STD_CONDV-KOFRM
KOFRA = IT_STD_CONDV-KOFRA
KVSL1 = IT_STD_CONDV-KVSL1.
FORM966 = 'NOT'.
SY-SUBRC = 4.
ENDIF.
ELSE.
READ TABLE IT_T683SV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD
KSCHL = IT_STD_CONDV-COND
KSTAT = IT_STD_CONDV-KSTAT
KOFRM = IT_STD_CONDV-KOFRM
KOFRA = IT_STD_CONDV-KOFRA
KVSL1 = IT_STD_CONDV-KVSL1.
ENDIF.
* Version 7 changes
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Condition type ', IT_STD_CONDV-COND,
' found and OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
IF NOT FORM965 EQ 'OK' OR NOT FORM966 EQ 'OK'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, 'Condition type ',
IT_STD_CONDV-COND, ' is correct.'.
WRITE: / ' However, the recommended settings are:'.
WRITE: / ' - Statistical flag :', IT_STD_CONDV-KSTAT.
WRITE: / ' - Cond. Formula :', IT_STD_CONDV-KOFRM.
IF IT_STD_CONDV-COND = 'ICMI'.
WRITE: / ' - Cond. Basis Form.: 965 (for partial
deliveries/billing - Note 984871)'.
ELSEIF IT_STD_CONDV-COND(2) = 'BX'.
WRITE: / ' - Cond. Basis Form.: 966 (for partial
deliveries/billing - Note 984871)'.
ELSE.
WRITE: / ' - Cond. Basis Form.:', IT_STD_CONDV-KOFRA.
ENDIF.
WRITE: / ' - Account Key :', IT_STD_CONDV-KVSL1.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T683SV.
CLEAR IT_STD_CONDV-COND.
ULINE.

* '4.2.13 Tax Types (view J_1BAJV)'


IF P_CHALL = 'X'.
WRITE: /(120) '4.2.13 Tax Types (view J_1BAJV)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_LED_YELLOW AS ICON, 'Not checked. Delivered with BC set
ZCSC_BR_CBT_TAX_TYPES.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ENDIF.

* '4.2.14.2 Define Which Taxes Are Included in MM Price Conditions'.


IF P_CHALL = 'X'.
WRITE: /(120) '4.2.14.2 Define Which Taxes Are Included in MM Price Conditions
(view J_1BKON1V)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_LED_YELLOW AS ICON, '(MANUAL TASK) Not checked.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ENDIF.

* '4.2.14.3 NF-relevant Price conditions SD (view J_1BSDKONV)'.


IF P_CHALL = 'X'.
WRITE: /(120) '4.2.14.3 NF-relevant Price conditions SD (view J_1BSDKONV)'.
WRITE: / ' Delivered with BC set ZCSC_BR_CBT_NF_SD_CND_FOR_RVABRA.'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' This checks only how condition ICMI is customized in regards its
calculation.'.
WRITE: / ' Use options 5 or 6.'.
WRITE: / ' - Option 5: Transfers the gross item amount and the gross unit price
to the NF.'.
WRITE: / ' - Option 6: Option 5 + Rounding with 6 decimals + Groups Identical
Items to determine Gross Price'.
FORMAT INVERSE OFF COLOR = 0.
READ TABLE IT_J_1BSDKON0V WITH KEY KSCHL = 'ICMI'.
IF SY-SUBRC = 0.
CASE IT_J_1BSDKON0V-SPECCON.
WHEN '5'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'ICMI NF Value set to 5 for pricing
procedure', PPROC_SD.
FORMAT INVERSE OFF COLOR = 0.
WHEN '6'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'ICMI NF Value set to 6 for pricing
procedure', PPROC_SD.
FORMAT INVERSE OFF COLOR = 0.
WHEN OTHERS.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, 'ICMI NF Value set to',
IT_J_1BSDKON0V-SPECCON,'. Please consider using 5 or 6.'.
FORMAT INVERSE OFF COLOR = 0.
ENDCASE.
ENDIF.
WRITE: /.
CLEAR IT_J_1BSDKON0V.
ENDIF.

* '4.2.14.4 Define Which Taxes Are Included in SD Price Conditions'.


IF P_CHALL = 'X'.
WRITE: /(120) '4.2.14.4 Define Which Taxes Are Included in SD Price Conditions
(view J_1BKON1V)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_LED_YELLOW AS ICON, '(MANUAL TASK) Not checked.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.

WRITE: /(120) '4.2.15 Customizing Settings MM/FI'.


WRITE: / ' 4.2.15.1 Map MM values to Nota Fiscal fields (view J_1BNFTXCONDMMV)'.
READ TABLE IT_STD_MAP_COND_NFTX WITH KEY APPL = 'TX'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_DUMMY AS ICON, 'MM Values not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
LOOP AT IT_STD_MAP_COND_NFTX WHERE APPL = 'TX'.
READ TABLE IT_J_1BNFTXCONDTX WITH KEY KVEWE = 'A'
KAPPL = 'TX'
KALSM = PPROC_MM.
IF SY-SUBRC = 0.
READ TABLE IT_J_1BNFTXCONDTX WITH KEY KVEWE = 'A'
KAPPL = 'TX'
KALSM = PPROC_MM
TAXTYP = IT_STD_MAP_COND_NFTX-TTYP

BASE = IT_STD_MAP_COND_NFTX-BASE
BASERED1 = IT_STD_MAP_COND_NFTX-
BASERED1
BASERED1_MAP = IT_STD_MAP_COND_NFTX-
BASERED1_MAP
BASERED2 = IT_STD_MAP_COND_NFTX-
BASERED2
BASERED2_MAP = IT_STD_MAP_COND_NFTX-
BASERED2_MAP
BASE_MAP = IT_STD_MAP_COND_NFTX-
BASE_MAP
EXCBAS = IT_STD_MAP_COND_NFTX-
EXCBAS
EXCBAS_MAP = IT_STD_MAP_COND_NFTX-
EXCBAS_MAP
OTHBAS = IT_STD_MAP_COND_NFTX-
OTHBAS
OTHBAS_MAP = IT_STD_MAP_COND_NFTX-
OTHBAS_MAP
* These fields are commented because if the system does not have Pauta changes
implemented, the fields
* are not available. Therefore, it is not possible to activate the program.
* If PAUTA is implemented, the fields can be used.
* QBASE = IT_STD_MAP_COND_NFTX-
QBASE
* QBASE_MAP = IT_STD_MAP_COND_NFTX-
QBASE_MAP
* QRATE = IT_STD_MAP_COND_NFTX-
QRATE
* QRATE4DEC = IT_STD_MAP_COND_NFTX-
QRATE4DEC
* QRATE4DEC_MAP = IT_STD_MAP_COND_NFTX-
QRATE4DEC_MAP
* QRATE_MAP = IT_STD_MAP_COND_NFTX-
QRATE_MAP
RATE = IT_STD_MAP_COND_NFTX-RATE
* RATE4DEC = IT_STD_MAP_COND_NFTX-
RATE4DEC
* RATE4DEC_MAP = IT_STD_MAP_COND_NFTX-
RATE4DEC_MAP
RATE_MAP = IT_STD_MAP_COND_NFTX-
RATE_MAP
* SRATE = IT_STD_MAP_COND_NFTX-
SRATE
* SRATE_MAP = IT_STD_MAP_COND_NFTX-
SRATE_MAP
VALUE = IT_STD_MAP_COND_NFTX-
VALUE
VALUE_MAP = IT_STD_MAP_COND_NFTX-
VALUE_MAP
WHTCOLLCODE = IT_STD_MAP_COND_NFTX-
WHTCOLLCODE
WHTCOLLCODE_MAP = IT_STD_MAP_COND_NFTX-
WHTCOLLCODE_MAP.
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Tax type ', IT_STD_MAP_COND_NFTX-TTYP, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Tax type ', IT_STD_MAP_COND_NFTX-
TTYP, ' not correctly mapped.'.
WRITE: / ' Recommended is:'.
WRITE: / ' - Tax Rate Cond. :', IT_STD_MAP_COND_NFTX-RATE, '
Mapping', IT_STD_MAP_COND_NFTX-RATE_MAP.
WRITE: / ' - Pauta Rate Cond. :', IT_STD_MAP_COND_NFTX-QRATE, '
Mapping', IT_STD_MAP_COND_NFTX-QRATE_MAP.
WRITE: / ' - Tax Amount Cond. :', IT_STD_MAP_COND_NFTX-VALUE, '
Mapping', IT_STD_MAP_COND_NFTX-VALUE_MAP.
WRITE: / ' - Tax Base Cond. :', IT_STD_MAP_COND_NFTX-BASE, '
Mapping', IT_STD_MAP_COND_NFTX-BASE_MAP.
WRITE: / ' - Ex. Base Cond. :', IT_STD_MAP_COND_NFTX-EXCBAS, '
Mapping', IT_STD_MAP_COND_NFTX-EXCBAS_MAP.
WRITE: / ' - Other Base Cond. :', IT_STD_MAP_COND_NFTX-OTHBAS, '
Mapping', IT_STD_MAP_COND_NFTX-OTHBAS_MAP.
WRITE: / ' - WHT Collection Code:', IT_STD_MAP_COND_NFTX-WHTCOLLCODE, '
Mapping', IT_STD_MAP_COND_NFTX-WHTCOLLCODE_MAP.
WRITE: / ' - Base Red. :', IT_STD_MAP_COND_NFTX-BASERED1, '
Mapping', IT_STD_MAP_COND_NFTX-BASERED1_MAP.
WRITE: / ' - St. Base Red. :', IT_STD_MAP_COND_NFTX-BASERED2, '
Mapping', IT_STD_MAP_COND_NFTX-BASERED2_MAP.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Tax type ', IT_STD_MAP_COND_NFTX-
TTYP, ' is missing.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_STD_MAP_COND_NFTX.
CLEAR IT_J_1BNFTXCONDTX.

*'4.2.15.2 Map MM Tax Laws to Nota Fiscal fields


IF P_CHALL = 'X'.
WRITE: / ' 4.2.15.2 Map MM Tax Laws to Nota Fiscal fields (view
J_1BNFLWCONDMMV)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, 'Not checked. Delivered with BC-Set
ZCSC_BR_CBT_MAP_MM_LWS_TO_NF_FDS'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ENDIF.

*'4.2.15.3 Create MM tax codes (view J_1BTAXCODEV)'.


IF P_CHALL = 'X'.
WRITE: / ' 4.2.15.3 Create MM tax codes (view J_1BTAXCODEV)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, '(MANUAL TASK) Tax codes should be
created according to your needs.'.
WRITE: / ' In the section 5.2 in the PDF you find hints on how to configure
tax codes for Brazil.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ENDIF.

*'4.2.15.4 Assign tax accounts


IF P_CHALL = 'X'.
WRITE: / ' 4.2.15.4 Assign tax accounts (transaction OB40)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, 'No standard values are delivered for
this customizing table, since G/L account numbers'.
WRITE: / ' depend on the Used chart of accounts.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.

*'4.2.16 Customizing Settings SD


WRITE: /(120) '4.2.16 Customizing Settings SD'.
IF IT_TSTL[] IS INITIAL.
WRITE: / ' 4.2.16.1 Tax Determination Rules (transaction OVK1)'.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Tax Determination rule not correctly
maintained'.
WRITE: / ' Make sure you maintain the following entry:'.
WRITE: / ' Tax Country BR'.
WRITE: / ' Country Name Brazil'.
WRITE: / ' Tax Sequence 1'.
WRITE: / ' Tax Category IBRX'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
WRITE: / ' 4.2.16.1 Tax Determination Rules (transaction OVK1)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'OK'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
CLEAR IT_TSTL.

WRITE: / ' 4.2.16.2 Map SD tax values to Nota Fiscal fields (view J_1BNFTXCONDV)'.
READ TABLE IT_STD_MAP_COND_NFV WITH KEY APPL = 'V'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_DUMMY AS ICON, 'SD Values not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
LOOP AT IT_STD_MAP_COND_NFV WHERE APPL = 'V'.
READ TABLE IT_J_1BNFTXCONDV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD.
IF SY-SUBRC = 0.
READ TABLE IT_J_1BNFTXCONDV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD
TAXTYP = IT_STD_MAP_COND_NFV-TTYP

BASE = IT_STD_MAP_COND_NFV-BASE
BASERED1 = IT_STD_MAP_COND_NFV-
BASERED1
BASERED1_MAP = IT_STD_MAP_COND_NFV-
BASERED1_MAP
BASERED2 = IT_STD_MAP_COND_NFV-
BASERED2
BASERED2_MAP = IT_STD_MAP_COND_NFV-
BASERED2_MAP
BASE_MAP = IT_STD_MAP_COND_NFV-
BASE_MAP
EXCBAS = IT_STD_MAP_COND_NFV-
EXCBAS
EXCBAS_MAP = IT_STD_MAP_COND_NFV-
EXCBAS_MAP
OTHBAS = IT_STD_MAP_COND_NFV-
OTHBAS
OTHBAS_MAP = IT_STD_MAP_COND_NFV-
OTHBAS_MAP
RATE = IT_STD_MAP_COND_NFV-RATE
RATE_MAP = IT_STD_MAP_COND_NFV-
RATE_MAP
VALUE = IT_STD_MAP_COND_NFV-VALUE
VALUE_MAP = IT_STD_MAP_COND_NFV-
VALUE_MAP
WHTCOLLCODE = IT_STD_MAP_COND_NFV-
WHTCOLLCODE
WHTCOLLCODE_MAP = IT_STD_MAP_COND_NFV-
WHTCOLLCODE_MAP.

* These fields are commented because if the system does not have Pauta changes
implemented, the fields
* are not available. Therefore, it is not possible to activate the program.
* If PAUTA is implemented, the fields can be used.
* QBASE = IT_STD_MAP_COND_NFV-
QBASE
* QBASE_MAP = IT_STD_MAP_COND_NFV-
QBASE_MAP
* QRATE = IT_STD_MAP_COND_NFV-
QRATE
* QRATE4DEC = IT_STD_MAP_COND_NFV-
QRATE4DEC
* QRATE4DEC_MAP = IT_STD_MAP_COND_NFV-
QRATE4DEC_MAP
* QRATE_MAP = IT_STD_MAP_COND_NFV-
QRATE_MAP
* RATE4DEC = IT_STD_MAP_COND_NFV-
RATE4DEC
* RATE4DEC_MAP = IT_STD_MAP_COND_NFV-
RATE4DEC_MAP
* SRATE = IT_STD_MAP_COND_NFV-
SRATE
* SRATE_MAP = IT_STD_MAP_COND_NFV-
SRATE_MAP
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Tax type ', IT_STD_MAP_COND_NFV-TTYP, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Tax type ', IT_STD_MAP_COND_NFV-
TTYP, ' not correctly mapped.'.
WRITE: / ' Recommended is:'.
WRITE: / ' - Tax Rate Cond. :', IT_STD_MAP_COND_NFV-RATE, '
Mapping', IT_STD_MAP_COND_NFV-RATE_MAP.
WRITE: / ' - Pauta Rate Cond. :', IT_STD_MAP_COND_NFV-QRATE, '
Mapping', IT_STD_MAP_COND_NFV-QRATE_MAP.
WRITE: / ' - Tax Amount Cond. :', IT_STD_MAP_COND_NFV-VALUE, '
Mapping', IT_STD_MAP_COND_NFV-VALUE_MAP.
WRITE: / ' - Tax Base Cond. :', IT_STD_MAP_COND_NFV-BASE, '
Mapping', IT_STD_MAP_COND_NFV-BASE_MAP.
WRITE: / ' - Ex. Base Cond. :', IT_STD_MAP_COND_NFV-EXCBAS, '
Mapping', IT_STD_MAP_COND_NFV-EXCBAS_MAP.
WRITE: / ' - Other Base Cond. :', IT_STD_MAP_COND_NFV-OTHBAS, '
Mapping', IT_STD_MAP_COND_NFV-OTHBAS_MAP.
WRITE: / ' - WHT Collection Code:', IT_STD_MAP_COND_NFV-WHTCOLLCODE, '
Mapping', IT_STD_MAP_COND_NFV-WHTCOLLCODE_MAP.
WRITE: / ' - Base Red. :', IT_STD_MAP_COND_NFV-BASERED1, '
Mapping', IT_STD_MAP_COND_NFV-BASERED1_MAP.
WRITE: / ' - St. Base Red. :', IT_STD_MAP_COND_NFV-BASERED2, '
Mapping', IT_STD_MAP_COND_NFV-BASERED2_MAP.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Tax type ', IT_STD_MAP_COND_NFV-TTYP,
' is missing.'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_STD_MAP_COND_NFV.
CLEAR IT_J_1BNFTXCONDV.

*'4.2.16.3 Create SD tax codes (view J_1BTAXCODEV)'.


IF P_CHALL = 'X'.
WRITE: / ' 4.2.16.3 Create SD tax codes (view J_1BTAXCODEV)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, '(MANUAL TASK) Tax codes should be
created according to your needs.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ENDIF.

*'4.2.16.4 Define Sequence for Tax Code Determination in SD'.


IF P_CHALL = 'X'.
WRITE: / ' 4.2.16.4 Define Sequence for Tax Code Determination in SD (view
J_1BTXCODESEQ)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' Make sure you have the entries:'.
WRITE: / ' Sequence in Tax Code Determination Source for Tax Code
Determination'.
WRITE: / ' 1 Item Category Table'.
WRITE: / ' 2 Customer Material
Information'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ENDIF.

*'4.2.16.5 Define Sequence for Tax Law Determination in SD'.


IF P_CHALL = 'X'.
WRITE: / ' 4.2.16.5 Define Sequence for Tax Law Determination in SD (view
J_1BTXLAWSEQ)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' Make sure you have the entries:'.
WRITE: / ' Sequence in Tax Law Determination Source for Tax Law
Determination'.
WRITE: / ' 1 Tax Exception Tables'.
WRITE: / ' 2 Item Category Table'.
WRITE: / ' 3 Customer Master'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ENDIF.

*'4.2.16.6 Assign tax accounts for revenue determination'.


IF P_CHALL = 'X'.
WRITE: / ' 4.2.16.6 Assign tax accounts for revenue determination'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, '(MANUAL TASK) Tax Accounts should be
created according to your needs.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.

*'4.2.17 Tax Rates / 4.2.18


IF P_CHALL = 'X'.
WRITE: /(120) '4.2.17 Tax Rates'.
WRITE: /(120) '4.2.18 Other (manual) Customizing settings for ICMS, IPI,
PIS/COFINS (transaction J1BTAX)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_LED_YELLOW AS ICON, 'Not checked. Please refer to the PDF for more
details.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.

*'4.3 CBT Customizing settings for ISS


IF P_CHALL = 'X'.
WRITE: /(120) '4.3 CBT Customizing settings for ISS'.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_LED_YELLOW AS ICON, 'This section cannot be checked due to its
specific customizing.'.
WRITE: / ' If you have problems with ISS, please review your system customizing
according to the PDF instructions.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.

*'4.4 CBT Customizing settings for WHT taxes with accumulation


WRITE: /(120) '4.4 CBT Customizing settings for WHT taxes with accumulation'.
WRITE: / ICON_INFORMATION AS ICON, 'IMPORTANT NOTE:'.
WRITE: / ' The accumulation will only show in the Accounting Document IF the
minimum accumulated value for the month'.
WRITE: / ' is enough to trigger the withholding settings for the tax in
question.'.
WRITE: / ' If a specific tax does not show in the accounting document, make sure
you have entries in accumulation'.
WRITE: / ' table (table WTAD) for the affected taxes.'.
WRITE: /.
IF IT_T005Q[] IS INITIAL.
WRITE: / ' 4.4.12 Check withholding tax countries (view V_T005Q)'.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding tax country not
maintained'.
WRITE: / ' Make sure you maintain the following entry:'.
WRITE: / ' Country BR'.
WRITE: / ' WHT Country BR'.
WRITE: / ' Description Brazil'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
WRITE: / ' 4.4.12 Check withholding tax countries (view V_T005Q)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'OK'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
CLEAR IT_T005Q.

*4.4.13 Define withholding tax type for invoice posting'.


WRITE: / ' 4.4.13 Define withholding tax type for invoice posting (view
V_T059PI)'.
READ TABLE IT_T059P WITH KEY LAND1 = 'BR'
WITHT = 'IW'
WT_BASE = '5'
WT_WTRD = '00'
WT_DOPOST = 'X'
WT_ACCPT = '0'
WT_MANBAS = 'X'
WT_MANUAL = 'X'
WT_CTNBRL = 'X'
WT_MAINTB = '2'
WT_MAINTA = '2'.
IF SY-SUBRC = 4.
READ TABLE IT_T059P WITH KEY LAND1 = 'BR'
WITHT = 'IW'.
IF SY-SUBRC = 0.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding key IW is wrong.'.
WRITE: / ' Withholding key IW is wrong.'.
WRITE: / ' Make sure you maintain the following entry:'.
WRITE: / ' Base amount Modified Tax Amount'.
WRITE: / ' Rounding rule W/tax comm round'.
WRITE: / ' Post w/tax amount X'.
WRITE: / ' Accumulation type No accumulation'.
WRITE: / ' W/tax base manual X'.
WRITE: / ' Manual w/tax amount X'.
WRITE: / ' No cert numbering X'.
WRITE: / ' Base amount W/tax code level'.
WRITE: / ' Withholding tax amount W/tax code level'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding key IW is missing.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Withholding key IW is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
WRITE: /.
CLEAR IT_T059P.

WRITE: / ' 4.4.14 Define withholding tax type for payment posting'.
WRITE: / ' 4.4.14.1 Tax types without accumulation (view V_T059PP)'.
LOOP AT IT_STD_WHT WHERE ACC = 2.
READ TABLE IT_T059P WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE
WT_BASE = '5'
J_1BWHTBASE_NF = ''
WT_WTRD = '00'
WT_WTDSC = ''
WT_DOPOST = 'X'
WT_ACCPT = '0'
WT_MANBAS = 'X'
WT_MANUAL = 'X'
WT_CTNBRL = 'X'
WT_MAINTB = '2'
WT_MAINTA = '2'
WT_CEINV = '0'
WT_BCPLVL = '0'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding key', IT_STD_WHT-
WHTTYPE, 'is wrong.'.
WRITE: / ' Make sure you maintain the following entry:'.
WRITE: / ' Base amount Modified Tax Amount'.
WRITE: / ' Origin of base Base in standard FI tables'.
WRITE: / ' Rounding rule W/tax comm round'.
WRITE: / ' Cash Discount C/disc pre W/tx'.
WRITE: / ' Post w/tax amount X'.
WRITE: / ' Accumulation type No accumulation'.
WRITE: / ' W/tax base manual X'.
WRITE: / ' Manual w/tax amount X'.
WRITE: / ' No cert numbering X'.
WRITE: / ' Base amount W/tax code level'.
WRITE: / ' Withholding tax amount W/tax code level'.
WRITE: / ' Central Invoice No Central Invoice'.
WRITE: / ' Minimum Check Minimum Check at item level'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Withholding key', IT_STD_WHT-WHTTYPE,
'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T059P.
ULINE.

WRITE: / ' 4.4.14.2 Tax types with accumulation (view V_T059PP)'.


LOOP AT IT_STD_WHT WHERE ACC = 1.
READ TABLE IT_T059P WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE
WT_BASE = '5'
J_1BWHTBASE_NF = 'X'
WT_WTRD = '00'
WT_WTDSC = ''
WT_DOPOST = 'X'
WT_ACCPT = '3'
WT_ACCALL = 'X'
WT_MANBAS = 'X'
WT_MANUAL = 'X'
WT_WTINV = 'X'
WT_CTNBRL = 'X'
WT_MAINTB = '1'
WT_MAINTA = '2'
WT_CEINV = '0'
WT_BCPLVL = '0'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding key', IT_STD_WHT-
WHTTYPE, 'is wrong.'.
WRITE: / ' Make sure you maintain the following entry:'.
WRITE: / ' Base amount Modified Tax Amount'.
WRITE: / ' Origin of base Base Stored in Nota Fiscal'.
WRITE: / ' Rounding rule W/tax comm round'.
WRITE: / ' Cash Discount C/disc pre W/tx'.
WRITE: / ' Post w/tax amount X'.
WRITE: / ' Accumulation type Per Month'.
WRITE: / ' Combined accum. X'.
WRITE: / ' W/tax base manual X'.
WRITE: / ' Manual w/tax amount X'.
WRITE: / ' W/tax for pmnts X'.
WRITE: / ' No cert numbering X'.
WRITE: / ' Base amount Type Level'.
WRITE: / ' Withholding tax amount W/tax code level'.
WRITE: / ' Central Invoice No Central Invoice'.
WRITE: / ' Minimum Check Minimum Check at item level'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Withholding key', IT_STD_WHT-WHTTYPE,
'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T059P.
CLEAR IT_STD_WHT.
ULINE.

WRITE: / ' 4.4.15 Define account key for modified tax amount (view V_T059KT)'.
LOOP AT IT_STD_WHT.
READ TABLE IT_T059K WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE
KTOSL = IT_STD_WHT-PROCKEY.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding key type', IT_STD_WHT-
WHTTYPE, 'is wrong.'.
WRITE: / ' Assign it to Processing Key', IT_STD_WHT-PROCKEY.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Withholding key type', IT_STD_WHT-WHTTYPE,
'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T059K.
CLEAR IT_STD_WHT.
ULINE.

WRITE: / ' 4.4.16 Assign condition type to withholding tax type (view V_T059PK)'.
LOOP AT IT_STD_WHT WHERE ACC = 0.
READ TABLE IT_T059P WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE
KSCHL = IT_STD_WHT-KSCHL.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding key type', IT_STD_WHT-
WHTTYPE, 'is wrong.'.
WRITE: / ' Assign it to Condition Type', IT_STD_WHT-KSCHL.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Withholding key type', IT_STD_WHT-WHTTYPE,
'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T059P.
CLEAR IT_STD_WHT.
ULINE.

WRITE: / ' 4.4.17 Maintain Tax Relevant Classification (view V_1ATXREL)'.


LOOP AT IT_STD_WHT WHERE ACC = 0.
READ TABLE IT_J_1ATXREL WITH KEY J_1ATXREL = IT_STD_WHT-WHTTYPE.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Tax Relevant Class.', IT_STD_WHT-
WHTTYPE, 'is missing. Create it according to the PDF.'.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Tax Relevant Class.', IT_STD_WHT-WHTTYPE,
'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_J_1ATXREL.
CLEAR IT_STD_WHT.
ULINE.

WRITE: / ' 4.4.18 Maintain Withholding Tax SD Conditions (transaction VK11)'.


LOOP AT IT_STD_WHT WHERE ACC = 0.
READ TABLE IT_A397 WITH KEY KAPPL = 'V'
KSCHL = IT_STD_WHT-KSCHL
ALAND = 'BR'
J_1ATXREL = IT_STD_WHT-WHTTYPE.
IF SY-SUBRC = 4.
READ TABLE IT_A397 WITH KEY KAPPL = 'V'
KSCHL = IT_STD_WHT-KSCHL
ALAND = 'BR'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition', IT_STD_WHT-KSCHL, 'is
missing.'.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition', IT_STD_WHT-KSCHL, 'is
wrong.'.
ENDIF.
WRITE: / ' Create an entry:'.
WRITE: / ' Condition :', IT_STD_WHT-KSCHL.
WRITE: / ' Tax Rel. Class.:', IT_STD_WHT-WHTTYPE.
WRITE: / ' W/Tax code :', IT_STD_WHT-WHTTYPE.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Condition', IT_STD_WHT-KSCHL, 'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_A397.
CLEAR IT_STD_WHT.
ULINE.

WRITE: / ' 4.4.19 Define withholding tax codes (view V_T059Z)'.


LOOP AT IT_STD_WHT WHERE ACC = 0.
READ TABLE IT_T059Z WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE
WT_POSIN = 1
QSATZ = 100
QPROZ = 100.
IF SY-SUBRC = 4.
READ TABLE IT_T059Z WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding tax type', IT_STD_WHT-
WHTTYPE, 'is missing.'.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding tax type', IT_STD_WHT-
WHTTYPE, 'is wrong.'.
ENDIF.
WRITE: / ' Create an entry:'.
WRITE: / ' Withholding tax type :', IT_STD_WHT-WHTTYPE.
WRITE: / ' Wht Tax Code :', IT_STD_WHT-WHTTYPE.
WRITE: / ' Percent. subjt. to tax: 100,00%'.
WRITE: / ' Posting indicator : 1 (Standard posting)'.
WRITE: / ' With/tax rate : 100,00%'.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, ' Withholding tax type', IT_STD_WHT-
WHTTYPE, 'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T059Z.
CLEAR IT_STD_WHT.
ULINE.

WRITE: / ' 4.4.20 Define minimum base amount for withholding tax types (view
V_T059M_T)'.
LOOP AT IT_STD_WHT WHERE ACC = 1.
READ TABLE IT_T059MINMAX WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE
WAERS = 'BRL'
WT_WTMINB = 5000.
IF SY-SUBRC = 4.
READ TABLE IT_T059MINMAX WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding tax type', IT_STD_WHT-
WHTTYPE, 'is missing.'.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding tax type', IT_STD_WHT-
WHTTYPE, 'is wrong.'.
ENDIF.
WRITE: / ' Create an entry:'.
WRITE: / ' Wht tax type :', IT_STD_WHT-WHTTYPE.
WRITE: / ' Currency : BRL'.
WRITE: / ' Min. Base Amount: 5.000,00'.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Withholding tax type', IT_STD_WHT-WHTTYPE,
'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T059MINMAX.
CLEAR IT_STD_WHT.
ULINE.

*'4.4.21 Define official collection codes'.


IF P_CHALL = 'X'.
WRITE: / ' 4.4.21 Define official collection codes'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, '(MANUAL TASK) Should be created
according to your needs.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.

*'4.4.22 Maintain Wht tax rates and assign official collection codes'.
IF P_CHALL = 'X'.
WRITE: / ' 4.4.22 Maintain Wht tax rates and assign official collection codes'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, '(MANUAL TASK) Should be created
according to your needs.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.

*'4.4.23 Assign withholding tax types to company code'.


IF P_CHALL = 'X'.
WRITE: / ' 4.4.23 Assign withholding tax types to company code'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, '(MANUAL TASK) Should be assigned
according to your needs.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.
*'4.4.24 Activate extended withholding tax'.
IF P_CHALL = 'X'.
WRITE: / ' 4.4.24 Activate extended withholding tax'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, '(MANUAL TASK) Should be activated
according to your needs. Please refer to the PDF.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ENDIF.

call function 'SAPGUI_PROGRESS_INDICATOR'


exporting
percentage = 99
text = 'Done!'.
wait up to 1 seconds.

END-OF-SELECTION.

************************************************************************
* AT LINE-SELECTION
************************************************************************
AT LINE-SELECTION.

DATA: OPERATION_TYPE TYPE STRING,


VIEW-TAB TYPE C LENGTH 30,
TRX TYPE TSTC-TCODE,
TAB TYPE C LENGTH 30,
INIPOS TYPE I,
ENDPOS TYPE I.

INIPOS = 0.
SEARCH SY-LISEL FOR 'view'.
INIPOS = SY-FDPOS + 5.
OPERATION_TYPE = SY-LISEL+SY-FDPOS(4).
VIEW-TAB = SY-LISEL+INIPOS.
REPLACE ALL OCCURRENCES OF SUBSTRING ')' IN VIEW-TAB WITH ''.

IF OPERATION_TYPE <> 'view'.


INIPOS = 0.
SEARCH SY-LISEL FOR 'table'.
INIPOS = SY-FDPOS + 6.
OPERATION_TYPE = SY-LISEL+SY-FDPOS(5).
TAB = SY-LISEL+INIPOS.
REPLACE ALL OCCURRENCES OF SUBSTRING ')' IN TAB WITH ''.
ENDIF.

IF OPERATION_TYPE <> 'view' AND OPERATION_TYPE <> 'table'.


INIPOS = 0.
SEARCH SY-LISEL FOR 'transaction'.
INIPOS = SY-FDPOS + 12.
OPERATION_TYPE = SY-LISEL+SY-FDPOS(11).
TRX = SY-LISEL+INIPOS.
REPLACE ALL OCCURRENCES OF SUBSTRING ')' IN TRX WITH ''.
ENDIF.

CASE OPERATION_TYPE.
WHEN 'view'.
CALL FUNCTION 'VIEW_AUTHORITY_CHECK'
EXPORTING
view_action = 'S'
view_name = VIEW-TAB
* check_action_alternative = 'X'
EXCEPTIONS
invalid_action = 1
no_authority = 2
no_clientindependent_authority = 3
table_not_found = 4
no_linedependent_authority = 5
OTHERS = 6.

IF SY-SUBRC = 0.
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = 'S'
view_name = VIEW-TAB
EXCEPTIONS
client_reference = 1
foreign_lock = 2
invalid_action = 3
no_clientindependent_auth = 4
no_database_function = 5
no_editor_function = 6
no_show_auth = 7
no_tvdir_entry = 8
no_upd_auth = 9
only_show_allowed = 10
system_failure = 11
unknown_field_in_dba_sellist = 12
view_not_found = 13
maintenance_prohibited = 14
OTHERS = 15.
ENDIF.

WHEN 'table'.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = 'SE16'
EXCEPTIONS
ok = 1
not_ok = 2
OTHERS = 3.

IF SY-SUBRC > 1.
* No authorization for transaction &1
MESSAGE i063(vo) WITH 'SE16'.
ELSE.
SET PARAMETER ID 'DTB' FIELD TAB.
CALL TRANSACTION 'SE16' AND SKIP FIRST SCREEN.
ENDIF.

WHEN 'transaction'.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = TRX
EXCEPTIONS
ok = 1
not_ok = 2
OTHERS = 3.

IF SY-SUBRC > 1.
* No authorization for transaction &1
MESSAGE i063(vo) WITH TRX.
ELSE.
CALL TRANSACTION TRX.
ENDIF.
ENDCASE. "END OF AT LINE-SELECTION

FORM DATABASE_READ.

*& -----------------------------------------------------------------------*
*& FORM DATABASE_READ
*& -----------------------------------------------------------------------*
*& Reads the relevant tables, according to the PDF interpretation
*& -----------------------------------------------------------------------*

* ---- 4.1.3.1 - Page 12


SELECT * FROM TTXD INTO TABLE IT_TTXD1 WHERE
KALSM = 'TAXBRA' AND
LENG1 = '03' AND
LENG2 = '07' AND
LENG3 = 0 AND
LENG4 = 0 AND
XTXIT = 'X'.
* ---- 4.1.3.2 - Page 13
SELECT * FROM TTXD INTO TABLE IT_TTXD2 WHERE
KALSM = 'TAXBRA' AND
XEXTN = 'C' AND
INTVERSION = '' AND
RFCDEST = '' AND
RFCDEST_UD = ''.
* ---- 4.1.3.3 - Page 13
SELECT * FROM TTXC INTO TABLE IT_TTXC WHERE
EVENT = 'JUR' AND
FUNCNAME = 'J_1BTAXJUR_DETERMINE_NEW' AND
RFCDEST = ''.
* ---- 4.1.4.1 - Page 14
SELECT * FROM J_1BTXJUR INTO TABLE IT_J_1BTXJUR UP TO 1 ROWS WHERE
COUNTRY = 'BR'.
* ---- 4.1.4.2 - Page 14
SELECT * FROM J_1BTREG_CITY INTO TABLE IT_J_1BTREG_CITY UP TO 1 ROWS WHERE
COUNTRY = 'BR'.
* ---- 4.2.1 - Page 15
SELECT * FROM J_1BCONDTAXACT INTO TABLE IT_J_1BCONDTAXACT WHERE
LAND1 = 'BR' AND
ACTIVE = 'X'.
* ---- 4.2.2 - Page 15
SELECT * FROM J_1BCBTAXPROC INTO TABLE IT_J_1BCBTAXPROCTX WHERE
KVEWE = 'A' AND
KAPPL = 'TX' AND
KALSM = 'TAXBRA' and
CBT_ACT = 'X'.
SELECT * FROM J_1BCBTAXPROC INTO TABLE IT_J_1BCBTAXPROCV WHERE
KVEWE = 'A' AND
KAPPL = 'V' AND
KALSM = 'RVABRA' and
CBT_ACT = 'X'.
* ---- 4.2.3 - Page 15
SELECT * FROM T005 INTO TABLE IT_T005 WHERE
LAND1 = 'BR' AND
KALSM = 'TAXBRA'.
* ---- 4.2.4.1 - Page 16
SELECT * FROM T682 INTO TABLE IT_T682TX WHERE
KVEWE = 'A' AND
KAPPL = 'TX'.
* ---- 4.2.4.2 - Page 16
SELECT * FROM T682 INTO TABLE IT_T682V WHERE
KVEWE = 'A' AND
KAPPL = 'V'.
* ---- 4.2.5.1 - Page 16/17
SELECT * FROM T685 INTO TABLE IT_T685TX WHERE
KVEWE = 'A' AND
KAPPL = 'TX'.
* ---- 4.2.5.2 - Page 17
SELECT * FROM T685 INTO TABLE IT_T685V WHERE
KVEWE = 'A' AND
KAPPL = 'V'.
SELECT * FROM T685A INTO TABLE IT_T685ATX WHERE
KAPPL = 'TX'.
SELECT * FROM T685A INTO TABLE IT_T685AV WHERE
KAPPL = 'V'.
SELECT * FROM T687 INTO TABLE IT_T687TX WHERE
KAPPL = 'TX'.
SELECT * FROM T687 INTO TABLE IT_T687V WHERE
KAPPL = 'V'.
SELECT * FROM T007B INTO TABLE IT_T007B.

* ---- 4.2.7 - Page 20


SELECT * FROM J_1BTXCOND INTO TABLE IT_J_1BTXCOND.

* ---- 4.2.9 - Page 20


SELECT * FROM J_1BTAXGRPCD INTO TABLE IT_J_1BTAXGRPCD.
SELECT * FROM J_1BCONDMAP INTO TABLE IT_J_1BCONDMAP.

* ---- 4.2.11 - Page 22


SELECT * FROM J_1BVIEWMAP INTO TABLE IT_J_1BVIEWMAP.

* ---- 4.2.14.3 - Page 27


SELECT * FROM J_1BSDKON0 INTO TABLE IT_J_1BSDKON0V WHERE
KVEWE = 'A' AND
KAPPL = 'V' AND
KALSM = PPROC_SD.

* ---- 4.2.5.2 - Page 15


SELECT * FROM T683S INTO TABLE IT_T683STX WHERE
KVEWE = 'A' AND
KAPPL = 'TX' AND
KALSM = PPROC_MM.
* ---- 4.2.5.2 - Page 15
SELECT * FROM T683S INTO TABLE IT_T683SV WHERE
KVEWE = 'A' AND
KAPPL = 'V' AND
KALSM = PPROC_SD.

* ---- 4.2.5.2 - Page 15


SELECT * FROM J_1BNFTXCOND INTO TABLE IT_J_1BNFTXCONDTX WHERE
KVEWE = 'A' AND
KAPPL = 'TX' AND
KALSM = PPROC_MM.
* ---- 4.2.5.2 - Page 15
SELECT * FROM J_1BNFTXCOND INTO TABLE IT_J_1BNFTXCONDV WHERE
KVEWE = 'A' AND
KAPPL = 'V' AND
KALSM = PPROC_SD.

SELECT * FROM TSTL INTO TABLE IT_TSTL WHERE


TALND = 'BR' AND
LFDNR = 1 AND
TATYP = 'IBRX'.

* ---- 4.4.12 - Page 45


SELECT * FROM T005Q INTO TABLE IT_T005Q WHERE
LAND1 = 'BR' AND
QLAND = 'BR'.

* ---- 4.4.13 / 4.4.14 - Page 46


SELECT * FROM T059P INTO TABLE IT_T059P WHERE
LAND1 = 'BR'.
* WITHT = 'IW' AND
* WT_BASE = '5' AND
* WT_WTRD = '00' AND
* WT_DOPOST = 'X' AND
* WT_ACCPT = '0' AND
* WT_MANBAS = 'X' AND
* WT_MANUAL = 'X' AND
* WT_CTNBRL = 'X' AND
* WT_MAINTB = '2' AND
* WT_MAINTA = '2'.

* ---- 4.4.15 - Page 48


SELECT * FROM T059K INTO TABLE IT_T059K WHERE
LAND1 = 'BR'.

* ---- 4.4.16 - Page 48


* T059P IS USED TO GET THE CONDITION TYPE

* ---- 4.4.17 - Page 48


SELECT * FROM J_1ATXREL INTO TABLE IT_J_1ATXREL.

* ---- 4.4.18 - Page 48


* J1AG -> A397 in standard
SELECT * FROM A397 INTO TABLE IT_A397 WHERE
KAPPL = 'V' AND
ALAND = 'BR'.

* ---- 4.4.19 - Page 48


SELECT * FROM T059Z INTO TABLE IT_T059Z WHERE
LAND1 = 'BR'.
* WT_POSIN
* QSATZ
* QPROZ
* ---- 4.4.19 - Page 48
SELECT * FROM T059MINMAX INTO TABLE IT_T059MINMAX WHERE
LAND1 = 'BR'.
* WITHT
* WAERS
* WT WTMINB

*4.4.21 -> According to your needs


*4.4.22 -> According to your needs
*4.4.23 Assign withholding tax types to company code (ask for company code?)
* manual task
* 4.4.24 Activate extended withholding tax (company code needed)

ENDFORM.

FORM BUILD_INTERNAL_TABLES.

*& -----------------------------------------------------------------------*
*& FORM BUILD_INTERNAL_TABLES
*& -----------------------------------------------------------------------*
*& Tables with the standard customizing for:
*& - Access Sequences (MM / SD) (IT_STD_ACS_SEQ)
*& - Internal code x Tax groups (IT_STD_TAXG_ICODE)
*& - Condition Tables x Tax Rate tables (MM / SD) (IT_STD_MAP_TO_COND)
*& - Standard Withholding Types (IT_STD_WHT)
*& - Standard step number for conditions without it in the BC-Sets
*& SD - IT_STD_COND_STUNRV
*& MM - IT_STD_COND_STUNRTX
*& -----------------------------------------------------------------------*

* ---- 5.1.1 Access sequences for application TX (MM/FI) Page 54


IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRB1'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRCC'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRCI'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRCO'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRIB'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRIC'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRID'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRII'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRIP'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRIS'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRLC'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRLO'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRLP'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRLS'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRPI'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRS1'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRS2'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRST'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRTF'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'BRWT'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'TX'.
IT_STD_ACS_SEQ-ACCS = 'MWST'.
APPEND IT_STD_ACS_SEQ.

* ---- 5.1.2 Access sequences for application V (SD) Page 54-55


IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'BRCC'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'BRCO'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'BRPI'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'BRWT'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'DIBR'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'DICM'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'DIPI'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'DISI'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'IBRR'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'IBRX'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ICBS'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ICCB'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ICLW'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ICVA'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ICXC'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'IDZF'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'IPBS'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'IPLW'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'IPOB'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'IPVA'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'IPXC'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ISS1'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ISS2'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ISTC'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ISTI'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ISTV'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'ISVA'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'IZOF'.
APPEND IT_STD_ACS_SEQ.
IT_STD_ACS_SEQ-APPL = 'V'.
IT_STD_ACS_SEQ-ACCS = 'J1AG'.
APPEND IT_STD_ACS_SEQ.

* ---- 4.2.9 Assign internal code to tax group


IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'COFI'.
IT_STD_TAXG_ICODE-CODE = 'TXSDCCOFINS'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'ICFR'.
IT_STD_TAXG_ICODE-CODE = 'TXSDCICMSFREIGHT'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'ICFS'.
IT_STD_TAXG_ICODE-CODE = 'TXSDCSUBTRIBFREIGHT'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'ICMS'.
IT_STD_TAXG_ICODE-CODE = 'TXSDCICMS'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'ICST'.
IT_STD_TAXG_ICODE-CODE = 'TXSDCSUBTRIB'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'IPI'.
IT_STD_TAXG_ICODE-CODE = 'TXSDCIPI'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'ISS'.
IT_STD_TAXG_ICODE-CODE = 'TXSDCISS'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'ISSP'.
IT_STD_TAXG_ICODE-CODE = 'TXSDCISS'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'ISSS'.
IT_STD_TAXG_ICODE-CODE = 'TXSDCISS'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'PIS'.
IT_STD_TAXG_ICODE-CODE = 'TXSDCPIS'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'WACO'.
IT_STD_TAXG_ICODE-CODE = 'WHT_ACTIVE_COFINS_ACC'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'WACS'.
IT_STD_TAXG_ICODE-CODE = 'WHT_ACTIVE_CSLL_ACC'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'WAIR'.
IT_STD_TAXG_ICODE-CODE = 'WHT_ACTIVE_IR_ACC'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'WAPI'.
IT_STD_TAXG_ICODE-CODE = 'WHT_ACTIVE_PIS_ACC'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'WAT'.
IT_STD_TAXG_ICODE-CODE = 'WHT_ACTIVE_GEN_ACC'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'WHCO'.
IT_STD_TAXG_ICODE-CODE = 'WHT_ACTIVE_COFINS'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'WHCS'.
IT_STD_TAXG_ICODE-CODE = 'WHT_ACTIVE_CSLL'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'WHIR'.
IT_STD_TAXG_ICODE-CODE = 'WHT_ACTIVE_IR'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'WHPI'.
IT_STD_TAXG_ICODE-CODE = 'WHT_ACTIVE_PIS'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 1.
IT_STD_TAXG_ICODE-TAXGRP = 'WHT'.
IT_STD_TAXG_ICODE-CODE = 'WHT_ACTIVE_GEN'.
APPEND IT_STD_TAXG_ICODE.

IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = 'COFI'.
IT_STD_TAXG_ICODE-CODE = 'COFINSMINPRICE'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = 'COFI'.
IT_STD_TAXG_ICODE-CODE = 'COFINSWTRATE'.
APPEND IT_STD_TAXG_ICODE.

IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = 'ICMS'.
IT_STD_TAXG_ICODE-CODE = 'ICMSBASE_INTRA'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = 'ICMS'.
IT_STD_TAXG_ICODE-CODE = 'ICMSSPECFUNDBASE'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = 'ICMS'.
IT_STD_TAXG_ICODE-CODE = 'ICMSSPECFUNDRATE'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = ''.
IT_STD_TAXG_ICODE-CODE = 'ICMSNONCONTRIBUTOR'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = ''.
IT_STD_TAXG_ICODE-CODE = 'ICMSPARTILHAEXEMPT'.
APPEND IT_STD_TAXG_ICODE.

* ---- 4.2.11 Assign condition tables to tax rate tables


IT_STD_MAP_TO_COND-TABNAME = 'J_1BTAXCODEV'.
IT_STD_MAP_TO_COND-KOTABNR = '3'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTREGX'.
IT_STD_MAP_TO_COND-KOTABNR = '394'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXCI1'.
IT_STD_MAP_TO_COND-KOTABNR = '349'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXDEF'.
IT_STD_MAP_TO_COND-KOTABNR = '392'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXIC1'.
IT_STD_MAP_TO_COND-KOTABNR = '382'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXIC2'.
IT_STD_MAP_TO_COND-KOTABNR = '382'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXIP1'.
IT_STD_MAP_TO_COND-KOTABNR = '346'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXIP2'.
IT_STD_MAP_TO_COND-KOTABNR = '346'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXSDC'.
IT_STD_MAP_TO_COND-KOTABNR = '291'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXIS1'.
IT_STD_MAP_TO_COND-KOTABNR = '121'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXST1'.
IT_STD_MAP_TO_COND-KOTABNR = '348'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXST2'.
IT_STD_MAP_TO_COND-KOTABNR = '348'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXCOF'.
IT_STD_MAP_TO_COND-KOTABNR = '346'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXIC3'.
IT_STD_MAP_TO_COND-KOTABNR = '382'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXIP3'.
IT_STD_MAP_TO_COND-KOTABNR = '346'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXIS3'.
IT_STD_MAP_TO_COND-KOTABNR = '347'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXISS'.
IT_STD_MAP_TO_COND-KOTABNR = '601'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXPIS'.
IT_STD_MAP_TO_COND-KOTABNR = '346'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXST3'.
IT_STD_MAP_TO_COND-KOTABNR = '348'.
APPEND IT_STD_MAP_TO_COND.
IT_STD_MAP_TO_COND-TABNAME = 'J_1BTXWITH'.
IT_STD_MAP_TO_COND-KOTABNR = '346'.
APPEND IT_STD_MAP_TO_COND.

* ---- 4.4.15 Define account key for modified tax amount


* IT_STD_WHT-ACC = 0 >>> just condition x withholding tax type associations
* IT_STD_WHT-ACC = 1 >>> settings with accumulation
* IT_STD_WHT-ACC = 2 >>> settings without accumulation

IT_STD_WHT-WHTTYPE = 'CA'.
IT_STD_WHT-PROCKEY = 'WAC'.
IT_STD_WHT-KSCHL = 'ICW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 1.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'CA'.
IT_STD_WHT-PROCKEY = 'WC5'.
IT_STD_WHT-KSCHL = 'ICW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'CP'.
IT_STD_WHT-PROCKEY = 'WTC'.
IT_STD_WHT-KSCHL = 'WCOC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 2.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'CP'.
IT_STD_WHT-PROCKEY = 'WC3'.
IT_STD_WHT-KSCHL = 'WCOC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'GA'.
IT_STD_WHT-PROCKEY = 'WAG'.
IT_STD_WHT-KSCHL = 'IGW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 1.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'GA'.
IT_STD_WHT-PROCKEY = 'WG5'.
IT_STD_WHT-KSCHL = 'IGW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'GP'.
IT_STD_WHT-PROCKEY = 'WTG'.
IT_STD_WHT-KSCHL = 'WGEC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 2.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'GP'.
IT_STD_WHT-PROCKEY = 'WG3'.
IT_STD_WHT-KSCHL = 'WGEC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'IW'.
IT_STD_WHT-PROCKEY = 'ISW'.
IT_STD_WHT-KSCHL = 'WISC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'IW'.
IT_STD_WHT-PROCKEY = 'WK3'.
IT_STD_WHT-KSCHL = 'WISC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'PA'.
IT_STD_WHT-PROCKEY = 'WAP'.
IT_STD_WHT-KSCHL = 'IPW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 1.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'PA'.
IT_STD_WHT-PROCKEY = 'WP5'.
IT_STD_WHT-KSCHL = 'IPW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'PP'.
IT_STD_WHT-PROCKEY = 'WTP'.
IT_STD_WHT-KSCHL = 'WPIC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 2.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'PP'.
IT_STD_WHT-PROCKEY = 'WP3'.
IT_STD_WHT-KSCHL = 'WPIC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'RA'.
IT_STD_WHT-PROCKEY = 'WAI'.
IT_STD_WHT-KSCHL = 'IRW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 1.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'RA'.
IT_STD_WHT-PROCKEY = 'WI5'.
IT_STD_WHT-KSCHL = 'IRW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'RP'.
IT_STD_WHT-PROCKEY = 'WTI'.
IT_STD_WHT-KSCHL = 'WIRC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 2.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'RP'.
IT_STD_WHT-PROCKEY = 'WI3'.
IT_STD_WHT-KSCHL = 'WIRC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'SA'.
IT_STD_WHT-PROCKEY = 'WAS'.
IT_STD_WHT-KSCHL = 'ISW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 1.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'SA'.
IT_STD_WHT-PROCKEY = 'WS5'.
IT_STD_WHT-KSCHL = 'ISW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'SP'.
IT_STD_WHT-PROCKEY = 'WTS'.
IT_STD_WHT-KSCHL = 'WCSC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 2.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'SP'.
IT_STD_WHT-PROCKEY = 'WS3'.
IT_STD_WHT-KSCHL = 'WCSC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.

* ---- 5.1.6 Pricing procedure RVABRA


IT_STD_COND_STUNRV-COND = 'IPSQ'.
IT_STD_COND_STUNRV-STUNR = 946.
APPEND IT_STD_COND_STUNRV.
IT_STD_COND_STUNRV-COND = 'ICSQ'.
IT_STD_COND_STUNRV-STUNR = 956.
APPEND IT_STD_COND_STUNRV.
IT_STD_COND_STUNRV-COND = 'IIRQ'.
IT_STD_COND_STUNRV-STUNR = 961.
APPEND IT_STD_COND_STUNRV.
IT_STD_COND_STUNRV-COND = 'IGEQ'.
IT_STD_COND_STUNRV-STUNR = 941.
APPEND IT_STD_COND_STUNRV.
IT_STD_COND_STUNRV-COND = 'BXWA'.
IT_STD_COND_STUNRV-STUNR = 914.
APPEND IT_STD_COND_STUNRV.
IT_STD_COND_STUNRV-COND = 'ICW6'.
IT_STD_COND_STUNRV-STUNR = 908.
APPEND IT_STD_COND_STUNRV.
IT_STD_COND_STUNRV-COND = 'IGW6'.
IT_STD_COND_STUNRV-STUNR = 906.
APPEND IT_STD_COND_STUNRV.
IT_STD_COND_STUNRV-COND = 'IPW6'.
IT_STD_COND_STUNRV-STUNR = 907.
APPEND IT_STD_COND_STUNRV.
IT_STD_COND_STUNRV-COND = 'IRW6'.
IT_STD_COND_STUNRV-STUNR = 910.
APPEND IT_STD_COND_STUNRV.
IT_STD_COND_STUNRV-COND = 'ISW6'.
IT_STD_COND_STUNRV-STUNR = 909.
APPEND IT_STD_COND_STUNRV.
IT_STD_COND_STUNRV-COND = 'ICOQ'.
IT_STD_COND_STUNRV-STUNR = 951.
APPEND IT_STD_COND_STUNRV.

* ---- 5.1.6 Pricing procedure TAXBRA


IT_STD_COND_STUNRTX-COND = 'ICMO'.
IT_STD_COND_STUNRTX-STUNR = 720.
APPEND IT_STD_COND_STUNRTX.
IT_STD_COND_STUNRTX-COND = 'IPI0'.
IT_STD_COND_STUNRTX-STUNR = 405.
APPEND IT_STD_COND_STUNRTX.
IT_STD_COND_STUNRTX-COND = 'BX45'.
IT_STD_COND_STUNRTX-STUNR = 647.
APPEND IT_STD_COND_STUNRTX.
IT_STD_COND_STUNRTX-COND = 'BX46'.
IT_STD_COND_STUNRTX-STUNR = 648.
APPEND IT_STD_COND_STUNRTX.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form READ_BCS_FILE
*&---------------------------------------------------------------------*
* Basically translates the contents from the BC-SETs to Internal
* tables.
*----------------------------------------------------------------------*
FORM READ_BCS_FILE USING i_num TYPE i.
data: transfer_tab type scpr_transfer occurs 0 with header line.
CASE i_num.
WHEN '1'.
PATH_AND_FILENAME = P_FILE1.
WHEN '2'.
PATH_AND_FILENAME = P_FILE2.
WHEN '3'.
PATH_AND_FILENAME = P_FILE3.
WHEN '4'.
PATH_AND_FILENAME = P_FILE4.
WHEN '5'.
PATH_AND_FILENAME = P_FILE5.
WHEN '6'.
PATH_AND_FILENAME = P_FILE6.
WHEN '7'.
PATH_AND_FILENAME = P_FILE7.
WHEN '8'.
PATH_AND_FILENAME = P_FILE8.
WHEN '9'.
PATH_AND_FILENAME = P_FILE9.
WHEN '10'.
PATH_AND_FILENAME = P_FILE10.
ENDCASE.

* Daten von Datei lesen


refresh transfer_tab.
call function 'GUI_UPLOAD'
exporting
filename = path_and_filename
tables
data_tab = transfer_tab
exceptions
file_open_error = 1
file_read_error = 2
no_batch = 4
GUI_REFUSE_FILETRANSFER = 4
invalid_type = 3
NO_AUTHORITY = 6
unknown_error = 5
OTHERS = 8.

IF sy-subrc <> 0.
* CREATE AN ERROR MESSAGE HERE IF THE FILE CANNOT BE OPENED
* No need for error message
ELSE.
* Idea copied from Include LSCPRPRF01
* Datenstrom analysieren, int. Tabellen f�r BC-Set(s) f�llen und
* BC-Set(s) sichern
read table transfer_tab index 1.
file_version = transfer_tab+50(2).
if file_version = ' 1'.
perform read_transfer_tab_and_save tables transfer_tab.
ENDIF.
ENDIF.
ENDFORM.

*&---------------------------------------------------------------------*
*& Form READ_TRANSFER_TAB_AND_SAVE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> TRANSFER_TAB text
* contents of each BC-SET are transferred to the respective internal
* tables and organized.
*----------------------------------------------------------------------*
FORM read_transfer_tab_and_save
TABLES transfer_tab TYPE scpr_transfertab.

DATA: VALUES LIKE BC_VALUES OCCURS 0 WITH HEADER LINE,


proflist LIKE scproprof OCCURS 10 WITH HEADER LINE.

data lin TYPE i VALUE 0.


data save_subrc TYPE i VALUE 4.
data save_tabix TYPE i VALUE 0.
DATA SAVE_KOFRA TYPE STRING.
DATA SAVE_KOFRM TYPE STRING.

LOOP AT transfer_tab.
key = transfer_tab(50).
CASE key.
WHEN 'BCSET'. "wird aus historischen Gr�nden noch ben�tigt
proftext = transfer_tab+50(60).
WHEN 'SCPRVALS'.
CLEAR values.
* values-tablename = transfer_tab+50(90).
values-tablename = transfer_tab+50(20).
values-recnumber = transfer_tab+100(10).
values-fieldname = transfer_tab+110(50).
values-value = transfer_tab+180(255).
APPEND values.
ENDCASE.
ENDLOOP.

*SORT VALUES BY RECNUMBER.

CASE PROFTEXT.
WHEN 'ZCSC_BR_CBT_ACCOUNT_KEYS_FI TMV'.
* READ TABLE VALUES WITH KEY TABLENAME = 'T687'.
* SORT VALUES BY TABLENAME RECNUMBER.
LOOP AT VALUES.
IF VALUES-TABLENAME = 'T687'.
CASE VALUES-FIELDNAME.
WHEN 'KVSL1'.
IT_STD_ACC_KEY-KVSL1 = VALUES-VALUE.
lin = lin + 1.
ENDCASE.
ENDIF.
IF LIN = 1.
IT_STD_ACC_KEY-APPL = 'TX'.
APPEND IT_STD_ACC_KEY.
CLEAR IT_STD_ACC_KEY.
CLEAR LIN.
ENDIF.
ENDLOOP.

* READ TABLE VALUES WITH KEY TABLENAME = 'V_T007B'.


SAVE_SUBRC = 4.
SAVE_TABIX = 0.
* SORT VALUES BY TABLENAME RECNUMBER.
LOOP AT VALUES.
IF VALUES-TABLENAME = 'V_T007B'.
CASE VALUES-FIELDNAME.
WHEN 'KTOSL'.
READ TABLE IT_STD_ACC_KEY WITH KEY KVSL1 = VALUES-VALUE
APPL = 'TX'.
SAVE_SUBRC = SY-SUBRC.
SAVE_TABIX = SY-TABIX.
WHEN 'STAZF'.
IF SAVE_SUBRC = 0.
IT_STD_ACC_KEY-STAZF = VALUES-VALUE.
lin = lin + 1.
ENDIF.
WHEN 'STBKZ'.
IF SAVE_SUBRC = 0.
IT_STD_ACC_KEY-STBKZ = VALUES-VALUE.
lin = lin + 1.
ENDIF.
WHEN 'STGRP'.
IF SAVE_SUBRC = 0.
IT_STD_ACC_KEY-STGRP = VALUES-VALUE.
lin = lin + 1.
ENDIF.
WHEN 'STNSK'.
IF SAVE_SUBRC = 0.
IT_STD_ACC_KEY-STNSK = VALUES-VALUE.
lin = lin + 1.
ENDIF.
ENDCASE.
ENDIF.
IF LIN = 4.
MODIFY IT_STD_ACC_KEY INDEX SAVE_TABIX.
CLEAR IT_STD_ACC_KEY.
CLEAR LIN.
SAVE_SUBRC = 4.
SAVE_TABIX = 0.
ENDIF.
ENDLOOP.

WHEN 'ZCSC_BR_CBT_ACCOUNT_KEYS_SD TMV'.


SORT VALUES BY RECNUMBER.
LOOP AT VALUES.
CASE VALUES-FIELDNAME.
WHEN 'KVSL1'.
IT_STD_ACC_KEY-KVSL1 = VALUES-VALUE.
lin = lin + 1.
ENDCASE.
IF LIN = 1.
IT_STD_ACC_KEY-APPL = 'V'.
APPEND IT_STD_ACC_KEY.
CLEAR IT_STD_ACC_KEY.
CLEAR LIN.
ENDIF.
ENDLOOP.

WHEN 'ZCSC_BR_CBT_CONDITION_TYPES_MM TMV'.


SORT VALUES BY RECNUMBER.
LOOP AT VALUES.
CASE VALUES-FIELDNAME.
WHEN 'KSCHL'.
IT_STD_CONDTX-COND = VALUES-VALUE.
READ TABLE IT_STD_COND_STUNRTX WITH KEY COND = VALUES-VALUE.
IF SY-SUBRC = 0.
IT_STD_CONDTX-STUNR = IT_STD_COND_STUNRTX-STUNR.
ENDIF.
lin = lin + 1.
WHEN 'KOZGF'.
IT_STD_CONDTX-ACCS = VALUES-VALUE.
lin = lin + 1.
WHEN 'KOAID'.
IT_STD_CONDTX-KOAID = VALUES-VALUE.
lin = lin + 1.
WHEN 'KRECH'.
IT_STD_CONDTX-KRECH = VALUES-VALUE.
lin = lin + 1.
WHEN 'KNTYP'.
IT_STD_CONDTX-KNTYP = VALUES-VALUE.
lin = lin + 1.
ENDCASE.
IF LIN = 5.
IT_STD_CONDTX-APPL = 'TX'.
APPEND IT_STD_CONDTX.
CLEAR IT_STD_CONDTX.
CLEAR LIN.
ENDIF.
ENDLOOP.
CLEAR IT_STD_CONDTX.
CLEAR LIN.

WHEN 'ZCSC_BR_CBT_CONDITION_TYPES_SD TMV'.


SORT VALUES BY RECNUMBER.
LOOP AT VALUES.
CASE VALUES-FIELDNAME.
WHEN 'KSCHL'.
IT_STD_CONDV-COND = VALUES-VALUE.
READ TABLE IT_STD_COND_STUNRV WITH KEY COND = VALUES-VALUE.
IF SY-SUBRC = 0.
IT_STD_CONDV-STUNR = IT_STD_COND_STUNRV-STUNR.
ENDIF.
lin = lin + 1.
WHEN 'KOZGF'.
IT_STD_CONDV-ACCS = VALUES-VALUE.
lin = lin + 1.
WHEN 'KOAID'.
IT_STD_CONDV-KOAID = VALUES-VALUE.
lin = lin + 1.
WHEN 'KRECH'.
IT_STD_CONDV-KRECH = VALUES-VALUE.
lin = lin + 1.
WHEN 'KNTYP'.
IT_STD_CONDV-KNTYP = VALUES-VALUE.
lin = lin + 1.
ENDCASE.
IF LIN = 5.
IT_STD_CONDV-APPL = 'V'.
APPEND IT_STD_CONDV.
CLEAR IT_STD_CONDV.
CLEAR LIN.
ENDIF.
ENDLOOP.
CLEAR IT_STD_CONDV.
CLEAR LIN.

WHEN 'ZCSC_BR_CBT_INT_CODS_TO_CND_TYPS TMV'.


SORT VALUES BY RECNUMBER.
LOOP AT VALUES.
CASE VALUES-FIELDNAME.
WHEN 'CODE'.
IT_STD_INTCOD_CNDTYP-CODE = VALUES-VALUE.
lin = lin + 1.
WHEN 'KAPPL'.
IT_STD_INTCOD_CNDTYP-KAPPL = VALUES-VALUE.
lin = lin + 1.
WHEN 'KSCHL'.
IT_STD_INTCOD_CNDTYP-KSCHL = VALUES-VALUE.
lin = lin + 1.
ENDCASE.
IF LIN = 3.
APPEND IT_STD_INTCOD_CNDTYP.
CLEAR IT_STD_INTCOD_CNDTYP.
CLEAR LIN.
ENDIF.
ENDLOOP.
CLEAR IT_STD_INTCOD_CNDTYP.
CLEAR LIN.

WHEN 'ZCSC_BR_CBT_INTERNAL_COND_CODES TMV'.


SORT VALUES BY RECNUMBER.
LOOP AT VALUES.
CASE VALUES-FIELDNAME.
WHEN 'CODE'.
IT_STD_TAXG_ICODE-CODE = VALUES-VALUE.
lin = lin + 1.
WHEN 'TAXGRP'.
IT_STD_TAXG_ICODE-TAXGRP = VALUES-VALUE.
lin = lin + 1.
ENDCASE.
IF LIN = 2.
IT_STD_TAXG_ICODE-CONTROL = 2.
APPEND IT_STD_TAXG_ICODE.
CLEAR IT_STD_TAXG_ICODE.
CLEAR LIN.
ENDIF.
ENDLOOP.
CLEAR IT_STD_TAXG_ICODE.
CLEAR LIN.

WHEN 'ZCSC_BR_CBT_MAP_MM_LWS_TO_NF_FDS TMV'.


* this bc-set is not checked.

WHEN 'ZCSC_BR_CBT_MAP_MM_VLS_TO_NF_FDS TMV'.


SORT VALUES BY RECNUMBER.
LOOP AT VALUES.
IT_STD_MAP_COND_NFTX-APPL = 'TX'.
IT_STD_MAP_COND_NFTX-PROC = PPROC_MM.
CASE VALUES-FIELDNAME.
WHEN 'BASE'.
IT_STD_MAP_COND_NFTX-BASE = VALUES-VALUE.
lin = lin + 1.
WHEN 'BASERED1'.
IT_STD_MAP_COND_NFTX-BASERED1 = VALUES-VALUE.
lin = lin + 1.
WHEN 'BASERED1_MAP'.
IT_STD_MAP_COND_NFTX-BASERED1_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'BASERED2'.
IT_STD_MAP_COND_NFTX-BASERED2 = VALUES-VALUE.
lin = lin + 1.
WHEN 'BASERED2_MAP'.
IT_STD_MAP_COND_NFTX-BASERED2_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'BASE_MAP'.
IT_STD_MAP_COND_NFTX-BASE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'EXCBAS'.
IT_STD_MAP_COND_NFTX-EXCBAS = VALUES-VALUE.
lin = lin + 1.
WHEN 'EXCBAS_MAP'.
IT_STD_MAP_COND_NFTX-EXCBAS_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'OTHBAS'.
IT_STD_MAP_COND_NFTX-OTHBAS = VALUES-VALUE.
lin = lin + 1.
WHEN 'OTHBAS_MAP'.
IT_STD_MAP_COND_NFTX-OTHBAS_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'QBASE'.
IT_STD_MAP_COND_NFTX-QBASE = VALUES-VALUE.
lin = lin + 1.
WHEN 'QBASE_MAP'.
IT_STD_MAP_COND_NFTX-QBASE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'QRATE'.
IT_STD_MAP_COND_NFTX-QRATE = VALUES-VALUE.
lin = lin + 1.
WHEN 'QRATE4DEC'.
IT_STD_MAP_COND_NFTX-QRATE4DEC = VALUES-VALUE.
lin = lin + 1.
WHEN 'QRATE4DEC_MAP'.
IT_STD_MAP_COND_NFTX-QRATE4DEC_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'QRATE_MAP'.
IT_STD_MAP_COND_NFTX-QRATE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'RATE'.
IT_STD_MAP_COND_NFTX-RATE = VALUES-VALUE.
lin = lin + 1.
WHEN 'RATE4DEC'.
IT_STD_MAP_COND_NFTX-RATE4DEC = VALUES-VALUE.
lin = lin + 1.
WHEN 'RATE4DEC_MAP'.
IT_STD_MAP_COND_NFTX-RATE4DEC_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'RATE_MAP'.
IT_STD_MAP_COND_NFTX-RATE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'SRATE'.
IT_STD_MAP_COND_NFTX-SRATE = VALUES-VALUE.
lin = lin + 1.
WHEN 'SRATE_MAP'.
IT_STD_MAP_COND_NFTX-SRATE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'TAXTYP'.
IT_STD_MAP_COND_NFTX-TTYP = VALUES-VALUE.
lin = lin + 1.
WHEN 'VALUE'.
IT_STD_MAP_COND_NFTX-VALUE = VALUES-VALUE.
lin = lin + 1.
WHEN 'VALUE_MAP'.
IT_STD_MAP_COND_NFTX-VALUE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'WHTCOLLCODE'.
IT_STD_MAP_COND_NFTX-WHTCOLLCODE = VALUES-VALUE.
lin = lin + 1.
WHEN 'WHTCOLLCODE_MAP'.
IT_STD_MAP_COND_NFTX-WHTCOLLCODE_MAP = VALUES-VALUE.
lin = lin + 1.
ENDCASE.
IF LIN = 27.
APPEND IT_STD_MAP_COND_NFTX.
CLEAR IT_STD_MAP_COND_NFTX.
CLEAR LIN.
ENDIF.
ENDLOOP.
CLEAR IT_STD_MAP_COND_NFTX.
CLEAR LIN.

WHEN 'ZCSC_BR_CBT_MAP_SD_VLS_TO_NF_FDS TMV'.


SORT VALUES BY RECNUMBER.
LOOP AT VALUES.
IT_STD_MAP_COND_NFV-APPL = 'V'.
IT_STD_MAP_COND_NFV-PROC = PPROC_MM.
CASE VALUES-FIELDNAME.
WHEN 'BASE'.
IT_STD_MAP_COND_NFV-BASE = VALUES-VALUE.
lin = lin + 1.
WHEN 'BASERED1'.
IT_STD_MAP_COND_NFV-BASERED1 = VALUES-VALUE.
lin = lin + 1.
WHEN 'BASERED1_MAP'.
IT_STD_MAP_COND_NFV-BASERED1_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'BASERED2'.
IT_STD_MAP_COND_NFV-BASERED2 = VALUES-VALUE.
lin = lin + 1.
WHEN 'BASERED2_MAP'.
IT_STD_MAP_COND_NFV-BASERED2_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'BASE_MAP'.
IT_STD_MAP_COND_NFV-BASE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'EXCBAS'.
IT_STD_MAP_COND_NFV-EXCBAS = VALUES-VALUE.
lin = lin + 1.
WHEN 'EXCBAS_MAP'.
IT_STD_MAP_COND_NFV-EXCBAS_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'OTHBAS'.
IT_STD_MAP_COND_NFV-OTHBAS = VALUES-VALUE.
lin = lin + 1.
WHEN 'OTHBAS_MAP'.
IT_STD_MAP_COND_NFV-OTHBAS_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'QBASE'.
IT_STD_MAP_COND_NFV-QBASE = VALUES-VALUE.
lin = lin + 1.
WHEN 'QBASE_MAP'.
IT_STD_MAP_COND_NFV-QBASE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'QRATE'.
IT_STD_MAP_COND_NFV-QRATE = VALUES-VALUE.
lin = lin + 1.
WHEN 'QRATE4DEC'.
IT_STD_MAP_COND_NFV-QRATE4DEC = VALUES-VALUE.
lin = lin + 1.
WHEN 'QRATE4DEC_MAP'.
IT_STD_MAP_COND_NFV-QRATE4DEC_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'QRATE_MAP'.
IT_STD_MAP_COND_NFV-QRATE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'RATE'.
IT_STD_MAP_COND_NFV-RATE = VALUES-VALUE.
lin = lin + 1.
WHEN 'RATE4DEC'.
IT_STD_MAP_COND_NFV-RATE4DEC = VALUES-VALUE.
lin = lin + 1.
WHEN 'RATE4DEC_MAP'.
IT_STD_MAP_COND_NFV-RATE4DEC_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'RATE_MAP'.
IT_STD_MAP_COND_NFV-RATE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'SRATE'.
IT_STD_MAP_COND_NFV-SRATE = VALUES-VALUE.
lin = lin + 1.
WHEN 'SRATE_MAP'.
IT_STD_MAP_COND_NFV-SRATE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'TAXTYP'.
IT_STD_MAP_COND_NFV-TTYP = VALUES-VALUE.
lin = lin + 1.
WHEN 'VALUE'.
IT_STD_MAP_COND_NFV-VALUE = VALUES-VALUE.
lin = lin + 1.
WHEN 'VALUE_MAP'.
IT_STD_MAP_COND_NFV-VALUE_MAP = VALUES-VALUE.
lin = lin + 1.
WHEN 'WHTCOLLCODE'.
IT_STD_MAP_COND_NFV-WHTCOLLCODE = VALUES-VALUE.
lin = lin + 1.
WHEN 'WHTCOLLCODE_MAP'.
IT_STD_MAP_COND_NFV-WHTCOLLCODE_MAP = VALUES-VALUE.
lin = lin + 1.
ENDCASE.
IF LIN = 27.
APPEND IT_STD_MAP_COND_NFV.
CLEAR IT_STD_MAP_COND_NFV.
CLEAR LIN.
ENDIF.
ENDLOOP.
CLEAR IT_STD_MAP_COND_NFV.
CLEAR LIN.

WHEN 'ZCSC_BR_CBT_RVABRA_CALC_PROCD_SD TMV'.


* SORT VALUES BY RECNUMBER.
SAVE_SUBRC = 0.
SAVE_TABIX = 0.
SAVE_KOFRA = ''.
SAVE_KOFRM = ''.
LOOP AT VALUES.
CASE VALUES-FIELDNAME.
WHEN 'KOFRA'.
SAVE_KOFRA = VALUES-VALUE.
WHEN 'KOFRM'.
SAVE_KOFRM = VALUES-VALUE.
WHEN 'KSCHL'.
READ TABLE IT_STD_CONDV WITH KEY COND = VALUES-VALUE
APPL = 'V'.
SAVE_SUBRC = SY-SUBRC.
SAVE_TABIX = SY-TABIX.
WHEN 'KSTAT'.
IF SAVE_SUBRC = 0.
IT_STD_CONDV-KSTAT = VALUES-VALUE.
lin = lin + 1.
ENDIF.
WHEN 'KVSL1'.
IF SAVE_SUBRC = 0.
IT_STD_CONDV-KVSL1 = VALUES-VALUE.
lin = lin + 1.
ENDIF.
WHEN 'STUNR'.
IF SAVE_SUBRC = 0.
IF VALUES-VALUE <> 0.
IT_STD_CONDV-STUNR = VALUES-VALUE.
ENDIF.
lin = lin + 1.
ENDIF.
ENDCASE.
IF LIN = 3.
IT_STD_CONDV-KOFRA = SAVE_KOFRA.
IT_STD_CONDV-KOFRM = SAVE_KOFRM.
IT_STD_CONDV-TYPE = 'NORMAL'.
MODIFY IT_STD_CONDV INDEX SAVE_TABIX.
CLEAR IT_STD_CONDV.
CLEAR LIN.
SAVE_SUBRC = 4.
SAVE_TABIX = 0.
SAVE_KOFRA = ''.
SAVE_KOFRM = ''.
ENDIF.
ENDLOOP.
CLEAR IT_STD_CONDV.
CLEAR LIN.
SAVE_SUBRC = 4.
SAVE_TABIX = 0.
SAVE_KOFRA = ''.
SAVE_KOFRM = ''.

WHEN 'ZCSC_BR_CBT_TAXBRA_CALC_PROCD_MM TMV'.


* SORT VALUES BY RECNUMBER.
SAVE_SUBRC = 0.
SAVE_TABIX = 0.
SAVE_KOFRA = ''.
SAVE_KOFRM = ''.
LOOP AT VALUES.
CASE VALUES-FIELDNAME.
WHEN 'KOFRA'.
SAVE_KOFRA = VALUES-VALUE.
WHEN 'KOFRM'.
SAVE_KOFRM = VALUES-VALUE.
WHEN 'KSCHL'.
READ TABLE IT_STD_CONDTX WITH KEY COND = VALUES-VALUE
APPL = 'TX'.
SAVE_SUBRC = SY-SUBRC.
SAVE_TABIX = SY-TABIX.
WHEN 'KSTAT'.
IF SAVE_SUBRC = 0.
IT_STD_CONDTX-KSTAT = VALUES-VALUE.
lin = lin + 1.
ENDIF.
WHEN 'KVSL1'.
IF SAVE_SUBRC = 0.
IT_STD_CONDTX-KVSL1 = VALUES-VALUE.
lin = lin + 1.
ENDIF.
WHEN 'STUNR'.
IF SAVE_SUBRC = 0.
IF VALUES-VALUE <> 0.
IT_STD_CONDTX-STUNR = VALUES-VALUE.
ENDIF.
lin = lin + 1.
ENDIF.
ENDCASE.
IF LIN = 3.
IT_STD_CONDTX-KOFRA = SAVE_KOFRA.
IT_STD_CONDTX-KOFRM = SAVE_KOFRM.
IT_STD_CONDTX-TYPE = 'NORMAL'.
MODIFY IT_STD_CONDTX INDEX SAVE_TABIX.
CLEAR IT_STD_CONDTX.
CLEAR LIN.
SAVE_SUBRC = 4.
SAVE_TABIX = 0.
SAVE_KOFRA = ''.
SAVE_KOFRM = ''.
ENDIF.
ENDLOOP.
CLEAR IT_STD_CONDTX.
CLEAR LIN.
SAVE_SUBRC = 4.
SAVE_TABIX = 0.
SAVE_KOFRA = ''.
SAVE_KOFRM = ''.
ENDCASE.
ENDFORM. " READ_TRANSFER_TAB_AND_SAVE

You might also like