handlers.computed_field_handler
Watch fields for value changes, and when one of the watched fields changes, set another field to a computed value. This allows for lookups and mappings between multiple fields.
Configuration:
fs_types
: list of fact sheet types, where this handler should run
depends_on_fields
: a list of fields to be monitored for changes; if any of these fields change, the lookup will be
performed
field_name
: name of the field to be set
update_when_empty
: also set the value of field_name
when no new value or an empty value was computed
value
: list of definitions for the new value lookup
Each entry in value
is an object containing two fields:
value
: the value to be set if the condition is true
condition
: a string of Python code, determining whether this value should be used. The current fact sheet is
passed as local variable fs
, and you can use any Python code to compute a value of True
or False
Example:
{
"fs_types": ["Application"],
"depends_on_fields": ["functionalSuitability", "technicalSuitability"],
"field_name": "lxTimeClassification",
"update_when_empty": False,
"value": [
{
"condition": "fs['functionalSuitability'] == 'unreasonable' and fs['technicalSuitability'] == 'inappropriate'",
"value": "Eliminate"
}
]
}
This would set the TIME classification to “Eliminate”, when functional fit and technical fit are set to their lowest values, and would not update in any other case.