Ponto-de-Entrada: CriaSXE - Controle de Numeração
| Abrangências: | Microsiga Protheus 10, Microsiga Protheus 11, Microsiga Protheus 12 |
Descrição:
Ponto de entrada para retornar o próximo número que deve ser utilizado na inicialização da numeração. Este ponto de entrada é recomendado para casos em que deseja-se alterar a regra padrão de descoberta do próximo número.
A execução deste ponto de entrada, ocorre em casos de perda das tabelas SXE/SXF ( versões legado ) e de reinicialização do License Server.
Programa Fonte
MATXATU.PRX
Sintaxe
CriaSXE - Controle de Numeração ( [ PARAMIXB ] ) --> cRet
Parâmetros:
| Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
| PARAMIXB | Vetor | Vetor contendo as informações que poderão ser utilizadas pelo P.E. |
Retorno
cRet
- (caracter)
- Número que será utilizado pelo controle de numeração. Caso seja retornado Nulo ( NIL ), a regra padrão do sistema será aplicada. Esta função nunca deve retornar uma string vazia.
Observações
Este ponto de entrada é executado quando não existir uma numeração no SXE para o campo especificado.
Parâmetro PARAMIXB
Estrutura do parâmetro
- [1] - cAlias - Nome da tabela;
- [2] - cCpoSX8 - Nome do campo que será utilizado para verificar o próximo sequencial;
- [3] - cAliasSX8 - Filial e nome da tabela na base de dados que será utilizada para verificar o sequencial;
- [4] - nOrdSX8 - Índice de pesquisa a ser usada na tabela.
Exemplos
#include "protheus.ch"
user function CRIASXE()
Local cNum := NIL
Local aArea := getarea()
Local aArea2 := {}
Local cAlias := paramixb[1]
Local cCpoSx8 := paramixb[2]
Local cAliasSx8 := paramixb[3]
Local nOrdSX8 := paramixb[4]
Local cUsa := "SE1" // colocar os alias que irão permitir a execução do P.E.
if cAlias $ cUsa .and. ! ( Empty(cAlias) .and. empty(cCpoSx8) .and. empty(cAliasSx8) ) qout(cAlias + "-" + cCpoSx8 + "-" + cAliasSx8 + "-" + str(nOrdSX8))
dbselectarea(cAlias)
aArea2 := getarea()
dbsetorder(nOrdSX8)
dbseek(xfilial()+"Z")
dbskip(-1)
cNum := &(cCpoSx8) c
num := soma1(cNum) // fazer o tratamento aqui para a numeracao
MsgGet2( "Indique o numero correto para a tabela:" + calias, "Campo:"+cCposx8, @cNum, , , )
restarea(aArea2)
restarea(aArea)
end
return cNum