Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

BDC for Material master

Former Member
0 Kudos

Hi ,

I am developing the BI program for Material Master (MM01) and change MM02(Both create and change).

Can you let me know how do i select particular views before creating/changing the material .

Is there any specific function module available to do this ..

If you help me with any sample coding ,that would be great.

Thanks

Raj

1 ACCEPTED SOLUTION

Former Member
0 Kudos

HI raj,

1. Selecting the VIEW

is a little tricky.

2. 'MSICHTAUSW-KZSEL(01)' 'X'

this is the field

01 = first row

02 = second row

try this code (just copy paste in new program)

It will select the BASIC View

(u can modify to select other view)

3.

REPORT abc.

INCLUDE yhri_inclfor_bdc..

DATA : msg LIKE TABLE OF yhrs_bdcmsg WITH HEADER LINE.

PARAMETERS : a TYPE c.

parameters : t(50) type c default 'AE31 Main Mould X side' lower case.

START-OF-SELECTION.

ctumode = 'A'.

.

PERFORM bdcfield USING :

'X' 'SAPLMGMM' '0060'

, '' 'RMMG1-MATNR' '4000036'

, '' 'BDC_OKCODE' '=ENTR'

, 'X' 'SAPLMGMM' '0070'

, '' 'BDC_CURSOR' 'MSICHTAUSW-DYTXT(01)'

, '' 'MSICHTAUSW-KZSEL(01)' 'X'

, '' 'BDC_OKCODE' '=ENTR'

*, '' 'BDC_OKCODE' '/00'

, 'X' 'SAPLMGMM' '4004'

, '' 'MARA-BISMT' 'PPP'

, ' ' 'MAKT-MAKTX' t

.

PERFORM bdc_transaction

TABLES msg

USING 'MM02' '' '' ''.

&----


*& Form bdcfield

&----


  • text

----


  • -->P1 text

  • -->P2 text

  • -->P3 text

----


FORM bdcfield USING p1 p2 p3.

CLEAR bdcdata.

IF p1 = 'X'.

bdcdata-dynbegin = 'X'.

bdcdata-program = p2.

bdcdata-dynpro = p3.

ELSE.

bdcdata-fnam = p2.

bdcdata-fval = p3.

ENDIF.

APPEND bdcdata.

ENDFORM. "show_bdcmsg

regards,

amit m.

5 REPLIES 5

Former Member
0 Kudos

HI raj,

1. Selecting the VIEW

is a little tricky.

2. 'MSICHTAUSW-KZSEL(01)' 'X'

this is the field

01 = first row

02 = second row

try this code (just copy paste in new program)

It will select the BASIC View

(u can modify to select other view)

3.

REPORT abc.

INCLUDE yhri_inclfor_bdc..

DATA : msg LIKE TABLE OF yhrs_bdcmsg WITH HEADER LINE.

PARAMETERS : a TYPE c.

parameters : t(50) type c default 'AE31 Main Mould X side' lower case.

START-OF-SELECTION.

ctumode = 'A'.

.

PERFORM bdcfield USING :

'X' 'SAPLMGMM' '0060'

, '' 'RMMG1-MATNR' '4000036'

, '' 'BDC_OKCODE' '=ENTR'

, 'X' 'SAPLMGMM' '0070'

, '' 'BDC_CURSOR' 'MSICHTAUSW-DYTXT(01)'

, '' 'MSICHTAUSW-KZSEL(01)' 'X'

, '' 'BDC_OKCODE' '=ENTR'

*, '' 'BDC_OKCODE' '/00'

, 'X' 'SAPLMGMM' '4004'

, '' 'MARA-BISMT' 'PPP'

, ' ' 'MAKT-MAKTX' t

.

PERFORM bdc_transaction

TABLES msg

USING 'MM02' '' '' ''.

&----


*& Form bdcfield

&----


  • text

----


  • -->P1 text

  • -->P2 text

  • -->P3 text

----


FORM bdcfield USING p1 p2 p3.

CLEAR bdcdata.

IF p1 = 'X'.

bdcdata-dynbegin = 'X'.

bdcdata-program = p2.

bdcdata-dynpro = p3.

ELSE.

bdcdata-fnam = p2.

bdcdata-fval = p3.

ENDIF.

APPEND bdcdata.

ENDFORM. "show_bdcmsg

regards,

amit m.

former_member188685
Active Contributor
0 Kudos

Hi,

why are going for Batch input, you can try with BAPI , you have bapi for both.

check this code..

REPORT Z_BAPI_MAT.
**********************************************************************
*                STRUCTURE  DECLARATIONS                             *
**********************************************************************

TABLES: BAPIMATHEAD,  "Headerdata
        BAPI_MARA,    "Clientdata
        BAPI_MARAX,   "Clientdatax
        BAPI_MARC,    "Plantdata
        BAPI_MARCX,   "Plantdatax
        BAPI_MAKT,    "Material description
        BAPIRET2.     "Return messages

DATA:V_FILE TYPE STRING.


DATA:
  BEGIN OF LSMW_MATERIAL_MASTER,
    MATNR(018) TYPE C,  "Material number
    MTART(004) TYPE C,  "Material type
    MBRSH(001) TYPE C,  "Industry sector
    WERKS(004) TYPE C,  "Plant
    MAKTX(040) TYPE C,  "Material description
    DISMM(002) TYPE C,  "Extra Field Added In the Program as itsrequired
    MEINS(003) TYPE C,  "Base unit of measure
    MATKL(009) TYPE C,  "Material group
    SPART(002) TYPE C,  "Division
    LABOR(003) TYPE C,  "Lab/office
    PRDHA(018) TYPE C,  "Product hierarchy
    MSTAE(002) TYPE C,  "X-plant matl status
    MTPOS_MARA(004) TYPE C,  "Gen item cat group
    BRGEW(017) TYPE C,  "Gross weight
    GEWEI(003) TYPE C,  "Weight unit
    NTGEW(017) TYPE C,  "Net weight
    GROES(032) TYPE C,  "Size/Dimensions
    MAGRV(004) TYPE C,  "Matl grp pack matls
    BISMT(018) TYPE C,  "Old material number
    WRKST(048) TYPE C,  "Basic material
    PROFL(003) TYPE C,  "DG indicator profile
    KZUMW(001) TYPE C,  "Environmentally rlvt
    BSTME(003) TYPE C,  "Order unit
    VABME(001) TYPE C,
    EKGRP(003) TYPE C,  "Purchasing group
    XCHPF(001) TYPE C,  "Batch management
    EKWSL(004) TYPE C,  "Purchasing key value
    WEBAZ(003) TYPE C,  "GR processing time
    MFRPN(040) TYPE C,  "Manufacturer part number
    MFRNR(010) TYPE C,  "Manufacturer number
    VPRSV(001) TYPE C,  "Price control indicator
    STPRS(015) TYPE C,  "Standard price
    BWPRH(014) TYPE C,  "Commercial price1
    BKLAS(004) TYPE C,  "Valuation class
  END OF LSMW_MATERIAL_MASTER.


**********************************************************************
*                INTERNAL TABLE DECLARATIONS                         *
**********************************************************************

*to store the input data
DATA:
  BEGIN OF it_matmaster OCCURS 0.
        INCLUDE STRUCTURE LSMW_MATERIAL_MASTER.

DATA:
  END OF it_matmaster.

*for material description
DATA:BEGIN OF IT_MATERIALDESC OCCURS 0.
     INCLUDE STRUCTURE BAPI_MAKT .
DATA:END OF IT_MATERIALDESC.

*to return messages
DATA:BEGIN OF IT_RETURN OCCURS 0.
     INCLUDE STRUCTURE BAPIRET2.
DATA:END OF IT_RETURN.

************************************************************************
*  SELECTION SCREEN
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.

PARAMETERS:P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1 .

************************************************************************
* AT SELECTION SCREEN
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      PROGRAM_NAME  = SYST-CPROG
      DYNPRO_NUMBER = SYST-DYNNR
      FIELD_NAME    = 'P_FILE'
    IMPORTING
      FILE_NAME     = P_FILE.



**********************************************************************
*                TO UPLOAD THE DATA                                  *
**********************************************************************

START-OF-SELECTION.
V_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
  EXPORTING
    filename                      = V_FILE
   FILETYPE                      = 'ASC'
   HAS_FIELD_SEPARATOR           = 'X'
*   HEADER_LENGTH                 = 0
*   READ_BY_LINE                  = 'X'
*   DAT_MODE                      = ' '
* IMPORTING
*   FILELENGTH                    =
*   HEADER                        =
  tables
    data_tab                      =  IT_MATMASTER
 EXCEPTIONS
   FILE_OPEN_ERROR               = 1
   FILE_READ_ERROR               = 2
   NO_BATCH                      = 3
   GUI_REFUSE_FILETRANSFER       = 4
   INVALID_TYPE                  = 5
   NO_AUTHORITY                  = 6
   UNKNOWN_ERROR                 = 7
   BAD_DATA_FORMAT               = 8
   HEADER_NOT_ALLOWED            = 9
   SEPARATOR_NOT_ALLOWED         = 10
   HEADER_TOO_LONG               = 11
   UNKNOWN_DP_ERROR              = 12
   ACCESS_DENIED                 = 13
   DP_OUT_OF_MEMORY              = 14
   DISK_FULL                     = 15
   DP_TIMEOUT                    = 16
   OTHERS                        = 17
          .
IF sy-subrc <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

**********************************************************************
*                DATA POPULATIONS                                    *
**********************************************************************


LOOP AT  IT_MATMASTER.
  BAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
  BAPIMATHEAD-IND_SECTOR = IT_MATMASTER-Mbrsh.
  BAPIMATHEAD-MATL_TYPE = IT_MATMASTER-Mtart.
  BAPIMATHEAD-BASIC_VIEW = 'X'.
  BAPIMATHEAD-PURCHASE_VIEW = 'X'.
  BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
  BAPI_MARA-MATL_GROUP = IT_MATMASTER-MATKL.
  BAPI_MARA-OLD_MAT_NO = IT_MATMASTER-BISMT.
  BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
  BAPI_MARA-BASIC_MATL = IT_MATMASTER-WRKST.
  BAPI_MARA-MFR_NO = IT_MATMASTER-MFRNR.
  BAPI_MARAX-MATL_GROUP = 'X'.
  BAPI_MARAX-OLD_MAT_NO = 'X'.
  BAPI_MARAX-BASE_UOM = 'X'.
  BAPI_MARAX-BASIC_MATL = 'X'.
  BAPI_MARAX-MFR_NO = 'X'.
  BAPI_MARC-PLANT = IT_MATMASTER-WERKS.
  BAPI_MARC-PUR_GROUP = IT_MATMASTER-EKGRP.
  BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.
  BAPI_MARCX-PUR_GROUP = 'X'.
  IT_MATERIALDESC-LANGU = 'EN'.
  IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
  append IT_materialdesc.
  CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
    EXPORTING
      headdata                   = BAPIMATHEAD
      CLIENTDATA                 = BAPI_MARA
      CLIENTDATAX                = BAPI_MARAx
     PLANTDATA                  = BAPI_MARc
     PLANTDATAX                 = BAPI_MARcx
*     FORECASTPARAMETERS         =
*     FORECASTPARAMETERSX        =
*     PLANNINGDATA               =
*     PLANNINGDATAX              =
*     STORAGELOCATIONDATA        =
*     STORAGELOCATIONDATAX       =
*     VALUATIONDATA              =
*     VALUATIONDATAX             =
*     WAREHOUSENUMBERDATA        =
*     WAREHOUSENUMBERDATAX       =
*     SALESDATA                  =
*     SALESDATAX                 =
*     STORAGETYPEDATA            =
*     STORAGETYPEDATAX           =
*     FLAG_ONLINE                = ' '
*     FLAG_CAD_CALL              = ' '
   IMPORTING
     RETURN                     = IT_RETURN
   TABLES
     MATERIALDESCRIPTION        = IT_MATERIALDESC
*     UNITSOFMEASURE             =
*     UNITSOFMEASUREX            =
*     INTERNATIONALARTNOS        =
*     MATERIALLONGTEXT           =
*     TAXCLASSIFICATIONS         =
*     RETURNMESSAGES             =
*     PRTDATA                    =
*     PRTDATAX                   =
*     EXTENSIONIN                =
*     EXTENSIONINX               =
            .

 WRITE:/    IT_RETURN-TYPE,
        2   IT_RETURN-ID,
        22  IT_RETURN-NUMBER,
        25  IT_RETURN-MESSAGE.
*            IT_RETURN-LOG_NO,
*            IT_RETURN-LOG_MSG_NO,
*            IT_RETURN-MESSAGE_V1,
*            IT_RETURN-MESSAGE_V2,
*            IT_RETURN-MESSAGE_V3,
*            IT_RETURN-MESSAGE_V4,
*            IT_RETURN-PARAMETER,
*            IT_RETURN-ROW,
*            IT_RETURN-FIELD,
*            IT_RETURN-SYSTEM.

ENDLOOP.

Regards

vijay

hymavathi_oruganti
Active Contributor
0 Kudos

& Description : This program is used to create material

*& master (tcode MM01) . Material data is available in tab delimited *

*& flat file. *

*& The Following is the flat file Structure: *

  • MATNR(018) "Material Number

  • MBRSH(001) "Industry Sectory

  • MTART(004) "Material Type

  • WERKS(004) "Plant

  • LGORT(004) "Storage Location

  • MAKTX(040) "Material Text

  • MEINS(003) "Basic Unit of Measurement

  • MATKL(009) "Material Group

  • PRDHA(018), "Product Hierarchy

  • MTPOS_MARA(004), "General Item Categoy Group

  • ZEINR(022) "Document

  • ZEIVR(002) "Doc Version

  • SPART(002) "Division

  • DWERK(004) "Delivery Plant

  • TAXKM(001) "Tax

  • KTGRM(002) "Account Assignemnt Group

  • MTPOS_MARA(004), "General. Item Category Group

  • MTPOS(004), "Item Category Group

  • MTVFP(002) "Availability check

*/ Begin of changes by Anoop for Sales Text Date: 17 feb 2004

  • s_ltex1(40), "Sales Text line 1

  • s_ltex2(40), "Sales Text line 2

  • s_ltex3(40), "Sales Text line 3

  • s_ltex4(40), "Sales Text line 4

  • s_ltex5(40), "Sales Text line 5

  • s_ltex6(40), "Sales Text line 6

*

**/ End of changes by Anoop for Sales Text Date: 17 feb 2004

*

**/ Begin of changes by Anoop for Purchase Order Text Date: 17 feb 2004

  • po_ltex1(40), "Purchase Order Text line 1

  • po_ltex2(40), "Purchase Order Text line 2

  • po_ltex3(40), "Purchase Order Text line 3

  • po_ltex4(40), "Purchase Order Text line 4

  • po_ltex5(40), "Purchase Order Text line 5

  • po_ltex6(40), "Purchase Order Text line 6

*

    • MAKTX(040) "Sales text

  • EKGRP(003) "Purchasing Group

  • DISMM(002) "MRP Type

  • DISPO(003) "MRP Controller

  • DISLS(002) "Lot Size

  • EKGRP(003) "Purchasing group

  • BSTFE(017) "Fixed Lot Size

  • BESKZ(001) "Procurement Type

  • LGPRO(004) "Prod. Storage Location

  • DZEIT(003) "In house production

  • PLIFZ(003) "Planned Delivery Time

  • FHORI(003) "Sch. Margin Key

  • STRGR(002) "Planning Strategy Group

  • MTVFP(002) "Availabilty Check

  • SBDKZ(001) "Ind/Collective

  • SERNP(004) "Serial Number Profile

  • LGPBE(010) "Storage Bin

  • GROES(032) "Size and Dimension

  • WEBAZ(003) "GR Processing Time

  • BKLAS(004) "Valuation Class

  • VPRSV(001) "Price Control

  • VERPR(015) "Moving Average Price

  • STPRS(015) "Standard Price

  • MYPOL(004) "LIFO Pool

  • EKALR(001) "With Qty structure

  • HKMAT(001) "Material Origin

  • ZPLP1(014) "Planned Price 1

  • ZPLD1(010) "Planned Price Date 1

************************************************************************

*Include

INCLUDE bdcrecx1.

*Variables

DATA : v_filename TYPE string,

v_flag(1) TYPE c,

v_counter(2) TYPE c,

v_lines TYPE i,

v_count TYPE i VALUE 0.

*Selection-screen

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

PARAMETER : filename LIKE rlgrap-filename OBLIGATORY.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.

PARAMETER : v_basic1 TYPE checkbox,

v_basic2 TYPE checkbox,

v_sales1 TYPE checkbox,

v_sales2 TYPE checkbox,

v_salesg TYPE checkbox,

v_salest TYPE checkbox,

v_purcha TYPE checkbox,

  • Begin of changes by Anoop Date: 18 feb 2004.

v_potext TYPE checkbox,

*End of changes by Anoop Date: 18 feb 2004

v_mrp1 TYPE checkbox,

v_mrp2 TYPE checkbox,

v_mrp3 TYPE checkbox,

v_mrp4 TYPE checkbox,

v_wrksch TYPE checkbox,

v_gplnt1 TYPE checkbox,

v_gplnt2 TYPE checkbox,

v_qality TYPE checkbox,

v_acct1 TYPE checkbox,

v_acct2 TYPE checkbox,

v_testi TYPE checkbox,

v_cost2 TYPE checkbox.

SELECTION-SCREEN END OF BLOCK blk2.

SELECTION-SCREEN END OF BLOCK blk1.

*/ Comments given are the view names that have been incorporated into

  • the BDC for the transaction MM01.

**Internal Tables

DATA: BEGIN OF record,

*/ Basic Data 1..

  • data element: MATNR

matnr_001(018), "Material Number

  • data element: MBRSH

mbrsh_002(001), "Industry Sectory

  • data element: MTART

mtart_003(004), "Material Type

  • data element: WERKS_D

werks_019(004), "Plant

  • data element: LGORT_D

lgort_020(004), "Storage Location

*DATA ELEMENT : vkorg

vkorg(004), "Sales Organisation

*DATA ELEMENT : VTWEG

vtweg(002), "Distribution channel

  • data element: MAKTX

maktx_021(040), "Material Text

  • data element: MEINS

meins_022(003), "Basic Unit of Measurement

  • data element: MATKL

matkl_023(009), "Material Group

  • data element: PRODH_D

prdha_015(018),

  • data element: MTPOS_MARA

mtpos_mara_016(004),

    • data element: MTPOS_MARA

  • MTPOS_MARA_024(004),

*/ Basic Data 2...

  • data element: DZEINR

zeinr_026(022), "Document

  • data element: DZEIVR

zeivr_027(002), "Doc Version

    • data element: MEINS

  • MEINS_029(003),

*/ Sales : Sales Org. Data 1

  • data element: SPART

spart_020(002),

  • data element: DWERK_EXT

dwerk_021(004),

  • data element: TAXKM

taxkm_01_024(001),

*/ Sales : Sales Org. Data 2

  • data element: KTGRM

ktgrm_033(002),

  • data element: MTPOS_MARA

mtpos_mara_034(004),

  • data element: MTPOS

mtpos_035(004),

*/ Sales : General Plant/Data

  • data element: MTVFP

mtvfp_040(002),

  • data element: PRCTR

prctr_041(007),

*/ Sales Text

*/commented by Anoop

    • data element: MAKTX

  • maktx_041(040),

*/commented up to here by Anoop

*/ Begin of changes by Anoop for Sales Text Date: 17 feb 2004

s_ltex1(40),

s_ltex2(40),

s_ltex3(40),

s_ltex4(40),

s_ltex5(40),

s_ltex6(40),

*/ End of changes by Anoop for Sales Text Date: 17 feb 2004

*/ Purchasing..

  • data element: EKGRP

ekgrp_030(003),

    • data element: MEINS

  • MEINS_033(003),

    • data element: EKGRP

  • EKGRP_034(003),

*/ Begin of changes by Anoop for Purchase Order Text Date: 17 feb 2004

*/ Purchase Order Text

po_ltex1(40),

po_ltex2(40),

po_ltex3(40),

po_ltex4(40),

po_ltex5(40),

po_ltex6(40),

*/ MRP1..

  • data element: DISMM

dismm_035(002), "MRP Type

  • data element: DISPO

dispo_036(003), "MRP Controller

  • data element: DISLS

disls_037(002), "Lot Size

  • data element : EKGRP

ekgrp(003),

    • data element: MEINS

  • MEINS_039(003),

    • data element: EKGRP

  • EKGRP_040(003),

    • data element: DISMM

  • DISMM_041(002),

    • data element: DISPO

  • DISPO_042(003),

    • data element: DISLS

  • DISLS_043(002), "Proc. Type

  • data element: BSTFE

bstfe_044(017),

*/ MRP2..

  • data element: BESKZ

beskz_046(001),

  • data element: LGPRO

lgpro_047(004),

  • data element: DZEIT

dzeit_048(003),

  • data element: PLIFZ

plifz_049(003),

  • data element: FHORI

fhori_050(003),

    • data element: PERKZ

  • PERKZ_052(001),

*/ MRP3..

  • data element: STRGR

strgr_053(002),

  • data element: MTVFP

mtvfp_054(002),

*/ MRP4

  • data element: SBDKZ

sbdkz_056(001),

    • data element: MEINS

  • MEINS_058(003),

    • data element: LGPRO

  • LGPRO_059(004),

*/ Work Scheduling

  • data element: SERAIL

sernp_060(004),

    • data element: DZEIT

  • DZEIT_061(003),

    • data element: MEINS

  • MEINS_063(003),

*/ Plant Data/Str1

  • data element: LGPBE

lgpbe_064(010),

    • data element: DATTP

  • IPRKZ_065(001),

*/ Plant Data/Str2

  • data element: GROES

groes_067(032),

    • data element: SERAIL

  • SERNP_068(004),

    • data element: MEINS

  • MEINS_070(003),

*/ Quality Management

  • data element: WEBAZ

webaz_071(003),

    • data element: MEINS

  • MEINS_073(003),

*/ Accounting 1

  • data element: BKLAS

bklas_074(004),

  • data element: VPRSV

vprsv_075(001),

    • data element: PEINH

  • PEINH_076(006),

  • data element: VERPR

verpr_077(015),

  • data element: STPRS

stprs_078(015),

*/ Accounting 2

  • data element: MYPOOL

mypol_080(004),

    • data element: MEINS

  • MEINS_082(003),

*/ Cost Estimate 1.

  • data element: CK_EKALREL

ekalr_083(001),

  • data element: HKMAT

hkmat_084(001),

    • data element: CK_LOSGR

  • LOSGR_085(017),

*/ Costing 2..

  • data element: DZPLP1

zplp1_087(014),

  • data element: DZPLD1

zpld1_088(010),

    • data element: BKLAS

  • BKLAS_089(004),

    • data element: VPRSV

  • VPRSV_090(001),

    • data element: PEINH

  • PEINH_091(006),

    • data element: VERPR

  • VERPR_092(015),

    • data element: STPRS

  • STPRS_093(015),

END OF record.

*/ Begin of changes by Anoop Date: 17 feb 2004

*/ intermediate internal table for Sales Text and Purchase Order Text

*DATA: BEGIN OF s_tab OCCURS 0,

  • matnr LIKE mara-matnr,

  • s_ltex1 LIKE makt-maktx,

  • s_ltex2 LIKE makt-maktx,

  • s_ltex3 LIKE makt-maktx,

  • s_ltex4 LIKE makt-maktx,

  • s_ltex5 LIKE makt-maktx,

  • s_ltex6 LIKE makt-maktx,

  • END OF s_tab.

*

*DATA: BEGIN OF po_tab OCCURS 0,

  • matnr LIKE mara-matnr,

  • po_ltex1 LIKE makt-maktx,

  • po_ltex2 LIKE makt-maktx,

  • po_ltex3 LIKE makt-maktx,

  • po_ltex4 LIKE makt-maktx,

  • po_ltex5 LIKE makt-maktx,

  • po_ltex6 LIKE makt-maktx,

  • END OF po_tab.

*/ End of changes by Anoop Date: 17 feb 2004

DATA : itab LIKE record OCCURS 0 WITH HEADER LINE.

DATA : ok_code(5) TYPE c.

*AT SELECTION-SCREEN

AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

field_name = filename

CHANGING

file_name = filename.

*START-OF-SELECTION

START-OF-SELECTION.

v_filename = filename.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = v_filename

filetype = 'ASC'

has_field_separator = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

data_tab = itab.

*

*/ Begin of changes by Anoop Date: 17 feb 2004

  • LOOP AT itab.

*

  • move itab-s_ltext+0(40) to itab-s_ltex1.

  • move itab-s_ltext+40(40) to itab-s_ltex2.

  • move itab-s_ltext+80(40) to itab-s_ltex3.

  • move itab-s_ltext+120(40) to itab-s_ltex4.

  • move itab-s_ltext+160(40) to itab-s_ltex5.

  • move itab-s_ltext+200(40) to itab-s_ltex6.

*

  • move itab-po_ltext+0(40) to itab-po_ltex1.

  • move itab-po_ltext+40(40) to itab-po_ltex2.

  • move itab-po_ltext+80(40) to itab-po_ltex3.

  • move itab-po_ltext+120(40) to itab-po_ltex4.

  • move itab-po_ltext+160(40) to itab-po_ltex5.

  • move itab-po_ltext+200(40) to itab-po_ltex6.

*

  • modify itab.

*

  • ENDLOOP.

*/ End of changes by Anoop Date: 17 feb 2004

DELETE itab WHERE matnr_001 = ' '.

DESCRIBE TABLE itab LINES v_lines.

PERFORM open_group.

LOOP AT itab.

v_count = v_count + 1.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.

IF v_count = v_lines.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BACK'.

ENDIF.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMG1-MATNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RMMG1-MATNR'

itab-matnr_001.

PERFORM bdc_field USING 'RMMG1-MBRSH'

itab-mbrsh_002.

PERFORM bdc_field USING 'RMMG1-MTART'

itab-mtart_003.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(17)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=P+'.

TRANSLATE itab-mtart_003 TO UPPER CASE.

*/ IF the data to be uploaded is of Material type 'Trading Goods'

  • the following view selection

IF itab-mtart_003 = 'HAWA'.

PERFORM view_sel3.

ENDIF.

*/ IF the data to be uploaded is of Material type 'Finished Goods'

  • the following view selection

IF itab-mtart_003 = 'FERT'.

PERFORM view_sel1.

ENDIF.

*/ IF the data to be uploaded is of Material type 'Semi-Finished Goods'

  • the following view selection

IF itab-mtart_003 = 'HALB'.

PERFORM view_sel2.

ENDIF.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0080'.

PERFORM bdc_field USING 'BDC_CURSOR'

'T001L-LGOBE'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'RMMG1-WERKS'

itab-werks_019.

PERFORM bdc_field USING 'RMMG1-LGORT'

itab-lgort_020.

PERFORM bdc_field USING 'RMMG1-VKORG'

itab-vkorg.

PERFORM bdc_field USING 'RMMG1-VTWEG'

itab-vtweg.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

IF v_basic1 = 'X'.

*/ Basic Data 1

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-MATKL'.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'MARA-MATKL'

itab-matkl_023.

PERFORM bdc_field USING 'MARA-PRDHA'

itab-prdha_015.

PERFORM bdc_field USING 'MARA-MTPOS_MARA'

itab-mtpos_mara_016.

  • perform bdc_field using 'MARA-MTPOS_MARA'

  • itab-MTPOS_MARA_024.

ENDIF.

IF v_basic2 = 'X'.

*/ Basic Data 2

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-ZEIVR'.

PERFORM bdc_field USING 'MARA-ZEINR'

itab-zeinr_026.

PERFORM bdc_field USING 'MARA-ZEIVR'

itab-zeivr_027.

ENDIF.

IF itab-vkorg(004) <> ' '.

IF v_sales1 = 'X'.

*/ Sales : Sales Org. Data 1

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'MARA-SPART'

itab-spart_020.

PERFORM bdc_field USING 'MVKE-DWERK'

itab-dwerk_021.

PERFORM bdc_field USING 'MARA-MATKL'

itab-matkl_023.

****perform bdc_field using 'MVKE-SKTOF'

        • record-SKTOF_023.

IF itab-taxkm_01_024 <> ' '.

PERFORM bdc_field USING 'BDC_CURSOR'

'MG03STEUER-TAXKM(01)'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(01)'

itab-taxkm_01_024.

*/ After entering tax another screen in which no data has to be *

  • populated

PERFORM bdc_dynpro USING 'SAPLMGMM' '4200'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

    • PERFORM bdc_field USING 'MAKT-MAKTX'

    • record-maktx_021.

ENDIF.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'MARA-SPART'

itab-spart_020.

PERFORM bdc_field USING 'MVKE-DWERK'

itab-dwerk_021.

PERFORM bdc_field USING 'MARA-MATKL'

itab-matkl_023.

ENDIF.

IF v_sales2 = 'X'.

*/ Sales : Sales Org. Data 2

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

*/commented by Anoop

*/ itab-maktx_041.

*/commented up to here by Anoop

*/ Begin of changes by Anoop Date: 17 feb 2004

itab-maktx_021.

*/ End of changes by Anoop Date: 17 feb 2004

PERFORM bdc_field USING 'BDC_CURSOR'

'MVKE-MTPOS'.

PERFORM bdc_field USING 'MVKE-KTGRM'

itab-ktgrm_033.

IF itab-mtpos_mara_034 <> ' '.

PERFORM bdc_field USING 'MARA-MTPOS_MARA'

itab-mtpos_mara_034.

ENDIF.

IF itab-mtpos_035 <> ' '.

PERFORM bdc_field USING 'MVKE-MTPOS'

itab-mtpos_035.

ENDIF.

ENDIF.

IF v_salesg = 'X'.

*/ Sales : General/Plant Data

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-MTVFP'.

  • PERFORM bdc_field USING 'MARA-MEINS'

  • itab-meins_022.

***perform bdc_field using 'MARA-GEWEI'

      • record-GEWEI_039.

PERFORM bdc_field USING 'MARC-MTVFP'

itab-mtvfp_040.

IF itab-prctr_041 <> ' '.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-PRCTR'.

PERFORM bdc_field USING 'MARC-PRCTR'

itab-prctr_041.

ENDIF.

ENDIF.

IF v_salest = 'X'.

*/ Sales Text

PERFORM bdc_dynpro USING 'SAPLMGMM' '4040'.

IF itab-mtart_003 = 'HAWA' OR itab-mtart_003 = 'HALB'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SP09'.

ok_code = '=SP09'.

ELSEIF itab-mtart_003 = 'FERT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SP12'.

ok_code = '=SP12'.

ENDIF.

*/commented by Anoop

  • PERFORM bdc_field USING 'MAKT-MAKTX'

*/ itab-maktx_041.

*/commented up to here by Anoop

*/ Begin of changes by Anoop for Sales Text Date: 17 feb 2004

PERFORM bdc_field USING 'BDC_OKCODE' '=LTEX'.

PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'.

PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TXLINE(02)' .

PERFORM bdc_field USING 'BDC_OKCODE' '=TXBA' .

PERFORM bdc_field USING 'RSTXT-TXLINE(02)' itab-s_ltex1.

perform bdc_field using 'RSTXT-TXLINE(03)' itab-s_ltex2.

perform bdc_field using 'RSTXT-TXLINE(04)' itab-s_ltex3.

perform bdc_field using 'RSTXT-TXLINE(05)' itab-s_ltex4.

perform bdc_field using 'RSTXT-TXLINE(06)' itab-s_ltex5.

perform bdc_field using 'RSTXT-TXLINE(07)' itab-s_ltex6.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0100'.

PERFORM bdc_field USING 'BDC_OKCODE' '=YES' .

*/ End of changes by Anoop for Sales Text Date: 17 feb 2004

PERFORM bdc_dynpro USING 'SAPLMGMM' '4040'.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

ENDIF.

ENDIF.

IF v_purcha = 'X' AND ok_code = '=SP09'.

CLEAR ok_code.

*/ Purchasing

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'SP11'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-EKGRP'.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'MARC-EKGRP'

itab-ekgrp_030.

PERFORM bdc_field USING 'MARA-MATKL'

itab-matkl_023.

  • perform bdc_dynpro using 'SAPLMGMM' '4000'.

  • perform bdc_field using 'BDC_OKCODE'

  • 'ENTR'.

  • perform bdc_field using 'MAKT-MAKTX'

  • itab-maktx_021.

  • perform bdc_field using 'MARA-MEINS'

  • itab-meins_022.

  • perform bdc_field using 'MARC-EKGRP'

  • itab-ekgrp_030.

  • perform bdc_field using 'BDC_CURSOR'

  • 'MARC-DISMM'.

  • perform bdc_field using 'MARC-DISMM'

  • itab-DISMM_035.

  • perform bdc_field using 'MARC-DISPO'

  • itab-DISPO_036.

  • perform bdc_field using 'MARC-DISLS'

  • itab-DISLS_037.

ENDIF.

*/ Begin of changes by Anoop for Purchase Order Text Date: 18 feb 2004

  • PERFORM bdc_dynpro USING 'SAPLMGMM' '4040'.

  • PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

IF v_potext = 'X' .

CLEAR ok_code.

*Purchase Order Text

PERFORM bdc_dynpro USING 'SAPLMGMM' '4040'.

PERFORM bdc_field USING 'BDC_OKCODE' '=LTEX'.

PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'.

PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TXLINE(02)' .

PERFORM bdc_field USING 'BDC_OKCODE' '=TXBA' .

PERFORM bdc_field USING 'RSTXT-TXLINE(02)' itab-po_ltex1.

perform bdc_field using 'RSTXT-TXLINE(03)' itab-po_ltex2.

perform bdc_field using 'RSTXT-TXLINE(04)' itab-po_ltex3.

perform bdc_field using 'RSTXT-TXLINE(05)' itab-po_ltex4.

perform bdc_field using 'RSTXT-TXLINE(06)' itab-po_ltex5.

perform bdc_field using 'RSTXT-TXLINE(07)' itab-po_ltex6.

  • PERFORM bdc_field USING 'RSTXT-TXLINE(02)' itab-po_ltex1 .

  • PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(03)'.

  • PERFORM bdc_field USING 'RSTXT-TXPARGRAPH(03)' '*'.

  • PERFORM bdc_field USING 'RSTXT-TXLINE(03)' itab-po_ltex2 .

  • PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(04)'.

  • PERFORM bdc_field USING 'RSTXT-TXPARGRAPH(04)' '*'.

  • PERFORM bdc_field USING 'RSTXT-TXLINE(04)' itab-po_ltex3 .

  • PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(05)'.

  • PERFORM bdc_field USING 'RSTXT-TXPARGRAPH(05)' '*'.

  • PERFORM bdc_field USING 'RSTXT-TXLINE(05)' itab-po_ltex4 .

  • PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(06)'.

  • PERFORM bdc_field USING 'RSTXT-TXPARGRAPH(06)' '*'.

  • PERFORM bdc_field USING 'RSTXT-TXLINE(06)' itab-po_ltex5 .

  • PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(07)'.

  • PERFORM bdc_field USING 'RSTXT-TXPARGRAPH(07)' '*'.

  • PERFORM bdc_field USING 'RSTXT-TXLINE(07)' itab-po_ltex6 .

  • PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TXPARGRAPH(08)'.

  • PERFORM bdc_field USING 'RSTXT-TXPARGRAPH(08)' '*'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0100'.

PERFORM bdc_field USING 'BDC_OKCODE' '=YES' .

PERFORM bdc_dynpro USING 'SAPLMGMM' '4040'.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

endif.

*/ End of changes by Anoop for Purchase Order Text Date: 18 feb 2004

IF v_mrp1 = 'X'.

*/ MRP 1

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'ENTR'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'MARC-EKGRP'

itab-ekgrp_030.

PERFORM bdc_field USING 'MARC-DISMM'

itab-dismm_035.

PERFORM bdc_field USING 'MARC-DISPO'

itab-dispo_036.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-DISLS'.

PERFORM bdc_field USING 'MARC-DISLS'

itab-disls_037.

IF itab-ekgrp <> ' '.

PERFORM bdc_field USING 'MARC-EKGRP'

itab-ekgrp.

ENDIF.

PERFORM bdc_field USING 'MARC-BSTFE'

itab-bstfe_044.

ENDIF.

IF v_mrp2 = 'X'.

*/ MRP 2

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'MARC-BESKZ'

itab-beskz_046.

PERFORM bdc_field USING 'MARC-LGPRO'

itab-lgpro_047.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-DZEIT'.

PERFORM bdc_field USING 'MARC-DZEIT'

itab-dzeit_048.

PERFORM bdc_field USING 'MARC-PLIFZ'

itab-plifz_049.

PERFORM bdc_field USING 'MARC-FHORI'

itab-fhori_050.

ENDIF.

IF v_mrp3 = 'X'.

*/ MRP 3

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

  • perform bdc_field using 'MARC-PERKZ'

  • itab-PERKZ_052.

PERFORM bdc_field USING 'MARC-STRGR'

itab-strgr_053.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-MTVFP'.

PERFORM bdc_field USING 'MARC-MTVFP'

itab-mtvfp_054.

ENDIF.

IF v_mrp4 = 'X'.

*/ MRP 4

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-SBDKZ'.

PERFORM bdc_field USING 'MARC-SBDKZ'

itab-sbdkz_056.

ENDIF.

IF v_wrksch = 'X'.

*/ WORK SCHEDULES

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-SERNP'.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'MARC-LGPRO'

itab-lgpro_047.

PERFORM bdc_field USING 'MARC-SERNP'

itab-sernp_060.

PERFORM bdc_field USING 'MARC-DZEIT'

itab-dzeit_048.

ENDIF.

IF v_gplnt1 = 'X'.

*/ PLANT DATA/STR1

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARD-LGPBE'.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'MARD-LGPBE'

itab-lgpbe_064.

  • perform bdc_field using 'MARA-IPRKZ'

  • itab-IPRKZ_065.

ENDIF.

IF v_gplnt2 = 'X'.

*/ PLANT DATA/STR2

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-GROES'.

PERFORM bdc_field USING 'MARA-GROES'

itab-groes_067.

PERFORM bdc_field USING 'MARC-SERNP'

itab-sernp_060.

ENDIF.

IF v_qality = 'X'.

*/ QUALITY MANAGEMENT

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=PB01'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-WEBAZ'.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'MARC-WEBAZ'

itab-webaz_071.

      • Addition done by Hymavathi on 24-01-2005

PERFORM bdc_dynpro USING 'SAPLQPLS' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMQAM-ARGUMENT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NEU'.

PERFORM bdc_dynpro USING 'SAPLQPLS' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMQAM-AKTIV(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=WEIT'.

PERFORM bdc_field USING 'RMQAM-ART(01)'

'01'.

PERFORM bdc_field USING 'RMQAM-AKTIV(01)'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-WEBAZ'.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'MARC-WEBAZ'

itab-webaz_071.

      • End Of Addition Done By Hymavathi

ENDIF.

IF v_acct1 = 'X'.

*/ ACCOUNTING 1

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'BDC_CURSOR'

'MBEW-STPRS'.

PERFORM bdc_field USING 'MBEW-BKLAS'

itab-bklas_074.

PERFORM bdc_field USING 'MBEW-VPRSV'

itab-vprsv_075.

  • perform bdc_field using 'MBEW-PEINH'

  • itab-PEINH_076.

PERFORM bdc_field USING 'MBEW-VERPR'

itab-verpr_077.

PERFORM bdc_field USING 'MBEW-STPRS'

itab-stprs_078.

ENDIF.

IF v_acct2 = 'X'.

*/ ACCOUNTING 2

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MBEW-MYPOL'.

PERFORM bdc_field USING 'MBEW-MYPOL'

itab-mypol_080.

ENDIF.

IF v_testi = 'X'.

*/ COST ESTIMATE

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'MARA-MEINS'

itab-meins_022.

PERFORM bdc_field USING 'MBEW-EKALR'

itab-ekalr_083.

PERFORM bdc_field USING 'MBEW-HKMAT'

itab-hkmat_084.

  • perform bdc_field using 'MARC-LOSGR'

  • itab-LOSGR_085.

ENDIF.

IF v_cost2 = 'X'.

*/ COSTING 2

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab-maktx_021.

PERFORM bdc_field USING 'BDC_CURSOR'

'MBEW-ZPLD1'.

PERFORM bdc_field USING 'MBEW-ZPLP1'

itab-zplp1_087.

PERFORM bdc_field USING 'MBEW-ZPLD1'

itab-zpld1_088.

PERFORM bdc_field USING 'MBEW-BKLAS'

itab-bklas_074.

PERFORM bdc_field USING 'MBEW-VPRSV'

itab-vprsv_075.

  • perform bdc_field using 'MBEW-PEINH'

  • itab-PEINH_091.

PERFORM bdc_field USING 'MBEW-VERPR'

itab-verpr_077.

PERFORM bdc_field USING 'MBEW-STPRS'

itab-stprs_078.

ENDIF.

v_flag = ' '.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

PERFORM bdc_transaction USING 'MM01'.

ENDLOOP.

PERFORM close_group.

&----


*& Form view_sel1

&----


FORM view_sel1 .

IF v_basic1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

ENDIF.

IF v_basic2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

ENDIF.

*/ if sales Organisation is left blank in the text file then this

*/ particular views will not be selected for that data

IF itab-vkorg(004) <> ' '.

IF v_sales1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(04)'

'X'.

ENDIF.

IF v_sales2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(05)'

'X'.

ENDIF.

IF v_salesg = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

ENDIF.

IF v_salest = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

ENDIF.

ENDIF.

IF v_mrp1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(09)'

'X'.

ENDIF.

IF v_mrp2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(10)'

'X'.

ENDIF.

IF v_mrp3 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(11)'

'X'.

ENDIF.

IF v_mrp4 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(12)'

'X'.

ENDIF.

IF v_wrksch = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(14)'

'X'.

ENDIF.

IF itab-lgort_020(004) <> ' '.

IF v_gplnt1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(15)'

'X'.

ENDIF.

ENDIF.

IF v_gplnt2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(16)'

'X'.

ENDIF.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(09)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

IF v_qality = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

ENDIF.

IF v_acct1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(03)'

'X'.

ENDIF.

IF v_acct2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(04)'

'X'.

ENDIF.

IF v_testi = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(05)'

'X'.

ENDIF.

IF v_cost2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

ENDIF.

ENDFORM. " view_sel1

&----


*& Form view_sel2

&----


FORM view_sel2 .

IF v_basic1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

ENDIF.

IF v_basic2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

ENDIF.

*/ if sales Organisation is left blank in the text file then this

*/ particular views will not be selected for that data

IF itab-vkorg(004) <> ' '.

IF v_sales1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(04)'

'X'.

ENDIF.

IF v_sales2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(05)'

'X'.

ENDIF.

IF v_salesg = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

ENDIF.

IF v_salest = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

ENDIF.

ENDIF.

IF v_purcha = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(09)'

'X'.

ENDIF.

IF v_mrp1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(12)'

'X'.

ENDIF.

IF v_mrp2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(13)'

'X'.

ENDIF.

IF v_mrp3 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(14)'

'X'.

ENDIF.

IF v_mrp4 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(15)'

'X'.

ENDIF.

IF v_wrksch = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(17)'

'X'.

ENDIF.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(09)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

IF itab-lgort_020(004) <> ' '.

IF v_gplnt1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

ENDIF.

ENDIF.

IF v_gplnt2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

ENDIF.

IF v_qality = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(05)'

'X'.

ENDIF.

IF v_acct1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

ENDIF.

IF v_acct2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(07)'

'X'.

ENDIF.

IF v_testi = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

ENDIF.

IF v_cost2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(09)'

'X'.

ENDIF.

ENDFORM. " view_sel2

&----


*& Form view_sel3

&----


FORM view_sel3 .

IF v_basic1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

ENDIF.

IF v_basic2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

ENDIF.

*/ if sales Organisation is left blank in the text file then this

*/ particular views will not be selected for that data

IF itab-vkorg(004) <> ' '.

IF v_sales1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(04)'

'X'.

ENDIF.

IF v_sales2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(05)'

'X'.

ENDIF.

IF v_salesg = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

ENDIF.

IF v_salest = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

ENDIF.

ENDIF.

IF v_purcha = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(09)'

'X'.

ENDIF.

IF v_mrp1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(12)'

'X'.

ENDIF.

IF v_mrp2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(13)'

'X'.

ENDIF.

IF v_mrp3 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(14)'

'X'.

ENDIF.

IF v_mrp4 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(15)'

'X'.

ENDIF.

IF itab-lgort_020(004) <> ' '.

IF v_gplnt1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(17)'

'X'.

ENDIF.

ENDIF.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(09)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

IF v_gplnt2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

ENDIF.

IF v_qality = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(04)'

'X'.

ENDIF.

IF v_acct1 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(05)'

'X'.

ENDIF.

IF v_acct2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

ENDIF.

IF v_testi = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(07)'

'X'.

ENDIF.

IF v_cost2 = 'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

ENDIF.

ENDFORM.

Former Member
0 Kudos

hai,

you can use this bapi BAPI_MATERIAL_SAVEDATA for both creating and changing th ematerial

cheers

vinod_gunaware2
Active Contributor
0 Kudos

Hi

Instead of BDC Use BAPI 'BAPI_MATERIAL_SAVEDATA'. It will be more useful. It will get much flexibility.

Regard

vinod