function beforeStateEntry(sequenceId){
	var isMobile = getValue("WKMobile");
	log.info("-----------beforesStateEntry: sequenceId:"+sequenceId);
	
	if (sequenceId == APROVARREPROVAR_PC) {
		log.info("-------aprova pc-------");
		log.info("aproverList:"+hAPI.getCardValue("approversList"));
		
		if (hAPI.getCardValue("approversList") == "") {
			throw "Não foi possível encontrar o aprovador no Fluig.";
		}else if(hAPI.getCardValue("approversList") == ""){
			throw "Não foi possível encontrar o RECNO do pedido.";
		}else{
			
			var arrayEmails = hAPI.getCardValue("approversMailList").split(",");
			var constraintType;
			
			if(arrayEmails.length == 0){
				throw "Não foi possível encontrar o aprovador no Fluig.";
			}else if(arrayEmails.length == 1){
				constraintType = ConstraintType.MUST;
			}else{
				constraintType = ConstraintType.SHOULD;
			}
			
			var constraints = new Array();
			
			for (var i = 0; i < arrayEmails.length; i++) {
				var constraint = DatasetFactory.createConstraint("mail", arrayEmails[i], arrayEmails[i], constraintType) ;
				constraints.push(constraint);
			}
			
			var dataset = DatasetFactory.getDataset("colleague", ["colleaguePK.colleagueId","mail"], constraints, null);
			
			if(dataset.rowsCount == 0){
				throw "Não foi possível encontrar o aprovador no Fluig.";
			}else{
				var matriculasArray = new Array(arrayEmails.length);
				
				for (var i = 0; i <dataset.rowsCount; i++) {
					var mail = dataset.getValue(i, "mail");
					for(var j = 0; j < arrayEmails.length; j++){
						if(arrayEmails[j] == mail){
							matriculasArray[j] = dataset.getValue(i, "colleaguePK.colleagueId");
							break;
						}
					}
				}
				
				var matriculas = "";
				
				for (var i = 0; i <matriculasArray.length; i++) {
					if(matriculas != "")
						matriculas += ",";
					
					matriculas += matriculasArray[i];
				}
				
				hAPI.setCardValue("approversList", matriculas);
				
			}
			
		}
	}
	
	if (sequenceId == FIM_COM_CANCELAMENTO_DE_PROCESSO || sequenceId == FIM ) {
        verificaComplemento();            
    }
	
	if(sequenceId == FIM){
		if(isMobile != null && isMobile == true){
			throw "Esta atividade não pode ser executada pelo mobile.";
		}
	}
}