🗂️ Menus Personalizados
Guia para criar menus customizados na interface do Sankhya.
Menus são o ponto de entrada para as funcionalidades do seu add-on no Sankhya Om. Eles organizam o acesso a formulários, telas e outras ações de forma hierárquica na barra de navegação principal.
A definição dos menus é feita inteiramente no dicionário de dados, utilizando principalmente as tags <menu>, <nativeFolder> e <folder>.
🧱 Estruturando Seus Menus
Existem duas abordagens principais para integrar seu add-on ao sistema de menus:
- Criar um novo menu principal: Ideal para add-ons com muitas funcionalidades que justificam um ponto de entrada exclusivo.
- Adicionar itens a um menu nativo: Perfeito para funcionalidades que complementam módulos existentes do sistema (ex: Cadastros, Configurações), proporcionando uma experiência de usuário mais fluida.
Opção 1: Criando um Novo Menu Principal com <menu>
<menu>Use a tag <menu> para adicionar um novo item de nível superior na barra de navegação.
<!-- arquivo: src/main/resources/datadictionary/SGT_MENU.xml -->
<metadados>
<!-- A tag <menu> define o menu principal (nível 1) -->
<menu id="SGT_MEUMENU" description="Meu Add-on" icon="/$ctx/assets/meu_icone.png">
<!-- Conteúdo do menu, como folders e dynamicForms -->
</menu>
</metadados>| Atributo | Descrição | Exemplo |
|---|---|---|
id | Identificador único para o menu. Use um prefixo. | SGT_MEUMENU |
description | O texto que será exibido para o usuário. | Meu Add-on |
icon | (Opcional) URL do ícone a ser exibido ao lado do menu. | /$ctx/assets/icon.png |
Opção 2: Adicionando Itens a Menus Nativos com <nativeFolder>
<nativeFolder>Use a tag <nativeFolder> para "anexar" novos itens a um menu que já existe no Sankhya Om.
<!-- arquivo: src/main/resources/datadictionary/SGT_NATIVE_MENU.xml -->
<metadados>
<!-- Adiciona itens ao menu nativo de Configurações -->
<nativeFolder resourceId="sankhya.core.configuracoes">
<!-- Conteúdo a ser adicionado, como folders e dynamicForms -->
</nativeFolder>
</metadados>| Atributo | Descrição | Exemplo |
|---|---|---|
resourceId | resourceID da pasta nativa que você deseja estender. | sankhya.core.configuracoes |
Nota: Para descobrir o
idde um menu nativo, você pode inspecionar a interface do Sankhya Om com as ferramentas de desenvolvedor do navegador ou consultar a documentação técnica da plataforma.
Organizando com Submenus (<folder>)
<folder>)Independentemente da abordagem escolhida, a tag <folder> é usada para criar submenus (pastas) e organizar os itens, como formulários e telas.
<menu id="SGT_MEUMENU" description="Meu Add-on">
<!-- A tag <folder> cria um sub-menu (nível 2) -->
<folder id="SGT_SUBMENU_CADASTROS" description="Cadastros">
<!-- Formulário dinâmico dentro do sub-menu -->
<dynamicForm id="SGT_FORM_TESTE" instance="SGT_Teste" description="Cadastro de Atendimentos"/>
</folder>
</menu>| Atributo | Descrição | Exemplo |
|---|---|---|
id | Identificador único para a pasta. Use um prefixo. | SGT_SUBMENU_CADASTROS |
description | O texto que será exibido no submenu. | Cadastros |
🖼️ Ícones do Menu
Você pode usar ícones para dar uma identidade visual ao seu menu principal.
Ícones Locais
- Crie a pasta
src/main/webapp/assets. - Coloque seu arquivo de imagem (ex:
meu_icone.png) dentro dela. - No atributo
iconda tag<menu>, use o caminho/$ctx/assets/seu_icone.png. A variável$ctxrepresenta a raiz do seu add-on.
Ícones Externos
Você também pode usar uma URL pública de uma imagem:
<menu id="SGT_OUTRO_MENU" description="Externo" icon="https://exemplo.com/icone.svg" />🚀 Deploy e Verificação
-
Após configurar o menu, execute o deploy do add-on:
./gradlew clean deployAddon -
Acesse o Sankhya Om e verifique se o seu menu foi criado na barra de navegação.

✨ Boas Práticas
- Hierarquia Lógica: Organize seus menus e sub-menus (
<folder>) de forma que faça sentido para o usuário. Agrupe funcionalidades relacionadas. - Use Prefixos Únicos: Sempre use um prefixo que identifique seu add-on (ex:
SGT_,MEUADDON_) nos IDs dos menus e folders para garantir que sejam únicos e não conflitem com outros. - Ícones Leves: Prefira ícones em formato SVG ou PNG otimizado para não impactar o tempo de carregamento da interface.
🚫 Anti-Patterns (O que evitar)
- Aninhar
<menu>dentro de<menu>: A tag<menu>deve ser usada apenas como o elemento raiz na barra de navegação. Para criar submenus, utilize a tag<folder>. Aninhar menus não é suportado e causará erros. - Usar o Prefixo
AD_: Este prefixo é reservado para uso interno do Sankhya Om. Utilizá-lo em seus componentes pode causar conflitos inesperados. Crie sempre um prefixo próprio para seu add-on. - IDs Duplicados: Usar o mesmo
idpara mais de um menu ou pasta. Isso causará um erro e o menu não será renderizado corretamente. - Caminhos de Ícone Quebrados: Apontar para um ícone que não existe ou que está no caminho errado. O menu aparecerá sem ícone.
- Menu sem Conteúdo: Criar um menu ou pasta que não leva a nenhuma funcionalidade (formulário, tela, etc.). Isso confunde o usuário.
Updated 11 days ago
