Field symbols

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • sponsor
    Senior Member
    • may
    • 108

    #1

    Field symbols

    Buenas, me han pedido que valide los registros que me recupero de una tabla con los los datos de una tabla de diccionario de parametrizacion.

    Me lo han pedido que lo haga con field symbols ya que esa tabla de parametrización no va a tener siempre los mismos fieldname.

    La tabla de parametrizacion tiene campos con una serie de valores.

    Por ejemplo: gjahr = 2012

    Pero en un futuro puede que ademas del gjahr, pongamos el FISTL.

    Y quieren que el programa sea capaz de validar los registros sin importar si es un fistl o un gjahr.

    No se si me he explicado.

    Gracias de antemano.
  • vanesamacri
    Senior Member
    • jun
    • 146

    #2
    Hola, buen día.

    Te paso un ejemplo muuuy básico de cómo sería una manera de hacerlo.

    Código:
    DATA: v_campo TYPE string.
    CONSTANTS: c_tabla TYPE string VALUE 'ZTABLA'.   [i]"Suponiendo que la tabla sobre la cual se harán las validaciones es siempre la misma.[/i]
    FIELD-SYMBOLS: <fs_campo_tabla> TYPE any.
    
    
    v_campo = 'GJAHR'.      [i]"Suponiendo que este valor es el que se recupera de la tabla de parametrización[/i]
    
    
    UNASSIGN <fs_campo_tabla>.
    
    CONCATENATE c_tabla '-' v_campo INTO v_campo.  [i]"Quedaría armado 'ZTABLA-GJAHR'.[/i]
    
    ASSIGN (v_campo) TO <fs_campo_tabla>.
    
    IF <fs_campo_tabla> IS ASSIGNED.    [i]"Se valida para evitar posible dump por error de asignación.[/i] 
    
    [i]"Acá adentro y con el puntero asignado al campo de la tabla, se pueden llevar a cabo las validaciones necesarias. Lo hice bien básico al ejemplo. La referencia puede hacerse al campo de una work area con la cual se está recorriendo una tabla interna con los valores de la tabla a validar.[/i]
    
    ENDIF.
    ¿Se entiende?

    Comentario

    • sponsor
      Senior Member
      • may
      • 108

      #3
      Muchas gracias creo que es justo lo que necesito.

      Voy a implementarlo a ver que tal.

      Gracias!

      Comentario

      • sponsor
        Senior Member
        • may
        • 108

        #4
        No acabo de entender como haces las validacions?

        Por ejemplo, si quisiera eliminar de mi tabla los que fueran gjahr <> 2012 como lo haría?

        Sin poner un: delete ztabla where gjahr <> 2012.

        gjahr y 2012 son dos campos del registro de mi tabla de parametrización.

        Comentario

        Trabajando...