Árvore de páginas

Versões comparadas

Chave

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

...

Informações
titleConclusão

Depois de concluído esse processo pode se visualizar o funcionamento do perfil em ação. Deve ser executado por um usuário que não seja administrador do SOP para as validações funcionarem corretamente.

...

Resultado

TesteDescrição
1Ao tentar incluir um item onde o estabelecimento não é valido para o usuário, a operação é negada.
2

Ao tentar a realização do teste 1, ou seja, incluir ou modificar um item com um estabelecimento inválido, a validação interfere não permitindo a inclusão e apresentando uma mensagem como abaixo:

Aviso
iconfalse
titleO valor informa é inválido para o seguinte objeto:

Nome: cod-estabel

Rótulo: Estabelecimento Padrão

O mesmo acontece com o campo Data Implantação, ao qual foi dado o apelido data. Ele também é verificado através da validação do campo cod-estabel.

4

Ao tentar incluir ou modificar um item com a data de implantação menor que trinta dias antes da data atual, a validação não permite a operação e apresenta uma mensagem como abaixo:

Aviso
iconfalse
titleIgual a validação específica

Erro: Data de implantação não pode ser menor do que 30 dias atrás

5A mesma coisa acontece ao pressionar os botões Cópia e Exportar quando o estabelecimento ou a data de implantação for inválido. Outra validação acontece também para o estado do botão Características do Item, nota-se que quando o campo Folha Especificação é branco, o botão fica invisível. Já quando o campo está preenchido o campo também é visível.

...

Exemplo de Implementação

Bloco de código
titleCódigo fonte utilizado para as validações
linenumberstrue
/*******************************************************************************
**   Programa..: validaestab.p
**   Objetivo..: Retorno Externo para propriedades Condicao/Lista Valores SOP
**   Data......: 01/10/2002
**   Notas.....: Programa de exemplo de retorno externo.
**               Contém o protótipo necessário para definicao de programas de
**               retorno externo e definição dos métodos
**               É possível adicionar novos métodos, conforme necessidade          
********************************************************************************/
  
/* +++ definicao da biblioteca de funcoes +++ */
{sop\solib001.i}
  
/* +++    prototipacao dos metodos existentes - apenas para consulta   +++ */
/* +++ FUNCTION getObjectHandle        RETURNS HANDLE (vAlias AS CHAR) +++ */
/* +++ FUNCTION getObjectName          RETURNS CHAR   (vAlias AS CHAR) +++ */
/* +++ FUNCTION getObjectValue         RETURNS CHAR   (vAlias AS CHAR) +++ */
/* +++ FUNCTION getCurrentObjectHandle RETURNS HANDLE (              ) +++ */
/* +++ FUNCTION getCurrentObjectName   RETURNS CHAR   (              ) +++ */
/* +++ FUNCTION getCurrentObjectValue  RETURNS CHAR   (              ) +++ */
  
/* +++ definicao de variaveis +++ */
DEF NEW GLOBAL SHARED VAR v_cod_usuar_corren AS CHAR NO-UNDO.
  
/*******************************************************************************
Procedure validaEstabData
Objetivo: Exemplo de validacao do estabelecimento atraves de tabela
e tambem da data
*******************************************************************************/
PROCEDURE validaEstabData:
    /* +++ parametros necessarios sop +++ */
    DEFINE OUTPUT PARAMETER pLogOk      AS LOGICAL   NO-UNDO.
    DEFINE OUTPUT PARAMETER pDesMessage AS CHARACTER NO-UNDO.
    
    /* +++ variaveis locais +++ */
    DEFINE VARIABLE estab     AS CHARACTER NO-UNDO.
    DEFINE VARIABLE valordata AS DATE      NO-UNDO.
    /* +++ codigo da validação +++ */
    ASSIGN estab = getCurrentObjectValue(). /* pegar o valor do campo cod-estabel */
    FIND FIRST usuar-estab NO-LOCK
       WHERE usuar-estab.cod-usuar = v_cod_usuar_corren
       AND   usuar-estab.cod-estab = estab NO-ERROR.
    IF NOT AVAIL usuar-estab THEN DO:
        ASSIGN pLogOk = NO
               pDesMessage = 'Estabelecimento inválido'.
        RETURN.
    END.
    valordata = DATE(getObjectValue('data')).
    
    IF valordata < (TODAY - 30) THEN DO:
        ASSIGN pLogOk = NO
               pDesMessage = 'Data de implantação não pode menor do que 30 dias atrás'.
        RETURN.
    END.
    ASSIGN pLogOk = YES.
    RETURN.
END PROCEDURE.
  
PROCEDURE validaValorBranco:
    /* +++ parametros necessarios sop +++ */
    DEFINE OUTPUT PARAMETER pLogOk      AS LOGICAL   NO-UNDO.
    DEFINE OUTPUT PARAMETER pDesMessage AS CHARACTER NO-UNDO.
    plogok = (getcurrentObjectValue() = '').
    RETURN.
  
END PROCEDURE.

...

Conforme a tabela, pode ser utilizado um único método X para utilização em botões e lista de valores. O retorno desse método deve ser YES quando a validação ocorrer com sucesso. Para utilizar o mesmo método em botões, basta criar condições com o operador “<>” (diferente).

Nota
titleNota:
  1. Ao executar um programa que contenha customização via SOP:
    1. Por exemplo: Programa CD0147;
  2. Chamado por uma UPC de outro programa, que também possui customização via SOP:
    1. Por exemplo: Programa CD0204 possui uma UPC que chama o programa CD0147;
  3.  As customizações do programa CD0147 são ativadas somente se for executada conforme parametrização do Cadastro de Programa.

Para as customizações via SOP serem ativadas, o programa deve ser chamado conforme está parametrizado no Cadastro de Programa (bas_prog_dtsul)

Image Added