SAP 销售订单的文本项目

本文介绍如何使用ABAP编程语言中的函数READ_TEXT和CREATE_TEXT来读取和创建文本记录。通过具体的代码示例展示了如何为销售订单等业务对象创建或读取附加文本。

http://blog.itpub.net/9859323/viewspace-616508/

ls_hdname = wa_vbak-vbeln .
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        client                  = sy-mandt
        id                      '0001'
        language                '1'
        name                    = ls_hdname
        object                  'VBBK'
*       ARCHIVE_HANDLE          = 0
*       LOCAL_CAT               = ' '
*     IMPORTING
*       HEADER                  =
      TABLES
        lines                   = lt_lines
      EXCEPTIONS
        id                      1
        language                2
        name                    3
        not_found               4
        object                  5
        reference_check         6
        wrong_access_to_archive 7
        OTHERS                  8.

 

如果是要用ABAP代码创建文本用函数CREATE_TEXT,修改文本用SAVE_TEXT

贴上用过的几个代码:

创建抬头文本
call function ‘CREATE_TEXT’
    exporting
      fid       = ‘0001′
      flanguage = ‘1′
      fname     = s_deliv_numb
      fobject   = ‘VBBK’
    tables
      flines    = it_texts.

  refresh it_texts.

创建行项目文本
call function ‘CREATE_TEXT’
      exporting
        fid       = wa_thead-tdid
        flanguage = ‘1′
        fname     = wa_thead-tdname
        fobject   = ‘VBBP’
      tables
        flines    = it_texts.

转载于:https://www.cnblogs.com/eagle-dtq/p/5347681.html

<think>好的,用户想知道如何在SAP中实现销售订单创建的增强处理。我需要根据提供的引用内容,整理出一个清晰的步骤。首先,我应该看看用户提供的三个引用,看看里面提到了哪些关键点。 引用[1]提到在创建销售订单时检查抬头长文本必输的增强,使用了函数组SAPLSTXD和特定的内存参数ID。这可能涉及到在保存或读取长文本时的检查逻辑。 引用[2]和[3]都提到了隐式增强点。引用[2]指出增强位置在MV45AF0C_CHANGE_DOCUMENT_CREAT的FORM change_document_create中,而引用[3]提到在程序MV45AFZZ中的FORM userexit_save_document_prepare。这说明有两个不同的增强点:一个是在创建变更文档时,另一个是在保存前的准备阶段。 接下来,我需要将这些信息组织成步骤。首先,用户可能需要了解不同的增强方式,比如隐式增强和用户出口。然后,具体步骤可能包括找到正确的增强点、编写代码、测试等。需要确保每个步骤都清晰,并且引用正确的来源。 同时,用户可能还想知道这些增强点的具体位置,比如如何通过SE38或SE80找到这些程序。例如,FORM userexit_save_document_prepare是在MV45AFZZ程序中,这是一个常见的用户出口,用户可能需要在这里添加自定义逻辑。 另外,引用[1]中的长文本检查可能涉及到特定的函数组和内存参数,需要说明如何获取这些参数并实现必输性检查。这可能包括调用SAP提供的函数或使用内存参数来强制长文本输入。 最后,生成相关问题时要考虑用户可能的后续疑问,比如如何调试增强、其他增强点或权限问题。这些问题可以帮助用户进一步探索相关内容。 需要确保回答结构清晰,分步骤说明,并正确引用每个步骤对应的引用来源。避免技术术语过多,但保持准确性。同时,检查是否符合之前的格式要求,如使用中文,正确使用LaTeX格式等。</think>在SAP中实现销售订单创建的增强处理可通过以下方法实现: ### 一、增强类型与实现路径 1. **用户出口增强**(User Exit) - 在标准程序`MV45AFZZ`中使用预定义的`FORM userexit_save_document_prepare`,这是SAP提供的标准用户出口[^3] ```abap FORM userexit_save_document_prepare. " 添加自定义校验逻辑 IF vbap-posnr = ''. MESSAGE e001(zsd_order) WITH '项目号必填'. ENDIF. ENDFORM. ``` 2. **隐式增强点** - 在包含文件`MV45AF0C_CHANGE_DOCUMENT_CREAT`的`FORM change_document_create`第一行插入代码[^2] $$ \text{增强位置示例:} \quad \text{ENHANCEMENT 1 ZSD_ORDER_ENH.} \quad \text{ENDENHANCEMENT} $$ ### 二、长文本必输性增强(引用[1]实现) 1. **通过函数组`SAPLSTXD`获取文本参数** ```abap DATA: lv_object TYPE thead-tdobject VALUE 'VBBK', lv_id TYPE thead-tdid VALUE 'Z001'. CALL FUNCTION 'STXT_GET_MEMORY_ID' EXPORTING object = lv_object id = lv_id IMPORTING memory_id = lv_memory_id. ``` 2. **在保存前校验长文本** ```abap IF sy-tcode = 'VA01' AND text_is_empty = 'X'. MESSAGE e398(00) WITH '抬头长文本必须填写'. ENDIF. ``` ### 三、增强实现步骤 1. **定位增强点** - 使用事务码`SE38`打开程序`MV45AFZZ` - 使用事务码`SE80`查找包含文件`MV45AF0C_CHANGE_DOCUMENT_CREAT` 2. **代码调试方法** - 在销售订单保存时设置断点`/h` - 跟踪标准程序执行路径找到可插入增强的位置 3. **传输管理** - 通过`SE21`创建增强包 - 使用`CTS`传输请求管理变更
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值