SAP ABAPのサーバー側ディレクトリの内容を取得します
-
02-07-2019 - |
質問
SAP内のサーバー側ディレクトリのリストを取得する必要があります。 ABAPでこれを達成するにはどうすればよいですか?呼び出すことができる組み込みSAP関数はありますか?
理想的には、入力としてパスを渡すことができ、内部テーブルにファイル名のリストを返す関数が必要です。
解決
Chris Carrthersとtomdemuytの答えを読んだ後、私は言うでしょう:
1)ファイル名の単純なリストが必要な場合は、RZL_READ_DIR_LOCALを使用します。
2)EPS_GET_DIRECTORY_LISTINGはより強力です-サブディレクトリをリストすることもできます。
ありがとうございます!
よろしく ニキ・ガラノフ
他のヒント
EPS2_GET_DIRECTORY_LISTING
は EPS_GET_DIRECTORY_LISTING
と同じことを行いますが、最大 200 文字までのファイル名を返します!
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
*"----------------------------------------------------------------------
NAMEインポートパラメータにパスを配置し、戻った後にFILE_TBLからディレクトリリストを読み取ります。
RZL_READ_DIR_LOCALは、通常のローカルパスとUNCパスを処理できます。
唯一の欠点は、各ファイル名の最初の32文字にしかアクセスできないことです。ただし、RZL_READ_DIR_LOCALコードに基づいて新しい関数を簡単に作成し、各ファイル名の最初の187文字が実際に使用できるため、Cプログラム出力の読み取り方法を変更できます。
答えは、汎用モジュールEPS_GET_DIRECTORY_LISTINGの呼び出しです。 DIR_NAME->ディレクトリの名前 FILE_MASK->すべてのファイルを取得するには「*」を渡します。
注:これは本当に大きなファイル名(80文字以上)を処理せず、名前を切り捨てます。
トランザクションAL11ソースコードを見てください:RSWATCH0フォーム fill_file_list
ファイルに関するすべての情報を取得できます。
これがお役に立てば幸いです!