‎2008 Sep 08 12:15 PM
Hi,
In VK15, I am uploading Condition record through BDC,
where Its only updating the 14 line items,If its excedding more than 14 lines I am getting error...
How to upload all excel data at a time ..
Can anybody suggest me ...with simple example coding
Thanks
Kumar
‎2008 Sep 08 12:38 PM
Hi,
Please use every 14 Entries below code:
perform bdc_field using 'BDC_OKCODE'
'=NEWP'.
Regards
jana
‎2008 Sep 08 1:04 PM
Hi
I thing ur recording shopuld be wrong..u chk ur recording.
What function module u r using getting the files.
u use: F4_FILENAME.
And upload u fiollow : gui_upload.
‎2008 Sep 11 9:19 AM
Can u give me the simple coding..
I tried but its not working.
Thanks
kumar
‎2008 Sep 11 9:55 AM
hi kumar,
try the below sample code for data upload ,with your transaction.
TYPES: BEGIN OF T_CDATA,
ATKLA LIKE CABN-ATKLA,
ATNAM LIKE CABN-ATNAM,
ATFOR LIKE CABN-ATFOR,
END OF T_CDATA.
TYPES: BEGIN OF T_CCHAR,
ATWRT(30),
ATWTB(30),
END OF T_CCHAR.
DATA: IT_CDATA TYPE STANDARD TABLE OF T_CDATA,
IT_CCHAR TYPE STANDARD TABLE OF T_CCHAR,
IT_BDC TYPE STANDARD TABLE OF BDCDATA WITH HEADER LINE.
DATA: WA_CDATA TYPE T_CDATA,
WA_BDC TYPE BDCDATA,
WA_CCHAR TYPE T_CCHAR.
PARAMETERS: P_ATKLA LIKE CABN-ATKLA OBLIGATORY,
P_FNAME LIKE RLGRAP-FILENAME OBLIGATORY.
CONSTANTS: C_TCODE LIKE TSTC-TCODE VALUE 'CT04'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
PERFORM f_get_f4_help USING p_fname.
START-OF-SELECTION.
SELECT ATKLA ATNAM ATFOR INTO TABLE IT_CDATA
FROM CABN
WHERE ATKLA = P_ATKLA.
IF NOT IT_CDATA[] IS INITIAL.
PERFORM UPLOAD_DATA.
PERFORM BDC_OPEN_GROUP.
LOOP AT IT_CDATA INTO WA_CDATA.
REFRESH: IT_BDC.
PERFORM BDC_UPLOAD_DATA.
PERFORM BDC_CALL_TRANS.
PERFORM BDC_UPLOAD.
CLEAR WA_CDATA.
ENDLOOP.
PERFORM BDC_CLOSE_GROUP.
ENDIF.
&----
*& Form UPLOAD_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM UPLOAD_DATA .
UPLOAD DATA USING GUI_UPLOAD
DATA: l_v_filename TYPE string.
CONSTANTS: l_c_asc TYPE filetype VALUE 'ASC',
l_c_x TYPE char1 VALUE 'X'.
l_v_filename = p_fname.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = l_v_filename
FILETYPE = l_c_asc
HAS_FIELD_SEPARATOR = l_c_x
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = ','
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = IT_CCHAR
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.
ENDFORM. " UPLOAD_DATA
&----
*& Form BDC_OPEN_GROUP
&----
text
----
--> p1 text
<-- p2 text
----
FORM BDC_OPEN_GROUP .
OPEN GROUP
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
GROUP = 'ZCHARU'
HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
RECORD = FILLER1
PROG = SY-CPROG
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. " BDC_OPEN_GROUP
&----
*& Form BDC_UPLOAD_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM BDC_UPLOAD_DATA .
CLEAR: WA_CCHAR.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
PERFORM BDC_FIELD USING 'RCTAV-ATNAM' WA_CDATA-ATNAM.
perform bdc_field using 'BDC_OKCODE' '=ANDE'.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
perform bdc_field using 'BDC_OKCODE' '=WERT'.
LOOP AT IT_CCHAR INTO WA_CCHAR.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'CAWN-ATWRT(01)'.
perform bdc_field using 'BDC_OKCODE' '=INSE'.
IF WA_CDATA-ATFOR = 'CHAR'.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'CAWN-ATWRT(01)'.
PERFORM BDC_FIELD USING 'CAWN-ATWRT(01)' WA_CCHAR-ATWRT.
PERFORM BDC_FIELD USING 'CAWN-ATWTB(01)' WA_CCHAR-ATWTB.
perform bdc_field using 'BDC_OKCODE' '=/00'.
ELSE.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'CAWN-ATWRT(01)'.
PERFORM BDC_FIELD USING 'CAWN-ATWRT(01)' WA_CCHAR-ATWRT.
perform bdc_field using 'BDC_OKCODE' '=/00'.
ENDIF.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
perform bdc_field using 'BDC_OKCODE' '=SICH'.
PERFORM bdc_dynpro USING 'SAPLCTMV' '2100'.
perform bdc_field using 'BDC_OKCODE' '=BACK'.
ENDFORM. " BDC_UPLOAD_DATA
&----
*& Form BDC_CLOSE_GROUP
&----
text
----
--> p1 text
<-- p2 text
----
FORM BDC_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. " BDC_CLOSE_GROUP
&----
*& Form BDC_FIRST_SCREEN
&----
text
----
--> p1 text
<-- p2 text
----
form bdc_dynpro using program dynpro.
CLEAR IT_BDC.
IT_BDC-program = program.
IT_BDC-dynpro = dynpro.
IT_BDC-dynbegin = 'X'.
append IT_BDC.
ENDFORM. " bdc_dynpro
----
Insert field *
----
form bdc_field using fnam fval.
clear IT_BDC.
IT_BDC-fnam = fnam.
IT_BDC-fval = fval.
append IT_BDC.
endform.
&----
*& Form BDC_UPLOAD
&----
text
----
--> p1 text
<-- p2 text
----
FORM BDC_UPLOAD .
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = C_TCODE
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
SIMUBATCH = ' '
CTUPARAMS = ' '
TABLES
DYNPROTAB = IT_BDC
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_UPLOAD
&----
*& Form f_get_f4_help
&----
text
----
-->P_P_FILE text
----
FORM f_get_f4_help USING P_P_FILE.
*F4 help for file path
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = p_p_file.
ENDFORM. " f_get_f4_help
&----
*& Form BDC_CALL_TRANS
&----
text
----
--> p1 text
<-- p2 text
----
FORM BDC_CALL_TRANS .
DATA: IT_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL.
CLEAR: IT_BDC.
CALL TRANSACTION 'CT04' USING IT_BDC
MODE 'A'
MESSAGES INTO IT_BDCMSGCOLL.
IF SY-SUBRC EQ 0.
ENDIF.
ENDFORM. " BDC_CALL_TRANS
hope it helps.try this and if not let us knw where exactly u face the problem.
Regards,
Leena.