People code is a language like other languages with it’s own DataTypes , Statements.
Every People Code program is associated with an Application
Designer component and with an event.
Peoplecode Locations: Record Fields , Menus ,
Components Pages , Business Components , Application Messages
, Application Engine.
Data Types
NUMBER,STRING,DATE,TIME,DATETIME,ANY
Scope :
Local
Variables
Global
Variables
Component
Variables
Other Variables :
System
Variables
Derived/Work
Fields
Syntax for declaration:
<scope>
<type> &<variable_name>
Local Variables :
Temporary memory location that holds the value.
Global Variables :
Exist for the
complete session and are used to transfer values between panel groups.
Session means signin to signout is called session
Component Variables :
Exist for the duration of the current PS component.
Used to transfer values between programs on the same
component
System Variables :
Internally maintained
and can be referred by the people code any time.
Begins with %.
Ex : %Date ,%Time
,%Page ,%Menu,%Component,%DBName,%Mode etc...
Derived/Work Fields :
Used when we need to pass values from one program to another
without the field values being
stored in the database.
Existence limited to the current component.
They are usually display only fields on a page or have them as invisible fields on the page
User Defined Variables:
Variables which are defined by developers starts with &.
Operators:
Mathematical : + ,- ,* ,/ ,** , |
Comparison : = ,!= ,<> ,>= ,<= ,< ,>
Logical : NOT ,AND ,OR
Functions:
User defined functions
Built-in Functions
User defined function:
Internal Peoplecode
Functions that are called directly from the same program
where the function was defined without the declare function statement.
External PeopleCode
Stored as Function Libraries( derived/work records named
with prefix “FUNCLIB_”
convention is define these functions in the FieldFormula
Event.
Syntax for defining or writing a function
Function <function_name>
(<param1,<param2>....)
stmt1;
stmt2;
return
<expression>;
End-Function;
Syntax for Declaring a Function
Declare Function <function_name> PeopleCode <Record_name.FieldName>.FieldFormula.
Built-in Functions:
Component Buffer
Used to modify,update,hide fields in the buffer area.
ActiveRowCount,AddKeyListItem,CompareLikeFields,ClearKeyList,
ComponentChanged,CopyFields,CopyRow,CurrentLevelNumber.
Conversion
Char,Code,Codeb,ConvertChar,String,Value
Current Date and Time
%CurrentDateIn,%CurrentDateOut,%CurrentDateTimeIn,
%CurrentDateTimeOut,%CurrentTimeIn,%CurrentTimeOut
Database and platform
%DbName,%DbType
Data Buffer Access
CreateRecord,CreateRowset,FlushBulkInserts ,GetField,GetLevel0 ,
GetRecord ,GetRow,GetRowset
Date and Time
Used to calculate and manipulate dates
AddToDate,AddToDateTime,AddToTime, Date,DateValue
Day,Days,Days360,Days365
String Functions
Used to manipulate character Strings.
Number Functions
Used to manipulate numeric values
Security Functions
Used for security purpose.
Data Buffer access Classes
Field ,Record ,Row ,Rowset
Field Class
Attributes : Name,Enabled,Type
Methods :
GetLongLabel,SearchClear,SetCursorPos
Built-In
Functions: GetField.
Record Class
Attributes : Name ,IsChanged ,FieldCount
Methods :
CompareFields,CopyChangedFieldsTo,CopyFieldsTo
Built-In
Functions: GetRecord
Row Class
Attributes : Visible ,IsChanged
Methods : CopyTo ,GetNexteffRow.
Built-in
Functions : GetRow
RowSet Class
Attributes : ActiveRowCount
Methods : CopyTo ,DeleteRow ,Fill
Built-in
Functions :
CreateRowSet,GetLevel0,GetRowSet
Statements in PeopleCode
Branching Statements
if Statement:
syntax: if <condition>
stmt1;
else
stmt2;
end-if;
Evaluate Statement
Evaluate <field or variable>
when = <value1>
stmt1; break;
when = <value2>
stmt2;
break;
when-other
stmt3;break;
End-Evaluate;
For Loop
For
<&variable> = <start-value> to <end-value>
[Step stepvalue>]
stmt1;
stmt2;
End-for;