Identificador de Regra

VEN-135PRANE01

Módulo: VEN - Vendas.

Finalidade: Disponibilizar um ponto de regra após o processamento e gravação do banco de uma pré-fatura.

Características: O identificador executa antes do fechamento nas telas F135FCP e F135FCR.

É possível indicar o cancelamento de saldo dos itens de pedidos pré-faturados nos identificadores VEN-135CASLD01 e VEN-135CASLD03.

Tela: F135FCP e F135FCR.

Transação: Não se aplica.

Regra:

Caso de uso:
No caso de uso abaixo, esse identificador pode ser utilizado para cancelar os itens de pedido que não foram faturados pela pré-fatura (situação diferente de 8).
Na regra abaixo é feito um select que encontra esses itens, que serão cancelados por meio do web service de pedido.

Definir Numero VenNCodEmp;
Definir Numero VenNCodFil;
Definir Numero VenNNumAne;

Definir Alfa sMsg;
Definir Alfa sErro;
Definir Alfa xCursor;
Definir Alfa xSql;
Definir Alfa VenAOrigem;
Definir Funcao fChamarWS();

Sql_Criar(xCursor);
xSql = "SELECT NumPed, SeqIpd FROM e120ipd WHERE " +
"EXISTS (SELECT 1 FROM e135pes WHERE e135pes.codemp = e120ipd.codemp " +
" AND e135pes.filped = e120ipd.codfil " +
" AND e135pes.numped = e120ipd.numped " +
" AND e135pes.codemp = :VenNCodEmp " +
" AND e135pes.codfil = :VenNCodFil " +
" AND e135pes.numane = :VenNNumAne) " +
" AND sitipd <> 8 ";

Sql_DefinirComando(xCursor, xSql);
Sql_DefinirInteiro(xCursor, "VenNCodEmp", VenNCodEmp);
Sql_DefinirInteiro(xCursor, "VenNCodFil", VenNCodFil);
Sql_DefinirFlutuante(xCursor, "VenNNumAne", VenNNumAne);

Sql_AbrirCursor(xCursor);

Se (Sql_Eof(xCursor) = 0)
Definir interno.com.senior.g5.co.mcm.ven.pedidos.GravarPedidos_15 WSGraPed;

Enquanto (Sql_Eof(xCursor) = 0)

{ Sql_RetornarInteiro(xCursor, "NumPed", nNumPed); Sql_RetornarInteiro(xCursor, "SeqIpd", nSeqIpd); fChamarWS(); Sql_Proximo(xCursor); }
Sql_FecharCursor(xCursor);
Sql_Destruir(xCursor);

Funcao fChamarWS();

{ @Dados Gerais@ WSGraPed.Pedido.OpeExe = "C"; WSGraPed.Pedido.CodEmp = 1; WSGraPed.Pedido.CodFil = 1; WSGraPed.Pedido.NumPed = nNumPed; WSGraPed.Pedido.CodCli = 1; @Itens Produto@ WSGraPed.Pedido.Produto.OpeExe = "A"; WSGraPed.Pedido.Produto.SeqIpd = nSeqIpd; WSGraPed.Pedido.Produto.SitIpd = 5; WSGraPed.ModoExecucao = 1; WSGraPed.Executar(); sMsg = WSGraPed.MensagemRetorno; sErro = WSGraPed.respostaPedido.Retorno; sMsg = sMsg + " * " + sErro; Mensagem(Retorna, sMsg); }

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
VenNCodEmp NÚMERO Código da empresa N
VenNCodFil NÚMERO Código da filial N
VenNNumAne NÚMERO Número da carga N
VenAOrigem ALFA Tela de origem N

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ê?