MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Screen Painter (foro/showthread.php?t=1696)

sandrotirado 11/09/06 16:40:32

Screen Painter
 
Saludos, estoy haciendo un programa de mantenimiento a una tabla de empleados, todo lo manejo en una tabla interna y luego lo paso a la tabla de la BD.
En la primera pantalla de mi programa tengo una tabla q muestra todos los empleados (esta dibujada desde el screen painter), se puede crear uno nuevo como seleccionar uno existente y de alli se pasa a visualizarlo, editarlo, eliminarlo segun que se escoja.
Mi problema es que cuando creo un nuevo empleado y regreso a la pantalla inicial este no figura en la tabla, pero cuando paso a otras pantallas (como editarlo o eliminarlo) y regreso la tabla si esta actualizada.
Se debe hacer algun tipo de refrescamiento especial para el caso en que hago insert o que me recomiendan?
nota: incluso he intentado despues del insert hacer nuevamente un select para llenar nuevamente la tabla, pero el resultado es el mismo, el nuevo empleado solo figura cuando salgo del programa y vuelvo a entrar

Gregoryg 11/09/06 18:26:53

hola

Luego de hacer un insert a la tabla de Bd debes hacer un commit work esto para garantizar que se realizo la escritura del nuevo registro en la base de datos.

Creo que con esto solucionas tu problema.

Saludos

sandrotirado 11/09/06 19:02:39

tambien pense que podria ser eso, pero no soluciono mi problema

Carlos J. Ortega González 12/09/06 21:05:32

Pregunta, cuando haces el commit work, es inmediatamente después de hacer el insert, también te aseguras de que este termine con sy-subrc = 0 (sin error), puedes probar 2 opciones, la primera es limpiar tu tabla interna y realizar de nuevo la selección asegurándote que el nuevo registro sea incluido, la otra es asegúrate que la información es incluida en tu tabla interna (append), te sugiero realices un SORT, para que se acomode en su lugar, es posible que se encuentre en el último registro por el APPEND.

sandrotirado 18/09/06 20:15:38

tambien lo he hecho

INSERT zstemp.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE 'E' NUMBER sy-msgno WITH text-m01.
LEAVE TO SCREEN '0'.
ELSE.
COMMIT WORK.
ENDIF.

el registro se llega a insertar, el problema es que no sale en mi tabla del programa una vez creado el empleado, solo se ve cuando salgo del programa y vuelvo a entrar

FranOchoa 21/09/06 16:46:31

Respuesta
 
Puedes probar ha hacer un commit work despues del insert si sigue sin funcionar prueba a poner un retardo antes de hacer la select de nuevo puede ser que la grabacion aun no se haya echo en el servidor y tu select sea mas rapida que el servidor en grabar.

Espero que te ayude.

Un saludo.

sandrotirado 21/09/06 19:50:53

como hago para poner un retraso?
eso si no lo se hacer

Mauricio Hidalgo 21/09/06 20:48:20

Yo creo que el problema lo tienes en la pantalla inicial. le deberías poner un modulo en pBO para que relea la tabla y actualices tus campos.

espero sea seo


Husos Horarios son GMT. La hora en este momento es 06:10:29.

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