Parameter: p_file LIKE rlgrap-filename.
Hi I have given this in my code 'p_file LIKE rlgrap-filename.' and it showing that put your address in this bar and it will take you to required area. Now I want using p_file LIKE rlgrap-filename with browsing facility. How I will do that. Need info.
TYhanks...............
Hi,
Try the following code.
tables: sdokpath.
parameters:
p_path(250) type c.
data:
w_path(250) type c,
w_size type i,
w_name type rlgrap-filename.
data:
t_contents like
standard table
of sdokpath.
data:
t_contents1 like
standard table
of sdokpath.
data:
begin of fs_size,
name like w_name,
size type i,
end of fs_size.
data:
t_size like
standard table
of fs_size.
at selection-screen on value-request for p_path.
call function 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = ' '
DEF_PATH = W_PATH
MASK = ' '
MODE = ' '
TITLE = ' '
importing
filename = p_path
RC =
exceptions
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
others = 5
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
at selection-screen.
if p_path is initial.
message 'Enter the file path'(001) type 'E'.
endif.
end-of-selection.
call function 'WS_QUERY'
exporting
ENVIRONMENT =
FILENAME = W_PATH
query = 'CD'
WINID =
importing
return = w_path
exceptions
inv_query = 1
no_batch = 2
frontend_error = 3
others = 4
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
write:/ '-------CURRENT DIRECTORY IS -
write:/10 w_path.
write: /,/,/.
call function 'TMP_GUI_DIRECTORY_LIST_FILES'
exporting
directory = w_path
FILTER = '.'
IMPORTING
FILE_COUNT =
DIR_COUNT =
tables
file_table = t_contents
dir_table = t_contents1
exceptions
cntl_error = 1
others = 2
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
loop at t_contents into sdokpath.
w_name = sdokpath.
call function 'GUI_GET_FILE_INFO'
exporting
fname = w_name
importing
FILE_VERSION =
FILE_DBGREL =
FILE_LANG =
file_size = fs_size-size
EXCEPTIONS
FILEINFO_ERROR = 1
OTHERS = 2
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
write:/ w_name,40 fs_size-size.
fs_size-name = w_name.
append fs_size to t_size.
endloop.
sort t_size by size descending.
read table t_size index 1 into fs_size.
skip 3.
write: fs_size-name,30 'is the file having maximum size of',
70 fs_size-size.
regards,
kiran kumar k
Similar Messages
-
Regarding using PARAMETERS:p_prefil TYPE rlgrap-filename.
Hi when
I use this parameter
PARAMETERS:p_prefil TYPE rlgrap-filename.
in order take the input from the user for filename when downloading to the Presentation server i get the conflict type error and the program goes to dump.
But if i use the same p_prefil as string type it works.Could anyone tell me the reason for this.Hi..
To avoid this problem you have to declare a Separate variable.
PARAMETERS:p_prefil TYPE rlgrap-filename.
data : v_file type string.
START-OF-SELECTION.
MOVE P_PREFIL TO V_FILE.
call function 'GUI_DOWNLOAD'
exporting
FILENAME = V_FILE "This parameter accepts only STRING
This will work..
<b>reward if Helpful.</b> -
I have a question about extracting pages. When I do the function, adobe saves the individual files as "<file name><space><page number>", so the files look like this "filename 1.pdf", "filename 2.pdf", "filename 3.pdf". Without too many gory details, I am using excel to concatenate some data to dynamically build a hyperlink to these extraced files. It casues me problems, however, for the space to be the the file name. Is there any way to change the default behavoir of this function to perhaps use a dash or underscore instead of a space?
No, you can't change the default naming scheme. You can do it yourself if you extract the pages using a script instead of using the built-in command.
-
How to get each value from a parameter passed like this '(25,23,35,1)'
Hi
One of the parameter passed to the function is
FUNCTION f_main_facility(pi_flag_codes VARCHAR2) return gc_result_set AS
pi_flag_codes will be passed a value in this way '(25,23,35,1)'
How to get each value from the string
like 25 first time
23 second time
35 third time
1 fourth time
I need to build a select query with each value as shown below:-
(SELECT t2.org_id, t4.description
from org_name t2, ref_org_name t3, code_table t4
where t2.att_data = t4.code
and t3.ref_code = t2.att_type
and t2.att_type = 25 and t3.code_type = t4.code_type
and to_date('01-JAN-10', 'DD-MON-YY') between t2.att_start_date AND t2.att_end_date) q1,
(SELECT t2.org_id, t4.description
from org_name t2, ref_org_name t3,code_table t4
where t2.att_data = t4.code
and t3.ref_code = t2.att_type
and t2.att_type = 23 and t3.code_type = t4.code_type
and to_date('01-JAN-10', 'DD-MON-YY') between t2.att_start_date AND t2.att_end_date) q2,
(SELECT t2.org_id, RTRIM(xmlagg(xmlelement(e, t4.description || ';')
ORDER BY t4.description).EXTRACT('//text()'), ';') AS DESCRIPTION
from org_name t2, ref_org_name t3,code_table t4
where t2.att_data = t4.code
and t3.ref_code = t2.att_type
and t2.att_type = 35 and t3.code_type = t4.code_type
and to_date('01-JAN-10', 'DD-MON-YY') between t2.att_start_date AND t2.att_end_date
group by t2.org_id) q3,
(SELECT t2.org_id, t4.description
from org_name t2, ref_org_name t3, code_table t4
where t2.att_data = t4.code
and t3.ref_code = t2.att_type
and t2.att_type = 1 and t3.code_type = t4.code_type
and to_date('01-JAN-10', 'DD-MON-YY') between t2.att_start_date AND t2.att_end_date) q4
Please help me with extracting each alue from the parm '(25,23,35,1)' for the above purpose. Thank You.chris227 wrote:
I would propose the usage of regexp for readibiliy purposes and only in the case if this doesnt perform well, look at solutions using substr etc.
select
regexp_substr( '(25,23,35,1)', '\d+', 1, 1) s1
,regexp_substr( '(25,23,35,1)', '\d+', 1, 2) s2
,regexp_substr( '(25,23,35,1)', '\d+', 1, 3) s3
,regexp_substr( '(25,23,35,1)', '\d+', 1, 4) s4
from dual
S1 S2 S3 S4
"25" "23" "35" "1"In pl/sql you do something like l_val:= regexp_substr( '(25,23,35,1)', '\d+', 1, 1);
If t2.att_type is type of number you will do:
t2.att_type= to_number(regexp_substr( '(25,23,35,1)', '\d+', 1, 1))Edited by: chris227 on 01.03.2013 08:00Sir,
I am using oracle 10g.
In the process of getting each number from the parm '(25,23,35,1)' , I also need the position of the number
say 25 is at 1 position.
23 is at 2
35 is at 3
1 is at 4.
the reason I need that is when I build seperate select for each value, I need to add the query number at the end of the select query.
Please see the code I wrote for it, But the select query is having error:-
BEGIN
IF(pi_flag_codes IS NOT NULL) THEN
SELECT length(V_CNT) - length(replace(V_CNT,',','')) FROM+ ----> the compiler gives an error for this select query : PLS-00428:
*(SELECT '(25,23,35,1)' V_CNT FROM dual);*
DBMS_OUTPUT.PUT_LINE(V_CNT);
-- V_CNT := 3;
FOR L_CNT IN 0..V_CNT LOOP
if L_CNT=0 then
V_S_POS:=1;
V_E_POS:=instr(pi_flag_codes, ',', 1, 1)-1;
else
V_S_POS:=instr(pi_flag_codes,',',1,L_CNT)+1;
V_E_POS:=instr(pi_flag_codes, ',', 1, L_CNT+1)-V_S_POS;
end if;
if L_CNT=V_CNT then
V_ID:=TO_NUMBER(substr(pi_flag_codes,V_S_POS));
else
V_ID:=TO_NUMBER(substr(pi_flag_codes,V_S_POS,V_E_POS));
end if;
VN_ATYPE := ' t2.att_type = ' || V_ID;
rec_count := rec_count +1;
query_no := 'Q' || rec_count;
Pls help me with fetching each value to build the where cond of the select query along with the query number.
Thank You. -
Ejb/ql and named parameter in like
Hello,
With toplink/jpa, I have this:
"SELECT o FROM EtdSignaletique o WHERE o.name LIKE :name"
For the "name" parameter, I have to pass "Lennon%" (this column in our enterprise db seems to be space-padded; I don't have any control on that).
I think it would be better to have the "%" directly in the query, how could I do this?This is not possible with parameter binding, which is on by default. The bound valu must have the wildcard in it.
I had no success adding the wildcard into a JPQL statement without binding since it is considered part of the parameter name and is then reported as an illegal parameter name.
I believe this one is up to your application code.
Doug -
Accepting an empty field as a parameter in LIKE
Here is an SQL statement which accepts parameters from two
text fields and combines them in an AND. The database fields are
"subject" and "class". It works fine when something valid is
supplied for each parameter. Leaving either parameter as a blank
returns nothing. I'd like the user to optionally allow one (or
both) of the parameters to be left empty - as a "don't care". Thus,
if there were several parameters - the user could just supply
content only for the fields of interest.
SELECT *
FROM dlib
WHERE (Subject LIKE %MMColParam% AND class LIKE %QTest%)
Can I do that??
RonYou could try wrapping them in an ISNULL. Could be a bit
fiddly, and it
would depend on the optional parameters in the ISNULL, but it
would be worth
exploring. Perhaps someone has a better tried and tested
solution.
Pat.
"tevron" <[email protected]> wrote in
message
news:fat3nj$7eb$[email protected]..
> Here is an SQL statement which accepts parameters from
two text fields and
> combines them in an AND. The database fields are
"subject" and "class". It
> works fine when something valid is supplied for each
parameter. Leaving
> either
> parameter as a blank returns nothing. I'd like the user
to optionally
> allow
> one (or both) of the parameters to be left empty - as a
"don't care".
> Thus, if
> there were several parameters - the user could just
supply content only
> for the
> fields of interest.
>
> SELECT *
> FROM dlib
> WHERE (Subject LIKE %MMColParam% AND class LIKE %QTest%)
>
> Can I do that??
> Ron
>
> -
The error ring is very useful, especially with its parameterized inputs you can specific with %s, %f and %d parameters. I'd like to do the same thing in my fixed error codes using the error ring so that I can localize them into mulitple languages, but it seems that LabVIEW error codes from project text files never detect or support the parameter inputs, you get a error ring, but no input parameters. If you use the same string in a customer error code, it gives you the parameter input but then its hardcoded and you can't localize it. What gives?
Is there some other way to configure the error rings to use a project file for the error codes but still support the parameter inputs?
Solved!
Go to Solution.Hi Mike_King
Here is a VI snippet that I created with two different approaches, in the first one I used the format into string, the second one the function search and replace.
Here are some links with information about the functions that I used.
Format Into String Function - LabVIEW 2011 Help
Search and Replace String Function - LabVIEW 2011 Help
Regards
Esteban R.
Attachments:
Generate error code.png 34 KB -
MULTIPLE ITEM PROBLEM IN VL31N BDC
hI FRIENDS ,
I AM POSTING A BDC OF TRANSACTION VL31N ,ie FOR SCHEDULE AGREEMENT INBOUND DELIVERY.I CREATE A FUNCTIONAL MODULE OF THE SAME AND CALL IT FROM AN ASP PAGE,IN THAT THERE IS PO NUMBER 5500000986 WHICH HAS TWO ITEMES 62 AND 95 RESPECTIVLY OF SAME MATARIAL NUMBER R010230123041002 AND DIE NUMBER 2304P,NOW THE PROBLEM IS THIS BDC IS WORKING WHEN THERE IS ONLY ONE ITEM BUT GIVES AN ERROR "CANT CREAT INBOUND DELIVERY FOR PO NO ...' WNEN IT HAS MULTIPLE ITEM.WHAT SHOULD I DO ? I ALSO USED LOOP BUT IT ALSO DOSENT WORK AS IT WILL ADD ALL OPEN QTY OF PO 986 AND UPDATE AGAINST ITEM NO 95.
CODE IS AS FOLLOWS:.........
FUNCTION y_synie_bdcinbdly.
""Local interface:
*" IMPORTING
*" VALUE(CTU) LIKE APQI-PUTACTIVE DEFAULT 'X'
*" VALUE(MODE) LIKE APQI-PUTACTIVE DEFAULT 'N'
*" VALUE(UPDATE) LIKE APQI-PUTACTIVE DEFAULT 'L'
*" VALUE(GROUP) LIKE APQI-GROUPID OPTIONAL
*" VALUE(USER) LIKE APQI-USERID OPTIONAL
*" VALUE(KEEP) LIKE APQI-QERASE OPTIONAL
*" VALUE(HOLDDATE) LIKE APQI-STARTDATE OPTIONAL
*" VALUE(NODATA) LIKE APQI-PUTACTIVE DEFAULT '/'
*" VALUE(EXTNID) LIKE MAKT-MAKTG
*" VALUE(VENDORNO) LIKE LFA1-LIFNR
*" VALUE(PONUMBER) LIKE EKKO-EBELN
*" VALUE(ITEMNUMBER) LIKE LIPS-VGPOS
*" VALUE(MATERIAL) LIKE MAKT-MAKTG
*" VALUE(DLYQTY) LIKE LIPS-LFIMG
*" VALUE(BTCHNO) LIKE LIPS-CHARG
*" VALUE(POSLR) LIKE EKES-EBELP OPTIONAL
*" EXPORTING
*" VALUE(SUBRC) LIKE SYST-SUBRC
*" VALUE(INDELYNO) LIKE SY-MSGV2
*" VALUE(MSG1) LIKE SY-MSGV1
*" VALUE(MSG2) LIKE SY-MSGV2
*" VALUE(MSG3) LIKE SY-MSGV3
*" VALUE(MSG4) LIKE SY-MSGV4
*" TABLES
*" MESSTAB STRUCTURE BDCMSGCOLL
*" ERRTAB STRUCTURE YSYNERRMSGS
*" INDLYTAB STRUCTURE YSYN_QTYTAB
Updated by ANAND SYNISE 19.1.2007
DATA: BEGIN OF bdctab OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdctab.
DATA: datenow(10) TYPE c,
fldvar(30) TYPE c,
fldno TYPE i,
flditoc(6) TYPE c,
qty(13) TYPE c.
DATA maxposnr LIKE lips-posnr.
DATA testposnr TYPE posnr.
DATA itemnoint TYPE i.
CONCATENATE sy-datum6(2) '.' sy-datum4(2) '.' sy-datum+0(4) INTO datenow.
CLEAR bdctab.
REFRESH bdctab.
PERFORM open_group USING group user keep holddate ctu.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '4007'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'RV50A-VERUR_LA'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '/00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-LIFNR'.
bdctab-fval = vendorno.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LV50C-BSTNR'.
bdctab-fval = ponumber.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-VERUR_LA'.
bdctab-fval = extnid.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=MKAL_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIKP-BLDAT'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=POPO_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-POSNR(01)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '0111'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'RV50A-PO_MATNR'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = 'WEIT'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-PO_MATNR'.
bdctab-fval = material.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=POLO_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-POSNR(01)'.
APPEND bdctab.
*ADDED BY ANAND ON 22-01-2007
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = ITEMNUMBER . "ITEMNUMBER = LIPS-VGPOS
APPEND bdctab.
************ENDED***********************
ADDED BY MILIND 19.01.2007
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = poslr .
APPEND bdctab.
* ENDED * *
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LIPS_SELKZ(01)'.
bdctab-fval = ''.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '/00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-CHARG(01)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
QTY = INDLYTAB-DLYQTY.
qty = dlyqty.
bdctab-fnam = 'LIPSD-G_LFIMG(01)'.
bdctab-fval = QTY.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIPS-CHARG(01)'.
* BDCTAB-FVAL = INDLYTAB-BTCHNO.
bdctab-fval = btchno.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=SICH_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-MATNR(02)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CALL TRANSACTION 'VL31N' USING bdctab MODE 'N' MESSAGES INTO messtab.
subrc = sy-subrc.
PERFORM close_group USING ctu.
CLEAR bdctab.
REFRESH bdctab.
IF sy-subrc EQ 0.
indelyno = sy-msgv2.
ENDIF.
LOOP AT messtab.
MOVE: messtab-msgid TO errtab-msgid,
messtab-msgnr TO errtab-msgnr,
messtab-msgv1 TO errtab-msg1,
messtab-msgv2 TO errtab-msg2,
messtab-msgv3 TO errtab-msg3,
messtab-msgv4 TO errtab-msg4.
APPEND ERRtab.
ENDLOOP.
LOOP AT errtab.
SELECT SINGLE text FROM t100
INTO errtab-errmsg
WHERE msgnr EQ errtab-msgnr AND arbgb EQ errtab-msgid
AND sprsl EQ sy-langu.
MODIFY errtab.
ENDLOOP.
ENDFUNCTION.Hi,
Check this code:
REPORT Z_CUSTOMER_UPLOAD .
D A T A D E C L A R A T I O N S *
DATA:BEGIN OF IT_CUSTOMER OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_CUSTOMER.
DATA:BEGIN OF IT_success OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_success.
DATA:BEGIN OF IT_error OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_error.
DATA: L_INDEX TYPE SY-TABIX.
DATA:IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
ERROR MESSAGE TABLE
DATA:IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : C_S TYPE C VALUE 'S',
C_E TYPE C VALUE 'E'.
*DATA: IT_SUCCESS LIKE IT_CUSTOMER OCCURS 0,
IT_ERROR LIKE IT_CUSTOMER OCCURS 0.
DATA : V_RECTOT TYPE I,
V_RECERR TYPE I,
V_RECSUC TYPE I.
S E L E C T I O N - S C R E E N *
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : P_FILE LIKE RLGRAP-FILENAME .
SELECTION-SCREEN : END OF BLOCK B1.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
to get F4 help for p_file
PERFORM F4_FILENAME USING P_FILE.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
Uploading data from flat file into it_tab
PERFORM BDC_UPLOAD USING P_FILE.
PERFORM PROCESS_DATA.
PERFORM POPULATE_BDC.
E N D O F S E L E C T I O N *
*END-OF-SELECTION.
PERFORM DISPLAY_REPORT.
*& Form F4_FILENAME
text
-->P_P_FILE text
FORM F4_FILENAME USING P_P_FILE.
DATA:L_FILE TYPE IBIPPARMS-PATH.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = L_FILE .
P_P_FILE = L_FILE.
ENDFORM. " F4_FILENAME
*& Form BDC_UPLOAD
text
-->P_P_FILE text
FORM BDC_UPLOAD USING P_P_FILE.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_P_FILE
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 8
I_END_ROW = 1000
TABLES
INTERN = IT_DATA
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 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_UPLOAD
*& Form PROCESS_DATA
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA.
SORT IT_DATA BY ROW COL.
LOOP AT IT_DATA.
CASE IT_DATA-COL.
WHEN 1.
IT_CUSTOMER-KUNNR = IT_DATA-VALUE.
WHEN 2.
IT_CUSTOMER-VKORG = IT_DATA-VALUE.
WHEN 3.
IT_CUSTOMER-VTWEG = IT_DATA-VALUE.
WHEN 4.
IT_CUSTOMER-MATNR = IT_DATA-VALUE.
WHEN 5.
IT_CUSTOMER-KDMAT = IT_DATA-VALUE.
WHEN 6.
IT_CUSTOMER-MEGRU = IT_DATA-VALUE.
WHEN 7.
IT_CUSTOMER-LPRIO = IT_DATA-VALUE.
WHEN 8.
IT_CUSTOMER-ANTLF = IT_DATA-VALUE.
APPEND IT_CUSTOMER.
ENDCASE.
ENDLOOP.
ENDFORM. " PROCESS_DATA
*& Form POPULATE_BDC
text
--> p1 text
<-- p2 text
FORM POPULATE_BDC.
DATA:L_COUNTER TYPE N,
L_STRING TYPE STRING.
LOOP AT IT_CUSTOMER.
AT NEW KUNNR.
CLEAR L_COUNTER.
L_INDEX = SY-TABIX.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
perform bdc_dynpro using 'SAPMV10A' '0100'.
perform bdc_field using 'MV10A-KUNNR'
IT_CUSTOMER-KUNNR.
perform bdc_field using 'MV10A-VKORG'
IT_CUSTOMER-VKORG.
perform bdc_field using 'MV10A-VTWEG'
IT_CUSTOMER-VTWEG.
perform bdc_field using 'BDC_OKCODE'
'/00'.
ENDAT.
L_COUNTER = L_COUNTER + 1.
CLEAR L_STRING.
perform bdc_dynpro using 'SAPMV10A' '0200'.
CONCATENATE 'MV10A-MATNR(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-MATNR.
CONCATENATE 'MV10A-KDMAT(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-KDMAT.
CONCATENATE 'MV10A-MEGRU(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-MEGRU.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*-- For Page down in Call Transaction Mode
IF L_COUNTER = 14.
CLEAR L_COUNTER.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=P+'.
ENDIF.
perform bdc_dynpro using 'SAPMV10A' '0200'.
CONCATENATE 'MV10A-SELKZ(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-SELKZ.
perform bdc_field using 'BDC_OKCODE'
'=SELE'.
perform bdc_dynpro using 'SAPMV10A' '0300'.
perform bdc_field using 'MV10A-KDMAT'
IT_CUSTOMER-KDMAT.
perform bdc_field using 'MV10A-LPRIO'
IT_CUSTOMER-LPRIO.
perform bdc_field using 'MV10A-ANTLF'
IT_CUSTOMER-ANTLF.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/EBACK'.
at end of kunnr.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
CALL TRANSACTION 'VD51' USING IT_BDC MODE 'A' UPDATE 'S'
MESSAGES INTO IT_MESSAGES.
CLEAR IT_BDC.
REFRESH IT_BDC.
ENDAT.
IF NOT IT_MESSAGES[] IS INITIAL.
PERFORM FORMAT_MESSAGE.
ENDIF.
ENDLOOP.
ENDFORM. " POPULATE_BDC
*& Form bdc_dynpro
text
-->P_0273 text
-->P_0274 text
FORM bdc_dynpro USING VALUE(P_0273)
VALUE(P_0274).
IT_BDC-PROGRAM = P_0273.
IT_BDC-DYNPRO = P_0274.
IT_BDC-DYNBEGIN = 'X'.
APPEND IT_BDC.
CLEAR IT_BDC.
ENDFORM. " bdc_dynpro
*& Form bdc_field
text
-->P_0278 text
-->P_RECORD_KUNNR_001 text
FORM bdc_field USING VALUE(P_0278)
VALUE(P_0279).
IT_BDC-FNAM = P_0278.
IT_BDC-FVAL = P_0279.
APPEND IT_BDC.
CLEAR IT_BDC.
ENDFORM. " bdc_field
*& Form FORMAT_MESSAGE
text
--> p1 text
<-- p2 text
FORM FORMAT_MESSAGE.
DATA: L_MSG(100).
LOOP AT IT_MESSAGES.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MESSAGES-MSGID
LANG = SY-LANGU
NO = IT_MESSAGES-MSGNR
V1 = IT_MESSAGES-MSGV1
V2 = IT_MESSAGES-MSGV2
V3 = IT_MESSAGES-MSGV3
V4 = IT_MESSAGES-MSGV4
IMPORTING
MSG = L_MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
write:/ l_msg.
ENDLOOP.
ENDFORM. " FORMAT_MESSAGE
reward if helpful,
keerthi -
Upload tab-delimited file from the application server to an internal table
Hello SAPients.
I'm using OPEN DATASET..., READ DATASET..., CLOSE DATASET to upload a file from the application server (SunOS). I'm working with SAP 4.6C. I'm trying to upload a tab-delimited file to an internal table but when I try load it the fields are not correctly separated, in fact, they are all misplaced and the table shows '#' where supposedly there was a tab.
I tried to SPLIT the line using as separator a variable with reference to CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB but for some reason that class doesn't exist in my system.
Do you know what I'm doing wrong? or Do you know a better method to upload a tab-delimited file into an internal table?
Thank you in advance for your help.Try:
REPORT ztest MESSAGE-ID 00.
PARAMETER: p_file LIKE rlgrap-filename OBLIGATORY.
DATA: BEGIN OF data_tab OCCURS 0,
data(4096),
END OF data_tab.
DATA: BEGIN OF vendor_file_x OCCURS 0.
* LFA1 Data
DATA: mandt LIKE bgr00-mandt,
lifnr LIKE blf00-lifnr,
anred LIKE blfa1-anred,
bahns LIKE blfa1-bahns,
bbbnr LIKE blfa1-bbbnr,
bbsnr LIKE blfa1-bbsnr,
begru LIKE blfa1-begru,
brsch LIKE blfa1-brsch,
bubkz LIKE blfa1-bubkz,
datlt LIKE blfa1-datlt,
dtams LIKE blfa1-dtams,
dtaws LIKE blfa1-dtaws,
erdat LIKE lfa1-erdat,
ernam LIKE lfa1-ernam,
esrnr LIKE blfa1-esrnr,
konzs LIKE blfa1-konzs,
ktokk LIKE lfa1-ktokk,
kunnr LIKE blfa1-kunnr,
land1 LIKE blfa1-land1,
lnrza LIKE blfa1-lnrza,
loevm LIKE blfa1-loevm,
name1 LIKE blfa1-name1,
name2 LIKE blfa1-name2,
name3 LIKE blfa1-name3,
name4 LIKE blfa1-name4,
ort01 LIKE blfa1-ort01,
ort02 LIKE blfa1-ort02,
pfach LIKE blfa1-pfach,
pstl2 LIKE blfa1-pstl2,
pstlz LIKE blfa1-pstlz,
regio LIKE blfa1-regio,
sortl LIKE blfa1-sortl,
sperr LIKE blfa1-sperr,
sperm LIKE blfa1-sperm,
spras LIKE blfa1-spras,
stcd1 LIKE blfa1-stcd1,
stcd2 LIKE blfa1-stcd2,
stkza LIKE blfa1-stkza,
stkzu LIKE blfa1-stkzu,
stras LIKE blfa1-stras,
telbx LIKE blfa1-telbx,
telf1 LIKE blfa1-telf1,
telf2 LIKE blfa1-telf2,
telfx LIKE blfa1-telfx,
teltx LIKE blfa1-teltx,
telx1 LIKE blfa1-telx1,
xcpdk LIKE lfa1-xcpdk,
xzemp LIKE blfa1-xzemp,
vbund LIKE blfa1-vbund,
fiskn LIKE blfa1-fiskn,
stceg LIKE blfa1-stceg,
stkzn LIKE blfa1-stkzn,
sperq LIKE blfa1-sperq,
adrnr LIKE lfa1-adrnr,
mcod1 LIKE lfa1-mcod1,
mcod2 LIKE lfa1-mcod2,
mcod3 LIKE lfa1-mcod3,
gbort LIKE blfa1-gbort,
gbdat LIKE blfa1-gbdat,
sexkz LIKE blfa1-sexkz,
kraus LIKE blfa1-kraus,
revdb LIKE blfa1-revdb,
qssys LIKE blfa1-qssys,
ktock LIKE blfa1-ktock,
pfort LIKE blfa1-pfort,
werks LIKE blfa1-werks,
ltsna LIKE blfa1-ltsna,
werkr LIKE blfa1-werkr,
plkal LIKE lfa1-plkal,
duefl LIKE lfa1-duefl,
txjcd LIKE blfa1-txjcd,
sperz LIKE lfa1-sperz,
scacd LIKE blfa1-scacd,
sfrgr LIKE blfa1-sfrgr,
lzone LIKE blfa1-lzone,
xlfza LIKE lfa1-xlfza,
dlgrp LIKE blfa1-dlgrp,
fityp LIKE blfa1-fityp,
stcdt LIKE blfa1-stcdt,
regss LIKE blfa1-regss,
actss LIKE blfa1-actss,
stcd3 LIKE blfa1-stcd3,
stcd4 LIKE blfa1-stcd4,
ipisp LIKE blfa1-ipisp,
taxbs LIKE blfa1-taxbs,
profs LIKE blfa1-profs,
stgdl LIKE blfa1-stgdl,
emnfr LIKE blfa1-emnfr,
lfurl LIKE blfa1-lfurl,
j_1kfrepre LIKE blfa1-j_1kfrepre,
j_1kftbus LIKE blfa1-j_1kftbus,
j_1kftind LIKE blfa1-j_1kftind,
confs LIKE lfa1-confs,
updat LIKE lfa1-updat,
uptim LIKE lfa1-uptim,
nodel LIKE blfa1-nodel.
DATA: END OF vendor_file_x.
FIELD-SYMBOLS: <field>,
<field_1>.
DATA: delim TYPE x VALUE '09'.
DATA: fld_chk(4096),
last_char,
quote_1 TYPE i,
quote_2 TYPE i,
fld_lth TYPE i,
columns TYPE i,
field_end TYPE i,
outp_rec TYPE i,
extras(3) TYPE c VALUE '.,"',
mixed_no(14) TYPE c VALUE '1234567890-.,"'.
OPEN DATASET p_file FOR INPUT.
DO.
READ DATASET p_file INTO data_tab-data.
IF sy-subrc = 0.
APPEND data_tab.
ELSE.
EXIT.
ENDIF.
ENDDO.
* count columns in output structure
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE vendor_file_x TO <field>.
IF sy-subrc <> 0.
EXIT.
ENDIF.
columns = sy-index.
ENDDO.
* Assign elements of input file to internal table
CLEAR vendor_file_x.
IF columns > 0.
LOOP AT data_tab.
DO columns TIMES.
ASSIGN space TO <field>.
ASSIGN space TO <field_1>.
ASSIGN COMPONENT sy-index OF STRUCTURE vendor_file_x TO <field>.
SEARCH data_tab-data FOR delim.
IF sy-fdpos > 0.
field_end = sy-fdpos + 1.
ASSIGN data_tab-data(sy-fdpos) TO <field_1>.
* Check that numeric fields don't contain any embedded " or ,
IF <field_1> CO mixed_no AND
<field_1> CA extras.
TRANSLATE <field_1> USING '" , '.
CONDENSE <field_1> NO-GAPS.
ENDIF.
* If first and last characters are '"', remove both.
fld_chk = <field_1>.
IF NOT fld_chk IS INITIAL.
fld_lth = strlen( fld_chk ) - 1.
MOVE fld_chk+fld_lth(1) TO last_char.
IF fld_chk(1) = '"' AND
last_char = '"'.
MOVE space TO fld_chk+fld_lth(1).
SHIFT fld_chk.
MOVE fld_chk TO <field_1>.
ENDIF. " for if fld_chk(1)=" & last_char="
ENDIF. " for if not fld_chk is initial
* Replace "" with "
DO.
IF fld_chk CS '""'.
quote_1 = sy-fdpos.
quote_2 = sy-fdpos + 1.
MOVE fld_chk+quote_2 TO fld_chk+quote_1.
ELSE.
MOVE fld_chk TO <field_1>.
EXIT.
ENDIF.
ENDDO.
<field> = <field_1>.
ELSE.
field_end = 1.
ENDIF.
SHIFT data_tab-data LEFT BY field_end PLACES.
ENDDO.
APPEND vendor_file_x.
CLEAR vendor_file_x.
ENDLOOP.
ENDIF.
CLEAR data_tab.
REFRESH data_tab.
FREE data_tab.
Rob -
What are the parameters have to pass to bapi material creation?
can any one help me in creating material by using bapi.....
which is 'BAPI_MATERIAL_SAVEDATA'.....by using the above bapi wen i am creating material....how to pass data to that bapi....what are the thing s i ahve to pass.........hi
please chk this code
TYPES : BEGIN OF S_BAPI,
MATNR LIKE MARA-MATNR,
MBRSH LIKE MARA-MBRSH,
MTART LIKE MARA-MTART,
MAKTX LIKE MAKT-MAKTX,
MEINS LIKE MARA-MEINS,
MATKL LIKE MARA-MATKL,
END OF S_BAPI.
DATA : I_BAPI TYPE STANDARD TABLE OF S_BAPI WITH HEADER LINE.
PARAMETER : P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:\Documents and Settings\mansi_makhijani\Desktop\upload.txt'.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = P_FILE
FILETYPE = 'DAT'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
DAT_D_FORMAT = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = I_BAPI
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
NO_AUTHORITY = 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.
DATA : S_HEADDATA TYPE BAPIMATHEAD,
S_CLIENTDATA TYPE BAPI_MARA,
S_CLIENTDATAX TYPE BAPI_MARAX,
I_MAKT TYPE STANDARD TABLE OF BAPI_MAKT WITH HEADER LINE.
LOOP AT I_BAPI.
S_HEADDATA-MATERIAL = I_BAPI-MATNR.
S_HEADDATA-IND_SECTOR = I_BAPI-MBRSH.
S_HEADDATA-MATL_TYPE = I_BAPI-MTART.
S_CLIENTDATA-MATL_GROUP = I_BAPI-MATKL.
S_CLIENTDATA-BASE_UOM = I_BAPI-MEINS.
S_CLIENTDATAX-MATL_GROUP ='X'.
S_CLIENTDATAX-BASE_UOM ='X'.
I_MAKT-MATL_DESC = I_BAPI-MAKTX.
I_MAKT-LANGU_ISO ='EN'.
I_MAKT-LANGU ='EN'.
I_MAKT-DEL_FLAG =' '.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = S_HEADDATA
CLIENTDATA = S_CLIENTDATA
CLIENTDATAX = S_CLIENTDATAX
PLANTDATA =
PLANTDATAX =
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA =
STORAGELOCATIONDATAX =
VALUATIONDATA =
VALUATIONDATAX =
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
NO_DEQUEUE = ' '
IMPORTING
RETURN =
TABLES
MATERIALDESCRIPTION = I_MAKT
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES =
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
NFMCHARGEWEIGHTS =
NFMCHARGEWEIGHTSX =
NFMSTRUCTURALWEIGHTS =
NFMSTRUCTURALWEIGHTSX =
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
RETURN =
ENDLOOP.
~hitesh
If your queries are solved try to close the thread -
Double quotes problem while uploading tablimeited text file to internal tab
H all,
I am uploading excel data using GUI_UPLOAD function module by converting excel to tab delimited text format.
Problem is Material AB" is converted to "AB" " " material in tabdelimited text format.
Can anybody give solution to problem?
Is it possible to upload excel file directly using GUI_UPLOAD function module?
I can not use 'ALSM_EXCEL_TO_INTERNAL_TABLE' and 'TEXT_CONVERT_XLS_TO_SAP'
as i want to upload upload fields of length 3000 cahrs and these function module uploads fields of only 256 chars.
Thanks.Get a excel - 97-2003.Fil the data which you want to upload .(3 columns )
A I B I C I.
save it
Code :
TABLES : thead.
Structure to store the file name, as selected from the open dialog
TYPES: BEGIN OF file ,
filename TYPE file_table-filename,
END OF file.
Output for excel
TYPES : BEGIN OF test,
a(5),
b(5),
c(5),
END OF test.
Internal table of excel
DATA : it_test TYPE TABLE OF test.
DATA : it_filename TYPE TABLE OF file,. "to store file names.
ws_filename TYPE file.
SELECTION-SCREEN
PARAMETER: p_file LIKE rlgrap-filename LOWER CASE.
At Selection Screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
Parameter to store the sy-subrc value from FM file_open_dialog
DATA: rc TYPE i.
CLEAR: it_filename,
ws_filename,
p_file .
Get the file name and path from the presenatation server
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Select Input File'
default_filename = '*.xls'
CHANGING
file_table = it_filename
rc = rc
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc = 0.
LOOP AT it_filename INTO ws_filename.
p_file = ws_filename.
EXIT.
ENDLOOP.
ENDIF.
DATA: l_file TYPE string.
CLEAR it_test .
l_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_file
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_test
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 NE 0.
WRITE: "Upload error".
STOP.
ENDIF. -
Hi SDN's,
Can u tell me how to get headers when we download data to excel with using (we are using DBF as file type in the following method )
CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
(We can't use GUI_DOWNLOAD)
Thanks in advance..
BRHi,
I m giving u a bdc code i hope ur prob ll be solved.
*& Report ZDTK_BDC_LT01
*& PROGRAME TITLE : LT01
*& AUTHOR : D TARUN KUMAR
*& MM CONSULTANT : Mr. MRINMOYE CHAKRABORTY
*& REQUEST NO. : RD1K901995
*& TRANSACTION ID : ZLT01
*& PACKAGE : ZTARUN
*& DESCRIPTION : BDC REPORT TO UPLOAD INITIAL STOCK POSTING AND
*& STORAGE BINS THROUGH LT01.
REPORT ZDTK_BDC_LT01
no standard page heading line-size 255.
TYPE-POOLS: TRUXS.
STRUCTURE DECLARATION
TYPES : BEGIN OF TY_UPLOAD,
LGNUM(3),
BETYP(1),
BENUM(10),
BWLVS(3),
MATNR(18),
BISMT(18),
ANFME(16),
WERKS(4),
LGORT(4),
CHARG(10),
LETYP(10),
VLTYP(3),
VLBER(3),
VLPLA(10),
VLQNR(10),
NLTYP(3),
NLBER(3),
NLPLA(10),
NLQNR(10),
END OF TY_UPLOAD.
INTERNALTABLE & WORKAREA DECLARATION
DATA : T_UPLOAD TYPE STANDARD TABLE OF TY_UPLOAD,
T_BDCDATA TYPE STANDARD TABLE OF BDCDATA,
T_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL,
W_UPLOAD TYPE TY_UPLOAD,
W_BDCDATA TYPE BDCDATA,
W_BDCMSGCOLL TYPE BDCMSGCOLL,
GLOBLE DECLARATION
G_FLNAME TYPE STRING,
G_MESSAGE(70) TYPE C,
IT_RAW TYPE TRUXS_T_TEXT_DATA,
GLOBLE DECLARATION
WA_OPT TYPE CTU_PARAMS.
WA_OPT-UPDMODE = 'A'.
WA_OPT-DEFSIZE = 'X'.
WA_OPT-DISMODE = 'A'.
SLECTION SCREEN DECLARATION
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 2.
PARAMETER : P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN : END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM GET_FILENAME.
START-OF-SELECTION.
PERFORM UPLOAD_DATA.
*PERFORM GET_FINAL.
*PERFORM GET_MIGO.
PERFORM SESSION.
*PERFORM TEST.
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR W_BDCDATA.
W_BDCDATA-PROGRAM = PROGRAM.
W_BDCDATA-DYNPRO = DYNPRO.
W_BDCDATA-DYNBEGIN = 'X'.
APPEND W_BDCDATA TO T_BDCDATA.
ENDFORM.
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> NODATA.
CLEAR W_BDCDATA.
W_BDCDATA-FNAM = FNAM.
W_BDCDATA-FVAL = FVAL.
APPEND W_BDCDATA TO T_BDCDATA.
ENDIF.
ENDFORM.
*& Form GET_FILENAME
TEXT
FORM GET_FILENAME .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE
ENDFORM. " GET_FILENAME
*& Form UPLOAD_DATA
text
form UPLOAD_DATA .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
I_FIELD_SEPERATOR =
I_LINE_HEADER = 'X'
I_TAB_RAW_DATA = IT_RAW
I_FILENAME = P_FILE "WORK TABLE
TABLES
I_TAB_CONVERTED_DATA = T_UPLOAD[] "ACTUAL DATA
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
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 SESSION
text
FORM SESSION .
*sort t_upload by bismt.
LOOP AT T_UPLOAD INTO W_UPLOAD.
REFRESH T_BDCDATA.
*CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = W_UPLOAD-CHARG
IMPORTING
OUTPUT = W_UPLOAD-CHARG .
*CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = W_UPLOAD-VLBER
IMPORTING
OUTPUT = W_UPLOAD-VLBER .
*CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = W_UPLOAD-NLTYP
IMPORTING
OUTPUT = W_UPLOAD-NLTYP .
*CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = W_UPLOAD-NLBER
IMPORTING
OUTPUT = W_UPLOAD-NLBER .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = W_UPLOAD-CHARG
IMPORTING
OUTPUT = W_UPLOAD-CHARG .
DATA : BWLVS(3),
LGORT(4),
WERKS(4),
CHARG(10),
LETYP(10),
VLTYP(3),
VLBER(3),
VLPLA(10),
VLQNR(10),
NLTYP(3),
NLBER(3),
NLQNR(10).
DATA : W_MATNR(18).
*SELECT SINGLE MATNR FROM MARA INTO W_MATNR
WHERE BISMT = W_UPLOAD-BISMT.
BWLVS = '999'.
LGORT = '3500'.
WERKS = '1030'.
LETYP = 'E1'.
VLTYP = '998'.
VLBER = '001'.
VLPLA = 'AUFNAHME'.
NLTYP = '354'. "(packaging material)
*NLTYP = '353'. "(spareparts material)
NLBER = '001'.
*include bdcrecx1.
*start-of-selection.
*perform open_group.
perform bdc_dynpro using 'SAPML03T' '0101'.
perform bdc_field using 'BDC_CURSOR'
'LTAP-CHARG'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LTAK-LGNUM'
W_UPLOAD-LGNUM. "'350'.
perform bdc_field using 'LTAK-BENUM'
W_UPLOAD-BENUM. "'1000000000'.
perform bdc_field using 'LTAK-BETYP'
W_UPLOAD-BETYP. "'P'.
perform bdc_field using 'LTAK-BWLVS' BWLVS. "'999'.
perform bdc_field using 'LTAP-MATNR'
W_upload-MATNR. "'40000009'.
perform bdc_field using 'RL03T-ANFME'
W_UPLOAD-ANFME. "'1,000'.
perform bdc_field using 'LTAP-WERKS' WERKS. "'1030'.
perform bdc_field using 'LTAP-CHARG'
w_upload-charg.
perform bdc_dynpro using 'SAPML03T' '0102'.
perform bdc_field using 'BDC_CURSOR'
'LTAP-NLPLA'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RL03T-ANFME'
W_UPLOAD-ANFME. "'1,000'.
*perform bdc_field using 'LTAP-ALTME'
'KG'.
perform bdc_field using 'LTAP-LETYP' LETYP. "'E1'.
*perform bdc_field using 'LTAP-CHARG' W_UPLOAD-CHARG. "'0000000101'.
perform bdc_field using 'LTAP-VLTYP' VLTYP. "'998'.
perform bdc_field using 'LTAP-VLBER' VLBER. "'001'.
perform bdc_field using 'LTAP-VLPLA' VLPLA. "'AUFNAHME'.
perform bdc_field using 'LTAP-NLTYP'
W_UPLOAD-NLTYP. "'351'.
perform bdc_field using 'LTAP-NLBER' NLBER. "'001'.
perform bdc_field using 'LTAP-NLPLA'
W_UPLOAD-NLPLA. "'01 00 01'.
*perform bdc_transaction using 'LT01'.
*perform close_group.
CALL TRANSACTION 'LT01' USING T_BDCDATA
MODE 'A'
UPDATE 'A'
OPTIONS FROM WA_OPT
MESSAGES INTO T_BDCMSGCOLL.
IF SY-SUBRC <> 0.
READ TABLE T_BDCMSGCOLL INTO W_BDCMSGCOLL INDEX 1.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = SY-MSGID
LANG = 'EN'
NO = SY-MSGNO
V1 = SY-MSGV1
V2 = SY-MSGV2
V3 = SY-MSGV3
V4 = SY-MSGV4
IMPORTING
MSG = G_MESSAGE
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
WRITE : / W_upload-matnr ,'-----' , G_MESSAGE.
REFRESH T_BDCMSGCOLL.
ENDIF.
ENDIF.
*clear : w_matnr, w_upload.
ENDLOOP.
ENDFORM. " SESSION -
How to read a CSV file into the portal
hi all,
I want to read the content of CSV file that is avaliable in my desktop.
plz help me with suitable code
Regards
Savitha
Edited by: Savitha S R on Jun 1, 2009 8:25 AMPlease use this code for that
REPORT znkp_upload_csv line-size 400.
DATA : v_filename TYPE string.
PARAMETER : p_file LIKE rlgrap-filename DEFAULT 'C:\Documents and Settings\Administrator\Desktop\JV.csv' .
*Types for Reading CSV file
TYPES : BEGIN OF x_csv,
text(400) TYPE c,
END OF x_csv.
*Global internal table for reading CSV file
DATA : lt_csv TYPE TABLE OF x_csv.
*Global work area for reading CSV file
DATA : wa_csv LIKE LINE OF lt_csv.
v_filename = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_filename
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
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 = lt_csv
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.
DATA : BEGIN OF item OCCURS 0 ,
t1(20) TYPE c,
t2(20) TYPE c,
t3(20) TYPE c,
t4(20) TYPE c,
t5(20) TYPE c,
t6(20) TYPE c,
t7(20) TYPE c,
t8(20) TYPE c,
END OF item.
DATA : txt(1) TYPE c. " 1-Header 2-Item
LOOP AT lt_csv into wa_csv.
split wa_csv-text at ',' into item-t1
item-t2
item-t3
item-t4
item-t5
item-t6
item-t7
item-t8.
append item.
clear item.
ENDLOOP.
Check ITEM TABLE
Regards
Naresh -
Update: Purchase order text
Hi
We would like to use the current long text of a material and update the purchase order text programatically with the same data.
How can i create the P.O. text without using BDC updates?What text do you want to load ( I mean header text or item text )
see the example to save text
report ZMPPC016
no standard page heading
line-size 120.
Constants
constants : c_r type c value 'R', " PLNTY Value
C_X TYPE C VALUE 'X', " Value for dynbegin.
c_tcode like tstc-tcode value 'CA22', " Transaction code
c_mode(1) type c value 'A', " BDC Mode
c_tdformat type tline-tdformat value '*',"Tag column
c_tdid type thead-tdid value 'PLPO', " Text ID
c_tdform type thead-tdform value 'SYSTEM'." Form name
Variables
data : v_date like sy-datum, " date
v_date1(4) type c,
v_date2(2) type c,
v_date3(2) type c,
TNAME LIKE THEAD-TDNAME,
v_mandt(3) type c,
v_matnr(18) type c,
flag type c.
Internal table for file
data : begin of t_file occurs 0,
matnr(18) type c, " Material Number
werks(4) type c, " Plant
vornr(4) type c, " Operation Number
tseq(3) type n, " Line number in the long text
text1(70) type c, " Long text
plnal(2) type n, " Group counter
end of t_file.
data : begin of t_text occurs 0,
matnr(18) type c, " Material Number
werks(4) type c, " Plant
plnal(2) type n, " Group counter
vornr(4) type c, " Operation Number
tseq(3) type n, " Line number in the long text
text1(70) type c, " Long text
end of t_text.
Internal table for MAPl
data : begin of t_mapl occurs 0,
plnnr like mapl-plnnr,
end of t_mapl.
Internal Table for PLAS and PLPO Table
data : begin of t_plpo occurs 0,
mandt like plpo-mandt,
plnty like plpo-plnty,
plnnr like plpo-plnnr,
plnkn like plpo-plnkn,
zaehl like plpo-zaehl,
end of t_plpo.
data t_long like tline occurs 0 with header line.
Work area for t_text Internal table
data : wa_text like t_text.
data: t_header like thead. " long text
Internal table for BDCDATA Structure
data : begin of itab_bdc_tab occurs 0.
include structure bdcdata.
data : end of itab_bdc_tab.
Selection-screen
selection-screen : begin of block blk with frame .
parameter : P_file like rlgrap-filename obligatory.
selection-screen : end of block blk.
initialization.
p_file = 'C:\My Documents\InputFile.txt'.
at selection-screen on value-request for p_file.
F4 value for file
perform file_get.
start-of-selection.
Get file data into Internal Table.
perform get_data.
sort t_text by matnr werks vornr plnal tseq.
Save the long text into CA22 Transaction
perform load_data.
top-of-page.
CALL FUNCTION 'Z_HEADER'
EXPORTING
FLEX_TEXT1 =
FLEX_TEXT2 =
FLEX_TEXT3 =
skip 1.
*& Form file_get
F4 Value for file
FORM file_get.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_PATH = 'C:\Temp\'
MASK = ',.,..'
MODE = 'O'
TITLE = 'Select File'(007)
IMPORTING
FILENAME = P_file
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
ENDFORM. " file_get
*& Form get_data
Get file data into Internal Table.
FORM get_data.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = p_file
FILETYPE = 'DAT'
TABLES
DATA_TAB = t_file
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.
if sy-subrc eq 0.
sort t_file by matnr werks plnal vornr tseq.
delete t_file where matnr = ''.
loop at t_file.
Get the material number from tables ZMSMI_FERR_RAW,
ZMSMI_SNAP_RAW and ZMSMI_SIMP_RAW
perform get_matnr.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = t_file-vornr
IMPORTING
OUTPUT = t_file-vornr.
move : t_file-matnr to t_text-matnr,
t_file-werks to t_text-werks,
t_file-vornr to t_text-vornr,
t_file-tseq to t_text-tseq,
t_file-text1 to t_text-text1,
t_file-plnal to t_text-plnal.
append t_text.
clear t_text.
endloop.
else.
WRITE: / 'Error reading input file'.
stop.
endif.
ENDFORM. " get_data
*& Form call_bdc
BDC Script for CA22 Transaction
FORM call_bdc.
Screen 1010
perform bdc_screen using 'SAPLCPDI' '1010'.
perform bdc_field using 'BDC_OKCODE' '=VOUE'.
perform bdc_field using 'RC27M-MATNR' SPACE.
perform bdc_field using 'RC27M-WERKS' SPACE.
perform bdc_field using 'RC271-VBELN' SPACE.
perform bdc_field using 'RC271-POSNR' SPACE.
perform bdc_field using 'RC271-PLNNR' T_PLPO-PLNNR.
perform bdc_field using 'RC271-AENNR' SPACE.
clear : v_date,
v_date1,
v_date2,
v_date3.
v_date1 = sy-datum+0(4).
v_date2 = sy-datum+4(2).
v_date3 = sy-datum+6(2).
concatenate v_date2 v_date3 v_date1 into v_date.
perform bdc_field using 'RC271-STTAG' v_date .
perform bdc_field using 'RC271-REVLV' SPACE.
perform bdc_field using 'RC271-WERKS' SPACE.
perform bdc_field using 'RC271-PLNAL' WA_TEXT-PLNAL.
perform bdc_field using 'RC271-STATU' SPACE.
perform bdc_field using 'RC271-VAGRP' SPACE.
perform bdc_field using 'RC271-PROFIDNETZ' SPACE.
Screen 5400
perform bdc_screen using 'SAPLCPDI' '5400'.
perform bdc_field using 'BDC_OKCODE' '=OSEA'.
Screen 1010
perform bdc_screen using 'SAPLCP02' '1010'.
perform bdc_field using 'BDC_OKCODE' '=ENT1'.
perform bdc_field using 'RC27H-VORNR' WA_TEXT-VORNR.
Screen 5400
perform bdc_screen using 'SAPLCPDI' '5400'.
perform bdc_field using 'BDC_OKCODE' '=LTXT'.
perform bdc_field using 'RC27X-FLG_SEL(01)' C_X.
Screen 1100
perform bdc_screen using 'SAPLSTXX' '1100'.
perform bdc_field using 'BDC_OKCODE' '=XEIN'.
Screen 0999
perform bdc_screen using 'SAPLWB_CUSTOMIZING' '0999'.
perform bdc_field using 'BDC_OKCODE' '=CONT'.
PERFORM BDC_FIELD USING 'RSEUMOD-GRA_EDITOR' SPACE.
Screen 1100
perform bdc_screen using 'SAPLSTXX' '1100'.
perform bdc_field using 'BDC_CURSOR' 'RSTXT-TXPARGRAPH'.
perform bdc_field using 'BDC_OKCODE' '=TXBA'.
perform bdc_field using 'RSTXT-TXPARGRAPH(03)' '*'.
perform bdc_field using 'RSTXT-TXLINE(03)'
Screen 5400
perform bdc_screen using 'SAPLCPDI' '5400'.
perform bdc_field using 'BDC_OKCODE' '=BU'.
call transaction c_tcode
using itab_bdc_tab mode 'N'
update 'S'.
refresh itab_bdc_tab.
if sy-subrc eq 0 and sy-msgty ne 'E'.
v_mandt = t_plpo-mandt.
CONCATENATE v_mandt
t_plpo-plnty
t_plpo-plnnr
t_plpo-plnkn
t_plpo-zaehl into tname.
commit work.
CALL FUNCTION 'DELETE_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = c_tdid
LANGUAGE = 'E'
NAME = TNAME
OBJECT = 'ROUTING'
SAVEMODE_DIRECT = 'X'
TEXTMEMORY_ONLY = ' '
LOCAL_CAT = ' '
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2
if sy-subrc ne 0.
write:/3 wa_text-matnr,24 wa_text-werks,
30 t_mapl-plnnr,44 wa_text-plnal,48 wa_text-vornr,
60 ' -',
67 'Error Deleting Existing Long Text'.
endif.
else.
write:/3 wa_text-matnr,24 wa_text-werks,
30 t_mapl-plnnr,44 wa_text-plnal,48 wa_text-vornr,
60 ' -',
67 'Error Executing BDC'.
endif.
ENDFORM. " call_bdc
*& Form bdc_screen
BDC Script for Screen fields
-->P_PROG Program name
-->P_SCRN Screen Number
FORM bdc_screen USING p_prog
p_scrn.
clear itab_bdc_tab.
itab_bdc_tab-program = p_prog.
itab_bdc_tab-dynpro = p_scrn.
itab_bdc_tab-dynbegin = c_x.
append itab_bdc_tab.
ENDFORM. " bdc_screen
*& Form bdc_field
BDC Script for Screen fileds
-->P_NAM Field name
-->P_VAL Field value
FORM bdc_field USING p_nam
p_val.
clear itab_bdc_tab.
itab_bdc_tab-fnam = p_nam.
itab_bdc_tab-fval = p_val.
append itab_bdc_tab.
ENDFORM. " bdc_screen
*& Form load_data
Save the long text into CA22 Transaction
FORM load_data.
loop at t_text.
move t_text to wa_text.
at new vornr.
Read the data in MAPL Table
select single plnnr from mapl into t_mapl-plnnr
where matnr = wa_text-matnr
and werks = wa_text-werks
and plnty = c_r
and loekz = space.
if sy-subrc eq 0.
Read the data from PLAS and PLPO Table
select SINGLE a~mandt
a~plnty
a~plnnr
a~plnkn
a~zaehl into t_plpo
from plpo as a inner join plas as b on aplnty = bplnty
and aplnnr = bplnnr
and aplnkn = bplnkn
where b~plnty = c_r
and b~plnnr = t_mapl-plnnr
and b~plnal = wa_text-plnal
and b~loekz = space
and a~vornr = wa_text-vornr
and a~loekz = space.
if sy-subrc eq 0.
perform call_bdc.
else.
flag = 'X'.
write:/3 wa_text-matnr,24 wa_text-werks,
30 t_mapl-plnnr,44 wa_text-plnal,48 wa_text-vornr,
60 ' -',
67 'Matching routing group\Operation not found'.
continue.
endif.
else.
flag = 'X'.
write:/3 wa_text-matnr,24 wa_text-werks,
40 ' -',
45 'Material Does not Exists or Material',
82 'not Available in MAPL Table'.
continue.
endif.
endat.
if flag ne 'X'.
t_long-tdline = wa_text-text1.
t_long-tdformat = c_tdformat.
append t_long.
endif.
at end of vornr.
if flag ne 'X'.
v_mandt = t_plpo-mandt.
CONCATENATE v_mandt
t_plpo-plnty
t_plpo-plnnr
t_plpo-plnkn
t_plpo-zaehl into tname.
T_HEADer-TDOBJECT = 'ROUTING'.
t_HEADer-TDNAME = tname.
T_HEADer-TDID = c_tdid.
t_header-tdform = c_tdform.
T_HEADer-TDSPRAS = 'E'.
Save the text
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
CLIENT = SY-MANDT
HEADER = t_header
SAVEMODE_DIRECT = 'X'
OWNER_SPECIFIED = ' '
LOCAL_CAT = ' '
IMPORTING
FUNCTION =
NEWHEADER =
TABLES
LINES = t_long
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
OBJECT = 4
OTHERS = 5
if sy-subrc eq 0.
CALL FUNCTION 'COMMIT_TEXT'
EXPORTING
OBJECT = t_header-TDOBJECT
NAME = t_header-TDNAME
ID = t_header-TDID
LANGUAGE = t_header-TDSPRAS.
write:/3 wa_text-matnr,24 wa_text-werks,
30 t_mapl-plnnr,44 wa_text-plnal,48 wa_text-vornr,
60 ' -',
67 'Long Text Loaded Successfully'.
else.
write:/3 wa_text-matnr,24 wa_text-werks,
30 t_mapl-plnnr,44 wa_text-plnal,48 wa_text-vornr,
60 ' -',
67 'Error Uploading Long Text'.
endif.
refresh t_long.
else.
write:/3 wa_text-matnr, 24 wa_text-werks,
45 'Long text not uploaded'.
clear flag.
endif.
endat.
endloop.
ENDFORM. " load_data
*& Form get_matnr
Get the material number from tables ZMSMI_FERR_RAW,
FORM get_matnr.
clear v_matnr.
case t_file-werks.
when '0101'.
select single cmatnr from zmsmi_simp_raw
into v_matnr where matnr = t_file-matnr.
if sy-subrc eq 0.
if not v_matnr is initial.
clear t_file-matnr.
t_file-matnr = v_matnr.
endif.
when '0103'.
select single cmatnr from zmsmi_ferr_raw
into v_matnr where matnr = t_file-matnr.
if sy-subrc eq 0.
if not v_matnr is initial.
clear t_file-matnr.
t_file-matnr = v_matnr.
endif.
when '0102' or '0110' or '0111' or '0112' or '0113'
or '0114' or '0115' or '0116' or '0117'.
select single cmatnr from zmsmi_snap_raw
into v_matnr where matnr = t_file-matnr.
if sy-subrc eq 0.
if not v_matnr is initial.
clear t_file-matnr.
t_file-matnr = v_matnr.
endif.
endcase.
ENDFORM. " get_matnr
Reward Points if it is helpful
Thanks
Seshu -
How to read a txt file and update DB table
I have to read a table which has some entries in it as plain text file, then I should update my table if the table entries and the data in text file are NOT MATCHING o.w. keep the table entry as it is
It will helps to u
data : begin of t_temp occurs 0,
text(256),
end of t_temp.
data : s_file type string.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-S01.
PARAMETER: P_FILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN : END OF BLOCK B1.
clear s_file.
move p_file to s_file.
uploade SOURCE file to t_tab1
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = s_file
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = t_temp
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.
Text deleted by Moderator. Do NOT request points
Regards
Saimedha
Maybe you are looking for
-
Sending sound clips in a media message
i have the NOKIA N70 and i need to know why i get the message unable to insert , object format not supported when i try to send a sound clip by a multimedia message? i have converted it to mp4 and acc and then i send them to my phone and that works f
-
I recently purchased the iPhone 5 and my itunes account on my iMac 7,1 will not recognize it as a device. My imac has stopped downloading new updates, it says it is up to date with iTunes 9.2.1. My imac will not run the newest 10.7 itunes either. All
-
Using the internal drive on a Macbook Pro or not?
I am having one external esata disk and two seperate FW800 disk. Where should i put my scratch files? On the internal disk? Should I avoid using the internal disk for a video stream and leave it to accessing the system and Final Cut Pro (6.06) only o
-
Im trying to install an IPCC Lab. when i try to connect my ctios client (Windows 7) to ctios OS server.....it shows offline and disconnected state.. these messages are seen on the ctisvr process Trace: CTIApplication::ProcessOpenRequest from sessionI
-
Why does a red line is appearing when generating a pdf file from illustrator?
I create my slide using illustrator (from CS2 to CS5) and when I save the file in pdf format, a red line is being created around the rectangle border of the silde. I don't know how it was generated and what to do to remove it. I need help please.