¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como melhorar uma consulta SELECT em ABAP para obter melhor desempenho

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 9 Vistas
0
Cargando...

Olá Especialistas,

Como posso melhorar esta consulta select? Consultei a Nota OSS 185530 e descobri que podemos usar a tabela VRPMA para obter um melhor desempenho, mas minha preocupação é que não há um campo werks em VRPMA. Portanto, não poderei consultar em VBRP usando os campos matnr e werks. Sei que para all entries é melhor usar join. Mas aqui tenho que me contentar com isso, já que i_mara passou por muitas modificações antes de chegar a esta declaração select.



SELECT vbrp~matnr
         vbrp~werks
         vbrp~ntgew
         vbrp~gewei
         vbrk~fkdat
         vbrk~vbtyp
         vbrk~vbeln
         vbrk~fktyp
         INTO CORRESPONDING FIELDS OF TABLE i_vbrp
         FROM ( vbrk INNER JOIN vbrp
             ON vbrk~vbeln = vbrp~vbeln ) FOR ALL ENTRIES IN I_MARA
         WHERE vbrk~fkdat GE w_pfrom_date
           AND vbrk~fkdat LE w_cto_date
           AND vbrk~vkorg IN s_vkorg
           AND vbrk~rfbsk = 'C'      "O documento de contabilização foi criado
           AND vbrk~fkart NE 'IV'    "Faturamento intercompanhia
           AND vbrk~fkart NE 'IG'    "Nota de crédito interna
           AND vbrp~matnr = i_mara-matnr         
           AND vbrp~werks = i_mara-werks.

Por favor, aconselhe-me sobre como refinar esta declaração select.

Cumprimentos,

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hopefully, you corrected before Matthew could react .


Regards,

Raymond

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Desculpe, quis dizer ' Sei que para todas as postagens não é melhor se juntar '.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

        SEI que para todos os registros é melhor unir-se
        
        

øErro de digitação?

Suponho que já leu 185530 - Desempenho: Desenvolvimentos de clientes em SD .

Para acessar os elementos de fatura VBRP com material MATNR, utilize a tabela VRPMA mesmo que não haja campo WERKS, você pode manter o filtro em VBRP.


        SELECIONAR   vbrp~matnr
               vbrp~werks
               vbrp~ntgew
               vbrp~gewei
               vbrk~fkdat
               vbrk~vbtyp
               vbrk~vbeln
               vbrk~fktyp
               CORRESPONDENTE COM CAMPOS DE TABELA i_vbrp
               DE vrpma
               UNIR vbrp
                EM  vbrp~vbeln = vrpma~vbeln
                E vbrp~posnr = vrpma~posnr
               UNIR vbrk
                EM  vbrk~vbeln = vbrp~vbeln
               PARA TODOS os registros EM i_mara
               ONDE vrpma~vkorg EM s_vkorg
                 E vrpma~matnr = i_mara-matnr
                 E vbrk~fkdat MAIOR OU IGUAL A w_pfrom_date
                 E vbrk~fkdat MENOR OU IGUAL A w_cto_date
                 E vbrk~rfbsk = 'C'      "Documento de contabilização foi criado
                 E vbrk~fkart DIFERENTE DE 'IV'    "Faturamento intercompanhia
                 E vbrk~fkart DIFERENTE DE 'IG'    "Nota de crédito interna
                 E vbrp~werks = i_mara-werks.
        
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Eu sei que para todas as entradas é melhor do que join

erro de digitação ?

Suponho que você já leu 185530 - Performance: Customer developments in SD .

Para acessar os itens de fatura VBRP com material MATNR, use a tabela VRPMA mesmo se não houver campo WERKS, você pode manter o filtro em VBRP.


SELECIONAR   vbrp~matnr
         vbrp~werks
         vbrp~ntgew
         vbrp~gewei
         vbrk~fkdat
         vbrk~vbtyp
         vbrk~vbeln
         vbrk~fktyp
         INTO CORRESPONDENTE CAMPOS DE TABELA i_vbrp
         DE vrpma
         JOIN vbrp
          ON  vbrp~vbeln = vrpma~vbeln
          E vbrp~posnr = vrpma~posnr
         JOIN vbrk
          ON  vbrk~vbeln = vbrp~vbeln
         PARA TODAS AS ENTRADAS EM i_mara
         ONDE vrpma~vkorg NO s_vkorg
           E vrpma~matnr = i_mara-matnr
           E vbrk~fkdat GE w_pfrom_date
           E vbrk~fkdat LE w_cto_date
           E vbrk~rfbsk = 'C'      "O documento de lançamento foi criado
           E vbrk~fkart NE 'IV'    "Faturamento interno
           E vbrk~fkart NE 'IG'    "Nota de crédito interna
           E vbrp~werks = i_mara-werks.

Para uma otimização adicional, existem campos de organização de vendas como VKORG que possuem um link para os campos WERKS (tabela TVKO), então você pode converter a tabela i_mara para adicionar VKORG (um registro por VKORG que está vinculado a WERK no i_mara original?) - mas a manutenção do relatório...

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?