maia_modificado/.svn/pristine/de/de8eaf24211982d5a0e3a47c6b3...

94 lines
2.9 KiB
Plaintext
Executable File

package com.fp.bpmlib.ejb;
import java.sql.Timestamp;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import com.fp.bpmlib.ejb.local.LogMailBeanLocal;
import com.fp.common.logger.APPLogger;
import com.fp.persistence.commondb.data.SessionData;
import com.fp.persistence.commondb.data.ThreadFacade;
import com.fp.persistence.pbpm.gene.TbpmLogMail;
/**
* Clase utilitaria, utilizada para creacion de base de conocimento y RuntimeManager
*
* @author Jvc
* @version 2.1
*/
@Stateless(name="logMailBean")
public class LogMailBean implements LogMailBeanLocal {
// @PersistenceUnit(unitName = "local1")
private EntityManagerFactory emf;
@PostConstruct
private final void crearManager() {
try {
if (emf == null) {
Map<String, Object> configOverrides = new HashMap<String, Object>();
configOverrides.put("hibernate.ejb.cfgfile", "hibernateFlipMapping.cfg.xml");
emf = Persistence.createEntityManagerFactory("local1" , configOverrides);
}
SessionData sessionData = new SessionData();
sessionData.setCompany(1);
sessionData.setIsEjb(Boolean.FALSE);
ThreadFacade.setSaveRequest(sessionData);
} catch (Exception e) {
APPLogger.getLogger().error(e);
}
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void logMail(Map<String, Object> mapMail) throws Exception {
System.out.println("Ingresa al log del mail...................................");
EntityManager em=emf.createEntityManager();
TbpmLogMail logMail= new TbpmLogMail();
//logMail.setPk(getCodigo("CLOGMAIL"));
if(mapMail.get("subject")!=null){
logMail.setAsunto(mapMail.get("subject").toString());
}
if(mapMail.get("cont")!=null){
logMail.setContenido(mapMail.get("cont").toString());
}
if(mapMail.get("to")!=null){
logMail.setCorreo(mapMail.get("to").toString());
}
if(mapMail.get("error")!=null){
logMail.setDescripcionerror(mapMail.get("error").toString());
}
if(mapMail.get("estado")!=null){
logMail.setEstado(mapMail.get("estado").toString());
}
logMail.setFecharegistro(new Timestamp(new Date().getTime()));
if(em==null){
crearManager();
em=emf.createEntityManager();
}
em.clear();
em.persist(logMail);
em.flush();
em.close();
}
/**
* Entrega el entitymanagerfactory
*
* @return
*/
@Override
public EntityManagerFactory getEmf() {
return emf;
}
}