write-binary-file
Esta función escribe contenido binario en la ruta de archivo indicada y devuelve la ruta del archivo escrito. Si quiere que el resultado sera únicamente un archivo binario, conecte el resultado de la función a un componente de salida simple. Esta función escribe un archivo cada vez que se usa su resultado en la asignación, por lo que recomendamos que conecte el resultado de la función directamente a un componente de destino, sin usar otros procesamientos intermedios.
Para escribir archivos binarios debe dar su ruta como entrada del argumento filepath. Si filepath es relativo, entonces MapForce genera el archivo en el mismo directorio que la asignación. El argumento content debe estar conectado al contenido binario (por ejemplo, un campo BLOB de una BD).
Si accede a la vista previa de la asignación en MapForce, la función genera archivos temporales por defecto, en lugar de escribir archivos directamente en disco. Para guardar estos archivos temporales en disco haga clic en la pestaña Resultados y después haga clic en los botones de la barra de herramientas Guardar resultado generado o Guardar todos los resultados generados .
Para configurar MapForce para que escriba el resultado directamente en archivos finales en vez de temporales seleccione el comando de menú Herramientas | Opciones, haga clic en Generales y después marque la opción Escribir directamente en archivos de salida finales. Tenga en cuenta que esta opción sobrescribe cualquier otro archivo que tenga el mismo nombre.
La función siempre devuelve el nombre de archivo final (no el temporal), incluso aunque no haya guardado aún el archivo final en disco (que es el caso cuando accede a la vista previa de la asignación y se deshabilita la opción Escribir directamente en archivos de salida finales).
Tenga en cuenta que una asignación no puede volver a leer su propio archivo de salida. |
Lenguajes
Built-In
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
filepath | xs:string | La ruta de acceso al archivo de entrada. |
content | xs:base64Binary | El contenido binario de tipo xs:base64Binary. |
Ejemplo
La asignación siguiente lee valores BLOB de una BD SQLite y escribe archivos de imagen en el disco. La base de datos contiene una tabla llamada products cuyas columnas (campos) son:
•id (número entero, el número de serie permanente y único del registro)
•title (texto, el título del producto)
•description (texto, la descripción del producto
•picture (blob, la imagen del producto)
Para este ejemplo sólo son relevantes los campos id y picture.
El objetivo de la asignación es extraer todas las imágenes de la tabla products y escribirlas en disco como archivos. Como se ve más arriba, para ello se usa la función write-binary-file. El primer argumento, filepath, recibe la ruta de acceso de las imágenes. La ruta debe ser única para evitar sobrescribir otros archivos, por lo que para generarla se concatenan el id de BD único de cada registro con la palabra "image" y luego se añade la extensión de archivo ".png" (se asume que todas las imágenes están en formato PNG). Recuerde que la ruta es relativa, por lo que los archivos se escriben en el mismo directorio que la asignación.
El segundo argumento, content, recibe el contenido binario que se almacena en la BD.
La función count devuelve el recuento de todos los archivos generados y combina ese número con la cadena de texto "archivo(s) escritos". Así puede saber cuántos archivos ha generado la asignación. En este ejemplo la BD sólo contiene dos registros de producto, que es lo que refleja el resultado:
Como hemos explicado anteriormente, esta función genera archivos temporales cuando se ejecuta la asignación para acceder a una vista previa del resultado. Para visualizar cada uno de los archivos, use los botones de flecha para navegar el registro relevante, haga clic en el botón Abrir con y seleccione un editor de imagen.
Para guardar todos los archivos haga clic en los botones de la barra de herramientas Guardar resultado generado o Guardar todos los resultados generados , según el caso.