INTEGRATION BROKER - Part-2

 

1.       Enable the pub/sub processes in the App server so there is a support for Asynchronous services.

2.       Change the default Local Node i.e. HRMS

3.       Configure the PeopleSoft Listening Connector

         This is necessary for a PSFT Appserver to communicate with an Integration gateway.

4.       Configure the PeopleSoft target connector

         This tells the integration Gateway where the Appserver is located.

5.       Service configuration.

          This is required for running web services. It is to identify where the PSListening connector is:

1.       It is used to send messages from one module to another I.e. HRMS TO FSCM

2.       There are up to 6 different server processes that can be configured to support App messaging.

(a)    Pub broker Handler

(b)   Pub broker Dispatcher

(c)    Pub contract Handler

(d)   Pub contract Dispatcher

(e)   Sub contract Handler

(f)     Sub contract Dispatcher

3.       Start all servers I.e.

(a)    App server

(b)   Web server

(c)    Process Scheduler server

4.       Enable pub/sub servers in Psadmin utility

Appserv> psadmin.exe->1,1,4,Y,12,13,1,1, and press enter

After restarting it will show +6 Processes.

5.       Login to PIA I.e. PTOOLS >> IB >> configuration Gateways >> Gateways

Click on search

The gateway URL Syntax is:

http://serverip:httpportno/PSIGW/PeopleSoftListening Connector

url:  http://serverip:8000/PSIGW/PeopleSoftListeningConnector

Click on  PING GATEWAY

O/P:  PS Integration Gateway    |    Tools version 8.48.08

          PS Listening Connector      | status active

Click on Load Gateway connectors

MSG: Loading Process was successful & press ok & click on save button

 

Click on Gateway setup properties Hyperlink

Uid: administrator   pwd: password  & press ‘ok’

 

Source s/m

Webserverurl                UID           PWD      TOOLS RELEASE

192.168.1.185               PS              PS            8.48

 

Target  s/m

MSG NODE NAME           Webserverurl                UID           PWD      TOOLS RELEASE

  PSFT_HR                             192.168.1.186               PS              PS            8.48

 

Click On save button

6.       Do the same in other  system

7.       Whether our configs correct or not to check click on PING NODE

O/P:  Message Text

          Success(117,73)

NOTE:

1.       Config file for IB is

<pshome>/webserv/DN/Application/People Soft/PSIGW/web-INF/Integrationgateway.properties

(or) click on Advanced properties page in PIA Gateways.

2.       Six Processes of two types - dispatcher & handlers are paired to produce the messaging servers that transmit Asynchronous messages through out the messaging system.

 

IB DESCRIPTION:

1.       IB: It is used to send msgs from one module to another.

Communication takes place b/w different PS Application or b/w PS & Third Party systems.

 

Some of Relevant Components are:

1.       Gateways: Are the pathways b/w systems. There is always a local gateway in PeopleSoft which refers to the source PS System. Other gateway may exists

2.       Messages: The messages are written in XML. There are 2 types of messages

(a)    Synchronous: It needs to be acknowledged by the receiver

(b)   Asynchronous: It doesn’t get acknowledge. In company we use to send Asynchronous messages only

Synchronous messages are not used much in People Soft. Its purpose is Reliability.

3.       Domains: It refer to PeopleSoft App server domains i.e. Tuxedo

4.       Nodes:  It defines what application a message belong to any system that IB can talk to will have a node. It is compulsory & it will check the messages belong to which Application.

5.       Queues: It is used for Administration of IB to avoid stopping everything when something is wrong

6.       Handlers: It contain code and Logic for sending/receiving/manipulating messages.

7.       Routings: It is used to link a service operation to a node & can also specify transformation of a message. 

  

IB Troubleshooting

 

Problem 1: Cannot find message in Message Monitor

Possible causes:

1. User does not have security for the message channel.

2. The message monitor criteria have filtered out the message.

 

Problem 2: Messages are being processed in an incorrect order

Possible cause:

1. The Channel has been partitioned, and the resulting subchannels do not match what was assumed for the ordering of the messages.

Problem 3: Message Instance not created

Possible cause:

1. Message is inactive.

Problem 4: Message Instance stays in NEW status.

Possible cause:

1. The pub/sub servers are not booted.

2. The Message Dispatcher has crashed or has been brought down.

3. The Item is not at the top of the queue. All messages with the same Channel/ Subchannel are in the same queue

4. Run appmsgpurgeall.dms

5. Restart PUBSUB processes

6. Force cleanup from the monitor message -> domain status

7. Test your message by routing it through another channel to make sure that it is not an issue with the channel.

Problem 5: Message Instance stays in STARTED status.

Possible cause:

1. All Message Handlers have crashed or have been brought down. Processing will resume when Message handlers come brought back up

2. The Message dispatcher processing the message is on another machine, and either the machine or the application server domain is down.

 

Problem 6: Message Instance stays in WORKING status.

Possible cause:

1. Message Handler has crashed.

2. The Message Handler processing the message is on another machine, and either the machine or the application server domain is down. The Message handler working on the message is "blocked". The service will timeout, and the Message Dispatcher will retry the message.

 

Problem 7: Publication Contract not created

Possible cause:

1. Channel routing rules not set up properly.

 

Problem 8: Publication Contract stays in NEW status

Possible cause:

1. Publication Dispatcher has crashed or has been brought down.

2. Message Channel paused.

3. Node paused

4. Previous message had a status of RETRY, ERROR, or TIMEOUT.

5. The Publication Contract is not at the top of the queue. All Publication Contracts with the same Channel/ Subchannel and subscribing node are in the same queue

 

Problem 9: Publication Contract stays in RETRY status

Possible cause:

1. The remote node cannot be "pinged" successfully. The publication contract will be processed when the remote node comes back up.

2. No publication handler available, either because it's crashed or it has been brought down.

 

Problem 10: Publication Contract stays in WORKING status

Possible cause:

1. The publication handler processing the contract is on another machine and either the machine or the domain is down. Processing should continue when the pub/sub system on the other machine comes back up.

 

Problem 11: Subscription Contract not created.

Possible causes:

1. Message Subscription is inactive.

2. Channel routing rules not set up properly.

 

Problem 12: For a message published by the local node, subscription contract not created for local node even when Message Subscription is active and "Invoke for local publication" is checked.

Possible cause:

1. The local node was not included in the routing rules for the channel. To subscribe to its own publications, the local node must be included in the channel routing rules.

 

Problem 13: Subscription Contract stays in NEW status.

Possible causes:

1. The Subscription Dispatcher has crashed or has been brought down.

2. Message Channel Node or System paused.

3. Message Definition not Active.

4. Previous message had a status of RETRY, ERROR, or TIMEOUT.

5. The Subscription contract is not at the top of the queue. All Subscription Contracts with the same Channel/ Sub-channel and subscription owner are in the same queue.

 

Problem 14: All publication Contracts remain in a NEW status.

The queue was blocked from a Publication Contact that was in a status of ERROR from two weeks prior. User did not see the error on the message monitor because he was only looking at today. User entered xx day in and the ERROR publication appeared. Canceled the error and all subsequent publication contracts processed successfully.

Problem: Subscription Contract stays in STARTED status.

Possible causes:

1. The Subscription Handler has crashed or has been brought down.

 

Problem 15: Subscription Contract stays in WORKING status.

Possible causes:

1. The Subscription Handler has crashed or has been brought down. Check in Application Messaging Gateway Administrator

2. Also look for any errors in App Serv Log

 

Problem 16: Subscription Contract in ERROR status.

Possible causes:

1. Subscription PeopleCode errors

2. Application data errors.

 

Problem 17: Subscription Contract in TIMEOUT status.

Possible causes:

1. Subscription PeopleCode errors

2. If the message works sometimes, and sometimes does not this may be a problem with the application server configuration. Tune up your application server min/max values, or reconfigure your domain to a medium or large domain. Also, changing the recycle count for these services from 0 to 25,000 or 10,000 may eliminate this problem.

 

Problem 18: Unable to ping a node.

Possible causes:

1. The web server for the Gateway is down.

2. The Gateway is not configured properly.

3. The app server for the node is down.

4. Verify url is correct. Copy url in browser address, should see "PeopleSoft <tools release> Application Messaging gateway".

(Note: be sure that url in the manage lookup contains // before an ip address or machine name)

NOTE: In PeopleBooks it is stated as "//http://HRMS-01/servlet/psft.pt8.gateway.GatewayServlet"

It should read "http://HRMS-01/servlets/gateway" notice the "//" are missing from the begining and is should read "servlets" not "servlet"

 

Problem 19: "Access denied, source node not found" message even when source node defined on target database.

Possible cause:

1. Known bug: Message Node caching not working. If a new node is added, reboot appserver.

 

Problem 20: "Bad Gateway, General Exception error." message when pinging node.

Possible cause:

1. Check Opid/ Password of node on Configuration Servlet page. (http:// ?/servlet/gateway.administration)

 

Problem 21: "Access denied. Target and source message node password's do not match." message even when no passwords are defined on target and source nodes.

Possible cause:

1. Target application server has entry in Distinguished Name field in source node's message properties.

2. Target URL must be defined with https:// on target node in source application server.

 

Problem 21.1: "Access denied. No password defined on source message node."

Possible cause:

In 8.1x Source Message Node properties has entries in 'Password' and 'Re- verify Password'.

Solution: Blank these fields and ping the source node it worked fine.

 

Problem 22: "Page cannot be displayed message when attempting to bring up Gateway or gateway Administration page.

Possible cause:

3. Make sure Apache/ JServ started.

4. Make sure aliases are correct in zone.properties

 

Problem 23: Ping failed; Application server log message saying cannot find JVM.

Resolution: The application server was on a different machine as the web server. The Sun JRE 1.2 was downloaded on the web server machine. Sun JRE 1.2 was re-downloaded on the application server machine and the setting JavaVM Shared Library in psappsrv.cfg file was set to point to the location of this JRE.

Problem 24: Service Operation Instance Stays in NEW Status

Ppossible causes are:

1. The domain on which a pub/sub server resides is Inactive.

2. The Application server is down.

3. Pub/sub services are not configured on the Application Server domain. Check the server status via Psadmin to make sure PUBSUB services are running.

4. The Message Dispatcher crashed or was brought down.

5. The item is not at the top of the queue; all service operations with the same queue or subqueue are in the same queue.

6. The node status is in Paused state.

7. Missing data from PSIBPROFILE (Document:1108466.1E-IB:Messages Stuck In New After Tools 8.50 Upgrade)

8. PUBSUB processes in-memory queues got out of sync with the database because of running a purging script without shutting down the app server domain ()

9. Only one domain is configured for PUBSUB services but in the psappsrv.cfg file it is set as a slave domain. The Slave Mode should be set to 0 if not implementing static master/slave.

10. In PT 8.51+ the domain status page shows one active domain and the Slave indicator is Sync Template. There needs to be a master domain. Recreate the domain in PSAdmin.

Problem 25: Service Operation Instance Stays in STARTED Status

Possible causes are:

1. All Message Handlers crashed or were brought down; processing will resume when Message Handlers come back up.

2. The Message dispatcher processing the message is on another machine, and either the machine or the application server domain is down.

3. Application server domain was created using the developer template. Recreate using small, medium or large.

Problem 26: Service Operation Instance Stays in WORKING Status

Possible causes are:

1. Message Broker Handler crashed.

2. The Message Handler processing the message is on another machine, and either the machine or the application server domain is down.

3. The Message Handler working on the message is blocked. The service will time out, and the Message Dispatcher will retry the message.

4. Application server domain was created using the Developer template. Recreate using small, medium or large.

Problem 27: Service Operation Instance Stays in WORKING Status

Possible causes are:

  * Message Broker Handler crashed.

  * The Message Handler processing the message is on another machine, and either the machine or the application server domain is down.

  * The Message Handler working on the message is blocked. The service will time out, and the Message Dispatcher will retry the message.

 

Problem28: Unable to Ping a Node

Possible causes are:

  * The web server for the Gateway is down.

  * The Gateway is not configured properly.

  * The application server for the node is down.

  * The Gateway URL is incorrect; verify that the URL is correct.

  * Copy URL in browser address; you should see: \\

  

    PeopleSoft Integration Gateway

    PeopleSoft Listening Connector

    Status: ACTIVE

 

==========================================================

PeopleSoft Integration Broker's backend tables

PS IB Gateway Tables

PSGATEWAY

PSCONN

PSNODECONPROP

PSCONNPROP

PSCONNPROPIDVW

PSCONPROPNAMEVW

PSCONPROPVALVW

PSCONPROPDATAVW

IB Routings Tables

PSIBRTNGDEFN

PSRTNGDFNCONPRP

PSRTNGDFNPARMVW

PSRTNGDFNPROP

PSRTNGDFNPARM

PSIBRTNGDEFN

IB Services

PSAUTHWS

PSSERVICE

PSIBWSDL

PSOPRVERDFN

PSIBMSGSERV_VW

PSIBRTNGSERV_VW

PSOPERATION

PSSERVICEOPR_VW

PSOPRVERDFNPARM

PSOPERATIONAC

PSHUBNODEVW

PSIBRTNGDEFN

PSRTNGDFNPARM

PSRTNGDFNCONPRP

PSOPRGENRTGPARM0

IB Queues

PSQUEUEDEFN

PSOPRVERDFN

PSOPRVERDFNPARM

PSSRVQUEUE_VW

IB Message Definitions

PSMSGVER

PSMSGDEFN

PSMSGPARTS

PSMSGPARTS_VW

PSOPRVERDFNM_VW

IB Nodes

PSMSGNODEDEFN

PSNODECONPROP

PSNODEURITEXT

PSIBRTNGDEFN

PSNODEPROP

PSMSGATTR

IB Message Schemas

PSIBMSGSCHEMA

PSIBSCMADFN

PSIBSCMADATA

IB Messages

PSCONPROPVALVW

PSCONNPROPIDVW

PSNODEVW

PS_AMM_ARCH_PUB

PSAUTHWS_VW

PSAUTHWS_VW1

PSAUTHWS_VW2

PSIBUSERCOMP

PSCONTNAMEVW

PSCODESETGROUP

PSCONNGATEWAYVW

PSCONNIDVW;

 

IB Handlers

PSOPRHDLR;

 

Event Mapping Framework

 Event Mapping is a useful feature that was introduced in PeopleTools 8.55, and we've been enhancing it ever since. 

The basic concept is straightforward: Event Mapping enables you to inject custom code before or after delivered event code.  There are some key benefits of Event Mapping:

·         Your Custom PeopleCode is kept separate from delivered code

·         You have Complete access to component buffer

A developer writes their Application Class custom code in App Designer.  Note that as of 8.57, the PeopleCode Editor provides an Event Mapping button in the Application Designer toolbar as a visual indicator of custom PeopleCode programs mapped to events of a component, component page, component record, or component record field. The indicator is enabled when the PeopleCode is being viewed for one of these events. In addition, the Find Definition References tab on the output window lists the events that are mapped to custom PeopleCode programs, along with the application class. The Find Definition References tab lists references to other components where the custom PeopleCode programs of the selected application class are used.

Event Mapping configuration requires the following steps:

  1. Create an Application Class with mapped business logic,
  2. Define a Related Content Service Definition, and
  3. Map a component event to a Related Content Service Definition.

Mapping your custom code is done through the Related Content Framework, which enables us to keep your code separate from the delivered logic.
  

Events Support Event Mapping:-

The list has been growing ever since Event Mapping was introduced.

Component Level events:

·         PostBuild

·         PreBuild

·         SavePreChange

·         SavePostChange

·         WorkFlow

Component Record level events:

·         RowDelete

·         RowInit

·         RowInsert

·         RowSelect

·         SaveEdit

·         SavePreChange

·         SavePostChange

Page level events:

·         PageActivate

Field level events:

·         FieldChange


Event mapping now also supports records and record fields on subpages and secondary pages at any level of nesting, not just for primary pages explicitly defined in the component. This enhancement extends support to the page Activate event for secondary pages and to derived work records. 

Developers can use a single application class service ID for multiple configurations. This enhancement simplifies PeopleCode development because multiple blocks of code can be delivered in a single application class. Then, during configuration, you can use a new event mapping parameter to selectively invoke the specific block of code that pertains to a specific event.

Time to Use Event Mapping

Customers that have heavily customized their PeopleSoft applications should look seriously at Event Mapping to isolate those customizations to provide a better PeopleSoft life cycle.  Event Mapping can even be used in concert with other configuration features to dramatically reduce the impact of customizations.

 Use the Event Mapping page to manage which content references have associated PeopleCode application package programs.

Image: Event Mapping page

This example illustrates the fields and controls on the Event Mapping page. You can find definitions for the fields and controls later on this page.

Event Mapping page

Event Mapping References page

This example illustrates the fields and controls on the Event Mapping References page. You can find definitions for the fields and controls later on this page.

Event Mapping References page

Select a Content Reference page

This example illustrates the fields and controls on the Select a Content Reference page. You can find definitions for the fields and controls later on this page.

Select a Content Reference page

Assigning Application Class PeopleCode to Component Events

Use the Configure Event Mapping page to map application class PeopleCode to component level, page level, and component record level events.

Configure Event Mapping page (1 of 2)

This example illustrates the fields and controls on the Configure Event Mapping page (1 of 2). You can find definitions for the fields and controls later on this page.

Configure Event Mapping page (1 of 2)

Configure Event Mapping page (2 of 2)

This example illustrates the fields and controls on the Configure Event Mapping page (2 of 2). You can find definitions for the fields and controls later on this page.

Configure Event Mapping page (2 of 2)

PeopleCode Example for Multiple Events in a Single Application Class

The following application class presents an example of how eve_execute could be implemented:

import PT_RCF:ServiceInterface;

class App_Class1 implements PT_RCF:ServiceInterface
   method execute();
   method eve_execute(&str As string);
end-class;

method execute
   /+ Extends/implements PT_RCF:ServiceInterface.execute +/
end-method;

method eve_execute
   /+ &str as String +/
   /+ Extends/implements PT_RCF:ServiceInterface.eve_execute +/
   /* &str variable will have the Event Map Parameter that was */
   /* set in the configuration page for that particular event  */
   /* that is being triggered.                                 */
   Evaluate &str
   When = "1"
      /* Code block for PreBuild event */
   When = "2"
      /* Code block for PostBuild event */
   When-Other
      /* Code block to handle an invalid event map parameter  */
   End-Evaluate;
end-method;

PeopleSoft Chatbots

PeopleSoft Chatbots

The conversational UI is replacing the web UI and the global chatbot market is expected to rise exponentially. The much awaited chatbots are finally out in the PUM image 31 for the Peoplesoft Absence Management module. This chatbot leverages the Oracle Digital Assistant – the Oracle bot technology platform.

Chatbots are rapidly redefining how businesses interact with customers. They help in augmenting our productivity by simplifying and automating the mundane tasks and addressing business challenges.

Chatbot Configuration

In order to use a new delivered skill / chatbot it needs to go through the configuration life cycle mentioned below:

  1. Deploy Web SDK and setup proxy user for Application Services
  2. Import and configure the skill into the ODA (Oracle Digital Assistant). The skill file is listed at the location PS_HOME\setup\chatbot\HGA_CHAT_ASST(1.0).zip
  3. Clone the imported skill in ODA
  4. Configure to point to a Peoplesoft Service i.e. the skill needs to be connected to a relevant service in Peoplesoft. This is again done in the ODA
  5. Customize and train the skill which is again done in the ODA
  6. Add the skill to an ODA channel
  7. Finally update configuration in PeopleSoft to enable the chatbot

Software Requirements:

Prior to enabling the chatbot it is important to note the software requirements for deploying them which include:

  • People tools version 8.57
  • Peoplesoft HCM/FSCM 9.2
  • Oracle Digital Assistant
Configuration Steps:-
1. Creating a new 'external' site on the web server domain

This step should be pretty straight forward for a PS Admin. But for someone like me who does not have a lot of PS Admin background, it was a struggle to find the right information and create a new 'external' site on the PeopleSoft web server domain. 
Copying the Web SDK (delivered ochatjs folder) to the new 'external' site

The default user 'opc' (Oracle Public Cloud) which we use to connect to OCI via WinSCP does not have the appropriate privileges to copy the Web SDK to the 'external' site.
How to use WinSCP to connect to PS Servers on OCI as root?

Use SCP Protocol, 'opc' user, set the private key in the authentication settings and use "sudo su -" in the SCP/Shell settings.



Copying the ochatjs folder (web SDK) to the external site

Source: ochatjs.zip file located in <%PS_APP_HOME%>/setup/chatbot
The ochatjs.zip was located here.
/u01/app/oracle/product/pt/ps_app_home/setup/

Destination: <PIA_HOME>\webserv\<DOMAIN_NAME>\application\peoplesoft\PORTAL.war\external\
Verification

We can verify the success of the web SDK installation by accessing the following URL on a web browser.

https:\\<your server name>:port\external\ochatjs\loader.json

2. Setting up the Oracle Digital Assistant Instance


Here is a resource that provides additional information on how to procure a free trial account.

https://docs.oracle.com/en/cloud/get-started/subscriptions-cloud/csgsg/request-trial-subscription.html
Setting Up the ODA Instance

From our OCI Homepage, we can use the menu to navigate to Oracle Digital Assistant. There are two Digital Assistant options available as shown in the screenshot below. For the purposes of the PeopleSoft - ODA integration, we need to use the Digital Assistant under the Platform Services menu.




You should also receive an email to confirm that the ODA instance was created successfully.

Once the ODA instance is ready, we can access the Digital Assitant Designer UI using the menu as shown below.


3. Configuring the delivered Skill in the ODA instance

Delivered Skill location

The delivered absence Skill will be located in the following location.

<PS_APP_HOME>/setup/chatbot/
We simply need to download this to a local machine (PC/laptop) and use it in the next step.

Importing the delivered Skill to ODA

This step is self explanatory. Here are some screenshots that will further assist you with this activity.

Select Skills from the Digital Assistant Designer UI menu.


Next, upload the delivered Skill HGA_CHAT_ASST(1.0).zip using the Import Skill button. Once the import process completes, we will see the 'Absence Assistant' Skill in the list (as shown above).

Note: During the import process, we may see the following error/warning. I was told that this can be ignored. And it was true! It did not cause any issues.


Clone Delivered Skill

As always, it is best practice to maintain a copy of the delivered Skill so that we can refer back to it if necessary. So, as advised in PeopleBooks, we need to clone the 'Absence Assistant' Skill and create a copy of our own. In my case, I named my copy 'Absence Assistant Skill'.


Configuring the Delivered Skill to point to our PeopleSoft Environment

Once we clone the delivered Skill, the next step is to configure it to point to our PeopleSoft environment. Our PeopleSoft environment can be running either on the Cloud (OCI) or on premises. In my case, my HCM 9.2 - PI 31 is running on OCI.

ODA > Digital Assistant Designer UI > Menu > Development > Skills (select your copy of the Skill) >  Settings > Configuration (Tab) > Custom Parameters


If we scroll down further on this page, we will find all the delivered custom (oxymoron?) parameters.


We can leave the HGAmarketHGAnode and HGAportal as delivered in the 'Absence Assistant' Skill.

We need to use the <Proxy User> and password (which we created before getting started) to configure the PSHCMuserid and PSHCMpassword parameters.

Refer PeopleBooks for more details on how to create this userid:
Understanding Security for Chatbot Integration Framework





Next, we need to ensure that we configure PSHCMbaseurl parameter to point to our Integration Broker REST end point of the delivered PTCB_APPL_SVC.v1 service.

End Point Format:
https://<server>:<port>/PSIGW/RESTListeningConnector/<node>/PTCB_APPL_SVC.v1

server: Integration Broker hostname
port: Integration Broker port
node: Default Local Node

http://1.2.3.4:8000/PSIGW/RESTListeningConnector/PSFT_HR/PTCB_APPL_SVC.v1

Creating and Configuring an ODA Channel

PeopleBooks: Creating the Web Channel

Once our Skill is created and configured appropriately, we need to create a Channel and configure it to route to our Skill. This step is briefly mentioned in PeopleBooks but I missed the routing step because it was not very obvious and found out the hard way. Here are the steps to create and configure a Channel.

ODA > Digital Assistant Designer UI > Menu > Development > Channels > Create Channel



Next, we need to ensure that the Channel is enabled and that it is routing to the Skill we configured in the previous step. Finally, we need to note down the App Id. We will use this while configuring our PeopleSoft application to point to this ODA Channel.

4. Configure a PeopleSoft instance to point to an ODA Channel/Skill


PeopleBook References:
Creating Bot Definitions
Adding Chatbot to Application pages


Configuring the Application Service

As delivered, both the service operations (PTCB_APPL_SVC_GET.v1 and PTCB_APPL_SVC_POST.v1) associated with the delivered REST - Chatbot Application Service - PTCB_APPL_SVC use 'Basic Authentication and SSL' as the 'Req Verification' option.

For example:


To workaround the SSL issues, Set the 'Req Verification' property to 'Basic Authentication' for both service operations.

Security to access the Bot Definition

While testing, I found that when I opened my 'Absence Assistant' chatbot, it would open the modal window but it would keep spinning endlessly without loading anything. I did not find any errors on the Browser Console either.


Note: The Chatbot window spinning could happen due to several reasons.

In this case, the issue was that the current PeopleSoft user did not have access to the Bot definition. We can provide this by adding the following Role that we used to setup the Bot definition.



Example-2Configuration for Absence Assistant Chatbot:-

Navigation: Enterprise Components > Chatbot Configurations > Bot Definition

Click the edit button for the HGA_CHAT_ASST. 

The chatbot can be deployed as a tile on the homepage or as a widget or as both a tile and widget using the Chatbot type field on this page.

Customers can set their own icons/images for the bot as per their business need. The template id specified above is nothing but the branding template id for the bot.

  1. The branding template is used to control the branding aspects of the bot definition and is configured on the Branding template page under the navigation: Enterprise Components > Chatbot Configurations > Branding Template

The “Custom Text” section can be used to override the custom texts provided by Oracle Digital Assistant by default. The overriding text is created as a message catalog entry.

The Business Icon chosen here replaces the Business Icon chosen in the “Maintain Bot Definition” page.

  1. Enabling the absence Assistant tile:

Absence assistant tile will not be available by default in the homepage. The tile needs to be enabled and added to the corresponding home page. The administrator must enable it by navigating to below path under the content reference.

Peopletools > Portal > Self Service > HR Fluid Components > Fluid Attribute

The content reference for the tile is HC_HGA_CHAT_ASST_FLU.

  • In the General tab, Under URL Information section, choose URL Type as PeopleSoft Generic URL
  • At the end of the URL, enter the text BOTID=<BotID> where <BotID> is the ID of the Bot definition
  • In the Security tab, ensure that the permission list EOCB_CLIENT_USER is added. Also, add the roles that are added to the Bot ID in the “Maintain Bot Definition” Page
  • In the Fluid Attributes tab, select the Display In field value as Modal.

The tile repository group box is used to configure the tile repository Folder (Employee Self Service) under which the tile should appear. Check the Homepage checkbox under “Include in Repository” section.

In the above navigation set the attributes such as the dimensions of the chatbot tile, images to appear on the tile and so on.

Finally, to enable the delivered skill/chatbot as a tile on the homepage:

  • From the relevant homepage, choose the Personalize Homepage option
  • Choose the Add Tile button
  • Add the chatbot tile to the homepage

Absence Assistant Tile:

The Absence Assistant chatbot focuses on the following intents:

  • EntryGreeting
  • AbsenceBalance
  • CancelAbsence
  • FutureBalance
  • RequestAbsence
  • ViewAbsenceRequest
  • ExitGreeting

On a mobile, the page would be displayed as shown below:

The absence assistant displays the areas of support by default along with a greeting message

Consider the example of an employee using the assistant for submitting a leave request the typical conversation would be as shown below wherein the bot requests the employee for the begin and end dates and the type of absence request

Employees can even provide attachments while submitting absence requests.

Once the request is submitted, related workflow will be triggered and the request can be viewed from the absence management pages.

Examples of Chatbots in real life

Here are some of the examples of chatbots in reals life.
  • Weather bot -  Get the weather whenever you ask
  • Grocery bot  - Help you create grocery list and then order grocery
  • News bot - Read the latest news for you
  • Personal Finance bot  - Help you with managing finance

Chatbots are one of the fastest growing technology and there will be unlimited use of chatbots in various fields across the globe. 

Amazon Alexa, Apple Siri and Microsoft Cortana can be considered chatbots as they repond to your query and provides results in a natural human language. 

How does Chatbot works?

A chatbot comes up with its answers through a combination of predefined scripts and machine learning.

If chatbot can’t answer a questions it will pass it to a real human for further assistance and a chatbot will learn from all the interactions and with more interactions, it will gradually gain in scope and relevance.

For being an efficient bot and ability to offer relevant answers, the Chatbot basically employs four major parameters as Text Classifiers, Suitable Algorithms, Artificial Neural Networks and Natural Language Processing (NLP). All these factors contribute to the overall bot functionality and intelligence of the Chatbot.

Why Chatbots?

To understand why chatbots are used we have to go over some of the main benefits of implementing chatbots in your organization. 

  • Available 24x7 : Since chatbots are virtual robots so they never get tired and hence can respond to users' question 24x7. You no longer have to wait in queue to talk a real person. 
  • Handling customers: Chatbots can handle thousands of customers at the same time without needing to take a break. All of the customer's queries are answered instantly.
  • Saves Money: Once a Chatbot is implemented, it can significantly reduce the cost of a business and only the complex queries will  be passed on to a human being.  (Like it or not, automation is going to take most of the jobs).
  • Automate repetitive tasks: No one likes to answer the same question hundreds of times but with a chatbot you can automate such repetitive tasks without wondering if a chatbot is getting bored.  

These are just some of the advantages of using Chatbots but it has much wider use with lot of benefits. There are some concerns too but we will discuss that some other time.


PeopleCode to retrieve Google map between two addresses

  PeopleCode Example: /* Define constants for the API request */ Local string &origin = "123 Main St, Anytown, USA";   /* ...