Consejo del Experto
Simon
Expert SAS et fondateur.
« La macro _delFile ilustra un método limpio y profesional para gestionar la eliminación de archivos directamente desde el procesador de macros. Al utilizar las funciones FILENAME y FDELETE, evitas el uso de comandos del sistema operativo (como rm en Unix o del en Windows), lo que garantiza que tu código sea totalmente portable y no dependa de permisos de ejecución de comandos externos (XCMD).
Recomendaciones estratégicas y mejores prácticas
Interpretación del código de retorno: La macro devuelve el valor de &rc. En SAS, un código de retorno 0 significa éxito. Cualquier otro valor indica un error (archivo inexistente, permisos insuficientes o archivo bloqueado por otro proceso). Para flujos de trabajo industriales, es vital capturar este valor (ej. %if %_delFile(...) = 0 %then...) para condicionar los pasos siguientes del programa.
Limpieza de Filerefs: La última instrucción %sysfunc(filename(filrf)) es fundamental. Al no pasar un segundo argumento, la función desasigna el fileref _tmpf. Esto evita la "fuga de filerefs", donde los nombres lógicos se acumulan en la sesión de SAS, lo cual es crítico en procesos que iteran sobre miles de archivos.
Manejo de bloqueos: Ten en cuenta que fdelete fallará si el archivo está siendo leído por otra aplicación o por una instrucción DATA o PROC de SAS que no haya cerrado el manejador de archivos todavía. »