cancel
Showing results for 
Search instead for 
Did you mean: 

Binding table without collection based on id

former_member190389
Active Contributor
0 Kudos

Hello,

I have a servlet from which I get an array of ids in Json model.

[{ID:'1234'},{ID:'5678'}....]

I need to get data from odata service based on these Ids and display in table

The url format is /processes.svc/ProcessInstance(InstanceId= '1234')

There are no collection and other methods implemented for this service. we cannot use filters as well. The only way to access data is using this single link with dynamic InstanceId.

My problem is how do I bind /ProcessInstance(InstanceId= '1234') with instanceid dynamic from the previous json data model.

This below does not work.

{code}

<Table id="idTable" mode="SingleSelectMaster" selectionChange="rowSelect" items="{/ProcessInstance}"> <columns> <Column> <Label text="ID" />

{/code}

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

I am not sure about the whole use case, but at first sight, I would suggest to merge the two service result into one JSONModel and pass that model to the view and bind accordingly.

Answers (1)

Answers (1)

former_member365727
Active Contributor
0 Kudos

From the result of servlet({ID:'1234'},{ID:'5678'}....]) create a promise object for each oData call. Lets assume the promises as p1, p2....etc

now do something like below:

Promise.all([p1, p2, ....])
.then(function(aResults){
   var oJsonModel = new sap.ui.model.JSONModel(aResults);
   //bind this JSONModel to table
});