patterns · git:20260507.1fb42ac · 2026-05-07 · sha256 3ee56cd71de511fd

patterns git:20260507.1fb42acA

Immutable. This exact content never changes and is served at /api/v1/blob/3ee56cd71de511fd.

---
name: patterns
description: Referência de padrões ADVPL/TLPP para Protheus: nomenclatura de arquivos (R[MOD][TYPE][SEQ].prw), notação húngara, dicionário de dados (SZ?, prefixo X, TB_), Pontos de Entrada (MVC e legado), MVC, FWMBrowse, namespaces, estrutura de pastas e Code Analysis.
---

## Nomenclatura de Arquivos Fonte

Padrão obrigatório: `R[MOD][TYPE][SEQ].prw` (ex: `RFATA001.prw`).

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "nomenclatura" })
```

---

## Notacao Hungara (OBRIGATORIA)

Referência de prefixos (c/n/l/d/a/b/o) e exemplos de uso.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "hungara" })
```

---

## Cabecalho ProtheusDoc

Estrutura obrigatória para toda User Function pública (@type, @version, @author, @since, @param, @return).

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "ProtheusDoc" })
```

---

## Estrutura de Programa ADVPL

Includes básicos e estrutura de programa ADVPL/TLPP.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "estrutura" })
```

---

## Tratamento de Erros

Padrões de tratamento: guard clauses, ErrorBlock e try/catch/finally.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "tratamento erros" })
```

---

## Acesso a Banco de Dados

Padrões de busca com MsSeek, gravação com RecLock, commit e rollback.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "banco dados" })
```

---

## Dicionario de Dados — Convencoes

Convenções de naming para tabelas customizadas (SZ?), campos customizados (prefixo X), parâmetros (TB_) e índices.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "dicionario dados" })
```

---

## Pontos de Entrada — Padrao MVC e Legado

Regra de unicidade: 1 PE por arquivo. Padrão MVC e padrão legado com exemplos.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "pontos entrada" })
```

---

## MVC — ModelDef / ViewDef / MenuDef

Estrutura de modelos MVC com FWFormModel, FWFormView e rotinas de menu.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "MVC" })
```

---

## FWMBrowse (lista de registros)

Exemplo de FWMBrowse para listagem com filtros, legendas e formatação.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "FWMBrowse" })
```

---

## Semaforos e Numeracao Sequencial

Uso de GetNextCode para sequenciais e SemDecrease/SemIncrease para locks de recurso.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "semaforo" })
```

---

## Namespaces (TLPP)

Padrão obrigatório `FSW.TBC.<frente>`. Regras de user/static function. Chamadas entre namespaces com u_.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "namespace" })
```

---

## Estrutura de Pastas do Projeto de Fontes

Organização de fontes por módulo (FAT/FIN/EST/COM) com subdiretórios A/E/P/R.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "estrutura pastas" })
```

---

## Funcoes Nativas — Referencia Completa

Referência de funções nativas: String, Data/Hora, Array, Banco de Dados, Interface, Sistema.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "funcoes nativas" })
```

---

## Tabelas do Dicionário de Dados (SX)

Tabelas de sistema (SX1-SX9, SIX) e campos relevantes (SX3, SX5).

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "tabelas SX" })
```

---

## Erros Comuns e Soluções

Tabelas de diagnóstico para erros de compilação, runtime, performance e locks.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "erros comuns" })
```

---

## Pontos de Entrada Frequentes por Módulo

Referência de PEs por módulo (FAT/FIN/EST/COM) com momentos e tipos de retorno.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "pontos entrada modulo" })
```

---

## Code Analysis (antes do commit)

Ferramenta obrigatória antes de commitar qualquer fonte.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "code analysis" })
```

---

## Git — Branches

Convenções de branching para projetos Protheus.

Consulte a referência completa via MCP:
```
searchKnowledge({ skill: "protheus-patterns", keyword: "git branches" })
```

---

## Consulta de Conhecimento

Se precisar de informação não disponível no MCP, consulte o RAG:
```
searchKnowledge({ keyword: "<termo relevante>" })
```