Pages

Custom Search

App Engine - No Success, All Processing Suspended

Problem:
PSAESRV started service request at 14.29.51 2018-08-14 All Processing Suspended: Restart OPRID=SSHIR, RUNID=SS, PI=9063507 (108,503) Solution:

DELETE FROM PS_AERUNCONTROL WHERE PROCESS_INSTANCE=6368

This will free up the SSHIR run control to be used again, with same OPRID & AE program.
If this program were in Production - we would NOT want to just clear out the run control! With No Success AE programs, the recommended behavior is to look at logs and/or trace files, figure out what the problem was and fix the problem. Then do a Restart of the same Process Instance. 

Invalid related display -- not after control or related to field outside scroll: The page definition has been set up incorrectly.

You are designing the page and all of a sudden you get this error:

Invalid related display -- not after control or related to field outside scroll: The page definition has been set up incorrectly.  

Solution: Make sure that the related-display field comes AFTER the display-control field. To find this out, click on the ""Order"" tab in Application Designer when viewing the page. 

You can click-hold-and-drag the field up or down to position it correctly, in terms of field order. This will NOT physically move the field on the page, but only change the order that the field is evaluated. 

If this doesn't work, you might have some corrupted cache. Log out of any-and-all PeopleTools executables (Appllication Designer, PSQuery, etc.) and clear your local cache, and then try again. 

CREATE CI FAILED (90,6) - Not Authorized (90,6)

Possible reasons:

1. Check that your component interface is included in a permission list that you have access to. Also check that you have access to all possible methods (Get, Save, Create, Cancel, Find). If you delete a component interface through application designer, it is also removed from any associated permission lists so this may be another reason why your new component interface (with the same name) is not authorized any more.

2. Make sure you are not trying to do something in your code that the CI can't do. For example, if your CI doesn't have a create method, you can't set security for it, so you will get a not authorized error if you have code that attempts to perform a create. This is because the authorization error is usually the first error to be displayed.

CI Development FAQ

When should I be using a component interface?

If you need to insert/update/delete data through PeopleCode, and your PeopleCode will require replicating a lot of existing business logic that already exists in a component then a component interface is the best approach. Once you learn how to use them, they will be the fastest and most robust solution for such cases.
If you are performing simple changes, then using a CI becomes overkill as there is an overhead to using a CI on both the system and on development time. Similarly, large amounts of batch processing may be too much for a CI to handle or may be considerably slower using a CI.

When I create my component interface, why can't I see any Getkeys?

The search record for your component does not have any search keys defined. Go back and define search keys as these are used as Getkeys.

Why are my Findkeys missing certain fields?

Findkeys are derived from search and alternate search keys on the component search record. If you have a key but it is neither a search key or alternate search key, then it will not be available as a Findkey.

When I test my component interface, why do I get a "Not Authorized" error?

Check that your component interface is included in a permission list that you have access to. Also check that you have access to all possible methods (Get, Save, Create, Cancel, Find). If you delete a component interface through application designer, it is also removed from any associated permission lists so this may be another reason why your new component interface (with the same name) is not authorized any more.
Also, make sure you are not trying to do something in your code that the CI can't do. For example, if your CI doesn't have a create method, you can't set security for it, so you will get a not authorized error if you have code that attempts to perform a create. This is because the authorization error is usually the first error to be displayed.

When automatically building a component interface, why are some fields missing?

Sometimes application designer gets it wrong. For instance, if the same field exists in scroll 1 and scroll 2, it may put the field in just one scroll level. It may also have problems with certain key/search key/alternate search key fields between the search record and the scroll level records. Normally you just need to check your CI and add any missing fields.

Why does my component interface not have a Create method?

Create is only available if the underlying component allows Add mode. If it doesn't then you can't create anything in the component, and thus you can't create anything using the component interface. The create method will be disabled in the component interface properties.

Can I override my Component Interface methods?

Yes, you can write additional PeopleCode for your component interface methods. Simply go to the method (Cancel, Find, Get, Save, Create), right-click and select view PeopleCode.

My PeopleCode didn't copy any data to a collection. Why not?

Make sure that all the fields that you are copying to in a collection actually exist in the component interface! If any are missing you can get unexpected results or none at all.

My PeopleCode didn't update the value of a field. Why not?

Check that the field is actually in your component interface. Also make sure that the field properties are not set to Read Only Access. (double click on the field in the component interface).

The same field is in different scrolls but they do not have the same value

For example, at scroll 0 you might have the field EFFDT set to 01/01/2009. You want the EFFDT field to get the same value in scroll 1, so you write code to set it from the value in level 0 but it isn't working. If this is the case, check the field name in the component interface, you may find that PeopleSoft has automatically renamed it. For example, it might be EFFDT at level 0 but something like EFFDT_1 in level 1 of the component interface.

What underlying tables define security access to Component Interfaces?

The association between a permission list (CLASSID) and a component interface (BCNAME) is stored in the PeopleTools table PSAUTHBUSCOMP.

What delivered role / permission gives access to all the delivered CIs?

The role is Standard Non-Page Permissions. The permission list is HCSPCMPINT.

I get the error No Rows Exist for Specified Keys

But I have double checked that the key values being passed are correct and exist in the database. What's going on? This could be row level security at work. Don't forget that a CI uses the security implemented by the underlying component. Are you sure that the user running the CI has the appropriate row level security to view the data? Confirm by querying against the search record of the underlying component. Row level security may also be at work if you are getting errors entering valid values into a field where the prompt table relies on row level security.

Error - Not able to update own data

Use AllowEmplIdChg( True); in searchinit peoplecode on emplid in your search record.  You can also use it on Page Activate/Field Change.

Unable to change label properties of push button/hyperlink in Application Designer

I had the issue where when I opened up the Label tab of a push button on a page, the Label Type, Label Size are blank, Label Text shows up as Static Text. When I changed the settings, and clicked OK to save it. The change did not register.
The fix turned out to be to go to the Configuration Manager, then go to Client Setup tab, then check the “Install Workstation” checkbox, click OK or Apply.
Now restart Application Designer, the issue should be fixed now.

XML is invalid error on PeopleSoft Fluid Pages

If you come across an error as " xml is invalid " on any PeopleSoft Fluid Page then it is ocurring because of the fluid page on which grid is placed.

To resolve this follow below instructions -

1. Go to properties of all grids placed on fluid page.
2. Go to USE tab
3. Under Grid Style check Grid Layout
4. If it is 'Classic Grid Layout' then change it to 'Flex Grid Layout'
5. Save the Page.

Migration of Activity Guide


Here are the simple steps of migrating activity guide:

First go to Manage File Locations, click add a new value.  Enter Location Name and the Path and click save.

1. Go to Main Menu > PeopleTools > Lifecycle Tools > Migrate Data > Data Migration Workbench

2. Click on link "Add a New Value"

3. Add a Project Name and Description and click add

4. Add following:

Activity Guide Item (ACTIVITY_GUIDE_ITEM)
Activity Guide List  (ACTIVITY_GUIDE_LIST)
Related Content Service Definitions (RCF_SERVICE_DEFINITIONS)
Activity Guide Task Configurations (Create Manually see post here)

Select values that relate to your activity guide and click "Insert and Return".

5. Click "Copy to File" and select the path location.


Data Set for Activity Guide Task Configuration



Step 1:












Step 2:

Step 3:

 Step 4: Add all records as shown in the picture:

Step 5: Hit save.










Add URL inside the Message Catalog

We have usually find ourselves in a situation where we have to add URLs inside the message catalog. Here is a very simple way to do it:

Step 1. Add HTML Area on the page. I usually select value field and assign it a work record and a field name. Check on HTML Tags Only.

Step 2. Create message catalog but where you need to add the link, use html tags. I usually do this way under description:

<p>We are creating link to <a href="gmail.com">gmail</a> from message catalog</p>

Step 3. Use Peoplecode on page activate to get the text and the link:

Record.Field.Value = MsgGetExplainText(Message Set, Message Number, "");

PS: You can change the font size, font style anything....

How to remove Line feed or Carriage return from varchar or nvarchar column in MYSQL?


This is a rarely asked question, however, I just got encountered with this situation. Answer is pretty simple:

select replace(theColumn, char(13) + char(10), '') from yourTable 

This will remove CRLF if both carriage return and line feed is present.

or 

This will return if there is either one of them or both (CRLF).

select replace(replace(theColumn CHAR(13), char(32)), CHAR(10), char(32)) from yourTable
or 
select replace(replace(theColumn CHAR(13), ''), CHAR(10), '')) from yourTable

Here are some terms you may want to remember:

Control character

ValueTab    char(9)

Line feed    
char(10)
Carriage return   char(13)