‎2008 Dec 03 12:10 PM
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
‎2008 Dec 03 12:30 PM
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.
----
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'.
----
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'XK01'
TABLES
DYNPROTAB = LT_BDCDATA.
ENDLOOP.
----
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
‎2008 Dec 03 12:30 PM
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.
----
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'.
----
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'XK01'
TABLES
DYNPROTAB = LT_BDCDATA.
ENDLOOP.
----
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
‎2008 Dec 03 12:38 PM
Thanks for your reply.
I want to know about in Session method of BDC any program is needed or not.
Thanks & Regards,
Chintan
‎2008 Dec 04 6:16 AM
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
‎2008 Dec 03 12:54 PM