生产订单修改删除组件BDC
可用函数修改: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的更多相关文章
- SAP生产订单状态
SAP系统的常见订单状态如下: · CRTD (创建):标识生产订单刚刚创建,此时禁止做后续发料和报工确认等操作: · PREL (部分下达):当生产订单部分下达时,如仅下 ...
- PP生产订单成本的计划、控制和结算
SAP系统成本分析功能关注订单的成本,通过对计划成本和实际成本的比较分析,可以发现成本控制上的问题,以便及时解决问题.1.订单成本计划在基础数据齐全的基础上,系统可以自动滚算生产订单的成本.生产订单计 ...
- PP-判断生产订单状态(关闭)
方法一.工单号通过 resb找到对象号 然后找到状态为I0045利用表JEST与TJ02T . 方法二.函数'STATU_CHECK' 检查工单状态为'I0045' 则为已做技术性关闭. READ T ...
- ABAP 生产订单的创建与修改函数
ABAP 生产订单的创建与修改函数转自http://www.cnblogs.com/aBaoRong/archive/2012/04/11/2441946.html 如果生产订单过多,可以批量创建 ...
- PP篇11 增、改生产订单组件BAPI
增.改生产订单组件BAPI BAPI_ALM_ORDER_MAINTAIN USE BAPI_ALM_ORDER_MAINTAIN TO CREATE OR CHANGE PM WORK ORDER ...
- 打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件
第三章 建议学习时间8小时 总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demo ...
- 关闭生产订单时报错“订单&的未处理将来更改记录组织删除标记/完成”,消息号CO688
消息号 CO688 诊断 仍存在未来的更改记录,或从订单的确认过程的确认中要处理的错误记录.可能的确认过程是: 自动收货 反冲 实际成本的计算 数据传输至 HR 系统响应 未打算对订单设置删除标记/‘ ...
- SAP PP 生产订单变更记录保存
*&---------------------------------------------------------------------* *& 包括 ZXCO1U01 *&am ...
- SAP 生产订单变更管理 OCM Order Changement Management
SAP OCM Order Changement Management 一.目的 订单变更管理系统是当我们的订单(生产订单.计划订单.采购订单)已经存在的时候,其物料主数据或销售数据有变更时,我们可 ...
随机推荐
- D django 用户认证系统
django认证系统包含三个部分:用户.权限和分组 安装 django项目默认启用了认证系统,如果不是使用django-admin.py创建项目的可以通过在settings配置文件里面的INSTALL ...
- 服务器端验证--验证框架验证required.
struts2表单验证里field-validator type值一共可以取哪些?都什么含义? int 整数:double 实数:date 日期:expression 两数的关系比较: email E ...
- Struts BaseAction工具类,封装Session,Request,Application,ModelDriven
package com.ssh.shop.action; import java.io.InputStream; import java.lang.reflect.ParameterizedType; ...
- Android——例子:简单计算器
今天没事干,做了个单击事件的练习. 截图如下:(一个小小的计算器) XMl文件中的代码: <LinearLayout xmlns:android="http://schemas.and ...
- javascript学习-原生javascript的小特效(简单的运动效果)
前些日子看了个视频所以就模仿它的技术来为大家做出几个简单的JS小特效 一:运动特效(主要是通过改变元素的left,right,height,width,opacity来达到运动的效果) 我们今天做一个 ...
- iOS - OC NSData 数据
前言 @interface NSData : NSObject <NSCopying, NSMutableCopying, NSSecureCoding> @interface NSMut ...
- struts2 if标签示例
下面总结一下struts2 中if标签的使用 (1)判断字符串是否为空 <s:if test="user.username==null or user.username==''&quo ...
- Generator 函数的含义与用法
Generator 函数是协程在 ES6 的实现,最大特点就是可以交出函数的执行权(即暂停执行). function* gen(x){ var y = yield x + 2; return y; } ...
- JavaSE复习_7 异常
△子父类涉及的异常问题: 1.子类在覆盖方法时,父类的方法如果抛出了异常,那么子类的方法只能抛出父类的异常或者该异常的子类,且只能抛出异常的子集 2.如果父类抛出了多个异常,子类只 ...
- POJ 3468(树状数组的威力)
之前说过这是线段树的裸题,但是当看了http://kenby.iteye.com/blog/962159 这篇题解后我简直震惊了,竟然能如此巧妙地转化为用树状数组来处理,附上部分截图(最好还是进入原网 ...