‎2005 May 26 11:02 PM
Hi,
When I use gui_upload to get the data from flat file to it_record, I am not getting any data in to it.
Please help me in this issue. I am attaching my code.
Thanks
Neelu.
REPORT zmm_3030_info_record_load NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE bdcrecx1.
DATA: v_norbm(17), v_netpr(14), v1_netpr(14).
DATA: V_APLFZ(3) TYPE C.
DATA: lv_filename type string.
----
TABLES:
----
TABLES: mara, eina, eine.
----
INTERNAL TABLES *
----
DATA: BEGIN OF it_eina_eine OCCURS 0,
infnr LIKE eina-infnr,
lifnr LIKE eina-lifnr,
matnr LIKE eina-matnr,
ekorg LIKE eine-ekorg,
werks LIKE eine-werks,
meins LIKE eina-meins,
waers LIKE eine-waers,
aplfz LIKE eine-aplfz,
norbm LIKE eine-norbm,
netpr LIKE eine-netpr.
DATA: END OF it_eina_eine.
DATA: BEGIN OF it_record OCCURS 0,
matnr LIKE eina-matnr,
lifnr LIKE eina-lifnr,
netpr LIKE eine-netpr.
DATA: END OF it_record.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_matnr FOR eina-matnr,
s_lifnr FOR eina-lifnr.
PARAMETERS: p_werks LIKE eine-werks DEFAULT '3030',
p_ekorg LIKE eine-ekorg DEFAULT '9000'.
PARAMETERS: p_fname LIKE RLGRAP-FILENAME. "lower case.
SELECTION-SCREEN END OF BLOCK b1.
*at selecion-screen on value request for file name
at selection-screen on value-request for p_fname.
perform get_file_name.
START-OF-SELECTION.
PERFORM get_inforec_data.
if p_fname is not initial.
PERFORM sub_upload_file.
endif.
LOOP AT it_eina_eine.
CLEAR: v_norbm, v_netpr, v_aplfz.
WRITE it_eina_eine-norbm TO v_norbm UNIT it_eina_eine-meins
NO-GROUPING LEFT-JUSTIFIED.
WRITE it_eina_eine-netpr TO v_netpr CURRENCY it_eina_eine-waers
NO-GROUPING LEFT-JUSTIFIED.
WRITE it_eina_eine-aplfz To v_aplfz.
PERFORM bdc_dynpro USING 'SAPMM06I' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'EINA-LIFNR'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'EINA-LIFNR' it_eina_eine-lifnr.
PERFORM bdc_field USING 'EINA-MATNR' it_eina_eine-matnr.
PERFORM bdc_field USING 'EINE-EKORG' p_ekorg.
PERFORM bdc_field USING 'EINE-WERKS' p_werks.
PERFORM bdc_field USING 'RM06I-NORMB' 'X'.
PERFORM bdc_dynpro USING 'SAPMM06I' '0101'.
PERFORM bdc_field USING 'BDC_CURSOR' 'EINA-MAHN1'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPMM06I' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR' 'EINE-NORBM'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
PERFORM bdc_field USING 'EINE-APLFZ' v_aplfz.
PERFORM bdc_field USING 'EINE-NORBM' v_norbm.
IF it_eina_eine-netpr > 0.
PERFORM bdc_field USING 'EINE-NETPR' v_netpr.
ELSEIF it_eina_eine-netpr = 0.
Read table it_record with key matnr = it_eina_eine-matnr
lifnr = it_eina_eine-lifnr.
if sy-subrc = 0.
WRITE it_record-netpr TO v1_netpr CURRENCY it_eina_eine-waers
NO-GROUPING LEFT-JUSTIFIED.
PERFORM bdc_field USING 'EINE-NETPR' v1_netpr.
endif.
ENDIF.
PERFORM bdc_transaction USING 'ME11'.
ENDLOOP.
&----
*& Form get_inforec_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_inforec_data .
SELECT eina~infnr
eina~lifnr
eina~matnr
eina~meins
eine~ekorg
eine~werks
eine~waers
eine~aplfz
eine~norbm
eine~netpr
INTO CORRESPONDING FIELDS OF TABLE it_eina_eine
FROM eina JOIN eine ON einainfnr = eineinfnr
WHERE matnr IN s_matnr
AND lifnr IN s_lifnr.
ENDFORM. " get_purchlist_data
&----
*& Form get_file_name
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_file_name .
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = p_fname.
ENDFORM. " get_file_name
**&----
**
**& Form sub_upload_file
**&----
**
text
**----
**
--> p1 text
<-- p2 text
**----
**
FORM sub_upload_file .
lv_filename = p_fname.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = lv_filename
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = it_record
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.
CASE sy-subrc.
WHEN 0.
WRITE / 'File upload is ok'.
WHEN 1.
WRITE: / 'File path is invalid'.
EXIT.
WHEN 2.
WRITE: / 'Error occured while reading the Input file'.
EXIT.
WHEN 13.
WRITE: / 'Access denied for the Input file'.
EXIT.
WHEN OTHERS.
WRITE: / 'Problem with the Input file'.
EXIT.
ENDCASE.
ENDIF.
ENDFORM. " sub_upload_file
‎2005 May 26 11:06 PM
Hi,
IF it_eina_eine-netpr = 0 I have to get data from FLATFILE.
IF it_eina_eine-netpr > 0 then from eina and eine tables.
Thanks
neelu.