MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 05/03/08, 10:39:55
vlg1971 vlg1971 is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 195
TIME OUT al ejecutar report

Hola tengo un report que muestra un alv que tiene que procesar muchos elementos pep y tarda mucho, el problema es que me retorna un time out después de haber sobrepasado los 600 segundos

¿alguien me puede explicar como aumentar este time out o como sulucionar el problema?

Gracias de antemano
Responder Con Cita
  #2  
Viejo 05/03/08, 10:44:17
LouieBoy LouieBoy is offline
Member
 
Fecha de Ingreso: ago 2006
Mensajes: 86
Buenas, de cuantas entradas estamos hablando?

Saludos,

LouieBoy
Responder Con Cita
  #3  
Viejo 05/03/08, 10:47:44
Avatar de pirri
pirri pirri is offline
Senior Member
 
Fecha de Ingreso: dic 2006
Mensajes: 127
El parametro es

rdisp/max_wprun_time 600 usando la RZ11.

Pero mejor es revisar el programa para comprobar si se puede mejorar antes de ampliarlo.
Responder Con Cita
  #4  
Viejo 05/03/08, 10:50:33
Avatar de pirri
pirri pirri is offline
Senior Member
 
Fecha de Ingreso: dic 2006
Mensajes: 127
Me olvidaba, no necesitas parar para que el cambio tome ejecto (por defecto el valor es 600).
Responder Con Cita
  #5  
Viejo 05/03/08, 11:02:12
vlg1971 vlg1971 is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 195
Hola gracias por tu atencion, estamos hablando de 60 entradas, cada una de estas tiene que realizar una serie de calculos para los 12 meses del mes de hay que tarde tango, creo que el programa esta bastante optimizado pero siempre se podria mejorar
Responder Con Cita
  #6  
Viejo 05/03/08, 11:12:28
Avatar de pirri
pirri pirri is offline
Senior Member
 
Fecha de Ingreso: dic 2006
Mensajes: 127
Podrías ejecutar en background los calculos y pasarlos a una tabla. Luego hacer un alv para mostrarlos en online.
Responder Con Cita
  #7  
Viejo 05/03/08, 11:14:30
Avatar de pirri
pirri pirri is offline
Senior Member
 
Fecha de Ingreso: dic 2006
Mensajes: 127
Para lanzarlo online puedes usar 'commit work' resetea este tiempo y no te pararía, pero tendrías que ver como afecta a tu programa.
Responder Con Cita
  #8  
Viejo 05/03/08, 11:27:16
vlg1971 vlg1971 is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 195

Hola Pirri, me interesaria lanzarlo online si no he entendido mal usando el commit work ¿reinicia el valor del time out a 0?, en tal caso te esta porcion de codigo en la que se realizan 90 iteraciones sobre la tabla it_pep_gerencia, cada iteracion tarda aproximadamente 10 segundos, de la manera que me has explicado puedo aumentar el time out pero no me es muy fiable ya que este tiempo puede ser variable,

¿poniendo el comit work al final de la iteracion bastaria?

LOOP AT it_pep_gerencia.
PERFORM mostrar_indicador USING it_pep_gerencia-posid.
CONCATENATE it_pep_gerencia-posid ', ' mpep INTO mpep.
PERFORM carga_tipo_val_analitica.
PERFORM calcular_totales_analitica.
PERFORM carga_tipo_cal_por_analitica.
"Debido al nuevo listado que pide Toni Facturacion ctc anual
IF p_okabc = 'X' OR p_okcont = 'X'.
PERFORM calcular_tot_formatos_analit2.
ELSEIF p_fact = 'X'.
PERFORM gabar_val_it_analit_fact_anio USING it_pep_gerencia-posid.
ENDIF.
CLEAR itanaliticaalvacumula.
REFRESH itanaliticaalvacumula.
COMMIT WORK.
ENDLOOP.

GRACIAS POR TU ATENCION
Responder Con Cita
  #9  
Viejo 05/03/08, 11:42:06
Avatar de pirri
pirri pirri is offline
Senior Member
 
Fecha de Ingreso: dic 2006
Mensajes: 127
Yo creo que te serviría pero no sé que hace en los perform de tú programa ¿actualizán la base de datos?.

COMMIT WORK lo que hace es actualizar la base de datos con los datos que tiene en memoría tu proceso, pero si no te da problemas con eso la lógica del tú programa, lo que puedes notar es quizás, que va un poco más lento el proceso al tener que hacer la actualización de la base de datos.

En la SM50 puedes comprobar el tiempo de tú programa y si se pone a 0, también este tiempo se pone a 0 cuando haces un debug. Por ejemplo si colocas un break-point cada vez que lo alcanza este tiempo comienza de 0.
Responder Con Cita
  #10  
Viejo 05/03/08, 12:04:02
vlg1971 vlg1971 is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 195

Los performs del bucle lo que hacen son agregar y modificar registros de la tabla intermedia ¿crees que poniendo COMMIT WORK en cada modify, collect y append se podria solucionar el problema?
Gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 13:26:31.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web