cancel
Showing results for 
Search instead for 
Did you mean: 

How to stop the users from saving the PO when there is error message

Former Member
0 Kudos

Hi Guru,

The error message had appeared but the user still can choose to hold the PO even though there is an error.

They do not want to let the user to have a choice to save the PO once there is an error.

Please advice where i can out this checking in.

Accepted Solutions (1)

Accepted Solutions (1)

JL23
Active Contributor

please see OSS Note 390117 - ME21N: Prevent holding of purchase orders

Answers (4)

Answers (4)

Former Member
0 Kudos

Sally,

In IMG under Purchasing there is a BADI - "Deactivate 'Hold' Function for Enjoy Purchase Order", i think this should resolve your issue.

Regards

Reeves.

former_member182673
Active Contributor
0 Kudos

I don't think there is any ready configuration available to remove the option creating a PO in Held status. I am curious to know the logical business reason that made your customer to make this request. Knowing that may be a different solution can be thought of rather than disturbing this fundamental SAP PO functionality.

JL23
Active Contributor
0 Kudos

I can give you one, if you dont mind:

Users forget about there hold POs and create new ones, but the hold PO is already considered in MRP runs.

Former Member
0 Kudos

Sally,

In IMG under Purchasing there is a BADI - "Deactivate 'Hold' Function for Enjoy Purchase Order", i think this should resolve your issue.

Regards

Reeves.

Edited by: ronnie on May 21, 2009 5:24 PM

Former Member
0 Kudos

If there are any warnig messages occured you can ignore them(you can bypass them by pressing Enter key).

If it is a error message check your inputs and any other data is required by the system.

If you want to change catagory of system message for warning to Error OR Error to Warning, check the messge no. note down the message no.

Go to this path: SPRO: MM>purchasing>Environment data ---> Default attributes to system messages, select system messges, go to the messasge and change the category as required.

Former Member
0 Kudos

Hi,

Holding PO is different. The document will be maintained in hold status till the error is rectified. The system will not allow further processing of the document like creating GR or inovice in hold stage.

regards

alexandro

Former Member
0 Kudos

Hi

We can save PO only when the system doesnt issues any message. PO hold doesnt mean that the PO is saved.It is only put on hold when the error occurs and it gives chance to rectify the error occured. so that the PO can be saved. And also it does not allow the PO for further processing.

Regards

Siva

Former Member
0 Kudos

Hi,

But they do not even want the user to hold the PO.

Cos once hold, the PO no is generated.

They want to stop all saving if there is an error message.

Is it possible?

Best Regards,

Sally Teo

Former Member
0 Kudos

Hi,

But they do not even want the user to hold the PO.

Cos once hold, the PO no is generated.

They want to stop all saving if there is an error message.

Is it possible?

Best Regards,

Sally Teo

Former Member
0 Kudos

Hi,

But they do not even want the user to hold the PO.

Cos once hold, the PO no is generated.

They want to stop all saving if there is an error message.

Is it possible?

Best Regards,

Sally Teo

Former Member
0 Kudos

Hi,

But they do not even want the user to hold the PO.

Cos once hold, the PO no is generated.

They want to stop all saving if there is an error message.

Is it possible?

Best Regards,

Sally Teo

Former Member
0 Kudos

Hi,

But they do not even want the user to hold the PO.

Cos once hold, the PO no is generated.

They want to stop all saving if there is an error message.

Is it possible?

Best Regards,

Sally Teo

Former Member
0 Kudos

Hi,

But they do not even want the user to hold the PO.

Cos once hold, the PO no is generated.

They want to stop all saving if there is an error message.

Is it possible?

Best Regards,

Sally Teo

Former Member
0 Kudos

Hi,

No saving is allowed even holding.

They do not want the PO no to be generated.

Is it possible?

Former Member
0 Kudos

Hi,

But the requestor does not even want the user to hold it at all.

Is it possible?

Former Member
0 Kudos

Dear Sally,

As per OSS: Note 606728 - Hold Functionality of the PR & PO - Gaps.

The only way you can stop the hold functionality is by implementing the BADI: ME_PROCESS_PO_CUST.

I am copying the OSS text for your reference.

***************************

Summary

Symptom

It is possible in the system to create/hold a purchase order (PO) referencing a held purchase requisition (PR), but your business process requires that this not be possible in your installation.

Other terms

Hold, ME21N, ME52N, Parking, Save without Check, Held PR, PO referencing a held PR, Commitments, reduction of PR by a held PO

Reason and Prerequisites

Cause: The functionality is not provided in EA-PS 110.

Prerequisites : You must be on EA-PS 110 to implement this note

Solution

You can implement some customer BAdI's provided by SAP to get this functionality. Note that customer implementations of the BAdI's provided by SAP are upwardly compatible. The text that follows gives details of how to implement the customer BAdI's to accomplish this functionality.

This functionality might be provided in future releases. However, we cannot make any binding statements at this time in regard to the scope of this development and when it will become available.

The following are the steps required to implement the customer BAdI to give an error message when a user tries to create a PO referencing a held PR.

1. Go to transaction SE18. Enter the definition name as ME_PROCESS_PO_CUST. Select the push button display.

a) Choose Implementation -> Create.

b) Enter an implementation name. Choose Enter.

c) Enter a short text to describe the purpose of the implementation, then save the implementation.

d) Select the tab interface, then double-click the method "process_item".

e) Create a message to issue a message that the PR is on hold.

f) Enter the following code in the method:

DATA: LS_MEPOITEM TYPE MEPOITEM.

DATA : MEMORY TYPE EBAN-MEMORY.

  • get current data from business object

LS_MEPOITEM = IM_ITEM->GET_DATA( ).

  • Check if the PO references a PR and check if the PR is not on hold

  • If the PR is on hold give an error message

IF NOT LS_MEPOITEM-BANFN IS INITIAL.

SELECT SINGLE MEMORY INTO MEMORY

FROM EBAN WHERE BANFN = LS_MEPOITEM-BANFN

AND BNFPO = LS_MEPOITEM-BNFPO.

IF MEMORY = 'X'.

MESSAGE E900(ZM). "The message that you have created in step 6

ENDIF.

ENDIF.

g) Activate the implementation.

2. If you do not want to let the user put the PO referencing a held PR on hold, you have to also implement the BAdI ME_HOLD_PO. The following are the steps to implement the BAdI.

a) Go to transaction SE18.Enter the definition name as ME_HOLD_PO and click on the 'DISPLAY' button.

b) Go to Implementation -> Create.

c) Enter an implementation name, then choose Enter.

d) Give some short text to describe the purpose of the implementation, then save the implementation.

e) Select the tab interface. Double-click the method IS_ALLOWED.

f) Enter the following code in the method:

DATA : IM_BEKPO_WA TYPE BEKPO.

DATA : MEMORY TYPE EBAN-MEMORY.

*-Look if the PO refers to a Held PR

LOOP AT IM_BEKPO INTO IM_BEKPO_WA

WHERE NOT BANFN IS INITIAL.

SELECT SINGLE MEMORY INTO MEMORY

FROM EBAN WHERE BANFN = IM_BEKPO_WA-BANFN

AND BNFPO = IM_BEKPO_WA-BNFPO.

IF MEMORY = 'X'.

*-Do not allow the PO to be kept on hold

*-if the PO is refering a held PR

CH_ALLOWED = ' '.

ENDIF.

ENDLOOP.

g) Activate the implementation.

*****************************

I hope it helps.

Kind Regards,

Prakash