Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Read First 1. Introduction Intro: Views - Small, but Useful Helpers What is an iView? Identifying iViews Golden iView Rules - The iView Dos and Dont's
q q q
2. Examples for iViews Classification of iViews Alert iView Report iView Application iView Text iView Chart iView Graphic iView Generic iViews
q q q q q q q q
3. Framework and Layout iView Containers - Trays Tray Sizes and Arrangement Layout Hierarchy - Nesting Rules Layout within iViews HTMLB Library - Overview HTMLB Controls - Visual Overview Chart Types - Overview Personalizing iViews Visual Design Aspects
q q q q q q q q q
4. iView Interaction Complexity Saving Space and Reducing Complexity Navigation Scrolling Buttons Fields
q q
q q q q
Menu
q q
q q q q q q
Texts, Lists, Links PortalDataViewer, HTMLB Table View, and Tables Graphics and Charts Selecting Views Filtering Data - The Shuffler Icons and Status Information Messages Help and User Support
References
First, there are the SAP developers: They create iViews using tools and techniques provided by SAP, such as HTMLB and the SAP portal framework. These readers want to know what is available and how they can use it. Here they find the look and feel information and guidelines on how to design user-friendly iViews. Technical issues are covered by other SAP information sources for developers (see above). A second important group of readers are developers outside SAP who want to become part of the iView community and who also want to develop iViews for the SAP portal environment. These developers often cannot use the tools and techniques that SAP developers have at their disposal. These guidelines show them how iViews should look like, that is, which screen elements can be used in iViews, and how iViews should be designed using such building blocks. Thus, even though the technical basis and approach may be quite different from that of the SAP developers, these guidelines help this audience to achieve the same look and feel for iViews. There are also developers outside SAP who can use the SAP tools and techniques; for these readers most of the information applies that is relevant to SAP developers. Finally, there are developers inside SAP who want to go beyond the possibilities provided by SAP tools and techniques. These SAP developers are in a similar position as outside developers who have no connection to SAP tools. They, too, can use these guidelines as source of information on how screen elements should look like and be interacted with - irrespective of whether these are available or not.
Note: The design examples in these guidelines tell developers how iViews should be designed - they do not necessarily mean that ready-made SAP solutions already exist for these examples, although in this edition of the iView guidelines we try to stay within the available options. Disclaimer: The images presented in these guidelines are for reference only. They are not exact to the detail with respect to exact pixel sizes and spacing, RGB color values, etc. These characteristics may also change without notice, depending on the evolution
file:///F|/resources/ma_guidelines_3/read_first.html (1 of 2) [03.12.02 10:14:47]
of the HTMLB library and the SAP Portals portal environment. For exact details, please refer to the HTMLB documentation. Status This edition is based on the HTMLB library used for SAP Portals Enterprise Portal 5.0. In some cases, we provide previews of what is to be expected in Enterprise Portal 6.0 or later. The SAP iView Guidelines will be updated as necessary. Version 1.0, May 2002
Introduction | Essential Design | Important Things First! | Information about Work Context and Business-Related States | The Right Information for the Right Decision | iViews | Personalizing and Role Fit
Introduction
The challenge for the next years will be - apart from further improving and simplifying software applications - to provide and process knowledge. Computers shall not and will not make intelligent decisions on their own, but are meant to provide humans with the necessary information in an optimal fashion. The SAP portal environment with its iViews takes a first big step into this direction by providing and integrating role-specific knowledge from various information sources. iViews reside in the content area or work space of the portal and typically occupy far less screen space than usual applications. The small containers (called trays) that host iViews are collapsible and expandable. Thus, users may hide less important or currently not used iViews and show them again as needed. Vertical scrolling within the portal allows users to quickly position on a wanted iView without the need for closing other iViews. This navigation principle is efficient for and suited to Internet browsers, because users can switch between iViews without experiencing disturbing page reloads.
Essential Design
Interaction design for iViews places a high burden on application developers, because design has to focus on the essentials. This requires in-depth knowledge of a user role's needs and to set adequate priorities. Though it is often hard to reduce functionality and information to the essential, such reduction is the real advantage of iViews over conventional applications: Risking to lose additional information also emphasizes what is really important for users. This general design rule is valid for any application, but even more so for iViews. iViews are set apart from other applications by being less complex. An iView's content and "message" must be grasped at one glance. Interaction should generally be restricted to one screen only. It is not the goal of iViews to squeeze rich functionality into a small screen area. Instead, developing iViews means to create new, simple applications - applications that have more the character of information providers and that cohabitate with other, modular iViews in the SAP portal environment. If your iView takes more screen real estate than a fourth of the portal, consider either
q q
to redesign the iView so that it takes less space, or to convert your iView to a Web application (IAC = Internet Application Component) or other application type
Reducing design to the essentials has positive side effects. Fewer screen elements and fewer decorative elements reduce the complexity of the screen and help users to find relevant information faster. See How to Make iViews "Mini" and Less Complex for tips on saving space!
by directly providing useful and role-specific information on the entry screen of the SAP portal environment - instead of hiding this information deeply inside applications. They do not require users to enter even more data, but offer useful information. But how do we know which information is regarded as useful by a certain user? The answer is: Any information is useful that is connected to the goals of a task and that is suitable to support decision making. Much too often applications only copy the observed task steps, but forget to provide information that enables users to decide whether and how they will take actions in order to achieve a certain goal. Therefore, it is imperative for successfully designing applications to visit customers and to get into direct contact with end users - only this ensures that developers get a clear and correct picture of the goals and responsibilities of a user role. Based on these observations, the users' primary information needs can be easily derived.
It is obvious that iViews will not replace ordinary applications. But iViews should cover the users' primary information needs without forcing them to call applications. iViews are like previews on applications or collect data from predefined reports which cover 80% of the needs of a certain role.
Mini Tools
Apart from the above-mentioned information-oriented iViews, such iViews should populate the workplace that provide often used functionality like simple and easy to use tools. For example, an iView could convert currencies or units, or allow data transfers that are reduced to the very minimum, such as the booking of a routine trip. See Generic iViews and Identifying iViews for examples of such mini tools and approaches to identifying potential iViews.
What is a iView?
What is an iView?
Definition
An iView refers to any kind of application, information or service that can be visualized in a Web browser frame. iViews appear in a special container called tray, which offers a certain functionality for using and adapting the iView. iViews are self-contained Web documents that are provided via a Uniform Resource Locator (URL) managed by the SAP portal framework. The resource itself can be anywhere on the Web. Examples of iViews: Alerts, reports, e-mail/calendar, etc. Content - not just a Point of Entry An iView is not simply a point of entry or a entry mask which leads directly to a Website. That is, the iView must offer some content to users and fulfill its raison d'tre within the allotted space. Additional information may be offered as a link and take the user to the provider's Website. For example, if a user enters a word in a dictionary iView, the definition should appear inside the area of the iView. A link to usage examples, similar words, etc. could be provided which would then take the user to the provider's homepage. Added Value An iView should provide the user with some added value, such as customized pushed information, integration with different applications and systems, etc. Integration - Roles, Work Sets, and Tasks iViews on a portal page may be integrated in the sense that they share information or feed one another with information, similar to information cockpits. Such an integration further enhances the work place of a user and provides additional value; as shown below, it can be based on the concepts of user roles and worksets. The whole set of iViews provided in the SAP portal environment depends on the role of the user. Subsets of iViews may be grouped together to form a workset. A workset comprises a complete work intent within a user's role, that is, a set of tasks for fulfilling that intent. Thus, worksets are constituents of a role. Or the other way round: A user role can be regarded as a bundle of worksets, which themselves bundle certain tasks into autonomous units within a role (see figure 1).
What is a iView?
Figure 1: Relation between a role, several worksets and the tasks assigned to worksets
Definition of Workset A workset is usually assigned to a job role. It may also embed other smaller worksets. Tasks are the activities that are performed in the context of a workset. A task can be more or less complex. Some tasks may require a larger set of services, while others correspond to one single interaction step. Depending on this, the workspace design will based on portal pages filled with iViews either give an overview and will provide access to related services or it will directly offer in-place actions. So far, the concept of worksets has been limited to stateless iView collection that are used to deploy and assign targeted content to portal users. In a second step, this concept can be generalized to support instantiated, state-full worksets that represent a current state of a working process. That is, iViews may no longer be stateless but communicate with each other, or depend on each other.
Characteristics
iViews have the following characteristics:
q q q q q q q q q
Stateless: Not permanently connected to the SAP System Embedded: Non-dominant, parallel to other iViews Preview: Provides preview on underlying processes, data Simple: Very limited, one-screen interaction (Palmtop-like) Essential: Includes only key functionality Direct: Provides direct access without navigation Active: Pushes information, refreshes periodically Open: Integrates third-party software Personal: Allows user to modify appearance
What is a iView?
Uses
The basic uses of iViews are to provide information and to accelerate the users' work. Below we present examples for these uses. Information The key message here is to provide data instead of asking for them.
q q q q q
Offer active information Monitor business processes Preview data and processes Display notifications for initiating task-related processes Provide fast access to often used data
Accelerating Work The key message here is to provide simple and efficient services.
q q q q
Provide direct access to simple applications Provide accelerated access to other applications Reduce information and interaction to the necessary Drag-and-Relate: Use outputs (results) as inputs via drag-and-drop between iViews and iPanel
Adaptation
iViews can be adapted to the users' role and needs on a two-level basis. Customization is typically performed by the system administrator for a user role, that is, for a set of users that fulfill the same role in a company. Personalization is carried out by the individual users - they adapt the iViews and portal pages to their personal needs. Customization What the system administrator does for the users (based on user roles):
q q q
Select iViews from a pool of iViews according to a user's role Reduce information unnecessary to a user's role(s) and goals Provide focussed information tailored to a user's role(s) and goals
Select iViews from a pool of iViews (preselected for the role) Provide content for generic iViews Subscribe to content for iViews
Note: Currently, the personalization of an iView beyond its appearance on a portal page has to be handled by the iView itself.
What is a iView?
Identifying iViews
Identifying iViews
How Can I Identify Potential iViews? | Which is a Useful iView, Which iView Does not Make Sense?
Identifying iViews
Example: There is no point in creating an iView that is used for customizing a function once because the user needs such an iView only once and then never again.
Purpose and Basic Behavior | iViews on a Portal Page | Data Processing | Presentation | Navigation | User Support The following "golden rules" capture the essence of iView design.
Provide previews of processes or data Have a very limited, one-screen interaction model and include only key functionality Provide direct access to data or functionality without navigation
Make your iViews as small as possible (but care for the correct iView sizes); do not let your iView occupy the whole portal page Make your iViews distinctive; users cannot find information efficiently in a uniformly looking iView view without any structure
Data Processing
q q q q
Do the primary data selection beforehand Let users apply filters to this "preselected" information to display only the most important bits Offer filters based on attributes (shuffler) instead of selections based on logical operators Break down hierarchical data structures and present items as lists; do not create hierarchical categories where users have to navigate through the category levels
Presentation
q q q q
Use charts or graphics instead of text if these convey information faster and more efficiently to the users Add text to graphics or charts where explanations or exact values are necessary Use text attributes, such as headings or small text to structure textual information If an iView does not yet contain any information (e.g. a list of events iView that has not yet been personalized), use the free space to provide some short explanatory text Use space economically
Navigation
q
iViews typically have only one screen, there should be no screen changes. Exceptions Views that provide a stable frame of reference (e.g. switching views with a shuffler or tabstrip-like mechanism, although tabstrips are not recommended: see Complexity), r iViews that are based on a well-known metaphor like notebooks. r iViews that provide results of a process, such as search (if the result list is small) Provide easy access to more extensive data views and program capabilities. Example: Let the users click on links to access related Web (IACs) or R/3 applications.
r
User Support
q q q q
Save user preferences so that users need not repeatedly perform the same steps for choosing data when they start an iView Provide personalization capabilities (see Personalizing iViews and What is an iView? for details and current restrictions) Avoid error messages More importantly: Prevent errors! There should be no errors in iViews
Classification of iViews
Classification of iViews
Classification Based on Typical Usage | Classification Based on Interface Elements iViews may cover a wide range of applications. To structure the manifold potential types of iViews, this page attempts to classify iViews according to two different criteria: (1) the typical usage scenarios, and (2) the dominant interface element. The following pages present examples for iViews based on the dominant interface element; these are the alert, report, application, text, chart and graphic iView. Further you can classify Views with respect to whether they are specific to a certain task or user role, or whether they are general in scope and may be used in a variety of contexts and roles. The latter class is called generic iViews. See page Generic iViews for an overview of potential generic iViews.
Reports (tables, graphs) Ad hoc queries Quick directories Top ten Monitors (real-time reports) Cockpits (multiple connected graphs and tables)
Information
q q q q q q
Messages (transient) Communication (permanent) Workflow inbox Notifications News, information Advertisements
Containers
q q q q q q
Links as short cuts MyObjects Favorites ToDo On-Hold Shared team folders
Applications
q q q q q q
Simple data entry apps Previews of full apps Wizards Remote control for devices Time management Tools
Classification of iViews
q
Toys
Alert: Contains status information, e.g. status icons Report: Contains a report (typically a table) or report result (typically a table or chart) Application: Contains form elements, such as fields, selection elements, and buttons Text: Contains larger pieces of text (possibly with graphics and links) Chart: Contains a chart Graphics: Contains an image, diagram, sketch, photo, or other graphical element
We use this classification for the iView examples on the following pages because from an interface and visual design point of view the interface elements are the relevant features of an iView.
Alert iView
Alert iView
Example
Use
An alert iView notifies users of certain critical events. Typically, alert iViews use status icons or graphics in order to attract attention and guide it to the relevant information. Note: See Icons and Status Information for details on status information. See SAP Reference Lists in the SAP Design Guild for a complete list of status icons..
Look
The alert information should comprise the main part of the iView. Typically, alerts are arranged in tables, but this need not be the case. Alert information can also
q q
If there exists a related Web application (IAC), place a right-aligned button below the table to allow users to call the application.
Report iView
Report iView
Example
Use
A report iView displays a report, typically as a table, or report results; these may also be a table or a chart (see Chart iView).
Look
The table should comprise the main part of the iView. Order of Screen Elements
q
q q
A filter of shuffler can be placed above the table, if data can be selected from several sets or if the amount of data has to be reduced. Then follows the table. Place pushbuttons related to the table below the table and left align them.
r If there exists an alternative chart view, a button below the table allows to toggle between table view and chart view. Place pushbuttons related to the whole iView in the lower left corner. If space is at a premium these buttons may reside in the same row as table-related buttons (see Buttons for details). r If there exists a related Web application (IAC), a button in this group should allow the users to call the application. If there is an emphasized button, it is the leftmost button of the respective button group (table-related or iView-related). There must not be more than one emphasized button!
Report iView
Empty tables are not displayed in iViews. In addition, no space is reserved for the table or for a sentence, such as "No entries found". Exception: There is one exception to this rule: Tables where users can immediately enter data should appear in the intended size and with empty lines. Automatically Generated Tables Tables that are generated automatically by the portal framework may have a different look and behavior than the table view and the portal data viewer.
Application iView
Application iView
Example
Use
An application iView is a small and very simple application where users may have minimal editing facilities. Typically, such applications are small tools that enhance the users' working environment. Note: See Classification of iViews and Generic iViews for examples of application iViews.
Look
An application iView typically contains form elements, such as fields, selection elements (checkboxes, radiobuttons, dropdown lists, ...) and buttons, that is, it may have a "forms-like" look. Order of Screen Elements
q q q
Start with header data, if there are such general data. Then follows the forms-like part of the iView. Place pushbuttons related to the whole iView in the lower left corner. If space is at a premium these buttons may reside in the same row as table-related buttons (or other buttons relating to elements of an iView) (see Buttons for details).
r
If there exists a related Web application (IAC), a button in this group should allow the users to call the application.
Application iView
q
If there is an emphasized button, it is the leftmost button of the respective button group (object-related or iView-related). There must not be more than one emphasized button!
Text iView
Text iView
Example
Use
A text iView displays primarily text information. The text can be structured by using different text attributes (see example above) separating elements like white space and lines (horizontally and vertically)
q q
Text information may contain links that open other applications or Websites within the portal or in separate windows. Text may also be accompanied by graphics, such as photos or charts.
Look
file:///F|/resources/ma_guidelines_3/examples/text_ma.html (1 of 2) [03.12.02 10:15:11]
Text iView
The text should comprise the main part of the iView. Text may also be accompanied by graphics like photos or charts, but the text should remain the dominant element. Typically text iViews do not have buttons.
Chart iView
Chart iView
Figure 1: A horizontal bar chart table; for exact comparisons, the values have been added to the chart.
Use
A chart iView displays data that are relevant for the user in a graphical representation so that the characteristics of the data and their relations are easy to capture for the user. In cases where it is important for users to know the exact values behind the data, an alternate view may present the data in a table as numbers or texts. A button should allow users to toggle between the diagram and the table view. If more data is needed, the iView should call a related Web application (IAC) that displays the data in a larger table or diagram. Note: For an overview of the charts types that are available in HTMLB, see Chart Types - Overview in section Layout and Framework. For more information on charts and their uses see Graphics and Charts in section iView Interaction. For background information on charts see Recommendations for Charts and Graphics in the SAP Design Guild which discusses the use and design of charts at length.
Look
The chart should comprise the main part of the iView.
Chart iView
q q q
A filter of shuffler can be placed above the chart, if data can be selected from several sets or if the amount of data has to be reduced. Then follows the chart. Place legends or other text right to the image or below it, depending on the format of the chart. Place pushbuttons for chart-related functionality and status information (e.g. zoom factor) below the chart and left align them.
r If there exists an alternative table view, a button below the table allows to toggle between diagram and table view. Place pushbuttons related to the whole iView in the lower left corner. If space is at a premium these buttons may reside in the same row as chart-related buttons (see Buttons for details). r If there exists a related Web application (IAC), a button in this group should allow the users to call the application. If there is an emphasized button, it is the leftmost button of the respective button group (chart-related or iView-related). There must not be more than one emphasized button in an iView.
Functionality
Typical functionality, which charts may offer, are:
q q
Switch between chart view and table view Zooming and panning
Legend
Place a legend right to the chart or below the diagram to explain used colors or symbols. For HTMLB charts, the legend is generated automatically and can be hidden or displayed in four possible locations. However, place the legend to the right (preferable) or below the chart.
Graphic iView
Graphic iView
Example
Use
A graphic iView displays a graphical image. This may be a photo, a diagram, or even a sketch. The graphic may also be animated or a video (movie). The graphic should contain the main message of the iView. Text may accompany and explain this message. In iViews graphics should not be used just to illustrate textual information. Note: For more information on graphics see Graphics and Charts; for additional background information see Recommendations for Charts and Graphics in the SAP Design Guild. Examples
q
q q
Photos: Employees (address book of a company), buildings (for brokers), objects for auctions, archives, museums (e.g. plants, animals, furniture, ...) Diagrams: Floor plans (where can I find my colleagues?), street maps, maps, instructional diagrams Sketches: Sketches can be used for fast communication of ideas between colleagues (picture scrapbook), sketches can serve as "raw" or preliminary diagrams or as replacement for diagrams
Graphic iView
q q q
Animated Graphics: For explaining procedures, for fun applications Decorative Images: Postcards to send to colleagues per e-mail (for birthday greetings or just for fun) Cartoons: For fun applications
Functions
For images that are larger than the visible area, provide the following functions. Place the buttons for these functions below the image (see Look). Zooming
q q
Zoom in: Zooms into the image in predefined steps (magnifies centered) Zoom out: Zooms out of the image in predefined steps (shows larger section)
Show the zoom factor! Changing the Visible Section of an Image Changing the visible section of an image with scrollbars is cumbersome. Better offer the possibility to move the image section manually by grabbing it with the mouse (the cursor should turn into a hand over the image). Provide a toggle button for turning "grab" mode on and off. Reset to Default View If zoom or move functionality is provided, also offer a function Reset to default view.
Look
The graphic should comprise the main part of the iView. Order of Screen Elements
q
q q q
A filter or shuffler can be placed above the graphic, if graphics and data can be selected from several sets or if the amount of data has to be reduced. Then follows the graphic. Place legends or other text right to the image or below it, depending on the format of the image. Place pushbuttons for image-related functionality and status information (e.g. zoom factor) below the image and left align them. Place pushbuttons related to the whole iView in the lower left corner. If space is at a premium these buttons may reside in the same row as image-related buttons (see Buttons and figure 2 below for details).
r If there exists a related Web application (IAC), a button in this group should allow the users to call the application. If there is an emphasized button, it is the leftmost button of the respective button group (image-related or iView-related). There must not be more than one emphasized button in an iView.
Examples Photo
Graphic iView
Graphic iView
Figure 4: Animated GIFs or Flash-Movies can explain procedures or be just fun to watch
Storage (preliminary)
Currently, the technical storage of images that appear in iViews is not handled by the portal framework in a well-defined way. Therefore, make sure that images are stored properly and take part in the distribution process of the portal. Otherwise, your iView would appear in the portal without images.
Copyright (preliminary)
When using graphics from external sources, make sure that copyright issues are settled. Some sources provide images for free, other sources provide the images for free but require a copyright notice, while most commercial sources require a license fee.
Generic iViews
Generic iViews
Collaborative iViews | Commerce iViews | Communicative iViews | Helper iViews | News, External Information iViews | Personal iViews | Search iViews | Self Service iViews | Travel iViews | iViews Accessing Other ERP Systems | Partner Program iViews While most iViews are tailored to the needs of a certain user role, generic iViews may be useful for many roles, or even any user. Typically, users can extend their role-specific set or sets of iViews through such generic iViews. Below we present a classification of generic iViews with potential examples.
Collaborative iViews
q q q q
Collaboration scenarios, Team rooms Chat and shared applications Forum and discussion boards Instant messenger
Commerce iViews
q q
Communicative iViews
q q q q q q
Lotus mail inbox, calendar, address book, contacts, etc. Outlook mail inbox, calendar, address book, contacts (no desktop installation necessary) - Web client, SSO, Outlook today E-mail: Yahoo, Hotmail, ... Bulletin board Telephone book (Web service: US, Germany, ...) SMS, support of mobile devices
Generic iViews
Calculator (specific calculator) Files (my documents, virtual storage on the Internet) Information (notification, web content tracker, package locator) Language (orthography check, translation) Tools (display graphics from clipboard) Navigation (launch collection) System control (macro recorder, frequently used apps) Tasks (my tasks, my projects, Outlook / Lotus tasks) Text (Post-Its) Time (timer clock)
Generic iViews
Analyst news, Market news, Industry news Competitor news, Company news, Enterprise information Stock charts, Stock portfolio Access to specific external information (FASB and GAAP information, accounting standards, international trade, ...) General news, Sports news
Personal iViews
q q q q
Fun, e.g. comic iView Games Photo album Postcard iView (greetings, congratulations, ...)
Search iViews
q q q
Web search, Specialized search engines (e.g. scientific) Address search, ZIP code search, e-mail address search Company information search
Generic iViews
Travel iViews
q q q q q
Weather report Route planner Travel planning: Flight, hotel, car Traffic information Regional information, City information
Siebel Oracle
ICC Workplace Partner Program: Software Partners, Content Partners New Content Partnership Program Types: Community Member, Approved Community Member
Introduction
An iView consists of two parts: The actual application written by a development team and a framework or container encapsulating the application. This framework is implemented through a design element called tray which serves as a container for iViews. While the application implements most of the functionality and the behavior experienced by the user, the tray delivers interfaces to common functions used by nearly all iViews. These functions comprise an hide/show mechanism and the ability to personalize an iView. The tray is responsible for displaying the appropriate user interface elements, while the application delivers the content via standardized interfaces.
What is a Tray?
A tray is part of the portal framework. It serves exclusively as a container for iViews. A tray consists of a header bar and a content area (see figure 1). A status area may be offered in the future.
Figure 1: The iView tray (shown in "simple" tray design) The header bar (see figure 1) contains the iView title (left) and small icons (right) for accessing standard tray functionality. See Tray Functionality below for the functions. Trays are available in four different designs (see figure 2). The different designs are distinguished by the color of the content area, and by whether the content area has a border or not. For details see Tray Types below.
Tray Functionality
The tray provides the following functions (see figure 1 above and 3 below).
) opens a dialog or personalize page that allows users to change the characteristics of an iView according to their needs.
Note: Currently, the personalization of an iView has to be handled by the iView itself. There is no general personalization interface available. See Personalizing iViews for preliminary proposals for personalization dialogs. Toggle Open/Close (Restore/Collapse)
The tray has a toggle button that allows users to open (collapse) and close (restore) an iView. An open iView's header shows the "close" icon ( When the button is pressed, the iView is reduced to its header, and the toggle button shows the "open" icon ( Expand (Open in a New Window) ).
).
) opens an iView in a new window. The original copy remains on the portal page.
If the user clicks the "remove" icon ( the "Personalize Page" page. Refresh
) the iView disappears from the portal page. The user can show the iView again by adding it to the page on
The "refresh" icon ( ) refreshes an iView. Depending on the functionality behind it, a simple browser refresh or a more complex refresh handled by the application may be carried out. Complex Refresh Some iViews will contain data that is changing over time. Examples are stock quotes or inbox items. Depending on the character of the iView, knowing exactly how old or recent the displayed information is can be crucial to overall usability of the application. Besides knowing about the"age" of a piece of information it will in some cases be necessary to update the content of an iView as required. The intervals for the updating or "refresh" procedure can vary from once a day to every minute, from automatic to manual refresh. Setting this parameter will be handled via a Refresh button or personalized settings. Note: Until now, there is no solution for automatically providing the refresh button in the tray. It must be placed within the iView manually and should be the rightmost button of the row which also contains iView's emphasized button (if there is any), i.e. usually at the bottom of the iView. Provide a hint on how old the information displayed in the iView is - don't just enter the last screen refresh date, but when the last query was conducted (if appropriate). Further information: For information on messages in iViews see Messages; for error handling, error prevention and user support see Help and User Support.
Tray Types
Currently (ERP 5.0), there are four tray types available:
q q q q
The form tray: a tray well suited to host forms The border tray: a tray for complex content The borderless tray: a simple tray The text tray: a tray for texts
These tray types differ from each other on the following three dimensions:
q q q
Having a variety of tray designs at your disposal reduces the danger that a portal page has a monotonous visual appearance and helps users in differentiating iViews from each another. Each of the trays comes with a name referring to its proposed content; we also provide the value that has to be assigned to the attribute design. The trays are presented here in order of their importance. The Form Tray The form tray (design = FORM) has a colored header bar, no outside border, and a light colored background color for the content. Use it whenever an iView's content consists of form elements, such as an entry field, a dropdown list box, checkboxes, or radio buttons: White input fields can be clearly distinguished from the slightly colored background of this tray type. Grouping of the elements sets them apart from the colored background.
Tray Sizes
Trays are the containers in which iViews appear. The tray is part of the portal framework, not part of the iView (more information on trays is available in iView Containers - Trays). Currently, there exist two tray versions: (1) the tray provided by the SAP Portal portal framework, and (2) the HTMLB tray. Both trays differ with respect to the functionality that they offer in the tray header (see iView Containers - Trays for details). Note: Trays are reserved for use in iViews. They are not allowed for Web applications (IACs) or other application types. Classes The restriction of iView classes to three increases their reuse value and maximizes the flexibility for both 1024 x 768 and 800 x 600 monitor resolutions. The iView sizes are optimized for a screen resolution of 1024 x 768. In full-screen modus, there is no wasted space or horizontal scrolling if the iViews are exactly the recommended size. At a resolution of 800 x 600 there are a few pixels of extra space. Trays come in different sizes, such as narrow, medium and wide iViews; below we present the different sizes that have been defined for use in the SAP portal environment.
Figure 3: Usage of different iView classes with respect to column layout of portal pages
Figure 4 (below) shows two schematic example pages, one negative (left), and one positive example (right) :
No
Yes
Figure 5: Templates for a screen resolution of 1024*768 (also usable for 800*600)
Placement
The initial tray position on a portal page cannot be determined by the developer but is set by the system administrator for a certain user role. Therefore, iView developers typically do not know, where their iViews will appear on a portal page. In addition, users may personalize their pages and change the position of iViews or remove them from the page.
Spacing
Spacing between Trays The spacing between trays on a portal page is handled by the portal framework. Spacing between Tray Border and iView Content The exact spacing between the tray border and the actual content of an iView is determined by the portal framework and should not be changed by the iView developer (currently, this spacing is 10 pixels). Spacing within iViews For the rules regarding the spacing within iViews see page Layout within iViews.
From Containers to the Layout Hierarchy - A Little Theory | Layout Hierarchy for iViews | Table Overview of the Layout Hierarchy | General Nesting Rules This page describes the layout hierarchy for iViews; this hierarchy defines the options for nesting of iView elements. Thus, this page tells designers, which screen element including containers can be placed into which container. The layout hierarchy is the basis for establishing textual layout rules for iViews. The main goal of such rules is to prevent overly complex and visually cluttered pages caused by excessive nesting. Note: These rules do not comprise the spacing between and within elements.
Tabstrips Groups Subgroups (group of simple elements with or without heading not included in a group control)
Figure 2a-c: Examples for containers within iViews - the HTMLB tabstrip (top) and the HTMLB group box in two different versions (bottom)
A Matter of Interpretation - Linear Sequences vs. Sequences of Containers From a technical point of view, not all of these containers are "real" containers. For example, subgroups are groups of simple iView elements that may be introduced by a heading. They are typically separated from the remainder of the iView by whitespace or separator lines.
Figure 3: Simple groups are elements, which are introduced by a header; they are separated from each other and from other elements by whitespace
From a layout point of view, however, it is easier to view areas and subgroups as "real" containers. This does not make any difference for the layout process. The advantage of regarding these elements as real containers is that the layout can be expressed in a hierarchical or tree-like fashion, which makes it easy to gain an overview of the iView structure. Non-containers While containers create the "skeleton" of a page, non-containers are the "flesh" of a page. These elements are fields, buttons, selection elements, text units, tables, and images or charts. As these elements differ in complexity, nesting rules ensure that a page cannot become too complex. For example, tables are similar in complexity to groups and tabstrips. Therefore, they are placed on the same level in the layout hierarchy as these containers. A rule that takes this aspect into account might state that tables may not be placed inside groups or tabstrips.
Figure 4: Even though a table is a complex control, from a layout point of view it is a "non-container" because it does not contain other controls
Separators Separators, such as lines or whitespace set elements or containers apart. They are therefore difficult to integrate into a hierarchical model of a page layout. They can be viewed as "concluding elements" or "borders" of containers. Creating the Layout Hierarchy The layout hierarchy is created by placing containers and simple elements on a page. The rules presented below govern how page elements can be combined, either by sequencing them vertically or horizontally, or by nesting.
file:///F|/resources/ma_guidelines_3/layout/layout_hierarchy.html (3 of 6) [03.12.02 10:15:27]
Containers may contain containers (nodes), simple elements (leaves), or both. In addition, non-containers may reside on the same hierarchy level as containers. However, they are "end nodes" and do not continue the layout hierarchy. Example: A table may reside on the same level as a group or a tabstrip. The layout rules presented below specify:
q q q q q
Which containers may contain which other container(s) including itself The specific conditions for the nesting, for example, alone or together with other elements How many levels deep the nesting may be Which simple elements may be placed into which container and the specific conditions for this Which containers and which simple elements are on the same hierarchy level
Tray = iView container - may contain: r Tabstrip - may contain: s Group (if it is not the only element) s Subgroup s Table, Image, Chart (if it is not the only element) s Simple elements s Separators r Group - may contain: s Group (if it is not the only element, different group types only) s Subgroup s Table, Image, Chart (if it is not the only element) s Simple elements (form elements, text, ...) s Separators r Subgroup - may contain: s Simple elements s Separators r Table, Image, Chart r Simple elements r Separators
Generally, there should not be more than one level of nesting within iViews. Also, you should note that tabstrips may not be nested. Simple elements are: input fields, selection elements, text, buttons, ... Note: A similar tree can be created for a real iView based on the elements used.
Container
iView (Tray)
Tabstrip
Group
Subgroup
Tabstrip
no
no *
no
Group
yes
possible - but use with care! one level at maximum use different types for the nesting
no
Subgroup
yes
yes
yes
no
Table
yes
no *
no
yes
yes
yes
no
yes
yes
yes
no
Heading
yes
yes
yes
*) As iViews are simple applications, tabstrips and table views should not be placed into group controls. Red cells: Nesting forbidden
Yellow cells: Nesting allowed under certain conditions only Where a "no" is shown in bold, it indicates a common error, such as nested tabstrips.
q q
Avoid Too Much Framing (Visual Complexity) Too many frames and borders make iViews visually complex and waste screen space. Thus, do not place: Singular tables with a table header within group controls use a table heading instead Singular tabstrips within group controls Group boxes within group boxes use sub groups with text headers and separators instead (not forbidden but should be used with care try to use different types for the nesting) Tabstrips within tabstrips nesting tabstrips is a perfect way of information hiding
q q q
Specific Nesting Rules Relations between Controls Specific nesting rules care for the relation between controls - in short, they describe what can be placed inside a container control. You can extract the specific nesting rules for controls from the table overview above. In addition, we provide explicit rules for specific controls in Layout within iViews.
General Considerations | Rules for Specific Controls This page present layout rules for iViews. We start with general considerations about spacing and grouping of elements within iViews. Then follow rules for complex controls, such as tabstrips, group boxes, tables, and trees.
General Considerations
General Rules for Separating and Grouping Screen Elements To separate and group screen elements within an iView, rely on the Gestalt Laws. The most prominent one, the Law of the "good Gestalt", states that the human brain always tries to organize the perceived elements into sensible structures. Following the Law of Proximity, items that are spatially near to each other are seen as belonging together - no group boxes needed! Use white space for structuring information in iViews: Field groups, tables or compound elements like the shuffler should be separated from other elements by empty lines. Example: Separate a shuffler by an empty line from the table below it. Whenever possible, use empty lines instead of group boxes for clustering screen elements. Empty lines use less space and are visually less complex than group boxes (group boxes also currently interfere with the tray design). Exception: When using narrow iViews of low height, there is little room left for the content. In this case, try to design the iView without separating elements, that is, without empty lines. Make sure that the layout does not become confusing! Hint: Empty lines or columns can be realized by using a grid layout. Grid layouts can be nested. Spacing Within iViews For the exact spacing values within iViews, refer to the SAP Portals HTMLB Guidelines. However, application developers usually do not have to care about spacing values in pixels because they can use layout controls provided by HTMLB, which care for the correct spacing. Such layout controls are the grid layout and the flow layout; other controls may follow in the future. Application developers only need to consult the SAP Portals HTMLB Guidelines if these controls are not at their disposal and as long as these controls do not work as intended (in the latter case we also recommend not to set the spacing manually). For developers who cannot use the HTMLB library, we provide the spacing rules in short. Please, refer to the SAP Portals HTMLB Guidelines for details and changed. Overview of the Spacing Rules Within iViews
q
Spacing between tray and content: r Offset between tray border/header and content: 10 pixels Spacing between grouped controls: r Spacing between primary and secondary groups: 10 pixels r Spacing between group controls with header and border: 10 pixels r Offset within groups, i.e. between group border and content: 5 pixels r Spacing within groups: 10 pixels between title and content, 10 pixels between content and buttons
r r
Vertical spacing between single elements: 5 pixels for fields and dropdown list boxes, 8 pixels for checkboxes and radio buttons Horizontal spacing between multiple columns: 15 pixels Horizontal spacing between label and input element, width of label column: Width of widest label plus an offset of 8 to 22 pixels Spacing between selection element and label: 8 pixels for checkboxes and radio buttons
Starting Point for Placing Screen Elements Start adding elements to an iView in its upper left corner. Do not insert spaces or other spacing elements manually - the correct distance to the iView frame will be created automatically when the iView appears in the portal. What if there is no Content Yet? Sometimes, an iView does not yet contain any information, for example if a "My Events" iView has not yet been personalized. Instead of just presenting the empty iView, use the opportunity to provide some text that explains the iView and its functions. This way no space is wasted and the user is given hints on how to operate the iView.
Tabstrips may contain tables or group boxes. Tabstrips may not be nested! This is "information hiding."
For views and alternatives to tabstrips that consume less space, see Selecting Views. Group Boxes Group boxes may be used in iViews, but only if there are no other methods available for separating fields or information. We rather recommend considering using white space for grouping/separating elements. Alternatives to Group Boxes As alternatives to group boxes
q q
Separate groups by white space or lines Label groups with simple headings (possibly in combination with separators)
Group Box Types HTMLB offers several group box types with different looks. The type is determined by the attribute design. The primary (figure 2a, design = PRIMARYCOLOR) and secondary groups (figure 2b, design = SECONDARYCOLOR) allow to visualize groups through a simple, flat background color. Both are suitable for textual content. Controls with a white background color, such as input fields and checkboxes, stand out well on both group designs.
Figure 2a-b: Primary and secondary group Header group 1 (figure 2c, design = SECONDARYBOXCOLOR ) is best suited for forms; its light body background color lets white input fields stand out well. Header group 2 (figure 2d, design = SECONDARYBOX) has a white body background color, which makes it unsuitable for forms. Textual content and lists work best with this group style.
Figure 2c-d: Header group 1 and 2 The group box design (figure 2e, design = SAPCOLOR) has a transparent body background. Because of its border and header bar, it has a quite dominant appearance.
Do not nest group boxes. Exception: You may nest different group box types - but use this option with care. Group boxes should not contain: Tables Tabstrips r Trees Combination of Tray Types with Group Box Types: Currently, there are no specific rules as to which tray type should be combined with which group box type. Nevertheless, there does exist a rule of thumb: Always arrange group boxes from dark to light - if you have to use group boxes within trays, place lighter group boxes within darker trays.
r r
Tables Tables are "high-level" screen elements that present simple elements, such as fields, texts, or dropdown list boxes in a "grid" arrangement. For details on the use of tables, take a look at PortalDataViewer and Tables.
Figure 3: Table
Nesting Rules
q q
You can place tables inside tabstrips (see figure 1 above) Do not place tables inside group boxes.
Trees Trees are like tables "high level" screen elements. You should avoid using trees in iViews, especially trees with more than 2-3 levels. Consider using dropdown lists, the shuffler (filter) or tabstrips in combination with tables in order to select partial data sets. This leads to a far less complex user interface than large trees that have to be scrolled or paged through.
Figure 4: Tree
Nesting Rules
q q
You can place trees inside tabstrips Do not place trees inside group boxes.
Images, graphics, charts etc. are on the same level as tables or trees. Therefore, the same nesting rules apply. For details on the use of graphics and charts, see Graphics and Charts.
The Layout and Invisible Controls | The Visible Controls | Accessibility The HTMLB library is one, we present a short overview of the controls provided by this library. For detailed information, see the SAP Portals HTMLB Guidelines. We also shortly address accessibility issues with respect to using the HTMLB library.
Layout Controls The following controls can be used to create a layout for an iView.
q
While the flow layout is used for arranging elements one after the other (with wrapping), the grid layout creates a grid structure that is useful for designing forms. Layout controls can be nested to allow for more complex layouts. Note: For details see the SAP Portals HTMLB Guidelines.
Selection
q
Radio Button (Group), Checkbox (Group), Dropdown List Box, List Box
Containers
q
Other Elements
q
See page HTMLB Controls - Visual Overview for a list of images showing the most of the HTMLB controls in alphabetical order (excluding the group "other elements"). See Chart Types - Overview for an overview of the chart types that are available im HTMLB. Note: For details see the SAP Portals HTMLB Guidelines.
Accessibility
Developers who use the HTMLB library as a technical basis for creating iViews can mostly rely on the accessibility services that are already provided by HTMLB. Note: For details see the SAP Portals HTMLB Guidelines. Descriptions The central HTMLB rendering engine already provides general descriptions for HTMLB controls, such as the type, the state, and on-screen text. Therefore, application developers only have to complement descriptions in case that users need more specific descriptions or instructions. The descriptions written by the application developers are added to the default descriptions that are provided by the central rendering mechanism. Examples
q q
A button description has to be extended if a button opens a new window. In general, a description has to be extended if a button introduces an interaction that cannot be recognized by a blind user.
Accessibility Flag Also note that the resulting description that is sent to the users depends on the state of the accessibility flag:
q q
If the accessibility flag is set, the default description is extended by the description that the application developer provided. If the flag is not set only the description that the application developer provided is sent to the user.
Keyboard Accessibility Keyboard access is handled by the HTMLB framework. All HTMLB controls that have to be accessed by the keyboard are automatically included in the tab chain (also called accessibility hierarchy).
Application developers using the HTMLB library cannot add elements to the tab chain themselves in order to make them keyboard accessible. As they cannot set HTML attributes directly, they do not have access to the tabIndex attribute of elements that determines, whether controls are included in the tab chain or not. Input Elements and Corresponding Labels Input elements, such as checkboxes, dropdown list boxes, input fields, radio buttons, and text edit controls need to be connected to a label, so that screen readers recognize the association of the label with the input element. Use the HTMLB label control for this purpose. The connection between a label and its corresponding input element also simplifies the interaction with the element when using the keyboard or mouse.
Overview List | Notes This page presents images of most of the controls contained in the HTMLB library. For detailed information with respect to usage guidelines and Control API, please refer to the SAP Portals HTMLB Guidelines. Note: For charts offered in HTMLB, see Chart Types - Overview.
Overview List
Below is a list of HTMLB controls and their look.
Look
Button
Checkbox
Group
Input Field
Item List
Label
Link
List Box
Radio Button
Table View
Tabstrip
Text Edit
Text View
Tree
Notes
The figures are given for reference only. They show the current state of the HTMLB controls (ERP 5.0) but changes to the controls may be introduced without further notice. Please, refer to the HTMLB documentation (PDK, Portal Development Kit) and the SAP Portals HTMLB Guidelines for details and the current state of the library.
Introduction | Types
Introduction
HTMLB provides an easy to use interface for implementing charts in iViews or Web applications (IACs). The following chart types are available:
q q q q q q
Area charts: standard, stacked, 3D, 3D stacked Bar charts (horizontal bars): standard, stacked, 3D, 3D stacked Column charts (vertical bars): standard, stacked, 3D, 3D stacked Line charts: standard, 3D Pie charts: standard, 3D, extruded, extruded 3D, split Special charts: pyramid, bitmap, trend
Below we present examples that demonstrate the look of these chart types. For details on the chart types see the SAP Portals HTMLB Guidelines. For information of the usage of the different chart types see Recommendations for Charts and Graphics in the SAP Design Guild. For information on the usage of charts in iViews see Graphics and Charts in section iView Interaction. Note: The actual charts may differ from the charts shown here, depending on the version of the HTMLB charts. Moreover, additional chart types may be available in the future.
Types
HTMLB charts types are selected using the attribute chartType. Below you find an overview of the available chart types and the respective values for attribute chartType.
Area Charts
Bar Charts
Column Charts
Line Charts
Pie Charts
Extruded pie chart (chartType = PIE_EX) Extruded 3D pie chart (chartType = PIE_EX_3D)
Special Charts
Pyramid chart (chartType = PYRAMID) Bitmap chart (chartType = BITMAP) arbitrary bitmap
Personalizing iViews
Introduction
This page describes a concept of how iViews can be adapted to users' needs in a portal environment. Important: The following information is highly preliminary; it will be updated as soon as possible. Currently, an agreed-upon universal personalization concept does not exist. Note: The images are proposals, not finalized designs.
Types of Personalization
Basically, there are two types of adapting an iView to role- and user-specific needs, customization and personalization. Customization Customization is performed by the system-administrator and used for pre-configuring or setting up iViews and their appearance on a portal page. Besides specifying the technical and the business background of iViews, customizing can also affect the user interface (e.g. presetting display attributes) and can be used to specify the extent of personalization the user is allowed to do. Customizing an iView is performed using administrator tools delivered with the portal framework; such tools are not within the scope of these guidelines. Personalization Personalization is performed by the user. In its simplest form, users can decide for a predefined set of iViews (predefined according to their role), whether and where they want to display an iView on a portal page. Further end-user settings should be as easy as possible and will mostly relate to a limited set of display options (such as "display status bar") or per-application settings (such as "refresh-cycle"). In a limited way, they can also contain an adoption of the interface itself and the data to be displayed. Typically, the selection of iViews to display in a portal page is performed using tools provided with the portal environment. The personalization if iViews themselves is handled in a dialog window, which is called by clicking the "Edit" icons in the tray header. Below, we propose preliminary guidelines for the design of personalization dialogs.
Group Settings - Form General and iView-specific Groups Provide settings that are common to virtually all iViews as generic building blocks, which can be blended with application-specific options. The generic blocks will always appear, whenever applicable for an iView. The specific settings will be tailored to each iView. Group them into a set of categories as described below. Handle Personalization Outside the iView
Personalizing iViews
As iViews are small and should always retain a stable appearance, do not handle the personalization inside the iView itself. The number of screen elements for the personalization can easily exceed the complexity of the iView itself. Therefore, call a dedicated modal dialog window for this purpose. The Personalization Dialog In the future, iViews may use a generic personalization dialog. It should be displayed as a modal dialog box in the center of the screen (see following picture) and appear, when the user clicks the "Edit" icon in the title bar of the iView tray header. The dialog window can be closed via an OK or a Cancel button, located at the bottom right of the window. OK applies all changes and closes the dialog, whereas Cancel undoes all changes and closes the dialog as well.
Personalizing iViews
A title stating clearly from which iView the dialog was launched. The text should be in the form of "Personal setting for <Title of iView>". A short text for describing the page's content. This element should be positioned at the top of each tab-page. It should give the user an overview of the possible settings, since the description on the tab itself might not be sufficient. Section headings. These elements can be used instead of using group boxes to separate subgroups of related settings.
Note that figure 2 is a proposal, not a definite design. General and iView-specific Settings General iView settings have an influence on the appearance and function of the iView tray. They will appear as "generic" tabs in the personalization dialog. The major categories are:
q
Refresh
Personalizing iViews
Specifies whether the iView is refreshed automatically (and in which interval) or manually. This tab will appear in the personalize dialog if the iView can in principle be refreshed. If there is no need to refresh the iView, the tab is omitted. Settings Settings include: Display of a status bar, handling of alert- and ready-messages or appearance at startup (collapsed/expanded).
iView-specific settings can relate to the appearance of the iView's content, both in terms of display options (detail- or list view within the PortalDataViewer) and settings that determine the selection and display of data. Examples for these specific settings are:
q
Content Should be the name of the tab containing the "semantic" settings for the business content, i.e. a range of values to be displayed or any kind of preselections which are not frequently changed and thus are not handled by a shuffler.
Figure 3: Sample content for the settings page (from a Search iView)
q
Display The Display tab contains settings for the representation of the data, i.e. whether data is to be displayed as a table, as text or as a graphic. When using a PortalDataViewer, this tab might be obsolete, since the PortalDataViewer's display options are handled on a separate tab (see figure 5).
Figure 4: Sample content for the display page (from a Search iView)
Figure 5: Sample content for the display page (from an iView using a PortalDataViewer)
An iView can add more categories if the settings of the iView do not fall within the proposed classification. However, keep in mind that the dialog should be as simple as possible. There should be no more than six tabs in the dialog; rather than having a STSS (single-tab-single-setting) approach, try to have a more general category on the tab and do sub-groupings on this tab page.
Personalizing iViews
Designing iView-specific Categories Beyond the Predefined Ones While the predefined categories will probably be a fixed template, the iView-specific categories have to be designed by the iView developers. Here are some general guidelines:
q
q q
Stick to the proposed naming conventions for the tabs (see above). It is always a good practice to make dialogs with the same intention behave and look similarly When defining new categories, choose the names carefully. Avoid labels with overlapping meanings (such as View and Display) Do not use a tab as a group box, i.e. do not take the STSS-approach (see above). Try to use a more general category and do reasonable subgroupings on this tab. Provide a short key sentence for any (sub)group of settings, explaining what the settings are intended to do.
Central CSS-based Rendering | Portal Themes and Style Editor This page discusses the visual aspects of iViews that are developed using the HTMLB library and the SAP portal framework. Especially, it discusses the central, CSS-based rendering mechanism, visual design options for application developers, portal themes, and the Style Editor tool for adaptations beyond the simple switching of themes.
Complexity
Complexity
Introduction
iViews should be simple and reveal their information contents instantly to their users. If an iView tends to become complex, consider changing it into a Web application (IAC) - it is no longer a "real" iView. See also Saving Space and Reducing Complexity for practical hints.
Complexity
For long tables consider effective filtering methods like the shuffler: These tools effect that only a few rows are displayed and that users need not scroll, or need to scroll only a little bit. Consider alternative presentations like charts or graphs as well - they may reveal relevant information faster. Do not include more than one table in an iView. Exception: Comparisons between data or assignment of data to sets (double table design).
Functional Complexity
There are iViews that offer a lot of functionality; but actually these are "ordinary" applications packaged as iViews. Such applications are not iViews. Typically, iViews are not full-fledged applications. They should only have basic functionality, which can be accomplished in a few steps and without any instructions. If your application tries to accomplish more than this, make it an IAC or an R/3 application. The following hints help you to reduce or constrain an iView's functionality. One Application - One Purpose This simple rule is valid for any application, but it should be mandatory for iViews. iViews which try to serve different purposes are inherently complex and thus more difficult to understand. Thus they are not real iViews. Try to divide up the functionality into several iViews serving one purpose each. Avoid Optional Functionality iViews should also offer the necessary functionality only. Reserve optional functionality to larger and more complex applications like IACs. Do not Offer Redundant Access Mechanisms to Functionality In usual applications there are often quite a few access mechanisms to an application's functionality: menus, pushbuttons, function keys, keyboard shortcuts, accelerator keys, etc. For iViews just use the basic mechanisms like pushbuttons and keyboard shortcuts.
Why "Mini"?
An iView is "Mini" An iView should indeed be "mini", that is, as small as possible. Apart from size this requirement has implications for functionality, screen design and effect on other iViews as well. Being "Mini" has positive side effects:
q
Fewer screen elements and fewer decorative elements reduce the complexity of the screen and help users to find relevant information faster - provided that the iView indeed offers relevant information. Fewer screen elements allow the iView to be smaller and thus leave more room for other iViews.
See How to Make iViews "Mini" and Less Complex for tips on saving space below. Don't Be "Selfish" - Your iView Is Not Alone iViews that occupy half or more of the portal page do not deserve the attribute "mini." iViews have to be developed with the requirement in mind that they reside together with other iViews on a portal page. An iView that takes over most of a portal page shows "selfish" behavior - it does not take into account that users need and want to see other information as well.
q q
Reduce the number of fields and table elements (columns, rows) Example: Use filters (shuffler) to reduce the number of table rows Reduce hierarchies to 2-3 levels. This makes even more sense if the number of tree elements is reduced, e.g. by filters Use alternative presentations like charts or graphics (see below) instead of tables
Use headers or text labels to describe field groups. Do not put tables or tabstrips inside group boxes. Do not nest group boxes. Use white space or a vertical separator line instead to group items.
Avoid tabstrips:
q
Use lists of hypertext links, dropdown list boxes or buttons instead for selecting views (for more information see Selecting Views)
Avoid trees:
q
Use tables in conjunction with mechanisms for view selection (dropdown list box, tabstrip) or filtering (shuffler).
Put labels above entry fields. Concatenate labels with read-only fields to one label or omit the label if the meaning of the field is evident. Avoid unnecessary white space (but use it wisely for item grouping - rely on the Law of Proximity)
Note: When rearranging fields take care that accessibility issues are observed. Example
Figure 1: Labels above fields, concatenated labels and fields or no labels at all can help to save screen space.
Use Graphics instead of Texts and Tables
This suggestion builds on human's ability to interpret images faster than text; graphics also may save space compared to equivalent text information, if used properly. If Using Graphics Show the Essential Information Only Graphics may show irrelevant information, may show too much detail, or may be too large.
Graphics may be too large, because they show too much of the surrounding or context of the relevant information. Example: If you want to show the sales in region Europe, do not show a world map; if sales in Germany are of interest, do not show a map of Europe; if sales in Bavaria are relevant, do not show a map of Germany. Example: Photos, drawings or diagrams can often be cropped to a section without losing information; as a positive side effect, the section shown can have a larger magnification, thus showing more details.
A drawing, diagram or photo needs a certain size to show details. Often, however, the details are irrelevant, and a smaller, more schematic graphic would fulfill the purpose much better. Example: Use simple schematic drawings instead of photos or detailed graphics; e.g. a map of Germany can be very crude, if the purpose of the map is only to indicate "Germany".
Often images are simply too large, because nobody cares about image size...
Navigation
Navigation (Preliminary)
Introduction
As stated before, iViews should be as simple as possible. They usually provide information, either as a complete source, but more often as a preview to more and enhanced content. On the other hand, iViews can also serve as small tools for a limited scope of functions, such as a small currency calculator. An iView typically should neither allow nor need navigation. The following exceptions should be used with care: Changing views inside the iView without losing the context (tabstrip, view selection via dropdown lists, shuffler etc.). Scrolling between pages where the context is kept and where the navigation fits a metaphor like a notebook, a book, etc. Change between a search form and the search result (hit list); the same applies to iViews that adhere to a similar interaction paradigm (before - after). Movements to modal dialogs for secondary information or for value selection (value help).
q q q
Types of Navigation
Considering the two main functions of iViews, there are three basic navigation styles for an iView:
q
No navigation at all: The iView essentially remains constant, only the content changes. True for iViews such as a calculator, where the users' actions yield a changing content, but the fields themselves remain the same. Inside navigation: The iView allows the user to access different views in the iView's content area. Commonly, tabstrips or similar controls are used to switch from one view to another. Outside navigation: If an iView is a preview to a more complex transaction or a Web application (IAC), links inside the iView can be used to switch to this larger transaction.
As a general rule of thumb, the complexity of an iView should be kept to a minimum. It should provide information at a glance and do without complex inside navigation. If inside navigation is a necessity then consult the following guidelines.
Navigation
Often there are different options for switching views available. Some of these include:
q q q
Each of these alternatives has certain advantages and some tradeoffs. Here are some rules of thumb: A tabstrip has the advantage of instantly making all possible choices visible to the user (which is only true as long as all tabs fit into the width of the tabstrip). The user is provided with a table context which makes navigation quite easy and straightforward. A drawback, however, is that tabstrips have a quite "massive" appearance, thus adding some screen clutter to an iView which should be as simple and light as possible. Also, depending on the width of an iView, the number of tabs that fit into the iView can be quite limited, forcing you to stack the tabs (which is not recommended). A link list works mostly in the same way as the tabstrip. It provides an overview of the choices and has a simple interaction model. Since links are separate controls, the layout is not limited to a single row as with the tabstrip: If there are more choices than fit into one row, these controls could be laid out in two or more rows (although it is very questionable if more than one row makes sense in an iView - in case you find yourself with two or more rows of links, think about whether your application still fulfills the iView standards. Also see Saving Space and Reducing Complexity). The dropdown list box employs a different interaction model. It only display the current choice (view) while all other views are displayed on demand in a single list. The selection of a new view is either triggered directly by selecting an item, or by adding a Go button to the right of the list. A major drawback of this solution is the fact that the user sees only one entry at a time. This increases the effort for navigating through the choices. On the other hand, dropdown list boxes are the least limited design option with respect to horizontal spacing and the number of choices. This alternative can be recommended in situations where:
q q q
The number of views is larger or The number of entries in the list (views) can vary or The text of each of the entries can be long or undetermined
Note: See a more detailed discussion of views and switching between views in Selecting Views.
Scrolling
Scrolling
Scrolling Rules
The following table summarizes the scrolling rules for iViews and tables within iViews:
Vertical Scrolling iViews iViews should not scroll vertically Tables Tables may currently only be scrolled pagewise using scroll buttons Set the size of tables so that they fit inside the iView. So, the iView itself need not be scrolled in order to see tabular information.
Horizontal Scrolling iViews do not scroll horizontally There is no horizontal scrolling in iView tables
Buttons
Buttons
General Statements on Buttons and Links | Placement of Buttons | Standard Buttons vs. Emphasized Buttons | Go Button in Shuffler and Data Selections
Placement of Buttons
Buttons
Figure 1: Placement of buttons in an iView; iView-related buttons can be placed in the same row as the graphic-related buttons, if space is sparse. There is only one emphasized button in an iView
Buttons Related to Objects Place buttons or links related to objects like fields, field groups dropdown lists etc. next to the object and to the right of them. Example: The Go button of the shuffler is located right to the filter elements. Buttons for Tables, Charts and Graphics (Complex Objects) Place buttons or links related to tables, charts, or graphics, that is complex objects, left aligned below the table. Place the default button (emphasized) to the left, if there is one. Buttons Related to the iView as a Whole Place buttons related to the iView as a whole to the bottom left of the iView. If there are object-related (table-related or chart/graphics-related) buttons, you may place these buttons into the same row. Use the following order in this case:
q q q
Buttons
See figure 1 for this a demonstration of this solution. Reasoning: Placing object-related and iView-related buttons into one row is allowed because vertical space is at a premium in iViews. Emphasized Button If the emphasized button (see below) is a member of a button group, it is the leftmost button in this group (not shown).
q q q
It is the emphasized button through which the central action in an iView is activated.
Buttons
The concept of an emphasized button has been developed for Web applications (IACs). For iViews the following changes or restrictions have been put forward: Emphasized buttons should be used only sparsely. At maximum one button in an iView should be emphasized. If there are only subordinate functions (table functions, preferences) in an iView, no button should be emphasized. If there is only one button in an iView, it should be emphasized, if the corresponding action fulfills the above-mentioned criteria, that is, if the action is of high importance or has significant consequences. Pressing the Enter key should activate the emphasized button's function.
q q q q
Example: The Go button in a shuffler has to be emphasized if it is important, even if it is the only button in an iView. Do not use emphasized buttons for the following functions: Personalize (this function is offered in the tray title) Refresh
q q
Buttons
Fields
Fields
Labels and Help Texts | Read-Only Fields | Input Fields | Alignment | Saving Space
Help texts are special labels that are set behind or, if space is limited, below and left aligned with read-only or input/output fields; they give advice (e.g. examples) on what kind of data to enter into a field, if necessary. Please use only two or three words as possible examples.
Sometimes - mainly for seldomly used applications - it may be useful to provide an enriched field label, using a short sentence, thus giving easy access to the functionality:
Note: See Text, Lists, Links for predefined text styles for labels and headers. Accessibility Ensure that screen readers will identify the connection between a field and its corresponding label. When using the HTMLB library use the label control for labels. When using plain HTML use the HTML label element for labels (see the code example below). The connection between a label and the corresponding field (or other screen element) is established with the "for" statement.
Fields
Example
<label for="fd1" title="Input field Search" accesskey="S"> <u>S</u>earch</label> <input type="text" name="textfield1" id="fd1" title="Input field Search">
Code 1: HTML code for a simple input field with shortcut for the label
Read-Only Fields
Read-only fields are fields where data have been entered either by the user or the system, but which in the current context cannot be changed. Typically read-only fields describe attributes of objects. An inspection text behind the field may explain the meaning of the field value.
Input Fields
Input fields come in several variants:
q q q q
Input/Output Field: Fields where users can enter or edit data. Required Field: Users cannot leave these fields empty; they are required to enter a value. Field with Dropdown List Box: Here users can select or change predefined values; they cannot enter values manually. Dropdown List Box with Button: This is an extension of the dropdown list box with label; an event is fired as soon as a new value is being selected; in this case no button is needed. Alternatively, an additional button initiates an action after a value has been selected; depending on the context, it is set to "emphasized" or not. Input Field with Button: This is a combination of an input field, usually with a label, and a pushbutton. The pushbutton is used to initiate an action after a value has been supplied; depending on the context (i.e. if it is important or not), the button is set to "emphasized" or not. Example: A search field can be implemented as an input field with "emphasized" "go" button. There is more information on pushbuttons and the difference between emphasized vs. non-emphasized buttons.
Required Field
Fields
Field with Dropdown List Box
Alignment
Basically the rules for alignment and arrangement of fields apply as they are laid down in the SAP Style Guide. We summarize: Fields are triples consisting of
q q q
a label, a read-only field, input/output field or dropdown list box, and an optional help text.
Labels and fields are left-justified and aligned below each other; help texts should be put behind the input field or, if space is insufficient, directly underneath the input field, left aligned with its left border. If there is no space to put the label to the left of the input field, put it above (see above). Text (labels without corresponding fields) is usually left-aligned. There are four possibilies of arranging field labels and help texts in relation to the input field:
help text
Orientation
vertical (behind)
horizontal (underneath)
Standard (wide): field label + takes only one line - is rather wide
Fields
horizontal (above)
Standard (narrow): not recommended - rather take the upper right one. (If you have got the space to write the help text behind the input field, it's preferable to put the label in front and the help text underneath - the label is more important and should be more prominent.) + is rather narrow - takes three lines
Figure 1: Possible combinations of label and help text position in relation to the input field.
There can be cases when "primary" and "secondary" field labels can be used, the primary ("valid thru" in the example below) indicating the meaning of the group of fields, the secondary ("Month" and "Year") giving information on what to enter into the fields directly associated.
Saving Space
If space matters,
q q
place the labels above the fields and omit the help texts (labels put above fields are set in small type and are not underlined) combine labels with read-only fields to one label or omit the label if the meaning of the field is evident. Example: "Phone: +496227-12345678" Example: "Germany"
Fields
Text Style
Use used to display body text used to display emphasized text e.g. phrases, single terms; not to be used for complete text areas; text size "Standard" Style for Text Used as a Reference; text size "Standard" used to display a legend or small-size help text; text size -2 in comparison to "Standard" used to display a headline or page title; text size +4 in comparison to "Standard"
used to display a page subtitle; text size +2 used to display a subtitle; text size "Standard"
Table 1: Text styles offered for the text view control and their use
Lists
Lists are an alternative to the PortalDataViewer or other types of tables (e.g. the HTMLB table view). Use lists whenever you want to present a list of items in an unobtrusive way, where reading is the primary usage and where there is - apart from hyperlinks - no interaction on the list elements. Note: Use the HTMLB item list control for implementing lists if possible; there is an ordered and an unordered item list available. See the SAP Portals HTMLB Guidelines for details. Lists have the following characteristics:
q q q q
q q
List items are read-only. List items may contain links. Lists do not scroll. Therefore make sure that all list items fit the iView! Lists consist of one column only; for multiple columns include the lists in an HTML table with one row and several columns (23). Lists may be ordered (numbers) or unordered (bullets). Lists may be nested; do not use more than 2-3 levels!
Examples Below you find an example for an ordered and an unordered list implemented as HTMLB controls. Ordered List Unordered List
Links
A link (hyperlink, hypertext link) is a word, text phrase, image, image section, or icon that transfers the user to a different page or
section on the same page. Links point to one specific target (there exist linking services on the Web, which provide users with a selection of targets). Note: Use the HTMLB link control for implementing links if possible. For details see the SAP Portals HTMLB Guidelines. Visual Design of Links Currently, links are not underlined, but show a hovering effect with underlining when the mouse is moved over the link. In the future, different link types may be offered, such with underlined text and such, where text is not underlined. Reasoning: Within longer text passages, links are hard to find if they are not underlined. Link lists, on the other hand are hard to read if all links are underlined. In addition, users should be able to override the link settings according to their personal preferences and needs. Long Text Links Format only a characteristic part of the text passage as link which clearly describes the target of the link; if one word suffices, use just one word. Avoid underlining more than one line. Link Types Although there is only one link type from a technical point of view, we must make a distinction between the various kinds of links. This helps to establish usage rules for links and to make a distinction between buttons and links. Based on what purpose the links serve, we can establish five different types of content area links: view switch, toggle, drill-down, function, and navigation.
q
View Switch Links View switch links are similar in function to toggle links, but are different in that they are always visible. The view switch links are an alternative to the tabstrip control (see Selecting Views for details). This type of link is similar to the navigation link. As opposed to navigation links, view switch links all refer to the same context and must be persistent in all the views. The currently selected view should not be presented as a link, but as bold text. View switch links should be separated from one another by a vertical line ("|"). Toggle Links Toggle links are used when there are two alternative views of the current data. Toggle links are always pairs of links, but only one is visible at a time. Drill-Down Links A drill-down link allows a user to see more detailed or specific information. For example, in the overview of an address book, the contact names are drill-down links that allow the user to access details on that person. Function Links A function link allows the user to carry out an action. Although in general buttons should be reserved for functions (see Links vs. Buttons for more information), there may be cases where a link would be preferable or where the distinction between a function and a link to another view might be very blurry. Navigation Links Many times, there will be navigation within an iView or application which is independent of the main navigation of the portal. End users might not even perceive these links as "navigation" per se. Navigation links allow users to move backwards or forwards though a data set or process.
Links vs. Buttons In general, use links to indicate navigation to another HTML page or to a different view of the current information as well as to link to further or more detailed information. Links commonly appear within the context of the application (within trees, tables or text).
Use buttons to indicate that a function can be carried out (save, print, close, delete, etc.) or that a process can be started (subscribe, etc.). Buttons generally appear at the bottom left of a grouped area to indicate a function that can either be performed on selected items (if checkboxes appear as well) or that apply to the whole screen (see Buttons for details on button placement).
Figure 3: Example of an iView where links and buttons are both used
When to Use the PortalDataViewer and the HTMLB Table View | Building Blocks and Content Distribution | Paging in Tables | Sorting Columns | Links Inside a Table | Displaying Status Information | Implementing Tables This chapter deals essentially with the PortalDataViewer (the former PortalALV) and the ways of using it in the best possible way. However, the PortalDataViewer is only one specific instance of a table. Consequently, many of the issues discussed here are also valid for non-ALV based tables. With respect to presentation, the PortalDataViewer is based on the HTMLB table view. The table view can also be used in iViews. However, it does not offer all the services provided by the PortalDataViewer.
q q
There are only a few sets of data which could easily be displayed in a textual form (e.g. an inbox overview like: three new work items and two unread mails) or as a simple list (see Texts, Links, Lists) Values have to be sorted, filtered or processed using complex criteria or methods There are alternative forms of presentation that are more suitable for the content (e.g. displaying numbers as graphics or charts)
Although the PortalDataViewer can be used for many purposes and it is definitely convenient to "include PortalDataViewer" and get a complete iView for free, there is often a better design solution available. The HTMLB Table View The HTMLB table view can also be used for displaying tabular data. It has the same look as the PDV (apart from the icon on the top right) but does not offer the respective services. It is useful for simpler applications that do not need PDV's services. See the SAP Portals HTMLB Guidelines for details on the table view.
The blue table header The column headers The actual "table" or data area A status line for displaying scroll buttons (if applicable)
Figure 1: A PortalDataViewer
q q
If the table is the major element of an iView and the title would essentially repeat the title of the iView itself. If the title contains no text and would be an empty element
If there is no reasonable title for a table, omit the title element. The status line of the table is used for the paging buttons plus a display of the current page or data set (this has be defined in detail).
Paging in Tables
The PortalDataViewer as well as the HTMLB table view provide currently only one approach for scrolling through lists of data. The current solution "pages" through a list, i.e. a new "page" of data is displayed by clicking one of the buttons in the status-line of a table (see figure 3).
changing the order of the columns hiding some columns sorting by one or more fields calculating totals, averages, maxima, minima or setting a counter calculating subtotals for the sort fields choosing a background design or the number of displayed rows per page
The starting point is the "standard" layout defined by the application. However, if this possibility is not desired (from the application point of view), it can be switched off (even parts of the settings, e.g. only hiding of columns might be suppressed). These personalization settings are be persisted in the PCD (can be disabled).
Implementing Tables
Implementing the PortalDataViewer The main part of the PDV is implemented as a portal service. This service itself uses other services of the portal like HTMLB or JCO. The Portal Content Directory (PCD) serves as the persistence layer for the PDV properties, especially for the PDV personalization data. The PDV service has two kinds of "clients": specific application iViews and the generic PDV iView. The generic PDV iView covers the "simple" cases, where parameters are sufficient to define the access to a data source. By this, no programming on the middleware is necessary. However, a data source might be a complex program in a SAP system. Application iViews can use the PDV as a programming API. By this, the application inherits the PDV functionality and can focus on application specific programming (additional interactions and business logic). When should I use Portal Data Viewer?
q q q
Is a table the main part of your iView (either only a table or a table together with other elements)? Do you want to use HTMLB for Java in your iView? Do you want to offer interactive functionality (sorting, summing, configuration, and personalization of the table layout) for this table?
If your answer to these questions is "yes", your iView may be a candidate for a Portal Data Viewer (PDV) application. Especially, if you are dealing with table content coming from SAP systems, the PDV maybe the tool of your choice.
Implementing the HTMLB Table View For details on implementing tables using the HTMLB table view see the SAP Portals HTMLB Guidelines.
Using Graphics - When and How | Using Charts - Overview | Advanced Charts | Chart vs. Table | Chart and Table Alternatively While most developers are experienced with designing forms, the correct and efficient use of graphics and charts is less well known.
Use graphics instead of text when they easily and effectively convey information. Example: A floor plan is more efficient for describing the structure of a building than a text description. Use graphics when they need less space than equivalent textual information. Example: The description of a procedure may be much longer than an equivalent diagram. Use graphics for decoration or fun, but only if it is appropriate for an application. Do not decorate applications just because you think it looks nice.
How
q q
Align graphics so that their main contents points towards the text, not away from it. Crop graphics to the relevant section; make them as small as possible and avoid irrelevant and distracting elements. Example: Do not show a US map if you want to illustrate data in Michigan - use a Michigan map instead. Use high quality graphics. Example: Do not draw graphics by yourself, involve graphic designers. Care for the corrects format of the graphics. Example: Use JPEG for photos, images with many colors and gradations; use GIF for diagrams, images with text and/or straight lines and images with (less than) 256 colors. Typically screen dumps work better in GIF format.
For more information on graphic iViews see Graphic iViews; for additional background information see the Recommendations for Charts and Graphics in the SAP Design Guild.
Chart Type
Typical Applications
Variants, Remarks
Area
Percentage, Cumulative
Column/Bar
Observations over time or under different conditions; data sets must be small
Line, Curve
Pie
Segments may be pulled out of the the pie for emphasis (exploded pie chart)
Advanced Charts
Above we described basic chart types. Charts can be made even more informative if used in new ways or combinations. For example, you can combine a map with pie charts or bar charts to present the geographical distribution of certain variables.
Figure 1: A geo chart showing the distribution of two variables in Northern Germany
Note: Often these charts have to be "handcrafted" and can be used as static images only.
Selecting Views
Selecting Views
Why Views? | Table Views and Form-Like Views | Choosing Controls for Switching Views | Views in Tabstrips | Dropdown List Box for View Selection | Link List for View Selection
Why Views?
If the amount of data is large, the data have to be split into several groups, called views. A view presents a meaningful (sub)set of data. For iViews collecting data into views is even more important than for regular applications, because space is at a premium and splitting has to be used with a smaller amount of data than usual.
Selecting Views
q q q
The link list uses very little space and is rather Web-like; unfortunately it is only suited for displaying a limited number of items. Furthermore, link lists can seem visible unstable, especially if the views look very differently. Due to their nature and associations users can have with links (i.e. when clicking on a link one will be sent to another object or another page), link lists should be used for switching to views of different objects. The tabstrip has the advantage that users can see all alternatives at any time (provided that the tabs fit into the width of the tabstrip; otherwise it should not be used at all). Thus users have a stable context and can navigate easily between the views, provided the views are not interdependent or have to be walked through in a fixed sequence. Tabstrips should best be used for applications or for screens on which to change an object's attributes (i.e. application-like screens, such as an Options dialog). Use dropdown list boxes if users have to switch between larger numbers of views, the number of views may change dynamically the labels for the views are very long
q q q
On the negative side, users only see the name of the current view. Also selecting a view take more interaction steps than for the other design options. Dropdown lists should only be used if the number of option is too high to display them as a link list. The table below summarizes the pros and cons of the different design options. Then the design options are discussed in detail. Overview of the Design Options for Views Design Option Pros Cons Remarks Recommended for...
Tabstrip
Easy to understand, keeps screen visually stable, all view names visible
Use it if the views are visually so different that other choices would result in an unstable environment
Dropdown List Box Needs the least space of all alternatives, allows more views than tabstrip
Visually unstable if views look very differently, only the name of the current view is visible
Use it to switch between Shuffler or shuffler-like views, if more situations (search and select alternatives do exist and categories) to save space; also use it to maintain similarity to shuffler
Selecting Views
Link List
Needs less space than tabstrip, allows more views than tabstrip, all view names are visible. Web-like
Visually unstable if views look very differently; don't automatically provide feedback as for the selected view
Typically used on Websites. Put above elements in the iView if intended for switching views. Remember giving feedback, e.g.: View 1 | View 2 | View 3
Table 1: Design options for views and their pros and cons
Views in Tabstrips
Tabstrips are the current "state-of-the-art" control for displaying views, but there are some problems with using tabstrips:
q
q q
The number of views is limited by the space for the tabs. -> Do not nest tabstrips to overcome this limitation - that is "information hiding"! Tabstrips indicate to the user that views can be accessed in any order; if this is not the case, avoid tabstrips. Tabstrips provide a rather "massive" appearance.
Even though space is limited in the tab area, the tab area should not be scrolled.
Selecting Views
Consumes less space (no borders). The label can be used as instruction. More views are possible, because space does not limit the number of views; however, the list should not be longer than about 12 items. The user cannot immediately see, which views are available (the user has to click the dropdown list box).
Note: The view should be activated after the user has pressed a "Go" button. This prevents users from selecting views inadvertently. It is also consistent with the shuffler.
Figure 3: A dropdown list box can also be used for switching form-like views
What is a Shuffler, What are the Benefits? | Selecting Views vs. Filtering | Variants of the Shuffler
Easy query:
q q
Predefined natural language options instead of SQL Implicit online instruction about what is shown on the screen
Comparison to tree:
q q q q
Clear visualization of selection statements and results Better suited for non-hierarchical data Interactive change of grouping (category) Group by role, group by system, group by type of activity
To interactively browse a data set To have multiple views of one coherent theme: r Same object: Show members, rooms, tasks of one cost center r Same object class: Select one customer r Same task: Toggle between information which is important for shipping international To stack screens r Toggle between different screen layouts (detail, overview)
q q q
Select predefined report variants Visualize data structures that are non-hierarchical but rather attribute-based -> Shuffler filters by attribute Reduce complexity of trees Example: Instead of listing all cost centers with sub-nodes for DMs, PMs, Developers (tree) present flat list of cost centers and select DM, PM, or Developer by a shuffler statement (e.g. "Show all DMs") Offer interactive filtering and sorting of data Use attribute-based filter statements with predefined set of meaningful operands Change sorting or grouping based on attributes
When Not to Shuffle? Tabstrips can be an alternative if: Different screen layouts are stacked (overview detail)
Choices are very limited and of a fixed number Switches are frequent Readability of choices is important
Radiobuttons can be an alternative if: Only 2-3 choices are to be made, and embedded screens already include tabs A less dominant layout is preferable Longer text labels are needed
q q q
For more information on view selection and which alternatives exist see Selecting Views. Examples for Changing Views in iViews Toggle between different visualizations of the same data
q q
Overview and details Simple and extended version Attribute categories of one object
To offer a collection of predefined reports Example: Different Top Ten reports about cost centers Filter different line items based on attribute-based filters Example: view subset of inbox items Example: view all orders older than 123 Change sorting order Example: show all transfers sorted by receiver Select different objects of one object class Example: show cost center XYZ
Table: Assembling Shuffler Query Statements Queries for one object class WHERE Object <LogOper Attribute>
All Emails
Unread Emails
All Emails
Unread Emails
All Alerts
SHOW <Class>
<Attribute>
Complex Queries WHERE <Object> <LogOper Attribute> AND <Object> <LogOper Attribute>
SHOW <Object>
<Attrib1>
<Attrib2>
Filter & Sort WHERE <Object> <LogOper Attribute> Grouped By < Attribute>
grouped by Date
Icons
Icons are not used in iViews, except for displaying status information. That is, there are no function icons on buttons or tabs.
q q
Figure 1: Status icons are typically displayed in the first column of a table
Right-Aligned Status Information (Secondary Importance, Multiple Status Displays) Display in the right section of the table in the following cases:
q
There is a need for displaying more than one status icon; such icons may, for example, convey data accumulated over several objects like statistics The status information is of secondary importance (e.g. "note exists")
Figure 2: Status icons in the right section of a table display statistics about object sets or data of secondary importance.
Column Headers for Status Columns
If status icons are used in tables, the column header should be meaningful so that users easily understand the purpose and meanings of the icons. The status column should only be labeled "status" if a more specific label cannot be found or if such a label would be far too long. Example: A task list contains a column that indicates whether a task has already been finished or not. If the column header would read "Status", it would be unclear to users whether the task is unfinished, critical or cannot be processed, because such a distinction cannot be made from the status icons alone. It is better to use specific labels like "Finished", which correctly describe the type of the status; now general status icons can be used, because they only modify the meaning of the label but need not carry meanings themselves.
Messages
Messages
Usage
System Messages Typically an iViews should not issue system messages. Success Messages In some cases we recommend giving feedback on a user's successfully completed action:
q q
Critical business applications (e.g. "Your order has been taken") Actions having an effect that the user cannot see directly (e.g. adding an item to one's favorites list, which is displayed on another page, or saving preferences)
Error Messages An iView should be programmed so that error messages do not occur. Therefore, consider to prevent errors so that your iView does not need error messages at all, before putting effort into error messages and asking how they should look like, where they should appear, and what the wording should be. See Help and User Support for hints and examples on error prevention. Location Messages may refer to an iView as a whole or to a specific element in an iView. Depending on the case, messages are placed differently:
q
Messages Referring to an iView as a Whole If messages cannot be avoided, display system and error messages that refer to the iView as a whole above the iView content; they are set off the header bar and the following content by five pixels each (see Figure 1a-b). Messages Referring to a Specific iView Element Place messages referring to one element of an iView (e.g. one field of a form) directly above this element with an offset of five pixels.
Future Development After validation of a field, the error message will appear in a line directly below the field. As this change in layout can be performed locally, there will be no major screen flicker. iViews: In addition, iViews (trays) will have a status bar where a general error message will appear. This status bar may also display warnings and success messages (an icon will indicate the type of the message). The location of the status bar can be either below the title bar or at the bottom of the tray (open). The status bar may be hidden by the application. Avoid Popups!
Messages
Popups interrupt the users' work flow and thus annoy them. Exception: You may use popups for severe errors like aborts that need direct user intervention.
Types
There are two message types
q q
Critical: Error messages, warnings, alerts Uncritical: System messages, success messages (see above), status messages etc.
Figure 1a-b: Critical (left) and uncritical (right) messages referring to the iView as a whole
Both message types are visually distinct:
q
Critical messages are displayed in white bold type on a red background stretching across the width of the iView. The message text is displayed left-aligned. Uncritical messages are printed on the iView in black bold type.
Messages
If an error message is needed, place it below the table view or - if possible - in a table row directly below the row where the error(s) occurred. Future Development Table views will have a status bar, where the error message will appear. Place the cursor into the error field and scroll the table to make the field visible in case it is hidden from view. If there is more than one error field, display the message for the first error field, place the cursor into that field and scroll the table to make it visible if necessary. If the cursor is placed into a subsequent error field, display the message for the respective field. If an error is corrected move the cursor to the subsequent error field if there is one and display the respective error message. If the focus is outside the table view, display the first error message again. iViews: In addition the planned status bar of an iView (tray) may display a general error message. Posting Errors Posting errors often do not require to cancel the whole posting process. It is only necessary to correct and re-post those items that were erroneous. Therefore, redisplay the table view with the erroneous items only and provide the user with a possibility to correct the items. Place an error message above the table. Future Development Place the error message inside the status bar of the table view.
Explaining Texts | How to Make an iView Self-Explaining | Field Help | Value Help | Error Handling | Error Prevention
Explaining Texts
Typically, iViews should not have explaining texts on the screen. There may be exceptions, where elements, such as special fields or status displays, alert or error indicators, need explanation.
iView title Group box headers Group headers Table or tree headers Charts or graphics, if used properly
Note: If these measures do not suffice, that is if your iView needs documentation, ask yourself whether it is really an iView! Either simplify your iView or make it a Web applicatio (IAC).
Field Help
Currently there is no field help (explanation of the meaning of a field) in iViews.
Value Help
Value help can also be provided by using dropdown list boxes instead of input/output fields, provided the number of possible values is small enough (typically less than 20 items).
Error Handling
Beside help, error handling is an important aspect of user support. Error handling can help users to overcome problem situations and to continue their work. Typically error handling is done by sending error messages that note the error, explain the reason for the error and - ideally provide hints how to remedy the error situation. Currently, there is no approved error handling strategy for iViews. See Messages for details. Error Prevention Comes First! However, before handling errors, you should first ask how errors can be prevented. See the paragraph below for a discussion of error prevention.
Error Prevention
iViews have little space for error messages, especially for messages that explain causes or provide hints for error recovery. This problem is counterbalanced by the fact that iViews typically have little functionality and that thus errors are less probable. This, however, is not a satisfying answer to the problem of error handling. Therefore, the route to go is: Design iViews so that errors cannot occur. Preventing errors - instead of remedying them - has the following benefits:
q q q q
Users cannot come into error situations - many users have problems with recovering from errors. The users' work is not interrupted by error messages. Users are not confused or puzzled by (often cryptic) error messages. There is no need for a screen area that display errors.
Often it needs some rethinking and the giving up "old habits" to find design solutions that prevent errors instead of sending an error message after an error has occurred.
Do Not Let Users "Pay" for System Weaknesses Many systems work the way that they need help from the users, not the other way round as it should be. For example, often users are required to enter data in a certain format, because the system otherwise cannot recognize the input as valid data. As a consequence, an error handling procedure is needed, because users make errors. Sometimes the system is even "nicer" to the users and also provides online instructions for them. So they can read how they should enter the data. Actually, even this does not help much - users still make errors and developers complain about their "stupid" users. Actually, this way of thinking is on the wrong track! It is not the users who are the problem and who are too "stupid" to read the instructions and enter the data correctly - it is the system that requires users to act in a "system-friendly" way. If there would be - in our example - an "intelligent" input field that prevented users from entering invalid data, there would neither be a need for an onscreen instruction nor for an error handling procedure. In the following we provide some ideas and examples that may stimulate your imagination when looking for ways how errors can be prevented. Prevent Wrong or Invalid Inputs
q q
Numeric fields: Prevent users from entering letters by parsing the input string. Date and time fields: Provide "intelligent" date and time fields that are preformatted, or provide selection controls instead of input fields (dropdown lists, spin buttons, calendar controls). Currency fields: Use preformatted fields.
Disable pushbuttons that cannot be used in the current context. Do not offer functionality that is not needed.
Do not use screen elements where uses expect to use them in any order, if there are dependencies or if a certain sequence of steps has to be followed. Example: Do not use tabstrips for views that depend on each other and cannot be viewed at random. At best, do not force users to perform steps in a fixed sequence.
Do Not Obscure the Screen and its Purpose Often important information is hidden while unimportant information dominates the screen. In other cases users simply have no clue what a screen's purpose is. Thus, provide the necessary information and arrange it so that relevant things are recognized first - this way users realize what to do on a screen and how.
References
References
The following references can be consulted for detailed and related information on iViews and the SAP portal environment:
q q q q q q q
SAP Reference Lists (in the SAP Design Guild) SAP Portals HTMLB Guidelines (in the SAP Design Guild) Recommendations for Charts and Graphics (in the SAP Design Guild) Portal Development Kit (PDK) iView Community Website SAP Portals iView Studio SAP Portals Help Portal