PDA

Ver la Versión Completa : Problemas Con Submit


hardrake
18/02/08, 17:14:11
Muy buenas, estoy haciendo un programa y no se como puedo hacer una cosilla. El tema es que tengo un report que dentro hace un submit a otro programa y luego tiene que volver al primer programa para seguir. El tema es que hace bien el submit pero ejecuta ese programa y visualiza el resultado por pantalla, teniendo que dar al boton de atras para que vuelva al primer programa. Mi pregunta es, hay alguna forma que al ejecutar el submit realice las operaciones del otro programa y sin visulizarlo por pantalla vuelva al primer programa?

Muchas gracias y espero no liar mucho. Un saludo.

El submit es:

Submit PPSFCACT WITH FLG_TERM = '' with TESTRUN eq '' with flg_cost
EQ 'X' with AUFNR-LOW = i_afko-aufnr and return.

ibecerra
18/02/08, 19:30:35
q tal, pero necesitas la informacion del prgrama que llamas..
tu esquema es el siguiente
1.. zprincipal hace submit zpsencundario.
entonces.

2..a zprincipal has un export de una varible x
ejemplo
EXPORT PROC TO MEMORY ID 'PROC'.
cuando llame a zpsecundario. haces un import de la variable.
para saber si es llamado por zprincipal.. si es asi.. entonces que no salga nada en el reporte.. y las tablas que displaya guardalo en memoria.
asi que cuando regrese a tu programa principal ya tendras la informacion del programa secundario.
saludos

vickxo
19/02/08, 11:30:53
Hola intenta lo siguiente:

SUBMIT zreport EXPORTING LIST TO MEMORY and return .

Con esta intruccion mandas a memoria la lista de resultados que te entrega la transaccion a la cual le haces el submit. Ahora bien para recuperar la info usa la funcion 'LIST_FROM_MEMORY' , cheka este codigo ejemplo:

DATA BEGIN OF itab_list OCCURS 0.
INCLUDE STRUCTURE abaplist.
DATA END OF itab_list.

DATA: BEGIN OF vlist OCCURS 0,
filler1(01) TYPE c,
field1(06) TYPE c,
filler(08) TYPE c,
field2(10) TYPE c,
filler3(01) TYPE c,
field3(10) TYPE c,
filler4(01) TYPE c,
field4(3) TYPE c,
filler5(02) TYPE c,
field5(15) TYPE c,
filler6(02) TYPE c,
field6(30) TYPE c,
filler7(43) TYPE c,
field7(10) TYPE c,
END OF vlist.

SUBMIT zreport EXPORTING LIST TO MEMORY.

CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = itab_list
EXCEPTIONS
not_found = 4
OTHERS = 8.

CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
list_index = -1
TABLES
listasci = vlist
listobject = itab_list
EXCEPTIONS
empty_list = 1
list_index_invalid = 2
OTHERS = 3.

IF sy-subrc NE '0'.
WRITE:/ 'LIST_TO_ASCI error !! ', sy-subrc.
ENDIF.

Mira a decir verdad no lo he usado pero en teoria debe de funcionar.

Saludos!

Por otro lado, debuggea el programa al cual le haces el submit capaz que en ese programa la informacion que necesitas la puedes obtener por una funcion.

mcarrasco
19/02/08, 11:34:24
Tambien la variable PROC que estas exportando debes crearla en el programa que recibe o importa la variable con el mismo nombre y el mismo tipo!

vickxo
19/02/08, 12:11:09
Hola, mira hice un debugg sobre PPSFCACT y vi que con esta funcione puedes obtener la informacion que haces con la transaccion obvio sin tantas validaciones y sin que se vea super guay pero mete un break point sobre:


CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
curr_report = sy-cprog
TABLES
selection_table = t_params.

Revisala y estoy casi seguro que con ellas el submit no lo tendras que usar.

yocostero
07/03/12, 12:29:26
Buenas hardrake,
Tengo el mismo inconveniente, pudiste solucionarlo de alguna manera?

Saludos y muchas gracias!