`

SAP操作windows文件(CL_GUI_FRONTEND_SERVICES)

    博客分类:
  • abap
阅读更多
ABAP程序中文件Check通常用到的模块
===========================================================
文件存在,路经,文件名,指定打开的文件,指定写入的文件。

对于文件的CHECK

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_EXIST

EXPORTING

FILE = LW_FILE

RECEIVING

RESULT = LW_RESULT

EXCEPTIONS

CNTL_ERROR = 1

ERROR_NO_GUI = 2

WRONG_PARAMETER = 3

NOT_SUPPORTED_BY_GUI = 4

OTHERS = 5.

方法调用是否成功判定:(例如:输入不合法)

IF SY-SUBRC <> 0.

SET CURSOR FIELD 'P_UPFILE'. "カーソルをセット

*----- システムメッセージ出力

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

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

ENDIF.

 

文件存在判定:

*----- チェック結果判定

IF LW_RESULT <> CNS_TRUE. "ファイル存在しない

SET CURSOR FIELD 'P_UPFILE'. "カーソルをセット

*----- MSG: アップロードファイル &1 は存在しません

MESSAGE E116(ZNKCC1) WITH P_UPFILE.

ENDIF.

分割文件路径和文件名:

CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'

EXPORTING

FULL_NAME = P_ERFILE

IMPORTING

STRIPPED_NAME = W_FILE “文件名

FILE_PATH = P_O_PATH “路径

EXCEPTIONS

X_ERROR = 1

OTHERS = 2.

 

对上面分割得到的路径进行检查:

CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_EXIST

EXPORTING

DIRECTORY = LW_PATH

RECEIVING

RESULT = LW_RESULT

EXCEPTIONS

CNTL_ERROR = 1

ERROR_NO_GUI = 2

WRONG_PARAMETER = 3

NOT_SUPPORTED_BY_GUI = 4

OTHERS = 5.

 

方法调用是否成功判定:(例如:输入不合法)

IF SY-SUBRC <> 0.

SET CURSOR FIELD 'P_ERFILE'. "カーソルをセット

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

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

ENDIF.

该路径目录存在判定:

*----- 結果情報判定

IF LW_RESULT <> CNS_TRUE. "パス存在しない時

SET CURSOR FIELD 'P_ERFILE'. "カーソルをセット

*----- MSG: エラーファイルのディレクトリ &1 は存在しません

MESSAGE E152(ZNKCC1) WITH P_I_PATH.

ENDIF.

************************************************************************************

文件的F4help

(在AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_UPFILE事件下)

指定要打开或者取得数据的文件地址:

*----- アップロードファイルの検索ヘルプ

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

EXPORTING

WINDOW_TITLE = LW_TITLE "ファイル選択

CHANGING

FILE_TABLE = LTD_FILE

RC = LW_RETURN "リターン値

USER_ACTION = LW_ACTION "動作結果

EXCEPTIONS

FILE_OPEN_DIALOG_FAILED = 1

CNTL_ERROR = 2

ERROR_NO_GUI = 3

NOT_SUPPORTED_BY_GUI = 4

OTHERS = 5.

 

*----- リターンコード判定

IF SY-SUBRC <> 0. "メソッド失敗時

SET CURSOR FIELD 'P_UPFILE'. "カーソルをセット

*----- システムメッセージ出力

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

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

RETURN.

ENDIF.

 

*----- 結果情報判定

IF LW_RETURN < 0.

RETURN. "選択画面へ戻る

ENDIF.

 

*----- 結果情報判定

IF LW_ACTION = 0.

*----- [選択ファイルテーブル]の1件目を[アップロードファイル名]設定

READ TABLE LTD_FILE INTO LTH_FILE INDEX 1.

*----- リターンコード判定

IF SY-SUBRC = 0.

P_UPFILE = LTH_FILE-FILENAME.

ENDIF.

ENDIF.

 

指定数据保存的文件地址:

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_ERFILE事件下。

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG

EXPORTING

WINDOW_TITLE = LW_TITLE "エラー出力ファイル選択

CHANGING

FILENAME = LW_FILENAME "ファイル名

PATH = LW_PATH "パース名

FULLPATH = LW_FULLPATH "ファイルパース名

USER_ACTION = LW_ACTION "動作結果

EXCEPTIONS

CNTL_ERROR = 1

ERROR_NO_GUI = 2

NOT_SUPPORTED_BY_GUI = 3

OTHERS = 4.

 

*----- リターンコード判定

IF SY-SUBRC <> 0. "CALL メソッド失敗時

SET CURSOR FIELD 'P_ERFILE'. "カーソルをセット

*----- システムメッセージ出力

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

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

RETURN. "選択画面へ戻る

ENDIF.

 

*----- 結果情報判定

IF LW_ACTION = 0.

*----- [ファイルパース名]を[選択画面-エラーファイル名]に設定する

P_ERFILE = LW_FULLPATH.

ENDIF.

---------------------------------华丽分割--------------------------------------

SAP操作windows文件(CL_GUI_FRONTEND_SERVICES)

下面的类可以对文件夹和文件进行操作:
CL_GUI_FRONTEND_SERVICES
这个类下面的方法均为静态方法,引用的时候以=>来引用方法

 

1:创建文件夹
参数说明:RC为返回码类型为sy-subrc。
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_CREATE
EXPORTING
DIRECTORY = 'E:\TESTDIR'
CHANGING
RC = RC.

2.文件夹的删除
下面方法删除E盘下TESTDIR文件夹
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_DELETE
EXPORTING
DIRECTORY = 'E:\TESTDIR'
CHANGING
RC = RC.

3.目录选择框
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE
EXPORTING
WINDOW_TITLE = '选择目录'
INITIAL_FOLDER = 'D:\'
CHANGING
SELECTED_FOLDER = DIRPATH."该参数为string类型


其中exporting下面的参数均为可选。可以注释掉。

 

 

以下对该类下的方法不做详细举例,只做剪短说明。

 

DIRECTORY_EXIST 检查指定的目录文件夹是否存在


DIRECTORY_GET_CURRENT 返回当前所在路径(个人感觉不好用)


DIRECTORY_LIST_FILES 枚举指定目录下的文件及其文件夹。其中FILE_TABLE参数为FILE_INFO类型的标准表,无表头


DIRECTORY_SET_CURRENT 设置当前活动目录(不建议使用)

EXECUTE 执行windows程序或打开windows下文件夹


FILE_COPY 文件的复制


FILE_DELETE 删除一个文件


FILE_EXIST 判断指定文件是否存在


FILE_GET_ATTRIBUTES 取得指定文件的属性(只读,隐藏,Normal,active)


FILE_GET_SIZE 返回文件大小(不好用啊)


FILE_SET_ATTRIBUTES 设置文件的属性


GET_COMPUTER_NAME 获取计算机名称


GET_DESKTOP_DIRECTORY 获取桌面所在目录


GET_DRIVE_FREE_SPACE_MEGABYTE 获取磁盘可用空间单位MB


GET_DRIVE_TYPE 获得磁盘类型(不好用)


GET_GUI_VERSION 获得gui的版本


GET_IP_ADDRESS 获取当前主机的IP地址


GET_PLATFORM 返回操作系统版本


GET_SAPGUI_WORKDIR 返回SAP GUI工作目录


GET_SAPLOGON_ENCODING 获取SAP登陆的代码页


GET_SYSTEM_DIRECTORY 获得系统目录


GET_TEMP_DIRECTORY 获取TEMP目录


GET_UPLOAD_DOWNLOAD_PATH 获得上传和下载文件的路径

GET_USER_NAME 获得用户名


GET_WINDOWS_DIRECTORY 取得windows目录路径


IS_TERMINAL_SERVER 检查GUI是否在终端服务器上运行


REGISTRY_DELETE_KEY 删除注册KEY


REGISTRY_DELETE_VALUE 删除注册key值

分享到:
评论

相关推荐

    ABAP常用函数

    提供用户界面交互功能,前者用于请求用户确认关键操作,后者则展示一系列选项供用户选择,增强了应用程序的交互性和决策支持能力。 #### ABAP_DOCU_DOWNLOAD:下载ABAP文档 允许以HTML格式下载ABAP系统的文档资料...

    How to download an image from SAP to my PC_SAP_ABAPSAPIMAGEEXCEL

    这可以通过调用ABAP函数模块`CL_GUI_CFW-&gt;CONVERT_TO_JPEG`或`CL_GUI_FRONTEND_SERVICES=&gt;GUI_DOWNLOAD`完成,将二进制数据转化为适合浏览器或Excel识别的格式。 4. **创建Excel导出**: SAP提供了多种方法将数据...

    SAP函数大全.doc

    CL_GUI_FRONTEND_SERVICES=&gt;GUI_UPLOAD:上传到服务器。 CL_GUI_FRONTEND_SERVICES=&gt;GUI_DOWNLOAD:下载到本地。 这些函数可以帮助开发者更方便地实现文件上传下载操作。 4. 报表输出函数 SSF_FUNCTION_MODULE_...

    生成XML文件ABAP程序

    示例代码中使用`l_xml_size = l_ostream-&gt;get_num_written_raw()`获取了输出流中已写入的原始数据大小,并通过调用`cl_gui_frontend_services=&gt;gui_download`方法将XML数据下载到客户端指定的路径。 ### 总结 以上...

    ABAP常用函数集锦

    CL_GUI_FRONTEND_SERVICES=&gt;GUI_UPLOAD:上传到服务器。 CL_GUI_FRONTEND_SERVICES=&gt;GUI_DOWNLOAD:下载到本地。 数据库处理 READ_TEXT:读取长文本。 SD_VBAP_READ_WITH_VBELN:根据销售订单读取表VBAP中的信息...

    SAP ABAP OLE 操作EXCEL小结

    在下载 EXCEL 模板时,需要调用保存对话框,使用 cl_gui_frontend_services=&gt;file_save_dialog 函数。该函数用于弹出保存对话框,选择保存路径和文件名。 错误处理 在下载 EXCEL 模板时,可能会出现错误信息。如果...

    ABAP中怎样使用上传到服务器上的excle模板处理打印程序[借鉴].pdf

    这段代码首先定义了必要的变量,然后通过`cl_gui_frontend_services=&gt;file_exist`方法检查模板文件是否存在。如果不存在,它会调用`DOWNLOAD_WEB_OBJECT`函数模块来下载模板。注意,如果下载失败,程序会抛出错误...

    ABAP 郵件(附件)發送

    这通常通过 `CONVERT_TO_BINARY_DATA` 函数模块或 `CL_GUI_FRONTEND_SERVICES` 类的 `GUI_DOWNLOAD` 方法实现。将内表数据写入二进制流,然后以文件形式附加到邮件中。 4. **定时任务(JOB)**: 要实现定时发送邮件...

    ABAP report报表文件上传下载

    - **文件对话框**:使用`CL_GUI_FRONTEND_SERVICES=&gt;FILE_SAVE_DIALOG`方法打开文件保存对话框,让用户选择文件保存的位置和名称。 - **文件下载**:通过`CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'`函数从文件服务器上...

    ABAP 常用函数如日期等

    cl_gui_frontend_services=&gt;gui_upload / gui_download 这两个方法分别用于上传和下载文件。 **应用场景:** - 在用户界面上实现文件的上传下载功能。 - 支持用户与服务器之间的文件交互需求。 #### 23. SSF_...

    sap abap举例大全

    这通常通过`CL_GUI_FRONTEND_SERVICES`类的相关方法完成。 11. **Secondary List using ALV Grid**: 二次列表(secondary list)是ALV的一个高级特性,允许用户在一个主列表的基础上,根据选择的数据项显示附加信息...

    ABAP 常用功能eg emai send & post & 钉钉&微信发送&长文本读取&大数据导出

    5. **大数据导出**:在处理大数据时,ABAP提供多种工具,如`CL_BCS`(Business Communication Services)用于生成Excel文件,或者`CL_GUI_FRONTEND_SERVICES`类的`DOWNLOAD_FILE`方法进行文件下载。对于大规模数据,...

    SAP ABAP函数集锦

    cl_gui_frontend_services=&gt;gui_upload / gui_download 图形用户界面服务类中的上传和下载方法,用于文件传输,增强了应用程序的文件管理能力。 ### 22. SSF_FUNCTION_MODULE_NAMESMARTFORMS 调用SmartForms功能...

    SAP常用函数

    15. cl_gui_frontend_services:这是一个类,包含如GUI_UPLOAD和GUI_DOWNLOAD这样的方法,分别用于从服务器上传文件和下载到本地。 16. ABAP_DOCU_DOWNLOAD:允许以HTML格式下载ABAP文档,便于离线查阅或存档。 17...

    T-CODE SMWO模板上传与下载.docx

    然后,我们使用 cl_gui_frontend_services=&gt;file_exist 方法来检查文件是否存在,如果文件存在,系统将下载模板。 在 frm_download_template 表单中,我们使用 OLE 变量来实现模板下载。下面是一个简单的示例代码:...

    abap4常用函数

    21. **cl_gui_frontend_services=&gt;gui_upload** 和 **cl_gui_frontend_services=&gt;gui_download**: 分别用于将文件上传到服务器和从服务器下载文件到本地。 22. **POPUP_TO_DECIDE_LIST**: 弹出一个列表供用户选择,...

    ABAP+函数总结+常用函数解释[借鉴].pdf

    17. cl_gui_frontend_services=&gt;gui_upload 和 gui_download:分别用于上传文件到服务器和从服务器下载文件到本地。 18. ARFC_GET_TID:获取终端的IP地址,用于网络通信和调试。 19. BAL_*:一组与SAP应用程序日志...

    SAPABAPDMS文档管理开发.doc

    - 使用`CALL METHOD cl_gui_frontend_services=&gt;file_open_dialog`打开文件选择对话框,让用户选择要上传的文件,文件信息存储在`lt_filetable`中。 - 数据结构`ls_documentdata`和`ls_documentdatax`(或`bapi_...

    abap编程常用函数

    26. CL_GUI_FRONTEND_SERVICES=&gt;GUI_DOWNLOAD:下载到服务器。 该函数用于下载文件到服务器,用于控制文件的交互行为。 27. SSF_FUNCTION_MODULE_NAME:SMARTFORMS输出报表时,生成一个函数名称,然后CALL这个名称...

    ABAP 函数总结 常用函数解释.doc

    21. cl_gui_frontend_services=&gt;gui_upload / gui_download:这两个全局类的方法分别用于文件上传到服务器和从服务器下载到本地。 22. ARFC_GET_TID:获取终端的IP地址,以十六进制形式表示。 23. BAL_*:一组与...

Global site tag (gtag.js) - Google Analytics