Buscar ID após transferência

Bom dia, estou com um problema nos eventos de processos.
Possuo um fluxo onde, se necessário Ações para resolver o problema é aberto um subprocesso para cada registro em uma tabela paiXfilho indicando em um campo zoom quem será o responsável por essa ação, porém, quando já aberto esse fluxo de ação, o responsável pode transferir para outro usuário concluir a tarefa.
Nessa ação de transferir precisava alterar o campo que apresenta o responsável na tabela do fluxo principal. Qual seria o evento de processo onde consiga pegar o ID do usuário que foi transferido a atividade?
Tentei pelo afterTaskSave mas retorna ainda o mesmo user que já era responsável, entrei em contato com o suporte também e me passaram para tentar com o afterTaskComplete, mas a atividade nem entra no evento ao transferir de usuário.

1 curtida

Boa tarde Lucas, tudo bom ?

O responsável deverá selecionar para qual pessoa deseja transferir a demanda, mantendo-a na mesma tarefa ?

fiz algo parecido pegando o id por um Dataset

function createDataset(fields, constraints, sortFields) {
    var datasetRetorno = DatasetBuilder.newDataset();
    datasetRetorno.addColumn("FULL_NAME");
    datasetRetorno.addColumn("IDP_ID");
    datasetRetorno.addColumn("ativo");

    var dataset1 = DatasetFactory.getDataset("colleague", null, null, ['colleagueName']);

    for (var i = 0; i < dataset1.rowsCount; i++) {
        var colleagueId = dataset1.getValue(i, "colleaguePK.colleagueId");
        
        if (dataset1.getValue(i, "active") == "true" && dataset1.getValue(i, "mail") != "'************'"
        	&& dataset1.getValue(i, "mail") != "'************'"
        	&& dataset1.getValue(i, "mail") != "'************'"
        	&& dataset1.getValue(i, "mail") != "'************'"
        	&& dataset1.getValue(i, "mail") != "'************'"
        	&& dataset1.getValue(i, "mail") != "'************'"
        	&& dataset1.getValue(i, "mail") != "'************'"
        	){

        	
	        var returnFields = new Array("colleagueName");
	        var c1 = DatasetFactory.createConstraint("colleaguePK.colleagueId", colleagueId, colleagueId, ConstraintType.MUST);
	        var colConstraints   = new Array(c1);
	
	        var dataset2 = DatasetFactory.getDataset("colleague", returnFields, colConstraints,  ['colleagueName']);
	
	        var colaborador = dataset2.getValue(0, "colleagueName");
	        var documento = dataset1.getValue(i, "colleaguePK.colleagueId") ;
	        var ativo = dataset1.getValue(i, "active")
	        datasetRetorno.addRow(new Array(colaborador, documento,ativo));
        }
    }

    return datasetRetorno;
}

Aqui eu chamei o dataset direto no formulário

<div style="margin:1%">
								<div class="form-field" data-type="textbox" data-field-name="txtDestino" id="txtDestino" >
									<div class="form-group">
										<label><b>*</b>Enviar Para o Destinatário<strong> (Supervisor)</strong> </label>
										<div class="form-group has-error">
											<select class="form-control" onchange="insereCampo()" name="txtDestino" dataset="usuariosFluig" datasetkey="IDP_ID" datasetvalue="FULL_NAME" addBlankLine="true" id="txtDestino"></select>
											<p class="help-block">Preencha esse campo!</p>
										</div>
									</div>
								</div>
							</div>

Em seguida fiz uma função para pegar o id e jogar para um campo para registrar, e no diagrama eu coloquei Atribuição por Campo de Formulário

image

Poderia, por gentileza, compartilhar como ficou o seu código?

Boa tarde Leonardo, obrigado por compartilhar, mas creio que não seja bem isso.

A parte de Criação e envio para responsável está ok já,


Ele gera o fluig normalmente, o problema está depois de gerado já quando vou tentar transferir.

Seleciono outro usuário e aí precisava pegar o ID desse usuário que estou transferindo para aí sim atualizar via API o campo “Responsável” lá da tabela.
Só que não consegui buscar esse ID por nenhum evento de processo, tentei pelo taskSave mas no LOG me trouxe o meu id e não o do usuário ERP.

INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) colleagueId :
INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) 3809
INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) nextSequenceId beforeSave:
INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) 5.0
INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) userList beforeSave:
INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) []
INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) colleagueId :
INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) 3809
INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) nextSequenceId afterSave:
INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) 5.0
INFO
08:54:24 - [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-1522) userList afterSave:
INFO

precisava encontrar uma forma de pegar o id do usuário que estou transferindo para que consiga no próprio evento de processo atualizar o campo de responsável.