2004 Oct 25 11:51 AM
As most of the BAPIs are based transactions, I would like to know how you would approach to create a BAPI interfaced function that works like a given SAP transaction.
For example, FV60 requires a few entries into mandatory fields, and then calls Modules and Functions. Having found the Screens from Dialog Programming, how should/would one go about converting it into BAPI Import, Export and Tables? Perhaps Vendor could be an Import field, or the whole Header, a BAPI Import Stucture, while the items are Import Tables, which the BAPI will return, when successful, a Export Structure/Field with the Invoice Document Number.
Since both are coded on ABAP, I would believe that it is a pretty simple task, only needing to figure out how to transfer some Dialog specific portions, remove "real-time" field checking and placing it as Returns, and some other adjustments as you fit it into a BAPI. All done in the "top-most layer" such that as little change as necessary is needed, and with maximum code re-use?
I hope the idea is presented clear enough. Any help would be appreciated.
As most of the BAPIs are based transactions, I would like to know how you would approach to create a BAPI interfaced function that works like a given SAP transaction.
For example, FV60 requires a few entries into mandatory fields, and then calls Modules and Functions. Having found the Screens from Dialog Programming, how should/would one go about converting it into BAPI Import, Export and Tables? Perhaps Vendor could be an Import field, or the whole Header, a BAPI Import Stucture, while the items are Import Tables, which the BAPI will return, when successful, a Export Structure/Field with the Invoice Document Number.
Since both are coded on ABAP, I would believe that it is a pretty simple task, only needing to figure out how to transfer some Dialog specific portions, remove "real-time" field checking and placing it as Returns, and some other adjustments as you fit it into a BAPI. All done in the "top-most layer" such that as little change as necessary is needed, and with maximum code re-use?
I hope the idea is presented clear enough. Any help would be appreciated.
2004 Oct 25 3:41 PM
I don't think that this is a simple task because I've been long enough in development to know that there are at least as many variants as we have developers. But if I had to do this I'd do it the following way:
1. Check the transaction tediously. Make sure that there are no hidden popups etc. Expecially check if save or similar buttons send additional question pop ups.
2. If there are no additional popups, look at the number of screens. Ideally you have an entry screen and a number of screens where you do multiple input entries. Now it depends on your transaction. Does the transaction save the data only or does it give you a list as return? If it is save only, you should think about a CREATE_FROM_LIST BAPI, otherwise a simple CREATE could be complicated enough. Now create your BAPI with all input fields as one or multiple Import structures and similar output structures. Don't forget BAPIRETURN or BAPIRET2.
Copy all the coding from the PAI of your main screen (where you press the save button) into the function module. Now make it syntax error free which might be complicated enough. Then test it, test it, test it, especially with wrong data.
That's all but it is more than enough.
Best regards
Dirk
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |