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 rule – but 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
Post a Comment