2007 Dec 21 7:35 AM
Hi All,
The below code is basically selecting the fixed vendor as per EORD table for a given material - plant combination. But the issue is for this combination, there can be different fixed vendors but during different times
eg:
Mtl - A, Plant - 1000
Fixed vendor: Vendor1, From 1.1.2000 To 31.12.2003
Fixed vendor: Vendor2, From 1.1.2004 To 31.12.2007
Fixed vendor: Vendor3, From 1.1.2008 To 31.12.2010
So i want to add one more condition, which reads the system date & if the system date lies in-between 1.1.2000 to 31.12.2003, it selects vendor 1 or if the system date lies in between 1.1.2004 to 31.12.2007, then select vendor 2.
So how can i add this condition? The valid from field is EORD-VDATU & the valid to field is EORD-BDATU
Code:
CLEAR: Y_LIFNR, Y_FLIFN, WL_MATNR.
SELECT SINGLE LIFNR FLIFN MATNR FROM EORD INTO (Y_LIFNR, Y_FLIFN,
WL_MATNR)
WHERE MATNR EQ MARC-MATNR
AND WERKS EQ MARC-WERKS
AND FLIFN NE ' '.
Hope my question is clear, await inputs
Vivek
2007 Dec 21 7:40 AM
Hello Vivek,
WL_MATNR)
WHERE MATNR EQ MARC-MATNR
AND WERKS EQ MARC-WERKS
AND FLIFN NE ' '
AND VDATU LE SYST-DATUM
AND BDATU GE SYST-DATUM.
Regards,
John.
Hello Vivek,
WL_MATNR)
WHERE MATNR EQ MARC-MATNR
AND WERKS EQ MARC-WERKS
AND FLIFN NE ' '
AND VDATU LE SYST-DATUM
AND BDATU GE SYST-DATUM.
Regards,
John.
2007 Dec 21 7:40 AM
Hello Vivek,
WL_MATNR)
WHERE MATNR EQ MARC-MATNR
AND WERKS EQ MARC-WERKS
AND FLIFN NE ' '
AND VDATU LE SYST-DATUM
AND BDATU GE SYST-DATUM.
Regards,
John.
2007 Dec 21 7:56 AM
Mr. John,
Thank you very much for that simple solution. Thanks to the rest for providing different alternatives. Keep the good work going.
Regards,
Vivek
2007 Dec 21 7:46 AM
hi Vivek looks like it cant be done in one select
SELECT SINGLE LIFNR FLIFN MATNR VDATU BDATU
FROM EORD INTO (Y_LIFNR, Y_FLIFN,
WL_MATNR , y _VDATU , y _BDATU)
WHERE MATNR EQ MARC-MATNR
AND WERKS EQ MARC-WERKS
AND FLIFN NE ' '.
if sy-datum ge y _VDATU and sy-datum LE y _BDATU.
select single vendor where dates are eq to ur y_*'s
endif.
same with other conditions as well.
hope this works.. award points if useful
2007 Dec 21 7:48 AM
Hi,
Check the below logic:
if sy-datum >= 1.1.2000 and sy-datum <= 31.12.2003.
vendor = vendor1.
elseif sy-datum >= 1.1.2004 and sy-datum <= 31.12.2007.
vendor = vendor2.
elseif sy-datum >= 1.1.2008 and sy-datum <= 31.12.2010.
vendor = vendor3.
endif.
CLEAR: Y_LIFNR, Y_FLIFN, WL_MATNR.
SELECT SINGLE LIFNR FLIFN MATNR FROM EORD INTO (Y_LIFNR, Y_FLIFN,
WL_MATNR)
WHERE MATNR EQ MARC-MATNR
AND WERKS EQ MARC-WERKS
AND FLIFN NE ' '.
and lifnr = vendor
AND VDATU >= SY-DATUM
AND BDATU <= sy-datum .
2007 Dec 21 7:49 AM
data: begin of it_mara occurs 0,
LIFNR TYPE LIFNR,
FLIFN TYPE FLIFN,
MATNR TYPE MATNR,
VDATU TYPE sy-datum,
bdatu type sy-datum,
end of it_mara.
SELECT LIFNR
FLIFN
MATNR
VDATU
BDATU
FROM EORD
into corresponding field of table it_mara
WHERE MATNR EQ MARC-MATNR
AND WERKS EQ MARC-WERKS
AND FLIFN NE ' '.
DELETE it_mara
where vdatu < sy-datum
and bdatu > sy-datum.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |