Search in sources :

Example 1 with Trx

use of org.compiere.util.Trx in project adempiere by adempiere.

the class DeleteEntityControler method deleteSelectedNodes.

/**
	 * De;ete Selected nodes
	 * @param commit
	 * @return
	 */
public int deleteSelectedNodes() {
    int totalCount = 0;
    Trx trx = Trx.get(Trx.createTrxName("delete"), true);
    String errorMsg = null;
    try {
        //	
        while (!stack.empty()) {
            DeleteEntitiesModel tableData = (DeleteEntitiesModel) stack.pop();
            totalCount += tableData.delete(trx);
        }
        //	Commit changes
        if (!isDryRun()) {
            trx.commit(true);
        } else {
            trx.rollback(true);
        }
    } catch (Exception ex) {
        errorMsg = ex.getLocalizedMessage();
        log.log(Level.WARNING, "Cascade delete failed.", ex);
        totalCount = 0;
        trx.rollback();
    } finally {
        trx.close();
    }
    //	Exception
    if (errorMsg != null)
        throw new AdempiereException(errorMsg);
    //	Return
    return totalCount;
}
Also used : AdempiereException(org.adempiere.exceptions.AdempiereException) DeleteEntitiesModel(org.adempiere.util.DeleteEntitiesModel) Trx(org.compiere.util.Trx) SQLException(java.sql.SQLException) AdempiereException(org.adempiere.exceptions.AdempiereException)

Example 2 with Trx

use of org.compiere.util.Trx in project adempiere by adempiere.

the class OrderTest method run.

/**
	 * 	Run
	 */
public void run() {
    long time = System.currentTimeMillis();
    int count = 0;
    MBPartner bp = new MBPartner(Env.getCtx(), 117, null);
    bp.setSOCreditStatus(MBPartner.SOCREDITSTATUS_NoCreditCheck);
    bp.saveEx();
    //
    for (int i = 0; i < m_numberOrders; i++) {
        Trx trx = Trx.get(Trx.createTrxName("Test" + m_no + "_" + i), true);
        trx.start();
        //
        MOrder order = new MOrder(Env.getCtx(), 0, trx.getTrxName());
        order.setDescription("#" + m_no + "_" + i);
        //	POS
        order.setC_DocTypeTarget_ID(135);
        //	C&W
        order.setC_BPartner_ID(117);
        //	GardenAdmin
        order.setSalesRep_ID(101);
        order.setDeliveryRule(MOrder.DELIVERYRULE_Force);
        if (!order.save()) {
            log.warning("#" + m_no + "_" + i + ": Not saved(1)");
            m_errors++;
            continue;
        }
        Random r = new Random();
        int linesNumber = r.nextInt(m_maxLines) + 1;
        for (int j = 0; j < linesNumber; j++) {
            MOrderLine line = new MOrderLine(order);
            //	Oak Tree
            line.setM_Product_ID(123);
            line.setQty(new BigDecimal(5));
            if (!line.save()) {
                log.warning("#" + m_no + "_" + i + ": Line not saved");
                m_errors++;
            }
        }
        //	Process
        order.setDocAction(DocAction.ACTION_Complete);
        if (!order.processIt(DocAction.ACTION_Complete)) {
            log.warning("#" + m_no + "_" + i + ": Not processed");
            m_errors++;
            trx.rollback();
            trx.close();
            continue;
        }
        if (!order.save()) {
            log.warning("#" + m_no + "_" + i + ": Not saved(2)");
            m_errors++;
        } else
            count++;
        trx.commit();
        trx.close();
        //
        log.info(order.toString());
    }
    time = System.currentTimeMillis() - time;
    log.warning("#" + m_no + ", Errors=" + m_errors + ", Count=" + count + " " + ((float) count * 100 / m_numberOrders) + "% - " + time + "ms - ea " + ((float) time / count) + "ms");
}
Also used : MOrder(org.compiere.model.MOrder) Random(java.util.Random) MBPartner(org.compiere.model.MBPartner) Trx(org.compiere.util.Trx) MOrderLine(org.compiere.model.MOrderLine) BigDecimal(java.math.BigDecimal)

Example 3 with Trx

use of org.compiere.util.Trx in project adempiere by adempiere.

the class AdempiereTestCase method commit.

/**
	 * Commit active transaction
	 * @throws Exception
	 */
protected void commit() throws Exception {
    Trx trx = null;
    if (trxName != null)
        trx = Trx.get(trxName, false);
    if (trx != null && trx.isActive()) {
        try {
            trx.commit(true);
        } finally {
            trx.close();
        }
    }
    trx = null;
}
Also used : Trx(org.compiere.util.Trx)

Example 4 with Trx

use of org.compiere.util.Trx in project adempiere by adempiere.

the class AdempiereTestCase method tearDown.

@Override
protected void tearDown() throws Exception {
    super.tearDown();
    // Rollback the transaction, if any
    Trx trx = null;
    if (trxName != null)
        trx = Trx.get(trxName, false);
    if (trx != null && trx.isActive()) {
        trx.rollback();
        trx.close();
    }
    trx = null;
    testProperties = null;
    m_Ctx = null;
}
Also used : Trx(org.compiere.util.Trx)

Example 5 with Trx

use of org.compiere.util.Trx in project adempiere by adempiere.

the class WProcess method createProcessPage.

//	createParameterPage
//Modified by Rob klein 4/29/07	
/**************************************************************************
	 * 	Create Parocess Page
	 * 	@param request request
	 *	@param AD_Process_ID Process
	 *	@return Page
	 */
public void createProcessPage(HttpServletRequest request, HttpServletResponse response, int AD_Process_ID, int AD_Window_ID) {
    WebSessionCtx wsc = WebSessionCtx.get(request);
    MProcess process = MProcess.get(wsc.ctx, AD_Process_ID);
    log.info("PI table id " + process.get_Table_ID());
    log.info("PI table name id " + process.get_TableName());
    log.info("PI table client id " + process.getAD_Client_ID());
    log.info("PI table process id " + process.getAD_Process_ID());
    log.info("PI  process class name " + process.getClassname());
    //	need to check if Role can access
    WebDoc doc = null;
    if (process == null) {
        doc = WebDoc.createWindow("Process Not Found");
    } else {
        doc = WebDoc.createWindow(process.getName());
        td center = doc.addWindowCenter(false);
        if (process.getDescription() != null)
            center.addElement(new p(new i(process.getDescription())));
        if (process.getHelp() != null)
            center.addElement(new p(process.getHelp(), AlignType.LEFT));
        //	Create Process Instance
        MPInstance pInstance = fillParameter(request, process);
        //		
        int AD_Table_ID = WebUtil.getParameterAsInt(request, "AD_Table_ID");
        int AD_Record_ID = WebUtil.getParameterAsInt(request, "AD_Record_ID");
        ProcessInfo pi = new ProcessInfo(process.getName(), process.getAD_Process_ID(), AD_Table_ID, AD_Record_ID);
        pi.setAD_User_ID(Env.getAD_User_ID(wsc.ctx));
        pi.setAD_Client_ID(Env.getAD_Client_ID(wsc.ctx));
        pi.setClassName(process.getClassname());
        log.info("PI client id " + pi.getAD_Client_ID());
        pi.setAD_PInstance_ID(pInstance.getAD_PInstance_ID());
        //	Info
        p p = new p();
        p.addElement(Msg.translate(wsc.ctx, "AD_PInstance_ID") + ": " + pInstance.getAD_PInstance_ID());
        center.addElement(p);
        //	Start
        boolean processOK = false;
        if (process.isWorkflow()) {
            Trx trx = Trx.get(Trx.createTrxName("WebPrc"), true);
            try {
                WProcessCtl.process(this, AD_Window_ID, pi, trx, request);
                //processOK = process.processIt(pi, trx);			
                trx.commit();
                trx.close();
            } catch (Throwable t) {
                trx.rollback();
                trx.close();
            }
            if (pi.isError()) {
                center.addElement(new p("Error:" + pi.getSummary(), AlignType.LEFT).setClass("Cerror"));
                processOK = false;
            } else {
                center.addElement(new p("OK: Workflow Started", AlignType.LEFT));
                processOK = true;
            }
            center.addElement(new p().addElement(pi.getSummary()));
            center.addElement(pi.getLogInfo(true));
        }
        String jasper = process.getJasperReport();
        if (process.isJavaProcess()) {
            if (jasper != null) {
                pi.setPrintPreview(false);
                pi.setIsBatch(true);
            }
            Trx trx = Trx.get(Trx.createTrxName("WebPrc"), true);
            try {
                processOK = process.processIt(pi, trx);
                trx.commit();
                trx.close();
            } catch (Throwable t) {
                trx.rollback();
                trx.close();
            }
            if (!processOK || pi.isError()) {
                center.addElement(new p("Error:" + pi.getSummary(), AlignType.LEFT).setClass("Cerror"));
                processOK = false;
            } else {
                if (jasper != null) {
                    String error = WebUtil.streamFile(response, pi.getPDFReport());
                    //String error = streamResult (request, response, pInstance.getAD_PInstance_ID(), file);
                    if (error == null)
                        return;
                    doc = WebDoc.create(error);
                    wsc.ctx.put("AD_PInstance_ID=" + pInstance.getAD_PInstance_ID(), "ok");
                } else {
                    center.addElement(new p().addElement(pi.getSummary()));
                    center.addElement(pi.getLogInfo(true));
                }
            }
        }
        //	Report
        if (process.isReport()) //if (processOK && process.isReport())
        {
            if (jasper == null) {
                log.info(response.toString());
                ReportEngine re = ReportEngine.get(wsc.ctx, pi);
                if (re == null) {
                    center.addElement(new p("Could not start ReportEngine", AlignType.LEFT).setClass("Cerror"));
                } else {
                    try {
                        File file = File.createTempFile("WProcess", ".pdf");
                        boolean ok = re.createPDF(file);
                        if (ok) {
                            String error = WebUtil.streamFile(response, file);
                            //String error = streamResult (request, response, pInstance.getAD_PInstance_ID(), file);
                            if (error == null)
                                return;
                            doc = WebDoc.create(error);
                            //Modified by Rob Klein 6/1/07
                            /**
							String url = "WProcess?AD_PInstance_ID=" 
								+ pInstance.getAD_PInstance_ID()
								+ "&File=" 
								+ URLEncoder.encode(file.getAbsolutePath(), WebEnv.ENCODING);
							a link = new a (url, null, a.TARGET_BLANK, process.getName());
							center
								.addElement(new p()
									.addElement("Report created: ")
									.addElement(link));
							//	Marker that Process is OK
							 * */
                            wsc.ctx.put("AD_PInstance_ID=" + pInstance.getAD_PInstance_ID(), "ok");
                        } else
                            center.addElement(new p("Could not create Report", AlignType.LEFT).setClass("Cerror"));
                    } catch (Exception e) {
                        center.addElement(new p("Could not create Report:", AlignType.LEFT).setClass("Cerror"));
                        center.addElement(e.toString());
                    }
                }
            }
        }
    }
    doc.addPopupClose(wsc.ctx);
    try {
        WebUtil.createResponse(request, response, this, null, doc, false);
    } catch (IOException e) {
        log.info(e.toString());
    }
}
Also used : MProcess(org.compiere.model.MProcess) org.apache.ecs.xhtml.i(org.apache.ecs.xhtml.i) ProcessInfo(org.compiere.process.ProcessInfo) IOException(java.io.IOException) WebSessionCtx(org.compiere.util.WebSessionCtx) ServletException(javax.servlet.ServletException) SQLException(java.sql.SQLException) IOException(java.io.IOException) org.apache.ecs.xhtml.td(org.apache.ecs.xhtml.td) org.apache.ecs.xhtml.p(org.apache.ecs.xhtml.p) Timestamp(java.sql.Timestamp) MPInstance(org.compiere.model.MPInstance) ReportEngine(org.compiere.print.ReportEngine) WebDoc(org.compiere.util.WebDoc) Trx(org.compiere.util.Trx) File(java.io.File)

Aggregations

Trx (org.compiere.util.Trx)62 SQLException (java.sql.SQLException)21 ProcessInfo (org.compiere.process.ProcessInfo)17 AdempiereException (org.adempiere.exceptions.AdempiereException)13 MPInstance (org.compiere.model.MPInstance)12 DBException (org.adempiere.exceptions.DBException)11 Timestamp (java.sql.Timestamp)9 File (java.io.File)8 Connection (java.sql.Connection)8 Properties (java.util.Properties)8 MPInstancePara (org.compiere.model.MPInstancePara)8 PreparedStatement (java.sql.PreparedStatement)7 ResultSet (java.sql.ResultSet)7 BigDecimal (java.math.BigDecimal)6 IOException (java.io.IOException)5 CConnection (org.compiere.db.CConnection)5 MTable (org.compiere.model.MTable)5 PO (org.compiere.model.PO)5 SimpleDateFormat (java.text.SimpleDateFormat)4 ServletException (javax.servlet.ServletException)4