Template is static, it has fixed number of rows and column once you fixed the number of row and column in templates you can't add extra data. Table is dynamic the number of column and row can be increased of decreased according to the requirement of data.
When we have Multi use BADI which can have multiple implementation and we want the implementations to be conditional. Say we want the different implementations for different Country codes we can go with Filter dependent BADI.
According to the Release 7.53:
1. A database table that is not part of SAP_BASIS can contain 1000 fields for Row Storage Type and 1500 fields for Column Storage Type.
2. A database table that is part of SAP_BASIS can contain 749 fields.
1. A database table that is not part of SAP_BASIS can contain 1000 fields for Row Storage Type and 1500 fields for Column Storage Type.
2. A database table that is part of SAP_BASIS can contain 749 fields.
Main window
Secondary window
Final window
Copy window
Secondary window
Final window
Copy window
Using deep entity method we can insert such data with multiple entries.
The dictionary meaning for fallback is 'an alternative plan that may be used in an emergency'. That's what exactly the fallback class is meant for. Fallback class comes into picture when there is no active implementation exists for the BADI. In such case the code in fallback class's method executes. As soon as an implementation exists in system, the implementation call will be used automatically. This fallback class we give when we create the BADI definition.
We can extend a BAPI using BAPI Extensions provided in the BAPI design
Using Authorization group we can restrict the users to access particular table.
We have inbuilt functions for this unit_conversion & currency_conversion
"By simply looking at BAPI_TRANSACTION_COMMIT code, we see quickly what is different from COMMIT WORK. It calls BUFFER_REFRESH_ALL function module right after COMMIT WORK.
So BAPI_TRANSACTION_COMMIT additionally refreshes a ""BAPI buffer"".
Assuming your program calls BAPIs consecutively and use a COMMIT WORK/BAPI_TRANSACTION_COMMIT only at the end so that to commit all BAPI updates once (better performance).Let's suppose the update during the COMMIT WORK fails (for any reason), the data is not written to database. If you have not refreshed the buffer using BAPI_TRANSACTION_COMMIT, the next BAPI calls will consider that some data will exist later, that is wrong."
So BAPI_TRANSACTION_COMMIT additionally refreshes a ""BAPI buffer"".
Assuming your program calls BAPIs consecutively and use a COMMIT WORK/BAPI_TRANSACTION_COMMIT only at the end so that to commit all BAPI updates once (better performance).Let's suppose the update during the COMMIT WORK fails (for any reason), the data is not written to database. If you have not refreshed the buffer using BAPI_TRANSACTION_COMMIT, the next BAPI calls will consider that some data will exist later, that is wrong."