Tuesday, 20 May 2025

Z_KNA1_HERO_CUS - SAP DATA EXTRACT USING ABAP PROGRAM

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

*& Report  Z_KNA1_HERO_CUS

*&

*& Extract SAP Data For General Data in Customer Master SAP TABLE KNA1 Into cvs File Called KNA1.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

*& 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 - 26/07/2024- ADDED VARIANTS FOR SCHEDULING BASED ON SELECTION SCREEN

*& Date - 01/08/2024 ADDED UK61 FOR NEW CAST CENTER / LEGAL ENTITY

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

*&--KUNNR MANDT LAND1 MCOD1 NAME1 NAME2 NAME3 STRAS ORT01 PSTLZ SPRAS LZONE KTOKD

*&--KUNNR MANDT LAND1 MCOD1 NAME1 NAME2 NAME3 STRAS ORT01 PSTLZ SPRAS LZONE KTOKD

*&-*Modified By Vivek Nigam Dated On 05/12/2024 @ 09:48 AM To Fix Lover Case File Extention Issue & UTF-8 Encoding: 4110--------------------------------------------------------------------*

***https://lpl.sharepoint.com/:x:/r/sites/HEROProgramme-02.Pilot-UK/_layouts/15/Doc.aspx?sourcedoc=%7BEF12D4EF-081C-43AD-9387-D73B90C44DC6%7D&file=00.HERO_design_source_schema_cusomer_SAP.xlsx&action=default&mobileredirect=true



REPORT  Z_KNA1_HERO_CUS.

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\KNA1.csv'.

*PARAMETERS : OPATH TYPE STRING DEFAULT '\\UKCROAPTST\tmp\Interfaces\HFT\SAP_Hero_Prod\Raw\IN\UK\UK01\KNA1.csv'.

PARAMETERS : OPATH TYPE STRING LOWER CASE DEFAULT '\\UKDATWNINTP01\SAP_Hero_OAT\Raw\IN\UK\UK01\KNA1.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.


**KUNNR MANDT LAND1 MCOD1 NAME1 NAME2 NAME3 STRAS ORT01 PSTLZ SPRAS LZONE KTOKD

type-pools:TRUXS.

data: begin of itab occurs 0,

      KUNNR like KNA1-KUNNR,

      MANDT like KNA1-MANDT,

      LAND1 like KNA1-LAND1,

      MCOD1 like KNA1-MCOD1,

      NAME1 like KNA1-NAME1,

      NAME2 like KNA1-NAME2,

      NAME3 like KNA1-NAME3,

      STRAS like KNA1-STRAS,

      ORT01 like KNA1-ORT01,

      PSTLZ like KNA1-PSTLZ,

      SPRAS like KNA1-SPRAS,

      LZONE like KNA1-LZONE,

      KTOKD like KNA1-KTOKD,

*      BUKRS like KNB1-BUKRS,

      end of itab.


data:  itab1 type TRUXS_T_TEXT_DATA.

 SELECT  DISTINCT

         KNA1~KUNNR

         KNA1~MANDT

         KNA1~LAND1

         KNA1~MCOD1

         KNA1~NAME1

         KNA1~NAME2

         KNA1~NAME3

         KNA1~STRAS

         KNA1~ORT01

         KNA1~PSTLZ

         KNA1~SPRAS

         KNA1~LZONE

         KNA1~KTOKD

*         KNB1~BUKRS

         from KNA1 INNER JOIN KNB1 ON KNA1~KUNNR = KNB1~KUNNR

         into table itab

         WHERE KNB1~BUKRS = ENTITY.


******"header data -- ADD HEADER IN THE CSV FILE AFTER THIS

***itab-KUNNR = 'KUNNR'.

***itab-MANDT = 'MANDT'.

***itab-LAND1 = 'LAND1'.

***itab-MCOD1 = 'MCOD1'.

***itab-NAME1 = 'NAME1'.

***itab-NAME2 = 'NAME2'.

***itab-NAME3 = 'NAME3'.

***itab-STRAS = 'STRAS'.

***itab-ORT01 = 'ORT01'.

***itab-PSTLZ = 'PSTLZ'.

***itab-SPRAS = 'SPRAS'.

***itab-LZONE = 'LZONE'.

***itab-KTOKD = 'KTOKD'.


**Insert itab index 1.


DATA: lt_output   TYPE TABLE OF string,

      lv_header   TYPE string,

      lv_line     TYPE string,

      lv_filename TYPE string.


lv_filename = OPATH.


lv_header = 'KUNNR;MANDT;LAND1;MCOD1;NAME1;NAME2;NAME3;STRAS;ORT01;PSTLZ;SPRAS;LZONE;KTOKD'.



* Add the header to the output table

APPEND lv_header TO lt_output.



*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.


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

Z_KOMGG_HERO_CUS - SAP DATA EXTRACT USING ABAP PROGRAM

 *&---------------------------------------------------------------------* *& Report  Z_KOMGG_HERO_CUS *& *&-----------------...