Anuncio

Colapsar
No hay anuncio todavía.

Tablas Hashed o Sorted?

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • #16
    Originalmente publicado por diogo2008 Ver Mensaje
    Antes de ponerla asi como esta ahora le habia hecho un for all entries con la consulta de la BKPF que hago antes pero igual no consigo que haga el dump por eso que las hice por separado..

    SELECT bukrs belnr gjahr blart monat
    INTO CORRESPONDING FIELDS OF TABLE gt_bkpf
    FROM bkpf
    WHERE bukrs EQ p_bukrs AND
    belnr IN s_belnr AND
    gjahr EQ p_gjahr AND
    blart IN s_blart AND
    monat IN s_monat.
    LOOP AT gt_bkpf.
    gr_belnr-sign = 'I'.
    gr_belnr-option = 'EQ'.
    gr_belnr-low = gt_bkpf-belnr.
    APPEND gr_belnr.
    endloop.

    SELECT
    bukrs hkont gjahr belnr buzei xblnr
    blart monat shkzg mwskz dmbtr dmbe2
    INTO TABLE gt_bsis
    FROM bsis
    WHERE bukrs EQ p_bukrs
    AND hkont IN s_hkont
    AND gjahr EQ p_gjahr
    AND belnr IN gr_belnr "s_belnr
    AND budat LE gv_budat
    AND blart IN s_blart
    AND monat IN s_monat.

    Muchas Gracias por la ayuda.
    Asi no te va a andar de una porque tenes muchos registros en un RANGE o sea no podes hacer un select si una de las restricciones es un SELECT OPTION con muchas entradas... ahi te tira dump.

    1- la tabla gt_bsis UNICAMENTE tiene definidos estos campos y en ese orden, no?
    bukrs hkont gjahr belnr buzei xblnr blart monat shkzg mwskz dmbtr dmbe2

    De no ser asi te tira dump.

    2- Vos me decis que si vos haces esto te tira dump de timeout ???

    SELECT bukrs belnr gjahr blart monat
    INTO CORRESPONDING FIELDS OF TABLE gt_bkpf
    FROM bkpf
    WHERE bukrs EQ p_bukrs AND
    belnr IN s_belnr AND
    gjahr EQ p_gjahr AND
    blart IN s_blart AND
    monat IN s_monat.

    CHECK gt_bkpf[] IS NOT INITIAL.

    SELECT
    bukrs hkont gjahr belnr buzei xblnr
    blart monat shkzg mwskz dmbtr dmbe2
    INTO CORRESPONDING FIELDS OF TABLE gt_bsis
    FROM bsis
    FOR ALL ENTRIES IN gt_bkpf
    WHERE bukrs = gt_bkpf-bukrs
    AND hkont IN s_hkont
    AND gjahr = gt_bkpf-gjahr
    AND belnr = gt_bkpf-belnr
    AND budat LE gv_budat.


    Saludos

    Comentario


    • #17
      asi es.. el dump que me sale es de timeout ya que si yo restringo y le pongo valores de número de documento el reporte se ejecuta sin problemas..pero el punto es que los usuarios no ponen número de documento ni tampoco clase de documento y lo ejecutan para 3 o 4 meses y es ahi cuando se da el problema..

      con respecto a la pregunta de los campos..si estan en ese orden.

      Muchas Gracias nuevamente.

      Comentario


      • #18
        Hola,

        Estoy leyendo este post y no estoy del todo de acuerdo en lo que se dice.

        Habeis llegado a la conclusión de que es mejor hacer un acceso a la BKPF y luego hacer un acceso a la BSIS. No estoy de acuerdo, el acceso a la BSIS es suficiente, tengas los datos que tengas. La clave de la BSIS es mediante sociedad y cuenta (al menos el principio). Si se informa la cuenta es mucho mejor acceder a la BSIS y no a la BKPF. Incluso en el caso de tener el número de documento existe un índice en la BSIS por Sociedad, documento año (al igual que la clave de la BKPF) por lo que es mejor acceder sólo a loa BSIS que primero a la BKPF y luego a la BSIS.
        Yo haría lo siguiente:
        Código:
        if s_belnr is initial
          select [campos] into table
          from BSIS 
          where bukrs = soc
            and hkon in s_hkont
            [resto where]
        else
          select [campos] into table
          from BSIS
          where bukrs = soc
            and belnr in s_belnr
            and gjahr = anyo
            [resto where]
        Creo que así no tendrás problemas de rendimiento.

        Saludos
        "Soy el señor Lobo, arreglo problemas"
        http://sapymas.blogspot.com/

        Comentario


        • #19
          Hola muchas gracias por querer ayudar en la solución del performance!

          La manera de acceder a la BSIS directamente ya se probó pero luego de 2 horas se cae por timeout en la consulta lamentablemente...cabe mencionar que en otra version de SAP y tbn con menos cantidad de data el programa no tiene problemas pero en esta version 4.0 y con gran cantidad de data el programa cae y cae!

          Ayer despues de depurar varias lineas de código ejecute el programa nuevamente y esta vez ya no se ha caido pero ya van mas de 20 horas y nose si sea bueno eso..yo creo que si porque si estuviese mal ya se hubiese caido por timeout no?

          Muchas Gracias.

          Comentario

          Trabajando...
          X