Table of contents

Introduction

Development Environment

Web Development and Improvements in user experience

(Productivity and Enterprise-level Application Development Features)

Ajax Overview, [[21759|GeneXus' target='_blank'>Ajax' target='_blank'>Ajax Overview, [[21759|GeneXus and Ajax]]

Business Components

Business Component - Publication as an Enterprise Java Bean

Practical course: Bluesky Charters
 

Application Localization

Application Localization
Demo
Translation Tool
Help "in any language"
Practical course: Bluesky Charters
 

Patterns

About this topic
Patterns based development
Description
Built in Patterns
Work With Pattern
Demo: Work With Pattern
Practical course: Patterns
 

Better data model

Null handling optimizes navigations
Nulls property

 

User experience

New options on rightclick in win
 

Reverse Engineering

Database Reverse Engineering Tool
 

New Platforms

MySQL
.Net Mobile Generator
More J2EE support than ever
 

Data Types and Methods

Message Queue handling data types

DirectoryDataType
LDAP Data Type

URL access Property
New IIF function
New byte count function
New Methods for attributes, variables and enumerated domains!
XSLTApply Method
Procedures can now call web objects
Web Services: Grouping Locations
News about model, object, and control properties


Unofficial Content
  • This documentation is valid for:

PRACTICAL COURSE: BLUESKY CHARTERS


Execute GeneXus 9.0. Copy the BlueSkyCharters KB to your local disk.
This KB contains defined objects and has a .NET Web prototype model setup to get connected to SQL Server 2000. Data has been loaded in the database.

The created transactions contain a default Web Form as well as BlueSkyCharters business rules. Take some minutes to study the existing objects.

Part 1 - Entering data in Web Backoffice


Compile and execute the Developer Menu (Use Compile & Execute button).
Execute and observe the following behaviors:

Client side validation in web

We will see some examples of controls executed in the browser without performing a post to the server.

  • In the Country Transaction
Enter to the 'Country' transaction and program a rule not to allow the country name to remain empty, and another rule to display a warning in case the Short Name is left empty. Try to enter a country in runtime leaving the name empty and then the Short Name empty. Try to use the IsEmpty() method (insted of the null() function) to query for the empty value of an attribute. Thus, you will see the advantage represented by the intellitips provided by the use of methods.

You will see that you do not need a roundtrip to the server to know the error. GeneXus is automatically generating the required jscripts for the validation in the browser.

  • In the Passengers Transaction
Define a flight passengers transaction where luggage overweight will be controlled. Note that it will be parallel to Flights.

img/wiki_up//prac1.jpg

In the structure, it should have:

img/wiki_up//prac2.jpg

TIP: bear in mind that, by typing "." when you enter an attribute in the structure, the transaction name is placed as prefix of the attribute name. Also remember the scroll between names starting with the same letters, using the keyboard arrows. You can also try the Domains inline definition as well as the formulas inline definition.

Modify theme Error and Messsages classes to try this feature.

The following formulas are defined:

PassOverweigth: It has been established that each passenger is allowed a maximum luggage weight of 50 kilos and there will be an additional charge equivalent to 5 kilos per each kilo exceeding the weight limit.

Besides, luggage must controlled so that passengers do not carry luggage weighting more than allowed by the charter, and passengers must be warned in case they carry more than two luggage items.

For this, you must define rules:

Error("Grant flight weight exceeded") if FliGrantWeight > CharterMaxHeight;
Msg("Warning: The passenger has more than two luggages") if PassLuggageQty > 2;

Execute the transaction and verify that these controls must be made not only in the server but also in the client.

Last update: February 2024 | © GeneXus. All rights reserved. GeneXus Powered by Globant