cancel
Showing results for 
Search instead for 
Did you mean: 

使用t-code :stms 导入程序文件的操作步骤

Former Member
0 Kudos

我想请问一下,在bw中,我已经把程序文件拷贝到指定的文件路径下,通过al11可以查看到,现在是要通过stms导入到系统中,但是对于步骤有些不清楚,请指教。

我知道的是这样的:stms->overview->import->选择目标系统->extras->other request->add->选择请求号->点击确定。

不知道除了上面的这些,还需要什么操作吗?

我是按这样的操作做的,但是导入后发现想要的程序还是没有,但是导入文件好像是成功的,指示符号是变成绿色了,应该是成功的啊。

请指教。

谢谢

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

hi ,Rio Chang

手工import request, 请尝试如下步骤,

1, copy datafile and cofiles 到sap app server \usr\sap\trans\datafiles , \cofiles目录.

2, check authorization for sap admin user <sid>adm.

3, add request using stms.

Extras -- others request -- add ...

4, import request

选择添加的request, 点import request.

5, check tp return code.

如果返回代码8或以上再看看log.

thanks,

xwu.

Edited by: xwu wu on Oct 14, 2009 9:47 AM

Edited by: xwu wu on Oct 14, 2009 9:52 AM

Answers (1)

Answers (1)

Former Member
0 Kudos

给你二个程序,一个是下载传输号到本机,另一个是上传传输号。操作很简单的。

下载传输号:

REPORT YRS_DOWNLOAD_TRANSPORT_REQUEST.

PARAMETERS:

P_REQEST TYPE TRKORR OBLIGATORY,

P_FOLDER(255) TYPE C LOWER CASE, P_SEPR OBLIGATORY.

DATA:

FOLDER TYPE STRING,

RETVAL LIKE TABLE OF DDSHRETVAL WITH HEADER LINE,

FLDVALUE LIKE HELP_INFO-FLDVALUE,

TRANSDIR TYPE TEXT255,

FILENAME(255),

TRFILE(20) TYPE C,

  • datatab TYPE TABLE OF text8192 WITH HEADER LINE,

BEGIN OF DATATAB OCCURS 0,

TEXT(8192) TYPE X,

END OF DATATAB,

LEN TYPE I,

FLEN TYPE I.

TYPE-POOLS: SABC, STMS, TRWBO.

INITIALIZATION.

CONCATENATE SY-SYSID 'K*' INTO P_REQEST.

IF SY-OPSYS = 'Windows NT'.

P_SEPR = '\'.

ELSE.

P_SEPR = '/'.

ENDIF.

  • CALL FUNCTION 'WSAF_BUILD_SEPARATOR'

  • IMPORTING

  • separator = p_sepr

  • EXCEPTIONS

  • separator_not_maintained = 1

  • wrong_call = 2

  • wsaf_config_not_maintained = 3

  • OTHERS = 4.

*

  • IF sy-subrc NE 0.

  • MESSAGE s001(00)

  • WITH

  • 'Unable to find out the separator symbol for the system.'(011).

  • ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_REQEST.

DATA:

TT_SYSTEM TYPE TABLE OF TMSCSYS WITH HEADER LINE,

ES_SELECTED_REQUEST TYPE TRWBO_REQUEST_HEADER,

ES_SELECTED_TASK TYPE TRWBO_REQUEST_HEADER,

IV_ORGANIZER_TYPE TYPE TRWBO_CALLING_ORGANIZER,

IS_SELECTION TYPE TRWBO_SELECTION.

IV_ORGANIZER_TYPE = 'W'. IS_SELECTION-REQSTATUS = 'R'.

CALL FUNCTION 'TR_PRESENT_REQUESTS_SEL_POPUP'

EXPORTING

IV_ORGANIZER_TYPE = IV_ORGANIZER_TYPE

IS_SELECTION = IS_SELECTION

IMPORTING

ES_SELECTED_REQUEST = ES_SELECTED_REQUEST

ES_SELECTED_TASK = ES_SELECTED_TASK.

P_REQEST = ES_SELECTED_REQUEST-TRKORR.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FOLDER.

DATA: TITLE TYPE STRING.

TITLE = 'Select target folder'(005).

CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE

EXPORTING

WINDOW_TITLE = TITLE

CHANGING

SELECTED_FOLDER = FOLDER

EXCEPTIONS

CNTL_ERROR = 1

ERROR_NO_GUI = 2

OTHERS = 3.

CALL FUNCTION 'CONTROL_FLUSH'

EXCEPTIONS

CNTL_SYSTEM_ERROR = 1

CNTL_ERROR = 2

OTHERS = 3.

P_FOLDER = FOLDER.

AT SELECTION-SCREEN ON P_REQEST.

DATA: REQUEST_INFO TYPE STMS_WBO_REQUEST,

REQUEST_INFOS TYPE STMS_WBO_REQUESTS.

REFRESH REQUEST_INFOS.

CALL FUNCTION 'TMS_MGR_READ_TRANSPORT_REQUEST'

EXPORTING

IV_REQUEST = P_REQEST

IV_HEADER_ONLY = 'X'

IMPORTING

ET_REQUEST_INFOS = REQUEST_INFOS

EXCEPTIONS

READ_CONFIG_FAILED = 1

TABLE_OF_REQUESTS_IS_EMPTY = 2

SYSTEM_NOT_AVAILABLE = 3

OTHERS = 4.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CLEAR REQUEST_INFO.

READ TABLE REQUEST_INFOS INTO REQUEST_INFO INDEX 1.

IF SY-SUBRC NE 0

OR REQUEST_INFO-E070-TRKORR IS INITIAL.

MESSAGE E398(00) WITH 'Request'(006) P_REQEST 'not found'(007).

ELSEIF REQUEST_INFO-E070-TRSTATUS NE 'R'.

MESSAGE E398(00)

WITH 'You must release request'(008)

REQUEST_INFO-E070-TRKORR

'before downloading'(009).

ENDIF.

START-OF-SELECTION.

FOLDER = P_FOLDER.

CONCATENATE P_REQEST+3(7) '.' P_REQEST(3) INTO TRFILE.

CALL FUNCTION 'RSPO_R_SAPGPARAM'

EXPORTING

NAME = 'DIR_TRANS'

IMPORTING

VALUE = TRANSDIR

EXCEPTIONS

ERROR = 0

OTHERS = 0.

PERFORM COPY_FILE USING 'cofiles' TRFILE.

TRFILE(1) = 'R'.

PERFORM COPY_FILE USING 'data' TRFILE.

TRFILE(1) = 'D'.

PERFORM COPY_FILE USING 'data' TRFILE.

----


  • FORM copy_file *

----


  • --> SUBDIR * * --> FNAME *

----


FORM COPY_FILE USING SUBDIR FNAME.

DATA:

AUTH_FILENAME TYPE AUTHB-FILENAME,

GUI_FILENAME TYPE STRING.

CONCATENATE TRANSDIR SUBDIR FNAME

INTO FILENAME

SEPARATED BY P_SEPR.

REFRESH DATATAB.

CLEAR FLEN.

AUTH_FILENAME = FILENAME.

CALL FUNCTION 'AUTHORITY_CHECK_DATASET'

EXPORTING

ACTIVITY = SABC_ACT_READ

FILENAME = AUTH_FILENAME

EXCEPTIONS

NO_AUTHORITY = 1

ACTIVITY_UNKNOWN = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

FORMAT COLOR COL_NEGATIVE.

WRITE: / 'Read access denied. File'(001),

FILENAME.

FORMAT COLOR OFF. EXIT.

ENDIF.

OPEN DATASET FILENAME FOR INPUT IN BINARY MODE.

IF SY-SUBRC NE 0.

FORMAT COLOR COL_TOTAL.

WRITE: / 'File open error'(010), FILENAME.

FORMAT COLOR OFF. EXIT.

ENDIF.

CLEAR FLEN.

DATA: MLEN TYPE I.

MLEN = 8192.

DO.

CLEAR LEN.

READ DATASET FILENAME INTO DATATAB MAXIMUM LENGTH MLEN LENGTH LEN.

FLEN = FLEN + LEN.

IF LEN > 0. APPEND DATATAB. ENDIF.

IF SY-SUBRC NE 0.

EXIT.

ENDIF.

ENDDO.

CLOSE DATASET FILENAME.

CONCATENATE P_FOLDER '\' FNAME INTO GUI_FILENAME.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD

EXPORTING

BIN_FILESIZE = FLEN

FILENAME = GUI_FILENAME

FILETYPE = 'BIN'

CHANGING

DATA_TAB = DATATAB[]

EXCEPTIONS

FILE_WRITE_ERROR = 1

NO_BATCH = 2

GUI_REFUSE_FILETRANSFER = 3

INVALID_TYPE = 4

NO_AUTHORITY = 5

UNKNOWN_ERROR = 6

HEADER_NOT_ALLOWED = 7

SEPARATOR_NOT_ALLOWED = 8

FILESIZE_NOT_ALLOWED = 9

HEADER_TOO_LONG = 10

DP_ERROR_CREATE = 11

DP_ERROR_SEND = 12

DP_ERROR_WRITE = 13

UNKNOWN_DP_ERROR = 14

ACCESS_DENIED = 15

DP_OUT_OF_MEMORY = 16

DISK_FULL = 17

DP_TIMEOUT = 18

FILE_NOT_FOUND = 19

DATAPROVIDER_EXCEPTION = 20

CONTROL_FLUSH_ERROR = 21

OTHERS = 24.

IF SY-SUBRC = 0.

WRITE: / 'File'(002), FILENAME, 'downloaded. Length'(003), FLEN.

ELSE.

FORMAT COLOR COL_NEGATIVE.

WRITE: / 'File download error. Filename:'(004), FILENAME.

FORMAT COLOR OFF.

ENDIF.

ENDFORM. "copy_file

Former Member
0 Kudos

上传传输号:

REPORT YRS_UPLOAD_TRANSPORT_REQUEST.

TYPE-POOLS: ABAP, SABC, STMS.

CONSTANTS: GC_TP_FILLCLIENT LIKE STPA-COMMAND VALUE 'FILLCLIENT'.

DATA:

LT_REQUEST TYPE STMS_TR_REQUESTS,

LT_TP_MAINTAIN TYPE STMS_TP_MAINTAINS.

DATA:

SL TYPE I,

L_DATAFILE(255) TYPE C,

DATAFILES TYPE I,

RET TYPE I,

ANS TYPE C.

DATA:

ET_REQUEST_INFOS TYPE STMS_WBO_REQUESTS,

REQUEST_INFO TYPE STMS_WBO_REQUEST,

SYSTEM TYPE TMSCSYS-SYSNAM,

REQUEST LIKE E070-TRKORR.

DATA:

FOLDER TYPE STRING,

RETVAL LIKE TABLE OF DDSHRETVAL WITH HEADER LINE,

FLDVALUE LIKE HELP_INFO-FLDVALUE,

TRANSDIR TYPE TEXT255,

FILENAME LIKE AUTHB-FILENAME,

TRFILE(20) TYPE C.

DATA:

BEGIN OF DATATAB OCCURS 0,

BUF(8192) TYPE X,

END OF DATATAB.

DATA: LEN TYPE I,

FLEN TYPE I.

SELECTION-SCREEN COMMENT /1(79) COMM_SEL.

PARAMETERS:

P_COFILE(255) TYPE C LOWER CASE OBLIGATORY.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME TITLE BL_TITLE.

PARAMETERS:

P_ADDQUE AS CHECKBOX DEFAULT 'X',

P_TARCLI LIKE TMSBUFFER-TARCLI

DEFAULT SY-MANDT

MATCHCODE OBJECT H_T000,

P_SEPR OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B01.

INITIALIZATION.

BL_TITLE = '导入队列参数'(B01).

COMM_SEL = '请选择co-file. 文件名必须以字母''K''开始.'(001).

IF SY-OPSYS = 'Windows NT'.

P_SEPR = '\'.

ELSE.

P_SEPR = '/'.

ENDIF.

    • CALL FUNCTION 'WSAF_BUILD_SEPARATOR'

    • IMPORTING

    • separator = p_sepr

    • EXCEPTIONS

    • separator_not_maintained = 1

    • wrong_call = 2

    • wsaf_config_not_maintained = 3

    • OTHERS = 4.

  • IF sy-subrc NE 0.

  • MESSAGE s001(00) WITH 'Unable to find out the separator symbol for the system.'(008).

  • ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_COFILE.

DATA:

FILE TYPE FILE_TABLE,

RC TYPE I,

TITLE TYPE STRING,

FILE_TABLE TYPE FILETABLE,

FILE_FILTER TYPE STRING VALUE 'CO-files (K.)|K.||'.

TITLE = 'Select CO-file'(006).

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

EXPORTING

WINDOW_TITLE = TITLE

FILE_FILTER = FILE_FILTER

CHANGING

FILE_TABLE = FILE_TABLE

RC = RC

EXCEPTIONS

FILE_OPEN_DIALOG_FAILED = 1

CNTL_ERROR = 2

ERROR_NO_GUI = 3

NOT_SUPPORTED_BY_GUI = 4

OTHERS = 5.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

READ TABLE FILE_TABLE INTO FILE INDEX 1.

P_COFILE = FILE.

AT SELECTION-SCREEN.

DATA:

FILE TYPE STRING.

SL = STRLEN( P_COFILE ).

IF SL < 11.

MESSAGE E001(00)

WITH 'Invalid co-file name format. File name format must be KNNNNNNN.SSS'(009).

ENDIF.

SL = SL - 11.

IF P_COFILE+SL(1) NE 'K'.

MESSAGE E001(00)

WITH 'Invalid co-file name format. File name format must be KNNNNNNN.SSS'(009).

ENDIF.

SL = SL + 1.

IF NOT P_COFILE+SL(6) CO '0123456789'.

MESSAGE E001(00)

WITH 'Invalid co-file name format. File name format must be KNNNNNNN.SSS'(009).

ENDIF.

SL = SL + 6.

IF P_COFILE+SL(1) NE '.'.

MESSAGE E001(00)

WITH 'Invalid co-file name format. File name format must be KNNNNNNN.SSS'(009).

ENDIF.

SL = SL - 7.

CLEAR DATAFILES.

L_DATAFILE = P_COFILE.

L_DATAFILE+SL(1) = 'R'.

FILE = L_DATAFILE.

IF CL_GUI_FRONTEND_SERVICES=>FILE_EXIST( FILE = FILE ) = 'X'.

ADD 1 TO DATAFILES.

ENDIF.

L_DATAFILE+SL(1) = 'D'.

FILE = L_DATAFILE.

IF CL_GUI_FRONTEND_SERVICES=>FILE_EXIST( FILE = FILE ) = 'X'.

ADD 1 TO DATAFILES.

ENDIF.

SL = SL + 8.

REQUEST = P_COFILE+SL(3).

SL = SL - 8.

CONCATENATE REQUEST P_COFILE+SL(7) INTO REQUEST.

TRANSLATE REQUEST TO UPPER CASE.

IF DATAFILES = 0.

MESSAGE E398(00)

WITH 'Corresponding data-files of transport request'(010)

REQUEST

'not found.'(011).

ELSE.

MESSAGE S398(00)

WITH DATAFILES

'data-files have been found for transport request'(012)

REQUEST.

ENDIF.

START-OF-SELECTION.

DATA:

PARAMETER TYPE SPAR,

PARAMETERS TYPE TABLE OF SPAR.

CALL FUNCTION 'RSPO_R_SAPGPARAM'

EXPORTING

NAME = 'DIR_TRANS'

IMPORTING

VALUE = TRANSDIR

EXCEPTIONS

ERROR = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

FILENAME = P_COFILE+SL(11).

TRANSLATE FILENAME TO UPPER CASE.

CONCATENATE TRANSDIR 'cofiles' FILENAME

INTO FILENAME

SEPARATED BY P_SEPR.

OPEN DATASET FILENAME FOR INPUT IN BINARY MODE.

RET = SY-SUBRC.

CLOSE DATASET FILENAME.

IF NOT RET = 0.

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

TEXT_QUESTION = 'Copy all files?'(A03)

IMPORTING

ANSWER = ANS

EXCEPTIONS

TEXT_NOT_FOUND = 1

OTHERS = 2.

ELSE.

PARAMETER-PARAM = 'FILE'.

PARAMETER-VALUE = FILENAME.

APPEND PARAMETER TO PARAMETERS.

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

TEXT_QUESTION = 'File ''&FILE&'' already exists. Rewrite?'(A04)

IMPORTING

ANSWER = ANS

TABLES

PARAMETER = PARAMETERS

EXCEPTIONS

TEXT_NOT_FOUND = 1

OTHERS = 2.

ENDIF.

CHECK ANS = '1'.

TRFILE = P_COFILE+SL(11).

TRANSLATE TRFILE TO UPPER CASE.

PERFORM COPY_FILE USING 'cofiles' TRFILE P_COFILE.

TRFILE(1) = 'R'.

L_DATAFILE+SL(1) = 'R'.

PERFORM COPY_FILE USING 'data' TRFILE L_DATAFILE.

IF DATAFILES > 1.

TRFILE(1) = 'D'.

L_DATAFILE+SL(1) = 'D'.

PERFORM COPY_FILE USING 'data' TRFILE L_DATAFILE.

ENDIF.

IF P_ADDQUE = 'X'.

SYSTEM = SY-SYSID.

DO 1 TIMES.

  • Check authority to add request to the import queue

CALL FUNCTION 'TR_AUTHORITY_CHECK_ADMIN'

EXPORTING

IV_ADMINFUNCTION = 'TADD'

EXCEPTIONS

E_NO_AUTHORITY = 1

E_INVALID_USER = 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.

EXIT.

ENDIF.

CALL FUNCTION 'TMS_UI_APPEND_TR_REQUEST'

EXPORTING

IV_SYSTEM = SYSTEM

IV_REQUEST = REQUEST

IV_EXPERT_MODE = 'X'

IV_CTC_ACTIVE = 'X'

EXCEPTIONS

CANCELLED_BY_USER = 1

APPEND_REQUEST_FAILED = 2

OTHERS = 3.

CHECK SY-SUBRC = 0.

CALL FUNCTION 'TMS_MGR_READ_TRANSPORT_REQUEST'

EXPORTING

IV_REQUEST = REQUEST

IV_TARGET_SYSTEM = SYSTEM

IMPORTING

ET_REQUEST_INFOS = ET_REQUEST_INFOS

EXCEPTIONS

READ_CONFIG_FAILED = 1

TABLE_OF_REQUESTS_IS_EMPTY = 2

SYSTEM_NOT_AVAILABLE = 3

OTHERS = 4.

CLEAR REQUEST_INFO.

READ TABLE ET_REQUEST_INFOS INTO REQUEST_INFO INDEX 1.

IF REQUEST_INFO-E070-KORRDEV = 'CUST'

AND NOT P_TARCLI IS INITIAL.

CALL FUNCTION 'TMS_MGR_MAINTAIN_TR_QUEUE'

EXPORTING

IV_COMMAND = GC_TP_FILLCLIENT

IV_SYSTEM = SYSTEM

IV_REQUEST = REQUEST

IV_TARCLI = P_TARCLI

IV_MONITOR = 'X'

IV_VERBOSE = 'X'

IMPORTING

ET_TP_MAINTAINS = LT_TP_MAINTAIN

EXCEPTIONS

READ_CONFIG_FAILED = 1

TABLE_OF_REQUESTS_IS_EMPTY = 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.

EXIT.

ENDIF.

ENDIF.

  • Check authority to start request import

CALL FUNCTION 'TR_AUTHORITY_CHECK_ADMIN'

EXPORTING

IV_ADMINFUNCTION = 'IMPS'

EXCEPTIONS

E_NO_AUTHORITY = 1

E_INVALID_USER = 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.

EXIT.

ENDIF.

CALL FUNCTION 'TMS_UI_IMPORT_TR_REQUEST'

EXPORTING

IV_SYSTEM = SYSTEM

IV_REQUEST = REQUEST

IV_TARCLI = P_TARCLI

IV_SOME_ACTIVE = SPACE

EXCEPTIONS

CANCELLED_BY_USER = 1

IMPORT_REQUEST_DENIED = 2

IMPORT_REQUEST_FAILED = 3

OTHERS = 4.

ENDDO.

ENDIF.

&----


*& Form copy_file

&----


  • text

----


  • -->SUBDIR text

  • -->FNAME text

  • -->SOURCE_FILEtext

----


FORM COPY_FILE USING SUBDIR FNAME SOURCE_FILE.

DATA: L_FILENAME TYPE STRING.

L_FILENAME = SOURCE_FILE.

CONCATENATE TRANSDIR SUBDIR FNAME

INTO FILENAME

SEPARATED BY P_SEPR.

REFRESH DATATAB.

CLEAR FLEN.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD

EXPORTING

FILENAME = L_FILENAME

FILETYPE = 'BIN'

IMPORTING

FILELENGTH = FLEN

CHANGING

DATA_TAB = DATATAB[]

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_READ_ERROR = 2

NO_BATCH = 3

GUI_REFUSE_FILETRANSFER = 4

INVALID_TYPE = 5

NO_AUTHORITY = 6

UNKNOWN_ERROR = 7

BAD_DATA_FORMAT = 8

HEADER_NOT_ALLOWED = 9

SEPARATOR_NOT_ALLOWED = 10

HEADER_TOO_LONG = 11

UNKNOWN_DP_ERROR = 12

ACCESS_DENIED = 13

DP_OUT_OF_MEMORY = 14

DISK_FULL = 15

DP_TIMEOUT = 16

NOT_SUPPORTED_BY_GUI = 17

ERROR_NO_GUI = 18

OTHERS = 19.

IF SY-SUBRC NE 0.

WRITE: / 'Error uploading file'(003), L_FILENAME.

EXIT.

ENDIF.

CALL FUNCTION 'AUTHORITY_CHECK_DATASET'

EXPORTING

ACTIVITY = SABC_ACT_WRITE

FILENAME = FILENAME

EXCEPTIONS

NO_AUTHORITY = 1

ACTIVITY_UNKNOWN = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

FORMAT COLOR COL_NEGATIVE.

WRITE: / 'Write access denied. File'(013), FILENAME.

FORMAT COLOR OFF.

EXIT.

ENDIF.

OPEN DATASET FILENAME FOR OUTPUT IN BINARY MODE.

IF SY-SUBRC NE 0.

WRITE: / 'File open error'(004), TRFILE.

EXIT.

ENDIF.

LOOP AT DATATAB.

IF FLEN <= 8192.

LEN = FLEN.

ELSE.

LEN = 8192.

ENDIF.

TRANSFER DATATAB-BUF TO FILENAME LENGTH LEN.

FLEN = FLEN - LEN.

ENDLOOP.

CLOSE DATASET FILENAME.

WRITE: / 'File'(005), TRFILE, 'uploaded'(007).

ENDFORM. "copy_file

Former Member
0 Kudos

楼上的兄台,能不能把你的源码以附件方式发上来。上面排版实在难整理。

Former Member
0 Kudos