Expression Script Examples: Difference between revisions
Jump to navigation
Jump to search
| Line 30: | Line 30: | ||
targetDatatable.Import(dataAsDf, #{"Append":true}); | targetDatatable.Import(dataAsDf, #{"Append":true}); | ||
WriteLog(`${CountTop(dataAsDf.Rows)} rows written to datatable`); | WriteLog(`${CountTop(dataAsDf.Rows)} rows written to datatable`); | ||
</pre> | |||
Get all models in the system and store them to a datatable. | |||
<pre> | |||
let newDatatable = Project | |||
.CreateDatatable("Models list " + ToString(Now, "dd.MM.yyyy HH:mm:ss")) | |||
.AddColumn("Model name", "String") | |||
.AddColumn("Project name", "String") | |||
.AddColumn("Created time", "DateTime") | |||
.AddColumn("Cases", "Integer"); | |||
let startTime = Now; | |||
let modelsData = ToDataFrame( | |||
Models.([Name, Project.Name, CreatedDate, NCases]), | |||
["Model name", "Project name", "Created time", "Cases"] | |||
); | |||
WriteLog(`Listing models took ${(Now - startTime).TotalSeconds.Round(2)} seconds.`); | |||
newDatatable.Import(modelsData); | |||
WriteLog(`Datatable ${newDatatable.Id} created.`); | |||
</pre> | </pre> | ||
Revision as of 09:28, 28 June 2021
Expression language can be used to write scripts in QPR ProcessAnalyzer. See how expression scripts can be created in the Managing_Scripts#Creating_Script. For documentation for the syntax, functions and entities can be found from the main page in the KPI Expression Language section.
Examples
Contact to a web service, fetch some data, and store it to a datatable.
let datatableName = "Web Service Data";
let webServiceData = ParseJson(ReadWebService(
#{"Address": "https://processanalyzer.onqpr.com/qprpa/api/serverinfo"}
));
let targetDatatable = Project.Datatables.Where(name==datatableName);
if (Count(targetDatatable) == 0) {
targetDatatable = Project.CreateDatatable(datatableName)
.AddColumn("Setting name", "String")
.AddColumn("Setting value", "String")
.AddColumn("Data read", "DateTime");
} else {
targetDatatable = targetDatatable[0];
}
let currentTime = Now;
let dataAsDf = ToDataFrame(
webServiceData.keys.{
let key = _;
[key, webServiceData[key], currentTime];
},
["Setting name", "Setting value", "Data read"]
);
targetDatatable.Import(dataAsDf, #{"Append":true});
WriteLog(`${CountTop(dataAsDf.Rows)} rows written to datatable`);
Get all models in the system and store them to a datatable.
let newDatatable = Project
.CreateDatatable("Models list " + ToString(Now, "dd.MM.yyyy HH:mm:ss"))
.AddColumn("Model name", "String")
.AddColumn("Project name", "String")
.AddColumn("Created time", "DateTime")
.AddColumn("Cases", "Integer");
let startTime = Now;
let modelsData = ToDataFrame(
Models.([Name, Project.Name, CreatedDate, NCases]),
["Model name", "Project name", "Created time", "Cases"]
);
WriteLog(`Listing models took ${(Now - startTime).TotalSeconds.Round(2)} seconds.`);
newDatatable.Import(modelsData);
WriteLog(`Datatable ${newDatatable.Id} created.`);