Exemple #1
0
        /// <summary>
        /// 得到流程持久化实例一个对象实体
        /// </summary>
        /// <param name="conn">OracleConnection</param>
        /// <param name="instance_id">实例ID</param>
        /// <returns></returns>
        public FLOW_INSTANCE_STATE GetInstanceModel(OracleConnection conn, string instance_id)
        {
            FLOW_INSTANCE_STATE model = new FLOW_INSTANCE_STATE();
            string selSql             = "SELECT INSTANCE_ID,STATE,STATUS,UNLOCKED,BLOCKED,INFO,MODIFIED,OWNER_ID,OWNED_UNTIL,NEXT_TIMER FROM INSTANCE_STATE WHERE   INSTANCE_ID=:INSTANCE_ID";

            OracleParameter[] pageparm =
            {
                new OracleParameter(":INSTANCE_ID", OracleType.Char, 36)
            };
            pageparm[0].Value = instance_id;
            OracleDataReader dr = OracleDataProvider.ExecuteReader(conn, selSql, pageparm);

            if (dr.Read())
            {
                model.INSTANCE_ID = dr["INSTANCE_ID"].ToString();                                                              //
                model.STATE       = (byte[])dr["STATE"];                                                                       //
                model.STATUS      = dr["STATUS"].ToString() != "" ? Convert.ToDecimal(dr["STATUS"]) : 0;                       //
                model.UNLOCKED    = dr["UNLOCKED"].ToString() != "" ? Convert.ToDecimal(dr["UNLOCKED"]) : 0;                   //
                model.BLOCKED     = dr["BLOCKED"].ToString() != "" ? Convert.ToDecimal(dr["BLOCKED"]) : 0;                     //
                model.INFO        = dr["INFO"].ToString();                                                                     //
                model.MODIFIED    = dr["MODIFIED"].ToString() != "" ? Convert.ToDateTime(dr["MODIFIED"]) : DateTime.Now;       //
                model.OWNER_ID    = dr["OWNER_ID"].ToString();                                                                 //
                model.OWNED_UNTIL = dr["OWNED_UNTIL"].ToString() != "" ? Convert.ToDateTime(dr["OWNED_UNTIL"]) : DateTime.Now; //
                model.NEXT_TIMER  = dr["NEXT_TIMER"].ToString() != "" ? Convert.ToDateTime(dr["NEXT_TIMER"]) : DateTime.Now;   //
            }
            dr.Close();
            conn.Close();
            return(model);
        }
Exemple #2
0
        /// <summary>
        /// 将每一步的流程审核过程中的持久化实例保存下来
        /// </summary>
        /// <param name="submitData">SubmitData</param>
        public static void AddInstance(SubmitData submitData, FlowUser fUser)
        {
            string instanceid = "";

            try
            {
                //1查找工作流程实例ID;2查询工作流持久化对像;3保存持久化
                FLOW_INSTANCE_STATEDAL  dal    = new FLOW_INSTANCE_STATEDAL();
                FLOW_FLOWRECORDMASTER_T master = dal.GetFlowerMasterIDByFormid(dal.GetOracleConnection(), submitData.FormID);
                if (master != null && !string.IsNullOrEmpty(master.INSTANCEID.Trim()))
                {
                    FLOW_INSTANCE_STATE entity = new FLOW_INSTANCE_STATE();
                    FLOW_INSTANCE_STATE model  = dal.GetInstanceModel(dal.GetOracleConnection("OracleConnection"), master.INSTANCEID);
                    if (!string.IsNullOrEmpty(model.INSTANCE_ID))
                    {
                        instanceid         = model.INSTANCE_ID;
                        entity.INSTANCE_ID = model.INSTANCE_ID;                //
                        entity.STATE       = model.STATE;                      //
                        entity.STATUS      = model.STATUS;                     //
                        entity.UNLOCKED    = model.UNLOCKED;                   //
                        entity.BLOCKED     = model.BLOCKED;                    //
                        entity.INFO        = model.INFO;                       //
                        entity.MODIFIED    = model.MODIFIED;                   //
                        entity.OWNER_ID    = model.OWNER_ID;                   //
                        entity.OWNED_UNTIL = model.OWNED_UNTIL;                //
                        entity.NEXT_TIMER  = model.NEXT_TIMER;                 //
                        entity.CREATEID    = submitData.ApprovalUser.UserID;   //创建人ID
                        entity.CREATENAME  = submitData.ApprovalUser.UserName; //创建人姓名
                        entity.EDITID      = fUser.NextEditUserID;             //下一个审核人ID
                        entity.EDITNAME    = fUser.NextEditUserName;           //下一个审核人姓名
                        entity.FORMID      = master.FORMID;
                        FLOW_INSTANCE_STATEDAL inDal = new FLOW_INSTANCE_STATEDAL();
                        inDal.Add(inDal.GetOracleConnection(), entity);
                        LogHelper.WriteLog("Formid=" + submitData.FormID + "; instanceid=" + instanceid + " 将每一步的流程审核过程中的持久化实例保存下来,成功!");
                    }
                    else
                    {
                        LogHelper.WriteLog("Formid=" + submitData.FormID + "; 没法找到持久化数据库的instanceid,可能丢失 instanceid=" + master.INSTANCEID + " ");
                    }
                }
            }
            catch (Exception e)
            {
                LogHelper.WriteLog("Formid=" + submitData.FormID + "; instanceid=" + instanceid + " 将每一步的流程审核过程中的持久化实例保存下来出错:异常信息:" + e.ToString());
                //throw new Exception(e.Message, e);
            }
        }
Exemple #3
0
        /// <summary>
        /// 增加一条数据(以实体传值)
        /// </summary>
        /// <param name="conn">OracleConnection</param>
        /// <param name="model">FLOW_INSTANCE_STATE</param>
        /// <returns></returns>
        public int Add(OracleConnection conn, FLOW_INSTANCE_STATE model)
        {
            string insSql = "INSERT INTO FLOW_INSTANCE_STATE (INSTANCE_ID,STATE,STATUS,UNLOCKED,BLOCKED,INFO,MODIFIED,OWNER_ID,OWNED_UNTIL,NEXT_TIMER,FORMID,CREATEID,CREATENAME,EDITID,EDITNAME) VALUES (:INSTANCE_ID,:STATE,:STATUS,:UNLOCKED,:BLOCKED,:INFO,:MODIFIED,:OWNER_ID,:OWNED_UNTIL,:NEXT_TIMER,:FORMID,:CREATEID,:CREATENAME,:EDITID,:EDITNAME)";

            OracleParameter[] pageparm =
            {
                new OracleParameter(":INSTANCE_ID", OracleType.Char,       36),
                new OracleParameter(":STATE",       OracleType.Blob),
                new OracleParameter(":STATUS",      OracleType.Number,     22),
                new OracleParameter(":UNLOCKED",    OracleType.Number,     22),
                new OracleParameter(":BLOCKED",     OracleType.Number,     22),
                new OracleParameter(":INFO",        OracleType.NClob),
                new OracleParameter(":MODIFIED",    OracleType.DateTime),
                new OracleParameter(":OWNER_ID",    OracleType.Char,       36),
                new OracleParameter(":OWNED_UNTIL", OracleType.DateTime),
                new OracleParameter(":NEXT_TIMER",  OracleType.DateTime),
                new OracleParameter(":FORMID",      OracleType.NVarChar,  100),
                new OracleParameter(":CREATEID",    OracleType.NVarChar,  100),
                new OracleParameter(":CREATENAME",  OracleType.NVarChar,  100),
                new OracleParameter(":EDITID",      OracleType.NVarChar,  100),
                new OracleParameter(":EDITNAME",    OracleType.NVarChar, 100)
            };
            pageparm[0].Value  = OracleDataProvider.GetValue(model.INSTANCE_ID); //
            pageparm[1].Value  = OracleDataProvider.GetValue(model.STATE);       //
            pageparm[2].Value  = OracleDataProvider.GetValue(model.STATUS);      //
            pageparm[3].Value  = OracleDataProvider.GetValue(model.UNLOCKED);    //
            pageparm[4].Value  = OracleDataProvider.GetValue(model.BLOCKED);     //
            pageparm[5].Value  = OracleDataProvider.GetValue(model.INFO);        //
            pageparm[6].Value  = OracleDataProvider.GetValue(model.MODIFIED);    //
            pageparm[7].Value  = OracleDataProvider.GetValue(model.OWNER_ID);    //
            pageparm[8].Value  = OracleDataProvider.GetValue(model.OWNED_UNTIL); //
            pageparm[9].Value  = OracleDataProvider.GetValue(model.NEXT_TIMER);  //
            pageparm[10].Value = OracleDataProvider.GetValue(model.FORMID);      //
            pageparm[11].Value = OracleDataProvider.GetValue(model.CREATEID);    //创建人ID
            pageparm[12].Value = OracleDataProvider.GetValue(model.CREATENAME);  //创建人姓名
            pageparm[13].Value = OracleDataProvider.GetValue(model.EDITID);      //下一个审核人ID
            pageparm[14].Value = OracleDataProvider.GetValue(model.EDITNAME);    //下一个审核人姓名

            return(ExecuteSQL(conn, insSql, pageparm));
        }