Primero, yo no tengo experiencia con ABAP, estoy operativo en conjeturas aquí.

Quiero agregar una condición a un selecto en un informe existente.
El código existente se parece a esto:

SELECT SINGLE *
  FROM EKPO
  WHERE EBELN = GT_MSEG-EBELN
  AND   EBELP = GT_MSEG-EBELP.

Quiero agregar una condición para excluir el registro en si el campo de la F1 es un determinado valor de campo y F2 es 0 (ambas condiciones deben ser verdaderas para excluir el registro). He intentado esto:

SELECT SINGLE *
  FROM EKPO
  WHERE EBELN = GT_MSEG-EBELN
  AND   EBELP = GT_MSEG-EBELP
  AND NOT (F1 = 'value' AND F2 = '0').

Obtengo un error de sintaxis: el Campo «F1 = ‘valor’ Y F2 = ‘0’» es desconocido. No es ni en una de las tablas especificadas ni definida por una «base de DATOS» de la declaración.

Campos F1 y F2 definitivamente existen en el EKPO tabla, he comprobado. Parece que los soportes están haciendo el compilador mirar el contenido como un nombre de campo, pero no sé por qué.

Es la sintaxis incorrecta, que me estoy perdiendo una definición en algún lugar, o ambos?

OriginalEl autor Seyren | 2012-07-24

1 Comentario

  1. 10
    SELECT SINGLE *
      FROM EKPO
      WHERE EBELN = GT_MSEG-EBELN
      AND   EBELP = GT_MSEG-EBELP
      AND NOT ( F1 = 'value' AND F2 = '0' ).
    

    Esto funcionó. Básicamente, sólo necesitaba un espacio adyacente a los soportes.

    para el futuro: casi todo en ABAP necesidades de ese espacio, como las llamadas a métodos.
    Lo consiguió. Gracias!

    OriginalEl autor Seyren

Dejar respuesta

Please enter your comment!
Please enter your name here