Valida se um novo anexo foi inserido

Validar se um novo anexo foi inserido na tarefa corrente:

function beforeTaskSave(colleagueId, nextSequenceId, userList) {

    var numState = getValue("WKNumState");
    var process = getValue("WKNumProces");
    var anexado = false;
    var message = "";

    if(numState == 0 && hAPI.listAttachments().size() < 2) {
        message += "<br/>- É necessario anexar os documentos;"
    }

    if (numState == 1){ //etapa do processo
        if (temAnexo() == false) message += "<br/>- É necessario anexar os documentos;";
    }

    if (message != "") throw "<br/><strong>Os campos abaixo são de preencimento obrigatório:</strong><br/>" + message;

    function temAnexo(){        
        var constraintProcessAttachment = DatasetFactory.createConstraint('processAttachmentPK.processInstanceId', process, process, ConstraintType.MUST);
        var datasetProcessAttachment = DatasetFactory.getDataset('processAttachment', null, new Array(constraintProcessAttachment), null);

        for(var i = 0; i < datasetProcessAttachment.rowsCount; i++) {
            var constraintProcessHistory1 = DatasetFactory.createConstraint('processHistoryPK.movementSequence', datasetProcessAttachment.getValue(i, "originalMovementSequence"), datasetProcessAttachment.getValue(i, "originalMovementSequence"), ConstraintType.MUST);
            var constraintProcessHistory2 = DatasetFactory.createConstraint('processHistoryPK.processInstanceId', process, process, ConstraintType.MUST);
            var constraintProcessHistory3 = DatasetFactory.createConstraint('processHistoryPK.companyId', datasetProcessAttachment.getValue(i, "processAttachmentPK.companyId"), datasetProcessAttachment.getValue(i, "processAttachmentPK.companyId"), ConstraintType.MUST);
            var constraintProcessHistory4 = DatasetFactory.createConstraint('stateSequence', numState, numState, ConstraintType.MUST);
            var datasetProcessHistory = DatasetFactory.getDataset('processHistory', null, new Array(constraintProcessHistory1, constraintProcessHistory2, constraintProcessHistory3, constraintProcessHistory4), null);
            for(var j = 0; j < datasetProcessHistory.rowsCount; j++) {                
                return true;            
            }    
        }
        return false;    
    }    
}
8 curtidas

Validações mais simples como obrigatoriedade de anexo, ou restrição de anexos, seja por quantidade, nome ou tipo pode ser feito via tela, sem código. Na aba de regras de anexo da atividade

https://tdn.totvs.com/display/public/HF/Configurar+atividades+e+fluxos#Configuraratividadesefluxos-05.AcessarabaRegrasdeanexos

4 curtidas

Massa @Thiago ! Já precisei utilizar esse código para exigir a inserção de pelo menos um anexo em uma atividade específica, com o processo já tendo ou não anexos. Foi um caso bem específico.

Valeu demais!

Bom dia Daniel,

Na linha 6 não seriam dois símbolos de igualdade? Usando apenas um símbolo de igualdade você está atribuindo 0 à variável numState.

Tá certinho cara…corrigi o código, mó vacilo!

1 curtida

Vacilão seria valeu?

Opa, foi mal…reli aqui e não estava te chamado de vacilão, estava ME chamando de vacilão!

1 curtida

Ah, tá, hahah, sem problema. Acontece, interpretar texto é complicado na internet, a gente não pega a forma que a pessoa fala e acaba interpretando errado.

1 curtida

Daniel, se eu quiser verificar a extenção dos arquivos?

se só quiser aceitar arquivos “.pdf”, por exemplo

A dica do amigo de fazer pelo eclipse e valida e vai te servir bem

Em valor vc pode colocar *.pdf
Espero que sirva

1 curtida