Ejemplo n.º 1
0
        protected override void Execute(NativeActivityContext context)
        {
            #region .  Fill Header  .

            var eventHeader = new EventHeader
            {
                EventKindCode = EventKindCode.Get(context),
                OperationCode = BillOperationCode.Get(context),
                ProcessCode   = BPProcessCode.Get(context)
            };
            var startDate = StartDate.Get(context);
            eventHeader.StartTime = startDate.HasValue ? startDate.Value : DateTime.Now;
            eventHeader.EndTime   = EndDate.Get(context);
            eventHeader.MandantID = MandantId.Get <decimal?>(context);

            // авто-заполняемые поля
            eventHeader.Instance = context.WorkflowInstanceId.ToString();

            #endregion .  Fill Header  .

            #region .  Fill Params for Details  .

            var evDetail = new EventDetail();
            foreach (var parameter in Parameters)
            {
                var value = parameter.Value.Get(context);
                // пустые значение незачем передавать
                if (value == null)
                {
                    continue;
                }

                if (evDetail.ContainsProperty(parameter.Key))
                {
                    evDetail.SetProperty(parameter.Key, value);
                }
            }

            #endregion .  Fill Params for Details  .

            var eventHeaderMgr = IoC.Instance.Resolve <IEventHeaderManager>();
            var uw             = BeginTransactionActivity.GetUnitOfWork(context);
            if (uw != null)
            {
                eventHeaderMgr.SetUnitOfWork(uw);
            }
            eventHeaderMgr.RegEvent(ref eventHeader, evDetail);
            context.SetValue(Result, eventHeader);
        }
Ejemplo n.º 2
0
        private void RegEvent(decimal?iwbPosId)
        {
            DateTime now;

            using (var bpProcManager = IoC.Instance.Resolve <IBPProcessManager>())
                now = bpProcManager.GetSystemDate();

            var eventHeader = new EventHeader
            {
                EventKindCode = "IWBPOS_CORRECTED",
                OperationCode = "OP_CORRECTION_REASON",
                StartTime     = now,
                Instance      = "none"
            };

            var evDetail = new EventDetail();

            evDetail.SetProperty("IWBPOSID_R", iwbPosId);

            using (var eventHeaderMgr = IoC.Instance.Resolve <IEventHeaderManager>())
                eventHeaderMgr.RegEvent(ref eventHeader, evDetail);
        }