11.1.4.1 Descripción general de implementación
Todas las ampliaciones de mapeo siguen un protocolo común a la hora de su implementación.
En primer lugar se comprueba en el excel de mapeos (suministrado en la documentación técnica de la herramienta) cuál es la asignación que se hace por defecto para cada campo. Si esta coincide con la propuesta del cliente de la implantación, entonces no hay que efectuar ninguna modificación adicional. Si por el contrario la propuesta difiere, hay que determinar si existe una ampliación de tipo BAdI que nos permita cambiar el mapeo para que tome el valor solicitado.
Todas las BAdIs que se pueden utilizar para cambiar los mapeos por defecto están agrupadas en el punto de ampliación /EDGE/SII_MAPEOS.
Partiendo de este repositorio de ampliaciones y comprobando el código del método GET_ESTRUCTURA_XML de la clase que aplique al mapeo del campo en cuestión podemos determinar la existencia (o no) de una alternativa de ampliación a través de BAdI.
Cada flujo va a tener suministradas una o dos BAdIs. Las finalizadas en el sufijo "_CLI" solamente proporcionan una serie de métodos sin código por defecto y que nosotros deberemos completar con el mapeo correspondiente. Las que no tienen sufijo "_CLI" suministran un código base por defecto que se puede alterar para ajustarlo a las necesidades de cada cliente.
- BAdIs con implementación por defecto:
- /EDGE/BADI_SII_MAPEOS_GEN: Esta BAdI es utilizada para campos a mapear en distintos libros de manera general, los métodos que contiene son los siguientes:
- GET_DATOS_ACREEDOR_CONTRAPARTE: Recupera los datos de un acreedor en base a los campos de contraparte.
- GET_DATOS_DEUDOR_CONTRAPARTE: Recupera los datos de un deudor en base a los campos de contraparte.
- GET_SOCIEDAD: Recupera el valor de la sociedad.
- SET_SOCIEDAD: Asigna el valor de la sociedad.
- GET_TIPO_FACTURA: Recupera el valor para el campo “TipoFactura”.
- GET_DESC_OPERACION: Determina el valor del campo "Descripción Operación".
- GET_DATOS_SOCIEDAD: Recupera lo datos de la sociedad indicada.
- GET_TIPO_RECTIFICATIVA: Recupera el tipo de factura rectificativa.
- GET_FACTURAS_RECTIFICADAS: Devuelve una tabla con los datos de las facturas que una factura está rectificando.
- GET_IMPORTE_RECTIFICATIVAS: Calcula el importe de una factura que rectificativa
- GET_REGIMEN_ESPECIAL: Calcula los valores de los campos para el Regimen Especial del XML.
- GET_AUTO_CONSUMO: Determina si una factura es de autoconsumo.
- GET_FECHA_OP_RECTIFICADA: Determina el campo "Fecha Operación" si una factura es rectificativa.
- CAMBIAR_SIGNO_ANTICIPOS: Este método es el encargado de ajustar el signo del importe a las posiciones de impuestos si una factura es un anticipo.
- GET_FECHA_OPERACION: Calcula la fecha de operación para una factura que no es rectificativa.
- GET_BASE_IMPONIBLE_A_COSTE: Recupera el valor "Base imponible a coste".
- /EDGE/BADI_SII_MAPEOS_EMI: Esta BAdI es utilizada para campos a mapear en el libro de facturas emitidas, los métodos que contiene son los siguientes:
- GET_DATOS_INMUEBLE: Recupera los valores para los campos de “DatosInmueble”.
- GET_NUMERO_FACTURA: Recupera el valor de número+serie que identifica a la factura emitida.
- GET_SRC_KEY_PARA_NUMERO_FACT: Recupera los datos del campo EDOCUMENT-SOURCE_KEY para un valor de número+serie que identifique a la factura emitida.
- GET_CAUSA_EXENCION: Recupera las causas de exención por tipo de IVA.
- GET_SOCIEDAD: Recupera el valor de la sociedad.
- SET_SOCIEDAD: Asigna el valor de la sociedad.
- GET_PERIODO_IMPOSITIVO: Mapea el bloque de periodo impositivo para el XML de emitidas.
- GET_CAUSA_EXENCION: Determina la causa de exención.
- GET_TIPO_NO_SUJETA: Determina el tipo de no sujeta.
- GET_DESGLOSE_AUTO_CONS: Mapea el desglose de una factura emitida de autoconsumo.
- GET_IMPOR_NO_SUJETA_TAI_LOCAL: Determina el importe de la etiqueta de importe TAI Reglas de localización.
- GET_CUPON: Determina si una factura emitida tiene cupón.
- /EDGE/BADI_SII_MAPPING_REC: Esta BAdI es utilizada para campos a mapear en el libro de facturas recibidas, los métodos que contiene son los siguientes:
- GET_ID_EMISOR_FACTURA: Recupera los datos del id de emisor de la factura.
- GET_NUMERO_FACTURA: Recupera el valor de número+serie que identifica a la factura emitida.
- GET_SOCIEDAD: Recupera el valor de la sociedad.
- SET_SOCIEDAD: Asigna el valor de la sociedad.
- GET_SRC_KEY_PARA_NUMERO_FACT: Recupera los datos del campo EDOCUMENT-SOURCE_KEY para un valor de número+serie que identifique a la factura emitida.
- GET_CUOTA_DEDUCIBLE: Recupera cuota deducible.
- /EDGE/BADI_SII_MAPEOS_CE: Esta BAdI es utilizada para campos a mapear en el libro de Cobro de Emitidas, los métodos que contiene son los siguientes:
- GET_DATOS_COBROS: Calcula los datos de los cobros de las facturas emitidas y los devuelve en una tabla que se mapea al xml del eDocument correspondiente.
- /EDGE/BADI_SII_MAPEOS_OA: Esta BAdI es utilizada para campos a mapear de operaciones anuales y los métodos que contiene son los siguientes:
- GET_IMPORTE_OS: Recupera importe para Operaciones de Seguros.
- GET_IMPORTE_AV: Recupera importe para Agencias de Viaje.
- GET_IMPORTE_CM: Recupera importe para Cobros en Metálico.
- /EDGE/BADI_SII_MAPEOS_OI: Esta BAdI es utilizada para campos a mapear en el libro de Operaciones Intracomunitarias, los métodos que contiene son los siguientes:
- GET_DIRECCION_OPERADOR_EMI: Devuelve la dirección del operador para facturas emitidas.
- GET_DIRECCION_OPERADOR_REC: Devuelve la dirección del operador para facturas recibidas.
- GET_SOCIEDAD: Recupera el valor de la sociedad.
- SET_SOCIEDAD: Asigna el valor de la sociedad.
- GET_TIPO_OPERACION: Devuelve el tipo de comunicación intracomunitaria.
- /EDGE/BADI_SII_MAPEOS_PR: Esta BAdI es utilizada para campos a mapear en el libro de Pagos de Facturas Recibidas, los métodos que contiene son los siguientes:
- GET_DATOS_PAGOS: Recuperar los pagos para un documento
- GET_SOCIEDAD: Recupera el valor de la sociedad.
- SET_SOCIEDAD: Asigna el valor de la sociedad.
- /EDGE/BADI_SII_MAPEOS_BI Esta BAdI es utilizada para campos a mapear en el libro de Bienes de Inversión, los métodos que contiene son los siguientes:
- GET_PERIODO_IMPOSITIVO: Recupera el bloque periodo impositivo
- GET_IDENTIFICACION_BIEN : Recupera el valor del campo Identificación Bien
- GET_FECHA_INICIO_UTIL: Recupera el valor del campo Fecha Inicio Utilización
- GET_PRORRATA_ANUAL_DEFI : Recupera el valor del campo Prorrata Anual definitiva
- /EDGE/BADI_SII_MAPEOS_GEN: Esta BAdI es utilizada para campos a mapear en distintos libros de manera general, los métodos que contiene son los siguientes:
- BAdIs sin implementación por defecto:
- /EDGE/IF_SII_MAPEOS_GEN_CLI: Esta BAdI es utilizada para campos a mapear en distintos libros de manera general, los métodos que contiene son los siguientes:
- GET_NIF_REPRESENTANTE_DEUDOR: Recupera NIF Representante para Deudor.
- GET_NIF_REPRESENTANTE_ACREEDOR: Recupera NIF Representante para Acreedor.
- GET_SAP_DEUDOR_CONTRA_PAIS_ESP: Datos SAP deudor desde contraparte para países especiales.
- GET_SAP_ACREE_CONTRA_PAIS_ESP: Datos SAP acreedor desde contraparte para países especiales.
- GET_RECTIFICATIVAS: Recupera datos de facturas rectificadas.
- GET_IMPORTE_RECTIFICATIVAS: Recupera datos del importe total rectificado.
- GET_CAUSA_EXENCION: Recupera campo de la causa de exención.
- GET_REGIMEN_ESPECIAL: Recupera campo de régimen especial.
- GET_NUM_SERIE_FACTURA_EM_FIN: Número+Serie que identifica a la última factura emitida agr.
- GET_FACTURAS_AGRUPADAS: Recupera datos de facturas agrupadas.
- GET_EMISOR_RESUMEN: Recupera resumen de emisor.
- /EDGE/BADI_SII_MAPEOS_EMI_CLI: Esta BAdI es utilizada para campos a mapear en el libro de facturas emitidas, los métodos que contiene son los siguientes:
- GET_EMITIDA_POR_TERCEROS: Recupera datos de emitidas a terceros.
- GET_IMPORTE_TRANSMISION_A_IVA: Recupera importe de transmisión a IVA.
- GET_IMPORTE_NO_SUJETA: Recupera importe de no sujeta.
- /EDGE/BADI_SII_MAPPING_REC_CLI: Esta BAdI es utilizada para campos a mapear en el libro de facturas recibidas, los métodos que contiene son los siguientes:
- GET_ADUANAS: Recupera datos de Aduanas.
- GET_PORCENT_REAGYP: Recupera porcentaje compensación REAGYP.
- GET_IMPORTE_REAGYP: Recupera importe compensación REAGYP.
- /EDGE/BADI_SII_MAPEOS_OI_CLI: Esta BAdI es utilizada para campos a mapear en el libro de determinadas operaciones intracomunitarias, los métodos que contiene son los siguientes:
- GET_TIPO_OPERACION: Recupera tipo de operación.
- GET_PLAZO_OPERACION: Recupera plazo de la operación.
- GET_FACTURAS_O_DOC: Recupera otras facturas o documentación relativas a las operaciones de que se trate
- /EDGE/BADI_SII_MAPEOS_BI_CLI: Esta BAdI es utilizada para campos a mapear en el libro de Bienes de Inversión, los métodos que contiene son los siguientes:
- GET_REGULACION_ANUAL_DEDUCCION: Devuelve el valor del campo regulación anual deducción.
- GET_ID_ENTREGA: Devuelve el valor del campo identificación de entrega.
- GET_REGULA_DEDUCCION_EFECTUADA: Devuelve el valor del campo regularización deducción efectuada.
- /EDGE/BADI_SII_MAPEOS_CE_CLI: Esta BAdI es utilizada para campos a mapear en el libro de Cobros de Facturas Emitidas, los métodos que contiene son los siguientes:
- GET_CUENTA_O_MEDIO: Devuelve el valor del campo Cuenta_O_Medio.
- /EDGE/BADI_SII_MAPEOS_OS_CLI: Esta BAdI es utilizada para campos a mapear en el libro de Operaciones con Seguros, los métodos que contiene son los siguientes:
- GET_CLAVE_OPERACION: Devuelve el valor del campo clave operación.
- /EDGE/BADI_SII_MAPEOS_PR_CLI: Esta BAdI es utilizada para campos a mapear en el libro de Pagos para Facturas Recibidas, los métodos que contiene son los siguientes:
- GET_CUENTA_O_MEDIO: Devuelve el valor del campo Cuenta_O_Medio.
- /EDGE/IF_SII_MAPEOS_GEN_CLI: Esta BAdI es utilizada para campos a mapear en distintos libros de manera general, los métodos que contiene son los siguientes:
De no existir una alternativa de ampliación vía BAdI hay que valorar la opción de implementar una clase Z como hija de la clase /EDGE/ de mapeo correspondiente al lote cuyo mapeo deseamos modificar (por ejemplo /EDGE/CL_EDOC_SII_MAP_FE_L, /EDGE/CL_EDOC_SII_MAP_FR_L, etc...). Una vez hecho esto, redefiniríamos el método GET_ESTRUCTURA_XML utilizando el método super para reutilizar la lógica existente con las modificaciones que consideremos necesarias o directamente volver a escribirlo por completo. En la parametrización se deberá asignar la clase Z como clase de asignación mediante la transacción /EDGE/SII_CU_015. Opcionalmente podría crearse una ampliación de tipo POST u OVERWRITE sobre el método GET_ESTRUCTURA_XML.
Además, en este punto de ampliación también está la BAdi /EDGE/BADI_SII_MAPEOS_VALIDAC que se utilizará para añadir cualquier tipo de validación previa que el cliente desee hacer. Esta BAdi no tiene una implementación por defecto porque que ya existen una serie de validaciones previas que pueden ser parametrizadas para las sociedades implicadas desde el menú de inicio sección de mapeos:
Esta BAdi tiene asociada la interfaz de validaciones /EDGE/IF_VALIDACIONES_SII que tiene los siguientes métodos:
- CHECK_VALIDACION: Comprueba las validaciones previas necesarias.
- GET_RELATIVE_NAME: Devuelve el tipo de eDocument a validar.
La comprobación de estas validaciones se lleva a cabo una vez hecho el mapeo de los campos del xml. Véase documentación sobre validaciones en el punto: 6.6. Validaciones previas al envío
Related content
Avvale 2024