这是indexloc提供的服务,不要输入任何密码
Skip to content

[17.0] l10n_es_facturae_face error zeep.exceptions.ValidationError: Expected at least 1 items (minOccurs check) #4051

@metaOkami

Description

@metaOkami

Buenos días, estoy intentando configurar y usar el módulo de envío de facturas a FACe, y me he encontrado con varios problemas:

Por un lado, configurando el módulo tal y como insinua el readme.rst, al intentar enviar una factura me daba el siguiente error en el job del envío edi:

Traceback (most recent call last):
File "/opt/odoo/odoo17/oca-addons/edi-framework/edi_oca/models/edi_backend.py", line 308, in exchange_send
self._exchange_send(exchange_record)
File "/opt/odoo/odoo17/oca-addons/edi-framework/edi_oca/models/edi_backend.py", line 381, in _exchange_send
return component.send()
File "/opt/odoo/odoo17/oca-addons/l10n-spain/l10n_es_facturae_face/components/edi_send_l10n_es_facturae_face.py", line 23, in send
response = self.send_webservice(
File "/opt/odoo/odoo17/oca-addons/l10n-spain/l10n_es_facturae_face/components/webservice_face.py", line 56, in send_webservice
client = self._get_client(public_crt, private_key)
File "/opt/odoo/odoo17/oca-addons/l10n-spain/l10n_es_facturae_face/components/webservice_face.py", line 39, in _get_client
return Client(
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/client.py", line 73, in init
self.wsdl = Document(wsdl, self.transport, settings=self.settings)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/wsdl/wsdl.py", line 92, in init
self.load(location)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/wsdl/wsdl.py", line 95, in load
document = self._get_xml_document(location)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/wsdl/wsdl.py", line 155, in _get_xml_document
return load_external(
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/loader.py", line 87, in load_external
content = transport.load(url)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/transports.py", line 122, in load
content = self._load_remote_data(url)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/transports.py", line 135, in _load_remote_data
response.raise_for_status()
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/requests/models.py", line 943, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://se-face-webservice.redsara.es/facturasspp2

Decir, que subí el certificado tanto a https://se-integradores-face.redsara.es/inicio como a Odoo e igualmente seguía sin funcionar. Abrí un ticket al soporte de FACe sobre si el link del servicio era correcto o si me tenía que dar de alta en algún sitio más y me contestaron esto:

Image

Dejo los links por aquí:

Portales:
https://se-proveedores-face.redsara.es/inicio
https://se-organismos-face.redsara.es/inicio
https://se-integradores-face.redsara.es/inicio
Servicios web REST:
https://se-api-face.redsara.es/integrators/doc
https://se-api-face.redsara.es/providers/doc
https://se-api-face.redsara.es/organisms/doc
Servicios web SOAP nuevos:
https://se-ws-face.redsara.es/proveedores/v1/factura?wsdl
https://se-ws-face.redsara.es/organismos/v1/factura?wsdl
https://se-ws-face.redsara.es/organismos/v1/directorio?wsdl
Servicios web SOAP retro compatibles:
https://se-face-webservice.redsara.es/facturasrcf?wsdl
https://se-face-webservice.redsara.es/directoriosrcf?wsdl
https://se-face-webservice.redsara.es/facturasspp?wsdl
https://se-face-webservice.redsara.es/facturasnotificador?wsdl

Toda la documentación está publicada en el PAe: https://administracionelectronica.gob.es/ctt/face/descargas

Decidí finalmente probar con el ws https://se-face-webservice.redsara.es/facturasspp?wsdl ya que era el que más se parecía a lo que hay puesto como ws de test en el readme, y ahora me responde este error, que no consigo saber a qué se debe:

Traceback (most recent call last):
File "/opt/odoo/odoo17/odoo17-addons/custom-addons/queue_job/controllers/main.py", line 104, in runjob
self._try_perform_job(env, job)
File "/opt/odoo/odoo17/odoo17-addons/custom-addons/queue_job/controllers/main.py", line 36, in _try_perform_job
job.perform()
File "/opt/odoo/odoo17/odoo17-addons/custom-addons/queue_job/job.py", line 522, in perform
self.result = self.func(*tuple(self.args), **self.kwargs)
File "/opt/odoo/odoo17/oca-addons/edi-framework/edi_oca/models/edi_exchange_record.py", line 323, in action_exchange_send
return self.backend_id.exchange_send(self)
File "/opt/odoo/odoo17/oca-addons/edi-framework/edi_oca/models/edi_backend.py", line 308, in exchange_send
self._exchange_send(exchange_record)
File "/opt/odoo/odoo17/oca-addons/edi-framework/edi_oca/models/edi_backend.py", line 381, in _exchange_send
return component.send()
File "/opt/odoo/odoo17/oca-addons/l10n-spain/l10n_es_facturae_face/components/edi_send_l10n_es_facturae_face.py", line 23, in send
response = self.send_webservice(
File "/opt/odoo/odoo17/oca-addons/l10n-spain/l10n_es_facturae_face/components/webservice_face.py", line 69, in send_webservice
response = client.service.enviarFactura(invoice_call)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/proxy.py", line 46, in call
return self._proxy._binding.send(
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/wsdl/bindings/soap.py", line 123, in send
envelope, http_headers = self._create(
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/wsdl/bindings/soap.py", line 73, in _create
serialized = operation_obj.create(*args, **kwargs)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/wsdl/definitions.py", line 222, in create
return self.input.serialize(*args, **kwargs)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/wsdl/messages/soap.py", line 79, in serialize
self.body.render(body, body_value)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/element.py", line 232, in render
self._render_value_item(parent, value, render_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/element.py", line 256, in _render_value_item
return self.type.render(node, value, None, render_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/types/complex.py", line 295, in render
element.render(node, element_value, child_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/indicators.py", line 251, in render
element.render(parent, element_value, child_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/element.py", line 232, in render
self._render_value_item(parent, value, render_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/element.py", line 256, in _render_value_item
return self.type.render(node, value, None, render_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/types/complex.py", line 295, in render
element.render(node, element_value, child_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/indicators.py", line 251, in render
element.render(parent, element_value, child_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/element.py", line 232, in render
self._render_value_item(parent, value, render_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/element.py", line 256, in _render_value_item
return self.type.render(node, value, None, render_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/types/complex.py", line 295, in render
element.render(node, element_value, child_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/indicators.py", line 251, in render
element.render(parent, element_value, child_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/any.py", line 126, in render
self.validate(value, render_path)
File "/opt/odoo/odoo17/odoo-venv/lib/python3.10/site-packages/zeep/xsd/elements/any.py", line 172, in validate
raise exceptions.ValidationError(
zeep.exceptions.ValidationError: Expected at least 1 items (minOccurs check)

En conclusión, me gustaría que me confirmaseis si el link de el ws tanto de test como de producción que hay en el readme es usable, y en caso de que el readme esté equivocado, sería vital un pull request al respecto. En cualquier caso, por qué pueden estar dando estos errores? No he tenido mucho tiempo de revisar el código y de todas formas no veo nada raro...Puede ser que me falte configurar algo?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions