The aim of BDC is to transfer data from flat file ( or xls ) to the appropriate database tables in SAP.
To transfer data into the DB tables , an internal table should be used in the program.
Here we go to our first step
1) Declare an internal table with relevant fields.
How do u transfer data into your internal table from the flat file.
We have a function module gui_upload for this purpose.
This is our next step
2) Upload data from flat file into the internal table.
Now we have data in our internal table , we need to transfer it to the DB tables.
SQL is an option but is not advisable because a single transaction affects more than one table.
Hence SQL is not a safe way of transferring data.
So whats the other way to accomplish the same.
We are all aware that transaction codes exist for the creation of data.
Ex xk01 is the code for creating a vendor master data.
Transactions can be called from the program using CALL TRANSACTION 'TCODE'.
Now, the above statement causes opens a new transaction and one has to manually
enter data. This defeats the whole purpose of BDC. There should be a way to automate the process of enterring data.
Well, there is a way to automate the process.
CALL TRANSACTION USING
MODE UPDATE MESSAGES INTO
is used for the same.
Dont panic .. you will understand the syntax once u understand the logic.
Since we want to automate the data entry process in the transaction, there should be some
means by which the transaction receives data t be entered.
BDCDATA holds the data and actions to be performed to complete the transaction.
For example , to comple a transaction , one might have to go through a sequence of screens , entering values in the fields.
This sequence and data is stored in BDCDATA structure.
To explain in very simple terms , BDCDATA tells the system what it should do in that transaction.
For ex. the contents of a typical BDCDATA structure for xd01 translates to
"Fill value for customer,sales organization, distribution channel ,
then move on to screen 1020.
In screen 1020 fill values for name , search term ...
Then move on to screen 1030"
Phew...
Ok now u r happy that this BDCDATA does some magic and gets the system to fill values in the transaction.
Remember in programming there is no magic , what u ask the sytem to do is what u get ...
Someone has to fill the BDCDATA structure.
In my previous blog i have explained BDCDATA in detail.
Filling the structure manually is a big pain ...
There is an easier method to do it ...
IN SAP there is a concept called "Record transaction" ..
Goto shdb , start new recording , enter the transaction code that u want to record ,
keep filling values , save the recording...
All actions that u performed throughout the entire transaction is stored.
Now goto edit , create program. This creates a program with information about the recording.
Copy the list of performs used to fill the bdc data.
This list populates the structure BDCDATA.
You dont have the headache of populating it urself ..
I guess the remaining steps will fall into place now..
3) Process itab
4) For each entry of itab create a bdcdata structure with field values from the itab.
5) CALL TRANSACTION USING
MODE UPDATE MESSAGES INTO
6) check sy-subrc and process errors.
1 comment:
Good post.. Keep writing :)
Post a Comment