在我们的日常SAP开发工作中,经常会遇到由计划订单创建生产订单的需求。
尤其是批量创建的时候,需要用到今天讲到的SAP BAPI 函数BAPI_PRODORD_CREATE_FROM_PLORD。
这个函数大体如下:
导入参数:
参数名称 | 关联类型 | 缺省值 | 可选的 | 值传递 | 说明 |
PLANNED_ORDER | BAPI_PLDORD-PLDORD_NUM | 否 | 是 | Planned Order Number
计划订单 关联:BAPI_PLDORD(转换结构:BAPI 计划订单号码) 关联说明见下文 |
|
ORDER_TYPE | BAPI_ORDER_COPY-ORDER_TYPE | 是 | 是 | Order Type
订单类型 关联:BAPI_ORDER_COPY(传输结构 PP/PI 订单(用模板创建)) 关联说明见下文 |
|
ORDER_NUMBER | BAPI_ORDER_COPY-ORDER_NUMBER | 是 | 是 | Order Number
订单号 关联:BAPI_ORDER_COPY(传输结构 PP/PI 订单(用模板创建)) 关联说明见下文 |
BAPI_PLDORD:计划订单号码
字段 | 主键 | 数据元素 | 数据类型 | 长度 | 小数位 | 短文本 |
PLDORD_NUM | PLNUM | CHAR | 10 | 0 | 计划订单 |
传输结构 PP/PI 订单(用模板创建)
字段 | 主键 | 数据元素 | 数据类型 | 长度 | 小数位 | 短文本 |
REFERENCE_ORDER | AUFREFNR | CHAR | 12 | 0 | 参考订单号 | |
ORDER_TYPE | AUFART | CHAR | 4 | 0 | 订单类型 | |
ORDER_NUMBER | AUFNR | CHAR | 12 | 0 | 订单号 | |
BASIC_START_DATE | CO_GSTRP | DATS | 8 | 0 | 基本开始日期 | |
BASIC_START_TIME | CO_GSUZP | TIMS | 6 | 0 | 基本开始(时间) | |
BASIC_END_DATE | CO_GLTRP | DATS | 8 | 0 | 基本完成日期 | |
BASIC_END_TIME | CO_GLUZP | TIMS | 6 | 0 | 基本完成(时间) |
导出
参数名称 | 关联类型 | 值传递 | 说明 |
PRODUCTION_ORDER | BAPI_ORDER_COPY-ORDER_NUMBER | Order Number
订单号 关联:BAPI_ORDER_COPY(传输结构 PP/PI 订单(用模板创建)) 关联说明见下文 |
|
PROD_ORDER_TYPE | BAPI_ORDER_COPY-ORDER_TYPE | Order Type
订单类型 关联:BAPI_ORDER_COPY(传输结构 PP/PI 订单(用模板创建)) 关联说明见下文 |
|
RETURN | BAPIRET2 | Return Parameters
返回参数 关联:BAPIRET2(返回参数) 关联说明见下文 |
BAPI_ORDER_COPY
字段 | 主键 | 数据元素 | 数据类型 | 长度 | 小数位 | 短文本 |
REFERENCE_ORDER | AUFREFNR | CHAR | 12 | 0 | 参考订单号 | |
ORDER_TYPE | AUFART | CHAR | 4 | 0 | 订单类型 | |
ORDER_NUMBER | AUFNR | CHAR | 12 | 0 | 订单号 | |
BASIC_START_DATE | CO_GSTRP | DATS | 8 | 0 | 基本开始日期 | |
BASIC_START_TIME | CO_GSUZP | TIMS | 6 | 0 | 基本开始(时间) | |
BASIC_END_DATE | CO_GLTRP | DATS | 8 | 0 | 基本完成日期 | |
BASIC_END_TIME | CO_GLUZP | TIMS | 6 | 0 | 基本完成(时间) |
BAPIRET2
返回参数,和其他bapi类似,都是通用结构,记得处理好成功状态的消息和失败/异常的所有消息。
字段 | 主键 | 数据元素 | 数据类型 | 长度 | 小数位 | 短文本 |
TYPE | BAPI_MTYPE | CHAR | 1 | 0 | 消息类型: S 成功,E 错误,W 警告,I 信息,A 中断 | |
ID | SYMSGID | CHAR | 20 | 0 | 消息类 | |
NUMBER | SYMSGNO | NUMC | 3 | 0 | 消息编号 | |
MESSAGE | BAPI_MSG | CHAR | 220 | 0 | 消息文本 | |
LOG_NO | BALOGNR | CHAR | 20 | 0 | 应用程序日志: 日志号 | |
LOG_MSG_NO | BALMNR | NUMC | 6 | 0 | 应用日志:内部邮件序列号 | |
MESSAGE_V1 | SYMSGV | CHAR | 50 | 0 | 消息变量 | |
MESSAGE_V2 | SYMSGV | CHAR | 50 | 0 | 消息变量 | |
MESSAGE_V3 | SYMSGV | CHAR | 50 | 0 | 消息变量 | |
MESSAGE_V4 | SYMSGV | CHAR | 50 | 0 | 消息变量 | |
PARAMETER | BAPI_PARAM | CHAR | 32 | 0 | 参数名称 | |
ROW | BAPI_LINE | INT4 | 10 | 0 | 参数中的行 | |
FIELD | BAPI_FLD | CHAR | 30 | 0 | 参数中的字段 | |
SYSTEM | BAPILOGSYS | CHAR | 10 | 0 | 引发消息的逻辑系统 |
hot583.com提供了部分验证成功的测试代码,也可以关注微信公众号获取更多代码。
DATA:
ld_production_order TYPE BAPI_ORDER_COPY-ORDER_NUMBER ,
ld_prod_order_type TYPE BAPI_ORDER_COPY-ORDER_TYPE ,
ld_return TYPE BAPIRET2 .
DATA(ld_planned_order) = some text here
DATA(ld_order_type) = some text here
DATA(ld_order_number) = some text here
.
CALL FUNCTION ‘BAPI_PRODORD_CREATE_FROM_PLORD’
EXPORTING
planned_order = ld_planned_order
* order_type = ld_order_type
* order_number = ld_order_number
IMPORTING
production_order = ld_production_order
prod_order_type = ld_prod_order_type
return = ld_return
. ” BAPI_PRODORD_CREATE_FROM_PLORD
IF SY-SUBRC EQ 0.
“All OK 生产订单创建成功
ENDIF.
本文链接 :http://www.hot583.com/2022/04/14/bapi_prodord_create_from_plord/
本文为作者原创,如果这篇文章对您有用,欢迎转载,
转载请务必注明来源《今日热点在看》http://www.hot583.com/
我的微信公众号【 hot583 】 或者在这个链接联系我
微信原文《全文完》