Skip to Content
Technical Articles
Author's profile photo Sravya Talanki

XPower Meter Read Scanner: Google Cloud Vision Connector on SAP Open Connector Cloud Platform

Introduction

As SAP is going on an acquisition spree and hosting lot of products and applications on SAP Cloud Platform, clients and SAP development teams and capability leads are often challenged to not only upgrade their skills rapidly but also constantly puzzled on what is the business case for using these new apps and what does it additionally bring to the broad portfolio that organizations already procured and paid.

SAP acquired cloud elements recently and hosted it as open connectors on SAP Cloud Platform. It now not only has 150+  out of the box connectors to different systems but it also provides a very intuitive UI to build our own third party custom connectors on SCP platform. In this blog, we will not only look at when we will use Open Connectors but also the steps required to host the  google cloud vision  API on SAP Cloud Platform.

Hypothetical Business Scenario

We assume that smart meters are embedded into customer sites with an intelligent #IoT device that takes pictures of meter reads and sends it to SAP Cloud Platform which will then integrate into S4 HANA cloud and SAP backend systems to synchronise the meter reads that will automatically invoice and deduce payment from the customer bank account seamlessly without taking even one second of customer time.

To achieve this, we want to use Google Cloud Vision API as it is a pioneer in industry for image analysis and connect to SAP on-premise and cloud systems. Please note that SAP Leonardo platform also provides API for Image Analysis but we picked google cloud vision to just demonstrate how quickly we can integrate other vendors  with SAP cloud and on-premise systems.

Use Case

The business scenario will challenge us with one interesting question, “As there is no standard connector for google cloud vision and we have to build integration from scratch, which tools I should use to develop i.e SAP API management or SAP CPI or Open Connector”?

We already know that we will use SAP CPI for process orchestration pattern i.e.  when we have to orchestrate and fetch or split and map and encrypt data from multiple on premise and cloud systems.  Hence it is easy to deduce for anyone that SAP CPI and Open Connectors offerings are complementary.

This narrows down the interesting question a bit, “When would we use just API management and when we would use open connector and when we use both of them”  as both of them provide capability to design and develop and document or discover API(S) using a drag and drop UI.  Open connectors is used to when we need to paginate/search API(s) consistently or normalize authentication or enhance the functionality of the vendor /SAP API(S) and API management is used when we need to monetize API(S) or apply security verification/traffic policies ( Ex: Verify authentication ,Spiking, Quota, Billing plans etc) or centrally monitor  or expose the API(S) across the organization and business partners.

The following table may provide a guideline on when and why you will use Open Connectors to enhance SAP or third party API(S). We want to enable image analysis API to upload/download images in bulk and normalize vendor specific authentication( Supress Google Cloud Vision API key authentication) and use SAP Basic Authentication but want to use Google API quota and monetizing plan and hence our choice was Open Connectors. It took exactly less than an hour to build this connector on SAP Open Connectors platform without any prior skills on this platform.

Functionality Open Connector Component SAP Open Connector
Enhance third party API to provide notifications or call back on successful post of data into third party systems Webhooks Yes
Enhance third party or SAP API(s) to bulk upload data via files Bulk Upload/Download & Models Yes
Filter the third party or SAP API response or request payload as required by User App CEQL & Request/Response Hooks Yes
Do you want to enhance third party API to trigger every 5 minutes i.e polling? Polling Events Yes
Do you want to search i.e filter and paginate API(S) in consistent manner irrespective of whether they are SAP API(S) or third party API(S) and whether the functionality is implemented by SAP/third party or not? CEQL and Pagination Yes
Do you want to normalize authentication mechanisms of SAP API(S) and third party API(S) i.e use same authentication mechanisms as SAP for third party as well ? Authentication Types Yes
Do you want to merge data from multiple SAP API(S) and third party API(S) but provide one composite API to the User App? Formulas Yes
Do you want to create global canonical models and share the data models between different third party/SAP system API(S) especially when you are building your custom API(S)? Common Resources Yes
Are you on multi cloud environemnt ( i.e on Google/Amazon/Azure/SAP) but want to publish and authenticate all API(S) from SAP Cloud Environment? N/A Yes

Google Cloud Vision Connector

Step 1 : Swagger the Google API in JSON and import into Open Connector as .JSON and only select v1/images : annotate as we only require that method for this blog.

Step 2: In authentication screen, define the cloud vision connector basic authentication

Step 3: In configuration screen we created a API key and defaulted it with my Google Cloud Vision API key by pressing add configuration as we want to normalize authentication of the connector to use Basic Authentication and supress API key authentication required by google.

Step 4: In parameter screen , we need to map the configuration key defined above to pass the default value above as  a query parameter to  the vendor specific API ( Google Cloud Vision API) automatically.

Please note if we don’t perform step 3 and step 4 then the API will generate following error when you test it:

Step 5 : In resource section, you need to create authentication instance to try out the API as shown below :

We named the instance as “XPower MeterRead AI Scanner” and hence once it is craeted, the screen should look like :

Step 6 : In resource section, let’s test API by pressing try it out button to read the below gas meter reading from the image as shown below

Paste the below JSON in body section and press execute :

Step 7 :  Please note the new authentication and google cloud vision open connector API end point  and authentication format in the below Curl  Code. After you press the execute button, it should provide response as shown below. You can now test Google Cloud Vision API on SAP Open Connectors Cloud Platform using below curl code from postman or web/mobile applications across external and internal applications.

This API can now be bulk enabled and integrated into SAP ECC and SAP S4 HANA cloud for automatic invoicing and payment over SAP CPI app.

Assigned Tags

      6 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Moya Watson
      Moya Watson

      Sravya -- wow - cool share! Took only an hour to build this custom connector - awesome data point. Thanks for taking us through the reasoning for using Open Connectors.

      One note -- it looks like your images aren't resolving in the blog above - perhaps they're pointing to local storage instead of properly referenced in the cloud. Please have a look? thanks!

      Author's profile photo Sravya Talanki
      Sravya Talanki
      Blog Post Author

      Thanks Moya, I think I resolved now.

      Author's profile photo Moya Watson
      Moya Watson

      Excellent! Looks terrific! Thanks again.

       

      Author's profile photo Sravya Talanki
      Sravya Talanki
      Blog Post Author

      Thanks:)

      Author's profile photo Naresh Dasika
      Naresh Dasika

      Great blog!! Well explained on choosing CPI/Open connector/API Management.

      Author's profile photo Ludovic Lebioda
      Ludovic Lebioda

      Hello, Do you think it's still possible today?

      I'm not sure to understand how you can Swagger the api...