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

Session Method in BDC program is needed or not?

Former Member
0 Likes
559

Helllo everybody,

Can anyone tell me ,session methos in BDC., program is needed or not if needed then please give one example of that,,,

Thanks & Regards

Chintan

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
532

Hai....

Plz post your query clearly.

U want to know about data upload using session input.. right

Iam sending a sample code for session i/p method.

find the code below, it is uploading vendors using session i/p method.

TYPE-POOLS : TRUXS.

TYPES : BEGIN OF TY_UPLOAD,

LIFNR LIKE RF02K-LIFNR,

BUKRS LIKE RF02K-BUKRS,

EKORG LIKE RF02K-EKORG,

KTOKK LIKE RF02K-KTOKK,

NAME1 LIKE LFA1-NAME1,

SORTL LIKE LFA1-SORTL,

STRAS LIKE LFA1-STRAS,

PSTLZ LIKE LFA1-PSTLZ,

LAND1 LIKE LFA1-LAND1,

REGIO LIKE LFA1-REGIO,

SPRAS LIKE LFA1-SPRAS,

AKONT LIKE LFB1-AKONT,

ZTERM LIKE LFB1-ZTERM,

WAERS LIKE LFM1-WAERS,

ZZTERM LIKE LFM1-ZTERM,

INCO1 LIKE LFM1-INCO1,

INCO2 LIKE LFM1-INCO2,

EKGRP LIKE LFM1-EKGRP,

END OF TY_UPLOAD.

DATA : WA_UPLOAD TYPE TY_UPLOAD,

LT_UPLOAD LIKE STANDARD TABLE OF WA_UPLOAD.

DATA : WA_BDCDATA TYPE BDCDATA,

LT_BDCDATA LIKE STANDARD TABLE OF WA_BDCDATA.

DATA : I_TAB_RAW_DATA TYPE TRUXS_T_TEXT_DATA.

DATA : FNAM TYPE IBIPPARMS-PATH.

----


  • SELECTION-SCREEN

----


SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME.

PARAMETER : P_FNAM TYPE RLGRAP-FILENAME.

SELECTION-SCREEN : END OF BLOCK B1.

----


  • AT SELECTION-SCREEN

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAM.

CALL FUNCTION 'F4_FILENAME'

IMPORTING

FILE_NAME = FNAM

.

P_FNAM = FNAM.

----


  • START-OF-SELECTION

----


START-OF-SELECTION.

PERFORM SUB_READ_DATA.

PERFORM SUB_UPLOAD.

----


  • FORM SUB_READ_DATA

----


FORM SUB_READ_DATA.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

EXPORTING

I_TAB_RAW_DATA = I_TAB_RAW_DATA

I_FILENAME = FNAM

TABLES

I_TAB_CONVERTED_DATA = LT_UPLOAD.

ENDFORM. " FORM SUB_READ_DATA

----


  • FORM SUB_UPLOAD

----


FORM SUB_UPLOAD.

----


TO OPEN A SESSION -

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'VENDOR'

KEEP = 'X'

USER = SY-UNAME.

LOOP AT LT_UPLOAD INTO WA_UPLOAD.

REFRESH LT_BDCDATA.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = WA_UPLOAD-KTOKK

IMPORTING

OUTPUT = WA_UPLOAD-KTOKK .

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0100'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RF02K-KTOKK'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'RF02K-LIFNR' WA_UPLOAD-LIFNR.

PERFORM BDC_FIELD USING 'RF02K-BUKRS' WA_UPLOAD-BUKRS.

PERFORM BDC_FIELD USING 'RF02K-EKORG' WA_UPLOAD-EKORG.

PERFORM BDC_FIELD USING 'RF02K-KTOKK' WA_UPLOAD-KTOKK.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0110'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFA1-SPRAS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'LFA1-NAME1' WA_UPLOAD-NAME1.

PERFORM BDC_FIELD USING 'LFA1-SORTL' WA_UPLOAD-SORTL.

PERFORM BDC_FIELD USING 'LFA1-STRAS' WA_UPLOAD-STRAS.

PERFORM BDC_FIELD USING 'LFA1-PSTLZ' WA_UPLOAD-PSTLZ.

PERFORM BDC_FIELD USING 'LFA1-LAND1' WA_UPLOAD-LAND1.

PERFORM BDC_FIELD USING 'LFA1-REGIO' WA_UPLOAD-REGIO.

PERFORM BDC_FIELD USING 'LFA1-SPRAS' WA_UPLOAD-SPRAS.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0120'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFA1-KUNNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFBK-BANKS(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0380'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNVK-NAMEV(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0210'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFB1-AKONT'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'LFB1-AKONT' WA_UPLOAD-AKONT.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0215'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFB1-ZTERM'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'LFB1-ZTERM' WA_UPLOAD-ZTERM.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0220'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFB5-MAHNA'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0310'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFM1-EKGRP'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'LFM1-WAERS' WA_UPLOAD-WAERS.

PERFORM BDC_FIELD USING 'LFM1-ZTERM' WA_UPLOAD-ZZTERM.

PERFORM BDC_FIELD USING 'LFM1-INCO1' WA_UPLOAD-INCO1.

PERFORM BDC_FIELD USING 'LFM1-INCO2' WA_UPLOAD-INCO2.

PERFORM BDC_FIELD USING 'LFM1-EKGRP' WA_UPLOAD-EKGRP.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0320'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RF02K-LIFNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPLSPO1' '0300'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=YES'.

----


TO INSERT INTO SESSION -

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'XK01'

TABLES

DYNPROTAB = LT_BDCDATA.

ENDLOOP.

----


TO OPEN A SESSION -

CALL FUNCTION 'BDC_CLOSE_GROUP'

  • EXCEPTIONS

  • NOT_OPEN = 1

  • QUEUE_ERROR = 2

  • OTHERS = 3

.

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. " FORM SUB_UPLOAD

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR WA_BDCDATA.

WA_BDCDATA-PROGRAM = PROGRAM.

WA_BDCDATA-DYNPRO = DYNPRO.

WA_BDCDATA-DYNBEGIN = 'X'.

APPEND WA_BDCDATA TO LT_BDCDATA.

ENDFORM.

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> SPACE.

CLEAR WA_BDCDATA.

WA_BDCDATA-FNAM = FNAM.

WA_BDCDATA-FVAL = FVAL.

APPEND WA_BDCDATA TO LT_BDCDATA.

ENDIF.

ENDFORM.

hope it will help U.

If U want to know more abt session i/p method just search in the forum.

U can get lot of examples and solutions.

Regards

Sekhar.C

4 REPLIES 4
Read only

Former Member
0 Likes
533

Hai....

Plz post your query clearly.

U want to know about data upload using session input.. right

Iam sending a sample code for session i/p method.

find the code below, it is uploading vendors using session i/p method.

TYPE-POOLS : TRUXS.

TYPES : BEGIN OF TY_UPLOAD,

LIFNR LIKE RF02K-LIFNR,

BUKRS LIKE RF02K-BUKRS,

EKORG LIKE RF02K-EKORG,

KTOKK LIKE RF02K-KTOKK,

NAME1 LIKE LFA1-NAME1,

SORTL LIKE LFA1-SORTL,

STRAS LIKE LFA1-STRAS,

PSTLZ LIKE LFA1-PSTLZ,

LAND1 LIKE LFA1-LAND1,

REGIO LIKE LFA1-REGIO,

SPRAS LIKE LFA1-SPRAS,

AKONT LIKE LFB1-AKONT,

ZTERM LIKE LFB1-ZTERM,

WAERS LIKE LFM1-WAERS,

ZZTERM LIKE LFM1-ZTERM,

INCO1 LIKE LFM1-INCO1,

INCO2 LIKE LFM1-INCO2,

EKGRP LIKE LFM1-EKGRP,

END OF TY_UPLOAD.

DATA : WA_UPLOAD TYPE TY_UPLOAD,

LT_UPLOAD LIKE STANDARD TABLE OF WA_UPLOAD.

DATA : WA_BDCDATA TYPE BDCDATA,

LT_BDCDATA LIKE STANDARD TABLE OF WA_BDCDATA.

DATA : I_TAB_RAW_DATA TYPE TRUXS_T_TEXT_DATA.

DATA : FNAM TYPE IBIPPARMS-PATH.

----


  • SELECTION-SCREEN

----


SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME.

PARAMETER : P_FNAM TYPE RLGRAP-FILENAME.

SELECTION-SCREEN : END OF BLOCK B1.

----


  • AT SELECTION-SCREEN

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAM.

CALL FUNCTION 'F4_FILENAME'

IMPORTING

FILE_NAME = FNAM

.

P_FNAM = FNAM.

----


  • START-OF-SELECTION

----


START-OF-SELECTION.

PERFORM SUB_READ_DATA.

PERFORM SUB_UPLOAD.

----


  • FORM SUB_READ_DATA

----


FORM SUB_READ_DATA.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

EXPORTING

I_TAB_RAW_DATA = I_TAB_RAW_DATA

I_FILENAME = FNAM

TABLES

I_TAB_CONVERTED_DATA = LT_UPLOAD.

ENDFORM. " FORM SUB_READ_DATA

----


  • FORM SUB_UPLOAD

----


FORM SUB_UPLOAD.

----


TO OPEN A SESSION -

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'VENDOR'

KEEP = 'X'

USER = SY-UNAME.

LOOP AT LT_UPLOAD INTO WA_UPLOAD.

REFRESH LT_BDCDATA.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = WA_UPLOAD-KTOKK

IMPORTING

OUTPUT = WA_UPLOAD-KTOKK .

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0100'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RF02K-KTOKK'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'RF02K-LIFNR' WA_UPLOAD-LIFNR.

PERFORM BDC_FIELD USING 'RF02K-BUKRS' WA_UPLOAD-BUKRS.

PERFORM BDC_FIELD USING 'RF02K-EKORG' WA_UPLOAD-EKORG.

PERFORM BDC_FIELD USING 'RF02K-KTOKK' WA_UPLOAD-KTOKK.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0110'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFA1-SPRAS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'LFA1-NAME1' WA_UPLOAD-NAME1.

PERFORM BDC_FIELD USING 'LFA1-SORTL' WA_UPLOAD-SORTL.

PERFORM BDC_FIELD USING 'LFA1-STRAS' WA_UPLOAD-STRAS.

PERFORM BDC_FIELD USING 'LFA1-PSTLZ' WA_UPLOAD-PSTLZ.

PERFORM BDC_FIELD USING 'LFA1-LAND1' WA_UPLOAD-LAND1.

PERFORM BDC_FIELD USING 'LFA1-REGIO' WA_UPLOAD-REGIO.

PERFORM BDC_FIELD USING 'LFA1-SPRAS' WA_UPLOAD-SPRAS.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0120'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFA1-KUNNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFBK-BANKS(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0380'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'KNVK-NAMEV(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0210'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFB1-AKONT'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'LFB1-AKONT' WA_UPLOAD-AKONT.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0215'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFB1-ZTERM'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'LFB1-ZTERM' WA_UPLOAD-ZTERM.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0220'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFB5-MAHNA'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0310'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFM1-EKGRP'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'LFM1-WAERS' WA_UPLOAD-WAERS.

PERFORM BDC_FIELD USING 'LFM1-ZTERM' WA_UPLOAD-ZZTERM.

PERFORM BDC_FIELD USING 'LFM1-INCO1' WA_UPLOAD-INCO1.

PERFORM BDC_FIELD USING 'LFM1-INCO2' WA_UPLOAD-INCO2.

PERFORM BDC_FIELD USING 'LFM1-EKGRP' WA_UPLOAD-EKGRP.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0320'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RF02K-LIFNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPLSPO1' '0300'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=YES'.

----


TO INSERT INTO SESSION -

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'XK01'

TABLES

DYNPROTAB = LT_BDCDATA.

ENDLOOP.

----


TO OPEN A SESSION -

CALL FUNCTION 'BDC_CLOSE_GROUP'

  • EXCEPTIONS

  • NOT_OPEN = 1

  • QUEUE_ERROR = 2

  • OTHERS = 3

.

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. " FORM SUB_UPLOAD

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR WA_BDCDATA.

WA_BDCDATA-PROGRAM = PROGRAM.

WA_BDCDATA-DYNPRO = DYNPRO.

WA_BDCDATA-DYNBEGIN = 'X'.

APPEND WA_BDCDATA TO LT_BDCDATA.

ENDFORM.

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> SPACE.

CLEAR WA_BDCDATA.

WA_BDCDATA-FNAM = FNAM.

WA_BDCDATA-FVAL = FVAL.

APPEND WA_BDCDATA TO LT_BDCDATA.

ENDIF.

ENDFORM.

hope it will help U.

If U want to know more abt session i/p method just search in the forum.

U can get lot of examples and solutions.

Regards

Sekhar.C

Read only

0 Likes
532

Thanks for your reply.

I want to know about in Session method of BDC any program is needed or not.

Thanks & Regards,

Chintan

Read only

0 Likes
532

Hi,

For session method you need to write a program in SE38 to input the legacy file data in to sap and callling the function modules related to session creation.

Thanks

Raghav

Read only

Former Member
0 Likes
532

Search SCN.