OData liaison avec $expand

Nous lier un OData url UI5 de ODataModel

https://sapes1.sapdevcenter.com/sap/opu/odata/sap/ZCD204_EPM_DEMO_SRV/BusinessPartners('0100000000')/SalesOrders/?$expand=SalesOrderItems

Nous sommes capable de se lier au niveau de la racine des éléments qui appartiennent à chaque SalesOrder. Cependant, nous sommes en cours d'exécution dans problème dans le cas de la liaison de données de SalesOrderItems qui sont à un enfant de SalesOrder.

Nous ne sommes pas en mesure de lier SalesOrderItems champs à l'un de nos objets. Nous avons essayé en utilisant {SalesOrderItems/results/QuantityUnit}, {SalesOrderItems/QuantityUnit} sans beaucoup de chance.

Pouvez-vous s'il vous plaît suggérer des alternatives?

Il y a 1..m cardinalité entre SalesOrder et SalesOrderItem

//model of oData

var model = sap.ui.model.odata.ODataModel("proxy/https/sapes1.sapdevcenter.com/sap/opu/odata/sap/ZCD204_EPM_DEMO_SRV/",true,'username','password');
//app is defined in index.html here we are setting model to the app.

App.setModel(model);

//create a table

var pastOrder_S3= new sap.m.Table("PastOrder_S3",{
            inset:true,
            //visibleRowCount: 2,
            firstVisibleRow: 2,
            fixedColumnCount: 2,
            columns:[
                     new sap.m.Column({
                         header:new sap.m.Label("item").setText("Items"),
                         hAlign:"Left",
                         width:"20px",
                         demandPopin:true,
                         popinDisplay:"Block",
                         minScreenWidth: sap.m.ScreenSize.Medium
                     }),
                     new sap.m.Column({
                         header:new sap.m.Label("orderdetail").setText("OrderDetails"),
                         hAlign:"Left",
                         width:"200px",
                         demandPopin:true,
                         popinDisplay:"Block",
                         minScreenWidth: sap.m.ScreenSize.Medium
                     })
});

//create a template to bind into the table using model.

var oTemplate_S3= new sap.m.ColumnListItem({
        type: sap.m.ListType.Active,
        cells: [

        new sap.m.Text({
        text:"{ProductName} \n {ProductID}"
                }),    

           new sap.m.Text({
                text:"OrderId: {SalesOrderID} \n {DeliveryDate} \n {TotalSum}{Currency}"
                })             
             ]
    });

//bind into the table.
`pastOrder_S3.bindAggregation("items","BusinessPartners('BusinessPartnerId')/SalesOrders/?$expand=SalesOrderItems",oTemplate_S3);`

Ici, nous avons un enfant de la propriété nommée "SalesOrderItems" nous avons besoin de lire les propriétés à l'intérieur de la salesorderitems.

  • S'il vous plaît partager le code que vous utilisez pour définir le OData modèle.
InformationsquelleAutor ykay | 2015-05-28