BAM Projects

BAM projects help you to organize the files necessary for generating Genero applications.

You have different types of BAM projects: first choose between a Desktop or Mobile application, then choose between a structured or simple project.

A simple project is created without an expansive setup of nodes and files; you must define your own structure and organization.

A structured project is created with a default structure of nodes and files, which guides the organization of your project. You can modify the structure after it is created.

Best practices

It is recommended that you:
  • Start with a structured project.
  • Use Genero (no link) as the Language property (this is the default in the structured project).
  • Put all modules (.4gl sources) of an application under the same application node. Within the node, you can use virtual folders to further organize the modules.
  • Organize your files as in Table 1.
Table 1. Where to save files
File Project (logical structure) Disk (physical structure)
Business Application diagram (.4ba ) Applicationflow


Implemented program file (.4prg) Main_prg $(ProjectDir)/src
Form file (.4fd*) Entities $(ProjectDir)/src
Report data file (.4rd) Entities $(ProjectDir)/src
Web service server file (.4ws*) Entities $(ProjectDir)/src
Configuration file, such as:
  • fglprofile
  • application configuration (.xcf)
Config $(ProjectDir)/config
Database meta-schema file (.4dbx) Database $(ProjectDir)/database
Resource file, such as:
  • presentation style files (.4st)
  • toolbars (.4tb)
  • topmenus (.4tm)
  • action defaults files (.4ad)
  • start menus (.4sm)


Image (.jpg, .png, etc.) N/A $(ProjectDir)/images
Web component (.wcsettings, etc.) N/A $(ProjectDir)/webcomponents
Test scenario (.4gl). Test


If you organize your files in the recommended manner, you minimize your configuration tasks. For example, if you save your report data files to the Entities node, it will work as-is; however, if you save your report data files to the Applicationflow node, you need to set two dependencies: the first between Entities and Applicationflow, and the second between Applicationflow and Database.

This organization also facilitates the packaging process. The structured projects provide defaults that mirror the recommended directories; for example, the Images node of the package has its Source directory property set by default to $(ProjectDir)/images. For further information, see Package and directory nodes (GAS) and Package and directory nodes (mobile).

For examples of BAM projects that follow these best practices, see the Quick Start guides for generating a desktop application and generating a mobile app.