通过FM CO_VB_ORDER_POST更新生产订单的Components数据
Function module: CO_VB_ORDER_POST 是在用T-Code: CO02更新生產(chǎn)訂單數(shù)據(jù)時被調(diào)用的。
那么我們自開發(fā)的程序如何通過FM: CO_VB_ORDER_POST 來更新生產(chǎn)訂單呢?下面我跟大家分享一下我的經(jīng)驗,其中主要是對Components數(shù)據(jù)的更新,包括Batch split。
這個操作主要是通過FM的Table參數(shù)RESBTAB和RESBTAB_OLD來實現(xiàn)。至于參數(shù)RESBTAB中的字段的用法,其中的大部分字段可以直接通過它的描述推測出它的用處,或者可以直接和生產(chǎn)訂單的維護屏幕中的Components表里的描述一一對應(yīng),但有幾個比較重要的字段還是值得注意的。下面我針對兩個不同的需求給大家闡述一下一些重要字段的用法:
需求1: 針對已經(jīng)存在的Components的行項目做數(shù)據(jù)更新:
與數(shù)量相關(guān)的:
>> BDMNG:需求數(shù)量。
>> VMENG:可交付的數(shù)量。如果需求數(shù)量被修改了,那么我的建議是,先把這個數(shù)量清0,然后重新運行Availability Check以確定新的可交付數(shù)量。
>> ENMNG:已經(jīng)發(fā)料的數(shù)量。正常情況下,當(dāng)要修改需求數(shù)量時,修改后的數(shù)量應(yīng)該要大于已經(jīng)發(fā)料的數(shù)量,否則的話,就應(yīng)該報錯以阻止修改的進行。
>> ERFMG:不同單位下的需求數(shù)量。如果單位只有一個,那應(yīng)該和字段BDMNG的值是一樣的。
>> ESMNG:不同單位下的需求數(shù)量。用法同ERFMG。
程序控制相關(guān)的:
>> VBKZ: 如果是”U”的話,就表示這條行項目是需要被修改的。
?除了對上述字段的操作,還需要把將當(dāng)前行項目更新前的數(shù)據(jù)存入內(nèi)表并傳遞給另一個Table參數(shù)RESBTAB_OLD。
?需求2: 對已有的行項目做批次拆分(Batch split)
那些與數(shù)量相關(guān)的字段,應(yīng)該大體上和需求1中描述的用法相同。
對于VBKZ,那就應(yīng)該是”I”,表示插入一條新的行項目。
另外,我們在這里可以把被分拆的行項目稱之為父行,分拆后的新的批次的行項目稱之為子行。
下面闡述一下其他一些重要的字段:
>> SPLKZ (Batch key) : 這個字段對于Batch split比較重要。如果它的值是”1″,表示這個行項目已經(jīng)發(fā)生過批次拆分(Batch split)了,并者這是一個父行;如果是”2″,則表示這一行是子行;如果是”X”,則表示這一行從未發(fā)生過批次拆分。所以我們在用程序?qū)π许椖窟M行拆分的時候,那么首先就要把當(dāng)前行的字段SPLKZ的值設(shè)成”1″,然后對于新插入的子行,那字段SPLKZ的值應(yīng)該被設(shè)成”2″。
>> CHARG (Batch#) :批次號。子行上的新批次號就應(yīng)該放在這個字段上。同時父行的批次號應(yīng)該被設(shè)成空值。
>> RSNUM:預(yù)留號 (Reservation#) 。 這個字段的值不需要任何變化。
>> RSPOS:預(yù)留號明細行號 (Reservation item#) 。對于子行,這個明細行號應(yīng)該被分配一個新的號碼。這個字段的值應(yīng)該在所有的Components行中是唯一的。
>> SPLRV:被拆分的父行的行號,也就是父行預(yù)留行項目號 (REPOS) 。這個字段只在被分拆出來的子行上賦值。
?還有一些需要注意的事項:
Components的數(shù)據(jù)應(yīng)該是從數(shù)據(jù)表RESB中讀取出來的。
生產(chǎn)訂單中的物料號和行項目號是可以重復(fù)的,但是預(yù)留明細號是唯一的。看下圖:
?
?當(dāng)生產(chǎn)訂單中的Components數(shù)據(jù)被更新后,預(yù)留中的數(shù)據(jù)也將同時被更新,這個通過T-Code:MB23可以看到。
總結(jié)
以上是生活随笔為你收集整理的通过FM CO_VB_ORDER_POST更新生产订单的Components数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SM13: 分析SAP事务提交时的FM调
- 下一篇: abap性能优化——利用凭证的numbe