Cambiar el nombre de un archivo en File Explorer

Cambiar nombre de archivo en OneStream

Recientemente me encontré con un caso en el que necesitaba cambiar el nombre de algunos archivos en File Explorer. Tenía otra Business Rule ejecutándose desde un trabajo de Data Management que estaba creando los archivos y exportándolos al sistema de archivos de la base de datos de la aplicación. Luego, en un paso posterior, necesitaba ajustar sus nombres para alinearlos con una convención distinta.

En OneStream esto puede hacerse con BRApi, pero la lógica es un poco distinta a lo que uno esperaría de un simple comando de rename. La idea práctica es obtener el archivo existente, volver a guardarlo con el nuevo nombre y, si así lo desea, eliminar el archivo anterior después de confirmar que el nuevo se creó correctamente.

Ese patrón funciona bien cuando desea automatizar la administración de archivos desde reglas de extensibilidad o desde procesos ejecutados con Data Management. También ayuda cuando los nombres finales dependen de contexto o metadatos generados durante el proceso.

File Explorer antes de renombrar archivo
File Explorer después de renombrar archivo

En la siguiente captura de pantalla tengo un archivo, TotalCompany_CubeData_OldName.CSV, cuyo nombre quiero cambiar a TotalCompany_CubeData_NewName.CSV.

Comparación antes y después de renombrar archivo

Paso 1

Creé una Extensibility Rule que podía ejecutar desde un Data Management Step.

Regla de extensibilidad en Data Management

Paso 2

Usando un objeto XFFileEx y BRApi.FileSystem.GetFile, obtenga el archivo que desea renombrar. Debe especificar que el archivo está en la base de datos de la aplicación y pasar la ruta completa junto con el nombre del archivo.

Código para obtener archivo en OneStream

Paso 3

Luego creé el código que hará el “renombrado” del archivo. En esencia, lo que ocurre es que en el Paso 2 obtengo el archivo a renombrar y luego uso BRApi.FileSystem.InsertOrUpdateFile para insertar ese mismo archivo nuevamente, pero con un nombre distinto.

Código para renombrar archivo en OneStream

Paso 4

La trampa está en que realmente no está renombrando el archivo antiguo. Lo está obteniendo y guardando con un nombre nuevo. Por eso, el archivo viejo seguirá existiendo al mismo tiempo que el nuevo. Esto se resuelve fácilmente usando BRApi.FileSystem.DeleteFile para eliminar el archivo original después de crear el nuevo.

Eliminar archivo viejo en OneStream

El código completo

Código completo para renombrar archivo

La forma distinta de pensar esto para mí estuvo en BRApi.FileSystem.InsertOrUpdateFile. Ya la había usado antes para obtener archivos desde un file share y moverlos al sistema de archivos de la base de datos de la aplicación, pero aquí el truco fue usar el mismo contenido del archivo para crearlo con un nombre nuevo.

XFFileInfo con nuevo nombre de archivo
Nuevo nombre de archivo en OneStream

Contacto

MindStream Analytics

Para obtener más información sobre OneStream y cómo MindStream Analytics puede ayudarle a mejorar su planificación, reporting y analítica, complete el siguiente formulario.