Skip to Content
Personal Insights
Author's profile photo Nicolas Busson

SAP BTP Document Management free tier: epic fail

When I spotted this excellent blog post from Alex Dong, I decided to give it a try and see for myself if I could easily connect BTP Document Management service to S/4Hana to store attachments outside of the database :

My goal was to get a document management system with WebDav capabilities to (hopefully) test if I could find a way to overcome this issue about Word templates that cannot be opened automatically from the browser since IE (and its ActiveX magic) has been retired :

So I read numurous articles and online help guides to follow his steps… and I also check a free version is available for test purposes :


DMS Free Tier availability from discovery center

Answer is YES, thank you SAP, so here I go : I create a BTP account, a subaccount, I enable cloud foundry environment, create a space, an instance, configure the entitlements, add the corresponding service, add roles, generate a service key, etc. (there are lots of steps).

Finally I’m stuck on the “repository on-boarding phase” :

The problem is : I can make an API call from Postman to DMS service in order to receive the Token needed for subsequent calls, but whenever I try to send the next request with this token, I receive the following response without further information : “Unauthorized”. So I Google this issue, and do not find much solution except this blog post from Mahesh Palavalli which is describing exactly what I’m trying to do:

  • “Step 3 – Get access token” => OK
  • “Step 3 – Create repository” => Always ends up with “Unauthorized”

So I spend the entire day trying to figure out what I’m doing wrong: I change the “bearer” parameter in Postman, I change the header, the body, everything, even stupid things. In the end I decide to scratch everything I did so far, and start all over again taking a closer look to every details. I’m convinced I might have marked the wrong checkbox at some point.

Today is another day : I read and thoroughly follow all guides from trusted sources. Same result. However after a deeper analysis of each and every screenshots I notice the URL I have in my service key contains “” which is different from “” I see in the available pictures… Interesting.

So I scratch everything again and on the first step (the one where you create a subaccount in BTP), I select a different region from before : I switch from Europe Frankfurt (closest to the place where I live) to USA… and the magic happens ! I notice immediately that a new service is available when configuring the entitlements : not only can I select “DMS integration option” but I can also add “DMS repository option” (which I thought was kind of included by default with the integration option — but it’s not). Wonderful.

This time I do not face any “unauthorized” issue in Postman, and my first repository is successfully created. I can feel it I’m almost there. Now all I need is to tell my S/4HANA system to use BTP DMS as a content server, and there’s another very nice blog post about it from Vikram Kulkarni :

Everything is going well: I create the OAuth profile, start transaction OA2C_CONFIG (I decide to activate all SICF services for this one because I don’t want to waste time trying to find what’s missing on my sandbox system), create an RFC destination, customize tcode OAC0 and execute report CMIS_REPOSITORY_SETUP. This step takes a little bit of time but ends without any error and I can complete the installation process successfully by activating the storage category.


I’m thrilled and can’t wait to test… but as the title of this blog suggests, it’s not working. As soon as I add an attachment to any object, I’m facing a dump. So after another couple of hours of debug, I spot the error returned by BTP DMS service: “You’ve reached your 1000 limit calls, upgrade your subscription”. So it looks like report CMIS_REPOSITORY_SETUP needs more than 1000 calls to setup the DMS instance, and I can’t use it anymore.

Game over.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Alex Dong
      Alex Dong

      Hi Nicolas,

      Glad you shared with us the experience and totally understand your feeling. To be honest, I spent 2 ~ 3 weeks to struggle through all of these :D.

      Cause I never tried with Free option, it seems a bug from BTP DMS perspective.

      I will raise this to product team and hopefully they can help to check.

      Thanks and best regards,


      Author's profile photo Aliaksei Karmaza
      Aliaksei Karmaza

      Hi Alex, i use this blog to create Fiori app which represent DMS in SAP BTP using BAS(appl studio), i tried a lot of scenarios to build this app also used another tutorial but always i have the same screen:

      at the console browser page i always got message: "Failed to load resource: the server responded with a status of 401 (Unauthorized)" end part of url is : /comsapecmreuse.comsapecmreusedocumentTable/api/browser

      in postman it is also exists same issue but new token generation solves this problem.

      Maybe it's depends of my service plan, because i also have BTP DMS free plan

      Author's profile photo Asma Siddiqa
      Asma Siddiqa

      Hello Nicolas,

      Thank you for trying this out and providing your comments 🙂

      I represent the product management and development team for BTP Document Management.

      Below are my comments on your 3 pain points:

      1.Repository Onboarding:

      If using an internal repository, then entitlements need to be added for the "Repository Option". This is also mentioned here

      Hence, regardless of Europe or US region, repository option needs to have an entitlement, else an internal repository cannot be onboarded.

      2. Error Thrown during Onboarding:

      Since the URL was pointing to EU30, there is an "Unauthorized" error. The only strange thing here is that you had EU30 in the URL instead of EU10(which is Europe Frankfurt). Could you please provide us the entire service URL?

      3. Limitation on 1000 API Calls

      Regarding 1000 API calls with S/4 HANA, the program which runs is an ABAP report, and might take more API calls as CMIS_REPOSITORY_SETUP creates all business objects present on the S/4 HANA side, and you might know on how many business objects reside on S/4 HANA 🙂

      This was not a tested scenario for free tier, as free tier was meant for tests with Document management options (repository, integration, application) and not with external repositories( however, this was not mentioned explicitly).

      This is due to the reason that there would also be users who could connect with OpenText storage repositories or other external repositories(which is a feature of Document Management), but we cannot determine how many API calls would this scenario take as it is outside the purview of BTP or Document Management.

      However, since this feedback has come in, we will try to evaluate on what best can be done to accommodate this testing scenario(replacement of content server) in free tier.

      Best Regards,


      Author's profile photo Nicolas Busson
      Nicolas Busson
      Blog Post Author

      Hello Asma,

      1. I'm sorry to say that the online help didn't help me in this regard... because you might write that you need the "repository option" entitlement somewhere, but then why would you mark "1 GB of free storage" in the integration option? (see first picture of my blog -- underlined in yellow). I must confess the difference between integration and application option was quite clear to me, but the one between integration and repository was not. Not to mention the "Feature scope description" available in the discovery center that is mentioning we can manage documents and upload large files... And this is included in the integration option paragraph (that's why I thought it was kind of included when I couldn't select the repository entitlement in BTP) :
      2. I selected the first "Europe Frankfurt" I saw in the dropdown list when creating my subaccount. I didn't expect that it wouldn't work because it was not under the subcategory "AWS" as in the next step I was able to select entitlement "Integration option", so that gave me the impression I was running the right path (again, because of point 1 I thought the repository was kind of included in this option -- and the "Unauthorized" error during on-boarding didn't help much).
      3. Here I must admit I'm a complete newbie in document management so I just don't see why people using OpenText for example would want to add more complexity to their system landscape by trying to use your BTP DMS as a middleware.

      Like I said in the introduction of my blog, I just wanted to try if I could make it work. I thought the free tier option was intended for people like me, who like to play around with cool new features provided for S/4HANA. This is clearly not the case here. So I'm wondering what the audience could be that you are targeting...



      Author's profile photo Asma Siddiqa
      Asma Siddiqa

      Hello Nicolas,

      1. For your first question regarding "why do we mark 1GB of storage under Integration option" : This is due to the reason that no one can buy "Repository Option" independently.  Customers can either buy "Integration Option" OR "Application Option" and then they can additionally add entitlements for "Repository Option" if they want to use storage from us instead of any external storage. This is the reason we explain this in the help documentation on how to work with "external" and "Internal" Repositories. Below is the screenshot.

      Also, the feature scope document mentions rightly that the service can handle large files. This service can handle a single file ranging in GBs. But, your question on why you could not select repository option is answered below.

            2.  As per the screenshot, what I see is that, you have selected "Europe(Frankfurt) GCP from                  Google Cloud Platform and not from AWS. This is the reason you had                              “” instead of “”. For Google Cloud Platform, "Repository Option" is not yet available and hence you could not add this. Hence, when you changed this to the other AWS region, there was an option to add "repository option".

      3. This service is not intended only for S/4 HANA users. S/4 HANA application is one of the use cases for this service. This is not a new service and it also existed in the BTP Neo stack as 2 services, namely, "SAP Document Service " and "SAP Document center". On Cloud Foundry, we have extended the usage of this service to cater multiple use cases and multiple applications(ranging from standalone application like easyDMS, content server replacement, standalone storage and application like Google Drive, embedding in custom applications....).

      Hence, S/4 HANA customers also using OpenText as an external storage repository would have to connect via this service. Release guide is available for customers. We have quite a few big customers already live with this scenario.

      It would have been good if you had contacted us on the blog mentioning this scenario, and we would have supported you 🙂 We have done this with other external colleagues who wanted to try out this scenario.

      Hope the answers were helpful, else let me know.

      Best Regards,



      Author's profile photo Johannes Bacher
      Johannes Bacher

      Dear Asma Siddiqa ,

      I am posting my question here as your post is very new.

      We have subscribed to Integration Option and Repository Option - to connect this service to our S/4HANA Public Cloud as a content repository. Configuration went fine.

      Now for migration we need the Windows Client, as it is descibed in the guide SAP_COM_0597.

      The concept seems to be that we use the client to upload all existing files to the repository, and then as a second step use the migration cockpit in S/4HANA Cloud to migrater the DIR (document info records).

      But we cannot download the windows client, it says we are not authorized to see it in software downloads. Where can we get the client? As it is part of the migration process, the download should be authorized by integration option I think.

      thank you


      Author's profile photo Asma Siddiqa
      Asma Siddiqa

      Hello Johannes,

      I have responded to your query via mail. I hope that you are now able to download the desktop client. Get in touch via mail if you still face any issues.

      Best Regards,


      Author's profile photo Manfred Klein
      Manfred Klein

      Hello Nicolas Busson,

      just wanted to inform you that my small comment has been deleted as offensive language. There was not one swear word included. It appears that if something is not true we are not allowed to call it a lie. Preposterous!


      Best Regards,

      Manfred Klein

      Author's profile photo Asma Siddiqa
      Asma Siddiqa

      Hello Manfred,

      I guess that the software first needs to be tried out to term it as "true" or a "lie". This is the reason we have free tier and not the actual software that is in question.

      The above chain of comments to the issues faced and explanations, should already give you an idea that the software really performs as expected or not.



      Author's profile photo Manfred Klein
      Manfred Klein

      Getting a comment deleted with no proper explanation(just got the standard text: Bad bad boy! Ooh behave!) is an insult and a punch in the face.

      The original wording was: 'Seems like a ... lie.' Not 'is a ... lie.'

      Technically a lie is simply a question of 'true' or 'false'. If it's out off ill will is a completely different question.

      If You have a question that concludes in the future(like: Does the Euro crash within 2022?), You have afterwards 2 kinds of people: Those who were right and those who lied. To avoid belonging to the latter one should say: There is a quite high risk, that the Euro does not survive this year.

      Conclusion: Be careful with absolute statements like Software A works with Software B to achieve Feature C. Why? Because some people take this for granted and the frustration is high if things go sideways. If there stands a statement 'A works with B', this implies that A has been sufficiently tested with B. How the Author described, this has not been the case to avoid his pitfall.

      Correct would have been: Software A worked with Software B to achieve Feature C in our test environment which was ...