漫谈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),即那些还未做收货或发票校验的行项目.

image

2. 一旦做了取消,在ECC端,系统自动取消预留资金(De-obligate Funds).

    2.1 可通过表FMIOI查看.

    2.2.如果做了取消预留资金,用户将被限制创建confirmation/invoice. (说得模糊,待研究...)

3. 该订单将无法增加新的行项目. 

4. 如果要取消这些已经做了取消的订单,可以使用在订单抬头部分的Reverse功能.资金将被预留(Obligate Funds).

    4.1 可通过表FMIOI查看

image

5. 在抬头部分,多了一个"Cancelled” Checkbox

image

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

image

2. BBP_PDHSS (Item Level): 如果订单进行了取消的操作,在该行项目部分打标识,行项目被删除(因为订单取消).

                                      PS_CNCL_BO_HDR = X   该订单行项目部分打了取消标记

                                      PS_CNCL_BO_HDR = ‘ ’   Reverse the cancelled PO

image

3. BBP_PDIGP (Business Transaction Item-Purchasing Information)

    DEL_IND = X  对于没有follow-on document的行项目, 一旦被取消,资金不再预留,则在此打勾表示订单被删除.

    Reverse的话则为空

image

     FINAL_INV = X , FINAL_ENTRY = X  对于follow-on document的行项目, 资金不再预留,则在此打勾. = X表示无法再做发票校验,无法再做收货确认.(模糊,待研究)

     Reverse的话则为空 

image

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

posted on 2010-12-23 04:32  懒芒果  阅读(1522)  评论(0编辑  收藏  举报