‎2008 Jun 12 11:40 AM
Hi experts how to display flat file records in database
tables by using bdc.plz tell the coding
‎2008 Jun 12 11:42 AM
http://www.sap-img.com/abap/bdc-program-for-purchase-info-records.htm
REPORT zje_bdc_customer1
NO STANDARD PAGE HEADING LINE-SIZE 255.
*INCLUDE bdcrecx1.
TABLES: zje_customer.
DATA: it_customer TYPE TABLE OF zje_customer,
wa_customer TYPE zje_customer.
DATA: ibdcdata TYPE TABLE OF bdcdata WITH HEADER LINE.
DATA: v_file TYPE string.
PARAMETERS: p_file LIKE ibipparms-path.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
file_name = p_file .
MOVE p_file TO v_file.
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_customer
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
PERFORM open_group.
LOOP AT it_customer INTO wa_customer.
REFRESH ibdcdata.
PERFORM bdc_dynpro USING 'ZJE_CUSTOMER_MODULE' '0318'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=MODI'.
PERFORM bdc_field USING 'BDC_CURSOR'
'ZJE_CUSTOMER-CITY'.
PERFORM bdc_field USING 'ZJE_CUSTOMER-CUSTOMERNO'
wa_customer-customerno.
PERFORM bdc_field USING 'ZJE_CUSTOMER-NAME'
wa_customer-name.
PERFORM bdc_field USING 'ZJE_CUSTOMER-COUNTRYKEY'
wa_customer-countrykey.
PERFORM bdc_field USING 'ZJE_CUSTOMER-CITY'
wa_customer-city.
PERFORM bdc_dynpro USING 'ZJE_CUSTOMER_MODULE' '0318'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=EXIT'.
PERFORM bdc_field USING 'BDC_CURSOR'
'ZJE_CUSTOMER-CUSTOMERNO'.
PERFORM bdc_transaction USING 'ZCUSTOMER'.
PERFORM bdc_insert.
ENDLOOP.
SUBMIT rsbdcsub WITH mappe = 'CUSTOMER1'
EXPORTING LIST TO MEMORY AND RETURN.
if sy-subrc eq 0.
write:/ 'executed successfully'.
endif.
PERFORM close_group.
&----
*& Form BDC_DYNPRO
&----
text
----
-->PROGRAM text
-->DYNPRO text
----
FORM bdc_dynpro USING program dynpro.
CLEAR ibdcdata.
ibdcdata-program = program.
ibdcdata-dynpro = dynpro.
ibdcdata-dynbegin = 'X'.
APPEND ibdcdata.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM bdc_field USING fnam fval.
IF fval <> ' '.
CLEAR ibdcdata.
ibdcdata-fnam = fnam.
ibdcdata-fval = fval.
APPEND ibdcdata.
ENDIF.
ENDFORM. "bdc_field
&----
*& Form open_group
&----
text
----
--> p1 text
<-- p2 text
----
FORM open_group .
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
group = 'CUSTOMER1'
HOLDDATE = FILLER8
keep = 'X'
user = sy-uname
RECORD = FILLER1
PROG = SY-CPROG
DCPFM = '%'
DATFM = '%'
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_group
&----
*& Form close_group
&----
text
----
--> p1 text
<-- p2 text
----
FORM close_group .
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.
ENDFORM. " close_group
&----
*& Form BDC_INSERT
&----
text
----
--> p1 text
<-- p2 text
----
FORM bdc_insert .
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'ZCUSTOMER'
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
SIMUBATCH = ' '
CTUPARAMS = ' '
TABLES
dynprotab = ibdcdata
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7
.
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. " BDC_INSERT
Regards,
Jagadish