Anda di halaman 1dari 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

Anda mungkin juga menyukai