Exportar tabela adicional pela API

Estou com uma tarefa aqui de exportar centenas de tabelas adicionais e queria implementar algo para fazer isso. Primeiro estou montando as chamadas. Analisei as chamadas que a Sankhya faz e cheguei até o serviço “TelasAdicionais.exportarEntidade”, algo como isso:

Carrega as tabelas adicionais usando o CRUDServiceProvider.loadRecords. Aqui eu apenas adaptei de XML para JSON:

// https://<url skw>/mge/service.sbr?application=CadastroTelasAdicionais&resourceID=br.com.sankhya.core.cfg.TelasPersonalizadas&serviceName=CRUDServiceProvider.loadRecords&outputType=json

{
    "serviceName": "CRUDServiceProvider.loadRecords",
    "requestBody": {
        "dataSet": {
            "rootEntity": "Instancia",
            "includePresentationFields": "S",
            "parallelLoader": "true",
            "offsetPage": "0",
            "criteria": {
                "expression": {
                    "$": "(this.NUINSTANCIAPAI is null) AND (this.ADICIONAL = 'S' AND this.NUINSTANCIAEXT IS NULL AND this.TIPOFORM IS NULL)"
                }
            },
            "entity": {
                "fieldset": {
                    "list": "NUINSTANCIA,NOMEINSTANCIA,DESCRINSTANCIA,NOMETAB,ADICIONAL,EXPRESSAO,RESOURCEID,DESCRTELA,CATEGORIA"
                }
            }
        }
    }
}

Depois chama o TelasAdicionais.exportarEntidade passando o nro da instância e sua categoria:

// http://<skw url>/mge/service.sbr?serviceName=TelasAdicionais.exportarEntidade&application=CadastroTelasAdicionais&resourceID=br.com.sankhya.core.cfg.TelasPersonalizadas

<serviceRequest serviceName="TelasAdicionais.exportarEntidade">
	<requestBody>
		<entity nuInstancia="<id instancia>" categoria="<categoria>/>
		<clientEventList>
			<clientEvent>br.com.sankhya.mgecore.help.tela.adicional.existente</clientEvent>
			<clientEvent>confirmacao.conversao.view.com.registros</clientEvent>
			<clientEvent>recurso.existente.na.importacao</clientEvent>
		</clientEventList>
	</requestBody>
</serviceRequest>

E esse último serviço devolve só a referência do arquivo e não descobri como baixa-lo, alguém sabe se é possível?

<?xml version="1.0" encoding="ISO-8859-1"?>

<serviceResponse serviceName="TelasAdicionais.exportarEntidade" status="1" pendingPrinting="false" transactionId="...">

    <responseBody>

        <file name="..." />

    </responseBody>

</serviceResponse>
2 respostas