Identificador de Regra

GER-085CADCL01

Módulo: GER - Gerais.

Finalidade: Disponibiliza os campos da tabela de clientes (E085CLI) para que sejam controlados pelo usuário estabelecendo a obrigatoriedade via regra.

Características: Todos os campos da tabela "E085CLI", inclusive os de usuário, são passados automaticamente para as regras por meio deste identificador. Os campos são acessados como variáveis pelo de nome "VS + ", sendo os campos numéricos e de hora acessados na regra como tipo "NUMERO", os de data como tipo "DATA" e os caracteres ou alfanuméricos como tipo "ALFA".
Ainda é disponibilizada a variável "VSEstado" que pode conter os valores: "ALTERANDO" ou "INSERINDO".
Nenhum dos campos retorna valor.

Este identificador é chamado também na importação de dados para a tabela "E085CLI" e pela ação SID.Cli.Gravar.

Os campos tiveram seus nomes trocados porque foi trocado também o tipo dos campos
VSNumEnd -> VSNenCli
VSNumEnt -> VSNenEnt
VSNumCob -> VSNenCob

Existe uma variável especial de nome "GerACliFor" para identificar o campo "CliFor" (Cliente ou Fornecedor - Indicativo se o registro representa um cliente ou um fornecedor ou ambos). Isso foi feito para evitar que a variável padrão "VSCliFor" deste identificador, que é declarada como Alfa, conflite com a variável "VSCliFor" do identificador "COM-000AISOU01", que identifica ou o código do cliente ou o código do fornecedor dependendo do ponto do sistema onde é invocado. A variável "VSCliFor" não deixa de existir e pode ser usada. Porém, quando essa variável entrar em conflito quando utilizado o identificador "COM-000AISOU01" é usado juntamente com este identificador, a mesma não deve ser declarada e sim utilizada então a variável "GerACliFor".

Tela: F085CAD

Transação: Não se aplica.

Regra:

@ INICIO Exemplo 1 @

Definir Numero VSCodCli;
Definir Numero VSCgcCpf;
Definir Alfa VSNomCli;
Definir Alfa VSUsu_CampoAlfa;
Definir Numero VSUsu_CampoNum;
Definir Data VSUsu_CampoData;
Definir Numero VSUsu_CampoHora;
Definir Alfa ENTER;
CaracterParaAlfa(10, ENTER);
Definir alfa auxAlf;
Definir alfa msgStr;
msgStr = "";
@ Mostrar o valor dos campos chave @
msgStr = msgStr + "Campos chave:" + ENTER;
IntParaAlfa(VSCodCli, auxAlf);
msgStr = msgStr + "- CodCli: " + auxAlf + "." + ENTER;
IntParaAlfa(VSCodEmp, auxAlf);
@ Mostrar campos de sistema @
msgStr = msgStr + "Campos de sistema:" + ENTER;
IntParaAlfa(VSCgcCpf, auxAlf);
msgStr = msgStr + "- CgcCpf: " + auxAlf + "." + ENTER;
auxAlf = VSNomCli;
msgStr = msgStr + "- NomCli: " + auxAlf + "." + ENTER;
@ Mostrar campos de usuário (supondo que eles existam no TBS) @
msgStr = msgStr + "Campos de usuário:" + ENTER;
auxAlf = VSUsu_CampoAlfa;
msgStr = msgStr + "- CampoAlfa: " + auxAlf + "." + ENTER;
IntParaAlfa(VSUsu_CampoNum, auxAlf);
msgStr = msgStr + "- CampoNum: " + auxAlf + "." + ENTER;
ConverteMascara(3, VSUsu_CampoData, auxAlf, "dd/mm/yyyy");
msgStr = msgStr + "- CampoData: " + auxAlf + "." + ENTER;
ConverteMascara(4, VSUsu_CampoHora, auxAlf, "hh:mm");
msgStr = msgStr + "- CampoHora: " + auxAlf + "." + ENTER;
Mensagem(retorna, msgStr);

@ FIM Exemplo 1 @

@ INICIO Exemplo 2 @
@-------------------------------------------------------@
@ Recomendado para que utiliza integração ERP Varejo @
@-------------------------------------------------------@
@ Declaração de Variáveis @
DEFINIR NUMERO VSCgcCpf;
DEFINIR NUMERO VSCodFor;DEFINIR NUMERO VSCliTra;
DEFINIR ALFA VSESTADO;
DEFINIR NUMERO xServicoWeb;
DEFINIR ALFA xSql;
DEFINIR ALFA xStr;
DEFINIR ALFA xMsgErro;
DEFINIR NUMERO xRetorno;

@Testa se a chamada é um serviço ou de ambiente Web @
@ Valor 1(um) é uma instância de serviço ou web.@
@ Valor 0 (Zero) é uma aplicação normal. @
se(WSInstanciaServico())
xServicoWeb =1;
senao
se (AmbWeb = 1)
xServicoWeb = 1;
senao
xServicoWeb =0;

@ Somente executo se for originado da tela @
se (xServicoWeb = 0)
Inicio

@ INICIO Consiste CGCCPF da transportadora associada ao cliente @
se ((VSCliTra <> 0 )e(VSESTADO = "ALTERANDO"))
inicio
xStr = "SELECT CODTRA FROM E073TRA WHERE CODTRA =:CODTRA AND CGCCPF =:CGCCPF";
SQL_Criar(xSQL);
SQL_DefinirComando(xSQL, xStr);
SQL_DefinirInteiro(xSQL, "CODTRA", VSCliTra);
SQL_DefinirFlutuante(xSQL, "CGCCPF", VSCgcCpf);
SQL_AbrirCursor(xSQL);
se (SQL_Eof(xSQL) = 1)
{ xMsgErro = "O CNPJ/CPF do cliente e da transportadora associada a este cliente deverão ser iguais. "+
"Verifique em: 'Cadastros > Mercado e Suprimentos > Transportadoras > Cadastro (F073TRA)'";
Mensagem(Erro,xMsgErro);}
SQL_FecharCursor(xSQL);
SQL_Destruir(xSQL);
fim;

@ INICIO Consiste CGCCPF do fornecedor associado ao cliente @
se ((VSCodFor <> 0) e (VSESTADO = "ALTERANDO"))
inicio
xStr = "SELECT CODFOR FROM E095FOR WHERE CODFOR =:CODFOR AND CGCCPF =:CGCCPF";
SQL_Criar(xSQL);
SQL_DefinirComando(xSQL, xStr);
SQL_DefinirInteiro(xSQL, "CODFOR", VSCodFor);
SQL_DefinirFlutuante(xSQL, "CGCCPF", VSCgcCpf);
SQL_AbrirCursor(xSQL);
se (SQL_Eof(xSQL) = 1)
{xMsgErro = "O CNPJ/CPF do cliente e do fornecedor associado a este cliente deverão ser iguais. "+
"Verifique em: 'Cadastros > Clientes e Fornecedores > Fornecedores > Cadastro (F095CAD)'";
Mensagem(Erro,xMsgErro);}
SQL_FecharCursor(xSQL);
SQL_Destruir(xSQL);
fim;

se (VSCgcCpf = 0)
{Mensagem(Erro,"O campo CNPJ/CPF dever ser preenchido.");}
fim;

@ FIM Exemplo 2 @

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
VSCODCLI NÚMERO Código do cliente (chave do registro) N
VSESTADO ALFA Indica a operação sendo realizada: "ALTERANDO" ou "INSERINDO". N
VSORIGEM ALFA Indica a rotina de origem ("DLLFOR" = Rubi) ("WSCFOR" = Web Service) ("CADCLI", "HISCLI" = Sapiens) N
GERACLIFOR ALFA Representa o campo CliFor (Cliente ou Fornecedor - Indicativo se o registro representa um cliente ou um fornecedor ou ambos) quando não puder ser utilizada a variável padrão VSCliFor. Disponível a partir da versão 5.5.2.4 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ê?