SAP / python-pyodata

Enterprise-ready Python OData client
Apache License 2.0
219 stars 93 forks source link

enhancement request to support "upsert" function import from SAP SuccessFactors API #206

Open alex-berezin opened 2 years ago

alex-berezin commented 2 years ago

Hi there,

Can you please consider a new enhancement to support "upsert" function import coming from SAP SuccessFactors API?

Metadata:

FunctionImport< Name="upsert" ReturnType="Collection(SFOData.UpsertResult)" EntitySet="UpsertResult" m:HttpMethod="POST" sap:support-payload="true" >/FunctionImport<"

Example payload: Method: POST https://api2preview.sapsf.eu/odata/v2/upsert Body: { "metadata": { "uri": "FormPMReviewContentDetail(formContentId=169736L,formDataId=32107L)", "type": "SFOData.FormPMReviewContentDetail" }, "competencySections": [ { "metadata": { "uri": "FormCompetencySection(formContentId=169736L,formDataId=32107L,sectionIndex=1)", "type": "SFOData.FormCompetencySection" }, "competencies": [ { "metadata": { "uri": "FormCompetency(formContentId=169736L,formDataId=32107L,itemId=13550L,sectionIndex=1)", "type": "SFOData.FormCompetency" }, "officialRating": { "metadata": { "uri": "FormUserRatingComment(formContentId=169736L,formDataId=32107L,itemId=13550L,ratingType='official',sectionIndex=1,userId='admin')", "type": "SFOData.FormUserRatingComment" }, "ratingKey": "wf_sect_1__c13550_r", "rating": "1.0" } } ] } ] }

phanak-sap commented 2 years ago

Hi, the UPSERT feature was new in OData spec version 4. This enh. request is basically subtask of issue #39.

alex-berezin commented 2 years ago

Hi @phanak-sap ! Well, not sure if it’s part of V4 release, but it’s being used in V2 as Import Function, as you can see from metadata. Probably this is a part of SAP Success Factors API. The main difference is that method is POST for an Import Function, not a GET. So, if possible, please consider it as a V2 part. It was already requested couple of years ago, see https://github.com/SAP/python-pyodata/issues/136 - item 2.