Avalados por :

Como excluir arquivos antigos no BODS de forma eficiente

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 2 Vistas
0
Cargando...

Olá!,

Ajuda!

Podemos excluir arquivos mais antigos que x dias usando a função integrada do BODS?

file_delete( '\\\\sharedpath\\test_file\\*.txt');

Esta linha está excluindo todos os arquivos txt dentro do caminho especificado.

Apenas quero excluir arquivos com mais de 30 dias de idade.

Ou qualquer outra opção para excluir arquivos mais antigos que x dias usando alguma função integrada do BODS.

Saudações,

Bittu

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá Nawfal,

Há alguma restrição para a quantidade de arquivos?

Porque tenho aproximadamente 1,2 lakh arquivos, mas o código não remove mais do que 40 arquivos em uma única execução.

Seria de grande ajuda se pudéssemos excluir todos os arquivos para o intervalo de tempo dado.

Saudações,

Bittu

image.png
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Nawfal!

Obrigado, isso funciona 😉

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hi Bittu,

Executar comando OS através da função exec() de BODS como descrito por joseph_muiruri pode ser mais fácil, especialmente no Linux. No entanto, se estiver determinado a usar apenas a função integrada do BODS, então esta solução pode ser útil.

1- Crie essas variáveis globais a nível de trabalho:

2- Em um script, escreva o seguinte:

$G_FilePath='//sharedpath/test_file/*.txt'; #O caminho de rede
$G_RetentionDays =30; #Período de retenção em dias
$G_FileCounter=1; #Inicializar contador de loop

print(wait_for_file( $G_FilePath, 0, 0,-1,$G_FileList, $G_FileCount ,',')); #produzir lista de arquivos no caminho dado com a contagem
print('Arquivos encontrados no caminho dado:'|| $G_FileList); #imprimir lista
print('Número de arquivos no caminho: '||$G_FileCount); #imprimir quantos

while ($G_FileCounter<=$G_FileCount) #verificar cada arquivo no caminho para sua data de modificação
 begin
    $G_FileName=print(word_ext( $G_FileList,$G_FileCounter,',')); #Verificar um arquivo de cada vez
    $G_FileChangedDate =print(get_file_attribute(  $G_FileName,'date_modified'));#obter atributo de data de modificação do arquivo, pode ser alterado para data_criada
    $G_FileName=replace_substr( $G_FileName,'//','\\\\');#Ajustar o caminho UNC para se adequar à função de exclusão de arquivos
    if ($G_FileChangedDate <sysdate() - $G_RetentionDays)
      begin 
         print( file_delete( $G_FileName));#excluir arquivo antigo
	 print('Arquivo :'||$G_FileName||' excluído');
      end
    $G_FileCounter=$G_FileCounter+1;
 end
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Obrigado por visitar a Comunidade SAP para obter respostas às suas perguntas. Como esta é a sua primeira pergunta, recomendo que se familiarize com Comunidade de Perguntas e Respostas , pois a visão geral fornece dicas sobre como formular perguntas que atraiam respostas de nossos membros.

Se desejar, pode editar sua pergunta selecionando Ações e depois Editar.

Ao adicionar uma Imagem ao seu perfil, você incentiva os leitores a responder.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?