[<10>] ====== Extending Aware IM ====== //**Aware IM**// is a powerful software system that allows users to configure fully functional Internet enabled applications without programming in most cases. Thus //**Aware IM**// can be used not only by professional developers but also by business professionals. In certain cases, however, it may be necessary to add programming extensions to //**Aware IM**// in order to implement application functionality that is otherwise very difficult or impossible to configure using available configuration tools. This mostly applies to calculation extensive functionality (for example, some mathematical algorithms) or interaction with some non-standard hardware that is not supported by //**Aware IM**// out-of-the-box. It is important to stress, though, that in order to support such functionality programmers do not have to learn new technologies or understand at a very deep level the internals of the //**Aware IM**// software. //**Aware IM**// allows programmers to write extensions (plug-ins) in the following areas: * Custom processes implemented by software components rather than by configured rules (see [[docs:2500_config_apps:0900_add_edit_processes|Adding/Editing Processes]]) * Custom forms (see [[docs:2500_config_apps:0500_add_edit_objects:0200_defining_forms|Defining Forms]]) * Custom channels for intelligent business objects (see [[docs:2500_config_apps:0500_add_edit_objects:0600_intelligent_bo|Intelligent Business Objects]]) * Custom function libraries * Custom document types (see [[docs:2000_concepts:0900_prod_feats:0200_working_with_docs_reports|Working with Documents]]) * Report calculation components (see [[docs:2500_config_apps:4200_report_designer:0700_system_calcs|Setting System Calculation Properties]]) The details on how to write code for //**Aware IM**// extensions are provided in the [[docs:3500|Aware IM Programmer’s Reference]].