Error DBIF_RSQL_INVALID_RSQL en Report

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • edu_alo_martinez
    Member
    • ago
    • 63

    #1

    Error DBIF_RSQL_INVALID_RSQL en Report

    Hola a todos,

    Les cuento que al hacer un report me muestra este mensaje de error DBIF_RSQL_INVALID_RSQL.

    Por lo que he leido es por las consultas (SELECT's) que estoy haciendo.

    Estas son mis dos SELECT's:


    SELECT a~belnr a~usnam c~name2 c~stcd1 a~xblnr a~bktxt
    a~bldat b~augbl b~dmbtr b~mwskz b~zuonr b~sgtxt
    INTO CORRESPONDING FIELDS OF TABLE itabACREEDORES
    FROM bkpf AS a INNER JOIN bsak AS b ON a~bukrs = b~bukrs AND
    a~belnr = b~belnr AND
    a~gjahr = b~gjahr
    INNER JOIN lfa1 AS c ON b~lifnr = c~lifnr
    WHERE a~bukrs IN Sociedad
    AND a~gjahr IN Anio
    AND a~bldat IN FechaDoc
    AND a~budat IN FeConDoc
    AND a~blart IN Tipo_Doc
    AND b~bschl IN ClaveCon
    AND b~mwskz IN Cod_Imp.


    * Recuperando datos de partidas abiertas
    SELECT a~belnr a~usnam c~name2 c~stcd1 a~xblnr a~bktxt
    a~bldat b~augbl b~dmbtr b~mwskz b~zuonr b~sgtxt
    APPENDING TABLE itabACREEDORES
    FROM bkpf AS a INNER JOIN bsik AS b ON a~bukrs = b~bukrs AND
    a~belnr = b~belnr AND
    a~gjahr = b~gjahr
    INNER JOIN lfa1 AS c ON b~lifnr = c~lifnr
    WHERE a~bukrs IN Sociedad
    AND a~gjahr IN Anio
    AND a~bldat IN FechaDoc
    AND a~budat IN FeConDoc
    AND a~blart IN Tipo_Doc
    AND b~bschl IN ClaveCon
    AND b~mwskz IN Cod_Imp.
    Estoy usando un SELECT-OPTIONS, pero al paracer tengo que usar RANGES pero no se como. No se si este en lo correcto, alguien me puede decir como debo manejar en RANGES o cual puede ser una posible solucion a este error.

    Gracias de antemano

    Saludos,
  • VLozano
    Senior Member
    • nov
    • 124

    #2
    El mensaje del DUMP debería ser muy claro sobre qué estás haciendo mal. El dump debe marcarte qué parte del código da por el saco, y no pueden ser las dos SQL a la vez.

    En el caso que tengas varios dumps, y unas veces apunten a una consulta y otras a otra, podrías tener problemas de datos, pero dudo que sea el caso.

    ¿Puedes darnos un poco más de información?
    - texto descriptivo del DUMP
    - línea de código donde explota todo
    - extracto del "¿qué puede hacer?"

    Si no, vamos dando palos de ciego. A mí esas SQL me parecen "legales" (no necesariamente correctas, pero sí legales), y no recuerdo haber tenido nunca problemas por usar en una SQL una SELECT-OPTION en vez de un RANGE.

    Pregunta: ¿por qué la primera contiene un CORRESPONDING FIELDS y la segunda no?

    Comentario: estás accediendo a tablas MUY grandes, usando JOINs y rangos a la vez. Eso son dos formas de suicidio en cuanto a rendimiento. La combinación tiene que ser explosiva. Hay momentos en la vida de un hombre en el que tiene que pararse y decir: "dejaré de lado las convenciones y probaré cosas prohibidas". Y en ese momento, tiene que olvidar que las JOIN son la forma recomendada, y recordar que a veces NO son la recomendable. En tu caso yo buscaría otras vías para cargar esa tabla interna.
    "Porque algunos sabemos que somos parte del problema"
    - Pequeña guía para escribir mensajes en foros técnicos -

    Comentario

    • edu_alo_martinez
      Member
      • ago
      • 63

      #3
      Dump

      Hola VLozano,

      Gracias por el comentario/observacion

      Este es el mensaje que me muestra el dump.

      Runtime Errors DBIF_RSQL_INVALID_RSQL
      Except. CX_SY_OPEN_SQL_DB
      Date and Time 11.02.2010 11:27:13

      An exception occurred that is explained in detail below.
      The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught
      and
      therefore caused a runtime error.
      The reason for the exception is:
      In a SELECT access, the read file could not be placed in the target
      field provided.
      Either the conversion is not supported for the type of the target field,
      the target field is too small to include the value, or the data does not
      have the format required for the target field.


      Program Z17_QUERY_BKPF
      Include Z17_QUERY_BKPF
      Row 102
      Module Name START-OF-SELECTION
      La row 102 hace referencia a la segunda SELECT (SELECT a~belnr a~usnam c~name2 c~stcd1 a~xblnr a~bktxt).

      Se que los JOIN's son algo rudo de usar y estoy modificando las selects para mejorar el rendimiendo, gracias.

      Sobre el dump, espero podamos solucionarlo, sigo yo tambien en la busqueda de saber que puede ser.

      Saludos,

      Comentario

      • ballan
        Senior Member
        • oct
        • 671

        #4
        Lo que tiene pinta que esta pasando es que el mapeo de los campos no se corresponde con la tabla donde lo estas guardando

        Revisa que la tabla itabACREEDORES tenga los campos declarados en el mismo orden que en el segundo select

        El select lo haces asi

        a~belnr a~usnam c~name2 c~stcd1 a~xblnr a~bktxt
        a~bldat b~augbl b~dmbtr b~mwskz b~zuonr b~sgtxt

        Y casi seguro que si miras en tu itabACREEDORES los campos no esten definidos en el mismo orden y con el mismo tipo

        Comentario

        • VLozano
          Senior Member
          • nov
          • 124

          #5
          Originalmente publicado por edu_alo_martinez
          La row 102 hace referencia a la segunda SELECT
          Añade un CORRESPONDING FIELDS...
          "Porque algunos sabemos que somos parte del problema"
          - Pequeña guía para escribir mensajes en foros técnicos -

          Comentario

          • Pinillex

            #6
            Debes revisar que los campos DESTINO para cada campo que seleccionas son del mismo formato.

            saludos

            Comentario

            Trabajando...