setDueDate não funciona?

Eu tenho um processo no qual eu preciso definir um prazo para tarefa, é um formulário de procurações e dependendo do que é colocado nos campos altera a data desse prazo, porém do jeito que está, nem se quer está criando um prazo.


function afterTaskCreate(colleagueId){
    var atv = getValue("WKNumState");
    log.info("####### AFTER TASK CREATE ######");
    if (atv == 8 || atv == 12 || atv == 16 || atv == 20) {

        var thisProcess = getValue("WKNumProces"); // Número do processo.
        var threadSolicitation = 0; // Número do processo rodando em paralelo (Se não há processos em paralelo = 0).
        var deadline = getValue("DeadlineInString"); // Data em formato string (YYYY-MM-DD).
        var hourDeadline = (20 * 60 * 60) - 1; // hora em segundo (exemplo: 71999 = 19:59:59).
        var arraydateDeadline = deadline.split("-");
        var ano = arraydateDeadline[0]; // Posição 0 do array é o ano
        var mes = arraydateDeadline[1]; // Posição 1 do array é o mês
        var dia = arraydateDeadline[2]; // Posição 2 do array é o dia
        var dateDeadline = new Date();

        dateDeadline.setDate(dia);
        dateDeadline.setMonth(mes);
        dateDeadline.setFullYear(ano);

        hAPI.setDueDate(thisProcess, threadSolicitation, colleagueId, dateDeadline, hourDeadline);

    }
}

tem algo de errado nesse código? Ou eu deveria usar outra função em vez de afterTaskCreate?

Estranho não funcionar. Tenho um código semelhante e dá certo. Só existe a preocupação que essa classe Date considera o mês iniciando em 0, não em 1, então quase sempre precisa subtrair 1 do mês.