protected void LoadObject(string id)
        {
            JobBase result;

            //根据ID获取任务对象
            result    = JobBaseAdapter.Instance.Load(w => w.AppendItem("job_id", id)).FirstOrDefault();// ETLJobAdapter.Instance.Load(id);
            this.Data = result;
            //给控件赋值
            if (this.Data != null)
            {
                txt_JobName.Text        = this.Data.Name;
                txt_jobCategory.Text    = this.Data.Category.ToString();
                txt_JobDescription.Text = this.Data.Description.ToString();
                ch_IsAuto.Checked       = !this.Data.ISManual;

                //etl任务
                if (this.Data.JobType == JobType.ETLService)
                {
                    //etl实体列表
                    List <EtlGridObj> etls = new List <EtlGridObj>();
                    var etlJob             = ETLJobAdapter.Instance.Load(this.Data.JobID);
                    foreach (ETLEntity item in etlJob.ETLEntities)
                    {
                        etls.Add(new EtlGridObj()
                        {
                            ID          = item.ID,
                            CodeName    = item.Name,
                            Description = item.Description
                        });
                    }
                    gridEtl.InitialData    = etls;
                    ch_IsIncrement.Checked = etlJob.IsIncrement;
                    //Where条件
                    ETLJob loadEtl = ETLJobAdapter.Instance.Load(this.Data.JobID);
                    conditions.Value = JSONSerializerExecute.Serialize(loadEtl.ETLWhereConditions);
                }
                //WebService任务
                else
                {
                    this.Data = InvokeWebServiceJobAdapter.Instance.Load(w => w.AppendItem("JOB_ID", this.Data.JobID)).FirstOrDefault();
                    invokingServiceGrid.InitialData = (this.Data as InvokeWebServiceJob).SvcOperationDefs;
                }
                //是否手动任务
                if (!this.Data.ISManual)
                {
                    //计划列表
                    List <ScheduleGridObj> schedules = new List <ScheduleGridObj>();
                    foreach (JobSchedule item in this.Data.Schedules)
                    {
                        schedules.Add(new ScheduleGridObj()
                        {
                            ID          = item.ID,
                            Name        = item.Name,
                            Description = item.Description
                        });
                    }
                    grid.InitialData = schedules;
                }
            }
        }
Пример #2
0
        public XPCollection <ETLBusinessObject> GetNewerETLBusinessObject(Session session, Guid jobId, DateTime time)
        {
            XPCollection <ETLBusinessObject> etlBusinessObjectCollection = null;

            try
            {
                ETLJob job = session.GetObjectByKey <ETLJob>(jobId);
                if (job == null)
                {
                    return(null);
                }

                CriteriaOperator criteria_0 = new BinaryOperator("ETLJobId", job, BinaryOperatorType.Equal);
                CriteriaOperator criteria_1 = new BinaryOperator("RowStatus", 0, BinaryOperatorType.GreaterOrEqual);
                CriteriaOperator criteria_2 = new BinaryOperator("BusinessObjectIssuedDateTimeStamp", time, BinaryOperatorType.GreaterOrEqual);
                CriteriaOperator criteria   = GroupOperator.Combine(GroupOperatorType.And, criteria_0, criteria_1, criteria_2);

                etlBusinessObjectCollection = new XPCollection <ETLBusinessObject>(session, criteria);
            }
            catch (Exception)
            {
                throw;
            }
            return(etlBusinessObjectCollection);
        }
Пример #3
0
        public bool IsExistETLEntryObjectHistory(Session session, Guid jobId, Int64 objectEntryLogId)
        {
            bool result = false;

            try
            {
                ETLJob         job            = session.GetObjectByKey <ETLJob>(jobId);
                ObjectEntryLog objectEntryLog = session.GetObjectByKey <ObjectEntryLog>(objectEntryLogId);

                CriteriaOperator criteria_0 = new BinaryOperator(new OperandProperty("ETLBusinessObjectId.ETLJobId.ETLJobId"), job.ETLJobId, BinaryOperatorType.Equal);
                CriteriaOperator criteria_1 = new BinaryOperator("ObjectEntryLogId", objectEntryLog, BinaryOperatorType.Equal);
                CriteriaOperator criteria_2 = new BinaryOperator("RowStatus", 1, BinaryOperatorType.GreaterOrEqual);
                CriteriaOperator criteria   = GroupOperator.Combine(GroupOperatorType.And, criteria_0, criteria_1, criteria_2);

                ETLEntryObjectHistory etlEntryObjectHistory = session.FindObject <ETLEntryObjectHistory>(criteria);
                if (etlEntryObjectHistory != null)
                {
                    result = true;
                }
            }catch (Exception)
            {
                throw;
            }
            return(result);
        }
Пример #4
0
        public XPCollection <ETLBusinessObject> GetChangedIssuedDateETLBusinessObject(Session session, Guid jobId)
        {
            XPCollection <ETLBusinessObject> ChangedIssuedDateETLBusinessObjectCollection = null;

            try
            {
                ETLJob job = session.GetObjectByKey <ETLJob>(jobId);
                if (job == null)
                {
                    return(null);
                }
                CriteriaOperator criteria_0 = new BinaryOperator("RowStatus", 0, BinaryOperatorType.GreaterOrEqual);
                CriteriaOperator criteria_1 = new BinaryOperator(new OperandProperty("ETLJobId.ETLJobId"), job.ETLJobId, BinaryOperatorType.Equal);
                CriteriaOperator criteria_2 = new BinaryOperator(new OperandProperty("BusinessObjectId.ObjectIssueDate"), new OperandProperty("BusinessObjectIssuedDateTimeStamp"), BinaryOperatorType.NotEqual);
                CriteriaOperator criteria   = new GroupOperator(GroupOperatorType.And, criteria_0, criteria_1, criteria_2);
                ChangedIssuedDateETLBusinessObjectCollection = new XPCollection <ETLBusinessObject>(session, criteria);
            }
            catch (Exception)
            {
                return(ChangedIssuedDateETLBusinessObjectCollection);

                throw;
            }
            return(ChangedIssuedDateETLBusinessObjectCollection);
        }
Пример #5
0
        public ETLBusinessObject GetETLBusinessObject(Session session, Guid jobId, Int64 ObjectId)
        {
            ETLBusinessObject etlBusinessObject = null;

            try
            {
                ETLJob job = session.GetObjectByKey <ETLJob>(jobId);
                if (job == null)
                {
                    return(null);
                }

                BusinessObject businessObject = session.GetObjectByKey <BusinessObject>(ObjectId);
                if (businessObject == null)
                {
                    return(null);
                }

                CriteriaOperator criteria_0 = new BinaryOperator("ETLJobId", job, BinaryOperatorType.Equal);
                CriteriaOperator criteria_1 = new BinaryOperator("BusinessObjectId", businessObject, BinaryOperatorType.Equal);
                CriteriaOperator criteria_2 = new BinaryOperator("RowStatus", 0, BinaryOperatorType.GreaterOrEqual);
                CriteriaOperator criteria   = GroupOperator.Combine(GroupOperatorType.And, criteria_0, criteria_1, criteria_2);

                etlBusinessObject = session.FindObject <ETLBusinessObject>(criteria);
            }
            catch (Exception)
            {
                throw;
            }
            return(etlBusinessObject);
        }
Пример #6
0
        protected void Button2_Click(object sender, EventArgs e)
        {
            //inserts = ETLTools.GetInsertSql(dt, etlEntity);
            //f6483e01-ab7f-4293-8dea-225d4686b839   913f8372-bb2d-4063-b375-825a9375ec46

            string strCode = txt_JobID.Text.Trim();

            ETLJob job = ETLJobAdapter.Instance.Load(strCode);

            job.Start();
        }
Пример #7
0
        protected void JobDeluxeGrid_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "btn_star")
            {
                try
                {
                    string jobID = e.CommandArgument.ToString();

                    ETLJob loadJob = ETLJobAdapter.Instance.Load(jobID);


                    #region 执行任务
                    SysTask sysTask = SysTaskAdapter.Instance.Load(jobID);
                    if (sysTask != null)
                    {
                        //自动任务
                        ExecuteTask(sysTask);
                    }
                    else
                    {
                        //手动任务
                        SysTask task = loadJob.ToSysTask();
                        task.FillData(BuildTaskExtraData(loadJob, new TimeSpan(0), null));
                        loadJob.SetCurrentJobBeginStatus();
                        SysTaskAdapter.Instance.Update(task);

                        ExecuteTask(task);
                    }
                    #endregion

                    // Task.Factory.StartNew(loadJob.Start).ContinueWith(task =>
                    //{
                    //    if (task.Status == System.Threading.Tasks.TaskStatus.Faulted)
                    //    {
                    //        string detail = EnvironmentHelper.GetEnvironmentInfo() + "\r\n" + task.Exception.GetAllStackTrace();

                    //        Exception realEx = task.Exception.InnerException.GetRealException();

                    //        realEx.TryWriteAppLog(detail, Request.RequestContext.HttpContext);
                    //    }
                    //});
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
Пример #8
0
        public BusinessObject GetOldestUnprocessedObject(Session session, Guid jobId, List <int> ObjectType)
        {
            BusinessObject oldestObject = null;

            try
            {
                ETLJob etlJob = session.GetObjectByKey <ETLJob>(jobId);
                if (etlJob == null)
                {
                    return(null);
                }

                ETLLogBO etlLogBO = new ETLLogBO();
                XPCollection <ETLBusinessObject> etlBusinessObjectCollection = etlLogBO.GetChangedIssuedDateETLBusinessObject(session, jobId);
                if (etlBusinessObjectCollection != null && etlBusinessObjectCollection.Count() != 0)
                {
                    etlBusinessObjectCollection.Sorting.Add(new SortProperty("BusinessObject.IssuedDateTimeStamp", SortingDirection.Ascending));
                    ETLBusinessObject oldestETLBusinessObject = etlBusinessObjectCollection.FirstOrDefault();
                    etlBusinessObjectCollection = etlLogBO.GetNewerETLBusinessObject(session, jobId, oldestETLBusinessObject.BusinessObjectIssuedDateTimeStamp);
                    foreach (ETLBusinessObject EBO in etlBusinessObjectCollection)
                    {
                        EBO.RowStatus = -2;
                        EBO.Save();
                    }
                    oldestETLBusinessObject.RowStatus = -2;
                    oldestETLBusinessObject.Save();
                }

                CriteriaOperator criteria_0 = new InOperator("ObjectType", ObjectType);
                CriteriaOperator criteria_1 = new BinaryOperator("RowStatus", 0, BinaryOperatorType.Greater);
                CriteriaOperator criteria   = new GroupOperator(GroupOperatorType.And, criteria_0, criteria_1);
                XPCollection <BusinessObject> businessObjectCollection = new XPCollection <BusinessObject>(session, criteria);
                businessObjectCollection.Sorting.Add(new SortProperty("ObjectIssueDate", SortingDirection.Ascending));
                businessObjectCollection.Sorting.Add(new SortProperty("IssuedDateTimeStamp", SortingDirection.Ascending));
                foreach (BusinessObject bo in businessObjectCollection)
                {
                    if (NeedToBeProcessed(session, bo.BusinessObjectId, jobId))
                    {
                        return(bo);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(oldestObject);
        }
Пример #9
0
        public void CreateETLBusinessObject(Session session, Guid ETLJobId, Int64 ObjectId)
        {
            try
            {
                ETLJob job = session.GetObjectByKey <ETLJob>(ETLJobId);
                if (job == null)
                {
                    return;
                }

                BusinessObject businessObject = session.GetObjectByKey <BusinessObject>(ObjectId);
                if (businessObject == null)
                {
                    return;
                }

                CriteriaOperator criteria_0 = new BinaryOperator("ETLJobId", job, BinaryOperatorType.Equal);
                CriteriaOperator criteria_1 = new BinaryOperator("BusinessObjectId", businessObject, BinaryOperatorType.Equal);
                CriteriaOperator criteria_2 = new BinaryOperator("RowStatus", 0, BinaryOperatorType.GreaterOrEqual);
                CriteriaOperator criteria   = GroupOperator.Combine(GroupOperatorType.And, criteria_0, criteria_1, criteria_2);

                ETLBusinessObject etlBusinessObject = session.FindObject <ETLBusinessObject>(criteria);

                if (etlBusinessObject != null)
                {
                    etlBusinessObject.RowStatus = Constant.ROWSTATUS_ACTIVE;
                    etlBusinessObject.BusinessObjectIssuedDateTimeStamp = businessObject.ObjectIssueDate;
                    etlBusinessObject.Save();
                    return;
                }

                etlBusinessObject = new ETLBusinessObject(session);
                etlBusinessObject.BusinessObjectId = businessObject;
                etlBusinessObject.ETLJobId         = job;
                etlBusinessObject.RowStatus        = Constant.ROWSTATUS_ACTIVE;
                etlBusinessObject.BusinessObjectIssuedDateTimeStamp = businessObject.ObjectIssueDate;
                etlBusinessObject.Save();
                ETLBusinessObject LastETLBusinessObject = GetNearestETLBusinessObject(session, ETLJobId, ObjectId);
                etlBusinessObject.PreviousETLBusinessObjectId = LastETLBusinessObject;
                etlBusinessObject.Save();
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #10
0
        public static void Populate(Session dbSession)
        {
            Session session = null;

            try
            {
                ETLUtils util = new ETLUtils();
                ETLJob.Populate(dbSession);
                session = dbSession;
                ETLJob           etlJob;
                CriteriaOperator criteria = new BinaryOperator("Code", Utility.Constant.NAAN_DEFAULT_CODE, BinaryOperatorType.Equal);
                etlJob = session.FindObject <ETLJob>(criteria);
                //insert default data into ETLCategory table
                if (!Util.IsExistXpoObject <ETLJobDetail>(session, "ETLJobId", etlJob))
                {
                    etlJob = session.FindObject <ETLJob>(criteria);
                    ETLJobDetail _ETLJobDetail = new ETLJobDetail(session)
                    {
                        Data     = null,
                        ETLJobId = etlJob
                    };
                    _ETLJobDetail.Save();
                }

                criteria = new BinaryOperator("Code", Utility.Constant.NAAN_DEFAULT_CODE, BinaryOperatorType.Equal);
                etlJob   = session.FindObject <ETLJob>(criteria);
                if (!Util.IsExistXpoObject <ETLJobDetail>(session, "ETLJobId", etlJob))
                {
                    etlJob = session.FindObject <ETLJob>(criteria);
                    ETLJobDetail _ETLJobDetail = new ETLJobDetail(session)
                    {
                        Data     = ETLUtils.ConvertStringToByte(Utility.Constant.NAAN_DEFAULT_CODE),
                        ETLJobId = etlJob
                    };
                    _ETLJobDetail.Save();
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                //if (session != null) session.Dispose();
            }
        }
Пример #11
0
        //初始化任务
        private ETLJob InitEntity(string entityId)
        {
            ETLJob result;

            if (entityId.IsNotEmpty())
            {
                result = (ETLJob)ETLJobAdapter.Instance.Load(entityId);

                OperationMode = SCObjectOperationMode.Update;
            }
            else
            {
                result        = new ETLJob();
                OperationMode = SCObjectOperationMode.Add;
            }

            return(result);
        }
Пример #12
0
        public bool NeedToBeProcessed(Session session, Int64 ObjectId, Guid jobId)
        {
            bool           result         = false;
            BusinessObject businessObject = session.GetObjectByKey <BusinessObject>(ObjectId);

            if (businessObject == null)
            {
                return(false);
            }

            ETLJob etlJob = session.GetObjectByKey <ETLJob>(jobId);

            if (etlJob == null)
            {
                return(false);
            }

            CriteriaOperator criteria_0 = new BinaryOperator("ETLJobId", etlJob, BinaryOperatorType.Equal);
            CriteriaOperator criteria_1 = new BinaryOperator("BusinessObjectId", businessObject, BinaryOperatorType.Equal);
            CriteriaOperator criteria_2 = new BinaryOperator("RowStatus", 0, BinaryOperatorType.Greater);
            CriteriaOperator criteria   = GroupOperator.Combine(GroupOperatorType.And, criteria_0, criteria_1, criteria_2);

            ETLBusinessObject etlBusinessObject = session.FindObject <ETLBusinessObject>(criteria);

            if (etlBusinessObject == null)
            {
                return(true);
            }
            ObjectEntryLogBO objectEntryLogBO = new ObjectEntryLogBO();
            ObjectEntryLog   objectEntryLog   = objectEntryLogBO.GetNewestObjectEntryLog(session, businessObject.BusinessObjectId);

            if (objectEntryLog == null)
            {
                objectEntryLogBO.CreateObjectEntryLog(session, businessObject);
                objectEntryLog = objectEntryLogBO.GetNewestObjectEntryLog(session, businessObject.BusinessObjectId);
            }

            if (!IsExistETLEntryObjectHistory(session, jobId, objectEntryLog.ObjectEntryLogId))
            {
                return(true);
            }

            return(result);
        }
Пример #13
0
        public void CreatETLEntryObjectHistory(Session session, Guid jobId, Int64 businessObjectId, int ErrorCode)
        {
            try
            {
                ETLJob job = session.GetObjectByKey <ETLJob>(jobId);
                if (job == null)
                {
                    return;
                }

                BusinessObject businessObject = session.GetObjectByKey <BusinessObject>(businessObjectId);
                if (businessObject == null)
                {
                    return;
                }

                ObjectEntryLogBO objectEntryLogBO     = new ObjectEntryLogBO();
                ETLLogBO         etlLogBO             = new ETLLogBO();
                ObjectEntryLog   newestObjectEntryLog = objectEntryLogBO.GetNewestObjectEntryLog(session, businessObjectId);
                if (newestObjectEntryLog == null)
                {
                    return;
                }

                ETLBusinessObject etlBusinessObject = etlLogBO.GetETLBusinessObject(session, jobId, businessObjectId);
                if (etlBusinessObject == null)
                {
                    return;
                }

                ETLEntryObjectHistory etlEntryObjectHistory = new ETLEntryObjectHistory(session);
                etlEntryObjectHistory.ErrorCode           = ErrorCode;
                etlEntryObjectHistory.ETLBusinessObjectId = etlBusinessObject;
                etlEntryObjectHistory.ObjectEntryLogId    = newestObjectEntryLog;
                etlEntryObjectHistory.RowTimeStamp        = DateTime.Now;
                etlEntryObjectHistory.RowStatus           = 0;
                etlEntryObjectHistory.Save();
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #14
0
        public XPCollection <ETLBusinessObject> GetOlderETLBusinessObject(Session session, Guid jobId, Int64 ObjectId)
        {
            XPCollection <ETLBusinessObject> etlBusinessObjectCollection = null;

            try
            {
                ETLJob job = session.GetObjectByKey <ETLJob>(jobId);
                if (job == null)
                {
                    return(null);
                }

                BusinessObject businessObject = session.GetObjectByKey <BusinessObject>(ObjectId);
                if (businessObject == null)
                {
                    return(null);
                }

                DateTime issueDate  = businessObject.ObjectIssueDate;
                DateTime createDate = businessObject.IssuedDateTimeStamp;

                CriteriaOperator criteria_Job = new BinaryOperator("ETLJobId", job, BinaryOperatorType.Equal);
                //DateTime
                CriteriaOperator criteria_IssueDate   = new BinaryOperator(new OperandProperty("BusinessObjectId.ObjectIssueDate"), issueDate, BinaryOperatorType.Less);
                CriteriaOperator criteria_IssueDate_1 = new BinaryOperator(new OperandProperty("BusinessObjectId.ObjectIssueDate"), issueDate, BinaryOperatorType.Equal);
                CriteriaOperator criteria_CreateDate  = new BinaryOperator("BusinessObjectId.IssuedDateTimeStamp", createDate, BinaryOperatorType.LessOrEqual);
                CriteriaOperator criteria_Datetime    = CriteriaOperator.Or(
                    criteria_IssueDate,
                    CriteriaOperator.And(criteria_IssueDate_1, criteria_CreateDate));

                CriteriaOperator criteria_RowStatus        = new BinaryOperator("RowStatus", 0, BinaryOperatorType.GreaterOrEqual);
                CriteriaOperator criteria_BusinessObjectId = new BinaryOperator(new OperandProperty("BusinessObjectId.BusinessObjectId"), businessObject.BusinessObjectId, BinaryOperatorType.NotEqual);
                CriteriaOperator criteria = CriteriaOperator.And(criteria_Job, criteria_Datetime, criteria_RowStatus, criteria_BusinessObjectId);

                etlBusinessObjectCollection = new XPCollection <ETLBusinessObject>(session, criteria);
            }
            catch (Exception)
            {
                throw;
            }
            return(etlBusinessObjectCollection);
        }
Пример #15
0
        public ETLBusinessObject GetLastProcessedObject(Session session, Guid jobId)
        {
            ETLBusinessObject etlBusinessObject = null;

            try
            {
                ETLJob           job        = session.GetObjectByKey <ETLJob>(jobId);
                CriteriaOperator criteria_0 = new BinaryOperator("ETLJobId", job, BinaryOperatorType.Equal);
                CriteriaOperator criteria_1 = new BinaryOperator("RowStatus", 0, BinaryOperatorType.Greater);
                CriteriaOperator criteria   = new GroupOperator(GroupOperatorType.And, criteria_0, criteria_1);
                XPCollection <ETLBusinessObject> etlBusinessObjectCollection = new XPCollection <ETLBusinessObject>(criteria);
                etlBusinessObjectCollection.Sorting.Add(new SortProperty("BusinessObjectIssuedDateTimeStamp", SortingDirection.Descending));
                etlBusinessObject = etlBusinessObjectCollection.FirstOrDefault();
            }
            catch (Exception)
            {
                throw;
            }
            return(etlBusinessObject);
        }
Пример #16
0
        public double GetAccountingBalanceAtTime(Session session, Guid AccountingId, Guid CurrencyId, DateTime time)
        {
            double result = 0;

            try
            {
                Currency         currentCurrency = session.GetObjectByKey <Currency>(CurrencyId);
                CriteriaOperator criteria_0      = new BinaryOperator("RowStatus", Utility.Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.GreaterOrEqual);
                CriteriaOperator criteria_1;
                criteria_1 = new BinaryOperator("TransactionId.IssueDate", time, BinaryOperatorType.LessOrEqual);
                CriteriaOperator             criteria_2 = new BinaryOperator("AccountId!Key", AccountingId, BinaryOperatorType.Equal);
                CriteriaOperator             criteria_3 = new BinaryOperator("CurrencyId.CurrencyTypeId", currentCurrency.CurrencyTypeId, BinaryOperatorType.Equal);
                CriteriaOperator             criteria   = new GroupOperator(GroupOperatorType.And, criteria_0, criteria_1, criteria_2, criteria_3);
                XPCollection <GeneralLedger> ledgerList = new XPCollection <GeneralLedger>(session, criteria);
                if (ledgerList == null || ledgerList.Count == 0)
                {
                    return(0);
                }
                ledgerList.Sorting.Add(new SortProperty("IssuedDate", SortingDirection.Descending));
                ledgerList.Sorting.Add(new SortProperty("CreateDate", SortingDirection.Descending));
                result = ledgerList.FirstOrDefault().Balance;
                foreach (GeneralLedger ledger in ledgerList)
                {
                    Util             util             = new Util();
                    BusinessObjectBO businessObjectBO = new BusinessObjectBO();
                    BusinessObject   businessObject   = util.GetXpoObjectByFieldName <BusinessObject, Guid>(session, "RefId", ledger.TransactionId.TransactionId, BinaryOperatorType.Equal);
                    ETLJob           etlJob           = util.GetXpoObjectByFieldName <ETLJob, string>(session, "Code", "GeneralJournalToGeneralLedgerJob", BinaryOperatorType.Equal);
                    //Console.WriteLine("Test:" + businessObject.BusinessObjectId + " " + ledger.TransactionId.TransactionId);
                    if (!businessObjectBO.NeedToBeProcessed(session, businessObject.BusinessObjectId, etlJob.ETLJobId))
                    {
                        result = ledger.Balance;
                        return(result);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(result);
        }
Пример #17
0
        public ETLEntryObjectHistory GetETLEntryObjectHistory(Session session, Guid jobId, Int64 businessObjectId)
        {
            ETLEntryObjectHistory etlEntryObjectHistory = null;

            try
            {
                ETLJob job = session.GetObjectByKey <ETLJob>(jobId);
                if (job == null)
                {
                    return(null);
                }

                BusinessObject businessObject = session.GetObjectByKey <BusinessObject>(businessObjectId);
                if (businessObject == null)
                {
                    return(null);
                }

                ObjectEntryLogBO objectEntryLogBO     = new ObjectEntryLogBO();
                ETLLogBO         etlLogBO             = new ETLLogBO();
                ObjectEntryLog   newestObjectEntryLog = objectEntryLogBO.GetNewestObjectEntryLog(session, businessObjectId);

                ETLBusinessObject etlBusinessObject = etlLogBO.GetETLBusinessObject(session, jobId, businessObjectId);
                if (etlBusinessObject == null)
                {
                    return(null);
                }

                CriteriaOperator criteria_0 = new BinaryOperator("ETLBusinessObjectId", etlBusinessObject, BinaryOperatorType.Equal);
                CriteriaOperator criteria_1 = new BinaryOperator(new OperandProperty("ObjectEntryLogId.BusinessObjectId.BusinessObjectId"), businessObject.BusinessObjectId, BinaryOperatorType.Equal);
                CriteriaOperator criteria   = GroupOperator.Combine(GroupOperatorType.And, criteria_0, criteria_1);

                etlEntryObjectHistory = session.FindObject <ETLEntryObjectHistory>(criteria);
            }
            catch (Exception)
            {
                throw;
            }
            return(etlEntryObjectHistory);
        }
Пример #18
0
        public static void Populate(Session dbSession)
        {
            Session session = null;

            try
            {
                session = dbSession;
                //insert default data into ETLBusinessObject table
                if (!Util.IsExistXpoObject <ETLBusinessObject>(session, "RowStatus", 0))
                {
                    CriteriaOperator criteria       = new BinaryOperator("ObjectType", -10, BinaryOperatorType.Equal);
                    BusinessObject   businessObject = session.FindObject <BusinessObject>(criteria);

                    criteria = new BinaryOperator("Code", Utility.Constant.NAAN_DEFAULT_CODE, BinaryOperatorType.Equal);
                    ETLJob job = session.FindObject <ETLJob>(criteria);

                    ETLBusinessObject _ETLBusinessObject = new ETLBusinessObject(session)
                    {
                        BusinessObjectIssuedDateTimeStamp = DateTime.Now,
                        BusinessObjectId = businessObject,
                        ETLJobId         = job,
                        RowStatus        = 0
                    };
                    _ETLBusinessObject.Save();
                }
                //if (!Util.IsExistXpoObject<ETLBusinessObject>(session,"RowStatus",2))
                //{
                //    ETLBusinessObject _ETLBusinessObject = new ETLBusinessObject(session)
                //    {
                //        BusinessObjectIssuedDateTimeStamp = new DateTime(2013, 10, 23),
                //        BusinessObjectId = session.GetObjectByKey<BusinessObject>((Int64)2),
                //        ETLJobId = session.GetObjectByKey<ETLJob>(Guid.Parse("1d6260c7-797a-41c3-b419-709b4270a0ee")),
                //        RowStatus = 2
                //    };
                //    _ETLBusinessObject.Save();
                //}
                //if (!Util.IsExistXpoObject<ETLBusinessObject>(session,"RowStatus", 3))
                //{
                //    ETLBusinessObject _ETLBusinessObject = new ETLBusinessObject(session)
                //    {
                //        BusinessObjectIssuedDateTimeStamp = new DateTime(2013, 10, 24),
                //        BusinessObjectId = session.GetObjectByKey<BusinessObject>((Int64)3),
                //        ETLJobId = session.GetObjectByKey<ETLJob>(Guid.Parse("1d6260c7-797a-41c3-b419-709b4270a0ee")),
                //        RowStatus = 3
                //    };
                //    _ETLBusinessObject.Save();
                //}
                //if (!Util.IsExistXpoObject<ETLBusinessObject>(session,"RowStatus", 4))
                //{
                //    ETLBusinessObject _ETLBusinessObject = new ETLBusinessObject(session)
                //    {
                //        BusinessObjectIssuedDateTimeStamp = new DateTime(2013, 10, 25),
                //        BusinessObjectId = session.GetObjectByKey<BusinessObject>((Int64)4),
                //        ETLJobId = session.GetObjectByKey<ETLJob>(Guid.Parse("1d6260c7-797a-41c3-b419-709b4270a0ee")),
                //        RowStatus = 4
                //    };
                //    _ETLBusinessObject.Save();
                //}
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                //if (session != null) session.Dispose();
            }
        }
Пример #19
0
        //保存
        protected void btn_Save_Click(object sender, EventArgs e)
        {
            //错误信息
            StringBuilder error = new StringBuilder();

            if (this.Data == null && Request["id"] != null)
            {
                //根据ID获取任务对象
                //this.Data = (ETLJob)ETLJobAdapter.Instance.Load(Convert.ToString(Request["id"]));
                this.Data = JobBaseAdapter.Instance.Load(c => c.AppendItem("job_id", Convert.ToString(Request["id"]))).FirstOrDefault();
            }

            if (!Util.CheckOperationSafe())
            {
                return;
            }
            //ETL任务
            if (ddl_JobType.SelectedValue == "ETLService")
            {
                #region

                JobScheduleCollection pvc = new JobScheduleCollection();
                //计划列表
                if (ch_IsAuto.Checked)
                {
                    //pvc = JSONSerializerExecute.Deserialize<JobScheduleCollection>(schedules.Value);
                    pvc = GetSchedules(schedules.Value);
                }

                ETLEntityCollection etls = GetETLEntities(etlEntities.Value);

                ETLWhereConditionCollection wheres = JSONSerializerExecute.Deserialize <ETLWhereConditionCollection>(conditions.Value);
                if (this.Data != null)
                {
                    ETLJob job = ETLJobAdapter.Instance.Load(this.Data.JobID) as ETLJob;
                    this.Data       = job;
                    job.Category    = txt_jobCategory.Text;
                    job.Enabled     = ddl_Enabled.SelectedValue == "1" ? true : false;
                    job.JobType     = JobType.ETLService;
                    job.Description = txt_JobDescription.Text;
                    job.Name        = txt_JobName.Text;
                    job.Schedules   = pvc;
                    job.ETLEntities = etls;
                    job.IsAuto      = ch_IsAuto.Checked;
                    job.IsIncrement = ch_IsIncrement.Checked;
                    wheres.ForEach(w => { w.JOB_ID = this.Data.JobID; w.ID = Guid.NewGuid().ToString(); });

                    job.ETLWhereConditions = wheres;

                    if (CheckEtlEntities())
                    {
                        ETLJobOperations.Instance.DoOperation(EntityJobOperationMode.Update, job);
                    }
                }
                else
                {
                    ETLJob job = new ETLJob()
                    {
                        JobID       = Guid.NewGuid().ToString(),
                        Category    = txt_jobCategory.Text,
                        Enabled     = ddl_Enabled.SelectedValue == "1" ? true : false,
                        JobType     = JobType.ETLService,
                        Description = txt_JobDescription.Text,
                        Name        = txt_JobName.Text,
                        Schedules   = pvc,
                        ETLEntities = etls,
                        IsAuto      = ch_IsAuto.Checked,
                        IsIncrement = ch_IsIncrement.Checked
                    };
                    wheres.ForEach(w => { w.JOB_ID = job.JobID; w.ID = Guid.NewGuid().ToString(); });

                    job.ETLWhereConditions = wheres;

                    this.Data = job;
                    if (CheckEtlEntities())
                    {
                        ETLJobOperations.Instance.DoOperation(EntityJobOperationMode.Add, job);
                    }
                }
                if (string.IsNullOrEmpty(ErrorMsg))
                {
                    HttpContext.Current.Response.Write("<script>window.returnValue=true;window.close();</script>");
                    //this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "closeWindow", "window.returnValue=true;window.close()", true);
                }
                else
                {
                    //ViewState["conditions"] = conditions.Value;
                    ViewState["schedules"] = schedules.Value;
                    conditions.Value       = JSONSerializerExecute.Serialize((this.Data as ETLJob).ETLWhereConditions);

                    ViewState["etlEntities"] = etlEntities.Value;


                    //计划列表
                    List <ScheduleGridObj> scheduleList = new List <ScheduleGridObj>();
                    foreach (JobSchedule item in this.Data.Schedules)
                    {
                        scheduleList.Add(new ScheduleGridObj()
                        {
                            ID          = item.ID,
                            Name        = item.Name,
                            Description = item.Description
                        });
                    }
                    ViewState["schedulesGrid"] = JSONSerializerExecute.Serialize(scheduleList);;
                    grid.InitialData           = scheduleList;

                    //etl实体列表
                    List <EtlGridObj> etlJobs = new List <EtlGridObj>();
                    foreach (ETLEntity item in (this.Data as ETLJob).ETLEntities)
                    {
                        etlJobs.Add(new EtlGridObj()
                        {
                            ID          = item.ID,
                            CodeName    = item.Name,
                            Description = item.Description
                        });
                    }

                    ViewState["etlsGrid"] = JSONSerializerExecute.Serialize(etlJobs);
                    gridEtl.InitialData   = etlJobs;

                    string msg       = ErrorMsg.Replace("\r\n", string.Empty);
                    string scriptStr = string.Format("alert('{0}');", msg);
                    this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "closeWindow", scriptStr, true);
                    //HttpContext.Current.Response.Write(scriptStr);
                }
                #endregion
            }
            //WebService任务
            else
            {
                #region

                JobScheduleCollection pvc = new JobScheduleCollection();
                //计划列表
                if (ch_IsAuto.Checked)
                {
                    //pvc = JSONSerializerExecute.Deserialize<JobScheduleCollection>(schedules.Value);
                    pvc = GetSchedules(schedules.Value);
                }

                if (this.Data != null)
                {
                    InvokeWebServiceJob job = InvokeWebServiceJobAdapter.Instance.Load(w => w.AppendItem("Job_id", this.Data.JobID)).FirstOrDefault();// this.Data as InvokeWebServiceJob;
                    job.Category         = txt_jobCategory.Text;
                    job.Enabled          = ddl_Enabled.SelectedValue == "1" ? true : false;
                    job.JobType          = JobType.InvokeService;
                    job.Description      = txt_JobDescription.Text;
                    job.Name             = txt_JobName.Text;
                    job.Schedules        = pvc;
                    job.ISManual         = !ch_IsAuto.Checked;
                    job.SvcOperationDefs = JSONSerializerExecute.Deserialize <WfServiceOperationDefinitionCollection>(this.services.Value);
                    //入库
                    DoUpdate(job);
                }
                else
                {
                    InvokeWebServiceJob job = new InvokeWebServiceJob()
                    {
                        JobID            = Guid.NewGuid().ToString(),
                        Category         = txt_jobCategory.Text,
                        Enabled          = ddl_Enabled.SelectedValue == "1" ? true : false,
                        JobType          = JobType.InvokeService,
                        Description      = txt_JobDescription.Text,
                        Name             = txt_JobName.Text,
                        Schedules        = pvc,
                        ISManual         = !ch_IsAuto.Checked,
                        SvcOperationDefs = JSONSerializerExecute.Deserialize <WfServiceOperationDefinitionCollection>(this.services.Value)
                    };

                    this.Data = job;

                    //入库
                    DoUpdate(job);
                }
                if (string.IsNullOrEmpty(ErrorMsg))
                {
                    HttpContext.Current.Response.Write("<script>window.returnValue=true;window.close();</script>");
                    //this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "closeWindow", "window.returnValue=true;window.close()", true);
                }
                else
                {
                    //ViewState["conditions"] = conditions.Value;
                    ViewState["schedules"] = schedules.Value;
                    conditions.Value       = JSONSerializerExecute.Serialize((this.Data as ETLJob).ETLWhereConditions);

                    ViewState["etlEntities"] = etlEntities.Value;


                    //计划列表
                    List <ScheduleGridObj> scheduleList = new List <ScheduleGridObj>();
                    foreach (JobSchedule item in this.Data.Schedules)
                    {
                        scheduleList.Add(new ScheduleGridObj()
                        {
                            ID          = item.ID,
                            Name        = item.Name,
                            Description = item.Description
                        });
                    }
                    ViewState["schedulesGrid"] = JSONSerializerExecute.Serialize(scheduleList);;
                    grid.InitialData           = scheduleList;

                    //etl实体列表
                    List <EtlGridObj> etlJobs = new List <EtlGridObj>();
                    foreach (ETLEntity item in (this.Data as ETLJob).ETLEntities)
                    {
                        etlJobs.Add(new EtlGridObj()
                        {
                            ID          = item.ID,
                            CodeName    = item.Name,
                            Description = item.Description
                        });
                    }

                    ViewState["etlsGrid"] = JSONSerializerExecute.Serialize(etlJobs);
                    gridEtl.InitialData   = etlJobs;

                    string msg       = ErrorMsg.Replace("\r\n", string.Empty);
                    string scriptStr = string.Format("alert('{0}');", msg);
                    this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "closeWindow", scriptStr, true);
                }
                #endregion
            }
        }
Пример #20
0
        public bool CreatETLJobLog(Session session, Guid jobId, string StateName, string StatusName, DateTime date)
        {
            bool res = true;

            try
            {
                DateTime nowTime       = date;
                string   currentDay    = nowTime.Day.ToString();
                string   currentMonth  = nowTime.Month.ToString();
                string   currentYear   = nowTime.Year.ToString();
                string   currentHour   = nowTime.Hour.ToString();
                string   currentMinute = nowTime.Minute.ToString();
                DayDim   day           = GetDayDim(session, currentDay);
                if (day == null)
                {
                    return(false);
                }
                MonthDim month = GetMonthDim(session, currentMonth);
                if (month == null)
                {
                    return(false);
                }
                YearDim year = GetYearDim(session, currentYear);
                if (year == null)
                {
                    return(false);
                }
                HourDim hour = GetHourDim(session, currentHour);
                if (hour == null)
                {
                    return(false);
                }
                MinuteDim minute = GetMinuteDim(session, currentMinute);
                if (minute == null)
                {
                    return(false);
                }
                ETLJobRunningState state = GetETLJobRunningState(session, StateName);
                if (state == null)
                {
                    return(false);
                }
                ETLJobRunningStatus status = GetETLJobRunningStatus(session, StatusName);
                if (status == null)
                {
                    return(false);
                }
                ETLJob job = session.GetObjectByKey <ETLJob>(jobId);
                if (job == null)
                {
                    return(false);
                }

                ETLJobLog etlJobLog = new ETLJobLog(session);
                etlJobLog.ETLJobId              = job;
                etlJobLog.DayDimId              = day;
                etlJobLog.MinuteDimId           = minute;
                etlJobLog.MonthDimId            = month;
                etlJobLog.YearDimId             = year;
                etlJobLog.HourDimId             = hour;
                etlJobLog.ETLJobRunningStateId  = state;
                etlJobLog.ETLJobRunningStatusId = status;
                etlJobLog.Save();
            }
            catch (Exception)
            {
                return(false);

                throw;
            }
            return(res);
        }