当时处理此问题时,自己的思路有了问题。在通过bapi,增强无法实现时,应该扩展下自己的思路,考虑下与订单组件有关的一些表里是否有这些字段,应该以目的为导向。
名称 | 限制特定仓储类型的组件不产生TR | 更新日期 | 200900629 |
整理人 | 应用 | | 开发 | 史振强 |
简述 | 对于某种仓储类型的生产订单组件,通过LP10创建TR时,不显示。即:不会产生相应的转储需求。 |
涉及表(TABLE) | Resb |
涉及函数FUNCTION | |
前台查看方法 | LP10 |
业务关键点 | |
ABAP 实现 | 1, 对于符合条件的组件,通过预留号,项目,手工把预留里的待装运标记更新为0(与WM层管理无关)即可。具体实现代码如下 Data: begin of it_mara occurs 0, matnr like mara-matnr, glass_flag, end of it_mara. FORM update_resb_berkz USING p_rsnum p_rspos p_matnr. DATA:l_ltkza LIKE mlgn-ltkza. READ TABLE it_mara WITH KEY matnr = p_matnr. IF sy-subrc <> 0. SELECT SINGLE ltkza INTO l_ltkza FROM mlgn WHERE matnr = p_matnr AND lvorm = '' AND ltkza IN ('R01','R02'). IF sy-subrc = 0. UPDATE resb SET berkz = '0' WHERE rsnum = p_rsnum AND rspos = p_rspos. IF sy-subrc = 0. COMMIT WORK AND WAIT. ENDIF. it_mara-matnr = p_matnr. it_mara-glass_flag = 'X'. COLLECT it_mara. CLEAR:it_mara. ELSE. it_mara-matnr = p_matnr. COLLECT it_mara. CLEAR:it_mara. ENDIF. ELSE. IF it_mara-glass_flag = 'X'. UPDATE resb SET berkz = '0' WHERE rsnum = p_rsnum AND rspos = p_rspos. IF sy-subrc = 0. COMMIT WORK AND WAIT. ENDIF. ENDIF. ENDIF. ENDFORM. |
ABAP 实现 |
|
| | | | |