esofitec. CoreDocs

esofitec. CoreDocs

Addons a medida / 5390 - UPCnet Tech, SLU / Sit.UPCNet.Renombrador

Funcionamiento

Este artículo describe en detalle qué hace la aplicación: las entradas que necesita, cómo construye los nombres de salida, cómo empaqueta y cifra los ficheros y cómo los sube al servidor.

Entradas del sistema#

Entrada Descripción
Fichero ZIP de origen Comprimido con los documentos individuales a procesar.
Tipo de documento Selección del tipo a procesar (Nóminas, Certificados u otros configurados).
Periodo Fecha que representa el periodo de los documentos (mes/año o año, según el tipo).
Excel/configNIF.xlsx Relación entre número de trabajador y NIF.
Configuracion/config.json Configuración: tipos de documento, parámetros SFTP y opciones de cifrado.
PublicKey/publicKey.asc Clave pública PGP del receptor (solo si el cifrado está activado).

Formato de los ficheros dentro del ZIP de origen#

Cada fichero del ZIP debe seguir esta nomenclatura:

{NúmeroTrabajador}_{NombreTrabajador}.{extensión}
  • El separador entre el número de trabajador y el nombre es el guion bajo (_).
  • El número de trabajador es todo lo que precede al primer _.
  • La extensión del fichero se preserva en el fichero de salida.

Ejemplo: 00123_Garcia Lopez Maria.pdf

Formato del fichero Excel de NIFs#

El fichero configNIF.xlsx tiene una fila de cabecera (ignorada) y dos columnas:

Número de trabajador NIF
00123 12345678A
00456 87654321B

Coincidencia exacta del número de trabajador

El número de trabajador del Excel debe coincidir exactamente (incluyendo los ceros a la izquierda) con el número que precede al _ en los nombres de los ficheros del ZIP de origen. Si no coincide, ese documento no se renombra y el error queda registrado en el log.

Flujo del proceso#

  1. El operador selecciona el ZIP de origen, el tipo de documento y la fecha de periodo, y pulsa Renombrar y subir.
  2. La aplicación extrae el contenido del ZIP en un directorio temporal.
  3. Lee el fichero Excel de NIFs.
  4. Por cada fichero extraído, construye el nombre de salida aplicando el patrón del tipo de documento seleccionado.
  5. Empaqueta los ficheros renombrados en un nuevo ZIP.
  6. Si el ZIP supera el tamaño máximo (≈20 MB), lo divide en partes.
  7. Si el cifrado está activado, cifra cada ZIP (o parte) con la clave pública PGP y genera un fichero .pgp.
  8. Sube cada fichero resultante al servidor SFTP.
  9. Elimina el directorio temporal e informa del resultado al operador.

Codificación de los nombres de fichero

La extracción del ZIP usa la codificación CP-850 para preservar los caracteres especiales (acentos, eñes) de los nombres originales.

Construcción del nombre de salida#

El nombre de cada fichero de salida se construye a partir de un patrón definido en config.json para cada tipo de documento. Los marcadores disponibles son:

Marcador Se sustituye por
{{codTipoDoc}} Código del tipo de documento configurado (ej. NOMINA, CERTIFICAT).
{{Fecha}} Fecha de periodo formateada según el formato configurado (ej. 062025 para junio de 2025 con formato MMyyyy).
{{nifTrabajador}} NIF del trabajador, obtenido del Excel.
{{documento}} Valor fijo NOMINES.

La extensión original del fichero se conserva y se añade al final del nombre resultante.

Ejemplo para Nóminas (patrón {{codTipoDoc}}{{Fecha}}_{{documento}}_{{nifTrabajador}}):

  • Fichero origen: 00123_Garcia Lopez Maria.pdf
  • Periodo: junio de 2025, formato MMyyyy
  • NIF del trabajador 00123: 12345678A
  • Nombre resultante: NOMINA062025_NOMINES_12345678A.pdf

Nombre del ZIP generado#

El ZIP que empaqueta los documentos renombrados se nombra con la fecha de ejecución (no la fecha de periodo):

User_Docs_{ddMMyyyy}.zip

Si se divide en partes, la segunda y siguientes se nombran:

User_Docs_{ddMMyyyy}_2.zip
User_Docs_{ddMMyyyy}_3.zip
...

El umbral de división es de 20.000.800 bytes acumulados por parte.

Cifrado PGP#

Cuando el cifrado está habilitado ("cifrar": true en config.json), cada ZIP se cifra con la clave pública PGP almacenada en PublicKey/publicKey.asc. El fichero resultante añade la extensión .pgp al nombre del ZIP:

User_Docs_{ddMMyyyy}.zip.pgp

Es el fichero cifrado (.pgp) el que se sube al SFTP, no el ZIP sin cifrar.

La clave pública la proporciona el receptor de los ficheros. Cuando el receptor la renueva, la sustitución no requiere ningún cambio en el código ni recompilación: basta con reemplazar publicKey.asc. El procedimiento está en Renovación de la clave PGP.

Fallo de cifrado sin aviso en pantalla

Si el fichero publicKey.asc es incorrecto o falta en el momento del proceso, la aplicación termina sin mostrar ningún mensaje en pantalla. En ese caso, el detalle del error solo queda en el log del día. Ver Resolución de problemas.

Subida al servidor SFTP#

Los ficheros resultantes (cifrados o no, según la configuración) se suben al directorio por defecto del usuario SFTP configurado. El protocolo es SFTP (SSH File Transfer Protocol), puerto 22 por defecto.

Interfaz#

La aplicación presenta una única ventana de tamaño fijo:

Elemento Función
Ruta archivo (texto, solo lectura) Muestra la ruta del ZIP seleccionado.
Seleccionar .zip Abre un diálogo de selección de fichero, filtrado a .zip.
Tipo documento (desplegable) Selecciona el tipo de documento. Las opciones se cargan desde config.json.
Periodo (selector de fecha) Selecciona la fecha de periodo aplicada al renombrado.
Abrir excel de NIFs Abre configNIF.xlsx con la aplicación predeterminada del sistema.
Configuración Abre config.json con el Bloc de notas.
Renombrar y subir Inicia el proceso completo.

Tipos de documento configurables#

Los tipos procesables se definen en config.json. Cada tipo tiene una descripción (texto del desplegable), un código (usado en {{codTipoDoc}}), un formato de fecha (.NET, ej. MMyyyy o yyyy) y un patrón de nombre de salida. La configuración actual incluye Nóminas y Certificados. Ver el detalle de cada campo en Instalación y configuración.

Restricciones y limitaciones#

  • Los ficheros del ZIP de origen deben seguir el formato {NúmeroTrabajador}_{Nombre}.{ext}. Un fichero sin _ provoca un error de procesado para ese fichero.
  • Cada trabajador referenciado debe existir en el Excel de NIFs. Si no se encuentra, el fichero no se renombra y se registra el error.
  • Si un fichero individual supera los 20.000.800 bytes, no se incluye en los ZIPs de salida (el umbral de tamaño por parte no puede satisfacerse para un único fichero de ese tamaño).
  • La aplicación requiere conexión al SFTP en el momento de la ejecución. Si la conexión falla, se registra el error y se notifica al operador, pero el renombrado y empaquetado ya habrán concluido.
  • La aplicación requiere una licencia válida proporcionada por Esofitec.