当前位置: 首页 > news >正文

SAP-ABAP: 采购申请创建(PR)BAPI_PR_CREATE 技术指南-详解

BAPI_PR_CREATE 技术指南

用途:通过 RFC 接口创建 SAP 采购申请(PR),支持自动化集成与批量处理。


一、功能概览

类别说明
核心功能创建标准采购申请、预留转采购申请,支持多行项目及账户分配。
集成场景与 MRP 系统、外部采购平台、企业门户等集成,实现需求自动提报。
数据范围支持工厂、库存地点、采购组、审批策略、交货日期等关键业务字段的维护。

二、参数详解

1. 输入参数(Import Parameters)

关键结构说明
参数名结构类型必填说明
PRHEADERBAPIMEREQHEADER采购申请抬头信息,定义单据类型、采购组织等全局属性。
PRITEMBAPIMEREQITEM_T行项目明细表,包含物料、数量、工厂等核心数据。
PRACCOUNTBAPIMEREQACCOUNT_T账户分配表(如成本中心、WBS 元素),需与 ACCTASSCAT 字段匹配。
PRITEMXBAPIMEREQITEM_T字段更新标识表,标记需显式传入的字段(避免默认值覆盖问题)。
字段速查表

PRHEADER 关键字段

DOC_TYPE   TYPE BAPIMEREQHEADER-DOC_TYPE,   "单据类型(默认 'NB')
PUR_ORG    TYPE BAPIMEREQHEADER-PUR_ORG,    "采购组织(如 '0001')
PUR_GROUP  TYPE BAPIMEREQHEADER-PUR_GROUP,  "采购组(如 '001')
DELIV_DATE TYPE BAPIMEREQHEADER-DELIV_DATE, "需求日期(必填)

PRITEM 关键字段

PREQ_ITEM  TYPE BAPIMEREQITEM-PREQ_ITEM,    "行号(建议 '00010' 递增)
MATERIAL   TYPE BAPIMEREQITEM-MATERIAL,     "物料编号(需存在主数据)
PLANT      TYPE BAPIMEREQITEM-PLANT,        "工厂(与采购组织分配一致)
QUANTITY   TYPE BAPIMEREQITEM-QUANTITY,    "数量(>0)
ACCTASSCAT TYPE BAPIMEREQITEM-ACCTASSCAT,  "账户分配类型(如 'K'=成本中心)

2. 输出参数(Export Parameters)

参数名结构类型说明
PURCHASINGDOCUMENTBAPIMEREQHEADER-PREQ_NO生成的采购申请号(如 ‘4500000123’)
RETURNBAPIRET2_T执行结果消息(成功/错误明细)

三、调用示例与分步解析

1. ABAP 代码示例

DATA: 
  ls_header    TYPE BAPIMEREQHEADER,
  lt_pritem    TYPE TABLE OF BAPIMEREQITEM,
  lt_praccount TYPE TABLE OF BAPIMEREQACCOUNT,
  lt_return    TYPE TABLE OF BAPIRET2,
  lv_preq_no   TYPE BAPIMEREQHEADER-PREQ_NO.

* 1. 抬头信息配置
ls_header = VALUE #(
  DOC_TYPE   = 'NB'             "采购申请类型
  PUR_ORG    = '0001'           "采购组织
  PUR_GROUP  = '001'            "采购组
  DELIV_DATE = sy-datum + 30    "30天后交货
).

* 2. 行项目配置
APPEND VALUE #(
  PREQ_ITEM  = '00010'          "行号
  MATERIAL   = 'MAT-1000'       "物料号(需在MM01中存在)
  PLANT      = '1000'           "工厂
  QUANTITY   = 5                "数量
  UNIT       = 'EA'             "单位
  ACCTASSCAT = 'K'              "成本中心分配
) TO lt_pritem.

* 3. 账户分配配置(若 ACCTASSCAT=K)
APPEND VALUE #(
  PREQ_ITEM  = '00010'          "关联行号
  CO_AREA    = '1000'           "控制范围
  COSTCENTER = 'KOSTEN_001'     "成本中心(需在KS03激活)
) TO lt_praccount.

* 4. 执行 BAPI
CALL FUNCTION 'BAPI_PR_CREATE'
  EXPORTING
    PRHEADER           = ls_header
  IMPORTING
    PURCHASINGDOCUMENT = lv_preq_no
  TABLES
    PRITEM             = lt_pritem
    PRACCOUNT          = lt_praccount
    RETURN             = lt_return.

* 5. 事务提交与错误处理
IF lt_return IS INITIAL.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
  WRITE: / 'PR Created:', lv_preq_no.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  LOOP AT lt_return INTO DATA(ls_msg).
    WRITE: / ls_msg-type, ls_msg-message.
  ENDLOOP.
ENDIF.

2. 关键步骤说明

  1. 抬头配置:确保采购组织与工厂的分配关系(SPRO: Materials Management > Purchasing > Assign Purchasing Organization to Plant)。
  2. 行项目校验:物料主数据需存在且采购视图维护完整(MM03 检查)。
  3. 账户分配:若使用成本中心,需确保其有效性(KS03 检查状态和有效期)。

四、注意事项与常见问题

1. 必填字段校验

字段检查点事务码
MATERIAL物料采购视图是否维护MM03
PLANT工厂是否分配给采购组织SPRO
COSTCENTER成本中心是否在有效期内KS03

2. 事务控制

  • 显式提交:BAPI 不自动提交,需调用 BAPI_TRANSACTION_COMMIT
  • 错误回滚:若 RETURN 表包含错误(Type = ‘E’),必须调用 ROLLBACK

3. 增强与扩展

  • 自定义字段:通过 EXTENSIONIN 传递扩展结构(需提前通过 CMOD 增强 ME_REQ_HEAD 或 ME_REQ_ITEM)。
  • 审批流触发:调用 BAPI_REQUISITION_RELEASE 触发后续审批。

五、故障排查指南

错误现象可能原因解决方案
物料不存在或采购视图缺失物料未维护采购组织/工厂MM01 维护采购视图
采购组未分配采购组织采购主数据配置错误SPRO 检查采购组分配
成本中心无效未激活或控制范围不匹配KS03 检查成本中心主数据
行项目数量为0QUANTITY 字段未传值检查代码逻辑或输入参数

六、扩展工具与参考

工具/事务码用途
ME53N查看生成的采购申请
BAPI_PR_GETDETAIL获取采购申请详细信息
BAPI_PR_CHANGE修改已有采购申请
SU22检查用户权限(对象 B_PURCHREQ

通过此优化结构,读者可快速定位参数定义、代码示例及常见问题,同时遵循 SAP 最佳实践确保集成稳定性。

相关文章:

  • (2025|ICLR|华南理工,任务对齐,缓解灾难性遗忘,底层模型冻结和训练早停)语言模型持续学习中的虚假遗忘
  • Spring Boot 与 Couchbase 整合教程
  • 麒麟银河V10服务器RabbitMQ安装
  • linux内核数据结构分析之链表
  • 简单几步完成dify的本地搭建
  • Qt窗口坐标体系
  • 2025年,电脑还需要分区吗?
  • QEMU源码全解析 —— 块设备虚拟化(6)
  • ospf动态路由
  • 【Linux】:自定义协议(应用层)
  • 信息学奥赛一本通 1831:【03NOIP提高组】神经网络 | 洛谷 P1038 [NOIP 2003 提高组] 神经网络
  • 数据结构(C\C++)——顺序表
  • 【MySQL数据库】存储过程与自定义函数(含: SQL变量、分支语句、循环语句 和 游标、异常处理 等内容)
  • 前端iView面试题及参考答案
  • 【大模型基础_毛玉仁】3.3 思维链
  • `fetch` 和 `axios`的前端使用区别
  • 基于Spring Boot的流浪动物救助平台的设计与实现(LW+源码+讲解)
  • Jetson Nano 三个版本(B01 4GB、Orin 4GB、Orin 8GB)本地部署Deepseek等大模型的测评
  • 机器学习开发完整流程
  • STM32HAL库,解决串口UART中断接收到的第一个字节数据丢失
  • 美国经济萎缩意味着什么?关税政策如何反噬经济?
  • 超越梅罗,这样一个亚马尔折射巴萨的容错率
  • 2025年第一批“闯中人”已经准备好了
  • 证监会:坚决拥护党中央对王建军进行纪律审查和监察调查决定
  • 全国人民代表大会常务委员会公告〔十四届〕第十号
  • 美航母撞船后又遇战机坠海,专家:长时间作战部署疲于奔命是主因