Árvore de páginas



Tempo aproximado para leitura: 02 min

1. DADOS GERAIS

Linha de Produto:Microsiga Protheus
Segmento:RH
Módulo:SIGAGPE
Função:

GPEA010

Issue:DRHGCH-12068
Pacote:

12.1.17:https://suporte.totvs.com/portal/p/10098/download?e=767198 ;

12.1.25:https://suporte.totvs.com/portal/p/10098/download?e=767200 ;

12.1.23:https://suporte.totvs.com/portal/p/10098/download?e=767199 ;


02. SITUAÇÃO/REQUISITO

Quando o cadastro não foi efetivado devido a queda inesperada do serviço appserver, rotina de Cadastro de Funcionário sugere matrícula incorreta; 

03. SOLUÇÃO

Após queda inesperada do serviço appserver, na camada advpl não será possível fazer uma nova execução, um novo comando. Ao cair o serviço, o sistema não faz novas transações. 
Para solucionar lacunas que venham a acontecer devido a essa situação, é recomendado a atualização da numeração através da rotina "APCCFG110 - Atualizar SXE / SXF", consequentemente a sequencia da numeração automática ficará correta.
Foi implementado o ponto de entrada CRIASXE() na rotina GPEA010. Este por sua vez não realiza a contagem e não altera a SXE/SXF, mas ele permite que o usuário insira o valor da próxima matricula. Caso não informado, o sistema prossegue com a contagem existente.
Para que o P.E funcione é necessário compilar o fonte que contém a user function CRIASXE(), vide exemplo abaixo.

04. DEMAIS INFORMAÇÕES

Numeração automática  : http://tdn.totvs.com/pages/releaseview.action?pageId=30941114
Criar Ponto de Entrada:  CRIASXE(): http://tdn.totvs.com/pages/releaseview.action?pageId=6815179 
Adicionar submenu : Personalização de menus


Exemplo de utilização:
User Function CRIASXE()
    Local cNum      := ""
    Local aArea     := GetArea()
    Local aArea2    := {}
    Local cAlias    := paramixb[1]
    Local cCpoSx8   := paramixb[2]
    Local cAliasSx8 := paramixb[3]
    Local nOrdSX8   := paramixb[4]
    
    Local cUsa := "SRA"
    
    If cAlias $ cUsa .And. !( Empty(cAlias) .And. Empty(cCpoSx8) .And. Empty(cAliasSx8) )
    
        Dbselectarea(cAlias)
        aArea2 := Getarea()
        
        Dbsetorder(nOrdSX8)
        Dbseek(xfilial()+"Z")
        Dbskip(-1)
        cNum := &(cCpoSx8)
        
        cNum := "999999" //Fazer o tratamento aqui para a numeracao
        MsgGet2( "Indique o numero correto para a tabela:" + calias, "Campo: "+ "Matrícula", @cNum, , , )
        
        Restarea(aArea2)
        Restarea(aArea)
    EndIf
Return cNum


05. ASSUNTOS RELACIONADOS

Não há.