01. VISÃO GERAL
Quando houver algum bloqueio de verbas em rotinas do Sistema, será exibida uma tela de advertência, no entanto, tratando-se de uma contingência o sistema exibe os botões na tela, permitindo:
- Fechar - Cancela a operação de bloqueio voltando à operação anterior permitindo modifica-la.
- Solicitar Liberação - Analisa o saldo de contingência que está sendo solicitado, (através da diferença entre saldo realizado e saldo previsto), encontra os responsáveis pela liberação e gera as solicitações para cada um deles. Se o parâmetro MV_PCOWFCT estiver ativo, as solicitações também são enviadas ao e-mail cadastrado dos usuários, e tem como finalidade a resposta remota.
- Detalhes - Demonstra a composição do saldo realizado para eventuais consultas de utilização.
Informações
A configuração do pa
râmetro MV_PCOEMCT indica se o Sistema deve enviar e-mail no momento da solicitação da contingência. Para que este parâmetro e funcione corretamente é necessário que o parâmetro MV_PCOSDCT, que controla o saldo de contingência, tenha seu conteúdo configurado com verdadeiro (.T. = true).
Importante - Permissão de Aprovação
Os usuários que estão cadastrados como Administradores no configurador (SIGACFG) possuem permissão FULL na aprovação de contingências.
Não o limitando-o assim caso o mesmo não esteja no Grupo de Aprovadores do PCO (PCOA520).
Para atender a todo tipo de expectativa, atualmente possuímos 2 pontos de entrada que pode ser usado para manipulação de permissão, sendo eles:
PE PCOA5001 - Controle de usuários
DT PE PCOA5003 - Filtro de registros
02. ROTINA AUTOMÁTICA
Em Breve
Esta funcionalidade ainda não está disponível.
Disponibilizado o uso de rotina automática (MSExecAuto) somente para inclusão de contingências no módulo 57 – Planejamento e Controle Orçamentário.
Lembrando que o código de bloqueio enviado será analisado no cadastro PCOA520 – Aprovadores para que seja respeitado as configurações do grupo de aprovadores para a contingência.
Outra informação importante é referente ao código de lançamento do processo, além de obrigatório, será esse código que informará ao sistema em qual processo a contingência poderá ser utilizada, exemplo, se enviado o código 000052 – Pedidos de Compras, a contingência somente poderá ser utilizada na rotina MATA121 – Pedidos de Compras. Outro exemplo, se enviado o código 000100 – Pedido de Vendas, a contingência somente poderá ser utilizada na rotina MATA410 – Pedidos de Vendas
Importante
Ao enviar um campo que faz parte de um índice de tabela no array para o MSExecAuto, sempre se deve respeitar o tamanho do campo ao enviar o seu conteúdo, por exemplo, ao enviar o campo ALI_CODBLQ (Código do tipo de bloqueio), que possui tamanho de 3 caracteres, caso o conteúdo deste campo seja “03”, deve-se enviar “03 “ (acrescente 1 espaço a direita), pois assim a customização irá respeitar o tamanho do campo que será utilizado posteriormente pelo sistema para montar uma chave de busca.
#Include "Protheus.ch" User Function TestPco5() Local cNumCont := "" Local cValor := "" Local aCab := {} Local aItem := {} Local aItens := {} Local nOpc := 0 Private lMsErroAuto := .F. cNumCont := GetSXENum('ALI', 'ALI_CDCNTG') ConfirmSX8() aCab := {} AAdd(aCab, {"ALI_CDCNTG", cNumCont, Nil}) AAdd(aCab, {"ALI_SOLIC", "000000", Nil}) AAdd(aCab, {"ALI_NOMSOL", "Administrador", Nil}) AAdd(aCab, {"ALI_DTSOLI", dDataBase, Nil}) AAdd(aCab, {"ALI_DTVALI", dDataBase + 1, Nil}) AAdd(aCab, {"ALI_CODBLQ", "099", Nil}) AAdd(aCab, {"ALI_MEMO", "Incluido por ExecAuto", Nil}) AAdd(aCab, {"ALI_PROCESS", "000052", Nil}) AAdd(aCab, {"ALI_LOTEID", "000001", Nil}) AAdd(aCab, {"ALI_HORA", Time(), Nil}) cValor := FwInputBox("Valor da contingência?", cValor) aItens := {} aItem := {} AAdd(aItem, {"ALJ_ID", "01", Nil}) AAdd(aItem, {"ALJ_DATA", dDataBase, Nil}) AAdd(aItem, {"ALJ_CO", "01999", Nil}) AAdd(aItem, {"ALJ_CLASSE", "000001", Nil}) AAdd(aItem, {"ALJ_OPER", "0000000001", Nil}) AAdd(aItem, {"ALJ_TIPO", "1", Nil}) AAdd(aItem, {"ALJ_HIST", "BLOQUEIO AUTOMATICO", Nil}) AAdd(aItem, {"ALJ_PROCES", "000052", Nil}) AAdd(aItem, {"ALJ_CHAVE", "", Nil}) AAdd(aItem, {"ALJ_ITEM", "01", Nil}) AAdd(aItem, {"ALJ_SEQ", "01", Nil}) AAdd(aItem, {"ALJ_USER", "000000", Nil}) AAdd(aItem, {"ALJ_VAL1", Val(cValor), Nil}) AAdd(aItens, aItem) aItem := {} AAdd(aItem, {"ALJ_ID", "02", Nil}) AAdd(aItem, {"ALJ_DATA", dDataBase, Nil}) AAdd(aItem, {"ALJ_CO", "PCOMAT120106", Nil}) AAdd(aItem, {"ALJ_CLASSE", "000001", Nil}) AAdd(aItem, {"ALJ_OPER", "0000000001", Nil}) AAdd(aItem, {"ALJ_TIPO", "1", Nil}) AAdd(aItem, {"ALJ_HIST", "BLOQUEIO AUTOMATICO 2", Nil}) AAdd(aItem, {"ALJ_PROCES", "000052", Nil}) AAdd(aItem, {"ALJ_CHAVE", "", Nil}) AAdd(aItem, {"ALJ_ITEM", "01", Nil}) AAdd(aItem, {"ALJ_SEQ", "01", Nil}) AAdd(aItem, {"ALJ_USER", "000000", Nil}) AAdd(aItem, {"ALJ_VAL1", Val(cValor), Nil}) AAdd(aItens, aItem) nOpc := 3 MSExecAuto({|a,b,c,d,e,f| PCOA500(a,b,c,d,e,f)},Nil,Nil,Nil,aCab,aItens,nOpc) If lMsErroAuto MostraErro() EndIf Return
Contingência com controle por senha – Parâmetro MV_PCOCTGP ativado.
Por se tratar de uma inclusão de contingência através de rotina automática, o MSExecAuto não retornará a senha criada para a contingência. Para visualizar a senha, o cliente poderá acessar a rotina PCOA500 – Contingências e em seguida clicar em Outras Ações→Senha, desse modo o sistema mostrará a senha criada. Outra forma de obter a senha será no envio do e-mail, após a confirmação da liberação da contingência, lembrando que será preciso configurar o servidor SMTP do sistema para que o envio deste e-mail funcione corretamente.
Visualizar a senha pelo menu da rotina PCOA500 – Contingências:
Visualizar a senha através do e-mail de confirmação da liberação da contingência:
Para mais informações sobre o parâmetro MV_PCOCTGP:
Parâmetro MV_PCOCTGP - Linha Microsiga Protheus - TDN
03. ASSUNTOS RELACIONADOS
Legendas de controle de solicitação de saldo de contingência
Cadastro de grupo de aprovadores