Árvore de páginas

Ajuste sonarqube e SX3

Linha de Produto:

Microsiga Protheus

Segmento:

Recursos Humanos

Módulo:

SIGAGPE - Gestão de Pessoal

Função:

  • GPECONV
  • AJSXGPE
  • AJSXAPD
  • AJSXAPT
  • AJSXCSA
  • AJSXGPE
  • AJSXORG
  • AJSXPON
  • AJSXRSP
  • AJSXTCF
  • AJSXVD

Situação/Requisito:

Devido ao alto número de bugs apontados pelo Sonarqube, violando a regra "CA2004 : Uso não permitido do Metadados - SX3", foram realizados ajustes para seguir o padrão.

A regra avalia as tentativas de manipulação da tabela do metadados. Ao contrário de outras regras de violação do dicionário de dados, o SX3 teve usa estrutura alterada e a gravação indevida de algumas propriedades da tabela pode causar prejuízos ao bom funcionamento do sistema. Em futuras versões do produto o alias SX3 será aberto e fechado conforme a demanda, sendo obrigatório o uso das API's padrões para evitar perda de desempenho.

Solução/Implementação:

Para a correção, foi necessário alterar a lógica do programa para utilizar as API padrões de leitura do metadados e remover o uso de qualquer API de manipulção do metadados.

Exemplo:

If SX3->(dbseek("Q3_DESCCC" ))
RecLock("SX3",.F.)
SX3->X3_RELACAO := 'IF(Inclui,"",fDesc("CTT",SQ3->Q3_CC,"CTT_DESC01"))'
SX3->X3_WHEN := ''
SX3->X3_CBOX := ''
SX3->X3_F3 := ''
SX3->(msUnlock())
EndIf

Trocado por:

Aadd ( aDados, { { 'Q3_DESCCC' }, { { 'X3_RELACAO', 'IF(Inclui,"",fDesc("CTT",SQ3->Q3_CC,"CTT_DESC01"))' }, { 'X3_WHEN', '' }, { 'X3_CBOX', '' }, { 'X3_F3', '' } } } )
EngSX3117(aDados)