Páginas filhas
  • DICAS Cadastro de instruções SQL consulta X anonimização de dados

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagedelphi
themeEmacs
{SELECT} FROM [<tabela1, tabela2, ..., tabelaN>] WHERE tabela1.codigo = tabela2.codigo AND tabela2.coluna = {<IDENTFICADOR>}

(ideia) Exemplo Exemplos:

Informações
iconfalse

TABELA: usuarios                VÍNCULO DO TITULAR: Usuário do Sistema



Exemplo 1:    {SELECT} FROM usuario WHERE usuarios.e-mail = {E-MAIL}


Exemplo 2:    {SELECT} FROM log_usuarios_compl WHERE cpf_login = {CPF:formatOnlyNumeric}


...

  • Deve sempre iniciar com a TAG {SELECT} pois durante a execução das buscas de dados, o sistema irá automaticamente identificar a lista de colunas que será selecionada de acordo com o Vínculo de Titular que estiver sendo feita a busca de dados. Portanto, nunca preencha nomes de colunas antes ou depois da TAG {SELECT}.
  • Respeitar o nome do IDENTIFICADOR exatamente da forma como está descrito na lista padrão de todos identificadores disponíveis.
  • Todo IDENTIFICADOR deve obrigatoriamente estar escrito SEMPRE em caixa ALTA, entre chaves { } , sem espaços e SEM ESPAÇOS em branco no início e final. Exemplos:  {CPF} {RG} {CNH}
  • NUNCA usar ASPAS DUPLAS. Neste caso SEMPRE utilize ASPAS SIMPLES para delimitar algum conteúdo do tipo alfanumérico.
  • Tente seguir as regras de caixa ALTA e baixa, para manter uma visualização mais hamônica das instruções. Isso trará um efeito visual muito mais bonito quando for realizar a consulta em tela destas instruções. (sorriso)
  • Observe que de ambos IDENTIFICADORES repreesentados em AZUL nos exemplos acima, um deles está escrito diferente que é {CPF:formatOnlyNumeric}. O motivo deste conteúdo diferenciado após o IDENTIFICADOR CPF é que os identificadores sempre chegam nas queries

...

  • em um formato padrão, ou seja, no caso do CPF, por exemplo, o valor sempre chegará com o conteúdo de um número de CPF contendo os caracteres de máscara onde existem pontos e hífen. No entanto, caso a informação deste IDENTIFICADOR precise ser formatado para garantir a correta pesquisa do dado com o qual foi comparado na QUERY, basta informar o nome de uma função 4GL disponível no RPO do produto Logix que irá realizar a formatação ou até transformar este valor em outro valor que seja necessário para a consulta e que não seja possível buscá-la utilizando instrução SQL. Com isso o formato de um IDENTIFICADOR na query passa a ter 2 formatos possíveis sendo:

{IDENTIFICADOR}     ou    {IDENTIFICADOR:função4GL}

Onde:

      • O identificador continua escrito em caixa ALTA e delimitado por { } (chaves)
      • Após o nome do IDENTIFICADOR é possível informar o nome de uma função 4GL disponível no RPO do produto Logix que obrigatoriamente deve receber um parâmetro único que será o valor do IDENTIFICADOR que é recebido no ato do processamento da consulta no sistema e deverá também ter um único retorno obrigatório que fará com que o valor do IDENTIFICADOR seja substituído pelo valor retornado pela função durante o processamento da consulta.

(aviso) Caso a função seja inválida, ocorrerá falha na execução da consulta desta respectiva QUERY e o sistema irá registrar em LOG de processamento todas situações de falhas ocorridas. (aviso)



CONDIÇÃO DE ANONIMIZAÇÃO DE DADOS

...

Bloco de código
languagedelphi
themeEmacs
AND tabela1.dat_conclusao IS NULL OR tabela1.dat_conclusao > {TEMPO}


(ideia) Exemplos:

Informações
iconfalse

TABELA: wms_docum_saida                VÍNCULO DO TITULAR: Destinatário



Exemplo 1:    AND wms_docum_saida.dat_hor_emissao > {TEMPO} AND EXISTS (SELECT 1 FROM tabela2 WHERE tabela2.codigo = tabela1.codigo AND table2.situacao IN ('A','P','S') )


Exemplo 2:    ANDwms_docum_saida.dat_hor_emissao > {TEMPO:formatDateAsDBDttimeY2S} AND EXISTS (SELECT 1 FROM tabela2 WHERE tabela2.codigo = tabela1.codigo AND table2.situacao IN ('A','P','S') )


OBS: A query de exemplo não reflete necessariamente uma condição real registrada no sistema, apenas foi usada para exemplificar o padrão das regras de uso.

  • Respeitar a descricao principal do IDENTIFICADOR exatamente da forma como é apresentado na lista padrão de todos identificadores disponíveis.
  • Deve estar entre chaves { }, sem espaços em branco no início e final. Exemplos:  {CPF} {RG} {CNH}

Sintaxe

Bloco de código
formatOnlyNumeric( [ <l_value> ] ) => CHAR

Parâmetros

Nome

Tipo

Obrigatório?

Descrição

l_value
CHARSim

Conteúdo a ser formatado, eliminando quaisquer caracteres diferentes de números, inclusive espaços em branco.

(informação) Limite de até 2000 caracteres.

Retorno

...

Tipo

...

Descrição

...

CHAR

...

Conteúdo numérico recuperado do valor original enviado como parâmetro.

Exemplo

Bloco de código
languageruby
themeConfluence
linenumberstrue
#------------------------------------------------#
FUNCTION formatOnlyNumeric_test()
#------------------------------------------------#

   #Extrair a máscara de edição de um CEP
   CALL conout("O valor do CEP 89.222-543 sem máscara de edição é: "||formatOnlyNumeric("89.222-543"))

END FUNCTION

Observações

Disponível a partir do Logix 12.1.2205