Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7189290
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2009-07-25 14:34:16

网友: 城市火柴 时间:2009-07-24 09:41:32
    lt_pritemtext-preq_no   = t_head-banfn.   ”单号
    lt_pritemtext-preq_item = t_body-bnfpo.  ”行号
    lt_pritemtext-text_id   = 'B01'.
    lt_pritemtext-text_form = '*'.
    lt_pritemtext-text_line = t_body-potxt.
    APPEND lt_pritemtext.

    CALL FUNCTION 'BAPI_PR_CHANGE'
      EXPORTING
        number     = t_head-banfn
      TABLES
        pritem     = lt_pritem
        pritemx    = lt_pritemx
        pritemtext = lt_pritemtext
        return     = it_return.

我在通过这个bapi修改项目文本的时候,行号我都赋值了,可是修改完毕后发现行号和文本不一一对应,多行的文本被合并到一行,这个是什么原因呢?text_form的原因?

 

我做了一个测试,这样写似乎并无不妥:

REPORT  z_barry_bapi_pr_change.

DATA: itemtext TYPE bapimereqitemtext OCCURS 0 WITH HEADER LINE,
      i_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE .

PARAMETERS p_banfn LIKE eban-banfn .

START-OF-SELECTION.

  itemtext-preq_no = p_banfn.
  itemtext-preq_item = '00010'.
  itemtext-text_id  = 'B01'.
  itemtext-text_form = '*'.
  itemtext-text_line = 'aaaa'.
  APPEND itemtext.
  itemtext-text_form = '/'.
  itemtext-text_line = 'bbbb'.
  APPEND itemtext.

  itemtext-preq_item = '00020'.
  itemtext-text_form = '*'.
  itemtext-text_line = 'cccc'.
  APPEND itemtext.
  itemtext-text_form = '*'.
  itemtext-text_line = 'dddd'.
  APPEND itemtext.

  CALL FUNCTION 'BAPI_PR_CHANGE'
    EXPORTING
      number     = p_banfn
    TABLES
      return     = i_return[]
      pritemtext = itemtext[].

  COMMIT WORK AND WAIT .

  LOOP AT i_return.
    WRITE / i_return-message .
  ENDLOOP.

 

 
 
阅读(8557) | 评论(8) | 转发(2) |
给主人留下些什么吧!~~

qdbarry2009-08-04 11:25:07

我上面的例子是ECC6的,没有错误,但是ECC5和470都是有Bug的。 470的Bug是: 临时内表没有清空,数据向下累积,比如本例会成为: 10: aaaa bbbb 20: aaaa bbbb cccc dddd ECC5的Bug是: 没有根据行项目做筛选,导致所有的行项目都是同样的内容,本例为: 10: aaaa bbbb cccc dddd 20: aaaa bbbb cccc dddd ECC5的解决方法是更改lcl_bapi_item的METHOD map2i_item_texts,在语句LOOP AT me->my_header->my_parent->my_bapi_itemtext加上行项目的条件。

chinaunix网友2009-07-27 09:56:06

在SAVE_TEXT设个断点看看吧

城市火柴2009-07-27 08:43:07

老白,我新建一张申请,用你的代码去修改文本出来的结果是下边的,第一行和第二行都是同样的文本,都是下边这样: aaaa bbbb cccc dddd