For the complete documentation index, see llms.txt. This page is also available as Markdown.

Menu Extensibility

MSS 5.1 - Extensibility - myTeam - Menu Extensibility

Exemplos práticos de payloads para a extensibilidade de menu — entradas personalizadas na barra lateral de navegação.

Contexto

Quando o utilizador clica numa entrada de menu de extensibilidade, o myTeam navega para uma página interna e envia um POST ao URL configurado. A autenticação do utilizador é enviada no campo authentication do payload, e o campo filter é sempre um objeto vazio.

O serviço externo identifica o utilizador através das credenciais recebidas e pode consultar a tabela MSUSR da base de dados do myTeam para obter qualquer informação adicional (nome, código de vendedor, etc.).

Payload

URL configurado:

https://parceiro.exemplo.com/painel
{
  "authentication": {
    "user": "admin",
    "hash": "a1b2c3d4e5f6..."
  },
  "filter": {}
}

O campo `filter` é sempre enviado como objeto vazio `{}` na extensibilidade de menu. 
A identificação do utilizador é feita exclusivamente pelo campo `authentication`.
## Exemplo de Resposta

O serviço externo deve devolver uma página HTML completa. Exemplo de um painel personalizado:

```html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        body { font-family: sans-serif; margin: 0; padding: 24px; color: #333; background: #fafafa; }
        h2 { color: #1B5E20; margin-bottom: 8px; }
        .subtitle { color: #787878; font-size: 14px; margin-bottom: 24px; }
        .grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
        .card { background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; padding: 20px; }
        .card .value { font-size: 28px; font-weight: 700; color: #2E7D32; }
        .card .label { font-size: 13px; color: #787878; margin-top: 4px; }
    </style>
</head>
<body>
    <h2>Painel do Vendedor</h2>
    <div class="subtitle">Utilizador: admin</div>
    <div class="grid">
        <div class="card">
            <div class="value">47</div>
            <div class="label">Clientes visitados</div>
        </div>
        <div class="card">
            <div class="value">€ 85.200</div>
            <div class="label">Vendas do mês</div>
        </div>
        <div class="card">
            <div class="value">12</div>
            <div class="label">Encomendas pendentes</div>
        </div>
    </div>
</body>
</html>

Fluxo

A página de menu extensibility ocupa o ecrã inteiro dentro do myTeam (exceto barra lateral e cabeçalho). O HTML devolvido deve ser pensado para ocupar todo o espaço disponível.O serviço externo tem acesso de leitura à base de dados do myTeam. Após validar a autenticação, pode consultar a tabela MSUSR (campo USRUSR = authentication.user) para obter o nome do utilizador (USRNOM), código de vendedor (USRVND) e quaisquer outros dados necessários.O acesso à entrada de menu é protegido por permissões. Mesmo que um utilizador conheça o URL direto, o myTeam valida as permissões e redireciona para a página "Não Autorizado" se o utilizador não tiver acesso.

Last updated