Conheça as mudanças de tabelas no Protheus Lobo Guará

Com as mudanças do Lobo Guará, veja como fica a estrutura de tabelas no Banco de Dados.

Conhecendo as novas tabelas no SQL:

  • SIGAPSS – Se transformou nas tabelas com prefixo SYS_GRP (grupos), SYS_POL (políticas), SYS_RULES (regras de acesso) e SYS_USR (usuários);
  • Menus xnu – Tabelas com prefixo MPMENU
  • SIGAMAT.emp – Tabela SYS_COMPANY
  • XX8 – Tabela SYS_COMPANY_CFG
  • XX9 – Tabela SYS_COMPANY_CFGIT
  • SIGAHLP – Tabela XB4
  • Tabelas de Metadado – Mesmo nome no SQL
  • Profile – MP_SYSTEM_PROFILE
  • Workrole – MP_SYSTEM_WORKROLE
  • Layouts do TOTVS Report – XB5

 

Tabelas relacionadas ao cadastro de Usuários:

  • SYS_USR
  • SYS_ACCESS
  • SYS_ACCRESTRIC
  • SYS_ACESSIB
  • SYS_FILIAL
  • SYS_GROUPS
  • SYS_LOGCFG
  • SYS_MODULE
  • SYS_PANEIS
  • SYS_PAPER
  • SYS_PRINTER
  • SYS_SSIGNON
  • SYS_SUPER
  • SYS_VINCFUNC

 

Observações:

  • Por enquanto o TOTVS PDV e o Retaguarda não são suportados;
  • Registros deletados do dicionário, não serão considerados nas migrações;
  • Após realizar a migração do dicionário para SQL, não é possível reverter de forma automática;
  • É necessário a utilização do License Server para numeração automática;
  • No cadastro de usuários, não será permitido 2 ou mais usuários com o mesmo login;
  • Terá que ter um email válido para recuperação de senha do usuário Administrador;
  • A Chave TopMemoMega deve estar habilitada nos ambientes;
  • Os dicionários que serão migrados devem estar íntegros e sem erros;
  • Cada conexão de usuário no Protheus, criará duas conexões no DbAccess (sendo que a conexão com o dicionário, não é transacionada);
  • Campos das tabelas do Dicionário não poderão ser acessados diretamente, por exemplo, ao invés de SX3->X3_USO, utilizar a função X3Uso() – https://centraldeatendimento.totvs.com/hc/pt-br/articles/360026047911
  • O mesmo aplica-se para a tabela SM0 de empresas, deve se usar a OpenSM0 ou a OpenSM0Exc

 

Links de Apoio:

 

Essa dica enviada por Joalisson Ribeiro, que disponibilizou uma apresentação ppt para estudo.

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

8 Responses

  1. Fabio Fongaro disse:

    Muito obrigado

  2. Wellington Junior Torres de Melo disse:

    Bom dia Dan Atilio,

    Primeiramente agradeço demais todo o seu conteúdo!

    Como fazer para replicar um menu para uma base diferente, já que está no banco de dados com suas devidas chaves?

  3. Luis Nagasako disse:

    Pessoal, alguém sabe quais são os relacionamentos entre as tabelas MPMENU? Estou com uma demanda de listar em uma planilha os menus padrão de alguns modulos do Protheus.

    • Bom dia Luis, tudo joia?

      Infelizmente não temos uma lista pronta dos relacionamentos.

      Mas o que você pode fazer também, que poderá lhe ajudar, será dar um trace no DbMonitor e abrir o cadastro de Menus.

      Ai dentro dele, analise os SELECTs que são executados para você montar os JOINs.

      De antemão, também preparamos um artigo que vai ao ar ano que vem, sobre uma query na tabela de menus, pode ser que te ajude, segue abaixo:

      SELECT
          M_NAME AS MODULO_NOME,
          M_MODULE AS MODULO_COD,
          I_TABLES AS TABELAS,
          F_FUNCTION AS FUNCAO,
          DADOS_MENU.N_DESC AS SUBMENU_NOME,
          DADOS_ITEM.N_DESC AS ROTINA_NOME
      FROM
          MPMENU_MENU MENU
          INNER JOIN MPMENU_ITEM ITEM ON (
              ITEM.I_ID_MENU = MENU.M_ID
              AND ITEM.D_E_L_E_T_ = ' '
          )
          INNER JOIN MPMENU_FUNCTION FUNC ON (
              FUNC.F_ID = ITEM.I_ID_FUNC
              AND FUNC.D_E_L_E_T_ = ' '
          )
          INNER JOIN MPMENU_I18N DADOS_MENU ON (
              DADOS_MENU.N_PAREN_ID = ITEM.I_FATHER
              AND DADOS_MENU.N_LANG = '1'
              AND DADOS_MENU.D_E_L_E_T_ = ' '
          )
          INNER JOIN MPMENU_I18N DADOS_ITEM ON (
              DADOS_ITEM.N_PAREN_ID = ITEM.I_ID
              AND DADOS_ITEM.N_LANG = '1'
              AND DADOS_ITEM.D_E_L_E_T_ = ' '
          )
      WHERE
          MENU.D_E_L_E_T_ = ' '
          AND F_FUNCTION LIKE '%MATA010%'
      ORDER BY
          MODULO_COD
      

      Um grande abraço.

  4. Luis Nagasako disse:

    Daniel muito obrigado, esta query já me ajudou!!

Deixe uma resposta

Terminal de Informação