calling package with procedure out parameters

    public void postToBudget() {
        System.out.println("---Post to budget started : ");
        Row newUnitPlanHdrCurRow = ReusableMethodsClass.getCurrentRowFromVO("PiBudgNewunitPlanhdr1");

        String budgFlag = (String)newUnitPlanHdrCurRow.getAttribute("UpdtYn");
        System.out.println("---- budgFlag : " + budgFlag);

        if ("Y".equals(budgFlag)) {
            String comp = (String)newUnitPlanHdrCurRow.getAttribute("CompCode");
            String loginUser = (String)CommonCode.resolveExpression("#{pageFlowScope.LoginUserDtls.userCode}");
            Long cntrlNo = (Long)newUnitPlanHdrCurRow.getAttribute("CntrlNo");

            String qry = "{call pi_budg_pkg.Upd_Budg_Newunit(?,?,?,?,?)}";
            CallableStatement cst = ReusableMethodsClass.getAM().getDBTransaction().createCallableStatement(qry, 1);
            try {
                cst.setString(1, comp);
                cst.setLong(2, cntrlNo);
                cst.setString(3, loginUser);
                cst.registerOutParameter(4, Types.NUMERIC);
                cst.registerOutParameter(5, Types.VARCHAR);
                cst.execute();
                /*int errNo = cst.getInt(4);
                String errMsg = cst.getString(5);

                 if (errNo == 0){
                   ReusableMethodsClass.getAM().getDBTransaction().commit();
                }
                else{
                   ReusableMethodsClass.errorMsg(null, errMsg);
                } */
            } catch (Exception e) {
                System.out.println(e.getMessage());
                e.printStackTrace();
            } finally {
                try {
                    if (cst != null && !cst.isClosed())
                        cst.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }

Comments