Templates e regras de validacao para gerar scripts de configuracao do dicionario de dados Protheus. Cobre SX2 (cabecalho de tabela), SX3 (campos), SIX (indices), SXG (grupos de campos), SXA (pastas de cadastro), SX1 (perguntas de relatorio), SX5 (tabelas genericas), SXB (consultas padrao F3) e SX7 (gatilhos).
Define a propria tabela: alias, nome fisico, modo de compartilhamento e modo de acesso. Deve ser criada antes de gerar campos SX3 para uma nova tabela customizada.
Alias deve ter 3 chars maiusculos; tabelas customizadas usam prefixo Z (ZA1-ZZZ, Z01-Z99).
O nome fisico (X2_ARQUIVO) e o nome base antes do padding de empresa/filial (ex.: ZA1990). Em tempo de execucao, o DBAccess acrescenta o codigo da empresa, produzindo ZA1990010.
Use RetSqlName("ZA1") em tempo de execucao — nunca hardcode o nome fisico.
X2_TTS = Sim habilita controle transacional via BeginTran/EndTran. Obrigatorio para qualquer tabela modificada dentro de blocos RecLock que precisem de rollback.
Para novas tabelas customizadas: registre SX2 primeiro, depois SX3, depois SIX, e por fim SXG/SXA/SXB/SX7 opcionais.
Grupos definem um contrato compartilhado de tamanho/decimais entre campos que devem permanecer alinhados (ex.: um campo de codigo de cliente que aparece em SA1, SE1, SC5 deve sempre ter o mesmo tamanho em todos os lugares). Alterar o grupo propaga a mudanca para todos os campos vinculados via ferramenta de atualizacao do dicionario.
Codigo do grupo: 3 chars (TOTVS usa numerico 001-999; grupos customizados usam prefixo Z, como Z01).
Todos os campos SX3 com o mesmo X3_GRUPO devem concordar em X3_TIPO, X3_TAMANHO, X3_DECIMAL e X3_PICTURE.
Use um grupo sempre que o mesmo campo logico existir em 2 ou mais tabelas (codigos, chaves estrangeiras, totais).
A ferramenta de atualizacao do dicionario (UpdDistr/UPDDISTR) usa SXG para propagar alteracoes de tamanho — sem grupo, cada linha SX3 deve ser editada manualmente.
Define pastas (abas) usadas para organizar visualmente os campos em formularios MVC (AxCadastro, MVCAxCadastro, FormView). Sem o registro SXA, as views MVC retornam para uma unica aba padrao.
Define a janela de lookup F3: o dialogo que abre quando o usuario pressiona F3 em um campo com X3_F3 preenchido. Configura colunas de pesquisa, colunas exibidas no resultado e o valor retornado ao campo de origem. Composto por 4 tipos de linha (XB_TIPO): 1 = definicao do lookup, 2 = indice de pesquisa, 3 = colunas de exibicao, 4 = expressao de retorno.
XB_ALIAS deve coincidir exatamente com X3_F3 (normalmente o proprio alias da tabela, mas codigos customizados de 4 chars como SACN sao validos para lookups alternativos na mesma tabela).
Sempre fornecer ao menos um registro de cada tipo 1, 2, 3 e 4 -- do contrario a janela de lookup ficara incompleta.
Multiplos registros do tipo 2 permitem ao usuario alternar entre indices de pesquisa (F12 no lookup).
Multiplos registros do tipo 3 definem as colunas exibidas -- a ordem importa.
A expressao do tipo 4 deve retornar um valor compativel com o tipo e tamanho do campo de origem.
A filtragem de D_E_L_E_T_ e feita implicitamente pelo indice subjacente -- o SXB usa Workarea (DbSeek) internamente, nao SQL direto.
Scripts sao formatados como blocos chave-valor, uma definicao de campo por bloco, separados por tracos. Este formato e legivel e pode ser usado como referencia para configuracao manual no Configurador ou para scripts de importacao.