Contar anexos por atividade

Prezados, é possível contar anexos por atividade? Detalhe: Imagine um diagrama com início, atividade1, atividade2 e fim. Gostaria de realizar uma validação em que no início seja obrigatório incluir pelo menos 2 anexos, na atividade1 seja obrigatório anexar pelo menos mais um documento e na atividade2 anexar pelo menos mais 3 anexos. Vejam que não existe consistência de número máximo e sim número mínimo de anexos por atividade. Comecei a verificar pelos datasets internos: processAttachment e processTask, mas encontrei algumas situações que não deram certo e não entendi.

Deu uma olhada no método listAttachments da hAPI ?

Acho que ele pode te ajudar a fazer o que você precisa.

http://tdn.totvs.com/x/8uAlE

tente o código abaixo no método beforeTaskSave do processo

function validaAnexos(){ // quantidade de anexos var attachments = hAPI.listAttachments(); var hasAttachment = false ;

if (attachments.size() > 0){ throw "qtd anexos: " + attachments.size() + " Anexos"; }else{ throw "Não possui anexo"; }

}

Eu utilizo o seguinte para validar se foi anexado algo numa atividade especifica.


function temAnexo(numState){        
        var process = getValue("WKNumProces");    
        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;    
    }

Para validar a quantidade de anexo por atividade, pode utilizar no "Regras Anexo" dentro do eclipse mesmo.

Passo 1: Clique na atividade onde quer validar a quantidade de anexo.

Passo 2: Selecionada a Atividade no passo 1, agora vá no menu no lado esquerdo "Regras Anexo".

Passo 3: Insira um "Novo" e configure uma lógica (maior/menor/...) e insira a quantidade desejada para aquela atividade específica, independente das outras, anteriores ou próximas.

obs: não coloquei nenhum Valor.

anexo.PNG

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.