//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: public void Execute(org.Camunda.bpm.Engine.Delegate.IDelegateExecution execution) throws Exception public virtual void Execute(IBaseDelegateExecution execution) { IHistoryService historyService = ((IDelegateExecution)execution).ProcessEngineServices.HistoryService; IHistoricVariableInstance variableInstance = historyService.CreateHistoricVariableInstanceQuery() /*.VariableName("listVar")*/.First(); IHistoricVariableUpdate initialUpdate = (IHistoricVariableUpdate)historyService.CreateHistoricDetailQuery() /*.VariableUpdates()*//*/ /.VariableInstanceId(variableInstance.Id) //.OrderPartiallyByOccurrence()*//*.Asc()*/.First(); IList <string> list = (IList <string>)initialUpdate.Value; // implicit update of the list, should not trigger an update // of the value since we deal with historic variables list.Add(NEW_ELEMENT); }
public virtual IProcessInstanceHistoryLog Execute(ICommandContext commandContext) { // Fetch historic process instance IHistoricProcessInstanceEntity historicProcessInstance = commandContext.HistoricProcessInstanceEntityManager.FindById <IHistoricProcessInstanceEntity>(new KeyValuePair <string, object>("id", processInstanceId)); if (historicProcessInstance == null) { return(null); } // Create a log using this historic process instance ProcessInstanceHistoryLogImpl processInstanceHistoryLog = new ProcessInstanceHistoryLogImpl(historicProcessInstance); // Add events, based on query settings // Tasks if (_includeTasks) { IList <IHistoricData> tasks = commandContext.HistoricTaskInstanceEntityManager.FindHistoricTaskInstancesByQueryCriteria((new HistoricTaskInstanceQueryImpl(commandExecutor)).SetProcessInstanceId(processInstanceId)) as IList <IHistoricData>; processInstanceHistoryLog.AddHistoricData(tasks); } // Activities if (_includeActivities) { IList <IHistoricActivityInstance> activities = commandContext.HistoricActivityInstanceEntityManager.FindHistoricActivityInstancesByQueryCriteria((new HistoricActivityInstanceQueryImpl(commandExecutor)).SetProcessInstanceId(processInstanceId), null); processInstanceHistoryLog.AddHistoricData(activities); } // Variables if (_includeVariables) { IList <IHistoricVariableInstance> variables = commandContext.HistoricVariableInstanceEntityManager.FindHistoricVariableInstancesByQueryCriteria((new HistoricVariableInstanceQueryImpl(commandExecutor)).SetProcessInstanceId(processInstanceId), null); processInstanceHistoryLog.AddHistoricData(variables); } // Comment if (_includeComments) { IList <IHistoricData> comments = commandContext.CommentEntityManager.FindCommentsByProcessInstanceId(processInstanceId) as IList <IHistoricData>; processInstanceHistoryLog.AddHistoricData(comments); } // Details: variables if (_includeVariableUpdates) { IList <IHistoricData> variableUpdates = commandContext.HistoricDetailEntityManager.FindHistoricDetailsByQueryCriteria((new HistoricDetailQueryImpl(commandExecutor)).SetVariableUpdates(), null) as IList <IHistoricData>; // Make sure all variables values are fetched (similar to the HistoricVariableInstance query) foreach (IHistoricData historicData in variableUpdates) { IHistoricVariableUpdate variableUpdate = (IHistoricVariableUpdate)historicData; //variableUpdate.Value; } processInstanceHistoryLog.AddHistoricData(variableUpdates); } // Details: form properties if (_includeFormProperties) { IList <IHistoricData> formProperties = commandContext.HistoricDetailEntityManager.FindHistoricDetailsByQueryCriteria((new HistoricDetailQueryImpl(commandExecutor)).FormProperties(), null) as IList <IHistoricData>; processInstanceHistoryLog.AddHistoricData(formProperties); } // All events collected. Sort them by date. processInstanceHistoryLog.orderHistoricData(); return(processInstanceHistoryLog); }