漫谈PPS 1: Cancel PO, Reverse PO
前提:以下功能已经打开
SAP SRM Procurement for Public Sector Basis (/SAPSSRM/SRM_CROSS_INDUSTRIES)
SAP SRM Procurement for Public Sector Functions (/SAPSSRM/SRM_PPS)
功能:
1. 在订单的抬头部分,仅需一步即可取消整张订单中开放的部分(open item),即那些还未做收货或发票校验的行项目.
2. 一旦做了取消,在ECC端,系统自动取消预留资金(De-obligate Funds).
2.1 可通过表FMIOI查看.
2.2.如果做了取消预留资金,用户将被限制创建confirmation/invoice. (说得模糊,待研究...)
3. 该订单将无法增加新的行项目.
4. 如果要取消这些已经做了取消的订单,可以使用在订单抬头部分的Reverse功能.资金将被预留(Obligate Funds).
4.1 可通过表FMIOI查看
5. 在抬头部分,多了一个"Cancelled” Checkbox
6. 值得注意的是,ECC PO上是无法得知SRM PO是Cancel还是Delete, 也无法知道是Undelete还是Reverse
数据表层:
1. BBP_PDHSS (Header Level): 标识订单是否已被取消
PS_CANCEL_IND = X 该订单抬头部分打了取消标记
PS_CANCEL_IND = ‘ ’ Reverse the cancelled PO
2. BBP_PDHSS (Item Level): 如果订单进行了取消的操作,在该行项目部分打标识,行项目被删除(因为订单取消).
PS_CNCL_BO_HDR = X 该订单行项目部分打了取消标记
PS_CNCL_BO_HDR = ‘ ’ Reverse the cancelled PO
3. BBP_PDIGP (Business Transaction Item-Purchasing Information)
DEL_IND = X 对于没有follow-on document的行项目, 一旦被取消,资金不再预留,则在此打勾表示订单被删除.
Reverse的话则为空
FINAL_INV = X , FINAL_ENTRY = X 对于有follow-on document的行项目, 资金不再预留,则在此打勾. = X表示无法再做发票校验,无法再做收货确认.(模糊,待研究)
Reverse的话则为空
4. FMIOI:
4.1 对于任何的cancel或reverse,都在此表中增加记录.
4.2 观察BTART与FKBTR,从中可以得知是否funds增加或减少.
4.3 TRBTR与FKBTR的值通常都是一致的.
REFBN: Reference Document Number
BTART: Amount Type(Addtion or Subtraction)
TRBTR: Amount in transaction currency (+ or –)
FKBTR: Amount in FM area currency (+ or –)
代码层:
PACKAGE: /SAPPSSRM/CANCELBO_HDR
Classes: (Metadata)
/SAPPSSRM/CL_MDA_CORE_CNCLBO
Method: ORDER_METADATA_CNCLPO: For order button, if PO is cancelled then, disable the order button.
Method: SAVE_METADATA_CNCLPO: For save button, if PO is cancelled then, disable the save button.
/SAPPSSRM/CL_MDA_HD_CNCLBO
Method: CHECK_COPY: For copy button, if PO is cancelled, then disable the copy button
Method: CNCLBO_METADATA: For cancel button, if PO is ordered and not cancelled already, then enable the cancel button
Method: REVERSE_METADATA: For reverse button, if PO is cancelled and ordered, then enable the reverse button.
Classes: (Cancel)
/SAPPSSRM/CL_PDO_ACT_CNCL_PO
Method: /SAPSRM/IF_EX_BDI_PDO_ACT_PROC~PROCESS_ACTION_IN_PDO: Invoked whenever a PO is cancelled or reversed, fetch PO details, check authority, de-obligate on cancel (FM /SAPPSSRM/SET_DEOBLIGTION_FLAG), obligation on reverse (FM /SAPPSSRM/RESET_DEOBLIGN_FLAG), update and change status.
/SAPPSSRM/CL_ACT_PDO_PST_CANBO
Method: /SAPSRM/IF_EX_BDI_CLL_ACT_POST~PROCESS_POST_PDO_CALL: commit and post document
Classes: (Advanced Search)
/SAPPSSRM/CL_CNCLBO_SELCRIT
Method: /SAPSRM/IF_EX_BDI_DS_CH_SELCR~CHANGE_SELECTION_CRITERIA: modify the selection criteria based on the cancel indicator value (‘X’ or ‘ ‘), additional of field to WD component is done directly using enhancement.
Classes: (POWL Search)
/SAPPSSRM/CL_CNCLBOHDR_SELCRIT
Method: /SAPSRM/IF_EX_BDI_POWL_SELCRIT~CHANGE_SELECT_CRITERIA: to add the cancel field to the selection criteria in POWL
/SAPPSSRM/CL_CNCLBOHDR_CUFSRCH
Method: /SAPSRM/IF_EX_BDI_POWL_CHG_CUF~CHANGE_CUF_SEL_PARAMS: modify the search result from POWL based on cancel indicator.
PACKAGE: /SAPPSSRM/CANCELBO_HDR_MAIN