/**
*
*/
package net.conselldemallorca.helium.jbpm3.handlers;
import net.conselldemallorca.helium.jbpm3.integracio.Jbpm3HeliumBridge;
import net.conselldemallorca.helium.v3.core.api.dto.ExpedientDto;
import net.conselldemallorca.helium.v3.core.api.dto.PersonaDto;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.JbpmException;
import org.jbpm.graph.exe.ExecutionContext;
/**
* Handler per modificar el responsable d'un expedient.
*
* @author Limit Tecnologies <limit@limit.es>
*/
@SuppressWarnings("serial")
public class ExpedientResponsableModificarHandler extends AbstractHeliumActionHandler implements ExpedientResponsableModificarHandlerInterface {
private String responsableCodi;
private String varResponsableCodi;
public void execute(ExecutionContext executionContext) throws Exception {
logger.debug("Inici execució handler modificació responsable expedient");
String personaCodi = (String)getValorOVariable(
executionContext,
responsableCodi,
varResponsableCodi);
PersonaDto persona = Jbpm3HeliumBridge.getInstanceService().getPersonaAmbCodi(personaCodi);
if (persona != null) {
ExpedientDto expedient = getExpedientActual(executionContext);
logger.debug("Modificant responsable de l'expedient (exp=" + expedient.getIdentificacioPerLogs() + ", responsable=" + personaCodi + ")");
try {
Jbpm3HeliumBridge.getInstanceService().expedientModificarResponsable(
getProcessInstanceId(executionContext),
persona.getCodi());
} catch (Exception ex) {
throw new JbpmException("Error al modificar l'expedient", ex);
}
logger.debug("Handler modificació responsable finalitzat amb èxit");
} else {
throw new JbpmException("No existeix cap persona amb aquest codi '" + personaCodi + "'");
}
}
public void setResponsableCodi(String responsableCodi) {
this.responsableCodi = responsableCodi;
}
public void setVarResponsableCodi(String varResponsableCodi) {
this.varResponsableCodi = varResponsableCodi;
}
private static final Log logger = LogFactory.getLog(ExpedientComentariModificarHandler.class);
}