Process.Run is a great feature of the PeopleSoft Test Framework. Using this option wraps the running of a process up into just a few easy steps making the test script a lot easier to maintain. In this post I use a Object Type dot Action notation which corresponds to how a step would be entered in PTF. Before the period is the Type field, after is the Action field. I’ve previously written a post on PTF installation and how to record a simple script, if you need to start from the very beginning.
- Use Page.Prompt to open the page
- Use Text.Set_Value to set the run control id
- Use Page.PromptOk to close the page
- Use Text.Set_Value to set any run control settings if necessary
- Use Process.Run to run the job and wait for the status.
I will walk through two examples in this post. Both have an admin slant, the first is running the AEMINITEST process from the System Process Requests page. The second is running the Portal Security Sync process. Portal Security Sync has a value that must be specified for the run control which adds an additional step which is good to see. I’ll describe the process using Peopletools 8.51 first and then note any differences in 8.52. I’ve yet to use PTF in 8.53 so when I do I’ll add a new post if anything is different. Not all users may have access to these examples but the concept is the same for other process requests.
First a piece of advice, you usually want to record the majority of the script with the PTF tool. If this is your first time using PTF start recording before you even log in. Navigate to the System Process Request page (preferably with the drop-down navigation), enter your run control id or at least part of it before searching. Next on the process selection page note the name of the process we want to run, AEMINITEST. In this example, we don’t really need to run the process yet. We have what we need.
Let’s briefly review what we have in our recorded script.
- Login credentials if recorded: Steps 1 – 3
- Navigation to and entry of the System Process Requests page: Steps 4 – 7
- The entry of, search for, and selection of the run control: Steps 8 – 10
- Clicking the “Run” button: Step 11
- Maybe a logout: Step 12 – 13
Now we need to determine the Menu.Component.Market combination to use for the Page.Prompt step we want to add into the test. In our case, it’s PROCESS_SCHEDULER.PRCSMULTI.GBL. So add a step for the Page.Prompt and set the Recognition column to that. One way to get this info is to use the Line Information option in PTF. Select the Text.Set_Value line in the new script and click Line Information, a window should pop up and provide the PeopleTools information for that step and display the Menu and Component. Another option is using the PeopleSoft CTRL+J to display the page info directly. We also have to provide an action in the value field for the Page.Prompt step which will be “add update”. This allows us to create a new run control if one does not exist already. In our recorded test we can see a Text.Set_Value that comes after the navigation to the prompt page and if you entered the full run control id, it should be easy to spot in the value field.
Finally, we add the Page.PromptOk and Process.Run steps to run and monitor the process. We use prcname=value; to set the process name in this example AEMINITEST and we use the wait=true; which causes the test to wait for the process to finish. There are several options here for changing output type, format, file, even the expected outcome.
Put it all together and disable the unneeded steps and it looks like this for our AEMINITEST example.
Portal Security Sync:
Again we start off by recording a new test. Logging in, navigating to the Portal Security Sync page, entering my Run Control ID value and searching. Next on the Run Control page I clear out the Portal Name and retype EMPLOYEE and click the Run button.
Which gets me the following script
Next determine the Menu.Component.Market. You can use either of the options I mentioned previously or you can usually pull the info out of the URL as well. This time we are looking for PORTAL_ADMIN.PORTAL_SEC_SYNC.GBL. Going back to our recorded test, we want to insert a blank step about our Text.Set_Value step which was number 8. The new step 8 will be a Page.Prompt PORTAL_ADMIN.PORTAL_SEC_SYNC.GBL, add update step. Next we need to add a new step number 10. The new step 10 is just a Page.PromptOk step no additional data is needed. Next we need add our Process.Run step after the next Text.Set_Value step which is now step 13 since it has shifted down because we added to new steps. So add the Process.Run step with prcname=PORTAL_CSS ; wait=true;. Finally, lets inactive all the other steps that we don’t need which are steps 2 – 7, 11, 12, and 15. If you notice in the following screen shot, I’ve also changed the first step, Browser.Start to Browser.Start_Login. This step will use the username, password, and URL from the execution options to run the test. No need to have a password saved in the script. Also, changing the execution options will run the script as a new user.
Save the test script and give it a try. Okay, this time my script failed. I got the error Process PORTAL_CSS not found in Process list. This was on early version of 8.51, pre 8.51.12. There is a knowledge article on Oracle Support indicating there were various issues with Process.Run prior to 8.51.12. Since this is the only process to run on this page and defaulted as selected I removed the prcname=PORTAL_CSS; leaving just the wait=true; I saved and retested and it worked! There are errors in the script but it worked because the error was not fatal and since the process was selected by default (being the only one on the page) it still ran and monitored it. This problem is fixed probably in 8.51.12+ I know I no longer have the problem on 8.52 environments.
The 8.52 Differences
Generating the script in 8.52 should be a little easier. In 8.52 the recorder can automatically generate the Page.Prompt and populate the Menu.Component.Market and it will put update in the value column. I recommend changing this to “add update” as we did above. But your mileage may vary with this. First, it seems to require navigation using the drop down menu. If you use the pagelet menu and the Navigation collections it won’t populate it. It seems like it can stop working sometimes and I would have to restart the browser to get it to work again. You still need to add the Process.Run step, it will still detect them as Button.Clicks and CheckBox.Set_Value steps, but you no longer need to track down the Page.Prompt. It will also automatically inactivate the drop-down menu navigation steps, though it leaves them in the script. This screen shot is of the generated script prior to any manipulation.