Olá pessoal!
Estou tentando criar um dataset que faça integração com o wsReport e estou tendo problemas ao tentar executar o metodo GenerateReport, mais especificamente na inserção de filtros e parametros.
Eu fiz o procedimento para pegar os filtros e parametros pelo GetReportInfo e tentei criar o dataset da forma abaixo, porem tenho erro na conversao do xml
There was an error deserializing the object of type System.Collections.Generic.List`1[[RM.Rpt.Executor.Intf.RptParameterReportPar, RM.Rpt.Executor.Intf, Version=12.1.2402.232, Culture=neutral, PublicKeyToken=null]]. Data at the root level is invalid. Line 1, position 1.
A fução getFilters vai receber parametros futuramente q seria a expressao de filtro e a tabela de referencia, porem no momento estou tentando fazer funcionar com dados estaticos, mas sem sucesso. Alguem ja passou por algo semelhante ?
Grato pela atenção.
function createDataset(fields, constraints, sortFields)
{
var NOME_SERVICO = "wsReport"; // Nome do serviço criado no Fluig Studio
var CAMINHO_SERVICO = "com.totvs.WsReport"; // Caminho do serviço
var dataset = DatasetBuilder.newDataset();
var idRelatorio = 2254
var filters = getFilters()
var params = getParams()
var fileName = "teste.pdf"
var context = "CodColigada=1;CodFilial=2"
log.info("filters: " + filters)
log.info("params: " + params)
try {
// Obtem a instancia do serviço
var servico = ServiceManager.getServiceInstance(NOME_SERVICO);
// Inicializa o serviço
var instancia = servico.instantiate(CAMINHO_SERVICO);
// Obtem o WebService para consumo
var ws = instancia.getRMIwsReport();
var serviceHelper = servico.getBean();
// Autenticação no serviço
var authService = serviceHelper.getBasicAuthenticatedClient(ws, "com.totvs.IwsReport", 'usuario', 'senha');
var result = authService.generateReport(1, idRelatorio, filters, params, fileName, context);
log.info("!!! INFO !!!");
log.info(result);
if ((result != null) && (result.indexOf("===") != -1)) {
var msgErro = result.substring(0, result.indexOf("==="));
log.error("Erro: " + msgErro);
throw "Erro: " + msgErro;
}
} catch (e) {
if (e == null)
e = "Erro desconhecido; verifique o log do AppServer";
var mensagemErro = "Erro na comunicação com o app (linha: " + e.lineNumber + "): " + e;
log.error(mensagemErro);
log.info(mensagemErro);
dataset.addColumn("ERROR");
dataset.addColumn("MESSAGE_ERROR");
dataset.addRow(new Array(-1, mensagemErro));
}
return dataset;
}
function getFilters(filterExpression, tableName) {
return '<![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>RA = "2100234"</Filter>' +
' <TableName>SALUNO</TableName>' +
' </RptFilterByTablePar>' +
' </FiltersByTable>' +
' <MainFilter>true</MainFilter>' +
' <Value>(RA = "2100234")</Value>' +
' </RptFilterReportPar>' +
' </ArrayOfRptFilterReportPar>]]>'
}
function getParams() {
var xml = '<![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>Ano Letivo:</Description>' +
' <ParamName>PARAMETRO1</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">2025</Value>' +
' <Visible>true</Visible>' +
' </RptParameterReportPar>' +
' </ArrayOfRptParameterReportPar>]]>'
return xml
}