2007 Aug 07 5:40 AM
Hai to all,
I am created one below rfc function module. that is ZTEST_FUNC.
Expert Forums » ABAP Development » ABAP Dictionary
Thread: reg:fm
Welcome, chaitu sumi
Your Control Panel
Your Reward Points
Your Questions
There are new replies to your question.
Mark question as still not answered.
Mark question as answered.
Use the radio buttons to award points to replies.
You are watching this thread. To stop watching this thread, click "Stop Watching Thread" below. (Watch Options)
This watch sends emails by default. If you don't want to receive emails on changes in this thread, go to the watch options, un-mark the "Email" checkbox next to the thread's entry and click "Update".
Reply to this Thread Search Forum Stop Watching Thread Back to Thread List
Replies: 2 - Pages: 1 - Last Post: Aug 6, 2007 5:03 PM by: Sudheer Junnuth... Threads: Previous
chaitu sumi
Posts: 9
Questions: 9
Registered: 7/13/07
Forum points: 0
reg:fm
Posted: Aug 6, 2007 4:47 PM Reply E-mail this post
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.
AND I created another function module ZTEST_RFC.
In ZTEST_RFC MODULE I AM CALLING ABOVE FUNCTION MODULE ZTEST_FUNC.
NOW its going to dump its showing the error CALL_FUNCTION_UC_STRUC RUNTIME ERROR IS COMING.
how can i solve this problem could any body tell me its very urgent.
In ZTEST_FUNC function module only i am collecting the data and put into IT_FINAL INTERNAL TABLE.
Hai to all,
I am created one below rfc function module. that is ZTEST_FUNC.
Expert Forums » ABAP Development » ABAP Dictionary
Thread: reg:fm
Welcome, chaitu sumi
Your Control Panel
Your Reward Points
Your Questions
There are new replies to your question.
Mark question as still not answered.
Mark question as answered.
Use the radio buttons to award points to replies.
You are watching this thread. To stop watching this thread, click "Stop Watching Thread" below. (Watch Options)
This watch sends emails by default. If you don't want to receive emails on changes in this thread, go to the watch options, un-mark the "Email" checkbox next to the thread's entry and click "Update".
Reply to this Thread Search Forum Stop Watching Thread Back to Thread List
Replies: 2 - Pages: 1 - Last Post: Aug 6, 2007 5:03 PM by: Sudheer Junnuth... Threads: Previous
chaitu sumi
Posts: 9
Questions: 9
Registered: 7/13/07
Forum points: 0
reg:fm
Posted: Aug 6, 2007 4:47 PM Reply E-mail this post
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.
AND I created another function module ZTEST_RFC.
In ZTEST_RFC MODULE I AM CALLING ABOVE FUNCTION MODULE ZTEST_FUNC.
NOW its going to dump its showing the error CALL_FUNCTION_UC_STRUC RUNTIME ERROR IS COMING.
how can i solve this problem could any body tell me its very urgent.
In ZTEST_FUNC function module only i am collecting the data and put into IT_FINAL INTERNAL TABLE.
2007 Aug 08 1:22 AM
According to
http://help.sap.com/saphelp_nw04/helpdata/en/f9/3f69fd11a80b4e93a5c9230bafc767/content.htm
The reason for the Runtime error: CALL_FUNCTION_UC_STRUCT is that "Type conflict while transferring structure ".
I'd suggest therefore that you check the definition of the variables in ZTEST_RFC where it calls ZTEST_FUNC as there would seem to be a mismatch. If you are editing ZTEST_RFC, try using the Check > Extended check functionality as this will typically pinpoint such problems for you.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |