Procedure for material listing
Hello all,
When I use the following customizing : "Sales and Distribution > Basic Functions > Listing/Exclusion > Activate listing/exclusion by sales document type"
There is a setting called "procedure for material listing" (3rd column) that determines how the system reacts to several listings. The possible values are :
- The first listing in the access sequence is used
A - The last listing in the access sequence is used
B - At least one listing must apply
C - All listings must apply
But I don't understand what is the purpose of these values because, concerning material listings, if there is at least one listing, it is enough to consider the material can be bought. Isn't it?
Also I encounter a bug when I use the first value "- The first listing in the access sequence is used" : the program finds entries for the given customer but within these entries there is none for the given material. Even if the system finds no entry (customer+material), it reacts like if there is one.
Using VA01, when I run the material listing/exclusion analysis, the answer for the following access sequences is "Access not made due to a previous access"...
Thanks in advance if you provide any help about this issue.
Regards,
Francois.
up
Similar Messages
-
ARCHIVEING PROCEDURE for material master
Hi
I have some blocked matrial in our production system..i want archive the all material whhich have blocked.. pls guide me any one to archive procedure for material deletion
regards
sesidahr> Kindly Read the Rules and Use the Search
Once Material is Flagged you Need to Archive the Material Master Records thru Archiving Program SARA Trxn code with Archiving Object MM_MATNR
Please Go thru the link for Details :
http://www.sap-img.com/bc003.htm -
How to determine pricing procedure for invoice list
Hi ,
Could you pl let me know "How to determine pricing procedure for invoice list"
All other things are available i.e.
Create Condition Tables
Maintain access sequences
Maintain pricing procedures
Define condition types
Basically how the pricing procedure will be assigned for the Invoice list.
br
pinkyHi Pinky,
Create a billing doc type by coping std.(ZF1)
Assign invoice list to billing type Zf1
Now maintain a document pricing procedure (for Eg: Z )
Assign this to billing type in pricing control - document pricing procedure.
Now maintain the pricing procedure determination as per the sales area /doc pp/cust pp.
Also in copy control in VTFL maintain pricing type as " B".
REgards,
Krishna O -
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 -
PR release procedure for material types
Hi all,
I have a question, I created new release procedure for combination :
1. NB pur.requsition, purchasing group + material type (let sey roh.. etc)
2. YNB pur.requsition, purchasing groups + material type (ZSTE-001, ZSTE-002, ZSTE-003).
- 3 characteristcs for pur.groups, doc.type and material type.
- 1 class
- 2 release groups (E1 and P1)
- For release group P1, In rel.strategy in classification I entered values for pur. requisition (NB), purchasing groups (001,002, 003 ect) and material types (ZUSL-001.. ect)
- For release group E1, in rel. strategy in classification entered values
values for pur. requisition (YNB), purchasing groups (001,002, 003 ect) and material types (ZSTE-001, ZSTE-002, ZSTE-003)
So, problem is that if I enter pur.requisition YNB and material type ZSTE-001, needs release; if I add item with material type ZUSL-001, there is no release.
How can I restrict the values so that is giving error if by mistake is entered between material types ZSTE-001, ZSTE-002, ZSTE-003 material type ZUSL-001 in document type YNB, which is not allowed to be entered?
Thanks in advance,
AnchiHello
In PR you can set up this release strategy without classification release strategy.
w/o classification strategy you can define the release line item wise. so you can give diiff materual group you can enter with line item wise.
Laxman -
BAPI or FM for Material Listing
Hi Experts,
Good day, is there a BAPI or a FM that i can use to perform Material Listing?
Thanks!
JesusUse'BAPI_MATERIAL_GETLIST'.
Or you can fetch materials from material master MARA.
Regards,
Aparna -
Distribution Procedure for Material BOM and Modifications
Hi Experts,
I'm using ALE to distribute Materials, Material-BOMs and Modifications. The user select the BOM and start the distribution.
What is the right procedure to distribute Materials, BOMs and Modifications (with the entire BOM-Modifications History).
I'm using following Functions:
- for Materials : MASTERIDOC_CREATE_REQ_MATMAS
- for Modifications : Transaction CC92
- for BOMs : MASTER_IDOC_CREATE_BOMMAT
Thanks for support.
Regards,
David.up
-
Material listing by plant wise
Hi Kings,
I want to do material listing by plant wise where can i do customization for this this or i have to do any master data mantainance .
please help me out very argent
thanks,hi,
U can try this
Ur requirement can fulfilled by using combination of fields in condition table of Listing/exclusion
menu path:
Spro-> img>SD-> basic function -
> listing/exclusion->Maintain condition tables for listing/exclusion--> table 003
This table u have to assign to the access sequence. Then this access sequence u assign it to the condition type which is maintainesd in the <b>Procedures for maintaining listing/exclusion</b>
Now try with VB01, then listing/ exclusion for the customer happens at plant
hope this helps u
regards,
Arun prasad -
Material Listing/Exclution replication from R/3 to CRM,
hi,
We are using SAP CRM 3.0 and R/3 4.6c
In R/3 system we maintained an exclution for a material and the system is giving the message 'Material xxxx excluded.
If we use the same customer and the same material in CRM, the Material xxxx accepting (there is no message saying material excluded)
Please let me know if there is any downloading object for material listing/exclusion or how to over come this problem
Thanks in advance.
Regards,
Ram.This is a recent blog http://weblogs.sdn.sap.com/pub/wlg/15445?page=last [original link is broken] [original link is broken] [original link is broken]
I can't remember if 3.0 offers some or all of this. -
Checking material listing in sales order
Hi
Where can we assign whether system checks material listing or not while creating sales order?
my doubt is if there are material listing master records, will system check for material listing for all order types?
thanksHI,
The Tcode for maintaining the Listing/Exclusion Records is : VB01.
Then select the combination for hich u wanna create the records:
(1) Cust Hierarchy/article
(2) Customer/Material
Selectthe appropriate and then Enter...
Ensure that the Listing has been configured at:
SPRO->SD->BF->Listing/Exclusion
Enssur that u have maintained the setting at :
ctivate listing/exclusion by sales document type
Hope this will clarify ure doubts.Reward points accordingly.
Cheerzz..
Subbz.. -
MM60 Material List - New Field
Hi
Requirement is to generate a report for material list (MM60) which includes MRP Controller and Material creation date. In the standard layout these options r not available.
I'm new to enhancements.
For MRP Controller (MARC_DISPO)
For Material creation date (MARA_ERSDA) is this correct ??
Please help me how to develop this custom reports. What should I use? User exits, bapis or query quick viewer (SQVI).
I am also posting this question in ABAP forum.
If there is any other transaction that works just like MM60 which also includes MRP Controller...tat is also good enough.
ThanksMSTA table is for Material Master status which has following fields related to Dates:
ERSDA - Created on (same as MARA)
LAEDA - Date of Last Change (its already available in Standard MM60 report)
in MARC I found: MMSTD - Date from which the plant-specific material status is valid. when you said "creation date of this material in that plant" - Is this the one you are referring to. Can you please tell me which specific field you r talking about?
Actually I'm also not sure, which Creation date the user is talking about. So, I am trying to sort out all the possibilities and options on Material creation date for my next meeting.
Thanks -
Difference between material listing and item proposal?
HI Gurus,
COuld you explain what is the difference between material listing and item proposal?
--jamesHi James,
Item Proposal is automatically proposed by the system while creating a sales order for a specific customer.
This setting is maintained in the Sales Area of customer master under Sales tab.
It can be stored as master records. When you create a sales order, you can refer to an item proposal, look over the proposed items, and copy all or just selected items into the order. If a customer routinely orders the same goods, you can create a proposal and enter it in the customer master record. During sales order processing, the system automatically proposes items from this proposal.
Item Proposal is created using VA51.
Material Listing lists which materials a customer can buy. With material listing or exclusion you can control which materials can be sold to each customer.
A material listing is created for a customer. The customer can only buy the materials contained in the list. The system does not allow any materials to be entered if they are not contained in the material listing.
If no records exist for material listing, the sold-to party, for example, can in principle buy the same materials as the payer. However, if there is a material listing record specific to the sold-to party, the sold-to party can only buy the materials permitted in the list. These materials do not have to be identical to those which the payer can buy.
Material listing and material exclusion are controlled using the condition technique.
Hope it helps.
Regards,
Priyanka -
What is procedure for creating new vendor and material master data in ABAP
What is procedure for creating new vendor and material master data in ABAP .
see below code which is used for creation of vendor master as well as extension...
*& Report ZFC_VENDOR_CREATE *
REPORT ZFC_VENDOR_CREATE LINE-SIZE 100
NO STANDARD PAGE HEADING
MESSAGE-ID ZZ.
TABLES
TABLES : SSCRFIELDS. " Fields on selection screens
CONSTANTS
DATA : C_SPLIT TYPE C VALUE '#'. " Used for Has Separator in GUI_UPLAOD
TYPES
Int'table to hold Vendor Master Data
TYPES : BEGIN OF TY_VENDOR_MASTER,
FLAG TYPE C, " Update Flag
LIFNR TYPE LIFNR, " Vendor Number
BUKRS TYPE BUKRS, " Company Code
KTOKK TYPE KTOKK, " Account Group
ANRED TYPE ANRED, " Title
NAME1 TYPE NAME1_GP, " Name1
NAME2 TYPE NAME2_GP, " Name2
SORTL TYPE SORTL, " Search Term 1
SORT2 TYPE AD_SORT2UL, " Search Term 2
STRAS TYPE STRAS_GP, " Street
PSTLZ TYPE PSTLZ, " Postal Code
ORT01 TYPE ORT01_GP, " City
REGIO TYPE REGIO, " Region
LAND1 TYPE LAND1_GP, " Country
SPRAS TYPE SPRAS, " Language
VBUND TYPE RASSC, " Trading Partner
BANKS TYPE BANKS, " Country
BANKL TYPE BANKK, " Bank Key
BANKN TYPE BANKN, " Bank Account
BKONT TYPE BKONT, " Bank Control Key
BANKA TYPE BANKA, " Name of Bank
AKONT TYPE AKONT, " Reconciliation Account
FDGRV TYPE FDGRV, " Cash Management Group
ZTERM TYPE DZTERM, " Payment Terms
REPRF TYPE REPRF, " Check Double Invoice
ZWELS TYPE DZWELS, " Payment Methods
XPORE TYPE XPORE, " Pay all items separately
END OF TY_VENDOR_MASTER,
Int'table to hold Vendor Extend Data
BEGIN OF TY_VENDOR_EXTEND,
FLAG TYPE C, " Update Flag
LIFNR TYPE LIFNR, " Vendor Number
BUKRS TYPE BUKRS, " Company Code
KTOKK TYPE KTOKK, " Account Group
REF_LIFNR TYPE LIFNR, " Reference Vendor Number
REF_BUKRS TYPE BUKRS, " Reference Company Code
AKONT TYPE AKONT, " Reconciliation Account
FDGRV TYPE FDGRV, " Cash Management Group
ZTERM TYPE DZTERM, " Payment Terms
REPRF TYPE REPRF, " Check Double Invoice
ZWELS TYPE DZWELS, " Payment Methods
XPORE TYPE XPORE, " Pay all items separately
END OF TY_VENDOR_EXTEND,
Int'table to hold Error Records Data
BEGIN OF TY_ERROR,
MSG(200) TYPE C, " To hold Message
LIFNR TYPE LIFNR, " Vendor Number
BUKRS TYPE BUKRS, " Company Code
END OF TY_ERROR.
DATA (Simple Fields)
DATA : W_COUNT TYPE I, " Variable to hold count of Records
W_SUCC_REC TYPE I, " No. of Success Records
W_SUCC_REC1 TYPE I, " No. of Updated Records
W_ERR_REC TYPE I, " No. of Error Records
w_noupdate_rec type i. " No. of Records not Changed
INTERNAL TABLES
Int'table to hold uploaded data from File
DATA : IT_VENDOR_MASTER TYPE STANDARD TABLE OF TY_VENDOR_MASTER,
WA_IT_VENDOR_MASTER TYPE TY_VENDOR_MASTER,
IT_VENDOR_EXTEND TYPE STANDARD TABLE OF TY_VENDOR_EXTEND,
WA_IT_VENDOR_EXTEND TYPE TY_VENDOR_EXTEND,
WA_IT_BDCDATA TYPE BDCDATA,
IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA,
WA_IT_MESSTAB TYPE BDCMSGCOLL,
IT_MESSTAB TYPE STANDARD TABLE OF BDCMSGCOLL,
IT_ERROR TYPE STANDARD TABLE OF TY_ERROR,
WA_IT_ERROR TYPE TY_ERROR,
it_error_fk01 type standard table of ty_error,
wa_it_error_fk01 type ty_error,
it_error_fk02 type standard table of ty_error,
wa_it_error_fk02 type ty_error,
it_succ_rec1 type standard table of ty_error,
wa_it_succ_rec1 type ty_error,
it_noupdate type standard table of ty_error,
wa_it_noupdate type ty_error.
FLAGS
DATA : FL_FLAG1 TYPE C, " Flag to check error upload file
FL_FLAG2 TYPE C, " Flag to hold value
FL_FLAG3 TYPE C, " Flag to hold value
FL_FLAG4 TYPE C. " Flag to hold value
SELECTION-SCREEN
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN : BEGIN OF LINE,
COMMENT 1(30) TEXT-001,
POSITION POS_LOW.
PARAMETERS : P_FILE(128) DEFAULT 'C:\UPLOAD.TXT' OBLIGATORY.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN : BEGIN OF LINE,
COMMENT 1(30) TEXT-002,
POSITION POS_LOW.
PARAMETERS : P_VENMAS RADIOBUTTON GROUP R1 DEFAULT 'X'.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN : BEGIN OF LINE,
COMMENT 1(30) TEXT-003,
POSITION POS_LOW.
PARAMETERS : P_VENEXT RADIOBUTTON GROUP R1.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN : BEGIN OF LINE,
COMMENT 1(30) TEXT-004,
POSITION POS_LOW.
PARAMETERS : P_MODE(1) DEFAULT 'N'.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN : BEGIN OF LINE,
COMMENT 1(30) TEXT-005,
POSITION POS_LOW.
PARAMETERS : P_GROUP(12) DEFAULT 'ZFC_VENDOR_C' OBLIGATORY.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN : BEGIN OF LINE,
COMMENT 1(30) TEXT-016,
POSITION POS_LOW.
PARAMETERS : P_GROUP1(12) DEFAULT 'ZFC_VENDOR_U' OBLIGATORY.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN ON
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
Form to get file path for upload of data
PERFORM GET_FILE_PATH.
AT SELECTION-SCREEN ON BLOCK B1.
Form to Validate data specified on Selection Screen
CHECK SSCRFIELDS-UCOMM EQ 'ONLI'.
PERFORM VALIDATE_DATA.
START - OF - SELECTION
START-OF-SELECTION.
IF P_VENMAS = 'X'.
Form to upload data from Presentation Server for Vendor Master
PERFORM UPLOAD_DATA TABLES IT_VENDOR_MASTER.
IF FL_FLAG1 NE 'X'.
SORT IT_VENDOR_MASTER BY LIFNR BUKRS KTOKK.
DELETE IT_VENDOR_MASTER WHERE LIFNR = ' '
AND BUKRS = ' '
AND KTOKK = ' '.
Form to process data for Vendor Master
PERFORM INSERT_VENDOR_MASTER_DATA.
ENDIF.
ELSEIF P_VENEXT = 'X'.
Form to upload data from Presentation Server for Vendor Extend
PERFORM UPLOAD_DATA TABLES IT_VENDOR_EXTEND.
IF FL_FLAG1 NE 'X'.
SORT IT_VENDOR_EXTEND BY LIFNR BUKRS KTOKK.
DELETE IT_VENDOR_EXTEND WHERE LIFNR = ' '
AND BUKRS = ' '
AND KTOKK = ' '.
Form to process data for Vendor Master
PERFORM CHK_AND_INS_VENDOR_EXTEND_DATA.
ENDIF.
ENDIF.
END - OF - SELECTION
END-OF-SELECTION.
IF FL_FLAG1 NE 'X'.
FORMAT COLOR 7.
WRITE:/2 TEXT-O01. " Total Number of records read :
FORMAT COLOR OFF.
WRITE:40 W_COUNT.
FORMAT COLOR 7.
WRITE:/2 TEXT-O02. " Total Number of Success records :
FORMAT COLOR OFF.
WRITE:40 W_SUCC_REC.
FORMAT COLOR 7.
WRITE:/2 TEXT-O07. " Total Number of Updated records :
FORMAT COLOR OFF.
WRITE:40 W_SUCC_REC1.
FORMAT COLOR 7.
WRITE:/2 TEXT-O08. " Total Number of Unchanged records :
FORMAT COLOR OFF.
WRITE:40 W_noupdate_REC.
FORMAT COLOR 7.
WRITE:/2 TEXT-O03. " Total Number of Error records :
FORMAT COLOR OFF.
WRITE:40 W_ERR_REC.
if not it_succ_rec1 is initial.
skip 1.
perform display_changed_report.
endif.
if not it_noupdate is initial.
skip 1.
perform display_nochange_report.
endif.
IF NOT IT_ERROR IS INITIAL.
SKIP 3.
Form to display error data
PERFORM DISPLAY_ERROR_REPORT.
ENDIF.
IF FL_FLAG2 = 'X'.
SKIP 2.
FORMAT COLOR 4.
WRITE:/2 TEXT-O04. " BDC Session Name for Creation (FK01) :
FORMAT COLOR OFF.
WRITE:40 P_GROUP.
perform display_error_report_fk01.
ENDIF.
IF FL_FLAG3 = 'X'.
SKIP 2.
FORMAT COLOR 4.
WRITE:/2 TEXT-O09. " BDC Session Name for Updation (FK02) :
FORMAT COLOR OFF.
WRITE:40 P_GROUP1.
perform display_error_report_fk02.
ENDIF.
ENDIF.
*& Form GET_FILE_PATH
This form is used to get the specified path for uploading of data from
flat file with the help of F4 function key
FORM GET_FILE_PATH .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE.
ENDFORM. " GET_FILE_PATH
*& Form VALIDATE_DATA
This form is used to validate the data given by user on the Selection
Screen and the appropriate message is been displayed when an wrong
entry is inputted
FORM VALIDATE_DATA .
IF SY-BATCH EQ 'X'.
CLEAR SSCRFIELDS-UCOMM.
MESSAGE E001(ZZ) WITH TEXT-011.
" Excel file not to be used in Batch Mode
ENDIF.
IF P_MODE NE 'A' AND P_MODE NE 'N' AND P_MODE NE 'E'.
MESSAGE E001(ZZ) WITH TEXT-012.
" Session Mode should be either A or N or E
ENDIF.
ENDFORM. " VALIDATE_DATA
*& Form UPLOAD_DATA
This form is used to upload data from Presentation Server for either
Vendor Master or Vendor Extend
FORM UPLOAD_DATA TABLES P_IT_VENDOR.
DATA : L_FILENAME TYPE STRING,
L_FILETYPE TYPE CHAR10 VALUE 'ASC',
L_HEADER_LENGTH TYPE I VALUE 0,
L_READ_BY_LINE TYPE CHAR01 VALUE 'X'.
MOVE P_FILE TO L_FILENAME.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = L_FILENAME
FILETYPE = L_FILETYPE
HEADER_LENGTH = L_HEADER_LENGTH
READ_BY_LINE = L_READ_BY_LINE
HAS_FIELD_SEPARATOR = C_SPLIT
TABLES
DATA_TAB = P_IT_VENDOR
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
MESSAGE I001(ZZ) WITH TEXT-006 L_FILENAME.
MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
FL_FLAG1 = 'X'.
ELSEIF P_IT_VENDOR[] IS INITIAL.
MESSAGE I001(ZZ) WITH TEXT-014. " Uploaded File contains no data
FL_FLAG1 = 'X'.
ENDIF.
ENDFORM. " UPLOAD_DATA
*& Form INSERT_VENDOR_MASTER_DATA
This form is used to process BDC data for Vendor Master
FORM INSERT_VENDOR_MASTER_DATA .
DATA : L_LIFNR TYPE LIFNR.
CLEAR : L_LIFNR.
sort it_vendor_master by flag.
LOOP AT IT_VENDOR_MASTER INTO WA_IT_VENDOR_MASTER.
W_COUNT = W_COUNT + 1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_IT_VENDOR_MASTER-LIFNR
IMPORTING
OUTPUT = WA_IT_VENDOR_MASTER-LIFNR.
if wa_it_vendor_master-flag = 'A'.
SELECT SINGLE LIFNR
FROM LFB1
INTO L_LIFNR
WHERE LIFNR = WA_IT_VENDOR_MASTER-LIFNR
AND BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
IF SY-SUBRC EQ 0.
WA_IT_ERROR-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
WA_IT_ERROR-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
WA_IT_ERROR-MSG = TEXT-015.
APPEND WA_IT_ERROR TO IT_ERROR.
W_ERR_REC = W_ERR_REC + 1.
CLEAR : WA_IT_ERROR, L_LIFNR.
ELSE.
REFRESH IT_BDCDATA.
CLEAR IT_BDCDATA.
PERFORM POPULATE_BDC_DATA_VEN_MASTER.
PERFORM CALL_TRANSACTION.
ENDIF.
CLEAR : WA_IT_VENDOR_MASTER.
elseif wa_it_vendor_master-flag = 'C'.
IF FL_FLAG2 = 'X' and fl_flag4 ne 'X'.
PERFORM CLOSE_BDC_SESSION.
fl_flag4 = 'X'.
ENDIF.
REFRESH IT_BDCDATA.
CLEAR IT_BDCDATA.
PERFORM POPULATE_BDC_DATA_VEN_MASTER.
PERFORM CALL_TRANSACTION_FK02.
CLEAR : WA_IT_VENDOR_MASTER.
elseif wa_it_vendor_master-flag = 'N'.
WA_IT_noupdate-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
WA_IT_noupdate-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
WA_IT_noupdate-MSG = TEXT-018.
APPEND WA_IT_noupdate TO IT_noupdate.
W_noupdate_REC = W_noupdate_REC + 1.
CLEAR : WA_IT_noupdate, WA_IT_VENDOR_MASTER.
endif.
ENDLOOP.
IF FL_FLAG3 = 'X'.
PERFORM CLOSE_BDC_SESSION.
ENDIF.
ENDFORM. " INSERT_VENDOR_MASTER_DATA
*& Form POPULATE_BDC_DATA_VEN_MASTER
This form is used to populate BDC data of Vendor Master
FORM POPULATE_BDC_DATA_VEN_MASTER .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_IT_VENDOR_MASTER-ZTERM
IMPORTING
OUTPUT = WA_IT_VENDOR_MASTER-ZTERM.
IF WA_IT_VENDOR_MASTER-REPRF = 'Y'.
WA_IT_VENDOR_MASTER-REPRF = 'X'.
ENDIF.
IF WA_IT_VENDOR_MASTER-XPORE = 'Y'.
WA_IT_VENDOR_MASTER-XPORE = 'X'.
ENDIF.
if wa_it_vendor_master-flag = 'A'.
PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0105',
BDC_FIELD USING 'RF02K-LIFNR' WA_IT_VENDOR_MASTER-LIFNR,
BDC_FIELD USING 'RF02K-BUKRS' WA_IT_VENDOR_MASTER-BUKRS,
BDC_FIELD USING 'RF02K-KTOKK' WA_IT_VENDOR_MASTER-KTOKK,
BDC_FIELD USING 'BDC_OKCODE' '/00'.
elseif wa_it_vendor_master-flag = 'C'.
PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0106',
BDC_FIELD USING 'RF02K-LIFNR' WA_IT_VENDOR_MASTER-LIFNR,
BDC_FIELD USING 'RF02K-BUKRS' WA_IT_VENDOR_MASTER-BUKRS,
BDC_FIELD USING 'BDC_OKCODE' '=MALL',
BDC_DYNPRO USING 'SAPMF02K' '0106',
BDC_FIELD USING 'RF02K-D0110' 'X',
BDC_FIELD USING 'RF02K-D0120' 'X',
BDC_FIELD USING 'RF02K-D0130' 'X',
BDC_FIELD USING 'RF02K-D0210' 'X',
BDC_FIELD USING 'RF02K-D0215' 'X',
BDC_FIELD USING 'RF02K-D0220' 'X',
BDC_FIELD USING 'BDC_OKCODE' '/00'.
endif.
perform :BDC_DYNPRO USING 'SAPMF02K' '0110',
BDC_FIELD USING 'LFA1-ANRED' WA_IT_VENDOR_MASTER-ANRED,
BDC_FIELD USING 'LFA1-NAME1' WA_IT_VENDOR_MASTER-NAME1,
BDC_FIELD USING 'LFA1-NAME2' WA_IT_VENDOR_MASTER-NAME2,
BDC_FIELD USING 'LFA1-SORTL' WA_IT_VENDOR_MASTER-SORTL,
BDC_FIELD USING 'LFA1-STRAS' WA_IT_VENDOR_MASTER-STRAS,
BDC_FIELD USING 'LFA1-ORT01' WA_IT_VENDOR_MASTER-ORT01,
BDC_FIELD USING 'LFA1-PSTLZ' WA_IT_VENDOR_MASTER-PSTLZ,
BDC_FIELD USING 'LFA1-LAND1' WA_IT_VENDOR_MASTER-LAND1,
BDC_FIELD USING 'LFA1-REGIO' WA_IT_VENDOR_MASTER-REGIO,
BDC_FIELD USING 'LFA1-SPRAS' WA_IT_VENDOR_MASTER-SPRAS,
BDC_FIELD USING 'BDC_OKCODE' '/00',
BDC_DYNPRO USING 'SAPMF02K' '0120',
BDC_FIELD USING 'LFA1-VBUND' WA_IT_VENDOR_MASTER-VBUND,
BDC_FIELD USING 'BDC_OKCODE' '/00',
BDC_DYNPRO USING 'SAPMF02K' '0130',
BDC_FIELD USING 'LFBK-BANKS(01)' WA_IT_VENDOR_MASTER-BANKS,
BDC_FIELD USING 'LFBK-BANKL(01)' WA_IT_VENDOR_MASTER-BANKL,
BDC_FIELD USING 'LFBK-BANKN(01)' WA_IT_VENDOR_MASTER-BANKN,
BDC_FIELD USING 'BDC_OKCODE' '=BANK',
BDC_DYNPRO USING 'SAPLBANK' '0100',
BDC_FIELD USING 'BNKA-BANKA' WA_IT_VENDOR_MASTER-BANKA,
BDC_FIELD USING 'BDC_OKCODE' '=ENTR',
BDC_DYNPRO USING 'SAPMF02K' '0130',
BDC_FIELD USING 'BDC_OKCODE' '=ENTR',
BDC_DYNPRO USING 'SAPMF02K' '0210',
BDC_FIELD USING 'LFB1-AKONT' WA_IT_VENDOR_MASTER-AKONT,
BDC_FIELD USING 'LFB1-FDGRV' WA_IT_VENDOR_MASTER-FDGRV,
BDC_FIELD USING 'BDC_OKCODE' '=/00',
BDC_DYNPRO USING 'SAPMF02K' '0215',
BDC_FIELD USING 'LFB1-ZTERM' WA_IT_VENDOR_MASTER-ZTERM,
BDC_FIELD USING 'LFB1-REPRF' WA_IT_VENDOR_MASTER-REPRF,
BDC_FIELD USING 'LFB1-ZWELS' WA_IT_VENDOR_MASTER-ZWELS,
BDC_FIELD USING 'LFB1-XPORE' WA_IT_VENDOR_MASTER-XPORE,
BDC_FIELD USING 'BDC_OKCODE' '=UPDA'.
ENDFORM. " POPULATE_BDC_DATA_VEN_MASTER
*& Form BDC_DYNPRO
This form is used to move data to BDCDATA int'table
FORM BDC_DYNPRO USING PROGRAM TYPE BDC_PROG
DYNPRO TYPE BDC_DYNR.
CLEAR WA_IT_BDCDATA.
WA_IT_BDCDATA-PROGRAM = PROGRAM.
WA_IT_BDCDATA-DYNPRO = DYNPRO.
WA_IT_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_IT_BDCDATA TO IT_BDCDATA.
ENDFORM. " BDC_DYNPRO
*& Form BDC_FIELD
This form is used to move data to BDCDATA int'table
FORM BDC_FIELD USING FNAM TYPE ANY
FVAL TYPE ANY.
CLEAR WA_IT_BDCDATA.
WA_IT_BDCDATA-FNAM = FNAM.
WA_IT_BDCDATA-FVAL = FVAL.
APPEND WA_IT_BDCDATA TO IT_BDCDATA.
ENDFORM. " BDC_FIELD
*& Form CALL_TRANSACTION
This form is used to Call FK01 for processing of data either for
Vendor Master or Vendor Extend. The error records are inserted to
Session which can be processed using SM35
FORM CALL_TRANSACTION .
DATA : L_OPTION TYPE CTU_PARAMS,
L_SUBRC TYPE SYSUBRC.
REFRESH IT_MESSTAB.
CLEAR IT_MESSTAB.
L_OPTION-DEFSIZE = 'X'.
L_OPTION-DISMODE = P_MODE.
L_OPTION-UPDMODE = 'S'.
CALL TRANSACTION 'FK01'
USING IT_BDCDATA
MESSAGES INTO IT_MESSTAB
OPTIONS FROM L_OPTION.
L_SUBRC = SY-SUBRC.
IF L_SUBRC = 0.
W_SUCC_REC = W_SUCC_REC + 1.
ELSE.
IF FL_FLAG2 NE 'X'.
PERFORM OPEN_BDC_SESSION.
FL_FLAG2 = 'X'.
ENDIF.
PERFORM BDC_INSERT.
W_ERR_REC = W_ERR_REC + 1.
PERFORM ERROR_RECORD_DATA.
ENDIF.
ENDFORM. " CALL_TRANSACTION
*& Form OPEN_BDC_SESSION
Form used to open session for Error out Records
FORM OPEN_BDC_SESSION .
DATA : L_USERID TYPE APQ_MAPN, " Variable to hold user-id
L_GROUP TYPE APQ_GRPN. " Variable to hold value
MOVE P_GROUP TO L_GROUP.
MOVE SY-UNAME TO L_USERID.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = L_GROUP
KEEP = SPACE
USER = L_USERID
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
IF SY-SUBRC <> 0.
WRITE:/ TEXT-008. " Unable to open BDC Session
ENDIF.
ENDFORM. " OPEN_BDC_SESSION
*& Form BDC_INSERT
This form is used to insert error records to a Session method
FORM BDC_INSERT .
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'FK01'
TABLES
DYNPROTAB = IT_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
WRITE:/ TEXT-009. " Unable to Insert Data to BDC Session
ENDIF.
ENDFORM. " BDC_INSERT
*& Form ERROR_RECORD_DATA
This form is used to process the messages for the error records which
will be displayed on the output report
FORM ERROR_RECORD_DATA .
DATA : L_LINES TYPE I,
L_MSG(200) TYPE C.
DESCRIBE TABLE IT_MESSTAB LINES L_LINES.
READ TABLE IT_MESSTAB INTO WA_IT_MESSTAB INDEX L_LINES.
IF SY-SUBRC = 0.
CLEAR L_MSG.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = WA_IT_MESSTAB-MSGID
LANG = SY-LANGU
NO = WA_IT_MESSTAB-MSGNR
V1 = WA_IT_MESSTAB-MSGV1
V2 = WA_IT_MESSTAB-MSGV2
V3 = WA_IT_MESSTAB-MSGV3
V4 = WA_IT_MESSTAB-MSGV4
IMPORTING
MSG = L_MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 0.
WA_IT_ERROR_fk01-MSG = L_MSG.
ENDIF.
IF P_VENMAS = 'X'.
WA_IT_ERROR_fk01-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
WA_IT_ERROR_fk01-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
ELSEIF P_VENEXT = 'X'.
WA_IT_ERROR_fk01-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
WA_IT_ERROR_fk01-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
ENDIF.
APPEND WA_IT_ERROR_fk01 TO IT_ERROR_fk01.
CLEAR WA_IT_ERROR_fk01.
ENDIF.
ENDFORM. " ERROR_RECORD_DATA
*& Form CLOSE_BDC_SESSION
Form used to close session of the Error Records
FORM CLOSE_BDC_SESSION .
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
WRITE:/ TEXT-010. " Unable to Close BDC Session
ENDIF.
ENDFORM. " CLOSE_BDC_SESSION
*& Form CHK_AND_INS_VENDOR_EXTEND_DATA
This form is used to process BDC data for Vendor Extend
FORM CHK_AND_INS_VENDOR_EXTEND_DATA .
DATA : L_LIFNR TYPE LIFNR.
CLEAR : L_LIFNR, fl_flag4.
sort it_vendor_extend by flag.
LOOP AT IT_VENDOR_EXTEND INTO WA_IT_VENDOR_EXTEND.
W_COUNT = W_COUNT + 1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_IT_VENDOR_EXTEND-REF_LIFNR
IMPORTING
OUTPUT = WA_IT_VENDOR_EXTEND-REF_LIFNR.
if wa_it_vendor_extend-flag = 'A'.
SELECT SINGLE LIFNR
FROM LFB1
INTO L_LIFNR
WHERE LIFNR = WA_IT_VENDOR_EXTEND-REF_LIFNR
AND BUKRS = WA_IT_VENDOR_EXTEND-REF_BUKRS.
IF SY-SUBRC NE 0.
WA_IT_ERROR-LIFNR = WA_IT_VENDOR_EXTEND-REF_LIFNR.
WA_IT_ERROR-BUKRS = WA_IT_VENDOR_EXTEND-REF_BUKRS.
WA_IT_ERROR-MSG = TEXT-007.
APPEND WA_IT_ERROR TO IT_ERROR.
W_ERR_REC = W_ERR_REC + 1.
CLEAR : WA_IT_ERROR, L_LIFNR.
ELSE.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_IT_VENDOR_EXTEND-LIFNR
IMPORTING
OUTPUT = WA_IT_VENDOR_EXTEND-LIFNR.
SELECT SINGLE LIFNR
FROM LFB1
INTO L_LIFNR
WHERE LIFNR = WA_IT_VENDOR_EXTEND-LIFNR
AND BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
IF SY-SUBRC EQ 0.
WA_IT_ERROR-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
WA_IT_ERROR-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
WA_IT_ERROR-MSG = TEXT-015.
APPEND WA_IT_ERROR TO IT_ERROR.
W_ERR_REC = W_ERR_REC + 1.
CLEAR : WA_IT_ERROR, L_LIFNR.
ELSE.
REFRESH IT_BDCDATA.
CLEAR IT_BDCDATA.
PERFORM POPULATE_BDC_DATA_VEN_EXTEND.
PERFORM CALL_TRANSACTION.
ENDIF.
ENDIF.
CLEAR : WA_IT_VENDOR_EXTEND.
elseif wa_it_vendor_extend-flag = 'C'.
IF FL_FLAG2 = 'X' and fl_flag4 ne 'X'.
PERFORM CLOSE_BDC_SESSION.
fl_flag4 = 'X'.
ENDIF.
REFRESH IT_BDCDATA.
CLEAR IT_BDCDATA.
PERFORM POPULATE_BDC_DATA_VEN_extend.
PERFORM CALL_TRANSACTION_FK02.
CLEAR : WA_IT_VENDOR_EXTEND.
elseif wa_it_vendor_extend-flag = 'N'.
WA_IT_noupdate-LIFNR = WA_IT_VENDOR_extend-LIFNR.
WA_IT_noupdate-BUKRS = WA_IT_VENDOR_extend-BUKRS.
WA_IT_noupdate-MSG = TEXT-019.
APPEND WA_IT_noupdate TO IT_noupdate.
W_noupdate_REC = W_noupdate_REC + 1.
CLEAR : WA_IT_noupdate, WA_IT_VENDOR_EXTEND.
endif.
ENDLOOP.
IF FL_FLAG2 = 'X'.
PERFORM CLOSE_BDC_SESSION.
ENDIF.
if fl_flag3 = 'X'.
PERFORM CLOSE_BDC_SESSION.
ENDIF.
ENDFORM. " CHK_AND_INS_VENDOR_EXTEND_DATA
*& Form POPULATE_BDC_DATA_VEN_EXTEND
This form is used to populate BDC data of Vendor Extend
FORM POPULATE_BDC_DATA_VEN_EXTEND .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_IT_VENDOR_EXTEND-ZTERM
IMPORTING
OUTPUT = WA_IT_VENDOR_EXTEND-ZTERM.
IF WA_IT_VENDOR_EXTEND-REPRF = 'Y'.
WA_IT_VENDOR_EXTEND-REPRF = 'X'.
ENDIF.
IF WA_IT_VENDOR_extend-XPORE = 'Y'.
WA_IT_VENDOR_extend-XPORE = 'X'.
ENDIF.
if wa_it_vendor_extend-flag = 'A'.
PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0105',
BDC_FIELD USING 'RF02K-LIFNR' WA_IT_VENDOR_EXTEND-LIFNR,
BDC_FIELD USING 'RF02K-BUKRS' WA_IT_VENDOR_EXTEND-BUKRS,
BDC_FIELD USING 'RF02K-KTOKK' WA_IT_VENDOR_EXTEND-KTOKK,
BDC_FIELD USING 'RF02K-REF_LIFNR'
WA_IT_VENDOR_EXTEND-REF_LIFNR,
BDC_FIELD USING 'RF02K-REF_BUKRS'
WA_IT_VENDOR_EXTEND-REF_BUKRS,
BDC_FIELD USING 'BDC_OKCODE' '/00'.
elseif wa_it_vendor_extend-flag = 'C'.
PERFORM :BDC_DYNPRO USING 'SAPMF02K' '0106',
BDC_FIELD USING 'RF02K-LIFNR' WA_IT_VENDOR_extend-LIFNR,
BDC_FIELD USING 'RF02K-BUKRS' WA_IT_VENDOR_extend-BUKRS,
BDC_FIELD USING 'RF02K-D0210' 'X',
BDC_FIELD USING 'RF02K-D0215' 'X',
BDC_FIELD USING 'BDC_OKCODE' '/00'.
endif.
perform :BDC_DYNPRO USING 'SAPMF02K' '0210',
BDC_FIELD USING 'LFB1-AKONT' WA_IT_VENDOR_EXTEND-AKONT,
BDC_FIELD USING 'LFB1-FDGRV' WA_IT_VENDOR_EXTEND-FDGRV,
BDC_FIELD USING 'BDC_OKCODE' '=/00',
BDC_DYNPRO USING 'SAPMF02K' '0215',
BDC_FIELD USING 'LFB1-ZTERM' WA_IT_VENDOR_EXTEND-ZTERM,
BDC_FIELD USING 'LFB1-REPRF' WA_IT_VENDOR_EXTEND-REPRF,
BDC_FIELD USING 'LFB1-ZWELS' WA_IT_VENDOR_EXTEND-ZWELS,
BDC_FIELD USING 'LFB1-XPORE' WA_IT_VENDOR_extend-XPORE,
BDC_FIELD USING 'BDC_OKCODE' '=UPDA'.
ENDFORM. " POPULATE_BDC_DATA_VEN_EXTEND
*& Form DISPLAY_ERROR_REPORT
This form is used to display the error records on the output screen
FORM DISPLAY_ERROR_REPORT .
IF P_VENMAS = 'X'.
WRITE:/ TEXT-O05. " Error List for Vendor Master
ELSEIF P_VENEXT = 'X'.
WRITE:/ TEXT-O06. " Error List for Vendor Master Extended
ENDIF.
WRITE:/ SY-ULINE(100).
FORMAT COLOR 1.
WRITE:/1 SY-VLINE,
2 TEXT-H01, " Vendor Number
17 SY-VLINE,
18 TEXT-H02, " Company Code
31 SY-VLINE,
32 TEXT-H03, " Error Message
100 SY-VLINE.
FORMAT COLOR OFF.
WRITE:/ SY-ULINE(100).
LOOP AT IT_ERROR INTO WA_IT_ERROR.
FORMAT COLOR 2.
WRITE:/1 SY-VLINE,
2 WA_IT_ERROR-LIFNR,
17 SY-VLINE,
18 WA_IT_ERROR-BUKRS,
31 SY-VLINE,
32 WA_IT_ERROR-MSG,
100 SY-VLINE.
CLEAR : WA_IT_ERROR.
FORMAT COLOR OFF.
ENDLOOP.
WRITE:/ SY-ULINE(100).
ENDFORM. " DISPLAY_ERROR_REPORT
*& Form CALL_TRANSACTION_FK02
Form used to Call Transaction FK02
form CALL_TRANSACTION_FK02 .
DATA : L_OPTION TYPE CTU_PARAMS,
L_SUBRC TYPE SYSUBRC.
REFRESH IT_MESSTAB.
CLEAR IT_MESSTAB.
L_OPTION-DEFSIZE = 'X'.
L_OPTION-DISMODE = P_MODE.
L_OPTION-UPDMODE = 'S'.
CALL TRANSACTION 'FK02'
USING IT_BDCDATA
MESSAGES INTO IT_MESSTAB
OPTIONS FROM L_OPTION.
L_SUBRC = SY-SUBRC.
IF L_SUBRC = 0.
W_SUCC_REC1 = W_SUCC_REC1 + 1.
WA_IT_succ_rec1-MSG = Text-017.
IF P_VENMAS = 'X'.
WA_IT_succ_rec1-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
WA_IT_succ_rec1-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
ELSEIF P_VENEXT = 'X'.
WA_IT_succ_rec1-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
WA_IT_succ_rec1-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
ENDIF.
APPEND WA_IT_succ_rec1 TO IT_succ_rec1.
ELSE.
IF FL_FLAG3 NE 'X'.
PERFORM OPEN_BDC_SESSION_fk02.
FL_FLAG3 = 'X'.
ENDIF.
PERFORM BDC_INSERT_fk02.
W_ERR_REC = W_ERR_REC + 1.
PERFORM ERROR_RECORD_DATA1.
ENDIF.
endform. " CALL_TRANSACTION_FK02
*& Form OPEN_BDC_SESSION_fk02
Form used to Open session for FK02
form OPEN_BDC_SESSION_fk02 .
DATA : L_USERID TYPE APQ_MAPN, " Variable to hold user-id
L_GROUP TYPE APQ_GRPN. " Variable to hold value
MOVE P_GROUP1 TO L_GROUP.
MOVE SY-UNAME TO L_USERID.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = L_GROUP
KEEP = SPACE
USER = L_USERID
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
IF SY-SUBRC <> 0.
WRITE:/ TEXT-008. " Unable to open BDC Session
ENDIF.
endform. " OPEN_BDC_SESSION_fk02
*& Form BDC_INSERT_fk02
Form used to insert data into BDC session using FK02
form BDC_INSERT_fk02 .
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'FK02'
TABLES
DYNPROTAB = IT_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
WRITE:/ TEXT-009. " Unable to Insert Data to BDC Session
ENDIF.
endform. " BDC_INSERT_fk02
*& Form display_changed_report
Form to display Updated Vendor data
form display_changed_report .
IF P_VENMAS = 'X'.
WRITE:/ TEXT-O10. " Updated List for Vendor Master
ELSEIF P_VENEXT = 'X'.
WRITE:/ TEXT-O11. " Updated List for Vendor Master Extended
ENDIF.
WRITE:/ SY-ULINE(100).
FORMAT COLOR 1.
WRITE:/1 SY-VLINE,
2 TEXT-H01, " Vendor Number
17 SY-VLINE,
18 TEXT-H02, " Company Code
31 SY-VLINE,
32 TEXT-H04, " Message
100 SY-VLINE.
FORMAT COLOR OFF.
WRITE:/ SY-ULINE(100).
LOOP AT IT_succ_rec1 INTO WA_IT_succ_rec1.
FORMAT COLOR 2.
WRITE:/1 SY-VLINE,
2 WA_IT_succ_rec1-LIFNR,
17 SY-VLINE,
18 WA_IT_succ_rec1-BUKRS,
31 SY-VLINE,
32 WA_IT_succ_rec1-MSG,
100 SY-VLINE.
CLEAR : WA_IT_succ_rec1.
FORMAT COLOR OFF.
ENDLOOP.
WRITE:/ SY-ULINE(100).
endform. " display_changed_report
*& Form display_nochange_report
Form to display No Changed data for Vendors
form display_nochange_report .
IF P_VENMAS = 'X'.
WRITE:/ TEXT-O12. " No Changes List for Vendor Master
ELSEIF P_VENEXT = 'X'.
WRITE:/ TEXT-O13. " No Changes List for Vendor Master Extended
ENDIF.
WRITE:/ SY-ULINE(100).
FORMAT COLOR 1.
WRITE:/1 SY-VLINE,
2 TEXT-H01, " Vendor Number
17 SY-VLINE,
18 TEXT-H02, " Company Code
31 SY-VLINE,
32 TEXT-H04, " Message
100 SY-VLINE.
FORMAT COLOR OFF.
WRITE:/ SY-ULINE(100).
LOOP AT IT_noupdate INTO WA_IT_noupdate.
FORMAT COLOR 2.
WRITE:/1 SY-VLINE,
2 WA_IT_noupdate-LIFNR,
17 SY-VLINE,
18 WA_IT_noupdate-BUKRS,
31 SY-VLINE,
32 WA_IT_noupdate-MSG,
100 SY-VLINE.
CLEAR : WA_IT_noupdate.
FORMAT COLOR OFF.
ENDLOOP.
WRITE:/ SY-ULINE(100).
endform. " display_nochange_report
*& Form ERROR_RECORD_DATA1
Form to get Error Message for Changed Vendors
form ERROR_RECORD_DATA1 .
DATA : L_LINES TYPE I,
L_MSG(200) TYPE C.
DESCRIBE TABLE IT_MESSTAB LINES L_LINES.
READ TABLE IT_MESSTAB INTO WA_IT_MESSTAB INDEX L_LINES.
IF SY-SUBRC = 0.
CLEAR L_MSG.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = WA_IT_MESSTAB-MSGID
LANG = SY-LANGU
NO = WA_IT_MESSTAB-MSGNR
V1 = WA_IT_MESSTAB-MSGV1
V2 = WA_IT_MESSTAB-MSGV2
V3 = WA_IT_MESSTAB-MSGV3
V4 = WA_IT_MESSTAB-MSGV4
IMPORTING
MSG = L_MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 0.
WA_IT_ERROR_fk02-MSG = L_MSG.
ENDIF.
IF P_VENMAS = 'X'.
WA_IT_ERROR_fk02-LIFNR = WA_IT_VENDOR_MASTER-LIFNR.
WA_IT_ERROR_fk02-BUKRS = WA_IT_VENDOR_MASTER-BUKRS.
ELSEIF P_VENEXT = 'X'.
WA_IT_ERROR_fk02-LIFNR = WA_IT_VENDOR_EXTEND-LIFNR.
WA_IT_ERROR_fk02-BUKRS = WA_IT_VENDOR_EXTEND-BUKRS.
ENDIF.
APPEND WA_IT_ERROR_fk02 TO IT_ERROR_fk02.
CLEAR WA_IT_ERROR_fk02.
ENDIF.
endform. " ERROR_RECORD_DATA1
*& Form display_error_report_fk01
Form to display Error Report for Master Vendors (FK01)
form display_error_report_fk01 .
IF P_VENMAS = 'X'.
WRITE:/ TEXT-O05. " Error List for Vendor Master (FK01)
ELSEIF P_VENEXT = 'X'.
WRITE:/ TEXT-O06. " Error List for Vendor Master Extended (FK01)
ENDIF.
WRITE:/ SY-ULINE(100).
FORMAT COLOR 1.
WRITE:/1 SY-VLINE,
2 TEXT-H01, " Vendor Number
17 SY-VLINE,
18 TEXT-H02, " Company Code
31 SY-VLINE,
32 TEXT-H04, " Message
100 SY-VLINE.
FORMAT COLOR OFF.
WRITE:/ SY-ULINE(100).
LOOP AT IT_ERROR_fk01 INTO WA_IT_ERROR_fk01.
FORMAT COLOR 2.
WRITE:/1 SY-VLINE,
2 WA_IT_ERROR_fk01-LIFNR,
17 SY-VLINE,
18 WA_IT_ERROR_fk01-BUKRS,
31 SY-VLINE,
32 WA_IT_ERROR_fk01-MSG,
100 SY-VLINE.
CLEAR : WA_IT_ERROR_fk01.
FORMAT COLOR OFF.
ENDLOOP.
WRITE:/ SY-ULINE(100).
endform. " display_error_report_fk01
*& Form display_error_report_fk02
Form to display Error Report for changed Vendors (FK02)
form display_error_report_fk02 .
IF P_VENMAS = 'X'.
WRITE:/ TEXT-O14. " Error List for Vendor Master (FK02)
ELSEIF P_VENEXT = 'X'.
WRITE:/ TEXT-O15. " Error List for Vendor Master Extended (FK02)
ENDIF.
WRITE:/ SY-ULINE(100).
FORMAT COLOR 1.
WRITE:/1 SY-VLINE,
2 TEXT-H01, " Vendor Number -
Report for Customer and Material list
Dear Experts,
Is there any Std. reprot to list all customers under particular sales org and also the material for each customer deals with.
Input only sales org.
Please advise,
Regards,
Sivahi,
Go for MCTA report ....anter the sales org as the criteria and get the out put .
You need to drill down til last to get the material list.
hope this will help you !!
Rgards,
Krishna O -
Hi,
I have a scenario wherein in a sales order, for two different material, the tax base of pricing should get triggered on the basis of sold to party and the material entered at line item level.
Logic triggers on the basis of Region of Customer & a unique field in the Material Master but problem comes in the calculation of Tax base as the sequence of condition type (from – to) is already defined in the pricing procedure to pick from a particular step but in second line item the base is different i.e. the sequence of condition types that are maintained in pricing procedure should be different for Tax to calculate differently.
Kindly suggest if the same can be handled in a single pricing procedure and dynamically taking care of condition type sequence through Alt Cal Base Formula, so far I’ve tried both Alt Cal Formula & Base but it is not working
Client doesn’t want to go ahead by creating two different orders (through separate Pricing Procedure) for that. They want to have both materials in same order.
Kindly suggest a suitable way to handle this scenario.
Regards,
Aashika AgarwalHi,
Click on the ''check availability'' button at item overview and then click on ''One-time delivery'' on the top. This will ensure that you will have only one delivery for whatever quantity is confirmed on that date.
If you want to apply this rule for all orders across a sales area, then you can do the below configuration step :
SPRO->sales and distribution->basic functions->availability check with ATP logic->Define default settings-> Here in avail. checking rule select A (one time delivery). This will ensure that all orders created for a particular sales area will have only one delivery.
Hope this helps.
Regards,
Palani
Maybe you are looking for
-
Apple TV and iTunes problem - Different Twist
I, too, can no longer get Apple TVs to show up in my iTunes device list. It DID work until last week when I downloaded two movies. They ATVs (three of them) got stuck in syncing, and were still "syncing" four days later. I quit the app, restarted it,
-
Can I sync many iPods with one account on many computers?
My company has purchased iTouch's for each of our departments and we're loading iPharmacist onto them. 1. Can I create one generic iTunes account (e.g. [email protected]) for all the iTouch's to use? 2. If these iTouch's are set up by connecting them
-
Opening new file full screen pshop cs4
Hello an happy new year to all I am new here and french....Please fogive any mistake following.... I am working under Windos XP pro with Radeon X1950 pro and two screens 22" My two problems : 1 - Opening a New file: When I open a new file, I cannot o
-
Arch Linux: The Simple, Flexible (and Fast!) Distro http://www.linux-mag.com/cache/7469/1.html. Good review.
-
Can I connect open source evolution mail client to an OCS Mail Server?
Hi. I'm trying to configure an evolution mail client to connect to OCS Mail Server. The idea would be to evaluate this solution over costly MS Outlook. I'm aware that Oracle provides a connector for outlook client and that this facility might offer c