E-PC: PeopleCode API NumberToString() is failing when trying to convert 1E31 and higher

(Doc ID 2312332.1)

Last updated on OCTOBER 04, 2017

Applies to:

PeopleSoft Enterprise PT PeopleTools - Version 8.54 and later
Information in this document applies to any platform.

Symptoms

PeopleCode API NumberToString() cannot handle 1E31 and higher, even though API IsNumber() considers them numbers.

When trying to convert 1E31, 1E32, 1E33, using PeopleCode API NumberToString(), Application Engine PeopleCode errors out.

The reported issue is replicated, on Application Engine PeopleCode (2-tier) and Online processing (3-tier - tested using the code in FieldChange event).

 

It replicates in 2-tier, using Application Engine PeopleCode.

It replicates in 3-tier, when web and app servers are installed in a notebook (Windows).

It does not replicate in 3-tier, if using web and app servers installed in a server (OS: Linux).

 

PT8.54 issues Error when trying to convert 1E31, 1E32 and 1E33 (1E34 and above are not considered numbers):
8476: 1506619824: PSPAL::Abort: Unrecoverable exception received
8476: 1506619824: PSPAL::Abort: Location: E:\pt85410b-retail\peopletools\src\pspal\exception_winunhandled.cpp:592: PSPAL::UnhandledExceptionFilter::UnrecoverableExceptionFilter
8476: 1506619824: PSPAL::Abort: Abort diagnostics generation is currently disabled
8476: 1506619824: PSPAL::Abort: Terminating process now.

PT8.55 and PT8.56 error out without logging anything in the log file.

For all the Tools versions mentioned above:

- The error is recorded under PeopleTools > Application Engine > Manage Abends

 

To Replicate:

Create dummy Application Engine with Peoplecode that uses NumberToString. For example:
Local string &strTest;

&strTest = NumberToString("%08.0t", Value("1E31"));
&strTest = NumberToString("%08.0t", Value("1E32"));
&strTest = NumberToString("%08.0t", Value("1E33"));

Execute the Application Engine in 2-tier.

Note that the error does not replicate when trying to convert 1E30 and lower.


To Replicate in 3-tier:

Create a dummy page with 2 character fields (10/50 chrs).

On the 10 chrs field enter 1E30 and use the same PeopleCode API NumberToString in the field change event to populate the other field.

Once the code works, try any of the 1E31 through 1E33.

The session will be terminated.

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms