質問

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 ファイルに関するすべての情報を取得できます。

これがお役に立てば幸いです!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top