Well if you observe the Transaction /IWFND/GW_CLIENT i.e SAP Gateway client then you can see there are three HTTP methods for Update operation that are Put,Patch and Merge. So what’s the difference between Put,Patch,Merge. Let’s check out.
PUT: This will take the HTTP Request(Payload) as input and the same payload will be received in the Updata_entity method as we have seen in the previous part. e.g – If you pass sales office i.e { “Vbkur” : “170” } then only Vbkur will be visible inside the update_entity. In other words, if a subset of attributes is given as input to the PUT method then the same subset of attributes will be received for processing.
PATCH/MERGE: If a subset of attribute pass in the payload (HTTP Request) then other attribute or properties are fetched automatically. Patch and merge are behave in the same manner but the basic difference is that Patch supports OData 3.0 Protocol wherein Merge supports OData 1.0 & 2.0 Protocol. The patch is preferred over merge. The details can be found in the Link.
Let’s take an example to explain the same 😉
for our order header entity below are the following properties or attributes
{
"Vbeln" : "32346",
"Erdat" : "\/Date(1627171200000)\/",
"Erzet" : "PT19H29M37S",
"Ernam" : "FIORIUSER",
"Audat" : "\/Date(1627171200000)\/",
"Netwr" : "193.050",
"Waerk" : "USD",
"Vkorg" : "1710",
"Vtweg" : "10",
"Vkbur" : "180"
}
For Patch and merge – let suppose we pass only the { “Vkbur” : “180” } as in the payload, let see what will be received at the update_entity method
Wondering how other properties are fetched, even though only the Vbkur is passed in the payload? The answer is whenever you trigger a Patch or merge call then it will first trigger to the corresponding GET_ENTITY(collect all properties) method and then the UPDATE_ENTITY method.
You can check the same in debugging
Hope this clears the concept of PUT, PATCH & MERGE Operation in OData.
Previous Part: More about Update Operations in OData -Part 8 – ABAP Skill
Next Part:
Check out our ABAP Blogs ABAP – ABAP Skill
1 Comment
How to send messages as a response in OData – Part 10 · August 7, 2021 at 12:25 pm
[…] Previous Part:What is the difference between Put,Patch,Merge OData-Part 9 (abapskill.com) […]