Versão atual:

Envio de documento via webservice

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/>

Versão (1):

Ver a versão formatada

Envio de documento via webservice

Comentário

new question