OutSystems Platform - Transitioning To The OutSystems Language
OutSystems Platform - Transitioning To The OutSystems Language
OutSystems® Platform
Transitioning to the OutSystems Language
The OutSystems® Platform provides developers with a domain-specific language for developing and changing web
business applications. This developer cheat sheet describes the OutSystems language main concepts and their mappings
to other development languages, such as .NET.
Table of Contents
1 Projects ...............................................................................................................................................................................2
3 Business Logic...................................................................................................................................................................5
4 Database.............................................................................................................................................................................6
5 Integrations .......................................................................................................................................................................8
8 Security ...............................................................................................................................................................................9
9 Miscellaneous ...................................................................................................................................................................9
2 User Interface
OutSystems Concept and Description Mapping to .NET
Web Flow A Web flow is a user interaction diagram. Web flow Visual Studio has no language element to
diagrams allow the developer to have a high level express end-user navigation paths.
overview of the Web interfaces and easily capture the
possible end-user interaction sequence. In Service
Studio you have a specific editor (Web Flow Editor) to
create and change web flows.
Initiates your Web flow and defines a well known URL to Although there is no equivalent concept in
Entry Point
access your application using a browser. .NET, an Entry Point effectively compiles into
a Web Page (.aspx) that redirects the
user to some other Web Page (that
implements a System.Web.UI.Page, an
.aspx).
Web Block A special screen that can be used by other screens. After
Web User Control (that implements a
its creation, it may actually be used as a widget and
System.Web.UI.UserControl, an .ascx).
drag into any other web block or web screen.
External Site Connects to a site external to your eSpace through a The mapping to .NET depends on the origin
well-know URL you specify. of the request. If it is a link that leads the end-
user here, this will be equivalent to a simple
navigation (GET) in the LinkButton to the
URL defined in the External Site (that can be
think of as a constant... actually you can make
it dynamic, but let's forget that at this level of
detail). If it is a button that leads the end-user
here, this will be equivalent to executing a
Server.Transfer in the method that is
executed after a Click or Command
event is triggered.
Error Handler Used to handle exceptions by catching them and Equivalent to a catch statement. The flow
allowing you to define a parallel error handling flow. that follows is equivalent to the catch block.
Widget Used to presents dynamic content in your screens and Equivalent to the
design its layout. System.Web.UI.WebControls classes.
Input Parameter Used to send data to a web screen. Equivalent to a query string variable of an
http request, or an HttpContext Item in a
server redirect.
Local Variable Used to create variables where the scope is the web Equivalent to a instance variable of the
screen itself. Web Page (that implements a
System.Web.UI.Page, an .aspx).
Screen Preparation Used to execute an action before the rendering of the Equivalent to the Page_Load method of the
web screen. Web Page (that implements a
System.Web.UI.Page, an .aspx).
Screen Action Used to design actions that are only available inside the Equivalent to the methods of the page's code
web screen and invoked when the user presses some behind that are executed after the Click
link or button. or Command events are triggered in a
Button or LinkButton of the
System.Web.UI.WebControls
namespace.
Container A container "box" where you can drag and drop other
Equivalent to a Panel.
widgets, including other containers.
Input Used to create input fields that hold the data typed by
Equivalent to a TextBox.
the end-user. This data is then stored in a variable that
you can handle in your eSpace.
Input Password Used to create input password fields that hold the data
Equivalent to a TextBox with the
typed by the end-user. This data is then stored in a
TextMode property set to Password.
variable that you can handle in your eSpace.
Checkbox Used to create a check box that the end-user can check
Equivalent to a CheckBox.
or un-check. This data is then stored in a variable that
you can handle in your eSpace.
Combo Box Used to present a list of possible values and the end-
Equivalent to a DropDownList.
user can select only one of the values presented.
List Box Used to present a list of possible values and the end-
Equivalent to a ListBox.
user can select multiple values from the presented list.
Input Filename Used to gather an input file by allowing the end user to
Equivalent to a FileUpload.
browse the local file system.
In OutSystems Platform, the logic of your eSpace is Equivalent to a method. User-defined actions
Action
implemented through Actions. You can add business are equivalent to a static method.
logic to your eSpace both in the requests (e.g. pressing
a button that will execute a Screen Action) and in the
responses (before rendering a screen, that is, executing
the Screen Preparation) of your eSpace. You can reuse
logic by creating user-defined actions.
Used to return data from an action to be used after its Equivalent to a method out parameter.
Output Parameter
invocation.
Used to create variables where the scope is the action Equivalent to a local variable of a method.
Local Variable
itself.
Action Tools
Executes a query, selecting information about one or Equivalent to a method that executes an sql
Query
more entities already declared in the eSpace. In Service query and returns the resulting dataset. If
Studio you have a specific editor to create and change you use an OR mapping library, this is
queries visually. equivalent to a method that returns a list of
objects according with your query.
Executes an sql statement over one or more entities Equivalent to a method that executes an sql
Advanced Query
already declared in the eSpace. In Service Studio you query and returns the resulting dataset. If
have a specific editor to create and change advanced you use an OR mapping library, this is
queries that allows you to write any sql statement equivalent to a method that returns a list of
textually. objects according with your query.
Allows you to branch the action flow into several action Equivalent to a switch statement with a
Switch
paths. break statement in all case blocks. Each
connector is equivalent to a case block.
Repeats the execution of an action path for each entry Equivalent to a foreach statement.
For Each
of a record list.
Allows you to export the contents of a record list to an Equivalent to a method that writes a list of
Record List To Excel
MS-Excel file. objects into an excel file using some library to
write excel files.
Allows you to import the content of an MS-Excel file. Equivalent to a method that reads a list of
Excel to Record List
objects from an excel file using some library
to read from excel files.
Used to handle exceptions by catching them and Equivalent to a catch statement. The flow
Error Handler
allowing you to define a parallel error handling flow. that follows is equivalent to the catch block.
Allows you to explicitly refresh parts (widgets) of your Imagine all your controls in a Web Page
Ajax Refresh *
web screen using Ajax, instead of rendering the whole (.aspx) or Web User Control (.ascx) could have
screen again. the behavior of an UpdatePanel. Imagine
further that your View State was
* Only available in screen actions.
automatically optimized to be reduced
without you concerning about it. Well, in
such a scenario, the ajax refresh tool would
be equivalent to the Update method of the
UpdatePanel.
Allows you to have the Download facility in your Equivalent to a method that writes to the
Download *
application. request response a file, by setting the request
content type, its header, and writing the file
* Only available in screen actions. content to its output stream.
4 Database
OutSystems Concept and Description Mapping to .NET
Entity An element which allows you to keep business Maps to a physical database table in the
information in a persistent way. The information is database server. Abstracts that database
stored in attributes. Entities are used to represent and table in a way similar to a DataSource. To be
manage your data base model. more exact, in a way similar to an object-
relational (OR) mapping, that is, the entity in
Service Studio is like the class resulting from
an OR mapping.
Entity Actions Actions automatically created by Service Studio for each After making the OR mapping, these are
entity in the current eSpace to manage them and equivalent to the methods that create, read,
perform the basic create, read, update, and delete update, and delete the object (that will map
operations. to a database table record) to and from the
database. If you don't use any OR mapping,
this is equivalent to the methods that execute
the CREATE, GET, UPDATE, and DELETE sql
statements.
Static Entity An entity that has static data associated to it. This static Equivalent to an entity where you define its
data is managed in design time and you can use it data in design-time, that is, where the data is
directly in the business logic design of your application static and fixed. Think of static entities as
thus benefiting from strong typing. An example of static enums where, for each named constant, you
data implementation are constants and enumerations. can define extra attributes and their values. If
you use an OR mapping, think of static
entities as enums that can be mapped into a
table of the database.
Static Entity Record An instance of your static data that holds the literal Equivalent to an enum named constant
values for each attribute of the entity. where you can define extra attributes and
their values. That is, each named constant
maps to a database table record, meaning
you can, for each named constant (database
table record), define the values of its several
fields.
Entity Actions
Create<Entity> Creates a new record in the entity. If the record already Equivalent to the OR mapping library method
exists, i.e. there is a row in the database with the same that creates a given object in the database. If
identifier, a database exception is returned and no you don't use any OR mapping, this is
record is created. equivalent to the method that executes the
CREATE sql statement to create a new
database table record.
CreateOrUpdate<Entity> Creates a new record in the entity. If the record already Equivalent to the OR mapping library method
exists, i.e. there is a row in the database with the same that creates a given object in the database if
identifier, their attributes are updated with the it is new or updates an existing one if it
arguments of the action. already exists in the database. If you don't use
any OR mapping, this is equivalent to the
method that executes a CREATE sql
statement in case the entity identifier is null
or an UPDATE sql statement in case the
entity identifier is not null.
Update<Entity> Updates a specific record of the entity. Equivalent to the OR mapping library method
that updates an existing object in the
database. If you don't use any OR mapping,
this is equivalent to the method that executes
an UPDATE sql statement to update the
database table record.
Get<Entity> Gets a row from the entity with a specific identifier. Equivalent to the OR mapping library method
that gets an existing object from the
database. If you don't use any OR mapping,
this is equivalent to the method that executes
a GET sql statement to get the database
table record.
Delete<Entity> Deletes a specific record of the entity given an identifier. Equivalent to the OR mapping library method
that deletes an object from the database. If
you don't use any OR mapping, this is
equivalent to the method that executes a
DELETE sql statement to delete a database
table record.
5 Integrations
OutSystems Concept and Description Mapping to .NET
6 Session State
OutSystems Concept and Description Mapping to .NET
Variables that hold data that is persistent during the Equivalent to an Item of the session-state
Session Variable
session. You can use these variables to save information collection (System.Web.SessionState.
during the end-user interaction. HttpSessionState).
Timer Actions that execute asynchronously according with Equivalent to a batch job. There is no such
some defined schedule. concept in the .NET Framework, unless you
build your own or are using a 3rd party library
or product.
Timer Actions
8 Security
OutSystems Concept and Description Mapping to .NET
Permission Area Element used to implement security in your eSpace. Equivalent to a security setting which you
Represents a group of elements that share the same grant to users and roles. There is no such
grant policy. concept in the .NET Framework, unless you
build your own or are using a 3rd party library
or product.
Permission Actions
9 Miscellaneous
OutSystems Concept and Description Mapping to .NET
Structure Data skeleton that gathers information of your eSpace. Equivalent to a struct type.
Structures are not persistent, they only exist in memory
until the application ends, at which time they are
discarded. The information is stored in attributes.
Structure Attribute Stores part of the information that concerns the Equivalent to a struct property.
structure.
Site Property Variable instantiated before the deployment of the Equivalent to a public static variable
eSpace. You can change their values in runtime, after accessible all over your application, which
deploying the application, using Service Center. you can change in runtime in a back-office
(Service Center).
Used to create input password fields Form input password TextBox with TextMode =
Input Password
Password
Checkbox Used to create a check box CheckBox
Used to display a group of possible
Radio Button options RadioButton
Used to present a list of values and select
Combo Box one DropDownList
Used to present a list of values and select
List Box several ListBox
Input Parameter Used to send data to an action Method parameter Method parameter
Output Parameter Used to return data from an action Method output parameter Method out parameter
Local Variable Used to create variables Method local variable Method local variable.
User Defined Function Action that can be invoked in expressions Function, method Method
Action Tools
List of actions created by you in the
User Actions current eSpace
List of actions to handle entities, see
Entity Actions Entity Actions below
List of actions to handle timers, see Timer
Timer Actions Actions below
List of actions to handle permission areas,
Permission Actions see Permission Actions below
List of the actions of the web references
Web Reference Actions in your eSpace
List of built-in actions provided by Service
Built-in Actions Studio
List of actions consumed from other
Referenced Actions eSpaces or Extensions
Start Starts the action flow
SQL SELECT statement
Query Executes a query (query) defined via fancy Method that executes an sql query
wizard
Advanced Query Executes an sql statement Method that executes an sql query
Branches the action flow into one of two
If if statement
action paths
Branches the action flow into several
Switch switch statement
action paths
Repeats the execution for each entry of a
For Each foreach statement
record list
Assign Assigns an expression to a variable = statement
Exports the contents of a record list to an
Record List To Excel MS-Excel file
Excel to Record List Imports the content of an MS-Excel file