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

BDC session not created

Former Member
0 Likes
366

I checked in SM35 but i didnt find the session created for the following prg:

&----


*& Report ZM_BDCP_MM01_ASP *

*& *

&----


*& *

*& *

&----


REPORT ZM_BDCP_MM01_ASP .

**STRUCTURE FOR FLAT FILE

TYPES: BEGIN OF XT_MAT,

MBRSH TYPE MARA-MBRSH, "INDUSTRIAL SECTOR

MTART TYPE MARA-MTART, "MATERIAL TYPE

MAKTX TYPE MAKT-MAKTX, "MATERIAL DESCRIPTION

MEINS TYPE MARA-MEINS, "BASIC UNIT OF MEASURE

MATKL TYPE MARA-MATKL, "MATERIAL GROUP

END OF XT_MAT.

**DECLARATIONS

*DATA: LV_SESSION TYPE APQ_GRPN.

DATA: IT_MAT TYPE STANDARD TABLE OF XT_MAT,

WA_MAT TYPE XT_MAT.

DATA: FILENAME TYPE STRING.

DATA: IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA,

WA_BDCDATA TYPE BDCDATA,

IT_BDCMSG TYPE STANDARD TABLE OF BDCMSGCOLL, "TO CAPTURE ERROR MESSAGES

WA_BDCMSG TYPE BDCMSGCOLL.

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETER: R1 RADIOBUTTON GROUP GRP, "SESSION

R2 RADIOBUTTON GROUP GRP, "CALL TRANSACTION - DEFAULT SELECTED

P_FILE TYPE IBIPPARMS-PATH. "TO SELECT THE FILE

SELECTION-SCREEN: END OF BLOCK B1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

PERFORM GETFILE. "UPLOAD THE FLATFILE AND SAVE IT IN THE INTERNAL TABLE

PERFORM GETDATA. "PROCESS BDC

PERFORM BDCMETHOD. "TO CALL EITHER SESSION OR CALLTRANSACTION

&----


*& Form GETFILE

&----


FORM GETFILE .

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = P_FILE. "SELECT THE FILE FROM P_FILE PARAMETER

FILENAME = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = FILENAME "IT CONTAINS FILENAME FROM P_FILE PARAMETER

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = IT_MAT.

ENDFORM. " GETFILE

&----


*& Form GETDATA

&----


FORM BDCMETHOD .

IF R1 = 'X'.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'LV_SESSION'

KEEP = 'X'

USER = SY-UNAME

PROG = SY-CPROG

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 E000(Z_SD2) WITH 'SESSION NOT CREATED'.

ENDIF.

LOOP AT IT_MAT INTO WA_MAT.

*INSERT RECORDS INTO SESSION

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'MM01'

TABLES

DYNPROTAB = IT_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 6

OTHERS = 7.

REFRESH IT_BDCDATA.

CLEAR IT_BDCDATA.

ENDLOOP.

*CLOSE SESSION

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

NOT_OPEN = 1

QUEUE_ERROR = 2

OTHERS = 3.

  • ELSE.

***USING CALL TRANSACTION.

  • CALL TRANSACTION 'MM01'

  • USING IT_BDCDATA

  • MODE 'A'

  • UPDATE 'A'

  • MESSAGES INTO IT_BDCMSG.

*

*

ENDIF.

ENDFORM. " BDCMETHOD

----


  • 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 IT_BDCDATA.

ENDFORM. "BDC_DYNPRO

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL IS NOT INITIAL.

CLEAR WA_BDCDATA.

WA_BDCDATA-FNAM = FNAM.

WA_BDCDATA-FVAL = FVAL.

APPEND WA_BDCDATA TO IT_BDCDATA.

ENDIF.

ENDFORM. "BDC_FIELD

&----


*& Form GETDATA

&----


FORM GETDATA .

LOOP AT IT_MAT INTO WA_MAT.

***FOR INITIAL SCREEN MM01.(FIRST SCREEN)

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0060'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=AUSW'.

PERFORM BDC_FIELD USING 'RMMG1-MBRSH' WA_MAT-MBRSH. "INDUSTRIAL SECTOR

PERFORM BDC_FIELD USING 'RMMG1-MTART' WA_MAT-MTART. "MATERIAL TYPE

***FOR SELECTING VIEWS. (SECOND SCREEN)

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0070'.

PERFORM BDC_FIELD USING 'BDC_CURSOR' 'MSICHTAUSW-DYTXT(01)'.

PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(01)' 'X'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTR'.

      • FOR ENTERING BASIC DATA1.

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4004'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'.

PERFORM BDC_FIELD USING 'MAKT-MAKTX' WA_MAT-MAKTX. "MATERIAL DESCRIPTION

PERFORM BDC_FIELD USING 'MARA-MEINS' WA_MAT-MEINS. "BASIC UNIT OF MEASURE

PERFORM BDC_FIELD USING 'MARA-MATKL' WA_MAT-MATKL. "MATERIAL GROUP

ENDLOOP.

ENDFORM. " GETDATA

1 REPLY 1
Read only

Former Member
0 Likes
300

Probably because all of your logic is in the event AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

Try it this way:

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

 PERFORM getfile. "UPLOAD THE FLATFILE AND SAVE IT IN THE INTERNAL TABLE

START-OF-SELECTION.
  PERFORM getdata. "PROCESS BDC
  PERFORM bdcmethod. "TO CALL EITHER SESSION OR CALLTRANSACTION

Rob