CO02生产订单新增组件
"-----------------------------------------@斌将军--------------------------------------------
LOOP AT it_in. ls_storage_location-werks = it_in-werks."工厂
ls_storage_locationx-werks = 'X'. ls_storage_location-lgort = it_in-lgort."库存地点
ls_storage_locationx-lgort = 'X'. lv_kdauf = it_in-kdauf."销售订单
lv_kdaufx = 'X'."
lv_kdpos = it_in-kdpos."销售订单中的条款数
lv_kdposx = 'X'." CLEAR:lv_operation,lv_sequence,lv_gamng.
READ TABLE lt_afko INTO DATA(ls_afko) WITH KEY aufnr = it_in-aufnr.
IF sy-subrc EQ 0.
lv_operation = ls_afko-aplzl.
lv_sequence = ls_afko-plnfl.
lv_gamng = ls_afko-gamng.
ENDIF. ls_requ_quan-quantity = lv_gamng * it_in-menge."数量
ls_requ_quan-uom = it_in-meins."基本计量单位
lv_postp = 'L'."项目类别(物料单)
lv_material = it_in-matnr."物料编号
lv_order_number = it_in-aufnr. CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
EXPORTING
input = it_in-posid "(WBS 要素)
IMPORTING
output = lv_pspel. lv_pspelx = 'X'." CLEAR:lv_sobkz,lv_sobkzx.
READ TABLE lt_marc INTO DATA(ls_marc) WITH KEY matnr = it_in-matnr werks = it_in-werks.
IF sy-subrc EQ 0.
IF ls_marc-sbdkz = '2'.
CLEAR:it_in-kdauf."销售订单
CLEAR:it_in-kdpos."销售订单中的条款数
CLEAR:it_in-posid. "(WBS 要素)
CLEAR:lv_kdauf,lv_kdaufx,lv_kdpos,lv_kdposx,lv_pspel,lv_pspelx.
ELSE.
IF lv_kdauf IS NOT INITIAL AND lv_pspel IS NOT INITIAL.
gs_in_pp072-msgty = 'E'.
gs_in_pp072-message = '组件需求不能同时绑定销售订单和WBS'.
ELSEIF lv_kdauf IS INITIAL AND lv_pspel IS NOT INITIAL.
lv_sobkz = 'Q'.
it_in-sobkz = 'Q'.
lv_sobkzx = 'X'.
ELSEIF lv_kdauf IS NOT INITIAL AND lv_pspel IS INITIAL.
lv_sobkz = 'E'.
it_in-sobkz = 'E'.
lv_sobkzx = 'X'.
ENDIF.
ENDIF.ENDIF. * BAPI to add components to Production Order
CALL FUNCTION 'CO_XT_COMPONENT_ADD'
EXPORTING
is_order_key = lv_order_number
i_material = lv_material
is_requ_quan = ls_requ_quan
i_operation = lv_operation
i_sequence = lv_sequence
is_storage_location = ls_storage_location
is_storage_locationx = ls_storage_locationx
i_batch = lv_batch
i_batchx = lv_batchx
i_postp = lv_postp
i_kdauf = lv_kdauf
i_kdaufx = lv_kdaufx
i_kdpos = lv_kdpos
i_kdposx = lv_kdposx
i_pspel = lv_pspel
i_pspelx = lv_pspelx
i_posno = lv_positionno
i_sobkz = lv_sobkz
i_sobkzx = lv_sobkzx
IMPORTING
es_bapireturn = ls_return
e_error_occurred = lv_error. IF lv_error = space.
CLEAR: lv_numc,
ls_return. * Modify POSNR via ASSIGN before DB update to correct the blank
* item number in Components due to incompatible types of I_POSNO
* (type CIF_R3RES-POSITIONNO) and RESB-POSNR
ASSIGN ('(SAPLCOBC)RESB_BT[]') TO <ft_resb_bt>.
DATA(line) = lines( <ft_resb_bt> ).
LOOP AT <ft_resb_bt> ASSIGNING <fs_resb_bt>.
* lv_numc = sy-tabix * 10.
* <fs_resb_bt>-posnr = lv_numc.
* CLEAR lv_numc.
"新增行数据处理
IF sy-tabix = line. IF it_in-posnr IS NOT INITIAL.
<fs_resb_bt>-posnr = it_in-posnr.
ELSE. SELECT SINGLE MAX( posnr )
INTO @DATA(lv_posnr)
FROM resb
WHERE aufnr EQ @it_in-aufnr.
lv_posnr = lv_posnr + 10.
<fs_resb_bt>-posnr = lv_posnr. ENDIF. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = <fs_resb_bt>-posnr
IMPORTING
output = <fs_resb_bt>-posnr. "排序字符串
IF it_in-sortf IS NOT INITIAL.
<fs_resb_bt>-sortf = it_in-sortf.
ENDIF. "收货方
IF it_in-wempf IS NOT INITIAL.
<fs_resb_bt>-wempf = it_in-wempf.
ENDIF. "活动号
IF it_in-vornr IS NOT INITIAL.
<fs_resb_bt>-vornr = it_in-vornr.
ENDIF.
* IF <fs_resb_bt>-xwaok IS INITIAL.
* <fs_resb_bt>-xwaok = 'X'.
* ENDIF. ENDIF.
ENDLOOP.
sy-batch = 'X'."设置为后台模式
CALL FUNCTION 'CO_ZV_ORDER_POST'
EXPORTING
commit_flag = space
ext_flg = 'X'
trans_typ = 'V'
no_dialog = 'X' "不弹出窗口
iv_commit_work_and_wait = 'X'
EXCEPTIONS
no_change = 01
update_reject = 02
error_message = 03. IF sy-subrc = 0.
* commit dataCALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
CALL FUNCTION 'CO_XT_ORDER_INITIALIZE'.
ELSE.* Data Rollback
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
ELSE.
CLEAR:lv_error,ls_return.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
ENDLOOP.
"-----------------------------------------@斌将军--------------------------------------------
CO02生产订单新增组件的更多相关文章
- PP篇11 增、改生产订单组件BAPI
增.改生产订单组件BAPI BAPI_ALM_ORDER_MAINTAIN USE BAPI_ALM_ORDER_MAINTAIN TO CREATE OR CHANGE PM WORK ORDER ...
- 增、改生产订单组件BAPI BAPI_ALM_ORDER_MAINTAIN
转载留存 IT_METHODS LIKE BAPI_ALM_ORDER_METHOD处理方法,必选项,存储CREATE CREATETONOTIF CHANGE DELETE RELEAS ...
- SAP PP 生产订单变更记录保存
*&---------------------------------------------------------------------* *& 包括 ZXCO1U01 *&am ...
- 增强篇4 CO01生产订单屏幕增强
Step1. 结构 CO_AUFK 里增加自定义字段:ZZZ_TRIAL 然后激活结构 查看AUFK是激活状态, 字段增强完成: Step2. CMOD 使用客户增强:PPCO0012 生产订 ...
- PP生产订单创建、下达、报工、收货、投料
转自http://blog.sina.com.cn/s/blog_69fb8eb60102vpjd.html SAP 物料订单创建.下达.报工.收货与投料(ABAP代码) (2015-06-03 22 ...
- SAP 生产订单变更管理 OCM Order Changement Management
SAP OCM Order Changement Management 一.目的 订单变更管理系统是当我们的订单(生产订单.计划订单.采购订单)已经存在的时候,其物料主数据或销售数据有变更时,我们可 ...
- PP生产订单成本的计划、控制和结算
SAP系统成本分析功能关注订单的成本,通过对计划成本和实际成本的比较分析,可以发现成本控制上的问题,以便及时解决问题.1.订单成本计划在基础数据齐全的基础上,系统可以自动滚算生产订单的成本.生产订单计 ...
- S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析
题目这个增强的输入参数很恐怖,长长的一串: CALL BADI l_badi->BEFORE_UPDATE EXPORTING IT_PIINSTRUCTIONVALUE = IT_PIINST ...
- SAP生产订单没有目标成本的原因解释
首先,OKV6察看一下目标成本的配置,默认是当期成本估算,见下图: 其次,没有目标成本的原因还可能是下列原因导致: 1.该物料没有成本估算和发布2.工艺路线维护日期晚于这个物料估算日期3.没有做CO1 ...
- ABAP 生产订单的创建与修改函数
ABAP 生产订单的创建与修改函数转自http://www.cnblogs.com/aBaoRong/archive/2012/04/11/2441946.html 如果生产订单过多,可以批量创建 ...
随机推荐
- [算法考研笔记]mm算法随笔[成绩划分][回溯0-1][得分][字段和][聪明小偷][股票买卖]
mm算法随笔 学习笔记(回溯算法) 回溯 <---->递归1.递归的下面就是回溯的过程 回溯法是一个 纯暴力的 搜索.有的时候暴力求解都没有办法,用回溯可以解决. 回溯法解决的问题: 组合 ...
- 吉特日化MES & SQL Server 无法执行数据库脚本
打开服务器打算远程执行一下脚本,突发发现数据库无法执行脚本,就想着是不是安装了 海康AGV 控制系统的问题导致,问题如下: 问题截图如下: 报错信息如下: ====================== ...
- jenkins安装部署、主从架构、slave镜像、K8S对接
介绍 CI/CD工具,自动化持续集成和持续部署,用于构建各种自动化任务. 官方提供了docker镜像https://hub.docker.com/r/jenkins/jenkins 使用Deploym ...
- 【2016】CloneCD和IsoBuster配合使用以提取VCD中的文件
**笔记记录于:2016-11-24 ** 本文章仅供用于技术研究用途,请勿利用文章内容操作用于违反法律的事情. 起因: 公司老总让我提取下VCD中的文件以备份下,但是把光碟放进DVD光驱中发现只有几 ...
- 小程序优化:第三方SDK过大解决方案
[前言] 小程序开发中,有时会遇到下面这种情况,项目目录中存放过大的js包,会被警告影响手机端性能,同时让开发编译启动变得很慢.慢是其次,单是影响性能这一点,就需要解决一下. [云资源] 将项目js包 ...
- 【C#】【IO】【Threading】【实例】工作报表前的本地数据聚合操作
<工作记录--Report> 报表前的数据获取操作是高重复性的,今天差不多完成了脚本,下述是代码: 1 // See https://aka.ms/new-console-template ...
- MYSQL数据库root账户密码忘记,如何重置?
- 本地tomcat设置外网访问
将host name中的localhost修改为自己电脑的IP地址,具体的IP地址可以在控制面板的网络和共享中心中进行查看, 打开tomcat的conf文件夹下的server.xml文件,将local ...
- linux中iptables防火墙相关命令
https://www.cnblogs.com/seven1979/p/4173927.html https://blog.csdn.net/shenjianxz/article/details/62 ...
- C语言实现链表与文件的存取
作者:柠檬i,学习C时长两个月半的个人练习生 第一次写文章,难免有些不足,请多多包涵. 本程序主要功能是建立链表,然后把链表数据存储到文件中,然后把文件数据存储到数组中并输出. 不多说了,放代码. 此 ...