Extend Microsoft Dynamics 365 for Finance and Operations

Slides:



Advertisements
Similar presentations
Make your app a native part of Office with Add-ins
Advertisements

Microsoft Ignite /10/2018 3:38 AM
What’s new in Entity Framework Core 2.0
5/22/2018 1:39 AM BRK2156 Power BI Report Server: Self-service BI and enterprise reporting on-premises Christopher Finlan Senior Program Manager © Microsoft.
Azure on Steroids: Full Automation with PowerShell
5/29/2018 1:51 AM THR2071 Managing enterprise applications, permissions, and consent in Azure Active Directory Adam Steenwyk & Jeff Sakowicz Program Managers.
Microsoft Dynamics 365 for Talent: The New Rules of Engagement
6/10/2018 4:48 AM THR2155 A/B Testing, Canary releases and dark launching: Implementing continuous delivery on Azure Marcel de Vries CTO, Xpirit © Microsoft.
Azure Cloud Shell Magic of Modern Command-line Management
Developing Hybrid Apps on Microsoft Azure Stack
Simplify and Organize with Microsoft OneNote
6/17/ :27 AM BRK3341 Unlock extensibility by connecting your service to PowerApps and Microsoft Flow Theresa (Tessa) Palmer–Sr. Program Manager Sunay.
The Modern ASP.NET Tech Stack!
TFS Database Import Service for Visual Studio Team Services
6/26/2018 5:24 AM THR1083 Enabling Advanced Security Capabilities: Drive consistent authorization across multiple applications Bryan Bolling Solution Architect,
Do more with Microsoft Word and Office 365
Get Typed with TypeScript!
7/2/2018 2:39 AM BRK2413 Customer lifecycle with LCS: Dynamics 365 for Finance and Operations, Enterprise edition Manali Dongre Senior Program Manager.
Optimizing Microsoft OneDrive for the enterprise
Build data-driven solutions using Microsoft Visio
What a Real, Functioning DevOps Team Looks Like
Virtual Machine Diagnostics in Microsoft Azure
SQL Server on Linux on All-Flash Arrays
Microsoft Ignite /31/ :08 AM
Understanding Windows Analytics Update Compliance
Excel and Power BI Better Together Democratization of data
Documentation for Microsoft Dynamics 365: Great things are happening!
Workflow Orchestration with Adobe I/O
Customize Office 365 Search and create result sources
Automate all things! Microsoft Azure continuous deployment
9/14/ :46 AM BRK3293 How the Portland Trail Blazers Use Personalization and Acxiom Data to Target Customers Chris Hoder Program Manager, AI + Research.
Agile Planning with Visual Studio Team Services (VSTS)
Advancing the SharePoint Developer Community (PnP)
Get a 360° view of your customers with Microsoft Dynamics 365
9/20/2018 2:30 PM BRK2279 Everything you need to know about the new Windows Server release cadence Chris Van Wesep, Director Product Marketing Jeff Woolsey,
9/22/2018 3:49 AM BRK2247 Learn from MVPs: Panel discussion on all things SharePoint and OneDrive © Microsoft Corporation. All rights reserved. MICROSOFT.
Confidence at speed: Visual Studio 2017 and your CI pipeline
Azure PowerShell Aaron Roney Senior Program Manager Cormac McCarthy
Automate your Dynamics 365 day
11/17/2018 6:41 PM BRK3392 Windows 10 servicing explained (WAAS) Deploying Windows as an inplace upgrade Adnan Hendricks Microspecialist
What’s New and What’s Coming in the Microsoft Outlook Family of Apps
Continuous Delivery with Visual Studio Team Services
Azure Advisor: Optimization in the best way
Bring existing desktop apps to UWP with the Desktop Bridge
Mobile Center and VSTS:​ Better together for your Mobile DevOps
Microsoft products for non-profits
Power-up NoSQL with Azure Cosmos DB
Introduction to ASP.NET Core 1.0
Learn how to make SharePoint Accessible and Inclusive
Securely pass passwords into your deployment
MDM Migration Analysis Tool (MMAT)
Overview: Dynamics 365 for Project Service Automation
Understand your Azure cloud assets dependencies with BMC Discovery
Surviving identity management in a hybrid world
Breaking Down the Value of A Yammer Post: 20 Things to Do
An introduction to the SharePoint Patterns and Patterns initiative
Cool Microsoft Edge Tips and Tricks
Getting the most out of Azure resources with Azure Advisor
Manage your App Service resources using Command line tools
“Hey Mom, I’ll Fix Your Computer”
4/21/2019 7:09 AM THR2098 Unlock New Opportunities with Nintex Hawkeye Process Intelligence and Workflow Analytics Sr. Product.
Business Continuity and the Microsoft Cloud
4/28/2019 3:30 AM THR1061 Learn how Dynamics 365, Office 365 and related applications work together to transform the workplace Donna Edwards Solution Architect.
Designing Bots that Fit Your Organization
Ask the Experts: Windows 10 deployment and servicing
Passwordless Service Accounts
Digital Transformation: Putting the Jigsaw Together
WCF and .NET Framework Microservices in Containers
Diagnostics and troubleshooting in Azure App Service Support Center
Optimizing your content for search and discovery
Presentation transcript:

Extend Microsoft Dynamics 365 for Finance and Operations BRK2414 Extend Microsoft Dynamics 365 for Finance and Operations Dave Froslie Principal Software Architect, Microsoft Chris Garty Senior Program Manager, Microsoft © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Agenda Introduction Motivation, roadmap, impact Extension capabilities 7/21/2018 5:20 AM Agenda Introduction Motivation, roadmap, impact Extension capabilities Demo Best Practices Wrap up / Q&A © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Outcomes Understand benefits of extension based customization 7/21/2018 5:20 AM Outcomes Understand benefits of extension based customization Understand extension capabilities of the product Learn about patterns for moving code from overlayering to extensions © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Motivation, Roadmap, Impact 7/21/2018 5:20 AM Motivation, Roadmap, Impact © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

At time of implementation… D365 Tech Conference 2017 7/21/2018 5:20 AM At time of implementation… Creative Commons License: https://commons.wikimedia.org/wiki/File:Military_cyclists_in_pace_line.jpg

A few months after implementation 7/21/2018 5:20 AM A few months after implementation © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

A few years after implementation 7/21/2018 5:20 AM A few years after implementation © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Every customer on latest release; always. D365 Tech Conference 2017 7/21/2018 5:20 AM Why Extensibility? Eliminate overlayering Support continuous update Improve implementation / update speed and quality Innovate alongside Microsoft & partners Lower total cost of ownership Improve quality Every customer on latest release; always.

Terminology – Sealing for Overlayering 7/21/2018 5:20 AM Terminology – Sealing for Overlayering Soft Seal – Compiler warning on overlayer of model Hard Seal – Overlayering not allowed at design time and/or during implementation configuration Extensions are THE way to customize!! © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Release roadmap Dynamics 365 for Finance and Operations – Enterprise Edition App Suite Soft seal (Fall release 2017) Hard seal (Spring release 2018) Extension based customizations only! AppSuite Core Models (Directory, Dimensions, Case, etc) Soft seal (Spring release 2017) Hard seal (Fall release 2017) App Foundation Model Hard seal (Nov 2016) Hard seal (Nov 2016) App Platform Model Hard seal (Nov 2016) Hard seal (Nov 2016) Kernel / Platform Hard seal Hard seal

Every customer on latest release; always. 7/21/2018 5:20 AM Ecosystem Overview Implementations Eliminate overlayering from deployments by avoiding intrusive customizations and leveraging extensibility features. ISVs Eliminate overlayering from solutions through uptake of extensibility features and code refactoring. Make solution extensible. Microsoft Core Engineering Enable non-intrusive extensibility through new platform features and application refactoring Every customer on latest release; always. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Runtime package telemetry insights CY17 Q3 to date -1344 tenants 7/21/2018 5:20 AM Runtime package telemetry insights CY17 Q3 to date -1344 tenants About half of production customers have no overlayering A few have a lot of work to do! Overall Count of production customers by number of overlayered elements © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

What is being overlayered? 7/21/2018 5:20 AM What is being overlayered? Takeaway – It’s about the code… with a majority of it in Supply Chain. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Extension Capabilities 7/21/2018 5:20 AM Extension Capabilities © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

7/21/2018 5:20 AM Extensibility Documentation https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/extensibility/extensibility-home-page © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Basic Extensions – Tables, Views, Data Entities Additive changes Add fields, field groups Add new relations, add new indices, add new mappings Change basic properties like label, text, etc. Framework events Expected –ing and –ed framework events e.g. OnInserting(), OnInserted() Code extension using class augmentation e.g. display methods

Basic Extensions – Forms Additive changes Add controls Add new datasources (or extend query used as datasource) Change basic properties like label, text, etc. Framework events Expected –ing and –ed framework events e.g. OnInitializing(), OnInitialized() Different levels of events: Form, Datasource, Field, Control, etc… Code extension using class augmentation

Basic Extensions – Reports 7/21/2018 5:20 AM Basic Extensions – Reports SSRS Reports themselves cannot be extended Extend data provider classes Extend menu items Extend controller classes Duplicate Report itself © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Basic Extensions Extended Data Types Menus, Menu Items 7/21/2018 5:20 AM Basic Extensions Extended Data Types String size Label/text Country/region codes Menus, Menu Items Security Roles, Security Duties – NOT Security Privileges Queries Base Enums – if marked as IsExtensible © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Chain of Command - Motivation ISV requirements: Change the return value of calcAmount() Insert a history log of the posting inside same transaction

Before Chain of Command ISV requirements: Change the return value of calcAmount() Insert a history log of the posting inside same transaction

Chain of Command Overview 7/21/2018 5:20 AM Chain of Command Overview Allows a method to be ‘wrapped’ in an extension class The next key word is used to call other instances Allows access to protected members and methods in the base class Multiple wrapped methods can be chained together © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Chain of Command Overview 7/21/2018 5:20 AM Chain of Command Overview Order of extension methods is indeterminate! © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Chain of Command ISV requirements: Change the return value of calcAmount() Insert a history log of the posting inside same transaction

Chain of Command Benefits: 7/21/2018 5:20 AM Chain of Command Benefits: Limits the refactoring on app side to enable common extensibility scenarios Many partner scenarios are unblocked Partner code is easier to author Supports multiple partners side-by-side © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

7/21/2018 5:20 AM Demo © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Customization – LandOfFroz Tax Rules 7/21/2018 5:20 AM Customization – LandOfFroz Tax Rules LandOfFroz Sales Tax LandOfFrozTest LOFTax = LOFTaxRate*SalesTax LandOfFroz Sales Tax Fleet Management https://blogs.msdn.microsoft.com/mfp/2017/08/31/extensible-x-method-signatures/ © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Demo Recap Summary Method wrapping of a method in a class Access protected members of a class in an extension Method wrapping of a method in a form Compare event handlers vs. method wrapping Build error if no next statement in a chained method LandOfFroz Sales Tax LOFTax = LOFTaxRate*SalesTax Sales Tax © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

7/21/2018 5:20 AM Best Practices © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Strive for these qualities: 7/21/2018 5:20 AM Strive for these qualities: No intrusive customizations. Support for side-by-side deployment with other ISV solutions. Resiliency to changes in Microsoft code. Resiliency to changes in other ISV solutions. Able to be upgraded automatically to future versions. https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/extensibility/migrate-overlayer-extension © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Intrusive customizations 7/21/2018 5:20 AM Intrusive customizations An “intrusive customization” limits our ability to meet the goal of continuous update. Changing method signatures Changing table constraints, including indexes Principles for non-intrusive customizations: Must not change type definition Must not break encapsulation Must be additive in nature Changing method access modifiers Overlayering in general Unconditional return of results in delegate handlers Replacing behavior without satisfying Liskov substitution principle Overlayering methods to change SQL statements in X++ code Resolutions Refactor your code to be non intrusive using extensions Work with Microsoft on new extensibility feature(s) Accept that your solution / implementation is not viable for Dynamics 365 for Operations © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Enabling the Open / Closed Principle 7/21/2018 5:20 AM Enabling the Open / Closed Principle Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification1 Overlayering violated this fundamental principle; support for extending the product results in better implementations. SOLID 1https://en.wikipedia.org/wiki/Open/closed_principle © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Customization Analysis Report 7/21/2018 5:20 AM Customization Analysis Report The Customization Analysis Report is a tool that analyzes your customization and extension models, and runs a predefined set of best practice rules. The report is one of the requirements of the solution certification process. The report is in the form of a Microsoft Excel workbook. Useful for analyzing, categorizing, and planning the move from overlayering to extensions. https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/dev-tools/customization-analysis-report © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Practice proper naming Avoid naming collisions: Include a prefix, typically three letters: New elements: LOFElementName New extensions on existing elements: LOFFieldName Extension classes: FMTaxLOF_extension Extension class members and methods: LOFTaxRate https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/extensibility/naming-guidelines-extensions?toc=dynamics365/unified-operations/fin-and-ops/toc.json © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Build automated tests as you develop 7/21/2018 5:20 AM Build automated tests as you develop Business Cycle Tests H2F, P2P, Q2C Integration Tests testing of multiple components working together, typically within a module. Validates requirements. Component Tests testing of base functionality encapsulated in the form of business logic (scheduling engine) or UI element (form). Validates requirements. Unit Tests testing of class functionality, focused on verifying design, ideally isolated, owned by the engineer who authors the product code. https://blogs.msdn.microsoft.com/dave_froslie/2016/03/09/test-automation-pyramid/ © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

7/21/2018 5:20 AM Wrap up © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Every customer on latest release; always. 7/21/2018 5:20 AM Outcomes Understand benefits of extension based customization Understand extension capabilities of the product Learn about patterns for moving code from overlayering to extensions Every customer on latest release; always. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Every customer on latest release; always. 7/21/2018 5:20 AM Call to action Implementations Eliminate overlayering from deployments by avoiding intrusive customizations and leveraging extensibility features. ISVs Eliminate overlayering from solutions through uptake of extensibility features and code refactoring. Make solution extensible. Microsoft Core Engineering Enable non-intrusive extensibility through new platform features and application refactoring Every customer on latest release; always. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Please evaluate this session Tech Ready 15 7/21/2018 Please evaluate this session From your Please expand notes window at bottom of slide and read. Then Delete this text box. PC or tablet: visit MyIgnite https://myignite.microsoft.com/evaluations Phone: download and use the Microsoft Ignite mobile app https://aka.ms/ignite.mobileapp Your input is important! © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

7/21/2018 5:20 AM Resources https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/extensibility/extensibility-home-page https://blogs.msdn.microsoft.com/dave_froslie/ https://blogs.msdn.microsoft.com/mfp/ dfroslie@microsoft.com chris.garty@microsoft.com © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

7/21/2018 5:20 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.