Genexus Trial Tutorial EN PDF
Genexus Trial Tutorial EN PDF
Registered Trademarks
Artech and GeneXus are trademarks or registered trademarks of Artech Consultores S.R.L. All other trademarks mentioned
herein are the property of their respective owners.
Page 1
Page 2
INTRODUCTION
The objective of this document is to help you discover the potential of the knowledge-based development methodology proposed by
GeneXus as you experience its main features:
GENEXUS TRIAL
FUNCTIONAL RESTRICTIONS
The GeneXus Trial Version is completely functional and the available generator (.NET and Smart Devices) is authorized with a single Site
Key (which expires 60 days after activation). However, some restrictions apply to the maximum number of GeneXus objects and
attributes that may be created for a given Knowledge Base:
90 attributes
140 objects.
LICENSE RESTRICTIONS
It can be locally installed for a single user.
Page 3
LICENSE AGREEMENT
Conditions of Use of the GeneXus Trial Intellectual Property License
1. This agreement governs the intellectual property license of copies of GeneXus Trial, a knowledge-based intelligent tool which automatically designs,
generates and maintains databases and applications.
2. Artech Consultores S.R.L. (hereinafter Artech) declares and the USER agrees that the intellectual creation of GeneXus and the GeneXus, GXflow,
GXplorer, GXportal, GXquery and Artech names and logos, as well as any other trademark that Artech may launch in connection with GeneXus, regardless
of whether or not they are registered, are the property of Artech. The current agreement does not imply, either directly or indirectly, any transfer of
ownership nor does it entitle the USER to transfer the licenses, which are the subject matter hereof.
3. The USER agrees to use the GeneXus Trial without disclosing or using for his or her own benefit, any of the ideas and techniques on which GeneXus is
based. In particular, the user agrees not to reverse engineer it in order to interpret its code, nor to enable others to do so.
4. In no event shall the USER be allowed to duplicate or disable the protection mechanisms against non-authorized use of GeneXus. Artech reserves the
right to modify these mechanisms and/or add new ones at any time.
5. In compliance with the general terms, Artech grants the USER a license for the GeneXus Trial tool under the following conditions:
a) Each licensed copy will be able to work on one microcomputer. The USER agrees not to use any of them in more than one microcomputer at the
same time.
b) This license is non-exclusive and non-transferable.
c)
The USER will use the GeneXus programs and documentation exclusively for personal use, for evaluation purposes, and agrees not to provide
copies of any of them to third parties.
d) In no event shall Artech be liable, either implicitly or explicitly, for any incidental damages to users relating directly or indirectly to the use of the
GeneXus Trial.
e) The USER agrees to use the license in compliance with the instructions and specifications indicated in the materials associated with it.
f)
The GeneXus Trial version will be active for a maximum of 60 days. Said version only includes the .NET and Smart Device generators. In addition,
SQL Server is the only database supported in this version and it will allow creating a maximum of 90 attributes and 140 objects.
g) The USER agrees to use the GeneXus Trial to develop applications that DO NOT infringe any law or regulation at the international or local level in
any territory.
h) In no event shall the USER be allowed to develop an application with the GeneXus Trial and deploy it to an application server other than the one
provided by the tool, which is indicated in the Deploy Server URL property of the IDE.
6. By installing this licensed software product you accept all the terms and conditions of this agreement.
TECHNICAL SUPPORT
If you need assistance to install and authorize your trial version, contact: [email protected]
If you are in the United States or Canada you may send support requests to: [email protected]
To learn about the various GeneXus technical support and training services and resources, visit: genexus.com/support and
genexus.com/training
For additional information contact your local distributor genexus.com/distributors or contact us at [email protected]
Page 4
GeneXus Modeler
It is an Integrated Development Environment (IDE) for designing, developing and maintaining business applications regardless of the
production platform used.
GeneXus Generators
GeneXus generates native code for the market's leading platforms. For a complete list of GeneXus Generators, visit:
genexus.com/technologies. The generators provided with the GeneXus Trial Version are the .NET Generator and the Smart Devices
Generator (iOS, Android, Blackberry).
Below you will find a list of the hardware and software necessary to run GeneXus and the applications generated with GeneXus
Hardware Requirements
Software Requirements
Microsoft .NET Framework 3.5 SP1 and Microsoft Internet Explorer 8.0 will be automatically installed upon installing GeneXus Trial.
Microsoft SQL Server Express Edition is the free, redistributable version. If Microsoft SQL Server is not installed on your machine when you install
GeneXus Trial, you will be given the option to install it (the sa user will be created with the password genexustrial).
2
Page 5
Blackberry Simulator
Xcode (Mac):
If you have a Mac, you can prototype the generated applications with the iPhone / iPad simulator or directly on the
device.
Page 6
AUTHORIZATION
1.
Run the setup file of the GeneXus Trial Version (GenexusTrial.exe), either from the Windows Start menu or by selecting the
corresponding option on your Trial Version CD.
2.
3.
Page 7
To authorize it, you must have a GXTechnical user account, by the Create User button you can create your user:
5.
Once you select the Online option and complete all the required data, the GeneXus Trial Version will be immediately activated for a
period of 60 days.
6.
If you have selected the option labeled By Mail, an email will be created with the corresponding Site Code to request your license.
You will receive an email containing your Site Key. To do this, you will have to use the email address associated with your
GXTechnical account.
7.
The activation Site Key will be sent to the same email address. Copy and paste your Site Key in the Site Key field of the Authorization
Required window and click Continue.
8.
9.
Page 8
SYMBOLS USED
Page 9
In sum, GeneXus is a knowledge-based tool that automatically designs, generates and maintains the programs and database
to achieve rapid development of critical applications on multiple platforms.
Understanding the end user's needs is one of the few software development tasks that can't be automated. This is why
we refer to GeneXus developers as Business Analysts rather than programmers, coders or developers.
The GeneXus Methodology is based on describing the end users' entities (both tangible and intangible real-life objects)
that you application deals with. This is done by describing the end users' views about these entities, with a high
abstraction level. For this reason, we will use declarative programming. Thus, Business Analysts will describe the
reality to have GeneXus create the data model in a specific database and build the application programs needed to
provide the required functionalities. When this reality changes, Business Analysts will simply have to describe the new
reality and GeneXus will make the necessary changes to the data model and programs to represent this new reality.
Page 10
1.
Main Window (Start Page): It is made up of the Start Page, which consumes RSS and dynamically displays technical information
about the tool and user community. To obtain this information you need an Internet connection. If your machine is not
connected to the Internet, you will not be able to read the news published on the GeneXus Community.
2.
3.
Toolbar
4.
Properties window
5.
Output
Page 11
It is a repository that contains all the information needed to generate an application on multiple platforms. In
other words, it is a repository of the entire description of reality.
E NVIRONMENT
To generate and maintain a working application on a specific software platform, we have to define an
Environment, which integrates everything related to the execution platform (Generator, database access, user
interface and other properties of this platform). To this end, we specify a DBMS, a target language and some
additional parameters for each Environment. GeneXus will generate and maintain the database schema and all
programs on the selected platform. Thus, the GeneXus analyst doesn't need a deep knowledge of the target
platform.
If this is the first time that you open the GeneXus Trial and have never before run a commercial version of the product, you will be
notified that GeneXus will automatically create a Knowledge Base. The first time that you open the trial version, a Knowledge Base will
be automatically created on a .NET environment with SQL.
Page 12
Page 13
T RANSACTION O BJECT
It represents the real-life objects that your application deals with. The defined transactions are used to infer the
application's data model (3rd normal form). GeneXus also uses the transaction object to generate the application
program that will allow the end user to interactively insert, delete and update records on the physical database.
Once the Knowledge Base has been created, the next step will be to create the first transaction which represents an invoice. To do so,
follow the steps below:
1.
2.
3.
4.
Click on CREATE.
Page 14
1.
Enter the attributes name, data type and description in the Structure tab of the Invoice transaction, as shown on the table below.
Use the TAB key to move between the attribute name, data type and description. Use the ENTER key to add a new attribute.
ATTRIBUTE
TYPE
DESCRIPTION
InvoiceId
Numeric(4.0)
Invoice ID
InvoiceDate
Date
Invoice Date
CustomerId
Numeric(4.0)
Customer ID
CustomerName
Character(20)
Customer Name
So far, we have entered the invoice header fields. We will now enter the lines. To do so, press CTRL +
Right Arrow to add a New level to the data structure.
ProductId
Numeric(4.0)
Product ID
ProductName
Character(20)
Product Name
ProductPrice
Numeric(8.2)
Product Price
InvoiceProductQuantity
Numeric(4.0)
Product Quantity
InvoiceProductTotal
Numeric(8.2)
Product Total
Press ENTER and CTRL + Left Arrow to return to the header level and enter the footer details.
InvoiceSubtotal
Numeric(8.2)
Invoice Subtotal
InvoiceTax
Numeric(8.2)
Invoice Tax
InvoiceTotal
Numeric(8.2)
Invoice Total
Page 15
2.
Save the new transaction structure by pressing the Save ( ) button on the Standard
toolbar. If you cannot view this bar, display it by right-clicking on the Menu bar (Edit
option).
You have just created the structure of an Invoice transaction composed of two levels:
A basic level (Invoice), where we specify all the information needed for the Invoice
Header.
A nested level, where we specify the information that will be repeated in every
invoice line.
This will enable us to use the same attribute in other GeneXus objects (other transactions, procedures, reports, and so
on) just by referring to its name. GeneXus establishes the relationships (foreign keys) between the tables of the data
model based on the attributes' names.
Page 16
Unless otherwise specified, attributes defined as formulas will not be stored in the database (they are virtual
attributes).
Formulas are global; they are valid across the entire knowledge base and not just within the transaction
where they are defined. This means that the formula is calculated each time that the attribute is invoked
from a transaction or from any other GeneXus object (Reports, Work Panels, etc.)
User-Defined Variables. These variables cannot be involved in a formula because they are local with respect
to the objects where they are defined, and they have no value outside them.
InvoiceSubTotal = SUM(InvoiceProductTotal)
InvoiceTax= InvoiceSubTotal * 0.11 ( or the corresponding number)
InvoiceTotal = InvoiceSubtotal + InvoiceTax
1.
2.
Double-click on the Formula field of the InvoiceProductTotal attribute (to the right of the attribute description).
3.
4.
Repeat Steps 1 and 2 for the rest of the formulas listed at the beginning of this section.
Type the following expression: ProductPrice * InvoiceProductQuantity. You can also right-click on the formula field to open the
Formula Editor.
Click Save to save the new formulas.
When you finish, you should have an invoice description that looks as follows:
Page 17
rd
Whenever you click on the Save button, GeneXus infers the optimal data model (in 3 normal form, with no
redundancies) that supports the end user entities represented by your GeneXus transaction objects. Based on this data
model, GeneXus will generate a physical database when you define a target DBMS for a model.
1.
2.
The names of the tables and indexes are automatically assigned by GeneXus with the transaction name, but
you can modify them if needed.
rd
GeneXus infers a data model in 3 normal form, with no redundancies. However, you can define
redundancies that will be automatically managed by GeneXus.
The primary key of a table corresponding to an N level transaction is obtained by concatenating identifiers of
the previous N-1 nested levels with the identifier of the N level.
Page 18
InvoceProduct
InvoiceID
ProductID
ProductName
ProductPrice
InvoiceProductQuantity
Note that:
The primary key of the InvoceProduct table is formed by two attributes: InvoiceID and ProductID (the concatenation of the first
level identifier, InvoiceID, with the second level identifier, ProductID).
GeneXus automatically eliminated from the tables the attributes that had been defined as formulas and converted them to
global formulas so that they can be accessed from anywhere within the knowledge base).
In the Invoice table:
o No two invoices can have the same InvoiceID.
o For each InvoiceID there is only one value for InvoiceDate, CustomerID and CustomerName.
In the InvoiceProduct table:
o No two invoice lines can have the same InvoiceID and ProductID.
o For each pair of InvoiceID and ProductID there is only one value for ProductName, ProductPrice and
InvoiceProductQuantity.
Page 19
W EB F ORM
After saving a new Transaction Object, GeneXus automatically creates a predetermined Web Form to specify how end
users will access the data in the application. These forms can later be customized by the business analyst.
To view the Web form, follow the steps below:
1.
Error Viewer: ctlError is the default control where error messages are displayed. You can place it anywhere in the form and configure
properties for it. The possible messages are those that are displayed in the Msg and Error rules, and GeneXus automatic controls (i.e.,
referential integrity, data type errors, etc.).
These forms will enable end users to enter new invoices that will be inserted as new records in the corresponding tables. Users will also
be able to update or delete existing invoices, provided they are authorized to do that.
The GeneXus analyst does not need to program any of these actions because they are implicit in the transaction logic. GeneXus will
automatically generate the corresponding native code in the selected language.
Remember that when you define transactions in GeneXus you are:
Explicitly: Describing the user interface for displaying and capturing data.
Implicitly: Designing the applications data model (tables, indexes, etc.)
Page 20
GeneXus generates the executable programs required to create its database in the selected DBMS based on the
inferred data model.
When youre updating your data structure, GeneXus generates the executable programs required to reorganize
the database; that is, it creates a new schema and converts the data of the old schema to the new one.
In these cases, a Database Creation Report or an Impact Analysis Report, respectively, will be displayed, showing
you what GeneXus will do.
In this step we will run the application in .NET and SQL Server will be used as DBMS.
GeneXus allows us to prototype our applications in a server located in the cloud, so that we can automatically
access them from any device, any time. For more information, read Easy prototyping: Deploy to cloud
The application server (Internet Information Services) and the database server (SQL Server) will reside in the application server of the
prototyping server in the cloud assigned to the GeneXus Trial. Upon running the application, the necessary programs to run it locally are
generated and will be automatically uploaded to the cloud. The commercial version allows you to use any of the DBMS supported by
GeneXus, and to prototype your applications in your own application and database servers. You can read the complete list of
generators and DBMS supported by GeneXus here: http://www.genexus.com/technologies
Database Creation Report: This is the report that describes the database schema that GeneXus will generate in
the selected DBMS. It contains all the information concerning the inferred data model and the database schema
proposed for generation. The information about each table is divided into five sections:
Header: Contains the name of the table, the actions to be performed on it, warnings, and errors. If the data
model contains errors, the Reorganization button will be disabled.
Table Structure: Shows the attributes of the table, their relationships, and the actions to be performed on
them.
Indexes: Describes the table indexes that GeneXus uses to maintain the referential integrity of your
database as well as to access the tables efficiently.
Foreign Key Restrictions: Describes the table integrity restrictions.
Statements: Describes the orders that will be executed.
Page 21
1.
2.
3.
Enter the same username and password that you used to authorize
GeneXus Trial.
4.
Click on CREATE. GeneXus will write the code for creating the necessary
tables and programs in the selected language to access said DB.
Page 22
The Developer Menu is an XML file that features all your executable
objects. It is an auxiliary menu for prototyping your application. Click
on the Invoice option.
2.
3.
Page 23
G ENE X US R ULES
GeneXus Rules are the means you use to define the business logic associated with each object. They are written in a
declarative way, and GeneXus intelligently decides which rule to apply and when.
These Rules play a very important role in transaction objects, as they allow you to program their behavior (for example:
assigning default values, defining data controls, etc.).
They may involve attributes defined in the transaction structure, as well as variables and functions.
Rules are programmed in a declarative way, which means the order in which they are written is not
necessarily the order in which they will be executed. The proper execution order is determined automatically
by GeneXus.
They are only valid in the transaction in which they are defined. That is why we say they are local.
We will now add a simple rule that sets the current date as the default Invoice Date:
1.
2.
3.
4.
Now lets see another simple rule that sets an error message to be displayed when the amount of products entered is null: add the
following
rule:
Error("The
product
quantity
cannot
be
empty")
if
InvoiceProductQuantity.IsEmpty();
5.
We will use the Default rule that assigns a default value to an attribute or variable.
Complete the formula as follows: Default(InvoiceDate, &today); which indicates that the default value for the
1
Invoice Date will be the current date.
Page 24
6.
Run the application (press F5) to try out the rules you entered.
Page 25
S EMANTIC D OMAINS
GeneXus provides semantic domains (Phone, Email, Address, etc.) in order to add behavior to the attributes in our
transactions. For example: if we create an Email attribute, every time we use this attribute in our objects it will
behave as an email, and it will allow us to send an email message by tapping on it in smart devices or web objects.
1.
2.
TYPE
----------------Address
Email
DESCRIPTION
--------------------------------------Customer Address
Customer Email
Note that as you start writing the CustomerID and CustomerName attributes, GeneXus prompts you with the full name of the
attribute and its type and description. That happens because these attributes have already been defined in your database.
S EMANTIC D OMAINS
GeneXus provides semantic domains (Phone, Email, Address, etc.) in order to add behavior to the attributes in our
transactions. For example: if we create an Email attribute, every time we use this attribute in our objects it will behave as
an email, and it will allow us to send an email message by tapping on it in smart devices or web objects.
3.
4.
Inside Type Definition, set the CustomerID Autonumber property to True. In this way, the programs generated will automatically
assign a CustomerID value to each new Customer instance.
5.
Activate the Suggest for the customer code, by positioning yourself on the Customer ID properties, and under the InputType option,
defining Description and adding as ItemDescription: CustomerName.
This way, instead of entering the ID for a customer to identify the customer, we can enter the customers name and the application
will automatically infer the customers ID. The Suggest property will suggest all the customer names that match the name entered by
the user. These properties are part of the AJAX implementation that GeneXus performs automatically.
Page 26
The Web Form for the Customer Transaction will look like the one shown in the figure below.
Page 27
Page 28
I MPACT A NALYSIS
This describes the physical changes that must me made to update the new data model inferred by GeneXus.
You will find that GeneXus has automatically normalized your data model, after including the new transaction.
It shows us that the Invoice table will be affected, eliminating the CustomerName attribute from the Invoice table, as this attribute can be
inferred through the CustomerID.
Page 29
NOTE
In the specification warning, GeneXus indicates that there may be duplicate values for customers in the Invoice
table and that in the process of normalizing them, they could be affected. Another warning is displayed, indicating
that the records that will be created have a null value in the tables.
Note that:
GeneXus added a new table: the Customer table (associated to the Customer transaction).
The CustomerName attribute has been eliminated from the Invoice table (this attribute is stored in the Customer table only),
leaving the database normalized.
In the Customer table:
o No two customers can have the same CustomerID.
o For each CustomerID there is only one value for CustomerName, CustomerAddress and CustomerEmail.
In the Invoice table:
o No two invoices can have the same InvoiceID.
o The CustomerID attribute in the Invoice table is a foreign key taken from the Customer table. Thus, there is a one-tomany relation between Customers and Invoices:
Page 30
S PECIFICATION R EPORT
Describes how the program will be executed, which tables it will access (and how), and what operations it will perform.
Page 31
Page 32
P ATTERNS
Patterns are similar actions applied to different elements. Patterns allow the automatic creation of all objects
necessary for fulfilling a specific functionality, while avoiding the manual method.
1.
2.
3.
4.
5.
Save changes.
6.
Page 33
7.
S EMANTIC D OMAINS
Open the Customers Work With and look at how the application behaves regarding the attributes that we
previously set as semantic domains.
Page 34
Familiarize yourself with the nodes labeled List, Detail and Section (General) in the instance, and take a look at the
screen displayed in each case.
Transaction properties:
o Business Component = True
o
Smart Device generator as secondary generator (take a careful look at its properties, especially: Generate
Android = True) in Preferences / .Net Environment / Generators
What else do you need to test the application? If you press F5 now, since there is no main object for the smart
devices section of the application, there will be nothing to execute. So, prior to pressing F5:
o Create a Dashboard (Select File Menu -> New -> Object -> Dashboard)
Page 35
Page 36
Save and note that the Main Program property has True value.
Page 37
Because we have not specified any Startup Object, GeneXus will open both the web Developer Menu on the predefined browser,
and the Android emulator, so we can try the .NET web application and also the smart devices application: Android.
In our case, the Android emulator is opening the KBN (Knowledge Base Navigator) that shows the URL to execute the applications
dashboard (the only main object that we have so far).
In addition to the links for executing the objects of the web application, the web Developer Menu will also include QR codes: one
that encapsulates the URL for downloading the KBN according to the device, for installation in it, and the others which will contain
the compiled application for smart devices, for both Android and Blackberry. If you set any smart device object as Startup object a
compiled file will be created and the related QR code will be available on the web Developer Menu.
Page 38
Tapping on the URL will display the layout corresponding to the Dashboard
Figure: Dashboard
Page 39
Take a look at the attributes being displayed for each customer. Go to GeneXus and in the pattern look for
the layout of this List, and verify the match between them.
Page 40
See what happens when you tap on the icon displayed in the address field (remember semantic domains):
NOTE
To set an email account in your emulator press menu -> system setting -> accounts & sync.
Edit or delete some customer, by pressing the related option on the top of the screen:
Page 41
To insert new customers or search press back and use the related options:
Figure: Search
CONGRATULATIONS!
You have successfully created your first application with GeneXus.
Page 42
SUMMARY
We hope that this tutorial has allowed you to experience GeneXus key functionalities and benefits:
Knowledge-based Design of Applications
We start by creating a Knowledge Base, and describing the data requirements of our application as a series of business components
called Transaction Objects in the Design Model of the Knowledge Base. GeneXus used this information to infer the optimum data model
rd
(3 normal form) required to support all its Transactions. We also added certain business rules that GeneXus used as a base to generate
the code of the applications business logic.
Automatic Generation of the Database
We selected a specific execution platform (Web, programming language, DBMS, etc.) and created a Model where GeneXus automatically
generated a physical database with the data model of the Design Model.
Automatic Code Generation and Fully Functional Prototype
We generated the source code for our application programs, and tested the application in the prototype environment.
Maintenance of the application
We saw the simplicity of maintaining/expanding an application by editing the existing GeneXus objects and/or adding new ones for
GeneXus to update the database and automatically regenerate the application programs.
Multi-platform Development
We finally described how to easily migrate the GeneXus application from one environment to another.
Page 43
SUPPORT
Artech offers a wide variety of support resources and services:
Visit genexus.com/support
If you are a U.S. or Canadian resident you may forward your questions to [email protected]
HOW TO BUY
GeneXus Technologies are sold through its worldwide network of distributors.
Look up your nearest distributor at genexus.com/distributors
or contact [email protected]
RECOMMENDED LINKS
Website: genexus.com
GeneXus X Training Area: training.genexus.com
GeneXus Community: genexus.com/community
Page 44