O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Extending Microsoft Dynamics 365 for Operations Cookbook

Book Description

Have the best tools at your fingertips to extend and maximize the efficiency of your business management

About This Book

  • Follow practical and easy-to-grasp examples, illustrations and coding to make the most out of Dynamics 365 for Operations in your business scenario
  • Extend Dynamics 365 for Operations in a cost-effective manner by using tools you already have
  • Solve common business problems with the valuable features of Dynamics 365 for Operations

Who This Book Is For

This book is for those who are getting to grips with Dynamics 365 for Operations developers or those migrating from C# development. The guide includes information essential for new and experienced Dynamics 365 for Operations developers.

What You Will Learn

  • Create enumerated and extended data types
  • Understand the importance of using patterns and frameworks while creating a unique concept for your solution
  • Service and deploy your code and packages to improve performance
  • Write and perform unit tests to automate the testing process
  • Design your security model and policies to provide code access privileges
  • Construct the UI and business logic to add Power BI to dashboards

In Detail

Dynamics 365 for Operations is the ERP element of Microsoft’s new Dynamics 365 Enterprise Edition. Operations delivers the infrastructure to allow businesses to achieve growth and make better decisions using scalable and contemporary ERP system tools.

This book provides a collection of “recipes” to instruct you on how to create—and extend—a real-world solution using Operations. All key aspects of the new release are covered, and insights into the development language, structure, and tools are discussed in detail.

New concepts and patterns that are pivotal to elegant solution designs are introduced and explained, and readers will learn how to extend various aspects of the system to enhance both the usability and capabilities of Operations. Together, this gives the reader important context regarding the new concepts and the confidence to reuse in their own solution designs.

This “cookbook” provides the ingredients and methods needed to maximize the efficiency of your business management using the latest in ERP software—Dynamics 365 for Operations.

Style and approach

The book takes a practical recipe-based approach, focusing on real-world scenarios and giving you all the information you need to build a strong Dynamics 365 for Operations implementation.

Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the code file.

Table of Contents

  1. Preface
    1. What this book covers
    2. What you need for this book
    3. Who this book is for
    4. Sections
      1. Getting ready
      2. How to do it…
      3. How it works…
      4. There's more…
      5. See also
    5. Conventions
    6. Reader feedback
    7. Customer support
      1. Downloading the example code
      2. Errata
      3. Piracy
      4. Questions
  2. Starting a New Project
    1. Introduction
    2. Creating the Visual Studio Team Services project
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. See also...
    3. Connecting Visual Studio to Visual Studio Team Services
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
      5. See also
    4. Creating a new Model and Packages
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
        1. Prefixes and naming conventions
    5. Configuring project and build options
      1. Getting ready
      2. How to do it...
        1. Dynamics 365 for Operations' options
        2. The project-specific parameters
      3. There's more...
    6. Creating a Label file
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
  3. Data Structures
    1. Introduction
    2. Creating enumerated types
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
        1. Using Enums for comparison and status
        2. Extensibility in Base Enums
    3. Creating extended data types
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
    4. Creating setup tables
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Creating a parameter table
      1. How to do it...
      2. There's more...
        1. Copying and pasting methods to save time
        2. Optimistic concurrency and selectForUpdate
      3. See also
    6. Creating main data tables
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
        1. More on indexes
      5. See also
    7. Creating order header tables
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
    8. Creating order line tables
      1. How to do it...
      2. How it works...
      3. See also
  4. Creating the User Interface
    1. Introduction
    2. Creating the menu structure
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Creating a parameter form
      1. How to do it...
      2. How it works...
      3. There's more...
      4. See also
    4. Creating menu items
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Creating setup forms
      1. How to do it...
      2. How it works...
      3. There's more...
    6. Creating details master (main table) forms
      1. How to do it...
      2. How it works...
    7. Creating a details transaction (order entry) form
      1. How to do it...
      2. How it works...
    8. Creating form parts
      1. Getting ready
      2. How to do it...
      3. How it works...
    9. Create tiles with counters for the workspace
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
    10. Creating a workspace
      1. How to do it...
      2. How it works...
      3. There's more...
  5. Application Extensibility, Form Code-Behind, and Frameworks
    1. Introduction
    2. Creating a handler class using the Application Extension factory
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
      5. See also...
    3. Hooking up a number sequence
      1. Getting ready
      2. How to do it...
      3. How it works...
        1. Number sequence set up
        2. Hooking up the number sequence
      4. There's more...
    4. Creating a create dialog for details transaction forms
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Creating a SysOperation process
      1. How to do it...
      2. How it works...
      3. There's more...
        1. Executing code using the batch framework
        2. Calling a process from a form
        3. Using the data contract to make changes to the dialog
    6. Adding an interface to the SysOperation framework
      1. Getting ready
      2. How to do it...
      3. How it works...
  6. Business Intelligence
    1. Introduction
    2. Creating aggregate dimensions
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. See also
    3. Creating aggregate measures
      1. Getting ready
      2. How to do it...
      3. How it works...
    4. Creating aggregate data entities
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Creating and using key performance indicators
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
  7. Security
    1. Introduction
    2. Creating privileges
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
        1. Impact on licensing
      5. See also
    3. Creating duties
      1. How to do it...
      2. How it works...
      3. There's more...
    4. Creating security roles
      1. How to do it...
      2. How it works...
      3. See also...
    5. Creating policies
      1. How to do it...
      2. How it works...
      3. There's more...
      4. See also...
  8. Leveraging Extensibility
    1. Introduction
    2. Extending standard tables without customization footprint
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
    3. Creating data-event handler methods
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
    4. How to customize a document layout without an over-layer
      1. How to do it...
      2. How it works...
      3. There more...
    5. Creating event handler methods
      1. Getting ready
      2. How to do it...
      3. How it works...
    6. Extending standard forms without customization footprint
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
    7. Using a form event handler to replace a lookup
      1. Getting ready
      2. How to do it...
      3. How it works...
    8. Creating your own query functions
      1. How to do it...
      2. How it works...
  9. Data Management, OData, and Office
    1. Introduction
    2. Creating a data entity
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
      5. See also
    3. Extending standard data entities
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
    4. Importing data through Data Import/Export Framework
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. See also
    5. Reading, writing, and updating data through OData
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. See also
  10. Consuming and Exposing Services
    1. Introduction
    2. Creating a service
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Consuming a Dynamics 365 for Operations SOAP service
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. See also
    4. Consuming a Dynamics 365 for Operations JSON service
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
      5. See also...
    5. Consuming an external service within Dynamics 365 for Operations
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
  11. Extensibility Through Metadata and Data Date-Effectiveness
    1. Introduction
    2. Using metadata for data access
      1. Getting ready...
      2. How to do it...
      3. How it works...
    3. Using Interfaces for extensibility through metadata
      1. Getting ready...
      2. How to do it...
      3. How it works...
    4. Making data date-effective
      1. Getting ready...
      2. How to do it...
      3. How it works...
      4. There's more...
  12. Unit Testing
    1. Introduction
    2. Creating a Form Adaptor project
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Creating a Unit Test project
      1. Getting ready
      2. How to do it...
      3. How it works...
    4. Creating a Unit Test case for code
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Creating a test case from a task recording
      1. Getting ready
      2. How to do it...
      3. How it works...
  13. Automated Build Management
    1. Introduction
    2. Creating a Team Services Build Agent Queue
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Setting up a build server
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
      5. See also
    4. Managing build operations
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Releasing a build to User Acceptance Testing
      1. Getting ready
      2. How to do it...
      3. How it works...
  14. Servicing Your Environment
    1. Introduction
    2. Applying metadata fixes
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
      5. See also
    3. Applying binary updates
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. See also
    4. Servicing the build server
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Servicing the Sandbox - Standard Acceptance Test environment
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
        1. Servicing production
      5. See also
  15. Workflow Development
    1. Introduction
    2. Creating a workflow type
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. See also...
    3. Creating a workflow approval
      1. Getting ready
      2. How to do it...
      3. How it works...
    4. Creating a manual workflow task
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Hooking up a workflow to the user interface
      1. Getting ready
      2. How to do it...
      3. How it works...
    6. Creating a sample workflow design
      1. Getting ready
      2. How to do it...
      3. How it works...
  16. State Machines
    1. Introduction
    2. Creating a state machine
      1. Getting ready
      2. How to do it...
      3. How it works...
    3. Creating a state machine handler class
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...
    4. Using menu items to control a state machine
      1. Getting ready
      2. How to do it...
      3. How it works...
    5. Hooking up the state machine to a workflow
      1. Getting ready
      2. How to do it...
      3. How it works...
      4. There's more...