sábado, 9 de abril de 2011

Objetos de entrada






Visão Geral

Os objetos de entrada são programas que interagem com os métodos de uma transação (tela) do Visual Linx. Eles são arquivos que ficam armazenados na pasta "L:\LINX_SQL\Linx\Exclusivos\".

O padrão de nomenclatura dos arquivos é "obj_<código da transacao>.prg". Os arquivos "obj_<código da transacao>.fxp" são os programas já compilados, se o .FXP já existir isso significa que a tela já tem as regras do objeto ativas.

Sempre que houver alterações no .PRG, é necessário atualizar o arquivo .FXP. A criação do arquivo .FXP é automática desde que o arquivo .FXP não exista.

Obs.: Para excluir um arquivo .FXP nenhum usuário poderá estar com a tela aberta. O mais recomendado é que nenhum client do sistema permaneça aberto durante a atualização de um .PRG.

Conteúdo de um objeto de entrada

O programa correspondente ao objeto de entrada segue o padrão de codificação abaixo:

define class obj_entrada as custom
 procedure metodo_usuario
 lparam xmetodo, xobjeto ,xnome_obj

  do case
   case xmetodo == "USR_INIT"
  endcase

 endproc
enddefine

O método "metodo_usuario" é chamado pelo tratamento padrão das transações do linx o parâmetro mais relevante para alterações é o "xmetodo" que nos indica em que momento o método está sendo executado:

USR_INIT - Quando o formset é criado;
USR_ALTER_BEFORE - Antes de alterações;
USR_ALTER_AFTER - Depois de alterações;
USR_INCLUDE_AFTER - Após a inclusão de um registro;
USR_SEARCH_BEFORE - Antes de uma pesquisa;
USR_SEARCH_AFTER - Depois uma pesquisa;
USR_CLEAN_AFTER - Depois da limpeza;
USR_REFRESH - Após refresh;
USR_SAVE_BEFORE - Antes de salvar;
USR_SAVE_AFTER - Depois de salvar;
USR_ITEN_DELETE_BEFORE - Antes de excluir um item;
USR_ITEN_DELETE_AFTER - Depois de excluir um item;
USR_ITEN_INCLUDE_BEFORE - Antes de incluir um item;
USR_ITEN_INCLUDE_AFTER - Depois de excluir um item.

Caso algum dos métodos sublinhados acima retorne um valor falso (RETURN .F.), a operação realizada pela transação do Linx será cancelada. Esse recurso é ideal para validações de campos ou tratamento de outras regras.

O objeto de entrada enxerga também as variáveis globais do sistema.

Um exemplo delas é o wUsuario que identifica o "usuário" que se conectou no Linx, desse modo também é possível especificar regras para um usuário específico.

Embora seja possível usufruir desse recurso, não recomendo que ele seja largamente utilizado porque os usuários podem ter novas atribuições ou se desligarem da empresa, o que implica num gerenciamento muito minucioso.

---
Até a próxima... Dica Linx!
Gostaria de algum tópico sobre abordagem específica? Entre em contato.

Um comentário:

  1. Boa dia, poderia demonstrar a criação de uma nova tela no Visual?
    obrigado
    Regis Vale

    ResponderExcluir