cancel
Showing results for 
Search instead for 
Did you mean: 

F110的替代问题

former_member403242
Participant
0 Kudos

我现在准备用替代的方式,替换F110的Payment 的会计凭证的BKPF-XBLNR和BSEG-SGTXT。

但是却遇到一些问题:

1. BKPF-XBLNR我准备取原始凭证的编号。比如付款的是供应商的发票,那么就取发票的凭证号。

我的替代的程序如下:

data: e_belnr like bseg-belnr,

i_laufi like regup-laufi,

i_bktxt like bkpf-bktxt.

clear: i_laufi, i_bktxt.

split bkpf-bktxt at '-' into i_bktxt i_laufi.

select single belnr into e_xblnr

from regup

where laufi = i_laufi

and vblnr = bkpf-belnr

and blart = 'RE'

and koart = 'K'.

执行后,没有任何结果。我怀疑执行替代的时候BKPF-BELNR没有记录。有什么办法可以解决这个问题呢?

2. BSEG-SGTXT的问题和BKPF-XBLNR类似。

多谢各位!

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

1、确定你要替代的字段在系统中是否允许替代。(新建步骤的时候可以看出时候这些字段能被选择)

2、确定你的select语句的sy-subrc = 0 。(debug一下)

3、确定你在语句中替换了bseg结构中的数据。(把你查询的结果直接更改到bseg的相关字段。)

gladys_xing
Active Contributor
0 Kudos

我认为你选择的条件不是唯一的(from regup

where laufi = i_laufi

and vblnr = bkpf-belnr

and blart = 'RE'

and koart = 'K'.),所以系统不能选出你要的BELNR.也就导致执行后没有结果

请参看REGUP里的primary key from SE11.

former_member403242
Participant
0 Kudos

谢谢你的回复。

但是我认为这个是唯一的选择。因为我设置了individual payment,所以payment 和发票之间是1对1的关系。

我猜想sap在替代运行的时候还没有更新相关凭证的clearing document number。所以我后来改用其他条件来选择,已经解决这个问题了。

Answers (1)

Answers (1)

Former Member
0 Kudos

你总得说说你的程序是在哪里被执行的吧?一个单独的程序靠一个Select是不可能替换任何东西的对吧?

former_member403242
Participant
0 Kudos

我定义了替代来替换BKPF-XBLNR。替代是使用User Exist,程序的内容就是我贴出来的部分。

替代是定义在Document Header中。

Edited by: Amy Xie on Nov 2, 2010 9:37 AM

Former Member
0 Kudos

你别挤牙膏啊,你用的是哪个User Exit?问问题也是个学问,要让别人明白你的需求和你的处境。

former_member403242
Participant
0 Kudos

先生,发难之前请先看看我的回答。我已经说得很清楚了,用了替代,是用User Exit的方式。替代中的User Exist,还不够明白吗?请看看GGB1。谢谢!