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:




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).

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


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


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

PCOA520 - GRUPOS DE APROVAÇÃO

Limite de aprovação

Parâmetro MV_PCOCTGP