Tecnologia > Ferramentas de Apoio > Editor de web services > Regra - Implementação da porta

Regra - Implementação da porta

Ao criar uma nova porta de serviço no provedor interno, esta porta estará disponível como web service que poderá ser executado como qualquer outro serviço nativo do sistema.

Para isto, é necessário implementar a regra LSP que define o comportamento da porta quando ela for chamada, ou seja, deve-ser implementar o que ela fazer.

A regra da porta deve ser definida no momento da criação da porta, pelo botão Regra disponível na tela de edição de portas de serviço, e pode ser alterada a qualquer momento por este mesmo caminho ou pelo Editor de Serviços, através dos menus das portas.

Ao clicar em alguma das opções de edição de regra da porta será aberto o editor de regras LSP convencional dos sistemas Senior, conforme a imagem:

Sintaxe

A regra da porta tem acesso à todos os parâmetros da porta, podendo ler todos os parâmetros de entrada e escrever em todos os parâmetros de saída, ambos definidos no momento em que a porta é criada ou alterada.

Pode ser implementada como qualquer outra regra do sistema, chamando qualquer função disponível, inclusive executar outros serviços, desde que não haja interação com o usuário, como mensagens, por exemplo.

No exemplo que pode ser observado na imagem acima, foi criada uma porta nomeUsuario, que tem como objetivo retornar o nome de um usuário cujo código é passado como parâmetro.

Para isto, foram adicionados à porta o parâmetro de entrada Codigo, do tipo Inteiro, e o parâmetro de saída Nome, do tipo Alfanumérico.

Na regra é chamada a função SegEntLe passando o parâmetro Codigo para ler o usuário na variável xUsuario. Depois é chamada a função SegEntNome, que lê o nome de xUsuário para a variável xNome, a qual é passada para o parâmetro Nome.

Deve-se observar que para acessar os parâmetros da porta é necessário utilizar o nome da porta que foi definido na tela anterior,  seguido do nome do parâmetro, seraparados por ponto.

Sintaxe

<nome_da_porta>.<Nome_do_parâmetro>

Parâmetros implícitos

Alguns parâmetros são criados implicitamente nas portas de serviço, podendo ser acessados a qualquer momento, conforme descrito a seguir:

Nome Sentido Tipo Descrição
Usuario Entrada Alfanumérico Nome do usuário que está executando o serviço
Senha Entrada Alfanumérico Senha do usuário que está executando o serviço
ModoExecucao Entrada Inteiro Modo que o serviço está sendo executado
ErroExecucao Saída Alfanumérico Usado para passar uma mensagem de erro para o chamador do serviço, caso ocorra algum, já que não é possível mostrar mensagens para ele.

Parâmetros do tipo tabela

As portas de serviço podem conter parâmetros do tipo Tabela, que podem ser tanto de entrada como de saída. Os valores de cada coluna também podem ser lidos, escritos e comparados. Para isto basta referenciar a coluna e assinalar o valor desejado. O valor será sempre assinalado para a linha corrente da Tabela.

Sintaxe

<Nome_da_Porta>.<Nome_da_tabela>.<Nome_da_Coluna>

Para os parâmetros do tipo tabela temos alguns parâmetros internos e funções que podem ser executadas:

x = nomeUsuario.Permissoes.QtdLinhas;

nomeUsuario.Permissoes.LinhaAtual = 4;

Se ( nomeUsuario.Permissoes.QtdLinhas < 5 ) {
    nomeUsuario.Permissoes.CriarLinha(); @ CriarLinha: Função que cria uma nova linha na tabela posiciona a tabela nesta nova linha. @
}

NomeUsuario.Permissoes.LinhaAtual = 6; @ Posiciona na linha que se deseja excluir. @
NomeUsuario.Permissoes.ExcluirLinha();  @ ExcluirLinha: Função que exclui a linha corrente da tabela. @

Este artigo ajudou você?