User Interface

 


[Portal 🡪 Harness 🡪 Container 🡪 Section 🡪 Layout]

      Pega is a low-code platform. Low-code describes an application-building development environment that uses graphical user interfaces … (App Studio)

User Interface components:

      Portal rule: [Portal > Harness > Container > Section > Layout]

Is the web channel interface (appeared soon after sign-in to PRPC) that determines the layout and appearance of ‘user and developer workspaces’ and is an instance of Rule-Portal class

       Dashboard: Displays recent operational information about the state of work and processes in Case Manager Portal of PRPC

       Contains single Harness

       OOTB Portals: Developer (Final – can’t be overridden) & pyCaseManager7 (editable)

Developer portal is also called Designer Studio till V7, Dev Studio from V8

       Portal customization steps (using predefined rules):

      Better use the below predefined rules as it is

Access Group > Portal > Harness (Data-Portal) > Header (pyPortalHeader Section) > Left panel (pyPortalNav Section) > Central panel (pyPortalContent Section) > pyDashboard7 (Harness)

      Harness rule: [Harness > Container > Section > Layout]

It defines the work object form (also Rule form & Portal form) of type Rule-HTML-Harness

      Work object forms (also called application related Screens i.e. web pages)

       Harness contains n number of Containers which can again contain n number of Sections which in turn contains Layouts consisting Controls & Properties

       Container is an element to contain n number of Sections in it. When you try to create a harness, default layout is screen layout. A harness can contain only one screen layout

       When you try to create harness it contains a screen layout by default. We can change it as Container by drag drop it from Structural menu

       Harnesses can be nested

       Some of very important OOTB Harness types:

1.      New harness (Flow > Process tab):

🡪    Called in Flow > Process tab

🡪    Gives as brand new screen to capture initial WO (Case) info from user

🡪    Creates Case through Done button by AddWork activity

🡪    NewDefaults stub activity is invoked on New harness renders

🡪    Imp Sections on it: pyEnterCaseDetails / pyNewCaseHeaderInner

2.      Perform harness (Flow > Assignment shape): Allows a user to perform an action on assignment by selecting a Flow action (either Local & Connector actions)

🡪    Called in Assignment shape

🡪    Updates Case through Finish Assignment activity called in its submit button

🡪    PerformDefaults stub activity is invoked on Perform harness renders

🡪    Imp Sections on it: pyCaseActionArea

3.      Confirm harness (Flow > Process tab): Gives read-only confirmation display of WO (like acknowledgement)

🡪    Called in Flow > Process tab

🡪    Gives read-only confirmation display (like acknowledgement)

🡪    Confirmation text can be customized by Assignment shape itself

4.      Review harness: It appears when try to open the pending WO

🡪    Gives read-only info of the Closed Case

5.      Reopen harness: It appears when try to open the closed WO

🡪    It reopens resolved Case

      Section rule: [Section > Layout > Cells]

It defines the content as reusable horizontal component (portion) appeared on the Harness, is of type Rule-HTML-Section

       General path to create Section rule:

🡪    Create menu > User Interface > Section

🡪    Enter Label & Identifier

🡪    Enter Context (Application, RuleSet Name, RuleSet Version & Class)

      Follow the same path to create any other rule

       Section contains Layouts (n number), that in turn contains n number of cells (Controls & Properties)

      Controls (as front end) represent HTML & Properties (as back end) represent Variables

      Caution: Controls & Properties must be compatible

       Sections can be nested

       Layout (an element, not a rule):

🡪    Layout is a UI element that aligns (organizes) the controls and properties within a section through Cells

🡪    Layout behavior is defined through its Properties panel & Cell behavior is defined through its Cell Properties panel

         Some of its characteristics (Attributes) for both Fields & Layouts are like –

Label / Place holder [A symbolic value (in grey mode) used in place of a real value] / Helper text (formerly Tooltip) / Visibility / Disability / Required / Localize (language specific, ex: à°šిà°°ుà°¨ాà°®ా for address field) / Read only / Width / Min / Max / Text align (left or right) / Container & Label formats / Actions against Client events

Colors / Images / Icons / Menus & Navigations / Nested Layouts & Sections

      Place holder: The short hint is displayed in the field before the user enters a value

      Helper text (formerly Tooltip):  The short hint is displayed over the field when you hover over it

      Visibility: It shows or hides the field

      Disability: Can’t be usable and clickable

      Localize: Language specific

         Some of its Layout characteristics are like –

      Layout format: Aligning the fields into column structure

Inline: Column after column format

Inline grid double: 2-Column format

Inline grid triple: 3-Column format

      Container format: Box format (like Colors, paddings …)

      Pagination (also Paging): is distributing records across pages within a Web page [Appears in repeating dynamic layouts only]

      the sequence of numbers assigned to pages in a book or periodical within a page (container page)

      Defer load contents: To delay loading at run time

       Types of Layouts:

1)      Dynamic Layout: Horizontal - Responsive behavior (HTML5 feature) through its <Div> tag

2)      Column Layout: Vertical - Responsive behavior

3)      Repeating Layouts:

🡪    Table (Repeating Grid Layout): To hold list of records in embedded format [through its <Table> tag of HTML]

🡪    Repeating Dynamic Layout: To hold list of Sections in embedded format [through its <Div> tag of HTML]. So it can be used for all devices for responsive behavior (adjusted according to screen size)

4)      Layout Group:

 

 

🡪    We can group other layouts, Sections, Accordions, Menus, Mobile tabs etc…

1.      Layout Group (Accordion): only one Section is expanded at a time while remaining are collapsed (All Sections in it are in row format)

2.      Layout Group (Menu): All Sections in it are in dropdown format as menu options

3.      Layout Group (Tab): All Sections in it are in tabbed format

5)      Screen Layout: Used in Portal Harness

🡪    It defines the overall structure of Portal Harness (single screen in the Portal). When you try to create harness it contains a screen layout by default. A harness can contain only one screen layout

🡪    Screen layout (default) is used define the overall structure of Portal Harness (single screen in the Portal development). whereas Container is used to define our Screen (application related web pages) structure

6)      Free form Layout: Deprecated, fixed columns

7)      Smart Layout: Deprecated, free columns – but not flexible

       Sections are usually defined in Data- classes (not in work classes)...

a)      Create Data class and create Section in it

b)      Create a Page property in work class and specify the above Data class as Page definition

       Use this Data class Section in our Work class Section by Page context & better map (initialize) .pyLabel = “ “ in Data Transform  to load Section on UI

      Control rule (front-end) in Pega:

Defines the presentation style of the Property and is of type Rule-HTML-Property – whereas Property rule (as back-end) is just like a variable that stores the data

       Some of important Controls (called HTML elements):

🡪    Text boxes, Text Areas, Button, Links …

🡪    Checkbox: Single selection of TWO choices

      To configure slider Checkbox button as:

Use CSS class (in Cell read-write classes field): iOS iOS-slider or right-aligned phone ios-slider or iOS rf

🡪    Radio buttons: Single selection of FEW choices

🡪    Dropdown: Single selection of fixed LIST choices (LOVs)

Note: Cascading dropdown list is a series of dependent dropdown list controls in which whenever the parent dropdown changes, the dependent child dropdown should be updated & refreshed automatically with corresponding LOVs

🡪    Auto complete: Single selection of HUGE choices (LOVs) with a partial list of text-matched choices

🡪    Accordion: is the UI control through which only one Section is expanded at a time while remaining are collapsed

🡪    Tooltip Control (in V8):

It shows the section as a pop-up Smart Info (with dynamic data) on mouse hover

Note:

Smart Label Control (prior to V8) is replaced by Tooltip Control (in V8) whereas

Tooltip Control (prior to V8) is replaced by Helper Text Control (in V8)

Clickable check box: It provides the close button on pop up to get it closed

       Caution: Controls & Properties must be compatible

      Property rule (as back-end): Just like a variable that stores the data temporarily in Clipboard page (later it gets saved into db), is an instance of Rule-Obj-Property

Ex: Emp ID, First Name, Last Name, DOB, Age …

       The default format of DateTime (on Clipboard):

20210713T032301.331 GMT [i.e. “dd/MMM/yyyy hh:mm:ss” “IST”]

      Field Value rule: To make applications Language specific (Localization) such as defining the Labels, Place holders, Captions, Helper texts, Tooltips, LOVs etc., is an instance of Rule-Obj-FieldValue

o   Localization (or Internationalization): It defines the Application in local languages for target users using Filed Value rules. It’s symbolic expression is i18n (18 = 18 letters)

      Skin rule: It defines the presentation of content in Application & generates the CSS styles, and of type Rule-Portal Skin

       Mixin (Reusable style variables): is a combination of typography (style and appearance of printed matter), border, and background styles and can be used everywhere in the Skin

      Navigation rule:

       To define the structure of Menu bar as multi-level links, is of type Rule-Navigation

       Provides the list of multi-level links as Menu bar structure such as Button menu, Link menu

       Each Navigation rule represents one Level

      Paragraph rule: It provides rich-text editing to include it in Section, Correspondence, Smart Label control so on, of type Rule-HTML-Paragraph

      HTML rule (Hand coded complete HTML form):

To define the screens completely with hand coded HTML or JSP, of type Rule-Obj-HTML

      HTML Fragment rule (Hand coded reusable piece of HTML form):

Is just like 'HTML Rule' but it is reusable piece of code (HTML, Java Script, CSS, JSP), of type Rule-HTML-Fragment

       Stream Processing:

      Conversion process of UI rules (from d/b) into HTML Forms (to end user)

      Best practice is to organize the fields into n number of Sections to avoid Stream processing issues

Comments

Popular posts from this blog

Good to know things before attending Interviews

Properties in Pega

Learning Pega for Beginners