C223 生产版本BAPI
1、事务代码:C223
2、调用函数CM_FV_PROD_VERS_DB_UPDATE
"-----------------------------@斌将军----------------------------- DATA:lt_mkal_i TYPE TABLE OF mkal, lt_mkal_u TYPE TABLE OF mkal, lt_mkal_d TYPE TABLE OF mkal, ls_mkal TYPE mkal, lt_mkal_aend TYPE TABLE OF mkal_aend, ls_mkal_aend TYPE mkal_aend. SELECT matnr, werks, verid FROM mkal INTO TABLE @DATA(lt_mkal) FOR ALL ENTRIES IN @t_input WHERE matnr = @t_input-matnr AND werks = @t_input-werks AND verid = @t_input-verid. SORT lt_mkal BY matnr werks verid. SELECT * FROM mkal_aend INTO TABLE @DATA(lt_aend) FOR ALL ENTRIES IN @t_input WHERE matnr = @t_input-matnr AND werks = @t_input-werks AND verid = @t_input-verid. SORT lt_aend BY matnr werks verid zaehl DESCENDING. CLEAR:ls_mkal. ls_mkal-matnr = '000000160000000019'."LV_MATNR."物料编号 ls_mkal-werks = '1011'."IS_MKAL-WERKS."工厂 ls_mkal-verid = 'JS20'."IS_MKAL-VERID."生产版本 ls_mkal-text1 = '333333'."IS_MKAL-TEXT1."生产版本的短文本 ls_mkal-bdatu = '99991231'."IS_MKAL-BDATU."生产版本的有效期截止日期 ls_mkal-adatu = sy-datum."IS_MKAL-ADATU."生产版本的有效期起始日期 ls_mkal-stlal = '01'."IS_MKAL-STLAL."可选的 BOM ls_mkal-stlan = '1'."IS_MKAL-STLAN."BOM 用途 ls_mkal-plnty = 'N'."IS_MKAL-PLNTY."任务清单类型 ls_mkal-plnnr = '50000357'."IS_MKAL-PLNNR."任务清单组键值 ls_mkal-alnal = '1'."IS_MKAL-ALNAL."组计数器 * LS_MKAL-SERKZ = ''."IS_MKAL-SERKZ."版本允许的重复制造 * LS_MKAL-MDV01 = ''."IS_MKAL-MDV01."用于重复制造的生产线 * LS_MKAL-ELPRO = ''."IS_MKAL-ELPRO."对组件提出发货仓储地点 * LS_MKAL-ALORT = ''."IS_MKAL-ALORT."重复生产的收货库存地点 ls_mkal-prfg_f = '1'."检查生产版本的状态 ls_mkal-prfg_s = '1'."BOM - 检查生产版本的状态 *ls_mkal-PRFG_R = '1'."重复生产的收货库存地点 *ls_mkal-PRFG_G = '1'."重复生产的收货库存地点 ls_mkal-prdat = sy-datum."出品版本的最后测试日期 ls_mkal-bstma = 99999999."截至批量大小 READ TABLE lt_mkal INTO DATA(ls_mkal) WITH KEY matnr = '000000160000000019' werks = '1011' verid = 'JS20' BINARY SEARCH. IF sy-subrc EQ 0."存在就更新 APPEND ls_mkal TO lt_mkal_u. READ TABLE lt_aend INTO DATA(ls_aend) WITH KEY matnr = '000000160000000019' werks = '1011' verid = 'JS20' BINARY SEARCH. IF sy-subrc EQ 0. CLEAR:ls_mkal_aend. ls_mkal_aend-matnr = ls_aend-matnr."物料编号 ls_mkal_aend-werks = ls_aend-werks."工厂 ls_mkal_aend-verid = ls_aend-verid."生产版本 ls_mkal_aend-zaehl = ls_aend-zaehl + 1."计数参数 ls_mkal_aend-datuv = ls_mkal-adatu."有效起始日期 ls_mkal_aend-datub = ls_mkal-bdatu."有效截止日期 ls_mkal_aend-andat = ls_aend-andat."日期记录创建于 ls_mkal_aend-annam = ls_aend-annam."创建记录的用户 ls_mkal_aend-aedat = sy-datum."上次更改日期 ls_mkal_aend-aenam = sy-uname."更改对象的人员姓名 ls_mkal_aend-vbkz = 'U'." ENDIF. APPEND ls_mkal_aend TO lt_mkal_aend. ELSE."不存在就创建 APPEND ls_mkal TO lt_mkal_i. CLEAR:ls_mkal_aend. ls_mkal_aend-matnr = '000000160000000019'."物料编号 ls_mkal_aend-werks = '1011'."工厂 ls_mkal_aend-verid = 'JS20'."生产版本 ls_mkal_aend-zaehl = 1."计数参数 ls_mkal_aend-datuv = ls_mkal-adatu."有效起始日期 ls_mkal_aend-datub = ls_mkal-bdatu."有效截止日期 ls_mkal_aend-andat = sy-datum."日期记录创建于 ls_mkal_aend-annam = sy-uname."创建记录的用户 ls_mkal_aend-vbkz = 'I'." APPEND ls_mkal_aend TO lt_mkal_aend. ENDIF. CALL FUNCTION 'CM_FV_PROD_VERS_DB_UPDATE' TABLES it_mkal_i = lt_mkal_i "创建 it_mkal_u = lt_mkal_u "修改 it_mkal_d = lt_mkal_d "删除 it_mkal_aend = lt_mkal_aend. *DATA(gv_info) = TEXT-002. IF sy-subrc EQ 0. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. * ES_RETURN-RETYP = 'S'. * ES_RETURN-REMSG = '生产版本修改成功'. WRITE:'success'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. * ES_RETURN-RETYP = 'E'. * ES_RETURN-REMSG = GV_INFO. * WRITE:gv_info. ENDIF. "-----------------------------@斌将军-----------------------------
定期更文,欢迎关注
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏