Este artigo tem como objetivo detalhar e exemplificar como é feito uma chamada WSDL para consultar os dados no sistema SIQ.
Conforme iremos ver a seguir, o artigo indica os passos de como é possível obter os dados através de chamada REST e também a explicação de cada parametros/variáveis necessárias para essa requisição.
Tópicos:
- Preparando o Ambiente para simular webservice (WSDL)
- Cenário de Exemplificação de uma Chamada WSDL e obtendo retorno dos dados ( API Teste )
- Configurando o WSDL no Power BI
Preparando Ambiente para simular Webservice
A seguir , nos vamos sugerir a instalação de um programa a qual podemos simular a chamada de um WSDL para acesso consultas de dados.
A nossa sugestão é instalar uma extensão do crhome - "Talend API Tester"
Abaixo segue os passos:
- Passo 1
https://chrome.google.com/webstore/
- Passo 2
Localize a extensão "Talend API Tester"
- Passo 3
Acesse a extensão do Chrome
Cenário de Exemplificação de uma Chamada WSDL e obtendo retorno dos dados ( API Teste )
- Passo 1 - Obtendo uma Autenticação WSDL
Adicionar o endereço URL da chamada WSDL:
https://www.siq.com.br/siq_sales/authenticatorService
Adicionar as informações do cabeçalho da requisição:
Content-Type:text/xml
Adicionar as informações do corpo da requisição :
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://security.siq.com.br/">
<soapenv:Header/>
<soapenv:Body>
<sec:getToken>
<login>powerBI</login>
<authenticationKey>-1064577163335595515224097634565342078671252409397321449799671564532717134899633842397734815605963</authenticationKey>
</sec:getToken>
</soapenv:Body>
</soapenv:Envelope>
Retorno da Requisição
<env:Envelopexmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<sec:getTokenResponsexmlns:sec="http://security.siq.com.br/">
<return>a19b3ecb4677731d25f1a84383e372461628105677692</return>
</sec:getTokenResponse>
</env:Body>
</env:Envelope>
Exemplo da Requisição.
- Passo 2 - Obtendo uma Autenticação Rest
Adicionar o endereço URL da chamada REST:
https://www.siq.com.br/siq_sales/seam/resource/rest/authenticator/login
Adicionar as informações do cabeçalho da requisição:
Content-Type:application/json
Adicionar as informações do corpo da requisição :
{
"user":"powerBI",
"password":"powerBI123"
}
Retorno da Requisição
{
"login": "powerBI",
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6InBvd2VyQkkiLCJleHAiOjE2MjU5NDE5NDIsInVzZXJJZCI6MjE0NX0.dw_vRy0K4LHGHpzMlpZo0I7KV_Ihh8clHpmIQHv00dg",
"name": "powerBI",
"id": 2145
}
Exemplo da Requisição.
- Passo 3 - Invocando o XML da consulta desejada
Adicionar o endereço URL da chamada REST:
https://www.siq.com.br/siq_sales/queryService
Adicionar as informações do cabeçalho da requisição:
**Deverá ser considerada a authorization da autenticação REST
Content-Type:text/xml
authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6Ik1hc3RlciIsImV4cCI6MTYyODE5MjU4NCwidXNlcklkIjoxfQ.n6KxUM1MO6Sxd_31oKU2-67JyQOFDFPW6YTN0pcyCz8
Adicionar as informações do corpo da requisição :
**Deverá ser considerada a Client Token da autenticação WSDL
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.infrastructure.siq.com.br/">
<soapenv:Header/>
<soapenv:Body>
<web:executeQuery>
<query>
select
siq_categ_commodity.name commodity,
siq_categ.NAME application,
siq_item.cod ,
siq_item.name,
SIQ_RESP_PCK.getCode(siq_insp.ID_RESP_ITEM_OWNER) supplier_code,
SIQ_RESP_PCK.getName(siq_insp.ID_RESP_ITEM_OWNER) supplier_name,
(siq_insp.end_dt ) end_dt,
sum(( select count(*) from siq_insp siq_insp_pend where siq_insp_pend.id = siq_insp.id and siq_insp.id_insp_type = 1 and siq_insp.end = 0)) insp_lot_du_pend,
sum(( select count(*) from siq_insp siq_insp_approved where siq_insp_approved.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'APPROVED' and siq_insp.id_insp_type = 1 and siq_insp.end = 1)) insp_lot_du_appr,
sum(( select count(*) from siq_insp siq_insp_conditional where siq_insp_conditional.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'CONDITIONAL_APPROVED' and siq_insp.id_insp_type = 1 and siq_insp.end = 1)) insp_lot_du_conditional_appr,
sum(( select count(*) from siq_insp siq_insp_reproved where siq_insp_reproved.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'REPROVED' and siq_insp.id_insp_type = 1 and siq_insp.end = 1)) insp_lot_du_rep,
sum(( select sum(siq_insp.qty) from siq_insp siq_insp_pend where siq_insp_pend.id = siq_insp.id and siq_insp.id_insp_type = 1 and siq_insp.end = 0)) insp_qty_du_pend,
sum(( select sum(siq_insp.qty) from siq_insp siq_insp_approved where siq_insp_approved.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'APPROVED' and siq_insp.id_insp_type = 1 and siq_insp.end = 1)) insp_qty_du_appr,
sum(( select sum(siq_insp.qty) from siq_insp siq_insp_conditional where siq_insp_conditional.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'CONDITIONAL_APPROVED' and siq_insp.id_insp_type = 1 and siq_insp.end = 1)) insp_qty_du_cond_appr,
sum(( select sum(siq_insp.qty) from siq_insp siq_insp_reproved where siq_insp_reproved.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'REPROVED' and siq_insp.id_insp_type = 1 and siq_insp.end = 1)) insp_qty_du_rep ,
sum(( select count(*) from siq_insp siq_insp_pend where siq_insp_pend.id = siq_insp.id and siq_insp.id_insp_type = 3 and siq_insp.end = 0)) pos_lot_du_pend,
sum(( select count(*) from siq_insp siq_insp_approved where siq_insp_approved.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'APPROVED' and siq_insp.id_insp_type = 3 and siq_insp.end = 1)) pos_lot_du_appr,
sum(( select count(*) from siq_insp siq_insp_conditional where siq_insp_conditional.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'CONDITIONAL_APPROVED' and siq_insp.id_insp_type = 3 and siq_insp.end = 1)) pos_lot_du_conditional_appr,
sum(( select count(*) from siq_insp siq_insp_reproved where siq_insp_reproved.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'REPROVED' and siq_insp.id_insp_type = 3 and siq_insp.end = 1)) pos_lot_du_repr,
sum(( select sum(siq_insp.qty) from siq_insp siq_insp_pend where siq_insp_pend.id = siq_insp.id and siq_insp.id_insp_type = 3 and siq_insp.end = 0)) pos_qty_du_pend,
sum(( select sum(siq_insp.qty) from siq_insp siq_insp_approved where siq_insp_approved.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'APPROVED' and siq_insp.id_insp_type = 3 and siq_insp.end = 1)) pos_qty_du_appr,
sum(( select sum(siq_insp.qty) from siq_insp siq_insp_conditional where siq_insp_conditional.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'CONDITIONAL_APPROVED' and siq_insp.id_insp_type = 3 and siq_insp.end = 1)) pos_qty_du_conditional_appr,
sum(( select sum(siq_insp.qty) from siq_insp siq_insp_reproved where siq_insp_reproved.id = siq_insp.id and SIQ_WORKFLOW_PCK.getStatus(siq_insp.ID_WRFL_RESUL) = 'REPROVED' and siq_insp.id_insp_type = 3 and siq_insp.end = 1)) pos_qty_du_rep
from siq_item, siq_ITEM_APP_TYPE, siq_categ, siq_insp, siq_commodity, siq_categ siq_categ_commodity
where siq_ITEM_APP_TYPE.id_categ = siq_categ.id(+)
and siq_item.ID_ITEM_APP_TYPE = siq_ITEM_APP_TYPE.id(+)
and siq_insp.id_item = siq_item.id
and siq_commodity.id_categ = siq_categ_commodity.id(+)
and siq_item.ID_commodity = siq_commodity.id(+)
<!--and siq_insp.ID_RESP_INSP_LOCAL = 86
and siq_categ_commodity.name = 'PF Ferrolho'-->
group by siq_categ_commodity.name,
siq_categ.NAME ,
siq_item.cod ,
siq_item.name,
SIQ_RESP_PCK.getCode(siq_insp.ID_RESP_ITEM_OWNER) ,
SIQ_RESP_PCK.getName(siq_insp.ID_RESP_ITEM_OWNER) ,
(siq_insp.end_dt )
order by 1,2,3,4,5,6,7</query>
<showColumns>false</showColumns>
<clientId>powerBI</clientId>
<clientToken>927992e3f82a41b5a6d7e37f1feee9711628106228279</clientToken>
<parameters>
<!--Zero or more repetitions:-->
<!--
<item>
<index>?</index>
<type>?</type>
<value>?</value>
</item>
-->
</parameters>
</web:executeQuery>
</soapenv:Body>
</soapenv:Envelope>
- Passo 4
Simulando uma execução.
Passo 5
Retorno dos dados
Configurando o WSDL no Power BI
Consultar documento que encontra-se no SIQ-DOC :
0076/20 - Procedimento para integração de consulta SIQ com PowerBI ( queryWS )
Verificar sempre a aba "Detalhes de Configurações de Servidores SIQ"
na transação SERVER.
Deve ter a chave "allowWebServiceCalls" deve estar com valor true
Comentários
0 comentário
Por favor, entre para comentar.