Infor Factory Track Framework Overview Michael Huston michael.huston@infor.com
About the presenter 1999 – 2003 Symix/Frontstep – Columbus, OH SyteCentre ERP Consultant Mongoose, SQL, Crystal Reports 2003 – 2007 Godlan – Warren, MI AutoCentre Developer SyteLine Technical Services 2007 – 2011 Pacejet Logistics – Columbus, OH Pacejet Implementation Manager & Consultant 2011 – present Infor Software Engineer in CloudSuite Business/Industrial with emphasis on technology
Objectives Explore Infor Factory Track’s Mongoose Framework Purpose & Benefits Mongoose architecture & implementation model Extension options Introduce Factory Track use cases to be explored
From Infor’s website…..
From Infor’s website…..
From Infor’s website…Features at a glance Modern user experience: A holistic approach to user experience that results in happier users and greater efficiency for your organization Packaged integrations: Flexible connections to Infor solutions via Infor ION Device readiness: Automatically publishes for both browser and mobile interfaces Industry content packs: Faster deployment with ERP and micro-vertical accelerator kits
From Infor’s website…Features at a glance Deployment flexibility: Cloud-based and hybrid deployments are available
Factory Track How do we achieve those? Outstanding functionality plus its framework…
Exploring Infor Mongoose Framework Defined Relational database rapid application development platform Purpose Create feature rich applications while minimizing time and program code required
Infor Mongoose Framework Features • Technology SQL Server 2012; Visual Studio 2010 – VB.NET, C# A single developer experience Develop and test in the same integrated environment. Core forms and wizards let you define Intelligent Data Objects (IDOs) that represent your business logic and application events (AES) without programming. A simple click turns Infor Mongoose into a powerful WYSIWYG form development tool. • Software development life cycle Version control, development, test, preproduction, production environments and synchronization tools help you manage and organize the entire software development life cycle and deployments. • Form templates Mongoose provides for a consistent user experience across the application.
Infor Mongoose Framework Features • Prebuilt common objects Mongoose has, built into it, UI components, validations, standard events, messages, menus, variable support, scripting APIs, user-defined fields, and more. Internationalization Mongoose provides easy translation of string literals based on the end user’s default language, and the ability for end users to switch languages “on the fly” without restarting the application. • Security Security is provided at user, role, and site-based levels for all forms and IDOs. • Licensing System and end users can be assigned licensing on a variety of modules. Documents and notes management A virtually unlimited number of notes and documents can be attached to any data.
Infor Mongoose Framework Features • Data and process replication Mongoose supports customer policy for both transactional and asynchronous XML options for sites in both your local intranet and across the Internet. Easy and powerful integration with other software Exchange information with other software using Infor ION, Web services, XML, or another application’s Web UI embedded in a form. • Background task execution You can schedule various tasks, such as report outputs and notifications, running stored procedures, and other tasks to run automatically in the background. • Reporting interfaces Mongoose includes a number of prebuilt report options, as well as a set of templates for creating your own reports.
Infor Mongoose Framework Features Customer extensibility The same powerful integrated development environment is available to end users of Mongoose-built applications to extend and adapt them. More importantly, all the changes are preserved during upgrades easily, using synchronization tools. Source control support Mongoose integrates with Microsoft Visual Source Safe, Microsoft Team Foundation Server and Apache Subversion for the purpose of maintaining metadata change histories and source version control. More information is available from Mongoose Portal https://mongoose.infor.com/Portal Source: Infor Mongoose 9.0 Guide to Technology.pdf
Infor Mongoose Framework History 1996: developed for a new ERP app 1998-2001: sold as a software development tool under the name Mongoose, with dozens of apps built and sold on it 2001: version 4, major changes for the SyteLine 7 project 2008: version 6, complete rewrite for SyteLine 8, with virtual IDOs, app event system, replace C++/COM w/ C# 2010: version 7, web rendering 2012: version 8, multiple device types, improved ION integration 2013: version 9, multi-site single database, WPF Adopted by: Infor Factory Track; CloudSuite Business/Industrial; Visual Quality; Service Management and offered as PAAS
Framework Architecture Forms Database Forms (screens, pages) Menus User Interface Objects Database IDO – intelligent data object IDO Property IDO Method Mid-Tier Business Logic Application Database Schema – tables, views User Data – configuration info Application Data
Tiered Architecture
Metadata driven development Application behavior or appearance stored in rows and columns in databases User Interface Forms database – screen/page appearance Mid Tier Objects database – IDO definition Business Processes – application event system (AES) Objects database – Events, Handlers, Actions Intelligent Data Objects (IDOs) Serve as the primary data source of user interface Coupled with Properties and Methods to expose and process relational data Within CloudSuite, IDOs are bundled SQL statements structured to retrieve, update, and delete data
Benefits of Metadata Model “Source code” is contained in tables – minimal compiling Many changes can be done in place without forcing users to exit system Changes are almost immediate Upgrades become a matter of managing data rather than compiled files Available Mongoose tools to manage layers FormSync FormControl AppMetaSync/Transport
Extending Factory Track using Mongoose….. Consider it an art and not an exact science Multiple methods to achieve similar results Many developers stick with what has worked in the past SQL developers tend to modify backend .NET developers tend to modify mid-tier or UI
Extending Factory Track….. What’s best? Consider the following questions: Does the modification adhere to licensing? Is it upgradeable? Is it documented? Can metadata tools easily port it from one environment to another? Can it live in one tier and not span backend, middleware, or UI layers?
What can be extended/personalized? Schema UDFs - User-Defined Fields (Mongoose) UETs - User Extended Tables (Mongoose) New tables & columns (SQL Management Studio/Mongoose) Mongoose Forms Form components (labels, font, color, position) Event Handlers Form script Intelligent Data Objects (IDOs) Properties – bound, derived Methods – stored procedure/hand-coded
What can be extended/personalized? Business Logic Application Event System (AES) Custom Event Handlers with unique Event Actions coupled to standard Framework events or custom Events (SessionOnLogin, IdoOnInvoke, IdoOnItemUpdate, …) Event Actions include Load Ido Collection, Update Collection, Call Ido Method, Notify, Prompt, Set Values, Branch, Finish, Fail, … Custom Assemblies Hand-coded .NET methods
Personalization In Action…. Use Cases to be explored during Factory Track/Mongoose discussion Forms Personalization Explore Mongoose form editing ScopeTypes to modify standard form definition to adjust fonts, color, position Display Alternative Data Personalize standard form to display alternate item description Custom Transaction Implement new Inventory Transfer transaction ‘Transfer to Quarantine’
References Mongoose Guide To Application Event System https://mongoose.infor.com/Portal/ (requires Infor VPN) Guide To Application Event System https://www.inforxtreme.com/espublic//DLSearch/6154/AppEventSystem.pdf SyteLine 9.0 (select version 9.0) https://www.inforxtreme.com/espublic/EN/AnswerLinkDotNet/DocLink/DocLink.aspx?ParentID =1450&productlineid=90