Identificador de Regra
VEN-120PREIP02
Módulo: VEN - Vendas.
Finalidade: valida os dados dos itens do pedido antes do item ser gravado no pedido. Segue o modelo dos identificadores VEN-120CONIP01 e VEN-120CONIP02, com a diferença de ser executado antes do item ser gravado (tanto em uma inclusão quanto em uma alteração).
Importante
Quando o pedido é gerado a partir de um web service, o sistema não executa os identificadores de regra VEN-120PREIP02 e VEN-120ALPRE04. Nesse caso, utilize os identificadores CPR-000CONIT01, VEN-120CONIP01, VEN-120CONDG01 ou VEN120CONDG03.
Os diferenciais entre eles seguem descritos abaixo:
Funcionalidade | VEN-120CONIP01 | VEN-120CONIP02 | VEN-120PREIP02 |
Disponibiliza dados do item já calculado | Não | Sim | Sim |
Disponibiliza campos de usuário para consulta | Sim | Sim | Sim |
Disponibiliza campos de usuário para alteração | Sim | Sim* | Sim |
*O identificador de regras VEN-120CONIP02 disponibiliza campos de usuário para alteração, porém como o identificador é executado após a gravação ele não é recomendado para essa finalidade.
Observação
É possível atribuir na regra valores a campos de sistema, porém esses valores são descartados quando a regra é finalizada. Isso devido ao fato de que o retorno de valores via campos de sistema necessita de tratamentos e consistências, e alguns campos são de controle interno e não podem ser alterados. Outro detalhe é que a leitura e manipulação de valores a campos de usuário só é possível com campos da tabela de itens de produto. Valores atribuídos a campos de usuário da tabela de dados gerais do pedido são descartados.
Características: as características abaixo fornecem valores de variáveis que não são campos de tabelas e são inerentes ao processo que está sendo executado, que é a gravação dos itens de produto do pedido:
- VSEstado: alfanumérica, indica o estado em que o registro do item do pedido se encontra no momento de gravação: se estiver sendo editado, recebe o valor ALTERANDO, e se estiver sendo incluído (item novo), recebe o valor INSERINDO;
- VSBloIte: variável numérica que retorna o indicativo se o processo de gravação do item de produto deve ou não continuar. O valor padrão é 0 (zero). Se um valor diferente de zero for retornado, o sistema cancela o processo de gravação e exibe uma mensagem de erro indicando que o processo foi cancelado. Podem ser utilizados de outros recursos nas regras com mensagens mais claras ao usuário, como a função de programador Mensagem ou GeraLog para cancelar o processo;
- VSInteracao: variável alfanumérica, indica qual o tipo de interação com o usuário está ocorrendo na execução da rotina de pedidos. Os valores assumidos para esta variável são os seguintes, conforme a forma como a rotina de pedidos está sendo executada:
- AUTOMATICO: valor atribuído em rotinas onde o pedido é atualizado sem ter interação direta do usuário com o pedido: a importação, ERP SID, rotinas de duplicação ou atualização de pedidos por outras rotinas. Com essa variável é possível saber se não é um processo interativo com o usuário e, por exemplo, não há necessidade de exibir mensagens, telas de entrada de valor, efetuar questionamentos ou bloquear um processo. Exemplos de rotinas internas onde o usuário não interage diretamente com o pedido são: o faturamento (que recalcula o pedido), o cancelamento de OPs na produção que podem cancelar os itens de pedido ou atualizar seu indicativo de produção, o cancelamento de um pedido que está ligado a outro pedido (pedido gerado via pedido base), o ERP SID e WEB, e a importação;
- INTERATIVO: valor assumido em rotinas onde o pedido é editado e existe interação entre o usuário e o pedido. Essas rotinas são as telas de edição de pedidos do sistema. Pode ocorrer, em algumas situações, que há a necessidade de automação mesmo em telas, e nesses casos recebe o valor AUTOMATICO. Exemplos dessa situação são a rotina de duplicação de pedidos, quando se utiliza o botão Mostrar, ou a explosão de itens em Grade na tela de Grade de Produto.
- VSModificado: variável alfanumérica, que indica se o item de pedido foi efetivamente modificado antes de ser passado a regra. Em algumas rotinas, o item pode não ter sido alterado mas é necessário alguma consistência interna na gravação. Essa variável indica essa situação e recebe o valor SIM quando algum campo do item do pedido foi alterado e NAO quando este item está inalterado.
Tela: F120GPD.
Transação: pode estar ligado a uma transação de produto.
Regra:
- acesso às tabelas e campos: utilizar o código do cliente dos dados gerais do pedido: VSCodigoCliente = E120PED.CODCLI;
- acesso ao código de produto do item de produto pedido: VSCodigoProduto = E120IPD.CODPRO;
- acesso a um campo de usuário das tabelas do item do pedido (no caso, somente na tela de Pedidos Agrupados será retornado valor): VSCampoUsuario = E120IPD.USU_TESTE;
- atribuir um valor a um campo de usuário (no caso, somente na tela de Pedidos Agrupados o valor atribuído será considerado): E120IPD.USU_TESTE = "TESTE";
Variáveis disponibilizadas:
Nome | Tipo | Observações | Retorna Valor |
---|---|---|---|
VsEstado | ALFA | Estado em que o registro do item do pedido se encontra no momento de gravação (INSERINDO OU ALTERANDO) | N |
VSInteracao | ALFA | Indica o tipo de interação com o usuário na execução da rotina de pedidos. Assume os valores "AUTOMATICO" (sem interação) ou "INTERATIVO" (com interação) | N |
VSModificado | ALFA | Indica se o item de pedido foi efetivamente modificado antes de ser passado à regra. | N |
VSTelaOrigem | ALFA | Representa uma tela em específico ou o processo do sistema responsável pela execução da rotina de pedido | N |
VsBloIte | NÚMERO | Retorna indicando ao sistema se o processo de gravação do item de produto deve ou não continuar. O valor padrão da mesma é 0 (zero). Se um valor diferente de zero for retornado, o sistema irá cancelar o processo de gravação | 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.