SAPUI5 OData绑定到表

时间:2018-05-27 18:12:56

标签: data-binding odata sapui5

我尝试将来自OData服务 CUAN_CAMPAIGN_SRV 的广告系列数据绑定到TableSelectDialog元素。在我看来,我有一个带输入帮助的输入字段:

<form:FormElement visible="true">
<form:label>
    <Label text="Campaign" design="Standard" width="100%" required="false" textAlign="Begin" textDirection="Inherit"/>
</form:label>
<form:fields>
    <Input id="campaignId" type="Text" enabled="true" visible="true" width="auto" editable="true" showValueHelp="true" valueHelpOnly="true" valueHelpRequest="handleValueHelp"/>
</form:fields>

值帮助调用我的控制器中的函数 handleValueHelp

handleValueHelp: function(oController) {
     this.inputId = oController.oSource.sId;
     // create value help dialog
     if (!this._valueHelpDialog) {
         this._valueHelpDialog = sap.ui.xmlfragment(
             "my.view.Campaigns",
             this
         );
     this.getView().addDependent(this._valueHelpDialog);
     }

     // open value help dialog
     this._valueHelpDialog.open();
}

这时我的表格对话框(片段)会弹出:

<core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core">
<TableSelectDialog id="campaignSelect" title="Select campaign" items="{path:'/CampaignSet'}" growingThreshold="5">
    <columns>
        <Column>
            <Text text="Name"/>
        </Column>
        <Column>
            <Text text="ID"/>
        </Column>
        <Column>
            <Text text="Created at"/>
        </Column>
        <Column>
            <Text text="Created by"/>
        </Column>
    </columns>
    <items>
        <ColumnListItem>
            <Text text="{CampaignName}"/>
            <Text text="{CampaignId}"/>
            <Text text="{CreatedOn}"/>
            <Text text="{CreatedBy}"/>
        </ColumnListItem>
    </items>
</TableSelectDialog>

所以我尝试将EntataSet CampaignSet 从OData服务CUAN_CAMPAIGN_SRV绑定到表。因此,我将此代码添加到控制器的 init()函数中:

var uname = "UNAME";
var pw = "PW";

var oModel = new sap.ui.model.odata.v2.ODataModel("https://host:port/sap/opu/odata/sap/CUAN_CAMPAIGN_SRV/",
true, uname, pw);

this.getView().setModel(oModel);

问题是:该表中没有数据,并且此错误显示在控制台中:

Developer Console Error Log

  

翻译自德语:“在数据服务环境中发生了未知的内部服务器错误”

iwfnd / error_log说明了这一点:

  

格式无效(返回表):行号1,属性名称   'ChangedOn',属性值'0'

如果我不想绑定此属性,为什么ChangedOn会起作用?

我可以在浏览器中直接调用之类的内容并成功:

https://host:port/sap/opu/odata/sap/CUAN_CAMPAIGN_SRV/CampaignSet( '100001625')/ CAMPAIGNNAME

我做错了什么?谢谢你的每一个提示!

在服务定义中将C​​hangedOn设置为Nullable:

ChangedOn segw

0 个答案:

没有答案