python-pyodata icon indicating copy to clipboard operation
python-pyodata copied to clipboard

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

Open alex-berezin opened this issue 3 years ago • 2 comments

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" } } ] } ] }

alex-berezin avatar Feb 23 '22 20:02 alex-berezin

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

phanak-sap avatar Feb 27 '22 21:02 phanak-sap

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.

alex-berezin avatar Feb 27 '22 23:02 alex-berezin