I started a new job a few months ago and it is mainly working with PeopleSoft. There is a fair amount of documentation on PeopleSoft, but not a whole lot on the basics. This is my journey into PeopleSoft and what I have learned about programming in general. My first question is; what is PeopleSoft exactly?
Disclaimer: I am really new to PeopleSoft and these writings are what I have learned so far. I am not an expert and if there is something incorrect please comment so I can learn and correct the code.
First, the 10,000 mile high overview. PeopleSoft is a very very very large application spanning several servers and many many many database tables. PeopleSoft is Oracles Human Resource Management System or better known as a Enterprise Management System(ERM). In my current position at a local university we have a component called the Campus Solutions added into the software. Really that is all it is. A way to manage people. For the university we use it to manage student information, which is kind of as far as I can go with that.
On to the next layer down. PeopleSoft spans at least a couple different servers and my understanding of this part is a little limited. There is a web server and an app server and a database server. There could possibly be other servers that would help in the process, but so far as my understanding this is the minimal setup.
Next to the software itself and what I know so far. There are several moving parts to PeopleSoft. There is the UI interface and at the time of this writing the newest version is called a Fluid UI. This is Oracles attempt at responsive design. This is our next step in PeopleSoft and I am very limited on that part, but I will continue updating as my knowledge grows. One attempt that I am going to make is to include code samples and more documentation on PeopleCode.
What is PeopleCode? Well that is another really good question. At the moment you can’t really write customization for PeopleSoft in any other language than PeopleCode. Oracles proprietary language for PeopleSoft. The majority of the custom code will be written in either SQL or PeopleCode. PeopleSoft is database driven and everything is managed by the database including the PeopleCode. In most cases you will query the database and either process the information to display it to the user or send it to another application. Pretty much everything we do on the web today. PeopleCode is kind of a mixture of C#/Java and Visual Basic. There is a lot of similar syntax as Visual Basic like:
If (&variable = True) Then
&someOtherVar = False;
But you still have to end the line with a semicolon like C# or Java. All variables need to be declared with “&” in front of them. They also are required to be declared early in the code, but if you don’t declare it the “compiler” (there really isn’t a compiler here) will automatically declare it for you. This isn’t the best thing to do as it causes the code to set the data type as “any”. (More on that later.)
OK back to the software. PeopleSoft the application has several parts to it. There is the UI, there is Process Scheduler, App Engine and Integration Broker. ( I am pretty sure I am only hitting the top few so this list will grow.)
- The UI is what it is. This is where users input data, generate reports, setup schedules, all the things you would normally do in an application.
- The Process Scheduler is exactly what it sounds like. You can schedule processes and things to happen when ever you want. The majority is to process a flat file to transfer data to another application.
- The App Engine is a little deeper. This is what the Process Scheduler will actually run. You set these up as steps and use PeopleCode and SQL to generate files and process data.
- Integration Broker is at the very basic a way to create endpoints for other applications to consume. This is a way over simplified explanation and I will go into this further as it is one that interests me the most.
That is the very basics of PeopleSoft. The next posts will go into more depth of PeopleCode and some of the main things to do at the very lowest levels.