Documentation Agresso WebInfo 3 - UNIT4 Agresso · PDF fileSida 2(108) 2013-06-10 WebInfo 3.9...
Transcript of Documentation Agresso WebInfo 3 - UNIT4 Agresso · PDF fileSida 2(108) 2013-06-10 WebInfo 3.9...
Sida 2(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Table of Contents
WEBINFO 3.9 - DOCUMENTATION ................................................................................................................. 7
OVERVIEW .......................................................................................................................................................... 7 Introduction ................................................................................................................................................ 7 Abbreviations .............................................................................................................................................. 7 WebInfo Product Overview ......................................................................................................................... 8 Word Definitions ......................................................................................................................................... 8 Requirements ............................................................................................................................................ 11
USER GUIDE ................................................................................................................................................ 12
USING WEBINFO EDIT MODE ............................................................................................................................... 12 The Object Menu ....................................................................................................................................... 13 The Context Menu ..................................................................................................................................... 13 Context Menu Added Controls .................................................................................................................. 13 Non-graphical Objects .............................................................................................................................. 14 Deleting Controls ....................................................................................................................................... 14 Editing Controls ......................................................................................................................................... 14 Copying and Pasting Controls ................................................................................................................... 14 Dragging and Dropping Single Controls .................................................................................................... 14 Selecting and Dragging Multiple Controls ................................................................................................ 15 Dragging and Dropping in Flow Layout Frames ........................................................................................ 15 Resizing Controls ....................................................................................................................................... 15 Creating Pages & Changing Page ............................................................................................................. 15
EDIT MODE TOOLS AND OPTIONS .......................................................................................................................... 16 Tools menu ................................................................................................................................................ 16 Settings menu ........................................................................................................................................... 17 Setup menu ............................................................................................................................................... 17 Recent menu ............................................................................................................................................. 19 Help menu ................................................................................................................................................. 19
OBJECTS ........................................................................................................................................................... 20 Frames ...................................................................................................................................................... 20 Controls ..................................................................................................................................................... 20 Variables ................................................................................................................................................... 21
BASE CONFIGURATION ......................................................................................................................................... 23 Start from an empty configuration ........................................................................................................... 23 Login .......................................................................................................................................................... 23 Permissions ............................................................................................................................................... 25 Data connections ...................................................................................................................................... 25 SQL ............................................................................................................................................................ 27 Limitations on SQL in WebInfo .................................................................................................................. 28 WSSQL ....................................................................................................................................................... 29 Multilingual support/Titles ....................................................................................................................... 29
CONFIGURATIONS ............................................................................................................................................... 31 Overview ................................................................................................................................................... 31 Include Configuration ................................................................................................................................ 31
EXPORT AND IMPORT VS. BACKUP AND RESTORE ...................................................................................................... 32 Overview ................................................................................................................................................... 32 Backup and Restore .................................................................................................................................. 32 Export and Import ..................................................................................................................................... 32 Partial Configuration Restore .................................................................................................................... 32
NAVIGATION ...................................................................................................................................................... 33 Common Properties................................................................................................................................... 33 Control Types ............................................................................................................................................ 33
TABLES ............................................................................................................................................................. 36 Overview ................................................................................................................................................... 36 The Ad Hoc Table Design ........................................................................................................................... 36
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 3(108)
Documentation
Agresso WebInfo 3.9
Additional rendering options .................................................................................................................... 36 Column Definitions .................................................................................................................................... 37 Row Definitions ......................................................................................................................................... 38 Create template table to reduce maintenance ......................................................................................... 39 Header table ............................................................................................................................................. 39 Filter content with input controls .............................................................................................................. 39 Zoom ......................................................................................................................................................... 39 Export Report ............................................................................................................................................ 41 Sorting a table ........................................................................................................................................... 41 Table Paging Modes .................................................................................................................................. 41 Table with input fields ............................................................................................................................... 42 Agresso forecast and periodical distribution............................................................................................. 43 Collapse/Expand rows ............................................................................................................................... 43 Mimicking The Ad Hoc Table Style ............................................................................................................ 44
PIVOTGRID ........................................................................................................................................................ 48 PivotGrid ................................................................................................................................................... 48
GRAPHICAL CONTROLS ......................................................................................................................................... 49 ChartFX and GaugeFX ............................................................................................................................... 49 Indicators .................................................................................................................................................. 50
EXECUTE OBJECTS ............................................................................................................................................... 51 ExecuteSql ................................................................................................................................................. 51 ExecuteScript ............................................................................................................................................. 51 Bounce ...................................................................................................................................................... 51 Execute Position ........................................................................................................................................ 51
ATTACHED OBJECTS ............................................................................................................................................. 53 Input Validation Controls .......................................................................................................................... 53 OnChange Controls ................................................................................................................................... 53 Value Picker Controls ................................................................................................................................ 53 Park Object ................................................................................................................................................ 53 Comment Object ....................................................................................................................................... 53
INPUT ............................................................................................................................................................... 55 Execute and Bounce Pattern ..................................................................................................................... 55 Initial value for input control ..................................................................................................................... 55 Pickers ....................................................................................................................................................... 55 Validation of controls ................................................................................................................................ 56 Dirty mark page ........................................................................................................................................ 57 Save Button ............................................................................................................................................... 57
DATAWAREHOUSE .............................................................................................................................................. 58 Populating a datawarehouse .................................................................................................................... 58 Filtering a datawarehouse ........................................................................................................................ 58 Displaying results from a filtered datawarehouse .................................................................................... 59 Using an In-Memory service to drive datawarehouse .............................................................................. 59 For more information ................................................................................................................................ 60
PAGE ACTION ..................................................................................................................................................... 61 Key mapping ............................................................................................................................................. 61
FILE HANDLING ................................................................................................................................................... 62 Adding the FileUploader and FileViewer controls ..................................................................................... 62 Maximum File Size .................................................................................................................................... 62 The blob object .......................................................................................................................................... 63
AGRESSO .......................................................................................................................................................... 64 Agresso roles ............................................................................................................................................. 64 Show documents from Agresso Document Archive .................................................................................. 64 Agresso Focused Controls ......................................................................................................................... 66
CUSTOMIZATIONS ............................................................................................................................................... 68 JavaScript .................................................................................................................................................. 68 Managed JScript........................................................................................................................................ 68 Jint ............................................................................................................................................................. 68 VBScript ..................................................................................................................................................... 68
Sida 4(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Lua............................................................................................................................................................. 69 CHANGE WEBINFO ”LOOK AND FEEL” ..................................................................................................................... 72
Customizing Initialization Titles ................................................................................................................ 72 Control appearance with stylesheet classes ............................................................................................. 72 Themes ...................................................................................................................................................... 72
PRINTING FROM WEBINFO ................................................................................................................................... 74 JavaScript Functions for Printing ............................................................................................................... 74 Considerations when Printing a Web Page ............................................................................................... 74
SECURITY .......................................................................................................................................................... 75 Common Security Threats ......................................................................................................................... 75 WebInfo Security ....................................................................................................................................... 75
INTERNATIONALIZATION ....................................................................................................................................... 83 Modifying the Database to Support Unicode ............................................................................................ 83
INTEGRATIONS ................................................................................................................................................... 84 Connecting Agresso to WebInfo ................................................................................................................ 84 Connecting Sharepoint to WebInfo ........................................................................................................... 84
WEBINFO LICENSING ........................................................................................................................................... 85 Licensing Data ........................................................................................................................................... 85 How to License WebInfo............................................................................................................................ 85
WEBINFO AS A WEB SERVICE ................................................................................................................................. 87 TROUBLESHOOTING WEBINFO .............................................................................................................................. 88
Showing Error Messages in Runtime ......................................................................................................... 88 Logging...................................................................................................................................................... 88 JavaScript Console ..................................................................................................................................... 88 Trace Server Code Execution Time ............................................................................................................ 89 Recording and Playback ............................................................................................................................ 89
WEBINFO TECHNICAL PERSPECTIVE ........................................................................................................................ 91 Technology ................................................................................................................................................ 91 Architecture............................................................................................................................................... 91
APPENDIX A ................................................................................................................................................ 93
TABLE ARCHITECTURE .......................................................................................................................................... 93
APPENDIX B ................................................................................................................................................. 95
3RD
PARTY LICENCES AND MENTIONS ....................................................................................................................... 95 GNU LESSER GENERAL PUBLIC LICENSE ............................................................................................ 106
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 5(108)
Documentation
Agresso WebInfo 3.9
Table of Figures
Figure 1: System overview ..................................................................................................... 91
Table of Tables
Table 1: Tree predefined columns .......................................................................................... 35
Table 3: Comparison WebInfo 2.x and 3.x ............................................................................ 91
Sida 6(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Table of Pictures
Picture 1: Login form ............................................................................................................. 12 Picture 2: WebInfo in editmode ............................................................................................. 13 Picture 3: PageLayout ............................................................................................................ 20
Picture 4: A start menu ........................................................................................................... 33 Picture 5: Toolbar ................................................................................................................... 34 Picture 6: Menuitem view ...................................................................................................... 34 Picture 7: Menu result ............................................................................................................ 34 Picture 8: A tabstrip ................................................................................................................ 35
Picture 9: Gauges.................................................................................................................... 49 Picture 10: Pie Chart............................................................................................................... 50
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 7(108)
Documentation
Agresso WebInfo 3.9
WebInfo 3.9 - Documentation
Overview
Introduction
The purpose of this document is to help consultants set up WebInfo solutions and to give a
description of the most important features in WebInfo.
The following will be covered:
Editing mode
Existing controls and how they work together
Creating different tables
Using controls for search and input
Verifying data with validators
Making adaptations
Changing ”Look and feel”
WebInfo installation, upgrading and licensing
The following will not be covered:
Creating data warehouse
Agresso technology
Programming in VBScript, JavaScript etc
ASP.NET technology
For more information:
WebInfo e-guides
https://esupport.unit4agresso.se/guides/FilterSearch.jsp?f=Webinfo
Documentation is always available from Help menu in WebInfo edit mode as
long as there is an active Internet connection.
Abbreviations
A list of abbreviations used in this document. Abbreviation Meaning Description
AJAX Asynchronous JavaScript And XML
AJAX is a web development technique for creating interactive web applications.
ASP Active Server Page(s) ASP is Microsoft's server-side script engine for dynamically-generated web pages.
ASP.NET Active Server Page(s) for .NET framework
ASP.NET is a set of web application development technologies marketed by Microsoft.
CSS Cascading Style Sheets CSS is a stylesheet language used to describe the presentation of a document written in a markup language like HTML.
HTTP Hypertext Transfer Protocol HTTP is a communication protocol used to transfer information on intranets and the Internet.
HTTPS Hypertext Transfer Protocol over Secure Socket Layer
HTTPS is the use of SSL together with HTTP for encrypting the HTTP communication.
HTML HyperText Markup Language HTML is the predominant markup language for the creation of web pages.
JavaScript JavaScript JavaScript is scripting language used in web pages to add client script functionality to the page.
OLE DB Object Linking & Embedding Data Base
OLE DB is an API designed by Microsoft for accessing different types of data stores in a uniform manner.
RSS Really Simple Syndication RSS is a family of web feed formats used to publish frequently updated
Sida 8(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
pages, such as blogs or news feeds.
SQL Structured Query Language SQL is the most popular computer language used to create, modify, retrieve and manipulate data from relational database management systems.
SSO Single Sign-On SSO is a specialized form of software authentication that enables a user to authenticate once and gain access to the resources of multiple software systems.
URL Uniform Resource Locator The address of a web page on the world wide web.
VBScript Visual Basic Scripting Edition VBScript is an Active Scripting language interpreted via Microsoft's Windows Script Host.
XML eXtensible Markup Language XML is a W3C-recommended general-purpose markup language that supports a wide variety of applications.
WebInfo Product Overview
WebInfo is a web site design tool running on IIS that based on a configuration collection,
stored in file or database, renders a web site with full connectivity to your real time business
data. WebInfo allows for powerful integration with the Agresso ERP System as well as other
systems using SQL queries, specialized web controls and web services. Data can be
presented through a wide range of flexible web controls such as tables, charts, tab strips and
menus, that can be further customized by web designers using standard CSS style sheets.
Many systems can leverage from using WebInfo as their web user interface layer, adding
functionality currently not supported by the existing system, ERP system or business logic.
Examples include collecting data from non integrated systems within the business and
presenting them in the same page to simplify data mining or to utilize the data input
functionality of WebInfo to build full web applications that integrate with existing ERP
systems.
Even though WebInfo has several advanced controls for integration with the Agresso ERP
systems it is designed to function as a separate product and can also be used to create any
web application such as helpdesk web interfaces, frontends to other 3rd
party services and
more.
Word Definitions
Throughout this document we will be using the following wording to describe WebInfo’s
different parts and features:
Solution – a WebInfo web site.
Configuration – information about the appearance and behaviour of WebInfo or of a part of
a WebInfo solution, separated in such a way that it cannot interfere with other
configurations.
Configuration Collection – a collection of user created configurations and WebInfo system
configurations; stored in either file or in database. A solution always has exactly one
configuration collection in use. Configuration Collections can be backed up and restored as
a whole or by its configuration parts.
Page – a collection of controls and rules displayed or evaluated at the same time in the web
browser window.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 9(108)
Documentation
Agresso WebInfo 3.9
PageId – name of a page.
Page Object – a container that holds parameters controlling the behaviour of controls and
rules on a given PageId.
Master Page Object – a global page object whose settings function as defaults for all other
pages. Master page settings are always overridden by more specific page settings.
WebInfo Object – any configurable unit in WebInfo that can be used to create a page’s
content; attached either to the page through its PageId or by being attached to other objects
that are attached to the page.
WebInfo Control (or just control) – a visible WebInfo object.
Input Control – a WebInfo control that allows the user to input data, e.g. text boxes and drop
down controls.
Object Property (or just property) – a setting of a WebInfo object.
Page Property – an object property on a page object.
Variable – a value container that can be referenced in a configuration by name to set or
retrieve its value. In SQL statements or in object properties it can be referenced by typing a
colon directly followed by its name, e.g. “:myvar”. All input controls generate variables
containing the value in the control. They are always named <name of control>_value
meaning a drop down called mydropdown would generate a variable containing its value,
referable by typing “:mydropdown_value”.
Variable Data Type – a constraint on a variable that states what type of data can be stored in
a variable with a given name and what should be its default value if no value or an illegal
value is submitted. Examples of data types are string, integer and decimal. Variable Data
Types are stored as part of the configuration.
Protected Variable – a variable whose value can only be changed by EEXXEECCUUTTEESSQQLL and
EEXXEECCUUTTEESSCCRRIIPPTT objects. WebInfo has a number of internal protected variables with reserved
names.
Parameter – a protected variable with a constant value and data type that be used to store
static values in the solutions. Parameter values are loaded during page load. Parameters are
stored as part of the configuration.
PageId Parameter – a parameter that has its value set on a specific page.
Central Parameter – a parameter whose value is set on all pages unless overridden by a
PageId Parameter.
IIS Session – the IIS’s (the web server’s) session memory. This is where the web server
remembers variables, user information and other data that should be remembered between
page reloads. If you recycle the IIS application pool or restart the IIS you will lose the IIS
session. When a user loses IIS session state it will be logged out. All tabs in a web browser
will share the same IIS session.
Sida 10(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
WB Session – WebInfo’s sub memory partitions within an IIS session that allows a solution
to have multiple separate windows running the same configuration with separate variable
collections. All windows created in WebInfo using CTRL+N will have a separate WB
session. Parameters and data types can be made global across all WB sessions within an IIS
session, this allows windows (with separate WB session) to share data.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 11(108)
Documentation
Agresso WebInfo 3.9
Requirements
Requirement for the web server:
Operating system Windows 2003 or 2008 Server. Windows 7 and Windows 8
can be used for development, tests and demonstration
The web server Internet Information Services 6-8
(IIS 6 compatibility mode on Windows 2008 Server, Windows 7 and Windows
Vista)
.NET Framework 3.5 SP1
x86 platform or x64 platform
If Oracle database should be used to store configuration the Oracle client needs
to be installed
Browser supported by the client:
Internet Explorer 6 (runtime and pre 3.7 features only)
Internet Explorer 7
Internet Explorer 8
Internet Explorer 9
Internet Explorer 10 (runtime only)
Firefox 21
Chrome 27
Recommended browser to use in WebInfo editing mode:
Chrome
Internet Explorer 9
The hardware recommendation is the same as for Agresso Self Service. A dual core server
with 4GB of memory handles up to 50 concurrent users.
Sida 12(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
User guide
Using WebInfo Edit Mode
After WebInfo has been installed all configuration is carried out in the editing mode of
WebInfo. Menus, tables, controls etc are inserted into the application itself. To start the
editing mode, press down Ctrl+E when in the WebInfo program. If the user is locally
connected to the server where the WebInfo program is installed, the user is automatically
authorized to edit. WebInfo will otherwise display a login form as shown below.
Picture 1: Login form
This login will be authorized against WebInfo’s own control table and has got nothing to do
with the business system login. Only a login with WebInfo SSeeccuurriittyyLLeevveell 1000 or higher
gives full editing permissions. The account that is created during setup will have this
security level.
After login the user will return to the page they started from, but now with access to a new
tool menu and a possibility to right click in the browser window to add new controls or to
change existing controls.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 13(108)
Documentation
Agresso WebInfo 3.9
Picture 2: WebInfo in editmode
The Object Menu
The Object menu consists of a number of useful functions and links to the different edit
forms, one for each object in WebInfo. The edit form links are structured in different groups
to make it easier to find the right form.
A typical edit form presents a table showing all occurrences of an object in the current
configuration.
The edit form gives total access to all objects and their properties. Objects can be created,
maintained and deleted.
The Context Menu
By right clicking somewhere in the browser window the user will gain access to a context
menu for the selected control or page layout frame. The context menu is useful when a
control is created, deleted or managed. When a control is created via the context menu
WebInfo will fill in the basic information for the control automatically, for example the
name of the control and its position.
The context menu looks different if the user right clicks on an existing control. It is then
possible to change the properties or to delete this control. Controls with frame properties can
also add sub controls, these are controls that are located inside the frame and follow when
the frame is moved.
Only graphical objects, controls, can be added in the top, bottom, left, right and main frame.
Context Menu Added Controls
Some controls can be attached to existing controls as properties. These include the input
VVAALLIIDDAATTIIOONN controls, the OONNCCHHAANNGGEE controls, the value PPIICCKKEERR controls, the PPAARRKK property
and the CCOOMMMMEENNTT object. These can be accessed and added to a control using the context
Sida 14(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
menu. A more extensive explanation of these objects can be found in the section about
attached objects.
Non-graphical Objects
Some objects have no graphical representation, yet they are connected to a page. These
objects can be added, deleted and modified by accessing the context menu in the super top
frame, a special frame placed at the far top. In this frame only non-graphical objects can be
added and they will be displayed in groups together with other objects of the same type.
Deleting Controls
The context menu choice “Delete” allows the user to delete a control. As a security measure,
the user will be asked again if they really want to delete the object in a pop-up window.
Editing Controls
If “Edit…” is selected in the context menu for an existing control, the properties of the
control can be changed in a new window. The new window contains an edit form for the
selected object complete with all its properties. Accordingly, the edit form look will vary
depending on object.
At the bottom of the edit menu is an option that allows the user to decide how to refresh the
control after saving the new values. “FullReload” reloads the entire page. “QuickReload”
only reloads the current object. This can sometimes fail if there are object dependencies.
“NoReload” doesn’t refresh anything; it can be useful when you want to make changes to
several objects at once. When you are done with your changes you refresh the entire page.
Copying and Pasting Controls
The menu choice “Copy” allows the user to copy the description of a control into WebInfo’s
internal clipboard. By right clicking on the working surface and selecting paste from the
surface’s context menu you can paste a duplicate of the object that is currently residing in
the clipboard. The clipboard is kept for the session, so it is possible to copy a control on one
page, change PageId, and paste it on the new page.
Dragging and Dropping Single Controls
Controls can have their position changed by altering the X and Y coordinates of the control
directly in the Edit window of the control. This provides the most precise manipulation of a
controls position. For the purpose of working up a design, simply dragging the control
around using the mouse might be more preferable though.
To drag a control across the canvas you simply hold down the Ctrl-key and click and hold
down the left mouse button over the control you wish to move; drag the control and then
release the mouse button where you want to drop it. The control will shift a little after
dropping the control to snap into the grid.
Controls can also be moved between frames this way, by dragging the control so that your
mouse pointer is directly above the frame in which you wish to place the control and then
dropping the control.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 15(108)
Documentation
Agresso WebInfo 3.9
Selecting and Dragging Multiple Controls
By pressing down Shift + Control simultaneously and then holding down the left mouse key,
it is possible to select multiple controls on the page using a Windows-like lasso selection
tool. The selected controls can then be dragged simultaneously between frames. Make sure
to keep both keys depressed continuously throughout the dragging or the controls will be
deselected and the dragging will stop.
Dragging and Dropping in Flow Layout Frames
In a frame with Frame Layout set to Vertical- or Horizontal Flow dragging and dropping
behaves slightly differently. When dragging a control into such a frame it will automatically
snap into a position following the Flow Layout rule set on the container. This means that
inside such a frame it is impossible to absolute position an object. The positioning inside the
frame instead depends on the contained objects sort order, ordering them from low to high.
By dragging a control to a different position in the frame, you also change the sort order of
the controls to match the new order.
Resizing Controls
The most exact way of changing the size of a control is by altering the width and height
property of the control using the Edit window. For the purpose of creating a design base it
can be practical to instead resize controls using the mouse and a Windows like drag-drop
manner.
To resize the control using the mouse - simply pull in the small pale blue drag handle in the
controls right lower corner. By holding down Shift while dragging it is possible to perform a
proportional resize.
Creating Pages & Changing Page
To add a new page, simply click the “Add New Page”-button in the Edit Toolbar at the top
of the page. This will display an edit window where you can name the page, set a title to it,
and configure all the page specific parameters.
To change page, click “Go To...” in the Tools menu, alternatively press Ctrl + G, and type
the name of the page in the text field and click Ok.
If no page exists for the given PageId supplied in the Go To-window, WebInfo will ask you
if you want to create a new page object for the current page.
Sida 16(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Edit Mode Tools and Options
Tools menu
This menu is full of useful functionality allowing you to undo changes, restore deleted
objects, jump between pages and more.
Below are some of the functionalities that can be useful while creating your solution.
Trash… Opens up a grid view of all deleted objects from where you can
restore them to their previous state. If you choose to empty your
trash, all objects in it will be permanently removed and can no
longer be restored.
Undo…
(Ctrl + U)
Displays a table with recent actions sorted by when they
occurred. By clicking the plus sign you get to see more
information on what was performed, and by clicking an entry
you revert your solution to the state it was in before that action
was performed. All actions after and including that action will be
undone. You cannot undo an undo action.
Go To…
(Ctrl + G)
Displays a small window where you can type any Page id you
wish to go to and then press the OK button or hit return to go
there.
Quick Search…
(Ctrl + Q
Displays a small window where you can type the name of an
object view e.g. Button or Textbox. As you type it will suggest
object views that match your text. When you found the object
view you wish to open you press OK or hit return and the
selected object view will open up in the edit grid.
Useful for when you do not want to search the object menu and
know which object view you want to edit.
Show SQL
(Ctrl + 2)
Shows the SQL code that was executed during Page load.
Show Variables
(Ctrl + 3)
Displays all variables available on the current Page and their
current values.
View Last Log
Entries…
Displays the entries added to the log file since the last page
reload. The entries are displayed even though logging to file is
disabled.
For more information on logging, reference later chapters of this
manual.
Open Log File Displays the content of the log file in use. If no log file is used
then a warning message will be displayed.
Useful when debugging remote.
Reload Cache
(Ctrl + 0)
Empties the server cache and forces a reload. Useful when
something seems not to act as intended when developing, as web
server caching does increase speed dramatically but also allows
for old data to be stored and displayed when not intended.
Clear Session Removes your current session from the web server. Will result in
a log out if logged in and WebInfo exiting edit mode. Useful to
simulate a clean entrance into your solution.
Generate
Documentation
Generates a documentation of the solution based on all
documentation annotations added to the WebInfo objects.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 17(108)
Documentation
Agresso WebInfo 3.9
Analyze SQL Analyzes the SQL code used by the solution and presents a list
of SQL grant permission statements that can be used to create a
database user with only the necessary rights.
Start Recording Starts the recording of the current session and the result of all
SQL statements executed.
Stop Recording /
Playback
If currently recording, it stops the recording and saves the
recorded data in a recording file placed in the /_Backups
directory.
Run Diagnostics Runs a quick test on the server that will load the server CPU to
100% for about 10 seconds and measure how much processing it
could do in that time. Gives a score available in the
__koponen2008 variable. The score can then be used to compare
server performance.
Settings menu
This menu contains settings that let you influence how WebInfo operates, especially in
editing mode.
Limit data to 50
rows
This option allows the user to tell WebInfo that it should not
fetch more than 50 rows when rendering tables in edit mode. The
choice to limit data can be used while developing to avoid large
data collections and a slow development environment.
Disable bounces
(Ctrl + B)
Tells WebInfo to ignore bounce objects. This option is useful
when you need to debug or edit a page that would normally
transfer you to another page. A button will be created in the
menu that can be clicked to bounce manually.
Order sqls by
performance
Show SQL window content will be sorted on query time taken
instead of chronological order.
Show Agresso
objects
This option allows users that do not depend on agresso for data
to hide all menu options regarding the Agresso ERP.
Edit level The number of WebInfo properties available can sometimes be
overwhelming. A user who knows that he will only be using the
most common properties can choose to set a lower edit level.
This will remove several advanced properties from the edit
forms.
Setup menu
In this menu you find functionality for manipulating configurations and integrating your
WebInfo solution with Agresso. The below restore and import actions does not patch
WebInfo so the same version has to be used both in the destination and in the source or else
manual patching is needed.
Below are some of the functionalities that can be useful while creating your solution.
Configuration
Backup
The preferred way to back up your configuration.
This option backs up all configurations in your active solution.
Sida 18(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Configuration
Restore
This option restores all configurations in your selected solution
overwriting all configurations of the active solution.
Restore from
Backup ...
Displays a sub menu with the configuration files in your
_Backups directory for your solution and allows you to restore to
that backup by selecting it in the menu.
This option restores all configurations in your selected solution
overwriting all configurations of the active solution.
Download
Backup...
Displays a sub menu with the configuration files in your
_Backups directory for your solution and allows you to
download them to your local machine by selecting them in the
menu.
Restore
Recording
Displays a screen where you can start a playback of a recording
using a file dialog to select recording.
Restore from
Recording...
Starts playback of one of the recordings stored in the /_Backups
directory on the server.
Download
Recording...
Downloads the recording from the servers /_Backups directory
to your current machine.
Configuration
Export
Exports a configuration or parts of a configuration, on a control
by control basis, to a file.
Configuration
Import
Imports a file exported by the configuration export functionality.
Files must come from the exact same application version of
WebInfo and items will be added on a control by control basis to
the already existing configuration. Might create duplicate objects
if run multiple times.
Configuration
Remove
Removes a configuration instance from the configuration
collection stored in the WebInfo configuration file or table.
Partial
Configuration
Restore
Restores a configuration instance as a whole into an existing
configuration collection, removing any existing configuration
instance with the same name, but keeping existing configuration
instances with names different from the restored.
Install
Integration Act
Installs an ACT module in the Agresso instance referenced by
the AgressoConnectionId page property. This will install the
ACT into the Agresso database as well as create a new table
called wb_agrlogin that is used for secure login using the
Agresso URL login method.
Requires a correctly configured Agresso connection CCOONNNNEECCTTIIOONN
object, the AgressoConnectionId page property referencing the
correct Agresso connection and that this account has the proper
permissions on the chosen database.
This option is only available if the menu setting “Show agresso
objects” is enabled.
Edit Agresso
Smart Client
Menu
Displays a screen where you can create Agresso menus that open
WebInfo inside the Agresso client or in a separate browser
window. Requires that integration ACT has been installed to
work. Supported up to ABW 5.5.3.
Edit Agresso
Self Service
Menu
Displays a screen where you can create Agresso Self Service
menus that open WebInfo inside Agresso Self Service or in a
separate browser window. Requires that integration ACT has
been installed to work.
Setupsql Displays a number of SQL code blocks that can be used to
perform various tasks that might be needed during setup, e.g.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 19(108)
Documentation
Agresso WebInfo 3.9
creating a new configuration table in an Oracle database.
Charttypexml Presents a view of included xml templates that can be used when
creating CCHHAARRTTSS. Changes made here will affect all templates
used in CCHHAARRTTSS throughout the solution.
Gaugetypeml Presents a view of included xml templates that can be used when
creating GGAAUUGGEESS. Changes made here will affect all templates
used in GGAAUUGGEESS throughout the solution.
Recent menu
This menu will show the last five object views you have edited in alphabetical order. By
clicking any one of them you will open the edit grid for the selected object view filtered on
the current Pageid.
Help menu
This menu contains a link to the online e-guides, providing easy access to how-tos on many
parts of WebInfo. You can also open the about screen to view information about the current
installation, such as installation directory, application version, number of licensed users and
installation key.
Sida 20(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Objects
Frames
All controls in WebInfo are placed in frames. The property FFrraammeeNNaammee indicates which
frame the control will be placed in. The controls can be placed in frames that are created in
the solution like FFIIEELLDDSSEETT and FFRRAAMMEESSEETT etc. or of the predefined PPAAGGEELLAAYYOOUUTT frames created
by WebInfo.
By default WebInfo contains three predefined frames, namely _MENU, _TOOLBAR and
_MAIN. Changing the PPAAGGEELLAAYYOOUUTT will add up to four more PPAAGGEELLAAYYOOUUTT frames: _LEFT,
_RIGHT, _TOP and _BOTTOM. If no FFrraammeeNNaammee is set for a control it will default to the
_MAIN frame.
PPAAGGEELLAAYYOOUUTT can be changed by right clicking on any of the PPAAGGEELLAAYYOOUUTT frames and
choosing “Edit Page Layout...” or “Edit Master Page Layout...”. Each Page can only have
one PPAAGGEELLAAYYOOUUTT and the page’s PPAAGGEELLAAYYOOUUTT setting will override the setting in the master
page. WebInfo contains a number of different PPAAGGEELLAAYYOOUUTT setups that might seem similar at
first but will display the cuts between the PPAAGGEELLAAYYOOUUTT frames differently; all contain the
_MAIN frame and a combination of side-, top- and bottom frames.
Picture 3: PageLayout
Controls
The definition of a control in WebInfo is that it can be placed in a frame (that means that it
has the property FFrraammeeNNaammee). There are a number of different types of controls:
Container control
A control that is used to group other controls. E.g. FFIIEELLDDSSEETT and FFRRAAMMEESSEETT.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 21(108)
Documentation
Agresso WebInfo 3.9
Input control
A control that allows data to be inputted with it. E.g. DDRROOPPDDOOWWNN and TTEEXXTTAARREEAA.
Button control
A control that is clickable and triggers an action. E.g. BBUUTTTTOONN and
AAPPPPLLIICCAATTIIOONNBBUUTTTTOONN.
Link control
A control that is clickable and usually links the user to another page. E.g. LLIINNKK and
TTRREEEE.
Navigation control
A control that is used for navigating around in the solution. E.g. MMEENNUU and
NNAAVVIIGGAATTIIOONN.
Display control
A control that is used to display some data. E.g. IIMMAAGGEE and TTEEXXTT.
Table control
A control that is used to present a table. E.g. TTAABBLLEE and CCOOLLUUMMNN.
Chart control
A control that is used to display graphical representations of data. E.g. CCHHAARRTT and
GGAAUUGGEE.
Agresso control
A control that is used to display data from Agresso. E.g. AAGGRREESSSSOOPPEERRIIOODD and
AAGGRREESSSSOODDRROOPPDDOOWWNN.
Other control
Controls that for some reason did not match one of the above groups. E.g.
SSIILLVVEERRLLIIGGHHTT and SSCCRRIIPPTT.
Variables
Variables are a central concept in WebInfo solution development. It is how values are shared
between objects on the page or across pages. Without the use of variables the page’s content
would be static and not able to respond to user input. The following is copied from the Word
Definition chapter:
Variable – a value container that can be referenced in a configuration by name to set or
retrieve its value. In SQL statements or in object properties it can be referenced by typing a
colon directly followed by its name, e.g. “:myvar”. All input controls generate variables
containing the value in the control. They are always named <name of control>_value
meaning a drop down called mydropdown would generate a variable containing its value,
referable by typing “:mydropdown_value”.
Variable Data Type – a constraint on a variable that states what type of data can be stored in
a variable with a given name and what should be its default value if no value or an illegal
value is submitted. Examples of data types are string, integer and decimal. Variable Data
Types are stored as part of the configuration.
Protected Variable – a variable whose value can only be changed by EEXXEECCUUTTEESSQQLL and
EEXXEECCUUTTEESSCCRRIIPPTT objects. WebInfo has a number of internal protected variables with reserved
names.
Parameter – a protected variable with a constant value and data type that be used to store
static values in the solutions. Parameter values are loaded during page load. Parameters are
stored as part of the configuration.
Sida 22(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
PageId Parameter – a parameter that has its value set on a specific page.
Central Parameter – a parameter whose value is set on all pages unless overridden by a
PageId Parameter.
In other words if you want your dropdown control to choose which database table to display
content from on your page you would: populate the control with the names of the tables and
use the <dropdownname>_value variable in your SQL code that selects data for your table
control on your page. If you only want certain user to see the data you could use the
WebInfo internal protected variable :user to limit the query.
If you have the same solution in both a test and a production environment and this should
affect the data selection, you could define a parameter in your web.config file or in the
configuration that contained different values depending on environment and then use this
parameter as a variable in your query.
Example:
<add key="WebInfoVariable:mytestvariable" value="My test text" />
Sometimes a user might want to instantiate a variable that contains values other than that of
a pure input control. Then you could create your own variable in the configuration to hold
this value and use it as input to e.g. a selection statement. You would often want it to be
protected as the user could otherwise tamper with it and thereby circumvent the security that
you built into the solution. The correct way to do this would be to create a variable data type
that you give a name and a type and mark as protected. Then you set the value of the new
variable using an EEXXEECCUUTTEESSQQLL object. Since the variables used to set the value are protected
and the EEXXEECCUUTTEESSQQLL object only can be configured by the administrator, which is you, the
new value of your protected variable can also be used in your SQL statements with the same
level of security.
In edit mode it is easy to get a list of all the variables that are in use and their values. To
show the list click on the menu item Tools->Show variables… or press CTRL + 3.
Variables can be used as SQL parameters in a parameterized SQL statement. This does not
require any change to the variables but require you to reference them by adding the colon
sign and the at-sign in front of their names instead of just the colon sign, eg. :myvariable
becomes :@myvariable when referenced as a parameterized SQL parameter.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 23(108)
Documentation
Agresso WebInfo 3.9
Base configuration
Start from an empty configuration
During installation the user will have an option to either start from an empty config or start
with a predefined template containing some sample controls. The objects in the sample
template are there to provide a foundation to build upon and can be removed if needed.
Before continuing it is a good idea to plan ahead, think about what pages the configuration
will consist of, how to navigate between these and so on. Every page is identified and
referenced by the PPaaggeeIIdd property and can hold a Page object defining its parameters and
properties.
All page properties can be found on the page object or the master page object.
Login
WebInfo supports a number of different login types. The login type is set with the page
property AAuutthh. The supported types are:
None – No authentication is performed.
Windows – The windows account of the current user is read and set in the variable
user. All AD user groups that the user belongs to are also set in the protected
variables user_groups and user_groups_sql (comma separated list of groups with the
SQL string character around them). If WebInfo fails to read the windows account the
login will fail. This login type requires Windows integrated security to be configured
on the virtual directory.
Form – The built-in user handling in WebInfo is used. A login form is shown when
the user tries to access WebInfo. The users are managed within the WebInfo
solution. The variable user and all user properties are set as variables prefixed with
“user_” if the login was successful.
Agresso_url – Login from Agresso with user and client set as URL parameters on a
URL that links to WebInfo. For this to work the server that links to WebInfo must
provide a secure key in the URL which is time limited and verifiable in the Agresso
database. WebInfo validates the user and the key against the credentials sent on the
URL. If the user is valid the user will be redirected to the start page with the
variables user, user_id, resource_id, role_ids and role_ids_sql (comma separated list
of role_ids with the SQL string character around them) set. If the user is invalid an
error message is shown.
Agresso_sso – Login to WebInfo via Agresso SSO. WebInfo validates the user via
Agresso SSO. If the user is valid, the user will be redirected to the start page with
the variables user, user_id, resource_id, role_ids and role_ids_sql (comma separated
list of role_ids with the SQL string character around them) set. If the user is invalid
an error message is shown.
Openid – This authentication type will display a textbox where the user can fill in its
openid. The website will then redirect to the user’s openid provider and allow it to
log in. By setting up additional properties on the page object, it is possible to instruct
WebInfo to fetch additional details about the user from the openid provider and store
them in variables.
Facebook – This authentication type requires that a facebook developer account is
used to create a facebook web app. After filling in the appid and appsecret on the
Sida 24(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
page properties, the user can be redirected to facebook to login with its account. By
setting additional properties on the page, WebInfo can ask for higher permissions
from Facebook and store additional user details in variables.
Facebookbutton – Same as Facebook,, but the user is shown a WebInfo login screen
with a facebook button that opens a popup allowing them to login.
Tokenlogin - The plugin enables a token based login from an external system to
WebInfo. A token is sent as a URL or form parameter which is used to reverse look
up a user from a database table defined in the web.config file.
Setup Instructions
1) Add the following appSettings to the WebInfo web.config file and change the
values to match your setup:
<add key="WebInfoTokenLogin:TokenVariable" value="token_urlvalue"/>
<add key="WebInfoTokenLogin:ConnectionId" value=""/>
<add key="WebInfoTokenLogin:Table" value="wb_tokenlogin"/>
<add key="WebInfoTokenLogin:TokenColumn" value="token"/>
<add key="WebInfoTokenLogin:UserColumn" value="user"/>
2) Set page property Auth to tokenlogin
AppSettings
WebInfoTokenLogin:TokenVariable - Name of the variable containing the token
value
WebInfoTokenLogin:ConnectionId - Connection id to the database where the
token table is located
WebInfoTokenLogin:Table - Name of the token table
WebInfoTokenLogin:TokenColumn - Name of the column containing the token
value
WebInfoTokenLogin:UserColumn - Name of the column containing the user
Custom – It is possible to write a custom login method for WebInfo. This option is
only for .NET programmers. As of yet there is no official documentation or e-guide
for this, and instructions are only available upon request. To develop custom logins
you must sign your developer public key with the WebInfo developer team.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 25(108)
Documentation
Agresso WebInfo 3.9
The client variable is protected, and the recommended way to change client is by forcing the
solution to perform a new login. Forcing the solution to perform a new login can also be
used when you want to keep the “user” and “client” variables when switching between
configurations. You can force the solution to perform a new login by adding the URL
parameter login=1 to the URL of a link on your page. If you want to switch client as you
switch configuration, the URL should also have the text “client=<new client name>” added
to it. The forcing of a new login will only work if the page properties AAggrreessssooCCoonnnneeccttiioonnIIdd
and AAuutthh are the same for the two configurations and pages.
Permissions
There are two types of permission objects in WebInfo: PPAAGGEEIIDDPPEERRMMIISSSSIIOONN which sets the
permissions for a whole page and CCOONNTTRROOLLPPEERRMMIISSSSIIOONN which sets the permissions for a
single control. Both permission types share the same properties for authorizing if a user is
granted or denied access to a control or page. When access to a control or page is denied a
DDeennyyAAccttiioonn is taken by WebInfo. The possible DDeennyyAAccttiioonnss are hide, redirect and disable
(only applicable on controls). The hide DDeennyyAAccttiioonn hides the control for a control’s
permission or hides all the controls on a page for a PPAAGGEEIIDDPPEERRMMIISSSSIIOONN. The disable action
works in the same manner but disables controls instead. The redirect DDeennyyAAccttiioonn redirects
the user to a different page.
There are different methods that determines whether a permission is granted or denied, e.g.
granted by role or a sql statement. For more information regarding this – see the chapter on
security. It is enough that one permission grants access for access to be granted.
It is also possible to control when a permission object should be applied. By using the
ApplyTo property of the permission object, the configuration developer can decide whether
the permission should only be applied during report exports, page rendering or both.
Data connections
Sida 26(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Data connections are represented in WebInfo by the CCOONNNNEECCTTIIOONN object. WebInfo allows
connections to a number of different data sources with the help of a connection string. The
connection string can be one of the following:
Native .NET - A connection string to connect directly to an Oracle or MS SQL
Server database. This connection accesses the database directly without going
through the OLEDB or ODBC layer and is therefore faster than those two.
OLE DB – A connection string to connect to an OLE DB data source. This type of
connection string is primarily used in WebInfo to connect against different relational
databases e.g. MS SQL Server, Oracle, MySql, Informix etc.
ODBC - A connection string to connect to an ODBC data source.
WebService – A connection string that allows WebInfo to connect to a web service
e.g. Agresso Query Engine etc.
RSS feed – A connection string that allows WebInfo to connect to an RSS feed. RSS
feeds are commonly used by newspapers and other news service on the internet to
publish news in a stricter format that can be read by different viewers.
DataSet – A connection string that allows WebInfo to execute SQL statements
against the internal work table dataset in WebInfo. The internal work table dataset
contains the result from all executed SSQQLL object for a certain PageId. This means that
this connection type allows data to be joined from different kind of data sources such
as web service, MS SQL Server, Oracle etc. To select all the data from a SSQQLL object
with SSqqllIIdd 10 the following SQL statement can be used:
SELECT * FROM WorkTable_10
If a not previously executed SSQQLL object is referred to from a dataset query it will be
executed before the dataset query is executed.
LDAP – A connection that can be used to query the Active Directory.
SQLite – A connection that allows WebInfo to execute statements against a SQLite
database in memory or file.
Each CCOONNNNEECCTTIIOONN has a unique id which can be referred to in a SSQQLL object to use that specific
CCOONNNNEECCTTIIOONN when executing the SQL statement for the SSQQLL object. If no CCOONNNNEECCTTIIOONN is
specified for an SSQQLL object the default CCOONNNNEECCTTIIOONN is used. The default CCOONNNNEECCTTIIOONN will, if a
WebInfoData connection has been configured in the web.config, be the data CCOONNNNEECCTTIIOONN. If
no such connection string has been configured it will default to the WebInfoConfig
connection used to retrieve configuration data from the configuration table or if the solution
remains in file it will be the CCOONNNNEECCTTIIOONN object with the lowest sort value. WebInfo
connections can either be stored as an object in the configuration table or in Web.config,
filed under connectionStrings.
The name for the connection string used to reference the database containing the
configuration collection in the web.config file is called WebInfoConfigConnection.
Following the same pattern the connection string used to reference the database containing
the data to be used in the solution (can be the same as the WebInfoConfigConnection) is
called WebInfoDataConnection. Some object properties use the abbreviated version which is
WebInfoDat or WebInfoCon.
Sample connection strings:
MS SQL Server: o Native .NET:
Provider=sqlconnection.net;Data Source= agrdb;Initial
Catalog=agrprod;User Id=user;Password=password;
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 27(108)
Documentation
Agresso WebInfo 3.9
o OLEDB: Provider=SQLOLEDB;SERVER=agrdb;APP=WebInfo;DATABASE=agrprod;AutoTrans
late=No;Regional=Yes;User Id=user;PASSWORD=password; o ODBC:
Driver={SQL
Server};Server=agrdb;Database=agrprod;Uid=user;Pwd=password;
Oracle: o Native .NET:
Provider=odp.net;Data Source=agrprod;User
Id=user;Password=password;Integrated Security=no; o OLEDB:
Provider=msdaora;Data Source=agrprod;User Id=user;Password=password;
WebService: o Without header:
Provider=WEBSERVICE;Wsdl=http://localhost/WebInfo/WebInfoService.asmx
;ServiceName=WebInfoService; o With header:
Provider=WEBSERVICE;Wsdl=http://agrprod/agresso/QueryEngineService.as
mx;ServiceName=QueryEngineService;Header=AgrLoginInfo('sysse','AB','s
ysse')
RSS feed: Provider=RSS;Url=http://www.dn.se/huvudnyheter-rss
DataSet: Provider=dataset;
LDAP: Provider=ADsDSOObject;
SQLite o In file:
Provider=sqlite;MemoryStorage=file; o In shared memory:
Provider=sqlite;MemoryStorage=shared;
SQL
Many controls in WebInfo are able to read data using a SSQQLL object. The SQL that can be
used is database specific. If using a connection to a MS SQL Server database it is possible to
write T-SQL blocks for instance while Oracle supports PL/SQL.
There is no limitation of how large the SQL statement can be. If the configuration is stored
in a database, the actual SQL statement will be split over several rows if needed. This is
transparent to the user.
WebInfo supports a number of built in variables that can be used to comment out certain
parts of the SQL statement. The names of these variables begins with an identifier and then
the suffix “_comment_on” (for the start comment characters /*) or “_comment_off” (for the
end comment characters */). WebInfo currently supports the following variables:
super_comment_on/super_comment_off
These set of variables are activated (set to the corresponding comment
characters) when the current user is a member of the super role in Agresso.
[oracle|mssql|mysql|sqlite]_comment_on/[oracle|mssql|mysql|sqlite]_comment
_off
All variables but the ones corresponding to the active database are activated.
WebInfo has a number of built in database independent keywords and functions that can be
used instead of the database comment variables described above. These keywords and
functions are all prefixed with WSQL_. These are thoroughly described in the reference
manual.
Sida 28(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
WebInfo has a built in SQL Designer (utilizing ActiveX) which can be used to generate
SQL statements in a user interface that resembles the query designer in Microsoft Access.
This feature is only supported by IE browsers. The designer can be found on a separate tab
when editing a SQL statement, next to the edit tab.
WebInfo can include one SQL statement into another so that SQL statement can be used as
snippets. The syntax for including an SQL statement is as follows: <!-- #include sqlid_[SqlId of the SQL statement to include] -->
e.g.
<!-- #include sqlid_18 -->
Limitations on SQL in WebInfo
While SQL in WebInfo in many ways is a superset of normal SQL, there is some standard
SQL functionality that WebInfo does not support.
WebInfo does not support nested comments. While “SELECT /* /* test */ */
1” would normally be allowed in sql server, it is not allowed in WebInfo.
WebInfo does not support comments within strings except for the special
cases ‘/*’ and ‘*/’. E.g. SELECT ‘Test /* Test’ would cause an error in
WebInfo.
There are also some restrictions on the usage of WSQL-commands.
You can never nest a WSQL-command inside of another WSQL-command.
WSQL-commands are only meant to be used in their simplest form.
E.g. The following command is allowed:
“SELECT * FROM mytable WHERE WSQL_LIKE('col1', :@var1, '%')”.
However this command is not allowed:
“SELECT * FROM mytable WHERE WSQL_LIKE('col1',
WSQL_FORMATDATE(:@var1, ‘YYYY-mm-DD’), '%')”
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 29(108)
Documentation
Agresso WebInfo 3.9
WSSQL
WSSQL is a query language used in WebInfo to access data from a web service method.
WSSQL is an SQL derivative and allows the user to use the functions of the ADO.NET
library to select a number of columns from the data returned from a web service method,
renaming the columns, creating expression columns, filter the data and sort the data.
WebInfo understands simple data structures such as arrays, scalar values and more complex
.NET DataSets and DataTables.
WSSQL syntax: SELECT <select list>
FROM [Method name](<arguments>)
WHERE [ADO.NET row filter expression (see MSDN for more info)]
ORDER BY <sort condition>
<select list> ::=
{
[data column | expression (see MSDN for more info)] (AS [new column name])
} [ ,...n ]
<arguments> ::=
{
[Webservice method](<arguments>) | new [Webservice object](<arguments>) |
[API method (see reference)](<arguments>) | '[string value]' | [numeric
value]
} [ ,...n ]
<sort condition> ::=
{
[data column] [ASC | DESC]
} [ ,...n ]
WSSQL sample: SELECT description, 'http://agr/Agresso/Default.aspx' + QueryString AS url
FROM GetTaskList(:agresso_wscredentials)
ORDER BY description
Multilingual support/Titles
WebInfo can be used to create a multilingual solution with the help of TTIITTLLEESS, texts in
different languages that can be referenced through a single variable. WebInfo has two built
in types of titles: SSYYSSTTIITTLLEE, a title used by the WebInfo engine, and TTIITTLLEE, a title that is used in
a WebInfo solution. A TTIITTLLEE always overwrites a SSYYSSTTIITTLLEE, which can be utilized when
changing a SSYYSSTTIITTLLEE by adding a new TTIITTLLEE with the same id as a SSYYSSTTIITTLLEE instead of changing
the SSYYSSTTIITTLLEE itself. All SSYYSSTTIITTLLEESS are reset when WebInfo is updated. In addition to the built in
titles, WebInfo can also import titles from an Agresso database. To activate import of
Agressos internal titles in a solution the page property AAggrreessssooTTiittlleess should be enabled and,
if a different connection than the default should be used it is specified with the page property
AAggrreessssooCCoonnnneeccttiioonnIIdd.
The language that is used to select which titles are active is read from the users culture info
(a letter combination describing language and location for the user e.g. sv-SE, en-US, etc..).
The culture info can be set for a whole WebInfo installation by setting the variable
“WebInfoCultureInfo” in Web.config or be user dependent which means that the browser’s
culture info is used. When an Agresso login type is used the language of the Agresso user is
used to set the culture info. If a title is not available in your chosen culture it will default to
the culture set by “WebInfoCultureInfoDefault” in Web.config.
Sida 30(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Titles are used in a solution by writing the name of the title prefixed with the character $,
e.g. $mytitle. This can be used in most places where variables can be used, such as SQL
statements and many object properties.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 31(108)
Documentation
Agresso WebInfo 3.9
Configurations
Overview
A WebInfo solution can be split up in to different configuration instances so that parts of the
solution are isolated from each other. To switch to another configuration instance use the
“Switch configuration to...” option in the Tools menu.
Include Configuration
WebInfo can include one configuration into another which allows the included configuration
to work as a template for the new configuration. All modification made to the included
objects are saved in the new configuration. To include one configuration into another simply
set the Master Page property IInncclluuddeeCCoonnffiigg to the name of the configuration to be included.
To get a better understanding of what happens when changes are made to the objects in the
new configuration the following list displays possible actions and results:
Update – If the object is located in the included configuration the object is copied to
the new configuration then modified. If the object is located in the new configuration
the object is modified directly.
Insert – The new object is added to the new configuration.
Delete – If the object is located in the include configuration the object is marked as
deleted which will remove the object from the page but not from the configuration. If
the object is located in the new configuration the object is deleted and added to the
trash.
Because of how the include configuration technique works there are some things that should
be noted:
If an included object has been modified in the new configuration and the original
object changes in the included configuration, the changes will not propagate to the
new configuration.
If changes are made to the included configuration they will not propagate to the new
configuration before a “Reload Cache” action has been executed.
If an included object has been modified in the new configuration and the unique
identifier (e.g. PPaaggeeIIdd and CCoonnttrroollIIdd for controls) of the original object changes in
the included configuration, two objects will appear in the new configuration. The
first object is the modified original object from the included configuration and the
other is the previously copied and modified object in new configuration.
If an included object has been modified in the new configuration and the original
object in the included configuration is deleted, it will not be deleted from the new
configuration.
Sida 32(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Export and Import vs. Backup and Restore
Overview
A configuration collection, configuration or parts of a configuration can be saved and reused
in a different configuration. WebInfo supply a number of ways to do so depending on how
the data should be used.
Backup and Restore
When moving or copying the whole configuration collection, the configuration backup and
configuration restore is the recommended solution. Restore requires that both the target and
source WebInfo installation is of the exact same version or else manual patching is needed.
Backup and Restore will move the selected solution configuration as a whole and clear
existing old configurations from the destination solution before restoring.
Export and Import
For copying only parts of a configuration, a specific Page or even specific controls within a
Page, use the Export and Import option. This option is more vulnerable to advanced controls
being linked together loosely and will e.g. fail to correctly export and import controls
referencing variables for generating SQL or script code. This requires that both the target
and source solutions WebInfo installation is of the exact same version, e.g. 3.6.3532.1365.
Partial Configuration Restore
Partial Configuration Restore is used when you need to import only a specific configuration
within a solution. It uses the same mechanism as the Backup and Restore functionality
making it less sensitive to advanced uses of controls and minor version differences within a
release.
Partial Configuration Restore requires that both the target and source WebInfo installation is
of the exact same version or else manual patching is needed.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 33(108)
Documentation
Agresso WebInfo 3.9
Navigation
In WebInfo, navigating is essentially the same as changing the current PageId value.
Navigation controls, are the controls which lets the user do that.
WebInfo can also be forced to only load a specific control on a Page by setting the URL
parameter control_id to the ControlId of the specific control.
Common Properties
Target
WebInfos navigation controls have a property called TTaarrggeett associated with them. This
property, if set, tells WebInfo to open the link in a specified window or frame instead of
using the current window.
Whenever assigning a value to the TTaarrggeett property of a navigation control, it is possible to
use a frameset or fieldset container by prefixing the container id with “WB_” in order to
open the link inside the chosen container.
Control Types
Navigation
A navigation control displays the trail of page object titles as links. The control is normally
placed in a TTOOOOLLBBAARRPPAANNEELL. When a link on the navigation object is clicked the user is linked
to that page through a postback.
Start menu
Start menus are basically a list of links with optional descriptive texts that can be placed in a
page. Often this is used on the start page in order to navigate to different functions within
the solution. The link can be a PageId within the configuration or a complete HTTP URL.
The start menu can be built using SSTTAARRTTMMEENNUU controls and then placing them inside a
container with vertical flow.
Picture 4: A start menu
Toolbar
A TTOOOOLLBBAARR is a frame that contains toolbar items such as the TTOOOOLLBBAARRBBUUTTTTOONN control and
FFAAVVOOUURRIITTEE control. The TTOOOOLLBBAARR is placed in a TTOOOOLLBBAARRPPAANNEELL and can be positioned within
the TTOOOOLLBBAARRPPAANNEELL.
Sida 34(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Picture 5: Toolbar
Menus
MMEENNUUSS in WebInfo make it possible to add several functions to a page without taking up a lot
of space. MMEENNUUSS will expand when hovered over. When clicking a MMEENNUUIITTEEMM the action in
NNaavviiggaatteeUUrrll property will be started. This is often a JavaScript function such as saving a
table or navigating to another page.
A menu consists of a MMEENNUU control and several MMEENNUUIITTEEMM controls that belong to the MMEENNUU.
It is normally placed on the right side of the_MENU frame when using a solution title, or in
the _TOOLBAR when the title is missing. The menu is built hierarchically with the first
level having the menu as parentid, and the lower levels having a menuitem as parentid.
Picture 6: Menuitem view
Picture 7: Menu result
Tabstrip
A tabstrip consists of a TTAABBSSTTRRIIPP control and several TTAABBIITTEEMM controls that belong to the
TTAABBSSTTRRIIPP. Each TTAABBIITTEEMM has a name and an image that will be shown in the tab. A TTAABBIITTEEMM is
also a frame control that can contain other WebInfo controls. When a TTAABBSSTTRRIIPP is loaded; by
default only the controls of the active TTAABBIITTEEMM are loaded. This setting can be overridden
using the NNooLLaatteeLLooaadd property per TTAABBIITTEEMM. When a previously not selected tab is selected,
the controls of that TTAABBIITTEEMM are loaded via AJAX. Because of the on-demand loading via
AJAX, a TTAABBSSTTRRIIPP can reduce the time it takes to load a page with many controls. Some
controls, such as the pivotgrid cannot be loaded using AJAX, and tab items containing them
needs to be loaded with property NNooLLaatteeLLooaadd set to true.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 35(108)
Documentation
Agresso WebInfo 3.9
Picture 8: A tabstrip
Tree
A TTRREEEE control is used in WebInfo to present a tree structure. There are two different types
of TTRREEEESS,, a static and a dynamic tree. Both TTRREEEE types populate their nodes using a SQL
statement that contains a number of predefined columns:
Table 1: Tree predefined columns
node_id This is the identity of each node in the tree.
description Node text.
url Indicates what action should take place when a user clicks on a
node. It can be a pageid or a JavaScript function.
parent_id Node_id for parent node if any. Can be ‘0’ if no parent. If set to 0
the node will be put in the top level of the tree.
has_children ‘0’ if no children
‘1’ if node has children
image_url URL to a specific node image.
target Target frame to open URL in.
A static TTRREEEE loads all its nodes when the page is loaded. This can lead to some performance
problems when the TTRREEEE reaches sizes over a thousand nodes. The static TTRREEEE is therefore
more suitable when the number of nodes are limited to less than a couple of hundred. When
a static TTRREEEE has been loaded it is faster to navigate than a dynamic TTRREEEE.
A dynamic TTRREEEE only loads the nodes that are being displayed. When the user expands a
node the child nodes are loaded via AJAX. This TTRREEEE type has no limitation in size but can
be a little bit slower when expanding new nodes. To help build the SQL statement that
generates the nodes in the dynamic TTRREEEE, two extra variables are available to filter your
query:
treenode_parent_id – Id of the parent node to return child nodes for. This variable is set
to -1 when generating the root nodes.
treenode_depth – Depth of the child nodes to generate.
Sida 36(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Tables
Overview
A WebInfo table consists of a TTAABBLLEE control which has a number of row and column
definitions attached to it. The row definitions define properties for a grouping of rows
(header, sub headers, summary, sub summaries, detail etc) and the column definitions define
properties for specific columns within this grouping of rows. Row and column definitions
are linked to its table using the CCoonnttrroollIIdd property of the TTAABBLLEE. Row and column definitions
are linked together using a RowId, which is an identifier that consists of the RowId type,
level and row number e.g. h10.1. The RowId types that can be used are h (header row), s
(summary row), d (detail row), e (edit row) and i (insert row). A detail, edit or insert row
does not have level and is therefore written like d.1 without the level number. RowId level 0
is predefined as the header and summary level for the whole table. See Appendix A for a
more detailed description of how the row definitions RowIds work.
The TTAABBLLEE can be used for both displaying and saving data. The TTAABBLLEE has several SQL
statement properties: one for displaying data and a number of different SQL statement for
saving data also called edit SQL statements. The edit SQL statements are used for adding,
deleting and updating rows in the table.
The Ad Hoc Table Design
An ad hoc table is the method WebInfo uses to automatically design a TTAABBLLEE control based
on the supplied SQL selected data when no explicit table column and row definitions have
been supplied. An ad hoc table design can later be converted into an explicit table design for
further editing.
It is possible to control how the Ad Hoc Table is generated, and which functionality should
be present. Most of the options are controlled by adding additional named columns. The
format of these column names can be found in the table below.
An example of this type of controlled table rendering is grouping. Grouping can be used in
an ad hoc table to create header and summary break levels. This is achieved by adding
special recordset columns to the select SQL statement of the table. These recordset columns
should be named using row type and row level of the group that they belong to e.g. h10, s20
etc.
Additional rendering options
Recordset parameters can be used for controlling the layout and behaviour of the table. For
example when an input column displaying values from the recordset column “amount”
should be enabled or disabled for certain rows in the recordset, an extra column can be
added to the recordset called “amount_input”. This column value should be set to 0 for
hidden rows, 1 for enabled rows, 2 for disabled rows, 3 for rows rendered as labels, 4 for
rows that should not be rendered at all and 5 for a disabled row that can still be updated.
Further options for controlling the table behaviour using recordset parameters can be found
in the reference.
[RowId type][RowId level] Break value for the grouping
[RowId type][RowId level]_text Text displayed on the break row
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 37(108)
Documentation
Agresso WebInfo 3.9
Column Definitions
To be able to control all aspects of the appearance and behaviour of a column, it must be
converted from an ad hoc table into a standard table. This is accomplished by choosing
“Generate column and row definitions” from the TTAABBLLEE context menu. After that it is
possible to change properties and add new columns or delete them.
WebInfo currently supports the following column types:
Sql
Presents the value from the column in the recordset with the column name set in the
VVaalluuee property. This column type can also be used for zooming when used in
conjunction with other zoom properties. Zooming is the technique in WebInfo for
drilling down on a value or several values on a specific row in a table and displaying
the result on another page. The zoom information is collected from the properties
ZZoooommDDrriillllVVaalluueess, ZZoooommDDrriillllTTeexxtt, ZZoooommUUrrll and ZZoooommTTaarrggeett. The properties
TTaabblleeZZoooommCCoonnttrroollIIdd and EExxppaannddZZoooommCCoonnttrroollIIdd can also be used for zooming.
These properties are further explained in the chapter Zoom.
Label
Presents the text set in the VVaalluuee property. The text can contain title and variable
tags.
Button
Presents a button which can be used for zooming. The button text is collected from
the VVaalluuee property. The button column type supports normal zooming and
EExxppaannddZZoooommCCoonnttrroollIIdd. TTaabblleeZZoooommCCoonnttrroollIIdd is not supported by buttons.
Separator
Presents the text set in the VVaalluuee property with a leading separator. The text can
contain title and variable tags.
Edit
Presents an editable cell. Setting the VVaalluuee property to a column name populates the
cell with the value of the chosen column. If the EEddiittCCoonnttrroollIIdd property is set to an
existing TTEEXXTTBBOOXX,, TTEEXXTTAARREEAA,, CCHHEECCKKBBOOXX or DDRROOPPDDOOWWNN in the solution, that control will
act as template for the editable cell. The property CCoolluummnnNNaammee should always be set
for a column definition of type Edit. If the property CCoolluummnnNNaammee is not set, the
column cannot be referred to in an edit SQL statement.
Hidden
Hidden column that gets the value from the column in the recordset with the column
name set in the VVaalluuee property. This column can be referred to in an edit SQL
statement. This column type is useful for recordset id columns that need to be
accessible on the client side, but shouldn’t be visible.
PickerValue
In WebInfo it is possible to design a custom table to be shown when a picker
displays the filtered results. In order to know which value to return when a row is
clicked in the picker table, a special column type called PickerValue can be used.
This column type is not displayed and it gets its value from the recordset column
with the name set in the VVaalluuee property.
Link
Presents a link to the URL contained in the column referenced by the VVaalluuee property.
Formula
Presents the result of a formula that can refer to cells on the same row and the cells
in the summary and header groups that the row belongs to. A reference is typed as
[RowId_ColumnName] e.g. [d.1_amount]/[s1.1_amount]. The cells that the formula
Sida 38(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
refers to must have the CCoolluummnnNNaammee property set. Formulas can also use variable
values by using :[variable name] and recordset row values by using :[recordset
column].
Image
Presents an image with the url of the IIMMAAGGEE set in the VVaalluuee property.
Indicator
Presents an indicator with the CCoonnttrroollIIdd of the IINNDDIICCAATTOORR set in the VVaalluuee property.
DocumentSource
Presents a link to the first Agresso document matched by the DDOOCCUUMMEENNTTSSOOUURRCCEE set in
DDooccSSoouurrcceeIIdd property of the column. Or if the DDooccSSeelleeccttoorr property is set, populates
the matching DDooccSSeelleeccttoorr with all matching documents.
FormulaSummary
This column type can only be used in a summary row. It presents the summary of a
formula column (column containing formula values). The VVaalluuee property is set to the
CCoolluummnnNNaammee of the formula column to present the summary for. The formula
column that the summary column references must have the CCoolluummnnNNaammee property
set.
Fill
Presents an indicator that is filled by a percentage equal to the value of the vvaalluuee
property.
RowComment
Displays an edit icon that allows commenting on separate rows. Requires that the
module table is installed in a database. It also requires that a CCOOMMMMEENNTT object is
attached to the TTAABBLLEE control, and that there is a column in the recordset containing
unique values called “recid”. A CCOOMMMMEENNTT object is a built in WebInfo object that lets
users add or view comments for a control, table row or table cell.
HeaderCheckBox
Allows multi checking of a column of type Edit containing checkboxes. This column
type can only be used on a header row.
Row Definitions
Row definitions enable WebInfo to break down a table into groups on different levels and
present summaries for each group. If the table has been converted from an ad hoc table into
a standard table, the row definitions for a TTAABBLLEE can be accessed by right clicking on the
TTAABBLLEE and select Table->Edit rows…
A row definition contains properties that affect the appearance of the rows that belongs to
the row definition, collapsibility of the group and a property named BBrreeaakkCCoolluummnn. The
BBrreeaakkCCoolluummnn contains the name of a column in the recordset. When that column changes
value, new header and summary rows for the group are added to the TTAABBLLEE.
In the image below, a table breaks on project number. Each project has its own summary
row. The first header, h0, contains the labels. The second header, h1, displays the value of
the project number. The detail rows contain all the numbers. The outermost summary row,
s0, shows the total for all rows. The inner summary rows, s1, contain the summary for each
project. Thus h0, matches s0 and contains all rows while h1 matches s1 and is reproduced
once for each new project value.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 39(108)
Documentation
Agresso WebInfo 3.9
Create template table to reduce maintenance
In a WebInfo solution there often many tables that presents the same columns. To make the
process of creating those pages more streamlined and to reduce the maintenance, it is
possible for a table to point at another TTAABBLLEE, which will work as a template for column-
and/or row definitions. The idea is then to reuse a set of column definitions and/or row
definitions in different tables. If the current table has its own column definitions, WebInfo
will present the sum of all columns definitions.
The property CCoolluummnnssTTaabblleeIIdd in a table indicates which table that will function as a
template for column definitions and RRoowwssTTaabblleeIIdd does the same for row definitions.
Header table
Tables are in most cases row based with columns in the data recordset corresponding to
columns in a TTAABBLLEE. Sometimes when there are only a few rows or just one row in the
recordset but many columns it would be more practical to arrange each column on a separate
row. A typical WebInfo result follow up for example often has a page that shows invoice
information. The result from the SQL statement only consists of one row, but many
columns. To get a better overview the information can be spread on different rows. In this
situation it can be useful to make a so called header table.
In the image below a header table has been created to show details for a certain project on
more than one row. A header table is created by setting the AAddHHooccTTyyppee for an ad hoc table
to HeaderTable.
Filter content with input controls
WebInfo gives the user the opportunity to use values of input controls and variables in the
SQL statement to control what is collected. To include a variable’s value in a SQL statement
just add it to the query prefixed by :@, e.g. “SELECT * FROM EMP WHERE companyid =
:@companyid”. To use the value of a control in your query, e.g. a dropdown, you can do same
but suffix the controls id with “_value” as well. Example: “SELECT * FROM EMP WHERE empno = :@empselector_value”
Zoom
Zooming in WebInfo is the act of selecting an option on one page, moving to another page,
and adapting the contents on that page based on all the selections that have been made on
previous pages.
Sida 40(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
E.g.
- On page 1, the user is shown a selection of countries in a table. By clicking on one of the
countries in the table the user is brought to page 2.
- On page 2, a list of counties is displayed. In a special variable called the drillvalue,
WebInfo has saved which country the user selected on page 1. This allows the page to
display a table with all the counties in the selected country. The user can then select a county
which causes a zoom to page 3, in which both the selected country and the selected county
are available in the drillvalues.
The TTAABBLLEE supports a number of different ways to zoom to another PageId. The following
zoom possibilities are available:
Zoom directly when clicking on a cell or a button by using the CCOOLLUUMMNN properties:
o ZZoooommDDrriillllVVaalluueess
Comma separated list of columns in the recordset that will be passed to the
next page as variables when a zoom button or link is clicked. The drill value
names are formatted as [PageId]_drillvalue_[drillvalue column number] e.g
10_drillvalue_1.
o ZZoooommDDrriillllTTeexxtt
Comma separated list of columns in the recordset that will be passed to the
next page as texts when a zoom button or link is clicked. The drill text names
are formatted as [PageId]_drilltext_[drilltext column number] e.g
10_drilltext_1.
o ZZoooommUUrrll
The URL which the user will be linked to when clicking on the button or
link. This link can be relative i.e. inside WebInfo or an external link to
another web site or a PageId or a javascript method if it starts with
"javascript:".
o ZZoooommTTaarrggeett
Target window or frame for the zoom. The target can refer to a WebInfo
frame if it is prefixed with WB_ e.g WB_MAIN.
Zoom using a dropdown of different zoom buttons by setting the CCOOLLUUMMNN or RROOWW
property TTaabblleeZZoooommCCoonnttrroollIIdd to the CCoonnttrroollIIdd of a TTAABBLLEEZZOOOOMMCCOONNTTRROOLL to be used.
A TTAABBLLEEZZOOOOMMCCOONNTTRROOLL is a theoretical grouping of TTAABBLLEEZZOOOOMMLLIINNKKSS sharing the same
TTAABBLLEEZZOOOOMMCCOONNTTRROOLLIIDD. Each TTAABBLLEEZZOOOOMMLLIINNKK describes the destination, description
and behaviour of one zoomlink This type of zooming is only supported by the SQL
column type.
Zoom using a frame that is inserted into the table underneath the clicked cell or row.
The CCOOLLUUMMNN property EExxppaannddZZoooommCCoonnttrroollIIdd is set to the CCoonnttrroollIIdd of the frame that
should display the zoom information. To pass drill value to the EEXXPPAANNDDZZOOOOMMCCOONNTTRROOLL
the properties ZZoooommDDrriillllVVaalluueess and ZZoooommDDrriillllTTeexxtt are used in the same way as a
normal zoom. This property is supported by the SQL and button column types.
Zoom values are tightly integrated with the user’s navigation path in WebInfo. Drill
values that belong to a page that is no longer present in the user’s navigation path will be
cleared by WebInfo.
To display drill values a FFIILLTTEERRIINNFFOO control can be used which displays drill values, drill
texts and input control values from a number of pages in the user’s navigation path.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 41(108)
Documentation
Agresso WebInfo 3.9
Export Report
WebInfo can export TTAABBLLEE((SS)) and FFIILLTTEERRIINNFFOO((SS)) to storable reports in files. WebInfo exports
by default to the Excel 2007 zipped XML format with the filename
WebInfoExcelExport.xlsx. This behaviour can be altered using Page properties. WebInfo
can also export to the HTML, XML and PDF formats. Exports to these formats are not as
feature rich and will render differently.
To generate an export, a user can just right click on a table and choose export (unless the
option has been disabled). It is also possible to create a BBUUTTTTOONN that calls the JavaScript
function WebInfo.ExportReport. The first parameter of this function is a semicolon
separated list of CCoonnttrroollIIddss of the tables that are supposed to be exported to the report. The
second parameter can contain a semicolon separated list of CCoonnttrroollIIddss of FFIILLTTEERRIINNFFOO to
export. The first TTAABBLLEE is matched against the first FFIILLTTEERRIINNFFOO etc and each one is placed on a
separate tab in Excel.
Here are some examples of what a SSuubbmmiittUUrrll may look like:
javascript: WebInfo.ExportReport('z10_table');
javascript: WebInfo.ExportReport('z10_table;z10_tab2');
javascript: WebInfo.ExportReport('z10_table', 'z10_fi');
javascript: WebInfo.ExportReport('z10_table;z10_tab2', 'z10_fi;z10_fi');
Sorting a table
There are two different ways to sort a TTAABBLLEE: client side and server side. The sort type is set
in the property SSoorrttTTyyppee in the edit form of the TTAABBLLEE.
Client side sorting does not require any extra setup and is done with help of JavaScript that
sorts the TTAABBLLEE without reloading the control via AJAX. This makes this sort type easy to
use and sorting is performed quickly for normally sized TTAABBLLEESS. Client side sorting cannot be
used for more complex TTAABBLLEESS that have header and/or summary groupings. Client side
sorting can only sort on one column at a time.
Server side sorting sorts the table via AJAX according to the sort columns set for the
selected column in the SSoorrttCCoolluummnnss property. This is only relevant for header columns. The
sort columns are set in the variable orderby that can be used in the SQL statement for the
TTAABBLLEE,, e.g. “SELECT * FROM table ORDER BY :orderby”. Server side sorting is very
flexible but takes a little bit longer to perform the sorting than the client side sorting. Server
side sorting builds up a sort string from the clicked columns. The sort string does not only
contain the last clicked column but all clicked columns in reverse click order. Sort direction
can be changed on a column by clicking on it once more, and clicking on a column a third
time will result in sorting being turned off for that column.
Table Paging Modes
Tables may contain many hundreds of rows of data which may not be optimal to display all
at the same page due to browser limitations, ease of reading or design reasons. By using
table paging the table data can be split up over table pages of a given length.
Table paging can be used in two modes: normal or extensive. Normal mode minimizes the
amount of data handled for the request and will therefore be faster and require less server
resources for large tables. The drawback is that summary rows will only summarize over the
displayed data.
Sida 42(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Extensive mode will iterate over the whole data set and calculate correct summary lines but
is therefore not optimal for very large data sets.
Table with input fields
A TTAABBLLEE can be designed with input fields for entering data. The data can be saved using
insert, update and delete SQL statements or built in SQL statements used for storing Agresso
budget and forecasting data (described further in the following chapter). The SSaavveeTTyyppee
property of the table defines which save technique should be used. The following SSaavveeTTyyppeess
are available:
CallBack
Saves the data using the update, insert and delete SQL statements of the table. The
data is saved using AJAX which means that the page is not reloaded during the save.
PostBack (Obsolete save type, should not be used post WebInfo 3.7)
AgressoAbwData
Saves budget/forecast data using AJAX to the Agresso abwdata table.
AgressoAglBudDetail
Saves budget/forecast data using AJAX to the Agresso aglbuddetail table.
Forecast
Saves budget/forecast data using AJAX to Agresso.
To allow input for a column in the table the column definition’s CCoolluummnnTTyyppee must be
changed to “Edit”. The column will then be displayed as a simple textbox. To further control
the properties of the input field a TTEEXXTTBBOOXX,, TTEEXXTTAARREEAA,, DDRROOPPDDOOWWNN or CCHHEECCKKBBOOXX on another
page can be used as template for the input column. This is done by setting the EEddiittCCoonnttrroollIIdd
property of the column definition to the CCoonnttrroollIIdd of the template control. The input column
will inherit all properties of the template control including PPIICCKKEERR, OONNCCHHAANNGGEE and VVAALLIIDDAATTOORR
objects attached to the template control. An OONNCCHHAANNGGEE object can set the value of another
column by setting the VVaalluueeCCoonnttrrooll property of the OONNCCHHAANNGGEE object to the CCoolluummnnNNaammee of
the other column.
All input columns in the table should have its CCoolluummnnNNaammee property set. The column name
is used when referring to the value of the column in the update, insert and delete SQL
statements. The update, insert and delete SQL statements can in excess of normal WebInfo
variables and titles contain recordset values (:@[recordset column]) and input column values
(:@[column name]).
All changes made to the table are saved temporarily and is saved back to the database using
the update, insert and delete SQL statements. Save is invoked by either calling the
JavaScript function WebInfo.SaveTable (See the reference for further details about the
parameters) or by using the SSAAVVEEBBUUTTTTOONN. One update, insert or delete SQL is executed for
each updated row. If all rows should be updated the special recordset column “updated” can
be used (see reference for further information).
New rows can be added to the table when the table has an insert SQL statement. The new
rows are added by calling the JavaScript function WebInfo.AddNewRow (See reference for
further details about the parameters). The insert template row is generated from the column
definitions of the detail rows (d.1 etc.). If the insert template row should have different
column definitions than those of the detail rows column definitions with row type “i” can be
created (e.g. i.1 instead of d.1).
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 43(108)
Documentation
Agresso WebInfo 3.9
Rows can be deleted in the table by selecting rows to be deleted and then calling the
JavaScript function WebInfo.DeleteSelectedRows. Rows are selected by checking the
checkbox at the beginning of each row. The select checkbox is only present if the table has a
delete SQL statement.
Agresso forecast and periodical distribution
As described in the previous chapter the TTAABBLLEE can be used for inputting forecast data using
the AgressoAbwData, AgressoAglBudDetail and Forecast save types. When one of these
save types is used there is no need to add an update, insert or delete SQL statement to the
Table. The SQL statement is predefined for both MS SQL Server and Oracle and stored in
the Setupsql view. Apart from setting up the save type, additional information is added for
each forecast column definition. The column definition properties related to the forecast
saving is located in the forecast section (See reference for more detailed description of each
property). WebInfo saves forecast data differently from normal table saving by executing
one update SQL statement for each forecast column and not for each row.
The forecast input can be distributed over a period of time (Agresso periods). This is setup
by setting the FFoorreeccaassttIInnppuutt property to ForecastWithDistribution and adding additional
information to the column definition properties located in the distribute section (See
reference for more detailed description of each property). WebInfo executes one update SQL
statement for each period that the forecast data is distributed over. WebInfo has three built in
distribute types 1=linear, 2=manual and 3=controlled by the value of a DDRROOPPDDOOWWNN setup in
the column definition property DDiissttTTyyppeeSSeelleeccttIIdd. Extra distribute types can be setup using
the TTAABBLLEE property DDiissttTTyyppeeSSqqllIIdd or by setting the value in the DistTypeSelectId DDRROOPPDDOOWWNN
to a list of decimal values (with dot as decimal separator) separated by the “|” character and
adding up to 1.
Collapse/Expand rows
The TTAABBLLEE control supports collapsing and expanding rows belonging to a group of rows. To
enable collapse/expand the row definition property CCoollllaappssiibbllee of a header row should be set
to Collapsed, Expanded or CollapsedShowingFirstDetailRow. The CCoollllaappssiibbllee property
cannot be set on rows starting with h0 and it must be the first header row for the group e.g.
h10.1 and not h10.2.
The TTAABBLLEE can collapse/expand rows using two different techniques set in the property
CCoollllaappsseeEExxppaannddRRoowwssTTyyppee, which can be set to:
Clientside
All table rows are loaded when the page is loaded and the collapse/expand is
performed only in the client browser. This type can be slow for large tables.
Serverside
The TTAABBLLEE only loads the currently visible rows and when a collapsed group of rows
is expanded the rows are loaded from the server using AJAX. The recordset column
recid containing unique values for each detail row must be present in the select SQL
recordset for this property to work. The details rows within a collapse expand group
must always sort in the same recid order.
The TTAABBLLEE can remember the collapse/expand state of each row within a user session if the
property RReemmeemmbbeerrCCoollllaappsseeEExxppaannddRRoowwss is set to true and the same recordset column recid
described above is present in the select SQL recordset.
Sida 44(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Mimicking The Ad Hoc Table Style
When you create a table in WebInfo in Ad-Hoc mode, it will by default add styles for your
rows that clearly separates your groups and rows visually. These styles work together in an
intricate pattern to accomplish this by changing look depending on whether the row is in edit
mode, if it is even/odd and many more parameters. When you choose to generate your
row/column definitions from the Ad-Hoc table, these styles will be added to your generated
rows.
There are times however, when you might want to set these styles yourself, for example
when you have upgraded from a version of WebInfo that didn’t support theming, and you
don’t want to go back into Ad-Hoc mode to have the classes generated for you. Then this
section will try to explain how to set your row styles in the same manner that WebInfo does.
Each row style should consist of several classes that are combined together.
Firstly the row style should explain what type of row it is. One of the following classes
should be added:
row_header (Use if the row is a header row)
row_detail (Use if the row is a detail row)
row_summary (Use if the row is a summary row)
Then if your row is either the topmost or bottommost row (e.g. h0 or s0) you should indicate
this by adding one of the following classes.
top
bottom
Then if your row is either the topmost row, the bottommost row (e.g. h0 or s0) or a detail
row, and you have created breakrows, you should add the following class.
grouped
Then if your row is a detail row, you should copy the style into to the alt style class and add
the following class.
alt
Then if your row is a break column you should add a group class to its classes, that tells the
system which break group the row belongs to. There are 4 groups available and you should
use the groups that have the lowest numbers first. E.g. if you have 3 break groups, you
should use group0, group1 and group2. Higher group numbers should be used for lower row
definition numbers to give the feeling of more encompassive vs less encompassive groups in
the layout. E.g. if you have break columns h.10 and h.20, you should use group0 and
group1, but you should assign group1 to h.10 and group0 to h.20.
group0
group1
group2
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 45(108)
Documentation
Agresso WebInfo 3.9
group3
Finally, for each break column header and break column footer, you should add another row
definition, but below the source e.g. if source row is h10.1 this would become h10.2. This
row should have the same classes as the source row, but with one class added.
spacer
Example Table row definitions
Sida 46(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Sparklines
Sparklines
SSPPAARRKKLLIINNEESS are small charts that can be placed in a line of text, a corner or a table. Each
sparkline object can display two charts concurrently where the second chart is overlayed on
the first one. These charts can take on different appearances, i.e. a bar chart with an
overlayed line chart. In addition, a normal zone can be defined. This zone is bounded by an
upper and a lower value. The zone is colored to show for example, an accepted or expected
interval.
Each chart type has its custom settings for colors and behavior, but these have been reduced
to a minimum to make sparkline setup fast and simple. For more complex charts with
legends and more, the ChartFx object should be used. Sparklines cannot be exported to excel
or PDF, they exist solely in the context of the web browser.
The most important property is SqlId. It is responsible for feeding the sparklines with data,
labels and x values. To control the behavior of the sparklines, the following reserved column
names can be used:
recid - Associatea a sparkline to a specific table row. More information below.
series1_value – The y value column of the first serie.
series1_name – The label of the first serie. The value of the first row will be used.
series1_suffix – Suffix appended to each value in tooltip, i.e. kr, euro.
Only the value of the first row will be used.
series2_value – The y value column of the second serie.
series2_name – The label of the second serie. The value of the first row will be used.
Series2_suffix – Suffix appended to each value in tooltip, i.e. kr, euro.
Only the value of the first row will be used.
x - The x value to be used for each corresponding serie value.
If x values are not provided, integers starting from 1 will be used.
xlabel - The text to be shown in tooltip for each corresponding x value.
If xlabel is not provided, x will be used for tooltips.
Drilling into Sparklines
In addition to above columns, the columns drillvalue[serie] and drilltext[serie] can be used.
The values of these columns will be included when drilling by clicking on the chart.
Drillbehaviour is only enabled when the property DrillPage is set.
Using Sparklines in Tables
To associate a sparkline to a table, both the table dataset and the sparkline dataset needs to
have a recid column, associating them with eachother by recid value. A column of type
sparkline must then be created with EditControlId pointing to an existing sparkline template
object. The data generated by the sparklines sql must in turn generate multiple sets of data
where each set is separated by its recid.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 47(108)
Documentation
Agresso WebInfo 3.9
Sparkline Properties
All colors are given in the form RRGGBB where each group takes a hexadecimal value
between 00 an ff, i.e ff90b1
LineColor, SpotColor, FillColor – If two line charts are used in the same sparkline object,
two color codes can be given separated by a comma. I.e. ff90b1,40ffa0
StackedBarColors – This property takes a series of color codes separated by commas. There
are four default colors set by default. This property is only used when MultiSeries is
checked.
MultiSeries – This property disables the functionality to overlay two charts, but allows even
more series to be specified (value, name suffix). These series will be stacked on top of
eachother in a bar chart. When MultiSeries is checked, negative values will be stacked like
positive values as and NegBarColor will not be used.
Sida 48(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
PivotGrid
PivotGrid
The PPIIVVOOTTGGRRIIDD object is a control that displays a data viewing tool that can be used to pivot
and analyze data. The recordset of a SQL is the source of the data collection to be pivoted.
For more information on usage – see eguide.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 49(108)
Documentation
Agresso WebInfo 3.9
Graphical controls
ChartFX and GaugeFX
WebInfo has built-in support for the third part products ChartFX and GaugeFX from
SoftwareFX. These products are automatically installed on the web server by WebInfo. The
different type of charts and gauges can be seen on this site http://eu.softwarefx.com/sfxGallery/
Examples:
Picture 9: Gauges
Different charts and gauges can be combined to display more complex information.
The CCHHAARRTTFFXX object cannot be AJAX loaded when using its toolbar. The property
NNooLLaatteeLLooaadd has to be used on WWEEBBIINNFFOOFFRRAAMMEESSEETT and TTAABBSSTTRRIIPP for such charts.
CCHHAARRTTFFXX and GGAAUUGGEEFFXX properties are specified in a XML based definition. The schema for
the XML can be found in the directory “[WebInfo INSTALL DIRECTORY]\Schemas”. Use
an XML editor to produce the CCHHAARRTTFFXX and GGAAUUGGEEFFXX definition, e.g. Visual Studio or a
third part tool such as http://xml-copy-editor.sourceforge.net/; or the XML design helper available
in the help menu.
An SQL statement can be used to populate the chart. The column names from the recordset
can be referred to in the XML using the standard : colon prefix.
The XML definition is parsed at runtime and WebInfo variables are replaced in the same
way as with WebInfo SQL queries. This means that almost everything in the charts and
gauges can be handled dynamically.
The charts and gauges can be shown in image- or .NET mode. To use the .NET mode,
permissions need to be assigned on the client side. See this article
http://support.softwarefx.com/kb/614/1/001.htm. We recommend the image mode for easy
setup.
See the document “Charts and Gauges” document for more details on how to design these
objects.
Sida 50(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Picture 10: Pie Chart
Indicators
IINNDDIICCAATTOORRSS can be used to show key values or trends as a graphic symbol instead of just a
numeric value. An indicator has a number of TTHHRREESSHHOOLLDD objects that keep information about
the threshold value and the image and text that corresponds to it. Indicators can be used as
regular controls on a page or used within a TTAABBLLEE. If used as a self contained control it uses
the SSqqllIIdd property to get its value. If not, it is taken from formula CCooddee if specified,
otherwise it takes it from the recordset column matching the vvaalluuee property of the CCOOLLUUMMNN
definition.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 51(108)
Documentation
Agresso WebInfo 3.9
Execute objects This chapter will explain some details regarding specific types of objects that let you
execute code on the server.
ExecuteSql
An EEXXEECCUUTTEESSQQLL is a object that allows you to execute a SQL statement on the server. The
most common usages of this feature are to set WebInfo variables based on data in a
database, and make database updates. E.g. you could set a variable to a users hometown
based on a query, knowing its social security number.
ExecuteScript
An EEXXEECCUUTTEESSCCRRIIPPTT is a object that allows you to execute a code block on the server. This is a
good way to protect some of your custom logic that you don’t want to show in clear text on
the client side. It is also good because it gives you access to some server features that you
would not have on client side, e.g. file operations.
Bounce
A Bounce is an object that lets you interrupt the loading of the page and redirect you to a
new page. This is good when you have some logic you only want to run once. You could run
that logic on a page and then redirect to another page, ensuring that the logic is not repeated
if the user refreshes the page. Having the bounces active in edit mode can be a nuisance
since it makes it hard to edit the pages that have bounces attached. Therefor it is possible to
toggle bounces on and off in edit mode using CTRL + B.
Execute Position
To ensure that WebInfo runs your execute statements at the appropriate time during the page
load, a property called EExxeeccuutteePPoossiittiioonn is provided. This property can be set to one of the
following values.
BeforeAuthentication: WebInfo has not authenticated the user yet and most variables (form
input controls, ajax variables) will not be available.
AfterLoadingVariables: WebInfo has populated all the variables except ajax control
variables. The engine has not yet created any controls however. This is probably the most
common execute position.
BeforeLoadingControls: A little later than AfterLoadingVariables, among other things
SaveTables has been called, so this is the execute position to use if you want to retrieve
values from a saved table before controls have been loaded.
AfterLoadingControls: Any changes in variables here will not be noticed in the controls
until next loading of the page. This could be a good place to clear a save message that you
display on the screen. It will be shown during this load, but not the coming.
BeforePopulateTreeNode: This is run before a tree is expanded using AJAX.
Sida 52(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
RenderComplete: This is run just before WebInfo renders the page. WebInfo will not alter
the page anymore after this stage. This is the last chance to run any code before page is
rendered.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 53(108)
Documentation
Agresso WebInfo 3.9
Attached objects These are controls that attach to other controls and act as properties or extensions to the
parent control, adding extra functionality and features. The subcategories these controls sort
into include the input VVAALLIIDDAATTOORR controls, the OONNCCHHAANNGGEE controls, the value PPIICCKKEERR controls,
the PPAARRKK property and the CCOOMMMMEENNTT object. These can all be accessed and added to a control
using the context menu.
Input Validation Controls
These controls can only be added to input controls. They allow for data validation, both
client and server side. See validation chapter in the Input section for more information.
OnChange Controls
OONNCCHHAANNGGEE controls allows you to act on changes made to input controls or more precisely -
the onchange event fires as you leave an input control after changing its value. These events
can be set to trigger server side scripts, client scripts or SQL queries.
Value Picker Controls
Picker controls present a selection of choices based on the type of picker used. In some cases
the options are filtered based on a search text typed by the user. See the Pickers chapter in
the Input section for more information.
Park Object
The Park object allows you to park a WebInfo control so that it does not display. The control
is still kept in the configuration however, which means that you can restore the control to a
visible state when you need.
Comment Object
The comment object is an object you can attach to any WebInfo control which then gets a
new option in its context menu to comment the object. Comments can be made personal,
group based, grouped on any value you like or generally visible to all using the RReellaattiioonn
property of the CCOOMMMMEENNTT object. All comments in a group will be visible when adding a new
comment, presenting the contributor with a comment history much like a forum thread. To
store comments to a comment object the WebInfo Module table need to be installed in your
database.
Combining the CCOOMMMMEENNTT object with the TTAABBLLEE control allows you to comment individual
cells or whole rows, marking up cells or rows as they get commented.
In order for the comment object to work in conjunction with a table control the recordset
returned by the SQL query must contain the “recid” column with uniquely identifiable ids
that separate each unique row. Since the recid must be unique for each row, concatenating a
number of column values usually works well, maybe together with the users id and other
SQL parameters such as report period etc.
The standard way to comment a table is the most specific, that is per cell comments, but row
comments can be switched on by creating a special comment column in the column
Sida 54(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
configuration edit grid. In both cases a recid column needs to be created or the comments
will simply attach to the table as a whole.
A use for this could be to comment financial reports and values that need further attention
by members of the team.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 55(108)
Documentation
Agresso WebInfo 3.9
Input WebInfo has several powerful features for creating input data solutions and advanced web
applications and not only reporting solutions. But handling data input forces the solution
developer to work slightly different.
Execute and Bounce Pattern
The most common way to update a database in WebInfo is by using the “Execute and
Bounce” pattern. You first create the input controls you need for the data you want to add to
the database, e.g. a few textboxes.
Then you create a submit button that takes you to another “save-page”. On the save page
you add an EEXXEECCUUTTEESSQQLL object that updates the database according to the values of the
controls. Finally you add a bounce object that takes you back to your solution again.
Note: Use Ctrl+B to disable bounces while editing.
Initial value for input control
All input controls have a property IInniittVVaalluuee that sets the initial value for the control when
first loaded. The RReesseettAAllllIInnppuuttCCoonnttrroollss and RReesseettIInnppuuttCCoonnttrroollssOOnnPPaaggee page properties can
be used to reset controls. It is also possible to use server side scripting to reset input controls.
See scripting reference for more information. Resetting input controls will force them to
reinitialize. The IInniittVVaalluuee property can be a fixed value, variable (prefixed with :) or title
(prefixed with $). A SQL statement can be used to set the initial value by setting the IInniittSSqqll
to the appropriate query.
Pickers
To assist the user in choosing an appropriate value to input, WebInfo provides an array of
pickers such as DDAATTEEPPIICCKKEERR, PPRROOMMPPTTPPIICCKKEERR, SSUUGGGGEESSTTPPIICCKKEERR and CCOOMMBBIINNAATTIIOONNPPIICCKKEERR. The
DDAATTEEPPIICCKKEERR allows the user to pick a date and returns the value in the date format of the
language settings of the users. The other pickers give the developer a chance to specify a
range of allowed values for the input control by making a SQL statement. When the user
fills in the value, WebInfo will provide the user with appropriate choices based on the users
input. The PPRROOMMPPTTPPIICCKKEERR allows the user to search for valid values, while the SSUUGGGGEESSTTPPIICCKKEERR
filters the values to the user’s input, only leaving results that match what the user has typed.
The CCOOMMBBIINNAATTIIOONNPPIICCKKEERR offers the functionality of both the PPRROOMMPPTTPPIICCKKEERR and
SSUUGGGGEESSTTPPIICCKKEERR at the same time.
Sida 56(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Validation of controls
It is often necessary to make some kind of validation of the data before saving it. It can for
example concern the length of a field or formatting of a date field. E.g. a SQL may generate
an error if a project number longer than 25 characters is entered.
It is also common to want to check if certain fields are filled in and/or if they are valid
according to some rules. In a project page it might be preferred that only customers that
already exist in Agresso can be filled in.
To solve such demands on validation WebInfo uses a VVAALLIIDDAATTOORR. There are several different
types:
- Sql
- Regular Expression
- Script
- ClientScript
- DateTime
- Integer
- Decimal
All validators except for the CCLLIIEENNTTSSCCRRIIPPTTVVAALLIIDDAATTOORR are triggered both on the client side for
a better user experience and on the server side to prevent malicious users from modifying
the data before it is sent back to the server.
To group a number of validators together, a VVAALLIIDDAATTOORRGGRROOUUPP can be used. The
VVAALLIIDDAATTOORRGGRROOUUPP contains properties that describe how the validators within that group
should be validated. For example, a VVAALLIIDDAATTOORRGGRROOUUPP can have a property that demands that
at least one of the validators within the group have a value. All VVAALLIIDDAATTOORRs and
VVAALLIIDDAATTOORRGGRROOUUPPs belong to a VVAALLIIDDAATTIIOONN object. If no VVAALLIIDDAATTIIOONN object name is specified it
will belong to the empty VVAALLIIDDAATTIIOONN object. A VVAALLIIDDAATTIIOONN object can be triggered when a
save-button is pressed and has a special message that is displayed if the validation failed. A
VVAALLIIDDAATTOORR is either triggered by its VVAALLIIDDAATTIIOONN object or when the field that the VVAALLIIDDAATTOORR
validates is changed.
If you want a comprehensible message to be shown when a validation fails you can set a
TTIITTLLEE for the VVAALLIIDDAATTOORR or VVAALLIIDDAATTIIOONN object. This will be shown in red to the right of the
control that failed the validation or as a balloon tooltip if the validation was triggered by an
input field changing value.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 57(108)
Documentation
Agresso WebInfo 3.9
Dirty mark page
Input controls now have the property DirtyMarksPage that decides if a change of this
controls value should mark the page as dirty. A dirty page will present the DirtyWarning
text, a page property, if the user leaves the page without saving the frame that the control
belongs to.
Save Button
The Save Button control looks like a normal button but is customized to help us with saving
the input from several controls. The default behavior when the SaveFrameName property is
left blank is to save data from all the controls that are located in the same frame as the
button. By typing in an alternate frame’s ID, that frame’s controls will be saved instead.
When saving, it will do a number of things: it will call all the save SQLs of any tables
contained in the frame to be saved, triggering their validators if any; it will call its own
custom validaton if one is specified in the ValidationId property and if it passes it will call
its SaveSql or SaveCode if specified. If the SaveSql or SaveCode, depending on use,
returned without error, it will present the save successful message, otherwise the save failed
message.
Any input controls whos validators should be checked must belong to the validation
specified in the save button control. It is also possible to altenativly redirect to other pages or
run scripts when a save succeded or failed.
Sida 58(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Datawarehouse Besides using queries to populate controls, WebInfo also offers the option to display results
from a filtered WebInfo datawarehouse.
A WebInfo datawarehouse is a collection of data that can be filtered by attached filter
controls(Listbox, Dropdown). The filtered data is then used to populate value controls
(Table, Gauge, Chart). The benefit of using a datawarehouse for filtering is that performance
enhancing indexes are created automatically and that they are really quick to setup.
Populates
Populating a datawarehouse
A datawarehouse is populated by one sql statement. This means that if you want to use data
from several different tables you should join in all tables that are necessary in this one query.
Some of these columns should be used for filtering the data. To allow the filter controls to
display one value while filtering on the other, it is possible to add a column with the suffix
_text to the recordset for each filter column, and this will instead be shown in the filter
controls.
E.g. You want to filter on employees... While you might want to display the name in a filter
control, you really want to filter based on employment id. Then your warehouse query might
look like this:
SELECT empno AS emp, empname AS emp_text, ...
Also, a datawarehouse has several properties that tells you when to repopulate its contents
from the original datasource. It can be based on intervals, or the result of a sql statement.
The actual content of the indexed datawarehouse will be stored in a database of your choice.
You can set a prefix for the names of the tables created by the datawarehouse.
Filtering a datawarehouse
Since the datawarehouse wants to be able to index its data properly, it is mandatory to define
which columns that can be used in filters. These are specified in the filtercolumns property
Datasource Datawarehouse
Warehouse is filtered
by connected listboxes
and dropdowns.
Filtered data is
displayed by Tables,
Charts, Gauges.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 59(108)
Documentation
Agresso WebInfo 3.9
of the datawarehouse. Make sure to mark columns as filtercolumns sparingly as the
population time and storage size increase with more indexes.
The next step is to add a filtercontrol. WebInfo supports ListBoxes and DropDowns
currently. All that is required is that you choose which datawarehouse to apply filter to and
which filtercolumn to map the filtercontrol to and you are set to go.
Displaying results from a filtered datawarehouse
To display the results of a filtered warehouse, one needs to add a datawarehouse value
control. WebInfo currently supports Tables, Charts and Gauges for this purpose. Then you
choose which datawarehouse to map the value control to and create a query against the
datawarehouse. Each value control has its own custom editor that is used to define queries
towards the datawarehouse.
If one of the datawarehouse columns should be summarized over groups, it must be marked
as a value column in the datawarehouse.
If one wants to write a custom query against the datawarehouse, but still wants to be able to
use the current filter in the query, it is possible to do so using a wsql-command. For more
information on syntax, use the help in the sql-editor. One must still connect the control to a
datawarehouse however, or the filter sql will not be available.
Using an In-Memory service to drive datawarehouse
If the warehouse has a large quantity of data, sometimes the performance of running the
queries towards a database might not be enough. For those cases it is possible to set up a
WCF service that filters the data in memory and builds up grouped resultsets for use by
WebInfo.
Once a warehouse service has been set up (see separate documentation), WebInfo needs to
connect itself to the service. This is done by adding an application setting in web.config that
has the value set to the url of the service endpoint similar to the example below.
<add key="MyServiceEndPoint" value="http://myserver:8090/WareHouse"/>
After the setting has been created, the datawarehouse must be linked to the serviceendpoint.
This is accomplished by setting the ServiceEndpoint property of the datawarehouse object to
the key of the created setting in web.config.
If a value control is using the queryid to specify the selection, the above is all the changes
that need to be made. However, if the valuecontrol is using a sql statement to get the values,
the property Groupings on the value control needs to be set to a comma-delimited list of
columns to group on. Also, instead of querying the table suffixed with _warehouse one must
alter the query to use the table suffixed with _result and filter on controlid and combined
sessionids instead of wsql_dwhwhere.
Example classic SQL: SELECT * FROM DWH_WAREHOUSE WHERE
WSQL_DWHWHERE(‘DWH’) AND …..
Example service SQL: SELECT * FROM DWH_RESULT WHERE
CONTROLID=’tblTable’ AND SESSIONID=:@iissessionid + :@sessionid AND …
Sida 60(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
For ease of use, we provide an overload of the WSQL_DWHWHERE function that allows
you to use the same sql both for service and non-service calls. This overload requires that
the controlid is appended as a second parameter.
Example generic SQL: SELECT * FROM DWH_WAREHOUSE WHERE
WSQL_DWHWHERE(‘DWH’, ‘tblTable’) AND …..
For more information
Use the property tooltips and watch the detailed online guide available from WebInfo help
menu.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 61(108)
Documentation
Agresso WebInfo 3.9
Page action
Key mapping
In WebInfo, a function can be activated without using the mouse by adding a key mapping
that activates the function. This requires some knowledge on how the function is called in
JavaScript. It is wise to avoid a key mapping that affect the operating system, the web
browser or WebInfo’s editing mode. WebInfo’s reserved shortcuts can be found in the
reference manual.
In edit mode, the web browsers status row is set to the current key combination pressed to
help describe how to type a key combination.
Help for key mapping.
Some examples of syntax that can be used as a key shortcut:
F12
Ctrl-7
Alt-M
Shift-Ctrl-M
Shift-Ctrl-Alt-O
Key mappings can be created in the edit menu under Action->Keymapping.
Sida 62(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
File handling Files uploaded in WebInfo are stored in database tables, and more specifically the module
table. This table is also used to store other optional data such as favourites. So before using
the file related controls we must make sure that the module table is created or make a
database administrator add it for us.
The table needed to store the files will be automatically created by the installation
application when installing WebInfo with the configuration collection in a database. To
build the table manually, find the SQL by going to Setup->Setupsql from the edit menu.
Find the row that matches your database and retrieve the row called CreateModuleTable.
Execute the matching SQL in your database.
If a module table has already been created for another module solution, say for favourites,
that table could be used instead.
Adding the FileUploader and FileViewer controls
In order to upload files we need to add a FFIILLEEUUPPLLOOAADDEERR control to our page. A FFIILLEEUUPPLLOOAADDEERR
control always requires a full post to submit the file, so the page should be kept lightweight
for faster reload. The FFIILLEEVVIIEEWWEERR control is a simple control to browse uploaded files, delete
them or view their content. Both controls require very little configuration to work but
attention should be paid to the “relationid” property of the two controls.
The relationid creates a conceptual link between several files, almost like a file folder. All
files uploaded with a certain fileuploader are tagged with its corresponding relationid. A
fileviewer in turn will only display files with tags matching its own relationid. Thus, a
fileviewer having the same relationid as a fileuploader will display the files uploaded by that
fileuploader.
The relationid is a string that allows some simple references to WebInfo variables. E.g.
setting it to “:role_id - :client” would let all user that have the same role and belong to the
same client to view the same files.
Maximum File Size
The maximum allowed size of uploaded files derives from parameters within the web.config
or machine.config file within the system.web configuration section. The following three
parameters on under httpRuntime affect the maximum file upload size.
<system.web>
<httpRuntime
executionTimeout="110"
maxRequestLength="4096"
requestLengthDiskThreshold="4096"
/>
</system.web>
“executionTimeout” is the maximum value in seconds that an upload may take.
“maxRequestLength” is the maximum size (in kb) of any uploaded file.
“requestLengthDiskThreshold” is the maximum buffer size (in kb) and should be the same
as the maxRequestLength in the case of WebInfo. Larger values allow for larger file
transfers but also allocate more memory in the web server. This could be a risk if the
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 63(108)
Documentation
Agresso WebInfo 3.9
solution faces a large user base, as each user can then potentially allocate the same large
amount of memory in the web server causing it to crash. The solution developer should
therefore take measures and set an appropriate maximum file size depending on what users
are using the application and what other systems reside on the web server.
The blob object
If you have a file saved as a blob in a database you can use WebInfos BBLLOOBB object to retrieve
it. To accomplish this all you have to do is create a BBLLOOBB object and write a sql statement that
retrieves the binary data from the database. You can then tell WebInfo to fetch this blob by
appending blob=blobid on the url.
This allows you to set all urls in WebInfo to retrieve a blob. E.g. if you want to retrieve an
image from the database to use in an IIMMAAGGEE object you can set the iimmaaggeeuurrll of the IIMMAAGGEE
object to blob=blobid.
Sida 64(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Agresso
Agresso roles
WebInfo supports granting permissions to a control or Page for one or several Agresso
roleids. Adding this type of security is as easy as creating a permission object and setting
AgressoRoleIds to the list of roles you want to be able to access the item.
You also have another option. It is possible to create a permission object and set the
permission to an agresso menu id. If you do that, you will get the same permissions as that
menu in Agresso.
To find a menu id in self service you just browse the page and you can read it on the URL.
To find a menu id in Smart Client you can visit the form you are interested in, and click
CTRL+SHIFT+H.
Above steps are only usable on forms. If you want to find the menu_id for a folder, it might
require you to make SQL queries against the Agresso database tables.
Show documents from Agresso Document Archive
WebInfo makes it easy to retrieve documents from the Agresso document archive. The core
of the idea is that you first create a document source, which points to a selection of
documents in the document archive. Then you connect that document source to the
component that is to display the documents. For the document archive integration to work
you will need to set the client variable, aaggrreessssoobbaasseeuurrll and aaggrreessssooccoonnnneeccttiioonniidd page
properties.
A document source is defined as follows:
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 65(108)
Documentation
Agresso WebInfo 3.9
The DDooccSSoouurrcceeIIdd is a unique identifier for this document source.
The DDooccTTyyppee is the type of document that this document source will display
The indexes are used to filter which documents to show. To see what each index
means to each document type, refer to Agresso setup.
There is also a component that is used to display a list of documents that is called the
DDOOCCUUMMEENNTTSSEELLEECCTTOORR which is defined as:
The DDooccSSoouurrcceeIIdd can point to a comma separated list of document sources. If it
does, the items displayed in the selector will be those that match the document
source filters.
The TTaarrggeettFFrraammee sets which frame to open the documents in.
The CCoolluummnnssTTaabblleeIIdd is optional. If it is set, it will allow you to render the
DDOOCCUUMMEENNTTSSEELLEECCTTOORR as a table using the definitions set by an external table. The
available result columns that can be used are: doc_guid, view_method, title, description, lat_rev_no, entry_status, user_id, last_update,
doc_system_id, doc_library, mime_type, max_pages, link
Currently it is possible to map document sources using the following manners:
Using column definition:
It is possible to connect a column definition to a comma separated list of document sources
using the DDooccSSoouurrcceeIIdd column property. When this is done, the indexes in the document
Sida 66(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
source can use all WebInfo variables and all the data source column results for the current
row in the filter.
If the DDooccSSeelleeccttoorr property is set on the column definition, clicking the document column
will populate the chosen DDOOCCUUMMEENNTTSSEELLEECCTTOORR object. Otherwise, clicking the document
column will open the first matching document in the frame selected in ZoomTarget.
Using DocumentSelector:
It is also possible to map a DDOOCCUUMMEENNTTSSEELLEECCTTOORR directly to a comma separated list of
document sources using the DDooccSSoouurrcceeIIdd property on the DDOOCCUUMMEENNTTSSEELLEECCTTOORR. If this
manner is used, only the WebInfo variables will be available for use in the filters.
Agresso Focused Controls
WebInfo has a number of specialized controls that alleviate your task when creating Agresso
centered solutions. This chapter focuses on these and shows you how to get up and running
with them quickly.
Observe that these controls only are available if you have made them visible by
selecting Show Agresso Objects under the Settings menu,
AgressoDropDown and AgressoTextBox
These controls are integrated versions of the DDRROOPPDDOOWWNN and TTEEXXTTBBOOXX control with integrated
internal SQL code and several default values that allow you to quickly create Agresso
focused solutions with minimal configuration. The AAGGRREESSSSOOTTEEXXTTBBOOXX also adds a PPIICCKKEERR
control targeting the agldimvalue table in Agresso. The DDRROOPPDDOOWWNN is also populated from
the agldimvalue table. Both controls require that a few Agresso specific variables are set.
These variables are listed in the table below:
Variable Description
Agressoconnectionid The connection id used to connect to the Agresso database.
Client The Agresso client used.
AgressoPeriod control
The AAGGRREESSSSOOPPEERRIIOODD control works a lot like the other Agresso controls but has more
properties to control features such as start- and stop period, though most can be left at the
default value. It displays a dropdown with periods defined in Agresso.
The only mandatory properties for the AAGGRREESSSSOOPPEERRIIOODD control are the PPeerriiooddIIdd and/or
AAttttrriibbuutteeIIdd. The PPeerriiooddIIdd lets you specify which sort of period you want to display, e.g. GL
for general ledger. The AAttttrriibbuutteeIIdd lets you pick any attribute you like to allow for
customized periods. The Attribute if set will override any value entered in the PPeerriiooddIIdd
property.
AgressoPeriodSlider control
The AAGGRREESSSSOOSSLLIIDDEERR control works in the same way as an AAGGRREESSSSOOPPEERRIIOODD control, but instead
of showing a dropdown, it shows a slider control. A slider shows a line with a span of values
and a cursor which you can drag along the line to the value you want to select. The slider
also allows you to select a span of values by showing two cursors – one pointing at the
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 67(108)
Documentation
Agresso WebInfo 3.9
minimum value of the span, and one pointing at the maximum value of the span. If a span is
used, values are available in the variables <controlid>_value_1 and <controlid>_value_2.
Sida 68(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Customizations There will inevitably be cases where the built-in functionality of WebInfo is not enough to
solve a particular problem. Sometimes a customer may need to integrate WebInfo with
another system or needs to export/import data in some other way than by using a database,
RSS or web service. There are also cases where there is a need to enhance the presentation
in the browser or add certain client side controls which are not part of WebInfo. In order to
solve these types of customizations WebInfo has the possibility to use SSCCRRIIPPTT objects and
SSIILLVVEERRLLIIGGHHTT.
A Silverlight object can be used as a way to create complex and graphically rich client side
controls. Silverlight is Microsoft’s response to Flash and allows for fast client side controls
that even can play media such as sound and video. It is possible to initialize the Silverlight
control with values from WebInfo using a SQL statement. It is also possible to update
WebInfo from the Silverlight control using HtmlPage.Window.Eval. For more information
regarding the latter, refer to Silverlight documentations.
While Silverlight take care of much of the complex user interface, the script object can take
care of advanced logic. A SSCCRRIIPPTT can be written in one of several different languages and can
be executed on either the server or the client. Server side scripts have the ability to access
parts of the WebInfo engine such as variables and the log file. For more information on the
available functions see the sections Managed JScript, VBScript and Lua.
When using server side SSCCRRIIPPTT objects it is important to use the SSoorrtt property correctly. If a
SSCCRRIIPPTT changes a variable which is then used by an SQL statement in a TTAABBLLEE control it needs
to have a lower SSoorrtt value than the TTAABBLLEE.
JavaScript
JavaScript is the recommended client script language for WebInfo. It is a browser
independent scripting language designed to look like Java but is easier for non-programmers
to work with. See section “JavaScript Helper Functions Reference” for available functions.
JavaScript can be used as a server side language but it is not recommended.
Managed JScript
This engine is available on both x86 and x64 platforms. It is however not supported by
Microsoft and has stability issues. Not recommended for production environments. To get a
list of available functions, look in the “Server Scripting Reference” in the reference
document. To active Managed JScript as the serverside javascript engine of choice, set the
web.config parameter WebInfoServerSideJavascriptEngine to “”.
Jint
Jint is the recommended server scripting engine. Jint has the same syntax as javascript and is
available on both x86 and x64 platforms. To active Jint as the serverside javascript engine of
choice, set the web.config parameter WebInfoServerSideJavascriptEngine to “Jint”.
VBScript
VBScript is a Microsoft scripting language. All features of the language are available in
WebInfo except user interface methods such as MsgBox. Server side VBScript and
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 69(108)
Documentation
Agresso WebInfo 3.9
JavaScript are only available on older x86 platforms. To get a list of available functions look
in the “Server Scripting Reference” in the reference document.
Lua
Lua has been deprecated as of version 3.7. While support might be reinstated in later
versions, it is currently not recommended for production use.
Sida 70(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Scripting a Configuration
The case for configuration scripting
Sometimes it might prove beneficial to have a solution generated automatically from a script
based on a set of parameters.
Examples:
You have a template solution that could be reused for different customers that only
needs a few customer specific changes. A configuration page could read the
customer specific settings and rewrite the configuration based on them.
You need to generate a new report every time, based on differing external inputs, i.e.
browser reports.
You often create similar components or pages and want to build your own toolbox to
generate them quickly.
WebInfo provides a set of serverside scripting functions to allow this. To use them one must
either be in edit mode or have the page property PermitEditScriptingInRuntime set to true.
Currently these functions are available for serverside config scripting.
Configuration scripting API (All functions reside in Config object)
- void CreateControl(string viewId, string pageId, Dictionary<string, object> properties)
- void UpdateControl(string controlId, Dictionary<string, string> updatedProperties)
- void DeleteControl(string controlId) - void DeleteControlsInFrame(string pageId, string frameName) - void DeleteDataWarehouse(string warehouseId)
- void CreateOnChange(string viewId, string pageId, string targetControlId, Dictionary<string, object> properties)
- void UpdateOnChange(string controlId, Dictionary<string, object> updatedProperties)
- void DeleteOnChange(string controlId) - void DeleteAllOnChangeOnTarget(string controlId) - void CreateAdHocConfig(string tableId) - void DeleteTableConfig(string tableId) - void CreateColumn(string tableId, string rowId, Dictionary<string, object>
properties) - void DeleteColumn(string tableId, string rowId, int sort)
- void UpdateColumn(string tableId, string rowId, int sort, Dictionary<string, object> updatedProperties)
- void CreateRow(string tableId, string rowId, Dictionary<string, object> properties)
- void DeleteRow(string tableId, string rowId)
- void UpdateRow(string tableId, string rowId, Dictionary<string, object> updatedProperties)
- void CreatePicker(string viewId, string pageId, string targetControlId, Dictionary<string, object> properties)
- void UpdatePicker(string controlId, Dictionary<string, object> updatedProperties)
- void DeletePicker(string controlId)
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 71(108)
Documentation
Agresso WebInfo 3.9
- void DeleteAllPickerOnTarget(string controlId) - void DeleteSql(uint sqlId) - uint CreateSql(string sql, string connectionId, bool cached, int
commandTimeout, string description, bool wsShared, bool onlyProtectedVariables)
- uint UpdateSql(uint sqlId, string sql, string connectionId, bool cached, int commandTimeout, string description, bool wsShared, bool onlyProtectedVariables)
- void DeleteCode(uint codeId) - uint CreateCode(string code) - uint UpdateCode(uint codeId, string code) - void DeleteXml(uint xmlId)
- uint CreateXml(string xml) - uint UpdateXml(uint xmlId, string xml) - void DeleteQuery(uint queryId) - uint CreateQuery(string query)
- uint UpdateQuery(uint queryId, string query) - void CreateObject(string viewId, Dictionary<string, object> properties) - void UpdateObject(string viewId, string idProperty, string id,
Dictionary<string, string> updatedProperties)
- void DeleteObject(string viewId, string idProperty, string id) - void SaveConfig()
Sample configuration scripting code
var props = new System.Collections.Generic.Dictionary{System.String, System.Object}();
props.Add("ControlId", "mybutton");
props.Add("FrameName", "myframeset");
props.Add("X", 100);
props.Add("Y", 100);
props.Add("SubmitUrl", "http://www.unit4.com");
Config.CreateControl("button", "autogen", props);
Config.SaveConfig();
Sida 72(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Change WebInfo ”Look and feel”
Customizing Initialization Titles
As a default behaviour, WebInfo will initialize displaying the text
“Please wait while the server is warming up.”. For most cases this will be an informative
text that tells the user that the WebInfo engine is starting up and that there might a delay
before the first page is shown.
There might be cases however when you might want to change this title to something more
appropriate for the current solution. Since WebInfo is not started at this time, this text cannot
be read from the configuration. To make it easy to distribute the customizations of these
titles, they are read from javascript functions, and thus can be overridden by a script from
the custom folder which is normally distributed as part of each solution.
To override the initialization titles, create a file called InitScript.js in the custom folder and
create the following functions to set your custom titles.
function GetInitializationPageTitle() { return "Your custom page title..."; } function GetInitializationText() { return "Your custom initialization text..."; }
Control appearance with stylesheet classes
Many controls have a CCssssCCllaassss property which can be used to specify the appearance of a
control. WebInfo has a few predefined classes that can be used. It is also possible to add
your own CSS classes in a stylesheet file ([filename].css) located in the Custom folder in
WebInfo.
Themes
WebInfo gives you the option to choose a theme for your solution. A theme gives your
application a predefined uniform look and feel.
Themes do not only change the colors and fonts of your solution, but in many cases alters
shape and size as well. This means that your application must be designed from the start
with a particular theme in mind. A later change might cause controls to overlap or disappear
from view.
WebInfo comes packaged with three themes – Agresso, A12 and CarbonLight. You set the
theme of your choice by changing the value of the setting WebInfoTheme in web.config.
The Agresso theme is meant to mimic the look and feel of the earlier Agresso Self Service
applications. It has a corporate look with small controls that allows for much information on
a page.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 73(108)
Documentation
Agresso WebInfo 3.9
The A12 theme is meant to mimic the look and feel of the current Unit4 feel. It also has a
corporate look with small controls that allows for much information on a page.
The CarbonLight theme has a modern, soft touch and was created with the intention of
displaying data in a way that is easy on the user to digest. Controls are larger and easier to
read. Important details are highlighted to grab the user’s attention.
It is possible to customize an existing theme or create a completely new one by adding css
files in your Custom\Themes\[THEME] directory. Any styles here will override the settings
of the normal theme. By making changes to the theme in the custom folder instead of editing
the theme directly, you protect your changes through upgrades of WebInfo.
Sida 74(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Printing from WebInfo
Since WebInfo runs in a web browser you always have the option to print it as you would
any web page on the Internet. As this often is a problematic process resulting in scrollbars
where they are not wanted, cut off pages both horizontally and vertically and more, WebInfo
have a number of JavaScript functions to let you reformat the page for printing.
JavaScript Functions for Printing
First there is the WebInfo.Print() function that opens up the current page in a new window,
changes the CSS style sheet as to remove scrollbars and let tables flow to their full length if
possible, then it executes the web browsers own print functionality. After printing the new
page it closes it.
There is also another version of print called WebInfo.PrintPage(). The difference is that
PrintPage removes all controls from the printout except for tables and filterinfos given that
there are any tables on the page.
Finally there is the WebInfo.Preview() function that does the same as the WebInfo.Print()
function except that it does not print automatically and it does not close the new window.
This leaves the user with new window displaying what the page would look like if printed.
These functions can be attached to a button or a link by setting their URL to: javascript: WebInfo.Print();
Considerations when Printing a Web Page
No matter how you format a page in WebInfo the browser still puts it limitations on how the
final print will render the page. The most common reason for pages not printing the way
they are supposed is that web browsers commonly do not know how to print positioned
elements correctly. These elements will often be handled as atomic units that, even if they
contain text, cannot flow across pages or extend as the page width allows. The result is
controls that get truncated horizontally and cut of abruptly vertically.
What can be done if a page needs to be printed correctly is composing a separate print page
in such way that it all fit into the width of the paper. Horizontally, using a flow layout
without absolute positioned elements helps out but table objects will still break rows unclean
on page breaks. As the browsers get more advanced this might change but as of the time of
writing there are not enough CSS tags supported that allows you to tell the browser how or
when to break the page.
If you want to hide an object when printing, such as buttons or personal information, there is
a “hideonprint” class that can be used. There is also a “hideframeonprint” class that let you
hide the borders of a frame object when printing.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 75(108)
Documentation
Agresso WebInfo 3.9
Security There are several security threats to a web application like WebInfo. This chapter starts by
describing the most common threats that affect web applications today and then this chapter
has a section describing how WebInfo handles security to provide a secure foundation for
your application.
Common Security Threats
SQL Injection
SQL injection is a technique that exploits a web application connected to a SQL server by
writing clever SQL code as data input, and thereby making the SQL server execute other
code than was intended by the application. A malicious user can input SQL code instead of
normal data. The malicious SQL code is then inserted into the SQL statement by the web
application and is then sent to the SQL server. This malicious SQL code can retrieve, insert,
update or delete sensitive data.
Cross-site scripting (XSS)
Cross-site scripting is threat that occurs when a web application presents data that was
previously inputted by another user. A malicious user can input code such as HTML-code or
client-side scripting code (JavaScript, VBScript) instead of normal data. When this code is
then later presented to another user it could e.g. trick the user to reinput the password and
then save it to another server for future use.
Man-in-the-middle
A web application running over HTTP protocol is open to attacks by malicious users that
want to retrieve or change the data flowing between the user and the server. The attacker
sets up two connections, one between the victim and himself, and one connection between
the server and himself. Then he can alter and view the data as it passes him.
Cross-Site Request Forgery (CSRF)
If you have authenticated yourself against one web application, and later on use another web
application, the later application could silently forge a request against the previous
application using your account privileges.
WebInfo Security
WebInfo strives to make it easy for you to create a secure web application with as little
effort as possible. To accomplish this WebInfo provides different options for securing every
part of your application throughout your whole solution from installation to logout. The
details for securing your solution are described below.
Security at Installation
Admin WebInfo Account
Sida 76(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
During the installation of WebInfo, you will have to create an admin account. This account
will allow you to log into development mode in WebInfo from another server. The password
will be stored using a one-way encryption algorithm to ensure its protection. If you at a later
stage want to remove support for remote logins you can delete the admin account from
WebInfo’s edit mode. If you do so, you will only be able to log into development mode on
the host machine.
Admin DB Account
During the installation of WebInfo you will have the option of installing your configuration
in the database using an administrative account. If you choose to do that WebInfo will use
the admin account to install all the necessary configuration tables, and then grant the
necessary privileges to run WebInfo to the runtime db account. The login details of the
admin account will then be discarded. This ensures that your runtime account for WebInfo
will have the least amount of necessary privileges to run the application. If you want to
change the db account at a later stage it is possible to do so by changing the configuration db
account in web.config (assuming you have not chosen to encrypt web.config).
Encrypted configuration
During the installation of WebInfo you will have the option of increasing the security of
your solution by encrypting your configuration files. This will prevent a user, who has
managed to get hold of your configuration files, from reading your connection strings and
other sensitive information.
Application Security
Obfuscated & Signed Code
WebInfo’s application code has been obfuscated which means that it is difficult to
decompile. This makes it much harder for an attacker to look for potential vulnerabilities if
they have access to the application. It has also been digitally signed, preventing any
modifications to the code after compilation.
Tested with HTTPS
WebInfo has been tested to work under HTTPS. If you choose to protect your site by
securing it with HTTPS you will have a reasonable protection against man-in-the-middle
attacks.
Security at Authentication
Authentication methods
WebInfo supports several variations of authentication (windows integrated, forms, url, none,
custom, agresso url and agresso sso). The authentication mode is set either on a global
master page basis, or can be overridden on a page basis. This allows you to have public
sections of your solution as well as protected sections. Each authentication method is
described in more details in the chapter about Base Configuration.
Nonce
To protect against cross-site request forgery WebInfo has implemented nonce protection.
This means that each request submitted to WebInfo must either be a login request or be
submitted with the correct nonce token created by WebInfo in the previous five requests.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 77(108)
Documentation
Agresso WebInfo 3.9
This ensures that the request was made from WebInfo. Any request that fails to abide by
these rules will cause an automatic logout from WebInfo. Automatic authentication types
such as “windows integrated” will send the user to the start page after clearing the session
since the concept of being logged out does not exist.
A side effect of this implementation is that using the back button in the browser will cause a
logout since the page is not properly posted. If you want the user to receive a warning
instead of being logged out, you can either set page property DisableLeavingPageWarning
to disabled. If this parameter is disabled the user will get a warning every time he tries to
leave a page using web browser navigation. If you want to disable the nonce protection
completely you can do so by setting WebInfoDisableNonce to 1 in web.config. If you do
that, the back button will work, but you must have in mind when designing your pages that
the user might navigate differently than your original intentions.
Authorization
Permission Objects
WebInfo’s main mean of handling authorization is through the permission objects.
Permission objects are non-graphical objects that consist of two important parts, an
authorization method and a securable. The securable is the object to be secured. It can either
be a control or a page. If the authorization fails for a control it will not be rendered. If
authorization fails for a page you will be redirected to another page.
There are several methods of authorization. Listed below are the ones supported by
WebInfo:
AlwaysApprove – Always approves the security check. i.e. a global control might
need authorization on all pages except on one public page. You could set approve on
the specific page and it would override the global setting.
Always Deny – Always denies the security check, i.e. you have a global control and
want to hide it on some pages for everybody.
Sql – You can write your own custom sql logic to decide whether a user is
authorized or not.
Code – You can write your own custom server side script block to decide whether a
user is authorized or not.
User security level – If you set up the user’s accounts in WebInfo you can grant them
a security level which can be used to verify their access.
Agresso role ids – If you use an authentication method based around agresso
accounts you can use agresso role memberships as a mean for authorization.
Agresso menu ids - If you use an authentication method based around agresso
accounts you can retrieve the authorization privileges on a certain menu item in
agresso and apply it to your securable. This allows an agresso administrator to
simply alter privileges in WebInfo from Agresso.
Users – You can grant authorization to a specific list of users.
User groups – If you use windows authentication you can grant authorization to a
specific list of active directory user groups.
LDAP Queries
If you cannot base your authorization on group membership alone, WebInfo allows you to
write your own queries against LDAP which gives you to access to all the data in the active
Sida 78(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
domain. This way you could for instance grant access based on which department or account
the user belongs to if that information is available in the AD.
The syntax to LDAP queries is a little tricky and requires knowledge of the AD setup.
Example: SELECT CN, telephoneNumber, mobile, mail FROM
'LDAP://OU=Sweden,OU=Locations,DC=corp,DC=u4agr,DC=com' WHERE
objectCategory='Person' AND CN = 'Johan*' ORDER BY CN
Validating User Input
System supported validations
There are many aspects to think about when securing your specific configuration for
WebInfo. One of the most important is validating your user input. WebInfo provides some
automatic validation of user input in the regard that for fixed value option controls
(dropdowns, listboxes etc) WebInfo will not allow a user to post a value that is not one of
the options.
Custom Validations
To ensure that a user does not provide a bad value as input you can write your own
validation method or use one of WebInfo’s preconstructed basic validation methods.
Validators can be attached to variables or input controls (textboxes etc), and WebInfo will
make sure that all values being passed in passes the attached validators before setting the
value.
Preconstructed validation methods include:
DateTimeValidator (Allows only datetimes)
IntegerValidator (Allows only integers)
DecimalValidator (Allows only decimals)
Custom validation methods include:
RegExpValidator (Value must match the defined regular expression)
SqlValidator (Result of sql query must be 1)
ScriptValidator (Result of server-side script must be true)
ClientscriptValidator (Only validates client-side and is used for providing quick user
feedback rather than actual security).
Data typing
In many cases it might be of interest to ensure that a variable always is of a certain data type.
In these cases WebInfo provides means of setting a data type for each variable. This data
type will enforce that only values of accurate data types are allowed and also provide a
foundation for using the variable in parameterized sql queries, casting the variable to the
appropriate parameter type.
Securing Variables
In some cases you may wish to ensure that a variable can only be altered under specific
closely monitored circumstances. To accomplish this you have the option of specifying a
variable as protected. Protecting a variable means that the variable is read-only except when
set using an executesql specifically allowed to override the protected variable (allowed by
setting SetSecureVariables property on executesql object). Protected variables can easily be
initialized to a hard coded value using the variables editor. WebInfo’s internal system
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 79(108)
Documentation
Agresso WebInfo 3.9
variables are protected by default, and careful consideration should be taken before
overriding one of those variables.
Writing Secure SQL Statements
Parameterization
One of the most common attacks on a database driven application is using SQL injection to
modify the statements to do something else than intended. To ensure the protection of your
system you should always take care to parameterize all variable data in the sql statements. In
WebInfo you normally access the value of a variable by preceding it with a colon (:), e.g.
you type :myvar to ask WebInfo to replace the text with the contents of the myvar-variable.
To change pure replacement in an sql to a parameterization, all you have to do is precede the
variable name with :@ instead, e.g. :@myvar. By using this later notation you are telling the
database that the contents of myvar should only be used for its value, and no sql contained in
the variable should ever be executed.
If you have a comma separated list of items in a variable that you want to use in an IN-
statement, you can parameterize the variable by prefixing it with :@IN@ instead, this will
generate a parameter for each comma-separated value. E.g. a variable called ‘animals’
containing the value “ ‘cat’, ‘dog’, ‘monkey’ “ referenced by :@IN@animals, will result in
three comma separated parameters containing the values ‘cat’, ‘dog’ and ‘monkey’. This
allows for queries such as “SELECT * FROM animals WHERE animalname IN
(:@IN@animals)”.
Protecting columns
When you use a sql statement to populate an editable table, there are times that you want to
make sure that one of the columns is only updatable under certain circumstances. WebInfo
allows for protecting a column by selecting the column with the suffix _input and setting it
to some value other than 1. Options for _input are:
0: Hide column
1: Editable column
2: Disabled column
3: Label column
4: Do not render column
5: Disabled but updatable column
An example to clarify:
You have an editable table where you can edit a user’s phone number and security level.
You want everyone to be able to update the user’s phone number, but only John should be
able to update the security level. Since your update statement must be able to handle all
cases you use the following statement:
“UPDATE users SET phone=:@phone, securitylevel=:@securitylevel WHERE
username=:@username”.
To ensure that no malicious user tries to modify the update data client side and post it, you
can lock the securitylevel column for everyone but John with the following statement:
Sida 80(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
“SELECT phone, securitylevel, CASE :@user WHEN ‘John’ THEN 1 ELSE 2 END AS
securitylevel_input FROM users”.
Recognizing unsafe sql statements and securing them
If you follow a few basic rules when examining and designing a sql statement you are on a
good way on securing it. Below are described the basic principles of designing a secure sql
statement:
Use parameters whenever possible.
If you see a sql statement like this:
“SELECT * FROM tblTable WHERE column1 = :column1.
Change it to:
“SELECT * FROM tblTable WHERE column1 = :@column1
If you are for some reason forced to build your sql dynamically so that a parameter is
not an alternative, always mark your variables as protected so that you have full
control of how the variable is set.
E.g. if you have the following statement:
“SELECT * FROM tblTable WHERE :whereexpression”
The variable whereexpression should be marked as protected and only be set in a
specific executesql statement with permission to overwrite the value of the variable.
Whenever possible, use validators to control the values of your variables. Example:
If you are using a dynamic sql that chooses which sql id to use depending on the
contents of a variable, make sure that you have a validator on the variable so that it
only can contain appropriate sql ids.
E.g. You have a table that could either be populated from sqlid 54 or sqlid 55
depending on the contents of variable :populatingsql. The select sql of the table is set
to “:populatingsql”. You should add a validator to variable populatingsql so that it
can only contain the value 54 or 55.
If you are using an input table, always use your select statements to control access to
your columns. Detailed example is given in the previous section “Protecting
columns”.
Whenever possible, restrict access to data in all sqls based on logged in user and its
privileges.
E.g. On page 1 your user’s security level allows him to show financial data for
company A and company B. On page 2 that data is to be displayed. Instead of using
the sql: “SELECT * FROM tblEconomy WHERE company = :@selectedcompany”.
You should use “SELECT * FROM tblEconomy e LEFT OUTER JOIN
tblCompanyAccess ca ON ca.company = e.company WHERE company =
:@selectedcompany AND ca.privilegeduser = :@user.”
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 81(108)
Documentation
Agresso WebInfo 3.9
By doing this you introduce an extra layer of protection in case you make a mistake
on another page in your solution and accidently allow the variable selectedcompany
to be set to a faulty value.
Handling user inputted data
Displaying user inputted data
The internet is not always a safe place for your computer. The browsers we are using are
often proved to contain security holes which allow unsafe code to be executed on your
computer if you visit a malicious page. If you have a solution that allows users to enter data
that can be displayed to other users, they could save html code that contains a script that
when shown to another user redirects him to a malicious page. To provide security against
this type of attack, WebInfo will as default never render data in html format. As long as you
do not change any settings, your solution will be safe from this type of attack.
However there are times when you might want to render html to the user that you know to
be safe. As an example you might want to render your own clickable image in a column in
your table by using a select statement such as “SELECT ‘<img src=’myimg.jpg’
onclick=’DoSomething()’/> AS theimage”. If you need this option, WebInfo allows you to
disable XSS protection on page level, specific columns and specific variables. Look for the
disablexssprotection setting on the appropriate object.
Receiving user inputted data
The protection above only protects dangerous data from being shown in WebInfo, not from
being inputted. If you are using WebInfo as an input system for data that might be displayed
in another less secure web application you should also make sure that the data being written
to your database is safe as well. A good way of doing this is by adding a variable data type
matching your input controls and setting them to data type StringXSSSafe.
Opening up your solution for AJAX requests
AjaxExecuteSqlAndScript
By default WebInfo will only allow sql and script calls that are part of the server side
solution. However interest is growing for web applications that do not make full page
postbacks all the time. To accomplish this, you might want to update just a single control on
the page based on a value the user selects. This puts demand on the application to be able to
act upon javascript requests rather than postbacks.
WebInfo has an extensive client library for just this purpose. To activate this functionality
you set the value of AjaxExecuteSqlAndScript to 1 on the appropriate page object(s).
Keep in mind though that if you open up for these types of calls, experienced web users will
be able to call them at their leisure as well, using the parameters of their choice. This puts a
much higher demand on the security of your solution so that every sql statement, variable
and server side script is inherently secure, because you cannot predict how the user will call
them.
Finalizing your solution
Sida 82(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Generation of privileges
When you are done developing your WebInfo application you want to make sure that the
application runs under the least possible amount of privileges to execute correctly. WebInfo
makes this easy by providing a function in the tools menu that is called “Analyze Sql” which
generates a list of database commands that will grant the executing account all the privileges
it needs to be able to run the queries contained in the solution, and nothing else.
Security through obscurity
WebInfoShowErrors
The less an attacker knows about your solution, the harder it is for him to find a weakness.
WebInfo protects your code by never showing any details about an error to the end user by
default. If you receive a crash in your code and want to know the details of the problem, you
either have to log on locally to the web server and provoke the error there, or you have the
set the variable WebInfoShowErrors to 1 in your web.config file (this will allow everyone to
see the details of the error).
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 83(108)
Documentation
Agresso WebInfo 3.9
Internationalization WebInfo supports most western languages out of the box but modifications are needed for
languages that need Unicode due to the number of symbols. Examples of languages that
require modification of the WebInfo solution to work are Chinese and Japanese. The
application itself already uses Unicode and therefore works fine with above mentioned
languages but changes need to be made to the database tables used to store the
configuration, module item information.
Modifying the Database to Support Unicode
The challenge lies in storing text in configuration and module tables as the VARCHAR
column type (or VARCHAR2 for Oracle) normally used to store text differs from the
NVARCHAR column type used to store Unicode text. Also Unicode characters require
twice the space of non-Unicode characters resulting in a NVARCHAR column being twice
the size of a regular VARCHAR column. So what needs to be done is manually creating the
configuration table and module table using a SQL code that creates NVARCHAR columns
instead of VARCHAR columns. Such a SQL code can be found in the Setup SQL menu
option in the Setup menu. This feature is considered experimental.
Sida 84(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Integrations Although WebInfo can run standalone, for some customers there is an increased value in
integrating WebInfo into their existing solutions. This chapter describes how to integrate
WebInfo with some common environments.
Connecting Agresso to WebInfo
WebInfo has support for making easy integrations with Agresso. To setup integration with
Agresso there are a few things you have to do.
Ensure that the menu setting Show Agresso Objects is activated.
Set the AggrreessssooCCoonnnneeccttiioonnIIdd page property to appropriate connection.
Install the ACT components and login table by choosing Setup->Install Integration
ACT from edit menu in WebInfo.
Create your Agresso links by creating them in Setup->Edit Agresso
Office/SelfService Menu. The links are modelled in a hierarchy. The leaves are links
and the rest are folders. Links should be written in this format to start WebInfo using
agresso_url.
http://<SERVER>/<WEBINFODIRECTORY>/Default.aspx?user=:user&client=:cli
ent&securekey=:securekey&login=1&newsession=1. You can also add “&target=
_self” to open WebInfo inside Agresso. If WebInfo is installed on the same machine
as Self Service then it is preferable to use this URL format
../<WebInfoDIRECTORY>/Default.aspx?user=:user&client=:client&securekey=:sec
urekey&login=1&newsession=1 instead.
For more information about what the url parameters mean – see the WebInfo
Reference Manual.
Grant privileges on your created links in Agresso.
Connecting Sharepoint to WebInfo
WebInfo has support for making easy integrations with SharePoint. To setup integration
with SharePoint there are a few things you have to do.
Copy _Integration\SharePoint\WebInfoSharepoint.dll to appropriate bin folder in
SharePoint.
Open appropriate Sharepoint web.config and change the following:
- Add the following row to SafeControls: <SafeControl
Assembly="WebInfoSharePoint, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=9bb32b018e636b54" Namespace="WebInfoSharePoint"
TypeName="*" Safe="True" AllowRemoteDesigner="False" />
- Ensure that trust is set to WSS_Medium
Copy _Integration\SharePoint\WebInfoWebPart.dwp to appropriate bin folder
Start SharePoint Site
Enter Site Actions -> Site Settings
Enter Galleries -> Web Parts
Choose Upload and browse to WebInfoWebPart.dwp and install
Add Web Part to SharePoint Pages.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 85(108)
Documentation
Agresso WebInfo 3.9
WebInfo Licensing WebInfo is licensed on the total number of users that have access to the solution, not
simultaneous users. Each user that signs into the solution get logged by WebInfo and when
the licensed amount of users is reached, the next user will be presented with an error
message stating that the maximum number of users has been reached, though there is a
mechanic that removes users from the WebInfo log after three months to let new ones use
the solution in the case others stop using it.
Licensing Data
WebInfo is set to demo mode after installation and needs to be licensed before it can be used
at its full capacity. The WebInfo serial number contains information about the server virtual
folder, how many users that can use WebInfo and how the WebInfo licence data is stored.
This serial number must match the install key configured into the solution.
The licence data can be stored either in file or in database. If a clustered solution is used this
data should be stored in database and not in file.
The install key must match the licence data. Also, the number of users which are logged in
the licence file, cannot supersede the maximum number of users stated in the configuration.
The licence data is based on different things depending on where it is stored. If the data is
stored in file it contains information about such things as virtual directory, domain and
machine name. If the licence data is stored in a database it is based on unique DB
information making it very sensitive to changes in the solution.
If the licence file gets corrupted or do not match the new installation when doing a
configuration move, it will result in the solution going into Demo mode.
The WebInfo support can help you reset the licence file and resolve this issue if it occurs.
How to License WebInfo
When installing WebInfo you need to licence it before production. The fastest way to do this
is to go into the directory where WebInfo is installed for the solution you want to licence.
There you open the web.config configuration file in an editor that do not format the content
such as notepad, notepad++ or similar. Configure the number of users needed. Save the file
and start the solution on the local machine where it is installed. Inside you go into EditMode
and view the About-information in the Help menu. Copy this information and summit it to
the WebInfo support. They will return an install key which you are to enter into the
web.config configuration file. Save the file and recycle the application pool. Now the
solution should be licensed.
For more information please check out the WebInfo E-guides.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 87(108)
Documentation
Agresso WebInfo 3.9
WebInfo as a web service WebInfo can be used as a web service to serve another WebInfo solution with data from
SQL queries. To set a SQL query to work as a web service you only need to set its
WWssSShhaarreedd property to 1 instead of 0. On the caller side a web service type connection needs
to be created with proper authentication, and finally a calling SQL containing the code: SELECT * FROM ExecuteSqlId(<the sqlid on the serving side>)
WebInfos web service resides in WebInfos virtual directory and is called
WebInfoService.asmx. The credentials provided must match an existing account defined in
WebInfos user table.
If you want a secure solution you might want to set up the service to run over HTTPS as the
credentials will be sent in clear text.
Sida 88(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Troubleshooting WebInfo Sometimes advanced WebInfo developers find the need to trouble shoot solutions; finding
the source to e.g. intermittent bad performance or unexpected client side behaviour. For
those times WebInfo comes with a number of advanced features to give you a better view
into its inner workings.
Showing Error Messages in Runtime
If you only experience an error in runtime and not in EditMode you can turn on the
Web.Config parameter WebInfoShowErrors by setting it to “1”.
Logging
Sometimes the performance hit comes from SQL statements performing badly due to bad
data selections, bad SQL coding or badly indexed databases.
Setting the Web.Config parameter WebInfoLogVerbose to “1” makes WebInfo log more
information into the log file.
It is possible to have WebInfo create detailed logs in a database, and then browse the logs
using a special logging configuration available for download. For more information
regarding this, refer to e-guides.
JavaScript Console
When the web client throws an exception you might want take a look at the JavaScript code
and maybe simulate function calls to see if you can trigger error and maybe create a work
around. This can e.g. be due to new browser bugs or new browser features that were not
implemented when the software was released that change the behaviour of an advanced
solution.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 89(108)
Documentation
Agresso WebInfo 3.9
For moments like this WebInfo have a built in JavaScript Console available in Edit Mode,
accessible by Ctrl+J. In the console you can type any JavaScript and execute it by clicking
OK. If you want to save something you wrote in the console between page loads, press
Ctrl+S.
Adding the code to a WebInfo Script object on the page makes it load the code later than the
WebInfo original code, overriding objects and functions from the WebInfo JavaScript
library forcing custom behaviour when needed.
Trace Server Code Execution Time
By setting the Web.Config parameter trace to enabled="true" you enable advanced statistics
on your page. By clicking around some in the relevant solution you then collect statistics
about code execution time. This statistic is available on the page /Trace.aspx. Turning trace
on increases the load on the server and this feature should never be left on in a production
environment.
Recording and Playback
It is possible in WebInfo to record a solution complete with the current configuration, the
results from all executed SQL statements, connection information, logged in user and other
WebInfo states, and save this information in an encrypted file. This allows you to record a
session where you experience a specific problem and send the recording to a WebInfo
support technician for analysis. This in turn, allows the technician to see exactly what is
going wrong in the solution. Using this information, that person will be able to correct your
configuration and send it back to you, as a solution suggestion. If the error stems from a bug
in the software, the recording greatly helps the development team to correct the bug and
verify that your solution will behave as intended once your solution is patched.
You can also use this recording for demonstration purposes, to showcase certain
functionality of your solution offline.
Before creating a recording you should be confident that it is ok for you to store the
requested data, user information, WebInfo configuration and database connection
information in a file. This information is encrypted but can be accessed by WebInfo
developers for debugging purposes.
To start a recording, choose Start Recording in the tools menu. The page then reloads and in
it will say “Recording” in the web browsers header. From now on, all data that you request
in your solution will be recorded.
To stop a recording select Stop Recording/Playback in the tools menu if you are in edit
mode or click the red ball in the upper right corner if you are in runtime mode. The file is
automatically saved to the _Backups directory in the WebInfo installation directory.
To playback a recording go to the Setup menu and select either the Restore Recording or the
Restore from Recording option. In the fold out menu of the Restore from Recording option
all recordings saved in the _Backups directory is shown. Restore Recording will instead let
you browse for a file and restore this.
Sida 90(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Restoring a recording never changes your existing configuration. When you stop a playback,
using either the Stop Recording/Playback option in the Tools menu or by clicking the red
ball marker in the upper right corner, WebInfo empties its cache and session and reverts to
the original solution, but you will be logged out and loose all previous session information.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 91(108)
Documentation
Agresso WebInfo 3.9
WebInfo Technical Perspective
Technology
WebInfo is an ASP.NET 2.0 application. The most important functions are supported by
Microsoft’s Internet Explorer, Firefox, Safari and Chrome. AJAX technology has also been
used to improve the user experience. A lot is built on a so called Postback technology, which
means that the page is “drawn” anew when the control information is changed or if the page
changed.
WebInfo 3 is the first WebInfo version that does not require any database connection at all.
If a database should be used, most databases with OLE DB or ODBC support can be used as
a data warehouse. Oracle or SQL Server can also be used to store the WebInfo
configuration.
Architecture
Figure 1: System overview
WebInfo consists of two parts as seen in the picture above. The first part is the configuration
table, which is either stored in a database table or in an XML file. The second part is the
WebInfo engine, which is an ASP.NET application that reads the data from the
configuration data store to create an object model for a page; this is then rendered as a
HTML page.
The configuration table consists of several solution specific configurations and a system
configuration. The solution specific configurations consist of different objects that belong to
a specific solution.
Table 2: Comparison WebInfo 2.x and 3.x WebInfo 3.x WebInfo 2.x
Configuration storage Database or XML file Database
Number of tables 1 (Extra tables might be required for some login types and controls.)
2 per configuration and a number of configuration common tables
Views Created within the engine and the definitions are stored in the
Database views
Sida 92(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
configuration
Engine ASP.NET (C#) ASP (VBScript)
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 93(108)
Documentation
Agresso WebInfo 3.9
Appendix A
Table architecture
Ex 1
Utfall Budget
Nämnd Perioden Ack Perioden Ack Zoom
Räddningstjänsten -18991 -1604921 -18991 -1604921 Spec Ansv2 Vhet2
Miljö- och byggnämnden -71907 -1633906 -71907 -1633906 Spec Ansv3 Vhet3
Överförmyndaren -1487 -127983 -1487 -127983 Spec Ansv4 Vhet4
Totalt -92385 -
3366810 -92385 -3366810
Ex 2
h0 1 Kontogrupp Perioden Ack Perioden Ack Zoom
d 1 Taxor och avgifter -18991 -1604921 -18991 -1604921 Trans
d 1 Intäkter hyror och arrenden -71907 -1633906 -71907 -1633906 Trans
d 1 Erhållna bidrag -1487 -127983 -1487 -127983 Trans
s1 1 Summa Intäkter -92385 -
3366810 -92385 -3366810
s1 2
d 1 Kapitalkostnader -71907 -1633906 -71907 -1633906 Trans
d 1 Finansiella kostnader -1487 -127983 -1487 -127983 Trans
s1 1 Summa Kostnader -73394 -
1761889 -73394 -1761889
s1 2
s0 1 Totalt -165779 -
5128699 -165779 -5128699 Trans
Sida 94(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Ex 3
h0 1 Kontogrupp Perioden Ack Perioden Ack Zoom
h2 1 Intäkter
d 1 Taxor och avgifter 18991 1604921 -18991 -1604921 Trans
d 1 Intäkter hyror och arrenden 71907 1633906 -71907 -1633906 Trans
d 1 Erhållna bidrag 1487 127983 -1487 -127983 Trans
s2 1 Summa Intäkter 92385 3366810 -92385 -3366810
s2 2
h2 1 Kostnader
d 1 Kapitalkostnader -71907 -1633906 -71907 -1633906 Trans
d 1 Finansiella kostnader -1487 -127983 -1487 -127983 Trans
s2 1 Summa Kostnader -73394 -
1761889 -73394 -1761889
s2 2
s1 1 TB 18991 1604921
s1 2 TB% 20.6 47.7
s1 3
s0 1 Totalt 18991 1604921 -165779 -5128699 Trans
Ex 4
h0 1 Utfall Budget
h0 2 Nämnd Perioden Ack Perioden Ack Zoom
d 1 Räddningstjänsten -18991 -1604921 -18991 -1604921 Spec Ansv2 Vhet2
d 2 122
d 1 Miljö- och byggnämnden -71907 -1633906 -71907 -1633906 Spec Ansv3 Vhet3
d 2 342
d 1 Överförmyndaren -1487 -127983 -1487 -127983 Spec Ansv4 Vhet4
d 2 119
s0 1 Totalt -92385 -
3366810 -92385 -3366810
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 95(108)
Documentation
Agresso WebInfo 3.9
Appendix B
3rd party licences and mentions
WebInfo uses several 3rd
party products to deliver its functionality. Without the work of the
people behind those products, our work would have been much harder.
Thank you!
ANTLR 3
License: The BSD License
[The BSD License]
Copyright (c) 2003-2008, Terence Parr
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
ChartFX
By: SoftwareFX
ASPxPivotGrid
By: DevExpress
WebGrid & WebCombo
By: Intersoft Solutions
Inno Setup
By: Jordan Russel
Sida 96(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Jint
License: The MIT License (MIT)
Copyright (c) 2009 Evaluant
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
C# Code Format
By: Jean-Claude Manoli
QueryADataSet
By: Peersoft
UnhandledExceptionModule
License: The MIT License (MIT)
Copyright (c) 2008 Andras Vass
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Excel XML Writer
By: Carlos Aguilar Mares
Website: http://www.carlosag.net/Tools/ExcelXmlWriter
LuaInterface
License: The MIT License (MIT)
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 97(108)
Documentation
Agresso WebInfo 3.9
C# Eval Function License: CPOL 1.02
Preamble This License governs Your use of the Work. This License is intended to allow developers to use the Source Code and Executable Files provided as part of the Work in any application in any form.
The main points subject to the terms of the License are:
Source Code and Executable Files can be used in commercial applications;
Source Code and Executable Files can be redistributed; and
Source Code can be modified to create derivative works.
No claim of suitability, guarantee, or any warranty whatsoever is provided. The software is provided "as-is".
The Article(s) accompanying the Work may not be distributed or republished without the Author's consent
This License is entered between You, the individual or other entity reading or otherwise making use of the Work licensed pursuant to this License and the individual or other entity which offers the Work under the terms of this License ("Author").
License
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CODE PROJECT OPEN LICENSE ("LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HEREIN, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE AUTHOR GRANTS YOU THE RIGHTS CONTAINED HEREIN IN CONSIDERATION OF YOUR ACCEPTANCE OF
SUCH TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO ACCEPT AND BE BOUND BY THE TERMS OF THIS LICENSE, YOU CANNOT MAKE ANY USE OF THE WORK.
1. Definitions.
a. "Articles" means, collectively, all articles written by Author which describes how the Source Code and Executable Files for the Work may be used by a user.
b. "Author" means the individual or entity that offers the Work under the terms of this License.
c. "Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works.
d. "Executable Files" refer to the executables, binary files, configuration and any required data files included in the Work.
e. "Publisher" means the provider of the website, magazine, CD-ROM, DVD or other medium from or by which the Work is obtained by You.
f. "Source Code" refers to the collection of source code and configuration files used to create the Executable Files.
g. "Standard Version" refers to such a Work if it has not been modified, or has been modified in accordance with the consent of the Author, such consent being in the full discretion of the Author.
h. "Work" refers to the collection of files distributed by the Publisher, including the Source Code, Executable Files, binaries, data files, documentation, whitepapers and the Articles.
i. "You" is you, an individual or entity wishing to use the Work and exercise your rights under this License.
2. Fair Use/Fair Use Rights. Nothing in this License is intended to reduce, limit, or restrict any rights arising from fair use, fair dealing, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other
applicable laws.
3. License Grant. Subject to the terms and conditions of this License, the Author hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as
stated below:
a. You may use the standard version of the Source Code or Executable Files in Your own applications.
b. You may apply bug fixes, portability fixes and other modifications obtained from the Public Domain or from the Author. A Work modified in such a way shall still be considered the standard version and will be subject to this License.
c. You may otherwise modify Your copy of this Work (excluding the Articles) in any way to create a Derivative Work, provided that You insert a prominent notice in each changed file stating how, when and where You changed that file.
d. You may distribute the standard version of the Executable Files and Source Code or Derivative Work in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution.
e. The Articles discussing the Work published in any form by the author may not be distributed or republished without the Author's consent. The author retains copyright to any such Articles. You may use the Executable Files and Source Code pursuant to this
License but you may not repost or republish or otherwise distribute or make available the Articles, without the prior written consent of the Author.
Any subroutines or modules supplied by You and linked into the Source Code or Executable Files this Work shall not be considered part of this Work and will not be subject to the terms of this License.
4. Patent License. Subject to the terms and conditions of this License, each Author hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have
made, use, import, and otherwise transfer the Work.
5. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
a. You agree not to remove any of the original copyright, patent, trademark, and attribution notices and associated disclaimers that may appear in the Source Code or Executable Files.
b. You agree not to advertise or in any way imply that this Work is a product of Your own.
c. The name of the Author may not be used to endorse or promote products derived from the Work without the prior written consent of the Author.
d. You agree not to sell, lease, or rent any part of the Work. This does not restrict you from including the Work or any part of the Work inside a larger software distribution that itself is being sold. The Work by itself, though, cannot be sold, leased or rented.
e. You may distribute the Executable Files and Source Code only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy of the Executable Files or Source Code You distribute and
ensure that anyone receiving such Executable Files and Source Code agrees that the terms of this License apply to such Executable Files and/or Source Code. You may not offer or impose any terms on the Work that alter or restrict the terms of this
License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute the Executable Files or Source
Code with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License.
f. You agree not to use the Work for illegal, immoral or improper purposes, or on pages containing illegal, immoral or improper material. The Work is subject to applicable export laws. You agree to comply with all such laws and regulations that may apply to
the Work after Your receipt of the Work.
6. Representations, Warranties and Disclaimer. THIS WORK IS PROVIDED "AS IS", "WHERE IS" AND "AS AVAILABLE", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES OR CONDITIONS OR GUARANTEES. YOU, THE USER, ASSUME ALL
RISK IN ITS USE, INCLUDING COPYRIGHT INFRINGEMENT, PATENT INFRINGEMENT, SUITABILITY, ETC. AUTHOR EXPRESSLY DISCLAIMS ALL EXPRESS, IMPLIED OR STATUTORY WARRANTIES OR CONDITIONS, INCLUDING WITHOUT LIMITATION,
WARRANTIES OR CONDITIONS OF MERCHANTABILITY, MERCHANTABLE QUALITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY WARRANTY OF TITLE OR NON-INFRINGEMENT, OR THAT THE WORK (OR ANY PORTION THEREOF) IS CORRECT,
USEFUL, BUG-FREE OR FREE OF VIRUSES. YOU MUST PASS THIS DISCLAIMER ON WHENEVER YOU DISTRIBUTE THE WORK OR DERIVATIVE WORKS.
7. Indemnity. You agree to defend, indemnify and hold harmless the Author and the Publisher from and against any claims, suits, losses, damages, liabilities, costs, and expenses (including reasonable legal or attorneys’ fees) resulting from or
relating to any use of the Work by You.
8. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL THE AUTHOR OR THE PUBLISHER BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL,
PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK OR OTHERWISE, EVEN IF THE AUTHOR OR THE PUBLISHER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
9. Termination.
a. This License and the rights granted hereunder will terminate automatically upon any breach by You of any term of this License. Individuals or entities who have received Derivative Works from You under this License, however, will not have their licenses
terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 6, 7, 8, 9, 10 and 11 will survive any termination of this License.
b. If You bring a copyright, trademark, patent or any other infringement claim against any contributor over infringements You claim are made by the Work, your License from such contributor to the Work ends automatically.
c. Subject to the above terms and conditions, this License is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, the Author reserves the right to release the Work under different license terms or to stop distributing the
Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect
unless terminated as stated above.
10. Publisher. The parties hereby confirm that the Publisher shall not, under any circumstances, be responsible for and shall not have any liability in respect of the subject matter of this License. The Publisher makes no warranty whatsoever in
connection with the Work and shall not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. The
Publisher reserves the right to cease making the Work available to You at any time without notice
11. Miscellaneous
a. This License shall be governed by the laws of the location of the head office of the Author or if the Author is an individual, the laws of location of the principal place of residence of the Author.
b. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this License, such provision shall be
reformed to the minimum extent necessary to make such provision valid and enforceable.
c. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
d. This License constitutes the entire agreement between the parties with respect to the Work licensed herein. There are no understandings, agreements or representations with respect to the Work not specified herein. The Author shall not be bound by any
additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Author and You.
Sida 98(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
ASP.NET RSS Toolkit
License: Microsoft Public License (Ms-PL)
Microsoft Public License (Ms-PL)
This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use
the software.
1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
A "contribution" is the original software, or any additions or changes to the software.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor's patent claims that read directly on its contribution.
2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a
non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its
contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-
exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of
its contribution in the software or derivative works of the contribution in the software.
3. Conditions and Limitations
(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such
contributor to the software ends automatically.
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the
software.
(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this
license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that
complies with this license.
(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have
additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors
exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
JQuery
License: The MIT License (MIT)
Copyright (c) 2010 John Resig, http://jquery.com/
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
JQuery Tools
License: NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 99(108)
Documentation
Agresso WebInfo 3.9
Walter Zorn Tooltip
License: LGPL
wz_tooltip.js v. 4.11
The latest version is available at
http://www.walterzorn.com
or http://www.devira.com
or http://www.walterzorn.de
Copyright (c) 2002-2007 Walter Zorn. All rights reserved.
Created 1.12.2002 by Walter Zorn (Web: http://www.walterzorn.com )
Last modified: 22.6.2007
Easy-to-use cross-browser tooltips.
Just include the script at the beginning of the <body> section, and invoke
Tip('Tooltip text') from within the desired HTML onmouseover eventhandlers.
No container DIV, no onmouseouts required.
By default, width of tooltips is automatically adapted to content.
Is even capable of dynamically converting arbitrary HTML elements to tooltips
by calling TagToTip('ID_of_HTML_element_to_be_converted') instead of Tip(),
which means you can put important, search-engine-relevant stuff into tooltips.
Appearance of tooltips can be individually configured
via commands passed to Tip() or TagToTip().
Tab Width: 4
LICENSE: LGPL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License (LGPL) as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
For more details on the GNU Lesser General Public License,
see http://www.gnu.org/copyleft/lesser.html
JQuery UI
License: The MIT License (MIT) Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Sida 100(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
Sarissa
License: Apache Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
JQuery Event Wheel
License: The MIT License (MIT) Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
FlipV
License: The MIT License (MIT) Copyright (c) 2001 - 2009 Matteo Bicocchi (pupunzi), Open Lab
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
JQuery UI CheckBox
License: The MIT License (MIT) Copyright (c) 2009 Jeremy Lea <[email protected]>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Sida 102(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
JQuery Metadata
License: The MIT License (MIT) Copyright (c) 2006 John Resig, Yehuda Katz, Jörn Zaefferer, Paul McLanahan
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
JQuery LoadAnimation
License: The MIT License (MIT) Copyright (c) 2009 Jan Faessler
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
JQuery SelectToUISlider
License: The MIT License (MIT) Copyright (c) 2008 Filament Group, Inc
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 103(108)
Documentation
Agresso WebInfo 3.9
CodeMirror
License: Zlib Copyright (c) 2007-2009 Marijn Haverbeke
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any
damages arising from the use of this software.
Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and
redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must
not claim that you wrote the original software. If you use this
software in a product, an acknowledgment in the product
documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must
not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
Marijn Haverbeke
marijnh at gmail
EditArea
License: BSD Copyright (c) 2008, Christophe Dolivet
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
* Neither the name of EditArea nor the names of its contributors may be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
JSON
License: Special Copyright (c) 2002 JSON.org
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
The Software shall be used for Good, not Evil.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Sida 104(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
GhostText
License: The MIT License (MIT) Copyright (c) 2009 Jon Rohan (http://dinnermint.org)
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
JQuery Throttle/Debounce
License: The MIT License (MIT) Copyright (c) 2010 "Cowboy" Ben Alman
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
JQuery BgiFrame
License: The MIT License (MIT) Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 105(108)
Documentation
Agresso WebInfo 3.9
Css Browser Selector
License: CC2.5 http://creativecommons.org/licenses/by/2.5/ By: Rafael Lima (http://rafael.adm.br)
Contributors: http://rafael.adm.br/css_browser_selector#contributors
Css Friendly
License: CC2.5 http://creativecommons.org/licenses/by/2.5/ Microsoft Permissive License (Ms-PL)
Published: October 12, 2006
This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the
software.
1. Definitions
The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
A “contribution” is the original software, or any additions or changes to the software.
A “contributor” is any person that distributes its contribution under this license.
“Licensed patents” are a contributor’s patent claims that read directly on its contribution.
2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-
exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or
any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive,
worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in
the software or derivative works of the contribution in the software.
3. Conditions and Limitations
(A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks.
(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to
the software ends automatically.
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with
your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this
license.
(E) The software is licensed “as-is.” You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have
additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the
contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
SQLite
License: Public Domain
IE Png Alpha Fix
License: CC-GNU LGPL http://creativecommons.org/licenses/LGPL/2.1/ (c) 2004-2005 Angus Turnbull http://www.twinhelix.com
Sida 106(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
TheDHTML Calendar
License: LGPL
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.This version of the GNU Lesser General Public License
incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License.
“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.
An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the
Library is deemed a mode of using an interface provided by the Library.
A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also
called the “Linked Version”.
The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work
that, considered in isolation, are based on the Application, and not on the Linked Version.
The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for
reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument
passed when the facility is invoked), then you may convey a copy of the modified version:
a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still
operates, and performs whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided
that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in
length), you do both of the following:
a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined
Work and reverse engineering for debugging such modifications, if you also do each of the following:
a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license document.
c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference
directing the user to the copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and
under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner
specified by section 6 of the GNU GPL for conveying Corresponding Source.
1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library
already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.
e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent
that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version
of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use
option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by
this License, and convey such a combined library under terms of your choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of
this License.
b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form
of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the
present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later
version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If
the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever
published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of
acceptance of any version is permanent authorization for you to choose that version for the Library.
WebInfo 3.9 - Documentation.doc 2013-06-10 Sida 107(108)
Documentation
Agresso WebInfo 3.9
YUI
License: BSD Copyright (c) 2010, Yahoo! Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
* Neither the name of EditArea nor the names of its contributors may be used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Mb.ContainerPlus
License: The MIT License (MIT) Copyright (c) 2009 Matteo Bicocchi
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Hash Handler
License: The MIT License (MIT) Copyright (c) 2009 Andreas Blixt <[email protected]>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Sida 108(108) 2013-06-10 WebInfo 3.9 - Documentation.doc
Documentation
Agresso WebInfo 3.9
JQuery Hash Plugin
License: The MIT License (MIT) Copyright (c) 2009 Andreas Blixt <[email protected]>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
HTMLEncode
License: Special Copyright (c) 2006 Thomas Peri, http://www.tumuski.com/
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The Software shall be used for Good, not Evil.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.