可用函数修改:CO_XT_COMPONENT_CHANGE,一次一个

 FORM prm_change_bom .
DATA:gw_zstypf TYPE zstypf.
DATA:lv_rspos TYPE rspos.
CLEAR:gw_zstypf,lv_rspos. LOOP AT gt_zstypf INTO gs_zstypf.
IF gs_zstypf-rsnum IS NOT INITIAL.
MOVE-CORRESPONDING gs_zstypf TO gw_zstypf.
ENDIF.
ENDLOOP. LOOP AT gt_zstypf INTO gs_zstypf WHERE xloek = 'X'."原有组件,需要先删除
PERFORM prm_delete_bom_line USING gs_zstypf-rspos gs_zstypf-aufnr.
IF sy-subrc = .
ELSE.
MESSAGE '删除组件失败,请重新删除!' TYPE 'E'.
ENDIF.
ENDLOOP. WAIT UP TO SECONDS. LOOP AT gt_zstypf INTO gs_zstypf WHERE xloek = 'C' AND rsnum IS NOT INITIAL."修改原有组件
PERFORM prm_change_bom_line USING gs_zstypf.
IF sy-subrc = .
ELSE.
MESSAGE '修改组件失败,请重新修改!' TYPE 'E'.
ENDIF.
ENDLOOP. WAIT UP TO SECONDS. SELECT MAX( rspos ) INTO lv_rspos FROM resb WHERE rsnum = gw_zstypf-rsnum. LOOP AT gt_zstypf INTO gs_zstypf WHERE xloek <> 'X' AND rsnum IS INITIAL."新建组件
gs_zstypf-rspos = lv_rspos + .
gs_zstypf-aufnr = gw_zstypf-aufnr.
gs_zstypf-posnr = gs_zstypf-rspos * .
lv_rspos = lv_rspos + .
PERFORM prm_add_bom_line USING gs_zstypf.
IF sy-subrc = .
ELSE.
MESSAGE '添加组件失败,请重新添加!' TYPE 'E'.
ENDIF.
ENDLOOP. ENDFORM. " PRM_CHANGE_BOM
FORM prm_delete_bom_line  USING    p_posnr p_aufnr.
DATA:lv_value TYPE bdcdata-fval.
DATA:lv_fname TYPE bdcdata-fnam.
REFRESH:messtab,bdcdata.
CLEAR:lv_value,lv_fname.
CONCATENATE 'RESBD-POSNR(' p_posnr ')' INTO lv_value.
CONCATENATE 'RC27X-FLG_SEL(' p_posnr ')' INTO lv_fname.
PERFORM bdc_dynpro USING 'SAPLCOKO1' ''.
PERFORM bdc_field USING 'BDC_CURSOR'
'CAUFVD-AUFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=KPU2'.
PERFORM bdc_field USING 'CAUFVD-AUFNR'
p_aufnr.
* '100000043'.
PERFORM bdc_field USING 'R62CLORD-FLG_OVIEW'
'X'.
PERFORM bdc_dynpro USING 'SAPLCOMK' ''.
PERFORM bdc_field USING 'BDC_CURSOR'
lv_value.
* 'RESBD-POSNR(02)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=DEL'.
PERFORM bdc_field USING 'FILTER_BOX'
'NO_FIL'.
PERFORM bdc_field USING 'SORT_BOX'
'ST_STA'.
PERFORM bdc_field USING lv_fname"'RC27X-FLG_SEL(02)'
'X'.
PERFORM bdc_dynpro USING 'SAPLCOMK' ''.
PERFORM bdc_field USING 'BDC_CURSOR'
'RESBD-MATNR(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'FILTER_BOX'
'NO_FIL'.
PERFORM bdc_field USING 'SORT_BOX'
'ST_STA'.
CALL TRANSACTION 'CO02' USING bdcdata
MODE 'N'
UPDATE 'S'
MESSAGES INTO messtab.
*perform bdc_transaction using 'CO02'.
ENDFORM. " PRM_DELETE_BOM_LINE
FORM prm_change_bom_line  USING    p_gs_zstypf STRUCTURE zstypf.

   DATA:lv_value TYPE bdcdata-fval.
DATA:lv_dbmn TYPE bdcdata-fval."数量
DATA:lv_fnam1 TYPE bdcdata-fnam.
DATA:lv_fnam2 TYPE bdcdata-fnam.
DATA:lv_fnam3 TYPE bdcdata-fnam.
REFRESH:messtab,bdcdata.
CLEAR:lv_value,lv_fnam1,lv_fnam2,lv_fnam3.
CONCATENATE 'RESBD-MATXT(' p_gs_zstypf-rspos ')' INTO lv_value.
CONCATENATE 'RC27X-FLG_SEL(' p_gs_zstypf-rspos ')' INTO lv_fnam1.
CONCATENATE 'RESBD-MATNR(' p_gs_zstypf-rspos ')' INTO lv_fnam2.
CONCATENATE 'RESBD-MENGE(' p_gs_zstypf-rspos ')' INTO lv_fnam3. PERFORM bdc_dynpro USING 'SAPLCOKO1' ''.
PERFORM bdc_field USING 'BDC_CURSOR'
'CAUFVD-AUFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=KPU2'.
PERFORM bdc_field USING 'CAUFVD-AUFNR'
p_gs_zstypf-aufnr.
PERFORM bdc_field USING 'R62CLORD-FLG_OVIEW'
'X'.
PERFORM bdc_dynpro USING 'SAPLCOMK' ''.
PERFORM bdc_field USING 'BDC_CURSOR'
lv_value.
PERFORM bdc_field USING 'BDC_OKCODE'
'=PICK'.
PERFORM bdc_field USING 'FILTER_BOX'
'NO_FIL'.
PERFORM bdc_field USING 'SORT_BOX'
'ST_STA'.
PERFORM bdc_field USING lv_fnam1
'X'.
PERFORM bdc_field USING lv_fnam2
p_gs_zstypf-matnr.
MOVE p_gs_zstypf-bdmng TO lv_dbmn.
CONDENSE lv_dbmn NO-GAPS.
PERFORM bdc_field USING lv_fnam3
lv_dbmn.
PERFORM bdc_dynpro USING 'SAPLCOMD' ''.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RESBD-POTX1'.
PERFORM bdc_field USING 'RESBD-MATNR'
p_gs_zstypf-matnr.
PERFORM bdc_field USING 'RESBD-POSNR'
p_gs_zstypf-posnr.
PERFORM bdc_field USING 'RESBD-POTX1'
p_gs_zstypf-potx1.
PERFORM bdc_field USING 'RESBD-SANKA'
'X'.
PERFORM bdc_dynpro USING 'SAPLCOMD' ''.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'RESBD-SANKA'
'X'.
CALL TRANSACTION 'CO02' USING bdcdata
MODE 'N'
UPDATE 'S'
MESSAGES INTO messtab. ENDFORM. " PRM_CHANGE_BOM_LINE
FORM prm_add_bom_line  USING    p_gs_zstypf STRUCTURE zstypf.

   DATA:lv_value TYPE bdcdata-fval.
DATA:lv_dbmn TYPE bdcdata-fval."数量
DATA:lv_fnam1 TYPE bdcdata-fnam.
DATA:lv_fnam2 TYPE bdcdata-fnam.
DATA:lv_fnam3 TYPE bdcdata-fnam.
DATA:lv_fnam4 TYPE bdcdata-fnam.
DATA:lv_fnam5 TYPE bdcdata-fnam.
DATA:lv_fnam6 TYPE bdcdata-fnam.
REFRESH:messtab,bdcdata.
CLEAR:lv_value,lv_fnam1,lv_fnam2,lv_fnam3,lv_fnam4,lv_fnam5,lv_fnam6.
CONCATENATE 'RESBD-MATXT(' p_gs_zstypf-rspos ')' INTO lv_value.
CONCATENATE 'RESBD-MATNR(' p_gs_zstypf-rspos ')' INTO lv_fnam1.
CONCATENATE 'RESBD-MENGE(' p_gs_zstypf-rspos ')' INTO lv_fnam2.
CONCATENATE 'RESBD-EINHEIT(' p_gs_zstypf-rspos ')' INTO lv_fnam3.
CONCATENATE 'RESBD-POSTP(' p_gs_zstypf-rspos ')' INTO lv_fnam4.
CONCATENATE 'RESBD-VORNR(' p_gs_zstypf-rspos ')' INTO lv_fnam5.
CONCATENATE 'RCOLS-APLFL(' p_gs_zstypf-rspos ')' INTO lv_fnam6. PERFORM bdc_dynpro USING 'SAPLCOKO1' ''.
PERFORM bdc_field USING 'BDC_CURSOR'
'CAUFVD-AUFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=KPU2'.
PERFORM bdc_field USING 'CAUFVD-AUFNR'
p_gs_zstypf-aufnr.
PERFORM bdc_field USING 'R62CLORD-FLG_OVIEW'
'X'.
PERFORM bdc_dynpro USING 'SAPLCOMK' ''.
PERFORM bdc_field USING 'BDC_CURSOR'
lv_value.
PERFORM bdc_field USING 'BDC_OKCODE'
'=PICK'.
PERFORM bdc_field USING 'FILTER_BOX'
'NO_FIL'.
PERFORM bdc_field USING 'SORT_BOX'
'ST_STA'.
PERFORM bdc_field USING lv_fnam1
p_gs_zstypf-matnr.
MOVE p_gs_zstypf-bdmng TO lv_dbmn.
CONDENSE lv_dbmn NO-GAPS.
PERFORM bdc_field USING lv_fnam2
lv_dbmn. CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
input = p_gs_zstypf-meins
language = sy-langu
IMPORTING
* LONG_TEXT =
output = p_gs_zstypf-meins
* SHORT_TEXT =
EXCEPTIONS
unit_not_found =
OTHERS = .
PERFORM bdc_field USING lv_fnam3
p_gs_zstypf-meins.
PERFORM bdc_field USING lv_fnam4
'L'.
PERFORM bdc_field USING lv_fnam5
p_gs_zstypf-vornr.
PERFORM bdc_field USING lv_fnam6
p_gs_zstypf-plnfl.
PERFORM bdc_dynpro USING 'SAPLCOMD' ''.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RESBD-POTX1'.
PERFORM bdc_field USING 'RESBD-POTX1'
p_gs_zstypf-potx1.
PERFORM bdc_field USING 'RESBD-SANKA'
'X'.
PERFORM bdc_dynpro USING 'SAPLCOMD' ''.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
CALL TRANSACTION 'CO02' USING bdcdata
MODE 'N'
UPDATE 'S'
MESSAGES INTO messtab.
ENDFORM. " PRM_ADD_BOM_LINE

生产订单修改删除组件BDC的更多相关文章

  1. SAP生产订单状态

    SAP系统的常见订单状态如下: ·        CRTD (创建):标识生产订单刚刚创建,此时禁止做后续发料和报工确认等操作: ·        PREL (部分下达):当生产订单部分下达时,如仅下 ...

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

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

  3. PP-判断生产订单状态(关闭)

    方法一.工单号通过 resb找到对象号 然后找到状态为I0045利用表JEST与TJ02T . 方法二.函数'STATU_CHECK' 检查工单状态为'I0045' 则为已做技术性关闭. READ T ...

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

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

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

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

  6. 打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件

    第三章 建议学习时间8小时      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demo ...

  7. 关闭生产订单时报错“订单&的未处理将来更改记录组织删除标记/完成”,消息号CO688

    消息号 CO688 诊断 仍存在未来的更改记录,或从订单的确认过程的确认中要处理的错误记录.可能的确认过程是: 自动收货 反冲 实际成本的计算 数据传输至 HR 系统响应 未打算对订单设置删除标记/‘ ...

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

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

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

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

随机推荐

  1. [SAP ABAP开发技术总结]业务对象和BAPI

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. [SAP ABAP开发技术总结]OPEN SQL

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. find command in linux terminal

    Say you want to search for files with keyword as "keyword". find / -name keyword 2> /de ...

  4. WPF基础学习第二天(高级控件)

    1.Menu菜单控件 Exp1: Code: <Window x:Class="菜单Menu.MainWindow" xmlns="http://schemas.m ...

  5. h5上滑刷新(分页)

    $('.dom').append('<div class="loadingwrap" id="loading" style="display:n ...

  6. SQL SERVER赋权限

    --创建登录账户 use master GO EXEC sp_addlogin 'jacky', 'pwd' --EXEC sp_droplogin 'jacky' --删除登陆账户 use Test ...

  7. Doragon Kuesuto 1.0

    #include<stdio.h> #include<stdlib.h> #include<time.h> int main() { ; ; ; int actio ...

  8. htm Dom对象与 Xml Dom对象的理解

    html 是基于Xml的文档规范.是一种特殊的xml文档,这一点很重要 1.xml 文档的操作,java,c#,...各种语言都提供了很好的api对文档进行解析,操作.当然js 也不例外,提供了一系列 ...

  9. Oracle分析函数的项目实践实例

    SELECT * FROM SSE2_FLOW_EXPENSE T1 JOIN (SELECT SFEL.*, ROW_NUMBER() OVER(PARATITION BY SFEL.FE_EXPE ...

  10. android坐标

    说来说去都不如 画图示意 简单易懂啊!!!真是的! 来吧~~先上张图~~! (一)首先明确一下 android 中的坐标系统 :      屏幕的左上角是坐标系统原点(0,0)      原点向右延伸 ...