Including Additional SOCs or Datasets in Applications
Smallworld groups datasets into spatial object controllers (SOCs). SOCs can open all the datasets belonging to them using gis_program_manager.open_datasets(soc_name) during your build procedure. This is great to bin the different datasets into relevant groups. But the problem with this approach is that the standard application only supports one SOC. So if you had 2 SOCs that defined the "standard" data like GIS and Land, and another SOC that was opened only when you wanted (eg. including large datasets or web-based datasets while in the office) you need to do something special to include both SOCs in the application. This is done through the use of add_dataset_manager() on the SOC that is used by the application.
Magik Image Build Information
In Release 4.2, a new exemplar called make_image was supplied. This exemplar gives you the ability to register a build for a specific image based on keyed data. This is very handy exemplar and should be used whenever possible
Product Directory Override
Building images uses the magik_image exemplar allows you to redefine the location of a product using an environment variable. So for example you have a product called widget, and you defined widget in the LAYERED_PRODUCTS pointing to S:\my_products\widget. This would normally find the product.def under the S:\my_products\widget directory. However if you created an environment called WIDGET_DIR, this environment would then be used as a replacement. So if you had WIDGET_DIR set to T:\my_products, the product.def (and subsequent directories) must be located in T:\my_products.
Very good for debugging and testing, but if you don't understand why your builds aren't working check for this situation.