01. DATOS GENERALES
Producto | |
---|
Línea de producto: | |
---|
Segmento: | |
---|
Módulo: | SIGAGPE - Gestión de Personal. |
---|
Función: | Rutina(s) | Nombre Técnico | Fecha |
---|
TIMBRERN | Funciones Timbrado | recibo nómina.29-01-2021 | Nómina. | 03/02/2021 | GPER884 | Funciones 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 En la rutina de Funciones Timbrado recibo de nóminanómina (TIMBRERN), en :
...
- Valida si el CFDi ya está timbrado (ValidaRecibo) mediante la búsqueda del UUID en el XML, se 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.
Totvs custom tabs box |
---|
tabs | Pre-condiciones,Pasos |
---|
ids | Pre-condiciones,Pasos |
---|
|
Totvs custom tabs box items |
---|
default | yes |
---|
referencia | Pre-condiciones |
---|
| Respaldar - Realizar un respaldo del repositorio del ambiente (archivo .RPO).
- Aplicar el parche correspondiente al issue DMINA-10926.
- Verificar que
la rutina actualizada - las rutinas actualizadas en el repositorio, coincida con
la descrita - las descritas en el encabezado del presente Documento Técnico
, así como la fecha- (con fecha igual o superior).
- En la rutina de Cálculo por
procedimiento- procedimiento (GPEM020), realizar el cálculo para los empleados.
- 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).
|
Totvs custom tabs box items |
---|
| - Ingresar al módulo Gestión de Personal (SIGAGPE),
opción - e ir al menú "Informes | Periódicos | Recibo de Nómina CFDI v1.2" (GPER884).
- Indicar los parámetros requeridos para realizar el envío por email de los recibos de nómina previamente timbrados.
En la pregunta indicar la opción En la pregunta , indicar la opción - 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.
Card documentos |
---|
Informacao | 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. |
---|
Titulo | ¡IMPORTANTE! |
---|
|
05. ASUNTOS RELACIONADOS
HTML |
---|
<style>
div.theme-default .ia-splitter #main {
margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
display: none;
}
#main {
padding-left: 10px;
padding-right: 10px;
overflow-x: hidden;
}
.aui-header-primary .aui-nav, .aui-page-panel {
margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
margin-left: 0px !important;
}
.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after {
background: #FF9900; !important
}
.menu-item.active-tab {
border-bottom: none !important;
}
</style>
|