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.