Posts

Running Component Interface Tester Outside App Designer

Getting Started PeopleCode Component Interfaces are a powerful tool for interacting with PeopleSoft systems and many third-party integrations still use PeopleSoft Component Interfaces. Unfortunately this is sometimes through APIs that can be difficult to troubleshoot or that you have little control over, as a PeopleSoft developer. I recently came across a situation where a vendor had a PeopleSoft interface already developed to call a PeopleSoft CI. The CI itself was built in our PeopleSoft environment, per the vendor specifications, but they were receiving Save errors. We wanted to confirm the CI was working properly, and that the service account had the appropriate security, but the feedback through their API was severly limited. The service account only had basic permissions to the Component Interface itself, which I was sure this was sufficient, but really wanted to test the CI as the user that would be running it . I know I can use the Test Component Interface tool in App De...

Debugging nVision, Part 1

Image
Set nVision Web/Process Scheduler Trace To trace an online nVision process you must nVision tracing in the Process Scheduler configuration file. $PS_CFG_HOME/appserv/prcs/DOMAIN/psprcs.cfg Under the [nVision] section there will be a "TraceLevel" setting.  I typically useTraceLevel=4.  I like a lot of data. Trace Level Options  (from PeopleBooks) 0 = No Tracing 1 = High-level process flow and status information 2 = Level 1 plus high-level code information 3 = Level 2 plus includes SQL Statements 4 = Level 3 plus function calls, output values, and detailed process flows.  Maximum level. A Process Scheduler bounce is not required.  At least, not if you have "Dynamic Changes" enabled.  I don't know for sure if the dynamic changes setting matters or not to this option. The trace files will be posted online under Process Monitor. Set nVision Windows Client Trace Tracing for nVision running on the Windows client can be enabled through Con...

Getting Client IP Address in PeopleSoft

When running PeopleSoft behind a load balancer the client IP address is sometimes not reported correctly on the PSACCESSLOG table, or when using the built-in PeopleCode functions.  This definitely occurs when using Netscaler, as this is what I have the most experience with and what I have had others ask about, but other load balancer products may cause the same behavior. To get an accurate IP address you must configure the load-balancer to pass this information, which can be done using the HTTP header "X-forwarded-for".  Here is some information on Netscaler.  Refer to your load balancer documentation for details on this setup. https://docs.citrix.com/en-us/netscaler/10-1/ns-tmg-wrapper-10-con/ns-lb-wrapper-con-10/ns-lb-advancedsettings-con/ns-lb-advancedsettings-cip-tsk.html Once the load balancer is configured use PeopleCode to read the header for the actual client IP address.  You can create your own access log tables or write conditional logic based on the...

PeopleSoft Security with Navigation Paths for a Permission List, Role or User

This SQL allows you to view permissions and the associated navigation.  You can provide a Permission List name, Role name or User ID, or any combination of the those items to filter your results.  You should be prompted for the bind variables when run in SQL Developer.  If not values are provided it would run for all users and permission lists in your environment, which I would not recommend. This is something that comes in handy when reviewing or auditing a user's permissions and providing the relevant navigation makes a lot more sense to most people than providing just the menu and component would.  There would obviously be better, and more efficient, ways to report this information, but for a one-off request or troubleshooting I like the speed and flexibility of SQL.  This code can also be adapted into many other navigation and security queries.  -- ALL NAVIGATION FOR A GIVEN SECURITY ROLE, CLASSID or USER SELECT DISTINCT RC . ROLENAME , RC ...

Records in a PeopleSoft Component

This simple SQL can be used to identify the records that are used behind an online PeopleSoft component.  Sometimes you just need to look at the data, sometimes you need to write scripts to manipulate or export the data.  The code below includes only the SQL Table and SQL View record types and filters out records and fields that are only related-display. Yes, you could open App Designer to find the pages and records within the component, but I wanted a quicker way that would show only the records most likely to contain the data.  I especially do not want to parse through the numerous temp tables and work records that will show up in App Designer for some components. This should work on Oracle databases.  It has bind variables to accept the component name as input so you may need to replace or pass the values, depending on your SQL tool. There are several ways to find the component name while online, if you need to.  In some environments Ctrl+Shift+J may wo...

Thoughts on the Cloud, Both Sides Now

If you have been to a conference or user group event lately you have certainly heard plenty about "the Cloud".  This broad term actually covers a lot of different services and architectures, but in the ERP community it generally causes some anxiety for technical professionals.  There are concerns about no longer managing your own hardware or no longer customizing the software to your specific business requirements.  Some organizations have huge investments in custom development.  Some also remember previous negative experiences with the "hosted" solutions that were pre-cursors to the modern cloud architectures.  I understand, and to some extent, share some of those feelings.  Change is hard.  However, software vendors like Oracle are pushing cloud services and applications hard, and I think resistance is the wrong approach. I am not advocating for or against cloud solutions and I am not providing a comprehensive review of the solutions.  What I ...

PeopleSoft PUM Image Maintenance

Image
The PeopleSoft PUM Image VMs seems to work pretty well once installed.  There is very little maintenance that I have had to perform on these environments and I can always start over by rebuilding the VM if I really break something.  Still, there have been some small issues recently that have required digging into the these environments so here are some notes to help. Database Administration The Oracle Database runs within the same VM and can be accessed using TNS with SQLPlus, SQL Developer, or most other Oracle-compatible tools.  However, I recently needed to make some adjustments to the SYSADM privileges.  For this I needed to connect as SYSDBA. 1. Login to the VM as root   (this account was setup when you installed the image) 2. Switch to the oracle  account.  This is the database owner. su - oracle 3. You then need to know the database name to connect to.  The easiest way is to look for the pmon process.  In the example be...