<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=PeopleCode</id>
	<title>PeopleCode - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=PeopleCode"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=PeopleCode&amp;action=history"/>
	<updated>2026-05-07T18:20:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=PeopleCode&amp;diff=2865569&amp;oldid=prev</id>
		<title>imported&gt;Runabout5921: Added short description</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=PeopleCode&amp;diff=2865569&amp;oldid=prev"/>
		<updated>2025-03-07T21:10:36Z</updated>

		<summary type="html">&lt;p&gt;Added short description&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Proprietary programming language}}&lt;br /&gt;
{{multiple issues|&lt;br /&gt;
{{More citations needed|date=April 2014}}&lt;br /&gt;
{{notability|date=January 2014}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox programming language&lt;br /&gt;
| name                   = PeopleCode&lt;br /&gt;
| paradigm               = [[Multi-paradigm programming language|multi-paradigm]]: [[Object-oriented programming|object-oriented]], [[Imperative programming|imperative]]&lt;br /&gt;
| developer              = [[Oracle Corporation]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PeopleCode&amp;#039;&amp;#039;&amp;#039; is a proprietary [[object-oriented language|object-oriented]] programming language used to express [[business logic]] for [[PeopleSoft]] applications. Syntactically, PeopleCode is similar to other programming languages, and can be found in both loosely-typed and strongly-typed forms. PeopleCode and its run-time environment is part of the larger [[PeopleTools]] framework. PeopleCode has evolved over time and its implementation through the PeopleSoft applications lack consistency. PeopleCode offers some interoperability with the Java programming language. Definition name references, for example, enable you to refer to PeopleTools definitions, such as record definitions or pages, without using hard-coded [[string literal]]s.&amp;lt;ref&amp;gt;DeLia, Tony et al.  (2001). &amp;#039;&amp;#039;Essential Guide to Peoplesoft Development and Customization.&amp;#039;&amp;#039; &amp;#039;&amp;#039;Manning Publications Co.&amp;#039;&amp;#039; p.260&amp;lt;/ref&amp;gt; Other language features, such as PeopleCode [[data type]]s and [[metastring]]s, reflect the close interaction of PeopleTools and [[Structured Query Language]] (SQL). [[Object-oriented programming|Dot notation]], [[Class (computer science)|classes]] and [[Method (computer science)|methods]] in PeopleCode are similar to other object oriented languages, like [[Java (programming language)|Java]]. Object syntax was an important feature of PeopleTools 8.&amp;lt;ref&amp;gt;DeLia, Tony et al.  (2001). &amp;#039;&amp;#039;Essential Guide to Peoplesoft Development and Customization.&amp;#039;&amp;#039; &amp;#039;&amp;#039;Manning Publications Co.&amp;#039;&amp;#039; p.417&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TOClimit|limit=3}}&lt;br /&gt;
&lt;br /&gt;
==Language features==&lt;br /&gt;
&lt;br /&gt;
===Supported functions===&lt;br /&gt;
&lt;br /&gt;
PeopleCode supports the following types of functions:&amp;lt;ref&amp;gt;DeLia, Tony et al  (2001). &amp;#039;&amp;#039;Essential Guide to Peoplesoft Development and Customization.&amp;#039;&amp;#039; p.375&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Built-in: The standard set of PeopleCode functions. These can be called without being declared.&lt;br /&gt;
* Internal: Functions that are defined (using the Function statement) within the PeopleCode program in which they are called.&lt;br /&gt;
* External PeopleCode: PeopleCode functions defined outside the calling program. These are generally contained in record definitions that serve as function libraries.&lt;br /&gt;
* External non-PeopleCode: Functions stored in external (C-callable) libraries.&lt;br /&gt;
&lt;br /&gt;
In addition, PeopleCode supports methods. The main differences between a built-in function and a method are:&lt;br /&gt;
* A built-in function is on a line by itself, and does not (generally) have any dependencies.&lt;br /&gt;
* A function can be used before instantiating the object.&lt;br /&gt;
* A method can only be executed by an object (using dot notation).&lt;br /&gt;
* The object must be instantiated first.&lt;br /&gt;
&lt;br /&gt;
===Describing Application Class Structure===&lt;br /&gt;
&lt;br /&gt;
* Import any classes that will be used by a class, including the superclass this class extends&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Import PackageName:Superclassname;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A class is defined using the Class construct.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Class Classname [Extends SuperClassname]&lt;br /&gt;
         [Method_declarations]&lt;br /&gt;
         [Property_declarations]&lt;br /&gt;
    [Private&lt;br /&gt;
         [Method_declaration]&lt;br /&gt;
         [Instance_decalarion]&lt;br /&gt;
         [[Constant declaration]]&lt;br /&gt;
     End-class;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The first set of declarations are the properties and methods that are part of the public, external interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Property datatype PropertyName [get][set];&lt;br /&gt;
   Method MethodName ([parameter_list])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The private instance variables, constants, and the methods are declared following the keyword &amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{pre|&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
   Private&lt;br /&gt;
     Instance DataType {{not a typo|&amp;amp;amp;InstanceName;}}&lt;br /&gt;
     Constant &amp;amp;Constant {{=}} {Number {{!}} String {{!}} True {{!}} False {{!}} Null };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* The keyword &amp;lt;code&amp;gt;end-class&amp;lt;/code&amp;gt; follows the declarations of properties, methods, instances, and constants.&lt;br /&gt;
* After the &amp;lt;code&amp;gt;end-class&amp;lt;/code&amp;gt; keyword and before &amp;lt;code&amp;gt;get&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt; definitions or method definitions, declare any variable and functions that will be used by methods.&lt;br /&gt;
* Get and set methods corresponds to properties declared with the get and set keywords.&lt;br /&gt;
* Use a &amp;lt;code&amp;gt;get&amp;lt;/code&amp;gt; method definition to execute PeopleCode that will return a value.&lt;br /&gt;
&lt;br /&gt;
{{pre|&amp;lt;nowiki/&amp;gt;&lt;br /&gt;
   get Propertyname&lt;br /&gt;
    Return {{not a typo|&amp;amp;amp;Value;}}&lt;br /&gt;
   end-get;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Use a &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt; method definition to execute PeopleCode that will change a value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   set PropertyName&lt;br /&gt;
    &lt;br /&gt;
   end-set;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Method definitions are similar to function definitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   method Methodname&lt;br /&gt;
    statements;&lt;br /&gt;
   end-method;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A special case of a method definition is the &amp;lt;code&amp;gt;constructor&amp;lt;/code&amp;gt;.&lt;br /&gt;
* A constructor has the same name as the class and will always run when the class is instantiated.&lt;br /&gt;
* A class that does not extend some other class does not need any constructor.&lt;br /&gt;
* A class that does extend another class must have a constructor, and in the constructor, it must initialize its superclass.&lt;br /&gt;
&lt;br /&gt;
===Executing SQL in PeopleCode===&lt;br /&gt;
&lt;br /&gt;
* Where a &amp;lt;code&amp;gt;SQLExec&amp;lt;/code&amp;gt;(built-in function) only delivers a single row, using the &amp;lt;code&amp;gt;SQL&amp;lt;/code&amp;gt; class you can retrieve and process multiple rows.&lt;br /&gt;
* Instantiate a SQL object with the &amp;lt;code&amp;gt;CreateSQL&amp;lt;/code&amp;gt; built-in function.&lt;br /&gt;
** Use &amp;lt;code&amp;gt;CreateSQL(&amp;quot;SQLString&amp;quot;)&amp;lt;/code&amp;gt; to pass a text string to your SQL object.&lt;br /&gt;
** Use &amp;lt;code&amp;gt;GetSQL(SQL.sqlname)&amp;lt;/code&amp;gt; to get the SQL from a SQL definition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;amp;SQL = CreateSQL(&amp;quot;SQL Statement&amp;quot;,[bind values]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The values for the bind variables can be omitted and supplied later.  For Insert, Update, or Delete commands these values would be supplied using &amp;lt;code&amp;gt;Execute&amp;lt;/code&amp;gt; method.&lt;br /&gt;
&amp;#039;&amp;#039;(If all the necessary input values are supplied, the SQL is executed immediately.)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;amp;SQL = CreateSQL(&amp;quot;SQL Statement&amp;quot;);&lt;br /&gt;
    &amp;amp;SQL.Execute([bind_values]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For a SQL object containing a Select statement, the &amp;lt;code&amp;gt;Fetch&amp;lt;/code&amp;gt; method is used to retrieve the next row from the cursor.&lt;br /&gt;
   &lt;br /&gt;
{{Citation&lt;br /&gt;
  | title = PeopleCode Functions&lt;br /&gt;
  | url=http://www.homemarketeer.com/peoplecode/peoplecode.htm&lt;br /&gt;
  | accessdate = 2008-12-14 }}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[[PeopleSoft]]&lt;br /&gt;
*[[PeopleTools]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
*For further documentation on PeopleCode&lt;br /&gt;
* http://download.oracle.com/docs/cd/E05317_01/psft/html/docset.html (Version 8.49)&lt;br /&gt;
* http://download-east.oracle.com/docs/cd/B31274_01/psft/html/docset.html{{dead link|date=March 2018 |bot=InternetArchiveBot |fix-attempted=yes }} (Version 8.48)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Oracle software]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Runabout5921</name></author>
	</entry>
</feed>