"-----------------------------------------@斌将军--------------------------------------------   
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生产订单新增组件的更多相关文章

  1. PP篇11 增、改生产订单组件BAPI

    增.改生产订单组件BAPI BAPI_ALM_ORDER_MAINTAIN USE BAPI_ALM_ORDER_MAINTAIN TO CREATE OR CHANGE PM WORK ORDER ...

  2. 增、改生产订单组件BAPI BAPI_ALM_ORDER_MAINTAIN

    转载留存 IT_METHODS    LIKE    BAPI_ALM_ORDER_METHOD处理方法,必选项,存储CREATE CREATETONOTIF CHANGE DELETE RELEAS ...

  3. SAP PP 生产订单变更记录保存

    *&---------------------------------------------------------------------* *& 包括 ZXCO1U01 *&am ...

  4. 增强篇4 CO01生产订单屏幕增强

    Step1. 结构 CO_AUFK 里增加自定义字段:ZZZ_TRIAL 然后激活结构 查看AUFK是激活状态, 字段增强完成: Step2. CMOD  使用客户增强:PPCO0012    生产订 ...

  5. PP生产订单创建、下达、报工、收货、投料

    转自http://blog.sina.com.cn/s/blog_69fb8eb60102vpjd.html SAP 物料订单创建.下达.报工.收货与投料(ABAP代码) (2015-06-03 22 ...

  6. SAP 生产订单变更管理 OCM Order Changement Management

    SAP OCM Order Changement Management  一.目的 订单变更管理系统是当我们的订单(生产订单.计划订单.采购订单)已经存在的时候,其物料主数据或销售数据有变更时,我们可 ...

  7. PP生产订单成本的计划、控制和结算

    SAP系统成本分析功能关注订单的成本,通过对计划成本和实际成本的比较分析,可以发现成本控制上的问题,以便及时解决问题.1.订单成本计划在基础数据齐全的基础上,系统可以自动滚算生产订单的成本.生产订单计 ...

  8. S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析

    题目这个增强的输入参数很恐怖,长长的一串: CALL BADI l_badi->BEFORE_UPDATE EXPORTING IT_PIINSTRUCTIONVALUE = IT_PIINST ...

  9. SAP生产订单没有目标成本的原因解释

    首先,OKV6察看一下目标成本的配置,默认是当期成本估算,见下图: 其次,没有目标成本的原因还可能是下列原因导致: 1.该物料没有成本估算和发布2.工艺路线维护日期晚于这个物料估算日期3.没有做CO1 ...

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

    ABAP 生产订单的创建与修改函数转自http://www.cnblogs.com/aBaoRong/archive/2012/04/11/2441946.html   如果生产订单过多,可以批量创建 ...

随机推荐

  1. 基于Python下MySQL数据库驱动

    由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器. 1.mysql-connector-python ​ mysql-con ...

  2. 视觉差缓动效果的轮播--React版

    React实现视觉差效果缓动轮播 效果如下(图片帧率低看起来有点卡顿,看个大概就行): 分享一下思路: 1.正常引入一个轮播组件(站在巨人肩膀省时省力),去除指示点.引导箭头等不需要的元素,有些组件支 ...

  3. 【Javaweb】做一个房产信息管理系统二

    由于我还不太熟练用sql语句写数据库,所以直接用navicate了 我们需要新建四个数据表: adimin(超级管理员信息) customer(顾客) property(房产信息) realestat ...

  4. Apache Paimon流式湖仓学习交流群成立

    Apache Paimon是一个流式数据湖平台.致力于构建一个实时.高效的流式数据湖平台.这个项目采用了先进的流式计算技术,使企业能够实时处理和分析大量数据.Apache Paimon 的核心优势在于 ...

  5. DC静态时序分析之时钟篇

    DC静态时序分析之时钟篇博主微信:flm13724054952,不懂的有疑惑的也可以加微信咨询,欢迎大家前来投稿,谢谢! 引言介绍在芯片设计或者FPGA设计里面,根据有无时钟,将电路设计分为时序逻辑电 ...

  6. 单元测试平台搭建:sonarQube+sonarScanner+Jenkins+jacoco

    单元测试平台搭建及结果分析 一.方案 需求目标:提高单元测试覆盖率和规范代码编写规范 选用工具:Sonarqube.sonarqube Scanner.Jenkins.jacoco 方案: 工程中引入 ...

  7. Logistics Regression (对数几率回归)及numpy实现

    Logistics Regression 我们知道线性回归模型可以处理回归问题,但是如何处理分类问题? 对于一个二分类问题,或许我们可以认为w*x+b > 0为正类,其他情况为负类. 那么模型不 ...

  8. Harbor安装和镜像推送

    安装前提: yum -y install docker-compose-plugin 安装: tar -zxvf harbor-offline-installer-v2.6.1.tgz cd harb ...

  9. 华企盾DSC半透明无法打开加密文件常见处理方法

    1.查看客户端日志进程是否显示legal:1 2.半透明只支持双击打开 3.半透明进程不能设置HOOK白名单 4.检查调用的进程是否都加了 5.半透明程序的运行方式不可以以管理员启动,去掉" ...

  10. Kiractf

    信息收集 主机发现和端口扫描只开放了80的web服务 ​​ ‍ WEB打点 访问首页有文件上传,肯定可以利用一波.language那个页面甚至文件包含都写脸上了. root@Lockly tmp/ki ...