Posted: Sun Sep 02, 2007 4:12 pm Post subject: Создание BDC программы
General flow of a BDC program is like this....
1) First create recording for the T code which you want to make BDC for... Use T code SHDB for recording.
2 ) Now save that recording and create pogram from that recording using Create Program button. give the BDC driver program name and create.
3 ) Now the general logic of BDC program goes like this....
- Upload Flat file into and internal table using function module "UPLOAD"
- OPEN BDC GROUP.
- Now loop at that internal table which contains the data from flat file.
- move data from internal table to fields of BDCDATA using automatically gebnerated code from BDC.
- CALL TRANSACTION <T CODE> using BDCDATA...
- CLOSE BDC GROUP
A sample program for the same is attatched here for your referance... just go through it..
Code:
REPORT ztej_test_new no standard page heading line-size 255.
data bdcdata like bdcdata occurs 0 with header line.
tables: zipcldesigcat.
data : begin of itab occurs 0,
mandt like zipcldesigcat-mandt,
zdesigncd like zipcldesigcat-zdesigncd,
zdesignation like zipcldesigcat-zdesignation,
zdesigcat like zipcldesigcat-zdesigcat,
end of itab.
*INCLUDE bdcrecx1.
start-of-selection.
perform upload.
perform open.
loop at itab.
perform move.
call transaction 'SE16' using bdcdata mode 'E'.
refresh bdcdata.
endloop.
perform close.
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
form bdc_field using fnam fval.
if fval <> space.
clear bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
append bdcdata.
endif.
endform.
*&---------------------------------------------------------------------*
*& Form OPEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form open.
call function 'BDC_OPEN_GROUP'
exporting
client = sy-mandt
* DEST = FILLER8
group = 'ZDESIGCAT_R'
* HOLDDATE = FILLER8
* KEEP = FILLER1
user = sy-uname
* RECORD = FILLER1
* IMPORTING
* QID =
exceptions
client_invalid = 1
destination_invalid = 2
group_invalid = 3
group_is_locked = 4
holddate_invalid = 5
internal_error = 6
queue_error = 7
running = 8
system_lock_error = 9
user_invalid = 10
others = 11
.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " OPEN
*&---------------------------------------------------------------------*
*& Form MOVE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form move.
perform bdc_dynpro using 'SAPLSETB' '0230'.
perform bdc_field using 'BDC_CURSOR'
'DATABROWSE-TABLENAME'.
perform bdc_field using 'BDC_OKCODE'
'=ANLE'.
perform bdc_field using 'DATABROWSE-TABLENAME'
'ZIPCLDESIGCAT'.
perform bdc_dynpro using 'SAPLZIPCLDESIGCAT' '0001'.
perform bdc_field using 'BDC_CURSOR'
'VIM_POSITION_INFO'.
perform bdc_field using 'BDC_OKCODE'
'=NEWL'.
perform bdc_dynpro using 'SAPLZIPCLDESIGCAT' '0001'.
perform bdc_field using 'BDC_CURSOR'
'ZIPCLDESIGCAT-ZDESIGCAT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=SAVE'.
perform bdc_field using 'ZIPCLDESIGCAT-ZDESIGNCD(01)'
'2101'.
perform bdc_field using 'ZIPCLDESIGCAT-ZDESIGNATION(01)'
'new'.
perform bdc_field using 'ZIPCLDESIGCAT-ZDESIGCAT(01)'
'n'.
perform bdc_dynpro using 'SAPLZIPCLDESIGCAT' '0001'.
perform bdc_field using 'BDC_CURSOR'
'ZIPCLDESIGCAT-ZDESIGNCD(02)'.
perform bdc_field using 'BDC_OKCODE'
'=ENDE'.
perform bdc_dynpro using 'SAPLSETB' '0230'.
perform bdc_field using 'BDC_OKCODE'
'/EEND'.
perform bdc_field using 'BDC_CURSOR'
'DATABROWSE-TABLENAME'.
endform. " MOVE
*&---------------------------------------------------------------------*
*& Form CLOSE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form close.
call function 'BDC_CLOSE_GROUP'
exceptions
not_open = 1
queue_error = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.