Skip to Content
Technical Articles

Multitenant Cloud Integration Partner Directory Manager

Introduction.

Partner directory is a great addition to SAP cloud integration. We primarily use it to build B2B scenarios and dynamic IFLOWS. However, the general mode of interacting with the PD is usually by POSTMAN or SOAP UI. I used PD heavily in my last assignment an it was then when I got chance to develop this web application which can be deployed the the BTP foundry. This web application is built using Micronaut framework.

What is Micronaut.io?

Micronaut is a new JVM framework which is inspired by spring boot and grails but without their problems and complexity. Micronaut is a modern, JVM-based, full-stack framework for building modular, easily testable microservice and server less applications. It seamlessly gels with most of the cloud providers like AWS, Pivotal Cloud Foundry, Google & Azure to mane a few. it also supports message driven microservices like Kafka and Rabbit MQ. Basically it can be understood as a framework using which we can create cloud native microservices which can be then consume by any front end – HTML5, Vue, React, Android. Additionally, the microservices created using Micronaut are characterized by low memory footprint and blazing fast startup times.

What is the purpose of this web app?

The general purpose of this web app is to manage multiple tenant management nodes hosting the partner directory. Following are some of the salient features of the app:

  • Manage multitenant PD entities of a given landscape. Flexibility to add as many tenants as possible which can be managed using the app.

  • Support of full CRUDQ operations on the PD entities.
  • Ability to perform mass upload/download of the PD entities to the desktop (.CSV format) which can be edited offline.

  • Ability to mass upload PD entities record set to a given tenant. Care must be taken while uploading the offline file to the app. The file needs to be a Text (tab Delimited) (*.txt) file.

  • Ability to perform cut-over activity when we need to migrate the PD entries from one tenant to another tenant. Ex: dev -> qua -> prd.

This app can be deployed to BTP as a java_buildpack
.

Some screenshots of the web app.

Login%20screen

Login screen

Dashboard%20screen

Dashboard screen

Batch

Batch

Filter

Filter by a particular partner

Pre-requisite before installing the app.

  • JDK 1.8 or greater installed with JAVA_HOME configured appropriately. This can be checked by the following command: java -version in the CMD prompt.

  • CPI-PI role template AuthGroup_TenantPartnerDirectoryConfigurator must be assigned to user of a tenant to be able to work with its corresponding PD entities.

  • Any standard IDE to configure the app before deploying it in the BTP. In this case Intellij IDEA is being used.

  • Some time in your hands.

How to install the app?

  • Open Intellij-IDEA and click on open. Browse to the folder where the app has been extracted and select the build.gradle file. The file needs to be opened as a project.

Open%20file%20as%20a%20project

Open file as a project

  • Gradle is the build tool for this app, let gradle download all the dependencies required to run the app. This might take few minutes. Once all the dependencies are downloaded, the app can be configured.

How the app can be configured?

  • All the tenants whose partner directory is intended to be managed using this application needs to be configured in the application. This activity must be completed before deploying the app in the cloud. Of course, we can add new tenants if needed, but that would require a redeployment of the app in the cloud. The hostname of the tenant management node of all the intended tenants should be configured in the application.yml file. This file can be found at this locationextraction_folder/src/main/resources/application.yml. Replace your_tenant_tmn_url with the actual TMN URL keeping the quotes. Here is a snippet of the application.yml that requires change.

    tenant:
    dev: 'your_tenant_tmn_url'
    qua: 'your_tenant_tmn_url'
    prd: 'your_tenant_tmn_url'
  • If required, more tenants can be added. Once the dependencies are downloaded and the tenants are configured, gradle will be used to build the app making it ready for execution. This can be done by clicking on the build gradle-task.
    Gradle%20build

    Gradle build

  • After the build has been completed, open the terminal and run the app using command
    gradlew run.

    gradlew%20run

    gradlew run

  • Open the link localhost:8080 and check if the app runs without any error. If the app opens successfully without any errors, installation has been successful and now the app can be deployed to SAP BTP.

How to deploy the app to BTP?

  • gradle build task created the fat-JAR of the app. This fat-JAR will be deployed to the SAP BTP. Navigate to extraction folder\build\libs and check if the sap_pdm-0.1-all.jar file is available.

  • We will use the cloud foundry V7 CLI to deploy the app to the BTP cockpit. Download the CLI from SAP CLI Foundry and download the appropriate OS installer.

  • Extract the downloaded zip in favorite folder and launch the CLI Installer from the extracted folder.

  • Once installation is successful launch CF CLI from command prompt. Validate if installation is ok using cf version.

  • Get the API endpoint of the sub-account where we want to deploy the app.

    BTP%20API%20endpoint

    BTP API endpoint

  • Open CLI and set the API endpoint discovered above using the command: cf api API_endpoint.

  • Login in the cloud foundry BTP using the command. cf login We will be prompted to enter the username and password.

  • Now we will push the fat-JAR in the BTP using the following command: cf push app_name -f "path_to_manifest.yml file" The manifest file could be found in the favorite folder where the app was downloaded. The application name app_name provided in the Manifest.yml must match the app_name in the cf push command. Once successfully deployed, navigate to the global account > sub account > space > application list and launch the application deployed.

    Successful%20BTP%20deployment

    Successful BTP deployment

Conclusion

We can use this tool to manage our PD settings for multiple tenants available in our landscape. Please feel free to suggest new features or bugs in the comment section, I will notify in the comments when I will be releasing new version.

Github: https://github.com/deepankarbhowmick/sap_ci_pdm.git

1 Comment
You must be Logged on to comment or reply to a post.
  • Hi Deepankar, thanks for sharing it and making it open-source!

    I was expecting/am still expecting SAP to release a UI for Partner Directory. But it is nice to have options. Maybe SAP team can develop a better solution with our ideas!

    Regards,
    Fatih