Test de la Exportación
Para probar el módulo MisExport construiremos una tabla de Tareas en la que definimos los parámetros del Proceso de exportación y de esta forma programar su ejecución y repetirla de forma desatendida.
La estructura de la tabla Tareas es la siguiente:

Los campos CLAVES_EXPORT y IDREFS_PROCESOS son los parámetros principales del Proceso de exportación. Disponemos de 2 campos opcionales, MULTI_CAMPO indica el campo por el que queremos multipartir y sobreescribe, si existe, el campo que se haya especificado en la configuración de exportación y MULTIPARTIR que activa o desactiva la multipartición.
A continuación tenemos un ejemplo de un proceso que recibe como Ficha de entrada la Tarea seleccionada.
Proceso: PRO_VEX_TEST_OOX_EXP_TAR_RUN
Rem ( Proceso para crear un archivo XLSX (también llamado paquete SpreadsheetML) desde una Lista o Listas Velneo )
Rem ( Recibe los valores de Exportación como una Ficha de la tabla de TAREAS )
Libre
Rem ( Ejecución en 1P o 3P )
Set ( LEN_3P, $APP_EXPORTAR_EN_3P@0PS__MisExport_dat.dat )
Libre
Rem ( PROCESO PRINCIPAL. Creación del Paquete SpreadsheetML )
Rem ( El Proceso crea el Paquete, lo comprime y en 3P lo deja en la Carpeta SDV )
Rem ( Parámetros obligatorios: _CLISTA_CLAVES_EXPORT y _CLISTA_IDREF_PROCESOS )
Crear manejador de objeto ( hOOX, Proceso PRO_VEX_OOX_PAQ_EXPORT@0PS__MisExport_dat )
Libre
Rem ( Los parámetros del Proceso de exportación se toman del registro de la Tarea )
Set variable local de objeto ( hOOX, _CLISTA_CLAVES_EXPORT, #CLAVES_EXPORT )
Set variable local de objeto ( hOOX, _CLISTA_IDREF_PROCESOS, #IDREFS_PROCESOS )
Set variable local de objeto ( hOOX, _CCAMPO_MULTI, #MULTI_CAMPO )
Set variable local de objeto ( hOOX, _LMULTIPARTIR, #MULTIPARTIR )
Libre
If ( LEN_3P )
Disparar objeto ( hOOX, 3º plano: Servidor (síncrono), LOK )
Libre
Else
Disparar objeto ( hOOX, 1º plano: Local (síncrono), LOK )
Libre
Libre
Get variable local de objeto ( hOOX, CERROR, CERROR )
If ( ! isEmpty(CERROR) )
Mensaje ( "<b>Ha ocurrido un error:</b> \n\n" + CERROR, Información, , )
Finalizar proceso
Libre
Rem ( ARCHIVO XLSX LOCAL. Ya sea en 1P o 3P el archivo XLSX resultante se copiará a un archivo local )
Rem ( Este nombre del Archivo Local se obtiene de la primera CLAVE de Exportación o puede suministrarlo la Tarea )
Get variable local de objeto ( hOOX, CARCHIVO_XLSX_EXPORT, CARCHIVO_XLSX_EXPORT )
Rem ( La Tarea puede suministrar el Nombre del archivo XLSX )
If ( ! isEmpty(#ARCHIVO_EXPORT) )
Set ( CPATH_LOCAL_XLSX, $APP_EXPORT_PATH_LOCAL@0PS__MisExport_dat.dat + #ARCHIVO_EXPORT + ".xlsx" )
Else
Set ( CPATH_LOCAL_XLSX, $APP_EXPORT_PATH_LOCAL@0PS__MisExport_dat.dat + CARCHIVO_XLSX_EXPORT + ".xlsx" )
Libre
Rem ( Eliminamos el archivo anterior )
¿Existe fichero? ( CPATH_LOCAL_XLSX, LOK, )
If ( LOK )
Eliminar fichero de disco ( CPATH_LOCAL_XLSX, LOK )
If ( LOK = 0 )
Rem ( No se puede eliminar el archivo XLSX local, seguramente está abierto )
Set ( LLOCAL_XLS_BLOQUEADO, 1 )
Libre
If ( LEN_3P )
Rem ( Obtenemos la ubicación del archivo XLSX con el resultado en la carpeta SDV donde se ha colocado )
Get variable local de objeto ( hOOX, CPATH_SDV_ZIP_XLSX, CPATH_SDV_FICHERO_ZIP )
If ( LLOCAL_XLS_BLOQUEADO )
Set ( CPATH_LOCAL_XLSX, sysCacheClientPath + getPathBaseName(CPATH_SDV_FICHERO_ZIP) + ".xlsx" )
Libre
If ( ! isEmpty(CPATH_SDV_FICHERO_ZIP) )
Rem ( Descargamos el archivo ZIP desde la carpeta SDV )
SDV: Descargar fichero a local ( CPATH_SDV_FICHERO_ZIP, CPATH_LOCAL_XLSX, )
Rem ( Podemos eliminar el archivo XLSX de la carpeta SDV )
If ( 1 )
SDV: Eliminar fichero en el servidor ( CPATH_SDV_FICHERO_ZIP, LOK )
Libre
Else
Rem ( Obtenemos el Path del Zip generado y lo copiamos al Fichero especificado en la Caché )
Get variable local de objeto ( hOOX, CPATH_FICHERO_ZIP_XLSX, CPATH_FICHERO_ZIP_XLSX )
If ( LLOCAL_XLS_BLOQUEADO )
Set ( CPATH_LOCAL_XLSX, CPATH_FICHERO_ZIP_XLSX )
Else
Copiar fichero ( CPATH_FICHERO_ZIP_XLSX, CPATH_LOCAL_XLSX, LOK )
If ( $APP_ELIMINAR_TEMP@0PS__MisExport_dat.dat )
Rem ( Eliminamos el archivo XLSX creado con nombre único )
Eliminar fichero de disco ( CPATH_FICHERO_ZIP_XLSX, LOK )
Libre
Rem ( Mostrar el archivo XLSX creado )
Crear manejador de objeto ( hDocVer, Proceso PRO_XLSX_VER@0PS__MisExport_app )
Set variable local de objeto ( hDocVer, CPATH_LOCAL_XLSX, CPATH_LOCAL_XLSX )
Disparar objeto ( hDocVer, 1º plano: Local (síncrono), )
Libre
Libre
If ( LLOCAL_XLS_BLOQUEADO )
Mensaje ( "No se ha podido eliminar el archivo XLSX anterior, <b>estará bloqueado</b>.\n\nSe ha creado en su lugar el archivo " + CPATH_LOCAL_XLSX, Exclamación, , )
Libre
Creado con el Personal Edition de HelpNDoc: Revolucione la producción de su documentación con una herramienta de creación de ayuda