peoplecode

Upload: jasonpaul81

Post on 04-Jun-2018

218 views

Category:

Documents


0 download

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

    [email protected]

    mailto:[email protected]:[email protected]:[email protected]:[email protected]