Gaste de memoria en reporte..

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • stormshadow
    Senior Member
    • jun
    • 117

    #1

    Gaste de memoria en reporte..

    Hola gente que tal a todos los abapers de esta comunidad, weno pues espero que alguién m pueda ayudar con lo siguiente:
    Resulta que hace poco modifiqué un reporte, solo le agregué dos campos! y en DEV m corría y todo bien m mostraba mis campos y todo, pero al pasarlo a QAS y ejecutarlo, se queda trabado :S, ya no responde el sap y aparte m alenta toda la maquina... les dejo el código y spero alguién m pueda ayudar


    ************************************************** **********************
    * TYPE POOLS
    ************************************************** **********************
    TYPE-POOLS: SLIS.

    ************************************************** **********************
    * PROGRAMAS INCLUIDOS
    ************************************************** **********************
    INCLUDE ZMMI_PEDIDOSCOMPRA.
    * INCLUDE ZSDRI_CLIENTESCONSFISC.

    ************************************************** **********************
    * TABLAS
    ************************************************** **********************

    ************************************************** **********************
    * ESTRUCTURAS
    ************************************************** **********************

    ************************************************** **********************
    * TABLAS INTERNAS
    ************************************************** **********************

    ************************************************** **********************
    * VARIABLES
    ************************************************** **********************

    ************************************************** **********************
    * CONSTANTES
    ************************************************** **********************

    ************************************************** **********************
    * PARAMETERS
    ************************************************** **********************
    SELECTION-SCREEN BEGIN OF BLOCK SEL01 WITH FRAME TITLE TEXT-000.
    PARAMETERS:
    S_EBELN LIKE EKPO-EBELN, " numero de documento de compras
    S_BUKRS LIKE EKPO-BUKRS, "sociedad
    S_WERKS LIKE EKPO-WERKS, " centro
    S_FRGKE LIKE EKKO-FRGKE, " indicador de liberacion
    S_EKORG LIKE EKKO-EKORG, " organizacion de compras
    S_EKGRP LIKE EKKO-EKGRP, " grupo de compras
    S_LIFNR LIKE LFA1-LIFNR, " CLAVE PROVEEDOR
    S_NAME1 LIKE LFA1-NAME1. " NOMBRE PROVEEDOR
    SELECTION-SCREEN END OF BLOCK SEL01.


    ************************************************** **********************
    * SELECT-OPTION
    ************************************************** **********************

    * select-options: s_socie for TVKOT-VTEXT.

    ************************************************** **********************
    * AT SELECTION-SCREEN
    ************************************************** **********************

    ************************************************** **********************
    * INICIALIZATION
    ************************************************** **********************
    INITIALIZATION.

    * CLEAR S_DATUM.
    * S_DATUM-SIGN = 'I'.
    * S_DATUM-OPTION = 'EQ'.
    * S_DATUM-HIGH = SY-DATUM.
    * APPEND S_DATUM.

    ************************************************** **********************
    * START-OF-SELECTION
    ************************************************** **********************
    START-OF-SELECTION.

    IF S_EBELN = ''.
    S_EBELN = '%'.
    ENDIF.


    IF S_BUKRS = ''.
    S_BUKRS = '%'.
    ENDIF.

    IF S_WERKS = ''.
    S_WERKS = '%'.
    ENDIF.

    IF S_FRGKE = ''.
    S_FRGKE = '%'.
    ENDIF.

    IF S_EKORG = ''.
    S_EKORG = '%'.
    ENDIF.

    IF S_EKGRP = ''.
    S_EKGRP = '%'.
    ENDIF.

    IF S_LIFNR = ''.
    S_LIFNR = '%'.
    ENDIF.

    IF S_NAME1 = ''.
    S_NAME1 = '%'.
    ENDIF.

    SELECT
    EKPO~EBELN
    EKKO~FRGKE
    SUM( EKPO~NETWR )
    EKKO~BEDAT
    EKKO~EKGRP
    LFA1~LIFNR
    LFA1~NAME1
    INTO TABLE T_DATA
    FROM EKKO
    JOIN EKPO ON ( EKKO~EBELN = EKPO~EBELN )
    JOIN LFA1 ON ( LFA1~LIFNR = LFA1~LIFNR ) AND ( LFA1~NAME1 =
    LFA1~NAME1 )
    WHERE EKPO~EBELN LIKE S_EBELN
    AND EKPO~BUKRS LIKE S_BUKRS
    AND EKPO~WERKS LIKE S_WERKS
    AND EKKO~FRGKE LIKE S_FRGKE
    AND EKKO~EKORG LIKE S_EKORG
    AND EKKO~EKGRP LIKE S_EKGRP
    AND LFA1~NAME1 LIKE S_NAME1
    GROUP BY EKPO~EBELN EKKO~FRGKE EKKO~BEDAT EKKO~EKGRP LFA1~LIFNR
    LFA1~NAME1.



    ************************************************** **********************
    * END-OF-SELECTION
    ************************************************** **********************

    END-OF-SELECTION.

    PERFORM FILL_CATALOG.
    * PERFORM MODIF_CATALOG.
    PERFORM CALL_FUNCTION.

    *&---------------------------------------------------------------------*
    *& Form FILL_CATALOG
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    FORM FILL_CATALOG .
    DATA: TEMP_FIELDC TYPE SLIS_FIELDCAT_ALV.

    IS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    IS_LAYOUT-DETAIL_POPUP = 'X'.
    IS_LAYOUT-ZEBRA = 'X'.

    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    I_PROGRAM_NAME = 'ZMMR_PEDIDOSCOMPRA'
    I_INTERNAL_TABNAME = 'T_DATA'
    I_INCLNAME = 'ZMMI_PEDIDOSCOMPRA'
    CHANGING
    CT_FIELDCAT = CT_FIELDCAT
    EXCEPTIONS
    INCONSISTENT_INTERFACE = 1
    PROGRAM_ERROR = 2
    OTHERS = 3.

    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " fill_catalog




    *&---------------------------------------------------------------------*
    *& Form CALL_FUNCTION
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    FORM CALL_FUNCTION .

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = 'ZMMR_PEDIDOSCOMPRA'
    * i_callback_pf_status_set = 'SET_PF_STATUS'
    * I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
    I_SAVE = 'A'
    IS_LAYOUT = IS_LAYOUT
    IT_FIELDCAT = CT_FIELDCAT
    IT_EVENTS = IT_EVENTS
    TABLES
    T_OUTTAB = T_DATA
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2.

    ENDFORM. " call_function



    *&---------------------------------------------------------------------*
    *& Form MODIF_CATALOG
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    * --> p1 text
    * <-- p2 text
    *----------------------------------------------------------------------*
    FORM MODIF_CATALOG.

    DATA: TEMP_FIELDCAT TYPE SLIS_FIELDCAT_ALV OCCURS 0 WITH HEADER LINE.

    * Determina campos clave del reporte
    LOOP AT CT_FIELDCAT INTO TEMP_FIELDCAT.
    CASE TEMP_FIELDCAT-FIELDNAME.

    WHEN 'SOCIE'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Org. Venta'.
    TEMP_FIELDCAT-SELTEXT_M = 'Org. Venta'.
    TEMP_FIELDCAT-SELTEXT_L = 'Org. Venta'.
    TEMP_FIELDCAT-SELTEXT_S = 'Org. V.'.
    WHEN 'CANAL'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Canal'.
    TEMP_FIELDCAT-SELTEXT_M = 'Canal'.
    TEMP_FIELDCAT-SELTEXT_L = 'Canal'.
    TEMP_FIELDCAT-SELTEXT_S = 'Canal'.
    WHEN 'SECTO'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Sector'.
    TEMP_FIELDCAT-SELTEXT_M = 'Sector'.
    TEMP_FIELDCAT-SELTEXT_L = 'Sector'.
    TEMP_FIELDCAT-SELTEXT_S = 'Sector'.

    WHEN 'KUNNC'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Numero Cliente'.
    TEMP_FIELDCAT-SELTEXT_M = 'Numero Cliente'.
    TEMP_FIELDCAT-SELTEXT_L = 'Numero Cliente'.
    TEMP_FIELDCAT-SELTEXT_S = 'No.Cliente'.
    WHEN 'SORTC'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Clave Matrix'.
    TEMP_FIELDCAT-SELTEXT_M = 'Clave Matrix'.
    TEMP_FIELDCAT-SELTEXT_L = 'Clave Matrix'.
    TEMP_FIELDCAT-SELTEXT_S = 'C. Matrix'.
    WHEN 'NAMEC'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Nombre Cliente'.
    TEMP_FIELDCAT-SELTEXT_M = 'Nombre Cliente'.
    TEMP_FIELDCAT-SELTEXT_L = 'Nombre Cliente'.
    TEMP_FIELDCAT-SELTEXT_S = 'Nom. Cliente'.

    WHEN 'STCD1'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'RFC'.
    TEMP_FIELDCAT-SELTEXT_M = 'RFC'.
    TEMP_FIELDCAT-SELTEXT_L = 'RFC'.
    TEMP_FIELDCAT-SELTEXT_S = 'RFC'.
    WHEN 'ORT02'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Colonia'.
    TEMP_FIELDCAT-SELTEXT_M = 'Colonia'.
    TEMP_FIELDCAT-SELTEXT_L = 'Colonia'.
    TEMP_FIELDCAT-SELTEXT_S = 'Colonia'.
    WHEN 'PSTLZ'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'CP'.
    TEMP_FIELDCAT-SELTEXT_M = 'CP'.
    TEMP_FIELDCAT-SELTEXT_L = 'CP'.
    TEMP_FIELDCAT-SELTEXT_S = 'CP'.
    WHEN 'ORT01'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Poblacion'.
    TEMP_FIELDCAT-SELTEXT_M = 'Poblacion'.
    TEMP_FIELDCAT-SELTEXT_L = 'Poblacion'.
    TEMP_FIELDCAT-SELTEXT_S = 'Poblacion'.
    WHEN 'REGIO'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Estado'.
    TEMP_FIELDCAT-SELTEXT_M = 'Estado'.
    TEMP_FIELDCAT-SELTEXT_L = 'Estado'.
    TEMP_FIELDCAT-SELTEXT_S = 'Estado'.
    WHEN 'CONDC'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Condiciones'.
    TEMP_FIELDCAT-SELTEXT_M = 'Condiciones'.
    TEMP_FIELDCAT-SELTEXT_L = 'Condiciones'.
    TEMP_FIELDCAT-SELTEXT_S = 'Condiciones'.


    WHEN 'INTER'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Interlocucion'.
    TEMP_FIELDCAT-SELTEXT_M = 'Interlocucion'.
    TEMP_FIELDCAT-SELTEXT_L = 'Interlocucion'.
    TEMP_FIELDCAT-SELTEXT_S = 'Interlocucion'.
    WHEN 'KUNNI'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Numero Cliente'.
    TEMP_FIELDCAT-SELTEXT_M = 'Numero Cliente'.
    TEMP_FIELDCAT-SELTEXT_L = 'Numero Cliente'.
    TEMP_FIELDCAT-SELTEXT_S = 'No.Cliente'.
    WHEN 'SORTI'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Clave Matrix'.
    TEMP_FIELDCAT-SELTEXT_M = 'Clave Matrix'.
    TEMP_FIELDCAT-SELTEXT_L = 'Clave Matrix'.
    TEMP_FIELDCAT-SELTEXT_S = 'C. Matrix'.
    WHEN 'NAMEI'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Nombre Cliente'.
    TEMP_FIELDCAT-SELTEXT_M = 'Nombre Cliente'.
    TEMP_FIELDCAT-SELTEXT_L = 'Nombre Cliente'.
    TEMP_FIELDCAT-SELTEXT_S = 'Nom. Cliente'.
    WHEN 'INTE4'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'RFC'.
    TEMP_FIELDCAT-SELTEXT_M = 'RFC'.
    TEMP_FIELDCAT-SELTEXT_L = 'RFC'.
    TEMP_FIELDCAT-SELTEXT_S = 'RFC'.
    WHEN 'INTE5'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Calle'.
    TEMP_FIELDCAT-SELTEXT_M = 'Calle'.
    TEMP_FIELDCAT-SELTEXT_L = 'Calle'.
    TEMP_FIELDCAT-SELTEXT_S = 'Calle'.

    WHEN 'INTE6'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Colonia'.
    TEMP_FIELDCAT-SELTEXT_M = 'Colonia'.
    TEMP_FIELDCAT-SELTEXT_L = 'Colonia'.
    TEMP_FIELDCAT-SELTEXT_S = 'Colonia'.
    WHEN 'INTE7'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'CP'.
    TEMP_FIELDCAT-SELTEXT_M = 'CP'.
    TEMP_FIELDCAT-SELTEXT_L = 'CP'.
    TEMP_FIELDCAT-SELTEXT_S = 'CP'.
    WHEN 'INTE8'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Poblacion'.
    TEMP_FIELDCAT-SELTEXT_M = 'Poblacion'.
    TEMP_FIELDCAT-SELTEXT_L = 'Poblacion'.
    TEMP_FIELDCAT-SELTEXT_S = 'Poblacion'.
    WHEN 'INTE9'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Estado'.
    TEMP_FIELDCAT-SELTEXT_M = 'Estado'.
    TEMP_FIELDCAT-SELTEXT_L = 'Estado'.
    TEMP_FIELDCAT-SELTEXT_S = 'Estado'.
    WHEN 'VORNA'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Nombre'.
    TEMP_FIELDCAT-SELTEXT_M = 'Nombre'.
    TEMP_FIELDCAT-SELTEXT_L = 'Nombre'.
    TEMP_FIELDCAT-SELTEXT_S = 'Nombre'.
    WHEN 'NACHN'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Apellido'.
    TEMP_FIELDCAT-SELTEXT_M = 'Apellido'.
    TEMP_FIELDCAT-SELTEXT_L = 'Apellido'.
    TEMP_FIELDCAT-SELTEXT_S = 'Apellido'.
    WHEN 'GLIST'.
    TEMP_FIELDCAT-REPTEXT_DDIC = 'Grupo Precios'.
    TEMP_FIELDCAT-SELTEXT_M = 'G. Precios'.
    TEMP_FIELDCAT-SELTEXT_L = 'G.Precios'.
    TEMP_FIELDCAT-SELTEXT_S = 'G.P.'.
    ENDCASE.
    MODIFY CT_FIELDCAT FROM TEMP_FIELDCAT.
    ENDLOOP.
    ENDFORM. "modif_catalog

    -----------------------------------------------------------
    Y AQUI EL INCLUDE:

    ************************************************** **********************
    * TYPE POOLS
    ************************************************** **********************

    ************************************************** **********************
    * PROGRAMAS INCLUIDOS
    ************************************************** **********************


    ************************************************** **********************
    * TABLAS
    ************************************************** **********************

    ************************************************** **********************
    * ESTRUCTURAS
    ************************************************** **********************

    ************************************************** **********************
    * TABLAS INTERNAS
    ************************************************** **********************

    DATA: BEGIN OF T_DATA OCCURS 0,
    EBELN LIKE EKPO-EBELN, "Número del documento de compras
    FRGKE LIKE EKKO-FRGKE, "Ind.liberación documento compras
    NETWR LIKE EKPO-NETWR, "Valor neto de pedido en mon.pedido
    BEDAT LIKE EKKO-BEDAT, "Fecha del documento de compras
    EKGRP LIKE EKKO-EKGRP, "Grupo de compras
    LIFNR LIKE LFA1-LIFNR,
    NAME1 LIKE LFA1-NAME1,
    END OF T_DATA.


    ************************************************** **********************
    * VARIABLES
    ************************************************** **********************
    DATA: CT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    IT_EVENTS TYPE SLIS_T_EVENT,
    IS_LAYOUT TYPE SLIS_LAYOUT_ALV.
    ************************************************** **********************
    * CONSTANTES
    ************************************************** **********************

    ************************************************** **********************
    * PARAMETERS
    ************************************************** **********************

    ************************************************** **********************
    * SELECT-OPTION
    ************************************************** **********************

    ************************************************** **********************
    * AT SELECTION-SCREEN
    ************************************************** **********************

    ************************************************** **********************
    * INICIALIZATION
    ************************************************** **********************

    ************************************************** **********************
    * START-OF-SELECTION
    ************************************************** **********************

    ************************************************** **********************
    * END-OF-SELECTION
    ************************************************** **********************

    ************************************************** **********************
    * FORMS
    Editado por última vez por stormshadow; 29/07/2008, 17:28:20.
    "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein
  • acha3318
    Senior Member
    • abr
    • 182

    #2
    Hola, primero que todo, cuando vayas a hacer un Join cerciorate que indices tienen las tablas con las cuales vas a trabajar, ya que el indice ayuda al performance de la maquina y acceso a la base de datos.

    Segundo te recomiendo que los parametros de entrada sean obligatorios, de lo contrario lo que estas haciendo es colocarle "%", osea todo el universo de datos de esa tabla.

    A continuación hice algunos cambios a tu Join, te estoy accediendo a la tabla LFA1 directamente por la llave al igual que la tabla EKKO.

    Cambie PARAMETERS: por SELECT-OPTIONS: para que en el WHERE no uses LIKE ya que estos es muy pesado, mas bien usas IN.

    Elimina las lineas donde asignas los porcentajes a los parametros, te aconsejo colocar obligatorio los parametros que son llave en las tablas.

    Has los cambios, ejecuta la consulta y me cuentas como te fué.

    SELECTION-SCREEN BEGIN OF BLOCK SEL01 WITH FRAME TITLE TEXT-000.
    SELECT-OPTIONS:
    S_EBELN FOR EKPO-EBELN, " numero de documento de compras
    S_BUKRS FOR EKPO-BUKRS, "sociedad
    S_WERKS FOR EKPO-WERKS, " centro
    S_FRGKE FOR EKKO-FRGKE, " indicador de liberacion
    S_EKORG FOR EKKO-EKORG, " organizacion de compras
    S_EKGRP FOR EKKO-EKGRP, " grupo de compras
    S_LIFNR FOR LFA1-LIFNR, " CLAVE PROVEEDOR
    S_NAME1 FOR LFA1-NAME1. " NOMBRE PROVEEDOR
    SELECTION-SCREEN END OF BLOCK SEL01.

    SELECT
    EKPO~EBELN
    EKKO~FRGKE
    SUM( EKPO~NETWR )
    EKKO~BEDAT
    EKKO~EKGRP
    LFA1~LIFNR
    LFA1~NAME1
    INTO TABLE T_DATA
    FROM EKKO
    JOIN EKPO ON ( EKKO~EBELN = EKPO~EBELN )
    JOIN LFA1 ON ( LFA1~LIFNR = EKKO~LIFNR )
    WHERE EKKO~EBELN IN S_EBELN
    AND LFA1~NAME1 IN S_LIFNR
    AND EKPO~EBELN IN S_EBELN
    AND EKPO~BUKRS IN S_BUKRS
    AND EKPO~WERKS IN S_WERKS
    AND EKKO~FRGKE IN S_FRGKE
    AND EKKO~EKORG IN S_EKORG
    AND EKKO~EKGRP IN S_EKGRP
    AND LFA1~NAME1 IN S_NAME1
    GROUP BY EKPO~EBELN EKKO~FRGKE EKKO~BEDAT EKKO~EKGRP LFA1~LIFNR LFA1~NAME1.


    Suerte.....Armando

    Comentario

    • ibecerra

      #3
      q tal , dios q abuso al parecer te estas barriendo todo la ekko con la ekpo pregunta.
      1. le estas pasando parametros
      2. S_FRGKE = '%' no necesitas hacerlo suficiente q lo dejes en blanco.
      3.pon parametros obligatorio sociedad, centro y un rango de fecha.
      Saludos

      Comentario

      • stormshadow
        Senior Member
        • jun
        • 117

        #4
        Hola! ps gracias a los dos por sus respuestas...
        Y bien acha3318 hize las modificaciones que m dijiste, pero siguió igual , mira deja te pongo el código como quedó ahora...

        ************************************************** **********************
        * TYPE POOLS
        ************************************************** **********************
        TYPE-POOLS: SLIS.

        ************************************************** **********************
        * PROGRAMAS INCLUIDOS
        ************************************************** **********************
        INCLUDE ZMMI_PEDIDOSCOMPRA.

        ************************************************** **********************
        * TABLAS
        ************************************************** **********************
        TABLES: EKPO,
        EKKO,
        LFA1.
        ************************************************** **********************
        * ESTRUCTURAS
        ************************************************** **********************

        ************************************************** **********************
        * TABLAS INTERNAS
        ************************************************** **********************

        ************************************************** **********************
        * VARIABLES
        ************************************************** **********************

        ************************************************** **********************
        * CONSTANTES
        ************************************************** **********************

        ************************************************** **********************
        * PARAMETERS
        ************************************************** **********************
        SELECTION-SCREEN BEGIN OF BLOCK SEL01 WITH FRAME TITLE TEXT-000.
        SELECT-OPTIONS:
        S_EBELN FOR EKPO-EBELN, " numero de documento de compras
        S_BUKRS FOR EKPO-BUKRS, "sociedad
        S_WERKS FOR EKPO-WERKS, " centro
        S_FRGKE FOR EKKO-FRGKE, " indicador de liberacion
        S_EKORG FOR EKKO-EKORG, " organizacion de compras
        S_EKGRP FOR EKKO-EKGRP, " grupo de compras
        S_LIFNR FOR LFA1-LIFNR, " CLAVE PROVEEDOR
        S_NAME1 FOR LFA1-NAME1. " NOMBRE PROVEEDOR
        SELECTION-SCREEN END OF BLOCK SEL01.


        ************************************************** **********************
        * SELECT-OPTION
        ************************************************** **********************


        ************************************************** **********************
        * AT SELECTION-SCREEN
        ************************************************** **********************

        ************************************************** **********************
        * INICIALIZATION
        ************************************************** **********************


        ************************************************** **********************
        * START-OF-SELECTION
        ************************************************** **********************
        START-OF-SELECTION.

        * IF S_EBELN = ''.
        * S_EBELN = '%'.
        * ENDIF.
        *
        *
        * IF S_BUKRS = ''.
        * S_BUKRS = '%'.
        * ENDIF.
        *
        * IF S_WERKS = ''.
        * S_WERKS = '%'.
        * ENDIF.
        *
        * IF S_FRGKE = ''.
        * S_FRGKE = '%'.
        * ENDIF.
        *
        * IF S_EKORG = ''.
        * S_EKORG = '%'.
        * ENDIF.
        *
        * IF S_EKGRP = ''.
        * S_EKGRP = '%'.
        * ENDIF.
        *
        * IF S_LIFNR = ''.
        * S_LIFNR = '%'.
        * ENDIF.
        *
        * IF S_NAME1 = ''.
        * S_NAME1 = '%'.
        * ENDIF.

        SELECT
        EKPO~EBELN
        EKKO~FRGKE
        SUM( EKPO~NETWR )
        EKKO~BEDAT
        EKKO~EKGRP
        LFA1~LIFNR
        LFA1~NAME1
        INTO TABLE T_DATA
        FROM EKKO
        JOIN EKPO ON ( EKKO~EBELN = EKPO~EBELN )
        JOIN LFA1 ON ( LFA1~LIFNR = LFA1~LIFNR ) AND ( LFA1~NAME1 =
        LFA1~NAME1 ) WHERE EKKO~EBELN IN S_EBELN
        AND LFA1~NAME1 IN S_LIFNR
        AND EKPO~EBELN IN S_EBELN
        AND EKPO~BUKRS IN S_BUKRS
        AND EKPO~WERKS IN S_WERKS
        AND EKKO~FRGKE IN S_FRGKE
        AND EKKO~EKORG IN S_EKORG
        AND EKKO~EKGRP IN S_EKGRP
        AND LFA1~NAME1 IN S_NAME1
        GROUP BY EKPO~EBELN EKKO~FRGKE EKKO~BEDAT EKKO~EKGRP LFA1~LIFNR
        LFA1~NAME1.

        No comprendo porque... bueno espero su ayuda!! gracias de antemano

        A por cierto el join lo dejé como lo tenía yo anteriormente porque si lo ponía como m lo dejaste tú, m salían menos datos en DEV... no sé si halla tenido algo que ver en que saliera la misma jejeje
        Editado por última vez por stormshadow; 30/07/2008, 16:16:23.
        "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

        Comentario

        • mystic_soul
          Member
          • sep
          • 76

          #5
          Otra cosa que me parece que ayuda a la performance es sacar la parte que tenes en el select, el order by..
          podes reemplazar el order by por un sort al final de select. Ejemplo..

          Select ..
          from ..
          into table nombredelatabla
          where....

          if sy-subrc eq 0.
          sort nombredelatabla by campo1 campo2.
          endif.

          saludos!

          Comentario

          • stormshadow
            Senior Member
            • jun
            • 117

            #6
            Originalmente publicado por mystic_soul
            Otra cosa que me parece que ayuda a la performance es sacar la parte que tenes en el select, el order by..
            podes reemplazar el order by por un sort al final de select. Ejemplo..

            Select ..
            from ..
            into table nombredelatabla
            where....

            if sy-subrc eq 0.
            sort nombredelatabla by campo1 campo2.
            endif.

            saludos!
            Te refieres a reemplazarlo por el GROUP BY??? porque no tengo el order yop, nadamas el group, y pss si lo quito m tira error...
            "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

            Comentario

            • stormshadow
              Senior Member
              • jun
              • 117

              #7
              bien soy yo otra vez... bueno explico, ya pusé la selección como me la dejo acha:

              SELECT
              EKPO~EBELN
              EKKO~FRGKE
              SUM( EKPO~NETWR )
              EKKO~BEDAT
              EKKO~EKGRP
              LFA1~LIFNR
              LFA1~NAME1
              INTO TABLE T_DATA
              FROM EKKO
              JOIN EKPO ON ( EKKO~EBELN = EKPO~EBELN )
              JOIN LFA1 ON ( LFA1~LIFNR = EKKO~LIFNR )
              WHERE EKKO~EBELN IN S_EBELN
              AND LFA1~NAME1 IN S_LIFNR
              AND EKPO~EBELN IN S_EBELN
              AND EKPO~BUKRS IN S_BUKRS
              AND EKPO~WERKS IN S_WERKS
              AND EKKO~FRGKE IN S_FRGKE
              AND EKKO~EKORG IN S_EKORG
              AND EKKO~EKGRP IN S_EKGRP
              AND LFA1~NAME1 IN S_NAME1
              GROUP BY EKPO~EBELN EKKO~FRGKE EKKO~BEDAT EKKO~EKGRP LFA1~LIFNR LFA1~NAME1.

              Cuando modificó mi JOIN, peeeero dejen les cuento otro problemita no sé si afecte, lo que pasa es que cuando tenía mi programa inicialmente como les digo en qas m trababa la computadora, pero lo debugeaba y m daba más de 60 mil registros, despues de un buen rato claro y cuando acababa m decía algo de la memoria la verdad no recuerdo, entonces ahora que tengo esa selección tal cual m dijo acha, ya corre bien! o sea ya no m traba la computadora, pero m aparecen menos registros ya m aparecen sobre 7 mil....
              Podrían decirme porque? y si hay una solución... bueno gracias!
              "Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein

              Comentario

              Trabajando...