Índice:


              

Introdução:


       O Web Service Reports Fornece serviços para gerar relatórios do TOTVS Reports de forma síncrona e assíncrona. O modelo de autenticação utilizado é o Basic Authentication.

(informação)      Utilizando Web Service do RM Reports no Fluig

Como Funciona:


       Estão expostos no wsReport alguns serviços, onde para consumi-los, é necessário enviar através de uma requisição um envelope SOAP passando os parâmetros de cada serviço. 

      O serviço é exposto pelo host conforme documentação abaixo:

      Como Expor os Web Services do RM através do Host


Para baixar os arquivos da aplicação exemplo em ASP.Net, clique aqui.


Segue abaixo o detalhamento e exemplos de utilização dos serviços em envelope SOAP:


Retorna a lista de todos os relatórios de uma determinada coligada.


Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:GetReportList>
         <!--Optional:-->
         <tot:codColigada>1</tot:codColigada>
      </tot:GetReportList>
   </soapenv:Body>
</soapenv:Envelope> 

Retorna a estrutura de um determinado relatório (utilizado apenas para conferencia).

Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:GetReportMetaData>
         <!--Optional:-->
         <tot:codColigada>1</tot:codColigada>
         <!--Optional:-->
         <tot:id>306</tot:id>
      </tot:GetReportMetaData>
   </soapenv:Body>
</soapenv:Envelope>

Retorna as informações de filtro e parâmetros, caso o relatório possua. 

O retorno é um xml de duas estruturas serializadas. Elas devem ser utilizadas separadamente ao chamar o método de geração do relatório.

Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:GetReportInfo>
         <!--Optional:-->
         <tot:codColigada>1</tot:codColigada>
         <!--Optional:-->
         <tot:idReport>306</tot:idReport>
      </tot:GetReportInfo>
   </soapenv:Body>
</soapenv:Envelope>

Gera efetivamente o relatório e retorna o identificador a ser utilizado para fazer o download do relatório pelo método GetFileChunk.

Veja que os filtros e os parâmetros correspondem ao que o método GetReportInfo retornou e foi passado separadamente.

Os filtros e parâmetros podem ser alterados conforme destaque abaixo.

Importante

Caso esteja executando um relatório Global, o valor da Coligada para execução do relatório e das consultas presentes no relatório pode ser passado através do parâmetro Contexto, por exemplo:

<tot:contexto>CodColigada=7;CodFilial=1</tot:contexto>

Caso não seja enviado, será utilizado a Coligada do relatório.

Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:GenerateReport>
         <!--Optional:-->
         <tot:codColigada>1</tot:codColigada>
         <!--Optional:-->
         <tot:id>306</tot:id>
         <!--Optional:-->
         <tot:filters><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<ArrayOfRptFilterReportPar xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.totvs.com.br/RM/">
  <RptFilterReportPar>
    <BandName>RptReport</BandName>
    <FiltersByTable>
      <RptFilterByTablePar>
        <Filter>PFUNC.CHAPA &gt;= '00001' AND
PFUNC.CHAPA &lt;= '00010'
</Filter>
        <TableName>PFUNC</TableName>
      </RptFilterByTablePar>
    </FiltersByTable>
    <MainFilter>true</MainFilter>
    <Value>(PFUNC.CHAPA &gt;= '00001' AND
PFUNC.CHAPA &lt;= '00010')</Value>
  </RptFilterReportPar>
</ArrayOfRptFilterReportPar>]]></tot:filters>
         <!--Optional:-->
         <tot:parameters><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<ArrayOfRptParameterReportPar xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.totvs.com.br/RM/">
  <RptParameterReportPar>
    <Description>PARAM_COLIGADA</Description>
    <ParamName>PARAM_COLIGADA</ParamName>
    <Type xmlns:d3p1="http://schemas.datacontract.org/2004/07/System" xmlns:d3p2="-mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089-System-System.RuntimeType" i:type="d3p2:RuntimeType" xmlns:d3p3="-mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089-System-System.UnitySerializationHolder" z:FactoryType="d3p3:UnitySerializationHolder" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
      <Data xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string" xmlns="">System.String</Data>
      <UnityType xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:int" xmlns="">4</UnityType>
      <AssemblyName xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string" xmlns="">mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyName>
    </Type>
    <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema" i:type="d3p1:string">1</Value>
    <Visible>true</Visible>
  </RptParameterReportPar>
  <RptParameterReportPar>
    <Description>PARAM_TESTE</Description>
    <ParamName>PARAM_TESTE</ParamName>
    <Type xmlns:d3p1="http://schemas.datacontract.org/2004/07/System" xmlns:d3p2="-mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089-System-System.RuntimeType" i:type="d3p2:RuntimeType" xmlns:d3p3="-mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089-System-System.UnitySerializationHolder" z:FactoryType="d3p3:UnitySerializationHolder" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
      <Data xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string" xmlns="">System.String</Data>
      <UnityType xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:int" xmlns="">4</UnityType>
      <AssemblyName xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string" xmlns="">mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyName>
    </Type>
    <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema" i:type="d3p1:string">1</Value>
    <Visible>true</Visible>
  </RptParameterReportPar>
</ArrayOfRptParameterReportPar>]]></tot:parameters>
         <!--Optional:-->
         <tot:fileName>Report.pdf</tot:fileName>
		 <!--Optional:-->
         <tot:contexto>CodColigada=1;CodFilial=1</tot:contexto>
      </tot:GenerateReport>
   </soapenv:Body>
</soapenv:Envelope>

Retorna o tamanho do relatório em bytes. Este resultado é utilizado para fazer o download parcial ou total do relatório pelo método GetFileChunk.

Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:GetGeneratedReportSize>
         <!--Optional:-->
         <tot:guid>33f3bc8a-2553-4ad2-a53f-a03b487844cf</tot:guid>
      </tot:GetGeneratedReportSize>
   </soapenv:Body>
</soapenv:Envelope>

Retorna o relatório gerado em base 64 e no formato especificado no parâmetro filename do método GenerateReport.

Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:GetFileChunk>
         <!--Optional:-->
         <tot:guid>33f3bc8a-2553-4ad2-a53f-a03b487844cf</tot:guid>
         <!--Optional:-->
         <tot:offset>0</tot:offset>
         <!--Optional:-->
         <tot:length>45484</tot:length>
      </tot:GetFileChunk>
   </soapenv:Body>
</soapenv:Envelope>

Funciona da mesma forma que o GenerateReport, porém não aguarda a geração do relatório e retorna um identificador único a ser utilizado para consultar o status da geração.

Importante

Caso esteja executando um relatório Global, o valor da Coligada para execução do relatório e das consultas presentes no relatório pode ser passado através do parâmetro Contexto, por exemplo:

<tot:contexto>CodColigada=7;CodFilial=1</tot:contexto>

Caso não seja enviado, será utilizado a Coligada do relatório.

Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:GenerateReportAsynchronous>
         <!--Optional:-->
         <tot:codColigada>1</tot:codColigada>
         <!--Optional:-->
         <tot:id>306</tot:id>
         <!--Optional:-->
         <tot:filters><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<ArrayOfRptFilterReportPar xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.totvs.com.br/RM/">
  <RptFilterReportPar>
    <BandName>RptReport</BandName>
    <FiltersByTable>
      <RptFilterByTablePar>
        <Filter>PFUNC.CHAPA &gt;= '00001' AND
PFUNC.CHAPA &lt;= '00010'
</Filter>
        <TableName>PFUNC</TableName>
      </RptFilterByTablePar>
    </FiltersByTable>
    <MainFilter>true</MainFilter>
    <Value>(PFUNC.CHAPA &gt;= '00001' AND
PFUNC.CHAPA &lt;= '00010'
)</Value>
  </RptFilterReportPar>
</ArrayOfRptFilterReportPar>]]></tot:filters>
         <!--Optional:-->
         <tot:parameters><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<ArrayOfRptParameterReportPar xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.totvs.com.br/RM/">
  <RptParameterReportPar>
    <Description>PARAM_COLIGADA</Description>
    <ParamName>PARAM_COLIGADA</ParamName>
    <Type xmlns:d3p1="http://schemas.datacontract.org/2004/07/System" xmlns:d3p2="-mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089-System-System.RuntimeType" i:type="d3p2:RuntimeType" xmlns:d3p3="-mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089-System-System.UnitySerializationHolder" z:FactoryType="d3p3:UnitySerializationHolder" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
      <Data xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string" xmlns="">System.String</Data>
      <UnityType xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:int" xmlns="">4</UnityType>
      <AssemblyName xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string" xmlns="">mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyName>
    </Type>
    <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema" i:type="d3p1:string">1</Value>
    <Visible>true</Visible>
  </RptParameterReportPar>
  <RptParameterReportPar>
    <Description>PARAM_TESTE</Description>
    <ParamName>PARAM_TESTE</ParamName>
    <Type xmlns:d3p1="http://schemas.datacontract.org/2004/07/System" xmlns:d3p2="-mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089-System-System.RuntimeType" i:type="d3p2:RuntimeType" xmlns:d3p3="-mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089-System-System.UnitySerializationHolder" z:FactoryType="d3p3:UnitySerializationHolder" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
      <Data xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string" xmlns="">System.String</Data>
      <UnityType xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:int" xmlns="">4</UnityType>
      <AssemblyName xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string" xmlns="">mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</AssemblyName>
    </Type>
    <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema" i:type="d3p1:string">1</Value>
    <Visible>true</Visible>
  </RptParameterReportPar>
</ArrayOfRptParameterReportPar>]]></tot:parameters>
         <!--Optional:-->
         <tot:fileName>Report.pdf</tot:fileName>
		 <!--Optional:-->
         <tot:contexto>CodColigada=1;CodFilial=1</tot:contexto>
      </tot:GenerateReportAsynchronous>
   </soapenv:Body>
</soapenv:Envelope>

Utilizado para checar o status da geração do relatório que foi demandado a partir do método GenerateReportAsynchronous.

O retorno é um código de status, seguido de um GUID a ser utilizado para fazer o download do relatório pelo método GetFileChunk. Ex:

  • 0;Wait – Indica que o relatório está sendo gerado
  • 1;xxxxxxxxxxxxxxxxxxxxxxxxxxxxx - Indica que foi gerado, seguido do GUID para download
  • 2;Erro xxxxxxx – Indica que ocorreu um erro, seguido da mensagem de erro
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:GetGeneratedReportStatus>
         <!--Optional:-->
         <tot:id>ff3fe362-2433-42a1-bda6-44e6d811e578</tot:id>
      </tot:GetGeneratedReportStatus>
   </soapenv:Body>
</soapenv:Envelope>

Aplicação de Teste:


        Para utilizar a aplicação de testes é necessário possuir o Microsoft Visual Studio.

  • Com o Visual Studio aberto: Clique nas opções FILE -> Open -> Web Site. Conforme exemplo abaixo:

             

  • Em seguida selecione a pasta descompactada e clique em "Open" conforme abaixo:

             


Produto: Framework

Versão: 12.1.12 ou superior

Processo: Web Services Reports