Class SimulationAction<T extends Help>
Object
Action
SimulationAction<T>
- All Implemented Interfaces:
Help
public class SimulationAction<T extends Help>
extends Action
This action starts calculation of selected Simulation. It's a programmatic version
of the same action available in UI. As such it allows user to schedule the
action in calculation flow formula.
Obtain it with CalculationFlowActionBuilder.addSimulationAction(String). The action calculates the
Simulation that has this label. It starts the job only when the logic calls setCalculate(true). If no
Simulation matches the label, no job starts and the Calculation Flow does not report an error.
Example:
actionBuilder.addSimulationAction('Simulation 1')
.setPriority(5)
.setCalculate(true)
- See Also:
-
Field Summary
Fields inherited from class Action
jobs -
Constructor Summary
ConstructorsConstructorDescriptionSimulationAction(T backLink, Invocations<MethodInvocationRecord> invocations, String simulationLabel) Not intended for public use. -
Method Summary
Modifier and TypeMethodDescriptionback()Returns the builder that added this action, so that the logic can add the next action in the same chain.Gets whether this action starts the calculation of the Simulation.intGets the threshold set withsetDistributedCalculationThreshold(int).Gets the follow-on jobs set withsetNextJobs(List).Not intended for public use.intGets the priority set withsetPriority(int).Gets the label of the Simulation that this action calculates.setCalculate(Boolean calculate) Whether the action is valid and should be triggered or not.setDistributedCalculationThreshold(int threshold) Sets a job-individual threshold to start a distributed calculation.setNextJobs(List<ChainedJobInfo> jobs) Defines subsequent follow-on jobs.setPriority(int priority) Sets the priority of the calculation job that this action starts.toString()Returns a text representation of this action for debugging.
-
Constructor Details
-
SimulationAction
public SimulationAction(T backLink, Invocations<MethodInvocationRecord> invocations, String simulationLabel) Not intended for public use. An action created with this constructor is not added to the Calculation Flow, so it never runs. UseactionBuilder.addSimulationAction()instead.- See Also:
-
-
Method Details
-
setCalculate
Whether the action is valid and should be triggered or not.- Parameters:
calculate-- true - calculation of the Simulation is started as background process
- false - calculation of the Simulation is NOT started at all
- Returns:
- this action, for further configuration
-
setPriority
Sets the priority of the calculation job that this action starts. A value outside the range from 0 to 9 is replaced with 0.- Parameters:
priority- Default is 0 (lowest user-definable priority). Max value is 9.- Returns:
- this action, for further configuration
-
setDistributedCalculationThreshold
Sets a job-individual threshold to start a distributed calculation. Please note: Any values below 1000 may very well be counter-productive and make the job slower!If you do not set it, or set 0, the job uses the threshold of the partition.
- Parameters:
threshold- The number of items that need to be part of the job in order to execute it in distributed mode.- Returns:
- this action, for further configuration
-
back
Returns the builder that added this action, so that the logic can add the next action in the same chain.- Returns:
- the
actionBuilderthat added this action - See Also:
-
setNextJobs
Defines subsequent follow-on jobs. A next job starts when the calculation job of this action has finished. If that job fails, a next job starts only when itsexecuteOnErroristrue. Each next job can have next jobs of its own.Example:
import net.pricefx.common.dto.ChainedJobInfo def nextJob = new ChainedJobInfo() nextJob.setTargetObject('38.CFS') nextJob.setExecuteOnError(false) actionBuilder.addSimulationAction('Simulation 1') .setNextJobs([nextJob]) .setCalculate(true)- Parameters:
jobs- List of ChainedJobInfo objects- Returns:
- this action, for further configuration
- See Also:
-
getObjectName
Not intended for public use.- Returns:
- the name of the builder that added this action, followed by
".SimulationAction"
-
getSimulationLabel
Gets the label of the Simulation that this action calculates.- Returns:
- the label passed to
CalculationFlowActionBuilder.addSimulationAction(String)
-
getCalculate
Gets whether this action starts the calculation of the Simulation.- Returns:
trueaftersetCalculate(true), otherwisefalse- See Also:
-
getPriority
public int getPriority()Gets the priority set withsetPriority(int).- Returns:
- the priority, 0 if it was not set
-
getDistributedCalculationThreshold
public int getDistributedCalculationThreshold()Gets the threshold set withsetDistributedCalculationThreshold(int).- Returns:
- the threshold, 0 if it was not set
-
getNextJobs
Gets the follow-on jobs set withsetNextJobs(List).- Returns:
- the follow-on jobs
-
toString
Returns a text representation of this action for debugging.
-