Avalados por :

Como implementar o padrão de estratégia em desenvolvimentos de contabilidade eletrônica no México.

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 0 Vistas
0
Cargando...
Neste post, veremos como o padrão de estratégia nos ajuda em nossos desenvolvimentos.

Esse padrão nos permite alterar o algoritmo dependendo do cliente.

Vamos primeiro entender o problema e depois abordaremos a solução a partir de uma perspectiva "tradicional" e, em seguida, utilizaremos o padrão para fornecer a solução.

Declaração do problema


Na contabilidade eletrônica no México, as informações do número único da fatura (UUID) são armazenadas nos textos dos documentos financeiros. Como é um texto, essas informações não são exibidas nos relatórios padrão dos documentos financeiros, como FBL1N (faturas de fornecedores) e FBL5N (faturas de clientes).

Uma opção para contornar isso é usar o BAdI FI_ITEMS_CH_DATA, que implementa a interface IF_FI_ITEMS_CH_DATA e o método "change_items".

Este BAdI passa por todos os processos que preenchem os relatórios padrão do FI, em particular, na execução das transações FBLxN.

Além disso, precisamos estender a estrutura usada pelo método (mas isso será assunto para outra postagem), para nosso caso, vamos assumir que já temos a estrutura estendida com o campo UUID (ZZUUID - caractere de comprimento 36).

Dependendo se a fatura é de um fornecedor (FBL1N) ou de um cliente (FBL5N), a forma de obter o UUID é diferente:

  • No caso de fornecedores:

    • Leitura do texto da fatura (id = YUUD; objeto = BELEG; nome = bukrs&&belnr&&gjahr)

    • Se não encontrado, ler de RBKP com belnr = awkey(10) ghajr = awkey+10(4)



  • No caso de clientes:

    • Leitura do texto da fatura de SD (id = YUUD; objeto = VBBK; nome = akkey(10))

    • Se não encontrar dados, ler o texto da fatura FI (id = YUUD; objeto = BELEG; nome = bukrs&&belnr&&gjahr)



Análise do problema


Precisamos de um algoritmo que se comporte de forma diferente, dependendo da transação em execução.

Uma maneira seria, de forma tradicional, criar um método para cada caso e usá-los no método do BAdI, exibindo as diferentes opções e chamando o método correto em cada caso.

Solução sem o padrão de estratégia


Criaríamos os métodos na mesma classe de implementação (como privados).
CLASS zim_if_items_ch_data DEFINITION.
...
    
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

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?