Question

Je dois obtenir la liste d'un répertoire côté serveur dans SAP. Comment est-ce que je réalise ceci dans ABAP? Puis-je appeler des fonctions SAP intégrées?

Idéalement, je veux une fonction dans laquelle je peux passer un chemin en entrée et qui renverra une liste de noms de fichiers dans une table interne.

Était-ce utile?

La solution

Après avoir lu les réponses de Chris Carrthers et de Tomdemuyt, je dirais:

1) Utilisez RZL_READ_DIR_LOCAL si vous avez besoin d’une simple liste de noms de fichiers.

2) EPS_GET_DIRECTORY_LISTING est plus puissant: il peut également répertorier les sous-répertoires.

Merci à vous deux!

Cordialement Niki Galanov

Autres conseils

EPS2_GET_DIRECTORY_LISTING fait la même chose que EPS_GET_DIRECTORY_LISTING MAIS renvoie les noms de fichier jusqu'à 200 !

Appelez la fonction 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
*"----------------------------------------------------------------------

Placez le chemin d'accès dans le paramètre d'importation NAME, puis lisez la liste des répertoires à partir de FILE_TBL après son retour.

RZL_READ_DIR_LOCAL peut gérer les chemins locaux normaux ainsi que les chemins UNC.

Le seul inconvénient est qu'il ne vous donne accès qu'aux 32 premiers caractères de chaque nom de fichier. Toutefois, vous pouvez facilement créer une nouvelle fonction basée sur le code RZL_READ_DIR_LOCAL et modifier le mode de lecture de la sortie du programme C, les 187 premiers caractères de chaque nom de fichier étant disponibles.

la réponse appelle le module fonction EPS_GET_DIRECTORY_LISTING. DIR_NAME - > Nom du répertoire FILE_MASK - > Passez '*' pour obtenir tous les fichiers.

Remarque: ceci ne traite pas les noms de fichiers très volumineux (80 caractères +), il tronque le nom.

Jetez un coup d'œil au code source de la transaction AL11: formulaire RSWATCH0 liste_fichiers_fill Vous pouvez y trouver toutes les informations sur les fichiers.

J'espère que ça aide!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top