MAKTX Material Master
Hi,
I am trying to find the datasource in RSA5 for MATERIAL MASTER ( MAKTX) for a Production Price Variance report. Could any one tell me where i can find it and which one it is?
Thanks
what are they under, bec they dont seem to be under:
MM----MM-IO?
Thanks
Similar Messages
-
hi gurus,
i am trying to do a material master creation using BDC recording,
i am new i dont know how to modify the code,
the following is the code, please let me know how to make changes.
report ZTEST95
no standard page heading line-size 255.
include bdcrecx1.
parameters: dataset(132) lower case default
'C:\Documents and Settings\Deskt'
& 'op\test95.txt'.
DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
If it is nessesary to change the data section use the rules:
1.) Each definition of a field exists of two lines
2.) The first line shows exactly the comment
'* data element: ' followed with the data element
which describes the field.
If you don't have a data element use the
comment without a data element name
3.) The second line shows the fieldname of the
structure, the fieldname must consist of
a fieldname and optional the character '_' and
three numbers and the field length in brackets
4.) Each field must be type C.
Generated data section with specific formatting - DO NOT CHANGE ***
data: begin of record,
data element: MATNR
MATNR_001(040),
data element: MBRSH
MBRSH_002(001),
data element: MTART
MTART_003(004),
data element: REF_MATNR
MATNR_004(040),
data element: XFELD
KZSEL_01_005(001),
data element: MAKTX
MAKTX_006(040),
data element: MEINS
MEINS_007(003),
data element: MATKL
MATKL_008(009),
data element: SPART
SPART_009(002),
data element: MTPOS_MARA
MTPOS_MARA_010(004),
data element: BRGEW
BRGEW_011(017),
data element: GEWEI
GEWEI_012(003),
data element: NTGEW
NTGEW_013(017),
end of record.
End generated data section ***
start-of-selection.
perform open_dataset using dataset.
perform open_group.
do.
read dataset dataset into record.
if sy-subrc <> 0. exit. endif.
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-MATNR'
record-MATNR_001.
perform bdc_field using 'RMMG1-MBRSH'
record-MBRSH_002.
perform bdc_field using 'RMMG1-MTART'
record-MTART_003.
perform bdc_field using 'RMMG1_REF-MATNR'
record-MATNR_004.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
record-KZSEL_01_005.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
record-MAKTX_006.
perform bdc_field using 'MARA-MEINS'
record-MEINS_007.
perform bdc_field using 'MARA-MATKL'
record-MATKL_008.
perform bdc_field using 'MARA-SPART'
record-SPART_009.
perform bdc_field using 'MARA-MTPOS_MARA'
record-MTPOS_MARA_010.
perform bdc_field using 'BDC_CURSOR'
'MARA-BRGEW'.
perform bdc_field using 'MARA-BRGEW'
record-BRGEW_011.
perform bdc_field using 'MARA-GEWEI'
record-GEWEI_012.
perform bdc_field using 'MARA-NTGEW'
record-NTGEW_013.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
perform bdc_transaction using 'MM01'.
enddo.
perform close_group.
perform close_dataset using dataset.
thanks.Hi,
It is better if the Material Master creation step is done by LSMW - Direct Input method with the following object:
Object 0020 Material master
Method 0000
Program name RMDATIND
Program type D Direct input
Check the program documentation for more details.
For a sample data file generation ( Sequential file ), check the program RMDATGEN
If the reqmt., is for a repetetive loading of Material Master you could schedule / execute the LSMW by following program: /SAPDMC/SAP_LSMW_INTERFACE.
Hope this helps.
Best Regards, Murugesh -
Hi guys,
Can any one help me in creating a Material master
pls do send me the steps that are involved in
creating a Material master
Thanku
JinoCheck the BAPI BAPI_MATERIAL_SAVEDATA
Check the below sample code.
REPORT YGECICI MESSAGE-ID 00
No Standard Page Heading
Line-Size 200
Line-Count 65.
*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.
Reward points.. -
Mass Update of Material Master
Hi,
I have to migrate Material Master from Legacy System to SAP. And data would be getting populated in the following tables:
1. MARA
2. MAKTX
3. MARC
4. MVKE
5. MLAN
6. MARD
7. MBEW
8. PROP
9. MVER
I checked option of LSMW -> Direct Input Method -> Program Name: RMDATIND. This I guess, will help me to update data in all the above mentioned tables except MVER.
May I get a way out to update data in MVER same time when I upload Material Master? Please also let me know if my understading is not correct. Or if there is a better way out than this!!!
Please let me know if I need to provide any further details on the same from my end to get above query answered.
Rgds,
KKHI,
May I get a way out to update data in MVER same time when I upload Material Master? Please also let me know if my understading is not correct. Or if there is a better way out than this!!!
this table related to material consumption
which data you want to put in this table ,material consumption of legacy system ?
Regards
Kailas Ugale -
Material master upload using BAPI...
Helo SDNers,
I am trying to upload material master using BAPI.
data : begin of t_mat occurs 0,
material type matnr, " Material - MATNR
ind_sec type mbrsh, " Industry sector - MBRSH
mat_typ type mtart, " Material type - MTART
plant type werks_d, " plant - WERKS_D
stge_loc type lgort_d, " Storage location - LGORT_D
sales_org type vkorg, " Sales org - VKORG
distr_chan type vtweg, " Distribution channel - VTWEG
mat_desc type maktx, " Material description - MAKTX
base_uom type meins, " Base unit of measurement- MEINS
mat_grp type matkl, " material group - MATKL
division type spart, " Division - SPART
gen_itmcatmgrp type MTPOS, " General item category group -MTPOS_MARA
gros_weight type BRGEW, " Gross weight - BRGEW
net_weight type NTGEW, " Net weight - NTGEW
mat_grppack type MAGRV, " Material group pack - MAGRV
delv_plant type DWERK_EXT, " Delivery plant
tax_clasif type TAXKM, " Tax classification
item_catgrp type MTPOS, " Item category group
aval_check type MTVFP, " Availability check
trans_grp type TRAGR, " Transportation group
load_grp type LADGR, " Loading group
pur_grp type EKGRP, " Purchasing grp,
mrp_type type DISMM, " MRP type
mrp_contr type DISPO, " MRP Controller
lot_size type DISLS, " Lot size,
gr_processing type WEBAZ, " GR Processing time
schdmargin_key type FHORI, " Schedule margin key
batch_mangment type XCHPF, " Batch management
strog_cond type RAUBE, " Storage condition
source_list type KORDB, " Source list
mrp_grp type DISGR, " MRP group
reorder_point type MINBE, " Reorder point
procurement_type type BESKZ, " Procurement type
sp_procurement_type type SOBSL, " Special Procurement type
inhouse_prod type DZEIT, " Inhouse production
safety_stock type EISBE, " Safety stock
strategy_group type STRGR, " Strategy group
availabilty_grp type MTVFP, " Availability group
batch_entry type KZECH , " Batch entry
valuation_class type BKLAS, " Valuation class
price_control type VPRSV, " Price control
moving_price type VERPR, " Moving price
standard_price type STPRS, " Standard price - STPRS
langu(2), " Language
end of t_mat.
this is my internal table i have these many content in my excel file
please explain me what the following code does .....
move-corresponding wa to bapi_head.
bapi_head-basic_view = 'X'.
bapi_head-sales_view = 'X'.
bapi_head-purchase_view = 'X'.
bapi_head-mrp_view = 'X'.
bapi_head-forecast_view = 'X'.
bapi_head-work_sched_view = 'X'.
bapi_head-prt_view = 'X'.
bapi_head-storage_view = 'X'.
bapi_head-warehouse_view = 'X'.
bapi_head-quality_view = 'X'.
bapi_head-account_view = 'X'.
bapi_head-cost_view = 'X'.
and also please help with an example how do i upload data from IT (my internal table) using BAPI.
Regards,
Ranjith NHi ,
First you upload your Excel data into Internal Table.
Move all data to Respected BAPI Structures.
and then call 'BAPI_MATERIAL_SAVEDATA' and pass all structures.
Sample Code:
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_fname
i_begin_col = v_c1
i_begin_row = l_v_r
i_end_col = v_cl
i_end_row = v_rl
TABLES
intern = i_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc eq 0.
LOOP AT i_excel.
CASE i_excel-col.
WHEN 0001.
wa_final-field1 = i_excel-value.
WHEN 0002.
wa_final-field2 = i_excel-value.
WHEN 0003.
wa_final-field3 = i_excel-value.
WHEN 0004.
wa_final-field4 = i_excel-value.
WHEN 0005.
wa_final-field5 = i_excel-value.
WHEN 0006.
wa_final-field6 = i_excel-value.
WHEN 0007.
wa_final-field7 = i_excel-value.
WHEN 0008.
wa_final-field8 = i_excel-value.
WHEN 0009.
wa_final-field9 = i_excel-value.
WHEN 0010.
wa_final-field10 = i_excel-value.
WHEN 0011.
wa_final-field11 = i_excel-value.
WHEN 0012.
wa_final-field12 = i_excel-value.
WHEN 0013.
wa_final-field13 = i_excel-value.
WHEN 0014.
wa_final-field14 = i_excel-value.
WHEN 0015.
wa_final-field15 = i_excel-value.
WHEN 0016.
wa_final-field16 = i_excel-value.
ENDCASE.
*-at end of each row, a record needs to append the internal table
AT END OF row.
APPEND wa_final TO i_final.
CLEAR: wa_final.
ENDAT.
ENDLOOP.
ENDIF.
Move all your Inatrnal tbale data to respected BAPI structures
*& Form MOVE_HEADDATA
* Move Header data to BAPI Header.
FORM move_headdata .
Move Header Data to BAPI Fields
MOVE : wa_final-matnr TO wa_mathead-material,
wa_final-mbrsh TO wa_mathead-ind_sector,
wa_final-mtart TO wa_mathead-matl_type.
To get UOM
SELECT SINGLE * FROM t006 INTO t006 WHERE msehi = wa_final-meins.
MOVE: t006-isocode TO wa_mara-base_uom_iso,
c_x TO wa_marax-base_uom_iso.
**-- Move Material Descriptions
PERFORM move_materialdescription .
ENDFORM. " MOVE_HEADDATA
*& Form MOVE_CLIENTDATA
* Move Basic data to Clientdata
FORM move_clientdata .
MOVE : wa_final-spart TO wa_mara-division,
wa_final-bismt TO wa_mara-old_mat_no,
wa_final-extwg TO wa_mara-extmatlgrp,
wa_final-mtpos_mara TO wa_mara-item_cat,
wa_final-groes TO wa_mara-size_dim,
wa_final-zeivr TO wa_mara-doc_vers,
wa_final-ekwsl TO wa_mara-pur_valkey.
MOVE : c_x TO wa_marax-division,
c_x TO wa_marax-old_mat_no,
c_x TO wa_marax-extmatlgrp,
c_x TO wa_marax-item_cat,
c_x TO wa_marax-size_dim,
c_x TO wa_marax-doc_vers,
c_x TO wa_marax-pur_valkey.
ENDFORM. " MOVE_CLIENTDATA
*& Form MOVE_STORAGELOCATIONDATA
* Move storage location data to STORAGELOCATIONDATA
FORM move_storagelocationdata .
CLEAR: wa_mard,wa_mardx.
MOVE : wa_final-werks TO wa_mard-plant,
wa_final-lgort TO wa_mard-stge_loc.
MOVE : wa_final-werks TO wa_mardx-plant,
wa_final-lgort TO wa_mardx-stge_loc.
ENDFORM. " MOVE_STORAGELOCATIONDATA
*& Form MOVE_SALESDATA
* Move Salesdate to SALESDATA
FORM move_salesdata .
MOVE : wa_final-vkorg TO wa_mvke-sales_org,
wa_final-vtweg TO wa_mvke-distr_chan,
wa_final-dwerk TO wa_mvke-delyg_plnt,
wa_final-versg TO wa_mvke-matl_stats,
wa_final-ktgrm TO wa_mvke-acct_assgt,
wa_final-mtpos TO wa_mvke-item_cat,
wa_final-mvgr1 TO wa_mvke-matl_grp_1,
wa_final-mvgr2 TO wa_mvke-matl_grp_2,
wa_final-mvgr3 TO wa_mvke-matl_grp_3,
wa_final-mvgr4 TO wa_mvke-matl_grp_4,
wa_final-mvgr5 TO wa_mvke-matl_grp_5,
wa_final-vrkme TO wa_mvke-sales_unit.
MOVE : wa_final-vkorg TO wa_mvkex-sales_org,
wa_final-vtweg TO wa_mvkex-distr_chan,
c_x TO wa_mvkex-delyg_plnt,
c_x TO wa_mvkex-matl_stats,
c_x TO wa_mvkex-acct_assgt,
c_x TO wa_mvkex-item_cat,
c_x TO wa_mvkex-matl_grp_1,
c_x TO wa_mvkex-matl_grp_2,
c_x TO wa_mvkex-matl_grp_3,
c_x TO wa_mvkex-matl_grp_4,
c_x TO wa_mvkex-matl_grp_5,
c_x TO wa_mvkex-sales_unit.
ENDFORM. " MOVE_SALESDATA
*& Form MOVE_MATERIALDESCRIPTION
* Move MATERIALDESCRIPTION to Material Description
FORM move_materialdescription .
CLEAR: wa_makt,i_makt.
MOVE : wa_final-maktx TO wa_makt-matl_desc,
sy-langu TO wa_makt-langu.
APPEND wa_makt TO i_makt.
CLEAR wa_makt.
ENDFORM. " MOVE_MATERIALDESCRIPTION
*& Form basic_data
FORM basic_data .
**-- Move Material Data at Storage Location Level
PERFORM move_storagelocationdata .
MOVE : wa_final-vkorg TO wa_mvke-sales_org,
wa_final-vtweg TO wa_mvke-distr_chan.
MOVE : wa_final-vkorg TO wa_mvkex-sales_org,
wa_final-vtweg TO wa_mvkex-distr_chan.
**-- Move Material Data at Client Level
PERFORM move_clientdata .
IF ALT_UOM is not Given in flat file Move BASEUOM as ALT_UOM
IF wa_final-meinh EQ c_space.
MOVE : wa_final-meins TO wa_marm-alt_unit,
wa_final-meins TO wa_marmx-alt_unit.
ELSE.
MOVE : wa_final-meinh TO wa_marm-alt_unit,
wa_final-umren TO wa_marm-numerator.
MOVE : wa_final-meinh TO wa_marmx-alt_unit,
c_x TO wa_marmx-numerator.
ENDIF.
MOVE : wa_final-numtp TO wa_marm-ean_cat,
wa_final-brgew TO wa_marm-gross_wt,
wa_final-volum TO wa_marm-volume,
wa_final-voleh TO wa_marm-volumeunit,
wa_final-gewei TO wa_marm-unit_of_wt.
APPEND wa_marm TO i_marm.
CLEAR wa_marm.
MOVE : c_x TO wa_marmx-ean_cat,
c_x TO wa_marmx-gross_wt,
c_x TO wa_marmx-volume,
c_x TO wa_marmx-volumeunit,
c_x TO wa_marmx-unit_of_wt.
APPEND wa_marmx TO i_marmx.
CLEAR wa_marmx.
ENDFORM. " basic_data
*& Form sales_data1
FORM sales_data1 .
Move Sales & Plant Data
MOVE : wa_final-werks TO wa_marc-plant,
wa_final-mtvfp TO wa_marc-availcheck,
wa_final-ladgr TO wa_marc-loadinggrp,
wa_final-prctr TO wa_marc-profit_ctr.
MOVE : wa_final-werks TO wa_marcx-plant,
c_x TO wa_marcx-availcheck,
c_x TO wa_marcx-loadinggrp,
c_x TO wa_marcx-profit_ctr.
MOVE: wa_final-tragr TO wa_mara-trans_grp,
c_x TO wa_marax-trans_grp.
**-- Move Sales Data
PERFORM move_salesdata .
Move Tax Data
MOVE : 'JP' TO wa_mlan-depcountry_iso,
'MWAR' TO wa_mlan-tax_type_1,
wa_final-taklv TO wa_mlan-taxclass_1.
APPEND wa_mlan TO i_mlan.
CLEAR wa_mlan.
ENDFORM. " sales_data1
*& Form purchase_data
FORM purchase_data .
Move Plant Data
MOVE : wa_final-werks TO wa_marc-plant,
wa_final-werks TO wa_marcx-plant.
Move PO data
MOVE : wa_final-ekgrp TO wa_marc-pur_group,
wa_final-kautb TO wa_marc-auto_p_ord,
wa_final-usequ TO wa_marc-quotausage,
wa_final-kordb TO wa_marc-sourcelist,
c_x TO wa_marcx-pur_group,
c_x TO wa_marcx-auto_p_ord,
c_x TO wa_marcx-quotausage,
c_x TO wa_marcx-sourcelist.
MOVE: wa_final-matkl TO wa_mara-matl_group,
wa_final-bstme TO wa_mara-po_unit,
c_x TO wa_marax-matl_group,
c_x TO wa_marax-po_unit.
ENDFORM. " purchase_data
*& Form mrp_data
FORM mrp_data .
**-- Move Material Data at Storage Location Level
PERFORM move_storagelocationdata .
Move All MRP data
MOVE: wa_final-diskz TO wa_mard-mrp_ind,
c_x TO wa_mardx-mrp_ind.
MOVE : wa_final-werks TO wa_marc-plant,
wa_final-dismm TO wa_marc-mrp_type,
wa_final-dispo TO wa_marc-mrp_ctrler,
wa_final-beskz TO wa_marc-proc_type,
wa_final-sobsl TO wa_marc-spproctype,
wa_final-mtvfp TO wa_marc-availcheck,
wa_final-minbe TO wa_marc-reorder_pt,
wa_final-fxhor TO wa_marc-pl_ti_fnce,
wa_final-disls TO wa_marc-lotsizekey,
wa_final-bstmi TO wa_marc-minlotsize,
wa_final-bstma TO wa_marc-maxlotsize,
wa_final-bstfe TO wa_marc-fixed_lot,
wa_final-mabst TO wa_marc-max_stock,
wa_final-ausss TO wa_marc-assy_scrap,
wa_final-dzeit TO wa_marc-inhseprodt,
wa_final-plifz TO wa_marc-plnd_delry,
wa_final-webaz TO wa_marc-gr_pr_time,
wa_final-fhori TO wa_marc-sm_key,
wa_final-eisbe TO wa_marc-safety_stk,
wa_final-strgr TO wa_marc-plan_strgp,
wa_final-wzeit TO wa_marc-replentime,
wa_final-lgfsb TO wa_marc-sloc_exprc,
wa_final-sbdkz TO wa_marc-dep_req_id,
wa_final-kzbed TO wa_marc-grp_reqmts,
wa_final-miskz TO wa_marc-mixed_mrp,
wa_final-stlal TO wa_marc-alternative_bom,
wa_final-stlan TO wa_marc-bom_usage.
MOVE : wa_final-werks TO wa_marcx-plant,
c_x TO wa_marcx-mrp_type,
c_x TO wa_marcx-mrp_ctrler,
c_x TO wa_marcx-proc_type,
c_x TO wa_marcx-spproctype,
c_x TO wa_marcx-availcheck,
c_x TO wa_marcx-reorder_pt,
c_x TO wa_marcx-pl_ti_fnce,
c_x TO wa_marcx-lotsizekey,
c_x TO wa_marcx-minlotsize,
c_x TO wa_marcx-maxlotsize,
c_x TO wa_marcx-fixed_lot,
c_x TO wa_marcx-max_stock,
c_x TO wa_marcx-assy_scrap,
c_x TO wa_marcx-inhseprodt,
c_x TO wa_marcx-plnd_delry,
c_x TO wa_marcx-gr_pr_time,
c_x TO wa_marcx-sm_key,
c_x TO wa_marcx-safety_stk,
c_x TO wa_marcx-plan_strgp,
c_x TO wa_marcx-replentime,
c_x TO wa_marcx-sloc_exprc,
c_x TO wa_marcx-dep_req_id,
c_x TO wa_marcx-grp_reqmts,
c_x TO wa_marcx-mixed_mrp,
c_x TO wa_marcx-alternative_bom,
c_x TO wa_marcx-bom_usage.
ENDFORM. " mrp_data
*& Form accounting_data
FORM accounting_data .
Move Plant Data
MOVE: wa_final-werks TO wa_marc-plant,
wa_final-werks TO wa_marcx-plant.
Move Account Data
MOVE : wa_final-werks TO wa_mbew-val_area,
wa_final-bklas TO wa_mbew-val_class,
wa_final-vprsv TO wa_mbew-price_ctrl,
wa_final-verpr TO wa_mbew-moving_pr,
wa_final-peinh TO wa_mbew-price_unit,
wa_final-stprs TO wa_mbew-std_price.
MOVE : wa_final-werks TO wa_mbewx-val_area,
c_x TO wa_mbewx-val_class,
c_x TO wa_mbewx-price_ctrl,
c_x TO wa_mbewx-moving_pr,
c_x TO wa_mbewx-price_unit,
c_x TO wa_mbewx-std_price.
ENDFORM. " accounting_data
*& Form cost_data
FORM cost_data .
Move Plant Data
MOVE: wa_final-werks TO wa_marc-plant,
wa_final-awsls TO wa_marc-variance_key,
wa_final-verid TO wa_marc-prodverscs, " Production Version
wa_final-werks TO wa_marcx-plant,
c_x TO wa_marcx-variance_key,
c_x TO wa_marcx-prodverscs.
Move Cost Data
MOVE : wa_final-werks TO wa_mbew-val_area,
wa_final-bklas TO wa_mbew-val_class,
wa_final-vprsv TO wa_mbew-price_ctrl,
wa_final-ekalr TO wa_mbew-qty_struct.
MOVE : wa_final-werks TO wa_mbewx-val_area,
c_x TO wa_mbewx-val_class,
c_x TO wa_mbewx-price_ctrl,
c_x TO wa_mbewx-qty_struct.
ENDFORM. " cost_data
Call All Structures in to BAPI
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = wa_mathead
clientdata = wa_mara
clientdatax = wa_marax
plantdata = wa_marc
plantdatax = wa_marcx
storagelocationdata = wa_mard
storagelocationdatax = wa_mardx
valuationdata = wa_mbew
valuationdatax = wa_mbewx
salesdata = wa_mvke
salesdatax = wa_mvkex
IMPORTING
return = i_return
TABLES
materialdescription = i_makt
unitsofmeasure = i_marm
unitsofmeasurex = i_marmx
taxclassifications = i_mlan.
IF i_return-type = 'A' OR i_return-type = 'E' .
DATA : l_v_string TYPE string,
l_v_msg1 TYPE string,
l_v_msg2 TYPE string.
MOVE i_return-message TO l_v_string.
CONDENSE l_v_string.
PERFORM fill_error_table USING 'E'
'ZMSG_MM'
'098'
v_reccon
l_v_string
v_error = v_error + 1.
CLEAR: l_v_string.
ELSEIF i_return-type = 'S'.
PERFORM fill_error_table USING 'S'
i_return-id
i_return-number
i_return-message_v1
i_return-message_v2
i_return-message_v3
i_return-message_v4.
v_success = v_success + 1.
ENDIF .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
IF sy-subrc = 0.
COMMIT WORK AND WAIT. "for the update to table Transcation
ENDIF.
Regards,
Siva. -
About material master data batch input
hello
i wrote a batch input for material master data. but it can't work ,i can't use it to create material.hope someone help me!thanks.code is below.
report z_mat_batchinput no standard page heading
line-size 255 message-id YB.
mat batch input
include bdcrecx1.
include .
tables: mara,marm,MARC,MARD,T134,NRIV,T006A,T023,T001W,T001L,
TVKO,TVTW,T025,TTGR,TLGR,TVKWZ,T006.
data: DIMID like t006-DIMID.
data: flag, K, tmp.
DATA: X TYPE I.
************ÉÏÔØÎļþÄÚ±í************************
data: begin of record occurs 0,
MATNR(018), " ÎïÁϺÅ
MTART(004), " ÎïÁÏÀàÐÍ
**generaldata1**
MAKTX(040), " ÎïÁÏÃèÊö
EAKTX(040), " Ó¢ÎÄÃèÊö
MEINS(003), " »ù±¾¼ÆÁ¿µ¥Î»
MATKL(009), " ÎïÁÏ×é
BISMT(018), " ¾ÉÎïÁϺÅ
EXTWG(018), " ÍⲿÎïÁÏ×é
SPART(002), " ²¿ÃÅ
MTPOS_MARA(004), " ÆÕͨÏîÄ¿Àà±ð×é
BRGEW(017), " ëÖØ
GEWEI(003), " ÖØÁ¿µ¥Î»
NTGEW(017), " ¾»ÖØ
VOLUM(017), " Ìå»ý
VOLEH(003), " Ìå»ýµ¥Î»
GROES(032), " Á¿¸Ù
MAGRV(004), " ÎïÁÏ×éµÄ°ü×°Îï
**generaldata2**
NORMT(018), " ¹¤Òµ±ê×¼ÃèÊö
FERTH(018), " ÀàÐÍ
WRKST(048), " ¹æ¸ñ
**generaldata1**
EAN11(018), " ²úÆ·±íʶÂë
**generaldata2**
ZEIAR(003), " ÎĵµÀàÐÍ£¬ºÏÀí´¢±¸ÖÜתÆÚ
WERKS(004), " ¹¤³§
VKORG(004), " ÏúÊÛ×éÖ¯
VTWEG(002), " ·ÖÏúÇþµÀ
**salesorg 1**
VRKME(003), " ÏúÊÛµ¥Î»
VMREN(006), " ÏúÊÛµ¥Î»×ª»»Òò×Ó
VMREZ(006), " »ù±¾µ¥Î»×ª»»Òò×Ó
SPART(002), " ²úÆ·×é
DWERK(004), " ½»»õ¹¤³§
TAXKM(001), " ÎïÁÏË°·ÖÀà
**salesorg 2**
KONDM(002), " ÎïÁ϶¨¼Û×é
KTGRM(002), " ¿ÆÄ¿ÉèÖÃ×é
MVGR1(003), " ÎïÁÏ×é 1
MVGR2(003), " ÎïÁÏ×é 2
MTPOS(004), " ÏîÄ¿Àà±ð×é
VERSG(001), " ÎïÁÏͳ¼Æ×é
**ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý**
MTVFP(002), " ¿ÉÓÃÐÔ¼ì²é
XCHPF(001), " Åú´Î¹ÜÀí
YCHPF(001), " ÅúÁ¿¹ÜÀí
TRAGR(004), " ÔËÊä×é
ladgr(004), " ×°ÔØ×é
**pur**
BSTME(003), " ¶©µ¥µ¥Î»
UMREZ(006), " »ù±¾µ¥Î»×ª»»Òò×Ó
UMREN(006), " ¶©µ¥µ¥Î»×ª»»Òò×Ó
WEBAZ(003), " ÊÕ»õ´¦Àíʱ¼ä
EKGRP(003), " ²É¹º×é
LGORT(004), " ¿â´æµØ
**Ò»°ã¹¤³§Êý¾Ý/²Ö´¢1**
AUSME(003), " ·¢»õµ¥Î»
UMREJ(006), " »ù±¾µ¥Î»×ª»»Òò×Ó
UMREF(006), " ·¢»õµ¥Î»×ª»»Òò×Ó
XCHPF(001), " ÅúÁ¿¹ÜÀí
**MRP 1**
DISGR(004), " MRP×é
DISMM(002), " MRPÀàÐÍ
FXHOR(003), " ¼Æ»®µÄʱ½ì
DISPO(003), " MRP¿ØÖÆÕß
DISLS(002), " ÅúÁ¿
MAABC(001), " ABC±êʶ
BSTFE(018), " ¹Ì¶¨ÅúÁ¿´óС
**MRP 2**
RESKZ(001), " »ñÈ¡ÀàÐÍ
BESKZ(001), " ²É¹ºÀàÐÍ
SOBSL(002), " ÌØÊâ²É¹ºÀà
LGPRO(004), " ·¢»õ²Ö´¢µØµã
RGEKZ(001), " ·´³å
PLIFZ(003), " ¼Æ»®½»»õʱ¼ä
VEBAZ(003), " ÊÕ»õ´¦Àíʱ¼ä
DZEIT(008), "×ÔÖÆÉú²ú
FHORI(003), " ¼Æ»®±ß¼ÊÂë
EISBE(018), " °²È«¿â´æ
**MRP 3**
PERKZ(001), " ÆÚ¼ä±êʶ
STRGR(002), " ²ßÂÔ×é
VRMOD(001), " ÏûºÄģʽ
VINT1(003), " ÄæÏòÏûºÄÆÚ¼ä
VINT2(003), " ÏòÇ°ÏûºÄÆÚ¼ä
NTVFP(002), " ¿ÉÓÃÐÔ¼ì²é
**MRP 4**
SAUFT(001), " Öظ´ÖÆÔì±êÖ¾
SFEPR(004), " Öظ´Éú²ú²ÎÊýÎļþ
**¹¤×÷¼Æ»®**
FEVOR(003), " Éú²úµ÷¶ÈÔ±
FRTME(003), " Éú²úµ¥Î»
SMREZ(006), " »ù±¾µ¥Î»×ª»»Òò×Ó
SMREN(006), " Éú²úµ¥Î»×ª»»Òò×Ó
UEETK(001), " ÎÞÏÞÖƹýÁ¿½»»õ
**»á¼Æ 1**
BKLAS(004), " ÆÀ¹ÀÀà
BWTTY(001), " ¹À¼Û·ÖÀà
VPRSV(001), " ¼Û¸ñ¿ØÖÆ
PEINH(006), " ¼Û¸ñµ¥Î»
VERPR(015), " Òƶ¯Æ½¾ù¼Û
STPRS(015), " ±ê×¼¼Û
**»á¼Æ 2**
BWPRH(014), " ÉÌÒµ¼Û¸ñ 1
**³É±¾ 1**
LOSGR(018), " ÅúÁ¿³É±¾ºËËã
**³É±¾ 2**
ZPLP1(014), " ¼Æ»®¼Û¸ñ 1
ZPLD1(010), " ¼Æ»®ÈÕÆÚ 1
**qm**
ART1(8), "¼ìÑéÀàÐÍ1
AKTIV1(1), "ÒѼ¤»î
QMPUR(1), "¼¤»î²É¹ºÖÐµÄ QM
SSQSS(8), "QM ¿ØÖÆÂë¡¢
QMATV(8), "QM¼ìÑéÉèÖÃ
ART2(8), "¼ìÑéÀàÐÍ2
AKTIV2(6), "ÒѼ¤»î
ART3(8), "¼ìÑéÀàÐÍ3
AKTIV3(6), "ÒѼ¤»î
end of record.
************ÏÂÔظñʽ/´íÎóÎļþÄÚ±í**************
data: begin of record1 occurs 0,
MATNR(018), " ÎïÁϺÅ
MTART(008), " ÎïÁÏÀàÐÍ
**»ù±¾Êý¾Ý1**
MAKTX(040), " ÎïÁÏÃèÊö
EAKTX(040), " Ó¢ÎÄÃèÊö
MEINS(013), " »ù±¾¼ÆÁ¿µ¥Î»
MATKL(009), " ÎïÁÏ×é
BISMT(018), " ¾ÉÎïÁϺÅ
EXTWG(018), " ÍⲿÎïÁÏ×é
SPART(002), " ²¿ÃÅ
MTPOS_MARA(004), " ÆÕͨÏîÄ¿Àà±ð×é
BRGEW(017), " ëÖØ
GEWEI(008), " ÖØÁ¿µ¥Î»
NTGEW(017), " ¾»ÖØ
VOLUM(017), " Ìå»ý
VOLEH(008), " Ìå»ýµ¥Î»
GROES(032), " Á¿¸Ù
MAGRV(014), " ÎïÁÏ×éµÄ°ü×°Îï
**»ù±¾Êý¾Ý2**
NORMT(018), " ¹¤Òµ±ê×¼ÃèÊö
FERTH(018), " ÀàÐÍ
WRKST(048), " ¹æ¸ñ
**»ù±¾Êý¾Ý1**
EAN11(018), " ²úÆ·±íʶÂë
**»ù±¾Êý¾Ý2**
ZEIAR(003), " ÎĵµÀàÐÍ£¬ºÏÀí´¢±¸ÖÜתÆÚ
WERKS(004), " ¹¤³§
VKORG(008), " ÏúÊÛ×éÖ¯
VTWEG(008), " ·ÖÏúÇþµÀ
**ÏúÊÛ×éÖ¯ 1**
VRKME(003), " ÏúÊÛµ¥Î»
VMREN(006), " ÏúÊÛµ¥Î»×ª»»Òò×Ó
VMREZ(006), " »ù±¾µ¥Î»×ª»»Òò×Ó
SPART(006), " ²úÆ·×é
DWERK(008), " ½»»õ¹¤³§
TAXKM(010), " ÎïÁÏË°·ÖÀà
**ÏúÊÛ×éÖ¯ 2**
KONDM(010), " ÎïÁ϶¨¼Û×é
KTGRM(010), " ¿ÆÄ¿ÉèÖÃ×é
MVGR1(003), " ÎïÁÏ×é 1
MVGR2(003), " ÎïÁÏ×é 2
MTPOS(010), " ÏîÄ¿Àà±ð×é
VERSG(001), " ÎïÁÏͳ¼Æ×é
**ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý**
MTVFP(010), " ¿ÉÓÃÐÔ¼ì²é
XCHPF(008), " Åú´Î¹ÜÀí
YCHPF(001), " ÅúÁ¿¹ÜÀí
TRAGR(006), " ÔËÊä×é
ladgr(006), " ×°ÔØ×é
**²É¹º**
BSTME(003), " ¶©µ¥µ¥Î»
UMREZ(006), " »ù±¾µ¥Î»×ª»»Òò×Ó
UMREN(006), " ¶©µ¥µ¥Î»×ª»»Òò×Ó
WEBAZ(003), " ÊÕ»õ´¦Àíʱ¼ä
EKGRP(006), " ²É¹º×é
LGORT(004), " ¿â´æµØ
**Ò»°ã¹¤³§Êý¾Ý/²Ö´¢1**
AUSME(003), " ·¢»õµ¥Î»
UMREJ(006), " »ù±¾µ¥Î»×ª»»Òò×Ó
UMREF(006), " ·¢»õµ¥Î»×ª»»Òò×Ó
XCHPF(001), " ÅúÁ¿¹ÜÀí
**MRP 1**
DISGR(004), " MRP×é
DISMM(009), " MRPÀàÐÍ
FXHOR(003), " ¼Æ»®µÄʱ½ì
DISPO(011), " MRP¿ØÖÆÕß
DISLS(004), " ÅúÁ¿
MAABC(007), " ABC±êʶ
BSTFE(018), " ¹Ì¶¨ÅúÁ¿´óС
**MRP 2**
RESKZ(001), " »ñÈ¡ÀàÐÍ
BESKZ(008), " ²É¹ºÀàÐÍ
SOBSL(002), " ÌØÊâ²É¹ºÀà
LGPRO(004), " ·¢»õ²Ö´¢µØµã
RGEKZ(001), " ·´³å
PLIFZ(012), " ¼Æ»®½»»õʱ¼ä
VEBAZ(003), " ÊÕ»õ´¦Àíʱ¼ä
DZEIT(008), "×ÔÖÆÉú²ú
FHORI(010), " ¼Æ»®±ß¼ÊÂë
EISBE(018), " °²È«¿â´æ
**MRP 3**
PERKZ(008), " ÆÚ¼ä±êʶ
STRGR(006), " ²ßÂÔ×é
VRMOD(001), " ÏûºÄģʽ
VINT1(003), " ÄæÏòÏûºÄÆÚ¼ä
VINT2(003), " ÏòÇ°ÏûºÄÆÚ¼ä
NTVFP(010), " ¿ÉÓÃÐÔ¼ì²é
**MRP 4**
SAUFT(001), " Öظ´ÖÆÔì±êÖ¾
SFEPR(004), " Öظ´Éú²ú²ÎÊýÎļþ
**¹¤×÷¼Æ»®**
FEVOR(003), " Éú²úµ÷¶ÈÔ±
FRTME(003), " Éú²úµ¥Î»
SMREZ(006), " »ù±¾µ¥Î»×ª»»Òò×Ó
SMREN(006), " Éú²úµ¥Î»×ª»»Òò×Ó
UEETK(001), " ÎÞÏÞÖƹýÁ¿½»»õ
**»á¼Æ 1**
BKLAS(006), " ÆÀ¹ÀÀà
BWTTY(001), " ¹À¼Û·ÖÀà
VPRSV(008), " ¼Û¸ñ¿ØÖÆ
PEINH(008), " ¼Û¸ñµ¥Î»
VERPR(015), " Òƶ¯Æ½¾ù¼Û
STPRS(015), " ±ê×¼¼Û
**»á¼Æ 2**
BWPRH(014), " ÉÌÒµ¼Û¸ñ 1
**³É±¾ 1**
LOSGR(018), " ÅúÁ¿³É±¾ºËËã
**³É±¾ 2**
ZPLP1(014), " ¼Æ»®¼Û¸ñ 1
ZPLD1(010), " ¼Æ»®ÈÕÆÚ 1
**ÖÊÁ¿¹ÜÀí**
ART1(8), "¼ìÑéÀàÐÍ1
AKTIV1(6), "ÒѼ¤»î
QMPUR(010), "¼¤»î²É¹ºÖÐµÄ QM
SSQSS(8), "QM ¿ØÖÆÂë¡¢
QMATV(8), "QM¼ìÑéÉèÖÃ
ART2(8), "¼ìÑéÀàÐÍ2
AKTIV2(6), "ÒѼ¤»î
ART3(8), "¼ìÑéÀàÐÍ3
AKTIV3(6), "ÒѼ¤»î
end of record1.
selection-screen begin of block 0 with frame title text-001.
selection-screen begin of line .
selection-screen position 1.
parameters: test like rkec1-test .
selection-screen
comment 3(4) text-004 for field test.
selection-screen position 26.
parameters: oldfile like rlgrap-filename.
selection-screen
comment 9(17) text-003 for field oldfile.
selection-screen: end of line.
selection-screen begin of line.
selection-screen position 1.
parameters: dnldflag like rkec1-test default 'X'.
selection-screen
comment 3(4) text-005 for field dnldflag.
selection-screen position 26.
parameters: outfile like rlgrap-filename .
selection-screen
comment 9(17) text-006 for field outfile.
selection-screen: end of line.
selection-screen end of block 0 .
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-002.
selection-screen begin of line.
selection-screen position 1.
PARAMETERS: GEN1 LIKE RKEC1-TEST.
selection-screen
comment 3(9) text-007 for field GEN1.
selection-screen position 26.
PARAMETERS: GEN2 LIKE RKEC1-TEST.
selection-screen
comment 28(9) text-008 for field GEN2.
selection-screen end of line.
selection-screen begin of line.
selection-screen position 1.
PARAMETERS: SALORG1 LIKE RKEC1-TEST.
selection-screen
comment 3(21) text-009 for field SALORG1.
selection-screen position 26.
PARAMETERS: SALORG2 LIKE RKEC1-TEST.
selection-screen
comment 28(21) text-010 for field SALORG2.
selection-screen position 51.
PARAMETERS: SALPLANT LIKE RKEC1-TEST.
selection-screen
comment 53(19) text-011 for field SALPLANT.
selection-screen end of line.
selection-screen begin of line.
selection-screen position 1.
PARAMETERS: PURCHASE LIKE RKEC1-TEST.
selection-screen
comment 3(21) text-012 for field PURCHASE.
selection-screen position 26.
PARAMETERS: PLTSTRG1 LIKE RKEC1-TEST.
selection-screen
comment 28(21) text-018 for field PLTSTRG1.
selection-screen end of line.
selection-screen begin of line.
selection-screen position 1.
PARAMETERS: MRP1 LIKE RKEC1-TEST.
selection-screen
comment 3(4) text-013 for field MRP1.
selection-screen position 13.
PARAMETERS: MRP2 LIKE RKEC1-TEST.
selection-screen
comment 15(4) text-014 for field MRP2.
selection-screen position 26.
PARAMETERS: MRP3 LIKE RKEC1-TEST.
selection-screen
comment 28(4) text-015 for field MRP3.
selection-screen position 37.
PARAMETERS: MRP4 LIKE RKEC1-TEST.
selection-screen
comment 39(4) text-016 for field MRP4.
selection-screen position 51.
PARAMETERS: PLANTSTR LIKE RKEC1-TEST.
selection-screen
comment 53(8) text-017 for field PLANTSTR.
selection-screen end of line.
selection-screen begin of line.
selection-screen position 1.
PARAMETERS: QAU LIKE RKEC1-TEST.
selection-screen
comment 3(8) text-023 for field QAU.
selection-screen position 13.
PARAMETERS: ACC1 LIKE RKEC1-TEST.
selection-screen
comment 15(5) text-019 for field ACC1.
selection-screen position 26.
PARAMETERS: ACC2 LIKE RKEC1-TEST.
selection-screen
comment 28(5) text-020 for field ACC2.
selection-screen position 37.
PARAMETERS: COR1 LIKE RKEC1-TEST.
selection-screen
comment 39(5) text-021 for field COR1.
selection-screen position 51.
PARAMETERS: COR2 LIKE RKEC1-TEST.
selection-screen
comment 53(5) text-022 for field COR2.
selection-screen end of line.
SELECTION-SCREEN END OF BLOCK 1.
at selection-screen on value-request for oldfile.
call function 'KD_GET_FILENAME_ON_F4'
EXPORTING
mask = ',Îı¾Îļþ(ÖƱí·û·Ö¸ô),*.txt'
static = 'X'
CHANGING
file_name = oldfile.
at selection-screen on value-request for outfile.
call function 'KD_GET_FILENAME_ON_F4'
EXPORTING
mask = ',Microsoft Excel¹¤×÷²¾,*.xls'
static = 'X'
CHANGING
file_name = outfile.
initialization.
******µÃµ½ÎļþĿ¼*******
call function 'WS_QUERY'
EXPORTING
query = 'CD'
IMPORTING
return = outfile.
if sy-subrc <> 0.
message e005 with outfile.
endif.
oldfile = outfile.
concatenate outfile 'mat_fat' into outfile.
*ÅúÊäÈëĬÈÏÃû³Æ
group = 'MATBATCHIN'.
start-of-selection.
if dnldflag eq 'X' and not ( outfile is initial ).
perform download_data.
stop.
endif.
perform upload_data.
if test = ' '.
*ÊÓͼ²ÎÊý¼ì²é
IF ( GEN1 NE 'X' AND GEN2 NE 'X' AND SALORG1 NE 'X'
AND SALORG2 NE 'X' AND SALPLANT NE 'X'
AND PURCHASE NE 'X' AND PLTSTRG1 NE 'X'
AND MRP1 NE 'X' AND MRP2 NE 'X' AND MRP3 NE 'X'
AND MRP4 NE 'X' AND PLANTSTR NE 'X'
AND ACC1 NE 'X' AND ACC2 NE 'X'
AND COR1 NE 'X' AND COR2 NE 'X' and qau ne 'X' ) .
MESSAGE E000 WITH 'ÇëÑ¡ÔñÐèά»¤ÊÓͼ'.
ENDIF.
perform open_group.
SORT RECORD BY WERKS MATNR.
loop at record.
perform bdc_fill.
perform bdc_transaction using 'MM01'.
clear: bdcdata.
refresh: bdcdata.
endloop.
perform close_group.
else.
perform file_check.
endif.
end-of-selection.
*& Form UPLOAD_DATA
ÉÏÔØÅúÊäÈëÊý¾Ý
--> p1 text
<-- p2 text
form upload_data.
call function 'WS_UPLOAD'
EXPORTING
filename = oldfile
filetype = 'DAT'
TABLES
data_tab = record
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_table_width = 4
invalid_type = 5
no_batch = 6
unknown_error = 7
gui_refuse_filetransfer = 8
customer_error = 9
others = 10.
if sy-subrc <> 0.
message E000 with 'ÇëÊäÈëÉÏÔØÎļþ'.
endif.
read table record with key MATNR = '**'.
if sy-tabix lt 1.
message E000 with 'ÉÏÔØÎļþÎļþÍ·ÓëÊý¾ÝÖ®¼äÎÞ**'.
endif.
delete record from 1 to sy-tabix.
endform. " UPLOAD_DATA
*& Form BDC_FILL
ÅúÊäÈë
--> p1 text
<-- p2 text
form bdc_fill.
data: N type I,
M type I,
S_MATNR(018),
test(1) type N.
PERFORM BDC_FILL_INITALSCR. "³õʼÆÁÄ»
tmp = '0'.
condense record-matnr no-gaps.
test = record-matnr(1).
if test <> ''.
M = STRLEN( RECORD-MATNR ).
M = 18 - M.
DO M TIMES.
CONCATENATE '0' RECORD-MATNR INTO S_MATNR.
RECORD-MATNR = S_MATNR.
ENDDO.
endif.
**ÅжÏÎïÁÏ»ù±¾ÊÓͼÊÇ·ñÒѾ±»Î¬»¤¹ý**
SELECT SINGLE * FROM MARA WHERE MATNR = RECORD-MATNR.
IF SY-SUBRC NE 0.
K = '0'.
Else.
condense MARA-PSTAT no-gaps.
N = strlen( mara-pstat ).
M = 0.
record-meins = mara-meins.
do N times.
K = MARA-PSTAT+M.
IF K = 'K'.
EXIT.
ENDIF.
M = M + 1.
enddo.
ENDIF.
IF ( ( GEN1 EQ 'X' OR GEN2 EQ 'X' ) AND SALORG1 NE 'X'
AND SALORG2 NE 'X' AND SALPLANT NE 'X'
AND PURCHASE NE 'X' AND PLTSTRG1 NE 'X'
AND MRP1 NE 'X' AND MRP2 NE 'X' AND MRP3 NE 'X'
AND MRP4 NE 'X' AND PLANTSTR NE 'X'
AND ACC1 NE 'X' AND ACC2 NE 'X'
AND COR1 NE 'X' AND COR2 NE 'X' and qau ne 'X' ) .
IF K EQ 'K'.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(15)'.
perform bdc_field using 'BDC_OKCODE'
'/N'.
ELSE.
PERFORM BDC_FILL_CHOICEVIEW. "Ñ¡ÔñÊÓͼ
ENDIF.
ELSE.
PERFORM BDC_FILL_CHOICEVIEW. "Ñ¡ÔñÊÓͼ
PERFORM BDC_FILL_ORGVIEW. "×éÖ¯¼¶±ð
ENDIF.
TRANSLATE record-MEINS TO UPPER CASE.
TRANSLATE record-BSTME TO UPPER CASE.
TRANSLATE record-VRKME TO UPPER CASE.
TRANSLATE record-FRTME TO UPPER CASE.
TRANSLATE record-AUSME TO UPPER CASE.
if gen1 eq 'X'.
IF K NE 'K'.
PERFORM GENERALDATA1.
ENDIF.
endif.
if gen2 eq 'X'.
IF K NE 'K'.
perform generaldata2.
ENDIF.
endif.
if salorg1 eq 'X'.
perform salorg1.
endif.
if salorg2 eq 'X'.
perform salorg2.
endif.
if salplant eq 'X'.
perform salplant.
endif.
if purchase eq 'X'.
perform purchasedata.
endif.
if mrp1 eq 'X'.
perform MRP1.
endif.
if mrp2 eq 'X'.
perform MRP2.
endif.
if mrp3 eq 'X'.
perform MRP3.
endif.
if mrp4 eq 'X'.
perform MRP4.
endif.
if PLANTSTR eq 'X'.
perform PLANTSTR.
endif.
if PLTSTRG1 eq 'X'.
perform PLTSTRG1.
endif.
if qau eq 'X'.
perform qualitydata.
endif.
if ACC1 eq 'X'.
perform ACC1DATA.
endif.
if ACC2 eq 'X'.
perform ACC2DATA.
endif.
if COR1 eq 'X'.
perform COR1DATA.
endif.
if COR2 eq 'X'.
perform COR2DATA.
endif.
perform BDC_SAVE.
endform. " BDC_FILL
*& Form GENERALDATA1
Ò»°ãÊý¾Ý 1
--> p1 text
<-- p2 text
form generaldata1.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
"'=ZU01'.
'/00'.
perform bdc_field using 'MAKT-MAKTX'
record-MAKTX. " ÎïÁÏÃèÊö
perform bdc_field using 'MARA-MEINS'
record-MEINS. " »ù±¾¼ÆÁ¿µ¥Î»
perform bdc_field using 'MARA-MATKL'
record-MATKL. " ÎïÁÏ×é
perform bdc_field using 'MARA-BISMT'
record-BISMT.
perform bdc_field using 'MARA-EXTWG'
record-EXTWG.
perform bdc_field using 'MARA-SPART'
record-SPART.
perform bdc_field using 'MARA-MTPOS_MARA'
record-MTPOS_MARA.
perform bdc_field using 'BDC_CURSOR'
'MARA-GROES'.
perform bdc_field using 'MARA-BRGEW'
record-BRGEW.
if record-gewei = '' and ( salorg1 = 'X' or salorg2 = 'X'
or salplant = 'X' ).
perform bdc_field using 'MARA-GEWEI'
'KG'. " ÖØÁ¿µ¥Î»
else.
perform bdc_field using 'MARA-GEWEI'
record-GEWEI. " ÖØÁ¿µ¥Î»
endif.
perform bdc_field using 'MARA-NTGEW'
record-NTGEW.
perform bdc_field using 'MARA-VOLUM'
record-VOLUM.
perform bdc_field using 'MARA-VOLEH'
record-VOLEH.
perform bdc_field using 'MARA-GROES'
record-GROES.
condense record-EAN11 no-gaps.
if record-EAN11 <> ''.
perform bdc_field using 'MARA-EAN11'
record-EAN11.
perform bdc_field using 'MARA-NUMTP'
'HT'.
endif.
perform bdc_field using 'MARA-MAGRV'
record-MAGRV.
perform bdc_dynpro using 'SAPLMGMM' '4300'.
perform bdc_field using 'BDC_OKCODE'
'=ZU02'.
condense record-EAKTX no-gaps.
if record-EAKTX <> ''.
perform bdc_field using 'SKTEXT-SPRAS(2)'
'EN'.
perform bdc_field using 'SKTEXT-MAKTX(2)'
record-EAKTX.
endif.
perform bdc_dynpro using 'SAPLMGMM' '4300'.
perform bdc_field using 'BDC_OKCODE'
'=MAIN'.
if record-meins <> 'PAK'.
perform bdc_field using 'SMEINH-UMREN(05)'
'1'.
perform bdc_field using 'SMEINH-MEINH(05)'
'PAK'.
perform bdc_field using 'SMEINH-UMREZ(05)'
'1'.
endif.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
endform. " GENERALDATA
*& Form generaldata2
Ò»°ãÊý¾Ý 2
--> p1 text
<-- p2 text
FORM generaldata2.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
record-MAKTX.
perform bdc_field using 'BDC_CURSOR'
'MARA-NORMT'.
condense record-ferth no-gaps.
if record-ferth <> ''.
perform bdc_field using 'MARA-FERTH'
record-FERTH.
endif.
perform bdc_field using 'MARA-NORMT'
record-NORMT.
perform bdc_field using 'MARA-WRKST'
record-WRKST.
perform bdc_field using 'MARA-ZEIAR'
record-ZEIAR.
ENDFORM. " generaldata2
*& Form salorg1
ÏúÊÛ×éÖ¯ 1
--> p1 text
<-- p2 text
FORM salorg1.
condense RECORD-SPART no-gaps.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'MAKT-MAKTX'
RECORD-MAKTX. " ÎïÁÏÃèÊö
IF K NE 'K'.
perform bdc_field using 'MARA-MEINS'
record-MEINS. " »ù±¾¼ÆÁ¿µ¥Î»
ENDIF.
perform bdc_field using 'MARA-SPART'
record-SPART. " ²úÆ·×é
perform bdc_field using 'MVKE-DWERK'
record-DWERK. " ½»»õ¹¤³§
PERFORM BDC_FIELD USING 'MG03STEUER-TAXKM(01)'
RECORD-TAXKM. " ÎïÁÏË°·ÖÀà
condense RECORD-VRKME no-gaps.
IF RECORD-MEINS <> RECORD-VRKME and RECORD-VRKME <> ''.
perform bdc_field using 'MVKE-VRKME'
record-VRKME. " ÏúÊÛµ¥Î»
select single * from MARM where matnr = record-matnr
and meinh = record-vrkme.
if SY-SUBRC NE 0.
tmp = 'W'.
select single * from t006 where MSEHI = record-meins.
if t006-DIMID = 'AAAADL'.
DIMID = ''.
else.
DIMID = t006-DIMID.
endif.
select single * from t006 where MSEHI = record-vrkme.
if dimid <> t006-DIMID.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0510'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMZU-UMREN'
record-VMREN. "ÏúÊÛµ¥Î»×ª»»Òò×Ó
perform bdc_field using 'RMMZU-UMREZ'
record-VMREZ. "»ù±¾µ¥Î»×ª»»Òò×Ó
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
endif.
endif.
ENDIF.
perform bdc_dynpro using 'SAPLMGMM' '4200'.
perform bdc_field using 'BDC_OKCODE' " µ÷ÓÃË°Àà×ÓÆÁÄ»
'/00'.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' " ·µ»ØÏúÊÛ×éÖ¯ 1ÆÁÄ»
'/00'.
ENDFORM. " salorg1
*& Form salorg2
ÏúÊÛ×éÖ¯ 2
--> p1 text
<-- p2 text
FORM salorg2.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'MVKE-KTGRM'.
PERFORM BDC_FIELD USING 'MVKE-VERSG'
RECORD-VERSG. " ÎïÁÏͳ¼Æ×é
PERFORM BDC_FIELD USING 'MVKE-KTGRM'
RECORD-KTGRM. " ¿ÆÄ¿ÉèÖÃ×é
PERFORM BDC_FIELD USING 'MVKE-KONDM'
RECORD-KONDM. " ÎïÁ϶¨¼Û×é
perform bdc_field using 'MVKE-MTPOS'
RECORD-MTPOS. " ÏîÄ¿Àà±ð×é
PERFORM BDC_FIELD USING 'MVKE-MVGR1'
RECORD-MVGR1. " ÎïÁÏ×é 1
PERFORM BDC_FIELD USING 'MVKE-MVGR2'
RECORD-MVGR2. " ÎïÁÏ×é 2
ENDFORM. " salorg2
*& Form salplant
ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý
--> p1 text
<-- p2 text
FORM salplant.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
select single * from marc where matnr = record-matnr
and werks = record-werks.
if SY-SUBRC NE 0 OR MARC-MTVFP = ''.
PERFORM BDC_FIELD USING 'MARC-MTVFP'
RECORD-MTVFP. " ¿ÉÓÃÐÔ¼ì²é
endif.
PERFORM BDC_FIELD USING 'MARA-TRAGR'
RECORD-TRAGR. " ÔËÊä×é
PERFORM BDC_FIELD USING 'MARC-LADGR'
RECORD-LADGR. " ×°ÔØ×é
perform bdc_field using 'MARC-XCHPF'
record-XCHPF. " ÅúÁ¿¹ÜÀí
ENDFORM. " salplant
*& Form PURCHASEDATA
²É¹ºÊý¾Ý
--> p1 text
<-- p2 text
form purchasedata.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'MARC-WEBAZ'.
perform bdc_field using 'MAKT-MAKTX'
record-MAKTX.
IF K NE 'K'.
perform bdc_field using 'MARA-MEINS'
record-MEINS. " »ù±¾¼ÆÁ¿µ¥Î»
perform bdc_field using 'MARA-MATKL'
record-MATKL. " ÎïÁÏ×é
ENDIF.
condense RECORD-BSTME no-gaps.
IF RECORD-MEINS <> RECORD-BSTME and RECORD-BSTME <> ''.
perform bdc_field using 'MARA-BSTME'
record-BSTME. " ¶©µ¥µ¥Î»
select single * from MARM where matnr = record-matnr
and meinh = record-bstme.
if SY-SUBRC NE 0 and
( record-vrkme <> record-bstme or tmp <> 'W' ).
tmp = 'W'.
select single * from t006 where MSEHI = record-meins.
if t006-DIMID = 'AAAADL'.
DIMID = ''.
else.
DIMID = t006-DIMID.
endif.
select single * from t006 where MSEHI = record-bstme.
if dimid <> t006-DIMID.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0510'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMZU-UMREN'
record-UMREN. "¶©µ¥µ¥Î»×ª»»Òò×Ó
perform bdc_field using 'RMMZU-UMREZ'
record-UMREZ. "»ù±¾µ¥Î»×ª»»Òò×Ó
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
endif.
endif.
ENDIF.
perform bdc_field using 'MARC-EKGRP'
record-EKGRP. " ²É¹º×é
perform bdc_field using 'MARC-WEBAZ'
record-WEBAZ. " ÊÕ»õ´¦Àíʱ¼ä
endform. " PURCHASEDATA
*& Form MRP1
text
--> p1 text
<-- p2 text
FORM MRP1.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
record-MAKTX. " ÎïÁÏÃèÊö
IF K NE 'K'.
perform bdc_field using 'MARA-MEINS'
record-MEINS. " »ù±¾µ¥Î»
ENDIF.
perform bdc_field using 'MARC-DISGR'
record-DISGR. " MRP×é
perform bdc_field using 'MARC-MAABC'
record-MAABC. " ABC±êʶ
perform bdc_field using 'MARC-DISMM'
record-DISMM. " MRPÀàÐÍ
perform bdc_field using 'MARC-FXHOR'
record-FXHOR. " ¼Æ»®µÄʱ½ì
perform bdc_field using 'MARC-DISPO'
record-DISPO. " MRP¿ØÖÆÕß
perform bdc_field using 'MARC-DISLS'
record-DISLS. " ÅúÁ¿
perform bdc_field using 'MARC-BSTFE'
Here is a sample program which creates a material with the bare minmal fields, this will get you started.
report zrich_0003 .
data: headdata type bapimathead.
data: clientdata type bapi_mara.
data: clientdatax type bapi_marax.
data: descdata type table of BAPI_MAKT with header line.
data: return type bapiret2 .
data: returnm type table of bapi_matreturn2 with header line.
data: xmara type mara.
parameters: p_matnr type mara-matnr.
headdata-material = p_matnr.
headdata-ind_sector = 'M'.
headdata-matl_type = 'FERT'.
headdata-basic_view = 'X'.
clientdata-BASE_UOM = 'EA'.
clientdatax-BASE_UOM = 'X'.
clientdata-old_mat_no = 'Old Material'.
clientdatax-old_mat_no = 'X'.
clientdata-division = '00'.
clientdatax-division = 'X'.
descdata-LANGU = sy-langu.
descdata-MATL_DESC = 'This is the description'.
append descdata.
call function 'BAPI_MATERIAL_SAVEDATA'
exporting
headdata = headdata
clientdata = clientdata
clientdatax = clientdatax
* PLANTDATA =
* PLANTDATAX =
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
* STORAGELOCATIONDATA =
* STORAGELOCATIONDATAX =
* VALUATIONDATA =
* VALUATIONDATAX =
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA =
* SALESDATAX =
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
importing
return = return
tables
MATERIALDESCRIPTION = descdata
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
returnmessages = returnm
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
check sy-subrc = 0.
Regards,
Rich Heilman -
How to upload material master using BAPI
I have a flat file with 3 fields MATNR,MAKTX,MEINS and I want to create material master with 2 views basic data1 & basic data2 with three fields using BAPI
Can anyone tell me how to do this only using three fields and 2 views
and also i want to know what is the exact difference between session call transaction BAPI and LSWM methods.
Thank you,
Pradeep Reddy M.Hi Pradeep Reddy Miriyala,
This a example you can use, the views are related with each table only have to adapt to your case.
Best regards
Jaime Cordeiro
*& Report ZMM01_BAPI_01 *
REPORT ZMM01_BAPI_01 .
STRUCTURE DECLARATIONS *
TABLES: BAPIMATHEAD, "Headerdata
BAPI_MARA, "Clientdata
BAPI_MARAX, "Clientdatax
BAPI_MVKE, "SalesData
BAPI_MVKEX, "SalesDatax
BAPI_MARC, "Plantdata
BAPI_MARCX, "Plantdatax
BAPI_MBEW, "ValuationData
BAPI_MBEWX, "ValuationData
BAPI_MLGN, "Storage
BAPI_MLGNX, "StorageX
BAPI_MAKT, "Material description
BAPI_MARM,
BAPI_MARMX,
bapi_mean,
BAPI_MLAN,
BAPIRET2. "Return messages
DATA: BEGIN OF LSMW_MATERIAL_MASTER,
> Initial Data
matnr(18),
mtart(4),
WERKS(4),
VKORG(4),
VTWEG(2),
LGNUM(3),"retirar
> Basic Data 1
MAKTX(40),
MEINS(3),
MATKL(9),
BISMT(18),
SPART(2),
PRDHA(18),
BRGEW(17),
NTGEW(17),
GEWEI(3),
VOLUM(13),
VOLEH(3),
EAN11(18),
NUMTP(2),
> Sales 1
DWERK(4),
TAXKM(1),
> Sales 2
KTGRM(2),
PRODH(18),
MTPOS(4),
> Sales: General/Plant
MTVFP(2),
TRAGR(4),
LADGR(4),
PRCTR(10),
> Purchasing
Novas entradas
EKGRP(3),
KAUTB(1),
XCHPF1(1),
EKWSL(4),
WEBAZ(3),
INSMK1(1),
KORDB(1),
> Foreign Trade
STAWN(17),
MTVER(4),
HERKL(3),
HERKR(3),
> Purchase Order Text View
Identificar Campos
TextoEN(100),
TextoPT(100),
TextoPL(100),
TextoES(100),
> MRP1
DISGR(4),
DISMM(2),
DISPO(3),
DISLS(2),
BSTMI(18),
BSTRF(13),
> MRP2
BESKZ(1),
RGEKZ(1),
LGPRO(4),
LGFSB(4),
EPRIO(4),
WEBAZ1(3),
PLIFZ(3),
FHORI(3),
> MRP3
PERKZ(1),
STRGR(2),
VRMOD(1),
VINT1(3),
VINT2(3),
> MRP4
ALTSL(1),
FEVOR(3),
> Work Sch
INSMK(1),
XCHPF(1),
UEETO(3),
> Plant Storage 1
MHDRZ(4),
MHDHB(4),
> Plant Storage 2
PRCTR1(10),
EPRIO1(4),
> WM 1 S01 comum a todos
LTKZA_S01(3),
LTKZE_S01(3),
LGBKZ_S01(3),
> WM 1 SHV
LTKZA_SHV(3),
LTKZE_SHV(3),
LGBKZ_SHV(3),
> WM 1 SQW
LTKZA_SQW(3),
LTKZE_SQW(3),
LGBKZ_SQW(3),
> WM 2
LHMG1(13),
LHME1(3),
LETY1(3),
LHMG2(13),
LHME2(3),
LETY2(3),
LHMG3(13),
LHME3(3),
LETY3(3),
> Accounting 1
BKLAS(4),
VPRSV(1),
VERPR(23),
PEINH(5),
END OF LSMW_MATERIAL_MASTER.
DATA:V_FILE TYPE STRING.
DATA:VolumUnitConv(3).
DATA:UnitConv(3).
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_MLAN OCCURS 0.
include STRUCTURE BAPI_MLAN.
DATA: END OF it_MLAN.
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.
DATA : imat TYPE TABLE OF bapimatinr WITH HEADER LINE.
DATA: text LIKE bapi_mltx OCCURS 0 WITH HEADER LINE.
DATA: matnrAct(18),oldMart(4).
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.
check sy-subrc eq 0.
DATA POPULATIONS *
LOOP AT IT_MATMASTER.
IF IT_MATMASTER-MATNR EQ '' .
oldMart = IT_MATMASTER-Mtart.
CALL FUNCTION 'MATERIAL_NUMBER_GET_NEXT'
EXPORTING
MATERIALART = IT_MATMASTER-Mtart
IMPORTING
MATERIALNR = matnrAct
RETURNCODE =
EXCEPTIONS
NO_INTERNAL_INTERVAL = 1
TYPE_NOT_FOUND = 2
OTHERS = 3
if sy-subrc = 0.
BAPIMATHEAD-MATERIAL = matnrAct.
endif.
ELSE.
BAPIMATHEAD-MATERIAL = it_matmaster-matnr.
ENDIF.
Preenchimento dos dados do ecrã inicial
BAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
BAPIMATHEAD-IND_SECTOR = 'M'.
BAPIMATHEAD-MATL_TYPE = IT_MATMASTER-Mtart.
"declaration of views
BAPIMATHEAD-BASIC_VIEW = 'X'.
BAPIMATHEAD-MRP_VIEW = 'X'.
BAPIMATHEAD-STORAGE_VIEW = 'X'.
BAPIMATHEAD-WAREHOUSE_VIEW = 'X'.
BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
If IT_MATMASTER-Mtart EQ '31'.
BAPIMATHEAD-SALES_VIEW = 'X'.
BAPIMATHEAD-WORK_SCHED_VIEW = 'X'.
ENDIF.
If IT_MATMASTER-Mtart EQ '51'.
BAPIMATHEAD-SALES_VIEW = 'X'.
BAPIMATHEAD-WORK_SCHED_VIEW = 'X'.
ENDIF.
If IT_MATMASTER-Mtart EQ '65'.
BAPIMATHEAD-PURCHASE_VIEW = 'X'.
ENDIF.
Preenchimento de dados relativos a MARA
BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
BAPI_MARA-MATL_GROUP = IT_MATMASTER-MATKL.
BAPI_MARA-OLD_MAT_NO = IT_MATMASTER-BISMT.
BAPI_MARA-DIVISION = IT_MATMASTER-SPART.
BAPI_MARA-PROD_HIER = IT_MATMASTER-PRDHA.
BAPI_MARA-NET_WEIGHT = IT_MATMASTER-ntgew.
BAPI_MARA-UNIT_OF_WT = IT_MATMASTER-GEWEI.
BAPI_MARA-TRANS_GRP = IT_MATMASTER-tragr.
> Novas Entradas
IF IT_MATMASTER-Mtart EQ '65'.
BAPI_MARA-BATCH_MGMT = IT_MATMASTER-XCHPF1.
BAPI_MARA-PUR_VALKEY = IT_MATMASTER-EKWSL.
BAPI_MARAX-PUR_VALKEY = 'X'.
ELSE.
BAPI_MARA-BATCH_MGMT = IT_MATMASTER-XCHPF.
ENDIF.
> Novas Entradas
BAPI_MARA-MINREMLIFE = IT_MATMASTER-MHDRZ.
BAPI_MARA-SHELF_LIFE = IT_MATMASTER-MHDHB.
BAPI_MARAX-MATL_GROUP = 'X'.
BAPI_MARAX-OLD_MAT_NO = 'X'.
BAPI_MARAX-BASE_UOM = 'X'.
BAPI_MARAX-DIVISION = 'X'.
BAPI_MARAX-PROD_HIER = 'X'.
BAPI_MARAX-NET_WEIGHT = 'X'.
BAPI_MARAX-UNIT_OF_WT = 'X'.
BAPI_MARAX-TRANS_GRP = 'X'.
BAPI_MARAX-BATCH_MGMT = 'X'.
BAPI_MARAX-MINREMLIFE = 'X'.
BAPI_MARAX-SHELF_LIFE = 'X'.
Preencimento de dados Relativos a MKVE
BAPI_MVKE-DELYG_PLNT = IT_MATMASTER-DWERK.
BAPI_MVKE-SALES_ORG = IT_MATMASTER-VKORG.
BAPI_MVKE-DISTR_CHAN = IT_MATMASTER-VTWEG.
BAPI_MVKE-PROD_HIER = IT_MATMASTER-PRODH.
BAPI_MVKE-ITEM_CAT = IT_MATMASTER-MTPOS.
BAPI_MVKE-ACCT_ASSGT = IT_MATMASTER-KTGRM.
BAPI_MVKEX-SALES_ORG = IT_MATMASTER-VKORG.
BAPI_MVKEX-DISTR_CHAN = IT_MATMASTER-VTWEG.
BAPI_MVKEX-PROD_HIER = 'X'.
BAPI_MVKEX-ITEM_CAT = 'X'.
BAPI_MVKEX-DELYG_PLNT = 'X'.
BAPI_MVKEX-ACCT_ASSGT = 'X'.
Preencimento de dados Relativos a MARC
BAPI_MARC-PLANT = IT_MATMASTER-WERKS.
BAPI_MARC-AVAILCHECK = IT_MATMASTER-MTVFP.
BAPI_MARC-LOADINGGRP = IT_MATMASTER-LADGR.
BAPI_MARC-PROFIT_CTR = IT_MATMASTER-PRCTR.
IF NOT IT_MATMASTER-Mtart EQ '51'.
BAPI_MARC-COMM_CODE = IT_MATMASTER-STAWN.
BAPI_MARC-COUNTRYORI = IT_MATMASTER-HERKL.
BAPI_MARC-REGIONORIG = IT_MATMASTER-HERKR.
BAPI_MARCX-COMM_CODE = 'X'.
BAPI_MARCX-COUNTRYORI = 'X'.
BAPI_MARCX-REGIONORIG = 'X'.
ENDIF.
BAPI_MARC-MRP_GROUP = IT_MATMASTER-DISGR.
BAPI_MARC-MRP_TYPE = IT_MATMASTER-DISMM.
BAPI_MARC-MRP_CTRLER = IT_MATMASTER-DISPO.
BAPI_MARC-LOTSIZEKEY = IT_MATMASTER-DISLS.
BAPI_MARC-MINLOTSIZE = IT_MATMASTER-BSTMI.
BAPI_MARC-ROUND_VAL = IT_MATMASTER-BSTRF.
BAPI_MARC-PROC_TYPE = IT_MATMASTER-BESKZ.
BAPI_MARC-BACKFLUSH = IT_MATMASTER-RGEKZ .
BAPI_MARC-ISS_ST_LOC = IT_MATMASTER-LGPRO.
BAPI_MARC-DETERM_GRP = IT_MATMASTER-EPRIO.
BAPI_MARC-SM_KEY = IT_MATMASTER-FHORI.
BAPI_MARC-PERIOD_IND = IT_MATMASTER-PERKZ.
BAPI_MARC-PLAN_STRGP = IT_MATMASTER-STRGR.
BAPI_MARC-CONSUMMODE = IT_MATMASTER-VRMOD.
BAPI_MARC-BWD_CONS = IT_MATMASTER-VINT1.
BAPI_MARC-FWD_CONS = IT_MATMASTER-VINT2.
BAPI_MARC-ALT_BOM_ID = IT_MATMASTER-ALTSL.
BAPI_MARC-PRODUCTION_SCHEDULER = IT_MATMASTER-FEVOR.
IF NOT IT_MATMASTER-Mtart EQ '65'.
BAPI_MARC-IND_POST_TO_INSP_STOCK = IT_MATMASTER-INSMK.
BAPI_MARC-OVER_TOL = IT_MATMASTER-UEETO.
BAPI_MARCX-IND_POST_TO_INSP_STOCK = 'X'.
BAPI_MARCX-OVER_TOL = 'X'.
ENDIF.
> Novas Entradas
IF IT_MATMASTER-Mtart EQ '65'.
BAPI_MARC-PUR_GROUP = IT_MATMASTER-EKGRP .
BAPI_MARC-AUTO_P_ORD = IT_MATMASTER-KAUTB .
BAPI_MARC-GR_PR_TIME = IT_MATMASTER-WEBAZ .
BAPI_MARC-IND_POST_TO_INSP_STOCK = IT_MATMASTER-INSMK1 .
BAPI_MARC-SOURCELIST = IT_MATMASTER-KORDB .
BAPI_MARC-EXPIMPGRP = IT_MATMASTER-MTVER .
BAPI_MARCX-PUR_GROUP = 'X'.
BAPI_MARCX-AUTO_P_ORD = 'X'.
BAPI_MARCX-GR_PR_TIME = 'X'.
BAPI_MARCX-IND_POST_TO_INSP_STOCK = 'X'.
BAPI_MARCX-SOURCELIST = 'X'.
BAPI_MARCX-EXPIMPGRP = 'X'.
ENDIF.
> Novas Entradas
BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.
BAPI_MARCX-AVAILCHECK = 'X'.
BAPI_MARCX-LOADINGGRP = 'X'.
BAPI_MARCX-PROFIT_CTR = 'X'.
BAPI_MARCX-MRP_GROUP = 'X'.
BAPI_MARCX-MRP_TYPE = 'X'.
BAPI_MARCX-MRP_CTRLER = 'X'.
BAPI_MARCX-LOTSIZEKEY = 'X'.
BAPI_MARCX-MINLOTSIZE = 'X'.
BAPI_MARCX-ROUND_VAL = 'X'.
BAPI_MARCX-PROC_TYPE = 'X'.
BAPI_MARCX-BACKFLUSH = 'X'.
BAPI_MARCX-ISS_ST_LOC = 'X'.
BAPI_MARCX-DETERM_GRP = 'X'.
BAPI_MARCX-SM_KEY = 'X'.
BAPI_MARCX-PERIOD_IND = 'X'.
BAPI_MARCX-PLAN_STRGP = 'X'.
BAPI_MARCX-CONSUMMODE = 'X'.
BAPI_MARCX-BWD_CONS = 'X'.
BAPI_MARCX-FWD_CONS = 'X'.
BAPI_MARCX-ALT_BOM_ID = 'X'.
BAPI_MARCX-PRODUCTION_SCHEDULER = 'X'.
Preencimento de dados Relativos a MLGN
BAPI_MLGN-WHSE_NO = 'S01'.
BAPI_MLGN-WITHDRAWAL = IT_MATMASTER-LTKZA_S01.
BAPI_MLGN-PLACEMENT = IT_MATMASTER-LTKZE_S01.
BAPI_MLGN-STGESECTOR = IT_MATMASTER-LGBKZ_S01.
BAPI_MLGN-L_EQUIP_1 = IT_MATMASTER-LHMG1.
BAPI_MLGN-L_EQUIP_2 = IT_MATMASTER-LHMG2.
BAPI_MLGN-L_EQUIP_3 = IT_MATMASTER-LHMG3.
BAPI_MLGN-LEQ_UNIT_1 = IT_MATMASTER-LHME1.
BAPI_MLGN-LEQ_UNIT_2 = IT_MATMASTER-LHME2.
BAPI_MLGN-LEQ_UNIT_3 = IT_MATMASTER-LHME3.
BAPI_MLGN-UNITTYPE_1 = IT_MATMASTER-LETY1.
BAPI_MLGN-UNITTYPE_2 = IT_MATMASTER-LETY2.
BAPI_MLGN-UNITTYPE_3 = IT_MATMASTER-LETY3.
BAPI_MLGNX-WHSE_NO = 'S01'.
BAPI_MLGNX-WITHDRAWAL = 'X'.
BAPI_MLGNX-PLACEMENT = 'X'.
BAPI_MLGNX-STGESECTOR = 'X'.
BAPI_MLGNX-L_EQUIP_1 = 'X'.
BAPI_MLGNX-L_EQUIP_2 = 'X'.
BAPI_MLGNX-L_EQUIP_3 = 'X'.
BAPI_MLGNX-LEQ_UNIT_1 = 'X'.
BAPI_MLGNX-LEQ_UNIT_2 = 'X'.
BAPI_MLGNX-LEQ_UNIT_3 = 'X'.
BAPI_MLGNX-UNITTYPE_1 = 'X'.
BAPI_MLGNX-UNITTYPE_2 = 'X'.
BAPI_MLGNX-UNITTYPE_3 = 'X'.
Preencimento de dados Relativos a MBEW
BAPI_MBEW,
BAPI_MBEWX,
BAPI_MBEW-VAL_CLASS = IT_MATMASTER-BKLAS.
BAPI_MBEW-PRICE_CTRL = IT_MATMASTER-VPRSV.
BAPI_MBEW-STD_PRICE = IT_MATMASTER-VERPR.
BAPI_MBEW-PRICE_UNIT = IT_MATMASTER-PEINH.
BAPI_MBEW-VAL_AREA = 'CLPS'."IT_MATMASTER-BWKEY.
BAPI_MBEWX-VAL_AREA = 'CLPS'."IT_MATMASTER-BWKEY.
BAPI_MBEWX-VAL_CLASS = 'X'.
BAPI_MBEWX-PRICE_CTRL = 'X'.
BAPI_MBEWX-STD_PRICE = 'X'.
BAPI_MBEWX-PRICE_UNIT = 'X'.
---------------------------------------------------> Material Descrition
IT_MATERIALDESC-LANGU = sy-langu. "'EN'.
IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
APPEND IT_materialdesc.
Gross Weight, Volume and EAN
*Volume é preciso uma rotina de conversão
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT = IT_MATMASTER-VOLEH
LANGUAGE = SY-LANGU
IMPORTING
OUTPUT = VolumUnitConv
EXCEPTIONS
UNIT_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT = IT_MATMASTER-MEINS
LANGUAGE = SY-LANGU
IMPORTING
OUTPUT = UnitConv
EXCEPTIONS
UNIT_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IT_UOM-GROSS_WT = IT_MATMASTER-BRGEW.
IT_UOM-ALT_UNIT = UnitConv.
IT_UOM-ALT_UNIT_ISO = IT_MATMASTER-GEWEI.
IT_UOM-UNIT_OF_WT = IT_MATMASTER-GEWEI.
IT_UOM-EAN_UPC = IT_MATMASTER-EAN11.
IT_UOM-EAN_CAT = IT_MATMASTER-NUMTP.
IT_UOM-VOLUME = IT_MATMASTER-VOLUM.
IT_UOM-VOLUMEUNIT = VolumUnitConv.
IT_UOM-VOLUMEUNIT_ISO = IT_MATMASTER-VOLEH.
APPEND IT_UOM.
IT_UOMX-ALT_UNIT = IT_MATMASTER-MEINS.
IT_UOMX-ALT_UNIT_ISO = IT_MATMASTER-GEWEI.
IT_UOMX-GROSS_WT = 'X'.
IT_UOMX-UNIT_OF_WT = 'X'.
IT_UOMX-EAN_UPC = 'X'.
IT_UOMX-EAN_CAT = 'X'.
*Volume
IT_UOMX-VOLUME = 'X'.
IT_UOMX-VOLUMEUNIT = 'X'.
IT_UOMX-VOLUMEUNIT_ISO = 'X'.
APPEND IT_UOMX.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = BAPIMATHEAD
CLIENTDATA = BAPI_MARA
CLIENTDATAX = BAPI_MARAx
PLANTDATA = BAPI_MARc
PLANTDATAX = BAPI_MARcx
VALUATIONDATA = BAPI_MBEW
VALUATIONDATAX = BAPI_MBEWX
WAREHOUSENUMBERDATA = BAPI_MLGN
WAREHOUSENUMBERDATAX = BAPI_MLGNX
SALESDATA = BAPI_MVKE
SALESDATAX = BAPI_MVKEX
IMPORTING
RETURN = IT_RETURN
TABLES
MATERIALDESCRIPTION = IT_MATERIALDESC
UNITSOFMEASURE = IT_UOM
UNITSOFMEASUREX = IT_UOMX
MATERIALLONGTEXT = text
TAXCLASSIFICATIONS = it_MLAN.
if it_return-type eq 'S'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
endif.
WAIT UP TO 10 SECONDS.
WRITE : / IT_RETURN-MESSAGE.
CLEAR: IT_MATERIALDESC[],
IT_UOM[],
IT_UOMX[],
it_MLAN[],
IT_RETURN,
text,
BAPIMATHEAD,
BAPI_MARA,
BAPI_MARAx,
BAPI_MARc,
BAPI_MARcx,
BAPI_MBEW,
BAPI_MBEWX,
BAPI_MLGN,
BAPI_MLGNX,
BAPI_MVKE,
BAPI_MVKEX
ENDLOOP. -
Material Master Extension to all the plants of same type
Hi
In the given scenario, we have almost 200 plants where same materials are required , now when we create material master using Tcode MM01 we want to extend this material master to all the plants of same type in one go .Is it possible , if yes , how to go about it ?? please help, this is the specific customer requirment .
ans will be rewarded
rgds
mojibHi,
Just go through the code
report ZMM_FERT_CREATE_EXT_PLANT
no standard page heading line-size 255.
*include bdcrecx1.
DATA : it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE,
it_bdcmsgcoll LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
data : p_filex type string .
types: BEGIN OF t_mm01,
matnr(018),
MAKTX(040),
mtart(004),
matkl(009),
WGBEZ(020),
bklas(004),
vprsv(001),
werks(004),
vkorg(004),
vtweg(002),
sktof(001),
versg(001),
kondm(002),
ktgrm(002),
meins(003),
gewei(003),
j_1ichid(012),
j_1isubind(001),
j_1icapind(001),
j_1igrxref(001),
tragr(004),
ladgr(004),
mtvfp(002),
xchpf(001),
mtpos_mara(004),
mtpos(004),
ekgrp(003),
BWTTY(010),
meins1(003),
meins2(003),
meins3(003),
sales_txt(040),
purc_txt(040),
mbrsh(001),
verpr(015),
peinh(006),
stprs(015),
brgew(017),
ntgew(017),
j_1ivalass(018),
umrez1(006),
umren1(006),
umrez2(006),
umren2(006),
umrez3(006),
umren3(006),
lgort(004),
TAXKM1(001),
TAXKM2(001),
HERKL(003),
HERKR(003),
J_1IMOOM(018),
end of t_mm01.
DATA : it_mm01 type table of t_mm01 with header line initial size 0.
*Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE text-001.
PARAMETERS: p_file like IBIPPARMS-PATH obligatory.
SELECTION-SCREEN:END OF BLOCK B.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .
PERFORM get_filename.
*START-OF-SELECTION
START-OF-SELECTION.
PERFORM upload_data.
PERFORM fill_data.
*& Form upload_data
* text
* --> p1 text
* <-- p2 text
form upload_data .
p_filex = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_filex
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = '#'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
tables
data_tab = it_mm01
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.
endform. " upload_data
*& Form get_filename
* text
* --> p1 text
* <-- p2 text
form get_filename .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = p_file
IMPORTING
FILE_NAME = p_file .
if sy-subrc NE 0 .
write : / 'Enter File Name'.
endif.
endform. " get_filename
*& Form fill_data
* text
* --> p1 text
* <-- p2 text
form fill_data .
*perform open_group.
loop at it_mm01.
clear it_bdcdata.
refresh it_bdcdata.
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MTART'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-MATNR'
it_mm01-matnr.
* '116100'.
perform bdc_field using 'RMMG1-MBRSH'
'C'.
perform bdc_field using 'RMMG1-MTART'
'FERT'.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(16)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(03)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(05)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(06)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(07)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(09)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(10)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(13)'
'X'.
perform bdc_field using 'MSICHTAUSW-KZSEL(16)'
'X'.
perform bdc_dynpro using 'SAPLMGMM' '0080'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-VTWEG'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-WERKS'
it_mm01-werks.
* '9010'.
perform bdc_field using 'RMMG1-LGORT'
it_mm01-lgort.
* 'F901'.
perform bdc_field using 'RMMG1-VKORG'
it_mm01-vkorg.
* '1000'.
perform bdc_field using 'RMMG1-VTWEG'
it_mm01-vtweg.
* '03'.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
it_mm01-maktx.
* 'Test ACEPHATE TECHNICAL 50kg'.
perform bdc_field using 'BDC_CURSOR'
'MVKE-MTPOS'.
perform bdc_field using 'MVKE-VERSG'
it_mm01-versg.
* '1'.
perform bdc_field using 'MVKE-KONDM'
it_mm01-kondm.
* '03'.
perform bdc_field using 'MVKE-KTGRM'
it_mm01-ktgrm.
* '01'.
perform bdc_field using 'MVKE-MTPOS'
it_mm01-mtpos.
* 'NORM'.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
it_mm01-maktx.
* 'Test ACEPHATE TECHNICAL 50kg'.
perform bdc_field using 'MARC-MTVFP'
it_mm01-mtvfp.
* '01'.
perform bdc_field using 'MARC-XCHPF'
it_mm01-xchpf.
* 'X'.
perform bdc_field using 'BDC_CURSOR'
'MARC-LADGR'.
perform bdc_field using 'MARC-LADGR'
it_mm01-ladgr.
* '0003'.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
it_mm01-maktx.
* 'Test ACEPHATE TECHNICAL 50kg'.
perform bdc_field using 'MARC-HERKL'
it_mm01-HERKL.
* 'IN'.
perform bdc_field using 'MARC-HERKR'
it_mm01-HERKR.
* '01'.
perform bdc_field using 'BDC_CURSOR'
'J_1IASSVAL-J_1IVALASS'.
perform bdc_field using 'J_1IMTCHID-J_1ICHID'
it_mm01-J_1ICHID.
* '2913 00 90'.
perform bdc_field using 'J_1IMTCHID-J_1ISUBIND'
it_mm01-J_1ISUBIND .
* 'X'.
perform bdc_field using 'J_1IMTCHID-J_1ICAPIND'
it_mm01-J_1ICAPIND.
* 'F'.
perform bdc_field using 'J_1IMTCHID-J_1IGRXREF'
it_mm01-J_1IGRXREF .
* '2'.
if it_mm01-J_1IVALASS <> '0'.
perform bdc_field using 'J_1IASSVAL-J_1IVALASS'
it_mm01-J_1IVALASS.
* '0'.
endif.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
it_mm01-maktx.
* 'Test ACEPHATE TECHNICAL 50kg'.
perform bdc_field using 'BDC_CURSOR'
'MARC-EKGRP'.
perform bdc_field using 'MARC-EKGRP'
it_mm01-ekgrp.
* '002'.
perform bdc_field using 'MARC-XCHPF'
it_mm01-xchpf.
* 'X'.
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'
it_mm01-maktx.
* 'Test ACEPHATE TECHNICAL 50kg'.
perform bdc_field using 'MARC-STEUC'
it_mm01-J_1ICHID.
* '2913 00 90'.
perform bdc_field using 'MARC-HERKL'
it_mm01-HERKL.
* 'IN'.
perform bdc_field using 'MARC-HERKR'
it_mm01-HERKR.
* '01'.
perform bdc_field using 'J_1IMTCHID-J_1ICHID'
it_mm01-J_1ICHID.
* '2913 00 90'.
perform bdc_field using 'J_1IMTCHID-J_1ISUBIND'
it_mm01-J_1ISUBIND.
* 'X'.
perform bdc_field using 'J_1IMTCHID-J_1ICAPIND'
it_mm01-J_1ICAPIND.
* 'F'.
perform bdc_field using 'J_1IMTCHID-J_1IGRXREF'
it_mm01-J_1IGRXREF.
* '2'.
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'
it_mm01-maktx.
* 'Test ACEPHATE TECHNICAL 50kg'.
perform bdc_field using 'MARC-XCHPF'
it_mm01-xchpf.
* 'X'.
*perform bdc_field using 'MARA-IPRKZ'
* 'D'.
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MAKT-MAKTX'
it_mm01-maktx.
* 'Test ACEPHATE TECHNICAL 50kg'.
perform bdc_field using 'BDC_CURSOR'
'MBEW-STPRS'.
perform bdc_field using 'MBEW-BKLAS'
it_mm01-bklas.
* '7930'.
perform bdc_field using 'MBEW-VPRSV'
it_mm01-vprsv.
* 'S'.
perform bdc_field using 'MBEW-PEINH'
it_mm01-peinh.
* '1'.
perform bdc_field using 'MBEW-VERPR'
it_mm01-verpr.
* '273.75'.
perform bdc_field using 'MBEW-STPRS'
it_mm01-stprs.
* '207'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
CALL TRANSACTION 'MM01' USING it_bdcdata
MODE 'A'
UPDATE 'A'
MESSAGES INTO it_bdcmsgcoll.
CLEAR it_mm01.
endloop.
*perform bdc_transaction using 'MM01'.
*perform close_group.
endform. " fill_data
*& Form bdc_dynpro
* text
* -->P_0297 text
* -->P_0298 text
form bdc_dynpro USING prog scr.
CLEAR it_bdcdata.
it_bdcdata-program = prog.
it_bdcdata-dynpro = scr.
it_bdcdata-dynbegin = 'X'.
APPEND it_bdcdata.
endform. " bdc_dynpro
*& Form bdc_field
* text
* -->P_0687 text
* -->P_IT_MM01_VPRSV text
form bdc_field USING fnam fval.
CLEAR it_bdcdata.
it_bdcdata-fnam = fnam.
it_bdcdata-fval = fval.
APPEND it_bdcdata.
endform. " bdc_field
Regards,
Madhu. -
Bapi or Function Module to update Material Master Data
Hi Friends,
could anyone let me know any BAPI's or Function Modules for Material Master UPdate.
Thanks in Advance
Regards
Tinahi Tina,
check this BAPi BAPI_MATERIAL_SAVEDATA to create and change the material master .
Try ....
BAPI_MATERIAL_SAVEDATA
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,
Naveen -
ADD NEW CHARACTERISTIC: MAKTX (material text) in Profitability Report_CO-PA
Hello,
I have a CO-PA report (ZINTEGR...), when I run (KE30 tr.), I check the report by the Navigation fields (charact.) Company Code and Product, with drill down of material numbers and text.
This text is the "Product Hierarchy" (MARA-PRDHA), field in the Material Master and also I have the Material number (RMMG1-MATNR), but I need a long text to see all the material details descrip., so I will need the material description (short text-->MAKT-MAKTX) instead of the text that I have in the Product Hierarchy field in the material master data.
It is possible to add, (i suppose like a charact.) in the Z CO-PA report?
I try to edit charact. (KEA5 tr.) and I can´t see the MAKT-MAKTX in the characteristic overview list.
It is possible if I create a new charact. (WW...)?
B.Regards
FranciscoHi,
If the problem exists only in KE30, please goto KE30 -> execute the report (e.g. drilldown) -> select the column -> goto SETTINGS -> CHARACTERISTICS DISPLAY -> select name + key. Also check the other options available here
regards
Waman -
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& 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'
-
Function Module in Material Master
Hi All,
I am developing an interface for Material Master. On change of fields, MATNR, MAKTX, <Short name (extension)>, MTART, MSTAE, WERKS, I need to trigger an IDOC.
For populating the extended fields I need a function module name which gets called while triggering IDOC.
Please let me know ASAP.
Thanks,
ShriramHi,
Create a project in cmod with z name and add the below mentioned component and write ur code in the incude program ZXMGVU03 which is present in the Customer function module:EXIT_SAPLMV01_002 .
And dont forget activate the project .
Component: MGV00001
Please reward points if the solution is helpful.
Thanks ,
Prasanna -
How can I extract the list of fields for every view of the material master?
Hello SAPients,
Is there a table or a FM where I can extract the list of fields that every view of material master have?
I need to create a dynamic selection-screen with something like this:
Basic Data
mara-matnr
makt-maktx
mara-meins
Sales: Sales Organization Data
mara-matnr
makt-maktx
Thank you in advance.Hi
Try to run the trx OMT3B: this the customizing where the dynpro for the views are defined: perhaps u can find something can help you.
Max -
LSMW(Direct Input) Material master issues
Hi,
I have few issues on Material master-LSMW(Direct Input-RMDATIND) data upload(creating materials).
1. Can i upload excel sheet for uploading data! What option i have to choose in 'specify files' for this!
2. I am using fields MBRSH, MTART, MAKTX, MEINS, BISMT, MATKL, MAGRV for mapping.
But when i tried to upload in last step-start direct input program with Lock Mode-'N' it is giving error as
'Plant data does not exist'. Because this is for 'Basic Data' i though no need to input plant.
3. MATNR field is not needed for creation right as it is auto generated!
4. I have to do seperate object for this project for 'Sales organization data' & Plant Data is there any checks needed for the same!
Can anybody give solutions for the above!
Thanks in advance.
Thanks,
Deep.1. Now i am trying to process 4 records it is creating 3 records.
It is always skipping 1st record in flat file.
Any check required!
2. Also i want to write a output file(log file) to my presentation/application server with all material no's created & material descriptions. Where can i do the same!
3. Can anybody tell me how to upload using excel sheet.
Thanks,
Deep.
Edited by: Deep on May 14, 2009 3:21 PM -
Zprogram to create material master data using bapi
can anyone send me a zprogram which uses a
bapi to create\update material master data .
thanks ,
Amithi,
here below a code sample that will help you
FORM execution .
DATA: is_headdata TYPE bapimathead.
DATA: is_clientdata TYPE bapi_mara.
DATA: is_clientdatax TYPE bapi_marax.
DATA: is_plantdata TYPE bapi_marc.
DATA: is_plantdatax TYPE bapi_marcx.
DATA: is_valuationdata TYPE bapi_mbew.
DATA: is_valuationdatax TYPE bapi_mbewx.
DATA: it_materialdescription TYPE bapi_makt OCCURS 0 WITH HEADER LINE.
DATA : is_storagelocationdata TYPE bapi_mard,
is_storagelocationdatax TYPE bapi_mardx.
*... views
is_headdata-material = mara-matnr.
is_headdata-ind_sector = 'M'.
is_headdata-matl_type = 'ROH'.
is_headdata-basic_view = 'X'.
is_headdata-purchase_view = 'X'.
is_headdata-mrp_view = 'X'.
is_headdata-account_view = 'X'.
is_headdata-cost_view = 'X'.
is_headdata-storage_view = 'X'.
*... constants
is_clientdata-pur_valkey = '3'.
is_clientdatax-pur_valkey = 'X'.
*... Données article générales (de l'écran)
is_clientdata-base_uom = mara-meins.
is_clientdata-matl_group = mara-matkl.
is_clientdata-mfr_no = mara-mfrnr.
is_clientdata-manu_mat = mara-mfrpn.
is_clientdata-pur_status = mara-mstae.
is_clientdata-old_mat_no = mara-bismt.
is_clientdatax-base_uom = 'X'.
is_clientdatax-matl_group = 'X'.
is_clientdatax-mfr_no = 'X'.
is_clientdatax-manu_mat = 'X'.
is_clientdatax-pur_status = 'X'.
is_clientdatax-old_mat_no = 'X'.
*... Description
it_materialdescription-langu = sy-langu.
it_materialdescription-matl_desc = makt-maktx.
APPEND it_materialdescription.
is_plantdata-sm_key = '000'.
is_plantdata-dep_req_id = '2'.
is_plantdata-availcheck = '02'.
is_plantdata-auto_p_ord = 'X'.
is_plantdatax-sm_key = 'X'.
is_plantdatax-dep_req_id = 'X'.
is_plantdatax-availcheck = 'X'.
is_plantdatax-auto_p_ord = 'X'.
is_plantdata-pur_status = mara-mstae.
is_plantdatax-pur_status = 'X'.
is_plantdata-profit_ctr = '100012'.
is_plantdata-proc_type = 'F'.
is_plantdata-determ_grp = 'Z001'.
is_plantdata-deploy_horiz = '000'.
is_plantdatax-proc_type = 'X'.
is_plantdatax-determ_grp = 'X'.
is_plantdatax-deploy_horiz = 'X'.
*... Plant data
is_plantdata-plant = marc-werks.
is_plantdata-pur_group = marc-ekgrp.
is_plantdata-abc_id = marc-maabc.
is_plantdata-mrp_type = marc-dismm.
is_plantdata-plnd_delry = marc-plifz.
is_plantdata-lotsizekey = marc-disls.
is_plantdata-safety_stk = marc-eisbe.
is_plantdata-mrp_ctrler = marc-dispo.
is_plantdata-iss_st_loc = marc-lgpro.
is_plantdata-sloc_exprc = marc-lgfsb.
is_plantdata-round_prof = marc-rdprf.
is_plantdatax-plant = marc-werks.
is_plantdatax-pur_group = 'X'.
is_plantdatax-abc_id = 'X'.
is_plantdatax-mrp_type = 'X'.
is_plantdatax-plnd_delry = 'X'.
is_plantdatax-lotsizekey = 'X'.
is_plantdatax-safety_stk = 'X'.
is_plantdatax-mrp_ctrler = 'X'.
is_plantdatax-iss_st_loc = 'X'.
is_plantdatax-sloc_exprc = 'X'.
is_plantdatax-round_prof = 'X'.
*... Valuation
is_valuationdata-val_area = marc-werks.
is_valuationdatax-val_area = marc-werks.
is_valuationdata-price_ctrl = 'V'.
is_valuationdata-price_unit = '1'.
is_valuationdata-val_class = '3000'.
is_valuationdata-qty_struct = 'X'.
is_valuationdata-orig_mat = 'X'.
is_valuationdata-price_unit = mbew-peinh.
is_plantdata-lot_size = mbew-peinh.
is_valuationdatax-price_ctrl = 'X'.
is_valuationdatax-price_unit = 'X'.
is_valuationdatax-val_class = 'X'.
is_valuationdatax-qty_struct = 'X'.
is_valuationdatax-orig_mat = 'X'.
is_valuationdatax-price_unit = 'X'.
is_plantdatax-lot_size = 'X'.
Storage
IF NOT marc-lgpro IS INITIAL.
is_storagelocationdata-plant = marc-werks.
is_storagelocationdata-stge_loc = marc-lgpro.
is_storagelocationdata-stge_bin = mard-lgpbe.
is_storagelocationdatax-plant = is_storagelocationdata-plant.
is_storagelocationdatax-stge_loc = is_storagelocationdata-stge_loc.
is_storagelocationdatax-stge_bin = 'X'.
ENDIF.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = is_headdata
clientdata = is_clientdata
clientdatax = is_clientdatax
plantdata = is_plantdata
plantdatax = is_plantdatax
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
storagelocationdata = is_storagelocationdata
storagelocationdatax = is_storagelocationdatax
valuationdata = is_valuationdata
valuationdatax = is_valuationdatax
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
IMPORTING
return = return
TABLES
materialdescription = it_materialdescription
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
returnmessages = it_returnmessages
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
endform.
Regards.
David
Maybe you are looking for
-
SQL with connect by prior running for a long time
Hi, We are using Oracle 10g. Below is a cursor sql which is having performance issues. The pAccountid is being passed from the output of a different cursor. But this cursor sql is running for a long time. Could you please help me in tuning this sql.
-
How to get bitmaps in Mail?
I can't believe that this has not been resolved. I received an email with a Device Independent Bitmap .dib file and it shows up as an html question mark. It is not shown as an attachment and can't be downloaded. An older post (from 2008) that did
-
Hi Gurus, I am working on a JDBC to HTTP scenario. Scenario is working fine, but have a confusion on the configuration of Receiver HTTP channel. In the receiver channel, there is something called 'Additional Query String Attribute'. I am not getting
-
Is there a way to Proof Colour within Elements
Our Camera Club and all those within South Africa project images for judging Salon Entries using IrfanView which is not colour proofed. Entries edited in CS are able to Proof Colour but I have not found a way to do this within Elements. Any informat
-
Cache Notifications Error in Integration Directory
Hello, I'm having an interesting problem at my client's PI 7.0 system. When I update my changelist, I can see problems in Integration Directory - cache notifications. Integration Builder works fine. When I retry the cache refresh manually, I turns to