SAP / cloud-sdk-js

Use the SAP Cloud SDK for JavaScript / TypeScript to reduce development effort when building applications on SAP Business Technology Platform that communicate with SAP solutions and services such as SAP S/4HANA Cloud, SAP SuccessFactors, and many others.
Apache License 2.0
162 stars 56 forks source link

Support for SAP Master Data Integration API #3463

Closed gregorwolf closed 7 months ago

gregorwolf commented 1 year ago

Hello SAP Cloud SDK Team,

I'm currently attending the OpenSAP Course SAP Master Data Integration. There I've posted the question:

Does SAP CAP or SAP Cloud SDK support MDI to build custom BTP Applications using MDI?

which I repeat here for reference:

on Slide 5 of Week 3 unit 1 you show that a "native BTP application" can connect to SAP MDI. Today such applications use the SAP Cloud Application Programming Model (CAP) which itself uses SAP Cloud SDK to consume On Premise and Cloud Backends as well as BTP services.

Here are my questions:

  1. Is there already support for MDI in CAP / SAP Cloud SDK?
  2. If not, is such support at least planned?
  3. Do you have any pointers to example applications that use MDI in a native/custom development?
  4. Does the use in native BTP applications require the use of SAP Cloud Integration or can we integrate directly without any additional cost?

Best Regards, Gregor

Describe the solution you'd like

As an SAP Partner we've already developed a CAP based solution that implements it's own logic to replicate Business Partner and Product (Material) Master Data from an S/4HANA backend using the standard OData APIs. That was a huge effort and I think many other SAP Customer and Partner solutions also need this.

With SAP Master Data Integration available as a central hub based on the SAP One Domain Model it seems to me the ideal way to get needed master data into side-by-side solutions. I would suggest that the teams of:

Get together and think of a way to provide a generic solution for Master Data replication into CAP based Side-by-Side extensions.

Describe alternatives you've considered

A clear and concise description of any alternative solutions or features you've considered.

Impact / Priority

Affected development phase: Production

Impact: No Impact

Timeline: Long term replacement of the current custom solution

marikaner commented 1 year ago

Hey Gregor,

great to hear from you! And thank you for your suggestion - this is really helpful. We just recently started evaluating whether the SAP Cloud SDK team should invest in MDI support or not and we also came to the conclusion that you are pointing out - we need to sit together with the 3 parties and decide who does what. We are considering taking up a related project to put our assumptions to a test. But the evaluation will take some time.

So all I can tell you for now is, that we are looking into it, but haven't made any official decisions yet.

jjtang1985 commented 1 year ago

Dear MDI stakeholders from the community,

Disclaimer:

I'll focus on the use case below, in this comment:

Currently, MDI has productive customers, but here some notes that you might want to know.

  1. Developer Experience There are some productive application, that uses MDI as a service on BTP. With the current vanilla MDI API, application developers have additional jobs to do, so that you can make use of the MDI service as you wish. Potential solutions can be:

    • MDI improve their API, for better API consumption (e.g., enabling batch), which is a frequent topic, while I personally would not expect this will change in the year 2023.
    • Some other client libs can help like the SAP Cloud SDK, that's why the SDK is evaluating the potential user base like below:
    • internal/external user
    • CAP user, SDK user or both
    • Assuming we are talking about LoB side by side extension (Master Data is related to LoB), but how many LoBs do you want to consume eventually?
  2. MDI Provisioning

Currently all integrations that are not direct integrations from SAP branded cloud applications must go via SAP Cloud Integration.

I copied the message from a comment from the openSAP platform, that Gregor referenced. The "SAP Cloud Integration" mentioned is some processes for legal purposes. I guess this is something MDI should provide better answers (please approach them), but FYI.

To summarise, to make a better MDI community, there are spaces for improvement. Please leave your wish to MDI (e.g., simplify the processes) and/or SDK (MDI client), because you as a user can influence the priority. (Thank you @gregorwolf , for starting this thread)

Best, Junjie

Johannes-Schneider commented 1 year ago

Hi @gregorwolf,

I'm one of the developers who are currently evaluating how we can improve MDI support from the Cloud SDK perspective.

For our evaluation, we are going to implement a PoC application, which is supposed to integrate with MDI. Since we are just getting started, I'd be curious to know a bit more about the logic you are hoping to replace in the long term (assuming that SAP is going to provide some sort of client library).

  1. Which programming language is your current application written in (Java vs. JS/TS)?

(Background): We are just launching our efforts for the PoC application, so we need to decide on a programming language. As we thrive to maximize customer value, it would be helpful to know whether customer demand is more focused on Java or JS/TS. With that information, we hope to accelerate the potential release of an MDI client within the SDK (if we decide to actually do that) as we would be able to re-use code written in our PoC implementation more easily.

  1. In your initial description, you mentioned that you are "replicating" data from the S/4 system. Does this mean you are focussing on reading data from S/4 only? Or are you also manipulating master data, which need to be send (written) back to the remote system?

Best regards, Johannes

gregorwolf commented 1 year ago

Hi @Johannes-Schneider,

thank you for picking up this topic.

  1. Our CAP based Side-by-Side extension is implemented in JS/TS. So that would be our preference.
  2. In our extension the master data isn't modified. We need it for value helps (F4 helps) and to check for referential integrity when loading the transactional data. That are sales and purchasing price conditions. The conditions are maintained in our extension and then written back to S/4HANA using the standard OData V2 APIs.

A new challenge that came up just recently is that our app should also allow the business units (BUs) that still wait for the S/4HANA to be rolled out. The rollout to all BUs will take until 2027. They are running SAP ERP right now. MDI is not supporting SAP ERP. So right now we think to create our custom Master Data Service that would integrate to S/4HANA via MDI but to the ERP Systems using custom OData Services that mimic the S/4HANA OData services.

CU Gregor

gregorwolf commented 1 year ago

Hello SAP Cloud SDK Team,

today I've received a first concrete requirement where support for Master Data Integration in SAP Cloud SDK or CAP would be helpful. With S/4HANA 2022 support for Exchange Rate Replication was added. Our CAP Application needs this exchanges rates for price calculations. Unfortunately the currently used interface Exchange Rate – Replicate (A2X) does not support delta replication. So always a full update is needed. The customer is in the process to upgrade to S/4HANA 2022. It would be great if this new option could also be used for the CAP Applicaiton.

Best Regards Gregor

Johannes-Schneider commented 1 year ago

Hi @gregorwolf,

thanks for bringing this use case to our attention.

I've been working on a PoC application for the past three months to see how an MDI integration in a real world application could look like. Yesterday (May 8th), we completed the initial scope of the app. Therefore, I'll be discussing our next steps from the SDK side together with @jjtang1985 in the following days - your use case is very valuable as it helps us to drive an informed decision on the topic.

Best regards, Johannes

jjtang1985 commented 1 year ago

@gregorwolf ,

Thanks for forwarding the concrete requirement.

Based on the current number of requests of the MDI client library, as SAP Cloud SDK for JavaScript, we have no plans to provide further support for consuming the MDI service at least for this year 2023.

Please feel free to share further feedback, that might influence our decision for e.g., the next year. Thank you very much for your understanding.

Best regards, Junjie

jjtang1985 commented 7 months ago

Unfortunately, we will not work on the MDI integration due to other priorities.