You are on page 1of 55

Bapi .

1.create function group first

Go to ‘goto’->function group->create group.

function group-zbapi

Save in package.
Create a wone package in se80
2.after creating activate the function group.

Goto se38
3.create function module.

Start with zbapi.


3.go inside function module

Goto attributes->click remote-enabled module

We want some importing and exporting parameters.

In t001 we hv all details based on company

4.For tht we need to create structure.


5.Can give component names from t001 table.
6.Change component names.
7.Enhancement.

After creating structure go to function module

8.And ->import

Fill the parameter name ,types ,associated type ,click pos and enter short
text.

For associated type we should give structure name-component name.

Ex:

P_bukrs,type,zbapi_stru-comp_code
9.Goto ->tables and give internal tables
10.goto->export and fill all details.

In associated type ->Bapiret2 Is common

Parameter name-> RETURN is used to return some messages

Ex:inside Bapiret2
11. goto source code.

After filling the source ccode activate function module

12. Goto attributes and

Function module->release->release.

Status bar will show release.


13. next see how to add the bapi function module in api method

t-code->swo1.

And create a object

Click create.
For application select cross application.
Save in package.
There will be 2 objects in methods.

1existence check-check existence of object.

2display-display object..
14.Goto utilites->api methods->add methods.

15.give the function module name.


16.Click the next step

17.Check the created parameter and click next.


18.Click yes

19.after that the bapi test where added here.


Save .

20.After add the method, need to release the object.

To release. Keep the crusor in the zobj.

21.After tht goto->edit->change release status->object type->to modeled.


22, Keep the crusor in the zobj.

repeate goto->edit->change release status->object type->to implemented.

23., Keep the crusor in the zobj.

repeate goto->edit->change release status->object type->to released.


24. click tick in both
After click tick mark will appear.

This Is the way to create object for bapi.


Front page

*&---------------------------------------------------------------------*
*& Report ZMM_MAT_MASTER_CT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMM_MAT_MASTER_CT.

INCLUDE zmm_material_master_cnv01_top.

INCLUDE zmm_material_master_cnv01_sel.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM get_filename CHANGING p_file.

AT SELECTION-SCREEN ON p_file.
  PERFORM check_file_path.

AT SELECTION-SCREEN.
  PERFORM set_background_job.

START-OF-SELECTION.

  IF pv_bg = 'X'.
    LEAVE LIST-PROCESSING.
  ENDIF.

  IF sy-batch = ' '.
    PERFORM get_data CHANGING ta_flatfile.
  ENDIF.

  PERFORM upload_material.

  END-OF-SELECTION.
  PERFORM display_data.
INCLUDE zmm_material_master_cnv01_form.

*&---------------------------------------------------------------------*
*& Include          ZMM_MATERIAL_MASTER_CNV01_TOP
*&---------------------------------------------------------------------*

TYPE-POOLS:slis.

TYPES:BEGIN OF ta_flatfile,
*        sitemmasterid(20),  " Field Description
        sno(5),
        matnr(40),          " Material no.
        mbrsh(1),           " Industry sector
        mtart(4),           " Material type
*Organizational data
        werks(4),           " Plant
        lgort(4),           " Storage Location
        vkorg(4),           " Sales Organization
        vtweg(2),           " Distribution Channel
        dispr(10),          " MRP Profile
*Basic Data1
        bd1(1),
        maktx(50),          " Material Description
        meins(3),          " Base Unit of Measure
        matkl(9),           " Material Group
        bismt(40),          " Old Material No
        extwg(18),           " External Material Group
        spart(2),           " Division
        labor(30),           " Lab/Office
        brgew(13),           " Gross Weight
        gewei(2),           " Weight Unit
        ntgew(13),           " Net weight
        volum(10),          " Volume
        voleh(10),          " Volume Unit
        groes(30),          " Size/Dimensions
        maktx1(50),         " Basic Data Text
        length(13),
        width(13),          """added on 23/12/2017
        height(13),
        unit_dim(3),
        prdha(18),          "added on 21/02/2018

*Basic Data2
        bd2(1),
        ferth(25),          " Prod./Insp.memo
        normt(15),          " Ind. Std Desc.
        formt(1),           " Page Format
        wrkst(9),           " Basic Material
        msbookpartno(60),   " MS Book Part Number
        zeinr(20),          " Document
        zeiar(3),           " Document Type
        zeivr(10),          " Document Version
        adspc_spc(1),       " Spare Part Class Code
        ovlpn(10),          " Overlength Part Number
        umren(10),          " Unit of Measure
        meinh(10),          " Alternative Unit of Measure
        umrez(10),          " Units of Measure ( Numerator for conversion to 
base unit of measure)
        umren1(10),          " Unit of Measure
        meinh1(10),          " Alternative Unit of Measure
        umrez1(10),          " Units of Measure ( Numerator for conversion t
o base unit of measure)
*Classification View
        cv(1),
        klart(3),           " Class Type
        class(18),           " Class
*Sales Org1
        sod1(1),
        dwerk(4),           " Delivering Plant
        taxkm(1),           " Tax classification material
*Slaes Org2
        sod2(1),
        versg(1),           " Matl statistics grp
        prodh(10),          " Product hierarchy
        ktgrm(10),          " Acct assignment grp
        kondm(02),
        mtpos(4),           " Item category group
*        mtpos1(4),           " Item category group

*Sales: General/Plant
        sgp(1),
        mtvfp(2),           " Availability check
        mfrgr(8),           " Material freight grp
        tragr(4),           " Trans. Grp
        ladgr(4),           " LoadingGrp
        prctr(10),           " Profit Center
        magrv(04),           "Material Group Pack   "added by Kamesh
        vhart(4),   "25/01/2018
        ergew(13),
        ergei(3),
        ervol(13),
        ervoe(3),
        gewto(3),
        volto(3),
*Foreign Trade
        ft1(1),
        steuc(16),          " Control Code   " added by thippesh
*SOTF "Sales and Distributit
        sotf(1),
        stext(60),          " SALES TEXT
*PF "Purchasing
        pf(1),
        ekgrp(3),           " Purchasing Group
        kautb(1),           " Automatic PO
        xchpf(1),           " Batch Management
        ekwsl(4),           " Purchasing Value Key
        webaz(5),           " GR Processing Time
        kzkri(1),           " Indicator: Critical part
        mprof(10),          " Mfr Part Profile
        mfrpn(40),          " Mfr. Part NumPOTEXTber
        mfrnr(10),          " Manufact.
        taxim(01),          ""Tax Indicator for material added by thippesh
        kordb(1),           " added on 21/02/2018

*POV " Purchase order text
        pov(1),
        potext(132),         " PURCHASE ORDER TEXT
*MRP1
        mrp1(1),
        disgr(4),           " MRP group
        maabc(1),           " ABC Indicator
        dismm(2),           " MRP Type
        minbe(3),           " Reorder Point
        dispo(3),           " MRP Controller
        disls(2),           " Lot Size
        bstmi(15),          " Minimum Lot Size
        bstma(15),          " Maximum Lot Size
        ausss(07),            "Assembly Scrap %     "Added by kamesh
        bstfe(3),           " Fixed Lot Size
        mabst(13),
*MRP2
        mrp2(1),
        beskz(1),           " Procurement Type
        sobsl(2),           " Special Procurement
        lgpro(4),           " Prod. Storage Location
        rgekz(1),           " Indicator: Backflush
        schgt(10),          " Indicator: Bulk Material
        dzeit(2),           " In-house Production
        plifz(2),           " Plnd delivery time
        fhori(3),           " Schedulemargin Key
        eisbe(15),              " Safety STock
*MRP3
        mrp3(1),
        strgr(2),           " Strategy Group
        vrmod(1),           " Consumption Mode
        vint1(2),           " Bwd. Consumption per.
        vint2(2),           " Fwd. Consumption Per.
*MRP4
        mrp4(1),
        sbdkz(1),           " Individual/Coll
        kausf(07),            "Component Scrap %        "Added by Kamesh
*Forecast View
        fv(1),
        prmod(1),           " Forecast Model
*        lgpbe(10),          " Storage Bin
*WS
        ws(1),
        sfcpf(6),           " Production Scheduling Profile
        sernp(20),          " Serial No. Profile
        fevor(03),
*        xchpf1(1),           " Batch management Requirement   "Added by 
Kamesh
*PRT
        prt(1),
        planv(10),          " Task list usage
        steuf(20),          " Control key
*PDS1
        pds1(1),
        lgpbe(12),          " Storage Bin
        maxlx(20),          " Maximum Storage Period
        lzeih(3),           " Time Unit
        tempb(02),
        raube(02),
*QMV "Quality Management
        qmv(1),
        kzdkz(1),           " Documentation required indicator
        qmpur(1),           " QM in Procurement is Active
        ssqss(4),           " Control Key for Quality Management in Procurem
ent
        qzgtp(3),           " Certificate Type
        art(2),             " Inspection Type
        apa(1),             "Prefereed Inspection Type    "Added by kamesh
        aktiv(1),           " Inspection Type active
*AC1 "Accounting 1
        ac1(1),
        bklas(4),           " Valuation Class
        bwtty(4),           " Valuation Type   added on 18.09.2019
        mlast(1),           " Price Determination
        vprsv(1),           " Price Control
        pvprs_1(15),         " Periodic Unit Price
        stprs(15),           " Standard Price
*CEV
        cev(1),
        ekalr(1),           " With Quantity Structure
*        prctr1(10),          "Profit center            "Added by kamesh
        hkmat(1),           " Material Origin
        ncost,              " Do not check
        kosgr(10),          " Overhead Group
        awsls(06),          ""variant key
        VMBKL(04),
        VJBKL(04),
      END OF ta_flatfile,
      ta_t_flatfile TYPE STANDARD TABLE OF ta_flatfile.

TYPES:BEGIN OF ty_display,
        sno(5),
        type       TYPE bapi_mtype,
        id         TYPE symsgid,
        number     TYPE symsgno,
        message_v1 TYPE mara-matnr,
        message     TYPE bapi_msg,
      END OF ty_display,
      ty_t_display TYPE TABLE OF ty_display.

DATA:fname TYPE localfile,
     ename TYPE char4.

DATA:it_display TYPE ty_t_display,
     it_t134    TYPE TABLE OF t134,
     wa_t134    TYPE t134,
     it_nriv    TYPE TABLE OF nriv,
     wa_nriv    TYPE nriv.

DATA:ta_flatfile   TYPE ta_t_flatfile.

*&---------------------------------------------------------------------*
*& Include          ZMM_MATERIAL_MASTER_CNV01_SEL
*&---------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

PARAMETERS : p_file TYPE STRING."rlgrap-filename.
PARAMETERS:pv_front RADIOBUTTON GROUP grp TYPE char1 DEFAULT 'X',
           pv_bg    RADIOBUTTON GROUP grp TYPE char1.

SELECTION-SCREEN END OF BLOCK b1.

*&---------------------------------------------------------------------*
*& Include          ZMM_MATERIAL_MASTER_CNV01_FORM
*&---------------------------------------------------------------------*
FORM get_filename  CHANGING fp_p_file TYPE string.
*  BREAK PPADHY.
  DATA: li_filetable    TYPE filetable,
        lx_filetable    TYPE file_table,
        lv_return_code  TYPE i,
        lv_window_title TYPE string.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = lv_window_title
    CHANGING
      file_table              = li_filetable
      rc                      = lv_return_code
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      not_supported_by_gui    = 4
      OTHERS                  = 5.

  READ TABLE  li_filetable INTO lx_filetable INDEX 1.
  fp_p_file = lx_filetable-filename.

  SPLIT fp_p_file AT '.' INTO fname ename.
  SET LOCALE LANGUAGE sy-langu.
  TRANSLATE ename TO UPPER CASE.

ENDFORM.                    " GET_FILENAME

*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_I_EXCELTAB  text
*----------------------------------------------------------------------*
FORM get_data  CHANGING ta_flatfile TYPE ta_t_flatfile.

  DATA : i_type    TYPE truxs_t_text_data.

  DATA:lv_file TYPE rlgrap-filename.

*  PROCEED ONLY IF ITS A VALID FILETYPE
  IF ename EQ 'XLSX' OR ename EQ 'XLS'.

    REFRESH ta_flatfile[].

    lv_file = p_file.

*   FM TO UPLOAD DATA INTO INTERNAL TABLE FROM EXCEL
    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
      EXPORTING
        i_tab_raw_data       = i_type
        i_filename           = lv_file
      TABLES
        i_tab_converted_data = ta_flatfile[]
      EXCEPTIONS
        conversion_failed    = 1
        OTHERS               = 2.

    DELETE ta_flatfile FROM 1 TO 2.

  ELSE.
    MESSAGE e398(00) WITH 'Invalid File Type'  .
  ENDIF.

  IF ta_flatfile IS INITIAL.
    MESSAGE 'No records to upload' TYPE 'E'.
  ENDIF.

ENDFORM.                    " GET_DATA

*&---------------------------------------------------------------------*
*&      Form  UPLOAD_MATERIAL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM upload_material .

  FIELD-SYMBOLS:<fs_flatfile>  TYPE ta_flatfile,
                <fs_steuertab> TYPE mg03steuer.

  DATA:bapi_head     TYPE bapimathead,      "input parameters
       bapi_mara     TYPE bapi_mara,        "client data
       bapi_marax    TYPE bapi_marax,

       bapi_marc     TYPE bapi_marc,        "plant data
       bapi_marcx    TYPE bapi_marcx,

       bapi_mpop     TYPE bapi_mpop,        "forecast view
       bapi_mpopx    TYPE bapi_mpopx,

       bapi_mpgd     TYPE bapi_mpgd,        "planning view
       bapi_mpgdx    TYPE bapi_mpgdx,

       bapi_mard     TYPE bapi_mard,        "storage location
       bapi_mardx    TYPE bapi_mardx,

       bapi_mbew     TYPE bapi_mbew,        "valuation data
       bapi_mbewx    TYPE bapi_mbewx,

       bapi_mlgn     TYPE bapi_mlgn,        "warehouse data
       bapi_mlgnx    TYPE bapi_mlgnx,

       bapi_mvke     TYPE bapi_mvke,        "sales data
       bapi_mvkex    TYPE bapi_mvkex,

       bapi_mlgt     TYPE bapi_mlgt,        "storage data
       bapi_mlgtx    TYPE bapi_mlgtx,

       bapireturn    TYPE bapiret2,

       wa_return     TYPE bapi_matreturn2,
       git_return    TYPE STANDARD TABLE OF bapi_matreturn2,

       bapi_makt     TYPE bapi_makt,
       git_matdesc   TYPE STANDARD TABLE OF bapi_makt,

       bapi_marm     TYPE bapi_marm,
       git_uom       TYPE STANDARD TABLE OF bapi_marm,

       bapi_marmx    TYPE bapi_marmx,
       git_uomx      TYPE STANDARD TABLE OF bapi_marmx,

       wa_tax        TYPE bapi_mlan,
       git_tax       TYPE STANDARD TABLE OF bapi_mlan,

       wa_text       TYPE bapi_mltx,   "Long Texts
       git_text      TYPE STANDARD TABLE OF bapi_mltx,

       ext_mvke      TYPE bapi_te_mvke,
       ext_mvkex     TYPE bapi_te_mvkex,

       git_steuertab TYPE STANDARD TABLE OF mg03steuer,

       git_parex     TYPE STANDARD TABLE OF bapiparex,
       git_parexx    TYPE STANDARD TABLE OF bapiparexx,

       wa_parex      TYPE bapiparex,
       wa_parexx     TYPE bapiparexx,

       lv_len        TYPE i,
       lv_len1       TYPE i,

       lv_matnr      LIKE mara-matnr.

*  DATA:wa_change_kssk TYPE kssk_com,
*       it_change_kssk TYPE STANDARD TABLE OF kssk_com,
*         wa_change_ausp TYPE ausp_com.

  DATA:wa_inspect TYPE bapi1001004_qmat,
       it_inspect TYPE TABLE OF bapi1001004_qmat,

       lit_ret    TYPE TABLE OF bapiret2.
  DATA wa_mara TYPE mara.
  DATA:wa_display TYPE ty_display.
  DATA:lv_file TYPE string.

  DATA:ls_file TYPE ta_flatfile.

  DATA:lv_objek TYPE rmclf-objek,
       lv_obtxt TYPE rmclf-obtxt.
***
***
***  IF sy-batch = 'X'.
***
***
***    CASE sy-sysid.
***      WHEN 'AED'.
***        lv_file = '/usr/sap/AED/D10/work/ZMAT.txt'.
***      WHEN 'AEQ'.
***        lv_file = '/usr/sap/AEQ/D20/work/ZMAT.txt'.
***      WHEN 'AEP'.
***        lv_file = '/usr/sap/AEP/D00/work/ZMAT.txt'.
***    ENDCASE.
***
***
***
***    TRY.
***
***        OPEN DATASET lv_file FOR INPUT IN BINARY MODE.
***
***        DO.
***
***          CLEAR ls_file .
***          READ DATASET lv_file INTO ls_file.
***
***          IF sy-subrc = 0.
***            APPEND ls_file TO ta_flatfile.
***          ELSE.
***            EXIT.
***          ENDIF.
***
***        ENDDO.
***
***      CATCH cx_root.
***
***    ENDTRY.
***
***    CLOSE DATASET lv_file.
***    DELETE DATASET lv_file.
***
***  ENDIF.

  SELECT * FROM t134 INTO TABLE it_t134
                     FOR ALL ENTRIES IN ta_flatfile
                     WHERE mtart = ta_flatfile-mtart.
  SELECT * FROM nriv INTO TABLE it_nriv
                     FOR ALL ENTRIES IN it_t134
                     WHERE object = 'MATERIALNR'
                       AND nrrangenr = it_t134-numki.

*NUMKI

  LOOP AT ta_flatfile ASSIGNING <fs_flatfile>.
    IF <fs_flatfile> IS ASSIGNED.

      CLEAR:bapi_head ,
          bapi_mara ,
          bapi_marm,
          bapi_marax ,
          bapi_makt,         "Material Descriptions
          bapi_marc ,        "plant data
          bapi_marcx,
          bapi_mpop ,        "forecast view
          bapi_mpopx ,
          bapi_mpgd ,        "planning view
          bapi_mpgdx ,
          bapi_mard ,        "storage location
          bapi_mardx ,
          bapi_mbew ,        "valuation data
          bapi_mbewx ,
          bapi_mlgn,         "warehouse data
          bapi_mlgnx ,
          bapi_mvke ,        "sales data
          bapi_mvkex ,
          bapi_mlgt ,        "storage data
          bapi_mlgtx ,
          bapireturn.

      REFRESH:git_steuertab[].

      CALL FUNCTION 'STEUERTAB_IDENTIFY'
        EXPORTING
          vkorg                 = <fs_flatfile>-vkorg
          bukrs_vkorg           = '1000'                   "<fs_flatfile>-
BUKRS
          vtweg                 = <fs_flatfile>-vtweg
        TABLES
          steuertab             = git_steuertab
        EXCEPTIONS
          wrong_call            = 1
          vkorg_bukrs_not_found = 2
          steuertab_empty       = 3
          OTHERS                = 4.

      CLEAR wa_tax.
      REFRESH git_tax[].
      LOOP AT git_steuertab ASSIGNING <fs_steuertab>.
        IF <fs_steuertab> IS ASSIGNED.
          wa_tax-depcountry = <fs_steuertab>-aland.
          wa_tax-tax_type_1 = <fs_steuertab>-tatyp.
          wa_tax-taxclass_1 = <fs_flatfile>-taxkm. "1.
          wa_tax-tax_ind    = <fs_flatfile>-taxim.
          APPEND wa_tax TO git_tax.
          CLEAR wa_tax.
        ENDIF.
      ENDLOOP.

****    "***HEADER
      "T134 - MATERIAL TYPE AND Number range link table
      "NRIV - NUMBER RANGE OBJECTS TABLE

      IF  <fs_flatfile>-matnr IS INITIAL.

        READ TABLE it_t134 INTO wa_t134 WITH KEY mtart = <fs_flatfile>-mtart.
        READ TABLE it_nriv INTO wa_nriv WITH KEY object = 'MATERIALNR'
                                                 nrrangenr = wa_t134-numki.

        CALL FUNCTION 'NUMBER_GET_NEXT'
          EXPORTING
            nr_range_nr             = wa_nriv-nrrangenr
            object                  = wa_nriv-object
            quantity                = '1'
*           SUBOBJECT               = ' '
*           TOYEAR                  = '0000'
*           IGNORE_BUFFER           = ' '
          IMPORTING
            number                  = <fs_flatfile>-matnr
*           QUANTITY                =
*           RETURNCODE              =
          EXCEPTIONS
            interval_not_found      = 1
            number_range_not_intern = 2
            object_not_found        = 3
            quantity_is_0           = 4
            quantity_is_not_1       = 5
            interval_overflow       = 6
            buffer_overflow         = 7
            OTHERS                  = 8.
        IF sy-subrc <> 0.
* Implement suitable error handling here
        ENDIF.
*NUMBER_GET_NEXT

      ENDIF.

      TRANSLATE <fs_flatfile>-matnr TO UPPER CASE.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = <fs_flatfile>-matnr "material
        IMPORTING
          output = <fs_flatfile>-matnr. "material.
      IF <fs_flatfile>-matnr CA 'QWERTYUIOPASDFGHJKLZXCVBNM'.
        <fs_flatfile>-matnr = <fs_flatfile>-matnr.
      ELSE.
        <fs_flatfile>-matnr = <fs_flatfile>-matnr+22(18).
      ENDIF.

*      BAPI_HEAD-MATERIAL        = <FS_FLATFILE>-MATNR.
      bapi_head-material_long        = <fs_flatfile>-matnr.

*      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
*        EXPORTING
*          INPUT  = BAPI_HEAD-MATERIAL_LONG "material
*        IMPORTING
*          OUTPUT = BAPI_HEAD-MATERIAL_LONG. "material.

      bapi_head-ind_sector      = <fs_flatfile>-mbrsh.
      bapi_head-matl_type       = <fs_flatfile>-mtart.
      bapi_head-basic_view      = 'X'.
      bapi_head-sales_view      = 'X'.
      bapi_head-mrp_view        = 'X'.
      bapi_head-purchase_view   = 'X'.
      bapi_head-forecast_view   = 'X'.
      bapi_head-work_sched_view = 'X'.
      bapi_head-prt_view        = 'X'.
      bapi_head-storage_view    = 'X'.
      bapi_head-warehouse_view  = 'X'.
      bapi_head-quality_view    = 'X'.
      bapi_head-account_view    = 'X'.
      bapi_head-cost_view       = 'X'.

      "***client specific material data

      bapi_mara-matl_group = <fs_flatfile>-matkl.

      CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT' """31/03/2018
        EXPORTING
          input    = <fs_flatfile>-meins
          language = sy-langu
        IMPORTING
          output   = <fs_flatfile>-meins.

      bapi_mara-base_uom   = <fs_flatfile>-meins.
      TRANSLATE bapi_mara-base_uom TO UPPER CASE.
      bapi_mara-extmatlgrp = <fs_flatfile>-extwg.
      bapi_mara-division   = <fs_flatfile>-spart.
      bapi_mara-dsn_office = <fs_flatfile>-labor.
      IF <fs_flatfile>-gewei IS INITIAL.
        bapi_mara-unit_of_wt = 'KG'.
      ELSE.
        bapi_mara-unit_of_wt = <fs_flatfile>-gewei.
      ENDIF.
      bapi_mara-net_weight = <fs_flatfile>-ntgew.
      bapi_mara-size_dim   = <fs_flatfile>-groes.
      bapi_mara-prod_memo  = <fs_flatfile>-ferth.
      bapi_mara-std_descr  = <fs_flatfile>-normt.
      bapi_mara-pageformat = <fs_flatfile>-formt.
      bapi_mara-pur_valkey = <fs_flatfile>-ekwsl.
      bapi_mara-manuf_prof = <fs_flatfile>-mprof.
      bapi_mara-manu_mat   = <fs_flatfile>-mfrpn.
      bapi_mara-mfr_no     = <fs_flatfile>-mfrnr.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = bapi_mara-mfr_no
        IMPORTING
          output = bapi_mara-mfr_no.

      bapi_mara-qm_procmnt = <fs_flatfile>-qmpur.
      bapi_mara-basic_matl = <fs_flatfile>-wrkst.
      bapi_mara-document   = <fs_flatfile>-zeinr.
      bapi_mara-doc_type   = <fs_flatfile>-zeiar.
      bapi_mara-doc_vers   = <fs_flatfile>-zeivr.
      bapi_mara-trans_grp  = <fs_flatfile>-tragr.
      bapi_mara-item_cat   = <fs_flatfile>-mtpos.
      bapi_mara-ipmipproduct = <fs_flatfile>-msbookpartno.
      bapi_mara-batch_mgmt = <fs_flatfile>-xchpf.

      IF <fs_flatfile>-mtart = 'FERT' OR <fs_flatfile>-mtart = 'ZMAT'.
        bapi_mara-serialization_level = '1'.
      ENDIF.
      bapi_mara-temp_conds  = <fs_flatfile>-tempb.
      bapi_mara-stor_conds  = <fs_flatfile>-raube.
      ""sales genral data 25/01/2018
      bapi_mara-sh_mat_typ  = <fs_flatfile>-vhart.
      bapi_mara-allowed_wt  = <fs_flatfile>-ergew.
      bapi_mara-pack_wt_un  = <fs_flatfile>-ergei.
      bapi_mara-allwd_vol   = <fs_flatfile>-ervol.
      bapi_mara-pack_vo_un  = <fs_flatfile>-ervoe.
      bapi_mara-wt_tol_lt   = <fs_flatfile>-gewto.
      bapi_mara-vol_tol_lt  = <fs_flatfile>-volto.
      bapi_mara-prod_hier  = <fs_flatfile>-prdha.               "Product hier
archy
      bapi_mara-mat_grp_sm  = <fs_flatfile>-magrv.               "Material Gr
oup Pack   "added by Kamesh
      "Information on update for CLIENTDATAX

      bapi_marax-matl_group = 'X'.
      bapi_marax-base_uom   = 'X'.
      bapi_marax-extmatlgrp = 'X'.
      bapi_marax-division   = 'X'.
      bapi_marax-dsn_office = 'X'.
      bapi_marax-unit_of_wt = 'X'.
      bapi_marax-net_weight = 'X'.
      bapi_marax-size_dim   = 'X'.
      bapi_marax-prod_memo  = 'X'.
      bapi_marax-std_descr  = 'X'.
      bapi_marax-pageformat = 'X'.
      bapi_marax-pur_valkey = 'X'.
      bapi_marax-manuf_prof = 'X'.
      bapi_marax-manu_mat   = 'X'.
      bapi_marax-mfr_no     = 'X'.
      bapi_marax-qm_procmnt = 'X'.
      bapi_marax-basic_matl = 'X'.
      bapi_marax-document   = 'X'.
      bapi_marax-doc_type   = 'X'.
      bapi_marax-doc_vers   = 'X'.
      bapi_marax-trans_grp  = 'X'.
      bapi_marax-item_cat   = 'X'.
      bapi_marax-ipmipproduct = 'X'.
      bapi_marax-batch_mgmt = 'X'.
      IF <fs_flatfile>-mtart = 'FERT' OR <fs_flatfile>-mtart = 'ZMAT'.
        bapi_marax-serialization_level = '1'.
      ENDIF.
      bapi_marax-temp_conds  = 'X'.
      bapi_marax-stor_conds  = 'X'.
      bapi_marax-sh_mat_typ  = 'X'.
      bapi_marax-allowed_wt  = 'X'.
      bapi_marax-pack_wt_un  = 'X'.
      bapi_marax-allwd_vol   = 'X'.
      bapi_marax-pack_vo_un  = 'X'.
      bapi_marax-wt_tol_lt   = 'X'.
      bapi_marax-vol_tol_lt  = 'X'.
      bapi_marax-prod_hier  = 'X'.

      IF bapi_mara-mat_grp_sm IS NOT INITIAL.
        bapi_marax-mat_grp_sm = 'X'.
      ENDIF.

      bapi_marc-plant      = <fs_flatfile>-werks.
      bapi_marc-pur_group  = <fs_flatfile>-ekgrp.
      bapi_marc-auto_p_ord = <fs_flatfile>-kautb.
*      bapi_marc-batch_mgmt = <fs_flatfile>-xchpf.    "venkatesh
      bapi_marc-crit_part  = <fs_flatfile>-kzkri.
      bapi_marc-abc_id     = <fs_flatfile>-maabc.
      bapi_marc-fixed_lot  = <fs_flatfile>-bstfe.
      bapi_marc-bulk_mat   = <fs_flatfile>-schgt.
      bapi_marc-inhseprodt = <fs_flatfile>-dzeit.
      bapi_marc-consummode = <fs_flatfile>-vrmod.
      bapi_marc-bwd_cons   = <fs_flatfile>-vint1.
      bapi_marc-fwd_cons   = <fs_flatfile>-vint2.
      IF <fs_flatfile>-lzeih = 'DAY'.
        bapi_marc-stge_pd_un = 'TAG'.
      ENDIF.
      bapi_marc-doc_reqd   = <fs_flatfile>-kzdkz.
      bapi_marc-mrp_type   = <fs_flatfile>-dismm.
      bapi_marc-mrp_ctrler = <fs_flatfile>-dispo.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = bapi_marc-mrp_ctrler
        IMPORTING
          output = bapi_marc-mrp_ctrler.
      bapi_marc-plnd_delry = <fs_flatfile>-plifz.
      bapi_marc-gr_pr_time = <fs_flatfile>-webaz.
      bapi_marc-lotsizekey = <fs_flatfile>-disls.
      bapi_marc-minlotsize = <fs_flatfile>-bstmi.
      bapi_marc-maxlotsize  = <fs_flatfile>-bstma.
      bapi_marc-sm_key     = <fs_flatfile>-fhori.
      bapi_marc-safety_stk = <fs_flatfile>-eisbe.
      bapi_marc-availcheck = <fs_flatfile>-mtvfp.
      bapi_marc-profit_ctr = <fs_flatfile>-prctr.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = bapi_marc-profit_ctr
        IMPORTING
          output = bapi_marc-profit_ctr.
      bapi_marc-reorder_pt = <fs_flatfile>-minbe.

      bapi_marc-proc_type  = <fs_flatfile>-beskz.
      bapi_marc-iss_st_loc = <fs_flatfile>-lgpro.
      bapi_marc-sloc_exprc = <fs_flatfile>-lgort.
      bapi_marc-backflush  = <fs_flatfile>-rgekz.
      bapi_marc-dep_req_id = <fs_flatfile>-sbdkz.
      bapi_marc-comp_scrap  = <fs_flatfile>-kausf.   "Component Scrap %      
  "Added by Kamesh
      bapi_marc-loadinggrp = <fs_flatfile>-ladgr.
      bapi_marc-spproctype = <fs_flatfile>-sobsl.
      bapi_marc-plan_strgp = <fs_flatfile>-strgr.
      bapi_marc-prodprof   = <fs_flatfile>-sfcpf.
      bapi_marc-serno_prof = <fs_flatfile>-sernp.
      bapi_marc-ctrl_key   = <fs_flatfile>-ssqss.
      bapi_marc-stgeperiod = <fs_flatfile>-maxlx.
      bapi_marc-cert_type  = <fs_flatfile>-qzgtp.
      bapi_marc-mrp_group  = <fs_flatfile>-disgr.
*      bapi_marc-max_stock = <fs_flatfile>-mabst.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = bapi_marc-mrp_group
        IMPORTING
          output = bapi_marc-mrp_group.
      bapi_marc-ctrl_code = <fs_flatfile>-steuc.""THB
      bapi_marc-no_costing = <fs_flatfile>-ncost.
      bapi_marc-minlotsize = <fs_flatfile>-bstmi.
      bapi_marc-maxlotsize = <fs_flatfile>-bstma.
      bapi_marc-assy_scrap = <fs_flatfile>-ausss.            "Assembly Scrap 
%     "Added by kamesh
      bapi_marc-matfrgtgrp = <fs_flatfile>-mfrgr.
*      bapi_marc-SERNO_PROF = <fs_flatfile>-sernp.""THB
      bapi_marc-production_scheduler = <fs_flatfile>-fevor. ""Production supe
rvisor
      bapi_marc-variance_key  = <fs_flatfile>-awsls.        ""varience key

      bapi_marc-sourcelist  = <fs_flatfile>-kordb.        "Source List
      bapi_marc-max_stock = <fs_flatfile>-mabst.

***      "Information on update for PLANTDATA

      bapi_marcx-plant      = <fs_flatfile>-werks.
      bapi_marcx-pur_group  = <fs_flatfile>-ekgrp.
      bapi_marcx-auto_p_ord = 'X'.
*      bapi_marcx-batch_mgmt = 'X'.
      bapi_marcx-serno_prof = 'X'.
      bapi_marcx-crit_part  = 'X'.
      bapi_marcx-abc_id     = 'X'.
      bapi_marcx-fixed_lot  = 'X'.
      bapi_marcx-bulk_mat   = 'X'.
      bapi_marcx-inhseprodt = 'X'.
      bapi_marcx-consummode = 'X'.
      bapi_marcx-bwd_cons   = 'X'.
      bapi_marcx-fwd_cons   = 'X'.
      bapi_marcx-stge_pd_un = 'X'.     "venkatesh
      bapi_marcx-doc_reqd   = 'X'.
      IF bapi_marc-mrp_type IS NOT INITIAL.
        bapi_marcx-mrp_type   = 'X'.
      ENDIF.
      IF bapi_marc-mrp_ctrler IS NOT INITIAL.
        bapi_marcx-mrp_ctrler = 'X'.
      ENDIF.

      bapi_marcx-plnd_delry = 'X'.
      bapi_marcx-gr_pr_time = 'X'. "venkatesh
      bapi_marcx-lotsizekey = 'X'.
      bapi_marcx-sm_key     = 'X'.
      bapi_marcx-availcheck = 'X'.
      bapi_marcx-profit_ctr = 'X'.
      bapi_marcx-reorder_pt = 'X'.
      bapi_marcx-max_stock  = 'X'.
      IF bapi_marc-proc_type IS NOT INITIAL.
        bapi_marcx-proc_type  = 'X'.
      ENDIF.
      bapi_marcx-iss_st_loc = 'X'.
      bapi_marcx-sloc_exprc = 'X'.
      bapi_marcx-dep_req_id = 'X'.
      bapi_marcx-comp_scrap = 'X'.   "kamesh
      bapi_marcx-loadinggrp = 'X'.
      bapi_marcx-spproctype = 'X'.
      bapi_marcx-plan_strgp = 'X'.
      bapi_marcx-prodprof   = 'X'.
      bapi_marcx-serno_prof = 'X'.
      bapi_marcx-safety_stk = 'X'.    "venkatesh
      bapi_marcx-backflush  = 'X'.
      bapi_marcx-ctrl_key   = 'X'.
      bapi_marcx-stgeperiod = 'X'.
      bapi_marcx-cert_type  = 'X'.
      bapi_marcx-mrp_group  = 'X'.
      bapi_marcx-ctrl_code  = 'X'.
      bapi_marcx-no_costing = 'X'.
      bapi_marcx-minlotsize = 'X'.
      bapi_marcx-maxlotsize = 'X'.
      bapi_marcx-assy_scrap = 'X'.   "kamesh
      bapi_marcx-matfrgtgrp = 'X'.
      bapi_marcx-production_scheduler = 'X'.
      bapi_marcx-variance_key = 'X'.
      bapi_marcx-sourcelist = 'X'.
      bapi_marcx-max_stock = 'X'.
      bapi_marcx-lotsizekey = 'X'.

      "STORAGE LOCATION DATA

      bapi_mard-plant = <fs_flatfile>-werks.
      bapi_mard-stge_loc = <fs_flatfile>-lgort.
      bapi_mard-stge_bin = <fs_flatfile>-lgpbe.

      bapi_mardx-plant = <fs_flatfile>-werks.
      bapi_mardx-stge_loc = <fs_flatfile>-lgort.
      bapi_mardx-stge_bin = 'X'.

      bapi_mpop-plant = <fs_flatfile>-werks.
      bapi_mpop-fore_model = <fs_flatfile>-prmod.

      bapi_mpopx-plant = <fs_flatfile>-werks.
      bapi_mpopx-fore_model = 'X'.

      "Valuation Data
      bapi_mbew-val_area   = <fs_flatfile>-werks. "'4001'.
*      bapi_mbew-val_type   = 'IMP'.
      bapi_mbew-qty_struct = <fs_flatfile>-ekalr.
      bapi_mbew-qty_struct = <fs_flatfile>-ekalr.
      bapi_mbew-orig_mat   = <fs_flatfile>-hkmat.
      bapi_mbew-overhead_grp = <fs_flatfile>-kosgr.

*      IF <fs_flatfile>-mtart = 'HALB'.
      bapi_mbew-val_class  = <fs_flatfile>-bklas.
      bapi_mbew-val_cat    = <fs_flatfile>-bwtty.
*        bapi_mbew-max_stock  = <fs_flatfile>-mlast.
      bapi_mbew-ml_settle = <fs_flatfile>-mlast.
      bapi_mbew-price_ctrl = <fs_flatfile>-vprsv.
      bapi_mbew-price_unit = 1. ""<fs_flatfile>-pvprs_1.      "venkatesh

      IF bapi_mbew-ml_settle = '2' AND bapi_mbew-price_ctrl = 'V'.
        bapi_mbew-moving_pr  = <fs_flatfile>-pvprs_1.
      ELSE.
        bapi_mbew-std_price  = <fs_flatfile>-stprs.
      ENDIF.
      bapi_mbew-vclass_pp = <fs_flatfile>-vmbkl.
      bapi_mbew-vclass_py = <fs_flatfile>-vjbkl.

*      ELSEIF <fs_flatfile>-mtart = 'ZHLB'.
*        bapi_mbew-val_class  = <fs_flatfile>-bklas.
*        bapi_mbew-max_stock  = <fs_flatfile>-mlast.
*        bapi_mbew-ml_settle = <fs_flatfile>-mlast.
*        bapi_mbew-price_ctrl = 'V'.   "<fs_flatfile>-vprsv.
*        bapi_mbew-price_unit = 1. " <fs_flatfile>-pvprs_1.      "venkatesh
*        bapi_mbew-moving_pr  = <fs_flatfile>-pvprs_1.   "stprs.
*
*      ELSEIF <fs_flatfile>-mtart = 'ROH'.
*        bapi_mbew-val_class  = <fs_flatfile>-bklas.
**        bapi_marc-max_stock  = <fs_flatfile>-mlast.
*        bapi_mbew-price_ctrl = 'V'.   "<fs_flatfile>-vprsv.
*        bapi_mbew-ml_settle = <fs_flatfile>-mlast.
*        bapi_mbew-price_unit = 1. "<fs_flatfile>-pvprs_1.      "venkatesh
*        bapi_mbew-moving_pr  = <fs_flatfile>-stprs.
*
*      ELSE.
*        bapi_mbew-val_class  = <fs_flatfile>-bklas.
**        bapi_marc-max_stock  = <fs_flatfile>-mlast.
*        bapi_mbew-ml_settle = <fs_flatfile>-mlast.
*        bapi_mbew-price_ctrl = 'S'.   "<fs_flatfile>-vprsv.
*        bapi_mbew-price_unit = 1.  "<fs_flatfile>-pvprs_1.      "venkatesh
*        bapi_mbew-std_price  = <fs_flatfile>-stprs.
*
*      ENDIF.
      """Checkbox Structure for BAPI_MBEW

      bapi_mbewx-val_area   = <fs_flatfile>-werks." <fs_flatfile>-bwkey.
*      bapi_mbewx-val_type   = 'IMP'.    "<fs_flatfile>-bwtar.
      bapi_mbewx-val_class  = 'X'.
      bapi_mbewx-val_cat  = 'X'.
      bapi_mbewx-qty_struct = 'X'.
      bapi_mbewx-orig_mat   = 'X'.
      bapi_mbewx-std_price  = 'X'.
      bapi_mbewx-price_unit = 'X'. "venkatesh
      bapi_mbewx-price_ctrl = 'X'.
      bapi_mbewx-overhead_grp = 'X'.
      bapi_mbewx-moving_pr  = 'X'.
      bapi_mbewx-ml_settle = 'X'.
      bapi_mbewx-vclass_pp = 'X'.
      bapi_mbewx-vclass_py = 'X'.
      """"sales data***

      bapi_mvke-sales_org  = <fs_flatfile>-vkorg.
      bapi_mvke-distr_chan = <fs_flatfile>-vtweg.
*    bapi_mvke-delyg_plnt = <fs_flatfile>-werks.
      bapi_mvke-item_cat   = <fs_flatfile>-mtpos.
      bapi_mvke-prod_hier  = <fs_flatfile>-prodh.
      bapi_mvke-acct_assgt = <fs_flatfile>-ktgrm.
      bapi_mvke-mat_pr_grp = <fs_flatfile>-kondm."Material Pricing Group
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = bapi_mvke-acct_assgt
        IMPORTING
          output = bapi_mvke-acct_assgt.
      bapi_mvke-delyg_plnt = <fs_flatfile>-dwerk.
      bapi_mvke-matl_stats = <fs_flatfile>-versg.
*    bapi_mvke-del_flag = 'X'.

      bapi_mvkex-sales_org  = <fs_flatfile>-vkorg.
      bapi_mvkex-distr_chan = <fs_flatfile>-vtweg.
      bapi_mvkex-item_cat   = 'X'.
      bapi_mvkex-delyg_plnt = 'X'.
      bapi_mvkex-acct_assgt = 'X'.
      bapi_mvkex-matl_stats = 'X'.
      bapi_mvkex-prod_hier  = 'X'.
      bapi_mvkex-mat_pr_grp  = 'X'.

      bapi_makt-langu     = 'EN'.
      bapi_makt-matl_desc = <fs_flatfile>-maktx.
      APPEND bapi_makt TO git_matdesc.
      CLEAR bapi_makt.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = lv_matnr
        IMPORTING
          output = lv_matnr.
      CALL METHOD cl_matnr_chk_mapper=>convert_on_input
        EXPORTING
          iv_matnr40               = <fs_flatfile>-matnr
        IMPORTING
          ev_matnr40               = lv_matnr
        EXCEPTIONS
          excp_matnr_ne            = 1
          excp_matnr_invalid_input = 2
          OTHERS                   = 3.

      wa_text-applobject = 'MATERIAL'.
      wa_text-text_name  = lv_matnr.
      wa_text-text_id    = 'GRUN'.
      wa_text-langu      = 'E'.
      wa_text-langu_iso  = 'EN'.
      wa_text-format_col = 'X'.
      wa_text-text_line  = <fs_flatfile>-maktx1.
      APPEND wa_text TO git_text.
      CLEAR wa_text.

      " Sales Text
      " Sales Text

      wa_text-applobject = 'MVKE'.
      CONCATENATE lv_matnr bapi_mvke-sales_org bapi_mvke-distr_chan
                  INTO wa_text-text_name RESPECTING BLANKS.
      wa_text-text_id    = '0001'.
      wa_text-langu      = 'E'.
      wa_text-langu_iso  = 'EN'.
      wa_text-format_col = 'X'.
      wa_text-text_line  = <fs_flatfile>-stext.
      APPEND wa_text TO git_text.
      CLEAR wa_text.

      " PO Text
      wa_text-applobject = 'MATERIAL'.
      wa_text-text_name  = lv_matnr.
      wa_text-text_id    = 'BEST'.
      wa_text-langu      = 'E'.
      wa_text-langu_iso  = 'EN'.
      wa_text-format_col = 'X'.
      wa_text-text_line  = <fs_flatfile>-potext.
      APPEND wa_text TO git_text.
      CLEAR wa_text.
*************
      IF <fs_flatfile>-meinh IS NOT INITIAL AND
         <fs_flatfile>-umren IS NOT INITIAL AND
         <fs_flatfile>-umrez IS NOT INITIAL.
        bapi_marm-alt_unit     = <fs_flatfile>-meinh.
        bapi_marm-alt_unit_iso = <fs_flatfile>-meinh.
        IF <fs_flatfile>-brgew IS INITIAL.
          bapi_marm-gross_wt     = '0.00'.
        ELSE.
          bapi_marm-gross_wt     = <fs_flatfile>-brgew.
        ENDIF.
        IF <fs_flatfile>-gewei IS INITIAL.
          bapi_marm-unit_of_wt = 'KG'.
        ELSE.
          bapi_marm-unit_of_wt   = <fs_flatfile>-gewei.
        ENDIF.

        bapi_marm-volume       = <fs_flatfile>-volum.
        bapi_marm-volumeunit   = <fs_flatfile>-voleh.
        bapi_marm-denominatr   = <fs_flatfile>-umren.
        bapi_marm-numerator    = <fs_flatfile>-umrez.
        bapi_marm-length       =  <fs_flatfile>-length.
        bapi_marm-width        =  <fs_flatfile>-width.
        bapi_marm-height       =  <fs_flatfile>-height.
        bapi_marm-unit_dim     =  <fs_flatfile>-unit_dim.

        APPEND bapi_marm TO git_uom.
        CLEAR bapi_marm.

        bapi_marmx-alt_unit     = <fs_flatfile>-meinh.
        bapi_marmx-alt_unit_iso = <fs_flatfile>-meinh.
        bapi_marmx-gross_wt     = 'X'.
        bapi_marmx-unit_of_wt   = 'X'.
        bapi_marmx-volume       = 'X'.
        bapi_marmx-volumeunit   = 'X'.
        bapi_marmx-denominatr   = 'X'.
        bapi_marmx-numerator    = 'X'.
        bapi_marmx-length        = 'X'.
        bapi_marmx-width         = 'X'.
        bapi_marmx-height        = 'X'.
        bapi_marmx-unit_dim      = 'X'.
        APPEND bapi_marmx TO git_uomx.
        CLEAR bapi_marmx.

        IF <fs_flatfile>-meinh1 IS NOT INITIAL AND
        <fs_flatfile>-umren1 IS NOT INITIAL AND
        <fs_flatfile>-umrez1 IS NOT INITIAL.

** for conversions
          bapi_marm-alt_unit     = <fs_flatfile>-meinh1.
          bapi_marm-alt_unit_iso = <fs_flatfile>-meinh1.
          bapi_marm-denominatr   = <fs_flatfile>-umren1.
          bapi_marm-numerator    = <fs_flatfile>-umrez1.

          APPEND bapi_marm TO git_uom.
          CLEAR bapi_marm.
          bapi_marmx-alt_unit     = <fs_flatfile>-meinh1.
          bapi_marmx-alt_unit_iso = <fs_flatfile>-meinh1.
          bapi_marmx-gross_wt     = 'X'.
          bapi_marmx-unit_of_wt   = 'X'.
          bapi_marmx-volume       = 'X'.
          bapi_marmx-volumeunit   = 'X'.
          bapi_marmx-denominatr   = 'X'.
          bapi_marmx-numerator    = 'X'.
          APPEND bapi_marmx TO git_uomx.
          CLEAR bapi_marmx.
        ENDIF.
      ENDIF.

      wa_parex-structure = 'BAPI_TE_MARA'.
      wa_parex-valuepart1+0(40)  = <fs_flatfile>-matnr.
      wa_parex-valuepart1+40(32) = <fs_flatfile>-ovlpn.
      wa_parex-valuepart1+72(1)  = <fs_flatfile>-adspc_spc.
      wa_parex-valuepart1+73(40) = <fs_flatfile>-msbookpartno. "OMSR
      APPEND wa_parex TO git_parex.
      CLEAR wa_parex.

      wa_parexx-structure = 'BAPI_TE_MARAX'.
      wa_parexx-valuepart1+0(40) = <fs_flatfile>-matnr.
      wa_parexx-valuepart1+40(1) = 'X'.
      wa_parexx-valuepart1+41(1) = 'X'.
      wa_parexx-valuepart1+42(1) = 'X'.
      APPEND wa_parexx TO git_parexx.
      CLEAR wa_parexx.

      CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
        EXPORTING
          headdata             = bapi_head
          clientdata           = bapi_mara
          clientdatax          = bapi_marax
          plantdata            = bapi_marc
          plantdatax           = bapi_marcx
          forecastparameters   = bapi_mpop
          forecastparametersx  = bapi_mpopx
          storagelocationdata  = bapi_mard
          storagelocationdatax = bapi_mardx
          valuationdata        = bapi_mbew
          valuationdatax       = bapi_mbewx
          salesdata            = bapi_mvke
          salesdatax           = bapi_mvkex
          storagetypedata      = bapi_mlgt
          storagetypedatax     = bapi_mlgtx
        IMPORTING
          return               = bapireturn
        TABLES
          materialdescription  = git_matdesc
          unitsofmeasure       = git_uom
          unitsofmeasurex      = git_uomx
          materiallongtext     = git_text
          taxclassifications   = git_tax
          returnmessages       = git_return.
**->  Begin Of Changes NCHOUDHURY  22.10.2016 17:25:13
*          extensionin          = git_parex
*          extensioninx         = git_parexx.
**->  End Of Changes NCHOUDHURY | 22.10.2016 17:25:13

      IF bapireturn-type = 'S' AND bapireturn-id = 'MM' AND bapireturn-number 
= '356'.

        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

        wa_display-sno        = <fs_flatfile>-sno.
        wa_display-type       = bapireturn-type.
        wa_display-id         = bapireturn-id.
        wa_display-number     = bapireturn-number.
        wa_display-message    = bapireturn-message.
        wa_display-message_v1 = bapireturn-message_v1.
        APPEND wa_display TO it_display.
        CLEAR wa_display.

        lv_objek = <fs_flatfile>-matnr.
        lv_obtxt = <fs_flatfile>-maktx.
**->  Begin Of Changes NCHOUDHURY  22.10.2016 17:25:23
        UPDATE mara SET adspc_spc = <fs_flatfile>-adspc_spc
                        ovlpn     = <fs_flatfile>-ovlpn
                        WHERE matnr = <fs_flatfile>-matnr.
* *->  End Of Changes NCHOUDHURY | 22.10.2016 17:25:23

        IF <fs_flatfile>-cv = 'X'.
          WAIT UP TO 1 SECONDS.
          CALL FUNCTION 'CLFM_OBJECT_CLASSIFICATION'
            EXPORTING
              class                    = <fs_flatfile>-class
              classtype                = <fs_flatfile>-klart
*             initflag                 = 'X'
              meins                    = <fs_flatfile>-meins
              no_display               = 'X'
              object                   = lv_objek
              objtxt                   = lv_obtxt
              ptable                   = 'MARA'
              ref_datuv                = sy-datum
              status                   = '1'
              table                    = 'MARA'
              bi_dialog                = 'X'
            EXCEPTIONS
              classification_not_found = 1
              class_not_found          = 2
              class_not_valid          = 3
              foreign_lock             = 4
              no_multi_classif         = 5
              system_failure           = 6
              only_with_change_number  = 7
              change_nr_not_compatible = 8
              no_auth_klart            = 9
              change_nr_changed        = 10
              value_not_found          = 11
              OTHERS                   = 12.

          CALL FUNCTION 'CLAP_DDB_SAVE_CLASSIFICATION'
            EXPORTING
              with_commit = 'X'.
        ENDIF.

*BREAK-POINT.
        IF <fs_flatfile>-art = '01' OR <fs_flatfile>-art = '04'.

          wa_inspect-function                = '009'.
          wa_inspect-insptype                = <fs_flatfile>-art.
*          wa_inspect-material                = <fs_flatfile>-matnr.
          wa_inspect-material_long            = <fs_flatfile>-matnr.
          wa_inspect-plant                   = <fs_flatfile>-werks.
          wa_inspect-qual_score_procedure    = '06'.
          wa_inspect-ind_insptype_mat_active = <fs_flatfile>-aktiv.
          wa_inspect-preferred_insptype      = <fs_flatfile>-apa.     "Prefer
eed Inspection Type    "Added by kamesh

          wa_inspect-ind_post_to_insp_stock    = 'X'.
          wa_inspect-ind_insp_with_tsk_list    = 'X'.
          wa_inspect-ind_auto_assign           = 'X'.
          wa_inspect-ind_insp_by_charac        = 'X'.
          wa_inspect-ind_skips_allowed         = 'X'.
          wa_inspect-ind_automatic_ud          = 'X'.
          wa_inspect-ind_single_units_possible = 'X'.
          APPEND wa_inspect TO it_inspect.
          CLEAR wa_inspect.

        ELSEIF <fs_flatfile>-art = '03'.

          wa_inspect-function                = '009'.
          wa_inspect-insptype                = <fs_flatfile>-art.
*          wa_inspect-material                = <fs_flatfile>-matnr.
          wa_inspect-material_long            = <fs_flatfile>-matnr.
          wa_inspect-plant                   = <fs_flatfile>-werks.
          wa_inspect-qual_score_procedure    = '06'.
          wa_inspect-ind_insptype_mat_active = <fs_flatfile>-aktiv.
          wa_inspect-preferred_insptype      = <fs_flatfile>-apa.     "Prefer
eed Inspection Type    "Added by kamesh
          wa_inspect-ind_insp_with_tsk_list    = 'X'.
          wa_inspect-ind_insp_by_charac        = 'X'.
          wa_inspect-ind_skips_allowed         = 'X'.
          wa_inspect-ind_single_units_possible = 'X'.
          APPEND wa_inspect TO it_inspect.
          CLEAR wa_inspect.

        ELSEIF <fs_flatfile>-art = '89'.

          wa_inspect-function                = '009'.
          wa_inspect-insptype                = <fs_flatfile>-art.
*          wa_inspect-material                = <fs_flatfile>-matnr.
          wa_inspect-material_long            = <fs_flatfile>-matnr.
          wa_inspect-plant                   = <fs_flatfile>-werks.
          wa_inspect-qual_score_procedure    = '06'.
          wa_inspect-ind_insptype_mat_active = <fs_flatfile>-aktiv.
          wa_inspect-preferred_insptype      = <fs_flatfile>-apa.       "Pref
ereed Inspection Type    "Added by kamesh

*           wa_inspect-ind_post_to_insp_stock    = 'X'.
          wa_inspect-ind_insp_with_tsk_list    = 'X'.
          wa_inspect-ind_auto_assign           = 'X'.
          wa_inspect-ind_insp_by_charac        = 'X'.
          wa_inspect-ind_skips_allowed         = 'X'.
          wa_inspect-ind_automatic_ud          = 'X'.
          wa_inspect-ind_single_units_possible = 'X'.

          APPEND wa_inspect TO it_inspect.
          CLEAR wa_inspect.

        ENDIF.

        CALL FUNCTION 'BAPI_MATINSPCTRL_SAVEREPLICA'
          TABLES
            return         = lit_ret
            inspectionctrl = it_inspect.
        UPDATE mara SET bismt = <fs_flatfile>-bismt
                        brgew = <fs_flatfile>-brgew
                        ovlpn = <fs_flatfile>-ovlpn
                        msbookpartno = <fs_flatfile>-msbookpartno
                    WHERE matnr = <fs_flatfile>-matnr.

      ELSE.

        ROLLBACK WORK. "ADDED BY IBR ON 5.03.2019
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

        CLEAR wa_display.
        wa_display-sno        = <fs_flatfile>-sno.
        wa_display-type       = bapireturn-type.
        wa_display-id         = bapireturn-id.
        wa_display-number     = bapireturn-number.
        wa_display-message    = bapireturn-message.
        wa_display-message_v1 = <fs_flatfile>-matnr.
        APPEND wa_display TO it_display.
        CLEAR wa_display.
      ENDIF.

      CALL FUNCTION 'DEQUEUE_ALL'.

      IF <fs_flatfile>-vkorg IS INITIAL.
        UPDATE mlan SET taxim = <fs_flatfile>-taxim  """"TAX IND for material 
purchange level 08/11/2017
                        aland = 'IN'
                  WHERE matnr = <fs_flatfile>-matnr.
      ENDIF.

      CLEAR:bapi_head,bapi_mara, bapi_marax,bapi_marc, bapi_marcx,
            bapi_mard,bapi_mardx,bapi_mpop, bapi_mpopx,bapireturn,
            bapi_mbew,bapi_mbewx,bapi_mvke, bapi_mvkex,lv_objek,lv_obtxt.

      REFRESH:git_matdesc,git_uom,git_uomx,git_return,git_tax,
      git_text,git_return,git_parex,git_parexx,it_inspect.

    ENDIF.
  ENDLOOP.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  DISPLAY_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_data .

  DATA:lt_fieldcat TYPE slis_t_fieldcat_alv,
       ls_fieldcat TYPE slis_fieldcat_alv,
       lwa_layout  TYPE slis_layout_alv.

  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname = 'SNO'.
  ls_fieldcat-seltext_l = 'SNO'.
  ls_fieldcat-seltext_m = 'SNO'.
  ls_fieldcat-seltext_s = 'SNO'.
  APPEND ls_fieldcat TO lt_fieldcat.

  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname = 'TYPE'.
  ls_fieldcat-seltext_l = 'Message Type'.
  ls_fieldcat-seltext_m = 'Message Type'.
  ls_fieldcat-seltext_s = 'Message Type'.
  APPEND ls_fieldcat TO lt_fieldcat.

  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname = 'MESSAGE_V1'.
  ls_fieldcat-seltext_l = 'Material'.
  ls_fieldcat-seltext_m = 'Material'.
  ls_fieldcat-seltext_s = 'Material'.
  APPEND ls_fieldcat TO lt_fieldcat.

  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname = 'MESSAGE'.
  ls_fieldcat-seltext_l = 'Message'.
  ls_fieldcat-seltext_m = 'Message'.
  ls_fieldcat-seltext_s = 'Message'.
  APPEND ls_fieldcat TO lt_fieldcat.

  lwa_layout-zebra = 'X'.
  lwa_layout-colwidth_optimize = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = sy-repid
      is_layout          = lwa_layout
      it_fieldcat        = lt_fieldcat
      i_save             = 'X'
    TABLES
      t_outtab           = it_display
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  CHECK_FILE_PATH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM check_file_path .

  DATA:lv_file TYPE string,
       lv_res  TYPE char1.
  CHECK sy-batch = ' '.

  lv_file = p_file.

  CALL METHOD cl_gui_frontend_services=>file_exist
    EXPORTING
      file                 = lv_file
    RECEIVING
      result               = lv_res
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      wrong_parameter      = 3
      not_supported_by_gui = 4
      OTHERS               = 5.

  IF lv_res = ' '.
    MESSAGE 'Check File Path'  TYPE 'E'.
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  SET_BACKGROUND_JOB
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM set_background_job .

  DATA : i_type    TYPE truxs_t_text_data.
  DATA:ls_file TYPE ta_flatfile.

  DATA:lv_file TYPE string.

  DATA:lv_file2 TYPE rlgrap-filename.

  CHECK pv_bg = 'X'.

*  PROCEED ONLY IF ITS A VALID FILETYPE
  IF ename EQ 'XLSX' OR ename EQ 'XLS'.

    REFRESH ta_flatfile[].

    lv_file2 = p_file.

*   FM TO UPLOAD DATA INTO INTERNAL TABLE FROM EXCEL
    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
      EXPORTING
        i_tab_raw_data       = i_type
        i_filename           = lv_file2
      TABLES
        i_tab_converted_data = ta_flatfile[]
      EXCEPTIONS
        conversion_failed    = 1
        OTHERS               = 2.

    DELETE ta_flatfile FROM 1 TO 2.

  ELSE.
    MESSAGE e398(00) WITH 'Invalid File Type'  .
  ENDIF.

  IF ta_flatfile IS INITIAL.
    MESSAGE 'No records to upload' TYPE 'E'.
  ENDIF.

*  CASE sy-sysid.
*    WHEN 'AED'.
*      lv_file = '/usr/sap/AED/D10/work/ZMAT.txt'.
*    WHEN 'AEQ'.
*      lv_file = '/usr/sap/AEQ/D20/work/ZMAT.txt'.
*    WHEN 'AEP'.
*      lv_file = '/usr/sap/AEP/D00/work/ZMAT.txt'.
*  ENDCASE.

  TRY.

      DELETE DATASET lv_file.

      OPEN DATASET lv_file FOR OUTPUT IN BINARY MODE.

      LOOP AT ta_flatfile INTO ls_file .
        TRANSFER ls_file TO lv_file.
      ENDLOOP.

    CATCH cx_root.

  ENDTRY.

  CLOSE DATASET lv_file.

  DATA:lv_jobcount TYPE tbtcjob-jobcount.

  CALL FUNCTION 'JOB_OPEN'
    EXPORTING
      jobname          = 'MATERIAL_CREATION'
    IMPORTING
      jobcount         = lv_jobcount
    EXCEPTIONS
      cant_create_job  = 1
      invalid_job_data = 2
      jobname_missing  = 3
      OTHERS           = 4.

  DATA:lv_authcknam TYPE tbtcjob-authcknam.

  lv_authcknam = sy-uname.

  CALL FUNCTION 'JOB_SUBMIT'
    EXPORTING
      authcknam               = lv_authcknam
      jobcount                = lv_jobcount
      jobname                 = 'MATERIAL_CREATION'
      report                  = sy-repid
    EXCEPTIONS
      bad_priparams           = 1
      bad_xpgflags            = 2
      invalid_jobdata         = 3
      jobname_missing         = 4
      job_notex               = 5
      job_submit_failed       = 6
      lock_failed             = 7
      program_missing         = 8
      prog_abap_and_extpg_set = 9
      OTHERS                  = 10.

  CALL FUNCTION 'JOB_CLOSE'
    EXPORTING
      jobcount             = lv_jobcount
      jobname              = 'MATERIAL_CREATION'
      strtimmed            = 'X'
    EXCEPTIONS
      cant_start_immediate = 1
      invalid_startdate    = 2
      jobname_missing      = 3
      job_close_failed     = 4
      job_nosteps          = 5
      job_notex            = 6
      lock_failed          = 7
      invalid_target       = 8
      OTHERS               = 9.

  MESSAGE 'BACKGROUND JOB START' TYPE 'S'.

ENDFORM.

You might also like