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: 

Material master creation

Former Member
0 Kudos

hey can any one help me in material master creation....

can any one give some idea how 2 proceed...

if any code???

any sequence??

any project in material project??

anything ll do?/

6 REPLIES 6

ferry_lianto
Active Contributor
0 Kudos

Hi,

Please check this link for uploading material master in LSMW using RMDATIND direct input program.

http://help.sap.com/bp_blv1500/BL_US/documentation/LSMW_EN_US.doc

Hope this will help to start with.

Regards,

Ferry Lianto

Former Member
0 Kudos

hi,

Use LSMW Direct Input Method/Manually code it to imitate LSMW Direct Input Method .

or

Use BAPI to Create Materials .

if u are going for BAPI u can use the following code.

REPORT Z_NEW_PROGRAM2 .

*TO CREATE MATERIAL USING BAPI.

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

  • STRUCTURE DECLARATIONS *

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

TABLES: BAPIMATHEAD, "Headerdata

BAPI_MARA, "Clientdata

BAPI_MARAX, "Clientdatax

BAPI_MARC, "Plantdata

BAPI_MARCX, "Plantdatax

BAPI_MAKT, "Material description

BAPI_MBEW, "VALUATION DATA

BAPI_MBEWX,

BAPI_MARM,

BAPI_MARMX,

bapi_mean,

BAPIRET2. "Return messages

DATA:V_FILE TYPE STRING. "input data file

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

bwkey(004) type c,

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.

*FOR gross wt

data: begin of it_uom occurs 0.

include structure BAPI_MARM.

data:end of it_uom.

DATA: BEGIN OF IT_UOMX OCCURS 0.

INCLUDE STRUCTURE BAPI_MARMX.

DATA:END OF IT_UOMX.

data:begin of it_mean occurs 0.

include structure bapi_mean.

data:end of it_mean.

DATA:BEGIN OF IT_MLTX OCCURS 0.

INCLUDE STRUCTURE BAPI_MLTX.

DATA:END OF IT_MLTX.

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

*ELSE.

*DELETE IT_MATMASTER INDEX 1.

ENDIF.

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

  • DATA POPULATIONS *

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

LOOP AT IT_MATMASTER.

*HEADER DATA

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

*CLIENTDATA

BAPI_MARA-MATL_GROUP = IT_MATMASTER-MATKL.

BAPI_MARA-DIVISION = IT_MATMASTER-SPART.

BAPI_MARA-DSN_OFFICE = IT_MATMASTER-LABOR.

BAPI_MARA-PROD_HIER = IT_MATMASTER-PRDHA.

BAPI_MARA-PUR_STATUS = IT_MATMASTER-MSTAE.

BAPI_MARA-ITEM_CAT = IT_MATMASTER-MTPOS_MARA.

BAPI_MARA-NET_WEIGHT = IT_MATMASTER-NTGEW.

  • BAPI_MARA-PO_UNIT = 'KG'.

  • BAPI_MARA-UNIT_OF_WT_ISO = 'KG'.

BAPI_MARA-UNIT_OF_WT = 'KG'.

  • BAPI_MARA-PACK_VO_UN = 'KG'.

  • BAPI_MARA-BASE_UOM_ISO = 'KG'.

bapi_mara-size_dim = it_matmaster-groes.

BAPI_MARA-MAT_GRP_SM = IT_MATMASTER-MAGRV.

BAPI_MARA-OLD_MAT_NO = IT_MATMASTER-BISMT.

BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.

BAPI_MARA-BASIC_MATL = IT_MATMASTER-WRKST.

BAPI_MARA-HAZMATPROF = IT_MATMASTER-PROFL.

BAPI_MARA-ENVT_RLVT = IT_MATMASTER-KZUMW.

BAPI_MARA-PO_UNIT = IT_MATMASTER-BSTME.

BAPI_MARA-VAR_ORD_UN = IT_MATMASTER-VABME.

BAPI_MARA-PUR_VALKEY = IT_MATMASTER-EKWSL.

BAPI_MARA-MANU_MAT = IT_MATMASTER-MFRPN.

BAPI_MARA-MFR_NO = IT_MATMASTER-MFRNR.

BAPI_MARAX-MATL_GROUP = 'X'.

BAPI_MARAX-DIVISION = 'X'.

BAPI_MARAX-DSN_OFFICE = 'X'.

BAPI_MARAX-PROD_HIER = 'X'.

BAPI_MARAX-PUR_STATUS = 'X'.

BAPI_MARAX-ITEM_CAT = 'X'.

BAPI_MARAX-NET_WEIGHT = 'X'.

BAPI_MARAX-UNIT_OF_WT = 'X'.

  • BAPI_MARAX-UNIT_OF_WT_ISO = 'X'.

bapi_maraX-size_dim = 'X'.

BAPI_MARAX-MAT_GRP_SM = 'X'.

BAPI_MARAX-OLD_MAT_NO = 'X'.

BAPI_MARAX-BASE_UOM = 'X'.

BAPI_MARAX-BASE_UOM_ISO = 'X'.

BAPI_MARAX-BASIC_MATL = 'X'.

BAPI_MARAX-MFR_NO = 'X'.

BAPI_MARAX-HAZMATPROF = 'X'.

BAPI_MARAX-ENVT_RLVT = 'X'.

BAPI_MARAX-PO_UNIT = 'X'.

  • BAPI_MARAX-PACK_VO_UN = 'X'.

BAPI_MARAX-VAR_ORD_UN = 'X'.

BAPI_MARAX-PUR_VALKEY = 'X'.

BAPI_MARAX-MANU_MAT = 'X'.

BAPI_MARAX-MFR_NO = 'X'.

*PLANT DATA

BAPI_MARC-PLANT = IT_MATMASTER-WERKS.

BAPI_MARC-PUR_GROUP = IT_MATMASTER-EKGRP.

BAPI_MARC-BATCH_MGMT = IT_MATMASTER-XCHPF.

BAPI_MARC-GR_PR_TIME = IT_MATMASTER-WEBAZ.

BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.

BAPI_MARCX-PUR_GROUP = 'X'.

BAPI_MARCX-BATCH_MGMT = 'X'.

BAPI_MARCX-GR_PR_TIME = 'X'.

*VALUATION DATA

BAPI_MBEW-PRICE_CTRL = IT_MATMASTER-VPRSV.

BAPI_MBEW-STD_PRICE = IT_MATMASTER-STPRS.

BAPI_MBEW-COMMPRICE1 = IT_MATMASTER-BWPRH.

BAPI_MBEW-VAL_AREA = IT_MATMASTER-BWKEY.

BAPI_MBEW-VAL_CLASS = IT_MATMASTER-BKLAS.

BAPI_MBEWX-PRICE_CTRL = 'X'.

BAPI_MBEWX-STD_PRICE = 'X'.

BAPI_MBEWX-COMMPRICE1 = 'X'.

BAPI_MBEWX-VAL_AREA = IT_MATMASTER-BWKEY.

BAPI_MBEWX-VAL_CLASS = 'X'.

IT_MATERIALDESC-LANGU = 'EN'.

IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.

append IT_materialdesc.

IT_UOM-GROSS_WT = IT_MATMASTER-BRGEW.

IT_UOM-ALT_UNIT = 'KG'.

IT_UOM-ALT_UNIT_ISO = 'KG'.

IT_UOM-UNIT_OF_WT = IT_MATMASTER-GEWEI.

APPEND IT_UOM.

IT_UOMX-GROSS_WT = 'X'.

IT_UOMX-ALT_UNIT = 'KG'.

IT_UOMX-ALT_UNIT_ISO = 'KG'.

IT_UOMX-UNIT_OF_WT = 'X'.

APPEND IT_UOMX.

it_mean-unit = 'KD3'.

append it_mean.

it_mltx-langu = 'E'.

it_mltx-text_name = it_matmaster-matnr.

APPEND IT_MLTX.

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 = BAPI_MBEW

VALUATIONDATAX = BAPI_MBEWX

  • WAREHOUSENUMBERDATA =

  • WAREHOUSENUMBERDATAX =

  • SALESDATA =

  • SALESDATAX =

  • STORAGETYPEDATA =

  • STORAGETYPEDATAX =

  • FLAG_ONLINE = ' '

  • FLAG_CAD_CALL = ' '

IMPORTING

RETURN = IT_RETURN

TABLES

MATERIALDESCRIPTION = IT_MATERIALDESC

UNITSOFMEASURE = IT_UOM

UNITSOFMEASUREX = IT_UOMX

INTERNATIONALARTNOS = it_mean

  • MATERIALLONGTEXT = IT_MLTX

  • TAXCLASSIFICATIONS =

  • RETURNMESSAGES =

  • PRTDATA =

  • PRTDATAX =

  • EXTENSIONIN =

  • EXTENSIONINX =

.

read table it_return with key TYPE = 'S'.

if sy-subrc = 0.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

  • IMPORTING

  • RETURN =

.

*else.

*

*CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'

    • IMPORTING

    • RETURN =

  • .

*

endif.

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.

If U are Going for Direct Input Program.

then take a look at this code.

REPORT ZDIRECT_INPUT .

  • SAP structures for BDC:

TABLES: BGR00, BLF00, BLFA1, BLFM1, BLFB1.

DATA: BEGIN OF IT_VENDOR OCCURS 0,

  • LIFNR(10), "Account number of vendor or creditor

BUKRS(4),

EKORG(4), "Purchase organisation

KTOKK(4), "Vendor account group

ANRED(2),

NAME1(35), "Name 1

SORTL(10), "Sort field

LAND1(3), "Country key

AKONT(6), "Account

WAERS(3), "currency

END OF IT_VENDOR.

  • Only for record layout initialization:

FIELD-SYMBOLS: <F> .

*-- Selection screen

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.

PARAMETERS: P_FILE TYPE RLGRAP-FILENAME

OBLIGATORY.

PARAMETERS: P_FILE1 TYPE RLGRAP-FILENAME

OBLIGATORY DEFAULT '
adcsapsvr\sapmnt\trans\vendor',

P_SESS TYPE APQI-GROUPID OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

*--To get the file name from the desktop

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

PERFORM GET_VALUE_HELP_FOR_FILE.

START-OF-SELECTION.

*-- upload the file data

PERFORM UPLOAD_FILE.

END-OF-SELECTION.

IF NOT IT_VENDOR[] IS INITIAL.

PERFORM CONVERT_TO_SAPFORMAT.

LOOP AT IT_VENDOR.

WRITE:/ IT_VENDOR.

ENDLOOP.

ENDIF.

&----


*& Form get_value_help_for_file

&----


  • Get the value help for the file

----


FORM GET_VALUE_HELP_FOR_FILE.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = 'P_FILE'

IMPORTING

FILE_NAME = P_FILE.

ENDFORM. " get_value_help_for_file

&----


*& Form UPLOAD_FILE

&----


  • Read the data from the file

----


FORM UPLOAD_FILE.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

  • CODEPAGE = ' '

FILENAME = P_FILE

FILETYPE = 'DAT'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = IT_VENDOR

EXCEPTIONS

CONVERSION_ERROR = 1

FILE_OPEN_ERROR = 2

FILE_READ_ERROR = 3

INVALID_TYPE = 4

NO_BATCH = 5

UNKNOWN_ERROR = 6

INVALID_TABLE_WIDTH = 7

GUI_REFUSE_FILETRANSFER = 8

CUSTOMER_ERROR = 9

OTHERS = 10

.

IF SY-SUBRC <> 0.

WRITE: 'Error in uploading file'.

ENDIF.

ENDFORM. " UPLOAD_FILE

&----


*& Form convert_to_Sapformat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CONVERT_TO_SAPFORMAT.

OPEN DATASET P_FILE1 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

IF SY-SUBRC <> 0.

WRITE: 'Error in opening the file: ', P_FILE1.

ENDIF.

  • Open session:

MOVE: '0' TO BGR00-STYPE,

P_SESS TO BGR00-GROUP,

SY-MANDT TO BGR00-MANDT,

SY-UNAME TO BGR00-USNAM,

'X' TO BGR00-XKEEP,

'/' TO BGR00-NODATA.

TRANSFER BGR00 TO P_FILE1.

  • Initialize record layout:

PERFORM POPULATE_DATA CHANGING BLF00.

PERFORM POPULATE_DATA CHANGING BLFA1.

PERFORM POPULATE_DATA CHANGING BLFB1.

PERFORM POPULATE_DATA CHANGING BLFM1.

  • Fill SAP structures

LOOP AT IT_VENDOR.

BLF00-STYPE = '1'.

BLF00-TCODE = 'XK01'.

  • BLF00-LIFNR = IT_VENDOR-LIFNR.

BLF00-BUKRS = IT_VENDOR-BUKRS.

BLF00-EKORG = IT_VENDOR-EKORG.

BLF00-KTOKK = IT_VENDOR-KTOKK.

  • Transfer data

TRANSFER BLF00 TO P_FILE1.

  • Fill SAP structures

BLFA1-STYPE = '2'.

BLFA1-TBNAM = 'BLFA1'.

BLFA1-ANRED = IT_VENDOR-ANRED.

BLFA1-NAME1 = IT_VENDOR-NAME1.

BLFA1-LAND1 = IT_VENDOR-LAND1.

BLFA1-SORTL = IT_VENDOR-SORTL.

  • BLFA1-KUNNR = IT_VENDOR-KUNNR.

  • Transfer data

TRANSFER BLFA1 TO P_FILE1.

BLFB1-STYPE = '2'.

BLFB1-TBNAM = 'BLFB1'.

BLFB1-AKONT = IT_VENDOR-AKONT.

TRANSFER BLFB1 TO P_FILE1.

BLFM1-STYPE = '2'.

BLFM1-TBNAM = 'BLFM1'.

BLFM1-WAERS = IT_VENDOR-WAERS.

TRANSFER BLFM1 TO P_FILE1.

ENDLOOP.

CLOSE DATASET P_FILE1.

SUBMIT RFBIKR00 WITH DS_NAME = P_FILE1 AND RETURN.

ENDFORM. " convert_to_Sapformat

&----


*& Form populate_data

&----


  • text

----


  • <--P_BLF00 text

----


  • Initialize record layout:

FORM POPULATE_DATA CHANGING P_BLF.

DATA: L_NUM TYPE I.

DO.

L_NUM = L_NUM + 1.

ASSIGN COMPONENT L_NUM OF STRUCTURE P_BLF TO <F>.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

MOVE BGR00-NODATA TO <F>.

ENDDO.

ENDFORM. " populate_data .

If you find it useful mark the points

~~Guduri

0 Kudos

thanx a lot...can u tell me BDC code and steps 2 follow how 2 do it..it ll be more usefel 2 me..

0 Kudos

BDC is not advisable for materila master upload because it involves lot of views to be considered so its not so simple do the coding for that....

better way is DI method, if you goto the real time also no one ask you to do that with BDC.....

even though sample BDC code is here below

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

mark the points if u find it helpful

~~Guduri

0 Kudos

you can try with BAPI also

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.

close the thread if u think u got enough code...

~~Guduri

0 Kudos

thanx a lot...i ll work it out and tell u