Obter o conteúdo de um diretório do lado do servidor em ABAP SAP
-
02-07-2019 - |
Pergunta
Eu preciso para obter uma listagem de um do lado do servidor diretório dentro SAP. Como posso conseguir isso em ABAP? Há algum built-in funções SAP posso chamar?
Idealmente, eu quero uma função que eu posso passar um caminho como entrada, e que irá retornar uma lista de nomes de arquivos em uma tabela interna.
Solução
Depois de ler as respostas de Chris Carrthers e tomdemuyt eu diria:
1) Use RZL_READ_DIR_LOCAL se precisar simples lista de nomes de arquivos.
2) EPS_GET_DIRECTORY_LISTING é mais poderoso -. Ele também pode lista subdiretórios
Graças Você tanto!
Com os melhores cumprimentos Niki Galanov
Outras dicas
EPS2_GET_DIRECTORY_LISTING
faz a mesma coisa que EPS_GET_DIRECTORY_LISTING
mas retorna os nomes de arquivo de até 200 caracteres!
função Chamada 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
*"----------------------------------------------------------------------
Coloque o caminho no parâmetro de nome de importação, e em seguida, ler a lista do diretório de FILE_TBL depois ele retorna.
RZL_READ_DIR_LOCAL pode lidar com caminhos locais normais, bem como caminhos UNC.
A única desvantagem é que não só lhe dá acesso aos primeiros 32 caracteres de cada nome de arquivo. No entanto, você pode facilmente criar uma nova função com base no código RZL_READ_DIR_LOCAL, e mudar a forma como a saída do programa C é lido, como os primeiros 187 caracteres de cada nome do arquivo estão realmente disponíveis.
A resposta é chamar a função módulo EPS_GET_DIRECTORY_LISTING. DIR_NAME -> Nome do diretório FILE_MASK -.> Pass '*' para obter todos os arquivos
Nota: Este não lida com realmente grandes nomes de arquivos (80 caracteres +), que trunca o nome
. Dê uma olhada na transação código fonte AL11: RSWATCH0 forma fill_file_list
Lá você pode obter todas as informações sobre os arquivos.
Espero que isso ajude!