Identificador de Regra
VEN-120CNFEC01
Módulo: VEN - Vendas.
Finalidade: Permitir ou não o fechamento de um pedido. Executado antes do fechamento, porém depois das consistência do fechamento, disponibilizando todas os campos da tabela E120PED para consistência do usuário via regra. É disponibilizada uma variável para retornar se o processo (fechamento) deve ou não continuar. A regra não devolve nenhum valor através das variáveis para o pedido (exceto o indicativo de bloqueio). No momento de execução da regra, os valores dos campos do pedido ainda não foram modificados pelo processo de fechamento.
Importante
Ao ser executado por meio da tela F120GPD, o IR será chamado antes das consistência do fechamento. Além disso, o campo VSSitPed será igual a 9, pois as alterações na tabela de pedido ainda não foram feitas. Para as demais telas, o VSSitPed será igual a 1.
As variáveis são montadas conforme a seguinte regra: prefixo VS + nome do campo da tabela E120PED. Isso não se aplica ao campo NumPed, que é convertido em número. Para ter acesso ao número do pedido, utilize a variável VSNumero.
O tipo para a regra é com base no tipo do campo na tabela:
- NUMERO para os tipos SBYTE, SWORD, SLONGINT, SDOUBLE, SEXTENDED, SDATE e STIME;
- ALFA para os tipos SCHAR E STRING.
O campo NUMPED (número do pedido) da tabela E120PED é disponibilizado como VSNUMERO (tipo NUMERO), sendo uma exceção à regra descrita antes.
Transação: Não se aplica.
Regra:
*/
Definir Numero nCodEmp;
Definir Numero nCodFil;
Definir Numero nNumPed;
Definir Numero nMotCom;
Definir Numero nMotFin;
Definir Numero nBloCom;
Definir Numero nBloFin;
Definir Alfa aObsCom;
Definir Alfa aObsFin;
Definir Alfa aAreCom;
Definir Alfa aAreFin;
Definir Alfa aBloCom;
Definir Alfa aBloFin;
Definir Alfa aSitCom;
Definir Alfa aSitFin;
Definir Alfa VSOriBlo;
Definir Alfa VSOrigem;
Definir Alfa VSBloque;
@ *** BLOQUEIO COMERCIAL *** @
nBloCom = 1;
nCodEmp = VsCodEmp; @ buscando o código da empresa do pedido @
nCodFil = VsCodFil; @ buscando o código da filial do pedido @
nNumPed = VsNumero; @ buscando o número do pedido @
aObsCom = "*** BLOQUEIO COMERCIAL ***"; @ texto que irá aparecer na observação que será gerada @
nMotCom = 104; @ código do motivo para vincular à observação @
aAreCom = "VEN"; @ área da observação que será gerada @
aBloCom = "S"; @ S para bloquear a área do pedido ou N para liberar a área do pedido @
aSitCom = "R"; @ indica que a observação está resolvida @
@ *** BLOQUEIO FINANCEIRO *** @
nBloFin = 1;
nCodEmp = VsCodEmp; @ buscando o código da empresa do pedido @
nCodFil = VsCodFil; @ buscando o código da filial do pedido @
nNumPed = VsNumero; @ buscando o número do pedido @
aObsFin = "*** BLOQUEIO FINANCEIRO ***";
nMotFin = 107; @ código do motivo que se deseja vincular com a observação @
aAreFin = "FIN";
aBloFin = "N"; @ "S" para bloquear a área do pedido ou "N" liberar a área do pedido @
aSitFin = "R"; @ indica que a observação está resolvida @
@se o origem da chamada do identificador VEN-000CRECL01 for igual a PED (pedido) e o momento da chamada for Fechamento, então as observações podem ser gravadas @
Se((VSOrigem = "PED") e (VsOriBlo = "Fechamento"))
{
/*
Antes de gerar as observações, sugerimos consistir as regras de negócio
As observações podem montadas com base nas regras do cliente
*/
GeraObsBloPed(nCodEmp, nCodFil, nNumPed, aObsCom, nMotCom, aAreCom, aBloCom, aSitCom);
GeraObsBloPed(nCodEmp, nCodFil, nNumPed, aObsFin, nMotFin, aAreFin, aBloFin, aSitFin);
}
@ como o bloqueio será feito por meio das observações do pedido então não é necessário alterar esse campo @
VSBloque = "N";
Variáveis disponibilizadas:
Nome | Tipo | Observações | Retorna Valor |
---|---|---|---|
VSESTADO | ALFA | Informa do estado do pedido (assumirá sempre o valor "FECHANDO") | N |
VSORIGEM | ALFA | Origem será sempre PED (Pedido) | N |
VSTelaOrigem | ALFA | Representar uma tela em específico ou o processo do sistema responsável pela execução da rotina de pedido | N |
VSBLOITE | NÚMERO | Indica (se diferente de zero) que deverá bloquear o processo de fechamento do pedido | S |
VSNumero | NÚMERO | Indica o número do pedido | S |
Atenção
Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.
Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.