Regular Calculation Dataload Logic
You will use a Calculation Dataload logic when you need to:
Enrich/process a Datamart, Data Source or Data Feed, for example to:
Add new records - copy and transform data from other table to this table.
Modify existing records - pre-calculate values, which were not imported from an external system, but are needed for analysis and their calculation takes too long to be done on demand.
Logic API
Logic Nature: paDataLoad
Logic Type: Calculation/Pricing
Execution Types - Four types, which are a combination of the element calculation context (element group) and input generation/standard execution. You do not have to use all the four types, in many cases you will be using only one or two.
"row" group in input-generation mode - To build input fields, which will be used during configuration of the process. Only code of elements in the "row" group will be executed during this execution.
"init" group in standard mode - To process the table as a whole. You can add/modify/delete records. Only code of elements in the "init" group will be executed during this execution.
"row" group in standard mode - To process one single row, calculate the results (e.g., prices) and provide warnings. Only code of elements in the "row" group will be executed during this execution.
"summary" group in standard mode - To process the table as a whole. You can add/modify/delete records. Only code of elements in the "summary" group will be executed during this execution.
Information provided to the logic:
To "init" group in standard mode:
api.targetDate()
- It will be the one set in the Data Load configuration, or today.api.getDatamartRowSet("source")
api.getDatamartRowSet("target")
To "row" group in "standard" mode:
Sku can be in context, if the mapping was set in Dataload configuration.
api.targetDate()
can be dynamic, if set in the Data Load configuration, otherwise will be the one set in the configuration or today.input[]
It will contain "mapped parameters" - values from fields of the source rowset data row being enriched. The mapping between the source fields and login inputs is set in the configuration of the Data Load process.
Or it will potentially contain "fixed parameters", i.e., overridden by the value entered by the user to the input field in the configuration of the Data Load process.
api.currentItem()
- A view on the Data Load definition (object DMDataLoad, which holds the Data Load task configuration).api.getDatamartRowSet("source")
api.getDatamartRowSet("target")
To "summary" group in standard mode:
api.targetDate()
- It will be the one set in the Dataload configuration, or today.api.getDatamartRowSet("source")
api.getDatamartRowSet("target")
Expected logic execution outcome:
From "row" group in input-generation mode:
Input field definitions
From "init" group in standard mode:
Element warnings will be placed to a log into Warn category.
From "row" group in standard mode:
Results of visible logic elements, which are configured in Data Load result mapping, will be copied by system to the data row, which will be inserted to the target rowset.
Logic warnings will end up in the log file under Warn category.
If the target rowset has the field "warnings", the warning messages will be stored there.
If the target rowset has the field "alerts", the alerts messages will be stored there.
If the target rowser has the field "formulaResult" and there was no critical alert, the field will have the value "OK".
From "summary" group in standard mode:
Raised Warnings will appear in the log file as WARN category.
Results of visible elements are stored into the Data Load definition (DMDataLoad) itself into the field calculationResults.
Common Logic Structure
Elements of init elements group.
Elements of row elements group, which build the input fields.
Elements of row elements group, which calculate the values for the target rowset.
Elements of summary elements group.
Code Sample
Found an issue in documentation? Write to us.