3. Triggering of release strategy
--------------------------------------------------------------------
Release strategy introduces approval hierarchy for a purchasing document
before it gets to the vendor thereby verifying the correctness of the PO.
Release strategy gets configured via path:
SPRO->Materials Management->Purchasing->Purchase Order->Release
procedure for Purchase Orders->Define Release Procedure for Purchase
Orders
When the data in PO matches with the characteristic values configured for
a rel. strg. the appropriate strg. gets triggered, whenever a PO gets
created or in case of any change done to the PO including rejection.
User exit M06E0004 could be implemented for any custom change.
4. Troubleshooting tricks
--------------------------------------------------------------------
To check the rel. strategy triggered in debugging mode, breakpoint could
be placed when the subroutine STRATEGIE_CEKKO is called in program
SAPLMEPO under Include MM06EF0S_STRATEGIE_ERMITTELN. It’s
the function module ME_REL_STRATEGIE_EKKO (called just after the
above subroutine) which returns the triggered rel. strategy, rel. group, rel.
indicator, rel. status and if the PO has been completely released.
Understanding of this FM would be great and is explained by me in this
document: http://scn.sap.com/docs/DOC-56988
5. Authorization Checks
--------------------------------------------------------------------
This is very important aspect of PO release procedure and should be
understood. Authorization object M_EINK_FRG is used extensively and
also in all the BAPIs related with PO release.
The documentation of this authorization object provides a great deal of
information and should be read. Any user can approve or reject a PO only
if she has the required release code role attached to the user’s profile.
> The document : http://scn.sap.com/docs/DOC-56988 could be further
referenced.
6. Release indicator, changeability, tolerance
--------------------------------------------------------------------
Changeability and tolerance gets associated with the release indicator
while configuring the same.
Changeability factor determines re-triggering of the approval process,
tolerance contains a %age value. In case of an approved PO, if the net
value gets changed above the tolerance factor, the same strategy gets re-triggered
for approval cycle.
> This concept is further detailed in this document:
http://scn.sap.com/docs/DOC-56988
7. Agent determination
--------------------------------------------------------------------
Release codes assigned to the strategy ultimately determines the
approvers either with workflow option available in the configuration or in
case of custom design, user exit could be utilized for agent determination.
Whenever the PO is ready for approval, standard SAP provided workflow
gets triggered which sends the work item to the agent’s SAP inbox.
8. General Observations
--------------------------------------------------------------------
When does the PO get released?
When the last release code configured in the strategy gets approved (as
could be seen by clicking Release prerequisites button on release strategy
configuration screen), the PO gets released and the rel. indicator gets
changed from Blocked to the indicator configured in the strategy.
The same could be visualized by clicking on Release simulation button.
BAPI that helps in release is: BAPI_PO_RELEASE which takes the
purchase doc. Number and release code as mandatory parameters.
Likewise to revoke the release, BAPI_PO_RESET_RELEASE could be
used. The documentation of these BAPI’s explains the functionality
beautifully.
Another useful BAPI that provides release information about a PO is
BAPI_PO_GETRELINFO.
9. General Observations
--------------------------------------------------------------------
Rejection of PO
The approver has the option of rejecting PO with the reject button
available on the screen. However, there is no BAPI or function module
provided for direct rejection of a PO. There could be workarounds. On
deep diving to see what does the standard coding do to reject the PO, I
could see that EKKO-PROCSTAT gets set to ‘08’ (rejected) and then gets
updated ensuring data integrity and consistency.
More details could be found here: http://scn.sap.com/docs/DOC-56988