Dynamics AX TAP Knowledge Transfer Wave 2 Dynamics™ AX Business Connector Lachlan Cash Program Manager Microsoft Corporation Karl Tolgu Program Manager Microsoft Corporation Agenda Overview and Architecture Common Usage Patterns Demo – Exploring Business Connector Elements Demo – Integration Framework Demo – InfoPath Integration Exploring CLR Interop Authentication Changes Usage Guidance Q&A .NET Business Connector Overview A platform component that enables integration with AX Provides an X++ runtime environment AX interpreter Access to AOD Client/server execution Single/multi-user mode Built with .NET Framework 2.0 .NET Business Connector Architecture (1) .NET Business Connector Managed Classes Transition Layer (.NET/X++ Type Marshalling) Interpreter Layer (Dynamics™ AX X++) The .NET Business Connector is not a COM Connector wrapper! .NET Business Connector Architecture (2) AX Database AOS AX Interpreter .NET Business Connector Supported Topologies (1) Intranet .NET application Axapta Database Client .NET Business Connector AOS Intranet .NET application Axapta Database AOS .NET Business Connector .NET Business Connector Supported Topologies (2) Intranet Sharepoint Database Axapta Database Client IIS ASP.NET Windows Sharepoint Services Enterprise Portal .NET Business Connector AOS Domain Controller 1 Common Usage Patterns Basic Object Manipulation Axapta AxaptaBuffer AxaptaContainer AxaptaObject AxaptaRecord Demo – Basic Object Manipulation Common Usage Patterns Data Types (1) AX Data Type .NET Data Type String, RString, VarString System.String Integer System.Int32 Real System.Decimal Enums System.Enum (Business Connector uses Integers) Common Usage Patterns Data Types (2) AX Data Type .NET Data Type Time System.Int (convert to Dynamics AX time format) Date System.Date (only need to use the date portion) Container System.Object[] (have to use the Container object) Dimensions System.Object[] (use [] when inserting records) Common Usage Patterns Data Types (3) AX Data Type .NET Data Type Boolean (Enum) System.Boolean (use an integer to represent True/False) Guid NEW Int64 NEW System.Guid System.Int64 Demo – Exploring Business Connector Elements Integration Framework Code Reuse How large is your integration project ? Envisage a framework that simplifies integration: Base Classes data types Base Application Class administration Base Record Class record manipulation Base Objects Classes AX classes Demo – Integration Framework Client Integration Microsoft Office InfoPath IIS WS .NET BC AOS Web Server AX Database Demo – InfoPath Integration .NET Business Connector CLR Interop NEW Windows Client Application Object Server COM Business Connector NEW .NET Business Connector COM Interop CLR Interop NEW CLR Interop AX Database NEW CLR Interop .NET Business Connector CLR Interop Application Tier MyApp.exe AOS .NET Application LoadLibrary Server Tier foo.dll CLRBridge.dll CallStaticClassMethod (“bar”,…) AOD Reference: foo.dll Class: bar (client) bar Authentication Changes Windows integrated authentication AX User Domain User Understand constraints (hops, etc.) What impersonation mechanism should you use? LogonAs() – Business Connector API RunAs() - X++ API Runas – Microsoft Windows Refactor applications to use Windows authentication AX Integration Technologies CLR Interop AIF Document Processing Web Services .NET Business Connector AX Integration Technologies AIF – Document Processing XML/document oriented Asynchronous (batch) Support for multiple transports Transformation support Trusted intermediary Extensible using X++ B2B, A2A, EAI AX Integration Technologies AIF – Web Services XML/document oriented Standards based Web Services (request, submit) Synchronous Trusted intermediary Extensible using X++ Uses .NET Business Connector B2B, A2A, EAI AX Integration Technologies .NET Business Connector Client/server applications Single/multi-user support Synchronous Web-aware Access to AX business logic (X++) & data Tighter coupling (than AIF) AX Integration Technologies CLR Interop Integrated into the AX kernel Client/server usage Synchronous Extend existing business logic in X++ with managed (.NET) components Q&A