//public static void SetInstInfo(DataRow row, DataRow mainRow, DbContext context, string infoFieldName, string columnName)
        //{
        //    int sharpP = columnName.IndexOf("#", StringComparison.CurrentCulture);
        //    if (sharpP > -1)
        //    {
        //        string fieldName = columnName.Substring(0, sharpP);
        //        string easySearchName = columnName.Substring(sharpP + 1);
        //        EasySearch search = PlugInFactoryManager.CreateInstance<EasySearch>("EasySearch", easySearchName);
        //        string infoValue = search.Decode(context, mainRow[fieldName].ToString());
        //        row[infoFieldName] = infoValue;
        //    }
        //    else
        //    {
        //        row[infoFieldName] = mainRow[columnName];
        //    }
        //}

        public static void SaveError(WF_WORKFLOW_INST workflowRow, WorkflowException wfException)
        {
            ErrorConfig error = wfException.ErrorConfig;

            if (workflowRow.WI_STATUS.Value <StepState>() != StepState.Mistake)
            {
                workflowRow.WI_STATUS          = StepState.Mistake.Value <int>();
                workflowRow.WI_ERROR_TYPE      = (int)wfException.Reason;
                workflowRow.WI_MAX_RETRY_TIMES = error.RetryTimes;
            }
            workflowRow.WI_RETRY_TIMES   = workflowRow.WI_RETRY_TIMES.Value <int>() + 1;
            workflowRow.WI_NEXT_EXE_DATE = DateTime.Now.Add(error.Interval);
        }
Exemple #2
0
        private bool SetWorkflowException(WorkflowException wfException)
        {
            bool continueRun;

            switch (wfException.ErrorConfig.ProcessType)
            {
            //case ErrorProcessType.Abort:
            //    //WorkflowResolver.ta
            //    StepUtil.ErrorAbort(Source, WorkflowRow);
            //    continueRun = false;
            //    IsFinish = true;
            //    break;
            //case ErrorProcessType.Retry:
            //    if (WorkflowRow.WI_RETRY_TIMES.Value<int>() < wfException.ErrorConfig.RetryTimes)
            //    {
            //        //保存重试信息
            //        WorkflowInstUtil.SaveError(WorkflowRow, wfException);
            //        UpdateState(CurrentStep.GetState(StepState.Mistake));

            //        Source.Submit();
            //        continueRun = false;
            //    }
            //    else
            //    {
            //        CurrentStep.ClearDataSet();
            //        StepUtil.OverTryTimesAbort(Source, WorkflowRow);
            //        continueRun = false;
            //        IsFinish = true;
            //    }

            //    break;
            default:
                continueRun = false;
                break;
            }
            return(continueRun);
        }