‎2008 Feb 11 5:18 AM
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
‎2008 Feb 11 9:59 PM
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