日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP CRM Fiori应用My Note的OData调用设计

發布時間:2023/12/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP CRM Fiori应用My Note的OData调用设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Sent: Monday, December 22, 2014 4:14 PM

這里簡單把現有的UI邏輯總結一下:

Notes Tab UI:

<IconTabFilter id="tab_notes" icon="sap-icon://notes"key="Notes" text="{i18n>NOTES}" iconColor="Neutral"><FeedInput id="notesList" textMaxLength="1000" text="{json>Content}"post="_handleAddNote" showIcon="true" icon="{json>icon}" maxLines="3"></FeedInput><List id="listItem" showSeparators="Inner" growing="true" growingThreshold="4" growingScrollToLoad="false"items="{json>/OpportunityNotesSet}"><FeedListItem sender="{path : 'json>Creator'}" senderActive="false"timestamp="{path:'json>CreatedAt' , formatter: 'cus.crm.opportunity.util.Formatter.notesDateFormatter'}"text="{path : 'json>Content'}" /></List></IconTabFilter>

標簽表示Tab Bar上的一個Tab, 表示新輸入Note的控件, 表示每一條需要顯示的Note。

顯示的每一條Note是綁定在listItem model的OpportunityNoteSet屬性上,每次點擊Note Tab的時候,會執行S3.controller.js中的notesTabSelected()方法:

notesTabSelected : function(){var oModel = this.getView().getModel(); this.byId("listItem").setNoDataText(sap.ca.scfld.md.app.Application.getImpl().getResourceBundle().getText('LOADING_TEXT'));this.byId('listItem').getModel('json').oData.OpportunityNotesSet = [];this.byId('listItem').getModel('json').updateBindings(); oModel.read(this.sPath, null, [ "$expand=Notes" ], true, // 在這里發起OData的調用,http://localhost:8080/sap/opu/odata/sap/CRM_OPPORTUNITY/Opportunities(guid'0090FA0D-8D72-1ED3-98C7-DC2E25228BC4')?$expand=NotesjQuery.proxy(function(odata, response) {var tab = this.getView().byId("listItem");var oJSONModel = tab.getModel("json");var oData = oJSONModel.oData;// 返回的結果綁定到listItem model的OpportunityNotesSet上oData.OpportunityNotesSet = response.data.Notes.results;if(oData.OpportunityNotesSet.length == 0){ this.byId("listItem").setNoDataText(sap.ca.scfld.md.app.Application.getImpl().getResourceBundle().getText('NONOTES'));}// 用新返回的數據刷新UIoJSONModel.updateBindings(); },this),jQuery.proxy(function(oError){this.handleErrors(oError);},this) );},

每次添加一條Note的時候會調用FeedInput控件上綁定的post事件對應的_handleAddNote()方法:

<FeedInput id="notesList" textMaxLength="1000" text="{json>Content}"post="_handleAddNote" showIcon="true" icon="{json>icon}" maxLines="3"></FeedInput> _handleAddNote : function(oEvent) {// 獲取輸入的內容var sText = oEvent.getParameter("value");if (sText) {var that = this;var oModel = this.getView().getModel(); var headerGuid = this.byId('info').getModel('json').getData().Guid;var oEntry = {HeaderGuid : headerGuid,Content : sText};// 創建一條新的Note http://localhost:8080/sap/opu/odata/sap/CRM_OPPORTUNITY/OpportunityNotesSet oModel.create('/OpportunityNotesSet',oEntry,null,jQuery.proxy(function() {var that = this;// 創建新的Note成功之后的回調方法里面重新獲取新的Note List, 然后綁定到model的OpportunityNotesSet上oModel.read( that.sPath, null, [ "$expand=Notes" ],true, function(odata,response){that.byId('listItem').setModel(new sap.ui.model.json.JSONModel({OpportunityNotesSet: odata.Notes.results}),"json");}); }, this),function(oMessage) {that.displayResponseErrorMessage(oMessage,sap.ca.scfld.md.app.Application.getImpl().getResourceBundle().getText('SAVE_FAILED'));} );}},

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的SAP CRM Fiori应用My Note的OData调用设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。