Tagged REST

Oracle SaaS Stories: Creating a Custom App Extension with Visual Builder | Part Three: Filtering Data


Next step after what we posted here is how to implement a mechanism to filter results. Taking a look to the REST APIs we can notice that the query parameter q is the one that can help us to implement what we are pretending:

So the q parameter works as a field1<operator1>value1;fieldn<operatorn>valuen expression that can be passed as a parameter to the REST service. Let’s hands on.

Create a global variable for the search criteria:

Drag and drop an InputText onto the Page Structure pane:

Create a new Event for storing in a variable the value of the InputText when it changes:

Drag and drop a Button same way:

Create new Event and implement action chain:

In the success branch of the Rest call put a Call Component Method and select the refresh method of the table object:

In the failure branch put a Fire Notification Error and configure it as follows:

Hope it helps! 🙂

Oracle SaaS Stories: Creating a Custom App Extension with Visual Builder | Part Two: Results Pagination


In this episode we are explaining how to list data results in a table located on a page. This is the typical use case in which we want to show business data to the user according to certain criteria. For now what we want to demonstrate is how to show results in paginated mode. The good thing here is that we are not writing any line of code at all.

SaaS REST API Structure and Taxonomy

Most of the new REST APIs of Fusion SaaS have the same structure, for example in the HCM package we found:

For now we are focusing in the offset and limit parameters.

An example querying Transfer Orders

Let’s create a page that retrieves all transfer orders. First, we need to locate the service in the catalog. See here for more details.

This API retrieves all transfer orders

Create a new project in VB and then drag and drop a table in the page and click Add Data assistant:

Create a couple of global variables at application level adn set the default value for rowspertable as 10:

Select the TransferOrders endpoint and click [Next]:

Select columns to show and the table primary key:

Map the global variables to the endpoint parameters and click [Finish]:

For now we have the results in the table:

Drag and drop an InputNumber on to the Page Structure pane, above the table and set the min value to 0:

Add Assign Variables action to the Action Chain:

Add Navigate action as well:

Click on Assign Variables action and then on Assing link:

Map the value variable in the action chain to the application variable offset and click on [Save]:

Click the Navigate action and then de [Select Target] button:

Select Peer Page:

Select the page where the table is located:

We are almost done, click on the Play button:

Click on the InputNumber up and down and see how the table shows data in pages as the inputnumber changes:

So that’s all for now, in the next episode we’ll see how to filter results in the table.

Hope it helps! 🙂

Oracle SaaS Stories: Creating a Custom App Extension with Visual Builder | Part One: Connect Visual Builder to Fusion SaaS API Service Catalog


Visual Builder Cloud Service (aka VBCS), one of the 3 legs of Oracle Integration Cloud (aka OIC), is a low code development environment that is one of the main mechanisms for extending Oracle Fusion SaaS Apps.

In this episode we are connecting VBCS to a SaaS instance, so we can get the different endpoints provided and then use it in the application.

What you need is:

  • a user with access to OIC instance
  • same user with access to SaaS instance

Step 1: Create a new VBCS app

OIC -> Visual Builder
Click [New] on the top right
Select SaaS Template
Provide values and click [Finish]

Step 2: Configure

Go to hamburger menu on top right and select [Settings]
Click on [Services] tab and provide the info

The url to provide has the following format: https://instancefqdm/helpPortalApi/otherResources/latest/interfaceCatalogs

where instancefqdm is your SaaS instance such as https://<id>-<env&gt;.fa.<datacenter>.oraclecloud.com

Click on [Test] button

Step 3: Import the catalog

Click on [Service Connections] icon on the left
Click on [+ Service Connection]
Click on [Select from Catalog]
Click on [FA Services]
Click on one depending on the functional area you want to work with
Wait for the endpoints to appear, expand and select endpoints desired
When you are done click on [Create] on right down corner
Click on [Endpoints] tab and find your endpoints in there

Step 4: Use an endpoint for listing Contacts in a table

Click on [Web Applications] icon on the left, expand flows, expand main, select main-start, locate Table in the Components panel and drag and drop onto the view or onto the Page Structure panel. Click on [Add Data] on the right
Select Contacts and click [Next]
Select or drag&drop fields in the Columns panel. Select the Primary Key and click [Next]
Leave things as it is for now and click [Finish]
Click the “play” button up right
And here it is, you have your contacts page created

And that’s all folks for now, hope it helps! 🙂

Oracle Loyalty Cloud | REST API | Get Service Requests of a Member + Update SR


Photo by Lukáš Kováčik on Pexels.com

The method for geting this info is under the Engagement REST API here.

The call includes a parameter which is filtering by the Member Name as follows:

curl -X GET -k -H 'Authorization: Basic whatever' -i 'https://serverdomain/crmRestApi/resources/11.13.18.05/serviceRequests?q=LoyMemberName="menbernamehere"&onlyData=true'

Example:

curl -X GET -k -H 'Authorization: Basic am9ob........DM3Mzg=' -i 'https://xxxx-xxxx-xx-ext.oracledemos.com/crmRestApi/resources/11.13.18.05/serviceRequests?q=LoyMemberName="ad pepelu"&onlyData=true'

{
   "items" : [ {
     "SrId" : 300000183643204,
     "SrNumber" : "SR105156",
     "Title" : "bbbbb",
     "ProblemDescription" : null,
     "SeverityCdMeaning" : "High",
     "SeverityCd" : "ORA_SVC_SEV1",
     "AssigneeResourceId" : 300000129858698,
     ...
     "PrimaryContactPartyId" : 300000183643142,
     "PrimaryContactPartyUniqueName" : "ad pepelu",
     "PrimaryContactPartyName" : "ad pepelu",
     ...
     "ExtnsrMgmtFuseCreateLayout_InstallBase_1554923756871Expr" : "false"
   } ],
   "count" : 1,
   "hasMore" : false,
   "limit" : 25,
   "offset" : 0,
   ...
     "name" : "serviceRequests",
     "kind" : "collection"
   } ]

Following same API, here an example of how to update an existing SR:

curl -X PATCH -k -H 'Content-Type: application/vnd.oracle.adf.resourceitem+json' -H 'Authorization: Basic am9ob...3Mzg=' -i 'https://serverdomain/crmRestApi/resources/11.13.18.05/serviceRequests/SR105156' --data '{
"ProblemDescription" : "Me duele la cara de ser tan feo"}'
...
{
   "SrId" : 300000183643204,
   "SrNumber" : "SR105156",
   "Title" : "bbbbb",
   "ProblemDescription" : "Me duele la cara de ser tan feo",
   ...
   "links" : [ {
     "rel" : "self",
...
.com:443/crmRestApi/resources/11.13.18.05/serviceRequests/SR105156/child/resourceMembers",
     "name" : "resourceMembers",
     "kind" : "collection"
   } ]

Hope it helps! 🙂

Deploy ORDS (Oracle Rest Data Services) to Kubernetes Cluster


ords

ORDS is a piece of software that acts as an intermediary between Oracle Database and the layers where business logic is implemented and/or consumed.

NOTE: If your database hasn’t been set up for ORDS just google for it or take a look at this post.

With ORDS you expose database objects as REST. ORDS can be started standalone or in an application server. Deploying ORDS in Kubernetes as stateless pods with several replicas provide an elastic layer of rest exposition, out of the database, with high availability and fault tolerant.

ordsarch.png

First of all, we need a container ready to run ORDS in standalone mode. For this particular case, we are utilising one already done, see yaml file mentioned in next steps.

kuberneteslogo

Let’s start creating a secret for storing the password for the user that makes de connection to the database:

kubectl create secret generic ordspassword --type=string --from-literal=password=[somepassword]
Now, take a look and download this yaml file here and make changes regarding the database connection service and floating IP (SCAN in the case of a RAC or host IP in case of a single instance).
        env:
        - name: DB_HOSTNAME
          value: "example:172.16.0.7"
        - name: DB_PORT
          value: "example:1521"
        - name: DB_SERVICENAME
          value: "example:jsonpdb.xxxxxx.yyyyyy.oraclevcn.com"
        - name: APEX_PUBLIC_USER_NAME
          value: "ORDS_PUBLIC_USER"
        - name: ORDS_PASS
          valueFrom:
After that, issue the following command:
kubectl apply -f my.yaml
That’s it, verify the service is available this way:
kubectl get svc
javiermugueta$ kubectl get svc

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

eciveci LoadBalancer 10.96.92.19 130.61.15.199 3000:31522/TCP 4d

kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 15d

ordscontainer LoadBalancer 10.96.229.248 130.61.70.73 8080:31523/TCP 2d
Now check whatever URL that you may have enabled in the schema. For more info take a look here or here.
http://serviceip:serviceport/ords/hr/employees/
That’s all!
Enjoy 😉

Generate clients for your preferred programming language from Oracle Cloud REST API’s


Do you want to generate the client code needed for consuming some REST endpoint in your preferred programming language? Follow this steps:

  1. Locate the REST documentation you are interested in docs.oracle.com
  2. Click download icon
  3. Click Swagger button
  4. Select and copy the swagger code
  5. Go to editor.swagger.io
  6. Clear the editor
  7. Paste the clipboard content
  8. Accept the message
  9. Verify the import
  10. Click on Generate Client and select your preferred programming language
  11. Get the result form the download folder
  12. Consume your client

This slideshow requires JavaScript.

Enjoy 😉