2007 May 17 12:13 AM
Hi all,
can anyone tell me how to upload texts(in vlo2n transaction->goto->header->texts)
in vl02n transaction. plz send me some coding for this scenario.
Thanks,
Satish.
2007 May 17 12:44 AM
Use SAVE_TEXT Function module..
first get the data into internal table from file and then use SAVE_TEXT Function module.
Reward Points if it is useful
Thanks
Seshu
2007 May 17 12:46 AM
This is Routing long text upload - CA22 Transaction example code :
************************************************************************
Report : ZMPPC016
Type : Data upload
Author : Seshu Maramreddy
Date : 05/27/2005
Transport : DV3K920205
Transaction: ??
Description: This ABAP/4 Program Upload the long text into CA22
Transaction It accepts tab-delimited spreadsheet input
and it will run Call Transaction
*
************************************************************************
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 useful
Thanks
Seshu