Understanding the technical stuff in SAP APO gATP module
Would like to provide some information on gATP tables and Function Modules which will be useful in terms of developing a solution in SAP APO-gATP module.Before getting into details, we first need to understand that gATP system has a beautiful feature called Live Cache memory and the order line information is being stored using dynamically generated GUIDs. GUID is nothing but a random alphanumeric code as shown below. Generally, it will be of 22 Characters.
Example :- Ikqk45pV52NX0000ctsd10
Basic tables in SAP APO – gATP:-
1) /SAPAPO/POSMPAN :- This is one of the crucial tables which stores the line item guid in the APO system. As you all know APO is a planning system and usually the key factors for planning is material(product) and plant(location). Hence, everything that is stored in APO system would be treated at line item level for any Sales Order. The guid available in this table is the base to retrieve information from many other tables.
2) /SAPAPO/ORDADM_I :- This is the table which stores the order line information details. If you want to find out the header information, then you need to use the field HEADER in this table and pass the contents to the table /SAPAPO/ORDADM_H to get the information.
3) /SAPAPO/ORDADM_H :- This table has got the header information like Sales document type(Field name-PROCESS_TYPE) , Created on timestamp, changed on time stamp, username who had created the Sales order etc.,
4) /SAPAPO/SD_DOC :- This is again line item related table which provides the quantity that has been ordered(QNTY field), Company code, Sold-to-party(PKUNAG or KUNNR), Customer Hierarchy levels, Customer group, Product Hierarchy, etc.,
5) /SAPAPO/SDFIELD :- This is the field catalog table. When I talk about Field catalog, it is an internal table which carries some set of parameters from ECC to APO for every sales order. SAP has provided an userexit USEREXIT_CATALOG_VALU (Include FV45VFZY_USEREXIT_CATALOG_VALU) where you can enhance the fieldcatalog and pass customer requested Z-fields to APO. Once the Sales Order is saved, you can see all the enhanced Z-fields in this /SAPAPOSDFIELD table. If you want to get corresponding entry from this table, then you need to pass the POSID from which is available in the table /SAPAPO/POSMAPN.
6) /SAPAPO/ATPPARAM :- This is an another important table which is again at line item level which can be queried using the POSID available in /SAPAPO/POSMAPN table. When a Sales order line item is passed to APO for ATP check the list of parameters that it uses would be stored in here in this table. Important parameters like Checkmode, Business Event, Allocation/ATP index, PAP(Product Allocation Procedure), etc.,
7) /SAPAPO/SRVFCSL :- By passing the Sales Order number and item number, you can find out the ordered quantity, confirmed quantity of a Sales order line item from this table. Also, there is a specific field called “GI Time”, which gives you the Goods Issue time for that specific Sales Order line item if it is PGIed.
8) /SAPAPO/OBREF :- With the help of this table, you can find out the delivered quantity. You need to pass POSID which is available in /SAPAPO/POSMAPN table to get the delivered quantity
9) /SAPAPO/SDQTVB :- This is allocation specific table. In this table, you would only find information about the line items which has gone for allocation check. It takes POSID, PLUID(It is the planning object guid which refers to the CVC), start time stamp of the bucket as input anf gives you the confirmed quantity. If the line item has consumed the allocation from two different buckets and by passing only one POSID then you would see two entries in this table corresponding to that POSID.
10) /SAPAPO/QTTAB :- This is the underlying table behind the transaction /SAPAPO/QTTAB, which is nothing but the PAG(Product Allocation Group). It gives the total incoming ordered quantity and remaining quantity avaialable for the PLUID(CVC Guid in short terms).
If you pass only the CVC GUID i.e., PLUID to this table, it gives list of time series buckets along with the quantities assigned under that CVC. If you pass So, PLUID and Starting timestamp of the bucket is needed to retrieve one entry.
11) /SAPAPO/QTCHA :- It is CVC related table. When you pass PLUID, it gives the level at which the CVC has been maintained. You can find out the list of CVC fields along with CVC fieldvalues in this table.
12) /SAPAPO/ZPAGE001 :- (/SAPAPO/ZPAGE00* ) These are Product Allocation : CVC tables. These tables get generated dynamically whenever we create a new Product Allocation Procedure (PAP). Each entry gets created in this table when we create a new CVC.
13) /SAPAPO/T190H :- Product Allocation Procedure table. This table has got a field KOSCH which indicates the PAPs. It gives the list of PAGs under its name.
14) /SAPAPO/T190AREA :- Links PAG and Planning area. One PAG can have only one Planning Area. But, one Planning Area can share multiple PAGs.
15) /SAPAPO/TBQTVB :- This table gives the confirmed quantity for each posguid. If there is an entry for PLGUID across the POSID, then it indicates that the line item has gone for Allocation check.
16) /SAPAPO/MATKEY :- This table is similar to MARA in ECC.
17) /SAPAPO/MATLOC :- This table has got the material-location related data.
18) /SAPAPO/ORDSTA_I :- It takes POSID as the input and gives you the Status of the item in Live Cache, ATP status, etc.,
19) /SAPAPO/ORDLINK :- THIS IS THE MOST CRUCIAL table. It takes a POSGUID as input in the field GUID_HI and gives you the list of guids in the field GUID_SET along with the type of the GUID(OBJTYPE_HI) which has been stored in the field GUID_SET. There is another field objtype_hi which indicates whether the guid that we have passed in GUID_HI is line item guid or header level guid.
05 indicates line item guid
06 indicates header level guid.
These GUIDs which are further available in GUID_SET field can be used to query different tables like
/SAPAPO/SHIPPING using guid_set 12 and object type 05
/SAPAPO/PART using guid_set 07 and object type 06
/SAPAPO/ORGMAN using guid_set 21 and object type 06
/SAPAPO/SALES using guid_set 11 and object type 06
20) /SAPAPO/SHIPPING :- Another important gATP table wihch gives you the shipping point (SHIP_POINT), Delivery priority (DLV_PRIO), Route (ROUTE), Reason for rejection (LIFSP).
21) /SAPAPO/ORDPART – Partner related information.
22) /SAPAPO/ORGMAN :- Sales order header details like Sales Area etc.,
23) /SAPAPO/BOPHEAD :- This is the crucial table for Back Order Processing. Whenever you run BOP, it creates a transaction guid(22 characters). All BOP related operations happen with the help of transaction guid. This table contains the user who had run the BOP, timestamp at which BOP run took place, Filter Profile which has been used, Sort Profile etc.,