Valida se um novo anexo foi inserido

Validar se um novo anexo foi inserido na tarefa corrente:


    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;    
    }    
}```
6 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!