Professional Documents
Culture Documents
ODataWriteSupport
Note
Asthesefeaturesareexperimental,changesinfutureversionsofSAPUI5mayoccur.Currently,allwriteoperationshavetobeperformedbytheapplication
andaretriggeredsynchronously.
SAPUI5supportsthefollowingoperationsandfeaturesfortheODatamodel:
write
create
remove
update
read
getmetadataservicedocument
Crosssiterequestforgery(XSRF)tokensupportfortheRESTlibrary
refresh
Thedefaultbindingmodeissap.ui.model.BindingMode.OneWay.Youcanalsosetthebindingmodetosap.ui.model.BindingMode.TwoWay.
Create Request
ThecreatefunctiontriggersaPOSTrequesttoanODataservicewhichwasspecifiedduringcreationoftheODatamodel.
Theapplicationhastospecifythecollectionwheretocreatetheentryandtheentrydatapayload.
Togettheresultoftherequest,theapplicationcanhandovercallbackhandlerfunctions.Torecreateandupdatethebindings,arefreshistriggered
automaticallyafterthesuccessfulcreation.
https://sapui5.netweaver.ondemand.com/sdk/docs/guide/91f2a6ac6f4d1014b6dd926db0e91070.html
1/5
5/21/2015
ODataWriteSupport
Example
ThefollowingcodetriggersanewentryintheProductscollection:
varoEntry={}
oEntry.Name="IPad"
oEntry.Price="499$"
oModel.create('/Products',oEntry,null,function(){
alert("Createsuccessful")
},function(){
alert("Createfailed")})
Delete Request
TheremovefunctiontriggersaDELETErequesttoanODataservicewhichwasspecifiedduringcreationoftheODatamodel.Theapplicationhastospecify
thepathtotheentrywhichshouldbedeleted.Toupdatethebindingsinthemodel,arefreshistriggeredautomaticallyaftersuccessfuldeletion.
AsingleparameteroParameterscanbepassedintothefunctionandcancarryalloptionalattributes,suchasattributesforsuccessanderrorhandling
functionsaswellasETagattributes.ETagscanbeusedforconcurrencycontroliftheODataserviceisconfiguredtoprovidethem.Formoreinformation,see
thesectionaboutconcurrencycontrolandETagsintheODatadocumentation.
IfanETagisspecifiedinoParameters,itwillbeusedintheIfMatchHeaderinsteadofanyETagfoundinthemetadataofanentry.Ifnot,theETagis
retrievedfromtheentry'smetadata.IfnoETagisfound,noIfMatchHeaderwillbeused.
Example
ThefollowingcodedeletestheproductentrywithID=1fromtheProductscollectionofthedataservice:
oModel.remove('/Products(1)',null,function(){
alert("Deletesuccessful")
},function(){
alert("Deletefailed")})
https://sapui5.netweaver.ondemand.com/sdk/docs/guide/91f2a6ac6f4d1014b6dd926db0e91070.html
2/5
5/21/2015
ODataWriteSupport
Update Request
TheupdatefunctiontriggersaPUTrequesttoanODataservicewhichwasspecifiedduringcreationoftheODatamodel.SeetheODataModelAPIfor
informationaboutattributeuse.
Theapplicationhastospecifythepathtotheentrywhichshouldbeupdatedwiththespecifiedupdatedentry.
Afterasuccessfulrequesttoupdatethebindingsinthemodel,arefreshistriggeredautomatically.
Example
Thefollowingcodeupdatestheprice:
varoEntry={}
oEntry.Price="599$"
oModel.update('/Products(1)',oEntry,null,function(){
alert("Updatesuccessful")
},function(){
alert("Updatefailed")})
TheflagbMergehasbeenintroducedtoalsoallowaMERGErequesttoperformadifferentialupdate.
Read Request
ThereadfunctiontriggersaGETrequesttoaspecifiedpathwhichshouldberetrievedfromtheODataservicewhichwasspecifiedduringcreationofthe
ODatamodel.
Theretrieveddataisreturnedinthesuccesscallbackhandlerfunction.
https://sapui5.netweaver.ondemand.com/sdk/docs/guide/91f2a6ac6f4d1014b6dd926db0e91070.html
3/5
5/21/2015
ODataWriteSupport
Example
oModel.read('/Products(1)',null,null,true,function(oData,oResponse){
alert("Readsuccessful:"+JSON.stringify(oData))
},function(){
alert("Readfailed")})
Refresh
TheRefreshfunctiontriggersarefreshforeachbindingtocheckifavaluehasbeenupdated,ornot.Foralistbindinganewrequestistriggeredtoreloadthe
datafromtheserver.
Additionally,iftheXSRFtokenisnotvalidanymore,areadrequestistriggeredtofetchanewXSRFtokenfromtheserver.
XSRF Token
ToaddressthechallengeofCrossSiteRequestForgeryanODataservicemightrequireXSRFtokensforchangerequestsbytheclientapplicationforsecurity
reasons.Inthiscasetheclienthastofetchatokenfromtheserverandsenditwitheachchangerequesttotheserver.
TheODatamodelfetchestheXSRFtokenwhenreadingthemetadataandthenautomaticallysendsitineachwriterequestheader.Ifthetokenisnotvalidany
moreanewtokencanbefetchedbycallingtherefreshfunctionontheODatamodel.
Metadata
ThegetServiceMetadatafunctionreturnstheparsedmetadatadocumentasaJavaScriptobject.
Inthissection:
ExperimentalTwoWayBinding
Thetwowaybindingmodeenablestheapplicationtoupdatevaluesofasinglecollectionentrywithouttriggeringanimmediatechangerequest.create
anddeleteoperationsarenotcollectedandcanbecalledbytheapplicationasdescribedabove.
https://sapui5.netweaver.ondemand.com/sdk/docs/guide/91f2a6ac6f4d1014b6dd926db0e91070.html
4/5
5/21/2015
https://sapui5.netweaver.ondemand.com/sdk/docs/guide/91f2a6ac6f4d1014b6dd926db0e91070.html
ODataWriteSupport
5/5