Pages

Monday, December 17, 2018

Oracle Engagement Cloud Event Processing using Sales Cloud Adapter within Oracle Integration Cloud !!!


Recently, I been part of one POC where I have learned how we can consume Business Events from Oracle Engagement Cloud.


Oracle Engagement Cloud is a Software as a Service (SaaS) offering from Oracle which provides unified Sales and Service Capabilities, includes sales force automation to manage the full sales lifecycle including leads, accounts, contacts, opportunities, assets, activities, assessments, and forecasts. Leverage content on mobile, the web, and email applications etc.Beneath the hood, there are several business object e.g. Account, Contact, Plan, Opportunity, service request etc. which form the data model to store data in back-end and exchange data with other systems.

In this blog, I will be simply demonstrating the prerequisite which are required to configure inside Oracle Engagement Cloud and OIC Sales Cloud Adapter configuration. Below Instruction applicable for Fusion Application Release 13 or later version, and Integration Cloud versions 18.4.1, if your environment version is different then given instruction may or may not work.

Sample Use Case - When user updating any existing Service Request Status in Oracle Engagement Cloud e.g. Open >> In-Progress, the SR Status need to be updated back to Banking Complaint Management Portal.

Assigning Role to Integration User- In order to consume Event from Oracle Engagement Cloud in OIC, the Integration user need to be exist or created with required roles. Either use existing user or create a new one in Engagement Cloud.

Note: You must be having Admin privilege to do that.

You can create new USER in Engagement Cloud by navigating to Oracle Cloud Home page >>Oracle Engagement Cloud  (Login with Admin Account) >> Navigator>> More >> Securi >> Create new user and add below specified roles -
Role  = "Customer Relationship Management Application Administrator"
Role Code = "ZCA_CUSTOMER_RELATIONSHIP_MANAGEMENT_APPLICATION_ADMINISTRATOR_JOB"
Note: Documentation talks about adding two more roles 1) SOAOperator and 2) FND_MANAGE_CATALOG_SERVICE_PRIV.  In my environment I couldn't find these two pre-existing roles. So I haven't added. If you found these two roles in your environment please feel free to add these roles to newly created user.


01-HomePage

02-OEClogin
03-securityconsole
04-Adduser
5-AddUser

Once user created, you will be getting mail on specified mail id with temporary password, logout from existing user and login using your new credentials and change the password.

Configure CSF Key
You must create a CSF key to subscribe to events in Oracle Sales Cloud. This will hold the credentials of Integration Cloud user and password and will be used when Sales Cloud will make outbound request to Integration Cloud Service to raise an Event.
Access SOA Composer to create CSF key using below example URL -

https://ucf6-fap0XXXX-fa-ext.oracledemos.com/soa/composer

In above URL, make sure you use right Sales Cloud Environment hostname, above name is just for an example. /soa/composer URI part is fixed.
Once open SOA Composer, click on Manage Security  and and register CSF KEY using below values description -

CSF-KEY - The CSF-Key name must be the Identity Domain name of Oracle Integration Cloud Service. You can get the Identity Domain value by clicking "About" option inside Integration Cloud Service.

7-IdentityDomain

UserName- Enter Oracle Integration Cloud User and Password, make sure this user must assign "IntegrationServiceRuntime" role.
Password and Confirm Password - Specify per password policy.

6-CSF-Key


Once above part is done, next steps are very simple to create connection and connection instance inside Integration which I won't cover too much in details as its same as common step followed for any other integration.

Oracle Sales Cloud Connection for Engagement Cloud -

Login to Oracle Integration Cloud >> Integration >> Connection >> Create  >> specify Oracle Sales Cloud Catalog WSDL and Event Catalog URL along with user name and password.
Defining the URL for Service Catalog WSDL and Event Catalog WSDL is quite easy from Release 13 onward. Most of the URL part if fixed, the only environment host name needs to be changed.
e.g. in below values green color highlighted part is predefined and doesn't need any change, only host name needs to be changed to point correct Sales Cloud environment.

https://ucf6-fapXXXX-fa-ext.oracledemos.com/fscmService/ServiceCatalogService?WSDL

https://ucf6-fapXXXX-fa-ext.oracledemos.com/soa-infra

8-OECConn

Once connection tested, save the connection and create the Integration using this connection. Inside integration drag and drop newly created Oracle Engagement Cloud Connection and specify which particular business event you want to listen e.g. in my case I was willing to get update whenever a Service Request status gets updated, so I selected "Service Request Update Event"

9-Integration

and Response type "None".

10-Integration

Once Oracle Engagement Cloud Connection instance configuration done. Similar drag and drop right/target hand side Connection instance object as well, it could be any system depending up where you want to process this event which you will consume from Oracle Engagement Cloud. I am not covering in details because those are very common step and most developers know how to do that. Once both side Connection instance configuration is done, perform the mapping.

11-Mapping

Once mapping done, your integration is ready to be activated and use.

Testing- 
In order to test this, I just need to change a SR status in Engagement Cloud e.g. "In-Progress" to "Waiting" which will trigger an Business event and Fusion application will call my Integration process to provide that business event object, once Integration will receive the event it will push that event to target system. In my case target system was Visual Builder Data Object using REST Adapter.

Updating SR status from In-progress to waiting-
12-EC-SRUpdate
Here is the snap of Integration execution flow -
13-OIC-SRUpdateProcess
Below the web app snap which is consuming Visual Builder Data Object to show the notification from Engagement Cloud.

webappStatus

Conclusion:
In this blog I have tired to show you the prerequisite which we need to configure at Oracle Engagement Cloud to consume Business Event using Oracle Integration Cloud.
Also, given very high level steps of Integration and testing steps, but that can vary drastically use case basis. Hence, I haven't explained too much on those topic. I hope you must have go the core idea about Oracle Engagement Cloud Business Event processing using Oracle Integration Cloud.

Friday, June 1, 2018

Invoking HTTPS Service Request from Oracle API Platform

Oracle API Platform's API Implementation has two service naming convention 1) API Request 2) Service Request.

API Request - is the endpoint to which users or applications send requests for your API.

Service Request - is the URL at which your back-end service receives requests.

In this blog we are going to discuss what are the additional configuration we need to done inside API Platform Gateway Server while invoking a HTTPS Service Request URL.

Since, its HTTPS URL obviously there is associated SSL cert with that URL which is signed by Certificate Authority.

Recently, I have been doing one POC where I was invoking a Service Request HTTPS URL but it was not working and later found out it's because of associated SSL certificate was not configured in Weblogic JKS Keystore.

Before, I get into detailed solution, let me tell you bit more about problem. At very initial stage when I tried creating an API which is in-turn calling an HTTPS service request, it was failing while invoking that service from rest POSTMAN tool and was getting "Internal Server error" as per below snap.


1

It was quite tricky to find out what's went wrong in back-end which was resulting above error. After struggling a bit I found one very important log file "Default.log" for API Gateway server aka Oracle Communication Service Gatekeeper (OCSG) Server, located at e.g. /u01/apics/install/domain/gateway1/servers/managedServer1/trace/ path. In your case "/u01/apics" might be different, but rest PATH should be same.

This logs, clearly state there was issue with SSL Handshake and was getting "javax.net.ssl.SSLHandshakeException: General SSLEngine problem" error as per given snap-


2


Thursday, May 31, 2018

Oracle API Platform Gateway Log files Summary

 
Is Troubleshooting Important for you ? I hope, the answer is Yes. If that's the case for you then first thing we need to know where to look for the detailed error message when something going wrong e.g. Gateway server not pooling API configuration from Management tier, while Invoking API end user getting "Internal Server Error", "Resource not found" etc etc. There could be many types of error but often its hard to find out root cause of exact error.

Recently, I have created an API which was further calling and HTTPS endpoint. While, invoking that API I was getting error "Internal server error", However, there was nowhere I could easily locate the details error about this problem. I had looked Managed server.log, ManagedServer.out, APICS EDR file and many other files but couldn't find useful error message related to my error. Later, I found one log file "default.log" which helped me to get root cause of my error. Hence, I decided to compile a list of all logs files, their location and bit of description, so that next time when I hit the some issue, it could be much easier for me to find out root cause by looking relevant log file. This blogs definitely helps to reader as well if they got stuck with API Gateway Error.

Note: The path given in my explanation could be different than your environment but I hope you can very well workout your environment path after looking my sample PATH which I have mentioned in this blog. My base location of installation was "/u01/apics", the rest PATH should be same in your environment.

Also, before enabling debug/trace severity make sure it's impact on file size because some of the files start getting thousand of lines of logs once you enabled the debug/trace log severity.
So, here is my comprehensive logs files list, their location and bit of description which you won't find in Oracle APICS documentation.

Thursday, May 10, 2018

Create and Delete Users in Weblogic using WLST Script

In one of my recent Event engagement, I was expected to provision 50+ users in Weblogic. Creating users in Weblogic is not cumbersome process, it's fairly easy. However, when you need to do in bulk it can take hours.

So, I just came up with simple WLST script which take an configuration file as input which contains all the server credentials required to make connectivity and list of users, description and group name etc and create and delete users in Weblogic.

Note: I have tested this script in Weblogic 12.2.1.2 but it should work in all Weblogic version as long as the beans which I have used inside python not been change in particular Weblogic Version.

Creating Users


Configure Letsencrypt SSL Certificate in Weblogic 12c

Who doesn't like the security. This is one of critical element of our IT Infrastructure. Recently I was doing one POC and got requirement to setup a valid SSL certificate in Weblogic. However, since it was just an POC we were not having any valid SSL certificate issued by some Certificate Authority. Later, I came across for one website called https://letsencrypt.org/ . Let’s Encrypt is a free, automated, and open certificate authority (CA). they give people the digital certificates they need in order to enable HTTPS (SSL/TLS) for websites, and its free, yes you heard correctly It's FREE !!!. You don't need to pay them at all. So if you need a valid SSL certificate for your POC or even for Production environment you can get one from them. Although their certificate comes with 3 month validity, so while using for Production environment user need to keep renewing with them with simple automated process.

In this blog we will be learning how we can generate letsencrypt SSL certificate, what's prerequisite to get the certificate and setup that certificate in Weblogic server to enable SSL communication.
So, Lets move on. We will be doing below stuff in sequence -
  1. Get a registered domain name (This required while generating SSL Cert)
  2. Install Certbot ACME Tool and Apache HTTP Server
  3. Generate Letsencrypt SSL Certificate
  4. Configure Letsencrypt SSL in Weblogic Identity Store

Monday, March 19, 2018

'API life Cycle is invalid!' Error for Oracle API CS API's

Hi, just thought to post the solution for this error, when I hit this error, searched all over internet couldn't find any specific blog describing possible cause of getting this error while invoking an API.
Let me give some background. I have created an API using Oracle API Platform Management Portal and when I tried invoking that API using google postman tool I was getting below error -
postmane
This was a silly mistake but worth highlighting. When we create API definition in API Management portal there is tab page "API Implementation" which has configuration field "API Request" where we need to define the API endpoint URL where consumer of this API will send input request. While I was declaring that portion I have given this URL "api/medrec".
APIRequest
There is no issue with declaring the endpoint URL in this way. However, the important point which I need to stress up on that anything after first forward slash become Private URI portion (e.g. medrec) of the API which will be passed to back-end service and if your back-end service doesn't know how to handle this private URI then we see this error while invoking the API. 
I am not saying this is one and only root cause which can produce this error message, but in my case this was the reason. There could be more scenarios which might can result same error message. If I hit with some other causes resulting this error message, I will update this blog post.
In order to fix this error, either modify the back-end service to deal with this private URI or change front-end API endpoint URL. In my case I have changed front-end endpoint URI for my API to this "apimedrec"
APIRequest1
I hope when next time someone will search google with error message "API life cycle is Invalid" this blog may be able to fix that issue.

Thursday, March 15, 2018

Oracle API Platform Cloud Service – Installation Steps of Gateway Node

In this blog I am going to document the Oracle API Platform Gateway Node (Version : 18.1.3) Installation steps which is one of the critical components of API Platform Cloud Service.
Oracle provides API Platform Cloud Service as a foundation product for API Management that comprises the Full API Lifecycle, encompassing the complete API Design & Documentation, API Security, Discovery & Consumption, Monetization, and Analysis etc.
Oracle API Platform comprises 3 major components as stated below to serve specific purpose-
Management Portal – This is used to create and manage APIs, deploy APIs to gateways, and manage gateways, and create and manage applications. You can also manage and Deploy APIs and manage gateways with the REST API.
Developer Portal – Application developers subscribe to APIs and get the necessary information to invoke them from this portal.
Gateway Node  – This is the security and access control run-time layer for APIs. Each API is deployed to a gateway node from the Management Portal or via the REST API.
In addition to above, Oracle also offer Oracle Apiary to quickly design, prototype, document and test APIs.
Below is the high level architecture diagram of API Platform.