Hi Bittu,
Ejecutar comando OS a través de la función exec() de BODS como lo describe
joseph_muiruri
puede ser más fácil, especialmente en Linux. Sin embargo, si estás decidido a usar solo la función integrada de BODS, entonces esta solución puede serte útil.
1- Crea estas variables globales a nivel de trabajo:
2- En un script escribe lo siguiente:
$G_FilePath='//sharedpath/test_file/*.txt'; #La ruta de red
$G_RetentionDays =30; #Período de retención en días
$G_FileCounter=1; #Inicializar contador de bucle
print(wait_for_file( $G_FilePath, 0, 0,-1,$G_FileList, $G_FileCount ,',')); #producir lista de archivos en la ruta dada con su conteo
print('Archivos encontrados en la ruta dada:'|| $G_FileList); #imprimir lista
print('Número de archivos en la ruta: '||$G_FileCount); #imprimir cuántos
while ($G_FileCounter<=$G_FileCount) #verificar cada archivo en la ruta para su fecha de modificación
begin
$G_FileName=print(word_ext( $G_FileList,$G_FileCounter,',')); #Verificar un archivo a la vez
$G_FileChangedDate =print(get_file_attribute( $G_FileName,'date_modified'));#obtener atributo de fecha de archivo, puede cambiarse a data_created
$G_FileName=replace_substr( $G_FileName,'//','\\\\');#Ajustar la ruta UNC para que se adapte a la función de eliminación de archivos
if ($G_FileChangedDate <sysdate() - $G_RetentionDays)
begin
print( file_delete( $G_FileName));#eliminar archivo antiguo
print('Archivo :'||$G_FileName||' eliminado');
end
$G_FileCounter=$G_FileCounter+1;
end
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019