2008-09-30 106 views
6

我需要獲取SAP內服務器端目錄的列表。我如何在ABAP中實現這一點?我可以調用任何內置的SAP功能嗎?獲取SAP ABAP中服務器端目錄的內容

理想情況下,我想要一個函數,我可以傳遞一個路徑作爲輸入,並將返回一個內部表中的文件名列表。

回答

3

閱讀克里斯Carrthers的答案後tomdemuyt我會說:

1)使用RZL_READ_DIR_LOCAL,如果你需要的文件名的簡單列表。

2)EPS_GET_DIRECTORY_LISTING功能更強大 - 它也可以列出子目錄。

謝謝你們兩位!

與問候 尼基Galanov

+1

EPS_GET_DIRECTORY_LISTING的缺點是您需要相當廣泛的SAP授權,因爲它是傳輸系統(TMS)的一部分,通常只授予管理員。 – Marc 2017-02-15 13:22:39

2

答案是調用函數模塊EPS_GET_DIRECTORY_LISTING。 DIR_NAME - >目錄名稱 FILE_MASK - >通過'*'獲取所有文件。

注意:這不涉及真正大的文件名(80個字符+),它會截斷名稱。

+0

謝謝,我不知道那個函數,但它似乎不適用於我需要的UNC路徑。 – 2008-10-03 00:52:47

3

通話功能RZL_READ_DIR_LOCAL:

FUNCTION RZL_READ_DIR_LOCAL. 
*"---------------------------------------------------------------------- 
*"Lokale Schnittstelle: 
*"  IMPORTING 
*"    NAME LIKE SALFILE-LONGNAME 
*"  TABLES 
*"    FILE_TBL STRUCTURE SALFLDIR 
*"  EXCEPTIONS 
*"    ARGUMENT_ERROR 
*"    NOT_FOUND 
*"---------------------------------------------------------------------- 

放置在名稱輸入參數的路徑,然後讀取FILE_TBL上市返回後的目錄。

RZL_READ_DIR_LOCAL可以處理普通本地路徑以及UNC路徑。

唯一的缺點是它只允許你訪問每個文件名的前32個字符。但是,您可以根據RZL_READ_DIR_LOCAL代碼輕鬆創建新函數,並更改C程序輸出的讀取方式,因爲每個文件名的前187個字符實際可用。

+0

這是否讀取服務器或客戶端上的目錄? DIR_LOCAL聽起來像它是客戶特定的... – Thorsten 2008-10-09 20:18:50

1

看看交易AL11源代碼:RSWATCH0表fill_file_list 在那裏你可以得到關於文件的所有信息。

希望這會有所幫助!

3

EPS2_GET_DIRECTORY_LISTING做同樣的事情,但EPS_GET_DIRECTORY_LISTING的retunrs文件名多達字符!