‎2008 Aug 28 12:12 AM
Hi All,
I am using the Direct input method to post the Assets master through LSMW. In the posting step i am getting the error like
Transactions can only be transferred when transfer is during fiscal year .
I had tried with lot of changes in the data , but not able to post the asset . Please help me in this issue . Its to load the data.
Thanks,
Satheesh
‎2008 Aug 28 12:46 AM
‎2008 Aug 28 5:01 AM
You can inform the Finance Consultant to Check the setting of the financial year .
and you can create a bdc for the same . i will give you the code for BDC for AS91 . Please find the Code below : ---
INCLUDE zcbdc_recxx.
TYPES: BEGIN OF t_itab,
ass_class(6), " Asset Class
cocd(4), " Company Code
sub_numb(5), " Sub Asset Number
ass_name1(50), " Description Text 1
ass_name2(50), " Description Text 1
ass_htxt(50), " Asset Main No. Text
qty(10), " Quantity
uom(3), " Units
werks(4), " Plant
loc_code(10), " Location
sernr LIKE anla-sernr, " Serial Number
oldasset(15), " Invent No.(Old Asset No.)
history, " History "By bk
cap_dt(10), " Capitalized on
docno(15), " Chassis No.
license_plate(15), " License Plate No.
pernr(8), " Personnel Number
GSBER(4), " business area
kostl(10), " Cost center
room(10), " Room "By bk
evgrp1(4), " Eval Gr.1
evgrp2(4), " Eval Gr.1
By Bk
evgrp3(4), " Eval Gr.3
evgrp4(4), " Eval Gr.4
evgrp5 like ANLA-GDLGRP, " Eval Gr.5
*By Bk
ven_code(10), " Vendor Code "By bk
ven(30), " vendor name
manufa LIKE anla-herst, " Manufacturer
as_pur(1) type c,
Pur_use(1) type c,
land1 like ANLA-LAND1,
type_name LIKE anla-typbz, " Invoice No.
tax_off LIKE anla-fiamt, " Tax off
munici LIKE anla-stadt,
lnd_reg(10),
vol LIKE anla-grbnd,
page LIKE anla-grblt,
mapno(5),
plotno(10),
cony_dt(10),
area(8),
area_uom(3),
dummy,
groupass(10), " Group Asset
depkey1(4),
DEPKEY2(4),
invrno LIKE anla-invnr,
afabg(10),
cum_val(12), " Cum. Acq. Value
acc_val1(15), " Accum. Ord Depr.(Book Depr.)
afabg like ANLB-AFABG,
dep_val1(15), " Accum. Ord. Depr.(Waaree Spl.)
depkey1(4),
acc_val2(15),
dep_val2(15),
depkey2(4),
afabg(10),
afabg TYPE anlb-afabg,
END OF t_itab.
DATA: itab TYPE STANDARD TABLE OF t_itab
WITH HEADER LINE.
DATA c_date TYPE sy-datum.
*----
Start of Selection
*----
START-OF-SELECTION.
PERFORM upload_file TABLES itab
USING p_file.
PERFORM get_mode.
PERFORM upload.
PERFORM open_group.
sort itab.
For Session Method - Open Group
IF p_smode EQ 'X'.
PERFORM open_group.
ENDIF.
LOOP AT itab.
CONCATENATE itab-cap_dt6(4) itab-cap_dt3(2) itab-cap_dt(2)
INTO c_date.
c_date = itab-cap_dt.
*Commented by Bhaskar
PERFORM filter_data USING itab-dep_val1 .
PERFORM filter_data USING itab-acc_val1 .
*commented by bhaskar
CONDENSE itab-ass_class.
CONDENSE itab-oldasset.
CONDENSE itab-sub_numb.
CONCATENATE itab-oldasset itab-sub_numb INTO itab-invrno
SEPARATED BY '/'.
PERFORM bdc_dynpro USING 'SAPLAIST' '0105'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLA-ANLKL'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'ANLA-ANLKL' itab-ass_class.
PERFORM bdc_field USING 'ANLA-BUKRS' itab-cocd.
IF itab-cocd = 'BEOU' .
CONCATENATE itab-kostl '0' INTO itab-kostl.
ENDIF.
***General
PERFORM bdc_dynpro USING 'SAPLAIST' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TABNX'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLA-TXT50'.
IF itab-ass_class = '3000'.
PERFORM bdc_field USING 'ANLA-ANLN1' itab-cum_val.
ENDIF.
PERFORM bdc_field USING 'ANLA-TXT50' itab-ass_name1.
PERFORM bdc_field USING 'ANLA-TXA50' itab-ass_name2.
PERFORM bdc_field USING 'ANLH-ANLHTXT' itab-ass_htxt.
PERFORM bdc_field USING 'ANLA-INVNR' itab-invrno.
PERFORM bdc_field USING 'ANLA-INVNR' itab-oldasset.
PERFORM bdc_field USING 'ANLA-INVZU' itab-docno. "11.08.05
PERFORM bdc_field USING 'ANLA-MENGE' itab-qty.
PERFORM bdc_field USING 'ANLA-MEINS' itab-uom.
PERFORM bdc_field USING 'ANLA-MENGE' itab-uom. "11.08.05
PERFORM bdc_field USING 'ANLA-AKTIV' itab-cap_dt.
PERFORM bdc_field USING 'ANLA-SERNR' itab-sernr.
PERFORM bdc_field USING 'RA02S-XHIST' 'X'.
****Time Dependent
PERFORM bdc_dynpro USING 'SAPLAIST' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLZ-KOSTL'.
PERFORM bdc_field USING 'ANLZ-GSBER' itab-GSBER.
PERFORM bdc_field USING 'ANLZ-KOSTL' itab-kostl.
PERFORM bdc_field USING 'ANLZ-WERKS' itab-werks.
PERFORM bdc_field USING 'ANLZ-STORT' itab-loc_code.
PERFORM bdc_field USING 'ANLZ-RAUMN' itab-room.
IF NOT itab-license_plate IS INITIAL.
PERFORM bdc_field USING 'ANLZ-KFZKZ' itab-license_plate.
ENDIF.
IF NOT itab-pernr IS INITIAL.
PERFORM bdc_field USING 'ANLZ-PERNR' itab-pernr.
ENDIF.
CONDENSE itab-ass_class.
perform bdc_field using 'ANLZ-MSFAK' '1'.
PERFORM bdc_dynpro USING 'SAPLAIST' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TABNX'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLZ-KOSTL'.
******Allocations
PERFORM bdc_dynpro USING 'SAPLAIST' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TABNX'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLA-ORD41'. "11.8.05
PERFORM bdc_field USING 'ANLA-ORD41' itab-evgrp1. "11.8.05
PERFORM bdc_field USING 'ANLA-ORD42' itab-evgrp2. "11.8.05
*by Bhaskar
PERFORM bdc_field USING 'ANLA-ORD43' itab-evgrp3.
PERFORM bdc_field USING 'ANLA-ORD44' itab-evgrp4.
PERFORM bdc_field USING 'ANLA-GDLGRP' itab-evgrp5.
***Origin
PERFORM bdc_dynpro USING 'SAPLAIST' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TABNX'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLA-LIEFE'.
PERFORM bdc_field USING 'ANLA-LIFNR' itab-ven_code.
PERFORM bdc_field USING 'ANLA-LIEFE' itab-ven.
PERFORM bdc_field USING 'ANLA-HERST' itab-manufa.
*By bhaskar
PERFORM bdc_field USING 'RA02S-XNEU_AM' itab-as_pur.
PERFORM bdc_field USING 'RA02S-XGBR_AM' itab-Pur_use.
PERFORM bdc_field USING 'ANLA-LAND1' itab-land1.
*By bhaskar
PERFORM bdc_field USING 'ANLA-TYPBZ' itab-type_name.
Net worth Tax
IF itab-ass_class = '1000'.
PERFORM bdc_dynpro USING 'SAPLAIST' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TABNX'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLA-FIAMT'.
ENDIF.
----------------------------------------------------------------
PERFORM bdc_field USING 'ANLA-FIAMT' itab-tax_off.
PERFORM bdc_field USING 'ANLA-STADT' itab-munici.
PERFORM bdc_field USING 'ANLA-GRUVO' itab-lnd_reg.
PERFORM bdc_field USING 'ANLA-GRBND' itab-vol.
PERFORM bdc_field USING 'ANLA-GRBLT' itab-page.
PERFORM bdc_field USING 'ANLA-GRLFD' itab-serno .
PERFORM bdc_field USING 'ANLA-FLURK' itab-mapno.
PERFORM bdc_field USING 'ANLA-FLURN' itab-plotno.
PERFORM bdc_field USING 'ANLA-AUFLA' itab-cony_dt.
PERFORM bdc_field USING 'ANLA-GRUFL' itab-area.
PERFORM bdc_field USING 'ANLA-FEINS' itab-area_uom.
----------------------------------------------------------------
Derpreciation area
PERFORM bdc_dynpro USING 'SAPLAIST' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE' '=/00'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ALTD'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TABNX'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLA-ANLN1'.
PERFORM bdc_field USING 'ANLB-AFASL(01)' itab-depkey2.
PERFORM bdc_field USING 'ANLB-AFASL(02)' itab-depkey1.
PERFORM bdc_field USING 'ANLB-AFABG(01)' itab-afabg.
----------------------------------------------------------------
IF c_date LT '20040101'.
PERFORM bdc_field USING 'ANLB-AFABG(02)' '01.04.2004'.
PERFORM bdc_field USING 'ANLB-AFABG(03)' '01.04.2004'.
ELSE.
perform bdc_field using 'ANLB-AFABG(01)' '01.12.2002'.
PERFORM bdc_field USING 'ANLB-AFABG(01)' itab-cap_dt.
PERFORM bdc_field USING 'ANLB-AFABG(02)' itab-cap_dt.
PERFORM bdc_field USING 'ANLB-AFABG(03)' itab-cap_dt.
ENDIF.
PERFORM bdc_field USING 'ANLB-AFASL(01)' itab-depkey1.
PERFORM bdc_field USING 'ANLB-AFASL(03)' itab-depkey2.
perform bdc_dynpro using 'SAPLAIST' '1000'.
perform bdc_field using 'BDC_OKCODE'
'=SELZ'.
perform bdc_field using 'BDC_CURSOR'
'ANLB-AFASL(02)'.
PERFORM bdc_dynpro USING 'SAPLAIST' '0195'.
perform bdc_field using 'BDC_CURSOR'
'ANLB-AFASL'.
perform bdc_field using 'BDC_OKCODE'
'=ALTD'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLB-ANLGR2'.
PERFORM bdc_field USING 'ANLB-ANLGR2' itab-depkey1.
PERFORM bdc_field USING 'ANLB-ANLGR' itab-groupass.
PERFORM bdc_field USING 'ANLB-ANLGR2' '0'.
PERFORM bdc_dynpro USING 'SAPLALTD' '1100'.
IF c_date LT '20040101'.
*Remarked by Bhaskar
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RALT_DYNP_STRUC-ANBTR01(01)'.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR01(01)'
itab-cum_val.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR01(06)'
itab-acc_val1.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR03(06)'
itab-acc_val1.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR01(06)'
itab-dep_val1.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR02(01)'
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR01(06)'
itab-acc_val2.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR02(06)'
itab-dep_val2.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR03(06)'
itab-acc_depr.
PERFORM bdc_dynpro USING 'SAPLALTD' '1100'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RALT_DYNP_STRUC-ANBTR02(01)'.
perform bdc_field using 'RALT_DYNP_STRUC-ANBTR02(01)'
''.
*End of Comented line
PERFORM bdc_dynpro USING 'SAPLALTD' '1100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLA-ANLN1'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BUCH'.
ELSE.
PERFORM bdc_field USING 'BDC_OKCODE' '=ALTB'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RALT_DYNP_STRUC-ANBTR01(16)'.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR01(16)'
itab-dep_val1.
***
perform bdc_field using 'RALT_DYNP_STRUC-ANBTR03(16)'
itab-acc_depr.
PERFORM bdc_dynpro USING 'SAPLALTD' '1200'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RALT_DYNP_STRUC-ANBTR01(01)'.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-BZDAT(01)'
itab-cap_dt.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-BWASL(01)' '100'.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR01(01)'
itab-acc_val1.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR02(01)'
itab-acc_val2.
*
CONDENSE itab-dep_val2.
IF itab-dep_val1(4) NE '0.00' AND
itab-dep_val1 NE space AND
itab-dep_val1(1) NE '0'.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-BZDAT(02)'
itab-cap_dt.
'31.03.2004'.
*
PERFORM bdc_field USING 'RALT_DYNP_STRUC-BWASL(02)'
**'650'.
PERFORM bdc_field USING 'RALT_DYNP_STRUC-ANBTR02(02)'
itab-dep_val2.
ENDIF.
PERFORM bdc_dynpro USING 'SAPLALTD' '1200'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RALT_DYNP_STRUC-ANBTR02(01)'.
*
PERFORM bdc_dynpro USING 'SAPLALTD' '1200'.
PERFORM bdc_field USING 'BDC_CURSOR' 'ANLA-ANLN1'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BUCH'.
ENDIF.
if all_on = 'X'.
call transaction 'AS91' using bdcdata mode 'A'.
else.
call transaction 'AS91' using bdcdata mode 'E'.
endif.
For Session Method - Insert Transaction
IF p_smode EQ 'X'.
PERFORM bdc_transaction USING 'AS91'.
For Transaction Method - Call Transaction
ELSE.
CALL TRANSACTION 'AS91' USING bdcdata MODE g_mode.
ENDIF.
PERFORM bdc_transaction USING 'AS91'.
REFRESH bdcdata.
ENDLOOP.
PERFORM close_group.
For Session Method - Close Group
IF p_smode EQ 'X'.
PERFORM close_group.
ENDIF.
&----
*& Form upload
&----
text
----
--> p1 text
<-- p2 text
----
FORM upload.
CALL FUNCTION 'UPLOAD'
EXPORTING
CODEPAGE = ' '
filename = 'C:\sapworkdir '
filetype = 'DAT'
TABLES
data_tab = itab.
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 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. " upload
&----
*& Form FILTER_DATA
&----
text
----
-->P_ITAB_DEP_VAL text
----
FORM filter_data USING p_val.
CONDENSE p_val.
TRANSLATE p_val USING ', " '.
CONDENSE p_val NO-GAPS.
ENDFORM. " FILTER_DATA
*IE00 Error opening dataset, return code:
*II01 Session name
*II02 Open session
*II03 Insert transaction
*II04 Close session
*II05 Return code =
*II06 Error session created
*IS01 Session name
*IS02 User
*IS03 Keep session
*IS04 Lock date
*IS05 Run mode
*IS06 Update session
*IS07 Generate session
*IS08 Call transaction
*IS09 Error sessn
*IS10 Nodata indicator
BDC for Assets
*ALL_ON Display All Screens
*CTU
*ERR_ON Halt only on Errors...
*IE00 Error opening dataset, return code:
35
*II01 Session name
12
*II02 Open session
12
*II03 Insert transaction
18
*II04 Close session
13
*II05 Return code =
13
*II06 Error session created
21
*IS01 Session name
12
*IS02 User
4
*IS03 Keep session
12
*IS04 Lock date
9
*IS05 Run mode
8
*IS06 Update session
14
*IS07 Generate session
16
*IS08 Call transaction
16
*IS09 Error sessn
11
*IS10 Nodata Indicator
16
*R BDC For Asset Master
20
*SALL_ON Display All Screens
27
*SCTUMODE D Processing mode
23
*SCUPDATE D Update session
22
*SERR_ON Halt only on Errors...
30
*SE_HDATE D Current date
20
*SHOLDDATED Current date
20
And the Code for Include code is below :
INCLUDE zcbdc_recxx.
&----
*& Include ZCBDC_RECXX
&----
*----
Selection Screen
*----
SELECTION-SCREEN: BEGIN OF BLOCK SCR WITH FRAME TITLE TEXT-001.
PARAMETERS: P_SMODE RADIOBUTTON GROUP R1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 2.
SELECTION-SCREEN COMMENT 3(29) TEXT-002.
PARAMETERS: P_GROUP(12).
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
PARAMETERS: P_TMODE RADIOBUTTON GROUP R1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 2.
SELECTION-SCREEN COMMENT 3(29) TEXT-003.
PARAMETERS: P_MODEA RADIOBUTTON GROUP MODE.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 2.
SELECTION-SCREEN COMMENT 3(29) TEXT-004.
PARAMETERS: P_MODEE RADIOBUTTON GROUP MODE.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 2.
SELECTION-SCREEN COMMENT 3(29) TEXT-005.
PARAMETERS: P_MODEN RADIOBUTTON GROUP MODE.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK SCR.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-006.
PARAMETERS: P_FILE(80) TYPE C.
SELECTION-SCREEN END OF BLOCK B1.
*----
Data Declaration
*----
DATA: BEGIN OF BDCDATA OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDCDATA.
DATA: G_MODE.
*----
At Selection Screen
*----
AT SELECTION-SCREEN.
IF P_SMODE EQ 'X'.
IF P_GROUP IS INITIAL.
SET CURSOR FIELD 'P_GROUP'.
MESSAGE E002(SY) WITH
'Session name is required for Session Method'.
ENDIF.
ENDIF.
*----
create batchinput session
*----
FORM OPEN_GROUP.
SKIP.
WRITE: /(20) 'Create group'(I01), P_GROUP.
SKIP.
open batchinput group
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = P_GROUP
USER = SY-UNAME.
keep = keep
holddate = holddate.
WRITE: /(30) 'BDC_OPEN_GROUP'(I02),
(12) 'returncode:'(I05),
SY-SUBRC.
ENDFORM. "OPEN_GROUP
*----
end batchinput session
*----
FORM CLOSE_GROUP.
close batchinput group
CALL FUNCTION 'BDC_CLOSE_GROUP'.
WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),
(12) 'returncode:'(I05),
SY-SUBRC.
ENDFORM. "CLOSE_GROUP
*----
Start new transaction
*----
FORM BDC_TRANSACTION USING TCODE.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = TCODE
TABLES
DYNPROTAB = BDCDATA.
WRITE: /(25) 'BDC_INSERT'(I03),
TCODE,
(12) 'returncode:'(I05),
SY-SUBRC.
ENDFORM. "BDC_TRANSACTION
*----
Start new screen
*----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO
*----
Insert field
*----
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDFORM. "BDC_FIELD
$$----
$$
$$* At Selection Screen on Value Request $$
$$----
$$
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = SPACE
DEF_PATH = SPACE
MASK = ',.,..'
MODE = SPACE
TITLE = SPACE
IMPORTING
FILENAME = P_FILE
RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
IF SY-SUBRC <> 0 AND SY-SUBRC <> 3.
MESSAGE E102(YB) WITH 'Error Selecting File'(007).
ENDIF.
$$----
$$ Upload File $$
$$----
FORM UPLOAD_FILE TABLES P_ITAB
USING P_FILE.
DATA: FILE_NAME TYPE STRING.
FILE_NAME = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = FILE_NAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = P_ITAB
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.
ENDIF.
ENDFORM. " upload
&----
*& Form GET_MODE
&----
text
----
FORM GET_MODE .
IF P_TMODE EQ 'X'.
IF P_MODEA EQ 'X'.
G_MODE = 'A'.
ELSEIF P_MODEE EQ 'X'.
G_MODE = 'E'.
ELSEIF P_MODEN EQ 'X'.
G_MODE = 'N'.
ENDIF.
ENDIF.
ENDFORM. " GET_MODE
I hope this will solve the problem . and please provide the template as per the internal table .
Regards
Shankar