Como pasar un select options a una función

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • yerotos
    Member
    • nov
    • 39

    #1

    Como pasar un select options a una función

    Buenas de nuevo.
    Tengo en mi código un select options:

    select-options:
    si_nie for T7EHS00_SERVICE-pernr.

    y quisiera pasar el valor que contenga este select options a una función, lo he hecho de la siguiente forma:

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    input = so_nie
    IMPORTING
    output = it_lineatabla-nie.

    y me da todo el rato error.

    Como pongo en el input el select options?

    Gracias otra vez.

    Salu2
  • JAC
    Junior Member
    • oct
    • 27

    #2
    Leete esto a ver si te sirve de algo.

    Comentario

    • orlava
      Junior Member
      • dic
      • 9

      #3
      El select options es una especie de tabla interna. La función en cuestión no admite tablas internas, solo parámetros. Por ello debes hacer lo siguiente:

      Debes hacer un loop at si_nie
      Dentro llamas a la funcion pasándole como parametro si_nie-low, que representa cada valor del select-options.
      con lo que te devuelva la función rellenas la cabecera de tu tabla interna it_lineatabla y le haces un append.

      Comentario

      • ibecerra

        #4
        hola no te preocupes es entras a la se37
        muy facil y sencillo a tu funcion en la pestaña de tables
        creas un parametro ejemplo

        parametro tipificaci tipo_ref
        T_MATERIAL LIKE BAPI_RANGESMATNR --> "en este caso he conseguido una estructura estandar de rangos" si no sabes cual es ubicala en se11 opcion "tipo de datos" o creas una.
        luego en el codigo de la funcion se lo pasas como un range ejemplo
        select * into table xxxxx from mara where matnr in t_material. --> viste q se comporta como un range, porque un range es una tabla interna o estructra de datos
        saludos

        Comentario

        • ibecerra

          #5
          ahh me olvidaba
          en tu programa principal tienes lo siguiente

          select-option s_matnr for mara-matnr..

          start-of-selection
          CALL FUNCTION 'ZRFC_TUFUNCION'
          TABLES
          T_MATERIAL = S_MATNR

          Comentario

          • yerotos
            Member
            • nov
            • 39

            #6
            Originalmente publicado por orlava
            El select options es una especie de tabla interna. La función en cuestión no admite tablas internas, solo parámetros. Por ello debes hacer lo siguiente:

            Debes hacer un loop at si_nie
            Dentro llamas a la funcion pasándole como parametro si_nie-low, que representa cada valor del select-options.
            con lo que te devuelva la función rellenas la cabecera de tu tabla interna it_lineatabla y le haces un append.
            Gracias, por tu ayuda. Esto que me indicas, me funciona a medias. Si le meto un rango de valores, por ejemplo del 1 al 20, si_nie_low siempre sera 1.

            Como puedo solucionar esto?

            Comentario

            • robert_milan
              Senior Member
              • jun
              • 315

              #7
              tendrias que crear una funcion que sea inteligente y lea los valores de la tabla interna.

              y poder crear el rango de 1 a 20 o de 0 a n

              o ver si solo es un parametro.

              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.

              Comentario

              • yerotos
                Member
                • nov
                • 39

                #8
                Originalmente publicado por robert_milan
                tendrias que crear una funcion que sea inteligente y lea los valores de la tabla interna.

                y poder crear el rango de 1 a 20 o de 0 a n

                o ver si solo es un parametro.

                saludos
                Si pero cual es el campo del select-option que contiene el valor?
                Me refiero a si el valor es si_nie o si_nie-algun campo...

                Perdonan mi ignorancia

                Comentario

                • robert_milan
                  Senior Member
                  • jun
                  • 315

                  #9
                  por ejemplo si declaras un s_matnr como select los valores los tienes en s_matnr-low y s_matnr-high.

                  y en s_matnr-option tienes si es bt = entre, EQ = igual, etc. ahi tendrias que meter tu logica.
                  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.

                  Comentario

                  • yerotos
                    Member
                    • nov
                    • 39

                    #10
                    Originalmente publicado por robert_milan
                    por ejemplo si declaras un s_matnr como select los valores los tienes en s_matnr-low y s_matnr-high.

                    y en s_matnr-option tienes si es bt = entre, EQ = igual, etc. ahi tendrias que meter tu logica.
                    Entonces, por ejemplo para los intervalos, lo que tendría que hacer es recorrer desde s_matnr-low y hasta el s_matnr-high y coger lo que contenga s_matnr-low, no?
                    Lo único, tendría q ir aumentandole en una unidad cada pasada no?

                    Estoy muy verde, lo siento. ops:

                    Comentario

                    • yerotos
                      Member
                      • nov
                      • 39

                      #11
                      Por fin!! Ya he conseguido hacer lo que quería. Al final era mas sencillo que lo q yo pretendía , me complique la vida demasio. He hecho un select pasandole el select-options con el in y he metido el resultado en una tabla interna.

                      Muchas gracias por vuestra ayuda, si no es por vds. no salgo a la orilla.

                      Siento haber dado tanto el coñazo.

                      Un saludo

                      Comentario

                      • Enksillado
                        Junior Member
                        • may
                        • 3

                        #12
                        Como pasar un SELECT-OPCION a una RUTINA?

                        Buenas, estoy con un tema dando vueltas, y no puedo encontrarlo...
                        Alguien sabe como podría pasar un select-option a una rutina?.
                        Acutalmente tengo lo paso como parametro tipo CHANGING a una rutina que lo recibe del una estructura del tipo SELOPT.
                        Pero me da error diciento que los parametros son incompatibles.

                        Lo envio como:
                        PERFORM xxxx CHANGING SO_MATNR

                        y lo recibo

                        FORM xxxx CHANGING P_RANGO type SELOPT.

                        tambien he intentado hacerlo mediante Tables, me genera el mismo error ademas tenia entendido que es una sentencia obsoleta.

                        Muchas Gracias!.

                        Comentario

                        • Mauricio Hidalgo
                          Senior Member
                          • may
                          • 481

                          #13
                          Y SO_MATNR como lo tienes definido?

                          Comentario

                          Trabajando...