"-----------------------------------------@斌将军--------------------------------------------   
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. java文件读取 while ((len = reader.read(buffer)) != -1){}的理解

    源文件 InputStreamReader reader=new InputStreamReader(new FileInputStream(file),"UTF-8"); //读 ...

  2. 使用Python合并多个Excel文件

    合并Excel可以将多个文件中的数据合并到一个文件中,这样可以帮助我们更好地汇总和管理数据.日常工作中,合并Excel主要有以下两种需求: 将多个Excel文件合并为一个文件 将多个Excel工作表合 ...

  3. 华企盾科技:智能AI自动化研判分析服务系统概述

    由中企网安全资子公司北京华企盾科技有限责任公司开发的<智能AI自动化研判分析服务系统>,获得国家版权局颁发的计算机软件著作权登记证书. 智能AI自动化研判分析服务系统是基于人工智能.大数据 ...

  4. 华企盾DSC控制台+系统运维模块连接不上问题

    解决方法:把rundll32.exe进程结束之后再点系统运维模块

  5. Android WebView 缓存处理

    加载html时,会在data/应用下生成database和cache两个文件夹:请求的url存在webviewcache.db下面,url的内容保存在webviewCache下面, Webview的两 ...

  6. 23年底,我出齐了Spring boot,Spring cloud和案例方面的书,正在写一本面试书(代年终总结)

    年末了,再来总结一下吧,希望本人明年的年终总结文还能在博客园发. 这次总结的主题是本人出的java书.这几年本人出了不少书,其中有python.redis和Java方面的. 姑且不说其它,java方面 ...

  7. Python趣味入门12:初遇类与实例

    小牛叔用轻松有趣的故事,带你进入Python的编程世界. 1.类 一提到类大神们就经常说封装.说白了,封装即把围绕同一个对象相同的代码.数据整合在一起.比如在某段游戏代码中(比如熊猫厨房),有一个&q ...

  8. 初识HTML5(2)

    在本文中,我将介绍HTML5的超链接标记和表格的相关标记. 超链接标记 超链接是HTML中非常重要的元素,它用于在不同网页或不同部分之间创建链接.以下是一些与超链接相关的标记和属性: 使用<a& ...

  9. Python——第四章:推导式(Comprehensions)

    推导式: 推导式是为了简化代码. 语法: 列表推导式:[数据 for循环 if判断] 集合推导式:{数据 for循环 if判断} 字典推导式:{k:v for循环 if判断} 元组推导式:不存在(因为 ...

  10. Android学习--Intent

    Intent : Intent 是一个动作的完整描述,一种运行时的绑定机制,Intent中包含对Intent有兴趣的组件信息,如对动作的产生组件.接受组件和传递的数据信息.Android根据此Inte ...