Bom dia @sergio.machado
Era pra ele já devolver o formato fileContent, pode ser que por ser devolução de dataset ele altere o formato.
Só me esclarece, você quer gravar o arquivo de retorno da API no Fluig isso? Se for isso eu tenho esse cara que eu criei ele utiliza os serviços SOAP do Fluig.
Antes de usar você precisa criar no Painel de controle do Fluig o serviço “ECMDocumentService”
{sua url}/webdesk/ECMDocumentService?wsdl
Depois sete alguns parâmetros no dataset (USUARIO, SENHA,ETC…)
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn('MSG');
dataset.addColumn("STATUS");
try{
var ID_REF = constraints[0].initialValue;
var FOLDER = constraints[1].initialValue; //NUMERO DA PASTA AONDE SERÁ GRAVADO O ARQUIVO
var DESCRIPTION = constraints[2].initialValue; //DESCRICAO DO ARQUIVO
var NAME = constraints[3].initialValue; //NOME DO ARQUIVO
var clientService = fluigAPI.getAuthorizeClientService();
var data = {
companyId: getValue("WKCompany") + '',
serviceCode: 'seu serviço',
endpoint: 'seu endpoint',
method: 'get',
timeoutService: '100',
options: {
encoding: 'ISO-8859-1',
mediaType: 'application/pdf',
useSSL: true
},
headers: {
'Content-Type': 'application/pdf',
'Content-disposition': 'attachment; filename=arquivo_gerado.pdf'
}
}
var vo = clientService.invoke(JSON.stringify(data));
if (vo.getResult() == null || vo.getResult().isEmpty()) {
dataset.addRow(new Array("Retorno está vazio",false));
} else {
var statusHtml = vo.getHttpStatusResult();
if(statusHtml==200){
//ARQUIVO OK
var stringValue = vo.getResult();
if (stringValue.length() == 1) { stringValue = "0" + stringValue; }
var str = new java.lang.String(stringValue); // Encode
var filecontent = java.util.Base64.getEncoder().encodeToString(str.getBytes("ISO-8859-1"));
var parentDocumentId = FOLDER;
var documentDescription = DESCRIPTION;
var fileName = NAME+".pdf";
var fileSize = 1;
try {
var response = processResult(callService(parentDocumentId,documentDescription,fileName,fileSize,filecontent));
dataset.addRow( new Array(JSONUtil.toJSON( response ), true) );
} catch(e) {
dataset.addRow( new Array(e.message, false) );
}
}else{
dataset.addRow( new Array("Status:"+statusHtml, false) );
}
}
} catch(err) {
dataset.addRow(new Array(err, false));
}
return dataset;
}
// * ============================================================================================================================
// * @DESCRIPTION: Chamada da configuração e execução do serviço
// * @PARAMS: {}
// * @RETURN: {}
// * ============================================================================================================================
function callService(parentDocumentId,documentDescription,fileName, fileSize,filecontent ){
var company = getValue("WKCompany");
var user = 'SEU USUARIO'; //INSIRA SEU USUARIO
var password = 'SEU PASSWORD'; //INSIRA SEU PASSWORD
var serviceHelper = ServiceManager.getService("ECMDocumentService");//INSIRA SEU SERVIÇO ECMDocumentService
var serviceLocator = serviceHelper.instantiate("com.totvs.technology.ecm.dm.ws.ECMDocumentServiceService");
var service = serviceLocator.getDocumentServicePort();
var response = service.createSimpleDocument(
user,
password,
company,
parentDocumentId,
user,
documentDescription,
fillAttachmentArray(serviceHelper, fileName, fileSize,filecontent)
);
return response;
}
// * ============================================================================================================================
// * @DESCRIPTION: Instância de AttachmentArray
// * @PARAMS: {}
// * @RETURN: {}
// * ============================================================================================================================
function fillAttachmentArray(serviceHelper, fileName, fileSize,filecontent) {
var result = serviceHelper.instantiate("com.totvs.technology.ecm.dm.ws.AttachmentArray");
result.getItem().add( fillAttachment( serviceHelper,fileName, fileSize,filecontent ) );
return result;
}
// * ============================================================================================================================
// * @DESCRIPTION: Instância de Attachment
// * @PARAMS: {}
// * @RETURN: {}
// * ============================================================================================================================
function fillAttachment( serviceHelper, fileName, fileSize,filecontent) {
var attachment = serviceHelper.instantiate("com.totvs.technology.ecm.dm.ws.Attachment");
attachment.setFileName( fileName );
attachment.setFileSize( fileSize );
attachment.setAttach(false);
attachment.setPrincipal(false);
try{
var bytes = java.util.Base64.getDecoder().decode( new String( filecontent ) );
attachment.setFilecontent(bytes);
}catch(e){
log.info('RESPOSTA ----> REQ UNI [ERR] '+e );
}
return attachment;
}
function processResult( result ) {
result = result.getItem();
var retornoArr = new Array();
for (var i = 0; i < result.size(); i++) {
retornoArr.push( JSONUtil.toJSON( result.get(i) ) );
}
return retornoArr;
}