# Operativa y soporte

Rutinas periódicas, incidencias y seguridad

# 13. Rutinas periódicas recomendadas

## 13.1 Rutina diaria (automática)

| Tarea | Cómo |
|---|---|
| Cálculo de la visión consolidada | **Cálculo diferido** programado a las 02:00, todos los días |

## 13.2 Rutina semanal (5 minutos)

| Tarea | Pantalla |
|---|---|
| Revisar descuadres nuevos | *Matriz Situación Grupo* con **Mostrar solo descuadres** |
| Liquidar cobros y pagos a cuenta | Columna **Pendiente de liquidar** |
| Revisar vencidos intercompañía | Lista *Total por empresa*, columnas de vencido |

## 13.3 Rutina mensual (cierre)

| Orden | Tarea | Pantalla |
|---|---|---|
| 1 | Leer los saldos de las empresas vinculadas | *Matriz Situación Grupo* → **Actualizar** |
| 2 | Resolver todos los descuadres | *Matriz Situación Grupo* |
| 3 | Facturar los anticipos pendientes | *Facturación interempresa* |
| 4 | Liquidar todos los cobros y pagos a cuenta | *Liquidaciones intercompañía* |
| 5 | Cuadrar la financiación intragrupo | Parte de *Financiación* → **Buscar la diferencia** |
| 6 | Verificar el resultado agregado | *Panorama esq. cta. Grupo*, visión Agregado |
| 7 | Recalcular y revisar el consolidado | *Panorama esq. cta. Grupo*, visión Consolidado → **Recalcular** |
| 8 | Exportar a Excel para el comité | **Exportar a Excel** |

## 13.4 Rutina trimestral / anual

| Tarea | Pantalla |
|---|---|
| Revisar la posición global de los principales clientes y proveedores | *Clientes y Proveedores InterEmpresa* |
| Detectar maestros mal dados de alta (columna **No consolidable**) | *Clientes y Proveedores InterEmpresa* |
| Exportar la configuración como copia de seguridad | *Configuración* → **Exportar configuración** |
| Revisar los conjuntos de permisos de los usuarios | *Usuarios* |
| Verificar que **Permitir solicitudes HttpClient** sigue activo | *Administración de extensiones* |

# 14. Resolución de problemas

## 14.1 Configuración

| Síntoma | Causa probable | Solución |
|---|---|---|
| **No puedo cerrar la ficha del grupo** | Falta la abreviatura de alguna empresa | El mensaje indica cuáles. Rellene el campo **Abreviación** |
| | Hay líneas de financiación sin contrapartida | Revise la parte de financiación y cree las líneas espejo, o informe el *Nº cuenta contraparte* |
| | Existe otro grupo con exactamente las mismas empresas | Elimine el grupo duplicado o modifique alguna de sus empresas |
| **Actualizar referencias y cuentas da error** | Alguna empresa no tiene CIF/NIF en *Información de la empresa* | El mensaje lista las empresas afectadas. Rellene el NIF |
| | Alguna empresa vinculada no tiene conexión o empresa remota asignada | Complete la configuración de la vinculada |
| **Un par queda siempre incompleto** | No existe la ficha de cliente o proveedor, o su NIF no coincide | Cree la ficha o corrija el NIF, y vuelva a ejecutar el proceso. Alternativamente, informe el número a mano |
| **El desplegable de cliente de una referencia da error** | La empresa está en otra suscripción | Use las cuentas de empresas vinculadas, no esta pantalla |

## 14.2 Informes financieros

| Síntoma | Causa probable | Solución |
|---|---|---|
| **No aparece la acción *Panorama grupo*** | La empresa actual no pertenece a ningún grupo ni es la empresa de gestión de resultados | Añádala al grupo o indíquela como *Empresa de gestión de resultados* |
| **Error al abrir: no hay grupos** | No se ha creado ningún grupo de empresas | Cree un grupo en *Lista grupos de empresas* |
| **La visión consolidada da error** | El esquema usa una **vista de análisis** | La consolidación no es compatible con vistas de análisis. Use un esquema basado en contabilidad |
| | Faltan referencias intercompañía | El mensaje lista los pares pendientes. Ejecute *Actualizar referencias y cuentas* |
| **Una columna aparece vacía** | Esa empresa no tiene el mismo esquema de cuentas o la misma plantilla de columnas | Use *Copiar informes financieros* |
| **Celdas en rojo** | Error de cálculo: división por cero o periodo inválido | Revise la fórmula de la fila o de la columna en el esquema |
| **El cálculo consolidado tarda muchísimo** | No hay versión guardada | Programe un **cálculo diferido** nocturno |
| **No puedo hacer drill-down desde una celda** | La fila es de tipo *Fórmula*, *Base para porcentaje* o *Cuentas de flujo de caja* | Es una limitación conocida: esas filas no tienen movimientos detrás |
| **Faltan columnas en pantalla** | El grupo tiene más de 12 empresas | Use **Columna siguiente** / **Columna anterior** |
| **Error de abreviaturas al activar nombres abreviados** | Alguna empresa no tiene abreviatura | El mensaje indica cuáles |

## 14.3 Matriz de deuda

| Síntoma | Causa probable | Solución |
|---|---|---|
| **Una relación aparece *Sin configurar*** | Falta el nº de cliente o de proveedor en las referencias | Complételo en *Referencias intercompañía* |
| **Una relación aparece *Solo un lado*** | Es una empresa vinculada cuyos saldos no se han leído, o cuya divisa no es comparable | Pulse **Actualizar** y acepte leer los saldos remotos; o revise la divisa de las cuentas |
| **Una relación aparece *Descuadrada* pero los documentos coinciden** | Diferencia de tipo de cambio o de fecha de registro | Revise el indicador **Convertido** en el detalle: significa que el importe se convirtió con un tipo de cambio |
| **La matriz sale vacía** | Está activo **Ocultar relaciones sin acción** y todo está cuadrado | Desmarque la casilla |
| | Hay un **Filtro de empresa** activo | Use el selector y pulse *Ver todas las empresas* |
| **No se leen los saldos de una empresa vinculada** | *Permitir solicitudes HttpClient* desactivado | Actívelo en *Administración de extensiones* → *Configurar* |
| | La extensión no está registrada en la otra suscripción | El mensaje lo indica explícitamente. Instale y registre la extensión allí |
| | Credenciales incorrectas | Revise el *Id. de aplicación* y el *Secreto de cliente*. Recuerde: el secreto es el **Valor**, no el Id. |
| | La otra suscripción tiene una versión anterior | Actualice la extensión en el otro tenant a la misma versión |

## 14.4 Liquidación

| Síntoma | Causa probable | Solución |
|---|---|---|
| **La propuesta queda en *Fallida* sin mensaje claro** | La sesión en segundo plano no arrancó, o falló por un motivo no previsto | Use **Abrir diario** y registre la línea manualmente para ver el error real |
| **Propuestas *Pendiente* que nunca arrancan** | Las sesiones en segundo plano están saturadas | Se marcan como fallidas tras 60 segundos. Vuelva a lanzarlas |
| **Se aplicaron unas líneas y otras no** | Movimientos que se cerraron entre la generación y la ejecución de la propuesta | Pulse **Actualizar** y genere las propuestas de nuevo |
| **No se genera ninguna propuesta** | No hay cobros o pagos a cuenta, o no hay facturas abiertas en la misma divisa | Verifique en el detalle de la relación que existen las dos cosas |

## 14.5 Facturación interempresa

| Síntoma | Causa probable | Solución |
|---|---|---|
| **«Este par de empresas no tiene todavía ninguna plantilla»** | No se han creado plantillas | Use *Proponer plantillas con IA* o *Crear propuesta manual* |
| **«Escriba el importe a facturar en al menos una plantilla»** | Todas las plantillas tienen importe cero | Informe el importe en la columna correspondiente |
| **«El importe a facturar no puede ser mayor que lo pendiente»** | El total supera el anticipo | Ajuste los importes |
| **La prueba de registro falla** | Cuenta bloqueada, dimensión obligatoria, periodo cerrado, grupo contable inconsistente | El mensaje muestra el error real de Business Central. Corríjalo en la empresa correspondiente |
| **La IA propone cuentas que no existen** | El modelo infirió una cuenta del histórico que no está en esa empresa | Las filas afectadas aparecen en rojo y sin nombre. No las marque |
| **La IA no devuelve nada útil** | No hay histórico entre las dos empresas | Use *Empresas de las que aprender* para tomar conceptos de otro par |
| **El proceso se queda esperando** | La sesión en la otra empresa tarda más de 3 minutos | Compruebe si las facturas se han creado antes de reintentar |
| **El total del borrador no coincide con el solicitado** | Se ha modificado el borrador o su configuración no permite obtener el total esperado | Revise precios, IVA, retención y redondeo en la empresa del documento. El registro se bloquea mientras el total no coincida |
| **La venta está registrada y la compra no** | El registro de la compra falló después de comprobar ambos lados | Corrija el error y use **Registrar facturas generadas** para el borrador pendiente. No genere otra venta |
| **No se puede rechazar un borrador remoto** | Error de conexión, permisos o rechazo en la otra suscripción | Compruebe el estado remoto, corrija la causa y repita **Rechazar facturas**. La petición local se conserva si falla el rechazo |

## 14.6 Inteligencia artificial

| Síntoma | Causa probable | Solución |
|---|---|---|
| **No puedo activar *Habilitar propuestas con IA*** | Falta el endpoint, el deployment, la clave, o no se ha probado la conexión | Complete los campos y pulse **Probar conexión** |
| **«No se ha podido conectar»** | *Permitir solicitudes HttpClient* desactivado | Actívelo |
| | Endpoint o clave incorrectos | Verifique los datos en Azure AI Foundry |
| **«No se ha indicado el nombre de implementación»** | Falta el deployment | Es la columna *Name* en Azure AI Foundry → *Deployments* |
| **Se desactivó solo *Habilitar propuestas con IA*** | Se cambió el endpoint o el deployment | Es el comportamiento previsto. Vuelva a probar la conexión y actívelo |

## 14.7 Clientes y proveedores

| Síntoma | Causa probable | Solución |
|---|---|---|
| **«La matriz admite hasta 12 empresas»** | El grupo tiene más de 12 empresas locales | Use el **Filtro de empresa** |
| **Una entidad sale partida en varias filas** | Sus fichas tienen NIF distintos o alguna no tiene NIF | Unifique el NIF en las fichas. Las filas sin NIF aparecen marcadas **No consolidable** |
| **Las cifras de la ficha no se actualizan** | Están cacheadas durante la sesión | Pulse **Actualizar posición del grupo** |
| **No aparece el bloque *Posición en el grupo*** | No hay ningún grupo de empresas creado | Cree un grupo |
| **Una empresa vinculada no aparece** | Esta matriz solo muestra empresas locales | Es una limitación conocida. Use la *Matriz Situación Grupo* |

## 14.8 Reclasificación

| Síntoma | Causa probable | Solución |
|---|---|---|
| **«La empresa no está disponible en este entorno»** | La empresa del apunte se ha renombrado o eliminado | Revise la configuración del grupo |
| **«El registro de prueba ha fallado»** | Error contable en la empresa destino | El mensaje muestra el error real. Corríjalo allí |
| **«La empresa no ha respondido a tiempo»** | La operación superó los 2 minutos | **Compruebe si se registró** antes de reintentar |
| **No encuentra la cuenta de contrapartida** | No hay configuración de financiación entre esas empresas | Se le pedirá seleccionarla manualmente, o configure la financiación intragrupo |
| **Falta la referencia intercompañía inversa** | No está informado el cliente o proveedor que representa al origen en la otra empresa | Complete la referencia antes de repetir la operación. Esta validación se realiza antes del registro del origen |
| **El apunte ya está reclasificado** | El origen ya se registró en una petición anterior | No repita el asiento. Si hay contraparte pendiente vinculada, la acción propone continuar solo esa parte |
| **La petición sigue en ejecución o no ha comunicado el resultado** | Existe una sesión activa o su estado todavía no está resuelto | Revise la sesión y los documentos con el administrador. No borre la petición para forzar un nuevo registro |
| **El origen se registró y falló la contraparte** | Error posterior a las pruebas previas | Corrija la causa y repita la acción sobre el apunte original; confirme la recuperación exclusiva de la contraparte |

## 14.9 Licencia

| Síntoma | Causa probable | Solución |
|---|---|---|
| **«Se ha superado la cantidad licenciada»** | Hay más conexiones externas de las licenciadas | Marque como *Registrada por su cuenta* las suscripciones con licencia propia, o amplíe la licencia |
| **Las pantallas están bloqueadas** | La base de datos está marcada como **Instalación remota** | Es el comportamiento previsto. Desmárquelo si esta base debe usar las pantallas |
| **Error de licencia al abrir cualquier pantalla** | *Dynasoft Extension Manager* no instalado o licencia caducada | Contacte con su partner |

# 15. Seguridad, privacidad y auditoría

## 15.1 Datos que trata la extensión

| Dato | Tratamiento |
|---|---|
| Movimientos contables, de cliente y de proveedor en consultas e informes | **Solo lectura**; las liquidaciones y reclasificaciones se ejecutan desde acciones explícitas |
| Descripción de movimientos contables | **Escritura**, únicamente mediante la acción **Cambiar descripción** |
| Fichas de cliente, proveedor y cuentas contables | **Solo lectura** |
| Documentos registrados | **Solo lectura** |
| Facturas de venta y compra intercompañía | **Escritura**, únicamente mediante la acción explícita del usuario |
| Liquidaciones de movimientos | **Escritura**, únicamente mediante la acción explícita del usuario |
| Asientos de reclasificación | **Escritura**, únicamente mediante la acción explícita del usuario, con prueba previa |
| Configuración de la extensión | Lectura y escritura |

## 15.2 Almacenamiento de credenciales

| Credencial | Dónde se guarda |
|---|---|
| Clave de API de Azure OpenAI | **Almacenamiento aislado** de Business Central, ámbito de módulo, cifrado |
| Secreto de cliente de Microsoft Entra ID | **Almacenamiento aislado**, ámbito de módulo, cifrado |

Ninguna de las dos se muestra nunca en pantalla: los campos presentan un valor enmascarado.

> **Excepción documentada:** la acción **Exportar configuración** incluye ambas credenciales **en texto claro** dentro del fichero JSON, para permitir una restauración completa. Este comportamiento es deliberado y se advierte en el mensaje final de la exportación. Trate el fichero como un fichero de credenciales.

## 15.3 Comunicaciones salientes

| Destino | Cuándo | Qué se envía |
|---|---|---|
| **Azure OpenAI** | Solo al usar la propuesta de conceptos con IA | El prompt configurado más el histórico de facturas **agrupado por concepto** de las dos empresas: cuenta, descripción, importe medio, fechas y número de repeticiones |
| **API de otras suscripciones de Business Central** | Al leer saldos remotos, facturar o liquidar con empresas vinculadas | Peticiones autenticadas con OAuth2 sobre HTTPS |
| **Azure Application Insights** | Telemetría de la extensión | Métricas técnicas de rendimiento (por ejemplo, tiempo de construcción de la matriz de financiación). No incluye datos de negocio identificables |

Todas las comunicaciones requieren que el administrador haya habilitado **Permitir solicitudes HttpClient** de forma explícita.

## 15.4 API publicada

La extensión publica un conjunto de páginas API bajo la ruta:

```
/api/gds/interCompanyTools/v1.0/companies({id})/<entidad>
```

**Entidades de solo lectura** (lo que esta base de datos muestra a otra suscripción del mismo grupo):

| Entidad | Contenido |
|---|---|
| `gdsitCustomers` | Clientes con su NIF, divisa y estado de bloqueo |
| `gdsitVendors` | Proveedores |
| `gdsitCustomerLedgerEntries` | Movimientos de cliente con importe pendiente y fecha de cierre |
| `gdsitVendorLedgerEntries` | Movimientos de proveedor |
| `gdsitSalesInvoices` / `gdsitSalesInvoiceLines` | Facturas de venta registradas |
| `gdsitPurchaseInvoices` / `gdsitPurchaseInvoiceLines` | Facturas de compra registradas |

**Entidades de escritura** (buzones que otra suscripción del grupo rellena):

| Entidad | Efecto |
|---|---|
| `gdsitIncomingInvoices` / `...Lines` | Factura de compra que se nos pide crear y registrar |
| `gdsitIncomingSalesInvoices` / `...Lines` | Factura de venta que se nos pide emitir |
| `gdsitIncomingApplications` | Petición de liquidar una cuenta nuestra |

Cada entidad verifica la licencia al ser consultada. El acceso requiere una aplicación registrada en Microsoft Entra ID con el conjunto de permisos **GDSIT IC TOOLS** asignado.

## 15.5 Trazabilidad

| Mecanismo | Qué registra | Dónde se consulta |
|---|---|---|
| **Exportación datos (JSON)** de la matriz de deuda | Reglas de cálculo, filtros, documentos y conciliación | Acción de la matriz, con *Modo log* activo |
| **Exportar log análisis (JSON)** de los informes | Valor y origen de cada celda | Acción del panorama, con *Modo log* activo |
| **Exportación datos (JSON)** de la matriz de entidades | Las tres vistas completas | Acción de la matriz |
| **Última petición enviada al modelo** | Prompt de sistema, prompt de usuario y respuesta de la IA | *Ver lo que se envió*, con *Modo log* activo |
| **Log sincronización de errores** | Avisos y errores de sincronización | Menú → Configuración → *Log sincronización de errores* |
| **Diario de diagnóstico** de liquidación | Líneas de importe cero por cada pago | Sección `GDSIT-IC` del diario general de la empresa destino |
| **Movimientos de registro** de los cálculos diferidos | Historial de ejecuciones | *Cálculos diferidos* → *Mostrar movimientos de registro* |