advpl-specialist
Skills

SX Configuration

Templates e regras de validacao para gerar scripts de configuracao do dicionario SX do TOTVS Protheus

SX Configuration

Templates e regras de validacao para gerar scripts de configuracao do dicionario de dados Protheus. Cobre SX3 (campos), SIX (indices), SX1 (perguntas de relatorio), SX5 (tabelas genericas) e SX7 (gatilhos).

Quando Usar

  • Criar novos campos customizados para uma tabela
  • Definir indices para tabelas customizadas
  • Configurar perguntas de parametros de relatorio
  • Criar tabelas genericas de lookup
  • Configurar gatilhos de campo

SX3 -- Definicao de Campo

Campos Obrigatorios

CampoDescricaoExemplo
X3_ARQUIVOAlias da tabelaZA1
X3_ORDEMOrdem do campo (2 digitos)01
X3_CAMPONome do campo (ALIAS_FIELD)ZA1_CODIGO
X3_TIPOTipo: C, N, D, L, MC
X3_TAMANHOTamanho6
X3_DECIMALCasas decimais (para N)0
X3_TITULOTitulo pt-BR (max 15 chars)Codigo
X3_TITSPATitulo es (max 15 chars)Codigo
X3_TITENGTitulo en (max 15 chars)Code
X3_DESCRICDescricao pt-BRCodigo da OS
X3_DESCSPADescricao esCodigo de la OS
X3_DESCENGDescricao enOS Code
X3_PICTUREFormato de exibicao@!
X3_VALIDExpressao de validacaoNaoVazio()
X3_USADOEm uso (Sim/Nao)Sim
X3_OBRIGATObrigatorio (Sim/Nao)Sim
X3_BROWSEExibir no browse (Sim/Nao)Sim
X3_VISUALModo de edicao: Alterar/VisualizarAlterar
X3_CONTEXTContexto: Real/VirtualReal
X3_CBOXOpcoes de combo (val1=desc1;val2=desc2)
X3_RELACAOExpressao de valor inicial
X3_F3Alias de lookup F3SA1
X3_VLDUSERExpressao de validacao do usuario
X3_TRIGGERTem gatilho (Sim/Nao)Nao

Regras de Validacao

RegraCondicaoAcao
Formato do nome do campoDeve ser ALIAS_XXXXXX (6 chars apos underscore)Erro se invalido
Tamanho tipo C1-254 caracteresAviso se > 100
Tamanho tipo NMax 18 digitos incluindo decimalErro se > 18
Tamanho tipo DSempre 8Auto-definir para 8
Tamanho tipo LSempre 1Auto-definir para 1
Tamanho tipo MSempre 10Auto-definir para 10
Picture para C@! (maiuscula), @R (mascara), ou customizadoSugerir @! para codigos
Picture para N@E 999,999,999.99 (ajustar ao tamanho)Auto-gerar a partir de tamanho/decimal
Picture para D(nao necessario)Deixar vazio
Obrigatorio + ValidacaoSe X3_OBRIGAT = Sim, adicionar NaoVazio() a X3_VALIDAuto-adicionar
Lookup F3Se X3_F3 definido, validacao deve incluir ExistCpoSugerir adicionar
CBOX + ValidacaoSe X3_CBOX definido, adicionar Pertence() a X3_VALIDAuto-adicionar
Auto-incrementoSe chave primaria, definir X3_RELACAO = GetSXENum()Sugerir para primeiro campo
GatilhoSe F3 definido e campo de exibicao relacionado necessario, gerar SX7Auto-gerar

Validacoes Comuns

ValidacaoQuando usarSintaxe
NaoVazio()Campo obrigatorioNaoVazio()
ExistCpo(alias, M->field)Lookup de chave estrangeiraExistCpo("SA1", M->ZA1_CLIENT)
ExistChav(alias, M->field, order)Verificacao de chave unicaExistChav("ZA1", M->ZA1_CODIGO, 1)
Pertence(values)Validacao de comboPertence("1234")
Positivo()Deve ser > 0Positivo()
Vazio() .Or. ExistCpo()Chave estrangeira opcionalVazio() .Or. ExistCpo("SA1", M->ZA1_CLIENT)

Pictures Comuns

TipoPictureExemplo de exibicao
Codigo (maiuscula)@!ABC123
CNPJ@R 99.999.999/9999-9912.345.678/0001-90
CPF@R 999.999.999-99123.456.789-00
Telefone@R (99) 99999-9999(11) 98765-4321
Moeda@E 999,999,999.991,234.56
Percentual@E 999.9915.50

SIX -- Definicao de Indice

Campos Obrigatorios

CampoDescricaoExemplo
INDICEAlias da tabelaZA1
ORDEMNumero de ordem do indice1
CHAVEExpressao de chave (campos concatenados)ZA1_FILIAL + ZA1_CODIGO
DESCRICAODescricao pt-BRCodigo
DESCSPADescricao esCodigo
DESCENGDescricao enCode
NICKNAMEApelido do indiceZA1_CODIGO
SHOWPESQExibir na pesquisa (Sim/Nao)Sim

Regras

  • Indice 1 e SEMPRE a chave primaria (FILIAL + campo unico)
  • FILIAL deve ser o primeiro componente de todo indice
  • Nickname deve ser unico dentro da tabela
  • Ordem deve ser sequencial comecando de 1

SX1 -- Perguntas de Relatorio

Campos Obrigatorios

CampoDescricaoExemplo
X1_GRUPONome do grupo (corresponde ao alias do relatorio)ZA1
X1_ORDEMOrdem da pergunta (2 digitos)01
X1_PERGUNTTexto da pergunta pt-BRData Abertura De
X1_PERGSPATexto da pergunta esFecha Apertura De
X1_PERGENGTexto da pergunta enOpen Date From
X1_TIPOTipo: C, N, DD
X1_TAMANHOTamanho do campo8
X1_GSCGet/Select/Combo: G, S, CG
X1_VALIDExpressao de validacao
X1_DEF01Valor padraoSpace(8)
X1_F3Lookup F3 (para tipo C)SA1
X1_HELPTexto de ajudaData inicial

Regras

  • Perguntas vem em pares para filtros de faixa (De/Ate)
  • Tipo D sempre tem tamanho 8
  • Padrao para data "De": Space(8) ou primeiro dia do mes
  • Padrao para data "Ate": dDataBase ou ultimo dia do mes
  • Padrao para char "De": Space(tamanho)
  • Padrao para char "Ate": Replicate("Z", tamanho)
  • Se combo (C), X1_DEF01 contem o valor da opcao padrao
  • X1_GSC: G=Get (input de texto), S=Select (incomum), C=Combo

SX5 -- Tabelas Genericas

Campos Obrigatorios

CampoDescricaoExemplo
X5_FILIALFilial (geralmente vazio para global)
X5_TABELACodigo da tabela (2 chars)ZZ
X5_CHAVEValor da chave (2 chars)01
X5_DESCRIDescricao pt-BRPreventiva
X5_DESCSPADescricao esPreventiva
X5_DESCENGDescricao enPreventive

Regras

  • Codigo da tabela: 2 caracteres maiusculos (usar prefixo Z para custom: ZA, ZB, ZZ, etc.)
  • Chave: 2 caracteres, sequencial (01, 02, 03...)
  • Para usar no codigo: GetSX5("ZZ", "01") ou X5DESCRI("ZZ", "01")

SX7 -- Gatilhos

Campos Obrigatorios

CampoDescricaoExemplo
X7_CAMPOCampo de origemZA1_CLIENT
X7_SEQUENCSequencia (3 digitos)001
X7_REGRAExpressao a avaliarPosicione("SA1", 1, xFilial("SA1") + M->ZA1_CLIENT, "A1_NOME")
X7_CDOMINCampo de dominio (destino a preencher)ZA1_NMCLI
X7_TIPOTipo: P=PrimarioP
X7_SEEKExpressao de seekxFilial("SA1") + M->ZA1_CLIENT
X7_ALIASAlias de lookupSA1
X7_ORDEMOrdem do indice para seek1
X7_CHTEFILVerificar filial (Sim/Nao)Sim

Regras

  • Gatilhos disparam quando o campo de origem muda
  • Posicione() e a funcao padrao para lookups
  • Sempre incluir xFilial() na expressao de seek
  • Sequencia permite multiplos gatilhos no mesmo campo

Formato de Saida

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.

Nesta pagina