‎2006 Jul 27 1:15 PM
1. What is the significance of main window in a page,what are the types of the window?
2.If You define paragraph and character formats what will be overwriting which one?
3.what is is BDCDATA structure.
‎2006 Jul 27 1:24 PM
1. Main window is the window that will be processed first in a page.The types of Window are MAIN, VAR,CONST,GRAPHICS.
Variable window content is regenerated on every new page. The content of a
constant window is generated once and printed on every page.
Graphic window is used for displaying graphic images.
3. BDCDATA is the structure containing the folowing fields.
PROGRAM
DYNPRO
DYNBEGIN
FNAM
FVAL
You can also get very useful information from the document in this link. Download it within 3 days.
https://www7.sendthisfile.com/d.jsp?t=asglGjpv25aba8T8sp2G1zyd
Regards,
Amit.
‎2006 Jul 27 1:26 PM
Hello.
1. In Main window, you don't have to bother about the lines, if your lines are more , then script will automatically redirected to next page (rather next main window)
4 types of window.
- Main\
- VAR
- CONST
- GRAPHICS
2 Character format will overwrite the Paragarph. But you can't use character format without paragraph.
3. BDCDATA is used for the BDC - Batch data communication
Regards,
Naimesh
Note : Close the tread, and reward all helpful answers.
‎2006 Jul 27 1:28 PM
Hi,
1)Significance of the main window::
If u want the data to flow dynamically in a page , then u define the window as the main window..
U have to assign the paragraph format and then in that u define the character format..so there will be no question of overwriting..
BDCdata structure is the structure which containd the screen name , value etc....
Even u can see by double clicking on it...
Cheers,
Simha.
<b>Reward if it is helpful..</b>
‎2006 Jul 27 1:37 PM
Hi,
The questions u asked are related to two types of ABAP, one SAP Script and other BDC.
Regarding the thrid quesstion, BDCDATA is used in for BDC programs. It has the following structure:
PROGRAM,
DYNPRO,
DYNBEGN,
FNAM,
FVAL
Refer the following sample program,
REPORT Y_V_BDCP_PRICE
NO STANDARD PAGE HEADING
LINE-SIZE 132
LINE-COUNT 65
MESSAGE-ID ZBRA.
----
Type declarations
----
*--Type declaration for uploading the data
DATA: BEGIN OF I_UPLOAD OCCURS 0,
KSCHL(4), " Condition type
VKORG(4), " sales organization
VTWEG(2), " distribution channel
KUNNR(10), " customer number
MATNR(18), " material number
KBETR(14), " rate from file
KONWA(5), " unit from file
KPEIN(5), " condition pricing unit(per)
KMEIN(3), " UOM
DATAB(8), " Valid on
END OF I_UPLOAD.
*--Type declaration for error report
DATA: BEGIN OF I_ERROR OCCURS 0,
VKORG TYPE KOMG-VKORG, " sales organization
VTWEG TYPE KOMG-VTWEG, " distribution channel
KUNNR TYPE KOMG-KUNNR, " customer number
MSG(100) TYPE C, " Message
END OF I_ERROR.
*-- This internal table for messages collection during posting
DATA : I_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL WITH HEADER LINE,
*-- This internal table is to hold the transaction data for posting
I_BDCTAB TYPE BDCDATA OCCURS 0 WITH HEADER LINE.
*----
Variables
*----
DATA: V_COUNT(2) TYPE N, " Count for no. of rows
V_MATNR(14) TYPE C, " Matnr field name
V_KBETR(14) TYPE C, " Kbetr field name
V_KONWA(14) TYPE C, " Konwa field name
V_KPEIN(14) TYPE C, " Kpein field name
V_KMEIN(14) TYPE C, " Kmein field name
V_DATAB(15) TYPE C, " Datab field name
V_DAT1(10) TYPE C, " Date
V_KBETR_VAL(16) TYPE C , " Rate
V_KPEIN_VAL(5) TYPE C, " Condition pricing unit
V_DATUM1 TYPE SY-DATUM, " For date
V_INDEX TYPE I, " index of the current row
V_ERROR TYPE I, " No. of error records
V_SUCCESS TYPE I, " No. of success records
V_SESSER TYPE I, " No. of error records in
" session
V_MSG(100) TYPE C, " Error Message
V_CURRENCY TYPE KONP-KONWA, " For Currency
V_SERVER TYPE C, " For Server name
V_FTYPE LIKE RLGRAP-FILETYPE, " For File type
V_UPDOWN TYPE C, " For upload/download
V_TOTAL TYPE I, " Total no. of records with data
V_LINES TYPE I, " Total no.of rec. in int.table
v_f,
V_HEAD TYPE SY-LISEL. " Header
*----
Flags
*----
DATA: F_SESSION(1) VALUE SPACE, " To track for open group
F_COLOR(1). " For colors
*----
Constants
*----
CONSTANTS:
C_X(1) TYPE C VALUE 'X', " Value x
C_VK11 TYPE TSTC-TCODE VALUE 'VK11', " Transaction Code
C_UPDATE(1) TYPE C VALUE 'S', " Update type
C_MAT(11) TYPE C VALUE 'KOMG-MATNR(', " MATNR Field name
C_KBE(11) TYPE C VALUE 'KONP-KBETR(', " KBETR Field name
C_KON(11) TYPE C VALUE 'KONP-KONWA(', " KONWA Field name
C_KPE(11) TYPE C VALUE 'KONP-KPEIN(', " KPEIN Field name
C_KME(11) TYPE C VALUE 'KONP-KMEIN(', " KMEIN Field name
C_DAB(12) TYPE C VALUE 'RV13A-DATAB('." DATAB Field name
*----
Selection-screen
*----
SELECTION-SCREEN BEGIN OF BLOCK PRICE WITH FRAME TITLE TEXT-012.
PARAMETERS:
P_FNAME TYPE RLGRAP-FILENAME OBLIGATORY, " File name
P_SNAME TYPE APQI-GROUPID OBLIGATORY DEFAULT 'CC_PRICE'.
" session name
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(20) TEXT-028. " Method
SELECTION-SCREEN POSITION POS_LOW.
PARAMETERS: P_CALLTR RADIOBUTTON GROUP RAD1 USER-COMMAND B DEFAULT 'X'.
SELECTION-SCREEN COMMENT 36(20) TEXT-029. " Call Transaction
PARAMETERS: P_SESSN RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN COMMENT 60(10) TEXT-030. " Session
SELECTION-SCREEN END OF LINE.
PARAMETERS: P_MODE(1) DEFAULT 'N'. " Mode for Call Transaction
SELECTION-SCREEN END OF BLOCK PRICE.
**----
At selection-screen
**----
AT SELECTION-SCREEN.
IF NOT P_MODE IS INITIAL.
*--Validating the mode
PERFORM MODE_VALIDATION.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
PERFORM F4_FOR_FILENAME.
**----
Start-of-selection
**----
START-OF-SELECTION.
V_SERVER = 'P'.
V_FTYPE = 'DAT'.
V_UPDOWN = 'U'.
*--Uploading the data from Presentation server or application server
PERFORM READ_FILE TABLES I_UPLOAD
USING V_SERVER P_FNAME V_FTYPE V_UPDOWN.
IF NOT I_UPLOAD[] IS INITIAL.
CLEAR: I_UPLOAD,
V_LINES.
SORT I_UPLOAD BY KSCHL VKORG VTWEG KUNNR MATNR.
V_LINES = V_TOTAL.
IF P_CALLTR = C_X.
*--Perform for call transaction method
PERFORM CALL_TRANSACTION_METHOD.
ELSE.
*--Perform for session method
PERFORM SESSION_METHOD.
ENDIF.
ELSE.
MESSAGE I000 WITH 'Input File has no data'(013).
STOP.
ENDIF.
**----
End-of-selection
**----
END-OF-SELECTION.
IF V_TOTAL > 0.
IF NOT I_ERROR[] IS INITIAL.
*--Display Error Report
PERFORM WRITE_ERROR_REPORT.
ELSE.
WRITE: ''.
ENDIF.
ENDIF.
**----
Top-of-page
**----
TOP-OF-PAGE.
*--perform which displays standard header
PERFORM WRITE_COMMON_REPORT_HEADER.
SKIP.
--Display Control Report
PERFORM WRITE_CONTROL_REPORT.
SKIP.
*--Display the standard header
PERFORM DISPLAY_HEADER.
&----
*& Form call_transaction_method
&----
Using call transaction method
----
FORM CALL_TRANSACTION_METHOD.
CLEAR : F_SESSION,
V_INDEX.
LOOP AT I_UPLOAD.
V_INDEX = V_INDEX + 1.
*--At new of Customer
AT NEW KUNNR.
clear v_f.
v_f = 'X'.
CLEAR I_UPLOAD.
READ TABLE I_UPLOAD INDEX V_INDEX
TRANSPORTING ALL FIELDS.
IF SY-SUBRC = 0.
*--For header data
PERFORM POPULATE_HEADER_DATA.
ENDIF.
ENDAT.
*--populate the screen flow
PERFORM POPULATE_SCREEN_FLOW.
*--At end of Customer
AT END OF KUNNR.
CLEAR I_UPLOAD.
READ TABLE I_UPLOAD INDEX V_INDEX
TRANSPORTING ALL FIELDS.
IF SY-SUBRC = 0.
*--screen flow to save the transaction at end of each customer
PERFORM SAVE_CUST.
*--To call the transaction VK11
PERFORM CALL_TRANSACTION.
ENDIF.
ENDAT.
ENDLOOP.
IF F_SESSION = 'X'.
*--perform to close bdc session
PERFORM CLOSE_SESSION.
ENDIF.
ENDFORM. " CALL_TRANSACTION_METHOD
&----
*& Form populate_screen_flow
&----
Screen flow for populating line item data
----
FORM POPULATE_SCREEN_FLOW.
CLEAR: V_MATNR,
V_KBETR,
V_KONWA,
V_KPEIN,
V_KMEIN,
V_DATUM1,
V_DATAB,
V_DAT1,
V_KBETR_VAL,
V_KPEIN_VAL.
*--For getting date
CONCATENATE I_UPLOAD-DATAB+4(4)
I_UPLOAD-DATAB+2(2)
I_UPLOAD-DATAB+0(2)
INTO V_DATUM1.
WRITE : V_DATUM1 TO V_DAT1.
*--For Currency
WRITE: I_UPLOAD-KBETR TO V_KBETR_VAL CURRENCY V_CURRENCY.
MOVE I_UPLOAD-KPEIN TO V_KPEIN_VAL.
*--If only one entry is there for the condition
IF V_INDEX1 = '1'.
if v_f = 'X'.
V_COUNT = '1'.
*--For Row no. in Table control
PERFORM CONCATENATE_ROWNO.
*--Passing Material no, Rate, Unit, condition price unit, UOM, validon
PERFORM BDC_DYNPRO USING 'SAPMV13A' '1005'.
PERFORM BDC_FIELD USING : 'BDC_OKCODE' '/00',
V_MATNR I_UPLOAD-MATNR,
V_KBETR V_KBETR_VAL,
V_KONWA I_UPLOAD-KONWA,
V_KPEIN V_KPEIN_VAL,
V_KMEIN I_UPLOAD-KMEIN,
V_DATAB V_DAT1.
clear v_f.
ELSE.
*--If multiple entries are there for the condition
V_COUNT = V_COUNT + 1.
*--For Row no. in Table control
PERFORM CONCATENATE_ROWNO.
*--For the new entry
PERFORM BDC_DYNPRO USING 'SAPMV13A' '1005'.
PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=NEWP'.
*--Passing Material no, Rate, Unit, condition price unit, UOM, validon
PERFORM BDC_DYNPRO USING 'SAPMV13A' '1005'.
PERFORM BDC_FIELD USING : 'BDC_OKCODE' '/00',
V_MATNR I_UPLOAD-MATNR,
V_KBETR V_KBETR_VAL,
V_KONWA I_UPLOAD-KONWA,
V_KPEIN V_KPEIN_VAL,
V_KMEIN I_UPLOAD-KMEIN,
V_DATAB V_DAT1.
ENDIF.
ENDFORM. " populate_screen_flow
&----
*& Form CALL_TRANSACTION *
&----
Description : To call the transaction VK11 *
----
FORM CALL_TRANSACTION.
CALL TRANSACTION C_VK11 USING I_BDCTAB
MODE P_MODE
UPDATE C_UPDATE
MESSAGES INTO I_BDCMSGCOLL.
IF SY-SUBRC <> 0.
V_ERROR = V_ERROR + 1. " Incrementing the counter
*--Perform to read the messages
PERFORM TRAP_ERRORS TABLES I_BDCMSGCOLL.
IF F_SESSION EQ SPACE.
*--Perform Open BDC Session
PERFORM OPEN_SESSION.
ENDIF.
IF F_SESSION = C_X.
*--Perform Insert BDC Session
PERFORM BDC_INSERT.
ENDIF.
ELSE.
V_SUCCESS = V_SUCCESS + 1.
ENDIF.
REFRESH: I_BDCTAB,
I_BDCMSGCOLL.
CLEAR: I_BDCTAB,
I_BDCMSGCOLL.
ENDFORM. " call_transaction
&----
*& Form TRAP_ERRORS *
&----
Description : To store error messages during call transaction *
for Log report *
----
FORM TRAP_ERRORS TABLES I_BDCMSGCOLL STRUCTURE I_BDCMSGCOLL.
LOOP AT I_BDCMSGCOLL.
IF ( I_BDCMSGCOLL-MSGTYP = 'E' ) OR ( I_BDCMSGCOLL-MSGTYP = 'A' ).
CLEAR V_MSG.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = I_BDCMSGCOLL-MSGID
LANG = 'EN'
NO = I_BDCMSGCOLL-MSGNR
V1 = I_BDCMSGCOLL-MSGV1
V2 = I_BDCMSGCOLL-MSGV2
V3 = I_BDCMSGCOLL-MSGV3
V4 = I_BDCMSGCOLL-MSGV4
IMPORTING
MSG = V_MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC = 0.
I_ERROR-VKORG = I_UPLOAD-VKORG.
I_ERROR-VTWEG = I_UPLOAD-VTWEG.
I_ERROR-KUNNR = I_UPLOAD-KUNNR.
I_ERROR-MSG = V_MSG.
APPEND I_ERROR.
CLEAR I_ERROR.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " trap_errors
&----
*& Form OPEN_SESSION *
&----
Description : This form is for opening batchinput session *
----
FORM OPEN_SESSION.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = P_SNAME
KEEP = C_X
USER = SY-UNAME
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'Error in Open Session'(014).
EXIT.
ELSE.
F_SESSION = C_X.
ENDIF.
ENDFORM. " OPEN_SESSION
&----
*& Form BDC_INSERT *
&----
Description : To Submit the Transaction data to BDC session *
----
FORM BDC_INSERT.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = C_VK11
TABLES
DYNPROTAB = I_BDCTAB
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'Error in inserting the record'(015).
EXIT.
ELSE.
V_SESSER = V_SESSER + 1. " Incrementing the counter
ENDIF.
ENDFORM. " BDC_INSERT
&----
*& Form CLOSE_SESSION *
&----
Description: This form is to close batchinput session *
----
FORM CLOSE_SESSION.
*--Closing the BDC Session
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'Error in closing the Session'(016).
STOP.
ENDIF.
ENDFORM. " CLOSE_SESSION
&----
*& Form session_method
&----
For Session Method
----
FORM SESSION_METHOD.
CLEAR: F_SESSION, V_INDEX.
*--Perform Open BDC Session
PERFORM OPEN_SESSION.
CHECK F_SESSION = C_X.
LOOP AT I_UPLOAD.
V_INDEX = V_INDEX + 1.
*--At new of Customer
AT NEW KUNNR.
CLEAR I_UPLOAD.
READ TABLE I_UPLOAD INDEX V_INDEX
TRANSPORTING ALL FIELDS.
IF SY-SUBRC = 0.
*--For header data
PERFORM POPULATE_HEADER_DATA.
ENDIF.
ENDAT.
*--Populate the screen flow
PERFORM POPULATE_SCREEN_FLOW.
*--At end of Customer
AT END OF KUNNR.
CLEAR I_UPLOAD.
READ TABLE I_UPLOAD INDEX V_INDEX
TRANSPORTING ALL FIELDS.
IF SY-SUBRC = 0.
*--Screen flow to save the transaction at end of each customer
PERFORM SAVE_CUST.
*--Perform Insert BDC Session
PERFORM BDC_INSERT.
ENDIF.
ENDAT.
ENDLOOP.
*--Perform to close bdc session
PERFORM CLOSE_SESSION.
ENDFORM. " session_method
&----
*& Form populate_header_data
&----
Screen flow to populate header data
----
FORM POPULATE_HEADER_DATA.
REFRESH I_BDCTAB.
CLEAR: I_BDCTAB, V_COUNT.
*--Passing the Condition type
PERFORM BDC_DYNPRO USING 'SAPMV13A' '0100'.
PERFORM BDC_FIELD USING :'BDC_OKCODE' '=ANTA',
: 'RV13A-KSCHL' I_UPLOAD-KSCHL.
*--Selecting Customer/Material Radio button ( Key Combination )
PERFORM BDC_DYNPRO USING 'SAPLV14A' '0100'.
PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=WEIT',
: 'RV130-SELKZ(01)' 'X'.
*--Passing Sales org, Distri.channel and Customer
PERFORM BDC_DYNPRO USING 'SAPMV13A' '1005'.
PERFORM BDC_FIELD USING : 'BDC_OKCODE' '/00',
: 'KOMG-VKORG' I_UPLOAD-VKORG,
: 'KOMG-VTWEG' I_UPLOAD-VTWEG,
: 'KOMG-KUNNR' I_UPLOAD-KUNNR.
ENDFORM. " populate_header_data
&----
*& Form SAVE_CUST *
&----
Description : Screen flow to save the transaction *
----
FORM SAVE_CUST.
PERFORM BDC_DYNPRO USING 'SAPMV13A' '1005'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SICH'.
ENDFORM. " SAVE_CUST
&----
*& Form write_control_report
&----
For Control Report
----
FORM WRITE_CONTROL_REPORT.
**--For color off
FORMAT COLOR COL_NORMAL OFF.
ULINE.
WRITE:/1 SY-VLINE,
2 'Total No. of records uploaded'(018),
36 ':',
38 V_LINES,
132 SY-VLINE.
*--Report for session method
IF P_SESSN = C_X.
*--To display total no. of records in session
WRITE:/1 SY-VLINE,
2 'No. of records in Session'(022),
36 ':',
38 V_INDEX,
132 SY-VLINE.
*--To display the session name
WRITE:/1 SY-VLINE,
2 'Name of the Session Created'(021),
36 ':',
40 P_SNAME,
132 SY-VLINE.
ENDIF.
IF P_CALLTR = C_X.
*--To display total no. of error records which are either
*--Error or Abend
WRITE:/1 SY-VLINE,
2 'No. of records with errors'(019),
36 ':',
38 V_ERROR,
132 SY-VLINE.
*--To display total no. of successful records
WRITE:/1 SY-VLINE,
2 'No. of records posted successfully'(020),
36 ':',
38 V_SUCCESS,
132 SY-VLINE.
IF V_ERROR > 0.
*--To display session name
WRITE:/1 SY-VLINE,
2 'Name of the Session Created'(021),
36 ':',
38 P_SNAME,
132 SY-VLINE.
*--To display total no. of records in session
WRITE:/1 SY-VLINE,
2 'No. of records in Session'(022),
36 ':',
38 V_SESSER,
132 SY-VLINE.
ENDIF.
ENDIF.
WRITE:/001(132) SY-ULINE.
ENDFORM. " write_control_report
&----
*& Form write_error_report
&----
Display Error Report
----
FORM WRITE_ERROR_REPORT.
CLEAR V_HEAD.
V_HEAD = 'ERROR LOG'(023).
LOOP AT I_ERROR.
*--For alternate colors
PERFORM COLOR_INTENSIFICATION.
WRITE:/1 SY-VLINE,
2 I_ERROR-VKORG,
21 SY-VLINE,
22 I_ERROR-VTWEG,
35 SY-VLINE,
36 I_ERROR-KUNNR,
60 SY-VLINE,
61 I_ERROR-MSG.
WRITE: 132 SY-VLINE.
ENDLOOP.
WRITE:/001(132) SY-ULINE.
ENDFORM. " write_error_report
&----
*& Form display_header
&----
Display the report header
----
FORM DISPLAY_HEADER.
*--For color
FORMAT COLOR COL_HEADING ON.
*--For Error Report
CASE V_HEAD.
WHEN 'ERROR LOG'(023).
*--For Error Report Header
PERFORM WRITE_HEADER.
ENDCASE.
ENDFORM. " display_header
&----
*& Form write_header
&----
Header for Error Report
----
FORM WRITE_HEADER.
*--For alternate colors
PERFORM COLOR_INTENSIFICATION.
WRITE:001(132) SY-ULINE.
WRITE:/001(001) SY-VLINE,
002(111) 'ERROR LOG'(023) CENTERED,
132(001) SY-VLINE.
WRITE:/001(132) SY-ULINE.
WRITE:/1 SY-VLINE,
2 'Sales Organization'(025),
21 SY-VLINE,
22 'Distribution Channel'(026),
35 SY-VLINE,
36 'Customer Number'(027),
60 SY-VLINE,
61 'Error Message'(024).
WRITE: 132 SY-VLINE.
ULINE.
ENDFORM. " write_header
&----
*& Form color_intensification
&----
For alternate colors
----
FORM COLOR_INTENSIFICATION.
FORMAT RESET.
FORMAT COLOR COL_NORMAL.
IF F_COLOR = C_X.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
CLEAR F_COLOR.
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
F_COLOR = C_X.
ENDIF.
ENDFORM. " color_intensification
&----
*& Form mode_validation
&----
validation for mode parameter
----
FORM MODE_VALIDATION.
IF P_MODE <> 'A' AND
P_MODE <> 'E' AND
P_MODE <> 'N' .
MESSAGE E000 WITH 'Mode should be A/E/N'(017).
ENDIF.
ENDFORM.
&----
*& Form CONCATENATE_ROWNO
&----
*--For Row no. in Table control
----
FORM CONCATENATE_ROWNO.
*--For Row no. in Table control
CONCATENATE C_MAT V_COUNT ')' INTO V_MATNR.
CONCATENATE C_KBE V_COUNT ')' INTO V_KBETR.
CONCATENATE C_KON V_COUNT ')' INTO V_KONWA.
CONCATENATE C_KPE V_COUNT ')' INTO V_KPEIN.
CONCATENATE C_KME V_COUNT ')' INTO V_KMEIN.
CONCATENATE C_DAB V_COUNT ')' INTO V_DATAB.
ENDFORM. " CONCATENATE_ROWNO
&----
*& Form BDC_DYNPRO
&----
Description: Start new screen *
----
-->PROGRAM Program name *
-->DYNPRO Screen number *
----
FORM BDC_DYNPRO USING VALUE(PROGRAM) TYPE C
VALUE(DYNPRO) TYPE C.
I_BDCTAB-PROGRAM = PROGRAM.
I_BDCTAB-DYNPRO = DYNPRO.
I_BDCTAB-DYNBEGIN = 'X'.
APPEND I_BDCTAB.
CLEAR I_BDCTAB.
ENDFORM. " BDC_DYNPRO
&----
*& Form BDC_FIELD
&----
Description: Insert field *
----
-->FNAM Field Name *
-->FVAL Field Value *
----
FORM BDC_FIELD USING VALUE(FNAM) TYPE C
VALUE(FVAL) TYPE ANY.
I_BDCTAB-FNAM = FNAM.
I_BDCTAB-FVAL = FVAL.
APPEND I_BDCTAB.
CLEAR I_BDCTAB.
ENDFORM. " BDC_FIELD
----
Form : Read_inputfile
----
Description : To upload the data into internal table
----
FORM READ_FILE TABLES F_INFILE
USING F_SERVER TYPE ANY
F_FILE TYPE RLGRAP-FILENAME
F_FILTYP TYPE RLGRAP-FILETYPE
F_UPDOWN TYPE ANY.
IF F_UPDOWN = 'U'.
CLEAR F_INFILE.
REFRESH F_INFILE.
IF F_SERVER = 'P'.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = F_FILE
FILETYPE = F_FILTYP
TABLES
DATA_TAB = F_INFILE
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 <> 0.
MESSAGE I000(ZBRA) WITH 'Error in uploading the file'(004).
STOP.
ENDIF.
ENDIF.
ELSEIF F_UPDOWN = 'D'.
IF F_SERVER = 'P'.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = ' '
CODEPAGE = ' '
FILENAME = F_FILE
FILETYPE = F_FILTYP
MODE = ' '
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
COL_SELECT = ' '
COL_SELECTMASK = ' '
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = F_INFILE
FIELDNAMES =
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 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 <> 0.
MESSAGE I000(ZBRA) WITH 'Error in Downloading the file'(006).
STOP.
ENDIF.
ENDIF.
ENDIF.
Total no of recs in file
DESCRIBE TABLE F_INFILE LINES V_TOTAL.
IF V_TOTAL = 0.
MESSAGE I000(ZBRA) WITH 'No records in the file'(008).
STOP.
ENDIF.
ENDFORM. "Read_inputfile
&----
*& Form F4_FOR_FILENAME
&----
*
----
FORM F4_FOR_FILENAME.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FNAME.
ENDFORM. " F4_FOR_FILENAME
Sreedhar