Sei sulla pagina 1di 4

DATA: BDCDATA TYPE TABLE OF BDCDATA WITH HEADER LINE.

DATA: BDCDATA2 TYPE TABLE OF BDCDATA WITH HEADER LINE.


start-of-selection.
DATA:SESSION_NAME(12) TYPE C.
SESSION_NAME = 'MANUPROG24'.
DATA: D TYPE D.
D = SY-DATUM.
DATA: T TYPE T.
T = SY-UZEIT.
""READING THE VALUE FROM THE SM35
DATA: APQI TYPE TABLE OF APQI WITH HEADER LINE.
CALL FUNCTION 'BDC_OBJECT_SELECT'
EXPORTING
NAME
= SESSION_NAME
DATATYPE
= 'BDC'
CLIENT
= SY-MANDT
DATE_FROM
= D
DATE_TO
= D
* TIME_FROM
= T
* TIME_TO
=
QSTATE
= ''
* SESSION_CREATOR
= '*'
TABLES
APQITAB
= APQI
* GROUPSEL
=
EXCEPTIONS
INVALID_DATATYPE
= 1
OTHERS
= 2.
READ TABLE APQI INDEX 1.
*BREAK-POINT.
**SUBMIT rsbdcbtc
**
TO SAP-SPOOL
**
DESTINATION space
**
IMMEDIATELY space
**
KEEP IN SPOOL space
**
WITHOUT SPOOL DYNPRO
***
USER session_NAME-userid
**
WITH queue_id EQ APQI-QID
**
WITH modus
EQ 'N'
**
WITH logall
EQ 'X' " Extended Log
**
WITH ERRFEND EQ 'X'
**
AND RETURN.
*SUBMIT RSBDCBTC WITH QUEUE_ID EQ APQI-QID AND RETURN.
*BREAK-POINT.
*SUBMIT RSBDCBDC WITH MAPPE EQ SESSION_NAME WITH VON EQ D WITH Z_VERARB EQ 'X'.
DATA:
DATA:
DATA:
DATA:

FILENAME TYPE STRING.


PATH TYPE STRING.
FULLPATH TYPE STRING.
USERACTION TYPE I.

"""GETTING THE PATH FROM THE USER.


CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE
= 'WHERE DO YOU WANT SAVE THE FILE'
*
DEFAULT_EXTENSION
=
*
DEFAULT_FILE_NAME
=

*
*
*
*

WITH_ENCODING
FILE_FILTER
INITIAL_DIRECTORY
PROMPT_ON_OVERWRITE
CHANGING
FILENAME
PATH
FULLPATH
USER_ACTION
*
FILE_ENCODING
EXCEPTIONS
CNTL_ERROR
ERROR_NO_GUI
NOT_SUPPORTED_BY_GUI
others
.
IF USERACTION EQ '0'.

=
=
=
= 'X'
=
=
=
=

FILENAME
PATH
FULLPATH
USERACTION
=

=
=
=
=

1
2
3
4

perform bdc_dynpro2
perform bdc_field2

using 'SAPMSBDC_CC' '1000'.


using 'BDC_OKCODE'
'=STA'.
perform bdc_field2
using 'D0100-MAPN'
'*'.
perform bdc_field2
using 'D0100-CREATOR'
'*'.
perform bdc_field2
using 'BDC_CURSOR'
'ITAB_APQI-GROUPID(01)'.
perform bdc_field2
using 'TC_MARK(01)'
'X'.
perform bdc_dynpro2
using 'SAPMSBDC_CC' '0300'.
perform bdc_field2
using 'BDC_CURSOR'
'D0300-BATCH'.
perform bdc_field2
using 'BDC_OKCODE'
'=ABSP'.
perform bdc_field2
using 'D0300-HELL'
''.
perform bdc_field2
using 'D0300-BATCH'
'X'.
perform bdc_field2
using 'D0300-DYDEFSIZE'
'X'.
CALL TRANSACTION 'SM35' USING BDCDATA2 MODE 'N'.
""""
IF SY-SUBRC EQ '0'.
WAIT UP TO 10 SECONDS.
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field

using 'SAPMSBDC_CC' '1000'.


using 'BDC_OKCODE'
'=ANAQ'.
using 'D0100-MAPN'
'*'.
using 'D0100-CREATOR'
'*'.
using 'BDC_CURSOR'
'ITAB_APQI-GROUPID(01)'.
using 'TC_MARK(01)'
'X'.
using 'RSBDC_PROTOCOL' '0100'.
using 'BDC_OKCODE'
'=PICK'.
using 'BDC_CURSOR'

'LIST_BDCLD-EDATE(01)'.
using 'TC_MARK(01)'
'X'.
perform bdc_dynpro
using 'RSBDC_PROTOCOL' '1400'.
perform bdc_field
using 'BDC_CURSOR'
'TXT-GRPN'.
perform bdc_field
using 'BDC_OKCODE'
'=PRI'.
*******perform bdc_dynpro
using 'SAPMSSY0' '0120'.
*******perform bdc_field
using 'BDC_OKCODE'
*******
'=&ILT'.
*******perform bdc_dynpro
using 'SAPLSKBH' '0830'.
*******perform bdc_field
using 'BDC_CURSOR'
*******
'GT_FIELD_LIST-SELTEXT(08)'.
*******perform bdc_field
using 'BDC_OKCODE'
*******
'=WLSE'.
*******perform bdc_field
using 'GT_FIELD_LIST-MARK(08)'
*******
'X'.
*******perform bdc_dynpro
using 'SAPLSKBH' '0830'.
*******perform bdc_field
using 'BDC_CURSOR'
*******
'GT_WRITE_LIST-SELTEXT(01)'.
*******perform bdc_field
using 'BDC_OKCODE'
*******
'=CONT'.
*******perform bdc_field
using 'GT_WRITE_LIST-MARK(01)'
*******
'X'.
*******perform bdc_dynpro
using 'SAPLSSEL' '1104'.
*******perform bdc_field
using 'BDC_OKCODE'
*******
'=CRET'.
*******perform bdc_field
using 'BDC_CURSOR'
*******
'%%DYN001-LOW'.
*******perform bdc_field
using '%%DYN001-LOW'
*******
'E'.
perform bdc_dynpro
using 'SAPMSSY0' '0120'.
perform bdc_field
using 'BDC_OKCODE'
'=%PC'.
perform bdc_dynpro
using 'SAPLSPO5' '0101'.
perform bdc_field
using 'BDC_CURSOR'
'SPOPLI-SELFLAG(02)'.
perform bdc_field
using 'BDC_OKCODE'
'=OK'.
perform bdc_field
using 'SPOPLI-SELFLAG(01)'
''.
perform bdc_field
using 'SPOPLI-SELFLAG(02)'
'X'.
perform bdc_dynpro
using 'SAPLSFES' '0200'.
perform bdc_field
using 'BDC_CURSOR'
'DY_FILENAME'.
perform bdc_field
using 'BDC_OKCODE'
'=FILE'.
perform bdc_field
using 'DY_PATH'
PATH.
perform bdc_field
using 'DY_FILENAME'
FILENAME.
perform bdc_dynpro
using 'SAPMSSY0' '0120'.
perform bdc_field
using 'BDC_OKCODE'
'=&F03'.
perform bdc_dynpro
using 'RSBDC_PROTOCOL' '1400'.
perform bdc_field
using 'BDC_CURSOR'
'TXT-GRPN'.
CALL TRANSACTION 'SM35' USING BDCDATA MODE 'N'.
perform bdc_field

ENDIF.
ELSE.
MESSAGE 'USER HAS CANCELLED THE OPERATION' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
*----------------------------------------------------------------------*
*
Start new screen
*
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
*----------------------------------------------------------------------*
*
Insert field
*
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.

*----------------------------------------------------------------------*
*
Start new screen
*
*----------------------------------------------------------------------*
FORM BDC_DYNPRO2 USING PROGRAM DYNPRO.
CLEAR BDCDATA2.
BDCDATA2-PROGRAM = PROGRAM.
BDCDATA2-DYNPRO = DYNPRO.
BDCDATA2-DYNBEGIN = 'X'.
APPEND BDCDATA2.
ENDFORM.
*----------------------------------------------------------------------*
*
Insert field
*
*----------------------------------------------------------------------*
FORM BDC_FIELD2 USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR BDCDATA2.
BDCDATA2-FNAM = FNAM.
BDCDATA2-FVAL = FVAL.
APPEND BDCDATA2.
ENDIF.
ENDFORM.

Potrebbero piacerti anche