Friday, December 30, 2016

DIY - PeopleSoft on the Cloud - Part 3

In this third and final part, I will demonstrate how to access the demo instance (PUM image on OPC) via SQL Developer and App Designer from an on premise workstation.

Step 1: Create Security List for database access and add to the instance

Create Security IP List:

Oracle Compute Cloud Service console > Network tab > Security IP Lists > Create Security IP List

Enter the public ip address(es) of your on premise workstation(s). This will ensure that only a trusted list of on premise ip addresses can access the database (via SQL Developer/App Designer) of your demo instance (PUM image running on OPC).

Note: If you are not sure of the public ip address of your on premise workstation then simply visit https://whatismyipaddress.com/ using a browser on the workstation.


Create Security Application:

Oracle Compute Cloud Service console > Network tab > Security Applications > Create Security Application

Create a Security Application to open TCP port 1522 to allow database access. You might wonder how I figured the database for the demo instance is using port 1522? We can find it in the tnsnames.ora file located in /opt/oracle/psft/pt/tools_client/ which we can access via WinSCP (refer: Part 2).


Create Security List:

Oracle Compute Cloud Service console > Network tab > Security Lists > Create Security List


Create Security Rule:

Oracle Compute Cloud Service console > Network tab > Security Rules > Create Security Rule

Using the Security IP List, Security Application and Security List that we just created, create a Security Rule as follows:


Add Security List to Instance:

Oracle Compute Cloud Service console > Instances tab > View > Under "Security Lists" > Add to Security List

In my example, the security list that I added is called 'psftuser_sec_list_1522'.



Step 2: Installing Oracle and PeopleTools Clients (SQL Developer and App Designer)

Hypothetically, if we had installed the PUM image locally and if we did not already have the Oracle and PeopleTools clients installed on the local workstation, then we would have mapped the samba drive and installed the clients from there.

I was not able to figure out how to map the samba drive of the demo instance (PUM image) running on OPC to an on premise workstation. The alternative/workaround is to connect to the instance on OPC using WinSCP from the on premise workstation (as described in Part 2), download the relevant folders locally and install the necessary clients.

We can find the content of the samba drive under the following location using WinSCP:
 /opt/oracle/psft/pt/tools_client


Step 3: Updating the tnsnames.ora file in the on premise work station

Find the database name of the instance:

Login to the instance online and navigate to the following page:
Navigator > PeopleTools > Lifecycle Tools > Update Manager > Update Manager Dashboard > Update Manager Utilities > About PeopleSoft Image


Add database to the tnsnames.ora file on the on premise workstation:

For a typical Oracle client installation, the tnsnames.ora file can be found in the following directory:
C:\oracle\product\12.1.0\client_1\network\admin


TNS Details:

HOST: Enter the public ip address of your instance
PORT: 1522
SERVICE_NAME: Enter the database name of your instance which we determine in the preceding steps

<ENTER_DBNAME> =
   (DESCRIPTION =
       (ADDRESS_LIST =
           (ADDRESS = (PROTOCOL = TCP)(HOST = <ENTER_PUBLIC_IP>)(PORT = 1522))
       )
       (CONNECT_DATA =
           (SERVER = DEDICATED)
           (SERVICE_NAME = <ENTER_DBNAME>)
       )
    )

For Example:


Step 4: Access OPC instance via SQL Developer from on premise workstation

Default Username/Password: SYSADM/SYSADM

Connection Properties:


Successful Connection:


Step 5: Access OPC instance via App Designer from an on premise workstation

Note: The default connect id and password is the same as people/peop1e

If you have not configured the default connect id/password then you can do so using Configuration Manager.

The PeopleTools client installation should be in your C drive.
For example: C:\PT8.55.11_Client_ORA\

We can find Configuration Manager (pscfg.exe) and App Designer (pside.exe) in the following location:
C:\PT8.55.11_Client_ORA\bin\client\winx86\

Connect via App Designer:

Use the database name of your OPC instance which we determined in the preceding steps.


Successful Connection:


DIY - PeopleSoft on the Cloud - Part 2

Now that we have the PeopleSoft PUM Image (DEMO environment) up and running on the Oracle Compute Cloud, we can move on and dive deeper into more interesting topics! This post will detail how we can set up SSH access and connect to the PUM Image via PuTTY and WinSCP to perform PSADMIN activities such as configuring, bouncing and clearing cache on the app/web/process scheduler servers.

Step 1: Create Security List for SSH access and add to the instance

Create Security List:

Oracle Compute Cloud Service console > Network tab > Security Lists > Create Security List



Create Security Rule:

Oracle Compute Cloud Service console > Network tab > Security Rules > Create Security Rules


Add Security List to Instance:

Oracle Compute Cloud Service console > Instances tab > Instances > View > Under "Security Lists" > Add to Security List

In my example, the security list that I added is called 'allow_admin_clients'.



Step 2: Configuring PuTTY and logging in to the instance using SSH

After creating the Security List and adding the instance it (step 1), we are now ready to proceed with the steps detailed in the tutorial:
- Logging in to your instance using SSH

The steps detailed in this section of the tutorial are straight forward. I was able to use the "Logging in from a Windows System" instructions and connect to my PUM image (running on OPC - Oracle Public Cloud) via SSH using PuTTY running on my on premise workstation.


Note: The first time we successfully login via PuTTY as opc user, we will be prompted to change the default password (OracleCloud). Make sure that you change and notate the new password!

Refer: Changing the default password for opc user

Step 3: Configuring WinSCP and logging in to the instance using SCP

Before I proceed with demonstrating how to access PSADMIN using PuTTY, I want to detail how to similarly configure WinSCP to connect to the instance running on OPC. I use WinSCP heavily for various activities such as navigating to and deleting web server cache folder, viewing db/app/web server log files, loading custom javascript libraries to the web server, loading custom jar files to the app/web servers and so on.

Open WinSCP > New Site
- File protocol: SCP
- Host name: Enter the public IP of your instance
- Port number: 22
- User name: opc
 Advanced Site Settings > SSH > Authentication:
- Private key file: Point to the location where you stored your SSH private key (.ppk)



Save the configuration and login. You will be prompted to enter your SSH Key passphrase.



Step 4: Accessing PSADMIN via PuTTY

We already saw in step 2, how we could connect to the instance via PuTTY. This involves using the opc user provided to us as part of the tutorial instructions.


In order to access, PSADMIN it is best if we use psadm2 (one of the default users created in PUM images). Here are the commands that allow us to switch from opc user to psadm2 user and invoke PSADMIN.

Command: sudo -s
Description: Switch to root

Command: su psadm2
Description: Switch to psadm2

Command: cd $PS_HOME/appserv
Description: Change directory to appserv folder under $PS_HOME

Command: ./psadmin
Description: Invoke PSADMIN


Once we are in PSADMIN as psadm2 user, the steps to bounce and purge cache on the app/web/process scheduler servers are the same as detailed in one of my older posts.
Refer: PeopleSoft PUM Image - Virtual Machine - How to access PSADMIN

We are now able to access PSADMIN of our demo instance (PUM image running on OPC) via PuTTY (SSH) from an on premise workstation!

DIY - PeopleSoft on the Cloud - Part 1

There has been tremendous improvements in PeopleTools 8.55 - which we have seen over the past year - specifically involving changes that make deploying PeopleSoft on the Cloud a very real, intuitive and easy prospect.

Of course, deploying PeopleSoft on a hosted environment is not new and has been done in the past. But 8.55 makes it so much more easier.

Most of us who work in the PeopleSoft space are already getting used to the various messaging from Oracle around Cloud and what it means to those using PeopleSoft applications. There are several great presentations (at conferences), webinars and documentation relevant to this subject which I guess is one of the hottest topics right now.

In this series of blog posts, I plan to take a very basic use case of deploying a PeopleSoft Update Image (DEMO) on the Oracle Compute Cloud and document the steps that I followed. I also intend to go beyond the immediate necessity of getting the environment up and running; and accessing the PIA for evaluating the latest features, enhancements and bug fixes. Additionally, this blog series will also cover how we can connect to the PUM Image - running on the Oracle Compute Cloud - using PuTTY, winSCP, SQL Developer, App Designer, etc. from an on-premise workstation to perform PeopleSoft administration and development related activities.


Note: At the time of writing, I am using a FREE TRIAL (30 day) access which is available for most Oracle Cloud services.

Part 1 (current post): Will cover what it takes to sign up (for the initial 30 day free trial), get started, up and running with a PeopleSoft Update Image (available on the Oracle Cloud Marketplace) deployed on the Oracle Compute Cloud.

Part 2: This post will cover how we can access the PUM Image deployed on the Oracle Compute Cloud (via SSH) using PuTTY and winSCP from an on-premise workstation to perform PSADMIN activities like administering and configuring the servers at various tiers.

Part 3: This post will cover how we can access the PUM Image deployed on the Oracle Compute Cloud using SQL Developer and App Designer from an on-premise workstation to perform PeopleSoft development related activities/research.

Before I proceed with Part 1, I would like to share a few resources that I highly recommend for those who are new to the concept of "PeopleSoft on the Cloud".

Resources:

Quest Webinar: PeopleSoft on the Cloud - so, how do you use it?
Information Portal: PeopleSoft on Oracle Cloud
Oracle Red Paper: Getting Started with PeopleSoft Environments on the Oracle Compute Cloud Service
PeopleSoft Apps Strategy Blog: PeopleSoft on Oracle Cloud

I would also like to make a special mention to Logesh Balasubramaniam - from Presence of IT and author of "Lean IT Designs" blog - who was very helpful in sharing his knowledge and experiences on this topic.

The rest of this post will be heavily based on the following tutorial with some of my tips and experiences:
Deploying PeopleSoft Applications on Oracle Compute Cloud Service Instances

Step 1: Request a free trial access to the Oracle Compute Cloud

If you are - like me - new to hands on activity on the Oracle Cloud, you may perhaps be reminded of the following quote from The Rime of the Ancient Mariner by Samuel Taylor Coleridge.

"Water, water, every where,
Nor any drop to drink."

To me, it was not very obvious which of the myriad Oracle Cloud Services I should be subscribing to and activating to deploy a PeopleSoft PUM Image from the Oracle Cloud Marketplace.

After working with the "Live Cloud Chat" team, I figured I needed the "Oracle Cloud PaaS and IaaS" Service.

To get started, navigate to https://cloud.oracle.com/tryit and click on the "Try It" link under "Platform and Infrastructure".


At this point, you will be prompted to signin with your Oracle account. Based on my personal experience and what I heard from the support team, the chances of getting the trial request processed in a timely fashion are much higher if you are using your enterprise id instead of a personal id.

Here is an excerpt from my conversation with the "Live Cloud Chat" team:
"Please note trials coming from personal email addresses (Yahoo/Gmail/Hotmail etc.) are not being processed at the moment, if you want to request for a trial of our cloud services please register using an official email ID (enterprise email: @yourcompany.com)"

Step 2: Wait until you receive an email from Oracle!

If you used an enterprise email address, you should get an email from Oracle (within an hour) which contains the access and subscription details.


Now we are ready to proceed further.

Step 3: Follow steps 1 through to 6 in tutorial

Now we are ready to go through the following steps in the tutorial:
Deploying PeopleSoft Applications on Oracle Compute Cloud Service Instances
  1. Generate an SSH key pair using an on-premises Linux or Microsoft Windows system.
  2. Upload the SSH public key to Oracle Compute Cloud Service.
  3. Configure the Oracle Compute Cloud Service instance for HTTP access.
  4. Determine the PeopleSoft application to be deployed and initiate deployment in Oracle Cloud Marketplace.
  5. Use the Oracle Compute Cloud Service web console to configure the instance that will be used to host the PeopleSoft application.
  6. Sign in to the PeopleSoft application.
Note: Please review Part 2 before proceeding with further steps in the tutorial (related to using SSH) because there are some security steps that are missing.

Once we complete the above mentioned steps (1-6) from the tutorial, we can login to the PIA of the PUM image running on the Oracle Compute Cloud. Since we opened the http port 8000 (or https depending on your choice), we can access the environment from anywhere via the internet!

Tip 1: Uploading the SSH public key

How do we determine our Cloud Data Center while signing into Oracle Cloud My Services application?


One way is to login to the "My Account Administration" received in the email (Step 2).

From Email:


Note the Oracle Compute Cloud Service Details from the Dashboard.


Tip 2: Configuring the instance

The screens for configuring the instance have changed in comparison to the tutorial but here are the main items to consider.

Image Settings:


Shape Settings:


Instance Settings:


Make sure you add the SSH Public Key (created in Step 1 of the tutorial):


Storage Settings:


Tip 3: Waiting for the instance to be "Running" after initiating the creation

After configuring, reviewing and creating the instance, I was not able to see the created instance (in "Preparing" status) in the Instance tab right away. Instead, I could only find 3 orchestrations with statuses as shown in the image below. This is normal!


I would encourage you to remain patient and wait for at least a couple of hours for the instance to show up in the Instance tab with a "Running" status as shown below before proceeding with subsequent steps.


Related Links:

DIY - PeopleSoft on the Cloud - Part 2
DIY - PeopleSoft on the Cloud - Part 3

Tuesday, December 20, 2016

Event Mapping Framework - Migration

A reader asked a question in one my posts on Event Mapping Framework.

Question: Do you know how I can include the "Configure Event Mapping" settings in an App Designer project so I can migrate it from dev to test to prod environments?

The answer is very simple. Since the Event Mapping Framework is simply an extension of the 'Related Content Service' functionality, the procedure to migrate the configuration is also the same as migrating 'Related Content'.

For those who are new to Related Content and/or Event Mapping Framework, here are the steps that will help with the migration.

Step 1: Insert 'Related Content Definition' into the Project


This will take care of migrating the 'Related Content Definition' and associated Application Class. Note: We must highlight 'Application Packages' under the 'Related Definitions' before inserting the Related Content Service ID into the project.


Step 2: Insert 'Related Content Service' into the Project


Insert the 'Related Content Service' by entering the 'Portal Object Name' of the associated 'Content Reference'. This will take care of migrating the 'Event Mapping' Configuration.



Step 3: Save and Migrate the Project

Simply save and migrate the project from the source to the target environment.

Tuesday, November 22, 2016

Piwik: Open-Source Web Analytics Platform

While presenting at Oracle OpenWorld 2016, I demonstrated the integration of Google Analytics (GA) with PeopleSoft Applications for generating usage metrics. One of the big reasons that many find GA an attractive option aside from its superior features, is the fact that it is free. Of course, there are some limits to the term 'free'. After my presentation, I had an informative conversation with Greg Kelly from Oracle, who pointed out that just because a product is free, it does not necessarily mean it is the right solution for everyone. Greg also mentioned Piwik (hat tip), which is one of the most popular open-source web analytics platform and has an unique selling proposition of 100% data ownership.

In my personal opinion, Google Analytics is far more superior when it comes to functionality and features but I am aware that not everyone would be able to leverage Google Analytics due to various reasons (primarily data ownership). That said, Piwik is a great alternative for such customers to create a locally or cloud hosted web analytics platform which provides full control of their data. I am stating the obvious but Piwik does come with the cost of setting up and maintaining the infrastructure to host it somewhere.

Here are some resources that I found interesting and relevant to this topic (there may be many more out there):
https://zenincognito.com/piwik-vs-google-analytics-a-detailed-review/
https://piwik.pro/2016/05/infographic-piwik-vs-google-analytics/
http://www.kaushik.net/avinash/how-to-choose-a-web-analytics-tool-a-radical-alternative/

Here is my recent blog on how to integrate Google Analytics with PeopleSoft Applications:
https://pe0ples0ft.blogspot.com/2016/09/peopletools-using-ga-analytics-js.html

Here are the steps that I followed to setup and integrate Piwik with a PeopleSoft instance (HCM 9.2 PUM 17 - PeopleTools 8.55.06).

Step 1: Download and install Piwik

Resource: http://piwik.org/docs/installation/

In my cases, I downloaded Piwik from the Microsoft Windows Web App Gallery.
http://piwik.org/blog/2013/02/piwik-microsoft-windows-web-app-gallery/

Then, I followed the installation wizard to install Piwik on my Windows 7 desktop computer where my PUM image is also running.

Some gotchas for Windows installation based on my experience.

Windows Firewall Inbound Rules:

I had to punch a hole in the Windows Firewall and set up an inbound rule to allow requests on a port of choice.

Windows Firewall > Advanced Settings > Inbound Rules


IISExpress - Site Binding Configuration (applicationhost.cfg):

I also had to add site bindings to the IISExpress applicationhost.cfg to handle URL binding failures.
https://www.iis.net/learn/extensions/using-iis-express/handling-url-binding-failures-in-iis-express


Add trusted hosts to Piwik config.ini.php:

Finally, I had to add my localhost ip+port combination to the config.ini.php file as a trusted host.

WebMatrix > Piwik > config > environment > config.ini.php > trusted_hosts


Step 2: Login to the Piwik Admin Console and add a new site

Reference: http://piwik.org/docs/manage-websites/

Step 3: Obtain Piwik Tracking Code JavaScript snippet

Piwik > Administration > Websites > Manage Websites > View Tracking Code

You will find code similar to the following screenshot:


Next, I created a Branding Object in PeopleTools with the preceding javascript:

Navigation: PeopleTools > Portal > Branding > Branding Objects


Note: I only used the code snippet inside the script tag and also commented out the noscript portion for this proof of concept.

Step 4: Inject custom javascript in PeopleSoft

This part is similar to the Google Analytics javascript injection. To inject this custom javascript object across the PeopleSoft application, I used a custom framework for Global JS Injection. Details are in the following link:
Global JavasScript Injection Framework


Note: You don't have to use the same Global JS Injection Framework. You could use any other technique that might work best for your environment. The idea is to make sure the javascript is executed on every single page across the PeopleSoft application to send the usage metrics to the Piwik server.

Results:

Here is a screenshot of the Piwik Dashboard.