Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

reg:rfc

Former Member
0 Likes
559

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.

1 REPLY 1
Read only

Former Member
0 Likes
477

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.