Olá, boa dia. Estou tentando enviar um documento via webservice, por um dataset (código 1). Tenho uma widget que fiz e funciona em uma página pública. Nesta página seleciono o documento (código 2) e depois envio para o servidor via dataset. O processo é iniciado, com o documento anexo, mas quando vou abrir o documento está vazio e corrompido. Alguém sabe dizer o que está acontecendo, o quu falta para poder enviar o documento?
Código 1
var processAttachmentDto = serviceManager.instantiate("com.totvs.ProcessAttachmentDto")
log.info("processAttachmentDto init ...");
processAttachmentDto.setDocumentId(0);
processAttachmentDto.setVersion(1000);
processAttachmentDto.setOriginalMovementSequence(1);
processAttachmentDto.setColleagueId(usuarioId);
processAttachmentDto.setCompanyId(empresa);
processAttachmentDto.setDescription(descricaoDocumento);
log.info("processAttachmentDto setDescription ..."+descricaoDocumento);
processAttachmentDto.setFileName(nomeDocumento);
log.info("processAttachmentDto setFileName ..."+nomeDocumento);
processAttachmentDto.setDeleted(false);
processAttachmentDto.setPermission("1");
processAttachmentDto.setNewAttach(true);
log.info("processAttachmentDto ok ...");
var attachment = serviceManager.instantiate("com.totvs.Attachment");
log.info("attachment init ...");
attachment.setAttach(true); //Informar true para criar anexos no processo.
log.info("attachment setAttach ...");
attachment.setFileName(nomeDocumento); //Nome do arquivo do anexo
log.info("attachment setFileName ..."+nomeDocumento);
attachment.setPrincipal(false); //Anexo principal?
log.info("attachment setPrincipal ...");
//var byteArray= new java.lang.Byte(bytesDocumento+"");
// var byteArray=[bytesDocumento];
var bytes = []; // char codes
log.info("attachment bytesDocumento length..."+bytesDocumento.length);
for (var i = 0; i < bytesDocumento.length; ++i) {
log.info("attachment bytesDocumento pos..."+i);
var code = bytesDocumento.charCodeAt(i);
bytes = bytes.concat([code]);
}
log.info("attachment bytesDocumento ..."+bytes);
attachment.setFilecontent(bytes); //Informar os bytes do anexo
log.info("attachment ok ...");
processAttachmentDto.getAttachments().add(attachment);
var ProcessAttachmentDtoArray = serviceManager.instantiate("com.totvs.ProcessAttachmentDtoArray")
ProcessAttachmentDtoArray.getItem().add(processAttachmentDto);
service.startProcess(usuarioIntegrador,
senhaIntegrador,
empresa,
processo,
atividade,
userStringArray,
"Comentário: Iniciando automaticamente",
usuarioId+"",
true,
ProcessAttachmentDtoArray,
stringArrayArray,
ProcessTaskAppointmentDtoArray,
false);
Código 2
<input
id="arquivo"
type="file"
name="arquivo"
data-url="/ecm/upload"
class="btn btn-primary btn-sm btn-block"
title="Buscar Arquivo(s)"
multiple/>