Identificador de Regra
VEN-120CNFEC01
Módulo: VEN - Vendas.
Finalidade: Permitir ou não o fechamento de um pedido.
Na tela F120FAP – Fechamento de Pedidos, o identificador de regra é executado antes do fechamento, porém após as consistências de fechamento, disponibilizando todos os campos da tabela E120PED para validação pelo usuário via regra. É disponibilizada uma variável para indicar se o processo de fechamento deve ou não continuar.
A regra não devolve nenhum valor para os campos do pedido (exceto o indicativo de bloqueio) e, no momento da execução, os valores ainda não foram alterados pelo processo de fechamento.
Já na tela F120GPD – Gerenciamento de Pedidos, o mesmo identificador possui um comportamento específico: sua execução ocorre em etapa anterior, com as consistências de fechamento ainda não realizadas, o que impacta o valor do campo de situação do pedido (VSSitPed).
Importante
Quando o identificador é executado pela tela F120GPD, ele é chamado antes das consistências de fechamento. Nessa situação, o campo VSSitPed assume o valor 9, pois as alterações na tabela de pedidos ainda não foram gravadas.
Nas demais telas em que o identificador é utilizado, o campo VSSitPed permanece com valor 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.
English
Español
English
Español


