FreedomSoft - "the future is freedom"
Introducing the Freedombase Designer Tutorial - Print Version

Please Note: Before printing, you may need to adjust the Print Size within your browser to 100%.


Introducing the Freedombase Designer - Introduction

The Freedombase Designer is the primary development tool for Freedombase.

The Freedombase Designer is a Web or browser based development tool, providing a local or remote, and single user or multi user, development and maintenance interface for Freedombase.

The Designer will operate on any JavaScript compliant Web browser, including full size (desktop) or small screen (hand held or mobile), and can be run on the development machine itself, over an Intranet, or over the Internet.

The Designer combines all Freedombase development and maintenance tools into the one easy to use, and easy to learn interface. This, combined with full local and remote capacity, full size screen or hand held, and single and multi user access, makes Freedombase a flexible, powerful, and practical tool to use to create new Web based systems, or to Web enable existing systems.

This tutorial provides an introduction to the Designer. By the end of this tutorial, you will understand the basic features of the Freedombase Designer, and you will have some understanding of some other features of Freedombase.

Do not be concerned if concepts or features are introduced or mentioned in this tutorial, but not fully explained; these will be explained more fully in other tutorials. While this tutorial will provide you with a basic understanding of some of the primary features of Freedombase, it is not intended to explain those features in full. All that is intended for now is a basic understanding, or an overview understanding.



Introducing the Freedombase Designer - Introduction - Login

In order to use the Freedombase Designer tool, the user needs a valid user name and password with a Designer security setting.

The image below is the login page for the Freedombase Designer; the user needs to enter a valid user name and password (1) to proceed.

After the user has logged in successfully, the Designer Navigate menu below (1) will be displayed.

While the Navigate menu itself is static throughout the Freedombase Designer, other menus are provided on other pages as appropriate.



Introducing the Freedombase Designer - Introduction - Primary Options

The image below illustrates the ten primary menu options within the Freedombase Designer; Help, System, Class, Attribute, Template, Code, Control, User, Audit Trail, and Log (1).

The primary purpose of this tutorial is to explain the primary usage of each of these menu options.

By the end of the tutorial, you will be able to find your way around the Freedombase Designer, and the ground work will have been laid for proceeding to other Freedombase tutorials.

Please be aware that this tutorial is only intended to provide you with an overview of the Freedombase Designer; detailed instructions for each option are provided in other tutorials.

Please also be aware that details on every field and every option on every page of the Freedombase Designer, are available through the Freedombase Help pages that can be accessed by clicking Help on any Designer page.



Introducing the Freedombase Designer - Introduction - Menu Structure

Before we take a look at each menu option available within the Designer, it may be helpful to describe a little about the menu structure used within the Designer.

The Navigate menu is used to navigate around the Freedombase Designer, and is consistent across all Designer pages.

Using the System page to demonstrate the remainder of the Designer menu options, the File menu (1), allows you to Save or Delete the data on the current page, and New allows you to display a new, clear page.

The Search menu (2) allows you to enter or select data in any field or fields on the page, and then search for that data, using a New search, an Expand/Or search, and a Shrink/And search. The Not/Invert search allows to you invert the current search results.

The View menu (3) allows you to view and select from data; View All displays all data, and View Search Results displays results of the most recent Search. If there is no current Search for the data displayed within this Page, then View Search Results will drill from the most recent Search results on the closest data.

The Utilities menu varies from page to page, and will be explained on each page.



Introducing the Freedombase Designer - Page Types - Maintenance

There are two fundamental types of pages within Freedombase. The first are the maintenance pages, such as the System maintenance page below, where you can save, delete, search for data, and drill to ('View') other related data. This current example shows a maintenance page for a system called "TEST" (1), however all maintenance pages within the Freedombase Designer share the same basic structure.



Introducing the Freedombase Designer - Page Types - Selection

The second fundamental type of page with Freedombase, are the selection pages, such as the Class selection page below. In Selection pages, you can view all data, view search results, sort the data by one or more Attributes, page backward and forward if there are too many Instances to display on the one page, and select desired data.

Selection pages are usually accessed via the 'View All' link, via any of the Search links, or via a Select link.

The example below is the System Selection page from within the Designer (1). From the image we can see that there are four systems already created. Selecting one of the systems will display the details for that System, in the System Maintenance page described previously.



Introducing the Freedombase Designer - Help Pages - Introduction

Help is the first of the primary Navigate menu options within the Freedombase Designer.

Help is a link to the Freedombase Help pages. Note that the Help pages are on line, as is the Freedombase Designer, allowing developers to access the full Freedombase Help files from anywhere.

The Help pages are divided into separate sections, each section covering a different aspect of Freedombase.

The Help pages are mainly intended for use by developers with some existing knowledge, looking for help on specific options. These tutorials are intended to provide the basic level of knowledge that may be necessary before the Help pages become significantly useful.

We recommend that you familiarise yourself with the Help pages, after this tutorial is complete, by quickly glancing through the Help pages.



Introducing the Freedombase Designer - System Page - Introduction

The System page, is where a new system is started, and where you can display a summary of all Classes within each System.

You can have one or more systems, and each system can contain one or more Classes. There are no hard and fast rules as to what Classes should belong within what systems. There are also no restrictions on systems communicating with each other. Systems are primarily intended to allow developers to collect Classes together in a manner that makes finding appropriate classes easy.

In the example below, system 'TEST' contains three classes - POSTCODE, STATE and TEST (1). You can go directly to the Class page, by selecting the View link (2) located to the left of that Class. This is a standard navigation technique within Freedombase.



Introducing the Freedombase Designer - System Page - Utilities

Freedombase creates code that understands and applies all business rules and relationships, that apply to a particular Class. These are generally called 'Class processes', or simply 'processes', within Freedombase.

The (Re)build Processes Utility link (1) allows you to rebuild all processes for all Classes within the system currently on display. Be aware that this function may take several minutes to run from the System page, depending on the number of classes on display, and the system that Freedombase is running on.

Freedombase can create default Web pages for you, according to the Class definitions entered. Those Web pages can then be modified in any HTML editor (but preferably within an HTML editor that understands stylesheets), and compiled into code that integrates with the Classes and the database.

The (Re)create Templates Utility link (2) allows you to recreate all Templates for the system currently on display. Again, as for the (Re)build Processes link, this function may take several minutes to run from the system page, depending on the number of classes on display, and the system that Freedombase is running on.



Introducing the Freedombase Designer - Class Page - Introduction

The Class page displays all information about that Class, including a list of all Attributes within that Class (1); derivation (2), validation (3), and data type rules (4) for each Attribute; multi dimensional relationships within the Class; and relationships between this and other Classes (6).

Most development and maintenance work is carried out through the Class page.

Derivation is primarily used to set specific attributes to particular values, often using the values of other attributes in the same class or other classes to do so. In the example shown (2), the value of the attribute is being uppercased. This example is, of course, only a very simple derivation; derivations can be anywhere from simple to complex.

Validation is used to check the value of an attribute, and to report an error if appropriate. Validations work in the same way as derivations, except that the result of the validation must be true for the validation to be passed. (Ie, derivations set the values of attributes, and validations test the value of attributes for validity.)

Both derivations and validations use a spreadsheet like language, in Freedombase called calculations, where the developer references attributes in any class in the system within the calculation, and Freedombase replaces that reference with the related data at run time. This requires no coding by the developer, as long as there is a direct or indirect relationship between the class the calculations are attached to, and the classes the calculations reference.

One of the most important aspects of classes in Freedombase, is that they can have relationships defined between the Classes (6), that are then applied by Freedombase within the calculations described above, as well as in other areas. These relationships allow data within other, directly or indirectly related classes, to be used within the current class without any programmer effort. In this particular example, the "STATE" attribute is related to the "NEWATTRIBUTE" attribute of the "NEWCLASS" class in the same "TEST" system.

Please note, that the relationship type in this example is set to "=", or "equal", however many other relationship types can be used, some of which are unique to Freedombase.



Introducing the Freedombase Designer - Class Page - Utilities

The Class page has (Re)build Process and (Re)create Template utility links (1). These utilities operate and mean the same as on the System page, except that on the Class page they only refer to the Class currently on display.

Because the (Re)build Process and (Re)create Template utility links on the Class page only operate on the single Class currently on display, they run much more quickly from the Class page than from the System page. You should consider using these functions from the Class page instead of the System page, if you only have a small number of Processes or Templates to rebuild or recreate.

The Class page also contains Derive (2) and Kick (3) utilities. The Derive utility can be used to derive the structure of an existing table or Class, and the Kick utility can be used to recalculate all data contained within a Class. The Derive function is normally used when connecting to existing tables, and the Kick function is normally used when the derivations on a Class have been changed, and you want to update all data in the Class to use the new derivations.



Introducing the Freedombase Designer - Attribute Page - Introduction

The Attribute page allows you to create, edit, or delete, one specific Attribute. This page is not used very often; everything on this page can be maintained on the Class page. However, it is sometimes useful to see only the information for the one attribute you are interested in, and in those circumstances the Attribute page can be useful.



Introducing the Freedombase Designer - Template Page - Introduction

In order to provide a flexible, easy to use, and easy to integrate Web interface, Freedombase uses HTML or Web templates.

A Template is a normal HTML page, containing some Freedombase tags, which allow that page to be integrated with Freedombase and therefore with the database.

Templates can be plain HTML, or can contain virtually any valid HTML options, including but not limited to, scripts, style sheets, frames and more.

Templates can be edited online through the Template page (1), or in any HTML editor. (It is, however, recommended that a style sheet compatible HTML editor be used.) This allows Web pages to be professionally created and maintained, and still integrated with Freedombase and the database with ease.

Existing pages can be edited online by entering the file name (2), or via a Search or View All.

New pages can be created by entering the new file name (2) and the HTML; the data within the other fields will be filled in automatically when the template is saved or rebuilt.



Introducing the Freedombase Designer - Template Page - Utilities

The Templates page allows Templates to be edited locally or remotely. The (Re)build Template utility is used to convert the HTML template into a program, that provides the integration between the Template, Freedombase, and the database.

After changes have been made to the Template, in order for these changes to take effect, the Template must first be saved, by selecting the Save link, and then rebuilt (into a program) by selecting the (Re)build Template link.



Introducing the Freedombase Designer - Code Page - Introduction

Many standard functions are provided within Freedombase, and are automatically integrated. Some of these standard functions can be removed on a case by case basis.

However, when circumstances arise that require custom code to be written, to meet that circumstance, the Code page can be used.

It is possible to create Code that will be executed before or after (pre or post) any Class processing is performed, and it is possible to create Code that will be executed before or after (pre or post) any Template code is executed/any Template program is run.

The usage for code in each situation varies, and is covered in more detail in other introductions.

The Code page allows that code to be created, maintained, and compiled, either locally or remotely, as with all Freedombase Designer functions.

Please note that for maximum flexibility, Code can be edited and compiled either through the Freedombase Designer Code page, or through any code editing tool provided with the database and language that you are using.



Introducing the Freedombase Designer - Control Page - Introduction

Many functions within Freedombase have standard settings, which can be modified by setting appropriate values in the Control Class, via the Control page.

For example, the number of times a user may enter an invalid password, before the user is locked out, and the default Login page to use, can both be controlled or set via the Control page.

A full list of adjustable settings is available through the Control Help page.

You will only rarely need to use the Control page.



Introducing the Freedombase Designer - Control Page - Utilities

The Control page provides access to the Cascade and Clean utilities. Generally, the Cascade and the Clean utilities will run automatically; however, if they are not being run automatically for any reason, they can be run manually from the Control page.

The Cascade utility can be used to manually start the standard Cascade function, using default values, when the Cascade function is not being executed automatically.

The Cascade function is used by Freedombase in order to automatically cascade related data updates; for example, instead of a programmer writing a program to update a customer's balance when a new invoice is created, if the correct Derivation is set against the Balance attribute in the Customer Class, Freedombase will understand when the customer's balance needs to be updated, and will update it automatically using the Cascade function the next time the Cascade function is executed. Please see the FBCASCADE command in the Command Help page for more details on the Cascade function.

The Clean utility can be used to manually start the standard Clean function, when the Clean function is not being executed automatically.

Freedombase uses temporary or working Classes to store information; that information needs to be cleaned out periodically, in order to maintain a high level of performance. The Clean utility cleans redundant information out of those temporary or working Classes. Please see the FBCLEAN command in the Command Help page for more details on the Clean function.



Introducing the Freedombase Designer - User Page - Introduction

The User page allows users, who have access through the Freedombase Web interface, to be defined, maintained, and reset. There are number of options that can be set for a user. The primary options are:

1. Changing the name of a user.

2. Changing or restting the password for a user.

3. Setting security levels for a user.

4. Setting restrictions on IP addresses that each user can log in from, to provide an extra level of login security.

5. Setting which page a user should see when they first log in.

6. Monitoring and resetting the login status for a user; for example reenabling the user, if their login has been disabled due to too many invalid login attempts.



Introducing the Freedombase Designer - Audit Trail Page - Introduction

Every change made to data through Freedombase, is audited; even changes made through the Freedombase Designer.

There is also an optional View audit trail, recording who saw what, and where and when.

The Audit Trail page can be used to search through the audit trail, and to display the results found.

Please note, however, that changes to values of Attributes, where that Attribute name contains 'Password' in any casing combination, are not audited, for obvious security reasons.



Introducing the Freedombase Designer - Log Page - Introduction

Serious errors, such as the inability to open/connect to a Class, are recorded in the Log, accessible through the Log page.

Also, to assist in debugging when developing remotely, it is possible to turn on Logging for a particular User; thereafter, a log file of the output of the most recent server side processing for that user will be maintained, and is accessible through the Log page.

The log should be checked periodically by a system administrator, to confirm that no errors are occurring and being recorded, that are going unnoticed or unreported by users.



Introducing the Freedombase Designer - Wrapup

This ends the quick tutorial to the Freedombase Designer.

Please remember that detailed information on the Freedombase Designer is available through the online Freedombase Help pages.

Also, please walk through the other Freedombase tutorials, in order to further understand, and to work with most effectively, the Freedombase software tool, and the Freedombase Designer.

Thank you for your time!



    navigate