Domanda

Devo ottenere un elenco di una directory sul lato server all'interno di SAP. Come ottengo questo in ABAP? Esistono funzioni SAP integrate che posso chiamare?

Idealmente, voglio una funzione che consenta di passare un percorso come input e che restituisca un elenco di nomi di file in una tabella interna.

È stato utile?

Soluzione

Dopo aver letto le risposte di Chris Carrthers e tomdemuyt direi:

1) Usa RZL_READ_DIR_LOCAL se hai bisogno di un semplice elenco di nomi di file.

2) EPS_GET_DIRECTORY_LISTING è più potente: può anche elencare le sottodirectory.

Grazie ad entrambi!

Con i migliori saluti Niki Galanov

Altri suggerimenti

EPS2_GET_DIRECTORY_LISTING fa la stessa cosa di EPS_GET_DIRECTORY_LISTING MA restituisce i nomi dei file fino a 200 caratteri!

Funzione di chiamata 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
*"----------------------------------------------------------------------

Posiziona il percorso nel parametro di importazione NAME, quindi leggi l'elenco delle directory da FILE_TBL dopo che è tornato.

RZL_READ_DIR_LOCAL può gestire normali percorsi locali e percorsi UNC.

L'unico aspetto negativo è che ti dà accesso solo ai primi 32 caratteri di ciascun nome file. Tuttavia, puoi facilmente creare una nuova funzione basata sul codice RZL_READ_DIR_LOCAL e modificare la modalità di lettura dell'output del programma C, poiché i primi 187 caratteri di ciascun nome file sono effettivamente disponibili.

la risposta chiama il modulo funzionale EPS_GET_DIRECTORY_LISTING. DIR_NAME - > Nome della directory FILE_MASK - > Passa '*' per ottenere tutti i file.

Nota: questo non si occupa di nomi di file molto grandi (80 caratteri +), tronca il nome.

Dai un'occhiata al codice sorgente della transazione AL11: modulo RSWATCH0 fill_file_list Lì puoi ottenere tutte le informazioni sui file.

Spero che questo aiuti!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top