获得SAP MMBE显示的交货计划数量,使用表VBBE。
物料的实际可用非限制库存等于MCHB-CLABS – SUM(VBBE- omeng )。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
DATA lt_vbbe TYPE TABLE OF vbbe WITH HEADER LINE, "Delivery plan for charg. DATA lt_vbbetmp TYPE TABLE OF vbbe WITH HEADER LINE. DATA lt_mchbchg TYPE TABLE OF mchb WITH HEADER LINE. "batch stock. DATA lt_mch1chg TYPE TABLE OF mch1 WITH HEADER LINE. "batch master data. "取该物料的所有可用批次库存. SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_mchbchg FROM mchb WHERE werks EQ lt_zthylips01chg-werks AND matnr EQ lt_zthylips01chg-matnr AND lgort EQ lt_zthylips01chg-lgort AND clabs GT 0. "取这些批次对应的交货计划. SELECT matnr werks lgort charg omeng INTO CORRESPONDING FIELDS OF TABLE lt_vbbe FROM vbbe FOR ALL ENTRIES IN lt_mchbchg WHERE matnr EQ lt_mchbchg-matnr AND werks EQ lt_mchbchg-werks AND charg EQ lt_mchbchg-charg AND lgort EQ lt_mchbchg-lgort AND omeng GT 0. "collect lt_vbbe. SORT lt_vbbe[] BY matnr werks lgort charg omeng. lt_vbbetmp[] = lt_vbbe[]. REFRESH lt_vbbe[]. LOOP AT lt_vbbetmp. COLLECT lt_vbbetmp INTO lt_vbbe[]. CLEAR lt_vbbetmp. ENDLOOP. "计算实际可用的mchb数. LOOP AT lt_mchbchg. READ TABLE lt_vbbe WITH KEY matnr = lt_mchbchg-matnr werks = lt_mchbchg-werks charg = lt_mchbchg-charg lgort = lt_mchbchg-lgort. "如果有交货计划,则clabs应减去此部分数据. IF sy-subrc EQ 0. lt_mchbchg-clabs = lt_mchbchg-clabs - lt_vbbe-omeng. ENDIF. MODIFY lt_mchbchg. CLEAR lt_mchbchg. CLEAR lt_vbbe. ENDLOOP. |
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/2143.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。
评论列表(1条)
https://archive.sap.com/discussions/message/9399671#9399671
https://archive.sap.com/discussions/thread/1820196