Cómo leer un mensaje de EU Pay Transparency
Los mensajes aparecen cuando intentas una acción que el módulo no permite en ese momento, o cuando falla la validación del campo Field Mapping.
Las partes entre llaves, como {rec.name} o {MAX_CSV_MB}, son variables: en pantalla verás el valor concreto en su lugar.
Algunos mensajes terminan con una referencia entre paréntesis, como Dir. 2023/970 art. 5, RD 902/2020 art. 7 o un código del tipo FR-040. Es la referencia que el propio módulo pone junto a la regla que aplica: tómala como pista de por qué bloquea, no como un análisis legal de tu caso.

Pay Transparency › Pay Component Classification, con Base Salary, Complementary Pay y Annual Bonus, el botón New y el menú superior del módulo.Tabla de mensajes: cuándo salen y qué hacer
Están ordenados por lo que estabas haciendo: vacantes y exportación, cálculos, privacidad, importación de CSV, comité de empresa, Plan de Igualdad, informes y configuración.
| Mensaje | Cuándo sale | Qué hacer |
|---|---|---|
A published salary range is required before the vacancy "{rec.name}" can be advertised. | Al anunciar una vacante sin banda salarial publicada. Cita Dir. 2023/970 art. 5 y FR-040. | Introduce el salario mínimo y el máximo del puesto. |
XLSX export requires the xlsxwriter library. | Al exportar a XLSX sin la librería xlsxwriter en el servidor. | Contacta con el administrador del sistema o usa la acción de exportación a PDF. |
Invalid state transition: {rec.state} → {new_state}. | Al pedir un cambio de estado que el módulo no admite. | Mira el estado actual y el de destino que muestra el mensaje. |
Only draft runs can be started. | Al iniciar una ejecución de cálculo que no está en draft. | Inicia solo ejecuciones en draft. |
Only ready runs can be approved. | Al aprobar una ejecución que no está en ready. | Apruébala solo cuando esté en ready. |
No employees found for this company and period. | Cuando no hay empleados para la empresa y el periodo elegidos. | Comprueba la empresa y el periodo. |
DSAR export requires an identified employee. | Al pedir una exportación DSAR sin empleado identificado. | Identifica antes al empleado. |
No erasure request to process. | Al procesar un borrado sin solicitud de borrado. | Comprueba que existe la solicitud. |
Please select a CSV file to import. | Al importar sin elegir archivo. | Selecciona el CSV. |
File exceeds the maximum size of {MAX_CSV_MB} MB. | Cuando el archivo supera el tamaño máximo. | Comprímelo o divídelo en partes más pequeñas. |
CSV file contains {len(rows)} rows, which exceeds the maximum of {MAX_CSV_ROWS}. | Cuando el CSV tiene más filas que el máximo. | Divide el archivo. |
File upload rejected: security scan failed. | Cuando la subida no pasa el análisis de seguridad. | Contacta con tu administrador. |
Only HR Director can regenerate the works council token. | Al regenerar el token del comité sin ser HR Director. | Pide que lo haga un HR Director. |
Only the HR Director can invite the works council. | Al invitar al comité sin ser HR Director. | Pide que lo haga el HR Director. |
Nobody to invite: add the works council representatives to the group "Pay Transparency / Works Council" of this company first. | Al invitar cuando ese grupo de la empresa está vacío. | Añade a los representantes al grupo. |
Cannot transition Plan de Igualdad from "{rec.state}" to "{vals["state"]}". | Al mover un Plan de Igualdad a un estado no permitido. | Elige una de las transiciones que lista el mensaje tras Allowed transitions. |
Cannot finalise the Registro Retributivo: a gender pay gap exceeds 25% and no written justification has been provided. | Al finalizar con una brecha superior al 25% sin justificación. Cita RD 902/2020 art. 7. | Escribe el texto de justificación y finaliza. |
Report must pass legal review before submission. | Al enviar un informe sin revisión legal. | Completa la revisión legal. |
Field Mapping must be valid JSON: {exc} | Cuando Field Mapping no es JSON válido. | Corrige el JSON del campo. |
Field Mapping is missing metric codes: {", ".join(missing)} | Cuando faltan códigos de métrica. | Añade los códigos que lista el mensaje. |
A right-to-information request for this worker category was already submitted within the last {cooldown_months} months. | Con una segunda solicitud para la misma categoría dentro del periodo de espera, que el módulo describe como configurable. Cita Dir. 2023/970 art. 7. | Espera antes de enviar otra, como pide el mensaje. |
Category "{rec.name}" is referenced by computation metric lines and cannot be deleted. | Al borrar una categoría usada en líneas de métricas de cálculo. | Archívala en lugar de borrarla. |

Pay Transparency › Joint Pay Assessments › All JPAs: un registro JPA Management de YourCompany, categoría Management, en estado Open y con la casilla Overdue marcada.Los registros que el módulo no deja tocar
Otro grupo de mensajes no señala un dato que falte: protege registros que el módulo da por cerrados. No hay nada que corregir en el formulario; el mensaje dice que esa acción no está permitida.
- Registro de auditoría.
The audit log is immutable and cannot be modified.yAudit log entries cannot be deleted.Tampoco se crean entradas directamente:Direct creation of audit log entries is not allowed. Use pt.audit.log._log() instead.Este último va dirigido a quien programa sobre el módulo. - Metadatos de auditoría. Si los metadatos de una entrada llevan claves no permitidas, sale
Audit log metadata contains disallowed key(s): {", ".join(sorted(forbidden))}. Only non-PII structural keys are permitted., con la referenciaFR-061 / Dir. 2023/970 art. 9. - Cálculos aprobados.
An approved computation run is immutable and cannot be modified.yApproved computation runs cannot be deleted. - Informes enviados.
Submitted reports are immutable and cannot be modified.ySubmitted reports cannot be deleted.
Revisa los datos antes de aprobar un cálculo o enviar un informe: después, el módulo no deja modificarlos ni borrarlos.

Cómo te ayuda FlexigoTech
EU Pay Transparency está publicado en Odoo Apps para 17, 18, 19 y 20, a 9 € por versión de Odoo, pago único y sin IVA; tienes el detalle en la ficha de Odoo Apps y en la página del módulo. Si aún lo estás configurando, la puesta en marcha recorre ajustes, campos y estados de cada registro.
FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida. Si uno de estos mensajes choca con tu forma de trabajar, podemos revisarlo contigo dentro de la implantación.
Sigue leyendo
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/hr_job.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_audit_log.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_budget_sim.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_computation_run.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_dsar_request.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_import_wizard.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_jpa.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_plan_igualdad.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_registro.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_report.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_report_template.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_rti_request.py
- Código del módulo: flexigo_paytransparency 20.0 (a4edd772): models/pt_worker_category.py
- apps.odoo.com/apps/modules/20.0/flexigo_paytransparency
- apps.odoo.com/apps/modules/17.0/flexigo_paytransparency
- apps.odoo.com/apps/modules/18.0/flexigo_paytransparency
- apps.odoo.com/apps/modules/19.0/flexigo_paytransparency
- flexigotech.com/en/services.html
