Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Servicios

Módulo:SIGAGPE - Gestión de Personal.
Función:

   

Rutina(s)Nombre TécnicoFecha
TIMBRERNFunciones Timbrado Recibo de Nómina.03/02/2021
GPER884Funciones genéricas XML Recibo de Nómina - México.03/02/2021

   

País:México
Ticket:10497786
Requisito/Story/Issue (informe el requisito vinculado):DMINA-10926


02. SITUACIÓN/REQUISITO

Dentro de la rutina Recibos de nómina CFDI v 1.2 (GPER884), al momento de realizar el envió de recibos de nómina por email (Pre-Imp/Mail = "Email") de forma masiva (800 recibos o más ), se observa que existe un desborde de memoria, detonando el siguiente error.log :

"Memory Allocation Failure ( 3355832 bytes ) in file d:\bamboo-agent-5.7.2\xml-data\build-dir\tp11-buildv2appsrv-tec11win32rpo32\advtec9_tt11\lib_base\list.hpp at line 813 VALIDARECIBO - TIMBRERN.PRW(174)".

03. SOLUCIÓN

En la rutina de Funciones Timbrado recibo de nómina (TIMBRERN):

  • En la función que Valida si el CFDi ya está timbrado (ValidaRecibo) mediante la búsqueda del UUID en el XMLse observa que el uso constante de la función la XmlParserFile esta ocasionando el problema del desbordamiento de memoria.
  • Para evitar el uso de dicha función se realiza un tratamiento para leer el XML en formato Texto, haciendo uso de la función FREADSTR() y buscando el elemento TIMBREFISCALDIGITA para validar si el recibo ya fue timbrado.

En la rutina de  Recibos de nómina CFDI v 1.2 (GPER884):

  • En la función encargada del Procesamiento de los recibos de nomina (R030Imp), se agrega la referencia del área de trabajo que se esta usando a las instrucciones usadas para moverse al próximo registro (DBSkip()).
  • En la función que Procesa XML para generar PDF (ImpXML) y la función que Envía correo electrónico con XML y PDF (EnvRecMail), se eliminan las instancias de los objetos en la memoria del servidor al terminar cada proceso con el uso de la función FreeObj() para evitar el desbordamiento de memoria.


  1. Realizar un respaldo del repositorio del ambiente (archivo .RPO).
  2. Aplicar el parche correspondiente al issue DMINA-10926.
  3. Verificar que las rutinas actualizadas en el repositorio, coincida con las descritas en el encabezado del presente Documento Técnico (con fecha igual o superior).
  4. En la rutina de Cálculo por procedimiento (GPEM020), realizar el cálculo para los empleados.
  5. En la rutina de Recibos de nómina CFDI v 1.2 (GPER884), contar con los recibos ya timbrados de los empleados (800 o más).
  1. Ingresar al módulo Gestión de Personal (SIGAGPE), e ir al menú "Informes | Periódicos | Recibo de Nómina CFDI v1.2" (GPER884).
  2. Indicar los parámetros requeridos para realizar el envío por email de los recibos de nómina previamente timbrados.
    • Pre-Imp/Mail  = "Email"
    • Enviar Timbrar = "NO".
  3. Verificar que no se presente el desbordamiento de memoria, que se realice el envío masivo correctamente y que se concluya el proceso correctamente.

04. INFORMACIÓN ADICIONAL

No aplica.


¡IMPORTANTE!

Esta solución aplica para versión Protheus 12.1.17 o superior, con un RPO que cuente con las rutinas correspondientes actualizadas como se indicada en la sección 01 - Datos Generales.

05. ASUNTOS RELACIONADOS

  • Documento Técnico de Timbrado de Recibo de Nómina CFDi 3.3 - México