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

please answer

Former Member
0 Likes
793

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.

4 REPLIES 4
Read only

Former Member
0 Likes
676

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.

Read only

naimesh_patel
Active Contributor
0 Likes
676

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.

Read only

Simha_
Product and Topic Expert
Product and Topic Expert
0 Likes
676

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>

Read only

Former Member
0 Likes
676

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