# Novedades de la versión

A continuación pasamos a comentar las novedades de la versión.

## Versión 37.0

### VERP-3201

#### General. Descargar ficheros del FTP siempre en el cliente y ejecutar la importación en 3P

Modificada la importación de ficheros JSON en instalaciones nuevas para que la descarga desde el FTP se realice evitando escribir ficheros en la carpeta de la solución (/Velneo/cajas/vERP\_2/).

Anteriormente, cuando la importación se ejecutaba en el servidor, los JSON se descargaban directamente a la carpeta de la solución. Según las directrices de plataforma, dicha carpeta solo debe contener ficheros declarados como adjuntos.&#x20;

Objetos modificados

* Proyecto aplicacion
  * Procesos DES\_DAT\_JSO
* Proyecto daatos
  * Procesos IMP\_JSO

### VERP-3349

#### vERP. Generación de datos sintéticos con IA

Se añade al menú de utilidades en el menu superior de Configuracion de vERP una nueva opción "Generar datos sintéticos" que solo estará visible para administradores (supervisores).

Objetos del proyecto de datos:

* Nueva tabla TAB\_MEM\_W → Tabla en memoria que se usa para mostrar la lista de tablas a seleccionar para la generación de los datos.

Objetos del proyecto de aplicación:

* Nuevo scripts:
  * Nuevo script vTools/db/generarDatosSinteticosTablas.js → Recibe una lista de tablas y genera los registros con datos sintéticos creados por la IA.
  * Añado en el script vTools/utils.js se ha añadido la función getTableSchema(tablaInfo) que devuelve el esquema de la tabla y sus campos en formato json.
* Nueva carpeta Recursos/vTools/Generador de datos sintéticos.
  * Nuevo formulario GEN\_DAT\_SIN → Formulario de generación de datos sintéticos donde pueden elegir las tablas, ajustar el nº de registros y pulsar el botón generar.
  * Nueva rejilla TAB\_MEM\_W → Se usa para mostrar las tablas de la aplicación a seleccionar.
  * Nuevo proceso GEN\_DAT\_SIN\_TO\_TAB\_MEM → Se usa para mostrar la vista de datos con la rejilla para la selección de tablas.
  * Nuevo proceso GEN\_DAT\_SIN\_2P → Generar los datos sintéticos en 2º plano.
  * Nueva acción GEN\_DAT\_SIN → Generador de datos sintéticos que ejecuta desde el menú Supervisor → Utilidades.
* Menú PRN\_UTI - Utilidades → Se añade la acción GEN\_DAT\_SIN -> Generador de datos sintéticos.

### VERP-3358

#### General. Validación dinámica de formularios

La validación dinámica es una funcionalidad nueva que permite definir en tiempo de ejecución, sin requerir cambios en programación las validaciones a realizar en cualquier formulario que tenga implementado en el manejador previo al botón aceptar la ejecución de la validación.\
\
La opción de configuración está a nivel de supervisor. Toda la configuración se guarda en tablas lo que permite copiarlo entre instancias.

Flujo de configuración:

* Dentro de la configuración de un formulario se selecciona el proyecto y el formulario.
* Haciendo drag\&drop podemos arrastrar desde las lista de controles y campos (si el formulario tiene origen).
* Una vez generada la regla se puede editar directamente en la rejilla las columnas de regla, valor y mensaje.
* Haciendo drag\&drop desde los grupos de usuario podemos asignar que una regla solo se aplique a usuarios de esos grupos.
* Para desasignar un grupo de usuario solo hace falta hacer drag\&drop del grupo a la regla y se eliminará, es decir que funciona como un interruptor.
* Para eliminar una regla hacer drag\&drop desde la rejilla de reglas hacia la lista de controles o campos.

&#x20;Aplicación de la validación dinámica:

* En el manejador de evento asociado a previo al botón aceptar, se pega el siguiente código (que siempre es igual, no requiere personalización)\
  // Rem ( Validaciones )\
  Ejecutar script (filescript) ( (CurrentProject)/js/interface/validacionDinamica.js )\
  If ( NO\_ACE )\
  Set retorno proceso = NO\
  Finalizar proceso
* Al pegarlo se creará la variable local NO\_ACE (booleana, no acpetar) que el JS se encarga de poner a 1 si alguna regla no se cumple.
* Lógicamente, tras pegar ese código debería quitarse la validación de datos que se realice en ese manejador.
* Con vERP se entregarán los JSON de las validaciones existentes en las tabla de objetos y reglas de validación.

Objetos del proyecto de datos:

* Nueva función VAL\_REG\_W\_ACT\_JSN → Actualiza el JSON con las reglas a aplicar en las comprobaciones de un formulario (Lo ejecutan los triggers de las reglas).
* Nueva tabla VAL\_CTL\_MEM\_W → Tabla en memoria que sirve para mostrar los controles de un formulario y los campos de la tabla origen del formulario.
* Nueva tabla VAL\_OBJ\_W → Almacena los formularios configurados para realizar comprobaciones.
* Nueva tabla VAL\_REG\_W → Almacena las reglas de validación de cada formulario.
* Nuevo icono VAL\_OBJ\_W → Icono para la tabla de formularios con validación dinámica configurada.
* Nuevo icono VAL\_REG\_W → Icono para la tabla de reglas de validación dinámica de formularios.
* Nueva tabla estática VAL\_CTL\_CAM → Se usa para diferenciar en la tabla en memoria si el registro pertenece a un control o a un campo.
* Nuevo icono de tabla estática VAL\_CTL\_CAM\_CAM → Campo.
* Nuevo icono de tabla estática VAL\_CTL\_CAM\_CLT → Control.
* Nueva tabla estática VAL\_REG → Reglas de validación a aplicar a un control o campo.
* Nueva tabla estática VAL\_TIP\_DAT → Tipos de datos de los controles y campos.

&#x20;Objetos del proyecto de aplicación:

* Nuevo script js/interfaz/validacionDinamica.js → Es un JS genérico que realiza las comprobaciones basándose en la configuración realizada.
* Función USR\_GRP\_M\_ID\_TO\_NOM → Devuelve los nombres de grupos de usuarios a partir de los id almacenados en un array. Se usa para mostrar los grupos en la rejilla.
* Carpeta Validación dinámica (completa) dentro de la carpeta del módulo de configuración.

### VERP-3388

#### Gestión: Generación de facturas de venta y compra a partir de ingresos o gastos recurrentes con diferentes opciones de periodicidad (mensual, bimensual, trimestral o anual) y con la posibilidad de tener como origen un artículo o una factura (en este caso, se usará la factura como origen para ser duplicada en cada generación de facturas)

**Proyecto de datos**

**Objetos nuevos**

* Tablas:
  * COM\_FAC\_REC
  * VTA\_FAC\_REC
* Tablas estáticas:
  * PER\_FAC
* Dibujos:
  * ANU
  * BIM
  * MEN
  * TRI

**Objetos modificados**

* Tablas:
  * COM\_FAC\_G
  * VTA\_FAC\_G

**Proyecto de aplicación**

**Objetos nuevos**

* Formularios:
  * ART\_M\_COM\_FAC\_G\_REC
  * ART\_M\_VTA\_FAC\_G\_REC
  * COM\_FAG\_G\_REC\_MEN
  * COM\_FAG\_G\_REC
  * COM\_FAG\_G\_REC\_INS
  * DAT\_FCH\_FAC\_REC
  * ENT\_M\_COM\_FAC\_G\_REC
  * ENT\_M\_VTA\_FAC\_G\_REC
  * VTA\_FAG\_G\_REC\_MEN
  * VTA\_FAG\_G\_REC
  * VTA\_FAG\_G\_REC\_INS
* Alternadores:
  * COM\_FAC\_G\_REC
  * COM\_FAC\_G\_REC\_ART
  * COM\_FAC\_G\_REC\_PRV
  * VTA\_FAC\_G\_REC
  * VTA\_FAC\_G\_REC\_ART
  * VTA\_FAC\_G\_REC\_CLT
* Rejillas:
  * COM\_FAC\_G\_REC
  * COM\_FAC\_G\_REC\_ART
  * COM\_FAC\_G\_REC\_PRV
  * VTA\_FAC\_G\_REC
  * VTA\_FAC\_G\_REC\_ART
  * VTA\_FAC\_G\_REC\_CLT
* Búsquedas:
  * COM\_FAC\_G\_REC
  * VTA\_FAC\_G\_REC
* Procesos:
  * COM\_FAC\_G\_REC\_FAC\_3P
  * VTA\_FAC\_G\_REC\_FAC\_3P
  * USR\_VAR\_W\_TO\_COM\_FAC\_REC\_VAC
  * USR\_VAR\_W\_TO\_VTA\_FAC\_REC\_VAC
  * ART\_M\_TO\_VTA\_FAC\_G\_REC
  * ENT\_M\_TO\_COM\_FAC\_G\_REC
  * ENT\_M\_TO\_VTA\_FAC\_G\_REC
* Tubos:
  * COM\_FAC\_G\_REC\_ORI\_TO\_MOV
  * COM\_FAC\_G\_REC\_TO\_MOV
  * VTA\_FAC\_G\_REC\_ORI\_TO\_MOV
  * VTA\_FAC\_G\_REC\_TO\_MOV
* Acciones:
  * COM\_FAC\_G\_REC
  * COM\_FAC\_G\_REC\_SEL
  * COM\_FAC\_G\_REC\_INS
  * COM\_FAC\_G\_REC\_INS\_TAB
  * COM\_FAC\_G\_REC\_MAS\_INS
  * COM\_FAC\_G\_REC\_MAS\_INS\_TAB
  * VTA\_FAC\_G\_REC
  * VTA\_FAC\_G\_REC\_SEL
  * VTA\_FAC\_G\_REC\_INS
  * VTA\_FAC\_G\_REC\_INS\_TAB
  * VTA\_FAC\_G\_REC\_MAS\_INS
  * VTA\_FAC\_G\_REC\_MAS\_INS\_TAB
* Toolbars:
  * COM\_FAC\_G\_REC
  * VTA\_FAC\_G\_REC
* Menús:
  * COM\_FAC\_G\_REC\_TLB\_MAS
  * VTA\_FAC\_G\_REC\_TLB\_MAS
* Menús de botón:
  * Carpetas con los objetos de menús de botón para cliente, artículo, proveedor, serie, factura y factura origen en compras y ventas.&#x20;

**Objetos modificados**

* Formularios:
  * ART\_M
  * ENT\_M\_COM
  * ENT\_M\_VTA
* Rejillas:
  * COM\_FAC\_G
  * VTA\_FAC\_G
* Procesos:
  * COM\_FAC\_G\_NUE
  * VTA\_FAC\_G\_NUE

### VERP-3434

#### Generación de documentos de compras (pedidos) y ventas (presupuestos y pedidos) mediante prompt y voz

Añadida la posibilidad de generar pedidos de compra, presupuesto y pedidos de venta mediante un prompt de voz o texto desde los menús correspondientes.

En las toolbars de pedidos de compra, presupuestos de venta y pedidos de venta, encontraremos una opción para generar los documentos partiendo de un prompt.

Se generarán los datos de la cabecera, pie y las líneas de detalle.

Se localizará en la base de datos el cliente o proveedor por nombre. En el caso de no ser encontrado, se procederá a la creación del mismo de forma automática. Si encuentra más de un registro por aproximación del nombre, nos mostrará un selector para elegirlo.

La misma funcionalidad será realizada con los productos de las líneas de detalle.

### VERP-3476

#### vAgenda. Mejora en la seleccion del color del calendario

Se ha mejorado la forma en como se permite seleccionar el color del calendario a aplicar

Objetos modificados

* Proyecto de aplicación
  * Formularios
    * AGE\_CAL

Objetos nuevos

* Proyecto de aplicación
  * Formularios
    * AGE\_CAL\_SEL\_COL

### VERP-3501

#### En ejecución web, contemplar la ejecución del marco de escritorio o de móvil

Cuando se ejecuta vERP desde web, se ha modificado para conseguir ejecutar el marco adecuado, para que si se ejecuta desde navegador web en escritorio, o bien desde navegador web en dispositivo móvil, que se ejecute el marco correcto.

Objetos modificados:

* Proceso: ON\_INIT\_CLIENT

### VERP-3577

#### Generación de asientos contables desde prompt de texto o voz

Ahora en Velneo ERP tienes un experto contable que puede ayudarte en la introducción de asiento desde un prompt de texto o voz.

Simplemente escribiendo el tipo de asiento contable que quieres generar, el asistente IA se encargará de generar los apuntes correspondientes, los registros de IVA (si son facturas de compra o venta), generación de la cartera de cobros y pagos, pagos de los vencimientos, …

**Objetos modificados:**

* Tablas: EMP\_M (nuevo campo IA\_GEN\_ASI\_PRO\_DSC)
* Alternadores: ASI\_C (Añadido manejador de evento ASI\_C\_IA\_GEN y su correspondiente conexión de evento)
* Menús: ASI\_C\_TLB\_MAS (Añadida acción ASI\_C\_OPC\_IA\_GEN)
* Formularios: EMP\_M\_CFG\_IA (Añadido subformulario EMP\_M\_CFG\_IA\_GEN\_ASI\_PRO en el pestañador)

**Objetos nuevos:**

* Formularios: EMP\_M\_CFG\_IA\_GEN\_ASI\_PRO
* Procesos: ASI\_C\_IA\_GEN
* Acciones: ASI\_C\_OPC\_IA\_GEN

### VERP-3585

#### General. Campo alfanumérico se rellena con contenido numérico

En el **proceso ENT\_M\_ALT\_MOD en dos instrucciones distintas,** al crear la nueva ficha en la tabla DIR\_M, el campo PRN se rellena a 1, pero este campo es alfanumérico por lo que igual tendría que rellenarse con "1".&#x20;

Objetos modificados

Proyecto de aplicación

* Procesos
  * ENT\_M\_ALT\_MOD
* Rejilla
  * DIR\_M\_ENT

&#x20;Proyecto de datos

* Procesos
  * ENT\_M\_ALT\_MOD

### VERP-3602

#### vERP. Mejoras en la validación dinámica de fórmularios

* Se añade la opción de validación mediante fórmula. La tabla estática VAL\_REG tiene ahora los siguiente valores:
  * 1 - Obligatorio.
  * 2 - Longitud mínima.
  * 3 - Longitud máxima.
  * 4 - Valor mínimo.
  * 5 - Valor máximo.
  * 6 - Contiene.
  * 7 - No contiene.
  * 8 - Fecha no futura.
  * 9 - Expresión regular.
  * 0 - Fórmula.
* En la tabla VAL\_REG\_W (Validación dinámica: Reglas):
  * Se añade el campo FOR de tipo objeto texto que se editará con el control de edición de fórmula asignándole la tabla dinámicamente mediante la nueva función JS.
  * Se modifica el campo MSG\_ERR que pasa de tipo alfabético a objeto texto ya que se editará mediante un control de edición de fórmula. Esto permite que el mensaje de error pueda usar constantes que facilitan el multi-idioma en las aplicaciones.
* Se usa en la edición de fórmulas las nuevas propiedades del control de edición de fórmula para poder editar fórmula de origen de cualquier tabla sin necesidad de crear campos objeto fórmula.
* Se mejora la notificación de errores que ahora:
  * Muestra todos los errores en un único mensaje.
  * El foco se posiciona en el primer control con error.
  * En la lista de errores detectados se muestran los 3 primeros, y se indica en otra línea el nº de mensajes no especificados.

### VERP-3618

#### General. Al crear una nueva forma de pago da error al activar el check de aplicar condiciones especiales

Objetos modificados:

* Proyecto de aplicación
  * Formularios
    * FPG\_M
      * Control TXT\_TPV
      * Manejador SEP\_PES\_CND\_ESP\_SI

### VERP-3654

#### API REST. Nueva versión de ApiRest V3 con nuevas funcionalidades

**Objetos modificados**

* Proyecto de datos
  * Scripts
    * js/api\_rest\_v2/openapi.js
* Proyecto de aplicación
  * Formulario
    * API\_SEG\_W
  * Rejillas
    * API\_SEG\_W
    * API\_SEW\_W\_API\_KEY

&#x20;**Objetos añadidos**

* Proyecto de datos
  * Procesos
    * V3
  * Scripts
    * js/api\_rest\_v3/api\_rest\_funciones\_v3.js
    * js/api\_rest\_v3/openapi\_v3.js
    * js/api\_rest\_v3/\_v3.js
* Proyectos de aplicación
  * Formulario
    * API\_SEG\_W\_IND

### VERP-3655

#### MCP. Nuevo servidor MCP para conectar vERP con asistentes de IA

vERP incorpora un servidor MCP (Model Context Protocol) que permite a cualquier asistente de IA compatible interactuar directamente con los datos y procesos del ERP. El servidor expone procesos, búsquedas y tablas de Velneo como herramientas y recursos accesibles por IA, con autenticación por Bearer token y control de seguridad mediante lista blanca de procesos autorizados.

La configuración se gestiona desde la propia ficha de API Key, donde se pueden habilitar las capacidades MCP y definir los permisos de acceso.

Objetos nuevos:

* Proyecto de datos
  * Scripts js/MCP/MCP.js, js/MCP/mcp\_funciones.js, js/MCP/mcp\_seguridad.js, js/MCP/velneo\_procesos.js, js/MCP/velneo\_busquedas.js, js/MCP/velneo\_tablas.js
  * Procesos MCP
* Proyecto aplicación
  * Formularios API\_KEY\_CFG\_DSC y API\_KEY\_CFG\_GEN

Objetos modificados:

* Proyecto datos
  * Tabla API\_KEY\_W
* Proyecto de aplicación
  * Formularios API\_KEY\_CFG y API\_SEG\_W\_NOT

### VERP-3680

#### General. Generación de dashboards con scripts

Se ha potenciado el uso de los scripts para permitir alojar allí la generación de gráficos/dashboards. Actualmente con la IA y el API de Velneo (vJavascript) se pueden conseguir resultados muy avanzados y profesionales.

Cada script se puede asignar a usuarios. Se ha implementado un menú donde ver los dashboards del usuario. Así mismo, se puede marcar los dashboards que el usuario quiere que se le “disparen” al entrar (iniciar) en la aplicación. Por seguridad también se ha implementado una lista negra de comandos que impiden ejecutar el script (altas/modificaciones/eliminaciones de registros a través de vJavascript API Velneo).

Objetos modificados:

* Proyecto de datos
  * Tabla SCR\_W
* Proyecto de aplicación
  * Formulario SCR\_W
  * Proceso AUTOEXEC\_POS\_INI

Objetos nuevos:

* Proyecto de datos
  * Scripts de la carpeta js/graficos\_Dinamicos
  * Tabla USR\_SCR\_M
  * Función EJE\_SCR
  * Procesos EJE\_SCR y REC\_SCR\_AUT\_GEN
* Proyecto de aplicación
  * Rejilla USR\_SCR\_M\_USR
  * Formularios SCR\_W\_RES y SCR\_W\_USR
  * Carpeta “Dashboards dinámicos con scripts” (está dentro de la carpeta "Maestros")

### VERP-3684

#### General: error en la condición para activar/desactivar la opción de cambiar de instancia al ejecutar la aplicación

Objetos modificados:

* Proyecto de aplicación.
  * Proceso AUTOEXEC\_PRE\_INI

### VERP-3685

#### General. Multi-empresa las variables globales no reflejaban la empresa seleccionada por el usuario

Corregido el inicio de vERP en entornos multi-empresa para que las variables globales de empresa reflejen correctamente la empresa seleccionada por el usuario. Anteriormente, al tener varias empresas configuradas, las variables globales siempre tomaban los datos de la primera empresa, independientemente de cuál hubiera elegido el usuario. Esto podía provocar que se trabajara con datos de configuración de una empresa diferente a la seleccionada

Objetos modificados:

* Proyecto de aplicación
  * Proceso AUTOEXEC\_PRE\_INI

### VERP-3697

#### SII. Cuando se envía una factura al SII y tiene algún error (pero sí tiene CSV) no se permite reenviarla al SII

Se corrige para que se permitan reenvíos de facturas que ya pudieran estar registradas en el SII de la AEAT.

Objetos modificados:

* Proyecto de aplicación (solución SII)
  * Formularios FAC\_EMI\_C\_SII y FAC\_REC\_C\_SII
  * Procesos FAC\_EMI\_C\_SII\_LST\_ENV y FAC\_REC\_C\_SII\_LST\_ENV

### VERP-3702

#### SII. Plantillas de claves y concepto SII por serie

Se ha integrado una notable mejora en el SII para que se rellenen automáticamente las claves y concepto del SII en el registro de extensión del registro de IVA. Si la serie del registro de IVA no tiene plantilla SII asignada, las claves se rellenarán con sus valores por defecto, y el concepto el que esté indicado en la configuración de la empresa.

Objetos nuevos:

* Proyecto de datos (solución SII)
  * Tablas PLT\_SII y SER\_M\_EXT\_SII
  * Proceso PAR\_XML\_JS y SII\_FEC\_LIM
  * Funciones PAR\_XML y SII\_FEC\_LIM
  * Scripts JS SII/Parse\_XML.js y SII/SII\_CalcularPlazo.js
* Proyecto de aplicación (solución SII)
  * Rejilla PLT\_SII
  * Formularios PLT\_SII, SER\_M\_EXT\_SII y SER\_M\_EXT\_SII\_SRC
  * Localizadores PLT\_SII\_COM, PLT\_SII\_VTA, SII\_TIPO\_CLV\_REG\_EMI\_TODAS, SII\_TIPO\_CLV\_REG\_REC\_TODAS, SII\_TIPO\_TIP\_EXE\_TODAS, SII\_TIPO\_TIP\_FAC\_EXP\_TODAS y SII\_TIPO\_TIP\_NO\_SUJ\_TODAS
  * Proceso SER\_M\_SII\_EXT
  * Acciones PLT\_SII\_ALT, PLT\_SII\_LOC\_COM, PLT\_SII\_LOC\_VTA, PLT\_SII\_MOD, PLT\_SII\_SII\_CLV\_REG\_EMI\_LOC, PLT\_SII\_SII\_CLV\_REG\_REC\_LOC, PLT\_SII\_SII\_TIP\_EXE\_LOC, PLT\_SII\_SII\_TIP\_FAC\_LOC, PLT\_SII\_SII\_TIP\_NO\_SUJ\_LOC, PLT\_SII\_SII\_TIP\_REC\_LOC Y PLT\_SII\_SII\_TIP\_SUJ\_NO\_EXE\_LOC
  * Menús PLT\_SII\_COM, PLT\_SII\_SII\_CLV\_REG\_EMI, PLT\_SII\_SII\_CLV\_REG\_REC, PLT\_SII\_SII\_TIP\_EXE, PLT\_SII\_SII\_TIP\_FAC, PLT\_SII\_SII\_TIP\_NO\_SUJ, PLT\_SII\_SII\_TIP\_REC, PLT\_SII\_SII\_TIP\_SUJ\_NO\_EXE y PLT\_SII\_VTA

Objetos modificados:

* Proyecto de datos (solución SII)
  * Tablas SII\_TIP, FAC\_REC\_C\_EXT\_SII y FAC\_EMI\_C\_EXT\_SII
* Proyecto de aplicación (solución SII)
  * Eliminado proceso PAR\_XML\_JS
  * Eliminado script JS SII/Parse\_XML.js
  * Rejillas FAC\_EMI\_C\_SII y FAC\_REC\_C\_SII
  * Formularios ASI\_C, COM\_MSG, FAC\_EMI\_C\_EXT, FAC\_REC\_C\_EXT
  * Procesos FAC\_EMI\_C\_SII\_CAL\_PER, FAC\_EMI\_C\_SII\_EXT, FAC\_EMI\_C\_SII\_GEN\_XML, FAC\_REC\_C\_SII\_ANU\_GEN\_XML, FAC\_REC\_C\_SII\_CAL\_PER, FAC\_REC\_C\_SII\_EXT y FAC\_REC\_C\_SII\_GEN\_XML
  * Función PAR\_XML
  * Acciones FAC\_REC\_C\_SII\_CON\_LST y FAC\_REC\_C\_SII\_ENV\_LST
  * Alternador de lista FAC\_REC\_C\_SII

### VERP-3703

#### SII. Permite descontabilizar las facturas enviadas con estado correcto al SII

Se corrige para que no permita descontabilizar desde los formularios indicados cuando el estado de la factura en el SII es correcto. Además, ahora ya se permite que si se ha enviado la factura al SII y posteriormente se anula en el SII, que se pueda descontabilizar la factura, se corrige o modifica algo de ella, se vuelve a contabilizar y se pueda volver a enviar al SII.

Objetos modificados:

* Proyecto de aplicación (solución SII)
  * Formularios COM\_FAC\_G\_ASI y VTA\_FAC\_G\_ASI

### VERP-3709

#### API REST. Configuración masiva de endpoints de seguridad

Nueva funcionalidad que permite agregar y configurar múltiples tablas a la vez en la seguridad de un API KEY. Selecciona las tablas que necesitas, define los métodos HTTP y permisos, y aplica la configuración de forma masiva. Si el endpoint ya existe, se actualiza automáticamente; si no existe, se crea. Ahorra tiempo y simplifica la gestión de permisos en tu API REST.

* Objetos nuevos:
  * Proyecto de datos
    * Tablas API\_SEG\_MEM\_W
  * Proyecto de aplicación
    * Dibujo ALT\_MAS
    * Formularios API\_SEG\_MEM\_W y API\_SEG\_MEM\_W\_MOD\_ATR\_MAS
    * Rejillas API\_SEG\_MEM\_W
    * Procesos API\_SEG\_MEM\_W\_LST\_VAC y API\_SEG\_ADD\_REG
    * Script js/datos/leerTablasParaAPI.js
* Objetos modificados:
  * Proyecto de aplicación
    * Formulario API\_KEY\_W

### VERP-3714

#### vERP. General añadir columna Empresa división en las rejillas de documentos de venta (presupuestos, pedidos, albaranes y facturas de venta)

Añadida configuración en empresas que permite activar la visualización de una nueva columna en la rejilla de facturas de venta, donde se visualiza la división de la empresa de cada factura. En la empresa se configura para todas las divisiones de la misma en el formulario Varios de configuración.

Objetos modificados:

* Proyecto de datos
  * Tabla EMP\_M
* Proyecto de aplicación.
  * Formulario EMP\_M\_CFG\_VAR
  * Rejillas VTA\_PRE\_G, VTA\_PED\_G, VTA\_ALB\_G y VTA\_FAC\_G

### VERP-3741

#### vCRM. Contador de oportunidades

Se incorpora en vCRM un contador para oportunidades, cuyo formato puede definirse como fórmula y por ejercicio. En las rejillas de oportunidades donde aparece la columna Código, ahora aparecerá el nº de oportunidad en formato contador o el ID del registro tal como aparecía antes de incorporar el contador, dependiendo de si la oportunidad tiene contador o no. La búsqueda de oportunidades también localiza registros a partir del nuevo contador. El nº de oportunidad también se incorpora en el formulario de la oportunidad.

Objetos nuevos:

* Proyecto de datos (solución vCRM)
  * Tabla OPO\_CNT\_V
  * Funciones FNC\_BUS\_OPO\_CNT y FNC\_SIG\_NUM\_OPO
  * Traspaso de campo TRA\_NUM\_OPO

Objetos modificados:

* Proyecto de datos (solución vCRM)
  * Tablas PAR\_VZ\_V y OPO\_V
  * Proceso OPO\_V\_TRG\_ANT\_ALT\_MOD
* Proyecto de aplicación (solución vCRM)
  * Rejilla OPO\_V\_MEN\_PRS
  * Formularios PAR\_OPO y OPO\_V\_MOD
  * Proceso SO\_GET\_OPO\_DES\_CTT\_3P

### VERP-3742

#### vCRM. Descarga del calendario Office 365 a la agenda

Es posible descargar en la agenda interna del vCRM el calendario Office 365 del comercial. Si el comercial tiene configurada su opción de integración con Office 365, se le habilitará la opción de “Obtener eventos Office 365”.

Objetos nuevos:

* Proyecto de datos (solución vCRM)
  * Tabla GES\_EVT\_V
  * Tabla estática GES\_EVT\_ORI
* Proyecto de aplicación (solución vCRM)
  * Procesos OBT\_EVT\_OFI\_365, OFI\_365\_GES\_EVT\_4P y OFI\_365\_REQ\_EVE\_USR
  * Script js/IntegracionOffice365/requestUserEvents.js
  * Acción OBT\_EVT\_OFI\_365 y OBT\_EVT\_OFI\_365\_AGE

Objetos modificados:

* Proyecto de datos (solución vCRM)
  * Tablas GES\_V y GES\_EML\_V
* Proyecto de aplicación (solución vCRM)
  * Rejilla PRS\_VIS\_USU\_V\_GES manejador de evento GES\_COR\_OFI\_365
  * Formularios OFI\_365\_OAUTH\_LOGIN, OPO\_V\_MEN, GES\_V\_AGE y AGE\_MEN
  * Búsqueda GES\_V\_AGE
  * Menús OPO\_V\_MEN\_OPC y AGE\_MEN\_OPC
  * Script js/IntegracionOffice365/Office365Handler.js

### VERP-3743

#### vCRM. Descarga de emails Office 365 en formato ".eml"

Nueva funcionalidad que permite descargar el contenido completo de un email Office 365 en formato “.eml”, para posteriormente poder seguir interactuando con el hilo de dicho email en, por ejemplo, en otro gestor de correo y por otro comercial. Hasta ahora, en las gestiones de las oportunidades se dispone de los emails descargados, pero si un comercial que no es el propietario del email descargado quiere interactuar con el hilo de dicho email, no podía hacerlo ya que el email no lo ha generado él. El formato estándar “.eml” permite obtener todo el email y abrirlo desde cualquier otra cuenta y seguir interactuando con el hilo del mismo. Muy útil por ejemplo si han habido cambios de comerciales que deben proseguir el seguimiento de oportunidades de otros comerciales.

Objetos nuevos:

* Proyecto de aplicación (solución vCRM)
  * Proceso GES\_V\_ABR\_EML\_FIC\_1P
  * Función OFI\_365\_GET\_EML\_B64
  * Scripts js/IntegracionOffice365/scripts funciones/OFI\_365\_GET\_EML.js y js/IntegracionOffice365/scripts funciones/B64 a fichero SND.js

Objetos modificados:

* Proyecto de aplicación (solución vCRM)
  * Formulario GES\_V
  * Script js/IntegracionOffice365/Office365Handler.js

### VERP-3745

#### vCRM. Descarga de emails Office 365 a su oportunidad

Con la introducción del contador de oportunidades se facilita que cualquier email de Office 365 en el que en su asunto se haya indicado el nº de oportunidad (#nºoportunidad) se pueda vincular a esa oportunidad. Ello mejora la experiencia de usuario al interactuar con el timeline de la oportunidad, ya que a partir de ahora el usuario puede elegir si ver todo el histórico de emails redactados con el contacto principal de la oportunidad, como hasta ahora, o solo ver los emails propios de dicha oportunidad.

Objetos modificados:

* Proyecto de aplicación (solución vCRM)
  * Proceso OFI\_365\_GES\_MSG\_4P

### VERP-3746

#### vCRM. Office 365. Opciones dentro de la oportunidad para crear nuevo email y nuevo evento calendario

Desde el mismo formulario de la oportunidad es posible generar un nuevo email y un nuevo evento en el calendario, en Office 365, y que quede vinculado a la oportunidad. Se implementa también un timer para que si se ha generado un nuevo email o evento, y pasado un tiempo y no se haya cerrado el formulario de la oportunidad, conseguir el refresco (bajada) de dicho nuevo email o evento al timeline de la oportunidad.

Objetos nuevos:

* Proyecto de datos (solución vCRM)
  * Dibujo EVT
* Proyecto de aplicación (solución vCRM)
  * Función ABR\_EVT\_OUTLOOK

Objetos modificados:

* Proyecto de aplicación (solución vCRM)
  * Formulario OPO\_V\_MOD
  * Procesos OBT\_COR\_OFI\_365, OBT\_EVT\_OFI\_365, OFI\_365\_GES\_MSG\_4P y OFI\_365\_REQ\_MSG\_USR
  * Scripts js/IntegracionOffice365/Office365Handler.js y js/IntegracionOffice365/requestUserMessages.js

### VERP-3747

#### vCRM. Opciones dentro de la oportunidad para forzar la descarga de emails y eventos calendario

Se incorporan en el formulario de oportunidad las opciones para forzar la descarga de emails y eventos calendario, facilitando la usabilidad al usuario y que no deba salir de la oportunidad e ir a la opción general de descarga.

Objetos nuevos:

* Proyecto de aplicación (solución vCRM)
  * Acciones OPO\_V\_REC\_GES\_EML y OPO\_V\_REC\_GES\_EVE

Objetos modificados:

* Proyecto de aplicación (solución vCRM)
  * Formulario OPO\_V\_MOD
  * Menú OPO\_V\_MEN\_FRM\_OPO

### VERP-3748

#### vCRM. Carga del timeline de la oportunidad en 3P

Se cambia la carga del timeline de la oportunidad a 3P, pues cuando la oportunidad tiene un timeline extenso se notaba carga lenta del mismo, afectando a la experiencia de usuario. Ahora la carga del timeline es mucho mejor.

Objetos nuevos:

* Proyecto de aplicación (solución vCRM)
  * Proceso OPO\_V\_GET\_GES\_CTT\_3P

Objetos modificados:

* Proyecto de aplicación (solución vCRM)
  * Proceso OPO\_V\_GET\_GES\_CTT

### VERP-3749

#### vERP. Actualización en la gestión documental de Google Drive por adopción de HTTP2.0

Con la actualización de la plataforma, se adopta el estándar HTTP2.0 para las comunicaciones HTTP y HTTPS. Este cambio introduce modificaciones en el manejo de los headers de las peticiones, ya que el protocolo requiere el uso de un formato específico (camelCase).

Como consecuencia, se realizaron ajustes en la integración con Google Drive para garantizar la compatibilidad con este nuevo comportamiento y asegurar el correcto funcionamiento de las operaciones documentales.

### VERP-3750

#### vERP. El control SER\_FAC\_REC tiene asociado un menú de botón incorrecto

Se ha corregido el menu de boton asociado al control de edición alfabética SER\_FAC\_REC (Serie) del formulario FAC\_REC\_C\_MEN por el correspondiente que es USR\_VAR\_W\_BTN\_SER\_FAC\_REC.&#x20;

Objetos modificados

* Proyecto de aplicación
  * Formulario
    * FAC\_REC\_C\_MEN

### VERP-3760

#### Contabilidad. Modelo 349 en "Declaración recapitulativa de operaciones intracomunitarias", el campo NUM NIF EMPRESARIO O PROFESIONAL DESTINATARIO FINAL SUSTITUTO tiene un tipo incorrecto

Se ha cambiado el tipo de dato del campo “NUM NIF EMPRESARIO O PROFESIONAL DESTINATARIO FINAL SUSTITUTO” en el REGISTRO DE OPERADOR INTRACOMUNITARIO del modelo 349.

### VERP-3764

#### vCRM. Actualizado dist/lib/vCRM.js para evitar errores de ejecución en el motor Javascript de Velneo

Actualizada la configuración de compilación webpack del bundle vCRM.js. Los cambios son exclusivamente técnicos de build y no afectan a la lógica de negocio:

* Eliminada la directiva "use strict" de todos los módulos webpack (76 módulos afectados). Esto resuelve los errores de ejecución en el nuevo motor JavaScript de Velneo, que no es compatible con strict mode implícito en este contexto.
* Modificado el patrón de declaración de clases: las variables ahora se pre-declaran con “var” al inicio del scope del módulo y se asignan posteriormente (en lugar de declaración+asignación simultánea). Este cambio es necesario para garantizar la visibilidad de las clases en el scope global de Velneo antes de que webpack ejecute la fase de binding.
* Los módulos barrel (index.js) siguen el mismo patrón: pre-declaración de imports seguida de asignación.

Objetos modificados:

* Proyecto de datos (solución vCRM)
  * Script dist/lib/vCRM.js

### VERP-3772

#### vCRM. Descarga de emails Gmail a su oportunidad

Con la introducción del contador de oportunidades se facilita que cualquier email de Gmail en el que en su asunto se haya indicado el nº de oportunidad (#nºoportunidad) se pueda vincular a esa oportunidad. Ello mejora la experiencia de usuario al interactuar con el timeline de la oportunidad, ya que a partir de ahora el usuario puede elegir si ver todo el histórico de emails redactados con el contacto principal de la oportunidad, como hasta ahora, o solo ver los emails propios de dicha oportunidad.

Objetos modificados:

* Proyecto de datos (solución vCRM)
  * Script dist/lib/vCRM.js


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.velneo.com/velneo-verp/novedades-de-la-version-verp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
