Escolar Documentos
Profissional Documentos
Cultura Documentos
Apresentação
Este material tem como objetivo capacitar o profissional com relação aos conceitos
ligados ao assunto web service dos sistemas G5 nas atividades de criação, manutenção e
configuração destes.
Está baseado em tecnologias internas da Senior e também em tecnologias de
mercado.
Estão apresentadas a seguir informações sobre:
Conceitos e Pré-requisitos.
Configurações iniciais.
Editor de Serviços.
Sistemas Senior chamando web services.
Sistemas Senior expondo web services.
Sumário
O QUE É WEB SERVICE .................................................................................................................. 7
COMO FUNCIONA UM WEB SERVICE ............................................................................................ 8
Se são linguagens diferentes, como conseguem comunicar?................................................... 8
Quais os benefícios dos Web Services? ..................................................................................... 9
Web Service: uma solução prática. ......................................................................................... 10
ENTIDADES ENVOLVIDAS NO PROCESSO .................................................................................... 11
POR QUE USAR WEB SERVICES ................................................................................................... 12
ARQUITETURA DO SISTEMA ........................................................................................................ 14
MODOS DE EXECUÇÃO ................................................................................................................ 15
CONFIGURAÇÕES INICIAIS ........................................................................................................... 16
EDITOR DE WEB SERVICES ........................................................................................................... 18
MENU .......................................................................................................................................... 19
BARRA DE FERRAMENTAS ........................................................................................................... 19
ARVORE DE RECURSOS ................................................................................................................ 19
LISTA DE RECURSOS .................................................................................................................... 20
LOCALIZAR ................................................................................................................................... 21
PARAMETRIZAÇÃO DE WEB SERVICE .......................................................................................... 21
PARAMETROS DE ENTRADA E SAIDA .......................................................................................... 22
CONCEITO DE GRID (TABELA) NOS WEB SERVICES ..................................................................... 23
CAMPOS DE USUÁRIOS ............................................................................................................... 26
PROTOCOLOS E VERSÕES SUPORTADAS ..................................................................................... 28
MAPEAMENTO DE SERVIÇOS DE OUTROS SISTEMAS ................................................................. 29
Mapeamento de WSDL para Editor de Serviços ..................................................................... 29
Tipos de autenticação ............................................................................................................. 45
MAPEAMENTO ENTRE SISTEMAS SENIOR................................................................................... 47
Provedor Senior de mesma base ............................................................................................ 47
Provedores Senior de bases diferentes................................................................................... 49
Atualização dos web services .................................................................................................. 52
INVOCAÇÃO DE WEB SERVICES VIA LSP ...................................................................................... 53
Estrutura da regra LSP ............................................................................................................. 53
Modos de execução ................................................................................................................ 54
Obtendo retorno da execução (Grids) .................................................................................... 54
CAPÍTULO 01
Conceitos
Objetivos Específicos
Utilizando a tecnologia WebService, uma aplicação pode invocar outra para efetuar
tarefas simples ou complexas mesmo que as duas aplicações estejam em diferentes sistemas e
escritas em linguagens diferentes. Por outras palavras, os WebServices fazem com que os seus
recursos estejam disponíveis para que qualquer aplicação cliente possa operar e extrair os
recursos fornecidos pelo WebService. Ou seja, são inúmeras aplicações para WebServices e não
somente integração entre sistemas.
Os Web Services são identificados por um URI (Uniform Resource Identifier), descritos e
definidos usando XML (Extensible Markup Language). Um dos motivos que tornam os
WebServices atrativos é o fato deste modelo ser baseado em tecnologias standards, em
particular XML e HTTP (Hypertext Transfer Protocol). Os WebServices são utilizados para
disponibilizar serviços interativos na Web, podendo ser acessados por outras aplicações.
Figura 1
Figura 2
Assim, uma das grandes vantagens do REST é a sua flexibilidade, já que não limita os
formatos de representação de dados. O protocolo REST é também utilizado quando a
performance é importante, uma vez que é um protocolo ágil e com a capacidade de transmitir
dados diretamente via protocolo HTTP.
Figura 3
A utilização de Web Services traz vários benefícios tanto a nível tecnológico, como a nível
do negócio. Seguem-se os mais relevantes:
– Reutilização de código: um Web Service pode ser utilizado por várias plataformas com
diferentes objetivos de negócio. O código do Web Service é feito uma vez e pode ser utilizado
vezes sem conta por diferentes aplicações.
– Maior segurança: o Web Service evita que se comunique diretamente com a base de
dados. Assim, a segurança do sistema que fornece os dados está salvaguardada.
– Redução de custos: Com a utilização de Web Services não é necessário criar aplicações
à medida para a integração de dados, algo que pode ser bastante caro. Os Web Services tiram
partido de protocolos e da infraestrutura Web já existente na organização, requerendo por isso
pouco investimento.
IMPORTANTE
Os Web Services providos pelos sistemas G5 da Senior têm endereços WSDL que apresentam
as definições de login do Web Service e endereços XSD com as informações dos parâmetros do
Web Service.
Numa organização coexistem várias aplicações que organizam e trocam dados, muitas
vezes, de formas distintas. Assim, nem sempre garantem a comunicação entre sistemas. Por
outro lado, é cada vez mais comum a necessidade de trocar dados entre diferentes sistemas,
seja dentro de uma organização ou entre organizações.
Provedor: Responsável pela descrição do serviço. Esta descrição é um documento WSDL que
contém várias informações do serviço, como por exemplo, informações sobre parâmetros,
endpoints, dados do criador. Também é encarregado de publicar os serviços em uma entidade
registradora.
Figura 4
Quando há descentralização dos dados: Cada departamento ou órgão pode ter seus
próprios dados disponíveis para os outros. Os dados poderão estar disponíveis assim que forem
atualizados.
Aplicações distribuídas
Interoperabilidade
Transparência da localização
Facilidade de programação
Para as empresas, os Web Services podem trazer agilidade para os processos e eficiência
na comunicação entre cadeias de produção ou de logística. Toda e qualquer comunicação entre
sistemas passa a ser dinâmica e principalmente segura, pois não há intervenção humana.
Figura 5
CAPÍTULO 02
Configurações Iniciais
Objetivos Específicos
ARQUITETURA DO SISTEMA
• Camada cliente
• Middleware Java EE
• Middleware base
• Camada de infraestrutura
Figura 6
MODOS DE EXECUÇÃO
CONFIGURAÇÕES INICIAIS
Figura 7
URL do servidor Java EE: Já vem preenchida automaticamente pelo instalador com o
endereço do servidor que contém os serviços já publicados.
Tempo máximo de espera: Este é o tempo máximo que um Web Service pode demorar
para responder a uma requisição. Se ele demorar mais do que este tempo, será lançada uma
exceção de timeout. Caso você possua algum processo que leve mais tempo executando do que
o máximo permitido, este processo deve ser chamado de forma assíncrona ou agendada, que
não possuem esta limitação de tempo.
CAPÍTULO 03
Editor de Web Services
Objetivos Específicos
Figura 8
IMPORTANTE
O caminho do menu tem diferença de um sistema para outro.
ERP: Recursos > Implementações > WebServices > Editar
RH e Acesso: Recursos > Implementações > Editor Web Services
MENU
Esta tela possui um menu com opções para todas as suas funcionalidades, conforme
detalhado abaixo:
Figura 9
a) Menu Arquivo: As funcionalidades deste menu serão vistas por partes mais adiante,
cada uma no contexto em que é utilizada.
b) Menu Editar: Contém as opções genéricas para utilização durante a edição.
c) Menu Exibir: Permite alterar a forma de visualização da lista de recursos,
semelhante aos modos de visualização do Explorer do Windows.
d) Menu Ajuda: Chama o arquivo de ajuda do sistema e posiciona no item
correspondente ao Editor de Serviços.
A disponibilidade de cada ação acessível via menu depende do tipo de item está
selecionado na árvore de recursos à esquerda da tela.
BARRA DE FERRAMENTAS
Figura 10
ARVORE DE RECURSOS
À esquerda da tela podemos ver uma árvore que exibe todos os recursos, tratando
exclusivamente de Web Services, disponíveis no sistema.
Figura 11
LISTA DE RECURSOS
À direita da tela pode-se ver uma lista que exibe todos os recursos de acordo com o
item selecionado na árvore da esquerda. Esta lista possui um menu pop-up que mostra quais
são as opções disponíveis para o item nela selecionado, cujas ações correspondem à itens do
menu da tela.
Figura 12
LOCALIZAR
Ao acessar o menu Editar->Localizar, será exibida uma tela que permite a busca por
textos específicos na árvore de recursos à esquerda da tela.
Figura 13
Figura 14
As portas de comunicação são os métodos do Web Service. Ou seja, é a rotina que irá
ser executada pelo Sistema. Os parâmetros desta porta são as entradas de dados para
processamento e a saída que será devolvida após o processamento da rotina pelo Sistema.
Um Web Service pode ter mais de uma porta (método), conforme a área do
WebService. O exemplo abaixo ilustra um Web Service que possui mais de uma porta
(método) para a mesma rotina do Sistema (Pedidos).
Figura 15
Figura 16
Dentro de cada Web Service poderá haver parâmetros de entrada e saída. Após clicar
sobre a porta ou parâmetro tabela do Web Service será apresentada uma tabela com os
parâmetros e informações sobre o tipo. É importante que sejam verificados os parâmetros
obrigatórios do Web Service para sua execução correta.
Figura 17
A grande vantagem no uso dos Web Services é o conceito de múltiplos registros dentro
da mesma chamada do Serviço. Ou seja, pode-se inserir uma grande quantidade de
informações distintas dentro da mesma execução, onde o Sistema irá “decompor” esta
mensagem e irá processar os vários registros enviados. Esta diferença fica visível se
compararmos a inclusão de um Pedido via Ação SID e via Web Service.
Para a inclusão de um Pedido simples via ação SID por exemplo, é necessário a
execução das seguintes ações:
SID.Ped.Gravar
SID.Ped.GravarProduto ou SID.Ped.GravarServico
SID.Ped.GravarObservacao
SID.Ped.Fechar
Para a inclusão de um Pedido Simples via Web Service é necessário a execução do Web
Service com.senior.g5.co.mcm.ven.pedidos@GravarPedidos.Pedido. Neste caso, o parâmetro
“Pedido” é do tipo tabela, onde podemos inserir vários pedidos dentro desta tabela.
IMPORTANTE
Os Web Services que possuem retorno em tabela retornam à informação do processamento no
retorno “mais externo” e o retorno sobre o processamento de cada item nos retornos de cada
tabela. É importante verificar todos os campos de retorno quando ocorre alguma situação
adversa na execução do Web Service.
<GravarPedidos>
<Pedido>
Empresa: 1
Filial: 1
Pedido: 1
Cliente: 10
Fecha Pedido: S
<Produto>
Seq. Item: 1
Pedido: 1
Produto: 1101
</Produto>
<Produto>
Seq. Item: 2
Pedido: 1
Produto: 1102
</Produto>
</Pedido>
<Pedido>
Empresa: 1
Filial: 1
Pedido: 2
Cliente: 20
Fecha Pedido: N
<Produto>
Seq. Item: 1
Pedido: 2
Produto: 1501
</Produto>
<Produto>
Seq. Item: 2
Pedido: 2
Produto: 1502
</Produto>
</Pedido>
</GravarPedidos>
Retorno do Web Service:
<GravarPedidos>
<RespostaPedido>
Empresa: 1
Filial: 1
Pedido: 1
Retorno: Inserido com Sucesso
<Produto>
Seq. Item: 1
Pedido: 1
Retorno: OK
</Produto>
<Produto>
Seq. Item: 2
Pedido: 1
Retorno: OK
</Produto>
</RespostaPedido>
<RespostaPedido>
Empresa: 1
Filial: 1
Pedido: 2
Retorno: Pedido Inserido Parcialmente
<Produto>
Seq. Item: 1
Pedido: 2
Retorno: OK
</Produto>
<Produto>
Seq. Item: 2
Pedido: 2
Retorno: Falta Estoque
</Produto>
</RespostaPedido>
</GravarPedidos>
CAMPOS DE USUÁRIOS
Alguns Web Services possibilitam que sejam inseridas informações nos campos de
usuário presentes na tabela envolvida no processo.
Para verificar se o Web Service possui este recurso, deve-se verificar se o Web Service
possui uma tabela chamada “Usuario”, conforme imagem abaixo. É possível informar mais de
um campo de usuário dentro de cada tabela, inserindo assim vários registros nos campos de
usuário de uma única vez.
Figura 18
CAPÍTULO 04
Sistema Senior Chamando Web Services
Objetivos Específicos
A comunicação dos Web Services baseia-se no protocolo SOAP (Simple Object Access
Protocol). O protocolo SOAP utiliza geralmente o HTTP para transferência das informações.
Com isto, em vez de usar HTTP para pedir uma página HTML para ser visualizada em um
navegador, o SOAP envia uma mensagem de XML através do pedido HTTP e recebe uma
resposta, se existir, através da resposta do HTTP.
IMPORTANTE
O cadastramento de um Provedor de Terceiros deve ser efetuado manualmente dentro
do Sistema Senior, verificando as informações constantes na documentação do Web
Service ou no WSDL do mesmo.
Para acessar o WSDL do Web Service que será utilizado, vamos acessar o seguinte
endereço: https://www.w3schools.com/xml/tempconvert.asmx?WSDL
Este Web Service faz a conversão de graus Celsius para Fahrenheit e vamos mapeá-lo no
sistema Gestão Empresarial | ERP ficando disponível para a utilização no sistema. Na imagem
abaixo temos o WSDL do web service.
Figura 19
No Gestão Empresarial | ERP vamos abrir o editor de web services, conforme figuras
abaixo.
Figura 21
Figura 20
Figura 22
Figura 23
Figura 24
Figura 25
Clicando em Adicionar o editor vai exibir a tela abaixo para informar os parâmetros do
provedor que será adicionado.
Figura 26
Figura 27
Figura 28
Figura 29
Figura 30
Figura 31
Em seguida será exibida uma tela para informar o nome do serviço desejado, este
nome refere-se ao nome do web service e deve ser único dentro do provedor ao qual ele
pertence, não podendo conter espaços ou caracteres especiais. No caso de um serviço de um
provedor de web services terceiro, a tela exiba terá mais opções, conforme a imagem abaixo:
Figura 32
Esta tela é diferente para os serviços de provedores de web services terceiros porquê
alguns podem conter caracteres especiais em seus nomes, como por exemplo
“webConverter?action=Web¶m=1”.
Estes nomes com caracteres especiais não podem ser cadastrados no campo Nome, pois
não seria possível criar regras LSP para a chamada destes web services.
Desta forma é possível cadastrar neste campo um nome diferente do nome real do web
service, no exemplo da figura está sendo cadastrado o nome "webConverter".
Já o nome real do web service, o nome presente na URL completa do provedor que
possua caracteres especiais, pode ser cadastrado no campo Nome do serviço presente na URL.
No exemplo da figura está sendo cadastrado "webConverter?action=Web¶m=1".
Desta forma, quando o nome presente na URL cadastrado for diferente do nome, o web
service chamado terá o nome do campo “Nome do serviço presente na URL”.
Então nesta tela vamos informar no campo Nome a informação “tempconvert” e no
campo “Nome do serviço presente na URL” a informação “tempconvert.asmx”, conforme consta
na URL do web service que vamos utilizar. Após informar clique em OK.
Figura 33
Figura 34
Figura 35
Figura 36
Após selecionar qualquer uma das opções o editor exibirá a tela abaixo:
Figura 37
Nome: Esse campo definirá o nome da porta, é um campo obrigatório. Este nome deve
ser único dentro do serviço ao qual a porta pertence e não pode conter espaços ou caracteres
especiais. O nome não pode terminar com “_n”, onde “n” representa qualquer número inteiro,
se extraindo o “_n” do nome ele fique igual ao nome de uma porta nativa do mesmo serviço.
Por exemplo, há uma porta nativa com nome "Calcular" no serviço "Teste". No serviço
"Teste" não pode ser inserida uma porta com o nome "Calcular_1", "Calcular_2"... "Calcular_n".
Como estamos mapeando um web service de terceiro precisamos identificar a porta ou
as portas, no WSDL do web service. Então temos que procurar a tag “portType” e identificar qual
porta queremos utilizar, conforme imagem abaixo:
Figura 38
Ação: Identifica o propósito da requisição do serviço. Esta informação deve ser obtida
da WSDL do serviço (tag soapAction) e está disponível apenas para portas de serviços de
terceiros.
Figura 39
Identificador universal: Identificador único da porta. Esta informação deve ser obtida
da WSDL do serviço (targetNamespace) e está disponível apenas para portas de serviços de
terceiros.
Figura 40
Estilo de codificação: Estilo de codificação da porta. Esta informação deve ser obtida da
WSDL do serviço (tag encodingStyle) e está disponível apenas para portas de serviços de
terceiros. O estilo de codificação deve ser informado apenas quando a forma de construção da
chamada é "encoded", e não "literal".
Enviar tipo de dado dos parâmetros: Indica se o tipo de dado dos parâmetros será
enviado no XML de requisição. Este tipo é indicado por um atributo dentro da tag de cada
parâmetro.
Figura 41
Figura 42
Figura 43
Figura 44
Figura 45
Agora vamos informar os parâmetros, iniciando pelo “Celsius” que ficará da seguinte
forma. Após clique em OK e informar o segundo parâmetro “CelsiusToFahrenheitResult”.
Figura 46
Figura 47
Figura 48
Após todas as configurações devemos salvar e testar o web service para assegurar que
está funcionado corretamente.
Figura 49
Para testar de duplo clique na porta “CelsiusToFahrenheit” para abrir a tela com as
configurações da porta e clique em “Testar”. Informe o parâmetro de entrada que é em graus
Celsius e o web service deverá retornar o valor correspondente em Fahrenheit.
Figura 50
Tipos de autenticação
Com relação a usuários para execução de serviços, para provedores de serviços Senior,
indica qual o usuário padrão a ser utilizado para a execução dos serviços quando o usuário não
for informado explicitamente no momento que o serviço é chamado, podendo-se optar por
usar sempre o usuário que estiver logado no sistema.
No caso de provedores de serviços de terceiros, este usuário será utilizado para fazer
autenticação HTTP ou SOAP, caso o servidor exija tal autenticação. Se a opção for autenticação
SOAP, deverá ser informado o nome do nó de autenticação (TAG authentication), o nome dos
atributos de nome e senha do usuário e se necessário, o identificador universal
(targetNameSpace), conforme imagem:
Figura 51
Figura 52
Figura 53
Provedor que contém os serviços de sistemas Senior que estão no mesmo servidor, e
usando a mesma base, do sistema em execução.
Para cadastrar um provedor Senior de mesma base devemos clicar no menu “Arquivo
> Provedor > Adicionar” do editor de serviços.
Figura 54
“%s”, este valor será substituído pelo nome do sistema que contém os web services. Por
exemplo, se colocarmos “teste_%s” será atribuído ao nome do provedor “teste_tr”.
Na seção “Usuário para execução dos serviços” podemos deixar a opção padrão de
utilizar o usuário logado no sistema ou especificar um usuário e senha que será sempre
utilizado para executar os web services desse provedor no servidor.
Clicando em “Avançar”, será exibida uma lista com todos os sistemas disponíveis no
servidor que utilizam a mesma base que o sistema que está sendo utilizado.
Figura 55
Figura 56
Este recurso é utilizado quando se deseja integrar sistemas que não utilizem a mesma
base. Eles podem estar disponíveis no mesmo servidor ou em servidores diferentes.
Para cadastrar um provedor Senior devemos clicar no menu “Arquivo > Provedor >
Adicionar” do editor de serviços. Neste caso, não vamos marcar a opção “Mesma base”.
Figura 57
No campo “URL do servidor” devemos informar a URL que será utilizada para acessar o
servidor onde os web services estão disponíveis.
Clicando em “Avançar”, será exibida uma lista com todos os sistemas disponíveis no
servidor que está sendo cadastrado. Selecionado os sistemas que se deseja integrar, ao clicar
em “Ok” será criado um provedor para cada sistema selecionado, todos com as mesmas
configurações.
Figura 58
Figura 59
Após uma customização, podem ser criados novos serviços. Para que um sistema
consiga acessar estes novos serviços criados em outros sistemas, é necessário recarregar o
Catálogo de Serviços, que traz as definições de todos os serviços atualizadas. Para isso, deve-se
acessar o “Editor de Serviços” e utilizar a opção “Atualizar todos do servidor” disponível ao
clicar com o botão direito do mouse sobre o nó “Provedores”, conforme imagem abaixo.
Figura 60
fim;
Executa o Web Service
Modos de execução
Os modos de execução de Web Service via regra LSP seguem o mesmo padrão
utilizado via MCDebug, porém são tratados por numeração na regra, conforme abaixo:
1 – Local
2 – Síncrono
3 – Assíncrono
Caso a variável “ModoExecucao” não seja declarada na execução do Web Service via
regra LSP, por padrão o Web Service será executado Localmente.
Nesta situação, executando o Web Service localmente na regra LSP o Web Service terá
o mesmo comportamento de uma função de programador, sendo executado diretamente no
mesmo aplicativo que está executando a regra.
O retorno das informações geralmente ocorre em uma tabela. Com isso, é necessário
ler os dados das linhas desta tabela para obter o retorno de cada linha da tabela. Caso
contrário não será possível verificar o retorno de todos os Itens da tabela e verificar possíveis
problemas.
Abaixo há um exemplo de regra para obter o retorno de cada linha das tabelas de
retorno da tabela de Pedido e Produto.
iQtdPro = 0;
enquanto (iQtdPro < iQtdLinhasRetornoProdutos)
Retorno da tabela de
Produtos do Pedido
inicio
SrvPedido.RespostaPedido.GridPro.LinhaAtual = iQtdPro;
aSeqIpd = SrvPedido.RespostaPedido.GridPro.SeqIpd;
aRetObs = SrvPedido.RespostaPedido.GridPro.Retorno;
iQtdPro = iQtdPro + 1;
fim;
iQtdPed = iQtdPed + 1;
fim;
Se o retorno for do tipo tabela e não foram lidos todos os registros, o retorno será
apresentado de forma incompleta. Exemplo:
dDatEmi = CodData(24,01,2013);
dDatEnt = CodData(24,01,2013);
dVctOri = CodData(01,02,2013);
dVctPro = CodData(01,02,2013);
dDatPpt = CodData(01,02,2013);
SrvGerCtaRec.ModoExecucao = 1;
SrvGerCtaRec.Executar();
nQtdLin = SrvGerCtaRec.GridResult.QtdLinhas;
CAPÍTULO 05
Sistema Senior Expondo Web Services
Objetivos Específicos
Figura 61
Cliente: Pode ser um sistema Senior ou qualquer sistema que utilize a tecnologia de Web
Services.
Glassfish: Servidor de aplicativos JEE. Para cada Web Service G5 são expostos 3 Web
Services JEE no momento em que é realizado o deploy. São eles:
Um para o serviço ser chamado de forma síncrona. Esse serviço será executado
imediatamente irá retornar uma resposta;
Um para o serviço ser chamado de forma assíncrona. Esse será postado em uma
fila JMS e não terá uma resposta imediata;
Um para o serviço ser chamado de forma agendada. Esse será agendado por
nossas rotinas de agendamento e irá executar no período determinado.
PROCESSOS DE DEPLOY
O deploy dos web services acontece durante uma instalação ou atualização do produto
ou através da ferramenta de deploy.
Características principais:
Acessando a ferramenta
Exemplo: http://nome-do-servidor:numero-da-porta/SeniorDeployTool
Ao acessar a ferramenta, será exibida a tela de login, onde devem ser informados os
dados do ambiente que se deseja iniciar (previamente configurado no Instalador), além do
Usuário e Senha do administrador do servidor Java EE, nesse caso, o mesmo usuário do
console de administração do GlassFish. Após informar os dados de acesso, clique em Entrar
para visualizar a tela principal da ferramenta.
Figura 62
Para efetuar o deploy de vários web services, eles devem ser selecionados na listagem
de itens, podem ser selecionados somente alguns, ou todos clicando sobre a primeira caixa de
seleção representada pelo :
Figura 63
IMPORTANTE
Caso já exista algum web service agendado para execução no servidor Java EE e, novamente for
realizado o deploy dos web services, o agendamento será mantido com a mesma sequência
(ID) gerada no deploy anterior.
Os sistemas Senior que utilizam esse ID para controle interno dos agendamentos não perderão
Os sistemas Senior contêm alguns web services que são padrões, os quais são
disponibilizados com a cópia do sistema. Estes web services já estão disponíveis a partir do
momento que o recurso de web services é habilitado no sistema e são expostos utilizando o
protocolo SOAP.
IMPORTANTE
Web services padrões que são disponibilizados pelo sistema não podem ser editados, apenas
consultados ou desabilitados.
Além dos web services padrões, é possível desenvolver novos web services que serão
disponibilizados pelo sistema, cuja funcionalidade deve ser implementada em regra LSP.
Para criar um novo serviço, devemos selecionar o provedor interno e clicar no menu
“Arquivo > Serviço > Adicionar”.
Abrirá uma tela onde deve ser informado o nome do serviço que será criado. Este
nome não deve conter espaços, acentuações ou caracteres especiais.
Figura 64
DICA
Sugerimos que seja utilizado o mesmo padrão de nomenclatura dos serviços padrões do
sistema, pois se houver mais de um sistema no mesmo servidor com serviços de mesmo nome
e funcionalidades diferentes, poderá haver conflito no momento de carregar o serviço e ele
poderá não funcionar.
Para criar uma nova porta, devemos selecionar o serviço onde ela será criada e clicar no
menu “Arquivo > Porta > Adicionar”.
Abrirá uma tela onde devem ser preenchidas as informações da porta.
Figura 65
1. Nome: Deve ser informado o nome da porta, o qual será utilizado por quem for
utilizar essa funcionalidade do web service em questão. Esse nome não deve conter
espaços, acentuações ou caracteres especiais.
Figura 66
a) Tipo de dado: Selecionar qual vai ser o tipo do dado (valor) que vai ser transportado no
parâmetro, conforme descrito abaixo:
- Alfanumérico: pode ser passado qualquer valor com qualquer tipo de caracter;
- Inteiro: pode ser passado qualquer valor numérico inteiro;
- Decimal: pode ser passado qualquer valor numérico decimal;
- Hora: pode ser passado qualquer texto que represente uma hora qualquer;
- Data e hora: pode ser passado qualquer texto que represente uma data e hora
qualquer, ou apenas uma data;
- Texto: pode ser passado qualquer texto. A diferença do tipo texto para o tipo
alfanumérico é que no campo texto o valor é passado no formato binário e pode ser bem
maior do que se fosse passado no campo alfanumérico. Como o valor trafega no formato
binário, podem ser passadas inclusive imagens, por exemplo.
- Tabela: tipo de dado mais complexo. Neste caso pode ser passada uma tabela
(grade) através do parâmetro. Após criar um parâmetro do tipo Tabela é necessário definir
suas colunas, como será visto mais abaixo.
IMPORTANTE
A validação dos valores dos parâmetros dos tipos Alfanumérico, Inteiro, Decimal, Hora
e Data e hora deve ser feia por quem implementa o serviço (na regra LSP).
c) Nome: Deve ser informado o nome do parâmetro. Este nome não deve conter espaços,
acentuações ou caracteres especiais.
d) Ajuda: Pode ser informado um breve texto com a descrição do parâmetro e os valores
esperados, por exemplo. Esse texto de ajuda será visualizado no editor de serviços e na
documentação gerada pela ferramenta de deploy.
Figura 67
Podemos observar que o tipo de dado de uma coluna pode ser outra Tabela, permitindo
que possam ser criados relacionamentos mestre/detalhe dentro da implementação do
web service. Por exemplo, podemos ter um web service que retorne as informações de
um pedido, contendo uma tabela que represente os itens do pedido que, por sua vez,
tem uma coluna tipo tabela que representa subitens de cada item.
IMPORTANTE
O sistema limita ao máximo de 10 níveis de tabelas inseridas uma dentro da outra.
6. Regra: Botão que chama a tela para desenvolvermos a regra LSP que será executada
quando algum sistema invocar esta funcionalidade do novo web service.
Figura 68
IMPORTANTE
Todos os parâmetros definidos na Porta são declarados implicitamente para serem
utilizados na edição da regra.
Após salvar e fechar o editor da regra, voltando à tela de edição da porta. Clicar no botão
“Testar” para executar a porta localmente e ver se ela foi implementada corretamente.
Figura 69
Após ter concluído a edição da porta basta clicar em “Ok” para voltar à tela principal do
editor. É importante ressaltar que, até o momento, nenhuma configuração foi salva. Na tela do
editor podemos observar que foram habilitadas as opções descritas abaixo:
GERAÇÃO DE DOCUMENTAÇÃO
Para gerar a documentação dos web services customizados, ou seja, criados pelo
cliente ou qualquer outro profissional é necessário acessar a ferramenta de deploy, conforme
já vimos em Processos de Deploy. O processo para gerar a documentação é semelhante ao
processo de deploy, a diferença é que para a documentação utilizamos o botão Gerar
Documentação. O botão Gerar Documentação exporta apenas as informações de web services
customizados (implementados pelo cliente). Ou seja, os que são nativos da solução Senior tem
a documentação diferenciada, que pode ser acessada no Portal de Documentação de acordo
com o produto e versão, ou diretamente no Editor de Web Services.
Clicando em Gerar Documentação o sistema exibe a tela abaixo com algumas opções.
Neste caso vamos gerar a documentação do web service que criamos:
Figura 70
Após clicar no botão Gerar o sistema vai gerar os seguintes arquivos no caminho
informado no campo Diretório de destino, conforme imagem abaixo:
Figura 71
Figura 72
Figura 73
DICA
Para os web services padrões a documentação e o endereço dos WSDLs são encontrados no
Portal de Documentação de acordo com o produto e versão de cada um.
Figura 74
IMPORTANTE
O Console não é suportado nas seguintes formas de acesso: WindowsAccess,
BrowserAccess e Web 5.0.
Nesta tela de configuração é possível definir quais os campos que estarão disponíveis
no console para visualização, aplicar filtros e habilitar a opção de limpeza automática dos
processos executados.
Figura 75
Colunas Visíveis
Atualizar a cada x segundos: Esta opção serve para definir o intervalo de tempo
(segundos) em que as informações enviadas ao console serão atualizadas.
DICA
Por padrão, esta opção sempre estará desabilitada, caso seja necessário, a sua
visualização deve ser selecionada novamente. Caso o usuário que executou o serviço
seja excluído durante a execução da aplicação que irá acessar o console, o usuário em
questão continuará sendo exibido nos logs, ele só irá identificar a exclusão do usuário
após a abertura de uma nova aplicação.
Figura 76
Filtros
Atenção: Isto apenas é válido para usuários Administradores. Usuários que não são
administradores apenas poderão visualizar suas próprias requisições e esta guia não estará
visível para configuração.
REFERÊNCIAS
https://pt.wikipedia.org/wiki/Web_service
http://www.soawebservices.com.br/como-funciona.aspx
http://www.opensoft.pt/web-service/
https://documentacao.senior.com.br/