Creating an Unique File Name


If you are working with files or file attachments in PeopleCode, you will typically want to create a unique file name for each user to prevent them from overwriting each others files if files are being stored in the same folder.

Here's a simple piece of PeopleCode that generates a file name prefix with the format OPRID-Date-Time.

Local string &sFilePrefix;
 
&sFilePrefix = %OperatorId | "-";
&sFilePrefix = &sFilePrefix | String(%Date) | "-";
&sFilePrefix = &sFilePrefix | Substring(String(%Time), 1, 8) | "-";
NOTE: the date and time formats will be specific to your region.

The Substring(String(%Time), 1, 8) drops the millisecond component of the time stamp (which is 6 digits long). If you want to include the millisecond component, don't perform the Substring. Also %Time is the database time not the application server time. If you want the application server time use %PerfTime instead. The application server time %PerfTime might be more accurate for file attachments for example.

If you have a number of files per each user, you might want to consider creating a subdirectory for each each operator ID and placing files in there.

The reason for using Operator IDs is that they have a strict format and don't contain any spaces. This isn't the case for run control IDs.

For example you can create run control IDs like these:

  • try saving this \/:*?"<>|
  • rm -r -f /

Not the most ideal file names! That is why run control ID is not used in the file prefix.


Revision #1
Created Tue, Jul 30, 2019 11:55 PM by PeopleSoft Wiki
Updated Tue, Jul 30, 2019 11:58 PM by PeopleSoft Wiki