SAP PP相關函式

weixin_42590950發表於2018-07-02

(一) 生產BOM 相關
先介紹與生產BOM 查詢有關的函式,而查詢主要分為正查和反查,正查BOM 是模擬事務
程式碼CS12 那樣的多層展開,而反查BOM 則是模擬CS15。
1 正查BOM
函式:CS_BOM_EXPL_MAT_V2
功能:BOM 展開
關鍵引數說明:
IMPORT:
CAPID : Application ID(BOM 應用程式)
DATUV : Validity date(有效開始日)
EMENG : Required quantity(需求數量)
MEHRS : Multi-level explosion(X:BOM 多層展開;空:單層展開)
MTNRV : Material(物料專用號)
STLAN : BOM usage (BOM 用途)
STLAL : Alternative BOM(BOM 可選)
WERKS : Plant(工廠)
TOPMAT:
抬頭明細
STB:
BOM 子件行專案明細,包含子件編碼、子件描述、子件物料型別、需求數量等
MATCAT:
BOM 下掛E 型別且帶子件的半成品明細。
另一個函式“CS_BOM_EXPLOSION_MAT”,其功能及關鍵引數與上面介紹的函式
CS_BOM_EXPL_MAT_V2 差不多,在此就不展開介紹了。
2 反查BOM
函式:CS_WHERE_USED_MAT
功能:單層反查物料BOM
關鍵引數說明:
IMPORT:
DATUB : Date 'valid to'(有效日期至)

DATUV : Date 'valid from'(有效日期從)
MATNR : Material(物料專用號)
STLAN : BOM usage(BOM 用途)
WERKS : Plant(工廠)
TOPMAT:
抬頭明細表
WULTB:
反查出的子件上層物料明細,包含上層編碼、上層編碼描述、上層需求數量(預設是BOM
抬頭基本數量)、子件需求數量等。
MATCAT:
反查出的子件上層物料明細(按物料號彙總後的結果)
3 BOM 刪除
函式:CSAP_MAT_BOM_DELETE
功能:物料BOM 刪除
關鍵引數說明:
IMPORT:
MATERIAL : Material(物料)
PLANT :Plant(工廠)
BOM_USAGE :BOM Usage(BOM 用途)
ALTERNATIVE :Alternative BOM(BOM 可選)
VALID_FROM :Valid-from date(有效起始日期)
CHANGE_NO :Change number(BOM 更改號)
注:上述函式功能強大,在沒有啟用ECM 的情況下,需要慎用,在進行呼叫開發時,建議
至少將MATERIAL、PLANT、BOM_USAGE、ALTERNATIVE 這四個欄位對應的輸入項設
置成必填。
(二) 生產訂單相關
本小節將挑選三個具有代表性的BAPI 進行簡要介紹,希望對讀者起到拋磚引玉的作用。
4 生產訂單查詢
BAPI: BAPI_PRODORD_GET_LIST
功能:生產訂單抬頭資訊查詢
關鍵引數說明:
輸入TABLE: ORDER_NUMBER_RANGE
SIGN:範圍包含識別符號,I(包含範圍),E(排除範圍)
OPTION:操作運算子
EQ:等於
NE:不等
GT:大於
GE:大於等於
LE:小於等於
LT:小於
BT:在…之間
NB:不在…之間
CP:包含
NP:不包含
LOW:下階生產訂單號
HIGH:上階生產訂單號
其他輸入TABLE不做介紹,按實際查詢需求選擇輸入TABLE即可。
輸出TABLE:ORDER_HEADER
訂單抬頭資訊基本都在此表中進行存放了,如:生產訂單日期、生產版本、生產訂單
狀態等都在此輸出表可獲取到,科按實際業務需求挑選相關的欄位應用即可,本文不再做詳
細介紹。
5 生產訂單建立
BAPI:BAPI_PRODORD_CREATE
功能:生產訂單建立
關鍵引數說明:
Import:在結構ORDERDATA 中進行引數的輸入
ORDER_NUMBER:生產訂單號(可輸入自定義的訂單號,前提是配置訂單編號為外部
輸入;若訂單號自動生成,則此引數為空即可)
MATERIAL:物料號
PLANT:工廠
PLANNING_PLANT:計劃工廠
ORDER_TYPE:生產訂單型別
BASIC_START_DATE:基本開始日期
BASIC_START_TIME:基本開始時間
BASIC_END_DATE:基本結束日期
BASIC_END_TIME:基本結束時間
QUANTITY:需求數量
PROD_VERSION:生產版本
SALES_ORDER:銷售訂單號
SALES_ORDER_IT:銷售訂單行專案
其他引數略
補充:當除錯BAPI 的時候,需要增加COMMIT 操作,這樣才能真正使BAPI 在系統中
建立資料。
SE37:
1. 輸入Function Module:BAPI_PRODORD_CREATE
2. 指定Test Sequence
按正常的步驟測試後,在BAPI_TRANSACTION_COMMIT 執行介面下對WAIT 欄位賦予
X 值,即可完成資料的建立。
6 生產訂單修改
BAPI:API_PRODORD_CHANGE
功能:生產訂單修改
關鍵引數說明:
Import:
NUMBER:生產訂單號
ORDERDATA:需要更改的訂單抬頭資訊結構,有多個欄位值可以填寫
BASIC_START_DATE:基本開始日期
BASIC_END_DATE:基本結束日期
QUANTITY:數量
PROD_VERSION:生產版本
其他略……
ORDERDATAX:確認ORDERDATA 中要更新的欄位
BASIC_START_DATE:X 或空,如果選X 則表示需要更新基本開始日期為
ORDERDATA- BASIC_START_DATE 的值
其他略……
Export:
RETURN:返回值資訊
注:在生產訂單更改的BAPI 中增加了更新控制機制。此機制原則:並不是在ORDERDATA
中的欄位輸入值就可以更新生產訂單資訊,而必須在ORDERDATAX 中相對應的欄位值輸
入X 後,生產訂單相對應的欄位才真正地被更新。
(三) 計劃獨立需求相關
BAPI_REQUIREMENTS_CREATE:建立獨立計劃需求
計劃獨立需求(Planning Independent Requirements)是需求的一種體現形式,屬於PP 的需求管
理的範疇,本段講解PIR 的查詢、建立、修改等。
7 計劃獨立需求查詢
BAPI:BAPI_REQUIREMENTS_GETDETAIL
功能:顯示計劃獨立需求細節
關鍵引數說明:
Import
MATERIAL:物料專用號
PLANT:工廠
REQUIREMENTSTYPE:需求型別
VERSION:需求版本(可以用需求版本來區分不同的業務需求)
REQMTSPLANNUMBER:需求計劃號(唯一區分一個PIR 抬頭)
MRP_AREA:MRP 區域
TABLE:REQUIREMENTS_OUT
此表按輸入的MRP 區域、需求版本、需求型別、需求計劃號等而輸出一條PIR 抬頭資訊
所對應的所有的行專案。輸出欄位有:需求日期、需求數量、是否啟用等。
注:唯一確定一條PIR 抬頭資訊的主鍵應為:物料專用號+MRP 範圍+需求版本+需求類
型+需求計劃號。PIR 可以存在多個抬頭資訊,但每個抬頭之間是不能重複的。
8 計劃獨立需求建立
BAPI:BAPI_REQUIREMENTS_CREATE
功能:計劃獨立需求建立
關鍵引數介紹:
Import:在結構REQUIREMENTS_ITEM 中進行PIR 抬頭引數的輸入
MATERIAL:物料專用號
PLANT:工廠
REQU_TYPE:需求型別
VERSION:需求版本
VERS_ACTIV:版本是否啟用(X:表示版本啟用,空:表示版本不啟用)
REQ_NUMBER:需求計劃號
MRP_AREA:MRP 範圍
輸入TABLE:在表REQUIREMENTS_SCHEDULE_IN 中輸入行專案資訊
DATE_TYPE:日期型別(常用的日期型別值包括“1:日格式,2:周格式,3:月格式
“)
REQ_DATE:需求日期(輸入的格式與使用者維護的日期格式相關,本文作者使用的日期
格式為YYYY.MM.DD。不管DATE_TYPE 輸入的是何種型別值,需求日期欄位均按日期格
式進行輸入,系統存入底表時會自動地解析成相對應的日格式或周格式或月格式)。
REQ_QTY:需求數量
UNIT:計量單位(若不填寫按預設單位建立)
BOMEXPL:BOM 展開號
PROD_VES:生產版本
注:
① 如果要在已經存在的抬頭下建立新的行專案時不能呼叫
BAPI_REQUIREMENTS_CREATE 這個BAPI,因為抬頭已經存在,所以再建立相同的抬頭
就會報錯,此時應呼叫BAPI_REQUIREMENTS_CHANGE 這個BAPI 進行修改行專案。
②判斷物料是否存在某PIR 抬頭的方法:
工廠級區域:到表PBIM 中進行判斷
MRP 區域級:到表PBID 中進行判斷
9 計劃獨立需求修改
BAPI:BAPI_REQUIREMENTS_CHANGE
功能:計劃獨立需求修改
關鍵引數介紹:
Import:
MATERIAL:物料號
PLANT:工廠
REQUIREMENTSTYPE:需求型別
VERSION:需求版本
REQMTSPLANNUMBER:需求計劃號
VERS_ACTIV:版本是否啟用
MRP_AREA:MRP 區域
輸入TABLE:在REQUIREMENTS_SCHEDULE_IN 中進行行專案的輸入
DATE_TYPE:日期型別
REQ_DATE:需求日期
REQ_QTY:需求數量
UNIT:計量單位
BOMEXPL:BOM 展開號
PROD_VES:生產版本
注: 系統以抬頭資訊為主鍵, 以行專案為索引進行更改; 在
REQUIREMENTS_SCHEDULE_IN 中若存在相同日期的需求,則更新為新的條目資訊;若
無相同日期的需求,則新增為新的條目資訊。
(四) 計劃訂單相關
10 計劃訂單查詢
BAPI:BAPI_PLANNEDORDER_GET_DETAIL
功能:計劃訂單查詢
關鍵引數介紹:
Import:
PLANNEDORDER:計劃訂單號
輸出引數:
RETURN 結構:此結構輸出了BAPI 執行的狀態;
HEADERDATA 結構:計劃訂單抬頭資訊
輸出表:
COMPONENTSDATA 表:顧名思義,此表中存放的是計劃訂單元件資訊。
11 計劃訂單建立
BAPI:BAPI_PLANNEDORDER_CREATE
功能:計劃訂單建立
關鍵引數介紹:
Import:結構HEADERDATA,計劃訂單建立的抬頭資訊
PLANNEDORDER_NUM:計劃訂單號(非外部訂單號留空即可)
PLDORD_PROFILE:計劃引數檔案
MATERIAL:物料
PLAN_PLANT:計劃工廠
PROD_PLANT:生產工廠
TOTAL_PLORD_QTY:需求數量
ORDER_START_DATE:基本開始日期
ORDER_FIN_DATE:基本結束日期
VERSION:生產版本
MRP_AREA:MRP 範圍
FIRMING_IND:計劃訂單的確定標示(X:標示固定計劃訂單標示;空:表示計劃訂單
不固定)
輸出引數:
RETURN:此表存放了BAPI 執行狀態;
PLANNEDORDER:BAPI 執行成功時建立的計劃訂單號;
CREATEDHEADERDATA:計劃訂單抬頭資訊
輸出表:
CREATEDCOMPONENTSDATA:計劃訂單元件資訊
12 計劃訂單修改
BAPI:BAPI_PLANNEDORDER_CHANGE
功能:計劃訂單修改
關鍵引數介紹:
Import:
PLANNEDORDER:計劃訂單號
HEADERDATA 結構:
PROD_PLANT:生產工廠
TOTAL_PLORD_QTY:需求數量
VERSION:生產版本等
其他略…
HEADERDATAX 結構:
確認HEADERDATA 結構中要更新的欄位,此結構中的欄位要與HEADERDATA 輸入
的要更改的欄位一一對應。
輸出表:
COMPONENTSDATA:計劃訂單元件
(五) 庫存/需求清單相關
13 庫存/需求清單查詢
函式:MD_STOCK_REQUIREMENTS_LIST_API
功能:此函式功能可取出MD04 查詢出的所有MRP 元素記錄。強大的功能,特別推薦~~~
關鍵引數介紹:
Import:
MATNR:物料專用號
WERKS:工廠
BERID: MRP 範圍
ERGBZ:選擇規則(此值在 “定義選擇規則”中定義)
AFIBZ:過濾器的名稱(此值在“定義顯示過濾器”中定義)
輸出引數:
E_MT61D:物料MRP 主記錄表(包括:物料描述、物料型別、基本計量單位、MRP 型別等)
輸出表:
MDPSX(MRP 憑證中的專案表,存放的是憑證的相關資訊,資料與MDEZX 中資料是按順
序是一條條對應的)
DELNR:相關需求號
DEL12:MRP 元素號(如果是生產訂單預留,則顯示為上層需求生產訂單號)
其他欄位略……
MDEZX(MRP 要素的行專案表,按MRP 元素行專案進行資料存放)
DELB0:MRP 元素的縮寫(如:OrdRes、PlnOrd、PrdOrd 等)
其他欄位略……

MD04資料查詢的BAPI: BAPI_MATERIAL_STOCK_REQ_LIST

相關文章