Ir para o conteúdo

Alçadas - Workflow Pedido de Compras

01. Visão Geral

1. Visão Geral

Este ADDON é uma otimização do ADDON de Regras Alçadas, permitindo uma maior automação no processo de aprovação/rejeição de solicitação de compra/pedido de compra.

O ADDON permite que ao gerar um uma solicitação de compra ou pedido de compra, estes sejam analisados por regras de aprovação e conforme os criterios da regra de aprovação e o que foi informado no pedido de compra/solicitação de compra, o aprovador seja notificado via workflow e através do próprio da liberaçãdo do documento e pelo próprio Workflow deliberar da aprovação ou não.

Esta automação utiliza o processo de Workflow via link para aprovação ou rejeição de documentos que estão em processo de alçadas.

A Liberação de Alçadas considera sempre por Documento e não por item, ou seja, no caso do documento ter e itens (solicitação de compra, pedido de compra, etc.) não terá liberação por item e sim o documento todo.

Sistema customizado para gestão de aprovações integradas ao módulo de Compras.

Principais vantagens do produto:

  • Solicitação de Compras (MATA110) – validação das regras de alçadas;
  • Gera Cotações (MATA130) – filtro para solicitações aprovadas por alçadas;
  • Analisa Cotações (MATA160) – geração do pedido de compra com validação das regras de alçadas;
  • Pedido de Compras (MATA120) – validação das regras de alçadas, filtro para solicitações aprovadas por alçadas;
  • Documento de Entrada (MATA103) – filtro para pedidos de compra aprovados por alçadas;
  • Aprovação/Rejeição de Solicitação de Compra - via Workflow;
  • Aprovação/Rejeição de Pedido de Compra - via Workflow;
  • Consulta Status de Aprovação da SC e PC em alçadas;
02. Menu

2. Menu

Ver manual do Addon Alçadas - Regras na seção "2. Menu".

03. Fluxo Operacional

3. Fluxo Operacional

Fluxo Operacional


Fluxo Operacional

04. Rotinas personalizadas específicas do Pacote

4. Rotinas personalizadas específicas do Pacote

Funções personalizadas contidas no pacote:

Função Descrição
M001C01 Rotina para retorno do processo de Workflow – Solicitação de Compras
M001C02 Rotina para retorno do processo de Workflow – Pedido de Compras
P001C01 Rotina centralizadora das chamadas dos Pontos de Entrada de Pedido de Compras, Analisa Cotação e Documento de Entrada
T001C01 Rotina para Tela de Consulta Alçadas na rotina Solicitação de Compras
T001C02 Rotina para Tela de Consulta Alçadas na rotina Pedido de Compras
UPD001C Rotina de aplicação do template
W001C01 Rotina para geração do Workflow de liberação da Solicitação de Compras
W001C02 Rotina para geração do Workflow de Aviso da Aprovação/Rejeição da Solicitação de Compras
W001C03 Rotina para geração do Workflow de liberação do Pedido de Compra
W001C04 Rotina para geração do Workflow de Aviso da Aprovação/Rejeição do Pedido de Compra
05. Pontos de Entradas Disponiveis para Desenvolvimento

5. Pontos de Entradas Disponiveis para Desenvolvimento

Nome Descrição Implementação
A120F4FI Ponto de entrada na rotina pedido de compra para filtro na Tabela SC1 ao acionar a tecla F5 no campo C7_PRODUTO
ADVPL A120F4FI
  
User Function A120F4FI()
Local aArea := GetArea()
Local aRet  := {}
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
   aRet := U_P001C02("A120F4FI", PARAMIXB)   
EndIf
RestArea(aArea)
Return(aRet)    
A120PIDF Ponto de entrada na rotina de Pedido de Compra para filtro na Tabelas SC1 ao acionar a tecla de atalho F4 nos itens
ADVPL A120PIDF
  
User Function A120PIDF()
Local aArea := GetArea()
Local aRet  := {}
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
   aRet := U_P001C02("A120PIDF", PARAMIXB)   
EndIf
RestArea(aArea)
Return(aRet)
M110STTS Ponto de entrada na rotina de Solicitação de Compras após a gravação da Solicitação em inclusão, alteração, exclusão.
ADVPL M110STTS
  
User Function M110STTS()
Local aArea := GetArea()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C01")
   U_P001C01("M110STTS", PARAMIXB)   
EndIf
RestArea(aArea)
Return
M130FIL Ponto de entrada na rotina de Geração da Cotação para adicionar Filtro sobre as solicitações de compra
ADVPL M130FIL
  
User Function M130FIL()
Local aArea := GetArea()
Local cRet  := ""
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C01")
   cRet := U_P001C01("M130FIL", PARAMIXB)   
EndIf
RestArea(aArea)
Return(cRet)
MT131FIL Ponto de entrada na rotina de Geração da Cotação para adicionar Filtro sobre as solicitações de compra.
ADVPL MT131FIL
  
User Function M130FIL()
Local aArea := GetArea()
Local cRet  := ""
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C01")
   cRet := U_P001C01("MT131FIL", PARAMIXB)   
EndIf
RestArea(aArea)
Return(cRet)
MT103QPC Ponto de entrada na rotina de Análise da Cotação para filtro na Tabelas SC7 ao acionar as teclas de atalho F4/F5
ADVPL MT103QPC
  
User Function MT103QPC()
Local aArea := GetArea()
Local cRet := ""
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
   cRet := U_P001C02("MT103QPC", PARAMIXB)   
EndIf
RestArea(aArea)
Return(cRet)
MT110COR Ponto de entrada na rotina de Solicitação de Compras para manipular o Array com as regras de cores da Mbrowse
ADVPL MT110COR
  
User Function MT110COR()
Local aArea := GetArea()
Local aNewCores := aClone(PARAMIXB[1])
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C01")
   aNewCores := U_P001C01("MT110COR", PARAMIXB)   
EndIf
RestArea(aArea)
Return(aNewCores)
MT110LEG Ponto de entrada na rotina de Solicitação de Compras para adicionar legendas das cores na Dialog de legenda
ADVPL MT110LEG
  
User Function MT110LEG()
Local aArea := GetArea()
Local aCores := aClone(PARAMIXB[1])
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C01")
   aCores := U_P001C01("MT110LEG", PARAMIXB)   
EndIf
RestArea(aArea)
Return(aCores)
MT110ROT Ponto de entrada na rotina de Solicitação de Compras para adicionar mais opções no aRotina.
ADVPL MT110ROT
  
User Function MT110ROT()
Local aArea := GetArea()
Local aRot := aClone(aRotina)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C01")
   aRot := U_P001C01("MT110ROT", PARAMIXB)   
EndIf
RestArea(aArea)
Return(aRot)
MT120BRW Ponto de entrada na rotina de Pedido de Compra para adicionar opções no aRotina
ADVPL MT120BRW
  
User Function MT120BRW()
Local aArea := GetArea()
Local aRot := aClone(aRotina)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
   aRot := U_P001C02("MT120BRW", aRot)   
EndIf
RestArea(aArea)
Return(aRot)
MT120COR Ponto de entrada na rotina de Pedido de Compra para manipular o Array com as regras de cores da Mbrowse
ADVPL MT120COR
  
User Function MT120COR()
Local aArea := GetArea()
Local aNewCores := aClone(PARAMIXB[1])
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
   aNewCores := U_P001C02("MT120COR", aNewCores)   
EndIf
RestArea(aArea)
Return(aNewCores)
MT120FIM Ponto de entrada na rotina de Pedido de Compra após finalizar a gravação no final da função A120PEDIDO em inclusão, alteração, exclusão
ADVPL MT120FIM
  
User Function MT120FIM()
Local aArea := GetArea()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
   U_P001C02("MT120FIM", PARAMIXB)   
EndIf
RestArea(aArea)
Return
MT120LEG Ponto de entrada na rotina de Pedido de Compra para adicionar legendas das cores na Dialog de legenda
ADVPL MT120LEG
  
User Function MT120LEG()
Local aArea := GetArea()
Local aCores := aClone(PARAMIXB[1])
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
   aCores := U_P001C02("MT120LEG", aCores)   
EndIf
RestArea(aArea)
Return(aCores)
MT120SCR Ponto de entrada na rotina de Pedido de Compra na montagem da tela do pedido
ADVPL MT120SCR
  
User Function MT120SCR()
Local aArea := GetArea()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
   U_P001C02("MT120SCR", PARAMIXB)   
EndIf
RestArea(aArea)
Return
MT160WF Ponto de entrada na rotina de Análise da Cotação após a geração dos pedidos de compras
ADVPL MT160WF
  
User Function MT160WF()
Local aArea := GetArea()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do Template de Alçadas (Bloqueio SC/PC)     ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
   U_P001C02("MT160WF", PARAMIXB)   
EndIf
RestArea(aArea)
Return
MT103FIM Ponto de entrada na rotina de Nota Fiscal de Enttrada, após finalizar a gravação.
ADVPL MT103FIM
  
User Function MT103FIM()
Local aArea := GetArea()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do ADD-ON de Alçadas (Bloqueio SC/PC)       ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
    U_P001C02("MT103FIM", PARAMIXB)   
EndIf
RestArea(aArea)
Return
MT106SC1 Ponto de entrada na rotina de geração de pré-requisição ao gerar uma solicitação de compras.
ADVPL MT106SC1
  
User Function MT106SC1 ()
Local aArea := GetArea()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
//³ Chamada específica para uso do ADD-ON de Alçadas (Bloqueio SC/PC)       ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
If ExistBlock("P001C02")
    U_P001C02("MT106SC1", PARAMIXB[2])   
EndIf
RestArea(aArea)
Return
06. Tabelas (SX2)

6. Tabelas (SX2)

Ver manual do Addon Alçadas - Regras na seção "6. Tabelas (SX2)".

07. Campos (SX3)

7. Campos (SX3)

Campo C1_X_IDAL
Tipo C Ordem * Próxima disponível Tamanho 10 Decimal 0 Formato @!
Contexto Real Propriedade Visualizar Obrigatório N Browse N
Título ID ALCADA
Descrição IDALC

Help

Identificador do Controle de Alcadas.

Configurações adicionais

F3 -
Modo Edição -
Val. Usuário -
Lista Opções -
Inicializador -
Ini. Browse -
Campo C1_X_DOC
Tipo C Ordem * Próxima disponível Tamanho 6 Decimal 0 Formato @!
Contexto Real Propriedade Visualizar Obrigatório N Browse N
Título Num. Doc.
Descrição Número Documento.

Help

Numero/Codigo do Documento com integracao no Controle de Alcadas.

Configurações adicionais

F3 -
Modo Edição -
Val. Usuário -
Lista Opções -
Inicializador -
Ini. Browse -
Campo C1_X_STS
Tipo C Ordem * Próxima disponível Tamanho 1 Decimal 0 Formato @!
Contexto Real Propriedade Visualizar Obrigatório N Browse N
Título Status Aprov.
Descrição Status da Aprovação

Help

Status do movimento de alçada:
1 - Aguardando Aprovacao
2 - Aguardando Aprov. Nivel Anterior
3 - Aprovado
4 - Transferido p/ outro Aprovador
5 - Reprovado
6 - Nivel Anterior Reprovado

Configurações adicionais

F3 -
Modo Edição -
Val. Usuário -
Lista Opções -
Inicializador -
Ini. Browse -
Campo C1_X_SOL
Tipo C Ordem * Próxima disponível Tamanho 6 Decimal 0 Formato @!
Contexto Real Propriedade Visualizar Obrigatório N Browse N
Título Solicitante
Descrição Usuario Solicitante

Help

Codigo do Usuario Solicitante

Configurações adicionais

F3 -
Modo Edição -
Val. Usuário -
Lista Opções -
Inicializador -
Ini. Browse -
Campo C7_X_IDAL
Tipo C Ordem * Próxima disponível Tamanho 10 Decimal 0 Formato @!
Contexto Real Propriedade Visualizar Obrigatório N Browse N
Título ID ALCADA
Descrição IDALC

Help

Identificador do Controle de Alcadas.

Configurações adicionais

F3 -
Modo Edição -
Val. Usuário -
Lista Opções -
Inicializador -
Ini. Browse -
Campo C7_X_DOC
Tipo C Ordem * Próxima disponível Tamanho 6 Decimal 0 Formato @!
Contexto Real Propriedade Alterar Obrigatório N Browse N
Título Num. Doc.
Descrição Número Documento

Help

Numero/Codigo do Documento com integracao no Controle de Alcadas.

Configurações adicionais

F3 -
Modo Edição -
Val. Usuário -
Lista Opções -
Inicializador -
Ini. Browse -
Campo C7_X_STS
Tipo C Ordem * Próxima disponível Tamanho 1 Decimal 0 Formato @!
Contexto Real Propriedade Visualizar Obrigatório N Browse N
Título Status Aprov
Descrição Status da Aprovação

Help

Status do movimento de alçada:
1 - Aguardando Aprovacao
2 - Aguardando Aprov. Nivel Anterior
3 - Aprovado
4 - Transferido p/ outro Aprovador
5 - Reprovado
6 - Nivel Anterior Reprovado

Configurações adicionais

F3 -
Modo Edição -
Val. Usuário -
Lista Opções -
Inicializador -
Ini. Browse -
Campo C7_X_SOL
Tipo C Ordem * Próxima disponível Tamanho 6 Decimal 0 Formato @!
Contexto Real Propriedade Visualizar Obrigatório N Browse N
Título Solicitante
Descrição Usuario Solicitante

Help

Codigo do Usuario Solicitante

Configurações adicionais

F3 -
Modo Edição -
Val. Usuário -
Lista Opções -
Inicializador -
Ini. Browse -
08. Parâmetros (SX6)

8. Parâmetros (SX6)

Ver manual do Addon Alçadas - Regras na seção "7. Parametros".

09. Gatilhos (SX7)

9. Gatilhos (SX7)

Ver manual do Addon Alçadas - Regras na seção "8. Gatilhos".

10. Índices (SIX)

10. Índices (SIX)

Indice Ordem Chave Descrição NickName
SC1 * Próxima disponível C1_FILIAL+C1_X_IDAL+C1_ITEM IDALC SC1ALC
SC7 * Próxima disponível C7_FILIAL+C7_X_IDAL+C7_ITEM IDALC SC7ALC
11. Consulta Padrão (SXB)

11. Consulta Padrão (SXB)

Ver manual do Addon Alçadas - Regras na seção "10. Consulta Padrão (SXB)".

12. Manual de operação

12. Manual de operação

1. Cadastros

1.1. Destinatários Processo de Workflow

Esta rotina tem por objetivo cadastrados processos de Workflow customizados para definição dos e-mails destinatários de cada processo.

Este cadastro é para uso geral podendo ser vinculado à customizações específicas que envolvem geração de Workflow.

No caso deste pacote de Alçadas, é necessário cadastrar os seguintes processos:

Função Descrição E-mail Destino
W001C02 AVISO SOLICITACAO DE COMPRA (APROVADA/REJEITADA -
W001C04 AVISO PEDIDO DE COMPRA (APROVADO/REJEITADO) -

FUNÇÃO: informe o nome da rotina customizada de Workflow.

DESCRIÇÃO: informe uma descrição para identificação do Workflow.

DESTINATÁRIOS: informe os e-mails dos destinatários para envio do Workflow; para informar vários e-mails separe com “;”.

2. Regras de Alçadas

Esta rotina tem por objetivo cadastraras regras dos processos em controle de alçadas, utilizado para definir as regras de bloqueio dos documentos e os usuários aprovadores de cada processo.

OBS: os usuários envolvidos no processo (solicitantes, aprovadores) devem estar cadastrados como usuários do ERP no módulo Configurador e devem possuir e-mail.

Será apresentada tela de Browse contendo as regras já criadas.

2.1. Liberação por Nível

Utilizado para definir regras de liberação por nível de hierarquia, ou seja, uma regra pode exigir a liberação de três usuários que estão em níveis de hierarquia diferentes, por exemplo:

Seq Tp. Liber. Nível Usuário Cargo/Departamento
01 Nível 01 Aprovador 01 Gerente de T.I.
02 Nível 02 Aprovador 02 Gerente de Compras
03 Nível 03 Aprovador 03 Diretor 1
04 Nível 04 Aprovador 04 Diretor 2

O controle de alçadas vai executar a primeira regra e enviar um workflow de aprovação para os usuários aprovadores do Nível 01, neste caso usuário “APROVADOR 01”. Após o mesmo aprovar o documento, será executada a segunda regra que enviará um workflow de aprovação para os usuários do Nível 02, “APROVADOR 02”. Após este aprovar, será executada a terceira regra que enviará um workflow para os dois usuários do Nível 03.Neste caso qualquer um deles pode aprovar o documento, pois estão no mesmo nível.

Somente após o último nível ter sido aprovado é que o documento em questão será liberado pelo controle de alçadas.
Caso algum usuário rejeite o documento, em qualquer nível, as regras seguintes não serão executadas e o documento ficará com Status “rejeitado”.

2.2. Liberação por Usuário

Utilizado para definir regras de liberação por usuário um ou mais usuários, sem considerar níveis de hierarquia. Exemplo:

Seq Tp. Liber. Nível Usuário Cargo/Departamento
01 Usuário - Aprovador 01 Gerente de T.I.
02 Usuário - Aprovador 02 Gerente de Compras
03 Usuário - Aprovador 03 Diretor 1

O controle de alçadas vai executar sequencialmente cada regra acima e exigir a aprovação de todos os usuários definidos.

2.3. Liberação por Documento

Utilizado quando não há diferenciação de níveis de hierarquia e quando há vários usuários aprovadores, sendo que o documento será liberado quando qualquer um dos usuários aprovar, não exigindo a aprovação de todos.

Seq Tp. Liber. Nível Usuário Cargo/Departamento
01 Documento - Aprovador 01 Gerente de T.I.
02 Documento - Aprovador 02 Gerente de Compras
03 Documento - Aprovador 03 Diretor 1

Principais campos da tela de cadastro:

PROCESSO: informe o nome do programa ao qual serão criadas as regras para alçadas, no caso deste pacote são somente as rotinas abaixo:

Rotina Descrição
MATA110 SOLICITACAO DE COMPRA
MATA120 PEDIDO DE COMPRA

DESCRIÇÃO: informe uma descrição ou nome para o processo, conforme a rotina.

WORKFLOW AVISO: informe o nome do workflow que será utilizado para o controle de alçadas enviar um e-mail de Aviso com o Status de liberação do documento (aprovado ou rejeitado).
É necessário que o mesmo esteja cadastrado na rotina “Destinatários de Workflow”.
Por padrão, o controle de alçadas sempre enviará o workflow de aviso para o usuário “solicitante” que incluiu o respectivo documento, porém é possível adicionar outros destinatários.
Para este pacote de alçadas informe:

Processo Workflow Descrição
MATA110 W001C02 AVISO SOLICITACAO DE COMPRA (APROVADA/REJEITADA)
MATA120 W001C04 AVISO PEDIDO DE COMPRA (APROVADO/REJEITADO)

WORKFLOW ALIAS: informe o Alias da tabela principal do documento em alçadas, para uso pelo programa de envio do workflow de aviso.

Alias Tabela
SC1 SOLICITACAO DE COMPRA
SC7 PEDIDO DE COMPRA

REGRA ATIVA: informe se a regra está habilitada ou não para ser utilizada pelo controle de alçadas (Sim/Não).

No Grid que segue,informe a definição das regras para o processo conforme segue abaixo:

SEQUENCIA: código automático que indica a sequencia de execução das regras.

TIPO LIBERAÇÃO: informe o tipo de liberação da regra: - Por Nível - Por Usuário - Por Documento

NÍVEL: caso o tipo de liberação seja “por nível” informe o código dos níveis de liberação. Exemplo: 01, 02, 03...

TIPO BUSCA: informe como o controle de alçadas buscará e determinará o usuário aprovador que vai receber o workflow de aprovação:
Por Entidade:será utilizada uma tabela externa que deve estar relacionada a tabela principal do documento em questão. Exemplo: tabela de Centro de Custos. Esta tabela relacionada deverá conter um campo customizado com o código do usuário aprovador/responsável.
Por Usuário: deverá ser associado e relacionado um usuário específico para aprovação.
Personalizada: retorna o aprovador de forma personalizada. Deve ser utilizado o ponto de entrada M001REG para a regra personalizada, o retorno do ponto de entrada deve ser o código do usuário aprovador.

APROVADOR: somente se o tipo de busca for “por usuário”, informe o código do usuário do ERP que receberá o workflow para liberação do documento conforme a regra.

INDICE ALIAS: somente se o tipo de busca for “por entidade”, informe o código do índice de busca da tabela relacionada que contém o código do usuário que será utilizado.

CAMPO: somente se o tipo de busca for “por entidade”, informe o nome do campo da tabela relacionada que contém o código do usuário que será utilizado. Podem ser utilizadas duas entidades:

  • SBM – Grupo de Produtos
  • CTT – Centro de Custos

Exemplo: se utilizar a tabela de Centro de Custos (CTT), esta tabela deverá conter um campo com o código do usuário responsável, exemplo: CTT_X_USR. O documento em questão deverá conter um relacionamento com a tabela CTT, por exemplo, se for Solicitação de Compras existe o campo C1_CC. Desta forma, a regra ficaria assim:

Tp. Busca Índice Alias Campo
Entidade 1 CTT_X_USR

O controle de alçadas vai buscar na tabela CTT utilizando o índice 1, o código do centro de custo na solicitação de compras pelo campo C1_CC, pegando o código do usuário que está no campo customizado CTT_X_USER.

ATENÇÃO: Verificar parâmetro MV_X001013, que define qual entidade será utilizada para a Solicitação de Compras e para o Pedido de Compras.

OBS: estas regras devem ser definidas e customizadas durante a implantação em cada cliente, pois é necessário criar o campo customizado e a regra de relacionamento conforme a tabela que será utilizada.

EXPRESSÃO: opcionalmente, se necessário informe uma expressão ADVPL para determinar se a regra será executada ou não com base no documento em questão, a qual necessariamente deverá retornar: .T. ou .F. Pode ser utilizada uma função de usuário para efetuar um processamento sobre o documento e retornar a expressão. Exemplo: no caso de pedido de compra, o pacote de alçadas contém uma variável pública “X001SC7TOT” que representa o valor total do pedido de compra. Com base nesta variável é possível definir faixas de valores para determinar as alçadas de aprovação:

Seq Nível Usuário Expressão
01 01 Aprovador 01 X001SC7TOT> 0
02 02 Aprovador 02 X001SC7TOT> 5000 .AND. X001SC7TOT<= 50000
03 03 Aprovador 03 X001SC7TOT> 50000 .AND. X001SC7TOT<= 100000
04 04 Aprovador 04 X001SC7TOT> 50000 .AND. X001SC7TOT<= 100000

OBS: as regras 03 e 04 possuem a mesma expressão pois tem dois usuários no mesmo nível.

PROC. WF: informe o nome do programa de workflow de liberação que será utilizado para o controle de alçadas enviar um e-mail contendo o link de aprovação do documento, para o usuário aprovador conforme as regras.

ALIAS:informe o Alias da tabela principal do documento em alçadas, para uso pelo programa de envio do workflow de liberação.

OBSERVAÇÕES: informe algum texto de observação para a regra em questão, opcional.

Exemplo de Regra para Solicitação de Compras

Por Entidade:

Por usuário:

Exemplo de Regra para Pedido de Compras

Transferência de aprovador

Nesta opção é possível efetuar a transferência de documentos que estão pendentes para aprovação de determinado usuário aprovador, e passar para outro usuário. Motivo pode ser uma ausência não prevista do aprovador, por exemplo saúde, sendo que o documento precisa ser liberado.

Será apresentada a seguinte tela:

APROVADOR AUSENTE: informe o código do usuário que se ausentou. Após informar, serão exibidos no Grid os documentos que estão pendentes para o aprovador.

NOVO APROVADOR: informe o código do usuário que será o novo aprovador dos documentos.

Selecione os documentos que deseja transferir e confirme a operação no botão “Transferir”

2.4. AUSÊNCIA TEMPORÁRIA

Estecadastro tem por objetivo definir um usuário aprovador substituto, de forma temporária, no caso do aprovador principal ter um período ausente, por exemplo, férias.

Toda vez que um documento é avaliado pelas regras do controle de alçadas, o sistema consultará se o aprovador definido pela regra tem um período de ausência temporária cadastrado, com base na data do documento. Em caso afirmativo, será utilizado o aprovador substituto para liberação do documento.

APROVADOR: informe o usuário aprovador que estará ausente.

DATA SAÍDA: informe a data de saída do usuário aprovador. Tem que ser uma data futura, maior que a data atual do sistema.

DATA RETORNO: informe a data de retorno do usuário aprovador. Tem que ser uma data maior ou igual a data de saída.

SUBSTITUTO: informe o usuário aprovador que será o substituto do aprovador ausente.

2.5. VERBAS APROVADORES

Estecadastro tem por objetivo definir a verba disponível para aprovadores específicos e definir seus superiores no caso de transferência.

APROVADOR: informe o usuário aprovador que terá a verba a ser cadastrada.

PROCESSO: informe o nome da rotina onde será feito o controle de verba:

Rotina Descrição
MATA110 SOLICITACAO DE COMPRA
MATA120 PEDIDO DE COMPRA

TIPO LIMITE: informe o tipo de período limite da verba.

SUPERIOR: informe o código do superior para efeito de transferência.

VALOR VERBA: informe o valor da verba.

GRUPO VERBA: informe o código do grupo de verba. Este código será comparado com o valor trazido pelo próximo campo para fins de validação.

EXP. GRUPO: informe uma expressão ADVPL que irá trazer o código do grupo de verba.

Na imagem exemplo, o campo Grupo Verba foi preenchido com o código de um produto especifico, ou seja, esta verba será para somente este produto.

O campo Exp. Grupo então precisa trazer o campo Código do Produto do cadastro de pedidos, que por sua vez trará o código que está dentro de Grupo Verba somente quando o produto for aquele especifico.

3. APROVAÇÕES (LIBERAÇÃO/REJEIÇÃO DE DOCUMENTOS)

Esta rotina tem por objetivo permitir a liberação ou rejeição de documento de forma manual, ou seja, via sistema e não Workflow.
Serão exibidos somente os registros/documentos que estão direcionados para o usuário logado no sistema, ou seja, o aprovador.
Na entrada da rotina é apresentada tela para selecionar o filtro de exibição dos documentos em alçadas conforme o Status:

Será apresentado na tela um Browse com os documentos em controle de alçadas e o respetivo Status conforme legenda:

3.1. Liberar

Será apresentada tela para aprovação do documento/registro posicionado, desde que esteja pendente aguardando liberação:

Dentro desta tela é possível acionar as seguintes opções:

  • Visualizar Documento: mostra tela de visualização do documento conforme a sua rotina de origem, ou seja, se for uma solicitação de compras abrirá a visualização da solicitação de compras;
  • Aprovar Documento: confirma a liberação do documento em alçadas
  • Reprovar Documento: rejeita a liberação do documento em alçadas.
  • Cancelar: fecha a tela.

3.2. Cons. Aprov.

Será apresentada tela para consulta do Status dos movimentos de aprovação/rejeição do documento posicionado:

3.3. Visualiza Doc.

Será apresentada a tela de visualização do documento conforme a sua rotina de origem, ou seja, se for uma solicitação de compras abrirá a tela de visualização da rotina solicitação de compras;

4. PROCESSOS INTEGRADOS COM AS ALÇADAS - COMPRAS

4.1. SOLICITAÇÃO DE COMPRAS(MATA110)

Rotina padrão do módulo de Compras a qual foi integrada com o processo de controle de alçadas. Para ativar/desativar a integração verifique o parâmetro: MV_X001002

Operações:

  • Inclusão: Serão avaliadas as regras das alçadas cadastradas para o processo MATA110 e executado o bloqueio do documento (SC) conforme as regras definidas.
  • Alteração: Toda vez que efetuar a alteração de um documento em alçadas, as regras serão avaliadas novamente e será gerado um novo registro no processo de alçadas (inclusão) e o registro anterior será excluído.
  • Cópia: Idem a inclusão.
  • Exclusão: Serão excluídos os movimentos vinculados das alçadas, se houver.
  • Cons. Alçadas: Será apresentada tela para consulta do Status dos movimentos de aprovação/rejeição do documento;

4.2. Gera Cotações (MATA130)

Rotina padrão do módulo de Compras a qual foi integrada com o processo de controle de alçadas. Para ativar/desativar a integração verifique o parâmetro: MV_X001002

Serão exibidas somente as solicitações de compra que estão liberadas (aprovadas) pelo controle de alçadas.

4.3. Analisa Cotações (MATA160)

Rotina padrão do módulo de Compras a qual foi integrada com o processo de controle de alçadas. Para ativar/desativar a integração verifique o parâmetro: MV_X001003

Os pedidos de compra gerados pela rotina serão avaliados e bloqueados conforme o processo de aladas.

4.4. Pedido de Compras (MATA120)

Rotina padrão do módulo de Compras a qual foi integrada com o processo de controle de alçadas. Para ativar/desativar a integração verifique o parâmetro: MV_X001003

Legenda:

Operações:

  • Inclusão: Serão avaliadas as regras das alçadas cadastradas para o processo MATA120 e executado o bloqueio do documento (PC) conforme as regras definidas.
  • Alteração: Toda vez que efetuar a alteração de um documento em alçadas, as regras serão avaliadas novamente e será gerado um novo registro no processo de alçadas (inclusão) e o registro anterior será excluído.
  • Cópia: Idem a inclusão.
  • Exclusão: Serão excluídos os movimentos vinculados das alçadas, se houver.
  • Cons. Alçadas: Será apresentada tela para consulta do Status dos movimentos de aprovação/rejeição do documento;

Caso utilize as opções de Solicitação (F4) ou Solicitação por item (F5) para buscar as Solicitações de Compras para o pedido, serão exibidas somente as solicitações de compra que estão liberadas (aprovadas) pelo controle de alçadas.

4.5. Documento de Entrada (MATA103)

Rotina padrão do módulo de Compras a qual foi integrada com o processo de controle de alçadas. Para ativar/desativar a integração verifique o parâmetro: MV_X001003

Caso utilize as opções de Pedido (F5) ou Pedido por item (F6) para buscar os Pedidos de Compras para a nota, serão exibidos somente os pedidos que estão liberados (aprovados) pelo controle de alçadas.

Após a inclusão da Nota Fiscal de Entrada relacionada relacionada a Pedidos de Compra que foram aprovados pelo controle de alçadas, e se existe controle de liberação de títulos para a carteira de Contas a Pagar (MV_CTLIPAG), será possível efetuar a liberação automática do título, através da configuração dos parâmetros MV_X001011 e MV_X001012.