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 26/03/08, 14:08:07
juanmgdelomana juanmgdelomana is offline
Member
 
Fecha de Ingreso: dic 2007
Mensajes: 47
at line selection con call transaction

Hola, buenas a todos:

Tengo una duda, estoy sacando un listado simple con varios registros y quiero que una vez sea pinchado uno determinado se haga un call transaction cogiendo un campo de ese registro seleccionado. El problema es que no me llega a lanzar el call transaction y no veo cual es el problema.

Os dejo el código, a ver si algún alma caritativa me puede ayudar.

Gracias.

tables: caufv, qals.

data: va_aufnr like caufv-aufnr.

data: begin of it_aufnr occurs 0,
aufnr like caufv-aufnr.
data: end of it_aufnr.

data: begin of it_trazbi_sem occurs 0,
charg like qals-charg,
prueflos like qals-prueflos.
data: end of it_trazbi_sem.

SELECTION-SCREEN BEGIN OF BLOCK B0 WITH FRAME.
PARAMETERS: Ciclo like caufv-cy_seqnr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B0.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ciclo.

START-OF-SELECTION.

perform selection.

end-of-SELECTION.

set PF-STATUS 'ZSTATUSTRAZABILIDAD'.

perform write.

at LINE-SELECTION.

if not it_trazbi_sem-prueflos is initial.

SET PARAMETER ID 'QLS' FIELD it_trazbi_sem-prueflos.
call TRANSACTION 'QA13' and SKIP FIRST SCREEN.

else.

MESSAGE s001(z1).

endif.


form selection.

select aufnr
from caufv
into CORRESPONDING FIELDS OF TABLE it_aufnr
WHERE cy_seqnr = ciclo.


SELECT charg prueflos
from qals
into CORRESPONDING FIELDS OF table it_trazbi_sem
FOR ALL ENTRIES IN it_aufnr
where aufnr = it_aufnr-aufnr.

endform.


form write.

loop at it_trazbi_sem.
write: /, at 10 it_trazbi_sem-charg,
at 30 it_trazbi_sem-prueflos HOTSPOT.
hide it_trazbi_sem-prueflos.
endloop.
clear it_trazbi_sem.

endform.
Responder Con Cita
  #2  
Viejo 26/03/08, 14:41:06
Avatar de robert_milan
robert_milan robert_milan is offline
Senior Member
 
Fecha de Ingreso: jun 2006
Localización: Mexico, DF
Mensajes: 315
Puede ser que la linea que estas leyendo no es correcta:

Mira te pongo un ejemplo de un informe en donde los datos empiezan apartir de la linea 3. Verifica esto.

REFRESH BDC_TAB.
CHECK SY-CUROW >= 3.
IF SY-CUCOL <= 10.
PERFORM DYNPRO USING:
'X' 'SAPMF05L' '0100', "Pantalla
' ' 'RF05L-BELNR' ITAB-CONTRATO, "campo contrato
' ' 'RF05L-BUKRS' ITAB-BUKRS, "campo sociedad
' ' 'RF05L-GJAHR' ITAB-GJAHR. "campo ejercicio
* ' ' 'BDC_OKCODE' '/00'. "Pulsar INTRO
CALL TRANSACTION 'FBD3' USING BDC_TAB.
ELSEIF SY-CUCOL >= 80.
PERFORM DYNPRO USING:
'X' 'SAPMF05L' '0100', "Pantalla
' ' 'RF05L-BELNR' ITAB-DOC, "campo contrato
' ' 'RF05L-BUKRS' ITAB-BUKRS, "campo sociedad
' ' 'RF05L-GJAHR' ITAB-GJAHR. "campo ejercicio
* ' ' 'BDC_OKCODE' '/00'. "Pulsar INTRO
CALL TRANSACTION 'FB03' USING BDC_TAB.
ENDIF.


Saludos!!!
__________________
Un Huevon No Inútil


Solo di lo que piensas, a la mejor tienes la mejor respuesta....

Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

Consultor FI jr/ABAP Sr.
Responder Con Cita
  #3  
Viejo 26/03/08, 14:47:52
juanmgdelomana juanmgdelomana is offline
Member
 
Fecha de Ingreso: dic 2007
Mensajes: 47
Es una buena idea, pero creo que no se trata de eso... He estado debueando el programa y ni siquiera llega al evento at line selection. Muchas gracias por tu colaboración. Seguire peleando con ello.
Responder Con Cita
  #4  
Viejo 26/03/08, 14:50:55
Avatar de mysmb2
mysmb2 mysmb2 is offline
Senior Member
 
Fecha de Ingreso: ene 2007
Localización: Cordoba
Mensajes: 406
probe tu codigo, no tuve problemas en ejecutar el call transaction, hace un /h cuando pichas un registro (pick).
lo unico que cambie fue el status, fijate capaz es eso.
Saludos.
Responder Con Cita
  #5  
Viejo 26/03/08, 14:51:00
Avatar de robert_milan
robert_milan robert_milan is offline
Senior Member
 
Fecha de Ingreso: jun 2006
Localización: Mexico, DF
Mensajes: 315
Mira te dejo el ejemplo completo,

REPORT zfiinf_contratos NO STANDARD PAGE HEADING.

TABLES: bkpf, "Cabecera de documento para Contabilidad
bseg, "Segmento de documento de Contabilidad
kna1. "Maestro de clientes (parte general)

**********************
*TABLAS INTERNAS
**********************
DATA: BEGIN OF itab OCCURS 0,
contrato LIKE bkpf-dbblg,
cod_cli LIKE kna1-kunnr,
nom_cli LIKE kna1-name1,
doc LIKE bkpf-belnr, "documento contable
gjahr LIKE bkpf-gjahr, "ejercicio
bukrs LIKE bkpf-bukrs, "sociedad
END OF itab.
DATA flag.

*Para cuando se llama a las transac. FB03 y FBD3
DATA: BEGIN OF bdc_tab OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdc_tab.

**********************
*PANTALLA DE SELECCION
**********************
SELECT-OPTIONS contrato FOR bkpf-dbblg OBLIGATORY.


**********************
*CABECERA
**********************
TOP-OF-PAGE.
PERFORM cabecera.


**********************
*START OF SELECTION
**********************
START-OF-SELECTION.

SELECT * FROM bkpf WHERE dbblg IN contrato.
*el cliente no va a cambiar, así que entramos una sola vez en la BSEG
*para encontrarlo
SELECT * FROM bseg UP TO 1 ROWS WHERE bukrs = bkpf-bukrs
AND belnr = bkpf-belnr
AND gjahr = bkpf-gjahr.
SELECT SINGLE * FROM kna1 WHERE kunnr = bseg-kunnr.
ENDSELECT.
MOVE kna1-kunnr TO itab-cod_cli.
MOVE kna1-name1 TO itab-nom_cli.
MOVE bkpf-dbblg TO itab-contrato.
MOVE bkpf-belnr TO itab-doc.
MOVE bkpf-gjahr TO itab-gjahr.
MOVE bkpf-bukrs TO itab-bukrs.
APPEND itab.
CLEAR itab.

ENDSELECT.


*ESCRIBIMOS.

LOOP AT itab.
AT NEW contrato.
flag = 'X'.
ENDAT.

IF flag = 'X'.
CLEAR flag.
WRITE:/(10) itab-contrato HOTSPOT,
15(10) itab-cod_cli,
30(35) itab-nom_cli,
80(10) itab-doc.
HIDE: itab-contrato, itab-doc, itab-gjahr, itab-bukrs.
ELSE.
WRITE:/80(10) itab-doc.
HIDE: itab-doc, itab-gjahr, itab-bukrs.
ENDIF.

ENDLOOP.

*************************************
*CUANDO EL USUARIO HAGA DOBLE-CLICK SOBRE UN CONTRATO
*O UN DOCUMENTO
*************************************
AT LINE-SELECTION.
PERFORM call_transaction.





*-----------------------------------------
**RUTINAS
*-----------------------------------------


*&---------------------------------------------------------------------*
*& Form CABECERA
*&---------------------------------------------------------------------*
FORM cabecera.
WRITE:/(10) 'CONTRATO',
15(12) 'COD. CLIENTE',
30(35) 'CLIENTE',
80(15) 'DOC. CONTABLE'.
ULINE.

ENDFORM. " CABECERA

*&---------------------------------------------------------------------*
*& Form CALL_TRANSACTION
*&---------------------------------------------------------------------*
*Cuando el usuario haga doble click sobre un contrato irá a la
*transacción FBD3 (Visualizar documento contable).
*Si es sobre un documento contable irá a la FB03 (Visualizar documento)
*----------------------------------------------------------------------*
FORM call_transaction.

REFRESH bdc_tab.
CHECK sy-curow >= 3.
IF sy-cucol <= 10.
PERFORM dynpro USING:
'X' 'SAPMF05L' '0100', "Pantalla
' ' 'RF05L-BELNR' itab-contrato, "campo contrato
' ' 'RF05L-BUKRS' itab-bukrs, "campo sociedad
' ' 'RF05L-GJAHR' itab-gjahr. "campo ejercicio
* ' ' 'BDC_OKCODE' '/00'. "Pulsar INTRO
CALL TRANSACTION 'FBD3' USING bdc_tab.
ELSEIF sy-cucol >= 80.
PERFORM dynpro USING:
'X' 'SAPMF05L' '0100', "Pantalla
' ' 'RF05L-BELNR' itab-doc, "campo contrato
' ' 'RF05L-BUKRS' itab-bukrs, "campo sociedad
' ' 'RF05L-GJAHR' itab-gjahr. "campo ejercicio
* ' ' 'BDC_OKCODE' '/00'. "Pulsar INTRO
CALL TRANSACTION 'FB03' USING bdc_tab.
ENDIF.


ENDFORM. " CALL_TRANSACTION

*---------------------------------------------------------------------*
* FORM DYNPRO *
*---------------------------------------------------------------------*
* --> VALUE(DYNBEGIN) *
* --> VALUE(NAME) *
* --> VALUE(VALUE) *
*---------------------------------------------------------------------*
FORM dynpro USING value(dynbegin) value(name) value(value).

CLEAR bdc_tab.
IF dynbegin = 'X'.
bdc_tab-program = name.
bdc_tab-dynpro = value.
bdc_tab-dynbegin = 'X'.
ELSE.
bdc_tab-fnam = name.
bdc_tab-fval = value.
ENDIF.
APPEND bdc_tab.

ENDFORM. " DYNPRO

Saludos!!!!
__________________
Un Huevon No Inútil


Solo di lo que piensas, a la mejor tienes la mejor respuesta....

Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

Consultor FI jr/ABAP Sr.
Responder Con Cita
  #6  
Viejo 26/03/08, 14:58:37
Avatar de mysmb2
mysmb2 mysmb2 is offline
Senior Member
 
Fecha de Ingreso: ene 2007
Localización: Cordoba
Mensajes: 406

comenta esta parte y probalo.
set PF-STATUS 'ZSTATUSTRAZABILIDAD'.
Responder Con Cita
  #7  
Viejo 26/03/08, 15:01:24
juanmgdelomana juanmgdelomana is offline
Member
 
Fecha de Ingreso: dic 2007
Mensajes: 47
Muchisísisisisismas gracias mysmb2!!!

Tenías razón, he comentado mi status y ya pasa por esa parte del código y funciona!!! No entiendo muy bien cual es la razón pero... que más da no???
Jejejeje. No, en serio, me gustaría saber porque pasa esto porque el status lo necesito para hacer otras cosas...

Muchísimas gracias a los dos por vuestra atención y colaboración!!!
Responder Con Cita
  #8  
Viejo 26/03/08, 15:04:53
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Hola, el problema de tu codigo es el PF STATUS, comentale esa sentencia y vas a ver que entrara la AT line-selection ... espero te sirva
__________________
David Carballido Córdova
Responder Con Cita
  #9  
Viejo 26/03/08, 15:07:16
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
hola de nuevo, mysmb2 tiene la razon , no vi los post q respondieron mientras probaba el codigo .... un saludo
__________________
David Carballido Córdova
Responder Con Cita
  #10  
Viejo 26/03/08, 15:14:33
juanmgdelomana juanmgdelomana is offline
Member
 
Fecha de Ingreso: dic 2007
Mensajes: 47
Gracias a ti tb DAVID_XD_XD, alguno me podríais explicar cual es la razón por la que no funciona con mi status???

No lo logro entender... Y es que necesito tener un status propio ya que necesito crear un botón que me haga otras cosas.

Saludos!!!
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 20:16:21.


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