What you're asking is possible but quite complex using OOB Flow actions. You could try using Office Script actions to perform the comparison operations.
If you want to try standard actions, the process may resemble:
1. Collect all the data from SAP and from SharePoint into 2 arrays
2. Two more arrays will hold the unique identifiers (from SAP)
3. Using Filter action, you can check for newly created items:
3.1. Filter From: SAP IDs - @body('SAPItemIDs')
3.2 Filter Query: SharePoint IDs does not contain item - @not(contains(body('SharePointItemIDs'), item()))
4. With the list of new IDs you can now create the new items in SharePoint
4.1 Filter the SAP items array for ids that are contained in the result array of 3.2 - @contains(body('NewItemIDs'), item())
4.2 If a large number of items is created daily, you can use the Batch Create process as documented by @Paulie78 here: Power Automate Flow to batch create SharePoint List Items (tachytelic.net), for a lower scale you can simply iterate and create the items in a Apply to each loop (remember to apply Concurrency to allow parallel creation of items and improve performance)
5. Same logics for deleted items (simply reverse the SharePoint and SAP arrays)
5.1. With the filtered SharePoint items (by the result array of the deleted items), either use the Bulk delete process or again, iterate the deleted items and delete in a concurrency-enabled Apply to each loop
6. Lastly the changed items - there it gets even more complicated, so I won't elaborate too much here, but the concept is creating two more arrays of the SharePoint and SAP items filtered so that the SAP IDs exist in both arrays with the tracked fields concatenated - for example: concat(item()?['SAPID'],',',item()?['Title'],...). With the two arrays at hand, you can now use a similar approach to check for items in the SAP array that are not contained in the SharePoint array - these are the Modified items! Lastly, you can either iterate the changed items, locate them in SharePoint by ID and update them in Apply to each loop (concurrent..), or you can use dictionaries (documented here: Power Automate Dictionary – EPM Dev Blog (wordpress.com)) to collect the changes and SharePoint IDs and use the Batch Update process.
For performance tuning of your flows I recommend reading @mdevaney 's excellent post: Power Automate Standards: Performance Optimization (matthewdevaney.com).
That's it,
Hope this helps you and others