FM for Material charateristric modify
Hi,
Is there any function module to modify the material master charateristic.
Please let me know the procedure and sample code.
Hi,
Giving u All Bapis related to classification.Although u need BAPI_OBJCL_CHANGE
BAPI_OBJCL_CHANGE Classification BAPI: Change Assignment
BAPI_OBJCL_CHANGE_KEY Classification BAPI: Change Properties of Assignment (Key)
BAPI_OBJCL_CONCATENATEKEY Classification BAPI: Generate Concatenated Key
BAPI_OBJCL_CONCATENATEKEY_KEY Classification BAPI: Generate Concatenated Key (Key)
BAPI_OBJCL_CREATE Classification BAPI: Create Assignment
BAPI_OBJCL_CREATE_KEY BAPI for Classification: Create Assignment (Key)
BAPI_OBJCL_DELETE Classification BAPI: Delete Assignment
BAPI_OBJCL_DELETE_KEY Classification BAPI: Delete Assignment (Key)
BAPI_OBJCL_EXISTENCECHECK Classification BAPI: Check Existence of Classification
BAPI_OBJCL_EXISTENCECHECK_KEY Classification BAPI: Check Existence of a Classification (Key)
BAPI_OBJCL_GETCLASSES Classification BAPI: Classes for Object
BAPI_OBJCL_GETCLASSES_KEY Classification BAPI: Classes for Object (Key)
BAPI_OBJCL_GETDETAIL Classification BAPI: Read Classification Information on Object
BAPI_OBJCL_GETDETAIL_KEY Classification BAPI: Read Classification Information (Key)
BAPI_OBJCL_GETOBJECTS Classification BAPI: Find by Assignment
BAPI_OBJCL_GETOBJECTS_KEY Classification BAPI: Find Assignment (Key)
BAPI_OBJCL_GETSTATUS Classification BAPI: Classification Status of Object
BAPI_OBJCL_GETSTATUS_KEY Classification BAPI: Classification Status for Object (Key)
BAPI_OBJCL_GET_KEY_OF_OBJECT Classification BAPI: Key of Object
BAPI_OBJCL_GET_OBJECT_OF_KEY Classification BAPI: Object for Key
BAPI_OBJCL_SPLITKEY Classification BAPI: Decomposition of Concatenated Key
BAPI_OBJCL_SPLITKEY_KEY Classification BAPI: Decomposition of Concatenated Key
Similar Messages
-
hi,
i want a material list for which if i specify a period i will get materials with
a)No goods reciept
b)No stock or material movement(issue/transfer posting etc).
c)no sales or shipping.
should have happened for the materials for that period.
if no standard report exists can you tell me the algoritthm.
urgent: satisfying answers will be awarded full pointsRajkiran,
am sure you will never setisfy even we send you number of report because you have to chenge according to your requirement.dont expect spoon feeding.
*& Object Id : &*
*& Object Name : ZMM_STO_REGISTER &*
*& Function Module Name : MM &*
*& Transaction Code : ZMMSTO &*
*& Author : Amit&*
*& Module Name : MATERIAL MANAGEMENT &*
*& Sub-Module : &*
*& Program Type : Report &*
*& Create Date : 28.03.2007 &*
*& Completion Date : 30.03.2007 &*
*& SAP Release : &*
*& Description : STO REGISTER &*
*& MODIFICATION LOG : MODIFIED AT 30.04.2007 adding new field &*
*& chapter-id by chakrapani mishra &*
REPORT zmm_sto_register.
* TABLES USED *
TABLES :vbrk, "Billing Document: Header Data
vbrp, "Billing Document: Item Data
mara, "General Material Data
konv, "Conditions (Transaction Data)
t023t, "Material Group Descriptions
ekko, "Purchasing Document Header
likp, "SD Document: Delivery Header Data
mvke, "Sales Data for Material
t001w, "Plants/Branches
marm, "Units of Measure for Material
j_1imtchid, "Combination of Material Number and Chapter ID
mseg,
mkpf,
j_1iexchdr.
TYPE-POOLS : slis. "TYPE POOL SLIS
* INTERNAL TABLES *
DATA: BEGIN OF t_vbrp OCCURS 0, "INTERNAL TABLE FOR VBRP
vbeln LIKE vbrp-vbeln, "Billing Document
vstel LIKE vbrp-vstel, "Shipping Point/Receiving Point
vgbel LIKE vbrp-vgbel, "Document number of the reference document
aubel LIKE vbrp-aubel, "Sales Document
matnr LIKE vbrp-matnr, "Material Number
arktx LIKE vbrp-arktx, "Short text for sales order item
matkl LIKE vbrp-matkl, "Material Group
fkimg LIKE vbrp-fkimg, "Actual Invoiced Quantity
werks LIKE vbrp-werks, "Plant
posnr LIKE vbrp-posnr, " Billing item
vrkme LIKE vbrp-vrkme, " Sales unit
vgbel1 LIKE mkpf-xblnr,
END OF t_vbrp.
DATA: BEGIN OF t_vbrk OCCURS 0, "INTERNAL TABLE FOR VBRK
kunag LIKE vbrk-kunag, "Sold-to party
vbeln LIKE vbrk-vbeln, "Billing Document
fkdat LIKE vbrk-fkdat, "Billing date for billing index and printout
knumv LIKE vbrk-knumv, "Number of the document condition
fkart LIKE vbrk-fkart, "Billing Type
vtweg LIKE vbrk-vtweg, "Distribution Channel
vkorg LIKE vbrk-vkorg, "Sales Organization
erzet LIKE vbrk-erzet,
w_flag TYPE c,
l_tabix TYPE sy-tabix,
END OF t_vbrk.
DATA: BEGIN OF t_temp1 OCCURS 0, "INTERNAL TABLE FOR VBRK
vbeln LIKE vbrp-vbeln, "Billing Document
fkart LIKE vbrk-fkart,
fkdat LIKE vbrk-fkdat,
vgbel LIKE vbrp-vgbel, "Document number of the reference document
werks LIKE vbrp-werks,
w_flag TYPE c,
END OF t_temp1.
DATA: BEGIN OF t_mara OCCURS 0, "INTERNAL TABLE FOR MARA
matnr LIKE mara-matnr, "Material Number
mtart LIKE mara-mtart, "Material Type
wrkst LIKE mara-wrkst, "Finish
extwg LIKE mara-extwg, "Design
labor LIKE mara-labor, "Grade/Category No.
normt LIKE mara-normt, "Thickness in mm
bismt LIKE mara-bismt, "Size (L*B) in mm
matkl LIKE mara-matkl,
spart LIKE mara-spart,
meins LIKE mara-meins,
END OF t_mara.
DATA : BEGIN OF t_konv OCCURS 0, "INTERNAL TABLE FOR KONV
knumv LIKE konv-knumv, "Number of the document condition
kposn LIKE konv-kposn, "Condition item number
kschl LIKE konv-kschl, "Condition type
kwert LIKE konv-kwert, "Condition value
kbetr LIKE konv-kbetr, "Condition rate
END OF t_konv.
DATA : BEGIN OF t_likp OCCURS 0, "INTERNAL TABLE FOR LIKP
vbeln LIKE likp-vbeln, "Delivery
lfdat LIKE likp-lfdat, "Delivery Date
kunnr LIKE likp-kunnr,
bldat LIKE likp-bldat, " document date
vbeln_kp LIKE mkpf-xblnr, " likp-vbeln,
END OF t_likp.
DATA : BEGIN OF t_t023t OCCURS 0, "INTERNAL TABLE FOR T023T
matkl LIKE t023t-matkl, "Material Group
wgbez LIKE t023t-wgbez, "Material Group Description
spras LIKE t023t-spras, "Language Key
END OF t_t023t.
DATA : BEGIN OF t_ekko OCCURS 0, "INTERNAL TABLE FOR EKKO
ebeln LIKE ekko-ebeln, "Purchasing Document Number
bsart LIKE ekko-bsart, "Purchasing Document Type
aedat LIKE ekko-aedat, "Date on Which Record Was Created
knumv LIKE ekko-knumv, "Number of the document condition
END OF t_ekko.
DATA : BEGIN OF t_ekpo OCCURS 0, "INTERNAL TABLE FOR EKKO
ebeln LIKE ekko-ebeln, "Purchasing Document Number
loekz LIKE ekko-loekz, "Purchasing Document Type
END OF t_ekpo.
DATA : BEGIN OF t_mvke OCCURS 0,
matnr LIKE mvke-matnr,
mvgr1 LIKE mvke-mvgr1,
END OF t_mvke.
DATA : BEGIN OF t_t001w OCCURS 0, "INTERNAL TABLE FOR KONV
werks LIKE t001w-werks, "Number of the document condition
name1 LIKE t001w-name1, "Condition type
kunnr LIKE t001w-kunnr, "Condition value
name2 LIKE t001w-name2, "Condition item number
END OF t_t001w.
DATA : BEGIN OF t_t001w2 OCCURS 0, "INTERNAL TABLE FOR KONV
werks LIKE t001w-werks, "Number of the document condition
name1 LIKE t001w-name1, "Condition type
kunnr LIKE t001w-kunnr, "Condition value
name2 LIKE t001w-name2, "Condition item number
END OF t_t001w2.
DATA : BEGIN OF t_marm OCCURS 0,
matnr LIKE marm-matnr,
meinh LIKE marm-meinh,
umrez LIKE marm-umrez,
umren LIKE marm-umren,
END OF t_marm.
DATA : BEGIN OF t_tvm1t OCCURS 0,
mvgr1 LIKE tvm1t-mvgr1,
bezie LIKE tvm1t-bezei,
END OF t_tvm1t.
**********************modification additioon of chapter ID 30.04.2007
DATA : BEGIN OF t_j_1imtchid OCCURS 0, "INTERNAL TABLE FOR j_1imtchid
matnr LIKE j_1imtchid-matnr, "Material Number
j_1ichid LIKE j_1imtchid-j_1ichid, "Chapter ID
END OF t_j_1imtchid.
DATA : BEGIN OF t_j_1iexchdr OCCURS 0, "INTERNAL TABLE FOR j_1imtchid
exnum LIKE j_1iexchdr-exnum, "Material Number
exdat LIKE j_1iexchdr-exdat, "Chapter ID
rdoc LIKE j_1iexchdr-rdoc,
werks LIKE j_1iexchdr-werks,
status LIKE j_1iexchdr-status,
trntyp LIKE j_1iexchdr-trntyp,
END OF t_j_1iexchdr.
**********************modification additioon of chapter ID 30.04.2007
DATA: BEGIN OF t_final OCCURS 0, "INTERNAL TABLE T_FINAL
fkart LIKE vbrk-fkart,
kunag LIKE vbrk-kunag,
vbeln_k LIKE vbrk-vbeln,
fkdat LIKE vbrk-fkdat,
knumv LIKE vbrk-knumv,
fkart1 LIKE vbrk-fkart,
vtweg LIKE vbrk-vtweg,
vkorg LIKE vbrk-vkorg,
vbeln LIKE likp-vbeln, "Delivery
vbeln_p LIKE vbrp-vbeln,
vstel LIKE vbrp-vstel,
"vgbel like mkpf-xblnr,
vgbel LIKE vbrp-vgbel,
aubel LIKE vbrp-aubel,
matnr LIKE vbrp-matnr,
arktx LIKE vbrp-arktx,
matkl LIKE vbrp-matkl,
fkimg LIKE vbrp-fkimg,
posnr LIKE vbrp-posnr,
vrkme LIKE vbrp-vrkme,
matnr_m LIKE mara-matnr,
mtart LIKE mara-mtart,
wrkst LIKE mara-wrkst,
extwg LIKE mara-extwg,
labor LIKE mara-labor,
normt LIKE mara-normt,
bismt LIKE mara-bismt,
spart LIKE mara-spart,
meins LIKE mara-meins,
kposn LIKE konv-kposn,
kschl LIKE konv-kschl,
kwert LIKE konv-kwert,
kwert1 LIKE konv-kwert,
kwert2 LIKE konv-kwert,
kwert3 LIKE konv-kwert,
kwert4 LIKE konv-kwert,
kwert5 LIKE konv-kwert,
kbetr LIKE konv-kbetr,
vbeln_kp LIKE mkpf-xblnr, " likp-vbeln,
lfdat LIKE likp-lfdat,
wgbez LIKE t023t-wgbez,
spras LIKE t023t-spras,
bsart LIKE ekko-bsart,
aedat LIKE ekko-aedat,
**********************modification additioon of chapter ID 30.04.2007
j_1ichid LIKE j_1imtchid-j_1ichid ,
**********************modification additioon of chapter ID 30.04.2007
total TYPE p DECIMALS 2,
mvgr1 LIKE mvke-mvgr1,
werks LIKE t001w-werks, "Number of the document condition
kunnr LIKE t001w-kunnr, "Condition value
name1 LIKE t001w-name1, "Condition type
name2 LIKE t001w-name2, "Condition item number
werks1 LIKE t001w-werks, "Number of the document condition
kunnr1 LIKE t001w-kunnr, "Condition value
name11 LIKE t001w-name1, "Condition type
name21 LIKE t001w-name2,
exnum LIKE j_1iexchdr-exnum, "Material Number
exdat LIKE j_1iexchdr-exdat, "Chapter ID
rdoc LIKE j_1iexchdr-rdoc,
bom TYPE p DECIMALS 4,
mult TYPE p DECIMALS 4,
bezie LIKE tvm1t-bezei,
length(5) TYPE n,
breath(5) TYPE n,
bldat LIKE likp-bldat, " document date
size(15) TYPE p DECIMALS 2,
area(15) TYPE p DECIMALS 2,
mblnr TYPE mseg-mblnr, "Number of Material Document
mjahr TYPE mseg-mjahr, "Material Document Year
budat TYPE mkpf-budat, "Posting period
w_flag TYPE c,
flag TYPE c,
END OF t_final.
DATA : BEGIN OF t_temp OCCURS 0,
kunag LIKE vbrk-kunag,
vbeln_k LIKE vbrk-vbeln,
fkdat LIKE vbrk-fkdat,
knumv LIKE vbrk-knumv,
fkart LIKE vbrk-fkart,
vtweg LIKE vbrk-vtweg,
vkorg LIKE vbrk-vkorg,
vbeln LIKE likp-vbeln, "Delivery
vbeln_p LIKE vbrp-vbeln,
vstel LIKE vbrp-vstel,
"vgbel like mkpf-xblnr,
vgbel LIKE vbrp-vgbel,
aubel LIKE vbrp-aubel,
matnr LIKE vbrp-matnr,
arktx LIKE vbrp-arktx,
matkl LIKE vbrp-matkl,
fkimg LIKE vbrp-fkimg,
posnr LIKE vbrp-posnr,
vrkme LIKE vbrp-vrkme,
matnr_m LIKE mara-matnr,
mtart LIKE mara-mtart,
wrkst LIKE mara-wrkst,
extwg LIKE mara-extwg,
labor LIKE mara-labor,
normt LIKE mara-normt,
bismt LIKE mara-bismt,
spart LIKE mara-spart,
meins LIKE mara-meins,
kposn LIKE konv-kposn,
kschl LIKE konv-kschl,
kwert LIKE konv-kwert,
kwert1 LIKE konv-kwert,
kwert2 LIKE konv-kwert,
kwert3 LIKE konv-kwert,
kwert4 LIKE konv-kwert,
kwert5 LIKE konv-kwert,
kbetr LIKE konv-kbetr,
vbeln_kp LIKE mkpf-xblnr, " likp-vbeln,
lfdat LIKE likp-lfdat,
wgbez LIKE t023t-wgbez,
spras LIKE t023t-spras,
bsart LIKE ekko-bsart,
aedat LIKE ekko-aedat,
**********************modification additioon of chapter ID 30.04.2007
j_1ichid LIKE j_1imtchid-j_1ichid ,
**********************modification additioon of chapter ID 30.04.2007
total TYPE p DECIMALS 2,
mvgr1 LIKE mvke-mvgr1,
werks LIKE t001w-werks, "Number of the document condition
kunnr LIKE t001w-kunnr, "Condition value
name1 LIKE t001w-name1, "Condition type
name2 LIKE t001w-name2, "Condition item number
werks1 LIKE t001w-werks, "Number of the document condition
kunnr1 LIKE t001w-kunnr, "Condition value
name11 LIKE t001w-name1, "Condition type
name21 LIKE t001w-name2,
exnum LIKE j_1iexchdr-exnum, "Material Number
exdat LIKE j_1iexchdr-exdat, "Chapter ID
rdoc LIKE j_1iexchdr-rdoc,
bom TYPE p DECIMALS 4,
mult TYPE p DECIMALS 4,
bezie LIKE tvm1t-bezei,
length(5) TYPE n,
breath(5) TYPE n,
size(15) TYPE p DECIMALS 2,
area(15) TYPE p DECIMALS 2,
mblnr TYPE mseg-mblnr, "Number of Material Document
mjahr TYPE mseg-mjahr, "Material Document Year
budat TYPE mkpf-budat, "Posting period
END OF t_temp.
DATA : BEGIN OF it_mseg OCCURS 0,
werks LIKE mseg-werks,
matnr LIKE mseg-matnr,
ebeln LIKE mseg-ebeln,
mblnr TYPE mseg-mblnr, "Number of Material Document
mjahr TYPE mseg-mjahr, "Material Document Year
END OF it_mseg.
DATA : BEGIN OF it_mkpf OCCURS 0,
budat TYPE mkpf-budat,
mblnr TYPE mkpf-mblnr,
tcode2 LIKE mkpf-tcode2,
" xblnr(10) TYPE C,
xblnr LIKE likp-vbeln, "Delivery
END OF it_mkpf.
DATA : BEGIN OF it_vbuk OCCURS 0,
vbeln LIKE vbuk-vbeln,
wbstk LIKE vbuk-wbstk,
END OF it_vbuk.
DATA : it_vbrk LIKE t_vbrk OCCURS 0 WITH HEADER LINE.
DATA : it_vbrp LIKE t_vbrp OCCURS 0 WITH HEADER LINE.
DATA : it_mara LIKE t_mara OCCURS 0 WITH HEADER LINE.
TYPES : w_str TYPE string,
str TYPE string.
* WORK AREAS *
DATA: wa_vbrk LIKE t_vbrk. "WORK AREA FOR VBRK
DATA: wa_vbrp LIKE t_vbrp. "WORK AREA FOR VBRP
DATA: wa_mara LIKE t_mara. "WORK AREA FOR MARA
DATA: wa_sfinal LIKE t_temp. "WORK AREA FOR T_FINAL
DATA: wa_sfinal1 LIKE t_final. "WORK AREA FOR T_FINAL
DATA: wa_mseg LIKE it_mseg. "Workarea for internal table mseg
DATA : wa_vbeln LIKE t_vbrk-vbeln.
DATA: wa_mkpf LIKE it_mkpf. "Workarea for internal table mkpf
* ALV *
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat LIKE LINE OF it_fieldcat,
it_top_of_page TYPE slis_t_listheader,
ls_layout TYPE slis_layout_alv,
gt_events TYPE slis_t_event.
* SELECTION-SCREEN *
SELECTION-SCREEN BEGIN OF BLOCK detail WITH FRAME TITLE text-000.
SELECT-OPTIONS: supp_pnt FOR vbrp-vstel OBLIGATORY. "SUPPLYING PLANT
SELECT-OPTIONS: recv_pnt FOR vbrk-kunag OBLIGATORY. "RECEIVING PLANT
SELECT-OPTIONS: period FOR vbrk-fkdat OBLIGATORY. "PERIOD
SELECT-OPTIONS: budat FOR mkpf-budat. " MIGO DATE
SELECTION-SCREEN END OF BLOCK detail.
* START-OF-SELECTION *
***********************************POPULATING DATA
PERFORM populating_data.
**********************************MOVE DATA
PERFORM move_data.
*********************************DATA- FETCHING
PERFORM data_fetching.
*********************************GET ALV DATA
PERFORM alv_get_data.
*********************************ALV GRID DATA
PERFORM alv_grid.
*********************************TOP OF PAGE
PERFORM top_of_page.
* VALIDATION OF SELECTION SCREEN *
AT SELECTION-SCREEN ON period.
IF period-high IS INITIAL.
MESSAGE e001(zamit).
ENDIF.
* SELECTION OF DATA *
FORM populating_data.
*************POPULATING DATA FROM VBRK
CLEAR t_vbrk.
REFRESH t_vbrk.
SELECT kunag
vbeln
fkdat
knumv
fkart
vtweg
vkorg
erzet
FROM vbrk INTO TABLE t_vbrk
WHERE kunag IN recv_pnt AND
fkdat IN period AND
fkart = 'JEX' OR
fkart = 'F8' AND
vtweg = '10' AND
vkorg = '1000'.
DELETE t_vbrk[] WHERE fkdat = '' .
DELETE t_vbrk[] WHERE fkdat NOT IN period.
DELETE t_vbrk[] WHERE kunag NOT IN recv_pnt.
IF t_vbrk[] IS INITIAL.
MESSAGE i002(zamit).
LEAVE LIST-PROCESSING.
ENDIF.
DELETE t_vbrk WHERE fkdat NOT IN period.
*DATA: l_tabix TYPE sy-tabix. " declare the sy-tabix as local variable
*DATA: l_lines TYPE sy-tabix.
*DATA: l_index TYPE sy-tabix.
*"SORT T_VBRK DESCENDING BY vbeln.
*SORT T_VBRK ASCENDING BY vbeln fkart .
*DESCRIBE TABLE t_vbrk LINES l_lines . "The current number of table rows of the internal table itab is determined and is assigned to the data object lin
*CHECK l_lines > 1. " check lines are greater than 1
*LOOP AT t_vbrk.
* l_tabix = sy-tabix. " assine Index of Internal Tables into local var l_tabix
* l_index = l_tabix + 1.
* IF t_vbrk-fkart = 'F8'. " loop on the temp table
*READ TABLE t_vbrk INTO wa_vbrk INDEX l_index. " read the temp table with index l_index
*IF sy-subrc = 0.
*CHECK t_vbrk-vbeln < wa_vbrk-vbeln .
* if sy-subrc = 0.
* t_vbrk-W_FLAG = 'X'.
* MODIFY t_vbrk TRANSPORTING W_FLAG.
*endif.
* endif.
*else.
* exit.
*endif.
*endloop.
*LOOP at t_vbrk.
*DELETE t_vbrk WHERE w_flag = 'X' .
*endloop.
*" change by kalika dated 28.06.2007
**" change by kalika dated 28.06.2007
*************POPULATING DATA FROM VBRP
IF t_vbrk[] IS NOT INITIAL.
CLEAR t_vbrp.
REFRESH t_vbrp.
SELECT vbeln
vstel
vgbel
aubel
matnr
arktx
matkl
fkimg
werks
posnr
vrkme
FROM vbrp INTO TABLE t_vbrp
FOR ALL ENTRIES IN t_vbrk
WHERE vbeln = t_vbrk-vbeln
AND vstel IN supp_pnt .
ENDIF.
IF sy-subrc <> 0.
MESSAGE i000(zamit).
LEAVE LIST-PROCESSING.
ENDIF.
IF t_vbrp[] IS NOT INITIAL.
SELECT vbeln wbstk FROM vbuk
INTO TABLE it_vbuk FOR ALL ENTRIES IN
t_vbrp WHERE vbeln = t_vbrp-vgbel.
ENDIF.
"DELETE t_vbrp[] WHERE vstel NOT in supp_pnt. " by kalika
*************POPULATING DATA FROM MARA
it_vbrp[] = t_vbrp[].
" it_vbrp-vgbel1 = t_vbrp-vgbel.
"SORT it_vbrp BY matnr.
SORT t_vbrp BY vbeln.
" DELETE ADJACENT DUPLICATES FROM it_vbrp COMPARING matnr . by kalika
* IF t_vbrp IS NOT INITIAL.
CLEAR t_mara.
REFRESH t_mara.
SELECT matnr
mtart
wrkst
extwg
labor
normt
bismt
matkl
spart
meins
FROM mara INTO TABLE t_mara
FOR ALL ENTRIES IN it_vbrp WHERE
matnr = it_vbrp-matnr .
* ENDIF.
*************POPULATING DATA FROM KONV
it_vbrk[] = t_vbrk[].
SORT it_vbrk BY knumv .
DELETE ADJACENT DUPLICATES FROM it_vbrk COMPARING knumv .
CLEAR t_konv.
REFRESH t_konv.
SELECT knumv
kposn
kschl
kwert
kbetr
FROM konv INTO TABLE t_konv
FOR ALL ENTRIES IN it_vbrk
WHERE knumv = it_vbrk-knumv.
DELETE t_konv WHERE
kschl <> 'ZR02'
AND kschl <> 'JEXP'
AND kschl <> 'JECS'
AND kschl <> 'DIFF'.
*************POPULATING DATA FROM LIKP
it_vbrp[] = t_vbrp[].
SORT it_vbrp BY vgbel.
" DELETE ADJACENT DUPLICATES FROM it_vbrp COMPARING vgbel . by kalika
CLEAR t_likp.
REFRESH t_likp.
SELECT vbeln
lfdat
bldat " NEW CHANGE
FROM likp INTO CORRESPONDING FIELDS OF TABLE t_likp
FOR ALL ENTRIES IN it_vbrp
WHERE vbeln = it_vbrp-vgbel.
*************POPULATING DATA FROM T023T
it_mara[] = t_mara[].
SORT it_mara BY matkl .
DELETE ADJACENT DUPLICATES FROM it_mara COMPARING matkl.
CLEAR t_t023t.
REFRESH t_t023t.
IF t_mara[] IS NOT INITIAL.
SELECT matkl
wgbez
spras
FROM t023t INTO TABLE t_t023t
FOR ALL ENTRIES IN it_mara
WHERE matkl = it_mara-matkl AND
spras = sy-langu.
ENDIF.
*************POPULATING DATA FROM EKKO
it_vbrp[] = t_vbrp[].
SORT it_vbrp BY aubel.
" DELETE ADJACENT DUPLICATES FROM it_vbrp COMPARING aubel. by kalika
CLEAR t_ekko.
REFRESH t_ekko.
SELECT ebeln
bsart
aedat
knumv
FROM ekko
INTO TABLE t_ekko
FOR ALL ENTRIES IN it_vbrp
WHERE ebeln = it_vbrp-aubel
AND bsart LIKE 'U%'.
************************delete invoice where it is being deleted from the system
*SELECT ebeln loekz
* FROM ekpo
* INTO CORRESPONDING FIELDS OF TABLE t_ekpo
* FOR ALL ENTRIES IN t_ekko
* WHERE ebeln = t_ekko-ebeln.
*DELETE t_ekpo WHERE loekz = 'L'.
*************POPULATING DATA FROM t001w
it_vbrp[] = t_vbrp[].
SORT it_vbrp BY werks.
" DELETE ADJACENT DUPLICATES FROM it_vbrp COMPARING werks . by kalika
CLEAR t_t001w.
REFRESH t_t001w.
SELECT werks
name1
kunnr
name2
FROM t001w INTO TABLE t_t001w
FOR ALL ENTRIES IN it_vbrp
WHERE werks = it_vbrp-werks .
it_vbrk[] = t_vbrk[].
SORT it_vbrk BY kunag.
DELETE ADJACENT DUPLICATES FROM it_vbrk COMPARING kunag .
CLEAR t_t001w2.
REFRESH t_t001w2.
SELECT werks
name1
kunnr
name2
FROM t001w INTO TABLE t_t001w2
FOR ALL ENTRIES IN it_vbrk
WHERE kunnr = it_vbrk-kunag .
*--------POPULATING DATA FROM MARM
SELECT matnr
meinh
umrez
umren FROM marm INTO TABLE t_marm
FOR ALL ENTRIES IN t_mara
WHERE matnr = t_mara-matnr.
*********************POPULATING DATA FROM MVKE
CLEAR t_mvke.
REFRESH t_mvke.
SELECT matnr
mvgr1
FROM mvke INTO TABLE t_mvke
FOR ALL ENTRIES IN t_vbrp
WHERE matnr = t_vbrp-matnr .
*-----------------POPULATING DATA FROM TVM1T.
SELECT
mvgr1 bezei FROM tvm1t
INTO TABLE t_tvm1t FOR ALL ENTRIES IN t_mvke
WHERE mvgr1 = t_mvke-mvgr1.
**********************modification additioon of chapter ID 30.04.2007
*-----------------POPULATING DATA FROM j_1imtchid.
CLEAR t_j_1imtchid.
REFRESH t_j_1imtchid.
SELECT matnr
j_1ichid
FROM j_1imtchid INTO TABLE t_j_1imtchid
FOR ALL ENTRIES IN t_vbrp
WHERE matnr = t_vbrp-matnr .
*-----------------POPULATING DATA FROM j_1iexchdr.
CLEAR t_j_1iexchdr.
REFRESH t_j_1iexchdr.
SELECT exnum
exdat
rdoc
werks
trntyp
status
FROM j_1iexchdr INTO TABLE t_j_1iexchdr
FOR ALL ENTRIES IN t_vbrp
WHERE rdoc = t_vbrp-vbeln
AND werks = t_vbrp-werks
AND trntyp = 'DLFC' . " by kalika
DELETE t_j_1iexchdr WHERE status = 'R' . " by kalika
DELETE t_j_1iexchdr WHERE status = 'B' . " by kalika
SORT t_j_1iexchdr BY rdoc.
***************end of modification additioon of chapter ID 30.04.2007
******* start of modification kalika dated 19.06.2007
LOOP AT t_likp.
t_likp-vbeln_kp = t_likp-vbeln.
MODIFY t_likp.
ENDLOOP.
* SELECT budat mblnr xblnr tcode2
* FROM mkpf
* INTO CORRESPONDING FIELDS OF TABLE it_mkpf
* FOR ALL ENTRIES IN t_likp
* WHERE xblnr = t_likp-vbeln_kp
* AND tcode2 LIKE 'MIGO_GR'
* AND budat IN budat. "26.07.2007
SELECT ebeln mblnr FROM mseg
INTO CORRESPONDING FIELDS OF TABLE it_mseg
FOR ALL ENTRIES IN t_vbrp
WHERE ebeln = t_vbrp-aubel AND mblnr LIKE '5%'.
SELECT budat mblnr tcode2
FROM mkpf
INTO CORRESPONDING FIELDS OF TABLE it_mkpf
FOR ALL ENTRIES IN it_mseg
WHERE mblnr = it_mseg-mblnr
AND tcode2 LIKE 'MIGO_GR'
AND budat IN budat. "26.07.2007
*loop at it_mkpf.
*DELETE it_mkpf WHERE mblnr = '4'.
*MODIFY it_mkpf.
*ENDLOOP.
ENDFORM. "populating_data
* FORM MOVE_DATA. *
FORM move_data.
CLEAR t_final.
REFRESH t_final.
SORT : t_vbrp BY vbeln,
t_vbrk BY vbeln,
t_mara BY matnr,
t_likp BY vbeln,
t_ekko BY ebeln,
t_t023t BY matkl,
t_konv BY knumv,
t_mvke BY matnr,
t_t001w BY werks,
t_t001w2 BY kunnr,
t_tvm1t BY mvgr1,
t_j_1iexchdr BY rdoc,
t_j_1imtchid BY matnr,
t_j_1iexchdr BY rdoc werks,
" it_mkpf by mblnr,
it_mseg BY mblnr,
it_mkpf BY mblnr,
it_vbuk BY vbeln.
CLEAR t_vbrp.
LOOP AT t_vbrp.
t_final-vstel = t_vbrp-vstel.
t_final-vgbel = t_vbrp-vgbel.
t_final-aubel = t_vbrp-aubel.
t_final-matnr = t_vbrp-matnr.
t_final-arktx = t_vbrp-arktx.
t_final-matkl = t_vbrp-matkl.
t_final-fkimg = t_vbrp-fkimg.
t_final-posnr = t_vbrp-posnr.
t_final-vrkme = t_vbrp-vrkme.
" t_vbrp-vgbel1 = t_vbrp-vgbel.
READ TABLE it_vbuk WITH KEY vbeln = t_vbrp-vgbel BINARY SEARCH.
IF sy-subrc = 0.
t_final-flag = it_vbuk-wbstk.
ENDIF.
CLEAR t_vbrk.
READ TABLE t_vbrk WITH KEY vbeln = t_vbrp-vbeln
BINARY SEARCH.
IF sy-subrc = 0.
t_final-kunag = t_vbrk-kunag.
t_final-vbeln_k = t_vbrk-vbeln.
t_final-fkdat = t_vbrk-fkdat.
t_final-fkart = t_vbrk-fkart.
t_final-knumv = t_vbrk-knumv.
ENDIF.
CLEAR t_mara.
READ TABLE t_mara WITH KEY matnr = t_vbrp-matnr BINARY SEARCH.
IF sy-subrc = 0.
t_final-mtart = t_mara-mtart.
t_final-wrkst = t_mara-wrkst.
t_final-extwg = t_mara-extwg.
t_final-labor = t_mara-labor.
t_final-normt = t_mara-normt.
t_final-bismt = t_mara-bismt.
t_final-spart = t_mara-spart.
t_final-meins = t_mara-meins.
SPLIT t_final-bismt AT '*' INTO t_final-length t_final-breath.
IF t_final-bismt = ''.
t_final-size = ''.
ELSE.
t_final-size = t_vbrp-fkimg * ( t_final-length * t_final-breath ) / 1000000.
ENDIF.
ENDIF.
CLEAR t_konv.
READ TABLE t_konv WITH KEY knumv = t_vbrk-knumv BINARY SEARCH.
IF sy-subrc = 0.
t_final-kschl = t_konv-kschl.
ENDIF.
CLEAR t_likp.
READ TABLE t_likp WITH KEY vbeln = t_vbrp-vgbel BINARY SEARCH.
IF sy-subrc = 0.
t_final-lfdat = t_likp-lfdat.
t_final-bldat = t_likp-bldat. " NEW CHANGE
t_final-vbeln_kp = t_likp-vbeln.
ENDIF.
CLEAR t_ekko.
READ TABLE t_ekko WITH KEY ebeln = t_vbrp-aubel BINARY SEARCH.
IF sy-subrc = 0.
t_final-aedat = t_ekko-aedat.
ENDIF.
CLEAR t_t023t.
READ TABLE t_t023t WITH KEY matkl = t_vbrp-matkl BINARY SEARCH.
IF sy-subrc = 0.
t_final-wgbez = t_t023t-wgbez.
ENDIF.
CLEAR t_t001w.
READ TABLE t_t001w WITH KEY werks = t_vbrp-werks BINARY SEARCH.
IF sy-subrc = 0.
t_final-name1 = t_t001w-name1.
ENDIF.
CLEAR t_t001w2.
READ TABLE t_t001w2 WITH KEY kunnr = t_vbrk-kunag BINARY SEARCH.
IF sy-subrc = 0.
t_final-name21 = t_t001w2-name2.
ENDIF.
READ TABLE t_mvke WITH KEY matnr = t_vbrp-matnr BINARY SEARCH.
IF sy-subrc = 0.
t_final-mvgr1 = t_mvke-mvgr1.
ENDIF.
READ TABLE t_tvm1t WITH KEY mvgr1 = t_mvke-mvgr1 BINARY SEARCH.
IF sy-subrc = 0.
t_final-bezie = t_tvm1t-bezie.
ENDIF.
**********************modification additioon of chapter ID 30.04.2007
READ TABLE t_j_1imtchid WITH KEY matnr = t_vbrp-matnr BINARY SEARCH.
IF sy-subrc = 0.
t_final-j_1ichid = t_j_1imtchid-j_1ichid.
ENDIF.
READ TABLE t_j_1iexchdr WITH KEY rdoc = t_vbrp-vbeln
werks = t_vbrp-werks
BINARY SEARCH.
IF sy-subrc = 0.
t_final-exnum = t_j_1iexchdr-exnum.
t_final-exdat = t_j_1iexchdr-exdat.
t_final-rdoc = t_j_1iexchdr-rdoc.
t_final-werks = t_j_1iexchdr-werks.
ENDIF.
**************end of modification additioon of chapter ID 30.04.2007
"******** START OF MODIFICATION KALIKA 26.07.2007.
READ TABLE it_mseg INTO wa_mseg WITH KEY ebeln = t_vbrp-aubel.
IF sy-subrc = 0.
t_final-mblnr = wa_mseg-mblnr.
ENDIF.
"INTO wa_mkpf
READ TABLE it_mkpf WITH KEY mblnr = t_final-mblnr
tcode2 = 'MIGO_GR'.
IF sy-subrc = 0.
t_final-budat = it_mkpf-budat.
ENDIF.
APPEND t_final.
CLEAR t_final.
ENDLOOP.
DELETE t_final[] WHERE flag = 'A' OR flag = ''. "change by amit for reverse deliveries as rkp.
DELETE t_final WHERE fkdat = ' ' .
DELETE t_final[] WHERE kunag NOT IN recv_pnt.
DELETE t_final[] WHERE vstel NOT IN supp_pnt.
DELETE t_final[] WHERE fkart = 'JEX' AND exnum = ' '. " CHANGE BY KALIKA
" FOR INVOICE WHOSE EXCISE NOT MAINTAINED
IF t_final[] IS INITIAL.
MESSAGE i002(zamit).
LEAVE LIST-PROCESSING.
ENDIF.
*---------------MARM CALCULATION
SORT t_marm BY matnr meinh.
DELETE t_marm WHERE meinh = 'M2'.
SORT t_marm BY matnr.
LOOP AT t_final.
READ TABLE t_marm WITH KEY matnr = t_final-matnr." T_MARM-MEINH <> 'M2'.
t_final-bom = ( t_marm-umrez / t_marm-umren ).
MODIFY t_final TRANSPORTING bom.
t_final-mult = t_final-bom * t_final-fkimg.
MODIFY t_final TRANSPORTING mult.
CLEAR t_final.
ENDLOOP.
*--------------------delivery no.
*-------------------beginning of adding na*******
LOOP AT t_final.
" *** change by kalika
IF t_final-matkl EQ 'BWGRBBD'
OR t_final-matkl = 'BWGRBPD'
OR t_final-matkl = 'BWGRCLB'
OR t_final-matkl = 'BWGRCMD'
OR t_final-matkl = 'BWGRGFB'
OR t_final-matkl = 'BWGRGFC'
OR t_final-matkl = 'BWGRGFO'
OR t_final-matkl = 'GRNLAM'
OR t_final-matkl = 'DVNRTKBB'
OR t_final-matkl = 'MRETBBD'
OR t_final-matkl = 'MRGRBBD'
OR t_final-matkl = 'MRGRCMD'
OR t_final-matkl = 'MRRBBD'
OR t_final-matkl = 'PLAMGBSD'
OR t_final-matkl = 'BWETBBD'
OR t_final-matkl = 'PLAMGOSD'.
* "LOOP AT t_final WHERE matkl = 'BWGRBBD'
*OR matkl = 'BWGRBPD'
*OR matkl = 'BWGRCLB'
*OR matkl = 'BWGRCMD'
*OR matkl = 'BWGRGFB'
*OR matkl = 'BWGRGFC'
*OR matkl = 'BWGRGFO'
*OR matkl = 'GRNLAM'
*OR matkl = 'DVNRTKBB'
*OR matkl = 'MRETBBD'
*OR matkl = 'MRGRBBD'
*OR matkl = 'MRGRCMD'
*OR matkl = 'MRRBBD'
*OR matkl = 'PLAMGBSD'
*OR matkl = 'BWETBBD'
*OR matkl = 'PLAMGOSD'.
*** change by kalika
t_final-area = ( t_final-size * 15 ) / 10 .
MODIFY t_final TRANSPORTING area.
ELSE.
t_final-area = ( t_final-normt * t_final-size ) / 4. "t_final-bom
MODIFY t_final TRANSPORTING area.
ENDIF.
ENDLOOP.
"*** change by kalika
" ** start Division Specific FA & NA to be displayed by kalika
LOOP AT t_final.
IF t_final-spart = 'LM' .
t_final-area = space.
ENDIF.
IF t_final-spart = 'DD'.
t_final-area = space.
ENDIF.
MODIFY t_final.
ENDLOOP.
* " ** end Division Specific FA & NA to be displayed by kalika
* LOOP AT t_final WHERE matkl = 'BWETPLY'
* OR matkl = 'BWGRCHQ'
* OR matkl = 'BWGRCLP'
* OR matkl = 'BWGRCMG'
* OR matkl = 'BWGRFLX'
* OR matkl = 'BWGRFRP'
* OR matkl = 'BWGRGCP'
* OR matkl = 'BWGRPCT'
* OR matkl = 'BWGRPLY'
* OR matkl = 'BWGRSHT'
* OR matkl = 'MRGRPLY'
* OR matkl = 'MRTPLY'.
* t_final-area = ( t_final-normt * t_final-bom ) / 4.
* MODIFY t_final.
* ENDLOOP.
*-------------------ending of adding na**********
ENDFORM. " move_data.
* data_fetching *
FORM data_fetching.
*------ASSESSIBLE VALUE
SORT t_final BY knumv.
SORT t_konv BY knumv kposn.
CLEAR t_final.
CLEAR t_konv.
LOOP AT t_konv.
IF t_konv-kschl = 'ZR02'.
READ TABLE t_final WITH KEY knumv = t_konv-knumv posnr = t_konv-kposn.
t_final-kwert1 = t_konv-kwert.
t_final-kbetr = t_konv-kbetr.
IF sy-tabix <> 0.
MODIFY t_final INDEX sy-tabix TRANSPORTING kwert1 kbetr.
CLEAR t_final.
CLEAR t_konv.
ENDIF.
ENDIF.
*-----EXICESE
IF t_konv-kschl = 'JEXP'.
READ TABLE t_final WITH KEY knumv = t_konv-knumv posnr = t_konv-kposn.
t_final-kwert2 = t_konv-kwert.
IF sy-tabix <> 0.
MODIFY t_final INDEX sy-tabix TRANSPORTING kwert2.
CLEAR t_final.
CLEAR t_konv.
ENDIF.
ENDIF.
*-------CESS
IF t_konv-kschl = 'JECS'.
READ TABLE t_final WITH KEY knumv = t_konv-knumv posnr = t_konv-kposn.
t_final-kwert3 = t_konv-kwert.
IF sy-tabix <> 0.
MODIFY t_final INDEX sy-tabix TRANSPORTING kwert3.
CLEAR t_final.
CLEAR t_konv.
ENDIF.
ENDIF.
*-----ROUNDING
IF t_konv-kschl = 'DIFF'.
READ TABLE t_final WITH KEY knumv = t_konv-knumv posnr = t_konv-kposn.
t_final-kwert4 = t_konv-kwert.
IF sy-tabix <> 0.
MODIFY t_final INDEX sy-tabix TRANSPORTING kwert4.
CLEAR t_final.
CLEAR t_konv.
ENDIF.
ENDIF.
ENDLOOP.
****************TOTAL OF ALL VALUES
LOOP AT t_final.
t_final-total = t_final-kwert1 + t_final-kwert2 + t_final-kwert3 + t_final-kwert4.
MODIFY t_final INDEX sy-tabix TRANSPORTING total .
CLEAR t_final.
ENDLOOP.
*--------------delivery calculation.
" start change by kalika
DELETE t_final WHERE total = ' '. " BY KALIKA
" end change by kalika
LOOP AT t_final.
t_temp-vbeln_k = t_final-vbeln_k.
t_temp-vgbel = t_final-vgbel.
t_temp-fkart = t_final-fkart.
t_temp-kunag = t_final-kunag.
APPEND t_temp.
CLEAR t_temp.
ENDLOOP.
SORT t_temp DESCENDING BY vbeln_k .
SORT t_temp BY vgbel.
LOOP AT t_final.
READ TABLE t_temp WITH KEY vgbel = t_final-vgbel.
t_final-vbeln_k = t_temp-vbeln_k.
*---change by amit for validating migi date by amit
if t_final-budat = 0.
t_final-mblnr = ''.
endif.
*---change by amit for validating migi date by amit
MODIFY t_final TRANSPORTING vbeln_k mblnr.
CLEAR t_final.
ENDLOOP.
" start KALIKA 30.06.2007.
"SORT t_final STABLE DESCENDING by fkart fkdat. "plz kalika do not forbid stable even it doent any effect this case but in future when large amount of data in production it will works.
SORT t_final STABLE ASCENDING BY fkart fkdat. "plz kalika do not forbid stable even it doent any effect this case but in future when large amount of data in production it will works.
DATA: l_tabix TYPE sy-tabix. " declare the sy-tabix as local variable
DATA: l_lines TYPE sy-tabix.
DATA: l_index TYPE sy-tabix.
DESCRIBE TABLE t_final LINES l_lines . "The current number of table rows of the internal table itab is determined and is assigned to the data object lin
CHECK l_lines > 1. " check lines are greater than 1
LOOP AT t_final WHERE fkart = 'F8'.
l_tabix = sy-tabix. " assine Index of Internal Tables into local var l_tabix
l_index = l_tabix + 1.
READ TABLE t_final INTO wa_sfinal1 INDEX l_index. " read the temp table with index l_index
IF sy-subrc = 0.
CHECK t_final-vgbel = wa_sfinal1-vgbel AND t_final-knumv NE wa_sfinal1-knumv.
IF sy-subrc = 0.
t_final-w_flag = 'X'.
MODIFY t_final TRANSPORTING w_flag.
ENDIF.
ENDIF.
ENDLOOP.
"DELETE ADJACENT DUPLICATES FROM t_final[] COMPARING fkart
DELETE t_final[] WHERE w_flag = 'X'.
" end KALIKA 30.06.2007.
*--change by amit for performa invoice deletion
DELETE t_final[] WHERE aedat = 0.
ENDFORM. " sub_CAL
* FORM ALV GET DATA FOR NOTIONAL AREA *
FORM alv_get_data .
CLEAR it_fieldcat.
***************** SUPPLYING PLANT
* wa_fieldcat-col_pos = '1'. " ALV O/P COL-1
wa_fieldcat-fieldname = 'VSTEL'.
wa_fieldcat-seltext_m = 'SUPPLYING PLANT'.
wa_fieldcat-just = 'L'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
wa_fieldcat-tabname = 'T_FINAL'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
***************** SUPPLYING PLANT
* wa_fieldcat-col_pos = '2'. " ALV O/P COL-1
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_m = 'SUPP PLANT DESCRTN'.
wa_fieldcat-just = 'L'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 20.
wa_fieldcat-tabname = 'T_FINAL'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
******************** RECEIVING PLANT
* wa_fieldcat-col_pos = '3'. " ALV O/P COL-2
wa_fieldcat-fieldname = 'KUNAG'.
wa_fieldcat-seltext_m = 'RECEIVING PLANT'.
wa_fieldcat-just = 'L'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
******************** RECEIVING PLANT
* wa_fieldcat-col_pos = '4'. " ALV O/P COL-2
wa_fieldcat-fieldname = 'NAME21'.
wa_fieldcat-seltext_m = 'RECE PLNT DESCRTN'.
wa_fieldcat-just = 'L'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
***************** BILL NUMBER
* wa_fieldcat-col_pos = '5'. " ALV O/P COL-3
wa_fieldcat-fieldname = 'VBELN_K'.
wa_fieldcat-seltext_m = 'BILL NUMBER'.
wa_fieldcat-just = 'L'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*******************BILL DATE
* wa_fieldcat-col_pos = '6'. " ALV O/P COL-4
wa_fieldcat-fieldname = 'FKDAT'.
wa_fieldcat-seltext_m = 'BILL DATE'.
wa_fieldcat-just = 'L'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*********** OUT BOUND DELIVERY NO
* wa_fieldcat-col_pos = '7'. " ALV O/P COL-5
wa_fieldcat-fieldname = 'VGBEL'.
wa_fieldcat-seltext_m = 'OUT BOUND DELIVERY NO'.
wa_fieldcat-just = 'L'.
* wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-tabname = 'T_FINAL'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*********** OUT BOUND DELIVERY DATE
** wa_fieldcat-col_pos = '8'. " ALV O/P COL-6
* wa_fieldcat-fieldname = 'LFDAT'.
* wa_fieldcat-seltext_m = 'OUT BOUND DELIVERY DATE'.
* wa_fieldcat-just = 'L'.
* wa_fieldcat-tabname = 'T_FINAL'.
* wa_fieldcat-outputlen = 15.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.
" * wa_fieldcat-col_pos = '8'. " ALV O/P COL-6
wa_fieldcat-fieldname = 'BLDAT'.
wa_fieldcat-seltext_m = 'DELIVERY DOC DATE'. " NEW CHANGE
wa_fieldcat-just = 'L'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
************* S.T.O. NO.
* wa_fieldcat-col_pos = '9'. " ALV O/P COL-6
wa_fieldcat-fieldname = 'AUBEL'.
wa_fieldcat-seltext_m = 'S.T.O. NO.'.
wa_fieldcat-just = 'L'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*********** S.T.O. DATE
* wa_fieldcat-col_pos = '10'. " ALV O/P COL-6
wa_fieldcat-fieldname = 'AEDAT'.
wa_fieldcat-seltext_m = 'S.T.O. DATE'.
wa_fieldcat-just = 'L'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
************ DIVISION
* wa_fieldcat-col_pos = '11'. " ALV O/P COL-7
wa_fieldcat-fieldname = 'SPART'.
wa_fieldcat-seltext_m = 'DIVISION'.
wa_fieldcat-just = 'L'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
********** MATERIAL CODE
* wa_fieldcat-col_pos = '12'. " ALV O/P COL-9
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = 'MATERIAL CODE'.
wa_fieldcat-just = 'L'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
************ DESCRIPTION
* wa_fieldcat-col_pos = '13'. " ALV O/P COL-10
wa_fieldcat-fieldname = 'ARKTX'.
wa_fieldcat-seltext_m = 'DESCRIPTION'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
**************MATERIAL TYPE
* wa_fieldcat-col_pos = '14'. " ALV O/P COL-11
wa_fieldcat-fieldname = 'MTART'.
wa_fieldcat-seltext_m = 'MATERIAL TYPE'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
************MATERIAL GROUP
* wa_fieldcat-col_pos = '15'. " ALV O/P COL-13
wa_fieldcat-fieldname = 'MATKL'.
wa_fieldcat-seltext_m = 'MATERIAL GROUP'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*******************modification additioon of chapter ID 30.04.2007
******************chapterID
* wa_fieldcat-col_pos = '32'. " ALV O/P COL-27'.
wa_fieldcat-fieldname = 'J_1ICHID'.
wa_fieldcat-seltext_m = 'CHAPTER-ID'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
* wa_fieldcat-col_pos = '33'. " ALV O/P COL-27'.
wa_fieldcat-fieldname = 'EXNUM'.
wa_fieldcat-seltext_m = 'EXCISE DOC.NO.'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
* wa_fieldcat-col_pos = '34'. " ALV O/P COL-27'.
wa_fieldcat-fieldname = 'EXDAT'.
wa_fieldcat-seltext_m = 'EXCISE DOC.DATE'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
***************end of modification additioon of chapter ID 30.04.2007
*********SUB GROUP
* wa_fieldcat-col_pos = '16'. " ALV O/P COL-13
wa_fieldcat-fieldname = 'MVGR1'.
wa_fieldcat-seltext_m = 'SUB GROUP'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
* wa_fieldcat-col_pos = '16'. " ALV O/P COL-13
wa_fieldcat-fieldname = 'BEZIE'.
wa_fieldcat-seltext_m = 'SUB GROUP DISCRP'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
***************GROUP DISCRIPTION
* wa_fieldcat-col_pos = '17'. " ALV O/P COL-14
wa_fieldcat-fieldname = 'WGBEZ'.
wa_fieldcat-seltext_m = 'GROUP DISCRIPTION'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*****************FINISH
* wa_fieldcat-col_pos = '18'. " ALV O/P COL-15
wa_fieldcat-fieldname = 'WRKST'.
wa_fieldcat-seltext_m = 'FINISH'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*****************sale u o m
* wa_fieldcat-col_pos = '19'. " ALV O/P COL-15
wa_fieldcat-fieldname = 'VRKME'.
wa_fieldcat-seltext_m = 'SALE U O M'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*****************BASE u o m
* wa_fieldcat-col_pos = '19'. " ALV O/P COL-15
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-seltext_m = 'BASE U O M'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
**************DESIGN NO.
* wa_fieldcat-col_pos = '20'. " ALV O/P COL-17
wa_fieldcat-fieldname = 'EXTWG'.
wa_fieldcat-seltext_m = 'DESIGN NO.'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*****************CATEGORY
* wa_fieldcat-col_pos = '21'. " ALV O/P COL-18
wa_fieldcat-fieldname = 'LABOR'.
wa_fieldcat-seltext_m = 'CATEGORY'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
**************THICKNESS
* wa_fieldcat-col_pos = '22'. " ALV O/P COL-19.
wa_fieldcat-fieldname = 'NORMT'.
wa_fieldcat-seltext_m = 'THICKNESS'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
**************SIZE
* wa_fieldcat-col_pos = '23'. " ALV O/P COL-20.
wa_fieldcat-fieldname = 'BISMT'.
wa_fieldcat-seltext_m = 'SIZE'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
****************BILLED QTY
* wa_fieldcat-col_pos = '24'. " ALV O/P COL-21.
wa_fieldcat-fieldname = 'FKIMG'.
wa_fieldcat-seltext_m = 'BILLED QTY'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
**************RETE
* wa_fieldcat-col_pos = '26'. " ALV O/P COL-21.
wa_fieldcat-fieldname = 'BOM'.
wa_fieldcat-seltext_m = 'CONVERSION RATE'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
******************MULT
* wa_fieldcat-col_pos = '32'. " ALV O/P COL-27'.
wa_fieldcat-fieldname = 'MULT'.
wa_fieldcat-seltext_m = 'BILLED QTY IN BUM'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
**************RETE
* wa_fieldcat-col_pos = '25'. " ALV O/P COL-21.
wa_fieldcat-fieldname = 'KBETR'.
wa_fieldcat-seltext_m = 'RATE / BASE UOM'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
**************ASSESSIBLE VALUE
* wa_fieldcat-col_pos = '27'. " ALV O/P COL-22.
wa_fieldcat-fieldname = 'KWERT1'.
wa_fieldcat-seltext_m = 'ASSESSIBLE VALUE'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
****************EXCISE
* wa_fieldcat-col_pos = '28'. " ALV O/P COL-23.
wa_fieldcat-fieldname = 'KWERT2'.
wa_fieldcat-seltext_m = 'EXCISE'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
*****************CESS
* wa_fieldcat-col_pos = '29'. " ALV O/P COL-24.
wa_fieldcat-fieldname = 'KWERT3'.
wa_fieldcat-seltext_m = 'CESS'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-just = 'R'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
******************ROUNDING
* wa_fieldcat-col_pos = '30'. " ALV O/P COL-26.
wa_fieldcat-fieldname = 'KWERT4'.
wa_fieldcat-seltext_m = 'ROUNDING'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
******************TOTAL
* wa_fieldcat-col_pos = '31'. " ALV O/P COL-27'.
wa_fieldcat-fieldname = 'TOTAL'.
wa_fieldcat-seltext_m = 'TOTAL'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'AREA'.
wa_fieldcat-seltext_m = 'NA'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MBLNR'.
wa_fieldcat-seltext_m = 'MIGO NO'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BUDAT'.
wa_fieldcat-seltext_m = 'MIGO DATE'.
wa_fieldcat-just = 'R'.
wa_fieldcat-tabname = 'T_FINAL'.
wa_fieldcat-no_zero(1) = 'X'.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " ALV_GET_DATA
* FORM ALV_GRID *
FORM alv_grid .
PERFORM fill_list_header USING it_top_of_page[].
PERFORM event-build USING gt_events[].
PERFORM fill_layout USING ls_layout.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = ls_layout
it_fieldcat = it_fieldcat
it_events = gt_events[]
i_save = 'A'
TABLES
t_outtab -
Authorization for material type and material views
Hello all,
I would need to restrict a user group, in creation (MM01) and modification of material master, based of type material and material views.
The authorization, for each user should be:
- view, modify and create of all views, except accounting (B) for type material ZFER;
- view, modify and create of all views for type material ZOFF.
I tried to create 2 roles in PFCG with the following authorization objects:
1) M_MATE_MAR (Material Master: Material Types) ACTVT = *, BEGRU = ZFER and M_MATE_STA (Maintenance Statuses) ACTVT = *, STATM = A,C, D, E, F, G,K, L, P, Q, S, V, X, Z (excluding B)
2) ) M_MATE_MAR ACTVT = *, BEGRU = ZFER and M_MATE_STA ACTVT = *, STATM = B
but the effect is to be authorized, to all view for material type ZFER and ZOFF.
I have already updated the authorization group of the type materials (OMS2).
Is there a solution for this problem?
(component version SAP ECC 6.0)
Thanks.
Regards,
LucaI tried to create 2 roles in PFCG with the following authorization objects: 1) M_MATE_MAR (Material Master: Material Types) ACTVT = *, BEGRU = ZFER and M_MATE_STA (Maintenance Statuses) ACTVT = *, STATM = A,C, D, E, F, G,K, L, P, Q, S, V, X, Z (excluding B) 2) ) M_MATE_MAR ACTVT = *, BEGRU = ZFER and M_MATE_STA ACTVT = *, STATM = B
- Are both these roles assigned to the same user? then your purpose is not solved, It is more or less like giving full authorization.
- One role should be
M_MATE_MAR (Material Master: Material Types) ACTVT = *, BEGRU = ZFER and M_MATE_STA (Maintenance Statuses) ACTVT = *, STATM = A,C, D, E, F, G,K, L, P, Q, S, V, X, Z (excluding B) for view, modify and create of all views, except accounting (B) for type material ZFER. This should be assigned to one user
- Second role should be
M_MATE_MAR ACTVT = *, BEGRU = ZOFF and M_MATE_STA ACTVT = *, STATM = * for view, modify and create of all views for type material ZOFF. This role should be assigned to the second user.
Regards,
Subbu -
BDC - MM02 _long text for material PO upload
Hi experts,
I want to upload Long text for material PO in MM02 (Purchase order text view)
throuh BDC upload. I have successfully done recording for this transaction. But in the recording it show no table field for that particular long text.
Pls help me to do this issue.
Thanks.Hi
See the sample program for this and modify as per your requirement.
REPORT zmm_longtext
NO STANDARD PAGE HEADING
LINE-SIZE 255.
Internal Table for Upload of Long Texts Data
DATA: BEGIN OF itab1 OCCURS 0,
matnr LIKE mara-matnr, " Material
text1 LIKE tline-tdline, " Long Text
END OF itab1.
Internal Table for Upload of Long Texts Data
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr, " Material
text LIKE tline-tdline, " Long Text
END OF itab.
To create Long Text lines for CREATE_TEXT function module
DATA:BEGIN OF dt_lines OCCURS 0.
INCLUDE STRUCTURE tline. " Long Text
DATA:END OF dt_lines.
Variable declarations for CREATE_TEXT function module
DATA : dl_name TYPE thead-tdname, " Object Name
dl_lan TYPE thead-tdspras, " Language
gv_matnr TYPE matnr.
Constants
CONSTANTS:
Object ID for Long Text of Material Basic Data 1
c_best TYPE thead-tdid VALUE 'GRUN',
c_material TYPE thead-tdobject VALUE 'MATERIAL'. " Object
Parameters
PARAMETERS p_file LIKE rlgrap-filename.
At selection-screen on Value Request for file Name
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
Get the F4 Values for the File
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
Start Of Selection
START-OF-SELECTION.
*To Upload Flat file
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = itab1
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
gui_refuse_filetransfer = 6
OTHERS = 7.
SORT itab1 BY matnr.
LOOP AT itab1.
CLEAR gv_matnr.
SELECT SINGLE matnr INTO gv_matnr
FROM mara WHERE bismt = itab1-matnr.
IF itab1-text1 NE ' '.
itab-matnr = gv_matnr.
itab-text = itab1-text1.
APPEND itab.
ENDIF.
CLEAR itab.
ENDLOOP.
DELETE itab WHERE matnr EQ ' '.
Upload the Texts
SORT itab BY matnr.
LOOP AT itab.
dt_lines-tdformat = 'ST'.
dt_lines-tdline = itab-text.
APPEND dt_lines.
dl_lan = sy-langu.
dl_name = itab-matnr.
Call the Function Module to Create Text
CALL FUNCTION 'CREATE_TEXT'
EXPORTING
fid = c_best
flanguage = dl_lan
fname = dl_name
fobject = c_material
save_direct = 'X'
fformat = '*'
TABLES
flines = dt_lines
EXCEPTIONS
no_init = 1
no_save = 2
OTHERS = 3.
IF sy-subrc <> 0.
WRITE:/ 'Long Text Creation failed for Material'(001),
itab-matnr.
ELSE.
WRITE:/ 'Long Text Created Successfully for Material'(002),
itab-matnr.
ENDIF.
AT END OF matnr.
REFRESH dt_lines.
ENDAT.
ENDLOOP.
<b>Reward points for useful Answers</b>
Regards
Anji -
Most use ful t code for Material Master changing
Dear All,
Can any one give me most useful T-codes for create, change and display material master.
I have one T-code which is very useful for material master it is "MM50". With help of this tcode you can see material extend detail and also you can delete mass material with help of this tcode.
So please use it and also give me other this type of tcodes.
Regards,
Mahesh WaghHi,
MM17, LSMW, MM50 --- These are the 3 main transactions which is used frequently to Mass change the Material master.
There is one more option is there using BDC Upload.
Batch Data Communication or BDC is a batch interfacing technique that SAP developed. It is mainly used for uploading data into the SAP R/3 system. BDC works by simulating the user input from transactional screen via an ABAP program.
The data input data file will come in the form of a flat file which the user save as file type txt file or prn file from the Microsoft Excel program. An Abaper will create a program to read the text file and upload into the SAP system.
Transaction -- SHDB will be used to record the change material master. After, the simulation, the Abaper can generate a sample program and modify from there. It makes the programming easier and faster.
For a BDC upload you need to write a program which created BDC sessions.
hope you got it. Take a help of ABAPer for this BDC Upload.
rgds
Chidanand -
Account assignment mandatory for material
Hi,
While creating contract i am facing this warning message..i can ignore this message , but what is the root cause for it.
Error is :
"Account assignment mandatory for material 100000040 (enter acc. ***. cat.)
Message no. ME062
Diagnosis
There is no provision for value-based inventory management for this material type in this plant. Account assignment is thus necessary.
Procedure
Please enter an account assignment category"
I checked Qty and value update in OMS2 also.
It is maintained.
Then what is wrong?
UtsHi,
Account assignment determination depend on the valuation class. When your account assinged category is mandatory in that case go and see the account modifier assigned in account assinged category. After that verify the G/L account in OBYC for key GBB and account modifier and respective valuation class assigned in material master.
If the entery does not exist then system will give you an error message.
Regards
Prashanth -
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'
-
Message Type for Material Master Data Changes
Hi all
I'm managing Message Types for Material Master Data extraction from R\3 system to BW system, in order to load on BW only the changes done to some fields of MARA table that are delta relevant.
Now from R/3 BD50 Transaction I can see that there is a message type that refer to changes done on MARA fields: RS0044.
I would like to replace this message type with another one (RS0020) in order to align different systems.
Now changes to material master data in R/3 system are recorder with both message types but only those with RS0044 message type are processed and loaded into BW system.
So I would like to know:
1. How is the message type related to the DataSource 0material?
2. is it possible to replace a message type for BW?
3. if yes, how can I do it?
Thanks in advance.
Elisa
mail: [email protected]Hi Oscar!
At the moment I'm using Delta queue of 0MATERIAL. I know that in the queue there are all the new and changed records.
But I would like to be able not to load all the changed records, but only those that refer to some fields of MARA table.
E.g. if the gross weight of a material is modified I don't want to load this change on BW with Delta loading .
I've seen that from R/3 Transaction BD52 you can set only delta relevant fields referred to a specific message type and to delete the other fields.
As I'm able to do this directly in the Development system and Test System, I haven't got the authorization of doing it in the Production system.
That's why I need to include this setting in a CR and then ask to transport it from Test to Production system.
But message types referred to MARA field changes are different between the two systems.
And it seems they are automatically created.
Is it true?
Thanks
Elisa -
Change Documents for Material Class
Hi,
I activated the change logging for a specific Material Class. However, when I check the change log, there is a material class which will show the characteristic change in the following format. For example I modified characteristic ABCDEF from 1 to 2. The log will show the following:
Document Number 099999
ABCDEF - 1 Deleted
ABCDEF - 2 Created
There are other class types/characterisitcs whose change logging is also activated but the change log will only show the "Created" part. The old value (before change) is not shown.
Document Number 088888
ABCDEF - 2 Created
How do I turn on the logging in such a way that the deleted value (old value) will always be shown in the log ?
ThanksWe have the same issue just come up last night. A test on one class last week yielded the 2 record change history model (old value deleted, new value created). Applying the same change to a different material class, we get only the single record model - no help or oss notes seem to mention that there are two different change history models in SAP.
CHECK THIS -- check your single record change log in table CDPOS ... you may have values in both value_old and value_new fields there. The 2 record model stores value_old on the "deleted" record and value_new field value on the "created" record.
That still does not answer why there are two models and how one controls which model is implemented for change history on a class/characteristic ... but it sheds just a little more light on it. -
Is there any way to Authorization Management for Material Components?
Hello every body
Is there any way to Authorization Management for Material Components?
For example i want to create , delete , modify Material Components,how i can Authorization Management ?
Enhancement or IMG or other ways?
thanksAlas, no, not in VBA.
Regards, Hans Vogelaar (http://www.eileenslounge.com) -
Production costs for material with price control V
Dear all,
Can anyone pls tell me, how will the costing occur for a material produced in-house and having price control 'V' ? I am not able to see the target costs.
Also kindly tell me the settings to be done in CO, like target cost version, valuation variant, costing variant, etc.
Thank you,
ShrenikRather than giving my own versions I have compiled here SAP inputs. Pl let me know if you require any clarifications:
Costing variant has the following components:
<b>Define Costing Types
Define Valuation Variants
Define Date Control
Define Quantity Structure Control
Define Transfer Strategy
Define Reference Variants</b>
<u>Costing type:</u>
In the costing type, you define the purpose of a material cost estimate by specifying, for example, which field in the material master record the costing results can be transferred to:
Update Cost Estimate
Standard price Standard cost estimate (01)
Tax-based price Inventory cost estimate
Commercial price Inventory cost estimate
Price other than std price Modified standard cost estimate or
current cost estimate
No update Any cost estimate
Define Valuation Variants:
Define Valuation Variants
Here you create a valuation variant containing the parameters required for valuation of a cost estimate.
You also specify which costing sheet should be used to calculate overhead.
Valuation Strategies
Material valuation
Here you define the sequence in which the system searches for prices from the accounting view or costing view of the material master record to valuate materials. You can also access prices from purchasing info records and condition types.
For material cost estimates, you also specify whether additive costs can be added to the selected price.
With configurable/configured material components and with procurement alternatives, the sequence defined here is ignored if the strategy "price from purchasing info record" was selected, in which case that strategy is always executed first. For more information, refer to the SAP Library in the component Product Cost Planning under Raw Material Costing or Mixed Costing.
Activity Types / Processes
Here you define the sequence in which the system searches for prices in activity type planning or actual activity price calculation in Cost Center Accounting or Activity-Based Costing to valuate the utilized activity types and business processes.
You also specify which plan/actual version is used.
Subcontracting
Here you define the sequence in which the system searches for prices in the purchasing info record. In purchasing, quota arrangements are used to create a mixed price for materials that are manufactured with external vendors with parts provided by the customer. You can specify whether the quota of the individual vendors that are entered in the source list for the material to be processed should be determined through the planned quota arrangement or the actual quota arrangement.
External processing
Here you define the sequence in which the system searches for prices in the purchasing info record or routing operation for valuation of the external activities.
Strategy Sequence
You define the individual valuation methods for the valuation variant as strategy sequences. For the valuation of the material components you define a strategy sequence that reads the fields of the material master record in a particular sequence such as:
1. Planned price 1
2. Standard price
3. Moving price
The first price that is not zero is used to valuate the material component.
Target versions:
Target cost versions are used in the following ways:
In variance calculation:
To control which variance (total variance, production variances or planning variance) is calculated
To valuate unplanned scrap( scrap variance)
Unplanned scrap is valuated in the period-end closing activities when the variances are calculated. You can specify in a valuation variant for WIP and scrap which cost estimate you want to use to calculate the target costs for the valuation of unplanned scrap. You assign the valuation variant to target cost version 0 if you want to include it in the valuation of scrap.
When you are using a cost object hierarchy with active distribution, you use the target cost version to control which cost estimate the system uses to calculate the target costs, which are used as the basis for determining equivalences for actual cost distribution.
The actual costs collected at the level of the hierarchy are distributed across the orders in accordance with these equivalences. This distribution is proportional to the target costs for the cost element under which the actual costs are written. Actual costs for material costs are distributed in proportion to the target costs for the origin group, such as for the material, if you have entered an origin group in the costing view of the material master record and have set the indicator Material origin, for example.
If no target costs were calculated under this cost element, enter a cost element group in the target cost version. The actual costs are distributed in proportion to the target costs for this cost element group. This cost element group should be complete. If costs were updated under a cost element that is not in this cost element group, no distribution is possible.
You can calculate equivalences on the basis of SAP standard target cost versions 0, 1 and 3.
The standard system supplies the following target cost versions:
Target cost version 0 ( total variance)
The amount of the total variance generates a posting in Financial Accounting during settlement.
For this version, select actual costs as the control costs and standard cost estimate as the target costs.
Target cost version 1 ( production variance)
For this version you choose actual costs as the control costs and planned costs as the target costs.
Target cost version 2( planning variance)
With target cost version 2, the costs from the preliminary order cost estimate are interpreted as control costs.
For this version, select planned costs as the control costs and current cost estimate as the target costs. You cannot calculate planning variances for the product cost collector.
Target cost version 3 (production variance of the period)
You compare the planned costs of the period calculated on the basis of an alternative material cost estimate (such as a modified standard cost estimate) with the actual costs of the period on the basis of the yield delivered to stock in the period.
The base quantity for variance calculation is the yield.
For this version, you choose the actual costs as the control costs and the alternative material cost estimate as the target costs. To determine the alternative material cost estimate, enter a costing variant and choose a costing version.
The target cost version specifies which data is to be compared. The target cost version also specifies which variance variant is used and therefore which variance catagories are calculated. You can define a different target cost version for each controlling area -
API_MATERIAL_SAVEDATA for Material Description ?
dear Friends:
How to modify function API_MATERIAL_SAVEDATA Material Description?Hi
hope this coding will help you look especially at
IT_MAKT-LANGU = IT_DATA-SPRAS.
IT_MAKT-MATL_DESC = IT_DATA-MAKTX.*
APPEND IT_MAKT.
REPORT ZKAR_MATMAS_BAPI.
* TABLES
* FLAGS *
DATA: F_STOP. " Flag used to stop processing
* DATA DECLARATIONS *
DATA : V_EMPTY TYPE I, " No. of empty records
V_TOTAL TYPE I. " Total no. of records.
* STRUCTURES & INTERNAL TABLES
*BAPI structures
DATA: BAPI_HEAD LIKE BAPIMATHEAD, " Header Segment with Control Information
BAPI_MAKT LIKE BAPI_MAKT, " Material Description
BAPI_MARA1 LIKE BAPI_MARA, " Client Data
BAPI_MARAX LIKE BAPI_MARAX, " Checkbox Structure for BAPI_MARA
BAPI_MARC1 LIKE BAPI_MARC, " Plant View
BAPI_MARCX LIKE BAPI_MARCX, " Checkbox Structure for BAPI_MARC
BAPI_MBEW1 LIKE BAPI_MBEW, " Accounting View
BAPI_MBEWX LIKE BAPI_MBEWX, " Checkbox Structure for BAPI_MBEW
BAPI_RETURN LIKE BAPIRET2. " Return Parameter
*--- Internal table to hold excel file data
DATA: IT_INTERN TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
*--- Internal table to hold Matetrial descriptions
DATA: BEGIN OF IT_MAKT OCCURS 100.
INCLUDE STRUCTURE BAPI_MAKT.
DATA: END OF IT_MAKT.
*--- Internal to hold the records in the text file
DATA : BEGIN OF IT_DATA OCCURS 100,
WERKS(4), " Plant
MTART(4), " Material type
MATNR(18), " Material number
MATKL(9) , " Material group
MBRSH(1), " Industry sector
MEINS(3), " Base unit of measure
GEWEI(3), " Weight Unit
SPART(2), " Division
EKGRP(3), " Purchasing group
VPRSV(1), " Price control indicator
STPRS(12), " Standard price
PEINH(3), " Price unit
SPRAS(2), " Language key
MAKTX(40), " Material description
END OF IT_DATA.
* SELECTION SCREEN. *
SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-111.
PARAMETER : P_FILE TYPE RLGRAP-FILENAME OBLIGATORY DEFAULT " Input File
'C:\Material_master.XLS'.
PARAMETER : P_MAX(4) OBLIGATORY DEFAULT '100'. " no.of recs in a session
PARAMETERS: P_HEADER TYPE I DEFAULT 0. " Header Lines
PARAMETERS: P_BEGCOL TYPE I DEFAULT 1 NO-DISPLAY,
P_BEGROW TYPE I DEFAULT 1 NO-DISPLAY,
P_ENDCOL TYPE I DEFAULT 100 NO-DISPLAY,
P_ENDROW TYPE I DEFAULT 32000 NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK SCR1.
* AT SELECTION-SCREEN *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
*--- Validating file
PERFORM VALIDATE_FILE USING P_FILE.
* START-OF-SELECTION
START-OF-SELECTION.
*--- Perform to convert the Excel data into an internal table
PERFORM CONVERT_XLS_ITAB.
IF NOT IT_DATA[] IS INITIAL.
*--- Perform to delete Header lines
PERFORM DELETE_HEADER_EMPTY_RECS.
ENDIF.
* END OF SELECTION. *
END-OF-SELECTION.
*--- Perform to upload Material Master data
PERFORM UPLOAD_MATMAS.
* Form : validate_input_file
* Description : To provide F4 help for file if read from PC
FORM VALIDATE_FILE USING F_FILE TYPE RLGRAP-FILENAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
CHANGING
FILE_NAME = F_FILE
EXCEPTIONS
MASK_TOO_LONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE S010(ZLKPL_MSGCLASS). " 'Error in getting filename'.
ENDIF.
ENDFORM. " validate_input_file
*& Form CONVER_XLS_ITAB
* text
FORM CONVERT_XLS_ITAB.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = P_BEGCOL
I_BEGIN_ROW = P_BEGROW
I_END_COL = P_ENDCOL
I_END_ROW = P_ENDROW
TABLES
INTERN = IT_INTERN.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*--- Perform to move the data into an internal data
PERFORM MOVE_DATA.
ENDFORM. " CONVERT_XLS_ITAB
*& Form MOVE_DATA
* text
FORM MOVE_DATA.
DATA : LV_INDEX TYPE I.
FIELD-SYMBOLS <FS>.
*--- Sorting the internal table
SORT IT_INTERN BY ROW COL.
CLEAR IT_INTERN.
LOOP AT IT_INTERN.
MOVE IT_INTERN-COL TO LV_INDEX.
*--- Assigning the each record to an internal table row
ASSIGN COMPONENT LV_INDEX OF STRUCTURE IT_DATA TO <FS>.
*--- Asigning the field value to a field symbol
MOVE IT_INTERN-VALUE TO <FS>.
AT END OF ROW.
APPEND IT_DATA.
CLEAR IT_DATA.
ENDAT.
ENDLOOP.
ENDFORM. " MOVE_DATA
*& Form DELETE_HEADER_EMPTY_RECS
* To delete the Header and empty records
FORM DELETE_HEADER_EMPTY_RECS.
DATA: LV_TABIX LIKE SY-TABIX.
IF NOT P_HEADER IS INITIAL.
LOOP AT IT_DATA.
IF P_HEADER > 0 AND NOT IT_DATA IS INITIAL.
DELETE IT_DATA FROM 1 TO P_HEADER.
* P_HEADER = 0.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
*--- To delete the empty lines from internal table
LOOP AT IT_DATA.
LV_TABIX = SY-TABIX.
IF IT_DATA IS INITIAL.
V_EMPTY = V_EMPTY + 1.
DELETE IT_DATA INDEX LV_TABIX..
ENDIF.
ENDLOOP.
CLEAR IT_DATA.
*--- Total no of recs in file
DESCRIBE TABLE IT_DATA LINES V_TOTAL.
IF V_TOTAL = 0.
MESSAGE I013(ZLKPL_MSGCLASS). " No records in the file
F_STOP = 'X'.
STOP.
ENDIF.
ENDFORM. " DELETE_HEADER_EMPTY_RECS
*& Form UPLOAD_MATMAS
* to upload Material Master data
FORM UPLOAD_MATMAS .
LOOP AT IT_DATA.
* Header
UNPACK IT_DATA-MATNR TO IT_DATA-MATNR.
BAPI_HEAD-MATERIAL = IT_DATA-MATNR.
BAPI_HEAD-IND_SECTOR = IT_DATA-MBRSH.
BAPI_HEAD-MATL_TYPE = IT_DATA-MTART.
BAPI_HEAD-BASIC_VIEW = 'X'.
BAPI_HEAD-PURCHASE_VIEW = 'X'.
BAPI_HEAD-ACCOUNT_VIEW = 'X'.
* Material Description
REFRESH IT_MAKT.
IT_MAKT-LANGU = IT_DATA-SPRAS.
IT_MAKT-MATL_DESC = IT_DATA-MAKTX.
APPEND IT_MAKT.
* Client Data - Basic
BAPI_MARA1-MATL_GROUP = IT_DATA-MATKL.
BAPI_MARA1-BASE_UOM = IT_DATA-MEINS.
BAPI_MARA1-UNIT_OF_WT = IT_DATA-GEWEI.
BAPI_MARA1-DIVISION = IT_DATA-SPART.
BAPI_MARAX-MATL_GROUP = 'X'.
BAPI_MARAX-BASE_UOM = 'X'.
BAPI_MARAX-UNIT_OF_WT = 'X'.
BAPI_MARAX-DIVISION = 'X'.
* Plant - Purchasing
BAPI_MARC1-PLANT = IT_DATA-WERKS.
BAPI_MARC1-PUR_GROUP = IT_DATA-EKGRP.
BAPI_MARCX-PLANT = IT_DATA-WERKS.
BAPI_MARCX-PUR_GROUP = 'X'.
* Accounting
BAPI_MBEW1-VAL_AREA = IT_DATA-WERKS.
BAPI_MBEW1-PRICE_CTRL = IT_DATA-VPRSV.
BAPI_MBEW1-STD_PRICE = IT_DATA-STPRS.
BAPI_MBEW1-PRICE_UNIT = IT_DATA-PEINH.
BAPI_MBEWX-VAL_AREA = IT_DATA-WERKS.
BAPI_MBEWX-PRICE_CTRL = 'X'.
BAPI_MBEWX-STD_PRICE = 'X'.
BAPI_MBEWX-PRICE_UNIT = 'X'.
*--- BAPI to create material
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = BAPI_HEAD
CLIENTDATA = BAPI_MARA1
CLIENTDATAX = BAPI_MARAX
PLANTDATA = BAPI_MARC1
PLANTDATAX = BAPI_MARCX
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
* STORAGELOCATIONDATA =
* STORAGELOCATIONDATAX =
* VALUATIONDATA = BAPI_MBEW1
* VALUATIONDATAX = BAPI_MBEWX
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA = BAPI_MVKE1
* SALESDATAX = BAPI_MVKEX
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
IMPORTING
RETURN = BAPI_RETURN
TABLES
MATERIALDESCRIPTION = IT_MAKT
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
* RETURNMESSAGES =
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
IF BAPI_RETURN-TYPE = 'E'.
WRITE:/ 'Error:' ,BAPI_RETURN-MESSAGE ,'for material:' ,IT_DATA-MATNR.
ELSEIF BAPI_RETURN-TYPE = 'S'.
WRITE: 'Successfully created material' ,IT_DATA-MATNR.
ENDIF.
ENDLOOP.
ENDFORM. " UPLOAD_MATMAS
* 1 children | View in hierarchy
Regards,
V.Balaji
Reward if usefull -
Report for material with sloc,qty available, and production order
hi friends, i need advice on getting this report for material with qty and specific sloc with the corresponding Prodn order numbers. in mb51 i could get all these details except the prodn order no. could you advice me please?
to make sure you know how to do this.
In the material document list, hit "Ctrl+F8" on your keyboard.
A window will pop up. Click on the button position and look for "order" in the list of available fields. That should do it.
Rgds. -
Longer time for Material Availability check while creation of prd order.
Hi guys,
I am facing a weird problem while creating production orders thru CO01.
I enter the component and plant and I am also using the forward scheduling option.
for some reason, SAP is taking a long time for material availability check when I hit the release button.
Sometimes its taking more than an hour. Its happening with few specific BOM's, and I have checked the master data but I could hardly find a problem in master data.
Can someone suggest me some tips ??
Thanks & Regards,
SashivardhanHi,
Please check the Availability check control maintained for Components it should be 01 or 02. Also check the issue storage location maintained or not. You can maintain issue storage location in BOM in Status/lng text tab in Production Storage Location.
Hope this will help.
Regards,
Navin -
Report for material which not consumed during C015
HI ALL,
"I required a report for material which material are not
consumed at C015 production confirmation time against actual consumation (order wise , part no wise & date wise )"
its v urgent
good suggesstion reward with valuable points.Amit,
I think your problem is that you want to monitor when users are deleting the goods issue while confirmation. So you would have to know if for a confirmation qty of 100, the planned consumption should have been 100 but the actual consuption is 50.
So you would want to relate the confirmation qty with the planned and actual consumption.
In COOIS Remt, qty and Withdrawal qty will show the total reqmt and actual withdrwal. Hope this will not be helpful if I understand correctly.
You have to create a simple query joining tables AFVV with RESB. Calculate the planned consuption for the confirmation qty. This along with the actual consuption will help to give what you are looking for.
I am right ?
Ram
Maybe you are looking for
-
Data Source path in Pivot Table changes to absolute on its own
Hello. I have a .XLSX file, that was created long time ago (I don't even know in which Office version, but definitely not 2013), and maybe even was a .XLS file at first. So it's a 4 MB file with 16 Sheets and 8 Pivot Tables. All of the Pivot Tables u
-
Network Connection error when Trying to Install Windows Server 2012 R2 Essentials
Thank you to anyone who can help me out here. I have a brand new machine with known working wifi and wired ethernet adapters (works under Windows 8.1) I am attempting to install Windows Server 2012 Essentials R2. During the install process, the syste
-
How to set the cursor in a text box when the application starts?
Hi. It's me again. Its seems to me that there isn't any Spanish speaker, so I reformulate my question in English. What I want is to place the cursor in the text box so that the user can enter the text. Could anybody help me? Thanks in advance. MamenF
-
Java 7 update 13....good or no good?
I've read that Oracle has introduced Java 7 update 13. This version has 50 security issues that have been addressed. My question is; Should I download this latest version and then enable it in Safari preferences?
-
Unable to update the coverage area information on the device. USB 760
Hi all, I am a new user of the USB760. Overall the device has been working very well. I do get the error shown in the subject line though. Can anyone offer any suggestions? thanks !