You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sap.m.Tree dont show the childnodes of the parentnodes with a mockserver + mockdata, instead it says technical error with log: { "message": "HTTP request failed", "headers": { "Content-Type": "application/json;charset=utf-8", "DataServiceVersion": "2.0" }, "statusCode": "400", "statusText": "Bad Request", "responseText": "{\"error\":{\"code\":400,\"message\":{\"lang\":\"en\",\"value\":\"Invalid system query options value\"}}}" }
Debugging result was, that it request this path at expand the parentnode:
'Modules?$filter=parentId%20eq%2013&$skip=0&$top=1.7976931348623157e+308'
1.7976931348623157e+308????? -> it is this line in Tree.js: aContexts = oBinding.getContexts(0, Number.MAX_VALUE);
Dirty Solution was to implement this line from Tree.js in own Controller:
// Get all nodes. aContexts = oBinding.getContexts(0, Number.MAX_VALUE); to aContexts = oBinding.getContexts(0, 10000);
Changed Code in my own Controller:
` Tree.prototype.updateItems = function(sReason) {
// Reuse the ListBinding from ManagedObject.updataAggregation
var oBindingInfo = this.getBindingInfo("items"),
oBinding = this.getBinding("items"),
fnFactory = oBindingInfo.factory,
aContexts;
// Update a single aggregation with the array of contexts. Reuse existing children
// and just append or remove at the end, if some are missing or too many.
function update(oControl, aContexts) {
var aChildren = oControl.getItems() || [],
oContext,
oClone;
if (aChildren.length > aContexts.length) {
for (var i = aContexts.length; i < aChildren.length; i++) {
oControl.removeItem(aChildren[i]);
aChildren[i].destroy("KeepDom");
}
}
for (var i = 0; i < aContexts.length; i++) {
oContext = aContexts[i];
oClone = aChildren[i];
if (oClone) {
oClone.setBindingContext(oContext, oBindingInfo.model);
} else {
oClone = fnFactory(oControl.getId() + "-" + i, oContext);
oClone.setBindingContext(oContext, oBindingInfo.model);
oControl.addItem(oClone);
}
}
}
// Get all nodes.
aContexts = oBinding.getContexts(0, 10000);
// If factory function is used without extended change detection, destroy aggregation
if (!oBindingInfo.template) {
this.destroyItems();
}
update(this, aContexts);
};`
OpenUI5 version: 1.45.0-SNAPSHOT
Browser/version (+device/version): Google Chrome Version 54.0.2840.71 m (64-bit)
Steps to reproduce the problem:
Create a new Project with mockserver and mockdata
One Entity in metadata.xml with Properties: drillstate, parentid, hierarchyLevel, id
Hi @HaShLo,
could you please provide the link to your system or snippix so that we can debug and fix the issue?
Thanks and regards,
Wenqian
(SAP UI5 Dev)
make a odata model then one entity with properties above at treeAnotationProperties.
All this things do it on mockserver and mockdata( i dont know if you have it to on a real server you must look). Thats it to reproduce.
You must only change:
// Get all nodes.
aContexts = oBinding.getContexts(0, Number.MAX_VALUE);
to
// Get all nodes.
aContexts = oBinding.getContexts(0, 10000);
Hi everyone,
sap.m.Tree dont show the childnodes of the parentnodes with a mockserver + mockdata, instead it says technical error with log:
{ "message": "HTTP request failed", "headers": { "Content-Type": "application/json;charset=utf-8", "DataServiceVersion": "2.0" }, "statusCode": "400", "statusText": "Bad Request", "responseText": "{\"error\":{\"code\":400,\"message\":{\"lang\":\"en\",\"value\":\"Invalid system query options value\"}}}" }
Debugging result was, that it request this path at expand the parentnode:
'Modules?$filter=parentId%20eq%2013&$skip=0&$top=1.7976931348623157e+308'
1.7976931348623157e+308????? -> it is this line in Tree.js: aContexts = oBinding.getContexts(0, Number.MAX_VALUE);
Dirty Solution was to implement this line from Tree.js in own Controller:
// Get all nodes.
aContexts = oBinding.getContexts(0, Number.MAX_VALUE);
toaContexts = oBinding.getContexts(0, 10000);
Changed Code in my own Controller:
` Tree.prototype.updateItems = function(sReason) {
// Reuse the ListBinding from ManagedObject.updataAggregation
var oBindingInfo = this.getBindingInfo("items"),
oBinding = this.getBinding("items"),
fnFactory = oBindingInfo.factory,
aContexts;
OpenUI5 version: 1.45.0-SNAPSHOT
Browser/version (+device/version): Google Chrome Version 54.0.2840.71 m (64-bit)
Steps to reproduce the problem:
items="{ path : '/Entities', parameters : { treeAnnotationProperties : { hierarchyLevelFor : 'hierarchyLevel', hierarchyNodeFor : 'id', hierarchyParentNodeFor : 'parentId', hierarchyDrillStateFor : 'drillState' } } }"
What is the expected result?
Show the ChildNodes without a failure
What happens instead?
Technical Error (Log Message see above)
Any other information? (attach screenshot if possible)
MockServer-dbg.js:
Tree.js:
MockData JSON File:
DIRTY SOLUTION
OwnController.js:
Result:
Please fix it, thanks...
Best regards
HaShLo
The text was updated successfully, but these errors were encountered: