01. DATOS GENERALES


Línea de producto: Microsiga Protheus.
Segmento:Servicios - Mercado Internacional.
Módulo:SIGAFAT - Facturación.
Función:
RutinaNombre Técnico
M486NFXMLGeneración de XML de Factura Electrónica.
M486NCCXMLGeneración de XML de Nota de Crédito  Electrónica.
M486NDCXMLGeneración de XML de Nota de Débito Electrónica.
M486RNFXMLGeneración de XML de Guías de Remisión.
Issue:DMINA-7508
Versiones12.1.17 | 12.1.23 | 12.1.25


02. SITUACIÓN/REQUISITO

Se solicita la activación de Puntos de Entrada en la generación del XML para los documentos Factura/Boleta de Venta (NF), Nota de Crédito (NCC), Notas de Débito (NDC) y Guías de Remisión (RFN), para realizar el envío de información adicional en la transmisión electrónica utilizando el Operados de Servicios Electrónicos (OSE) denominado RSM.

03. SOLUCIÓN

Se realiza la activación de los siguientes Puntos de Entrada para el envío de información adicional:

  • M486ENF - M486NFXML (Factura de Venta)
  • M486EBV - M486NFXML (Boleta de Venta)
  • M486ENFE - M486NFXML (Factura de Venta de Exportación)
  • M486ENDC - M486NDCXML (Nota de Débito)
  • M486ENCC - M486NCCXML (Nota de Crédito)
  • M486EGR - M486RNFXML (Guías de Remisión)


Procedimiento de Implantación

  1. Compilar las funciones de usuario que contienen los Puntos de Entrada.
  2. Desde el módulo Facturación (SIGAFAT) registrar los siguientes documentos:
    • Factura de Venta/Boleta de Venta (Actualizaciones | Facturación | Facturaciones).
    • Nota de Débito (Actualizaciones | Facturación | Genera. de Notas de Crédito y Débito).
    • Nota de Crédito (Actualizaciones | Facturación | Genera. de Notas de Crédito y Débito).
    • Factura de Venta de Exportación (Actualizaciones | Facturación | Facturaciones).
    • Guía de Remisión (consultar el siguiente documento técnico para verificar regla para generación de guías de remisión DMINA-7039_DT_Transmision_Guias_de_Remision_PER)
  3. Acceder a la rutina Documentos Electrónicos (MATA486), ubicada en la ruta Actualizaciones | Facturación | Documentos Electrónicos.

    1. Especificar en los parámetros la Serie y el Tipo de Documento: Factura/Nota de Débito/Nota de Crédito/Boleta de Venta.
    2. En el menú seleccione Transmitir.
    3. Indique los parámetros para el filtrado de los documentos a transmitir.
      • Serie: Serie de documentos a transmitir.
      • Documento inicial: Número de documento inicial a transmitir.
      • Documento final: Número de documento inicial a transmitir.
    4. Una vez finalizado el proceso de transmisión se visualiza ventana con el log del proceso, presionar  para verificar el resultado de la transmisión.
    5. Validar que en el XML del documento transmitido se visualiza en el nodo ext:UBLExtension la información adicional retornada por el punto de Entrada de acuerdo al tipo de documento.

Nota: Para la generación de documentos de exportación se debe utilizar un Cliente cuya Región (A1_EST) sea igual a EXTRANJERO (EX).


04. INFORMACIÓN ADICIONAL

Cada Punto de Entrada recibe como parámetros Sucursal, Número de Documento, Serie del Documento, Especie, Código del Cliente y Código de la Tienda, y retorna la estructura indicada en la cadena de caracteres que se genera dentro del Punto de Entrada.

a) Ejemplo del punto de entrada para Factura de Venta (M486ENF):

User function M486ENF()


Local cRet := ""
Local cCRLF := (chr(13)+chr(10) )
Local cFilDoc := PARAMIXB[1] // Sucursal
Local cNumDoc := PARAMIXB[2] // Número de Documento
Local cSerieDoc := PARAMIXB[3] // Série
Local cEspDoc := PARAMIXB[4] // Espécie
Local cCodCli := PARAMIXB[5] // Código de Cliente
Local cCodLoj := PARAMIXB[6] // código de loja

cRet += ' <ext:UBLExtension>' + cCRLF
/*** Regla de negocio extracción de información adicional a enviar en el XML ***/
cRet += ' </ext:UBLExtension>' + cCRLF


Return cRet


b) Ejemplo del punto de entrada para Boleta de Venta (M486EBV):

User function M486EBV()


Local cRet := ""
Local cCRLF := (chr(13)+chr(10) )
Local cFilDoc := PARAMIXB[1] // Sucursal
Local cNumDoc := PARAMIXB[2] // Número de Documento
Local cSerieDoc := PARAMIXB[3] // Série
Local cEspDoc := PARAMIXB[4] // Espécie
Local cCodCli := PARAMIXB[5] // Código de Cliente
Local cCodLoj := PARAMIXB[6] // código de loja

cRet += '<ext:UBLExtension>' + cCRLF
/*
Regla de negocio extracción de información adicional a enviar en el XML
*/
cRet += '</ext:UBLExtension>' + cCRLF


Return cRet


c) Ejemplo del punto de entrada para Factura de Venta de Exportación (M486EBV):

User function M486ENFE()


Local cRet := ""
Local cCRLF := (chr(13)+chr(10) )
Local cFilDoc := PARAMIXB[1] // Sucursal
Local cNumDoc := PARAMIXB[2] // Número de Documento
Local cSerieDoc := PARAMIXB[3] // Série
Local cEspDoc := PARAMIXB[4] // Espécie
Local cCodCli := PARAMIXB[5] // Código de Cliente
Local cCodLoj := PARAMIXB[6] // código de loja

cRet += '<ext:UBLExtension>' + cCRLF
/*
Regla de negocio extracción de información adicional a enviar en el XML
*/
cRet += '</ext:UBLExtension>' + cCRLF


Return cRet


d) Ejemplo del punto de entrada para Nota de Débito (M486ENDC):

User function M486ENDC()


Local cRet := ""
Local cCRLF := (chr(13)+chr(10) )
Local cFilDoc := PARAMIXB[1] // Sucursal
Local cNumDoc := PARAMIXB[2] // Número de Documento
Local cSerieDoc := PARAMIXB[3] // Série
Local cEspDoc := PARAMIXB[4] // Espécie
Local cCodCli := PARAMIXB[5] // Código de Cliente
Local cCodLoj := PARAMIXB[6] // código de loja

cRet += '<ext:UBLExtension>' + cCRLF
/*
Regla de negocio extracción de información adicional a enviar en el XML
*/
cRet += '</ext:UBLExtension>' + cCRLF


Return cRet


e) Ejemplo del punto de entrada para Nota de Crédito (M486ENDC):

User function M486ENCC()


Local cRet := ""
Local cCRLF := (chr(13)+chr(10) )
Local cFilDoc := PARAMIXB[1] // Sucursal
Local cNumDoc := PARAMIXB[2] // Número de Documento
Local cSerieDoc := PARAMIXB[3] // Série
Local cEspDoc := PARAMIXB[4] // Espécie
Local cCodCli := PARAMIXB[5] // Código de Cliente
Local cCodLoj := PARAMIXB[6] // código de loja

cRet += '<ext:UBLExtension>' + cCRLF
/*
Regla de negocio extracción de información adicional a enviar en el XML
*/
cRet += '</ext:UBLExtension>' + cCRLF


Return cRet


f) Ejemplo del punto de entrada para Guía de Remisión (M486EGR):

User function M486EGR()


Local cRet := ""
Local cCRLF := (chr(13)+chr(10) )
Local cFilDoc := PARAMIXB[1] // Sucursal
Local cNumDoc := PARAMIXB[2] // Número de Documento
Local cSerieDoc := PARAMIXB[3] // Série
Local cEspDoc := PARAMIXB[4] // Espécie
Local cCodCli := PARAMIXB[5] // Código de Cliente
Local cCodLoj := PARAMIXB[6] // código de loja

cRet += '<ext:UBLExtension>' + cCRLF
/*
Regla de negocio extracción de información adicional a enviar en el XML
*/
cRet += '</ext:UBLExtension>' + cCRLF


Return cRet


¡IMPORTANTE!

Los Puntos de Entrada de cada uno de los documentos agregará la información dentro del nodo ext:UBLExtension.