Instances of classes listed here can be used in calculation logics. If you use any other, you get the "Unexpected type" error message.
Any instance of a Java Enum is allowed generically (that's why enum types like ApprovalState or LookupTableType aren't repeated in the "General Type Objects" list below); their Class objects still need to be whitelisted separately (see "Classes") to allow static access such as MyEnum.CONST or MyEnum.values().
General Type Objects
-
ActionItemApi
-
ActionItemApi.ActionItemBuilder
-
AdaptiveHistogram
-
AttributedResult
-
BandByOptions
-
BitSet
-
Boolean
-
BoMTreeRecord
-
byte[]
-
Calendar
-
CalculationOutput
-
CalculationResult
-
Cartesian
-
CategoryIndexer
-
CategoryIndexer.Category
-
ChainedJobInfo
-
ChartOptions
-
ClaimContext
-
ClassifierResult
-
Closure
-
Clusterer
-
ClustererResult
-
Collection
-
com.google.common.collect.Iterables$
-
CompensationStructure
-
CompensationStructure.Item
-
ContextParameter
-
ContractStructure
-
ContractStructure.Item
-
CreationWorkflowDefinition
-
CreationWorkflowStepDefinition
-
CustomerGroup
-
CustomFormApi
-
CustomFormApi.CustomFormBuilder
-
CustomFormApi.DocumentActionApi
-
CustomFormApi.OperationsApi
-
CustomFormApi.RecalculateApi
-
CustomFormApi.UpdateApi
-
CustomFormApi.WorkflowActionApi
-
DatamartContext
-
DatamartContext.Calendar
-
DatamartContext.Column
-
DatamartContext.DataLoader
-
DatamartContext.Query
-
DatamartContext.SqlQuery
-
DatamartContext.Table
-
DatamartQueryResult
-
DatamartRowSet
-
DataProfilerResult
-
Date
-
DateTime
-
DateTime.Property
-
DateTimeFormatter
-
DateTimeZone
-
DecoratedResult
-
DistFormulaContext
-
DMCalendar.TimeDim
-
DMCalendar.TimePeriod
-
DMDataSlice
-
DmFilter
-
double[]
-
Duration
-
Enum
-
Exception
-
ExecRequest
-
Expression
-
Exprs
-
Filter
-
Future
-
GPathResult
-
Groups
-
Groups.GroupingSets
-
Groups.GroupingSetsBuilder
-
GStringImpl
-
int[]
-
IRebateRecordGroupManager
-
IRebateRecordManager
-
ISandboxAPI
-
ItemRecommendation
-
ItemSummaryQuery
-
Iterator
-
LibraryMethod
-
Locale
-
LocalDate
-
LocalTime
-
long[]
-
Map
-
Map.Entry
-
Matcher
-
MathContext
-
Matrix2D
-
ModelCalculationFormulaContext
-
ModelContext
-
ModelEvaluationFormulaContext
-
ModelEvaluator
-
ModelFilterTreesContextReadOnly
-
ModelFilterTreesContextReadOnly.FilterTree
-
ModelFilterTreesContextReadOnly.FilterTreeNode
-
ModelFilterTreesContextReadWrite.NodeSpec
-
ModelFormulaContext
-
ModelFormulaContext.TreeNode
-
ModelLookupTablesContextReadOnly
-
ModelLookupTablesContextReadOnly.ModelLookupTable
-
ModelParallelCalculationFormulaInitContext
-
ModelParallelCalculationFormulaItemContext
-
ModelParallelCalculationFormulaItemContext.CalculationItem
-
ModelParallelCalculationFormulaSummaryContext
-
ModelPMMLContext
-
ModelPMMLContext.PMMLEvaluator
-
ModelSchedulesContextReadOnly
-
ModelSchedulesContextReadOnly.ModelSchedule
-
ModelSchedulesContextReadWrite.NewScheduleBuilder
-
MultiKey
-
NaiveBayesClassifier
-
NearestNeighbours
-
NearestNeighboursResult
-
net.pricefx.server.util.metamodel.Query
-
net.pricefx.server.util.metamodel.Schema
-
Node
-
NotificationApi
-
Number
-
Object[]
-
Orders
-
Orders.Order
-
org.apache.metamodel.query.Query (and sibling classes in that package)
-
org.apache.metamodel.schema.Column
-
org.apache.metamodel.schema.Table
-
Pattern
-
PayoutRecordManager
-
PE
-
PE.CrossPE
-
Period
-
PipelineStage
-
PipelineStage.ResultStream
-
PipelineStage.ResultStream.ResultRow
-
Portlet
-
PriceElasticityCalculation
-
PriceElasticityCalculationResult
-
PricingPlanApi
-
PricingPlanApi.KpiBuilder
-
ProductGroup
-
ProductReferenceRecord
-
QueryApi
-
QuoteStructure
-
QuoteStructure.Item
-
Random
-
RContext
-
RebateAgreementStructure
-
RebateAgreementStructure.Item
-
Regression
-
RegressionResult
-
ResultChart.ControllerOptions
-
ResultCompensationRecord
-
ResultDashboard
-
ResultHighchart.ContextMenu
-
ResultHighchart.ContextMenuItem
-
ResultHighchart.OnPointClick
-
ResultHighchart.TriggerEvent
-
ResultMatrix.BackEndAction
-
ResultMatrix.Cell
-
ResultMatrix.OnRowSelection
-
ResultMatrix.OnRowSelection.TriggerEvent
-
REXP
-
ReviewByUserGroups
-
ReviewUserGroupsParallelSubStep
-
ReviewUserGroupsSequentialSubSteps
-
ReviewUserGroupSubStep
-
SandboxScriptBase
-
ScrollableResults
-
SellerGroup
-
SellerReference
-
SimpleDateFormat
-
SplicingOptions
-
StreamResults
-
String
-
StringBuffer
-
StringBuilder
-
SummaryCalculableObjectItem
-
SystemPortlet
-
TableContext
-
Tables
-
Tables.Columns
-
Tables.Table
-
TemporalUnit
-
TieredValue
-
TieredValue.Tier
-
TimeoutException
-
TreeClassifier
-
UUID
-
WindowFunction
-
WindowFunction.Frame
-
WindowFunction.Frame.Exclusion
-
WindowFunction.Frame.From
-
WindowFunction.Frame.To
-
WorkflowInfo
-
WorkflowStepInfo
-
WrappedResult
Input Builders
-
ButtonInputBuilder
-
CollapseInputBuilder
-
ConfigurationWizardPopupInputBuilder
-
ConfiguratorInputBuilder
-
ConfiguratorTableInputBuilder
-
CustomerInputBuilder
-
CustomFormCalculationProcessor
-
CustomFormListPopupInputBuilder
-
CustomFormPopupInputBuilder
-
DashboardInputsInputBuilder
-
DashboardPopupInputBuilder
-
DateRangeInputBuilder
-
DmFilterBuilder
-
DmFilterBuilderMultiple
-
DMFieldInputBuilder
-
DmQueryBuilderDimOptionBuilder
-
DmQueryBuilderInputBuilder
-
DmQueryFilterBuilderInputBuilder
-
DMSourceInputBuilder
-
FilterBuilderInputBuilder
-
InputBuilderFactory
-
InputMatrixInputBuilder
-
MultiTierInputBuilder
-
OptionInputBuilder
-
PCGroupInputBuilder
-
ProductInputBuilder
-
QapiFilterStageInputBuilder
-
RangeSliderInputBuilder
-
RowInputBuilder
-
SellerInputBuilder
-
SimpleInputBuilder
-
SliderInputBuilder
-
StringInputBuilder
-
TreeInputBuilder
-
VLookupBuilder
Workflow & Form Objects
In workflow logics, custom form logics, or in libraries:
-
DashboardExecution
-
FormActionApi
-
FormChange
-
FormInitApi
-
FormLayout
-
FormLayoutNode
-
FormValueOptionsApi
-
InsertWorkflowStepsDTO
-
ResultMatrixFilterBuilder
-
WorkflowDTO
-
WorkflowDTO.ApprovalStepDTO
-
WorkflowDTO.WatcherStepDTO
Domain Objects
Domain objects (Product, Customer, PriceRecord...) are converted into a map.
Classes
These classes are whitelisted, so that you can call static methods on them (e.g. MyClass.someStaticMethod() or referencing an enum constant).
-
ActionItem.ActionItemStatus
-
AggregateFunctionType
-
ApprovalState
-
ArrayList
-
BigDecimal
-
Boolean
-
Calendar
-
CalculationFlowTimeUnit
-
CalculationResultType
-
CalculationStatus
-
ChainedJobInfo
-
CheckedStrategy
-
ClaimLineItem.ValidationState
-
ClaimStatus
-
Closure
-
CompensationRecordStatus
-
CompensationStatus
-
CompensationStructure
-
ConfiguratorEntry
-
ConfiguratorEntryArray
-
ContractStructure
-
CRStatus
-
CustomerGroup
-
CustomFormStatus
-
DataType
-
Date
-
DateRangeInputBuilder.Period
-
DateTime
-
DateTimeFormatter
-
DateTimeZone
-
DmFilter
-
DMCalendar
-
DMDataSlice
-
DMFieldInputBuilder.FieldKind
-
net.pricefx.domain.util.DateTime (a different class from Joda's DateTime, above)
-
Duration
-
ExecRequestImpl
-
FieldFormatType
-
FieldType
-
Filter
-
InputButtonAction
-
InputType
-
InputWidth
-
Integer
-
ItemRecommendation
-
JobStatusTracker.TrackerStatus
-
JobStatusTracker.TrackerType
-
LinkedHashMap
-
LinkedHashSet
-
LocalDate
-
LocalDateTime
-
Locale
-
LocalTime
-
LookupTableType
-
LookupTableValueType
-
Math
-
Matrix2D
-
MatrixableCalculableObject.ListType
-
ModelFilterTreesContextReadWrite.NodeSpec
-
ModelParallelCalculationFormulaSummaryContext.CalculationItem.Status
-
ModelSchedulesContextReadOnly.PeriodUnit
-
Node
-
OperatorType (org.apache.metamodel.query.OperatorType)
-
Pattern
-
Period
-
PriceFxException
-
ProductBoMEntry.EntryType
-
ProductGroup
-
QapiDatamart.Options
-
QuoteStructure
-
RangeSliderInputBuilder.FormatType
-
RebateAgreementStatus
-
RebateAgreementStructure
-
RebateRecordStatus
-
ResultMatrix
-
RoundingMode
-
SellerGroup
-
SimpleDateFormat
-
String
-
StringBuffer
-
StringBuilder
-
SystemPortlet
-
TieredValue
-
TieredValueSortType
-
TieredValueValidationType
-
TimedObjectStatus
-
TimeoutException
-
TimePeriod
-
TimeUnit
-
UUID
-
Workflow.WorkflowStatus
Additionally, any class recognized by Pricefx's internal BuilderExtensions helper (covers various builder classes dynamically rather than by a fixed list) is also allowed.
Special Cases
These types are allowed and are subject to some other internal processing.
-
ChartBuilderResult
-
DMField (converted to a map)
-
FormulaElementResult (converted to a map)
-
JsonNode (Jackson node, converted via the JSON mapper)
-
LocalDateTime (converted to a
java.util.Date)
See also: Groovy Sandbox