After an upgrade you notice that the creation of purchase requisitions (preq) from SRM or other ERP modules line SD, PM, PS etc fails with the error 00 055 (Fill in all required entry fields).
During creation the system uses the function module (FM) ME_REQUISITION_EXT which checks if every field is filled with a value that is configured as required in the customizing under the IMG path MM>Purchasing>Purchase Requisition>Define Screen Layout at Document Level. If a field that is maintained as required here is passed empty to ME_REQUISITION_EXT, the error 00 055 is issued. This is correct system response, since the system is supposed to validate against the field selection settings also in case of preqs created from other modules. This behavior was introduced with notes 1921732 and 2146300 and will not be reverted in the standard, as it is the intended system design. The only exception is APO: preqs created from APO are created without field selection check (note 2146300 ensures this).
In case a preq is created from SRM, the BAPI_REQUISITION_CREATE is used which also calls ME_REQUISITION_EXT and therefore, the 00 055 might be returned here as well.
Part one: identify which field returns the error / is not filled
Since the preq can only be created if all the required data is passed, it is necessary to find out which field is not passed. Here is how:
You should do this troubleshooting in a test or development system whenever possible!
Case 1: Preq created from SD, PM, PS etc
1. ensure that both notes 1921732 and 2146300 are completely implemented
2. open FM ME_REQUISITION_EXT in SE37 and put a breakpoint at the below line:
Now process and save the document (sales order, PM order, project, WBS etc) from the other module which will trigger the preq creation. The debugger will stop at the above line. Now double click the variable ’dunkel’ and change its value from X to blank:
You will see which field is the mandatory one where no value is entered. In this case it is the purchasing organization. You can back out of this screen with the Back (F3) button.
Case 2: Preq created from SRM
In case of preq creation from SRM, you can generate a test data record for the BAPI BAPI_REQUISITION_CREATE as described in notes 539978 and 517767. Once the test data is available in the ERP system, you need to put a breakpoint at the below line in ME_REQUISITION_EXT:
Then you can follow the same steps as in Case 1 (including the change of the variable DUNKEL) with the exception that you need to run the generated test data record for BAPI_REQUISITION_CREATE from SE37. The debugger will also stop at ME_REQUISITION_EXT, from then on the steps are the same.
Part two: possible solutions
As the next step you need to decide which of the two possible solutions should be used:
1. pass the missing data
2. change the field selection from required to e.g. optional.
If you choose the first one, then the change must be made in the calling application and not in MM. If the requisition is created from SD, you can use the user-exit MV45AFZB / USEREXIT_MOVE_FIELD_TO_ME_REQ or the EXIT_SAPFV45E_002 to change the EBAN and EBKN tables that are passed from SD to MM. This way you can add the missing data.
If you choose the second one, you need to identify in which field selection key the field is maintained as required. You can use the steps from note 30316. Once the used field selection keys are determined, you need to check all of them in the customizing. Usually only four are used in most of the cases: the one for transaction (e.g. ME51), activity (e.g. AKTH), document type (e.g. NBB) and item category (e.g. PT0B). The field will be required even if it is set as such in only one of the field selection keys and e.g. as optional in the others. Note 30316 also explains the outcome of the possible combinations. Once you identified the field selection key, you can change the field there e.g. to optional. Then the requisition will be created successfully.