Você está na página 1de 34

TESTANDO

WEB
SERVICES
Este documento é parte integrante da metodologia de treinamento Senior.
É proibida a publicação ou reprodução deste documento sem autorização
prévia da empresa. A área Universidade Corporativa Senior é a única
autorizada para alteração do modelo. Todos os direitos são reservados para
a Senior. Nenhuma parte deste material e/ou treinamento poderá ser
reproduzida em qualquer forma ou por qualquer meio eletronicamente,
mecanicamente, por fotocópias, gravação ou outros, sem a prévia
autorização da Senior, sujeitando-se às penalidades previstas em Lei.
CAPÍTULO 01
Conceitos
Objetivo geral

Ao final deste capítulo, você será capaz de:

 Efetuar testes de execução de Web Services padrões


dos Sistemas Senior, utilizando suas várias formas de
execução (MCDebug, Regra LSP e Sistema de
Terceiros.

 Também são apresentadas informações sobre o uso de


Web Services Customizados e a utilização de Web
Services de Outros Sistemas.

1. O que é um WebService

Web Service é uma solução utilizada para integrar Sistemas e na comunicação


entre aplicações de plataformas diferentes. Com este recurso é possível que novas
aplicações possam ser integradas com aplicações já existentes e que Sistemas
desenvolvidos em plataformas distintas sejam compatíveis.

Os Web Services são componentes que permitem as aplicações enviar e receber


dados no formato XML. Cada aplicações pode ter sua linguagem, que será traduzida
para o XML, fazendo com que em certo ponto utilizem a mesma linguagem para
comunicação.

2. Como Funciona um WebService


A comunicação dos Web Services baseiam-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.

Utilizando o Web Service internamente no Sistema, via Regra LSP ou via


MCDebug, como veremos mais a frente, a comunicação ocorre internamente no
Sistema. Assim, quando é efetuada uma chamada de Web Service internamente pelo
Sistema, o Web Service chama diretamente a rotina que irá efetuar o processamento,
não necessitando de camadas intermediárias para direcionar o processamento do Web
Service.

3. Quais Web Services estão disponíveis e onde


encontrá-los
A lista dos Web Services disponíveis em cada Sistema deve ser obtida no Editor
de Serviços, dentro de cada Sistema, nos caminhos abaixo:

ERP: Recursos > Implementações > WebServices > Editar


Regente: Diversos > Serviços > Editor
RH e Acesso: Recursos > Implementações > Editor Web Services

Importante!
Os Web Services padrões do Sistema iniciam seu nome em com.senior.g5,
continuando com a sigla do Sistema.Módulo.Gestão.Rotina

Exemplo. com.senior.g5.co.mcm.est.estoques

4. Diferença entre WS Padrão, de Terceiros e


Personalizados

Dentro dos Web Services disponíveis para uso nos Sistemas Senior temos 3 tipos
de Web Services, sendo eles:
- Web Services Padrões:
- Web Services Personalizados:
- Web Services de Terceiros
4.1 Web Services Padrões

São disponibilizados juntamente com o Sistema, sendo programado pela área de


Desenvolvimento. Não é possível alterar seu comportamento padrão ou personalizar
as portas (métodos) liberadas;
É possível adicionar novas portas (métodos) dentro de um WebService Padrão, criando
assim uma porta personalizada, com a mesma estrutura de um Web Service
personalizado.

Os Web Services padrões são identificáveis conforme o ícone abaixo:

4.2 - Web Services Personalizados

São Web Services criados ou customizados de acordo com a necessidade do


Cliente. Todas as portas de entrada e saída de informações são customizadas.
O comportamento e processamento deste tipo de Web Service é controlado via regra
LSP, programada dentro do próprio Web Service.

Os Web Services Customizados são identificáveis conforme o ícone abaixo:


4.3 - Web Services de Terceiros

São Web Services disponibilizados por outros Sistemas, não Senior, e são
“importados” para o Sistema Senior. Não é possível alterar seu comportamento ou
personalizar suas portas (métodos). O Sistema Senior somente irá efetuar a chamada
do Web Service sendo que o processamento ocorrerá no outro Sistema.

Um Web Service de Terceiros será adicionado dentro de um provedor diferente


do provedor interno, onde estão disponíveis os Web Services Padrões e
Personalizados.

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.
CAPÍTULO 02
Funcionamento
1. A estrutura de um WebService

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da

deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
Um Web Service é composto basicamente 2 itens principais. Sendo os itens 2 e 3
descritos abaixo. Estes itens irão compor o Web Service (1).

1– Web Service;
2– Portas de Comunicação
3– Parâmetros de Entrada e Saída

As portas de comunicação são os métodos do WebService. 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).

É possível também que o Web Service possua somente parâmetros de entrada outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.

ou somente parâmetros de saída.


Havendo somente parâmetros de entrada o Web Service não devolverá nenhuma
informação sobre o processamento. Caso houver somente parâmetros de saída, não
será necessário informar nenhuma informação para execução do Web Service,
bastando somente invocá-lo para obter o resultado.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Layout
Corporativa Corporativa
Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da

deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
2. Parâmetros de Entrada e Saída
Dentro de cada Web Service poderá haver parâmetros de entrada e saída.
Alguns destes parâmetros de entrada podem ser obrigatórios. A informação da
obrigatoriedade dos parâmetros de entrada pode ser verificada dentro do editor de

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


Serviços. 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 e
obrigatoriedade.
É importante que sejam verificados os parâmetros obrigatórios do Web Service para
sua execução correta.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Layout
Corporativa Corporativa
3. Conceito de Grid (tabela) nos Web Services
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 comparar-mos 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.
Dentro da tabela “Pedido” estão disponíveis as tabelas “Produto”, “Servico” e
“Observação”. Assim, pode-se criar uma tabela contendo vários pedidos e dentro
deste pedido vários produtos para cada pedido, conforme exemplo abaixo:

Como os pedidos serão tratados de forma separada ao chegarem no Sistema,


pode-se controlar o comportamento do pedido individualmente. Como por exemplo,
um pedido pode ser fechado ao ser inserido e outro pedido pode ser mantido em
aberto.

O retorno do processamento também será devolvido em uma tabela, contendo


as informações de cada pedido e de cada item do pedido. Assim, quando ocorrer um
problema na inclusão de um Pedido por exemplo, pode-se verificar em que item do
pedido o problema ocorreu.

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.
Chamada do WebService: Retorno do Web Service:

<GravarPedidos> <GravarPedidos>
<Pedido> <RespostaPedido>
Empresa: 1 Empresa: 1
Filial: 1 Filial: 1
Pedido: 1 Pedido: 1
Cliente: 10 Retorno: Inserido com Sucesso
Fecha Pedido: S <Produto>
<Produto> Seq. Item: 1
Seq. Item: 1 Pedido: 1
Pedido: 1 Retorno: OK
Produto: 1101 </Produto>
</Produto> <Produto>
<Produto> Seq. Item: 2
Seq. Item: 2 Pedido: 1
Pedido: 1 Retorno: OK
Produto: 1102 </Produto>
</Produto> </RespostaPedido>
</Pedido> <RespostaPedido>
<Pedido> Empresa: 1
Empresa: 1 Filial: 1
Filial: 1 Pedido: 2
Pedido: 2 Retorno: Pedido Inserido
Cliente: 20 Parcialmente
Fecha Pedido: N <Produto>
<Produto> Seq. Item: 1
Seq. Item: 1 Pedido: 2
Pedido: 2 Retorno: OK
Produto: 1501 </Produto>
</Produto> <Produto>
<Produto> Seq. Item: 2
Seq. Item: 2 Pedido: 2
Pedido: 2 Retorno: Falta Estoque
Produto: 1502 </Produto>
</Produto> </RespostaPedido>
</Pedido> </GravarPedidos>
</GravarPedidos>

4. Campos de Usuário
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.
CAPÍTULO 03
Chamada de um WebService padrão
ou personalizado
1. Chamando um WebService via MCDEBUG

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
Os Sistemas Senior possuem um modo de execução chamado “Modo Depuração
de Web Services”. Este recurso possibilita executar um Web Service internamente no
Sistema, sem a necessidade de Sistemas Externos ou componentes do Middleware
Senior instalado.

A interface de execução do Web Service é composta de uma tela com os


parâmetros de entrada e os campos de saída, bastando o usuário informar os
parâmetros obrigatórios, verificamos no Editor de Serviços.

1.1. Como executar o Sistema com o -MCDEBUG

Para executar o Sistema em modo de Depuração de Web Service, deve-se


adicionar o parâmetro –MCDEBUG no atalho do executável do Sistema.

Exemplos:
C:\Senior\Sapiens\Sapiens.exe –MCDEBUG
C:\Senior\Regente\Regente.exe -MCDEBUG

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


C:\Senior\Vetorh\Rubi.exe -MCDEBUG

Ao iniciar o Sistema, estará disponível somente o Menu Diversos, conforme imagem


abaixo:

Para acessar os Web Services disponíveis, deve-se acessar o caminho:


Diversos > Multicamada, onde será aberta uma tela com a listagem dos Web Services.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
1.2. Encontrando o WebService

Diferente da listagem dos Web Service disponível no Editor de Serviços, a lista


dos Web Services disponível via MCDebug traz a descrição do Web Service e não o seu
nome.

MCDebug: Mercado - Gestão de Vendas - Pedidos - Gravar Pedidos

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


Editor: com.senior.g5.co.mcm.ven.pedidos@GravarPedidos

MCDebug: Mercado - Gestão de Vendas - Pedidos - Exportar Pedidos


Editor: com.senior.g5.co.mcm.ven.pedidos@ExportarPedidos

Há também uma separação por método (porta), onde no MCDebug são listados vários
Web Services pela Descrição, mesmo estes pertencendo a mesma rotina. Exemplo:

Web Service Editor: com.senior.g5.co.mcm.ven.pedidos


Web Service MCDebug:
Mercado - Gestão de Vendas - Pedidos – Calcular Valores Item Pedido ECF
Mercado - Gestão de Vendas - Pedidos – Exportar Pedidos
Mercado - Gestão de Vendas - Pedidos – Gravar Pedidos
Mercado - Gestão de Vendas - Pedidos – Gravar Pedidos em Grade

1.3. Tela de Entrada do WebService

Ao selecionar um Web Service disponível na lista, será aberta uma tela para
entrada de valores que serão enviados ao Web Service. Com isto, não há necessidade
de alterar o XML do Web Service manualmente, podendo então inserir os dados do
Web Service via tela.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
Tabelas do Web Service

Campos de Usuário

Retorno da Execução

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


1.4. Manipulando XMLs

A partir da tela de entrada do Web Service é possível importar um XML


previamente salvo ou salvar os dados digitados na tela para um arquivo XML. Com
isso, pode-se salvar os dados de um teste para novo uso futuramente.

Este XML gerado pelo MCDebug é interpretado somente por este recurso. Este
XML não possui o envelope SOAP, necessário para a comunicação do Web Service
entre Sistemas.
Devido a este comportamento, não é possível importar um XML gerado pelo soapUI ou
outro Sistema por exemplo, diretamente para o editor do MCDebug.
XML gerado via soapUI (Aplicação Externa)

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
XML gerado via MCDebug (Aplicação Senior)

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
1.5. Modos de Execução

No modo de Depuração de Serviços há 4 formas de execução de um Web


Service. Local, Síncrono, Assíncrono e Agendado.

Modo Local: O processamento da requisição irá ocorrer na mesma instância do


aplicativo, diretamente dentro do Sistema. Não haverá a necessidade de outros

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


recursos para a execução do Web Service, como o Middleware Senior.
O processamento ocorre no mesmo momento da chamada do Web Service.

Modo Síncrono: O processamento da requisição será direcionada ao Middleware


Senior. É necessário que o Middleware Senior esteja instalado e configurado para uso
dos WebServices. Será enviada uma solicitação do Servidor Glassfish que irá solicitar
uma instância do Sistema Senior para processar a requisição.
O processamento tem início no momento da chamada do Web Service, e o retorno
será devolvido pelo Servidor Glassfish.

Modo Assíncrono: O processamento da requisição será direcionada ao Middleware


Senior. É necessário que o Middleware Senior esteja instalado e configurado para uso
dos WebServices. Será enviada uma solicitação do Servidor Glassfish que irá solicitar
uma instância do Sistema Senior para processar a requisição.
O processamento tem início no momento da chamada do Web Service, e não haverá
retorno sobre o processamento da requisição.

Modo Agendado: A solicitação de execução será direcionada ao Middleware Senior,


porém não ocorrerá no momento da requisição. A solicitação será Agendada para
execução no Middleware. Neste modo de execução não há retorno da execução para o
Solicitante.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
1.6. Depurando uma regra ligada a rotina do Web Service

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
O MCDebug permite que sejam depuradas as regras ligadas as rotinas dos Web
Services, quando a execução é efetuada em modo Local. Este meio de execução
permite tal funcionalidade, pois pode-se abrir telas de interação com o usuário. Os
demais meios de execução não possibilitam tal funcionalidade, visto que não é
possível a abertura de telas do Sistema.

Regra com o Depurador ativo

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


Retorno da Execução

1.7. Particularidades desta Forma de execução

- Não é possível efetuar a reordenação dos dados da Grid.


- Não é possível salvar o XML de retorno do Web Service. Caso for necessário, deve-se
habilitar a geração de LOGs nas configurações dos WebServices, aba Monitoramento.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
2. Chamando um WebService via Regra LSP

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
Diferente da execução do Web Service via MCDebug, as informações enviadas ao
Web Service via regra LSP devem ser tratadas manualmente. É necessário declarar a
variável do Web Service na regra para que ele fique disponível para chamada.

Para parâmetros do tipo tabela, deve-se obrigatoriamente inserir linhas na


tabela do parâmetro para que o processamento seja efetuado corretamente. Caso não
sejam adicionadas linhas para o parâmetro do tipo tabela, os valores informados
podem ser sobrescritos.

2.1. Estrutura da regra LSP

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.

2.2. 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:

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
1 – Local

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
2 – Síncrono
3 – Assíncrono
4 - Agendado

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.

2.3. Obtendo retorno da execução (Grids)

Após a execução do Web Service em modo Local ou Síncrono, é possível obter os


dados de retorno da execução do Web Service e os dados de retorno das tabelas,
quando disponíveis.
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

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


retorno da tabela de Pedido e Produto.

2.4. Particularidades desta forma de execução

- Se o retorno for do tipo tabela e não foram lidos todos os registros, o retorno será
apresentado de forma incompleta.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
2.5. Exemplo

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
definir alfa acodemp;
definir alfa acodfil;
definir alfa anumtit;
definir alfa aTitLog;
definir alfa aCodTpt;
definir alfa amensagem;
definir alfa aresultado;
Definir data dDatEmi;
Definir data dDatEnt;
Definir data dVctOri;
Definir data dVctPro;
Definir data dDatPpt;

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);

definir interno.com.senior.g5.co.mfi.cre.titulos.EntradaTitulosLoteCR SrvGerCtaRec;


@ Montagem do servivo para inclusão do título substitulo @
SrvGerCtaRec.CodEmp = 1; @ Codigo da empresa @
SrvGerCtaRec.CodFil = 1; @ Codigo da filial @
SrvGerCtaRec.EntradaTitulos.CriarLinha();
SrvGerCtaRec.EntradaTitulos.CodFil = 1; @ Codigo da filial @
SrvGerCtaRec.EntradaTitulos.NumTit = "TIT001"; @ Número do título a receber @
SrvGerCtaRec.EntradaTitulos.CodTpt = "DM"; @ Código do tipo de título a receber @
SrvGerCtaRec.EntradaTitulos.CodTns = "90300"; @ Código da transação que gerou o título a

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


receber @
SrvGerCtaRec.EntradaTitulos.DatEmi = dDatEmi; @ Data de emissão do título a receber @
SrvGerCtaRec.EntradaTitulos.DatEnt = dDatEnt; @ Data de entrada do título a receber @
SrvGerCtaRec.EntradaTitulos.CodCli = 1; @ Código do cliente do título a receber @
SrvGerCtaRec.EntradaTitulos.CodRep = 1; @ Código do representante do título a receber @
SrvGerCtaRec.EntradaTitulos.VctOri = dVctOri; @ Data do vencimento @
SrvGerCtaRec.EntradaTitulos.VctPro = dVctPro; @ Data do vencimento Prorrogado @
SrvGerCtaRec.EntradaTitulos.VlrOri = 100; @ Valor original do título a receber @
SrvGerCtaRec.EntradaTitulos.CodFpg = 001; @ Código da forma de pagamento @
SrvGerCtaRec.EntradaTitulos.DatPpt = dDatPpt; @ Data do provável pagamento @
SrvGerCtaRec.EntradaTitulos.CodPor = "9999"; @ Código do portador do título @
SrvGerCtaRec.EntradaTitulos.CodCrt = "99"; @ Código da carteira do título a receber @
SrvGerCtaRec.EntradaTitulos.CodMoe = "01"; @ Código da moeda @
SrvGerCtaRec.EntradaTitulos.CodFil = 1; @ Codigo da filial @
SrvGerCtaRec.EntradaTitulos.NumTit = "TIT002"; @ Número do título a receber @
SrvGerCtaRec.EntradaTitulos.CodTpt = "DM"; @ Código do tipo de título a receber @
SrvGerCtaRec.EntradaTitulos.CodTns = "90300"; @ Código da transação que gerou o título a
receber @
SrvGerCtaRec.EntradaTitulos.DatEmi = dDatEmi; @ Data de emissão do título a receber @
SrvGerCtaRec.EntradaTitulos.DatEnt = dDatEnt; @ Data de entrada do título a receber @
SrvGerCtaRec.EntradaTitulos.CodCli = 1; @ Código do cliente do título a receber @
SrvGerCtaRec.EntradaTitulos.CodRep = 1; @ Código do representante do título a receber @
SrvGerCtaRec.EntradaTitulos.VctOri = dVctOri; @ Data do vencimento @
SrvGerCtaRec.EntradaTitulos.VctPro = dVctPro; @ Data do vencimento Prorrogado @
SrvGerCtaRec.EntradaTitulos.VlrOri = 100; @ Valor original do título a receber @
SrvGerCtaRec.EntradaTitulos.CodFpg = 001; @ Código da forma de pagamento @
SrvGerCtaRec.EntradaTitulos.DatPpt = dDatPpt; @ Data do provável pagamento @
SrvGerCtaRec.EntradaTitulos.CodPor = "9999"; @ Código do portador do título @
SrvGerCtaRec.EntradaTitulos.CodCrt = "99"; @ Código da carteira do título a receber @
SrvGerCtaRec.EntradaTitulos.CodMoe = "01"; @ Código da moeda @

SrvGerCtaRec.ModoExecucao = 1;
SrvGerCtaRec.Executar();

nQtdLin = SrvGerCtaRec.GridResult.QtdLinhas;

Para (i = 0; i < nqtdlin;i++)


{
SrvGerCtaRec.GridResult.LinhaAtual = i;
aNumTit = SrvGerCtaRec.GridResult.NumTit;

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
aResultado = SrvGerCtaRec.Resultado;

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
aMensagem = "Título: " + aNumTit + " = " + SrvGerCtaRec.GridResult.TxtRet;

3. Chamando um WebService via Sistema Externo


(soapUI)
É possível chamar um Web Service padrão do Sistema ou Personalizado a partir
de Sistemas de Terceiros.
Isto é possível ao publicar os Web Services no Servidor Glassfish (deploy), onde este
irá disponibilizar os Web Services para outros Sistemas, criando uma “ponte” entre os
Sistemas de Terceiros e os Sistemas Senior. Esta ponde pode ser chamada de
“Registrador”.

3.1. Entidades envolvidas no processo

Provedor (Sistema Senior): 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

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


de publicar os serviços em uma entidade registradora.

Consumidor (Sistema Terceiros): Responsável por obter o documento WSDL do


serviço desejado. Posteriormente, utilizar as informações fornecidas por este
documento fazer a ligação com o provedor, invocando um Serviço Web.

Registrador (Servidor Glassfish): Entidade responsável por armazenar as


informações disponibilizadas pelos provedores em um repositório. É nesta entidade
que o consumidor procura por um serviço com base no endereço disponibilizado.

3.2. WSDL (Web Service Description Language)

Podemos descrever o WSDL como a definição do Web Service. O WSDL é um


documento XML disponível de forma on-line para qualquer aplicação ou usuário que
tenha acesso ao seu endereço. Neste documento XML estão disponíveis todas as
informações do Web Service como parâmetros, tipos de dados, endereços dos
Serviços, Provedores. Está disponível também em alguns WSDLs o endereço do XSD
do Web Service, que contém a definição de todos os parâmetros do Web Service.

Assim, temos o WSDL como uma “capa” das definições do Web Service e o XSD
com todas as informações detalhadas sobre o Web Service.

Basicamente, quando o cliente deseja enviar uma mensagem para um


determinado Web Service, ele obtém a descrição do serviço (através da localização do
respectivo documento WSDL), e em seguida constrói a mensagem, passando todos os
parâmetros de acordo com a definição encontrada no documento.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
Em seguida, a mensagem é enviada para o endereço onde o serviço está

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
localizado, a fim de que possa ser processada. O Web Service, quando recebe esta
mensagem valida-a conforme as informações contidas no documento WSDL.
À partir de então, o serviço remoto sabe como tratar a mensagem, sabe como
processá-la (possivelmente enviando-a para outro programa) e como montar a
resposta ao cliente.

3.3. Obtendo o EndPoint do WSDL do Webservice

Para os Web Services padrões Senior ou Personalizados, o WSDL pode ser obtido
no endereço do Web Service, adicionando o parâmetro ?WSDL no final do endereço.

Exemplo:
http://servidor:9090/g5-senior-
services/sapiens/Synccom_senior_g5_co_mcm_ven_pedidos?wsdl

Acessar o console de Administração do Glassfish;


Abrir o item “Web Services” do menu a esquerda;
Procurar o Web Service na lista aberta a direita

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


Utilizar os Web Service do modo “SynConn” que são os Web Service do modo
Síncrono;
Clicar no item “View WSDL”;
Copiar o endereço do WSDL;

3.4. Criando um projeto WSDL no soapUI

Após obter o endereço do WSDL do Web Service, será necessário criar um novo
projeto dentro do soapUI. O soapUI irá “ler” as definições contidas no WSDL e no XSD
do Web Service para montar a chamada do Serviço e disponibilizar os campos do Web
Service em forma de XML na tela do soapUI.

- Acessar o menu File > New SoapUI Project

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
- Informar o endereço do WSDL no campo “Initial WSDL/WADL”
- Será criado um novo projeto com o nome definido na importação do WSDL

- Dentro do Projeto está o Web Service importado e as portas de entrada.


- Ao clicar na opção “Request 1”, serão apresentados os parâmetros de entrada da
porta do Web Service.

A partir deste momento é possível inserir as informações necessárias para execução


do Web Service via Middleware Senior.

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.

3.5. Verificando os parâmetros do WebService

Com a importação do WSDL do Web Service, o SoapUI irá importar todos os


parâmetros de entrada da porta selecionada.
Importante: Não há como importar somente os parâmetros obrigatórios. Caso não for
necessário utilizar determinado parâmetro, deve-se deixar com a informação original,
sem alteração.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
PRODUTO

Corporativa
Universidade
AREA

Corporativa
Universidade
não utilizados do Web Service.

Apostila
GESTÃO
mensagemRetorno, retorno e tipoRetorno
É possível verificar que há mais de

CAPITULO
Cores e fontes
uma
informação
de

mensagemRetorno: Mensagem de retorno do processamento do Web Service.


retorno,
sendo:
É possível também, para melhor visualização e padronização remover os parâmetros

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.
retorno: Mensagem de retorno do processamento do item do Web Service.

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
tipoRetorno: 1 = Processado, 2 = Erro na Solicitação

3.6. Particularidades desta forma de execução

3.6.1. Java Case Sensitive


A linguagem JAVA é Case Sensitive, ou seja, o parâmetro <user> é diferente de
do parâmetro <User>. É obrigatório manter o mesmo nome do parâmetro que o
soapUI importou no projeto.
Caso seja definido um parâmetro com diferença entre letras maiúsculas e minúsculas
do que está definido no WSDL, o Sistema Senior não interpretará este parâmetro pois
o JAVA irá abstraí-lo, conforme exemplo:

Definição do Web Service na WSDL:


<soapenv:Header/>
<soapenv:Body>
<ser:AuthenticateJAAS>
<user> </user>
<password> </password>
<encryption></encryption>
<parameters>

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


<pmUserName> </pmUserName>
<pmUserPassword> </pmUserPassword>
</parameters>
</ser:AuthenticateJAAS>
</soapenv:Body>

Mensagem enviada ao Servidor Glassfish com o parâmetro alterado:

<soapenv:Header/>
<soapenv:Body>
<ser:AuthenticateJAAS>
<user>senior</user>
<password>senior</password>
<encryption>0</encryption>
<parameters>
<pmUserName>Usuario</pmUserName>
<pmuserpassword>Senha</pmuserpassword>
</parameters>
</ser:AuthenticateJAAS>
</soapenv:Body>

Mensagem recebida pelo Sistemas Senior (G5):

<soapenv:Header/>
<soapenv:Body>
<ser:AuthenticateJAAS>
<user>senior</user>
<password>senior</password>
<encryption>0</encryption>
<parameters>
<pmUserName>Usuario</pmUserName>
</parameters>
</ser:AuthenticateJAAS>
</soapenv:Body>

3.6.2. Função Mensagem(Retorna,xxx)


PRODUTO AREA GESTÃO CAPITULO
Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
Os Web Services executados por outras formas que não seja via regra LSP em

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
modo local, não permitem a utilização da função “Mensagem(Retorna,xxx)” nas regras
ligadas a rotina do Web Service.

Quando o Web Service é executado de forma Síncrona, Assíncrona ou Agendada,


não é possível utilizar nenhum recurso que necessite de interação do usuário, como a
função Mensagem(Retorna,xxx). Isto ocorre pois, nestes meios de execução, não há
como confirmar uma mensagem gerada para o usuário e prosseguir com a execução
da regra.

Esta situação pode ocorrer quando é utilizado um identificador de regras atrelado


a uma regra LSP, sendo que esta regra possui uma ocorrência da função
Mensagen(Retorna,xxx).
Quando esta situação for constatada, o Sistema irá retornar a seguinte mensagem no
campo de retorno do Web Service:
Regra XXX: Não é permitido executar nas regras o comando "Mensagem" com
"Retorna" quando a instância da aplicação é de serviço.

3.6.3. Janelas via Serviço


Constatamos em alguns situações que a rotina do Sistema tenta abrir uma “tela”

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


do Sistema quando é executada a rotina do Web Service. Por exemplo, ao executar
um Web Service ou ação SID via Web Service, é gerada uma tela com uma barra de
progresso.
Nesta situação, quando o Web Service ou ação SID via Web Service for executada via
Middleware Senior, a sua execução será “abortada” não chegando a ser processado
pelo ERP. Isto pode ocorrer quando utiliza-se um Web Service personalizado e algum
Web Service ou ação SID na regra LSP do Web Service.

3.6.4. XML gerado pelo MCDebug e via soapUI (incompatibilidade)


Conforme item 3.1.4, não é possível importar um XML gerado pelo MCDebug no
SoapUI, devido a ausência do envelope SOAP no XML do MCDebug.

3.6.5. Campos data (não informados)


Em alguns Web Services, pode haver um campo do tipo Data que é opcional.
Nesta situação, se não for informada nenhuma informação para este campo, o mesmo
deve ser retirado do XML do Web Service.
Isto é necessário pois o SoapUI adiciona o valor ? para todos os campos, fazendo com
que ele se torne “em branco” quando enviado para exeução.
Porém para os campos do tipo data, há uma validação desta informação, retornando
que a data não está no formato correto.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
PRODUTO
Glassfish.

Corporativa
Universidade
AREA

Corporativa
Universidade
Apostila
GESTÃO
3.6.6 – Publicação de Alterações (Deploy )

CAPITULO
Cores e fontes
Sempre que um Web Service personalizado for alterado após sua publicação no
Glassfish (Deploy) e esta alteração envolver campos do Web Service, será necessário
efetuar um novo Deploy. Caso não for efetuado um novo Deploy após sua alteração,
as alterações nos Campos não ficarão disponíveis no Web Service publicado no

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.
PRODUTO

Corporativa
Universidade
AREA

Corporativa
Universidade
Apostila
GESTÃO
CAPITULO
Cores e fontes
CAPÍTULO 04
Provedores de Terceiros

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.
1. Identificando a URL do provedor e o contexto

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
Acessar a WSDL do Web Service:
http://www.w3schools.com/webservices/tempconvert.asmx?WSDL
A URL do provedor é o trecho do endereço até a primeira barra “/”:
http://www.w3schools.com
O contexto é tudo o que está entre a URL do provedor e o nome do serviço:
webservices
O Web Service é o trecho após o contexto
tempconvert.asmx

2. Localizando o Identificador Universal


O Identificador Universal é o “namespace” informado na WSDL do Web Service
targetNamespace="http://tempuri.org/"

3. Identificando a Ação do Web Service

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


A ação do Web Service é publicada na TAG "soapAction" da Porta do Web Service
soapAction="http://tempuri.org/FahrenheitToCelsius"

4. Parâmetros de Entrada e Saída


Os parâmetros de entrada e saída são publicado no WSDL ou no XSD do Web Service.
Exemplo:

<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
<s:element name="FahrenheitToCelsius">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Fahrenheit" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="FahrenheitToCelsiusResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="FahrenheitToCelsiusResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
PRODUTO

Corporativa
Universidade
AREA

Corporativa
Universidade
Apostila
GESTÃO
CAPITULO
Cores e fontes
CAPÍTULO 05
Exemplo de Web Service Personalizado

Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.
Este documento é parte integrante da metodologia de treinamento Senior. É proibida a publicação ou reprodução deste documento sem autorização prévia da
empresa. A área Universidade Corporativa Senior é a única autorizada para alteração do modelo. Todos os direitos são reservados para a Senior. Nenhuma parte
deste material e/ou treinamento poderá ser reproduzida em qualquer forma ou por qualquer meio eletronicamente, mecanicamente, por fotocópias, gravação ou
Entrada: Campo de Entrada.
Tipo: AlfaNumérico

Saida: Campo de Saída dos dados


Tipo: AlfaNumérico

Regra do Web Service

outros, sem a prévia autorização da Senior, sujeitando-se às penalidades previstas em Lei.


Definir alfa entrada;
Definir alfa aRetorno;
Definir alfa aNomCli;
Definir cursor Cur_E085CLI;

entrada = msg.entrada;

Cur_E085CLI.SQL "Select NomCli \


from E085CLI \
where CodCli =:entrada";
Cur_E085CLI.AbrirCursor();
Se (Cur_E085CLI.Achou)
inicio
aNomCli = Cur_E085CLI.NomCli;
msg.saida = aNomCli;
fim;
Senao
inicio
msg.saida = "Cliente não encontrado";
fim;

Cur_E085CLI.FecharCursor();

No exemplo acima, “msg” é o nome da porta do Web Service. Sempre que for
necessário ler ou devolver um dado para um dos parâmetros do Web Service, deve-se
inserir o nome da porta antes do parâmetro.

PRODUTO AREA GESTÃO CAPITULO


Universidade Universidade Apostila Cores e fontes
Corporativa Corporativa
Rua São Paulo, 825 - Victor Konder

Blumenau - SC - CEP: 89012-001


Rua São Paulo, 825 - Victor Konder
Telefone: +55 47 3039-3580
Blumenau - SC - CEP: 89012-001
universidade.corporativa@senior.com.br
Telefone: 0800 648 3300
www.senior.com.br
faleconosco@senior.com.br

PRODUTO AREA GESTÃO CAPITULO www.senior.com.br

ERP Controladoria Gestão de Compras Introdução