
I have used BAPI_MATERIAL_AVAILABILITY in iWay project to create CheckMaterialAvailability web service. Firstly let's look at its documentation:
Using this function module, you can determine the receipt quantity still available for a particular material in a certain plant according to ATP logic (MRPII).
The availability check is carried out on transferring the material number, the plant and the input table (WMDVSX). The scope of the check, that is, which stocks, receipts and issues are to be included in the check is defined by the combination of checking group (material master) and cheking rule. In the function module, the system uses the checking rule defined in Sales & Distribution (A). You can overrule this checking rule by using an interface or a user-exit (exit_saplw61v_001). A similar procedure is also valid for the plant parameters. The customer number in the user-exit means that the plant selection can be controlled via the customer. If no plant parameters are given via the interface, the system uses the parameter 'WRK' saved in the user's fixed values.
The results of the availability check are recorded in the output table (WMDVEX). This table contains dates and available receipt quantities (ATP quantities). The results of the check depends on the following entries:
In the last two cases, the parameter 'DIALOGFLAG' is supplied. This can result in the following:
- If no date and no quantity is transferred, the system displays the ATP situation from today's date into the future as the result.
- If only a date and no quantity is transferred, the system displays the ATP situation from the corresponding date as the result.
- If both a date and a quantity are transferred, the system calculates the availability situation for the quantity specified.
The system also displays the end of the replenishment lead time (ENDLEADTME).
- ' ' (blank) <=> quantity completely available
- 'X' <=> only partial quantity available or not available at all
- 'N' <=> Material not included in the availability check
(Material not relevant to the availability check)
You can run BAPI_MATERIAL_AVAILABILITY for only one material, one plant, one unit at a time. But we needed to check availability for multiple materials at a time, so I wrote a Z* RFC which wraps BAPI_MATERIAL_AVAILABILITY. Simply Z* RFC accepts multiple materials in a table parameter, then call BAPI_MATERIAL_AVAILABILITY in a loop.
Here is how call it:
* Call BAPI Material Availability
CALL FUNCTION 'BAPI_MATERIAL_AVAILABILITY'
EXPORTING
plant = ls_plant-werks
material = it_material-material
unit = it_material-unit
check_rule = it_material-check_rule
IMPORTING
return = ls_return
TABLES
wmdvsx = lt_req
wmdvex = lt_com.
Import Parameters:
PLANT: give a plant number
MATERIAL: give a material number
UNIT: unit of measure for the material
CHECK_RULE: give a check rule, value table is T441R (Values Table for Checking Rule). If you don't give check_rule, the function module gets A (SD order).
Table parameter WMDVSX (Input table (date and quantity)):
Export Parameters:
RETURN: If something returns with this parameter, it shows something is wrong. After calling function module, firstly check this parameter. For example you can get a message like that: "Material MMM not maintained in plant"
Table parameter WMDVEX (Output table (date and ATP quantity)):
If even you don't give (fill out WMDVSX table), any required quantity, you get a result in table WMDVEX.
But requirement date was accepted today's date, and required quantity was accepted as much as big number like 9,999,999,999.000.
COM_QTY (committed quantity) shows available quantity on COM_DATE (committed quantity).
Its documentation says export parameter DIALOGFLAG can be used to see whether required quantity is available or not ( ' (blank): Available, 'X': Not available or partially available, 'N': Material not relevant to the availability check ). But as you see I didn't use DIALOGFLAG. I used table WMDVEX to do that. If I require 600 EAch material, and if it gives me less than this number as committed quantity, it means there is no available quantity for my requirement.
If you want to compare the result, you can use transaction CO09 (Availability Overview). It gives the same result as BAPI_MATERIAL_AVAILABILITY does.
On SDN forums there are several discussions keep going about BAPI_MATERIAL_AVAILABILITY:
Here is another link mentions BAPI_MATERIAL_AVAILABILITY:
Have you used BAPI_MATERIAL_AVAILABILITY?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
11 | |
7 | |
7 | |
5 | |
5 | |
5 | |
4 | |
3 | |
3 | |
2 |