Welcome to GeneXus 15 Junior Level Course

You will easily learn, through various examples, the core of GeneXus to start developing your own applications today!

Objective

Provide the minimum knowledge required to understand GeneXus and start developing applications under guidance or supervision.

Designed for

Those who want to start developing applications with GeneXus as quickly as possible.

Course Requirements

Students who don’t have prior programming skills are recommended to read this information before starting the course.

Modes

This level is available in the following modes:

Classroom Training

Classes are taught by a GeneXus instructor and students must attend all of them in person. To take the course in this mode, we recommend that you read the calendar and contact our academic partners in your country.

Duration of the Course: 34 hours

• theory/practice (28 hours)
• exam preparation (4 hours)
• exam (2 hours)

Self-Studying Training

Students follow the course on their own, at their own pace, without the support of a GeneXus instructor.

Duration of the Course: 15 hours, 01 minute

• 43 videos (7 hours 01 minute)
• practice (8 hours)

Exam

Students will be able to take the exam corresponding to the GeneXus Junior Analyst certification. This exam is taken on a computer and includes multiple choice and true/false questions about the topics learned throughout the course, to confirm that the student has effectively learned the essential concepts required for developing applications with GeneXus, according to the Junior Level.

In this section you will find a PDF document with practice exercises similar to those done in class. They include some new exercises in addition to other options. It is suggested that the exercises be done after studying each specific topic.

  •  ONLINE / BLENDED COURSE
KB solution of practical exercises:
Name: GeneXus15JuniorCoursePracticalExercises
Server: http://samples.genexusserver.com/v15Material:  Practice exercises | Images
  • CLASSROOM COURSE
KB solution of practical exercises:
Name: GeneXus15JuniorCoursePracticalExercises
Server: http://samples.genexusserver.com/v15MaterialPractice exercises | Images | Ppts with notes

Have questions about the training or need additional help? We’re here for you!

Bob Smith, Trainer USA
bobsmith@genexus.com


Bob Smith, Trainer USA
bobsmith@genexus.com


Bob Smith, Trainer USA
bobsmith@genexus.com

Before You Start

We recommend that you work on the practice exercises provided in the Materials section, as you watch the videos of each group of topics. In this section, you will find information about the software requirements to start working.

Below each video, you will find the corresponding scripts (transcripts with images).

First Steps

Brief description of the tool, its objectives and features.

Overview:  The meaning of GeneXus being multi-platform.

Technical Features Covered:  The type of applications that may be generated (web, mobile), and in what languages. Introduction of the application that will be developed throughout the course. Introduction of GeneXus Server, a tool to manage the development of our application.

Click here for a PDF transcript of the video.

Overview: Initial execution of GeneXus: IDE, integrated development environment.
Technical Features Covered: How to create a new project or knowledge base by configuring the programming language in which the application will be generated while it is tested, and its language.

Click here for a PDF transcript of the video.

Transactions

Overview:  Description of objects from reality through GeneXus Objects of the Transaction type. Identifiers (keys), Data types, Web form

Technical Features Covered:  Create the Customer transaction and enter in its “structure” the attributes that represent each customer’s relevant data. We consider the concept of identifier or key, the Data Types of attributes, semantic domains Address, Phone and Email, and the web form (screen offered to the user when executing the transaction, to edit information). We upload our changes to GeneXus Server for the first time.

Click here for a PDF transcript of the video.

Overview: We request that GeneXus automatically create the programs and the database, and then open the web browser to enable us to execute and test

Click here for a PDF transcript of the video.

Overview:  The “Attraction” transaction is created to record the tourist attractions, and the key attribute is considered, as well as how to edit an attribute’s properties and how to define domains for its Data Types and autonumber numeric attributes. The issue of recording the country of the tourist attraction is also introduced.

Click here for a PDF transcript of the video.

Overview:  We add the Country and Category transactions and specify, in the Attraction transaction, that an attraction belongs to a country and category. We see how GeneXus keeps all related information consistent.

Technical Features Covered:  We show, in practice, the concept of referential integrity, to maintain data consistency. Introduction of foreign keys relative to primary keys and the significance of calling the corresponding attributes in the same manner. Introduction of the difference between the structure of the transaction and the associated physical table (with the concept of “inferred attributes”). Presentation of the selection list as an object automatically created by GeneXus to facilitate work with related data. We show how it is possible to indicate that a foreign key may have no value, through the Nullable property.

Click here for a PDF transcript of the video.

Overview:  How do we represent that a country has a number of cities? Creating a second level in the structure of the Country transaction.

Technical Features Covered:  We see that GeneXus creates two tables and focus on the primary key corresponding to the second level. We see the grid added in the web form to record cities. We add the city to the Attraction transaction and specify that it may be empty (nullable) in runtime.

Click here for a PDF transcript of the video.

Overview:  When we create a new attribute we can use any name we want. What is the manner suggested?

Click here for a PDF transcript of the video.

Overview:  There is a place in each transaction to specify rules to be triggered when the user interacts with the screen  (to insert, modify or delete information).

We see how to ensure that, in the Customer transaction:•    no record is made of a customer with empty name, empty surname, or a date in the system later than today (Error rule)

•    no record is made of a customer with empty name, empty surname, or a date in the system later than today (Error rule)
•    a warning message is shown when the phone remains empty (Msg rule)
•    the day’s data is automatically assigned to a Date attribute (Default rule)
•    the edition of an attribute is disabled (Noaccept rule)

We also see how to condition the triggering of a rule. Specifically, in relation to the operation that is to be carried out: Insert, Update or Delete.
We show what variables are and what they are used for, and how we define variables in objects, as well as their main difference compared to attributes.

Click here for a PDF transcript of the video.

Overview:  On GeneXus objects defined in the KB such as transactions, we may apply some patterns that build other objectos on them to add functionalities, like those provided for by the pattern Work with the data of a trasaction.

Technical Features Covered:  The Work With for Web pattern is applied to the Country and Attraction transactions. The consequences are shown in runtime, through the objects that the pattern itself generates for implementing appealing screens that enable us to show, on a grid, the country and attraction data. We see how to customize what is generated: deleting/adding attributes to the grid, adding filters and orders, how to enable or disable standard actions on data (insert, update, delete). We study the dynamism between transaction structure, pattern instance and objects generated. We see how to dis-apply a pattern.

Click here for a PDF transcript of the video.

Overview:  On GeneXus objects defined in the KB such as transactions, we may apply some patterns that build other objectos on them to add functionalities, like those provided for by the pattern Work with the data of a trasaction.

Technical Features Covered:  The Work With for Web pattern is applied to the Country and Attraction transactions. The consequences are shown in runtime, through the objects that the pattern itself generates for implementing appealing screens that enable us to show, on a grid, the country and attraction data. We see how to customize what is generated: deleting/adding attributes to the grid, adding filters and orders, how to enable or disable standard actions on data (insert, update, delete). We study the dynamism between transaction structure, pattern instance and objects generated. We see how to dis-apply a pattern.

Click here for a PDF transcript of the video.

Overview:  Introduction of the concept of subtype to enable the use of an existing attribute with a change of name, and a usage example where from a flights transaction we must record the departure airport and the arrival airport.

Technical Features Covered:  Introduction of the concepts of: group of subtypes, subtype and supratype, consistency controls (referential integrity) and selection lists, table diagrams, attribute describing a transaction and Contextual Title property of an attribute. The case of usage studied in the multiple reference of a transaction to another. Other usage cases not studied are also presented.

Click here for a PDF transcript of the video.

Overview:  GeneXus provides the formulas for calculations involving specific values of attributes, constants and/or functions. We study the global formulas and leave the study of local formulas for further instances. We will see the so-called horizontal and aggregation formulas.

Technical Features Covered:  We study the AfterLevel moment and also introduce AfterComplete, and the execution of a Commit command in between BeforeInsert and AfterInsert.

Click here for a PDF transcript of the video.

Overview:  Based on an example where we must delay the triggering of an error rule to allow time to the user for entering header and lines data, we study the rule triggering events in transactions. Rules may be conditioned to be triggered in these events and not previously or later.

Click here for a PDF transcript of the video.

Overview:  We study the types of relations that may be established between the entities from reality: one to many (strong and weak), many to many, their characteristics and ways to model them based on the transactions. We present two cases of relations one to one.

Click here for a PDF transcript of the video.

Procedures and Listings

Overview: We introduce the Procedure object, with one of its multiple uses: implementing PDF listings displayed on the browser. We study two of the main commands for that: the print and the for each, which enables access to an entity’s data.

Technical Features Covered: We focus on the Layout and Source chapters of a procedure for listing tourist attractions. We introduce the printblock control and see how to define the output design. We also see how to include images in the KB for them to be used in objects. We start the study of the For each command, which is basic in GeneXus. We introduce the base transaction of the For each, as well as the Order and Where clauses. We analyze the Navigation Listing.

We strongly recommend that the “”Final Overview“” video be viewed, where we question some of the statements that will be considered in upcoming videos.

This video also includes rule output_file, Call Protocol HTTP.

Click here for a PDF transcript of the video.

Overview:  How to use nested For eachs to print related information (the categories and their tourist attractions). This case is known as join.

Technical Features Covered:  A procedure is implemented with a couple of nested For eachs, where the information of the external For each is related to that of the internal For each with a relation of one to many. An explanation is given regarding the difference between this case (join) and cases where there is no evident relation between the information (Cartesian product).

We recommend that you view the “Introduction to procedures and listings. Command to query the database” video.

Additionally: nested For eachs –related navigations, independent For eachs, join, print, Cartesian product, printblock, layout, source, base table, extended table, pdf report.

Click here for a PDF transcript of the video.

Overview: We often want to list, for each record on a table, the related records on another table, but only for records with relations. In sum, it is about listing information from one table, grouped pursuant to a given criterion, in what is known as a control break. We recommend that the “How to list related information” video be viewed in advance.

Click here for a PDF transcript of the video.

Overview: Formulas that we declare locally, as a punctual instruction within a given code (Source of procedure or Data Provider, Web panel event, etc.) Comparison against global formulas (defined at the attribute level).

A list of countries is defined where, for each country, the number of tourist attractions is shown. Then the country listing is filtered by countries with more than two attraction. To do this a Count formula is used in the Source. We study how to determine its navigation.

We recommend that the “What are formulas” video be viewed in advance.

Click here for a PDF transcript of the video.

Communication Between Objects

Overview:  When an object invokes another object, how is information passed? For instance, an object that requires the user to enter a country and calls a listing to print the attractions in that country.

Technical Features Covered:  A web panel is used to request data from the user. A variable is used in it as dynamic combo box, that is: a variable that loads all countries for the user to make his selection. We study the parm rule to declare the parameters that an object receives. We use “in” to indicate that a parameter is input. Only the case where the parameters declared in parm rule are variables is studied here.

Click here for a PDF transcript of the video.

Overview:  What happens when an object is invoked for it to return a result to the caller? How may the invocation be made and how should the parameters in the object called be declared? What happens when a parameter is an attribute instead of a variable? We recommend that the “Communication between objects” be viewed in advance.

Click here for a PDF transcript of the video.

Compound Data Types and Data Providers

Overview:  In addition to the simple data types, GeneXus allows the possibility of defining structured (SDT) or compound data types to be used only as data types for variables (not attributes). Their use with business components and data providers is shown further ahead.

Click here for a PDF transcript of the video.

Overview:  Introduction of the Data Provider object by means of an example, and with the purpose of loading and returning a compound structure (both simple and collection) to do something with it, such as printing it.

Technical Features Covered: SDT collection – a ranking is countries is to be implemented according to the number of tourist attractions. To do this, a structure is required in memory to temporarily store a collection of items (with the info of each country and the number of attractions in it). The Sort method of an SDT collection is shown to order it. And the For item in Collection command is presented to go over the items in a collection.
The Data Provider object is presented, with its Output and Collection properties, and its similarity with a For each when it comes to indicating base transaction to navigate a table in the database, and the Where clause to filter the information.

It is especially recommended to view the video “”Final Overview”” for this course, where some of the aspects stated are questioned, and will be included in upcoming videos for organizational reasons.

Click here for a PDF transcript of the video.

Overview:  When defining a variable of a given data type, we may indicate –by means of a check box in the Variables tab– that what is wanted is for it to be a collection of that data type.

Technical Features Covered:  Introduction of properties and methods of all variables defined as collection. Examples: Count property, Add, Remove, Clear, and Sort methods, For item in collection command.

Click here for a PDF transcript of the video.

Overview:  According to whether an SDT was defined as simple or as collection, we show how to make a Data Provider return the collection. Use of the Collection property of a Data provider to indicate that it will return a collection of the data type indicated in the Output property.

We suggest that the video “Loading Compound Data Types (SDT) using Data Providers” be viewed in advance.”

Click here for a PDF transcript of the video.

Data Base Update

Overview:  To carry out the same Insert, Update and Delete operations that a transaction performs, including gall the controls it performs, but with no screen and by code from any object, we introduce the Business Component concept.

Technical Features Covered:  With an example where we create a new category called “Tourist Site” and change the category of all the transactions that were “Monument” in Beijing to the new category, we introduce the business component as a data type created as mirror of the transaction, and usable through variables and their Save(), Load(), Delete() methods, as well as Insert(), Update(), InsertorUpdate(), Success(), in any object. A comparison is made of the update through the transaction against the update through the business component. An explication is made regarding the need to use the Commit command.

We suggest to follow up with the video “Data Population using Business Components and Data Providers

Click here for a PDF transcript of the video.

Overview:  A Data Provider allows not only the loading and return of compound structure of data from the database, but also from fixed data. A compound structure may be SDT as well as BC (business components). And also simple as collection.

Technical Features Covered:  We will see how to use a Data Provider to return a collection of business components of the Category type, and then use the Insert method of a collection of BCs variable, to insert its values in the database. And we will see the same for Attraction.
Note: to assign an image from the KB to an element, an attribute or a variable, we use its link method.

We suggest that the video “How to update data using transaction logic without screen” be viewed first and then continue with the video “Data population using the transaction itself”.

Click here for a PDF transcript of the video.

Overview:  The population of a table with data is not done manually as in the previous video, but using the transaction’s Data Provider property.

Technical Features Covered:  A requirement is to previously view the video “Data Population using Business Components and Data Providers”. We link the Data Provider property of the Category and Attraction transactions, along with the property “Used to” in “Populate data”, to populate its tables with data, through the Data Provider created automatically for each of them. We will show the use of the Update Policy property and also the case of dynamic transactions.

Click here for a PDF transcript of the video.

Overview:  As a solution for the update, by code, of the database, we saw the use of Business Components. However, in some cases, and mainly due to performance reasons, we will face the need to update with controls not so demanding. To do this we use the New, For each and Delete commands in the procedure object. We introduce them here.

Click here for a PDF transcript of the video.

Interactive Screens

Overview:  We build a screen similar to the one implemented by the Work With pattern of attractions: with a grid with attributes sorted by certain criteria, with filters on data, entered by the user, and actions on the grid data, among other things.

Technical Features Covered:  We will implement a web panel with a grid with attributes and variables, and see the system’s Start, Refresh and Load events, as well as user events, particularly the Click associated with an attribute or variable in the grid. We will call the Attraction transaction modified by the pattern, in Update mode. We will see the system’s &Mode variable in transactions, and the values it takes. We will see that the attributes correspond to the output and the variables to the input. We will see how to make a variable Readonly.

Continue with the video “Interactive screens: Web Panel object (cont)

Click here for a PDF transcript of the video.

Overview:  What happens when an action at the grid lines level modifies the value of an element on the line? We will conceptualize everything that was seen in relation to web panel with a grid with base table, and we will study web panel with attributes but without grid, and the case of web panels without base table. We will see the responsive web design and when it becomes necessary to hide a grid column.

Technical Features Covered:  Based on examples, we conceptualize all that relates to web panels. We will study the differences between web panel with and web panel without base table, based on the Start, Refresh and Load events. We will see an example of the difference between receiving a parameter in variable or in attribute. The end consists of mentioning cases of nested and parallel grids, and the types of web panels that exist (web page, web component, master page), as well as panels for Smart Devices.

Click here for a PDF transcript of the video.

Design

Overview:  Web applications call for special care in the user interface, that is: in the appearance and functioning of controls on screen enabling us to enter or view information. All the controls we include on a screen may be configured through the Theme object.

Click here for a PDF transcript of the video.

Reporting Tool

Overview:  Introduction of the Query object, its structure and main concepts. Step-by-step explanation of a query that is seen in runtime in the end as a graphic element.

Click here for a PDF transcript of the video.

Smart Devices

Overview:  How to implement a part of the application for Smart Devices, especially with an example of use meant for end users, which will enable the query of trips available and the main tourist attractions in each city.

This video was filmed with GeneXus X evolution 3 version. Between that version and the current version no substantial changes have been made, so the video has not been filmed again. You will see different screens but all concepts continue to be applicable. The transcription of the PDF includes the screen captures in the GeneXus 15 version. Soon, this video will be replaced with a new one filmed in this version.

Including: pattern Work With for Smart Devices, Dashboard, SD Image Gallery, Geolocation, Order with Break by”.

Click here for a PDF transcript of the video.

Version and Platform Management

Overview:  Basic actions and concepts for using GeneXus Server. Throughout this course GeneXus Server has been continuously used to manage and automatically integrate all the functionalities implemented. We did this working on our own individually and not as a team, and always from our local KB from where we upload our changes to the server. We did not see what happens when, in turn, other members of the team upload their own changes.

This video was filmed in the X version of Evolution 3, and it continues to be valid for GeneXus 15, even when the interface may differ. It will soon be replaced by a video filmed in the latest version.

Click here for a PDF transcript of the video.

Overview:  One of the main advantages of GeneXus is that it allows the generation of applications for different platforms. All this information is defined in an Environment that has several properties available for determining the execution platform and its characteristics.

Click here for a PDF transcript of the video.

Other Tools

Overview:  Introduction of the web services concept, showing how we may consume a webservice developed by third parties from a GeneXus application, and also how a web service may be developed in GeneXus.

Click here for a PDF transcript of the video.

Overview:  An introduction to the GeneXus Suite for managing business processes (BPM Suite), and how we may define a sequence of tasks from our reality as business process and model it in GeneXus to then execute it. With the GXflow client, we show how each user has an incoming tray with the user’s tasks pending execution and an administrator able to define users and permits, as well as to monitor the execution and modify the order of execution of tasks while optimizing the business process.

Click here for a PDF transcript of the video.

Overview:  Introduction to application testing with GXtest, and to how the tool aids in automating tests by recording sequences of operations to later reproduce those tests automatically, as if it were an individual entering data and verifying results.

Click here for a PDF transcript of the video.

Overview:  Introduction of the concept of the GAM security module (GeneXus Access Manager), and how it is imported to the KB, its configuration and execution. We also show how to access the GAM’s backend application that enables the recording of users, and the definition of roles, among other things.

Click here for a PDF transcript of the video.

Final Overview

Overview:  A review of the main topics studied in relation to database accesss. A discussion about the GeneXus philosophy relative to the abstraction of the physical model used as the basis. We will question everything relative to the use of tables done with learning purposes throughout the course.

Click here for a PDF transcript of the video.

What kind of apps can I build with GeneXus?

You can build all kinds of wonderful apps with GeneXus!

How should we work with other departments building apps?

You can build all kinds of wonderful apps with GeneXus!

What if my company doesn't use GeneXus. How can I get it in my company?

You can build all kinds of wonderful apps with GeneXus!

What are certifications?

Certifications are a way of validating users’ skills, expertise and technical competence with GeneXus. Certification exams assess whether candidates are able to use it effectively in order to leverage all the advantages provided by the tool, and thus increase productivity when developing applications with GeneXus.

Congratulations on completing this course. You’re now ready to start building  applications!