1/15 Technical Information Abstract Disclaimer: in no event shall Microarea be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use of this documentation, provision of or failure to provide services, or information available from any of the documentation provided.
2/15 Welcome to the TaskBuilder. et platform technical abstract. This document will drive you through the main aspect of the TaskBuilder. et technology, letting you understand how to construct powerful extensions to Mago.Net. TaskBuilder. et Platform - Overview TaskBuilder. et is a development platform designed to build flexible and robust ERP applications. It is the platform used to construct Mago.Net, but it is designed not only for this: it also allows the design of third-party ERP solutions which work as companion of Mago.Net. With TaskBuilder. et you can: Build ERP applications that works on the side of Mago.Net, with their own Database tables, Business Objects, Data Entry, menus, and so on Use Mago.Net Business Objects to perform ERP tasks already accomplished by the standard (i.e.: posting an Order, calculate an account balance, etc.) Dynamically extend or change Mago.Net business objects behaviors without modifying original source code Some important things to know about TaskBuilder. et: It is not a proprietary language or platform. It is based on standard programming languages (C++ and C#) and works in standard development environment (MS Visual Studio) It is not a general-purposes platform. It is oriented and designed mainly to develop ERP applications It is not a closed platform. As it use standard languages and development environment, it leaves the developer free to integrate other programming components to enrich its custom application It was not designed just to customize Mago.Net, but it is the platform Mago.Net is based on. This means that developers work at the same level and with the same power of Microarea s Mago.Net designers.
3/15 Figure 1 - TaskBuilder. et general architecture Figure 1 shows the general architecture of a TaskBuilder. et application: Component Library: TaskBuilder. et provides a rich set of programming components oriented to the ERP environment: controls, forms, DBMS wrapping, BO abstraction, and so on Tools: Radar, Security, Path Finder, Auditing TaskBuilder. et contains plenty of tools that help the user to interact and manage the application, i.e. for browsing and finding data, secure the functionalities, track activities, and so on Applications: the application layer is constructed on top of the platform. The system comes with several standard applications, such as the Mago.Net itself, but it is designed to allow easily insertion of third-party applications Web Services: all the communication and orchestration of the application parts is done via Web Services. This means that Web Service support was not added just for limited specific interfaces, but it is the communications protocol used by all the components forming TaskBuilder. et and the applications based on it. The result is that all application parts and objects are naturally available through Web Services calls, allowing programmatic
4/15 use of everything is built with the platform and facilitating a SaaS approach to the provided solutions. Building Applications with TaskBuilder. et TaskBuilder. et introduces the concept of Dynamic Application. This means that the ERP solution provided to the user is not a single big chunk of software, but a composition of more independent applications which dynamically recognizes one each other and collaborating in performing operations. Basically, everything that is installed under the Applications subfolder of the installation image is explored and loaded at run-time; the same installation can hosts several applications delivered by different producer and aimed to solve different business needs. As they share the common environment and basic building blocks provided by TaskBuilder. et, the system running on the screen of the user is showing a coherent and integrated interface and behavior to him, while it is composed by several independent parts. Applications themselves are not constructed as a single block: they can be made up of several Application Modules to be optionally installed to form different configurations: i.e. Accounting, Sales, Orders, Manufacturing, and so on. This gives the producer of a vertical solution the same possibility to shape the configuration of its product as Mago.Net itself. Modules are the container of the application resources: such resources are application metadata (DBMS scripts, XML configuration, reports ) and application binary (dlls). 3-tier vs. 2-tier With TaskBuilder. et it is possible to make use of the best of breed of Client/Server architecture. The application is installed on an Application Server, which is the central repository of all shared resources and hosts all the orchestration services. When used by a rich client (Windows GDI), application dlls are downloaded (via Click-Once technology) and cached on the local PC: this speed up the application and make full use of local CPU power; in this configuration the application behave like a 2-tier one, as the business logic is running on the client, even though orchestrated by the Application Server. When used via a browser (Internet Explorer, Firefox, Chrome, ), the application behave just like a web application: nothing is installed on the client, neither executables nor browser plug-ins. All is rendered via dynamic HTML and AJAX
5/15 technology; all the business logic is running on the Application Server, which is designed to be scalable in order to serve multiple connected clients. Business Objects allow other programs to use them through a programmatic interface via Web Services: this may occur when the client is running EasyLook, a MagicDocuments application or a 3-party application interfaced via magiclink. In this case the business logic is kept running on the application server, which still holds all the orchestration tasks; in this configuration the behaviour is much more like those of a 3-tier application. Business Objects in TaskBuilder. et It is worth to note that TaskBuilder. et platform is not only developed with Object Oriented programming languages, but it also encourages a strong Object Oriented Design for the applications: everything is done by deriving and extending basic abstract classes, and integrating standard components in the derived one. Abstract components provided in the platform incorporate plenty of predefined behaviours and functionalities inherited by the application components derived from them. There are two main classes of objects that can implement the business logic: Business Objects aka Documents Batch operations aka Batch Documents or Wizards The Documents inherits from the Abstract Form Document base class.
6/15 Figure 2 A typical Document A Document consists of a business logic container (the Document itself) and of its visual part (View). By inheriting from the Abstract Form Document, a document implicitly shows a number of predefined behaviours: The data it contains can be stored and retrieved from the database It can be exported to or imported from XML data source or files It can be used programmatically as a component by other documents or pieces of business logic It can be exposed and accessed via a Web Service interface When used interactively, it can be created, edited, deleted, browsed, searched, etc. and more Documents are mainly used to contains data and apply business logic on them. Data contained in documents are stored in a database. As an ERP document often has a complex structure made of different related parts (a header, one or more details, additional tails, other related document; think of a Sale Order, for example), its representation on database tables almost always need to span on more than one table. To map the logical in-memory data structure of a document to its database counterpart, a specialized TaskBuilder. et component called DBT is provided.
7/15 DBTs bind document s fields to database tables and columns, and hide to the programmer the complexity of database management for document storage, retrieving, querying, and so on. Usually, just binding an Abstract Form Document derived object with the database tables and columns via a DBT is sufficient to implement a working TaskBuilder. et document. Strong OO approach is enforced by the Exclusive Delegation principle: the system contains one and only one component (Document) enabled to perform a specific task (i.e.: posting and Order); it has to be used in any condition such operation must be done, either interactively or programmatically. This assures not only component reuse, but also facilitate dynamic extensions (see below) individuating one single component to be extended to customize a specific task. The Batch Documents or Wizards are other kind of business objects oriented to massive data manipulation. Most of the time Batch Documents extract a set of documents from the database storage and perform actions on them, or generate other documents (i.e.: Sale Orders Fulfilment). They show a wizard-style interface to the user, which is simple to use and helps performing even complex tasks in a guided step-by-step environment. Figure 3 A typical Batch Document interface Batch Documents make full use of all TaskBuilder. et control set for their interface and most of the times use programmatically other document objects to perform their actions through the document s object model.
8/15 Reporting TaskBuilder. et delivers a unique tool for reporting: Woorm (Windows Object Oriented Report Maker). Woorm is itself an independent sophisticated tool, and its full description is far out the purposes of this abstract. It comes also as a builtin Mago.Net feature. Reporting represents perhaps a half of the business needs of an ERP application. Through Woorm, building powerful reports is an easy task. Woorm reports can be viewed as another kind of business objects. Figure 4 A Woorm report with its parameters dialog Out of the functionalities of Woorm, these are the main features to highlight: Intuitive, interactive interface for designing Sophisticated scripting language for instructions and expressions, allows development both with visual interface and direct script coding Combines layout definition and query definition in one single tool
9/15 Event-driven engine for full control of report flow and layout dialog designer for parameters to ask to the user and use in the report script as filter, conditions, etc., to build really flexible reports Precise WYSIWYG layout designer, works on any printer Powerful querying system SQL like Support images, also as background, in any format Call native functions (aka web methods ) of Mago.Net and other applications Drill down support, run sub-reports or open Mago.Net forms related to report data Click-and-export to Excel, Word, HTML, text Send via e-mail as attachment in PDF format and more As all of the other tools which form the TaskBuilder. et suite, Woorm was not designed for customizations only. It is the tool used for builds all standard report that come with Mago.Net: over 500 reports, ranging form the balances to the price lists, from the sales statistics to the document forms enough to prove the its power and flexibility! The developers that use TaskBuilder. et have even more possibilities in exploiting Woorm capabilities: They can implement functions in native language that can be exposed as Web Services ( web methods ) callable from within the Woorm script code. It may serve to efficient implementation of sophisticated algorithms or reuse of existing business code (i.e.: balance calculation). Support both context-free or context-full calls They can run Woorm reports from the application code, using its object model to parameterize report execution (i.e.: run the document form of the current document, or show the payment schedule of the current customer). DBMS Support TaskBuilder. et provides a complete set of components that helps manipulating data from the application code. Such components wraps OLEDB providers supported by TaskBuilder. et (actually MS SQL Server and Oracle, MySQL support is planned) with a convenient programming interface which hides to the developer all complexity of building proper statements when dealing with data stored in the database; of course, native statement invocation is still possible. Main components which deal with DBMS data are SqlTable and SqlRecord. SqlTable represents a parameterized statement (actually the full set of statements to perform INSERT, UPDATE, etc.) and permits to browse the associated dataset as you can do for an in-memory list of data; it uses serverside cursors for data manipulation. SqlRecord maps to a table or view structure
10/15 binding database columns to variables, for a transparent data manipulation from within the application code. All other database-related topics such as transactions, isolation levels, connections, etc. are also manipulated through specialized classes contained in the platform. Extending Business Objects TaskBuilder. et implements an exclusive and innovative approach to extend existing applications (i.e.: Mago.net) without needing to modify their source code: the Dynamic Collaboration Model. Building new Business Objects and programmatically use existing ones are important possibilities to build customizations or vertical solutions. However, often satisfying the customer s needs or matching the vertical market expectations requires the behaviour of standard features to be changed or improved. With TaskBuilder. et you receive also the full set of Mago.Net sources, and so in principles you may apply any change to the source code you need, and get a customized version of it. However, this is strongly discouraged, as it leads to break the upgrade path of the product as soon as new versions of the standard package will arrive. The Dynamic Collaboration Model (aka Client Documents ) lets you couple with both of these needs and dynamically change the behaviour of standard BOs without the need to change even one line of code of them.
11/15 When implementing your dynamic extension you create your BOs derived from the ClientDocument abstract class, and register them to collaborate with one or more standard BOs (ServerDocument) identified by their namespace. Every time an instance of an extended BO will be created, an instance of your extension will be also created and attached to it. Please note that this mechanism is provided in any condition a standard BO is created: this means not only interactive use, but also programmatic use by other BOs, remote use via Web Services, and so on. The dynamic extensions receive all the life-cycle events from the documents they are attached to, such as create, delete, browse, save, as well as modification of fields and also user input messages such as mouse or keyboard events. They can register to such events and act consequently: perform additional calculations, show data, show messages, prevent saving, etc. They can also change the user interface by adding toolbar buttons, tab dialogs, controls They can manage additional data on their own database tables, but also extend standard tables by adding columns to them. Once again, these features were not put in the system for the solely scope of build external customizations: they are a basic feature of the platform and are used throughout all Mago.Net standard features. Salespeople module, for example, extends Sales and Orders documents with commissions calculation,
12/15 Manufacturing extends the Bill of Lading when posting the receipt of outsourced products, and so on. Task Builder Wizard Task Builder Wizard is an easy-to-use and easy-to-learn development tool which allows you to graphically create and edit applications that are based on TaskBuilder. et. In fact, it helps the developers to create and maintain the code of a Task Builder application in a user-friendly manner. It is a standalone program in the sense that, even if it depends from the currently released TaskBuilder. et version, it is not integrated with other parts of it and therefore it might be possible to release a newer version of this tool without the need to wait for a global release of the whole platform. The Task Builder Wizard user interface consists of an integrated set of windows, tools, menus, toolbars and other elements that allow you to create and refine your Task Builder application projects. Figure 5 Task Builder Wizard Interface
13/15 Task Builder Wizard helps the developer in the design of a new application: it lets you easily define the main application entities, providing guided procedures that lead us to a logically consistent approach across the objects definitions. It gives you a real boost in the initial phases of the design: it generates and maintains XML metadata, source code, SQL scripts, etc. and provides injection point in the generated code for you to insert your business logic. It definitely let you save precious time and let you start to be productive very quickly. Later, once the project will be set up and working, you may find convenient to leave Task Builder Wizard apart and code directly into the MS Visual Studio environment. Localization Applications developed with TaskBuilder. et are easily localizable. Localization capabilities are one of the cornerstones of the platform design. Localization occurs in two ways: language localization and functional localization. From the language localization point of view, the applications created with TaskBuilder. et are easily translatable in any language, thanks to the full support of the Unicode standard, which permits to manage any available script, included those of Far East languages. The application is developed with all textual elements (i.e.: forms, messages, etc.) expressed in one base language (typically English), then translated in any desired language through a specific tool called TBLocalizer.
14/15 Figure 6 TB Localizer Interface TB Localizer helps the translation task with the possibility to apply glossaries, repeat previous translations, preview the translated forms for visual check, and so on. TB Localizer is a tool designed not for developers only, but also to be used by non-technical people, just to make translation of the visual interface of the program. It do not requires a development environment installation and provide preview tools to make visual checks of the translation job. The translated elements are stored in XML databases (aka dictionaries ) that are dynamically loaded during the program use. This means that the application can be viewed in different languages from different users in the same network. The interface language attribute, in fact, can be set at general level, company level or login level. From the functional localization point of view, the TaskBuilder. et application can be developed so that a single application is capable to serve all supported countries; Mago.Net is designed in that way. The dynamic application concepts and dynamic collaboration model can be used to let some application parts work
15/15 only in specific country conditions. Modules and functionalities can be configured to be installed on a per-country basis. Current country information is available to the programmer which can drive different business logic according to the functional localization requirements. Additional Tools TaskBuilder. et suite includes several tools that enrich the environment in which the applications run. Such tools are available either as separate modules or builtin functionalities, depending on the product configuration. Even if the discussion of such features is not a goal of this abstract, we mention them for sake of completeness: Security: available both in light or full configuration, it permits to set security profiles for any BO or aggregation of the system; this includes, of course, customized ones. It s important to note that as security is applied to BOs, it works the same in any condition they are used: interactively, programmatically, via Web Services, etc. Security is applied to BOs, and thus to features; combining it with proper database rights allows a full control over access and manipulation of company s data. Auditing: allows tracking activities done on company data by the individuals. It lets you configure fine-grained tracking rules, on single tables and even on single fields. Scheduler: permits to configure automation of activities such as, for example, batch document running or report execution and printout. Activity sequences can be defined in ordered set, planned at certain times. It supports calling of external programs and e-mail notification of success or failure. EasyLook: with EasyLook you can run any Mago.Net feature, document, dialog or Woorm report from a web page. All the most popular browsers are supported: Internet Explorer, Firefox, Chrome, Opera, Safari (MAC also). It provides an interface fully compliant to the standard GDI one. Graphic and colours of the interface can be configured to let EasyLook be a part of your company s portal. Security is applied to the features run via EasyLook with the same rules of GDI use. Mail Connector: it lets you generate reports in pdf format and automate delivery by e-mail or fax to e-mail addresses and fax numbers obtained by reading report contents. For example, invoices, dunnings, order summaries, etc. can be sent using mailing lists set in Outlook.