Skip to content
Snippets Groups Projects
Commit 59a04522 authored by Sebastian Pongratz's avatar Sebastian Pongratz :ping_pong:
Browse files

Merge branch 'sales_2001102_FixSalesprojectChecklistPerformance' into '2021.2.0'

[Projekt: xRM-Sales][TicketNr.: 2001102][Salesproject performance wegen checklisten schlecht]

See merge request xrm/basic!1339
parents 0494926e 8e8a0b04
No related branches found
No related tags found
No related merge requests found
......@@ -107,12 +107,18 @@
<title>Fullfilled</title>
<contentType>IMAGE</contentType>
</entityField>
<entityParameter>
<name>Presentationmode_param</name>
<expose v="true" />
<documentation>%aditoprj%/entity/ChecklistEntryValue_entity/entityfields/presentationmode_param/documentation.adoc</documentation>
</entityParameter>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
<name>jDito</name>
<jDitoRecordAlias>Data_alias</jDitoRecordAlias>
<contentProcess>%aditoprj%/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
<rowCountProcess>%aditoprj%/entity/ChecklistEntryValue_entity/recordcontainers/jdito/rowCountProcess.js</rowCountProcess>
<recordFieldMappings>
<jDitoRecordFieldMapping>
<name>UID.value</name>
......
== Presentationmode_param
This param is getting used by the entities that are displaying the checklist in their mainview.
They are returning their sys.presentationmode so we can use it in our contentProcess to check whether or not we are in the mainview to only then load the checklistEntryValues.
Currently it's not possible to check for the sys.presentationmode in here since it always returns null.
\ No newline at end of file
......@@ -7,60 +7,63 @@ import("system.datetime");
import("Sql_lib");
import("ChecklistEntryRegistry_basic");
var checklistIds = JSON.parse(vars.get("$param.ChecklistIds_param"));
var data = [];
if(vars.get("$param.Presentationmode_param") == "FULL")
{
var checklistIds = JSON.parse(vars.get("$param.ChecklistIds_param"));
var data = newSelect([
"CHECKLISTENTRYVALUE.CHECKLISTENTRYVALUEID",
"CHECKLISTENTRY.AUTO",
"CHECKLISTENTRY.CHECKLISTENTRYID",
"CHECKLISTENTRY.TITLE",
"CHECKLISTENTRY.FILTER_USED",
"CHECKLISTENTRY.COND",
"CHECKLISTENTRYVALUE.DONEUSER",
"CHECKLISTENTRYVALUE.DONEDATE",
"CHECKLISTENTRYVALUE.IS_FULFILLED",
"CHECKLISTENTRYVALUE.OBJECT_ROWID",
"CHECKLISTENTRYVALUE.OBJECT_TYPE",
"CHECKLISTENTRYVALUE.DATE_EDIT",
"CHECKLISTENTRYVALUE.DATE_NEW",
"CHECKLISTENTRYVALUE.USER_EDIT",
"CHECKLISTENTRYVALUE.USER_NEW"
]).from("CHECKLISTENTRY")
.leftJoin(
"CHECKLISTENTRYVALUE",
newWhere("CHECKLISTENTRYVALUE.CHECKLISTENTRY_ID = CHECKLISTENTRY.CHECKLISTENTRYID")
.and("CHECKLISTENTRYVALUE.OBJECT_ROWID", vars.get("$param.ObjectRowId_param"))
.andIfSet("CHECKLISTENTRYVALUE.OBJECT_TYPE", vars.get("$param.ObjectType_param"))
).whereIfSet("CHECKLISTENTRY.CHECKLIST_ID", checklistIds, SqlBuilder.IN())
.orderBy("CHECKLISTENTRY.POS asc")
.table();
data = newSelect([
"CHECKLISTENTRYVALUE.CHECKLISTENTRYVALUEID",
"CHECKLISTENTRY.AUTO",
"CHECKLISTENTRY.CHECKLISTENTRYID",
"CHECKLISTENTRY.TITLE",
"CHECKLISTENTRY.FILTER_USED",
"CHECKLISTENTRY.COND",
"CHECKLISTENTRYVALUE.DONEUSER",
"CHECKLISTENTRYVALUE.DONEDATE",
"CHECKLISTENTRYVALUE.IS_FULFILLED",
"CHECKLISTENTRYVALUE.OBJECT_ROWID",
"CHECKLISTENTRYVALUE.OBJECT_TYPE",
"CHECKLISTENTRYVALUE.DATE_EDIT",
"CHECKLISTENTRYVALUE.DATE_NEW",
"CHECKLISTENTRYVALUE.USER_EDIT",
"CHECKLISTENTRYVALUE.USER_NEW"
]).from("CHECKLISTENTRY")
.leftJoin(
"CHECKLISTENTRYVALUE",
newWhere("CHECKLISTENTRYVALUE.CHECKLISTENTRY_ID = CHECKLISTENTRY.CHECKLISTENTRYID")
.and("CHECKLISTENTRYVALUE.OBJECT_ROWID", vars.get("$param.ObjectRowId_param"))
.andIfSet("CHECKLISTENTRYVALUE.OBJECT_TYPE", vars.get("$param.ObjectType_param"))
).whereIfSet("CHECKLISTENTRY.CHECKLIST_ID", checklistIds, SqlBuilder.IN())
.orderBy("CHECKLISTENTRY.POS asc")
.table();
for(let i = 0; i < data.length; i++)
{
data[i][0] = data[i][0] || util.getNewUUID();
data[i][3] = translate.text(data[i][3]);
data[i][8] = data[i][8] || "0";
data[i][9] = data[i][9] || vars.get("$param.ObjectRowId_param");
data[i][10] = data[i][10] || vars.get("$param.ObjectType_param");
data[i][12] = data[i][12] || datetime.date();
data[i][14] = data[i][14] || vars.get("$sys.user");
if(parseInt(data[i][1]))
for(let i = 0; i < data.length; i++)
{
var checklistEntry;
if (Utils.toBoolean(data[i][4])) // FILTER_USED
{
checklistEntry = $ChecklistEntryRegistry["filter"]();
data[i][8] = checklistEntry.verifierFn(vars.get("$param.ObjectRowId_param"), vars.get("$param.ObjectType_param"), data[i][5]) ? "1" : "0";
}
else
data[i][0] = data[i][0] || util.getNewUUID();
data[i][3] = translate.text(data[i][3]);
data[i][8] = data[i][8] || "0";
data[i][9] = data[i][9] || vars.get("$param.ObjectRowId_param");
data[i][10] = data[i][10] || vars.get("$param.ObjectType_param");
data[i][12] = data[i][12] || datetime.date();
data[i][14] = data[i][14] || vars.get("$sys.user");
if(parseInt(data[i][1]))
{
checklistEntry = $ChecklistEntryRegistry[data[i][3]]();
data[i][8] = checklistEntry.verifierFn(vars.get("$param.ObjectRowId_param")) ? "1" : "0";
data[i][3] = checklistEntry.title;
var checklistEntry;
if (Utils.toBoolean(data[i][4])) // FILTER_USED
{
checklistEntry = $ChecklistEntryRegistry["filter"]();
data[i][8] = checklistEntry.verifierFn(vars.get("$param.ObjectRowId_param"), vars.get("$param.ObjectType_param"), data[i][5]) ? "1" : "0";
}
else
{
checklistEntry = $ChecklistEntryRegistry[data[i][3]]();
data[i][8] = checklistEntry.verifierFn(vars.get("$param.ObjectRowId_param")) ? "1" : "0";
data[i][3] = checklistEntry.title;
}
}
data[i][15] = Utils.toBoolean(data[i][8]) ? "NEON:MQL" : ""; //icon
}
data[i][15] = Utils.toBoolean(data[i][8]) ? "NEON:MQL" : ""; //icon
}
result.object(data);
import("system.result");
import("Sql_lib");
import("system.vars");
var data = [];
if(vars.get("$param.Presentationmode_param") == "FULL")
{
var checklistIds = JSON.parse(vars.get("$param.ChecklistIds_param"));
data = newSelect("1")
.from("CHECKLISTENTRY")
.leftJoin(
"CHECKLISTENTRYVALUE",
newWhere("CHECKLISTENTRYVALUE.CHECKLISTENTRY_ID = CHECKLISTENTRY.CHECKLISTENTRYID")
.and("CHECKLISTENTRYVALUE.OBJECT_ROWID", vars.get("$param.ObjectRowId_param"))
.andIfSet("CHECKLISTENTRYVALUE.OBJECT_TYPE", vars.get("$param.ObjectType_param"))
).whereIfSet("CHECKLISTENTRY.CHECKLIST_ID", checklistIds, SqlBuilder.IN())
.table();
}
result.object(data.length);
\ No newline at end of file
......@@ -1409,6 +1409,10 @@
<name>ChecklistIds_param</name>
<valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/checklistids_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>Presentationmode_param</name>
<valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityParameter>
......
import("system.vars");
import("system.result");
result.string(vars.get("$sys.presentationmode"));
\ No newline at end of file
......@@ -726,6 +726,10 @@
<name>ChecklistIds_param</name>
<valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/checklistentryvalues/children/checklistids_param/valueProcess.js</valueProcess>
</entityParameter>
<entityParameter>
<name>Presentationmode_param</name>
<valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityParameter>
......
import("system.vars");
import("system.result");
result.string(vars.get("$sys.presentationmode"));
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment