2007 Aug 06 3:47 PM
I created below function module, which is having below import parameters and tables:
FUNCTION ztest_func.
*"----
""Local interface:
*" IMPORTING
*" VALUE(S_LFDAT1) LIKE LIKP-LFDAT
*" VALUE(S_LFDAT2) LIKE LIKP-LFDAT OPTIONAL
*" VALUE(RAIL_ROAD) TYPE CHECKBOX
*" TABLES
*" IT_FINAL STRUCTURE ZTLC_SAL
*"----
data: it_cond type n,
loop_index like sy-tabix .
select zdelv~vkorg
zdelv~vbeln
zdelv~lfart
zdelv~lfdat
zdelv~wadat
zdelv~vtweg
zdelv~spart
zdelv~vkbur
zdelv~vkgrp
zdelv~kunnr
zdelv~vsbed
zdelv~ntgew
zdelv~route
zdelv~lgort
zdelv~inco1
zdelv~matnr
zdelv~mvgr1
zdelv~vsart
zdelv~rwerks
zdelv~dwerks
into corresponding fields of table IT_FRGT
From zdelv WHERE zdelv~wadat = s_lfdat1 " and s_lfdat2
AND zdelv~lfart IN ('ZGDP','ZGRR','ZRLF','ZGLF').
if Sy-subrc = 0.
Sort it_frgt
by vbeln dwerks lgort route kunnr regio vkbur vkgrp bran1 cityc.
Delete adjacent duplicates from it_frgt
Comparing vbeln dwerks lgort route kunnr
regio vkbur vkgrp bran1 Cityc.
Loop_index = 1.
Loop at it_frgt." to wa_frgt.
*select kunnr regio from kna1 into kna1 where kunnr = it_frgt-kunnr.
*select bland from t005u into corresponding fields of table it_regio where Bland = kna1-regio.
*endselect.
IF RAIL_ROAD = 'I'.
IF IT_FRGT-VSBED <> '04'.
DELETE IT_FRGT.
clear it_frgt.
CONTINUE.
ENDIF.
ENDIF.
IF RAIL_ROAD = 'R'.
IF IT_FRGT-VSBED = '04'.
DELETE IT_FRGT.
clear it_frgt.
CONTINUE.
endif.
endif.
clear wa_frgt.
select single lifnr from vbpa into vbpa
where vbeln eq it_frgt-vbeln and
parvw eq 'ZD'.
move-corresponding it_frgt to wa_frgt.
move vbpa-lifnr to wa_frgt-lifnr.
If wa_frgt-lfart eq 'ZGND' OR
wa_frgt-lfart eq 'ZGNL' OR
wa_frgt-lfart eq 'ZGNS'.
wa_frgt-LVTEXT = 'STA'.
if wa_frgt-lfart eq 'ZGNS'.
delete it_frgt.
continue.
endif.
select mseg~werks
mseg~lgort
into (wa_frgt-rwerks,wa_frgt-rlgort)
from vbfa join mseg
on mseg~mblnr = vbfa~vbeln
where vbfa~vbelv eq wa_frgt-vbeln and
vbfa~vbtyp_n = 'i'.
Endselect.
wa_frgt-netwr = 0.
if wa_frgt-netwr = 0.
select single regio region plant lgobe cityc from zsta
into corresponding fields of it_zfrgt
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg
and kunnr = it_frgt-kunnr.
if sy-subrc <> 0.
select single regio region plant lgobe cityc from zsta into corresponding fields of it_zfrgt
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg.
select single cityc from kna1 into wa_frgt-cityc
where kunnr = wa_frgt-kunnr.
it_zfrgt-cityc = wa_frgt-cityc.
endif.
select single regio region plant lgobe cityc from zsta into corresponding fields of it_zfrgt1
where werks = it_frgt-rwerks
and lgort = it_frgt-rlgort
and vkorg = it_frgt-vkorg
and kunnr = it_frgt-kunnr.
if sy-subrc <> 0.
select single regio region plant lgobe cityc from zsta into corresponding fields of it_zfrgt1
where werks = it_frgt-rwerks
and lgort = it_frgt-rlgort
and vkorg = it_frgt-vkorg.
endif.
else.
select single regio region plant lgobe cityc from zsta into corresponding fields of it_zfrgt
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg.
endif.
else.
select single * from zsta into it_zfrgt
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg.
endif.
wa_frgt-regio = it_zfrgt-regio.
wa_frgt-region = it_zfrgt-region.
wa_frgt-plant = it_zfrgt-plant.
wa_frgt-lgobe = it_zfrgt-lgobe.
wa_frgt-cityc = it_zfrgt-cityc.
wa_frgt-soffice = it_zfrgt1-Plant.
STA *
endif.
if wa_frgt-lfart eq 'ZGDP' OR
wa_frgt-lfart eq 'ZGDR' OR
wa_frgt-lfart eq 'ZGRR' OR
wa_frgt-lfart eq 'ZRLF' OR
wa_frgt-lfart eq 'ZGLF' OR
wa_frgt-lfart eq 'ZGLR' .
if wa_frgt-lfart eq 'ZGLR'.
delete it_frgt.
continue.
endif.
if wa_frgt-lfart eq 'ZGDR'.
delete it_frgt.
continue.
endif.
select single WBSTK from LIKPUK into Likpuk-wbstk
where vbeln = wa_frgt-vbeln.
if sy-subrc = 0.
if likpuk-wbstk <> 'C'.
delete it_frgt.
clear wa_frgt.
continue.
endif.
endif.
wa_frgt-LVTEXT = 'SALES'.
wa_frgt-netwr = 0.
if wa_frgt-netwr = 0.
Select single * from ZFRGT into it_zfrgt2
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg
and kunnr = it_frgt-kunnr.
if sy-subrc <> 0.
clear it_zfrgt2.
Select single * from ZFRGT into it_zfrgt2
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg.
if sy-subrc <> 0.
select single * from t001w
where werks = it_frgt-dwerks.
if sy-subrc = 0.
wa_frgt-plant = t001w-name1.
select single * from t001l
where werks = it_frgt-Dwerks and
lgort = it_frgt-lgort.
if sy-subrc = 0.
wa_frgt-lgobe = t001l-lgobe.
endif.
it_zfrgt2-lgobe = wa_frgt-lgobe.
it_zfrgt2-plant = wa_frgt-plant.
endif.
Endif.
Select single * from kna1 where kunnr = it_frgt-kunnr.
wa_frgt-cityc = kna1-cityc.
wa_frgt-regio = kna1-regio.
wa_frgt-bran1 = kna1-bran1.
select single vtext from tbrct into tbrct where braco = it_frgt-bran1.
wa_frgt-vtext = tbrct-vtext.
endselect.
select single bezei from t005u into t005u where bland = wa_frgt-regio
and land1 = 'IN'.
wa_frgt-region = t005u-bezei.
it_zfrgt2-cityc = wa_frgt-cityc.
it_zfrgt2-regio = wa_frgt-regio.
it_zfrgt2-region = wa_frgt-region.
it_zfrgt2-vtext = wa_frgt-vtext.
it_zfrgt2-bran1 = wa_frgt-bran1.
endif.
endif.
endif.
wa_frgt-regio = it_zfrgt2-regio.
wa_frgt-region = it_zfrgt2-region.
wa_frgt-plant = it_zfrgt2-plant.
wa_frgt-lgobe = it_zfrgt2-lgobe.
wa_frgt-cityc = it_zfrgt2-cityc.
wa_frgt-vtext = it_zfrgt2-vtext.
wa_frgt-bran1 = it_zfrgt2-bran1.
select single * from tvkbt into tvkbt where vkbur = wa_frgt-vkbur.
if sy-subrc = 0.
wa_frgt-soffice = tvkbt-bezei.
endif.
select single * from tvgrt where vkgrp = wa_frgt-vkgrp.
if sy-subrc = 0.
wa_frgt-district = tvgrt-bezei.
endif.
endif.
select single * from zdest into zdest where
vkorg = wa_frgt-vkorg and
regio = wa_frgt-regio and
cityc = wa_frgt-cityc and
actvt = 'A'.
if sy-subrc = 0.
wa_frgt-vtext = zdest-vtext1.
wa_frgt-bran1 = zdest-ibraco.
wa_frgt-vkgrp = zdest-ivkgrp.
select single * from tvgrt into tvgrt where vkgrp = wa_frgt-vkgrp.
if sy-subrc = 0.
wa_frgt-district = tvgrt-bezei.
endif.
else.
wa_frgt-vtext = ' '.
wa_frgt-bran1 = ' '.
wa_frgt-district = ' '.
endif.
endselect.
*endselect.
*IF kna1-regio IS NOT INITIAL.
Read table it_regio with key BLAND = wa_FRGT-REGIO.
IF SY-SUBRC <> 0.
DELETE IT_FRGT.
clear it_frgt.
CONTINUE.
ENDIF.
ENDIF.
if wa_frgt-lfart eq 'ZGDR'.
wa_frgt-NQGEW = wa_frgt-NTGEW.
wa_frgt-NQGEW = wa_frgt-NQGEW * 1.
else.
wa_frgt-NQGEW = wa_frgt-NTGEW.
wa_frgt-NQGEW = wa_frgt-NQGEW * 1.
endif.
if wa_frgt-vsbed <> '04'.
Wa_frgt-t_mode = 'Road'.
else.
Wa_frgt-t_mode = 'Rail'.
endif.
it_cond = 0.
if wa_frgt-netwr eq 0.
if wa_frgt-vsbed <> '04'.
select * from a531 into a531
where werks eq wa_frgt-dwerks and
zzlgort eq wa_frgt-lgort and
cityc eq wa_frgt-cityc
order by datbi DESCENDING.
if sy-subrc = 0.
it_cond = 1.
if ( a531-datbi >= sy-datum and
a531-datab <= sy-datum ).
wa_frgt-knumh = a531-knumh.
exit.
endif.
endif.
endselect.
if it_cond = 0.
select * from a524 into a524
where werks eq wa_frgt-dwerks and
ZZTRANSP eq wa_frgt-lifnr and
cityc eq wa_frgt-cityc
order by datbi DESCENDING.
if sy-subrc = 0.
it_cond = 1.
if ( a524-datbi >= sy-datum and
a524-datab <= sy-datum ).
. wa_frgt-knumh = a524-knumh.
exit.
endif.
endif.
endselect.
endif.
if it_cond = 0.
select * from a530 into a530
where werks eq wa_frgt-dwerks and
ZZLGORT eq wa_frgt-lgort and
inco1 eq wa_frgt-inco1 and
cityc eq wa_frgt-cityc
order by datbi DESCENDING.
if sy-subrc = 0.
it_cond = 1.
if ( a530-datbi >= sy-datum and
a530-datab <= sy-datum ).
wa_frgt-knumh = a530-knumh.
exit.
endif.
endif.
endselect.
endif.
if it_cond = 0.
select * from a527 into a527
where werks eq wa_frgt-dwerks and
ZZLGORT eq wa_frgt-lgort and
ZZTRANSP eq wa_frgt-lifnr and
cityc eq wa_frgt-cityc
order by datbi DESCENDING.
if sy-subrc = 0.
it_cond = 1.
if ( a527-datbi >= sy-datum and
a527-datab <= sy-datum ).
wa_frgt-knumh = a527-knumh.
exit.
endif.
endif.
endselect.
endif.
endif.
else.
select * from a519 into a519
where vsbed eq wa_frgt-vsbed and
rke_route eq wa_frgt-route
order by datbi DESCENDING.
if sy-subrc = 0.
it_cond = 1.
if ( a519-datbi >= sy-datum and
a519-datab <= sy-datum ).
wa_frgt-knumh = a519-knumh.
exit.
endif.
endif.
endselect.
endif.
if wa_frgt-knumh is not initial.
select single * from konp into konp
where knumh = wa_frgt-knumh.
move konp-kbetr to wa_frgt-netwr.
if konp-KMEIN = 'BAG'.
wa_frgt-NQTWR = wa_frgt-NETWR *
( wa_frgt-ntgew * ( 20 / konp-kpein ) ).
else.
wa_frgt-NQTWR = wa_frgt-NETWR * wa_frgt-ntgew.
endif.
else.
delete it_frgt.
clear wa_frgt.
continue.
endif.
else.
wa_frgt-NQTWR = wa_frgt-NETWR.
endif.
CLEAR ZFREIGHT.
if wa_frgt-vsbed = '04'.
select single distn frgt from Zfreight into Zfreight
Where Werks eq wa_FRGT-DWERKS
AND LGORT eq wa_FRGT-LGORT
AND route eq wa_FRGT-route.
else.
if ( it_frgt-lfart = 'ZGNL' ) OR ( it_frgt-lfart = 'ZGLF' ).
Select single * from Zfreight into Zfreight
Where Werks eq wa_FRGT-DWERKS
AND cityc eq wa_FRGT-cityc
AND route eq wa_FRGT-route.
else.
Select single * from Zfreight into Zfreight
Where Werks eq wa_FRGT-DWERKS
AND LGORT eq wa_FRGT-LGORT
AND cityc eq wa_FRGT-cityc
AND route eq wa_FRGT-route.
endif.
endif.
if sy-subrc = 0.
wa_FRGT-RRKM = ZFREIGHT-DISTN.
if wa_frgt-rrkm > 0.
wa_frgt-NKTWR = wa_frgt-rrkm * wa_frgt-ntgew.
endif.
IF ZFREIGHT-FRGT = 'P'.
wa_frgt-BEZEI = 'Primary Freight'.
Endif.
IF ZFREIGHT-FRGT = 'S'.
wa_frgt-BEZEI = 'Secondary Freight'.
Endif.
endif.
modify it_frgt from wa_frgt index loop_index .
Loop_index = loop_index + 1.
endloop.
endif.
Sort it_frgt by Regio dwerks lgort Vkbur district bran1 mvgr1 t_mode.
*
Clear:WA_frgt.
Loop at it_frgt.
If wa_frgt is initial.
move-corresponding it_frgt to wa_frgt.
wa_frgt-NQGEW = 0.
wa_frgt-NQTWR = 0.
wa_frgt-NKTWR = 0.
endif.
if it_frgt-lfart eq 'ZGDR' .
it_frgt-NQGEW = it_frgt-NQGEW * -1.
it_frgt-NQTWR = it_frgt-NQTWR * -1.
it_frgt-NKTWR = it_frgt-NKTWR * -1.
endif.
if it_frgt-regio = wa_frgt-regio and
it_frgt-dwerks = wa_frgt-dwerks and
it_frgt-lgort = wa_frgt-lgort and
it_frgt-vkbur = wa_frgt-vkbur and
it_frgt-district = wa_frgt-district and
it_frgt-bran1 = wa_frgt-bran1 and
it_frgt-t_mode = wa_frgt-t_mode.
wa_frgt-NQGEW = wa_frgt-NQGEW + it_frgt-NQGEW.
wa_frgt-NQTWR = wa_frgt-NQTWR + it_frgt-NQTWR.
wa_frgt-NKTWR = wa_frgt-NKTWR + it_frgt-NKTWR.
else.
Append wa_frgt to it_sfrgt.
Clear wa_frgt.
move-corresponding it_frgt to wa_frgt.
wa_frgt-NQGEW = 0.
wa_frgt-NQTWR = 0.
wa_frgt-NKTWR = 0.
wa_frgt-NQGEW = WA_frgt-NQGEW + it_frgt-NQGEW.
wa_frgt-NQTWR = wa_frgt-NQTWR + it_frgt-NQTWR.
wa_frgt-NKTWR = wa_frgt-NKTWR + it_frgt-NKTWR.
endif.
AT LAST .
Append wa_frgt to it_sfrgt.
Clear wa_frgt.
ENDAT.
endloop.
sort it_sfrgt by regio dwerks lgort Vkbur district bran1 t_mode rrkm nqgew nqtwr nktwr avg_frt.
Loop At IT_SFRGT.
IT_SFRGT-RRKM = 0 .
IF IT_SFRGT-NQGEW > 0 AND IT_SFRGT-NQTWR > 0.
IT_SFRGT-AVG_FRT = IT_SFRGT-NQTWR / IT_SFRGT-NQGEW.
ENDIF.
IF IT_SFRGT-NQGEW > 0 AND IT_SFRGT-NKTWR > 0.
IT_SFRGT-RRKM = IT_SFRGT-NKTWR / IT_SFRGT-NQGEW.
ENDIF.
IF IT_SFRGT-RRKM > 0 AND IT_SFRGT-AVG_FRT > 0.
IT_SFRGT-FRT_RT = IT_SFRGT-AVG_FRT / IT_SFRGT-RRKM.
ENDIF.
MODIFY IT_SFRGT .
Endloop.
Sort it_sfrgt by REGION vkorg dwerks lgort t_mode rwerks mvgr1.
loop at it_sfrgt.
move-corresponding it_sfrgt to itab1.
append itab1.
endloop.
loop at itab1.
move-corresponding itab1 to IT_FINAL.
append it_final.
endloop.
ENDFUNCTION.
In this function module only i am collecting the data and put into IT_FINAL INTERNAL TABLE.
Now i want to call this function module in another function module.
how can i call this and what are the parameters i have to use in calling function module
could any body please tell me its urgent
regards,
Chaitanya
I created below function module, which is having below import parameters and tables:
FUNCTION ztest_func.
*"----
""Local interface:
*" IMPORTING
*" VALUE(S_LFDAT1) LIKE LIKP-LFDAT
*" VALUE(S_LFDAT2) LIKE LIKP-LFDAT OPTIONAL
*" VALUE(RAIL_ROAD) TYPE CHECKBOX
*" TABLES
*" IT_FINAL STRUCTURE ZTLC_SAL
*"----
data: it_cond type n,
loop_index like sy-tabix .
select zdelv~vkorg
zdelv~vbeln
zdelv~lfart
zdelv~lfdat
zdelv~wadat
zdelv~vtweg
zdelv~spart
zdelv~vkbur
zdelv~vkgrp
zdelv~kunnr
zdelv~vsbed
zdelv~ntgew
zdelv~route
zdelv~lgort
zdelv~inco1
zdelv~matnr
zdelv~mvgr1
zdelv~vsart
zdelv~rwerks
zdelv~dwerks
into corresponding fields of table IT_FRGT
From zdelv WHERE zdelv~wadat = s_lfdat1 " and s_lfdat2
AND zdelv~lfart IN ('ZGDP','ZGRR','ZRLF','ZGLF').
if Sy-subrc = 0.
Sort it_frgt
by vbeln dwerks lgort route kunnr regio vkbur vkgrp bran1 cityc.
Delete adjacent duplicates from it_frgt
Comparing vbeln dwerks lgort route kunnr
regio vkbur vkgrp bran1 Cityc.
Loop_index = 1.
Loop at it_frgt." to wa_frgt.
*select kunnr regio from kna1 into kna1 where kunnr = it_frgt-kunnr.
*select bland from t005u into corresponding fields of table it_regio where Bland = kna1-regio.
*endselect.
IF RAIL_ROAD = 'I'.
IF IT_FRGT-VSBED <> '04'.
DELETE IT_FRGT.
clear it_frgt.
CONTINUE.
ENDIF.
ENDIF.
IF RAIL_ROAD = 'R'.
IF IT_FRGT-VSBED = '04'.
DELETE IT_FRGT.
clear it_frgt.
CONTINUE.
endif.
endif.
clear wa_frgt.
select single lifnr from vbpa into vbpa
where vbeln eq it_frgt-vbeln and
parvw eq 'ZD'.
move-corresponding it_frgt to wa_frgt.
move vbpa-lifnr to wa_frgt-lifnr.
If wa_frgt-lfart eq 'ZGND' OR
wa_frgt-lfart eq 'ZGNL' OR
wa_frgt-lfart eq 'ZGNS'.
wa_frgt-LVTEXT = 'STA'.
if wa_frgt-lfart eq 'ZGNS'.
delete it_frgt.
continue.
endif.
select mseg~werks
mseg~lgort
into (wa_frgt-rwerks,wa_frgt-rlgort)
from vbfa join mseg
on mseg~mblnr = vbfa~vbeln
where vbfa~vbelv eq wa_frgt-vbeln and
vbfa~vbtyp_n = 'i'.
Endselect.
wa_frgt-netwr = 0.
if wa_frgt-netwr = 0.
select single regio region plant lgobe cityc from zsta
into corresponding fields of it_zfrgt
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg
and kunnr = it_frgt-kunnr.
if sy-subrc <> 0.
select single regio region plant lgobe cityc from zsta into corresponding fields of it_zfrgt
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg.
select single cityc from kna1 into wa_frgt-cityc
where kunnr = wa_frgt-kunnr.
it_zfrgt-cityc = wa_frgt-cityc.
endif.
select single regio region plant lgobe cityc from zsta into corresponding fields of it_zfrgt1
where werks = it_frgt-rwerks
and lgort = it_frgt-rlgort
and vkorg = it_frgt-vkorg
and kunnr = it_frgt-kunnr.
if sy-subrc <> 0.
select single regio region plant lgobe cityc from zsta into corresponding fields of it_zfrgt1
where werks = it_frgt-rwerks
and lgort = it_frgt-rlgort
and vkorg = it_frgt-vkorg.
endif.
else.
select single regio region plant lgobe cityc from zsta into corresponding fields of it_zfrgt
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg.
endif.
else.
select single * from zsta into it_zfrgt
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg.
endif.
wa_frgt-regio = it_zfrgt-regio.
wa_frgt-region = it_zfrgt-region.
wa_frgt-plant = it_zfrgt-plant.
wa_frgt-lgobe = it_zfrgt-lgobe.
wa_frgt-cityc = it_zfrgt-cityc.
wa_frgt-soffice = it_zfrgt1-Plant.
STA *
endif.
if wa_frgt-lfart eq 'ZGDP' OR
wa_frgt-lfart eq 'ZGDR' OR
wa_frgt-lfart eq 'ZGRR' OR
wa_frgt-lfart eq 'ZRLF' OR
wa_frgt-lfart eq 'ZGLF' OR
wa_frgt-lfart eq 'ZGLR' .
if wa_frgt-lfart eq 'ZGLR'.
delete it_frgt.
continue.
endif.
if wa_frgt-lfart eq 'ZGDR'.
delete it_frgt.
continue.
endif.
select single WBSTK from LIKPUK into Likpuk-wbstk
where vbeln = wa_frgt-vbeln.
if sy-subrc = 0.
if likpuk-wbstk <> 'C'.
delete it_frgt.
clear wa_frgt.
continue.
endif.
endif.
wa_frgt-LVTEXT = 'SALES'.
wa_frgt-netwr = 0.
if wa_frgt-netwr = 0.
Select single * from ZFRGT into it_zfrgt2
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg
and kunnr = it_frgt-kunnr.
if sy-subrc <> 0.
clear it_zfrgt2.
Select single * from ZFRGT into it_zfrgt2
where werks = it_frgt-dwerks
and lgort = it_frgt-lgort
and vkorg = it_frgt-vkorg.
if sy-subrc <> 0.
select single * from t001w
where werks = it_frgt-dwerks.
if sy-subrc = 0.
wa_frgt-plant = t001w-name1.
select single * from t001l
where werks = it_frgt-Dwerks and
lgort = it_frgt-lgort.
if sy-subrc = 0.
wa_frgt-lgobe = t001l-lgobe.
endif.
it_zfrgt2-lgobe = wa_frgt-lgobe.
it_zfrgt2-plant = wa_frgt-plant.
endif.
Endif.
Select single * from kna1 where kunnr = it_frgt-kunnr.
wa_frgt-cityc = kna1-cityc.
wa_frgt-regio = kna1-regio.
wa_frgt-bran1 = kna1-bran1.
select single vtext from tbrct into tbrct where braco = it_frgt-bran1.
wa_frgt-vtext = tbrct-vtext.
endselect.
select single bezei from t005u into t005u where bland = wa_frgt-regio
and land1 = 'IN'.
wa_frgt-region = t005u-bezei.
it_zfrgt2-cityc = wa_frgt-cityc.
it_zfrgt2-regio = wa_frgt-regio.
it_zfrgt2-region = wa_frgt-region.
it_zfrgt2-vtext = wa_frgt-vtext.
it_zfrgt2-bran1 = wa_frgt-bran1.
endif.
endif.
endif.
wa_frgt-regio = it_zfrgt2-regio.
wa_frgt-region = it_zfrgt2-region.
wa_frgt-plant = it_zfrgt2-plant.
wa_frgt-lgobe = it_zfrgt2-lgobe.
wa_frgt-cityc = it_zfrgt2-cityc.
wa_frgt-vtext = it_zfrgt2-vtext.
wa_frgt-bran1 = it_zfrgt2-bran1.
select single * from tvkbt into tvkbt where vkbur = wa_frgt-vkbur.
if sy-subrc = 0.
wa_frgt-soffice = tvkbt-bezei.
endif.
select single * from tvgrt where vkgrp = wa_frgt-vkgrp.
if sy-subrc = 0.
wa_frgt-district = tvgrt-bezei.
endif.
endif.
select single * from zdest into zdest where
vkorg = wa_frgt-vkorg and
regio = wa_frgt-regio and
cityc = wa_frgt-cityc and
actvt = 'A'.
if sy-subrc = 0.
wa_frgt-vtext = zdest-vtext1.
wa_frgt-bran1 = zdest-ibraco.
wa_frgt-vkgrp = zdest-ivkgrp.
select single * from tvgrt into tvgrt where vkgrp = wa_frgt-vkgrp.
if sy-subrc = 0.
wa_frgt-district = tvgrt-bezei.
endif.
else.
wa_frgt-vtext = ' '.
wa_frgt-bran1 = ' '.
wa_frgt-district = ' '.
endif.
endselect.
*endselect.
*IF kna1-regio IS NOT INITIAL.
Read table it_regio with key BLAND = wa_FRGT-REGIO.
IF SY-SUBRC <> 0.
DELETE IT_FRGT.
clear it_frgt.
CONTINUE.
ENDIF.
ENDIF.
if wa_frgt-lfart eq 'ZGDR'.
wa_frgt-NQGEW = wa_frgt-NTGEW.
wa_frgt-NQGEW = wa_frgt-NQGEW * 1.
else.
wa_frgt-NQGEW = wa_frgt-NTGEW.
wa_frgt-NQGEW = wa_frgt-NQGEW * 1.
endif.
if wa_frgt-vsbed <> '04'.
Wa_frgt-t_mode = 'Road'.
else.
Wa_frgt-t_mode = 'Rail'.
endif.
it_cond = 0.
if wa_frgt-netwr eq 0.
if wa_frgt-vsbed <> '04'.
select * from a531 into a531
where werks eq wa_frgt-dwerks and
zzlgort eq wa_frgt-lgort and
cityc eq wa_frgt-cityc
order by datbi DESCENDING.
if sy-subrc = 0.
it_cond = 1.
if ( a531-datbi >= sy-datum and
a531-datab <= sy-datum ).
wa_frgt-knumh = a531-knumh.
exit.
endif.
endif.
endselect.
if it_cond = 0.
select * from a524 into a524
where werks eq wa_frgt-dwerks and
ZZTRANSP eq wa_frgt-lifnr and
cityc eq wa_frgt-cityc
order by datbi DESCENDING.
if sy-subrc = 0.
it_cond = 1.
if ( a524-datbi >= sy-datum and
a524-datab <= sy-datum ).
. wa_frgt-knumh = a524-knumh.
exit.
endif.
endif.
endselect.
endif.
if it_cond = 0.
select * from a530 into a530
where werks eq wa_frgt-dwerks and
ZZLGORT eq wa_frgt-lgort and
inco1 eq wa_frgt-inco1 and
cityc eq wa_frgt-cityc
order by datbi DESCENDING.
if sy-subrc = 0.
it_cond = 1.
if ( a530-datbi >= sy-datum and
a530-datab <= sy-datum ).
wa_frgt-knumh = a530-knumh.
exit.
endif.
endif.
endselect.
endif.
if it_cond = 0.
select * from a527 into a527
where werks eq wa_frgt-dwerks and
ZZLGORT eq wa_frgt-lgort and
ZZTRANSP eq wa_frgt-lifnr and
cityc eq wa_frgt-cityc
order by datbi DESCENDING.
if sy-subrc = 0.
it_cond = 1.
if ( a527-datbi >= sy-datum and
a527-datab <= sy-datum ).
wa_frgt-knumh = a527-knumh.
exit.
endif.
endif.
endselect.
endif.
endif.
else.
select * from a519 into a519
where vsbed eq wa_frgt-vsbed and
rke_route eq wa_frgt-route
order by datbi DESCENDING.
if sy-subrc = 0.
it_cond = 1.
if ( a519-datbi >= sy-datum and
a519-datab <= sy-datum ).
wa_frgt-knumh = a519-knumh.
exit.
endif.
endif.
endselect.
endif.
if wa_frgt-knumh is not initial.
select single * from konp into konp
where knumh = wa_frgt-knumh.
move konp-kbetr to wa_frgt-netwr.
if konp-KMEIN = 'BAG'.
wa_frgt-NQTWR = wa_frgt-NETWR *
( wa_frgt-ntgew * ( 20 / konp-kpein ) ).
else.
wa_frgt-NQTWR = wa_frgt-NETWR * wa_frgt-ntgew.
endif.
else.
delete it_frgt.
clear wa_frgt.
continue.
endif.
else.
wa_frgt-NQTWR = wa_frgt-NETWR.
endif.
CLEAR ZFREIGHT.
if wa_frgt-vsbed = '04'.
select single distn frgt from Zfreight into Zfreight
Where Werks eq wa_FRGT-DWERKS
AND LGORT eq wa_FRGT-LGORT
AND route eq wa_FRGT-route.
else.
if ( it_frgt-lfart = 'ZGNL' ) OR ( it_frgt-lfart = 'ZGLF' ).
Select single * from Zfreight into Zfreight
Where Werks eq wa_FRGT-DWERKS
AND cityc eq wa_FRGT-cityc
AND route eq wa_FRGT-route.
else.
Select single * from Zfreight into Zfreight
Where Werks eq wa_FRGT-DWERKS
AND LGORT eq wa_FRGT-LGORT
AND cityc eq wa_FRGT-cityc
AND route eq wa_FRGT-route.
endif.
endif.
if sy-subrc = 0.
wa_FRGT-RRKM = ZFREIGHT-DISTN.
if wa_frgt-rrkm > 0.
wa_frgt-NKTWR = wa_frgt-rrkm * wa_frgt-ntgew.
endif.
IF ZFREIGHT-FRGT = 'P'.
wa_frgt-BEZEI = 'Primary Freight'.
Endif.
IF ZFREIGHT-FRGT = 'S'.
wa_frgt-BEZEI = 'Secondary Freight'.
Endif.
endif.
modify it_frgt from wa_frgt index loop_index .
Loop_index = loop_index + 1.
endloop.
endif.
Sort it_frgt by Regio dwerks lgort Vkbur district bran1 mvgr1 t_mode.
*
Clear:WA_frgt.
Loop at it_frgt.
If wa_frgt is initial.
move-corresponding it_frgt to wa_frgt.
wa_frgt-NQGEW = 0.
wa_frgt-NQTWR = 0.
wa_frgt-NKTWR = 0.
endif.
if it_frgt-lfart eq 'ZGDR' .
it_frgt-NQGEW = it_frgt-NQGEW * -1.
it_frgt-NQTWR = it_frgt-NQTWR * -1.
it_frgt-NKTWR = it_frgt-NKTWR * -1.
endif.
if it_frgt-regio = wa_frgt-regio and
it_frgt-dwerks = wa_frgt-dwerks and
it_frgt-lgort = wa_frgt-lgort and
it_frgt-vkbur = wa_frgt-vkbur and
it_frgt-district = wa_frgt-district and
it_frgt-bran1 = wa_frgt-bran1 and
it_frgt-t_mode = wa_frgt-t_mode.
wa_frgt-NQGEW = wa_frgt-NQGEW + it_frgt-NQGEW.
wa_frgt-NQTWR = wa_frgt-NQTWR + it_frgt-NQTWR.
wa_frgt-NKTWR = wa_frgt-NKTWR + it_frgt-NKTWR.
else.
Append wa_frgt to it_sfrgt.
Clear wa_frgt.
move-corresponding it_frgt to wa_frgt.
wa_frgt-NQGEW = 0.
wa_frgt-NQTWR = 0.
wa_frgt-NKTWR = 0.
wa_frgt-NQGEW = WA_frgt-NQGEW + it_frgt-NQGEW.
wa_frgt-NQTWR = wa_frgt-NQTWR + it_frgt-NQTWR.
wa_frgt-NKTWR = wa_frgt-NKTWR + it_frgt-NKTWR.
endif.
AT LAST .
Append wa_frgt to it_sfrgt.
Clear wa_frgt.
ENDAT.
endloop.
sort it_sfrgt by regio dwerks lgort Vkbur district bran1 t_mode rrkm nqgew nqtwr nktwr avg_frt.
Loop At IT_SFRGT.
IT_SFRGT-RRKM = 0 .
IF IT_SFRGT-NQGEW > 0 AND IT_SFRGT-NQTWR > 0.
IT_SFRGT-AVG_FRT = IT_SFRGT-NQTWR / IT_SFRGT-NQGEW.
ENDIF.
IF IT_SFRGT-NQGEW > 0 AND IT_SFRGT-NKTWR > 0.
IT_SFRGT-RRKM = IT_SFRGT-NKTWR / IT_SFRGT-NQGEW.
ENDIF.
IF IT_SFRGT-RRKM > 0 AND IT_SFRGT-AVG_FRT > 0.
IT_SFRGT-FRT_RT = IT_SFRGT-AVG_FRT / IT_SFRGT-RRKM.
ENDIF.
MODIFY IT_SFRGT .
Endloop.
Sort it_sfrgt by REGION vkorg dwerks lgort t_mode rwerks mvgr1.
loop at it_sfrgt.
move-corresponding it_sfrgt to itab1.
append itab1.
endloop.
loop at itab1.
move-corresponding itab1 to IT_FINAL.
append it_final.
endloop.
ENDFUNCTION.
In this function module only i am collecting the data and put into IT_FINAL INTERNAL TABLE.
Now i want to call this function module in another function module.
how can i call this and what are the parameters i have to use in calling function module
could any body please tell me its urgent
regards,
Chaitanya
2007 Aug 06 3:59 PM
Hi,
Just go to another FM and click on the Pattern button, then there give the name of this FM..and you will get all the details about this FM.
Regards,
Atish
2007 Aug 06 4:03 PM
Hi,
Goto the second Function module and press CNTL+F6 then a popup will come then give the first function module name and press enter
Regards
Sudheer
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |