求助:abap的调试

[复制链接]
查看11 | 回复4 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
我是刚接触sap的新手,前段时间公司要求做个毛利分析的报表。我写好了程序,在调试时,没有语法错误,但是测试时老是说是:短转储没有完全存储,太长。请问各位:这是怎么回事?我该怎么做?
还有就是:要把数据表从正在使用的sap系统导入到我用来测试的sap系统中,有什么好的方法吗?
有经历过的朋友教教我哟,谢谢了
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
我不知你的程序有没有分指定一个事务代码,如果有指定,我想可能是你选择事务功能时选择错了,你可以把错误码贴出来。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
要看你是要导哪些数据了,如果你要导这个CLIENT,你可以用TMS,你要是导部分数据,可以试试EDI/IDOC。
不懂ABAP
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
我不太清楚哦,我把出错的错误提示贴出来,帮我看看可以么?
错误分析
A RAISE statement in the program "CL_GUI_ALV_GRID===============CP " raised the
exception
condition "NO_FIELDCATALOG_AVAILABLE".
Since the exception was not intercepted by a superior program
in the hierarchy, processing was terminated.
Short description of exception condition:
For detailed documentation of the exception condition, use
Transaction SE37 (Function Library). You can take the called
function module from the display of active calls.
源程序:
REPORT ZS_05 message-id 00

line-size 207

line-count 30

no standard page heading.
tables :
vbak,vbap,lips,likp,vbrp,vbrk,mseg,mkpf,vbup,ebew,bkpf.
types: begin of st_sditem,
vbeln like vbrk-vbeln,
fkart like vbrk-fkart,
matnr like vbrp-matnr,
kunnr like vbrk-kunrg,
netwr type p decimals 2, "shou ru
wavwr type p decimals 2, "chen ben
fkimg type p decimals 0,
kurrf like vbrk-kurrf ,"hui lv
end of st_sditem.
data:
it_sditem type standard table of st_sditem
with header line.
types: begin of st_sditem0,
matnr like vbrp-matnr,
kunnr like vbrk-kunrg,
netwr type p decimals 2, "shou ru
netyb type p decimals 2, "原币种shou ru
wavwr type p decimals 2, "chen ben
fkimg type p decimals 0,
end of st_sditem0.
data:
it_sditem1 type standard table of st_sditem0
with key matnr kunnr with header line .
data: begin of it_bseg occurs 0,
belnr like bsis-belnr,
shkzg like bsis-shkzg,
dmbtr like bsis-dmbtr,
end of it_bseg.
data: begin of it_temp occurs 0,
matnr like lips-matnr,
kunnr like likp-kunnr,
dmbtr like bsis-dmbtr,
lfimg like lips-lfimg,
end of it_temp.
data: begin of it_lips occurs 0,
vbeln like lips-vbeln,
posnr like lips-posnr,
matnr like lips-matnr,
lfimg like lips-lfimg,
kunnr like likp-kunnr,
end of it_lips.
data: begin of it_bsis occurs 0,
belnr like bsis-belnr,
bwart like mseg-bwart,
shkzg like bsis-shkzg,
dmbtr like bsis-dmbtr,
xblnr like bsis-xblnr,
matnr like lips-matnr,
kunnr like likp-kunnr,
lfimg like lips-lfimg,
end of it_bsis.
data: begin of it_showitem occurs 0,
matnr like vbrp-matnr,
wulms like makt-maktx,
kehdh like vbak-kunnr,
kehmc like kna1-sortl,
diqm like tvlvt-bezei,
xingh(30),
zuh type i,
bypingjjg type p decimals 2, "shou ru
bynetwr type p decimals 2,
bypingjcb type p decimals 2, "chen ben
bywavwr type p decimals 2,
bydanwml like vbrp-wavwr,
bymll like vbrp-wavwr,
byfklmg type p decimals 2,
bnpingjjg type p decimals 2, "shou ru
bnnetwr type p decimals 2,
bnpingjcb type p decimals 2, "chen ben
bnwavwr type p decimals 2,
bndanwml like vbrp-wavwr,
bnmll like vbrp-wavwr,
bnfkimg type p decimals 2,
end of it_showitem.
ranges: rg1_date for bseg-zuonr,
rg2_date for bseg-zuonr.
data: ivariant like disvariant,
i_repid like sy-repid,
datebegin(10),
dateend(10),
yearmonthb(10),
yearmonthe(10),
wulms like makt-maktg,
rate(13) type p decimals 3,
xingh(30),
leib(30),
wulfl(30),
diqm(30),
zuh type i,
kehmc(30),
bomjis type i,
bombh like mast-stlnr,
matnr like mseg-matnr,
kunnr like vbak-kunnr,
bzirk(30),
tmp type p decimals 4 value 0,
str_tmp like bsis-buzei,
kehdq like likp-bzirk,
it_sditem2 like it_sditem1 occurs 0 with header line ,
tmp_dmbtr like mseg-dmbtr,
tmp_lfimg like lips-lfimg.
selection-screen begin of block 1 with frame.
select-options:
s_gongs for vbrk-bukrs.
parameters:
p_year like bseg-gjahr obligatory ,
p_month like bkpf-monatobligatory,
p_kaip as checkbox default 'X'.
selection-screen end of block 1.
i_repid = sy-repid.
start-of-selection.
* rg1_date 当月
* rg2_date 当年的开始月份到现在
concatenatep_year p_month '00' into yearmonthb.
concatenatep_year p_month '32' into yearmonthe.
move: 'I' to rg1_date-sign,
'BT' to rg1_date-option,
yearmonthb to rg1_date-low,
yearmonthe to rg1_date-high.
append rg1_date.
concatenatedatebegin p_year into datebegin.
concatenate datebegin '01' into datebegin.
concatenate datebegin '00' into datebegin.
concatenate dateend p_year into dateend.
concatenate dateendp_month into dateend.
concatenate dateend'32' into dateend.
move: 'I' to rg2_date-sign,
'BT' to rg2_date-option,
datebegin to rg2_date-low,
dateend to rg2_date-high.
append rg2_date.
*--------------------------------------------------------------------
*********************************************************
*开票情况
*********************************************************
if p_kaip''.
select
belnr
shkzg
sum( dmbtr )
from bsis
into table it_bseg
where
bukrs in s_gongs and
blart = 'RV' and
budat in rg1_date and
( Hkont = '501001' or
Hkont = '501004' or
Hkont = '501005' or
Hkont = '511001' )
group by belnr shkzg.
select
vbrk~vbeln
vbrk~fkart
vbrp~matnr
vbrk~kunag
vbrp~netwr
vbrp~wavwr
vbrp~fkimg
vbrk~kurrf
from vbrk inner join vbrp
on vbrk~vbeln = vbrp~vbeln
inner join bkpf
on vbrk~bukrs = bkpf~bukrs and
vbrk~vbeln = bkpf~belnr

into table it_sditem
where vbrk~bukrs in s_gongs
and vbrk~fkdat in rg1_date
and bkpf~blart = 'RV'.
sort it_bseg by belnr ascending.
sort it_sditem by vbeln ascending.
tmp = 0.
loop at it_bseg.
clear it_sditem.
clear it_sditem1.
loop at it_sditem where vbeln = it_bseg-belnr.
if it_bseg-shkzg = 'H'.

it_sditem1-netyb = it_sditem-netwr * -1.

it_sditem1-netwr = it_sditem-netwr * it_sditem-kurrf * -1.

it_sditem1-wavwr = 0.

it_sditem1-fkimg = it_sditem-fkimg .
else.

it_sditem1-netyb = it_sditem-netwr.

it_sditem1-netwr = it_sditem-netwr * it_sditem-kurrf.

it_sditem1-wavwr = 0.

it_sditem1-fkimg = it_sditem-fkimg * -1.
endif.
it_sditem1-matnr = it_sditem-matnr.
it_sditem1-kunnr = it_sditem-kunnr.
collect it_sditem1.
tmp = tmp + it_sditem1-netwr.
endloop.
endloop.
sort it_sditem1 by matnr kunnr ascending.
refresh it_sditem.
*样品收入
select
belnr
shkzg
sum( dmbtr )
from bsis
into table it_bseg
where
bukrs in s_gongs and
blart = 'DR' and
budat in rg1_date and
( Hkont = '501001' or
Hkont = '501004' or
Hkont = '501005' or
Hkont = '511001' )
group by belnr shkzg.
tmp_dmbtr = 0.
loop at it_bseg.
if it_bseg-shkzg = 'H'.
tmp_dmbtr = tmp_dmbtr + -1 * it_bseg-dmbtr.
else.
tmp_dmbtr = tmp_dmbtr + it_bseg-dmbtr.
endif.
endloop.
clear it_sditem1.
it_sditem1-matnr = '样品'.
it_sditem1-kunnr = '样品'.
it_sditem1-netwr = tmp_dmbtr.
append it_sditem1.
select
belnr

shkzg

sum( dmbtr )
from bsis
into table it_bseg

where

bukrs in s_gongs and

blart not in ('DR', 'RV') and

budat in rg1_date and
( Hkont = '501001' or
Hkont = '501004' or
Hkont = '501005' or
Hkont = '511001' )
group by belnr shkzg.
tmp_dmbtr = 0.
loop at it_bseg.
if it_bseg-shkzg = 'H'.
tmp_dmbtr = tmp_dmbtr + -1 * it_bseg-dmbtr.
else.
tmp_dmbtr = tmp_dmbtr + it_bseg-dmbtr.
endif.
endloop.
clear it_sditem1.
it_sditem1-matnr = '其他'.
it_sditem1-kunnr = '其他'.
it_sditem1-netwr = tmp_dmbtr.
append it_sditem1.
select
mseg~mblnr

mseg~bwart

mseg~shkzg

mseg~dmbtr

mseg~kdauf

mseg~matnr

vbpa~kunnr

mseg~menge

from mseg inner join vbap

on mseg~mat_kdauf = vbap~vbeln

and mseg~mat_kdpos = vbap~posnr

inner join vbak

on vbak~vbeln = vbap~vbeln

inner join mkpf

on mseg~mblnr = mkpf~mblnr

and mseg~mjahr = mkpf~mjahr

inner join vbpa

on mseg~mat_kdauf = vbpa~vbeln

into table it_bsis

where

mseg~bukrs in s_gongs and

vbak~faksk = '' and "08 kai piao dong jie

mkpf~budat in rg1_date and

mseg~bwart in ('657', '658') and

vbpa~parvw = 'AG'.
select

mseg~mblnr

mseg~bwart

mseg~shkzg

mseg~dmbtr

mseg~kdauf
mseg~matnr
vbpa~kunnr

mseg~menge

from mseg inner join mkpf

on mseg~mblnr = mkpf~mblnr

and mseg~mjahr = mkpf~mjahr

inner join vbpa

on mseg~mat_kdauf = vbpa~vbeln

appending table it_bsis

where

mseg~bukrs in s_gongs and

mkpf~budat in rg1_date and

mseg~bwart in ('601', '602') and

mseg~matnr LIKE '0000000000003%' AND

vbpa~parvw = 'AG'.
select

mseg~mblnr

mseg~bwart

mseg~shkzg

mseg~dmbtr

mseg~kdauf

mseg~matnr

mseg~wempf

mseg~menge

from mseg inner join mkpf

on mseg~mblnr = mkpf~mblnr

and mseg~mjahr = mkpf~mjahr

appending table it_bsis

where

mseg~bukrs in s_gongs and

mkpf~budat in rg1_date and

mseg~bwart in ('251', '252') and

( mseg~matnr LIKE '0000000000003%' OR

mseg~matnr LIKE '0000000000002%' ).
tmp_dmbtr = 0.
tmp_lfimg = 0.
tmp = 0.
loop at it_bsis.
move-corresponding it_bsis to it_temp.
if ( it_bsis-bwart = '252' )
or ( it_bsis-bwart = '251' ) .
if it_bsis-shkzg = 'S'.

tmp_dmbtr = tmp_dmbtr + -1 * it_temp-dmbtr.
tmp_lfimg = tmp_dmbtr + -1 * it_temp-lfimg.
else.

tmp_dmbtr = tmp_dmbtr + it_temp-dmbtr.

tmp_lfimg = tmp_dmbtr + it_temp-lfimg.
endif.
else.
if it_bsis-shkzg = 'S'.

it_temp-dmbtr = -1 * it_temp-dmbtr.

it_temp-lfimg = -1 * it_temp-lfimg.
endif.
collect it_temp.
clear it_temp.
endif.
endloop.
sort it_temp by matnr kunnr ascending .
clear it_temp.
it_temp-kunnr = '样品'.
it_temp-matnr = '样品'.
it_temp-dmbtr = tmp_dmbtr.
it_temp-lfimg = tmp_lfimg.
append it_temp.
select
belnr
buzei
shkzg
dmbtr
xblnr
from bsis
into table it_bsis
where
bukrs in s_gongs and
blart not in ('WL', 'WA') and
budat in rg1_date and
( Hkont = '502001' or
Hkont = '502003' or
Hkont = '502004' or
Hkont = '512001' ).
tmp_dmbtr = 0.
loop at it_bsis.
if it_bsis-shkzg = 'H'.
tmp_dmbtr = tmp_dmbtr + -1 * it_bsis-dmbtr.
else.
tmp_dmbtr = tmp_dmbtr + it_bsis-dmbtr.
endif.
endloop.
clear it_temp.
it_temp-kunnr = '其他'.
it_temp-matnr = '其他'.
it_temp-dmbtr = tmp_dmbtr - tmp.
append it_temp.
sort it_sditem1 by matnr kunnr ascending.
sort it_temp by matnr kunnr ascending.
loop at it_temp.
if it_temp-matnr = '样品'.
it_temp-lfimg = 0.
endif.
clear it_sditem1.
read table it_sditem1 with key matnr = it_temp-matnr
kunnr = it_temp-kunnr.
if sy-subrc = 0.
it_sditem1-wavwr = it_temp-dmbtr.
it_sditem1-fkimg = it_temp-lfimg.
modify it_sditem1 transporting wavwr fkimg
where matnr = it_temp-matnr

and kunnr = it_temp-kunnr.
else.
it_sditem1-matnr = it_temp-matnr.
it_sditem1-kunnr = it_temp-kunnr.
it_sditem1-wavwr = it_temp-dmbtr.
it_sditem1-fkimg = it_temp-lfimg.
append it_sditem1.
endif.
endloop.
free it_sditem.
free it_bseg.
free it_bsis.
free it_temp.
free it_lips.
endif.
************************************************************
* 进一步处理
************************************************************
matnr = ''.
loop at it_sditem1.
if matnrit_sditem1-matnr.
select maktg into (wulms) from makt
up to 1 rows
where matnr = it_sditem1-matnr and
spras = '1'.
endselect.
if sy-subrc0.
wulms = ''.
endif.
wulfl = ''.
select prodh into (wulfl)
from mvke where matnr = it_sditem1-matnr.
endselect.
if sy-subrc0.
move -1 to wulfl.
endif.
leib = ''.
select vtext into (leib) from t179t
where prodh = wulfl(10) and
spras = '1'.
endselect.
xingh = ''.
select vtext into (xingh) from t179t
where prodh = wulfl and
spras = '1'.
endselect.
bombh = 0.
select stlnr into (bombh) from mast
where matnr = it_sditem1-matnr and
stlan = '1'.
endselect.
zuh = 0.
bomjis = 1.
select bmeng into (bomjis) from stko
where stlnr = bombh and
stlty = 'M'.
endselect.
select menge into (zuh)from stpo

where stlnr = bombh and

idnrk like '0000000000002%' and

stlty = 'M' .
endselect.
endif.
if kunnrit_sditem1-kunnr.
kehdq = ''.
select bzirk into (kehdq)
from knvv where kunnr = it_sditem1-kunnr .
endselect.
diqm= ''.
select bztxt into (diqm) from t171t
where bzirk = kehdq and
spras = '1'.
endselect.
kehmc = ''.
select sortl into (kehmc)
from kna1 where kunnr = it_sditem1-kunnr.
endselect.
endif.
clear it_showitem.
it_showitem-matnr = it_sditem1-matnr.
it_showitem-bynetwr = it_sditem1-netwr * -1.
it_showitem-byfklmg = it_sditem1-fkimg.
if it_showitem-byfklmg0.
it_showitem-bypingjjg = it_showitem-bynetwr /

it_showitem-byfklmg.
else.
it_showitem-bypingjjg = it_showitem-bynetwr.
endif.
it_showitem-bywavwr = it_sditem1-wavwr.
ifit_showitem-byfklmg0.
it_showitem-bypingjcb = it_showitem-bywavwr /

it_showitem-byfklmg.
else.
it_showitem-bypingjcb = it_showitem-bywavwr.
endif.
it_showitem-bydanwml = it_showitem-bypingjjg -

it_showitem-bypingjcb.
if it_showitem-bynetwr0.
it_showitem-bymll = ( it_showitem-bynetwr -

it_showitem-bywavwr ) /

it_showitem-bynetwr * 100.
else.
it_showitem-bymll = 100.
endif.
it_showitem-matnr = it_sditem1-matnr.
it_showitem-wulms = wulms.
it_showitem-xingh = xingh.
it_showitem-diqm = diqm.
it_showitem-kehdh = it_sditem1-kunnr.
it_showitem-kehmc = kehmc.
if bomjis0.
it_showitem-zuh = zuh / bomjis.
else.
it_showitem-zuh = zuh.
endif.
it_showitem-byfklmg = it_sditem1-fkimg.
append it_showitem.
matnr = it_sditem1-matnr.
kunnr = it_sditem1-kunnr.
endloop.
free it_sditem1 .
call function 'REUSE_ALV_GRID_DISPLAY'
exporting

i_callback_program = i_repid

i_structure_name = 'zsml'

i_save
= 'A'

is_variant = ivariant
tables

t_outtab = it_showitem.
free it_showitem.
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
我也遇到这个问题了,没人回答啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行