Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Backoffice

Módulo:SIGAFAT - Facturación
Función:
RutinaNombre TécnicoFecha
M486RNFXMLXML de Guías de Remisión Electrónicas - Perú22/06/2022
País:Perú (PER)
Ticket:17336421
Requisito/Story/Issue (informe el requisito vinculado):DMINA-19961


02. SITUACIÓN/REQUISITO

Se solicita la activación de Puntos de Entrada que permitan realizar los siguientes ajustes en el XML de Guías de Remisión Electrónicas (GRE) del País Perú:

  • Agregar el nodo de Observaciones (Texto):  /DespatchAdvice/cbc:Note
  • Agregar el nodo de Número de Bultos o Pallets: /DespatchAdvice/cac:Shipment/cbc:TotalTransportHandlingUnitQuantity
  • Agregar el nodo de Número de Contenedor: /DespatchAdvice/cac:Shipment/cac:TransportHandlingUnit/cac:Package/cbc:ID
  • Agregar el nodo de Número de Precinto: /DespatchAdvice/cac:Shipment/cac:TransportHandlingUnit/cac:Package/cbc:TraceID
  • Modificar los datos de Unidad de medida del bien (/DespatchAdvice/cac:DespatchLine/cbc:DeliveredQuantity@unitCode), Cantidad del bien (/DespatchAdvice/cac:DespatchLine/cbc:DeliveredQuantity), Descripción detallada del bien (/DespatchAdvice/cac:DespatchLine/cac:Item/cbc:Description) y Código del bien (/DespatchAdvice/cac:DespatchLine/cac:Item/cac:SellersItemIdentification/cbc:ID).

03. SOLUCIÓN

En la rutina de XML de Guías de Remisión Electrónicas - Perú (M486RNFXML), se realizaron los siguientes ajustes:

Se activó el Punto de Entrada M486RNF:

Para permitir agregar el nodo /DespatchAdvice/cbc:Note de Observaciones (Texto).

Para permitir modificar el nodo /DespatchAdvice/cac:Shipment/cbc:TotalTransportHandlingUnitQuantity de Número de Bultos o Pallets.



Información

El Punto de Entrada M486RNF recibe como parámetro la opción de tipo Caracter, mediante el cual se tienen disponibles las siguientes opciones:

Si opción es "N", se permite la generación del Nodo de Observaciones.

Si opción es "P", permite la generación del nodo de Número de Bultos o Pallets, de igual manera se pueden generar los indicadores utilizando los tag cbc:SpecialInstructions.

Si opción es "S", permite la generación del tag cbc:HandlingInstructions con la descripción del Motivo de Traslado.

Si opción es "DA", permite la generación del tag cbc:AddressTypeCode con el código de establecimiento de llegada.

Si opción es "CO", permite la generación del tag cac:Package con los datos de Número de Contenedor y Número de Precinto.

Si opción es "R", permite la generación del tag cbc:DocumentType con la descripción del tipo de Documento de Referencia, recibiendo el segundo parámetro con el código del tipo de documento de referencia.

Si opción es "PU", permite la generación del tag cbc:CompanyID el número de MTC del Transportista.

Se debe retornar en un string los nodos generados de acuerdo a lo permitido por la guía de Guías de Remisión Electrónica definido por la SUNAT.

Se tiene acceso disponible a los campos de la tabla SF2 - Encabezado de Fact. de Salida por el posicionamiento previo a la tabla, y es importante realizar las bifurcaciones de manera correcta para la generación de los nodos y en caso de requerir utilizar el Motivo de Traslado se puede utilizar el campo Motivo Tras (F2_MODTRAD).


Se activó el Punto de Entrada M486DETRNF:

Para permitir modificar los datos de Unidad de medida del bien (/DespatchAdvice/cac:DespatchLine/cbc:DeliveredQuantity@unitCode), Cantidad del bien (/DespatchAdvice/cac:DespatchLine/cbc:DeliveredQuantity), Descripción detallada del bien (/DespatchAdvice/cac:DespatchLine/cac:Item/cbc:Description) y Código del bien (/DespatchAdvice/cac:DespatchLine/cac:Item/cac:SellersItemIdentification/cbc:ID).

Información

En el Punto de Entrada M486DETRNF, se debe retornar un arreglo con 4 posiciones, y se recomienda que se retornen con el valor Nil las posiciones que no se van a actualizar.

Se reciben como parámetros los datos Filial del Documento, Número de Documento, Serie del Documento, Especie del Documento, Código de Cliente, Loja del Cliente, Número de ítem y Código del Producto.

Las posiciones a retornar corresponden a la generación de los siguientes datos:

PosiciónDatoNodoTipo
1Cantidad del bien/DespatchAdvice/cac:DespatchLine/cbc:DeliveredQuantityNumérico
2Unidad de medida del bien/DespatchAdvice/cac:DespatchLine/cbc:DeliveredQuantity@unitCodeCaracter
3Descripción detallada del bien/DespatchAdvice/cac:DespatchLine/cac:Item/cbc:DescriptionCaracter
4Código del bien/DespatchAdvice/cac:DespatchLine/cac:Item/cac:SellersItemIdentification/cbc:IDCaracter
  1. Realizar un respaldo del repositorio del ambiente (archivo .rpo).
  2. Descargar y actualizar el parche generado para la issue DMINA-19961.
    • NOTA: Validar que correspondan a las rutinas y fechas indicadas en el sección 01. DATOS GENERALES.
  3. Tener configurada la funcionalidad para transmisión electrónica de Guías de Remisión (RNF), para más información ver el Documento Técnico de Transmisión de Guías de Remisión.
  4. Compilas los Puntos de Entrada M486DETRNF o M486RNF.
  5. En el módulo Facturación (SIGAFAT):
    • Ir al menú Actualizaciones | Pedidos | Pedidos de Venta (MATA410).
    • Incluir un Pedido de Venta, informando el campo Doc Gener. (C5_DOCGER) con valor 2 - Remisión.
    • Ir al menú Actualizaciones | Form. de Remisión | Generac. de Remitos (MATA462AN).
    • Seleccionar los ítems del Pedido de Venta creado previamente.
    • Ejecutar la acción +Gen Remisión.
  1. En el módulo Facturación (SIGAFAT):
  2. Acceder a la rutina Documentos Electrónicos (MATA486), ubicada en la ruta: Actualizaciones | Facturación | Documentos Electrónicos.
    • Especificar en los parámetros la Serie y el Tipo de Documento: Guía Remisión
    • Indique los parámetros para el filtrado de los documentos a transmitir.
      1. Serie: Serie de las guías de remisión a transmitir.
      2. Guía de remisión inicial: Número de documento inicial a transmitir.
      3. Guía de remisión final: Número de documento inicial a transmitir.
    • 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.
    • Puede revisar la Constancia de Recepción emitida por el OSE a través de la opción Monitor.
    • Indique los parámetros para el filtrado de los documentos que serán visualizados en el monitor.
      1. Serie: Serie de las guías de remisión a consultar.
      2. Guía de remisión inicial: Número de documento inicial.
      3. Guía de remisión final: Número de documento inicial.
    • El monitor cuenta con botones inferiores cuya funcionalidad es la siguiente:
      1. Leyenda: Contiene los significados de los estatus de los documentos electrónicos.
      2. XML Envío: Muestra el XML enviado al OSE.
      3. CDR: Muestra la Constancia de Recepción emitida por el OSE en formato XML.
      4. Salir: Permite cerrar el monitor.
    • Validar que en XML se visualicen las personalizaciones realizadas a través de los Puntos de Entrada M486DETRNF y/o M486RNF.


04. INFORMACIÓN ADICIONAL

Ejemplos de los Puntos de Entrada:

M486DETRNF
#include "protheus.ch"
 
User Function M486DETRNF()
    Local cFilDoc := PARAMIXB[1] //Filial
    Local cNumDoc := PARAMIXB[2] //Número de Documento
    Local cSerDoc := PARAMIXB[3] //Serie de Documento
    Local cEspDoc := PARAMIXB[4] //Especie de Documento
    Local cCodCli := PARAMIXB[5] //Codigo de Cliente
    Local cCodLoj := PARAMIXB[6] //Codigo de la Tienda
    Local cItem   := PARAMIXB[7] //Ítem
    Local cCodPro := PARAMIXB[8] //Código de Producto
    Local aDetGRE := {Nil, Nil, Nil, Nil}

    aDetGRE[1] := Nil  //Cantidad
    aDetGRE[2] := "PC" //Unidad de Medida
    aDetGRE[3] := Nil  //Descripción del Producto
    aDetGRE[4] := Nil  //Código del Producto

Return aDetGRE
M486RNF
#include "protheus.ch"  User Function M486RNF()     Local cXMLPE := ""
    Local cCRLF    := (chr(13)+chr(10))
    Local cOpc    := PARAMIXB[1] //Opción N - Notas, P - Pallets/Contenedor/Precinto
    Local cCodDoc := IIf(cOpc=="R",PARAMIXB[2],"")  //cbc:DocumentTypeCode
    Local cDesTpD := ""

    If cOpc == "N" //Observaciones
        cXMLPE += '	<cbc:Note>Prueba del PE M486RNF</cbc:Note>' + cCRLF  
    ElseIf cOpc == "P" //número de Pallets
        If Alltrim(SF2->F2_MODTRAD) == "01" //Importación
            cXMLPE += '		<cbc:TotalTransportHandlingUnitQuantity>80</cbc:TotalTransportHandlingUnitQuantity>' + cCRLF
        EndIf
    ElseIf cOpc == "S" //Shipment
        cXMLPE += '		<cbc:HandlingInstructions>DESCRIPCION DEL MOTIVO DE TRASLADO</cbc:HandlingInstructions>' + cCRLF
    ElseIf cOpc == "DA" //Establecimiento
        cXMLPE += '			<cbc:AddressTypeCode listAgencyName="PE:SUNAT" listName="Establecimientos anexos" listID="20552174918">3985</cbc:AddressTypeCode>' + cCRLF 
    ElseIf cOpc == "CO" //Número de Contenedor y Número de Precinto
        cXMLPE += '			<cac:Package>' + cCRLF
        cXMLPE += '				<cbc:ID>hlxu2142141</cbc:ID>' + cCRLF
        cXMLPE += '				<cbc:TraceID>002jp00124</cbc:TraceID>' + cCRLF
        cXMLPE += '			</cac:Package>' + cCRLF
    ElseIf cOpc == "R" //AdditionalDocumentReference
        If cCodDoc == "01"
            cDesTpD := "FACTURA"
        ElseIf cCodDoc == "50" 
            cDesTpD := EncodeUtf8("Declaración Aduanera de Mercancías")
        EndIf
        cXMLPE += '		<cbc:DocumentType>' + cDesTpD + '</cbc:DocumentType>' + cCRLF
    ElseIf cOpc == "PU" //MTC
        cXMLPE += '				<cbc:CompanyID>0200310CNG</cbc:CompanyID>' + cCRLF
    EndIf      Return cXMLPE



¡IMPORTANTE!

La presente solución aplica para versión 12.1.33 o superior.


05. ASUNTOS RELACIONADOS

  • Documento Técnico de Activación de Transmisión de GRE con API REST de SUNAT - Perú