abap memory

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • stormshadow
    Senior Member
    • jun
    • 117

    #1

    abap memory

    Muy buen día foro, abro el thread para consultar lo siguiente:

    Tengo un report z en el cual muestra un listado de folios, puse un botón con la opción para modificar el que el usuario seleccione, pero para modificarlo lo tengo en otro programa que es un modul pool, mi pregunta es que al llamar el modul pool con submit miprograma, para poder pasarle el folio como parámetro en memoria me truena el programa ya que me dice que el programa al que se mande llamar con submit no debe ser del tipo 'm', entonces creo que no puedo llamar un modul pool de esa forma, puedo llamar esa pantalla por medio de su transacción pero no puedo mandarle el folio como parámetro.. Alguién pasó por una situación similar, o podría ayudarme?

    Muchas gracias de antemano.
    "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein
  • DCErick
    Moderator
    • mar
    • 1090

    #2
    En el dynpro de tu modulpool tienes 2 atributos que puedes activar para la caja de texto que reciba ese folio.

    ID Parámetro y Parámetro GET


    Txt.brv.

    ID de parámetro memoria SAP

    Definición

    Para fijar y visualizar valores de propuesta provenientes de la memoria
    SAP se utilizan los parámetros SPA/GPA. La asignación se realiza
    mediante un ID de parámetro de 20 posiciones.
    Los campos con referencia al Dictionary ABAP tomarán el ID de
    parámetro ahí indicado.
    Txt.brv.

    Parámetro Get

    Definición

    Al activar el parámetro GET no se visualizará el campo con valor inicial
    sino que con el valor definido previamente en el memoria SAP. Para ello
    es necesario indicar el ID de parámetro correspondiente.
    Ah me falta comentarte que antes de llamar la transacción desde tu reporte debes de poner lo siguiente

    SET PARAMETER ID 'ID_INDICADO_DYNPRO' FIELD 'VALOR'.
    Example:
    If the user selects a flight displayed in the basic list, when the event ATLINE-SELECTION takes place, the SPA/GPA parameters CAR and CON are set to the ID of the airline and the connection number. The names of both parameters are defined in the table TPARA for this purpose. In the initial screen of the transaction DEMO_TRANSACTION, two input fields are linked with SPA/GPA these parameters and are displayed with the selected values as start values.

    Código:
    DATA: carrier     TYPE spfli-carrid, 
          connection  TYPE spfli-connid. 
    
    START-OF-SELECTION. 
      SELECT carrid connid 
             FROM spfli 
             INTO (carrier, connection). 
        WRITE: / carrier HOTSPOT, connection HOTSPOT. 
        HIDE:  carrier, connection. 
      ENDSELECT. 
    
    AT LINE-SELECTION. 
      SET PARAMETER ID: 'CAR' FIELD carrier, 
                        'CON' FIELD connection. 
      CALL TRANSACTION 'DEMO_TRANSACTION'.
    ----
    Siempre que veo tus temas me cargo de la risa, por tu imagen.
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

    Comentario

    • stormshadow
      Senior Member
      • jun
      • 117

      #3
      Ah! Muchas gracias!! Precisamente eso me va de lujo!! Solo que tengo otra incógnita, no van a poder modificar sobre esa caja de texto, pues ese folio es como un ID, entonces si dejo libre la caja para que escriban ya me transporta a la perfección el ID correspondiente, pero si le pongo la restricción para que no puedan entrar datos ya no me manda el ID :S sabes a que se deba eso? Muchas gracias por tu respuesta!

      ah! Y otra cosa, para liberar la memoria del parámetro que le mando solo es con el free memory id 'ID_INDICADO_DYNPRO' no? Por qué me lo sigue dejando aun que haga otra acción al mandar llamar esa pantalla me sigue mandando el id que había seleccionado anteriormente :S

      Y si mi avatar es la sensación xD
      Editado por última vez por stormshadow; 04/01/2012, 16:07:40.
      "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

      Comentario

      • DCErick
        Moderator
        • mar
        • 1090

        #4
        Originalmente publicado por stormshadow
        Ah! Muchas gracias!! Precisamente eso me va de lujo!! Solo que tengo otra incógnita, no van a poder modificar sobre esa caja de texto, pues ese folio es como un ID, entonces si dejo libre la caja para que escriban ya me transporta a la perfección el ID correspondiente, pero si le pongo la restricción para que no puedan entrar datos ya no me manda el ID :S sabes a que se deba eso? Muchas gracias por tu respuesta!

        Y si mi avatar es la sensación xD
        La verdad no sé a que se deba eso ocuparía probarlo, pero si te ayuda en algo, aparte del SET PARAMETER ID tamb. existe el GET PARAMETER ID

        GET PARAMETER

        Syntax
        GET PARAMETER ID pid FIELD dobj.

        Effect
        This statement sets the content of the data object dobj to the content of the SPA/GPA parameter specified in pid. pid must be a flat character-type field that contains no more than 20 characters and does not consist solely of blanks; it is also case-sensitive. dobj must be a flat and (as of Release 6.10) character-type field into which the binary content of the SPA/GPA parameter is transferred unconverted.

        If the SPA/GPA parameter specified in pid was not yet created in the SAP Memory for the current user, the data object dobj is initialized and sy-subrc is set to 4.

        In a program, only those SPA/GPA parameters can be read for which there is a name in the table TPARA. The extended program check reports an error, if it can be statically determined that an ID specified in pid is not in the table TPARA.
        Resumen en tu PBO coloca.

        Código:
        GET PARAMETER ID 'ID_USADO' FIELD 'VARIABLE_CORRESPONDIENTE_A_CAJA_TEXTO'.
        Creo que con eso puedes solucionarlo, no me gusta mucho la opción porque hay que meterle código a lo que se deberia de poder hacer en automático, pero mientras funcione todo es válido xD.
        -------------------
        ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

        Comentario

        • stormshadow
          Senior Member
          • jun
          • 117

          #5
          aaaaaaaaaaaaawwww listo si ya con el get quedó, para liberar el id tuve que setearlo a un space ya que con el free memory no podía :S pero bueno en fin, tienes razón no se debe meter code pero pues ya así ya funcionó...

          Muchas gracias!
          "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

          Comentario

          Trabajando...