当前位置: 首页 > Web前端 > HTML5

SAPUI5ODataModel.createEntry单步调试

时间:2023-04-06 00:22:01 HTML5

方法入口:initOData:function(){functionmySuccessHandler(){debugger;}函数myErrorHandler(){调试器;}varoModel=newODataModel("http://localhost:8089/Northwind/Northwind.svc/");varoMetadata=oModel.getServiceMetadata();varresult=oModel.getProperty("/Customer('ALFKI')/地址");varoContext=oModel.createEntry("/Customers",{properties:{Name:"LaptopX",Description:"NewLaptop",Price:"1000",CurrencyCode:"USD"}debugger;第一个参数是entitySetname,第二个参数是要创建的条目payload:createEntry方法只能在元数据加载完成后调用。修改后的代码:sap.ui.define(["sap/ui/core/UIComponent","sap/ui/model/json/JSONModel","sap/ui/model/resource/ResourceModel","sap/ui/model/odata/v2/ODataModel"],function(UIComponent,JSONModel,ResourceModel,ODataModel){"usestrict";returnUIComponent.extend("sap.ui5.walkthrough.Component",{元数据:{"接口":["sap.ui.core.IAsyncContentCreation"],"rootView":{"viewName":"sap.ui5.walkthrough.view.App","type":"XML","id":"app"}},initOData:function(){functionmySuccessHandler(){debugger;}functionmyErrorHandler(){debugger;}functionmyLoaded(oEvent){debugger;varoContext=oModel.createEntry("/Customers",{properties:{Name:"LaptopX",Description:"NewLaptop",Price:"1000",CurrencyCode:"USD"}});oModel.submitChanges({success:mySuccessHandler,error:myErrorHandler});//处理成功创建或重置oContext.created().then(function(){/*成功创建*/},function(){/*在持久化之前删除创建的实体*/});}varoModel=newODataModel("http://localhost:8089/Northwind/Northwind.svc/");varoData={name:'Jerry'};oModel.attachMetadataLoaded(oData,myLoaded);varoMetadata=oModel.getServiceMetadata();varresult=oModel.getProperty("/Customer('ALFKI')/Address");debugger;//将表单绑定到新创建实体的临时上下文//oForm.setBindingContext(oContext);//提交更改:在后端创建实体},init:function(){UIComponent.prototype.init.apply(this,arguments);这个.initOData();varoData={recipient:{name:"SAPUI5新手教程九-创建第一个组件"}};varoModel=newJSONModel(oData);this.setModel(oModel);vari18nModel=newResourceModel({bundleName:"sap.ui5.walkthrough.i18n.i18n"});this.setModel(i18nModel,"i18n");}});});现在元数据加载成功,执行create函数:getentityType:inthis.mChangeGroups有一个默认更改组:使用默认更改组:生成一个虚拟uid?submitchange:executeasynchronousqueue:这个批处理请求是什么时候产生的?HTTP202状态码表示请求已被接受,但尚未处理,即HTTP202Accepted响应状态该状态码表示客户端发起的请求可能被服务器处理,也可能被拒绝。它适用于异步操作,允许服务器接受其他进程请求,而不允许客户端与服务器保持连接,直到批处理所有操作完成。使用Postman向Northwind发送HTTPpost请求为客户创建脚本:url:https://services.odata.org/V2...$batchcontent-type:multipart/mixed;boundary=batch_23c4-3627-5005body:--batch_23c4-3627-5005Content-Type:multipart/mixed;boundary=changeset_6ddc-5df2-c1a1--changeset_6ddc-5df2-c1a1Content-Type:application/httpContent-Transfer-Encoding:binaryPOSTCustomersHTTP/1.1Content-Type:application/jsonContent-ID:id-1664894186776-9sap-contextid-accept:headerAccept:application/jsonAccept-Language:en-USDataServiceVersion:2.0MaxDataServiceVersion:2.0Content-Length:130{"Name":"LaptopX","Description":"NewLaptop","Price":"1000","CurrencyCode"":"USD","__metadata":{"type":"NorthwindModel.Customer"}}--changeset_6ddc-5df2-c1a1----batch_23c4-3627-5005--发送后收到HTTP202Accepted响应: