Ayudaaaaaaaa Field-Symbols

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • robert_milan
    Senior Member
    • jun
    • 315

    #1

    Ayudaaaaaaaa Field-Symbols

    Pues bien, me gustaria saber si es posible cambiar el valor de un field symbol que esta en estado de solo lectura.


    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.
  • ibecerra

    #2
    interesante, tienes el codigo para darle una revisada.
    yo utilizo field symbol para modificar campos de una tabla interna en forma dinamica.. vale decir si tengo en una tabla interna
    campo001 campo002 campo003 campo004.....
    y para no estar poniendo case y tanto codigo, utilizo los field-symbols para q en forma dinamica me actualice los campos sin necesidad de colocarlos todos.
    Saludos

    Comentario

    • robert_milan
      Senior Member
      • jun
      • 315

      #3
      Si claro, este es el codigo:

      DATA aux LIKE sol_ped-zprocomp.
      FIELD-SYMBOLS <eb> TYPE LINE OF MEREQ_T_EBAN.
      LOOP AT im_t_eban_pers ASSIGNING <eb>.

      IF sy-tabix EQ 1.
      aux = <eb>-zprocomp.
      ELSEIF aux NE <eb>-zprocomp.
      MOVE aux TO <eb>-zprocomp.
      ENDIF.

      ENDLOOP.

      Lo utilizo en la funcion EXIT_SAPLMEREQ_010. segun esto con los field symbols puedo modificarlo. pero no se como :S
      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

      • ibecerra

        #4
        a ver lo lo que deseas en cambias el contenido de la tabla interna mediante un
        Ejemplo
        FIELD-SYMBOLS : <MOVIPER> LIKE LINE OF T_MOVIPER.
        LOOP AT T_MOVIPER ASSIGNING <MOVIPER>.
        * Ya no necesitas hacer un modify ni nada por el estilo
        * el valor se actualiza directamente en la tabla interna.
        <MOVIPER>-CAMPO1 = 'VALOR CAMBIADO'.

        ENDLOOP.

        Comentario

        • robert_milan
          Senior Member
          • jun
          • 315

          #5
          Correcto

          Originalmente publicado por ibecerra
          a ver lo lo que deseas en cambias el contenido de la tabla interna mediante un
          Ejemplo
          FIELD-SYMBOLS : <MOVIPER> LIKE LINE OF T_MOVIPER.
          LOOP AT T_MOVIPER ASSIGNING <MOVIPER>.
          * Ya no necesitas hacer un modify ni nada por el estilo
          * el valor se actualiza directamente en la tabla interna.
          <MOVIPER>-CAMPO1 = 'VALOR CAMBIADO'.

          ENDLOOP.

          si eso es correcto pero me dice que el campo es de solo lectura :s
          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

          • ibecerra

            #6
            solo es lectura siempre y cuando el campo sea una llave interna.
            si es asi , no podras modificarlo

            Comentario

            • robert_milan
              Senior Member
              • jun
              • 315

              #7
              el problema es que en el user exist esta definido asi:
              REFERENCE(IM_T_EBAN) TYPE MEREQ_T_EBAN

              y en teoria no lo puedo modificar o si?'

              si fuera Value (IM_T_EBAN) TYPE MEREQ_T_EBAN

              se podria modificar.??
              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

              • victoria
                Junior Member
                • feb
                • 22

                #8
                hola, ese user exit solo te sirve para verificar datos, que campo quieres modificar, es un campo Z?

                Comentario

                • robert_milan
                  Senior Member
                  • jun
                  • 315

                  #9
                  Si es un campo Z que agregue con el append...

                  espero me puedas ayudar.
                  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

                  • cubanito
                    Junior Member
                    • nov
                    • 13

                    #10
                    Robert...
                    Se trata de una referencia dinámica, por lo tanto... si se puede!!!
                    Al fin y al cabo sólo son apuntadores... es posible que el que te "brinda" SAP en esa U.E. sólo "contenga" la dirección de memoria donde se encuentra el dato... o sea, apunta a la dirección física del mismo, mas no a su "contenido", por eso no puedes modificarlo. Si lo que tú necesitas es "entrar" al dato, te sugiero que generes tu propia "asignación dinámica" haciendo referencia al "contenido" del apuntador (o field-symbol)...

                    Saludos!!!

                    Comentario

                    • dgarcgon
                      Junior Member
                      • jul
                      • 8

                      #11
                      Hola, tengo una duda sobre este bucle

                      LOOP AT t_bseg ASSIGNING <fs>.
                      clear bkpf-bukrs.
                      SELECT SINGLE bukrs FROM bkpf into bkpf-bukrs
                      WHERE bukrs = <fs>-bukrs AND
                      belnr = <fs>-belnr AND
                      gjahr = <fs>-gjahr AND
                      blart = 'F9' AND
                      bldat = it_periodif-bldat AND
                      budat = it_periodif-budat AND
                      grpid = 'ZSD00031'.

                      IF sy-subrc EQ 0.
                      MOVE-CORRESPONDING it_periodif TO it_delete.
                      APPEND it_delete.
                      CLEAR it_delete.

                      EXIT.
                      ENDIF.
                      ENDLOOP.


                      En cierta medida, en cierta medida no acabo de verle utilidad a utilizar un FIELDSYMBOL en este progrma, si ya está dentro de un loop porqué referenciar de forma dinámica?

                      Alguien podria arrojarme algo de luz sobre la razón de este bucle?

                      La declaración del FS es la siguiente:

                      DATA: t_bseg TYPE TABLE OF zbseg1.
                      FIELD-SYMBOLS <fs> TYPE zbseg1.


                      Gracias de antemano,

                      Comentario

                      Trabajando...