在上SAP項目過程,上了SD模塊的企業一般都要做一些跟公司間采購訂單或銷售訂單的交貨狀態的報表,通過這些報表可以經客戶的業務上提供很大的靈活性,至於如何的靈活,還是那句老話“誰用誰知道"。
1)如何判斷公司間采購訂單是否已交貨?
這個比較簡單了,直接通過表EKPO的字段ELIKZ來判斷的,前台如下圖所示,至於這個字段我想多說,只想說一下這個標記是什么產生的?來理一下業務的知識,根據公司間的采購訂單創建交貨單,發貨過賬后,當時幼稚的我認為這個標記應該打上了,但是並沒有打上,只有通過migo收貨過賬后這個標記才會打上.
2)銷售訂單表頭的交貨狀態
此交貨狀態與下圖顯示的交貨狀態意義並不一樣,圖示的交貨是跟交貨單有關的,與交貨單是否已經過賬無關,通俗點說就是如果當前訂單的所有行項目都創建相關的交貨單,則這里的狀態就顯示未交付狀態;但是只有部分(並不全部)行項目創建了交貨單,則這里就顯示部分交付;如果所有行項目都創建了相應的交貨單,並且數量跟銷售訂單的數量一致,則這里就顯示完全完全交付,否則這里也顯示部分交付。通過對上面的理解,估計大家都知道了這里的交貨狀態跟創建交貨單的數量有關(不關心是否過賬),通過交貨單數量控制了這個狀態。
3)銷售訂單的項目狀態。
這里的狀態跟表頭的項目狀態一樣,它關心的只是當前的行項目,但是影響到表頭的交貨狀態。
4)交貨單的貨物移動狀態由如下圖所示。
交貨單的貨物移動狀態用於確定當前的交貨單是否過賬發貨,經常可以看到的狀態有尚未開始(A)、完全處理(C),對於部分處理(B)好像不存在的(我測試),所謂尚未開始就是只是創建了交貨單沒有過賬發貨,而完全處理就是已經過賬發貨了。這里之所以要列出交貨單的狀態,是因為它的狀態影響到了銷售訂單的交貨狀態(非銷售訂單上的交貨狀態)。
sap 如何獲取公司間采購訂單或銷售訂單的交貨狀態(續)
5)如何決定銷售訂單的行項目的交貨狀態(可以理解發貨狀態)
如果我們以沒有交貨、部分交貨、完全交貨來分類銷售訂單的行項目發貨狀態,則存在以下的組合
訂單行項目交貨狀態 |
交貨單行項目狀態 |
訂單行項目發貨狀態 |
A(尚未開始) |
不管 |
沒有交貨 |
B(部分處理) |
不存在有C狀態 |
沒有交貨 |
C(完全處理) |
不存在有C狀態 |
沒有交貨 |
B(部分處理) |
存在有C狀態 |
部分交貨 |
C(完全處理) |
存在有C狀態 |
部分交貨 |
C(完全處理) |
完全C狀態 |
完全交貨 |
6)以上這些狀態所講的這些狀態對應哪些表呢?
這估計是大家最關心的東東了,這些狀態主要跟3張表有關:VBFA、VBUK、VBUP。
1、VBFA(銷售憑證流)
這張表記錄銷售訂單對應的交貨單(子層憑證類別VBTYP_N = ‘J’),以及底層過賬發貨生成的物料 憑證(子層憑證類別VBTYP_N = ‘R’)、沖銷交貨單生成的物料憑證(子層類別VBTYP_N = ‘H’),還有等等。
2、VBUK(銷售憑證 : 抬頭狀態和管理數據)
這張表既記錄了銷售訂單的表頭交貨狀態,也記錄交貨單表頭的貨物移動狀態,通過上表找到的交貨單到這張表找到相對應的狀態。
3、VBUP(銷售憑證 : 項目狀態)
這張表既記錄了銷售訂單的行項目交貨狀態,也記錄交貨單行項目的貨物移動狀態。