peoplecode
TRANSCRIPT
-
8/13/2019 PeopleCode
1/12
USM RegionalOracle/PeopleSoft
Conference
June 8, 2007
Object-Oriented PeopleCode
-
8/13/2019 PeopleCode
2/12
Object-Oriented PeopleCode
How to use object-oriented
PeopleCode to manipulate data in
the component buffer.
Understanding the four object
classes that are used to "traverse
the buffer": Rowsets, Rows,Records, and Fields.
-
8/13/2019 PeopleCode
3/12
Data Buffer Access Classes
What is a Rowset Object?
What is a Row Object?
What is a Record Object?
What is a Field Object?
-
8/13/2019 PeopleCode
4/12
Data Buffer Access Classes
-
8/13/2019 PeopleCode
5/12
Functions, Methods, and Properties
Function( )
GetLevel0( )
.Method( )
&RSLevel2.GetRow(12)
.Property
&FldEmplid.Enabled = False;
-
8/13/2019 PeopleCode
6/12
Longhand and Shorthand Notation
Understanding both longhand
notation and shorthand notation -- A
four-step recipe to convert fromlonghand to shorthand.
Optimizing your code for re-usability
in multiple applications - the benefitsof object-oriented code.
-
8/13/2019 PeopleCode
7/12
Advantages of Object-Oriented
PeopleCode
A different style of programming is
not justified unless it has
advantages.
Object-oriented PeopleCode is
better organized, easier to maintain,
and more reusable than olderprocedural style PeopleCode.
-
8/13/2019 PeopleCode
8/12
Data Buffer Access Classes
&RSLevel2 = GetRowset(Scroll.TRN_CRSE_ENR_XX);
For &I = 1 To &RSLevel2.ActiveRowCount
&RecCourseEnr =
&RSLevel2.GetRow(&I).GetRecord(Record.TRN_CRSE_ENR_XX);
If TRN_CRSE_SES_XX.SESSION_STATUS "A" Then
&RecCourseEnr.GetField(Field.EMPLID).Enabled = False;
&RecCourseEnr.GetField(Field.TRAINING_REASON).Enabled = False;
&RecCourseEnr.GetField(Field.STDNT_ENRL_STATUS).Enabled = False;
&RecCourseEnr.GetField(Field.COMMENTS).Enabled = False;
Else
&RecCourseEnr.GetField(Field.EMPLID).Enabled = True;
&RecCourseEnr.GetField(Field.TRAINING_REASON).Enabled = True;
&RecCourseEnr.GetField(Field.STDNT_ENRL_STATUS).Enabled = True;
&RecCourseEnr.GetField(Field.COMMENTS).Enabled = True;End-If;
End-For;
-
8/13/2019 PeopleCode
9/12
Data Buffer Access Classes
Reusable Code
&TrueOrFalse = (SESSION_STATUS = "A");
&RowCurrent = GetRow();
For &I = 1 To &RowCurrent.ChildCount
&RSLevel2 = &RowCurrent.GetRowSet(&I);
For &J = 1 To &RSLevel2.ActiveRowCount
&RowLevel2 = &RSLevel2.GetRow(&J);
For &K = 1 To &RowLevel2.RecordCount
&RecLevel2 = &RowLevel2.GetRecord(&K);
For &L = 1 To &RecLevel2.FieldCount
&RecLevel2.GetField(&L).Enabled = &TrueOrFalse;
End-For;End-For;
End-For;
End-For;
-
8/13/2019 PeopleCode
10/12
Reusable Code
Put reusable code in a function
library or an Application Package.
Leverage the code across multiple
applications.
-
8/13/2019 PeopleCode
11/12
Reusable Code Function Library
Begin-Function EnableDisable (&RowCurrent, &TrueOrFalse)
For &I = 1 To &RowCurrent.ChildCount
&RSLevel2 = &RowCurrent.GetRowSet(&I);
For &J = 1 To &RSLevel2.ActiveRowCount
&RowLevel2 = &RSLevel2.GetRow(&J);
For &K = 1 To &RowLevel2.RecordCount&RecLevel2 = &RowLevel2.GetRecord(&K);
For &L = 1 To &RecLevel2.FieldCount
&RecLevel2.GetField(&L).Enabled = &TrueOrFalse;
End-For;
End-For;
End-For;End-For;
End-Function;
-
8/13/2019 PeopleCode
12/12
Wrap Up
Questions & Contact Information
Tim Burns
mailto:[email protected]:[email protected]:[email protected]:[email protected]