生产订单的创建与修改函数

本文介绍了如何在SAP系统中使用ABAP进行生产订单的创建和修改。通过调用函数模块'BAPI_PRODORD_CREATE'创建生产订单,详细说明了输入参数ORDERDATA的重要性以及返回信息RETURN和ORDER_NUMBER的含义。而在订单修改时,利用'BAPI_PRODORD_CHANGE',只需提供待修改订单号和需更新的ORDERDATA参数,简化了操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



创建生产订单:

'BAPI_PRODORD_CREATE‘

        CALL FUNCTION 'BAPI_PRODORD_CREATE'
        EXPORTING
          ORDERDATA        = I_ORDDATA
        IMPORTING
          RETURN           = I_RETURN
          ORDER_NUMBER     = I_ORDER_NUMBER
          ORDER_TYPE       = I_ORDER_TYPE.

输入参数主要看orderdata,填入生产订单所需信息

order_number 是输出信息

return 中保留了出错信息,如果有E类型的消息的话。


修改生产订单:

'BAPI_PRODORD_CHANGE'

 

CALL FUNCT
<think>好的,我现在需要回答用户关于在SAP中对生产订单创建进行增强的方法及实现方式的问题。根据用户提供的引用资料,我需要整理出相关的信息,并确保回答结构清晰,符合用户的要求。 首先,用户提到的Enhancement方法在引用5中有详细说明,其中提到了四代增强方式和查找方法。特别是创建Enhancement Spot和使用SE18、SE19的步骤。这可能涉及到用户出口(User Exits)、BADI(Business Add-Ins)以及隐式增强(Implicit Enhancement)等技术。 接下来,引用4提到了生产订单保存时的增强点PPCO0007,使用函数MODX_FUNCTION_ACTIVE_CHECK来检查是否激活。这说明在CO02事务代码中,保存生产订单时有特定的增强点可以利用,比如通过EXIT_SAPLCORO_001这样的出口。 另外,用户可能需要在生产订单创建过程中传递增强字段的值,如引用3中提到的计划订单生产订单时,增强字段的传值问题。这里可能需要通过RESB表查询计划订单组件,并在转换时处理增强字段的数据。 还有,引用2中提到的AET工具虽然主要用于CRM,但可能对生产订单的界面增强有参考价值,比如创建下拉菜单字段,但需要确认是否适用于生产订单模块。 现在需要将以上信息整合成一个结构化的回答,分步骤说明Enhancement的方法和实现方式,并确保每个步骤都有对应的引用支持。同时,要检查是否需要代码示例,如用户提供的示例中有Python代码,但SAP增强通常使用ABAP,所以可能需要ABAP代码片段。 还需要注意用户提到的系统级指令,比如数学公式的格式,但在这个问题中可能不涉及数学公式,所以可以忽略。但需要确保使用正确的LaTeX格式,如果遇到变量或代码等,按规则处理。 然后,生成相关问题,需要根据回答内容提出三个相关问题,帮助用户进一步了解该主题。 最后,确保引用标记正确放置在相关段落的末尾,如引用[^5],[^4]等。</think>在SAP中对生产订单创建进行增强的实现方法及步骤如下: ### 一、SAP生产订单增强的常见方法 1. **用户出口(User Exits)** - 通过预定义的程序出口(如`EXIT_SAPLCORO_001`)插入自定义逻辑。例如,在生产订单保存时(事务代码CO02)使用增强点`PPCO0007`,通过函数`MODX_FUNCTION_ACTIVE_CHECK`检查增强是否激活。 - 实现步骤: - 使用事务码`CMOD`创建增强项目。 - 绑定预定义出口(如`COOP0001`用于生产订单相关增强)。 - 在出口函数中编写ABAP代码,实现字段校验、数据传递等逻辑。 2. **BADI(Business Add-Ins)** - 通过定义BADI实现动态增强。例如,使用`WORKORDER_UPDATE` BADI拦截生产订单创建修改事件。 - 实现步骤: - 事务码`SE18`创建或查找现有BADI。 - 事务码`SE19`实现BADI接口,编写增强逻辑(如更新批次特性值[^4])。 3. **隐式增强(Implicit Enhancement)** - 在标准程序预留的隐式增强点插入代码。例如,在函数模块`BAPI_PRODUCTIONORD_CREATE`中添加字段校验。 - 实现步骤: - 使用事务码`SE80`打开标准程序,定位隐式增强点。 - 通过`Enhancement Implementation`插入自定义逻辑。 --- ### 二、增强字段传递的实现 若需将计划订单的增强字段传递至生产订单(如引用[^3]的场景): 1. **数据来源**:计划订单组件存储在表`RESB`中,通过计划订单号(`PLNUM`)关联。 2. **增强实现**: - 在计划订单生产订单的增强点(如`MD_SET_MATERIAL_FOR_PRODUCTION`)中,通过`RESB`表获取增强字段值。 - 使用`MOVE-CORRESPONDING`或直接赋值,将值写入生产订单结构(如`AUFK`或`AFPO`扩展字段)。 ```abap " 示例:从RESB表获取增强字段并赋值 DATA: lt_resb TYPE TABLE OF resb, lv_zfield TYPE zcustom_field. SELECT * FROM resb INTO TABLE lt_resb WHERE plnum = lv_plnum. IF sy-subrc = 0. lv_zfield = lt_resb[1]-zfield. " 假设zfield为增强字段 " 将lv_zfield写入生产订单结构 ENDIF. ``` --- ### 三、界面增强权限控制 1. **屏幕字段增强** - 使用`Screen Painter`(事务码`SE51`)在生产订单创建界面(如事务码CO01)添加自定义字段。 - 通过`ENHANCEMENT-SECTION`在标准屏幕中插入自定义字段[^5]。 2. **权限检查** - 在增强代码中加入权限对象校验(如`AUTHORITY-CHECK`),确保仅特定角色可操作。例如,引用[^1]中为PPARCHP1程序添加权限检查。 --- ### 四、增强部署测试 1. **注册增强容器** - 使用事务码`SE18`创建Enhancement Spot(以`Z`开头),并将增强实现绑定到容器。 2. **激活传输** - 通过事务码`SE10`将增强对象纳入传输请求,确保系统间一致性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值