Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

AS91 Post error message

Former Member
0 Likes
1,113

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

2 REPLIES 2
Read only

Former Member
0 Likes
687

contact your Finance guy, he is the correct person for this

Read only

Former Member
0 Likes
687

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