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.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8356764/viewspace-971452/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python–模組之os操作檔案模組Python
- 核心模組建立檔案
- 如何使用 ABAP 程式碼解析 XML 檔案XML
- Rust 模組和檔案 - [譯]Rust
- Python OS模組操作檔案Python
- Python入門(二十六):檔案模組(os模組與shutil模組)Python
- SpringBoot多模組專案中無法注入其他模組中的spring beanSpring BootBean
- 在Linux中,日誌檔案通常儲存在哪些目錄?Linux
- 利用xlrd模組在Django專案中實現Excel檔案匯入DjangoExcel
- 一個工程的多個模組中的一個模組打包成jar在轉為.exe可執行檔案JAR
- python常用標準庫(os系統模組、shutil檔案操作模組)Python
- 【python3】匯入zip 檔案裡的模組Python
- 05_Node js 檔案管理模組 fsJS
- 如何查詢Authorization object在哪些ABAP程式碼裡使用到Object
- objective-C 的程式碼檔案組織Object
- Python使用os模組、Try語句、pathlib模組判斷檔案是否存在Python
- 在 CMD 執行 python 檔案,找不到引入的模組Python
- jpg檔案通常是什麼 一般什麼叫jpg檔案
- Markdown 中包裹短程式碼模組
- SAP MM 模組的入門者,想學習 ABAP 程式語言應該如何入手?
- 實用程式包utils - 基於Rollup打包輸出各模組檔案(二)
- Erlang那些事兒第2回之我是模組(module),一檔案一模組
- ABAP面試題系列:寫一組會出現死鎖(Deadlock)的ABAP程式面試題
- vue中經常要用到的程式碼Vue
- SQLAlchemy - 模組檔案以及增刪改查(CURD操作)SQL
- 軌跡聯邦用到的具體公式 + 軌跡模組的設計公式
- Swift 專案的模組化Swift
- Spring按業務模組輸出日誌到不同的檔案Spring
- Python的configparser模組讀取.ini檔案內容並輸出Python
- FPGA晶片通常是如何運用到人工智慧/機器學習解決方案中?FPGA晶片人工智慧機器學習
- python中的chardet模組Python
- Python中模組的使用Python
- JavaScript 中的模組化JavaScript
- Python中的abc模組Python
- Nodejs中的stream模組NodeJS
- Python|讀、寫Excel檔案(三種模組三種方式)PythonExcel
- Python–logging模組不同級別寫入到不同檔案Python
- 基礎補充:使用xlrd模組讀取excel檔案Excel
- SAP WM中階Storage Type的Capacity Check – Usage check based on SUT