130 likes | 546 Views
Object-Oriented PeopleCode. USM Regional Oracle/PeopleSoft Conference June 8, 2007. Object-Oriented PeopleCode. How to use object-oriented PeopleCode to manipulate data in the component buffer.
E N D
Object-Oriented PeopleCode USM Regional Oracle/PeopleSoft Conference June 8, 2007
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.
Data Buffer Access Classes • What is a Rowset Object? • What is a Row Object? • What is a Record Object? • What is a Field Object?
Functions, Methods, and Properties • Function( ) • GetLevel0( ) • <object>.Method( ) • &RSLevel2.GetRow(12) • <object>.Property • &FldEmplid.Enabled = False;
Longhand and Shorthand Notation • Understanding both longhand notation and shorthand notation -- A four-step recipe to convert from longhand to shorthand. • Optimizing your code for re-usability in multiple applications - the benefits of object-oriented code.
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 older procedural style PeopleCode.
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;
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;
Reusable Code • Put reusable code in a function library or an Application Package. • Leverage the code across multiple applications.
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;
Wrap Up Questions & Contact Information Tim Burns tim.burns@io-consulting.com