2011 Apr 18 9:38 AM
error while uploading the excell file . ( field bpdy-wert1(1) input value is longer than screen field)
Any one please help me out <removed by moderator>
report ZIORETD
no standard page heading line-size 255.
CONSTANTS: c_begcol TYPE i VALUE 1,
c_begrow TYPE i VALUE 2,
c_endcol TYPE i VALUE 2,
c_endrow TYPE i VALUE 2000.
* Types Declaration *
types: begin of TY_Ko22,
AUFNR TYPE AUFNR,
wert1 TYPE wert1,
end of TY_ko22.
* Data Declarations *
DATA: it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE,
XL_itab type alsmex_tabline occurs 0 with header line.
data : it_itab type standard table of ty_ko22,
wa_itab type ty_ko22.
* Selection Screen *
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_file LIKE rlgrap-filename.
SELECTION-SCREEN: END OF BLOCK b1.
* At Selection Screen for File *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
perform f4_filename.
* Start-of-selection *
start-of-selection.
*Uploading the data from excel to internal table
perform excel_upload.
*Uploading to SAP
perform chek_data.
end-of-selection.
*& Form F4_FILENAME
* Find the file
FORM F4_FILENAME .
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = p_file.
ENDFORM. " F4_FILENAME
*&---------------------------------------------------------------------*
*& Form CHEK_DATA
FORM CHEK_DATA .
loop at it_itab into wa_itab.
*perform open_group.
perform bdc_dynpro using 'SAPMKBUD' '0300'.
perform bdc_field using 'BDC_CURSOR'
'CODIA-AUFNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'CODIA-AUFNR'
WA_ITAB-AUFNR."'8515'.
perform bdc_dynpro using 'SAPLKBPP' '0320'.
perform bdc_field using 'BDC_CURSOR'
'BPDY-WERT1(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BPDY-WERT1(01)'
wa_itab-wert1."'464646456'.
perform bdc_dynpro using 'SAPLKBPP' '0320'.
perform bdc_field using 'BDC_CURSOR'
'BPDY-WERT1(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPLKBPP' '0320'.
perform bdc_field using 'BDC_CURSOR'
'BPDY-WERT1(01)'.
perform bdc_field using 'BDC_OKCODE'
'=POST'.
CALL TRANSACTION 'KO22' USING IT_BDCDATA MODE 'E' UPDATE 'S'.
refresh it_bdcdata.
ENDLOOP.
ENDFORM. " CHEK_DATA
*&---------------------------------------------------------------------*
*& Form EXCEL_UPLOAD
FORM EXCEL_UPLOAD .
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = p_file
I_BEGIN_COL = c_begcol
I_BEGIN_ROW = c_begrow
I_END_COL = c_endcol
I_END_ROW = c_endrow
TABLES
INTERN = xl_itab.
* EXCEPTIONS
* INCONSISTENT_PARAMETERS = 1
* UPLOAD_OLE = 2
* OTHERS = 3 .
IF SY-SUBRC = 0.
* MESSAGE 'DATA UPLOADED SUCCESSFULLY' TYPE 'I'.
ENDIF.
loop at xl_itab.
case xl_itab-col.
when '1'.
wa_itab-AUFNR = xl_itab-value.
when '2'.
wa_itab-wert1 = xl_itab-value.
endcase.
at end of row.
append wa_itab to it_itab.
endat.
endloop.
ENDFORM. "EXCEL_UPLOAD
" EXCEL_UPLOAD *&---------------------------------------------------------------------*
*& Form BDC_DYNPRO
FORM BDC_DYNPRO USING A B.
clear it_bdcdata.
it_bdcdata-PROGRAM = A.
it_bdcdata-DYNPRO = B.
it_bdcdata-DYNBEGIN = 'X'.
APPEND it_bdcdata.
ENDFORM. " BDC_DYNPRO
*&---------------------------------------------------------------------*
*& Form BDC_FIELD
FORM BDC_FIELD USING C D.
clear it_bdcdata.
it_bdcdata-FNAM = C.
it_bdcdata-FVAL = D.
APPEND it_bdcdata.
ENDFORM. " BDC_FIELD
Edited by: Thomas Zloch on Apr 18, 2011 6:35 PM
2011 Apr 18 10:11 AM
Hi,
Define the wa_itab-wert1 as character type of lenght 17.
Regards,
Madhukar Shetty
Him,
Try the below syntax..
Check in the currency field Periods are allowed (Comma seperator is not allowed)
try the below code above bdc
Replace all Occuranaces of ',' in l_amount with space.
Condense l_amount.
Prabhudas
2011 Apr 18 10:11 AM
Hi,
Define the wa_itab-wert1 as character type of lenght 17.
Regards,
Madhukar Shetty
2011 Apr 18 10:16 AM
2011 Apr 18 10:20 AM
i tried this but not working. (error message: input must be in the format ._.__.__.__~,__V )
report ZIORETD
no standard page heading line-size 255.
CONSTANTS: c_begcol TYPE i VALUE 1,
c_begrow TYPE i VALUE 2,
c_endcol TYPE i VALUE 2,
c_endrow TYPE i VALUE 2000.
types: begin of TY_Ko22,
AUFNR TYPE AUFNR,
wert1 TYPE wert1,
end of TY_ko22.
DATA: it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE,
XL_itab type alsmex_tabline occurs 0 with header line.
data : it_itab type table of ty_ko22,
wa_itab type ty_ko22.
data: L_amount(17) type c.
l_amount = WA_itab-WERT1.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_file LIKE rlgrap-filename.
SELECTION-SCREEN: END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
perform f4_filename.
start-of-selection.
*Uploading the data from excel to internal table
perform excel_upload.
*Uploading to SAP
perform chek_data.
end-of-selection.
FORM F4_FILENAME .
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = p_file.
ENDFORM. " F4_FILENAME
FORM CHEK_DATA .
loop at it_itab into wa_itab.
l_amount = WA_itab-WERT1.
*perform open_group.
perform bdc_dynpro using 'SAPMKBUD' '0300'.
perform bdc_field using 'BDC_CURSOR'
'CODIA-AUFNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'CODIA-AUFNR'
WA_ITAB-AUFNR."'8515'.
perform bdc_dynpro using 'SAPLKBPP' '0320'.
perform bdc_field using 'BDC_CURSOR'
'BPDY-WERT1(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BPDY-WERT1(01)'
l_amount."'464646456'.
perform bdc_dynpro using 'SAPLKBPP' '0320'.
perform bdc_field using 'BDC_CURSOR'
'BPDY-WERT1(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPLKBPP' '0320'.
perform bdc_field using 'BDC_CURSOR'
'BPDY-WERT1(01)'.
perform bdc_field using 'BDC_OKCODE'
'=POST'.
CALL TRANSACTION 'KO22' USING IT_BDCDATA MODE 'A' UPDATE 'S'.
refresh it_bdcdata.
ENDLOOP.
ENDFORM. " CHEK_DATA
FORM EXCEL_UPLOAD .
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = p_file
I_BEGIN_COL = c_begcol
I_BEGIN_ROW = c_begrow
I_END_COL = c_endcol
I_END_ROW = c_endrow
TABLES
INTERN = xl_itab.
* EXCEPTIONS
* INCONSISTENT_PARAMETERS = 1
* UPLOAD_OLE = 2
* OTHERS = 3 .
IF SY-SUBRC = 0.
* MESSAGE 'DATA UPLOADED SUCCESSFULLY' TYPE 'I'.
ENDIF.
loop at xl_itab.
case xl_itab-col.
when '1'.
wa_itab-AUFNR = xl_itab-value.
when '2'.
wa_itab-wert1 = xl_itab-value.
endcase.
at end of row.
append wa_itab to it_itab.
endat.
endloop.
ENDFORM. "EXCEL_UPLOAD
" EXCEL_UPLOAD *
*& Form BDC_DYNPRO
FORM BDC_DYNPRO USING A B.
clear it_bdcdata.
it_bdcdata-PROGRAM = A.
it_bdcdata-DYNPRO = B.
it_bdcdata-DYNBEGIN = 'X'.
APPEND it_bdcdata.
ENDFORM. " BDC_DYNPRO
FORM BDC_FIELD USING C D.
clear it_bdcdata.
it_bdcdata-FNAM = C.
it_bdcdata-FVAL = D.
APPEND it_bdcdata.
ENDFORM. " BDC_FIELD
2011 Apr 18 10:39 AM
Him,
Try the below syntax..
Check in the currency field Periods are allowed (Comma seperator is not allowed)
try the below code above bdc
Replace all Occuranaces of ',' in l_amount with space.
Condense l_amount.
Prabhudas
2011 Apr 18 10:44 AM
2011 Apr 29 6:55 AM
Hi,
it the prabhu opinion is correct?
how u solved this issue?
Thanks
Ashutosh
2011 Apr 29 6:56 AM
Hi,
it the prabhu opinion is correct?
how u solved this issue?
Thanks
Ashutosh
2011 Apr 29 3:48 PM
in the loop add this code.
Replace all Occuranaces of ',' in l_amount with space.
Condense l_amount.
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |