Identificador de Regra

VEN-120CONIS01

Módulo: VEN - Vendas.

Finalidade: Tem o mesmo intuito do identificador VEN-000CONIT01, que é o de consistir os dados dos itens do pedido no momento de gravação. Porém, o identificador VEN-000CONIT01 tem um propósito mais genérico e é usando tanto para produtos e serviços no pedido, nas notas fiscais de saída e pré-faturas, sendo identificadas as origens de chamadas por determinadas variáveis. O novo identificador tem o propósito específico de tratar apenas os itens de serviço do pedido, e pode ser associado a transações. As características desse novo identificador são:

- Disponibiliza todos os campos da tabela de item de serviço (E120ISP) e da tabela do pedido (E120PED). Não são utilizados nomes de variáveis predefinidas para acesso aos valores de cada campo das tabelas sendo tratadas. Os campos dos registros associados ao identificador estão disponíveis no formato "Nome da tabela" + "." + "Nome do Campo". Essa nova forma de passagem de valores para as regras garante mais velocidade na carga das regras, pois não é necessário que o sistema atribua valores a todas as variáveis predefinidas, já que os valores dos campos são transferidos para as regras no momento em que são referenciados (usados) na regra.

- Acesso a campos de usuário dos campos das tabelas disponibilizadas. Essa opção atualmente só está disponível para a rotina do ComercialVendasPedidosAgrupados e Individual. As demais rotinas de pedidos (Web, SID, rotinas automáticas internas e algumas telas) não retornam valores para campos de usuário referenciados nas regras, embora não ocorram erros se referenciados. Na rotina de pedidos agrupados, é possível inclusive atribuir valores aos campos de usuário da tabela de itens de serviço, sendo os mesmos gravados automaticamente. O valor atribuído aos campos via regra e sua consistência são de responsabilidade do autor da lógica da regra. O sistema não irá consistir os valores desses campos.

- O identificador continua sendo executado na gravação dos itens de serviço do pedido e disponibiliza os valores dos campos dos dados gerais do pedido. Como citado, esses valores são acessados no mesmo formato "Tabela" + "." + "Nome do campo". A tabela dos dados gerais, no caso do pedido é a E120PED.

OBSERVAÇÕES IMPORTANTES: é possível na regra atribuir valores a campos de sistema também, porém esse valor é descartado 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 atribuição de valores a campos de usuário só são considerados quando são campos da tabela de itens de serviço. Valores atribuídos a campos de usuário da tabela de dados gerais do pedido são descartados.

Características: As demais 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, assume o valor "ALTERANDO", e se estiver sendo incluído (item novo), assume o valor "INSERINDO".

- VSBloIte: variável numérica que retorna indicando ao sistema se o processo de gravação do item de serviço 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 e irá exibir 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 será assumido 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 à 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, assumindo o valor "SIM" quando algum campo do item do pedido foi alterado e "NAO" quando este item está inalterado.

Tela: Pedidos, itens de serviços

Transação: Não se aplica.

Regra:

Um exemplo de acessos às tabelas e campos na tabela são assim demonstrados:

Utilizar o código do cliente dos dados gerais do pedido:

VSCodigoCliente = E120PED.CODCLI;

Um exemplo para acessar o código de serviço do item de serviço do pedido seria

VSCodigoServico = E120ISP.CODSER;

Para acessar um campo de usuário qualquer das tabelas do item do pedido (no caso, somente na tela de Pedidos Agrupados será retornado valor):

VSCampoUsuario = E120ISP.USU_TESTE;

Para atribuir um valor ao um campo de usuário, a sintaxe poderia ser (no caso, somente na tela de Pedidos Agrupados será considerado o valor atribuído):

E120ISP.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 serviço 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.

Este artigo ajudou você?