*&---------------------------------------------------------------------*
*& Report Z_ANLC_HERO_FA
*&
*& Extract SAP Data For Asset Value Fields SAP TABLE ANLC Into cvs File Called ANLC.csv
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Developed By - Vivek Nigam
*& Date - 13/04/2024
*& Modified by-Vivek Nigam
*& Date - 03/07/2024 - Added INNER JOIN WITH KNB1 & ADDED WHERE CLAUSE TO FILTER DATA BASED ON
*& Date - 04/10/2024 - Added INNER JOIN WITH KNB1 & ADDED WHERE CLAUSE TO FILTER DATA BASED ON - ANLN1 KANSW KNAFA NAFAP GJAHR
*& LEGAL ENTITY NAME / COMPANY CODE
*& Date - 25/07/2024- ADDED SELLECTION SCREEN TO SELECT FILE OUTPUT PATH AND LEGAL ENTITY NAME TO FILTER DATA
*& LEGAL ENTITY NAME / COMPANY CODE
*& Date - 30/07/2024- ADDED VARIANTS FOR SCHEDULING BASED ON SELECTION SCREEN @ 09:58 AM
*& Date - 01/08/2024 ADDED UK61 FOR NEW CAST CENTER / LEGAL ENTITY
*&---------------------------------------------------------------------*
*&--ANLN1 KANSW KNAFA ---ANLN1 KANSW KNAFA
*ANLN1 KANSW KNAFA NAFAP GJAHR
*&---------------------------------------------------------------------*
*Modified By Vivek Nigam Dated On 05/12/2024 @ 09:48 AM To Fix Lover Case File Extention Issue & UTF-8 Encoding: 4110
*&-*Modified By Vivek Nigam Dated On 05/12/2024 @ 09:48 AM To Fix Lover Case File Extention Issue & UTF-8 Encoding: 4110
*Modified By Vivek Nigam Dated On 05/12/2024 @ 10:51 AM to fix output path And Added new HFT Path --------------------------------------------------------------------*
*https://lpl.sharepoint.com/:x:/r/sites/HEROProgramme-02.Pilot-UK/_layouts/15/Doc.aspx?sourcedoc=%7B47845D33-17F4-48A5-A6CC-3C91E7896F36%7D&file=02.HERO_design_source_schemas_fixed_asset_2.xlsx&action=default&mobileredirect=true
*ANLN1 KANSW KNAFA NAFAP GJAHR
*THIS CODE AGAIN MODIFIED BY VIVEK NIGAM DATED ON 19/12/2024 @12:25 TO FIX CURRENCY FORMAT ISSUE AND - SIGN ISSUE
****Updated On 17/01/2025 After Transported In To Production -- Gaetan AUBINEAU (EXT) mentioned you in Issue 1399636
****ETL 3 - Fixed Asset Balance - Discrepancy in Asset Aquisition Cost
**** @Vivek NIGAM (EXT) Could you add these 3 new fields in the file ANLC please ?
****o ANSWL
****o PSTBEG
****o PSTPER
****I updated the schema file to add new mapping :
***https://lpl.sharepoint.com/:x:/r/sites/HEROProgramme-02.Pilot-UK/_layouts/15/Doc.aspx?sourcedoc=%7B47845D33-17F4-48A5-A6CC-3C91E7896F36%7D&file=02.HERO_design_source_schemas_fixed_asset_2.xlsx&action=default&mobileredirect=true
***ANLN1 KANSW KNAFA NAFAP GJAHR NAFAG ANSWL PSTBEG PSTPER
REPORT Z_ANLC_HERO_FA.
TYPE-POOLS: VRM.
DATA: NAME TYPE VRM_ID,
LIST TYPE VRM_VALUES,
VALUE LIKE LINE OF LIST.
PARAMETERS: ENTITY(10) AS LISTBOX VISIBLE LENGTH 10.
*&--PARAMETERS : OPPATH LIKE RLGRAP-FILENAME DEFAULT 'C:\tmp\TT\ANLC.csv'.
*PARAMETERS : OPATH TYPE STRING DEFAULT '\\UKCROAPTST\tmp\Interfaces\HFT\SAP_Hero_Prod\Raw\IN\UK\UK01\ANLC.csv'.
PARAMETERS : OPATH TYPE STRING LOWER CASE DEFAULT '\\UKDATWNINTP01\SAP_Hero_OAT\raw\in\uk\UK01\ANLC.csv'.
AT SELECTION-SCREEN OUTPUT.
NAME = 'ENTITY'.
VALUE-KEY = 'UK01'.
VALUE-TEXT = 'UK01'.
APPEND VALUE TO LIST.
VALUE-KEY = 'UK75'.
VALUE-TEXT = 'UK75'.
APPEND VALUE TO LIST.
VALUE-KEY = 'UK21'.
VALUE-TEXT = 'UK21'.
APPEND VALUE TO LIST.
VALUE-KEY = 'UK31'.
VALUE-TEXT = 'UK31'.
APPEND VALUE TO LIST.
VALUE-KEY = 'UK41'.
VALUE-TEXT = 'UK41'.
APPEND VALUE TO LIST.
VALUE-KEY = 'UK02'.
VALUE-TEXT = 'UK02'.
APPEND VALUE TO LIST.
VALUE-KEY = 'UK73'.
VALUE-TEXT = 'UK73'.
APPEND VALUE TO LIST.
VALUE-KEY = 'UK04'.
VALUE-TEXT = 'UK04'.
APPEND VALUE TO LIST.
VALUE-KEY = 'UK61'.
VALUE-TEXT = 'UK61'.
APPEND VALUE TO LIST.
CALL FUNCTION 'VRM_SET_VALUES' EXPORTING ID = NAME VALUES = LIST.
*&------PARAMETERS p_lname TYPE char5.
*&------PARAMETERS p_oppath TYPE char50.
*&------AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lname.
*&------AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_oppath.
*&------AT SELECTION-SCREEN ON VALUE-REQUEST FOR OPPATH.
START-OF-SELECTION.
*&------WRITE: / 'LEGAL ENTITY NAME:', ENTITY.
*&------WRITE: / 'OUTPUT FILE PATH:', OPATH.
*ANLN1 KANSW KNAFA NAFAP GJAHR
type-pools:TRUXS.
data: begin of itab occurs 0,
ANLN1 like ANLC-ANLN1,
KANSW like ANLC-KANSW,
KNAFA like ANLC-KNAFA,
NAFAP like ANLC-NAFAP,
GJAHR like ANLC-GJAHR,
NAFAG like ANLC-NAFAG,
ANSWL like ANLC-ANSWL,
PSTBEG like ANLC-PSTBEG,
PSTPER like ANLC-PSTPER,
end of itab.
data: itab1 type TRUXS_T_TEXT_DATA.
DATA: lt_output TYPE TABLE OF string,
lv_header TYPE string,
lv_line TYPE string,
lv_filename TYPE string.
lv_filename = OPATH.
lv_header = 'ANLN1;KANSW;KNAFA;NAFAP;GJAHRL;NAFAG;ANSWL;PSTBEG;PSTPER'.
* Add the header to the output table
APPEND lv_header TO lt_output.
SELECT DISTINCT
ANLC~ANLN1
ANLC~KANSW
ANLC~KNAFA
ANLC~NAFAP
ANLC~GJAHR
ANLC~NAFAG
ANLC~ANSWL
ANLC~PSTBEG
ANLC~PSTPER
from ANLC INNER JOIN ANLA ON ANLC~ANLN1 = ANLA~ANLN1
into table itab
WHERE ANLC~BUKRS = ENTITY AND ANLA~DEAKT IN ('00000000').
*"header data --ANLN1 KANSW KNAFA NAFAP GJAHR
*itab-ANLN1 = 'ANLN1'.
*itab-KANSW = 'KANSW'.
*itab-KNAFA = 'KNAFA'.
*itab-NAFAP = 'NAFAP'.
*itab-GJAHR = 'GJAHR'.
*Insert itab index 1.
*FIELD-SYMBOLS <FS> LIKE LINE OF itab.
*FIELD-SYMBOLS: <FS> TYPE itab.
** Loop through your internal table and add data to output table
*LOOP AT itab.
* CLEAR: lv_line.
* CONCATENATE itab-ANLN1
* itab-KANSW
* itab-KNAFA
* itab-NAFAP
* itab-GJAHR
* INTO lv_line
* SEPARATED BY ';'.
*
* APPEND lv_line TO lt_output.
*ENDLOOP.
* Write to CSV file
*OPEN DATASET lv_filename FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
*LOOP AT lt_output INTO lv_line.
* TRANSFER lv_line TO lv_filename.
*ENDLOOP.
*CLOSE DATASET lv_filename.
CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
EXPORTING
I_FIELD_SEPERATOR = ','
TABLES
I_TAB_SAP_DATA = itab
CHANGING
I_TAB_CONVERTED_DATA = itab1
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*---Below Code Added By Vivek Nigam Dated - 19/12/2024 @ 12:27
DATA:lt_output1 TYPE TABLE OF string, " Output table for corrected rows
lv_row TYPE string, " A single row from itab1
lt_columns TYPE TABLE OF string, " Split columns from the row
lv_column TYPE string. " A single column value
" Process each row in itab1
LOOP AT itab1 INTO lv_row.
" Split the row into columns using semicolon as a delimiter
SPLIT lv_row AT ';' INTO TABLE lt_columns.
" Process each column in the row
LOOP AT lt_columns INTO lv_column.
" Step 1: Remove thousand separators (period)
REPLACE ALL OCCURRENCES OF '.' IN lv_column WITH ''.
" Step 2: Replace decimal separator (comma) with a period
REPLACE ALL OCCURRENCES OF ',' IN lv_column WITH '.'.
* " Step 3: Move negative sign to the front
IF lv_column CP '*-*'.
SHIFT lv_column RIGHT DELETING TRAILING '-'.
CONCATENATE '-' lv_column INTO lv_column.
CONDENSE lv_column NO-GAPS.
ENDIF.
" Update the column value in lt_columns
MODIFY lt_columns FROM lv_column INDEX sy-tabix.
ENDLOOP.
" Reassemble the processed columns into a corrected row
CLEAR lv_row.
LOOP AT lt_columns INTO lv_column.
IF lv_row IS INITIAL.
lv_row = lv_column.
ELSE.
CONCATENATE lv_row lv_column INTO lv_row SEPARATED BY ';'.
ENDIF.
ENDLOOP.
" Add the corrected row to the output table
APPEND lv_row TO lt_output1.
ENDLOOP.
APPEND LINES OF lt_output1 TO lt_output.
*--Upto Here Code Remove To Format in Currency -----
*APPEND LINES OF itab1 To lt_output.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = OPATH
CODEPAGE = '4110' "4310 codepage 4310 encodes as UTF-8.
TABLES
data_tab = lt_output
EXCEPTIONS
OTHERS = 1.
No comments:
Post a Comment