SAP各種BOM詳解(包含常用BAPI)
生產訂單BOM、銷售訂單BOM、標準BOM
生產訂單BOM ,跑生產訂單時,子元件體現作用 。
銷售訂單BOM ,跑MRP 時體現子元件的作用 。
rcdf應用:真空管損耗率。
銷售bom zpp020
CLEAR: L_STLNR.
SELECT SINGLE MAST~STLNR
INTO L_STLNR
FROM MAST
WHERE MAST~MATNR = WA_OUTPUT-MATNR
AND MAST~WERKS = WA_OUTPUT-WERKS
AND MAST~STLAN = '1'
.
IF SY-SUBRC = 0. "存在該BOM
CLEAR: L_MENGE.
SELECT SINGLE STPO~STLNR STPO~MENGE
INTO (L_STLNR,L_MENGE)
FROM STPO
WHERE STPO~STLNR = L_STLNR
AND STPO~STLTY = 'M' "物料BOM
AND STPO~SORTF = '1240' "排序字串
.
IF SY-SUBRC = 0. "可以定位到1240的排序字串記錄
*--------------------------------------------------------
* 使用該報費率建立生產BOM,並返回物料單(BOM)
* 輸入引數報廢率 L_KBETR 工廠 WA_OUTPUT-WERKS BOM建立日期 當前月初 SY-DATUM
CONSTANTS: CNS_MODE TYPE C VALUE 'N',
CNS_TCODE TYPE TCODE VALUE 'CS61'.
IF L_BMENG IS NOT INITIAL.
L_MENGE = ( L_MENGE + L_MENGE * L_KBETR2 / 100 ) * WA_OUTPUT-KWMENG / L_BMENG. "元件數量 = 原元件數量*S.O數量*報廢率/表頭基本數量
L_MENGE_INT = L_MENGE.
WRITE L_MENGE_INT TO L_MENGE_CHAR.
ENDIF.
-----------------------------------------
CALL TRANSACTION CNS_TCODE USING BDCDATA[]
MODE CNS_MODE
UPDATE 'S'
MESSAGES INTO BDCMSGCOLL[].
BOM: 是實際生產時用的BOM, 在標準BOM和銷售BOM基礎上增減物料的BOM
銷售BOM: 是為特定客戶設定的BOM, 在主檔資料層次上的BOM, 在生產時是帶到訂單BOM中去的.
標準BOM: 是公司為標準生產的BOM, 在主檔資料層次上的BOM, 在生產時是帶到訂單BOM中去的.
訂單BOM >= 銷售BOM >= 標準BOM
一般使用中:
訂單BOM是在銷售BOM的基礎或標準BOM基礎上新增部分物料或減少或修改實際需求數量,
銷售BOM是在標準BOM基礎上增加特定客戶需要的BOM, 例如顏色,
標準BOM是公司在標準生產中使用的BOM, 通常由工程設計BOM產出再進行修正, 在SAP的標準成本計算是需要用到的.
工程設計BOM(應該很少公司用)是工程設計的BOM, 即將工程師畫的爆炸圖進行系統化.
SAP還有幾種BOM.
標準BOM維護: CS01/CS02/CS03, 查詢CS12
銷售BOM維護: CS61/CS62/CS63, 查詢CSK2
訂單BOM維護: CO01/CO02/CO03
銷售BOM使用前提是產品必須是MAKE TO ORDER, 否則系統在展開BOM時只會拿標準BOM, 不會拿銷售BOM的資料.
標準BOM的表: MAST
銷售BOM的表: KDST
訂單BOM的表: 沒有, 我的理解就是RESB中工單需求清單
在MTO方式來說,才會產生銷售訂單BOM。業務部門根據客戶要求,配置產生的成品特性,從而自動從標準的最大BOM中選擇元件,生成銷售訂單BOM
這其中就明確了兩個概念,銷售訂單BOM是在建立配置特性的基礎上的,從最大化的標準BOM中選擇相關特性限制的元件而產生的BOM。可以說,銷售BOM是標準BOM的一個特例。這時候的標準BOM羅列了所有可能的配置。
訂單BOM則是生產中使用的BOM,是MRP根據銷售訂單配置和標準BOM計算產生的BOM,訂單BOM在下達生產之前,可以通過計劃員的調整以及設定替代,更換元件或數量,而下達時依此生產的BOM。此BOM用於生產和發料,並是成本BOM的直接來源。
CS_BOM_EXPL_KND_V1 展銷售訂單bom
CS_BOM_EXPL_MAT_V2 展物料bom
CS_BOM_EXPLOSION
CS_BOM_EXPLOSION_EQUI
CS_BOM_EXPLOSION_MAT
CS_BOM_EXPL_EQU_V2
CS_BOM_EXPL_KND_V1
CS_BOM_EXPL_MAT_V2
CS_BOM_EXPL_PSP_V1
CS_BOM_EXPL_TPL_V1
輸出未啟用的BOM的function
CSAP_MAT_BOM_READ
15 .函式CS_WHERE_USED_MAT(逆查BOM)
說明﹕取的物料的上層物料
CALL FUNCTION 'CS_WHERE_USED_MAT'
EXPORTING
datub = sy-datum
datuv = sy-datum
matnr = t_afru-matnr
* POSTP = ' '
* RETCODE_ONLY = ' '
* STLAN = ' '
werks = '1000'
* IMPORTING
* TOPMAT =
TABLES
wultb = ltb
equicat = equicat
kndcat = kndcat
matcat = matcat
stdcat = stdcat
tplcat = tplcat
EXCEPTIONS
call_invalid = 1
material_not_found = 2
no_where_used_rec_found = 3
no_where_used_rec_selected = 4
no_where_used_rec_valid = 5
OTHERS = 6.
引數﹕datub: 當前日期
datuv: 當前日期
matnr: 要找回上層BOM物料的物料
werks: 工廠通常取’1000’
wultb: 所有的上層BOM物料存放在該表中(該表結構固定)
equicat: 固定結構﹐一定要
kndcat : 固定結構﹐一定要
matcat: 固定結構﹐一定要
stdcat : 固定結構﹐一定要
tplcat : 固定結構﹐一定要
示例: ZBAK_ZPP000222_LSL
BOM 展開函式(順查BOM)
16 .只展開 BOM 的函式
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = pm_capid “應用程式 一般為 PP01
datuv = pm_datuv “通常為系統的當前日期
mtnrv = pm_mtnrv “要展開BOM 的物料
mehrs = 'X' “ x 表示多層展開﹐space 表示只展開第一層
werks = pm_werks “ 通常為 1000
IMPORTING
topmat = selpool
dstst = dstst_flg
TABLES
stb = stb “展開的 BOM 存放在該內表
matcat = matcat “下面含有元件的物料存放在該內表
17 .展開與特性相關的特定款號的 BOM
CALL FUNCTION 'CS_BOM_EXPL_ KND_V1'
EXPORTING
capid = pm_capid “應用程式 一般為 PP01
datuv = pm_datuv “通常為系統的當前日期
mtnrv = pm_mtnrv “要展開BOM 的物料
cuobj = vbap_wa-cuobj “與特性相關的組態
mehrs = 'X' “ x 表示多層展開﹐space 表示只展開第一層
werks = pm_werks “ 通常為 1000
IMPORTING
topmat = selpool
dstst = dstst_flg
TABLES
stb = stb “展開的 BOM 存放在該內表
matcat = matcat “下面含有元件的物料存放在該內表
範例見系統報表程式 RCS12001
1 說明﹕內表 stb, matcat 結構固定, 輸出引數 selpool , dstst_flg 固定,
其固定結構如下:
內表:
DATA: BEGIN OF stb OCCURS 1000.
INCLUDE STRUCTURE stpox.
DATA: END OF stb.
DATA: BEGIN OF matcat OCCURS 50.
INCLUDE STRUCTURE cscmat.
DATA: END OF matcat.
輸出引數:
DATA: BEGIN OF selpool.
INCLUDE STRUCTURE cstmat.
DATA: END OF selpool.
DATA: dstst_flg LIKE csdata-xfeld.
2 說明﹕內表 stb 中的資料按第一層順序號排序﹐如第一層元件下還有BOM,
則其BOM顯示在其下面﹐並依次分層(下面BOM 也按順序號排列)
stb 下的重要欄位說明如下﹕
stufe : 在整個 BOM 中的層次
tdidx : 對應 matcat-index ﹐標誌直屬哪個物料下的 BOM
ojtxb : 上層物料的物料說明
ojtxp : 本身物料說明
idnrk : 元件名(即物料)
stlkn : 在各自 BOM 中的順序號
matkl : 該物料群組
mtart : 物料型別 (成品﹐半成品﹐原料)
matcat 下的重要欄位 (表matcat 存放下面還有BOM 的物料)
matnr : 物料號
index : 順序號
相關文章
- sap 獲取計劃訂單bapi_PP 常用bapiAPI
- SAP SD基礎知識之SD常用BAPIAPI
- SAP BAPI BAPI_GOODSMVT_CREATE Goods movementAPIGo
- Android 的各種 Drawable 詳解Android
- 什麼是 SAP BAPIAPI
- Django model select的各種用法詳解Django
- Spring 常用的三種攔截器詳解Spring
- 詳解Apache Hudi如何配置各種型別分割槽Apache型別
- 實驗 詳解Docker的各種操作小實驗Docker
- 詳解:十種常用的的資料分析思路!
- [轉]MQ詳解以及各種訊息中介軟體說明MQ
- 程式設計師最全必讀書單(包含各種語言)程式設計師
- LaTeX中各種常用盒子的使用總結
- redis部署以及各種資料型別使用命令等詳解Redis資料型別
- 前端常用6種資料加密方式的使用(最詳解)前端加密
- 二叉樹詳解,包含程式碼二叉樹
- mybatis各階段的詳解MyBatis
- SAP MM 發票預製 Function Module - BAPI_INCOMINGINVOICE_PARKFunctionAPI
- ORACLE分散式事務鎖各種場景下的處理詳解Oracle分散式
- SAP 軟體的精髓之一:各種各樣的決定機制 - Determination Logic
- 如何在linux上下載各種常用安卓應用Linux安卓
- 用各種方法解01揹包
- 圖解 SQL 裡的各種 JOIN圖解SQL
- 康威定律的各種解讀 - ThinkingLabsThinking
- SAP PP使用ECR去修改BOM主資料
- Go各時間字串使用詳解Go字串
- Flutter常用Widget詳解(三)Flutter
- mysql常用函式詳解MySql函式
- Flutter常用Widget詳解(一)Flutter
- Flutter常用Widget詳解(二)Flutter
- SAP 移動型別詳解型別
- SAP 中的批次管理詳解
- 強力解決npm各種大姨媽NPM
- 五分賽車網站製作詳解 Nginx停止服務和各種命令網站Nginx
- SAP中如何檢視BOM的修改記錄呢?
- 包含各種節日活動模板,一鍵輕鬆製作電商主圖!
- 外行假裝內行,我也來談談SAP BAPI和BADIAPI
- 各種加速