Working with Clipboard

 Ø  Clipboard is a server side temporary memory space allocated by the system (App Server) to every active requestor & also acts as debugging aid (Actual data vs. Expected data)

·         Clipboard viewer tool (Ctrl + Alt + B) gives a snapshot (static copy) of clipboard memory

·         Only Properties are available here, no other rulebut indirectly through their Properties

Ø  The data (Property values) is stored in Clipboard as a part of transaction, later saved into database:

Path (to store the data): Clipboard > Thread > Pages > Property value pairs and messages


Path (to save the data):

Clipboard > Save operation (either defer or commit) > Database

·         Syntax of ‘Property reference’ (In programing):

Page1.Page2 … PageN.Property1


·         Properties are always referred with Pages by DOT notation

F Note: Only Properties are referred by DOT notation – except very few (like sometimes Activity rule can also be referred with DOT notation, but with warnings)

Ø  Thread (sequence of instructions): Represents TAB

·         Is a lightweight process to achieve multi-tasking in parallel with other thread

Ex: STANDARD is default thread in Pega.

·         Each tab represents a Thread

Ø  Page Categories are broadly organized into 4:

1.      User Pages category: [top-level pages created by User Input and by Activities]

à Very Important pages: pyWorkPage & newAssignPage

2.      Data Pages category (local data storage): [common sharable data (Cache pages) available] to improve Performance

à Node: Sharable across requestors (Clipboards) in Cluster (Multi-Node environment)

à Requestor: Sharable across Applications (across multiple Threads)

à Thread (not like so called Clipboard Thread): Sharable WITHIN Thread (Work Objects)

3.      System Pages category: [Created by System soon after Sign-in to PRPC]

à OperatorID & pxRequestor & pxProcess

4.      Linked Property Pages category:

Ø  Page: Temporary Java object (at run time)

·         A page is a data structure (mixed type of data) that holds Property name-value pairs and Messages (errors) as well

·         Page stores the run time info

·         Each page has a Name & Class associated with it, otherwise we can’t use it in Programs

·         Be cautious about Page names that are Unique and case sensitive with in threads but may repeat across threads.

·         Pages can be created by system and developer also.

·         Pages can be seen in XML, JSON structure as well.

·         Embedded page is the clipboard page i.e. the child of another page.

·         Some of possible actions performed on the pages:

1.      Set the values across pages i.e. Mapping / Making nulls / Calculations / Computations / Iterations …

2.      Set the pages: Copying / Merging / Saving into DB / Locking / Removing …

3.      Searching Pages & Properties

4.      Page operations like Create, Update, Save, Delete, Refresh

5.      Viewing in XML, JSON formats …

·         Syntax of Page (In programing): Page1.Page2.Page3…Property1

·         Important OOTB (predefined) Pages are:

1.      pyWorkPage (Permanent tasks): Flow class

à Is the top level page where current Work Object info is available across work progress (Flow Progress)

à Created when Starter Flow triggers (by CreateWorkPage activity)

à This same page is updated & available across Case Life cycle

à Always associates with Flow class & its data stores in CG table (Work- family)

2.      newAssignPage (Pending tasks):

à Is the top level page where current Assignment info is available

à Created when Assignment shape reaches

à It is always associated with relevant classes Assign-Worklist &  Assign-Workbasket (pc_assign_worklist or  pc_assign_workbasket)

3.      pxFlow: Is the top level page where current Flow Shapes info is available

à pyWorkPage > pxFlow >  pyFlowPath … > pyStepType

4.      Code-Pega-List page (created by system):

à Is the top level page where incoming embedded info (child of another page) is available (which is read only) on its pxResults page list

à Note: But our outgoing embedded info is available on our custom page list

5.      Primary Page: Is the page created in the same class as activity rule

F Primary page is varied based on the context

F Remember all unit testing results are available on STANDARD thread only

Note: Unit testing only for developers

Ex:

1.      RunRecordPrimaryPage is the primary page where unit testing results of programs are stored

2.      pyTempWorkPage is the primary page where unit testing results (preview) of UI are stored

3.      pyWorkPage is the primary page of current WO info

4.      newAssignPage is the primary page of current Assignment info

·         Parameters : Parameters are just like properties but temporary to reuse programme globally by passing the values referred by keyword “Param” (Case insensitive)

·         Parameters page has nameless and classless

Note: parameters can be traced in tracer only not in clipboard because it has no class associated

Ø  To view (find) others Clipboard or even Tracer:

1.      Portal of other (ex: Manager) > right click > View page source > Search ‘pxclientsession’ & copy requestor id from this ‘pxclientsession’

2.      Update Clipboard or Tracer URL (of developer user)’ with this Requestor ID (by replace developer’s Requestor ID at end). Now run it

3.      Make sure other user must have PegaRULES:SysAdmin4 role for temporary purpose, otherwise we can’t debug

Comments

Popular posts from this blog

Good to know things before attending Interviews

Properties in Pega

Learning Pega for Beginners