获取VA03销售订单抬头文本和行文本/READ_TEXT

这段ABAP代码主要用于从销售订单(VBBK,VBBP)中提取长文本信息,通过READ_TEXT函数读取并合并文本内容。代码强调了在进行数据查询时要进行文本存在的判断,以避免错误。
摘要由CSDN通过智能技术生成

注意点:一定要加文本是否存在判断,不然会DUMP

SELECT SINGLE tdobject
FROM stxh
INTO @lv_tdobject
      WHERE tdobject = 'VBBP'
      AND tdname = @stxh_name
      AND tdid = '0001'
      AND tdspras = '1'.

"获取销售订单抬头文本
DATA: stxh_name TYPE tdobname.
DATA text LIKE STANDARD TABLE OF tline WITH HEADER LINE.

  "获取抬头长文本
  REFRESH text.
  CLEAR text.
  stxh_name = ls_h_text-vbeln.

  SELECT SINGLE tdobject
  FROM stxh
  INTO @DATA(lv_tdobject)
  WHERE tdobject = 'VBBK'
    AND tdname = @stxh_name
    AND tdid = '0001'
    AND tdspras = '1'.
  IF sy-subrc = 0.
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        id                      = '0001'
        language                = '1'
        name                    = stxh_name
        object                  = 'VBBK'
      TABLES
        lines                   = text
      EXCEPTIONS
        id                      = 1
        language                = 2
        name                    = 3
        not_found               = 4
        object                  = 5
        reference_check         = 6
        wrong_access_to_archive = 7
        OTHERS                  = 8.
    IF sy-subrc = 0.

      CLEAR ls_t_text .

      LOOP AT text ."从TEXT中取出备注
        IF text-tdline <> ''.
          IF ls_t_text-text IS NOT INITIAL.
            ls_t_text-text = ls_t_text-text && text-tdline.
          ELSE.
            ls_t_text-text = text-tdline.
          ENDIF.
          EXIT.
        ENDIF.
      ENDLOOP.


"获取行项目长文本
REFRESH text.
CLEAR text.
stxh_name = ls_h_text-vbeln && ls_h_text-posnr.

SELECT SINGLE tdobject
FROM stxh
INTO @lv_tdobject
      WHERE tdobject = 'VBBP'
      AND tdname = @stxh_name
      AND tdid = '0001'
      AND tdspras = '1'.
IF sy-subrc = 0.

  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      id                      = '0001'
      language                = '1'
      name                    = stxh_name
      object                  = 'VBBP'
    TABLES
      lines                   = text
    EXCEPTIONS
      id                      = 1
      language                = 2
      name                    = 3
      not_found               = 4
      object                  = 5
      reference_check         = 6
      wrong_access_to_archive = 7
      OTHERS                  = 8.
  IF sy-subrc = 0.

    LOOP AT text ."从TEXT中取出备注
      IF text-tdline <> ''.
        IF ls_h_text-text IS NOT INITIAL.
          ls_h_text-text = ls_h_text-text && text-tdline.
        ELSE.
          ls_h_text-text = text-tdline.
        ENDIF.
        EXIT.
      ENDIF.
    ENDLOOP.

    MODIFY lt_h_text FROM ls_h_text TRANSPORTING text.

  ENDIF.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放弃幻想_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值