Understanding PeopleCode Behavior and Limitations

Note the behavior and limitations discussed in this section when you write PeopleCode for a component interface.

PeopleCode events and functions that relate exclusively to the graphical user interface and online processing cannot be used by component interfaces. These include:

  • Search dialog processing.

    When you run a component interface, the SearchInit, SearchSave, and RowSelect events do not fire. This means that any PeopleCode associated with these events will not run. The first event to run is RowInit.

  • Menu PeopleCode and pop-up menus.

    The ItemSelected and PrePopup PeopleCode events are not supported. In addition, the CheckMenuItem, DisableMenuItem, EnableMenuItem, HideMenuItem, and UncheckMenuItem functions are not available.

  • Transfers between components, including modal transfers.

    The TransferPage, DoModalPageGroup, and IsModalPageGroup functions cannot be used.

  • Dynamic tree controls.

    Functions related to this control, such as GetSelectedTreeNode, GetTreeNodeParent, GetTreeRecordName, RefreshTree, and TreeDetailInNode cannot be used.

  • ActiveX controls.

    The PSControlInit and PSLostFocus events are not supported, and the GetControl function cannot be used.

  • DoSave() and DoSaveNow().

    The DoSave() and DoSaveNow() pcode functions are not supported. You should use the component interface Save() method and wrap the DoSave() and DoSaveNow() functions so that they do not execute when called from a component interface.

  • Functions that are ignored in a component interface call.

    Some PeopleCode functions are ignored if they are called through a component interface. These functions are:

    • WinMessage

    • CheckMenuItem

    • DisableMenuItem

    • EnableMenuItem

    • HideMenuItem

    • UncheckMenuItem

    • SetCursorPos

    • TransferPanel

    • TransferPage

    • DoModalComponent

    • IsModalComponent

    • DoModalPanelGroup

    • IsModalPanelGroup

    • GetSelectedTreeNode

    • GetTreeNodeParent

    • RefreshTree

    • TreeDetailInNode

    • GetControl

    • DoSave

    • DoSaveNow

    • Gray

    • Ungray

In previous PeopleSoft releases, CopyRowset* functions for component interfaces were not sensitive to the language code on PSCAMA. Because of this, related language processing did not take place when language code on PSCAMA was different from the base language code. PeopleSoft now detects the language code in PSCAMA.

Component interfaces can run on either the client or the server. By default, a component interface runs on the server. It runs on the client only if the code calling the component interface is running on a client machine.

Component interfaces must run either entirely on the server or entirely on the client. To ensure this runtime restriction, component interface references declared in PeopleCode must be declared as local, not global, variables.

Some built-in functions are always client-only; others are client-only under specific conditions.

Some built-in functions behave differently when used in three-tier mode, as opposed to two-tier mode.