|
#1
|
|||
|
|||
Primero decirte que estas llamando a una transacción no una función.
Tienes varias opciones de hacerlo: 1.- Si lo haces con un call transaction puedes añadir la coletilla "using itab". Esto lo que te permite es hacer un B.I. Para ello tendras que hacer una grabación de la transaccion CS15 ( Sistema->Servicios->Batch Input-> Grabacion). Donde: DATA: itab TYPE TABLE OF BDCDATA occurs 0 with header line. te paso tambien un form que te vendra bien que sera donde meteras la grabacion que has hecho antes que sera del tipo: PERFORM dynpro USING: 'X' 'ZPCEDTE0' '1000', ' ' 'BDC_OKCODE' '=%154', *&---------------------------------------------------------------------* *& Form dynpro *&---------------------------------------------------------------------* FORM dynpro USING p_dynbegin p_campo p_valor. CLEAR bdcdata. IF p_dynbegin EQ 'X'. MOVE: p_campo TO bdcdata-program, p_valor TO bdcdata-dynpro, p_dynbegin TO bdcdata-dynbegin. ELSE. MOVE: p_campo TO bdcdata-fnam, p_valor TO bdcdata-fval. ENDIF. APPEND bdcdata. ENDFORM. " dynpro Una vez tengas itab rellena solo te queda llamar al call transacion: CALL TRANSACTION 'CS15' USING ITAB MODE 'N' "N->Oculto, A->Ves las pantallas, E->si UPDATE 'S' "hay error. 2. Puedes hacer un submit al programa que este asociado dicha transaccion, lo veras en sistema->status nombre del programa. la llamada seria del tipo: SUBMIT zpcedte0 WITH SELECTION-TABLE parametros * TO SAP-SPOOL SPOOL PARAMETERS params * WITHOUT SPOOL DYNPRO AND RETURN. donde parametros seria del tipo: DATA: parametros LIKE rsparams OCCURS 0 WITH HEADER LINE. Espero que con esta ayudita te sirva!! Si te atascas no dudes en preguntar. Saludos!! Úlima edición por sap2006 fecha: 24/09/07 a las 13:17:06. |
#2
|
||||
|
||||
Ok..a ver....
De momento he hecho ésto:
FORM USER_COMMAND USING P_UCOMM LIKE SY-UCOMM P_SELFIELD TYPE SLIS_SELFIELD. CASE P_UCOMM. WHEN '&IC1'. " SAP standard code for double-clicking PERFORM DYNPRO USING: 'X' 'SAPMC29L' '0200', ' ' 'BDC_CURSOR''RC29L-DIRKT', ' ' 'BDC_OKCODE' '=CSN2', ' ' 'RC29L-MATNR' '4000', ' ' 'RC29L-DIRKT' 'X', ' ' 'RC29L-MATTP' 'X', ' ' 'RC29L-DATUV' 'SY-DATUM' 'X' 'SAPMC29L' '0205', ' ' 'BDC_CURSOR''RC29L-EMENG' ' ' 'BDC_OKCODE' '=CSGO', ' ' 'RC29L-WERKS' 'CENT'. ENDCASE. CALL TRANSACTION 'CS15' USING IT_BDCDATA MODE 'N'. ENDFORM. "USER_COMMAND Manteniendo mi código del ALV..le digo que en vez de hacer lo de antes...ahora realice el batch-input y luego llame a la transacción. Por otro lado he declarado el form del dynpro como tu me has dicho (lo unico que he llamado a mi tabla it_bdcdata.: FORM DYNPRO USING P_DYNBEGIN P_CAMPO P_VALOR. CLEAR IT_BDCDATA. IF P_DYNBEGIN EQ 'X'. MOVE: P_CAMPO TO IT_BDCDATA-PROGRAM, P_VALOR TO IT_BDCDATA-DYNPRO, P_DYNBEGIN TO IT_BDCDATA-DYNBEGIN. ELSE. MOVE: P_CAMPO TO IT_BDCDATA-FNAM, P_VALOR TO IT_BDCDATA-FVAL. ENDIF. APPEND IT_BDCDATA. ENDFORM. "DYNPRO Una vez echo todo esto te puedo decir que me da un error entre el numero de parametros que recibe el FORM DYNPRO y los que se le pasan en realidad...pero no se ver porque. También he estado mirando en internet y primero abren el juego de datos..luego lo cierran y otras cosas mas. Eso no s necesario?? |
#3
|
||||
|
||||
Ok...medio resuelto
Ok..he arreglado los errores en compilacion. Lo que pasa es que ejecuto el programa y cuando le doy al número de material no hace nada.
He comprobado que la tabla it_bdcdata se rellena con los campos tal y como en el batch-input. Asi que nose que es lo que debe pasar... |
#4
|
|||
|
|||
Pon el modo 'A' en el call transaction para que puedas visualizar pantalla por pantalla lo que hace, asi será mas facil saber porque no mete el valor...
El valor se lo metes literal o lo metes con una variable?¿ |
#5
|
||||
|
||||
Solucionado!
Ya me funciona...al final he utilizado ésta sentencia:
CALL TRANSACTION 'CS15' USING IT_BDCDATA MODE 'E'. Primero la he pusto en Modo 'A'...y he visto pantalla por poantalla como iba haciendo lo que queria. Luego lo he puesto en MODE E y ya me ha funcionado. Eres un hacha!!!! ;-) Muchissimas gracias! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|