Showing posts with label PeopleSoft Technical. Show all posts
Showing posts with label PeopleSoft Technical. Show all posts

Wednesday, March 20, 2019

Object not copied, parent definition does not exist in target database (62,33)

We once were doing migration for a project but got stuck when app designer wouldn't copy one of the objects in the project to target instance and kept throwing below error:

Object not copied, parent definition does not exist in target database (62,33)

The error was associated with one AE SQL step and we spend quite some time scratching our head over this. Finally we discovered that we forgot to include the parent section of the SQL Step of the App Engine in the project. In other words, we were trying to migrate a child object without it's parent object.  
Well, it doesn't sound convincing right ? because we very often migrate child objects without their parent objects. But in our case it didn't work because the child object (SQL or PeopleCode) was added newly.
Let's try to understand it in a different way. Consider we have an app engine which contains Sections and Steps and this is how they are related.

App Engine - Section(s) - Step(s)

Consider that we have added a new step under a section so if we have to migrate one of the Steps (PeopleCode or SQL) then we must also take along the corresponding parent Section. If you have included the child object but not it's parent then app designer will throw an error (Shown in the first para).  To resolve this, include the respective parent section.

Saturday, February 16, 2019

Application Engine with Disable Restart "off" is going "No Success" in PeopleSoft

Have you every encountered this issue when an App Engine process keeps failing with No Success message over and again. Lets discuss what might cause this and how we can resolve.
The Application Engine program which is restart-able always commits the DB transactions if it fails. We can make an app engine re-startable by clearing the checkbox "Disable Restart" in the properties dialog box as shown below:



The next course of action is to re-start the process again hoping that it would resume the processing from where it got failed. If the program have been setup that way then it would work as expected but if not then it will fail again.

Even if you delete the failed process instance and kick of the process again, it would still fail because during the first run the program would have inserted processing data into temp tables and when you run the program again, it tries to insert the same set of processing data into the same temp tables causing the process to fail.

Now the question is, how to resolve this ?

The simple answer is - first clear all the temporary processing data from the tables and then run the process again. But this is easier said than done. So lets break it down into the steps needed to resolve this issue.

Gather all the temporary table instances and standard SQL tables

In this step we need to collect the names of all the tables into which the program tries to insert the data. The easiest way to do this is by first enabling the Application Engine trace and then checking the SQL trace file. Just search all the INSERT INTO text in the SQL trace file which will give you all the tables where the temporary or the transnational data is inserted.

Deleting the data from tables

In this step we will delete the data form all the tables gathered in previous step but perform this task very carefully so that we don't end up deleting any data which which isn't supposed to. First of all, all the data from temp tables can be deleted without any worry. However, before deleting the data from standard SQL tables, we first need to analyse and determine what exactly need to be deleted or updated and only after that data should be deleted.

Run the process again

After all the temporary or transnational data is deleted, we are ready to run the process again. So once the process is run again it should go to success.

Tuesday, May 22, 2018

Is it time to go FLUID?


Fluid is the buzzword that is currently doing the rounds in Peoplesoft world. In physics, a fluid is a substance that continually deforms under an applied shear stress. Alright, but what this has to do with Peoplesoft?? This new fluid stuff is going to help us fit our static Peoplesoft pages across various form factors - When I say various form factors, it means the page fits into any device of any size.

So here comes the next question.. Does Fluid only implies going mobile? Answer is a big NOOOO.. This is a general misconception/myth that is commonly widespread among us. So what exactly is this fluid thing?

- Fluid is a new way of using the system
- with a new navigation paradigm
- simplified/modern and intuitive User Interface 
- which has the capability to run on any device.

The beauty of the Fluid User Interface lies in its ability to generate responsive and adaptive UI. If your business users are in a middle of a meeting (We all know how boring those meetings could be 😊) and need to access some recruitment related analytics, they can access it on the fly using their iPad with the new fluid UI. Your boss can approve your leave on his way back home travelling in a train/car. 

As you can see, the fluid UI is more into targeting casual business users, so don’t expect to have all your Peoplesoft classic pages converted to fluid, for instance a job data page has no necessity to be accessed on a mobile. When I say this, you will a question tinkering your mind. If all pages are not meant to be fluid, will I not have an inconsistent UI between pages?? To solve this Peoplesoft has delivered a new branding style called “Classic-Plus” which is fluid-like styling to unify the look and feel within Peoplesoft. 

What does fluid mean to everyone involved:
- For a casual self-service user, you have a new system with look and feel of leading websites.
- For a user with manager level privilege, you can now easily approve any critical business transaction using fluid approvals.
- For a director level user, you have simplified analytics that can help you make strategic management decisions.
- If you are part of delivery team, you couldn’t ask for more with delighted end-users and lower training costs.
- For Developers, you will have an additional responsibility to learn new skills ( HTML5/CSS3/ Javascript) adding value to your profile.

Sample Fluid Page

There are few risks and challenges that needs to be addressed in this implementation 
- System Load Fluid UI Apps expands the user community, and puts additional load on system.
- Performance on mobile devices Mobile devices use data services which are generally not so fast, hence performance on mobile devices can be slower than expected.

The future of Peoplesoft is Fluid, Oracle has dramatically extended its investment in Fluid User experience. Many customers have already moved to fluid. Don’t wait too long, you’ll be left behind in the race. Have a clear implementation plan, explore the new features that are delivered and go for it, I am pretty much sure the end users will be delighted and so do you.

In the next few months, we will have more interesting articles coming up focusing on fluid development/tips and how to work with classic plus. Stay tuned!!!

Feel free to drop your feedback/suggestions.


Tuesday, February 13, 2018

Deleting Employee ID and Employee Record in Peoplesoft


Imagine what it would be like when you are in a scenario which require you to delete an Employee ID or an Instance of employee ID, possibly because you have mistakenly hired an employee or the employee hired didn’t turn up on first day or left the organization on the same day (Wonder what made him leave the same day.. 🙄 poor guy..)

Alright.. What next?? Get rid of the Employee ID in peoplesoft...🤐 Nightmare!!! Isn’t it..?

One thing that immediately strikes all techy geeks is to identify all the records which contains EMPLID field and run delete scripts against that employee. Seriously..??  Want to know a secret? There is much simpler solution than this.. 😉

Deleting EMPLID

Peoplesoft has a delivered process(HR_PER502) which can delete an employee ID. Just enter the employee ID here and leave the rest to be taken care by the process. 

Set Up HCM > System Administration > Database Processes > ID Delete


















Although the above process eases our work, I should point out that Peoplesoft does not recommend deleting an Employee ID that has already been processed through Payroll. 

Let’s say that you still delete an Employee after payroll has been run for that ID, leaving in a state with all pay calculation totals messed up, it will be incredibly difficult to harmonize the numbers leading to Audit/Compliance issues. Hence you should never take the back-door route to fix an error that has occurred, Perhaps, I would recommend adding a Termination row in such cases to keep a clean audit.

Keep in mind that the above process does not delete all audit records (starting with AUDIT_...)

Changing EMPLID

There will be instances where you want to change the EMPLID to a different ID, for example, an Employee who rejoins the company and hired with a new employee ID instead of a Rehire action. 

You know what? You can use the same process to change an EMPLID to a new number.  

Set Up HCM > System Administration > Database Processes > ID Change


















Deleting Employee Record

But wait – there’s more. Another useful delivered process which helps us to delete an Employee Record instance which was created by mistake, it can be accessed from the following navigation. 

Set Up HCM > System Administration > Database Processes > ERN Delete Process > ERN Delete Process














The system prevents the deletion of EMPLID/EMPL_RCD combinations which are used in key processes like payroll, benefits and time reporting. 

To sum up, Instead of performing minor heart surgery on the database by running multiple delete scripts, it is often suggested to go with Peoplesoft delivered processes discussed above. Feel free to drop in your feedback/suggestions. 😊





Sunday, January 28, 2018

Behavior of think-time Functions in PeopleSoft

Some issues are uncommon, weird and hard to understand what exactly went wrong. One such weird issue in peoplesoft is related to Think-time functions. I know many of my colleagues who were stressed to the core and said ‘Its time to leave this planet’ because of this peculiar issue in Peoplesoft. Come!! Let’s sort this one out.

Think-time PeopleCode event (<think-time event>), but a SQL update has occurred in the commit interval.

In this article, let’s see what think-time functions are, and some of the limitations that require our attention when dealing with such functions.


Basically, any function that waits for user input or external process to complete is a think time function. Messagebox, for instance, waits for user to click Ok or Cancel button… Exec() function running in synchronous mode which suspends processing until the triggered process is complete.

Listed below are the think-time function in PS

  • DoCancel
  • DoModal
  • DoModalComponent
  • Exec(Only when it runs in Synchronous Mode)
  • AddAttachment, MAddAttachment, ViewAttachment, DetachAttachment
  • InsertImage, CropImage
  • CreateObject, ObjectDoMethod, ObjectSetProperty, ObjectGetProperty(When object Required User- action)
  • Prompt
  • RemoteCall
  • RevalidatePassword
  • WinExec(Only in Synchronous mode)
  • Winmessage and Messagebox(Depending on Style Parameter)
  • Calls to an External DLL

Think-time functions in Application Engine

Are you using Exec() or RemoteCall() in AE to run a batch file or a remote process? You should consider the following then:

Exec(&unixCmd, %Exec_Asynchronous + %FilePath_Absolute); /*Running in Asynchronous mode*/
&ExitCode = Exec(&unixCmd, %Exec_Synchronous + %FilePath_Absolute); /*Running in Synchronous mode*/

Running Exec() in Asynchronous mode is not a think-time function, as the AE process does not wait for the invoked command to complete. With Synchronous mode it is different, because the AE process needs to wait for the invoked command to complete. OH!! That’s Pathetic.. Don’t expect it to wait for you if you haven’t committed pending transactions, you will end up in think-time event error. 

The simple solution here is to issue a Commit before Exec() is invoked. If AE was written to be Restartable, then make sure that the previous step is committed before the step executing Exec. For AE with ‘Disable Restart’ checked, a CommitWork() has to be issued before Exec(). Easy right?

Think-time functions in Component Interface

Think-time functions are usually suppressed and ignored in CI. So, in such cases better to write a separate logic for CI.

If %CompIntfc then
/*Logic for CI*/
Else
/*Get user Input*/
End-if;

Think-time Functions in Peoplecode

Winmessage() and MessageBox() behaves as a think-time function only when the style parameter specifies more than one button. When you make the style parameter to show only Ok Button(0), then it behaves like a normal function. If style is neglected, Winmessage() displays both Ok and Cancel Button which acts as a think-time function. Hence you must always specify with style parameter like Winmessage(“Test Message”, 0) to show only Ok button.

Sometimes you would have noticed that your MessageBox or Winmessage does not work before call to a Transfer or TransferExact function. If you want to display your message, then change the style to show OK and Cancel Button.

It’s not so hard to debug when you receive error in peoplecode related to think-time functions. PeopleBooks suggests us not to use think-time functions in SavePreChange, Workflow, RowSelect, SavePostChange, and any peoplecode event that executes as a result of ScrollSelect, ScrollSelectNew, RowScrollSelect, or RowScrollSelectNew function call, and any peoplecode event that executes as a result of Rowset class Select or SelectNew method. If you are using think-time functions in one of the above events, just get red of it.



Monday, January 22, 2018

PeopleSoft - Data Conflict Issues

“Come on!!! This is such a simple and straightforward component.. It’s not fair… Why am I running into this issue…”. Ever felt disheartened like this when you see these kind of error messages? 


Data being added conflicts with existing data(18,2 

or 

Changes conflict with another data item. (18,5)


Chill out!! You are not alone.. Let’s set this right..
The prime cause of this issue is because of writing into a PS Record with duplicate key values. Basically, there exists a row with some key values and you are trying to add another row with same key combination, so look out for how did you end up with such duplicate rows. 
I have itemized a few steps which needs validation when you encounter this error

Get the Basics Right – Record Level Structure

Remember your first lesson in creating multiple levels in PS? Yes.. Level 1 record must contain key fields from Level 0 Record and an additional key. Check out if your key structure is right, otherwise fix it now.

Stop Clashing with Component Processor – No Auto Select & No Auto Update Property

Either you do the selection of rows from tables or allow the component processor to do it for you. When you populate a grid or scroll area through peoplecode, you must check the ‘No Auto Select’ property. Likewise, when you have decided to take care of updating the backend records, better select the ‘No Auto Update’ option. When you ignore this, you end up updating the same row twice leading to this issue. 
Thoroughly check all the grid and scroll area properties from your main and secondary pages and make sure you don’t clash with the component processor.


I would recommend allowing the component processor to do its job unless you have some business requirement that requires selection or updation through peoplecode. Atleast try avoiding SQLEXEC statements to insert or update records which are readily available in your component buffer. Why reinvent the wheel??

Weird Field Assignments

Let’s say you have a field named ‘COMPANY’ which is a key field in one of your records and a peoplecode in ‘PreBuild’ or ‘Rowinit’ event sets a default value to this field. If this field is editable and user enters some value and saves it, the next time when user opens the page again, the default value is displayed again and if you try to modify this key field and save again, you will encounter Data Inconsistency issue.
So always look for such weird field assignments/modifications, 
Check out for Saveprechange or Savepostchange events, if some code is modifying your key values.
Did you overlook your record peoplecode? There are chances that the same record is being used in multiple components and the code written for some other purpose gets triggered for our business transaction resulting in data conflict issues.

Out of sync Sequence Numbers

When you use sequence numbers in your page that needs to be incremented and updated every time, better not to go with SQLEXEC Update statements, Instead use the delivered getNextNumberwithGapsCommit() function. This can help avoid data inconsistency issues. 

Clear App Server Cache

For no reason, if most of the users receive data conflict issues, I would suggest to clear the app server cache. Believe me, it helps sometimes.

Sunday, November 19, 2017

How to implement Toolbars in a Page PeopleSoft

Toolbars are replacements of traditional push buttons, they brings many advantages for developers on the table such as:
  • Very easy to implement
  • No alignment required
  • Their page behavior can be controlled from PIA
  • Easy to debug since the underlying code is written in App Class/Package

While the developers enjoy these advantages while implementing Toolbars however, once implementated, the end users enjoy the ultimate benefits such as:
  • The page looks more aligned with modern web based pages
  • Easy to navigate through various pages involved in the wizard like applications
  • For the pages with bulk data which makes it long with scrolls, the Toolbars with actionable options can be displayed both in header and footer areas. This makes the end user's job easy to take the actions on page.

These are the steps to implement Toolbars:

  1. Identify the icons/buttons required on the page
  2. Create/modify the buttons that are required to be displayed on Toolbar in the page
  3. Create new Toolbar Definition and add the buttons
  4. Develop the application package/classes which contains underlying code for toolbar action
  5. Add the delivered sub page for toolbars into the page where this needs to be implemented
  6. Add the PeopleCode into the page activate PeopleCode to initialize Toolbars on page
  7. Add the PeopleCode in the FieldChange event to trigger the underlying PeopleCode






Want to see a demonstration with real time example on how to implement Toolbar?


I have a complete session which demonstrates:

  1. The Tooolbar overview
  2. Implementing Toolbar on a page
Below is the link to video in YouTube.

PopelSoft Toolbars

However, if you want to save money by purchasing whole module instead of in parts then visit this page to get more details PeopleSoft Functional and technical online training

Thursday, June 22, 2017

Creating a Component Interface in PeopleSoft


You can gain in-depth knowledge on CI with a live example by just paying below amount


I have a complete session in two parts which explains:

  1. How CI works - Overview, all the elements of CI etc..
  2. Creating an Inbound interface, that loads data on a multi level component using CI and App Engine
Below are the links to videos in YouTube.

CI Part 1
CI Part 2

Click here to know how it works
However, if you want to save money by purchasing whole module instead of in parts then visit this page to get more details PeopleSoft Functional and technical online training

Saturday, April 30, 2016

PeopleSoft to PeopleSoft Integration through Integration Broker

Before you begin reading this article, you must know - Fundamentals of PeopleSoft Integration Broker

In this we will see what are the steps to integrate one PeopleSoft Application with another one and will do it for the same scenario we talked about in the article Fundamentals of PeopleSoft Integration Broker. In this example, the PeopleSoft FIN system is the source system and the PeopleSoft HCM system is the destination system.
On a very broad level, this is what we are going to configure:
• The integration gateway.
• The PeopleSoft Finance system.
• The PeopleSoft HR system.

Configuring the Integration Gateway

The only required property that you must set for the local gateway is the Oracle Jolt connect
strings that enable the gateway to find the PeopleSoft HR system. Set this property in the
integrationGateway.properties file.

So, open the integrationGateway.properties file on Web Server and update the Jolt Connect String. You can open this file from below highlighted link on Gateway Component in PeopleSoft Finance System.




Configuring the PeopleSoft Finance System


Perform the following tasks on the PeopleSoft Finance system:

Local Gateway


Define the local integration gateway in the PeopleSoft Finance system by using the
Gateways component.
Any integration gateway that you've installed and configured to find the PeopleSoft HR system can
serve this role. Specify the gateway's PeopleSoft listening connector as the gateway's URL.



Note that the Local Gateway setup will be same in both Finance and HR system.

Related Articles:

Message

Define the message from the navigation PeopleTools - Integration Broker - Integration Setup - Message. This should reflect the rowset structure of Bank Account component in HR system because this structure will be used to transmit data to HR.

Handler

Define the handler using Application Designer. Since in our case the Finance System is a sender and there is only one way communication so only a dummy Application Package and Class is required with no Processing Logic written in it.

Routing

Routing is where we define the following:

  • One way communication or two way (In our case its One Way)
  • Synchronous or Asynchronous (In our case its Asynchronous)
  • The sender and receiver nodes (In our case PS Finance is Sender and PS HR is Receiver)
Navigation: PeopleTools -Integration Broker - Integration SetUp - Routing

Service Operation

It ties previous three elements - Message, Handler and Routing together and forms a mechanism for integration. Define the service operation and add those three elements in it.

Navigation: PeopleTools -Integration Broker - Integration SetUp - Service Operation

Node

Define two nodes, one for HR system and another for Finance system. The Finance Node in this case would be local and HR Node would be remote.

  • Also mention followings in node definition:
  • Connectors (Gateway and Target Connector)
  • Portal URLs (PIA URL)
  • Routing (Add the routing definition defined above)
The node definition can be same across PS to PS integration because it represents the whole system.
Navigation - PeopleTools -Integration Broker - Integration SetUp - Node


Configuring the PeopleSoft HR System


Perform the following tasks on the PeopleSoft HR system:


Local Gateway


As already mentioned, the Local Gateway in both systems will have same configurations.


Message 

Define the message from the navigation PeopleTools - Integration Broker - Integration Setup - Message. This should reflect the rowset structure of Bank Account component in Finance system because this structure will be used to read data sent from Finance system.

Handler

The handler in HR system would contain the actual processing logic since it has to read data sent from Finance and load into tables.
Its basically an application package containing a class definition which has the processing logic written in PeopleCode to read the data (Bank Account Changes).

Routing

Routing is where we define the following:
  • One way communication or two way (In our case its One Way)
  • Synchronous or Asynchronous (In our case its Asynchronous)
  • The sender and receiver nodes (In our case PS Finance is Sender and PS HR is Receiver)
Navigation: PeopleTools -Integration Broker - Integration SetUp - Routing

Service Operation

It ties previous three elements - Message, Handler and Routing together and forms a mechanism for integration. Define the service operation and add those three elements in it.

Navigation: PeopleTools -Integration Broker - Integration SetUp - Service Operation

Node

Define two nodes, one for HR system and another for Finance system. The HR Node in this case would be local and Finance Node would be remote.

  • Also mention followings in node definition:
  • Connectors (Gatway and Target Connector)
  • Portal URLs (PIA URL)
  • Routing (Add the routing definition defined above)

The node definition can be same across PS to PS integration because it represents the whole system.
Navigation - PeopleTools -Integration Broker - Integration SetUp - Node




Monday, April 4, 2016

Fundamentals Of PeopleSoft Integration Broker

I have been trying to push myself hard for a long time to publish this article but honestly, I have been way too lazy to do that. Well, now is the time.

A very important highlight of this article is we are going to talk about only absolutely relevant elements so that it becomes easier for you guys to get good understanding on Integration Broker because often times I find people being lost in the PeopleBooks trying to figure out what exactly they should refer to. 

Related Articles:

Lets start with Architecture which shows the elements of Integration:

PeopleSoft Integration Broker Architecture



This architecture clearly depicts the integration between PeopleSoft Finance and PeopleSoft HR system represented by Node A and Node B respectively where the changes made in former would be transmitted to latter through Integration Broker.

Lets assume that the integration is setup for the Bank Account changes done on Finance System which should ultimately be transmitted to HR System to keep both in sync. Now our rest of the discussion would be based on this scenario.

The very first thing we must talk about is the various elements involved in this Integration Setup.

Elements of Integration


Integration Engine

The integration engine as you can see in the architecture above, is something that ties all the elements like Service Operation, Message, Routing etc... together which ultimately creates a mechanism for integrating two systems.
The integration engine runs on the PeopleSoft application server. Rather than communicating directly with other applications, the integration engine sends and receives messages through one or more separately installed integration gateways.

The integration engine:
  • Uses a modular architecture, so it can treat gateways as black boxes and communicate with them using standard connectors.
  • Handles messages containing data in a variety of formats. Formats include the PeopleSoft rowset-based message format, and nonrowset-based message structures including, XML document object model messages, Simple Object Access Protocol (SOAP) messages, and non-XML files.
  • Sends and receives messages asynchronously (like email) or synchronously (suspending activity to wait for a response).
  • Applies message transmission type and routing based on specifications that you define in a PeopleSoft Pure Internet Architecture component.


Gateway

The integration gateway is a platform that manages the receipt and delivery of messages passed among systems through PeopleSoft Integration Broker. It supports the leading TCP/IP application protocols used in the marketplace today and provides extensible interfaces to develop new connectors for communication with legacy, enterprise resource planning, and internet-based systems.

Additional features include:
  • Listening connectors and target connectors that transport messages between integration participants and the integration engine.
  • Basic logging information concerning message receipt, delivery, and errors.
  • Connection persistence with continuous open feeds to external systems through connectors, with full failover capabilities.
  • Transport protocol and message format management so that when messages reach the integration engine, they have a PeopleSoft-compatible message format.

Connectors

Listening Connectors

Listening connectors receive requests from integration participants, send them to the gateway manager, and deliver responses back to the integration participants.

Target Connectors

Target connectors generate requests, send them to integration participants, wait for responses from participants, and deliver the responses back to the gateway manager.


Message

Message definitions provide the physical description of the data that is being sent, including fields, field types, and field lengths. You create message definitions in the PeopleSoft Internet Architecture. In other words Messages are shapes that describe the contents of a service operation transaction.

In our scenario the message definition would contain the information about the table structure used in the component 'Bank Account' i.e the records used in the component and their hierarchy. This information will be used by Integration Engine to transmit the data when there is a change in employee's bank accounts. 

Message Type
When to Use
Details
Rowset-based messages
All PeopleSoft-to-PeopleSoft integrations
For hierarchical data that is based on PeopleSoft records, you create a message definition by assembling records, organizing them into a hierarchy, and selecting fields from those records to include in the message. 
Nonrowset-based messages
Integrations with third-party systems
These messages can have virtually any structure and content. You create a message definition, but you do not insert any records. The message definition serves as a placeholder for the actual message. 


Handler

It contains the processing logic for finally writing the data into tables/components of the receiving node. It is combination of Application Package, Class, Method created in the application designer.
In our scenario the handler defined on HR Node would contain the business logic written in PeopleCode to write the Bank Account changes received from Finance Node, to the corresponding tables/components. 

Routing

A routing definition specifies the direction of the integration (inbound or outbound), routing alias names, transformations, and more. 

In our scenario, the routing on HR Node would be Inbound and on Finance Node it would be Outbound.

Service Operations

This element forms for overall processing logic by combing following elements:

  • Message
  • Handler
  • Routing

Node

Nodes represent any organization, application or system that will play a part in integration.
In our scenario there are two nodes:

  1. One that represents PeopleSoft FIN System
  2. Another that represents PeopleSoft HR System

Because an application can send messages to itself, a default local node definition that represents the application is delivered as part of the integration engine.

Each PeopleSoft installation must have one, and only one, default local node.
Each PeopleSoft Integration Broker database involved in an integration must contain a default local node definition for itself, and a remote node definition for each of the other nodes involved.
Local and remote nodes are concepts relative to the database in which the nodes are defined. If you’re signed on to Database A which has Node A defined, then Node A is local. If you’re signed on to Database B, Node A is defined as remote.
In our scenario if we are in the Node A - PeopleSoft FIN System then:
·        Node A (default local)
·        Node B (remote)
The following definitions must exist in the Node B - PeopleSoft HR Systen for it to integrate with Node A:
·        NODE A (remote)
·        NODE B (default local)
In practice, only portals use nodes designated simply as Local. The only local node definition used by PeopleSoft Integration Broker is the one designated Default Local, which represents the database onto which you are signed.

Want to learn PeopleSoft technical module thoroughly? I have several videos with total duration of over 50 hours.


Following is the link to the YouTube videos Technical
Click here to see course contents

Click here to know how it works

However, if you want to save money by purchasing whole module instead of in parts then visit this page to get more details PeopleSoft Functional and technical online training

Saturday, December 27, 2014

How to Connect to a Database through SQL Developer in MS Window

Prerequisites:

  • Oracle SQL Developer installed on the machine. If not installed already then download it from Oracle website and install. Note that SQL Developer requires Java JDK already installed on the machine.
  • The database should be up and running

Step 1: Setting TNS_ADMIN environment variable

TNS Admin (TNS_ADMIN) environment variable should be set to the directory where tnsname.ora file resides i.e C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN in our case
To setup this variable:
  1. Open the My Computer properties (Start > My Computer - Right Click and choose properties), Advance System Settings, Environment Variables. 
  2. Then create a new system variable with variable name as TNS_ADMIN and value as C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN. Note that this the oracle home might be different in your case depending upon how you have installed the Oracle Database Application.

Step 2: Updating tnsnames.ora and listener.ora files

Both the tnsnames.ora and listener.ora should have the entry for SID or Database Name to establish connection with database.

PeopleSoft HRMS Online Training

Lets say the SID for our database is HRDEMO, this is how the tnsnames.ora and listener.ora located under \NETWORK\ADMIN will be updated (highlighted in red):

tnsnames.ora
# tnsnames.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.0.2.15)
    )
  )

HRDEMO =
(DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = HRDEMO)
    )
)



listener.ora

# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    (SID_DESC =
      (SID_NAME = HRDEMO)
      (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
    ) 
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = C:\app\Administrator\product\11.2.0\dbhome_1
DIRECT_HANDOFF_TTC_LISTENER=OFF


Step 3: Restart the TNS Listener (OracleOraDb11g_home1TNSListener)

Open the Windows Services utility from Start > Run > services.msc and start the TNS Listener if its not started already. If already started, then stop and start back again.

Step 3: Establishing Connection through Oracle SQL Developer


  1. Start the database HRDEMO, to know how to start the database visit this article Connecting and Starting the Database through sqlplus Command
  2. Launch the SQL Developer by executing the binary from <SQL Developer Home>\sqldeveloper.ext.
  3. Open the new connection window by clicking on + sign on top left as shown below:Creating a New Connection in SQL Developer
  4. Enter the Connection Name HRDEMO, User Name - SYSADM, Password - SYSADM. Select the option 'Save Password', Role - Default, Connection Type - TNS. Finally select the Network Alias - HRDEMO. Note that SYSADM is the Access ID that we created while completing the database setup.
  5. Click on Test Connection, if the connection was established then the status on bottom left of this window will show as 'Success', if not then error message will be thrown. Click on Save to save the connection.
  6. If the connection was successful then click on Connect which will establish connection with the database HRDEMO and open the SQL Editor to write/execute SQL queries on this database.


Want to learn PeopleSoft technical module thoroughly? I have several videos with total duration of over 50 hours.


Following is the link to the YouTube videos Technical
Click here to see course contents

Click here to know how it works

However, if you want to save money by purchasing whole module instead of in parts then visit this page to get more details PeopleSoft Functional and technical online training