生产订单修改删除组件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 一.目的 订单变更管理系统是当我们的订单(生产订单.计划订单.采购订单)已经存在的时候,其物料主数据或销售数据有变更时,我们可 ...
随机推荐
- LTE Module User Documentation(翻译3)——仿真输出
LTE用户文档 (如有不当的地方,欢迎指正!) 6 仿真输出 ns-3 LTE 模型当前支持输出 PHY, MAC, RLC 和 PDCP 级别的 Key Performance Indicators ...
- iOS - UIPickerView
前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIPickerView : UIView <NSCoding, UITa ...
- Redis实践操作之—— keyspace notification(键空间通知)
一.需求分析: 设置了生存时间的Key,在过期时能不能有所提示? 如果能对过期Key有个监听,如何对过期Key进行一个回调处理? 如何使用 Redis 来实现定时任务? 二.序言: 本文所说的定时任务 ...
- MyEclipse中文乱码解决方法
在Myeclipse导入一个项目,有中文乱码问题,解决方法如下: 一.将整个project设置编码UTF-8(UTF-8可以最大的支持国际化) windows->Preferences-> ...
- 笔记本_hp
1.技术支持 http://support.hp.com/cn-zh 2.搜到的信息:“http://forum.51nb.com/thread-1080424-1-1.html” Product N ...
- iOS 推送消息长度
iOS最大推送消息长度 官方要求是256个字节 实际测试为1005个字节 在iPhone6上测试 锁屏时收到消息时只显示76个汉字,剩下的被隐藏 程序进入后台时只显示47个汉字,剩下的被隐藏
- [转载] HTTP 协议漫谈
原文: http://blog.jobbole.com/88199/ 简介 网络上已经有不少介绍HTTP的的好文章.对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够 ...
- jquery.pagination.js分页
参数说明 参数名 描述 参数值 maxentries 总条目数 必选参数,整数 items_per_page 每页显示的条目数 ...
- 工作了3年的JAVA程序员应该具备什么技能?(zhuan)
http://www.500d.me/article/5441.html **************************************** 来源:五百丁 作者:LZ2016-03-18 ...
- 自我总结(六)---(学习j2ee+j2ee第一阶段项目)
自我完善的过程就是在不断的自我总结不断的改进. 学习了Struts2 Spring Hibernate. 十天前结束了这个课程.也考试了.这次考试老师说机试考的还不错.其实就是一个简单的用户登录,进行 ...