Skip to Content

El articulo explica, paso a paso, la gestión de los ficheros EFM, necesarios para generar los ficheros XML que B1IC enviará a la AEAT como parte del proceso de Suministro Inmediato de Información.

Este articulo pertenece a una serie de artículos sobre el Suministro Inmediato de Información para SAP Business One. Puede consultar el primer articulo de la serie en este enlace.

Objetivo

Importar/actualizar los ficheros EFM que SAP proporciona en la nota 2494985 y revisar su correcta configuración para el proceso de Suministro Inmediato de Información.

Requisitos

  • SAP Business One 9.2 PL08 HF2 (puede ser 9.2 PL08 HF1)

Visión general

  1. Importación/actualización de los ficheros EFM
  2. Configuración de la vía de acceso para los ficheros XML
  3. Configuración para el Suministro Inmediato de Información

Ficheros distribuidos

Facturas emitidas: ArDocumentItemsAndServices.SPP
Facturas emitidas (cancelación o abono total): ArCancelOrFullCreditMemo.SPP
Facturas recibidas: APDocumentItemsAndServices.SPP
Facturas recibidas (cancelación o abono total): ApCancelOrFullCreditMemo.SPP
Pagos recibidos: ExportPaymentFormat.SPP
Diario: JDTFormat.SPP

Importación/Actualización

Para importar o actualizar los ficheros a SAP Business One, hay que ir a la opción Gestión – Definiciones -> Generales -> Electronic File Manager

La ventana de definiciones de formatos para el Electronic File Manager contiene todos los formatos que actualmente están instalados, y la lista puede diferir de una empresa a otra y de un cliente a otro:

Proceso de carga o importación

Para importar un fichero, debe hacer clic con el botón derecho del ratón en la columna (#) de una fila vacía de la parrilla y seleccionar la opción cargar:

El programa pedirá que indique donde se encuentra el fichero que se desea importar.

Desplácese hasta la carpeta donde estén los ficheros EFM y en el desplegable que está a la derecha del nombre del fichero seleccione todos o ficheros *.SPP, pues de otra manera no verá los ficheros a importar.

Pulse el botón Abrir para iniciar la importación:

En la fila donde se encontraba situado debe aparecer el nombre del fichero, indicando que la importación ha sido satisfactoria:

Es posible que en el momento de iniciar la importación, el programa muestra una pregunta:

Esto significa que el diseñador del fichero EFM no ha llenado correctamente la configuración del fichero para su versión de SAP Business One. Puede ignorar este mensaje respondiendo SI.

También, por el mismo motivo, es posible que la descripción quede en blanco:

Repita los pasos para los otros ficheros EFM.

Los ficheros EFM puede que se actualicen con nuevas características o mejoras.

Proceso de actualización

Si intenta cargar por el procedimiento anterior un fichero EFM que ya existe, el programa lanzará el siguiente aviso y no dejará continuar:

Para actualizar un fichero EFM debe situarse en la columna (#) de la fila del informe que desee actualizar y pulse el botón derecho del ratón.

Seleccione la opción Actualizar del menú:

El programa le advertirá que una versión anterior ya existe y pedirá confirmación para actualizarlo:

Configuración de la vía de acceso para los ficheros XML

Para que los ficheros XML se generen correctamente es imprescindible tener bien definida la vía de acceso a ficheros XML dentro de Gestión -> Inicialización sistema -> Parametrizaciones generales:

Es muy importante que la ruta definida sea accesible por todos los usuarios que utilizan SAP Business One, pudiendo estar en cualquier ubicación que cumpla con este requisito.

Configuración para el Suministro Inmediato de Información

Para que el proceso que genera los XML sepa que formato utilizar para cada tipo de información a enviar a la AEAT, debe definir dentro de Gestión -> Inicialización sistema -> Parametrizaciones de documento qué fichero EFM corresponde a cada tipo:

To report this post you need to login first.

32 Comments

You must be Logged on to comment or reply to a post.

  1. Manuel García

    Hola buenas tardes! Muchas gracias por el post porque es de gran ayuda. Nosotros tenemos dos  escenarios configurados y en ambos nos encontramos con el mismo problema, y es que no conseguimos enviar las facturas en el entorno de pruebas. Nos da un mensaje error tipo:

     

    El documento XML no cumple con el esquema; contáctese con el proveedor de formato para obtener soporte.  Internal error: EFM->OnHandleEFMMessage failed”

    ó

    “El documento XML no cumple con el esquema; contáctese con el proveedor de formato para obtener soporte .Error in executing the user query”

     

    Sería de gran ayuda si nos pudieras orientar un poco…hemos seguido los pasos de este post pero está claro que hay algo que no hemos hecho bien!

     

    Mucgas gracias de antemano.

    (0) 
    1. David Marti Post author

      Hola Manuel,

      Gracias por el comentario, sin duda intentaremos ayudar en lo que se pueda.

      Los errores que muestra SAP Business One en la ventana de mensajes del sistema al intentar crear el XML para el envío de información no es que sean de una gran ayuda.

      Quizás lo que nos pueda dar una pista más clara de lo que te está pasando es el fichero de logs que graba en la carpeta C:\ProgramData\SAP\SAP Business One\Log\SAP Business One\<usuario de Windows>

      Si no te importa comprimirlo en un ZIP y subirlo a esta dirección https://dmb.cat/enviarFitxers, lo revisamos y vemos lo que pueda estar pasando.

      Saludos.

      (0) 
    1. David Marti Post author

      Como sospechábamos el fichero de registro aporta algo más de información. De hecho, en la ventana de mensajes del sistema este error ya se llegaría a ver si se redimensiona la  columna Contexto o se copia su valor al portapapeles y de allí al bloc de notas, por ejemplo.

      En el fichero vemos esto:

       

       

      que nos indica que el problema no está en el fichero EFM sino en la configuración de la causa de la excención para el grupo de impositivo del documento que está intentando enviar.

      Debe ir a la definición de grupos impositivos: Gestión -> Definiciones -> Finanzas -> Impuesto -> Grupos impositivos y revisar la configuración de las columnas Transaction Type y Exception Reason, que seguramente están mal informadas:

       

      (0) 
  2. Manuel García

    Estupendo muchas gracias, perece que ya funciona correctamente.

     

    Oye se confirma que la actualización más reciente es la del Hotfix 02 de la PL08 de la versión 9.2 que se liberó el dia 27, ¿no?

    Así como el escenario y los mapping del día 30 ¿verdad?

     

    Un saludo y muchas gracias por tu ayuda y tus posts.

    (0) 
  3. Manuel García

    Por cierto David, también estamos actualizando el parche para la versión de Sap Hana, aunque no está dando problemas ya que no nos deja continuar y tendríamos que reinstalar el service tools. No sé si es un problema general..o nos puedes ayudar con eso.

     

    Un saludo.

    (0) 
  4. David Marti Post author

    Con los formatos de ficheros actuales, se produce un error al enviar facturas emitidas intracomunitarias:

    La factura contiene un desglose a nivel de factura cuando le corresponde un desglose a nivel de operación.

     

    Este error es debido a un fallo de diseño del fichero EFM de facturas emitidas y que SAP debería arreglar y actualizar en la nota de referencia.

    El error se debe a que para las facturas intracomunitarias es obligatorio el uso del nodo DesgloseTipoOperacion en lugar del DesgloseFactura que está utilizando actualmente el formato EFM entregado por SAP.

    Entre tanto, nosotros lo hemos modificado para que funcione. Se puede descargar desde aquí.

    (0) 
  5. David Marti Post author

    Las comunicación de facturas emitidas para facturas simplificadas tampoco funciona correctamente.

    Al proceder al envío salta el siguiente error:

    El documento XML no cumple con el esquema; contáctese con el proveedor de formato para obtener soporte
    The element ‘Contraparte’ in namespace ‘https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd’ has incomplete content. List of possible elements expected: ‘NIFRepresentante, NIF, IDOtro’ in namespace ‘https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd’

    El motivo del error es que para las facturas simplificadas (tipo F2), el nodo <Contraparte> no se debería incluir, pues no procede la identificación.

    El fichero corregido (FacturasEmitidas.SPP versión 2.12) se puede descargar desde aquí.

    Si en lugar de enviar una factura simplificada estamos enviando un asiento, las modificaciones del JDTFormat.SPP se pueden descargar desde aquí (LibroDiario.SPP versión 2.08)

    (0) 
  6. Manuel García

    Muchas gracias David. Me encuentro con el siguiente mensaje a la hora de enviar facturas de proveedores…a ver si nos pudieras resolver la duda, ya que he estado investigando en el log de la carpeta programdata pero no tengo muy clara la causa…

    “2017-07-11  11:14:39.692119 Sys         Err           I Biz El documento XML no cumple con el esquema; contáctese con el proveedor de formato para obtener soporte #El elemento ‘IDFactura’ en espacio de nombres ‘https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact /ws/SuministroLR.xsd’ tiene un elemento secundario ‘FechaExpedicionFacturaEmisor’ en espacio de nombres ‘https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd’ no válido. Lista esperada de elementos posibles: ‘NumSerieFacturaEmisor’ en espacio de nombres ‘https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd’. # TID=2244 MID=540000155 Area=Informes”

     

    Un saludo y muchas gracias de nuevo.

    (0) 
  7. Manuel García

    Estupendo muchas gracias. Pensábamos que ese campo se rellanaba con el “DUA” sólo en caso de importaciones y exportaciones con terceros o entre países comunitarios. Pero veo que es de obligada cumplimentación.

    Un saludo.

    (0) 
  8. Manuel García

    Buenas tardes David,  el “status” del escenario para esta base de datos se muestra de esta manera, quedando sin activar la parte de PRC_B1, y las facturas no se estan enviando a la agencia.

    He estado buscando soluciones pero tampoco hay mucha información al respecto en la red, en otras bases de datos de pruebas si que estaban las tres casillas en color verde, y no sabemos a que se puede deber, y si esto es la causa de que no se envíen las facturas (están en estado nuevo)

    Muchas gracias de nuevo.

    (0) 
    1. David Marti Post author

      Hola Manuel,

      Esto ya es algo más avanzado y se sale del tema, pero: El escenario ha encontrado un error al ejecutar algún paso y se ha desactivado.

      Normalmente esto es debido a que no se ha puesto la contraseña correcta para el certificado, generando una excepción en el escenario y desactivando el paso que ha generado la excepción.

      Puede revisarlo en la consola de administración de B1IC: MONITORING -> Process Control

      Para ver qué error ha producido la desactivación: MONITORING -> Error Log -> Technical Errors o Processing Errors

      (0) 
  9. David Marti Post author

    He actualizado el fichero EFM FacturasEmitidas.SPP al detectar un error cuando el desglose del IVA se hacía a nivel de operación para una factura no exenta.

    Ahora la versión es la 2.14 y se puede descargar desde aquí.

    (0) 
  10. Dimitra Papatzikos

    Hola David,

     

    Muchas gracias por tu apoyo y acertados comentarios.

     

    Se nos esta presentando el siguiente inconveniente en el momento de emitir facturas a clientes fuera de España y ser no sujetos a impuesto (se aplica un impuesto con tasa 0%). Para esto, en la definicion de grupo de impuestos dejamos vacios los 2 campos de Exemption Reason y Transaction Type (al no ser exenta ni sujeta a impuesto) y se presenta el siguiente error ya que ninguno de los 2 campos tiene algun valor: The ‘https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd:CausaExencion’ element is invalid – The value ” is invalid according to its datatype ‘https://www2.agenciatributaria.

     

    Muchas gracias por la ayuda que nos puedas brindar!

    (0) 
    1. David Marti Post author

      Buenos días Dimitra,

      El envío de facturas no sujetas no está modelado dentro del fichero EFM que actualmente entrega SAP, por lo que el error que te sale es completamente normal.

      De todas maneras, no es muy complicado resolverlo, pues como tu bien dices, el no poner ningún valor en Transaction Type y Exemption Reason debería indicar que el grupo impositivo no está sujeto al impuesto.

      La única duda duda que tengo, es saber dentro del nodo NoSujeta qué campo hay que informar y en función de qué:

      Si me lo puedes aclarar (no soy experto en el tema) con mucho gusto modifico el fichero y modelo este caso.

      Independientemente de esto, hay que reportar el problema a SAP para que den una solución global. Por mi parte lo haré.

      (0) 
        1. Dimitra Papatzikos

          David,

           

          Pensaria que puede aplicar la condicion que cuando ambos campos en el grupo impositivo sean igual a blanco o vacio, el importe se informe en el campo ImporteTAIReglasLocalizacion.

           

          Saludos!

           

          (0) 
  11. David Marti Post author

    Se han actualizado de nuevo los ficheros EFM propios:

    Facturas Emitidas versión 2.16
    Facturas Emitidas Cancelación o Abono Total versión 2.06
    Libro Diario versión 2.10

    Se quiere solucionar la problemática de las cancelaciones o los abonos totales de las facturas emitidas, pues los formatos de SAP no están identificando correctamente las facturas a cancelar o abonar.

    Ahora, las facturas emitidas se identifican con el ID_Serie+”/”+Número_de_factura en lugar de Nombre_de_Serie+”_”+Número_de_factura.

    Esto debe ser así debido a que la información de origen que proporciona SAP al EFM no incluye el nombre de la serie para el formato de cancelación o abono total.

    Otra mejora en el formato de los abonos es que ahora se ponen los importes en negativo. El formato original de SAP los informa positivos y esto se entiende como un error.

    Atención si se utilizan estos ficheros, pues la identificación de las facturas ha cambiado.

    (1) 
  12. Manuel García

    Buenas tardes David,

     

    No conseguimos enviar los documentos, y tal como me indicaste ayer he revisado el error desde monitoring, pero incluso después de reinstalar integration framework y empezar de cero nos da el mismo error. La verdad que se nos echa el tiempo encima y nos somos capaces de darle solución, este. Esta base de datos es de Sap Hana.

    Si pudieras aclararnos algo sería de gran ayuda como siempre.

     

    com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.sap.b1i.bizprocessor.BizProcException: BPE001 Nested exception: com.sap.b1i.utilities.UtilException: UTE001 Nested exception: com.sap.engine.lib.xml.util.NestedException: Error during message processing (Error in SQL call [0046])

     

    Muchas gracias.

    (0) 
  13. Sergio Moral

    Buenas tardes, he probado con los archivos corregidos que has colgado ya que tenía el error 2006 con las facturas de exportación. Al poner los que tu has subido me dice el siguiente:

    Recibir (R): 3002: No existe el Registro

    (0) 
    1. David Marti Post author

      Hola Sergio,

      Esta error, cuando te sale, al reportar un abono total o cancelación?

      Fíjate que SAP ha actualizado los ficheros EFM en la nota 2494985

      (0) 
  14. David Marti Post author

    Realmente fue una chapuza por mi parte modificar el identificador de la factura en los ficheros FacturasEmitidas y FacturasEmitidasCancelacionOAbonoTotal …

    El ID de la factura, en el caso de un abono total o cancelación, SAP lo trata en dos partes, primero en el EFM y después en el escenario B1IC.

    Los vuelvo a dejar como estaban.

    Facturas Emitidas versión 2.18
    Facturas Emitidas Cancelación o Abono Total versión 2.08

    Por cierto, SAP actualizó los ficheros EFM en la nota  2494985

    (0) 
  15. Eduardo Barco

    Buenas tardes, David.

    En concreto puedes indicarme como se trata el abono total o cancelación, en la parte del escenario B1IC.

     

    Gracias por adelantado, un saludo.

     

    (0) 
    1. David Marti Post author

      Buenas tardes,

      El fichero EFM deja el XML con la identificación de la factura a {ID_Serie}+”_”+Numero_Factura, y el B1IC recoge ese valor, hace una consulta a la tabla de series para el ID_Serie y sustituye el {ID_Serie} por el nombre de la serie. Después envía el XML a la AEAT.

      (0) 
  16. Dimitra Papatzikos

    Buenas tardes David,

     

    Estamos tratando de editar los archivos para situaciones especificas de nuestra empresa (Ej: La mayoria de servicios lo manejamos como articulos no inventariables, pero se debe reportar al fisco como un servicio). Para ello, hemos visto las condiciones (imagen adjunta) y se ven bastante sencillas de manejar, pero tenemos una duda en relacion a los campos indicados en amarillo (en la imagen adjunta OCRD_ResidenNum y %LicTradNum, como ejemplo).

     

    Al escribir con la misma nomenclatura alguna de estas “variables?” no nos deja elegir alguna que no se este utilizando previamente en el documento. Habra algun lugar donde se pueda realizar esta definicion previa? como podemos definirlas para poder utilizarlas?

     

    Adjunto el error que aparece al realizar una prueba sencilla y cambiar OCRD_ResidenNum por OCRD_CardCode.

     

    Muchas gracias por la orientacion que nos puedas brindar.

    (0) 
    1. David Marti Post author

      Hola Dimitra,

      Realmente es fácil cuando se sabe. Lástima que no exista mucha documentación sobre el diseñador de EFM y sus posibilidades, que son muchas.

      Lo primero que te recomiendo es que utilices la ayuda del propio diseñador (F1) o Help -> Online Help. Esta documentación ayuda bastante, y referente a la consulta que haces, puedes ver esto:

      Lo segundo, respondiendo a tu pregunta: en las condiciones, se pueden utilizar referencias a los nodos del origen del mapeo, los que están a la izquierda. Si seleccionas alguno de ellos, verás que en las propiedades aparece una Reference No. que es justamente el valor que hay que poner en las condiciones. En tu caso, el número de referencia es CardCode1. Si el número de referencia lo utilizas dentro de una función, entonces hay que poner el prefijo %, que en este caso sería %CardCode1.

      (1) 
  17. Manuel García

    Buenas, no tengo muy claro como tratar las facturas canceladas y de cancelación en el proceso de subida a la AEAT, ya que por defecto vienen con el tipo “F1”, aunque para la agencia es como si fueran de abono total..

    A ver si alguien me pudiera aclara el proceso correcto…

     

    Un saludo.

    (0) 

Leave a Reply