创建生产订单函数BAPI_PRODORD_CREATE
创建生产订单,创建订单长文本,订单下达
DATA:gs_bapi_pp_order_create TYPE bapi_pp_order_create.
DATA:gt_bapi_order_key TYPE TABLE OF bapi_order_key,
gs_bapi_order_key TYPE bapi_order_key,
gt_order_return TYPE TABLE OF bapi_order_return WITH HEADER LINE.
DATA:gs_return TYPE bapiret2,
gt_return TYPE bssp_t_message,
gw_return TYPE bssp_s_message,
gv_order_number TYPE bapi_order_key-order_number.
DATA:gt_tline TYPE TABLE OF tline,
gw_tline TYPE tline.
CLEAR:gt_return[],gs_return.
DATA:gs_keko TYPE keko.
DATA:gv_message TYPE string. DATA:lv_int TYPE i.
DATA:g_fname TYPE thead-tdname.
CLEAR:lv_int.
LOOP AT gt_zstybcp INTO gw_zstybcp WHERE sel = 'X' AND aufnr = ''.
lv_int = lv_int + .
"add by ly 20151124
SELECT SINGLE * INTO CORRESPONDING FIELDS OF gs_keko
FROM keko WHERE matnr = gw_zstybcp-matnr
AND werks = gw_zstybcp-werks
AND bwkey = gw_zstybcp-werks
AND kadat LE sy-datum
AND bidat GE sy-datum
AND freig = 'X'.
IF sy-subrc <> .
gv_message = gv_message && ' ' && gw_zstybcp-matnr.
* MESSAGE '物料' && gw_zstybcp-matnr && '请先下达标准成本估算!' TYPE 'S' DISPLAY LIKE 'E'.
EXIT.
ENDIF.
"add by ly 20151124
ENDLOOP.
"仅限选择一行,且选择行中的办成品油已生成生产订单,直接调用T-code 到修改界面 IF gv_message IS INITIAL.
ELSE.
MESSAGE '物料' && gv_message && '未下达标准成本估算!' TYPE 'S' DISPLAY LIKE 'E'.
EXIT.
ENDIF. IF lv_int <> . ELSE.
MESSAGE '请选择调油半成品生产订单为空的行项目!' TYPE 'S' DISPLAY LIKE 'E'.
EXIT.
ENDIF.
* PERFORM PRM_DATA_CHECK.
LOOP AT gt_zstybcp INTO gw_zstybcp WHERE sel = 'X' AND aufnr = ''."ADD BY 20150716 LY FOR 批量创建
CLEAR:gs_return,gw_return,gt_order_return[],gt_bapi_order_key[],gs_bapi_order_key.
gs_bapi_pp_order_create-material = gw_zstybcp-matnr."订单物料号
gs_bapi_pp_order_create-plant = gw_zstybcp-werks."订单工厂
gs_bapi_pp_order_create-planning_plant = gw_zstybcp-werks."计划工厂
gs_bapi_pp_order_create-basic_start_date = gw_zstybcp-gstrp."基础开始日期
gs_bapi_pp_order_create-basic_end_date = gw_zstybcp-gstrp."基准解释日期
gs_bapi_pp_order_create-quantity = gw_zstybcp-bdmng."订单数量
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT' "单位
EXPORTING
input = gw_zstybcp-meins
* LANGUAGE = SY-LANGU
IMPORTING
output = gs_bapi_pp_order_create-quantity_uom
EXCEPTIONS
unit_not_found =
OTHERS = .
IF sy-subrc <> .
ENDIF. * GS_BAPI_PP_ORDER_CREATE-QUANTITY_UOM = GW_ZSTYBCP-MEINS."单位
gs_bapi_pp_order_create-goods_recipient = gw_zstybcp-wempf."收货方
* GS_BAPI_PP_ORDER_CREATE-GOODS_RECIPIENT = GW_ZSTYBCP-MEINS.
gs_bapi_pp_order_create-order_type = 'DL02'.
"调用订单创建函数创建调油半成品生产订单
CALL FUNCTION 'BAPI_PRODORD_CREATE'
EXPORTING
orderdata = gs_bapi_pp_order_create
IMPORTING
return = gs_return
order_number = gv_order_number. IF gs_return-type IS NOT INITIAL."消息填表
gw_return-msgid = gs_return-id.
gw_return-msgty = gs_return-type.
gw_return-msgno = gs_return-number.
gw_return-msgv1 = gs_return-message_v1.
gw_return-msgv2 = gs_return-message_v2.
gw_return-msgv3 = gs_return-message_v3.
gw_return-msgv4 = gs_return-message_v4.
APPEND gw_return TO gt_return.
ENDIF.
* APPEND GS_RETURN TO GT_RETURN."消息填表 IF gs_return-type = 'E' OR gs_return = 'A'.
* CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
gw_zstybcp-icon = '@OA@'.
gw_zstybcp-message = gs_return-message.
ELSE.
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* wait = 'X'.
gw_zstybcp-icon = '@08@'.
gw_zstybcp-message = '成功创建调油半成品生产订单'.
gw_zstybcp-aufnr = gv_order_number.
gw_zstybcp-psmng = gw_zstybcp-bdmng.
gw_zstybcp-amein = gw_zstybcp-meins. CONCATENATE sy-mandt gv_order_number INTO g_fname.
gw_tline-tdformat = .
gw_tline-tdline = gw_zstybcp-ztiay.
APPEND gw_tline TO gt_tline. CALL FUNCTION 'CREATE_TEXT'
EXPORTING
fid = 'KOPF'
flanguage = sy-langu
fname = g_fname
fobject = 'AUFK'
TABLES
flines = gt_tline
EXCEPTIONS
no_init =
no_save =
OTHERS = .
IF sy-subrc <> .
ENDIF.
IF sy-subrc = .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ENDIF. WAIT UP TO SECONDS.
UPDATE aufk SET ltext = '' WHERE aufnr = gv_order_number.
COMMIT WORK. gs_bapi_order_key-order_number = gv_order_number.
APPEND gs_bapi_order_key TO gt_bapi_order_key. "ADD BY LY 20150610订单下达
CALL FUNCTION 'BAPI_PRODORD_RELEASE'
* EXPORTING
* RELEASE_CONTROL = '1'
* WORK_PROCESS_GROUP = 'COWORK_BAPI'
* WORK_PROCESS_MAX = 99
* IMPORTING
* RETURN =
TABLES
orders = gt_bapi_order_key
detail_return = gt_order_return.
READ TABLE gt_order_return WITH KEY type = 'E'.
IF sy-subrc <> .
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* wait = 'X'.
ELSE.
* CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. CONCATENATE '订单' gv_order_number '下达失败,请手动下达!' INTO gw_return-msgv1.
MESSAGE gw_return-msgv1 TYPE 'S' DISPLAY LIKE 'E'.
ENDIF. ENDIF.
MODIFY gt_zstybcp FROM gw_zstybcp.
ENDLOOP. * IF GT_RETURN[] IS NOT INITIAL."消息显示
* CALL FUNCTION 'BSSP2_MESSAGE_POPUP'
* EXPORTING
* IT_MESSAGE = GT_RETURN
* IF_SAVE_NECESSARY = ''.
* ENDIF.
创建生产订单函数BAPI_PRODORD_CREATE的更多相关文章
- ABAP 生产订单的创建与修改函数
ABAP 生产订单的创建与修改函数转自http://www.cnblogs.com/aBaoRong/archive/2012/04/11/2441946.html 如果生产订单过多,可以批量创建 ...
- PP生产订单创建、下达、报工、收货、投料
转自http://blog.sina.com.cn/s/blog_69fb8eb60102vpjd.html SAP 物料订单创建.下达.报工.收货与投料(ABAP代码) (2015-06-03 22 ...
- 物料BOM和生产订单BOM的区别
物料BOM和生产订单BOM的区别[@more@] 一般企业生产部在SAP创建生产订单的时候,就会产生一个生产订单BOM,这里的生产订单BOM是读取的物料BOM. 由于其它原因,需要修改成品的某几个零部 ...
- SAP S/4HANA生产订单的BAdI增强点之Initialize方法
在S/4HANA里创建生产订单时,有一个增强点WORKORDER_UPDATE: 这个CAUFVDB里存放的是生产订单抬头级别的数据: 我们来观察下运行时这个结构里存放的数据. 请大家用我github ...
- 为什么S/4HANA的生产订单创建后会自动release
在S/4HANA系统里我们观察到通过函数CO_61_ORDER_EDIT创建的生产订单会自动释放Release: 通过第86行的IF语句的条件检测不难找到原因. 变量PROFILE_TMP的类型为TC ...
- 为什么S/4HANA的销售订单创建会触发生产订单的创建
调用S/4HANA销售订单创建函数SD_SALES_DOCU_MAINTAIN创建一个销售订单时,会触发生产订单的创建. 销售订单的每个行项目对应一个独立的生产订单,SD_SALES_DOCU_MAI ...
- SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的
大家如果使用我github上的这段代码创建S/4HANA的生产订单时,一定会发现,我在代码里并没有硬编码来指定生产订单的ID,然而运行时会发现我在系统里配置的这个2800被自动使用了,这是怎么做到的呢 ...
- PP-判断生产订单状态(关闭)
方法一.工单号通过 resb找到对象号 然后找到状态为I0045利用表JEST与TJ02T . 方法二.函数'STATU_CHECK' 检查工单状态为'I0045' 则为已做技术性关闭. READ T ...
- 增强篇4 CO01生产订单屏幕增强
Step1. 结构 CO_AUFK 里增加自定义字段:ZZZ_TRIAL 然后激活结构 查看AUFK是激活状态, 字段增强完成: Step2. CMOD 使用客户增强:PPCO0012 生产订 ...
随机推荐
- wordpress中文标签无法访问的解决方法
wordpress中文标签无法访问的解决方法 爱好 2年前 (2014-05-29) 7,601 8 当博客从华夏名网转移到阿里云之后,发现了不少问题,其中一个就是wordpress中文标签无 ...
- 《Linux内核设计的艺术》学习笔记(五)INT 0x10中断
参考书籍: 1. <IBM-PC汇编语言程序设计> 2. http://www.ctyme.com/intr/int-10.htm ◆ 设置显示方式: 功能号:AH = 00H 调用参 ...
- Phantomjs 在cmd命令行显示中文乱码
cmd命令行窗口显示中文乱码 cmd中文支持gbk编码 在js执行文件中加上(一般在最开始加) phantom.outputEncoding="gbk"; 这样乱码就正确了
- web设计经验<五>国外设计师总结的7个找灵感实用方法
每个设计师不时会有创意灵感缺失.大脑一片空白的状态.盯着一个空白的屏幕,发愁着“好吧,我现在该做什么呢?该怎么做呢?”有些人喜欢静待,但这不是唯一的一个方法.焦虑的客户或者是你自己的不耐烦,都会让你无 ...
- JavaSE复习_5 Eclipse的常见操作
△用鼠标点击生成的java源文件,按下F4可以观察类的生成的层次结构 △window-showreview:可以显示命令窗口. window-perspective-reset:可以将打乱的命令窗 ...
- number-of-segments-in-a-string
https://leetcode.com/problems/number-of-segments-in-a-string/ package com.company; class Solution { ...
- Java 文件IO
文件IO Java IO IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 按操作数据分为 字节流和字符流 字符流的 ...
- html的空格和换行显示【摘自网络】
一.HTML 代码中的所有连续的空格或空行(换行)都会被显示为一个空格,不管是内容还是标签之间. 二.当我们想让它们在同一行连续显示时,就让所有的代码之间没有空格,也不要换行. 三.当我们想要显示连续 ...
- matlab 自动阈值白平衡算法 程序可编译实现
一种效果很好的自动白平衡技术(WhiteBalance) 白平衡是图像处理的一个极重要概念.所谓白平衡(英文名称为White Balance),就是对白色物体的还原.当我们用肉眼观看这大千世界时,在不 ...
- APMServ本地搭建网站最好用的软件
APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9.PHP 5.2.6.MySQL 5.1.28&4.0.26.Nginx 0.7.19.Memcached 1. ...