Documentacion PDF

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3426

Contents

Dynamics 365 Commerce


Dynamics 365 Commerce
Dynamics 365 Commerce
Get started
Before you buy
One Version service updates
One Version service updates overview
One Version service updates FAQ
Software lifecycle policy - Cloud
Software lifecycle policy - On-premises
Service update availability
Apply updates to cloud environments
Apply updates to on-premises deployments
Configure service updates
Pause service updates
Get notified about service updates
Data task automation
Delivering ISV solutions using One Version
Create and automate user acceptance tests
Set up a Dynamics 365 Commerce preview environment
Dynamics 365 Commerce preview environment overview
Provision a Dynamics 365 Commerce preview environment
Configure a Dynamics 365 Commerce preview environment
Configure optional features for a Dynamics 365 Commerce preview environment
Dynamics 365 Commerce preview environment FAQ
Deployment considerations
Deployment options
Comparison of cloud and on-premises features
Cloud deployment
System requirements for cloud deployments
On-premises deployment
System requirements for on-premises deployments
Installation steps for Retail channel components in an on-premises environment
Buy Finance + Operations (on-premises)
Finance and Operations apps operated by 21Vianet in China
Finance and Operations apps in France
Upgrade and N-1 support
Upgrade and N-1 support for Retail
Phased Rollout (N-1) installation, configuration, and cutover
Upgrade the Retail channel extension to the latest Retail SDK
What's new or changed
What's new or changed in Finance and Operations apps
What's new or changed in Commerce
What's new or changed in Commerce home page
Commerce 10.0.11 (July 2020)
Commerce 10.0.10 (May 2020)
Commerce 10.0.9 (April 2020)
Commerce 10.0.8 (February 2020)
Removed or deprecated features
Removed or deprecated features in Finance and Operations
AX 2012 features that were postponed
Features not implemented in on-premises deployments
End of mainstream support for Microsoft Dynamics AX 2009 and 2012
Documentation resources
Help system
Connect the Help system
Connect a custom help site
View and export field descriptions
Task recorder
Create documentation or training with Task recorder
Videos
Glossary
Learning catalog
Learning catalog home page
Business decision makers
Business users
Implementation project managers
Administrators
Developers
Partner sales and marketing
Functional consultants
Solution architects
Explore the user interface
User interface elements
Accessibility features
Feature management overview
Client FAQ
Action search
Advanced filtering and query syntax
Configure and filter workspaces
Show pages side by side by using the Open in new window feature
Keyboard shortcuts
Change the banners or logo images for legal entities
Navigation search
Personalize the user experience
Saved views
Grid capabilites
Create and work with custom fields
Embed PowerApps apps
Find information by using lookups
Change the date for a session
Set a user's preferred time zone
Understand Lifecycle Services
Architectural overview
Architecture
Dynamics 365 Commerce architecture overview
Commerce Scale Unit architecture
Select an in-store topology
Commerce Data Exchange and commerce channel communications
Modern POS architecture
Online store publishing architecture
Retail Channel Performance Power BI content
Payment Application Data Security Standards (PA-DSS) certification
Commerce capabilities available in on-premises deployments
Deployment and hotfixes
Synchronize self-service installers in Dynamics 365 Commerce
Commerce Scale Unit
Configure and install Commerce Scale Unit
Modern POS configuration and installation
Manage accounts and devices from headquarters
POS device activation
Help secure Cloud POS in shared environments
Retail Hardware Station configuration and installation
Mass deployment of self-service components
Retail component events for diagnostics and troubleshooting
Apply a deployable package
Implementation lifecycle management
Implementation lifecycle management home page
Architecture for Finance and Operations apps
Microsoft FastTrack for Finance and Operations
Onboard an implementation project
Environment planning
Prepare for go-live
Go-live FAQ
Submit a service request
Subscriptions, LCS projects, and Azure AD tenants FAQ
Move environments between data centers
Move licenses between agreement types
Move LCS implementation projects to different Azure AD tenants
Multiple LCS projects and production environments on one Azure AD tenant
Implement Finance and Operations Commerce projects
Set up new environments, Azure DevOps, and branches for Commerce projects
Update code and environments for Commerce projects
Testing and performance issues
Set up your channels
Channels overview
Channel prerequisites
Channel setup prerequisites
General prerequisites
Organizations and organizational hierarchies
Warehouse setup
Sales tax setup
Set up an email notification profile
Number sequences
Set up a default customer and address book
Retail channel prerequisites
Info codes and info code groups
Create a retail functionality profile
Create a new address book
Screen layout overview
Online channel prerequisites
Create an online functionality profile
Set up a retail channel
Set up a retail channel
Configure retail workers
Modern Point of Sale (MPOS) and Cloud POS
Choose between MPOS and Cloud POS
Online and offline POS operations
Device activation of a customized Modern POS
Enable Azure Active Directory authentication for POS sign-in
Demo data screen layouts in MPOS and Cloud POS
Product and customer search in the POS
Search for products and product variants during order entry
Cash management improvements
Inventory lookup in the POS
Suspend and resume transactions in the POS
Offline POS functionality
Shift and cash drawer management
Cash out gift card balance
Ship orders from another store
Hide non-carrier delivery modes from POS shipment dialog
Task recorder and Help for MPOS and Cloud POS
Hardware peripherals
Screen layouts
Customer orders
Sales associates
Device activation
Create financial dimensions for POS registers and configure dimension values
on registers
Create POS permissions group
Create POS visual profiles
Configure and install Retail hardware station
Receipts
Set up and design receipt formats
Send email receipts from Modern POS (MPOS)
Reset receipt numbers
Embed processor credit card receipts in customer receipts
Create functionality profiles for sales representatives
Create financial dimensions for retail channels and configure values on stores
Set up an online channel
Set up an online channel
Set up a call center channel
Call center sales functionality
Set up a call center channel
Call center catalogs
Set up call center order processing options
Configure call center delivery modes and charges
Set up and work with fraud alerts
Additional channel configuration
Add a channel to an organization hierarchy
Advanced auto charges
Configure and use advanced auto charges
Enable and configure auto charges by channel
Prorate header charges to matching sales lines
Manage continuity programs
Set up continuity programs for call centers
Define continuity schedules
Retail store management
Create and change store hours
Commerce Scale Unit
Call center management
Configure and work with call center order holds
Payments
Payment methods
Payment methods in call centers
Credit card setup, authorization, and capture
Configure cash denominations for the POS
Configure credit card processing
Adyen payment connector
Saving online payment instruments with the Adyen connector
Seamless offline switch for gift card and credit memo operations
Set up pay invoice scenarios
Duplicate payments prevention
Omni-channel payments overview
Payments FAQ
Merchandizing your products and services
Categories, products, and assortments
Product information overview
Set up retail products
Product hierarchy
Commerce hierarchies
Create a new product hierarchy
Manage product categories and products
Change the sort order for merchandizing entities
Product dimensions
Product dimensions
Create a variant group
Create a new product
Create a new product in Commerce
Manage product categories and products
Product attributes
Attributes and attribute groups
Define channel attributes
Channel hierarchies
Create a channel navigation hierarchy
Configure channel to use a channel navigation hierarchy
Assortments
Assortment management
Set up assortments
Manage assortments
Bar codes
Set up bar codes
Set up bar code masks
Pricing and discounts
Discounts
Sales price management
Price adjustments and discounts
Apply multiple discounts to a product
Determine the optimal combination of overlapping discounts
Define channel-specific discounts
Options for preventing discounts for retail products
Tender-based discounts
Shipping discount overview
Set up coupons
Show discounts in POS
Price reports
Create channel-specific trade agreements
Create trade agreements using category pricing rules
Recommendations
Product recommendations overview
Enable ADLS in a Dynamics 365 Commerce environment
Enable product recommendations
Personalized recommendations
Enable personalized recommendations
Opt out of personalized recommendations
POS experiences
Add product recommendations on POS
Add recommendations to the transaction screen
Adjust AI-ML-based product recommendation results
Manually create curated product recommendations
Create recommendations using demo data
Product recommendations FAQ
Ratings and reviews
Ratings and reviews overview
Opt in to use ratings and reviews
Manage ratings and reviews
Configure ratings and reviews
Sync product ratings
Manage your inventory
Inventory
Store inventory management
Working with serialized items
Push products from distribution center to store using buyer's push
Set up rules and parameters for cross-docking and buyer's push
Inbound inventory operation in POS
Outbound inventory operation in POS
Calculate inventory availability for retail channels
Purchase orders
Purchase order overview
Create purchase orders
Product receipt against purchase orders
Approve and confirm purchase orders
Purchase order approval mobile workspace
Create product packages for purchase orders
Manage your orders
Sales orders
Create a call center order
Change mode of delivery in POS
Distributed order management
DOM overview
Cost configuration
Order fulfillment and processing
Store order fulfillment
Set up order fulfillment for stores
Show order notifications in POS
Sell continuity programs and process sales orders
Returns
Linked refunds
Sell and return products not included in a store's assortment
Configure and process an exchange on a return order
Restrict payment methods for returns without a receipt
Return items across multiple customer orders and invoices
Create and update a returns and refunds policy for a channel
Manage your customers
Clienteling
Clienteling overview
Loyalty
Loyalty overview
Define loyalty programs
Define loyalty reward points
Define loyalty schemes
Process adjustments of loyalty reward points
Manage your financials
Statements overview
Transaction consistency checker
Disable rules in retail transaction consistency checker
Edit and audit retail store transactions
Create, calculate and post statements for a retail store
Improvements to statement posting functionality
Trickle feed-based order creation for retail store transactions
Create, calculate and post statements for a retail store
Improvements to statement posting functionality
Improved handling of batch tracked items
Configure Commerce parameters that affect statements
Configure payment method settings that affect retail statements
Configure and run a job to calculate statements
Configure and run a job to post statements
Configure store settings that affect retail statements
Posting of online sales and payments
Manage worker tasks
Task management overview
Configure task management
Create task lists and add tasks
Assign task lists to stores or employees
Task management in POS
Manage your e-Commerce site
Online store overview
Create an e-Commerce site
Configure your domain name
Deploy a new e-Commerce tenant
Set up an online store channel
Create an e-Commerce site
Associate an e-Commerce site with an online channel
Manage robots.txt files
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Set up custom pages for user sign-ins
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Enable location-based store detection
Sample site overview
Overview of the home page
Overview of default category landing page and search results page
Overview of product details pages
Overview of cart and checkout pages
Overview of of account management pages
Manage your site settings
Authoring page overview
Manage users and roles
Search engine optimization (SEO) considerations for your site
Manage Content Security Policy (CSP)
Manage your site content
Ways to add content
Page model glossary
Document states and lifecycle
Work with publish groups
Brand your site and add store details
Add a logo
Select a site theme
Work with CSS override files
Add a favicon
Add a welcome message
Add a copyright notice
Add languages
Add script code to site pages to support telemetry
Modules
Work with modules
Fragments
Work with fragments
Templates
Templates and layouts overview
Work with templates
Work with preset layouts
Pages
Modify an existing site page
Add a new site page
Select page layouts
Manage SEO metadata
Save, preview, and publish a page
Enrich a product page
Enrich a category landing page
Verify page content accessibility
Site navigation
Customize site navigation
Create a page URL
Manage digital assets
Digital asset management overview
Upload images
Upload video
Upload files other than images and videos
Crop images
Customize image focal points
Make your site compliant
Compliance overview
Accessibility features and capabilities
Cookie compliance
Add a privacy policy page
Starter kit
Starter kit overview
Container modules
Container module
Marketing modules
Promo banner module
Carousel module
Text block module
Content block module
Video player module
Header and footer modules
Header module
Footer module
Product detail page modules
Buy box module
Ratings and reviews modules
Purchase modules
Cart module
Cart icon module
Checkout module
Order confirmation module
Store selector module
Gift card module
Account management modules
Account management pages and modules
Product collection modules
Product collection modules
Search
Default category landing page and search results page
Cloud-powered search overview
Reporting
Generate online channel reports
Error handling
Build custom response pages for 4xx/5xx status code errors
Fraud protection
Dynamics 365 Fraud Protection integration with Dynamics 365 Commerce
Monitoring and analysis
Monitor sales and margin performance
Analyze sales trends and patterns
Assess sales performance by product
Assess customer and product profitability
Analyze store performance
Set up Recency, Frequency, and Monetary (RFM) analysis
Localization and regulatory features
Fiscal integration overview for Commerce channel
Set up fiscal integration for Commerce channel
Austria
Fiscal registration service integration sample for Austria
Eastern Europe
Advance invoices for Commerce for Eastern Europe
Petty cash management for Commerce for Eastern Europe
Customer invoices and return sales orders in Eastern European countries
Deployment guidelines for cash registers for Czech Republic, Hungary, and
Poland
Fiscal printer integration sample for Poland
Fiscal registration service integration sample for Czech Republic
France
Cash register functionality
Deployment guidelines for cash registers
India
Goods and Services Tax (GST) integration for cash registers
Deployment guidelines for cash registers
Support for upgrade and N-1 for India
Italy
Fiscal printer integration sample for Italy
Mexico
Global CFDI e-invoices for Mexico
Norway
Cash register functionality
Deployment guidelines for cash registers
Sweden
Cash register functionality
Sample for POS integration with control units
Reporting and Power BI integrations
Reporting and analytics with Power BI
Information access and reporting
Personalization options with PowerBI.com
Features available through PowerBI.com integration
Pin PowerBI.com content
Select analytical workspaces from PowerBI.com
Power BI content
Power BI content home page
Learning
Organizational training
Retail channel performance
Analytical workspaces
Analytical Workspaces (using Power BI Embedded)
Power BI Embedded integration
Customize embedded reports in Analytical workspaces
Document reporting and printing
Document Reporting Services overview
Supported fonts
Configure SSRS for on-premises deployments
Printing
Document printing overview
Install the Document Routing Agent to enable network printing
Upgrade the Document Routing Agent
Install network printer devices in on-premises environments
Document generation, publishing, and printing in on-premises deployments
Run the Document Routing Agent as a Windows service
Available SQL Server Reporting Services reports
Install report design templates
Power user management tools
Power BI integration with Entity store
Resolve issues after Entity store maintenance
Configure PowerBI.com integration
Bring your own database
Preview PDF documents using a PDF viewer
Developer tools for creating and extending solutions
Analytics, aggregate measurements, and KPI modeling
Model aggregate data
Add financial dimensions to aggregate measurements
Create analytical reports using PowerBI Desktop
Add analytics to workspaces by using Power BI Embedded
Help secure analytical workspaces and reports using Power BI Embedded
Create reporting solutions
Customize App Suite reports by using extensions
Expand Application Suite report data sets
Extend report menu items to redirect user navigation
Create custom designs for business documents
Help prevent long-running reports from timing out
Electronic reporting
Electronic reporting overview
Configurations
Create configurations
Prepare components of the Electronic reporting solution
Design domain specific data model
Prepare application specific metadata
Test the prepared ER solution in the target application
Upgrade your format by adopting a new base version of that format
Formula designers in Electronic reporting
Formula designer
Advanced formula designer
Formula language and functions
Formula language
Functions
Date and time
List
Logical
Mathematical
Records
Text
Data collection
Other
Type conversion
Manage ER model mapping in separate ER configurations
Select data model definitions when you create formats
Enhanced filtering options for finding configurations in the Global repository
Generate reports by adding content as raw XML
(ER) Cross-company data sources in Electronic reporting
Design ER formats to generate outgoing electronic documents in various formats
(ER) Design a configuration for generating reports in OPENXML format
(ER) Design configurations to generate reports in Word format
Design configurations to fill out PDF templates
Embed images and shapes
(ER) Embed images and shapes in documents that you generate
Example of embedding images and shapes
Design configurations to generate reports in Office formats that have
embedded images
Review configurations to generate reports in Office formats that have
embedded images
Generate reports in Office formats that have embedded images
Modify Electronic reporting formats by reapplying Excel templates
Define the dependency of ER configurations on other components
Design an ER solution to use financial dimensions
Design data models to use financial dimensions as data sources
Map models to use financial dimensions as data sources
Design reports to use financial dimensions as data sources
Run reports that use financial dimensions as data sources
Design ER formats to perform counting and summing by using information from
generated output
Create formats to perform counting and summing
Configure format to perform counting and summing
Use computations to generate the output for counting and summing
Run formats to perform counting and summing
Dynamically add columns to Excel reports as horizontally expandable ranges
Design formats to dynamically add columns to Excel reports as horizontally
expandable ranges
Run formats to dynamically add columns to Excel reports as horizontally
expandable ranges
Use Document management files in format outputs
Prepare data models to use Document management files in ER outputs
Extend data models to use Document management files in ER outputs
Create formats to use Document management files in ER outputs
Run formats to use Document management files in ER outputs
Modify and run formats to use Document management files in ER outputs
Update application data using Electronic reporting
Generate electronic documents and update application data
Import configurations to generate documents with application data
Design configurations to generate documents with application data
Modify models and mappings to generate documents with application data
Modify formats to generate documents with application data
Generate documents that have application data
Import data from incoming files by using ER solutions
Parse incoming documents in different formats
Configure data import from manually selected files
Create configurations to import data from an external XML file
Configure data import in batch mode from SharePoint located files
Import files in XML format
Import files in XML format with optional attributes
Configure ER formats to import XML format files with optional attributes
Split generated XML files based on file size and content quantity
Support parameterized calls of ER data sources of Calculated field type
Configuration lifecycle
Manage configurations lifecycle
Upload configurations into lifecycle Services
Import configurations from Lifecycle Services
Download configurations from Lifecycle Services
Import configurations
Download ER configurations from the RCS repository
Download configurations from the ER repository of the RCS type
Import configurations from RCS
Tutorials
Use JOIN data sources to get data from multiple application tables
Configure country context dependent ER model mappings
Configure ER formats to use parameters that are specified per legal entity
Set up the parameters of an ER format per legal entity
Defer execution of ER format elements
Defer execution of a sequence element
Defer execution of a XML element
Use Electronic reporting solutions in Finance and Operations
Configure the framework
Configure the Electronic reporting framework
Back up and recover ER templates
Create configuration provides and mark them as active
Destinations
Destinations overview
Destination types
Configure destinations
Set up a reference to an ER format
Automatically validate generated reports
Trace generated report results and compare them with baseline values
Improvements in tracing results of generated ER reports and comparisons with
baseline values
Automate testing with Electronic reporting
Automate business processes by using Electronic reporting configurations
Configure Electronic reporting to pull data into Power BI
Generate printable free text invoice (FTI) forms
Trace execution of ER formats to troubleshoot performance issues
Business document management
Business document management overview
New document user interface in Business document management
Add new fields to a business document template in Microsoft Excel
ER framework API
Extend the list of Electronic reporting functions
Electronic reporting framework API changes for Application update 7.3
Specify a custom storage location for generated documents
Finance and Operations (Dynamics 365) mobile app
Mobile app home page
Mobile workspaces
Available mobile workspaces
Asset management
Company directory
Cost controlling
Expense management
Inventory on-hand
Invoice approvals
My team
Project mobile applications overview
Project time entry
Project timesheet
Purchase order approval
Sales orders
Vendor collaboration
Publish mobile workspaces
Office integration
Office integration overview
Office integration tutorial
Open entity data in Excel and update it using the Excel add-in
Create Open in Excel experiences
Add templates to the Open lines in Excel menu
Customize the Open in Microsoft Office menu
Configure and send email
Develop email experiences
Troubleshoot the Office integration
Organization administration
Organization administration home page
Number sequences
Number sequences overview
Set up number sequences on an individual basis
Set up number sequences using a wizard
Organizations and organizational hierarchies
Organizations and organizational hierarchies overview
Plan your organizational hierarchy
Create an organization hierarchy
Create legal entities
Create operating units
Global address book
Global address book overview
Plan for the global address book and other address books
Configure the global address book
Address books FAQ
Configure address books
Workflow system
Workflow system overview
Workflow system architecture
Workflow elements
Workflow actions
Create workflows
Create workflows overview
Configure workflow properties
Configure manual tasks
Configure automated tasks
Configure approval processes
Configure approval steps
Configure manual decisions
Configure conditional decisions
Configure parallel activities
Configure parallel branches
Configure line-item workflows
Configure the Workflow Message Processing batch job as critical
Delegate work items in a workflow
View workflow history
Configure the system to send workflow-related email to users
Workflow types
Creating a workflow type
Workflow type checklist
Create a workflow category
Create a query for a workflow type
Create a new workflow type
Create a workflow document class
Create a SubmitToWorkflow class
Associate a workflow document class with a workflow type
Workflow types report
Workflow FAQ
Alerts
Alerts overview
Create alert rules
Batch processing of alerts
Client alert notifications by email
Electronic signatures
Electronic signatures overview
Set up electronic signatures
Case management
Case management overview
Plan case security, processes, and categories
Record templates
Record templates overview
Create a record template
Use a record template to create a new record
Configure document management
Configure and send email
Date/time data and time zones
Extensibility
Commerce development and extensibility
Online channel extensibility
Online channel extensibility overview
Get started
System requirements
Set up a development environment
Configure a development environment (.env) file
Set up Azure DevOps code sharing and create a build pipeline
Platform overview
Architectural overview
Online components
CLI command reference
Anatomy of a module
Module definition file
Module React component file
Module view file
Module data file
Module mock file
Module test file
Module props.autogenerated.ts file
Develop modules
Create a new module
Clone a starter kit module
Add module configuration fields
Preview and debug modules
Test modules by using mocks
Test modules by using page mocks
Container modules
Create a layout container module
Create a page container module
Localize a module
Advanced module topics
Request properties object
App settings
Extend a module definition
Cookie API overview
Globalize modules by using the CultureInfoFormatter class
Develop data actions
Data actions overview
Test data actions with mocks
Page load data actions
Event-based data actions
Core data actions
Call Retail Server APIs
Call Retail Server extension APIs
Advanced data action topics
Chain data actions
Batch data actions
Observable data actions
Share state across modules
Data action overrides
Data action hooks
Develop themes
Theming overview
Create a theme
Configure theme settings
Extend a theme
Inject script
Script injectors
Telemetry and analytics
Telemetry logger
Deployment and maintenance
Package configurations and deploy them to an online environment
SDK and core library updates
Retail SDK
Retail SDK architecture
Upcoming changes in the Retail SDK
Merge the build systems for Commerce and Finance and Operations
Migrate the Retail SDK from Visual Studio 2015 to Visual Studio 2017
Retail SDK extensibility samples
Create deployable packages
Development in cloud-hosted dev environments without admin access
Point of sale extensibility
POS screen layouts
Open URL in POS
Install the POS Layout designer
Extend the POS Dual display view
Modern POS and Cloud POS trigger extensibility
Add custom controls to POS views
Add POS operations to POS layouts using Button grid designer
POS APIs
POS payment extension
Support for external gift cards
Create and apply branding to the Retail Experience app
Set up POS Hybrid app on Android and iOS
Override POS request handler
View POS extension package information
Test recorder and Regression suite automation tool for Cloud POS
Add custom fields to the POS Totals panel
Show custom notifications in POS
Sign MPOS with code signing certificate
Extend POS views to add custom columns and app bar buttons
Add custom controls to Modern POS transaction pages
Add custom columns to a POS transaction grid
Call POS APIs or operations from POS extensions
Modern POS triggers and printing
Add custom controls to non-screen designer-based POS views
Run the POS samples
Device management implementation guidance
POS Cart view events and handlers
Hardware Station extensibility
Hardware Station and extensibility
Integrate POS with a new hardware device
Retail Server extensibility
Extend a Retail Server OData controller
Retail Server customer and consumer APIs
Extend the default Retail Server metadata controller
Call the CRT service in offline mode
Create new Retail Server extension
Retail Typescript and C# proxies
Commerce Runtime (CRT) extensibility
CRT architecture and configuration
CRT services
CRT and Retail Server extensibility
Add customer preference data to channel databases
Manage secrets for Retail channels
Add properties to sales orders
CRT extensibility and triggers
Block transactions using triggers
Implement a return policy using triggers
Loyalty extension
Extension points for packing slips
Channel database extensions
Enable custom CDX synchronization via extension
Define and set order attributes
Customer attributes
CRT SDK samples
Log extension events to Application Insights
Create async Commerce (CRT) APIs in your business logic
Pre-extended columns in the channel database
Payment connector extensibility
Create a payment integration for a payment terminal
Implementing a payment connector and payment device (white paper)
Deploy payment connectors
Create custom localized error messages for payment terminal extensions
Create Windows installers for payment connectors
Payment data use
Enable duplicate payment protection for payment connector
Create payment packaging for Application Explorer in Service Fabric
deployments
Third-party e-Commerce extensibility
Configure online stores
Configure authentication providers
e-Commerce platform SDK
Localize Commerce extension resources and label files
Finance and Operations apps development and administration
Dynamics 365 Finance
Dynamics 365 Supply Chain Management
Commerce home page
2/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Dynamics 365 Commerce—built on the proven Dynamics 365 Retail capabilities—delivers a comprehensive
omnichannel solution that unifies back-office, in-store, call center, and digital experiences. Dynamics 365
Commerce enables you to build brand loyalty through personalized customer engagements, increase revenue
with improved employee productivity, optimize operations to reduce costs and drive supply chain efficiencies,
ultimately delivering better business outcomes.
This release enables the creation of digital experiences using built-in web authoring and development tools to
produce engaging and intelligent digital storefronts. A connected marketing and headless commerce platform
further enable the seamless management of content, assets, promotions, inventory, and pricing across all
channels.
Ever ything to build and run digital commerce: Streamline your business and end-to-end commerce
solution that scales to your needs across traditional and emerging channels. Built-in web authoring and
development tools enable you to create engaging intelligent digital storefronts, while a connected
marketing and headless commerce platform enables seamless management of content, assets, promotions,
inventory, and pricing across channels.
Build loyalty and exceed customer expectations: Use clienteling tools to gain a comprehensive view
of your customer and respond to their needs at every level of engagement, based on customer profile,
history, and preferences that flow across physical and digital channels. Empower your employees to foster
lasting relationships through AI-driven recommendations, customer insights, and loyalty programs that
elevate brand appeal.
Flexible and intelligent omnichannel experience: Unify physical and digital commerce by providing
consistent experiences to customers across cloud search and discovery, product reviews, wish lists,
inventory, gift cards, and loyalty. Allow customers to purchase when, how, and where they want, on any
device—while providing choice around modern payment methods and product collection or delivery.
Streamline operations using AI in the cloud: Drive omnichannel commerce experiences and
integrated, optimized back-office operations through ingrained, pervasive, and context-aware cloud
intelligence. Use advanced merchandising, inventory management, distributed order management, and
pricing and promotion to innovate and stay ahead of competition.Derive insights by visualizing and
analyzing comprehensive and consistent data across all aspects of your business. Use AI-driven
technologies to provide accessible websites, protect your business against payment fraud, and efficiently
moderate user-generated content like ratings and reviews.

Core concepts and tasks


Select a feature area to learn more about it.
Configure a Commerce preview environment
Commerce architecture
Set up your channels
Merchandizing your products and services
Manage your orders
Manage your customers
Manage your financials
Manage your e-Commerce site
Fraud protection
Commerce development and extensibility
Before you buy
2/5/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

New to Dynamics 365 Finance, Dynamics 365 Supply Chain Management, or Dynamics 365 Commerce? We've put
together step-by-step guidance whether you're still evaluating or ready to make a purchase.

Step one: Try out Finance and Operations free for 30 days
You can try Dynamics 365 for Finance, Dynamics 365 Supply Chain Management, or Dynamics 365 Commerce for
30 days through a simple email signup. The trial version of Finance and Operations applications includes Getting
started task guides that provide step-by-step instructions that allow you to view specific scenarios in action. The
product is available to explore and exercise scenarios, but cannot be customized. Demo data is included to ease the
use of the product and to make the experience more meaningful. A reminder email will be sent 3 days prior to the
trial expiration. Get details at www.microsoft.com/dynamics365/operations.

Step two: Choose a deployment option


You can now deploy Finance and Operations applications in the cloud or on-premises. Cloud deployments offer an
ERP service that is fully managed by Microsoft, while on-premises deployments are deployed locally within a
customer's data center.
The following considerations must be taken when you choose on-premises as a deployment option:
Regulatory and compliance needs that are not available in the cloud certifications.
Disconnected business process with intermittent internet connectivity required to access Microsoft Dynamics
Lifecycle Services (LCS) for application lifecycle management.
Features not implemented in on-premises deployments.
System requirements for on-premises deployments.

IMPORTANT
On-premises deployments are not supported on any public cloud infrastructure, including Microsoft Azure.

For more information, see Deployment options.

Step three: Buy and manage a subscription


To explore subscription options, go to the Dynamics 365 pricing page. This page includes several different plans to
fit your organization's needs.
There are many ways to buy a subscription:
Buy through a Cloud solution provider (cloud only).
Buy through a partner, and use volume licensing (cloud or on-premises).
Buy through a partner from the Dynamics price list (on-premises only).
Buy through a Cloud solution provider (cloud-only)
A Microsoft Cloud Solution Provider can work closely with you to understand the needs of your business or
organization. Use the Microsoft Partner Center portal to find a partner to fit your needs.
Buy through a Dynamics partner (on-premises)
You must work with a partner to purchase Finance and Operations on-premises. For more information, see Buy
Finance + Operations (on-premises).
Buy through volume licensing (cloud or on-premises)
If your organization has 250 or more Dynamics 365 users, you may be interested in a Volume licensing agreement.
In volume licensing, Finance and Operations applications are available through:
Enterprise Agreement
Enterprise Agreement Subscription
Enrollment for Education Solutions (under the Campus and School Agreement)
Microsoft Products and Services Agreement (MPSA)
Choose your support option
Microsoft provides flexible, industry-leading support, services, and resources that enable users to quickly address
technical issues and maximize return on your Dynamics 365 investment. Choose a plan that best meets your
business requirements.
For additional resources, see:
Dynamics 365 Support
Quick Start Guide for Microsoft Dynamics Cloud Service Support Benefits (PDF)

Step four: Learn about FastTrack and plan your deployment


Microsoft FastTrack for Dynamics 365 is our customer success service designed to help you move to Dynamics 365
smoothly and confidently, so you can realize business value faster. When you participate in the FastTrack program,
you will receive guidance on best practices and how to plan for successful rollouts. You will also learn ways to
enable new users and expand capabilities – all at your own pace. Additionally, you will have access to Microsoft
engineering resources committed to make your experience with Dynamics 365 a success. For more information,
see Microsoft FastTrack.

If you are upgrading from Dynamics AX 2012 or migrating from AX


2009
If you are a customer who is upgrading from Microsoft Dynamics AX 2012 or migrating from Microsoft Dynamics
AX 2009, you may be eligible for a longer trial. Contact [email protected] for more information.
One Version service updates overview
3/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following set of topics provide information that is related to service updates for Microsoft Dynamics 365 for
Finance and Operations version 8.1 (October 2018) and later. This is applicable for cloud releases only.
Service update availability – This topic provides information about the release cadence and release process.
Software lifecycle policy and cloud releases – This topic provides information about the service updates,
availability, and end of service.
One Version service updates FAQ – This topic answers questions about the update process, tools, planning, and
Retail service updates.
The experience for service updates consists of four distinct steps:
1. Configure
2. Notice
3. Update
4. Validate
The rest of this topic describes each step and provides links to related topics.

Configure
Customers can select a maintenance window, based on their business constraints. In Microsoft Dynamics Lifecycle
Services (LCS), use the fields in the Production environment update cadence section on the Update settings
tab of the Project settings page, as shown in the following image. A calendar of upcoming updates is available to
help you plan ahead.
Users must opt in to new features and turn them on. All updates are applied first to the user acceptance testing
(UAT) environment and then to the production environment. Therefore, customers have time to do any validation
that is required. Customers can select the environment that is updated. They can also pause an update for up to
three months.

Notice
Release plans will be available to help you plan ahead and understand what is changing. You can learn about
upcoming features up to three months in advance. The What's new topics provide details about the updates for
specific months.
Additionally, a notification email will be sent five days in advance, and a notification will appear in LCS just before
an update, as shown in the following illustration.

Update
After notifications have been sent, Microsoft will apply the update (auto update ) during the designated
maintenance window. After this operation is completed, a notification email will be sent to indicate the status of the
update. Customers will also be able to self-update by using the standard update experience in LCS. For more
information, see Apply updates to cloud environments.
Customers who participate in the First release program will have an opportunity to update their sandbox
environment and other environments early. To sign up for the First release program, go to
https://experience.dynamics.com.
Customers will also be able to self-update by using the standard update experience in LCS, as shown in the
following illustration.

Validate
After an update is completed in the UAT environment, a basic business process test can be executed to validate the
environment. To support this effort, a no-code automation test tool for business process testing is available, as
shown in the following illustration. For more information, see Create and automate user acceptance tests.

Some customers have both external data integrations and internal data integrations. We recommend that these
customers use the Data task automation tool for testing.
One Version service updates FAQ
3/4/2020 • 18 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

In July 2018 we announced a change to the way we deliver Dynamics 365 updates that will help you stay current
in a consistent, predictable, and seamless manner. In June 2019, based on customer feedback we announced New
flexible service updates being made available. This FAQ is intended to provide clarity on the service updates,
processes, and tools you can use to prepare for it. We will continue to add additional information to this topic as
needed.
Can the update be delayed, what is the policy?
Yes, the customer can pause, delay, or opt-out of an update via Update Settings in the Lifecycle Services projects. A
customer can choose to pause up to 3 consecutive updates. The following is an example of a delayed update:
The customer is currently on version 10.0.2.
The customer can pause updates 10.0.3, 10.0.4, and 10.0.5.
The customer must take the 10.0.6 update when it is available.
With a release date in early April, when will the general availability package be made available?
Production updates for a monthly release will be scheduled for the first, second, and third weeks in of the month.
Depending on the configuration that you set up in Lifecycle Services (LCS), you will receive updates during that
specific week.
For the April 10.0 release, Microsoft will perform updates during the weekends of April 6, April 13, or April 20
based on the configuration that you set up in LCS. Sandbox updates will always be scheduled a week before the
update. The configuration setup is available in LCS.
Customers can always choose to apply the update at an earlier time, or if there is a more convenient time than the
suggested times in Lifecycle Services. If the customer is on the latest version the auto update will be canceled.

Service updates
What product versions are impacted by service updates?
VERSIO N DESC RIP T IO N

8.1 and later All customers on 8.1 and later will be scheduled for automatic
monthly updates with a combined application and platform
update starting November 2018. You will be required to be
on an update that's no older than 4 months or 3 service
updates. To pause an update, refer to Pause service updates.
VERSIO N DESC RIP T IO N

8.0 Customers on 8.0 can manually apply the monthly platform


and financial reporting updates. You will be required to have
an update that's no older than 4 months or 3 service updates.
The 8.0 application lifecycle ends in April 2019. Customers on
8.0 must update by April 30, 2019 to stay supported. In
order to be on a supported application, customers should
follow the process to update to the latest version. For more
information, see Update environments from version 8.0 to
10.0.X.

7.x Customers on 7.x can manually apply the monthly platform


and financial reporting updates. You will be required to have
an update that's no older than 4 months and 3 service
updates. Customers on 7.x must update by April 30, 2019 to
stay supported. If customer stays on version 7.3 past April 30
they will still receive automated platform updates every
month. You are required to upgrade to 8.1 by April 2019
(unless extensions are not available). The only overlayered
version in market will be version 7.3.

What does the service update contain?


For release 8.1 and later, service updates will contain application (including financial, reporting, and Commerce)
and platform changes that are critical improvements to the service including regulatory updates. New experiences
will be configurable. The service updates are backward compatible. There will be a single version representing this
update.
What is a regulatory update?
A regulatory update is a new feature or an existing feature change required by law (usually for a specific
country/region). The regulatory update is always required by a specific law enforcement date (LED) and should be
enabled by this date or earlier.
What's the upcoming schedule of updates?
Service updates are available since November 2018. You have the option to apply the update when it is convenient
for you, or let Microsoft auto-apply the service updates based on the selected maintenance window. You are
required to have an update no older than 4 months.
To see a targeted release schedule, see Service update availability.
Are there any major updates post 8.1?
There will be 2 major updates in April and October where new experiences can be enabled. Major updates will not
require code or data upgrade. Breaking changes will be communicated 12 months in advance such that customers
can plan accordingly. Such a change will only be introduced during a major update. The 10.0 release, which will be
available in April 2019, will also be an update and not an upgrade.
What does it mean when an update is backward compatible?
Backward compatibility covers binary and functional compatibility. Binary compatibility means that you can apply
an update on any runtime environment without needing to recompile, reconfigure, or redeploy customizations.
This also means that on a development environment at design time, X++ public and protected APIs and metadata
are not modified or deleted. If Microsoft needs to break compatibility by removing obsolete APIs, it will be
communicated 12 months in advance and follow a deprecation schedule. Functional compatibility is about user
experience, all new experiences will be opt-in for a 12-month period.
Backward compatibility does not include non-X++/metadata APIs. Microsoft reserves the right to update versions
of any dependencies the product uses, as well as remove dependencies without early warning. Microsoft does not
commit to maintain backwards compatibility of dependent software libraries unless expressly stated.
For more information on deprecation guidelines and deprecated methods and metadata elements, see
Deprecation of methods and metadata elements.
Can I apply a Platform service update to my existing 8.1 or later environments?
Customers on version 8.1 or later will only be able to apply the 8.1.x or v10.x Service updates. Platform only
service updates cannot be applied to version 8.1.x or later. Platform service updates can only be applied to
versions 7.x or 8.0.
Will Platform updates be able to be scheduled and delay/pause by customers?
Yes, customers who are on version 7.3 are able to schedule platform updates directly in Lifecycle Services. A
delay/pause experience is also available.
Service updates for on-premises deployments
The policy and schedule for service updates are now the same for both cloud and on-premises deployments. This
includes, for example, the option to delay applying up to 3 consecutive updates. How to apply each of these
updates remains slightly different. For more information, see Apply updates to on-premises deployments.

Process
How will Microsoft ensure quality of releases?
Ensuring quality of the release is a fundamental principle that's enabled through a series of progressive, rigorous,
automated validations as described in Service update availability.
Can I select the day and time to update?
Customers can configure the day and maintenance time windows in LCS. Email will be sent to those individuals
who opt in to receive LCS notifications with instructions included on how to update. Customers will be able to
select the designated tier 2/UAT sandbox for the update. Customers will have 7 calendar days for testing and
validation. Customers can optionally choose to apply the update earlier to all environments through LCS. The
production ready deployable package will be made available to all customers via the Action Center in Lifecycle
services. Customers are responsible for deploying the update to any additional sandbox or developer/build (tier 1)
environments.
A service update was applied to the environment, when looking at the tile in Lifecycle Services for this
environment what does the number on the tile represent?
The same service update will be auto applied to all customers by Microsoft. Microsoft will continue to service the
latest update. The tile in LCS for that environment represents the cumulative number of hotfixes that are available
to be applied to your environment. Because Microsoft will only auto apply the same version to all customers, you
will be responsible for apply the cumulative hotfix package if it is required.
How do I update to the latest version?
Users can update to the latest version using the tiles on the Environment details page in LCS. After the update is
released by Microsoft, the tile will show the update available. Customers can choose to apply the update on their
own by going through the update experience on their sandbox and production environments.
How do I update the production environment to the same version after Microsoft updates the sandbox
environment?
When Microsoft updates a sandbox environment, the package that is used for the update is saved in the project's
asset library. The name of the package is prefixed by the words "Service Update." Because the package was already
applied to the sandbox environment, you can mark this package as a Release Candidate. You can then go to the
production environment and schedule to apply the package, just as you might schedule to apply any other update.
What is the expected downtime?
The expected downtime for a successful update is 30 minutes to 1 hour. However, we ask for three hours of
downtime in case issues occur while the update is applied. We are actively working to reduce the downtime that is
required, and you should expect improvements in the next few months.
What's the process for deprecation?
Before any feature is removed from the product, the deprecation notice will be announced in the product
documentation 12 months prior to the removal.
For breaking changes that only affect compilation time, but are binary compatible with sandbox and production
environments, the deprecation time will be less than 12 months. Typically these are functional updates that need
to made to the compiler.
Can I delay an update?
You can pause an update up to 4 months or 3 consecutive service updates by way of LCS configuration. After this
period, an update will be scheduled and auto-applied by Microsoft. The update experience for a delayed update
will incur additional downtime.
Can I delay an update for longer than 3 consecutive service updates due to seasonal activity or other business
reason?
No, service updates will be automatically applied to the sandbox, then 7 days later the update will be applied to
the production environment if the environments are more than 3 service updates old. A customer can only pause
up to 3 consecutive updates in a row. For example, if a customer on version 10.0 chooses to pause updates 10.0.1,
10.0.2, and 10.0.3 then service update 10.0.4 will be auto applied to the sandbox.
What if I find an issue during the sandbox update?
If you find an issue when doing validations in a sandbox environment, you can request to skip the update through
LCS directly by providing a valid support ticket number and a business justification.
What if I find a critical issue during sandbox testing and I am not able to pause the Production auto update?
Critical issues should always be submitted to the support team via Lifecycle Services as soon as they are identified.
The support staff will work with you on the resolution to the critical issue.
How much time do I get for validation?
You will get 7 calendar days for validation after the update is applied to your sandbox environment. If you need
more time, you can access the deployable package via the action center in Lifecycle Service and apply to your
environments. This will provide you with additional time to test the update prior to a production roll out.
What happens when the service update is complete?
Once the service update is applied by Microsoft you will receive a notification if the update was successful or if it
was not able to be applied. There can be several reasons an update was unable to be applied:
Pending Package Sign-off - If a package is pending signoff, Microsoft will not apply the service update to
production.
Deployment Failure - If there was a deployment failure ,the environment will be rolled-back to the original
state.
If there is a failure, can I reschedule the update to be auto applied?
You will not be able to reschedule the update per se, but you may to apply the package when it is convenient for
you, just as you might schedule to apply any other update.
Will critical hotfixes be automatically applied to my sandbox/ production environment during auto -update?
The service update that will be made generally available, and auto applied to all customers will contain hotfixes
and potentially new functionality. If a critical issue is reported after the service update has been applied, customers
can pull that cumulative hotfix update from the tile in Lifecycle Services.
How will my ISVs stay current?
Service updates to customer environments will be backward compatible and no action is required by the
Independent software vendors (ISVs). ISVs develop on the minimum required platform release that their code
depends on. Breaking changes will have a 12-month lead time to enable ISVs to include and validate. We
recommend that the ISVs be part of our Partner early access program, so that they can get early access to the
platform bits and validate their solutions against the update before it's made generally available.
What about new features?
All new features will be opt-in for a 12-month period and will not require any change management until you
choose to enable the feature.
Are batch jobs suspended during a service update?
Batch jobs are suspended during the maintenance windows and resume when the maintenance is completed.

Tools
How can I get early access to non-released platform updates?
You can join the First release program, where Microsoft will keep your system always current with the latest
updates. If you are not already a member of the Dynamics 365 Insider Program, you will need to:
1. Sign up for the Insider Program using this URL: https://experience.dynamics.com
2. Accept the terms and conditions to become a Dynamics 365 Insider.
3. After your application has been approved (approximately 24 hours) you can then sign back into the Insider
Portal to find the different preview programs available for you to join.
4. Preview Early Access Program (PEAP) and First Release: The program requires that you accept additional terms
and conditions to join. Please look for these programs within the Dynamics 365 Insider Program after your
nomination has been accepted.
Is there tooling available to support testing the latest release?
The Regression Suite Automation Tool is available now. This tool significantly reduces the time and cost of user
acceptance testing. User acceptance testing is typically required before taking a Microsoft application update or
applying custom code and configurations to your production environment. It enables functional power users to
record business tasks using the Task recorder and convert them into a suite of automated tests without the need
to write source code. Test libraries are stored and distributed in Lifecycle Services using the Business Process
Modeler (BPM) libraries and fully integrated with Azure DevOps for test execution, reporting, and investigation.
Test data parameters are decoupled from test steps and stored in Excel data files.
How can I test and validate that the integrations continue to work?
Data task automation lets you easily repeat many types of data tasks and validate the outcome of each task. You
can also use automated testing of data entities by using task outcome validation. For more information, see the
Data task automation topic.
How can I determine what's changed in a service update?
The What’s new or Changed documentation is the primary source for the details contained in each service update.
The Release plans are the primary source of information for all new features and changes for a future release.
Features will also include help topics in docs.microsoft.com as needed. An impact analysis tool will be available in
LCS to help you better understand the impact om the features that you use.
How will I know if there is a deprecated feature that will impact me if I’m not doing active development/
recompile my code?
Deprecated features will be documented with each release. For more information, see Removed or Deprecated
features.

Preparing for One Version


How can I log an extensibility request?
Extensibility requests can be logged in LCS. Details are available in the Extensibility requests topic. Please note the
following timelines to log and use the available extensions.

DAT E EXT EN SIB IL IT Y REQ UEST S

January 2019 All extensibility requests must be logged by January 1, 2019.


ISVs and customers are requested to analyze the code and
make these requests by this time. We will not provide
exceptions to stay on 7.3 after April 2019, if the request has
not been filed by January 1, 2019.

December 2019 Extensions will be available on/ before December 31, 2019 for
the requests logged by January 1, 2019. Customers using
these extensions are required to move to current version by
April 2020.

What does end of service mean?


Microsoft will not provide any fixes to issues on versions that have reached end of service. Microsoft will also not
investigate or troubleshoot any issue that you may encounter on a version that's older than 3 service updates. If
you encounter an issue on a version that has reached end of service, you will be required to update to the latest
update and report the issue if it persists.
All environments will continue to be operated by Microsoft. All automatic processes around your environments,
such as monitoring or self-healing, will also continue as long as the environment is on a supported version.
Will individual hotfixes be supported?
Individual hotfixes will not be supported after 8.1. Customers must update to the latest cumulative update
available to apply the fix (such as 8.1.1). Critical fixes will also be cumulative and available through the LCS
servicing experience.
Will you notify me about critical hotfixes released for the monthly update that I’m on?
Customer reported issues are searchable via Lifecycle Services Issue Search. You can sign-up to be notified when
an open issue is resolved.
How can I upgrade to 8.x?
Refer to the Process for moving to the latest update topic to learn how to upgrade to the latest application.
Updating from 8.0 to 8.1 will not require any data upgrade and will be a self-serve update with much reduced
downtime.

Commerce service updates


What options are available to minimize impact to my Commerce cloud components?
Commerce cloud components will require the same down time as your Dynamics 365 headquarters. In an
upcoming release, the Retail Cloud Scale Unit (RCSU) will be available to reduce and further schedule updates to
your deployment. Please refer to our published release information on our documentation and release notes sites
for additional details on RCSU.
Will there be options to take individual hotfixes for my commerce solution components?
All fixes and updates for commerce components will be cumulative.
What are the maintenance downtime requirements that may impact channel operations?
For retailers with a business need for redundancy, Modern POS offline capability allows core POS operations to be
available for use while disconnected from the internet or while the cloud environment is being updated. Stores
operating with Commerce Scale Unit will also continue to operate with support for core POS operations during
cloud maintenance windows. For more information, see Online and offline point of sale (POS) operations.
When will I need to update my in-store components?
All in-instore components must be running released software that is less than one year old in order to maintain
support. Customers are responsible for updating self-hosted components (such as components installed in stores
or in privately managed datacenters) and ensuring that the installed versions of these components are actively
supported.
Will there continue to be backward compatibility for the in-store components?
Updates to components hosted in the cloud will continue to preserve backward compatibility with component
versions self-hosted by the retailer (such as components installed in stores or in privately managed datacenters -
Modern Point of Sale, Commerce Scale Unit, Hardware Station) for 12 months after the release date for that
version. Self-hosted components do not need to be updated at the same time as cloud-hosted components and
can be updated on a separate cadence allowing time to roll-out updates to stores.
What options are available for updating in-store components across my organization?
Customers can choose to update self-hosted components manually at each store or use mass update tools such as
Microsoft System Center Configuration Manager, Microsoft Intune, etc.
What options do I have to slowly enable new functionality across my channels?
Microsoft provides several mechanisms to progressively roll-out and enable functional enhancements across
stores, devices, and users.
Screen layout designer – Most visual elements in POS are configured and centrally managed by an
administrative user in the customer organization. This means that new POS operations will not automatically
be displayed on POS unless explicitly configured for inclusion in corresponding screen layouts. Screen layouts
are configured using Screen layout designer and can be specific to a store or POS device. For more
information, see Screen layouts for the point of sale (POS).
Functionality profiles, POS permissions, Commerce parameters – Significant elements of functionality
in POS are typically configurable by the user. This can be configured through functionality profiles, POS
permissions, commerce parameters, or other controls which allow for device, register, store, or user-level
functionality control in applicable scenarios.
Modern Point of Sale and Commerce Scale Unit – Because Modern Point of Sale and Commerce Scale
Unit are self-hosted by the retailer, topologies which include either of these components enable roll out of
updates at a separate (and slower) cadence, and in a more granular fashion than with cloud-only topologies.
Software lifecycle policy and cloud releases
2/26/2020 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic outlines the lifecycle and support policies for the Finance and Operations online service.

Modern Lifecycle Policy


The Finance and Operations online service is covered by the Modern Lifecycle Policy. The Modern Lifecycle Policy
covers products and services that are serviced and supported continuously. For more information about this
policy, see Modern Lifecycle Policy. Licensed customers must stay current with updates to the Finance and
Operations online service in accordance with the following servicing and system requirements:
Customers purchasing subscriptions of Finance and Operations and operating on the following application
versions will experience continuous updates of the Platform and Financial Reporting. Microsoft will
continually update these components with the option to postpone up to 3 consecutive service updates.
Dynamics 365 for Operations version 1611 (November 2016)
Dynamics 365 for Finance and Operations, Enterprise edition (July 2017)
Dynamics 365 for Finance and Operations, Enterprise edition 7.3
Dynamics 365 for Finance and Operations, version 8.0 (April 2018)
Platform versions maintain backward compatibility with the application versions that are supported at the
time of the platform release within the application support lifecycle. For more information about platform
versions, see Cloud platform monthly updates FAQ.
Critical fixes and non-critical updates are handled in the following way:
Critical fixes – Critical fixes include security fixes and any fixes that are required to adhere to the
availability service level agreement (SLA) that the service supports. Critical fixes will be made
available in the latest platform update version and in the latest service update for customers
operating on version 8.1. In addition, to help protect the customer and the online service, Microsoft
might apply critical fixes directly to a customer's environment. If a critical fix must be applied,
Microsoft will notify the customer about the required downtime window (if there will be any
downtime) and apply the fix to the applicable environment. The critical fix will update the system to
the latest update version.
Non-critical updates – Customers operating on the following application releases must update to
the most current Finance and Operations platform and financial reporter version to deploy non-
critical updates.
Dynamics 365 for Operations version 1611 (November 2016)
Dynamics 365 for Finance and Operations, Enterprise edition (July 2017)
Dynamics 365 for Finance and Operations, Enterprise edition 7.3
Dynamics 365 for Finance and Operations, version 8.0 (April 2018)
Customers operating on release 8.1 must update to the most current service update to deploy non-
critical updates.
NOTE
Application and platform releases expire at the end of the month of their software lifecycle.
Microsoft will not provide any fixes to issues on versions that have reached end of service. Microsoft will also not investigate
or troubleshoot any issue that you may encounter on an older version. If you encounter an issue on a version that has
reached end of service, you will be required to update to the latest update and report the issue if it persists.
All environments will continue to be operated by Microsoft. All automatic processes around your environments, such as
monitoring or self-healing, will also continue as is for supported versions.

Dates and versions for application and platform releases


Table 1: Continuous update releases
For information about the new features included in each release, click the links in the Version column.

M A JO R REL EA SE
O R SERVIC E
REL EA SE UP DAT E VERSIO N B UIL D N UM B ER AVA IL A B IL IT Y EN D O F SERVIC E

Dynamics 365 for Major release 10.0 10.0.8 April 2019 Not applicable
Finance and (continuously
Operations updated)*

Dynamics 365 for Major release 8.1 8.1.136 October 2018 Not applicable
Finance and (continuously
Operations updated)*

* Indicates a major release is required to be updated through service updates. Service updates are cumulative in
nature and may include updates for some or all of the following components: Platform, Application, Financial
Reporting, Retail, and operating system updates. You will be required to have an update that's no older than 3
service updates. The 8.1.x version series will be replaced by version 10.0, which is targeted for release in April
2019. For more information, see One Version service updates FAQ.
Table 2: Application releases
For information about the new features included in each release, select the links in the Version column.

M A JO R O R
REL EA SE M IN O R REL EA SE VERSIO N B UIL D N UM B ER AVA IL A B IL IT Y EN D O F SERVIC E

Dynamics 365 for Major release 8.0 8.0.30 April 2018 April 30 2019
Finance and
Operations

Dynamics 365 for Major release 7.3 7.3.11971.56116 December 2017 April 30 2019*
Finance and
Operations,
Enterprise edition

Dynamics 365 for Major release July 2017 7.2.11792.56024 June 2017 April 30 2019
Finance and
Operations,
Enterprise edition

Dynamics 365 for Major release 1611 7.1.1541.3036 November 2016 April 30 2019
Operations
M A JO R O R
REL EA SE M IN O R REL EA SE VERSIO N B UIL D N UM B ER AVA IL A B IL IT Y EN D O F SERVIC E

Dynamics AX Minor release 7.0.1 7.0.1265.23014 May 2016 June 2017

Dynamics AX Major release 7.0 7.0.1265.3015 February 2016 June 2017

* All customers must be on the latest version of Finance and Operations by April 2019. However, we are making an
exception for customers who have unfulfilled extension requests that have been submitted to Microsoft. Those
customers who submitted extensibility requests by January 1, 2019, will be supported on version 7.3 until their
extensibility requests are fulfilled. Customers are expected to upgrade to the latest version within 90 days of the
extensibility request being fulfilled. For more information, see One Version service updates FAQ.
Table 3: Platform releases
For information about the new features included in each release, select the links in the Release column.

REL EA SE B UIL D N UM B ER AVA IL A B IL IT Y EXP IRAT IO N DAT E

Platform update 31 7.0.5457 January 2020 N/A (Continuously updated)

Platform update 30 7.0.5407 November 2019 N/A (Continuously updated)

Platform update 29 7.0.5372 October 2019 N/A (Continuously updated)

Platform update 28 7.0.5314 July 2019 N/A (Continuously updated)

Platform update 27 7.0.5286 June 2019 N/A (Continuously updated)

Platform update 26 7.0.5257 May 2019 N/A (Continuously updated)

Platform update 25 7.0.5222 April 2019 N/A (Continuously updated)

Platform update 24 7.0.5179 March 2019 N/A (Continuously updated)

Platform update 23 7.0.5126 January 2019 N/A (Continuously updated)

Platform update 22 7.0.5095 December 2018 N/A (Continuously updated


/ Retired)

Platform update 21 7.0.5073 October 2018 N/A (Continuously updated


/ Retired)

Platform update 20** 7.0.5030 October 2018 N/A (Continuously updated


/ Retired)

Platform update 15* 7.0.4841 March 2018 N/A (Continuously updated


/ Retired)

Platform update 12 7.0.4709 November 2017 November 2018

Platform update 11 7.0.4679.35176 October 2017 October 2018

Platform update 10 7.0.4641.16233 August 2017 August 2018


REL EA SE B UIL D N UM B ER AVA IL A B IL IT Y EXP IRAT IO N DAT E

Platform update 9 7.0.4612.35162 July 2017 July 2018

Platform update 8 7.0.4565.16212 June 2017 June 2018

Platform update 7 7.0.4542.16189 May 2017 May 2018

Platform update 6 7.0.4509.16180 April 2017 April 2018

Platform update 5 7.0.4475.16165 March 2017 March 2018

Platform update 4 7.0.4425.16161 February 2017 February 2018

Platform update 3 7.0.4307.16141 November 2016 November 2017

Platform update 2 7.0.4230.16130 August 2016 August 2017

Platform update 1 7.0.4127.16103 May 2016 May 2017

Platform 7.0 7.0.4030.16079 February 2016 January 2017

** Platform updates 16, 17, 18, and 19 have not been made generally available.
* Platform updates 13 and 14 have not been made generally available.
Table 4: Application updates
The application updates listed below consist of a small subset of application enhancements released on top of
Finance and Operations versions 8.0, 7.3, and 7.2 (July 2017). These updates do not affect the support lifecycle of
the release--support is in-line with the policies for each release.
Note that application updates are not cumulative. The individual packages only contain the enhancements that
were included in that specific release. However, if there is a dependency between two packages, then both
packages will be included.
For information about the new features included in each update, click the links in the Version column.

REL EA SE VERSIO N B UIL D N UM B ER AVA IL A B IL IT Y

Dynamics 365 for Finance 8.1.3: KB 4470000 Microsoft 8.1.227 January 2019
and Operations Dynamics 365 for Finance
and Operations version
8.1.3 with Platform update
23*

Dynamics 365 for Finance 8.1.2: KB 4470000 Microsoft 8.1.195 December 2018
and Operations Dynamics 365 for Finance
and Operations version
8.1.2 with Platform update
22*

Dynamics 365 for Finance 8.1.1: KB 4470000 Microsoft 8.1.170 October 2018
and Operations Dynamics 365 for Finance
and Operations version
8.1.1 with Platform update
21*
REL EA SE VERSIO N B UIL D N UM B ER AVA IL A B IL IT Y

Dynamics 365 for Finance 8.0.4: KB 4458992 Microsoft 8.0.35.15532 August 2018
and Operations Dynamics 365 for Finance
and Operations - Version
8.0.4 (Binary part)*, KB
4458993 Microsoft
Dynamics 365 for Finance
and Operations - Version
8.0.4 (X++ part)*

Dynamics 365 for Finance 8.0.3: KB 4346176 Microsoft 8.0.35.15342 July 2018
and Operations Dynamics 365 for Finance
and Operations - Version
8.0.3 (Binary part)*, KB
4346172 Microsoft
Dynamics 365 for Finance
and Operations - Version
8.0.3 (X++ part)*

Dynamics 365 for Finance 8.0.2: KB 4340414 Microsoft 8.0.35.15211 July 2018
and Operations Dynamics 365 for Finance
and Operations - Version
8.0.2 (Binary part)*, KB
4340413 Microsoft
Dynamics 365 for Finance
and Operations - Version
8.0.2 (X++ part)*

Dynamics 365 for Finance 8.0.1: KB 4295107 Microsoft 8.0.30.15107 June 2018
and Operations Dynamics 365 for Finance
and Operations - Version
8.0.1 (Binary part)*, KB
4294515 Microsoft
Dynamics 365 for Finance
and Operations - Version
8.0.1 (X++ part)*

Dynamics 365 for Finance 7.3.2: KB 4093261 Microsoft 7.3.11971.62687 March 2018
and Operations, Enterprise Dynamics 365 for Finance
edition and Operations - Version
7.3.2 (Binary part)*, KB
4093262 Microsoft
Dynamics 365 for Finance
and Operations - Version
7.3.2 (X++ part)*

Dynamics 365 for Finance 7.3.1: KB 4093139 Microsoft 7.3.11971.62430 March 2018
and Operations, Enterprise Dynamics 365 for Finance
edition and Operations - Version
7.3.1 (Binary part)*, KB
4091727 Microsoft
Dynamics 365 for Finance
and Operations - Version
7.3.1 (X++ part)*
REL EA SE VERSIO N B UIL D N UM B ER AVA IL A B IL IT Y

Dynamics 365 for Finance Application update 5: KB 7.2.11792.62725 November 2017


and Operations, Enterprise 4053277 Application
edition Update 5 for Microsoft
Dynamics 365 for Finance
and Operations (Binary
part)*, KB 4053278
Application Update 5 for
Microsoft Dynamics 365 for
Finance and Operations
(X++ part)*

Dynamics 365 for Finance Application update 4: KB 7.2.11792.62509 October 2017


and Operations, Enterprise 4047325 Application
edition Update 4 for Dynamics 365
for Finance and Operations
(Binary part)*, KB 4047321
Application Update 4 for
Dynamics 365 for Finance
and Operations (X++ part)*

Dynamics 365 for Finance Application update 3: KB 7.2.11792.62370 September 2017


and Operations, Enterprise 4043284 Application
edition Update 3 for Dynamics 365
for Finance and Operations
(Binary part)*, KB 4043285
Application Update 3 for
Dynamics 365 for Finance
and Operations (X++ part)*

Dynamics 365 for Finance Application update 2: KB 7.2.11792.62192 September 2017


and Operations, Enterprise 4039142 Application
edition Update 2 for Dynamics 365
for Finance and Operations
(Binary part)*, KB 4039487
Application Update 2 for
Dynamics 365 for Finance
and Operations (X++ part)*

Dynamics 365 for Finance Application update 1: KB 7.2.11792.62089 July 2017


and Operations, Enterprise 4035749 Application
edition Update 1 for Dynamics 365
for Finance and Operations
(Binary part)*, KB 4035751
Application Update 1 for
Dynamics 365 for Finance
and Operations (X++ part)*

* The link points to a Knowledge Base (KB) article. You must sign in to Lifecycle Services (LCS) to view the KB
article.

Support matrix
Platform updates are compatible with all application versions that are supported at the time of release.
Table 5: Downloadable virtual hard drive (VHD) releases
Use of the VHDs is subject to the Software license terms.
REL EA SE VH D N A M E VH D EXP IRAT IO N DAT E

Platform update 12 / Application FinandOps7.2PlatUpdate12.vhd May 24, 2018


release 7.2

Platform update 12 / Application FinandOps7.3PlatUpdate12.vhd June 05, 2018


release 7.3

Platform update 15 / Application FinandOps7.3withPlatUpdate15 December 08, 2018


release 7.3
Software lifecycle policy and on-premises releases
10/3/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic outlines the lifecycle and support policies for Microsoft Dynamics 365 Finance + Operations (on-
premises) releases.

Modern Lifecycle Policy


Finance + Operations (on-premises) software is covered by the Modern Lifecycle Policy. The Modern Lifecycle
Policy covers products and services that are serviced and supported continuously. For more information about this
policy, see Modern Lifecycle Policy.
Licensed customers must stay current with updates to the Finance + Operations (on-premises) software in
accordance with the following servicing and system requirements. This policy requires that the customer maintain
Software Assurance (SA) or the Enhancement Plan, and deploy updates as noted later in this topic. Customers who
want to use the Fixed Support Lifecycle Policy (5+5) must downgrade to Microsoft Dynamics AX 2012 R3. If a
customer lapses on SA or the Enhancement Plan, the customer will be eligible only for the perpetual license rights
to Microsoft Dynamics AX 2012 R3 and must uninstall Microsoft Dynamics 365 for Finance and Operations (on-
premises) software.

On-premises software update policies


The customer is in full control of its on-premises deployments and must follow this policy. The customer is in
control of installing updates in its on-premises environments. Microsoft will support the Finance + Operations (on-
premises) software through December 31, 2027, at a minimum, but only if the customer keeps the deployed
software current according to this policy.
Critical fixes and non-critical updates are handled in the following way:
Critical fixes – Critical fixes include security fixes and any fixes that are required to support reliability and
availability. Critical fixes will be made available in the latest platform update version.
Non-critical updates – Customers must update to the most current Finance and Operations platform and
financial reporter version to deploy non-critical updates.

Finance + Operations (on-premises) release dates


Continuous service updates
As of November 2018, on-premises service updates are released continuously. For more information about version
numbers and availability dates, see Software lifecycle policy and cloud releases. For more information about One
Version service updates, see One Version service updates FAQ.
Application releases
Application releases expire at the end of the month of their software lifecycle.
EXP IRAT IO N
REL EA SE VERSIO N B UIL D N UM B ER AVA IL A B IL IT Y DAT E P RO DUC T L IF E

Continuous - - - - -
service updates

Dynamics 365 for 10.0 10.0.8 March 2019 June 2019 December 2027
Finance and
Operations (on-
premises)

Dynamics 365 for 8.1 8.1.136 November 2018 April 2019 December 2027
Finance and
Operations (on-
premises)

Dynamics 365 for 7.3 7.3.11971 March 2018 April 2020* December 2027
Finance and
Operations,
Enterprise edition
(on-premises)

Dynamics 365 for July 2017 7.2.11792 June 2017 April 2019 December 2027
Finance and
Operations,
Enterprise edition
(on-premises)

* All customers must be on the latest version of Finance and Operations by April 30, 2019. However, we are making
an exception for customers who have unfulfilled extension requests that have been submitted to Microsoft. Those
customers can be on version 7.3 until April 2020. For more information, see One Version service updates FAQ.
Platform releases
Platform releases expire at the end of the month of their software lifecycle.

REL EA SE B UIL D N UM B ER AVA IL A B IL IT Y EXP IRAT IO N EN D O F L IF E

Continuous service - - - -
updates

Platform update 20 7.0.5030 November 2018 February 2019 December 2027

Platform update 15 7.0.4841 June 2018 September 2018 December 2027

Platform update 12 7.0.4709.41182 March 2018 June 2018 December 2027

Platform update 11 7.0.4679.35176 October 2017 April 2018 December 2027

Platform update 10 7.0.4641.16233 August 2017 April 2018 December 2027

Platform update 9 7.0.4612.35162 August 2017 April 2018 December 2027

Platform update 8 7.0.4565.1612 July 2017 April 2018 December 2027


NOTE
Platform releases are cumulative in nature. Any fixes, critical or non-critical, will require customers to take the latest available
version of the platform.

Downloadable virtual hard drive (VHD) releases


Use of the VHDs is subject to the Software license terms.

REL EA SE VH D N A M E VH D EXP IRAT IO N DAT E

Platform update 12 / Application release FinandOps7.2PlatUpdate12.vhd May 24, 2018


7.2

Platform update 12 / Application release FinandOps7.3PlatUpdate12.vhd June 05, 2018


7.3

Platform update 15 / Application release FinandOps7.3withPlatUpdate15 December 08, 2018


7.3
Service update availability
4/4/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Service updates are continuous, touchless updates that provide new features and functionality. They eliminate the
need to do expensive upgrades every few years. The service updates maintain backward compatibility, which
means there is no need to ‘merge your code’. We recommend leveraging tools such as the Regression Suite
Automation Tool (RSAT) for regression testing.
You are in control and manage how your organization receives these updates. For example, you can sign up for the
First Release program so that your organization receives updates first. You can apply the updates to any of your
environments manually (self-update) or remain on the default release schedule and receive the auto-updates
when you schedule them using Lifecycle Services (LCS). This topic explains the different release options and how
you can use them for your organization.
Service updates contain both application and platform changes that are critical improvements to the service,
including regulatory updates.

Release processes
Each new release is designed and developed by the Dynamics 365 team. Any new release is first validated by the
feature team, then by the Finance and Operations teams. During this time, extensive testing is done on various test
topologies. A compatibility checker also runs tests to ensure backward compatibility. In addition, a Release
Validation Program is available for customers to join. This program allows customers to share artifacts, such as
databases and code, that is used for benchmarking and tested with automation to provide an additional layer of
quality assurance.
Preview Early Access Program (PEAP) is available to partners, customers, and ISV’s who opt in through the Insider
Program. As a participant in the PEAP program you will have first access and visibility into the preview for the
upcoming service update. The preview service update is used to validate customizations, learn about new features,
and provide feedback to Microsoft. During this phase, the service update must be deployed on a Dev/Test
environment. This release cannot be used in production. To join the PEAP program, sign up via the Insider
Program.
The First Release program is open to all customers. Customers who join the First Release program will be the first,
select group of customers to take the service update all the way to production. Microsoft will manage the
deployment of this service update to a UAT sandbox and then 7 days later will auto-deploy the update to
production. Customers participating in this program have the additional benefit of having dedicated Microsoft
engineers closely monitoring the environments for any issues after updates have been applied. To join First
Release, sign up via the Insider Program.
The service update will be made generally available using the action center in LCS. When the service update is
available, it can be manually applied to all environments including production. If the service update has not been
applied to the designated sandbox or production environment, Microsoft will auto-apply the update based on the
“Update settings” for the LCS project. To learn more, see Configure service updates through Lifecycle Services.
Release cadence
Microsoft is committed to delivering predictable service updates. These service updates will be made generally
available for self-deployment approximately 2 weeks prior to Microsoft automatically applying the update.

NOTE
Service updates will not be provided during the months of March, June, September, and December.

Customers will be able to take up to 8 service updates per year and are required to take a minimum of 2 service
updates per year. Customers can choose to pause up to 3 consecutive updates at a time. Pausing a service update
can apply to the designated UAT sandbox, production, or both environments. After the pause window has ended
and if the customer has not self-updated to a supported service update, Microsoft will auto-apply the latest update
based on the configuration selection made available in LCS. To learn more about how to pause service updates,
see Pause service updates through Lifecycle Services.
Targeted release schedule (dates subject to change )

NOTE
Sandbox auto-update takes place 7 days prior to the production update. End of service indicates the date when no new
cumulative service updates will be provided.

GEN ERA L LY A UTO - UP DAT E


P REVIEW AVA IL A B L E ( SEL F - SC H EDUL E ( VIA L C S
VERSIO N AVA IL A B IL IT Y ( P EA P ) UP DAT E) UP DAT E SET T IN GS) EN D O F SERVIC E

10.0.1 Platform Production starting: June 10, 2019


update 25 May 1, 2019

10.0.2 Platform April 12, 2019 May 17, 2019 Production starting: August 12, 2019
update 26 June 1, 2019

10.0.3 Platform May 10, 2019 June 14, 2019 Production starting: September 9, 2019
update 27 July 1, 2019

10.0.4 Platform June 7, 2019 July 12, 2019 Production starting: October 14, 2019
update 28 August 1, 2019

10.0.5 Platform August 2, 2019 September 13, 2019 Production starting: December 2, 2019
update 29 October 1, 2019

10.0.6 Platform September 6, 2019 October 11, 2019 Production starting: January 13, 2020
update 30 November 1, 2019

10.0.7 Platform October 25, 2019 November 29, 2019 Production starting: March 9, 2020
update 31 January 1, 2020

10.0.8 Platform November 29, 2019 January 17, 2020 Production starting: May 1, 2020
update 32 February 1, 2020

10.0.9 Platform February 1, 2020 March 13, 2020 Production starting: June 5, 2020
Update 33 April 1, 2020
GEN ERA L LY A UTO - UP DAT E
P REVIEW AVA IL A B L E ( SEL F - SC H EDUL E ( VIA L C S
VERSIO N AVA IL A B IL IT Y ( P EA P ) UP DAT E) UP DAT E SET T IN GS) EN D O F SERVIC E

10.0.10 March 6, 2020 April 10, 2020 Production starting: July 3, 2020
May 1, 2020

10.0.11 April 17, 2020 May 29, 2020 Production starting: September 4, 2020
July 1, 2020

10.0.12 May 29, 2020 July 10, 2020 Production starting: October 9, 2020
August 1, 2020

10.0.13 August 3, 2020 September 18, 2020 Production starting: December 4, 2020
October 1, 2020

NOTE
The Software lifecycle policy applies to customers enrolled in First Release and when the service update is made generally
available.

Sign up for the PEAP program by joining the Insider Program available at https://experience.dynamics.com. Once
your nomination has been accepted, join the program.
Public previews are made available as a deployable package via the Shared asset library in Lifecycle Services. For
more details, see One Version service updates FAQ.
Apply updates to cloud environments
3/4/2020 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how you can use Microsoft Dynamics Lifecycle Services (LCS) to automatically apply updates to
cloud environments.

IMPORTANT
Updates are applied using deployable packages. Applying updates causes system downtime. All relevant services will be
stopped, and you won't be able to use your environments while the package is being applied. You should plan accordingly.

Supported environments
All environments deployed through Lifecycle Services are supported.

NOTE
If you have a build environment, you can only use LCS to apply Binary updates and Data upgrade packages. You can't use LCS
to apply an Application Deployable package.

For other environments (listed below), you must use Remote Desktop Protocol (RDP) to connect to the environment
and install from the command line. For information about manual package deployment, see Install deployable
packages from the command line.
Local development environments (Downloadable virtual hard disk [VHD])
Multi-box dev/test environments in Microsoft Azure (Partner and trial projects)

Key concepts
Before you begin, you should understand deployable packages, runbooks, and the AXInstaller. A deployable
package is a unit of deployment that can be applied in any environment. A deployable package can be a binary
update to the platform or other runtime components, an updated application (AOT) package, or a new application
(AOT) package. The AXInstaller creates a runbook that enables installing a package. For more details, see Packages,
runbooks, and the AXUpdateInstaller in depth at the end of this topic.

Supported package types


AOT deployable package – A deployable package that is generated from application metadata and source
code. This deployable package is created in a development or build environment.
Application and Platform Binar y update package – A deployable package that contains dynamic-link
libraries (DLLs) and other binaries and metadata that the platform and application depend on. This is a package
released by Microsoft. This is available from the All binar y updates tile from LCS.
Platform update package – A deployable package that contains dynamic-link libraries (DLLs) and other
binaries and metadata that the platform depend on. This is a package released by Microsoft. This is available
from the Platform binar y updates tile from LCS.
Commerce deployable package – A combination of various packages that are generated after the Commerce
code is combined.
Merged package – A package that is created by combining one package of each type. For example, you can
merge one binary update package and one AOT package, or one AOT package and one Commerce deployable
package. The packages are merged in the Asset library for the project in LCS.

NOTE
A binary package and a Commerce deployable package can't be included in the same merged package.
For information about how to download an update from LCS and what you see in the tiles based on your environment
version, see Download updates from Lifecycle Services (LCS).
If your environment is on an application version 8.1 and later, then the Platform Update package does not apply to your
environment. Starting with 8.1 and later releases, Application and Platform Binar y update package is the one that
applies since application and platform will be combined into a single cumulative package and will be released by Microsoft.
Also note that you will no longer be applying granular X++ hotfixes and will get all application and platform updates together.
This means that on the environment details page, clicking on View detailed version information will not have details on
the granular hotfixes or KBs applied as there is no way to apply them.

Prerequisite steps
Make sure that the package that should be applied is valid. When a package is uploaded to the Asset
library, it isn't analyzed. If you select the package, the package status appears in the right pane as Not
Validated . A package must pass validation before it can be applied in an environment by using the following
procedures. The status of the package will be updated in the Asset library to indicate whether the package is
valid. We require validation to help ensure that production environments aren't affected by packages that
don't meet the guidelines.
There are three types of validations:
Basic package format validations
Platform version checks
Types of packages
Make sure that the package is applied in a sandbox environment before it's applied in the
production environment. To help ensure that the production environment is always in a good state, we
want to make sure that the package is tested in a sandbox environment before it's applied in the production
environment. Therefore, before you request that the package be applied in your production environment,
make sure that it has been applied in your sandbox environment by using the automated flows.
If you want to apply multiple packages, create a merged package that can be applied first in a
sandbox environment and then in the production environment. Application of a single package in an
average environment requires about 5 hours of downtime. To avoid additional hours of downtime when you
must apply multiple packages, you can create a single combined package that contains one package of each
type. If you select a binary package and an application deployable package in the Asset library, a Merge
button becomes available on the toolbar. By clicking this button, you can merge the two packages into a
single package and therefore reduce the total downtime by half.
Make sure that the Application binar y update package is applied to your dev/build
environment before it is applied to your sandbox and production environment - If the application
binary package is applied directly to your Tier 2+ sandbox environment but is not applied on your dev/build
environment, the next time you move an AOT package from dev/build box (which does not have the same
application binaries as your sandbox environment) to sandbox, some of the application binaries will be
overwritten with what is in your dev/build environment. This could result in a regression of the version of
your sandbox environment.

Apply a package to a non-production environment by using LCS


Before you begin, verify that the deployable package has been uploaded to the Asset library in LCS.
1. For a binary update, upload the package directly to the Asset library. For information about how to download an
update from LCS, see Download updates from Lifecycle Services (LCS). For an application (AOT) deployable
package that results from an X++ hotfix, or from application customizations and extensions, create the
deployable package in your development or build environment, and then upload it to the Asset library.
2. Open the Environment details view for the environment where you want to apply the update.
3. Click Maintain > Apply updates to apply an update.
4. Select the package to apply. Use the filter at the top to find your package.
5. Click Apply . Notice that the status in the upper-right corner of the Environment details view changes from
Queued to In Progress , and an Environment updates section now shows the progress of the package. You
can refresh the page to check the status.
6. Continue to refresh the page to see the status updates for the package application request. When the package
has been applied, the environment status changes to Deployed , and the servicing status changes to
Completed .

Apply a package to a production environment by using LCS


In a production environment, customers can schedule a downtime for when they want the update to be applied.

IMPORTANT
An important prerequisite for applying a package to a production environment is that the package must be successfully
applied to at least one sandbox environment in the same project.

1. After the update is successfully applied in a sandbox environment, go to the project's asset library. On the
Asset librar y page, select the Software deployable package tab, select the package that you want to
move to production, and click Release candidate . This indicates that this package is ready for production
deployment.
2. Open the Environment details view for the production environment where you want to apply the package.
3. Select Maintain > Apply updates to apply the package.
4. Select the package to apply in your production environment, and then click Schedule to submit a request to
apply it.

NOTE
The list of packages includes only the packages that have been successfully signed off in the sandbox environment,
and that have been marked as release candidates.

5. Specify the date and time to schedule the package application. Click Submit , and then click OK to confirm.
Note that your environments will be unavailable to perform business while the package is being applied.
6. At the scheduled downtime, package deployment will start.
7. After the environment is serviced, you can monitor the status. The Ser vicing status field indicates the
status of package application. Additionally, a progress indicator shows the number of steps that have been
run, out of the total number of steps that are available.
8. After the deployment is successfully completed, the Ser vicing status field is set to Completed .
9. If package application isn't successfully completed, Microsoft will investigate the issue. The Ser vicing status
field will indicate that package application has failed. The environment will be rolled back to a good state.

Troubleshoot package deployment failures


If package deployment fails, see the Troubleshoot package application issues topic.

Applying updates and extensions


If you are updating a Tier-2 Sandbox or Production environment on application version 8.1.2.x or newer and have
initialized Cloud Scale Unit, you will also need to update Commerce channel components. For more information,
see Update Retail Cloud Scale Unit.
If you're using components (such as Modern POS), after you've applied updates and extensions in your
environment, you must also update your in-store components. For more information, see Configure, install, and
activate Modern POS (MPOS).

Packages, runbooks, and the AXUpdateInstaller in depth


Deployable packages, runbooks, and the AXUpdateInstaller are the tools you use to apply updates.
Deployable package – A deployable package is a unit of deployment that can be applied in an environment. A
deployable package can be a binary update to the platform or other runtime components, an updated application
(AOT) package, or a new application (AOT) package. Deployable packages downloaded from LCS or created in a
development environment cannot be applied across product types. For example, a Finance deployable package
cannot be applied in a Commerce app environment, and vice versa. If you have an existing customization for a
Finance and Operations app that is compatible with the Commerce app, and you would like to apply it to a
Commerce environment, you will need to re-package your source code in a Commerce development environment,
and conversely if moving in the other direction.
Runbook – The deployment runbook is a series of steps that are generated in order to apply the deployable
package to the target environment. Some steps are automated, and some steps are manual. AXUpdateInstaller lets
you run these steps one at a time and in the correct order.

AXUpdateInstaller – When you create a customization package from Microsoft Visual Studio or a Microsoft
binary update, the installer executable is bundled together with the deployable package. The installer generates the
runbook for the specified topology. The installer can also run steps in order, according to the runbook for a specific
topology.

Additional resources
Install deployable packages from the command line
Apply updates to on-premises deployments
3/6/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to apply supported updates to Dynamics 365 Finance + Operations (on-premises). All
updates to on-premises environments are done through Microsoft Dynamics Lifecycle Services (LCS).

Search for and download updates


For more information about how to find the updates that you can apply to your on-premises environment, see
Issue search in Lifecycle Services (LCS). For information about how to download updates from the tiles in the
Updates section of the Environment details page in LCS, see Download updates from Lifecycle Services (LCS).

NOTE
When you are updating an on-premises environment, always select updates from the update tiles on the Environment
details page. If you select updates from another location, the updates might not work.

Update an on-premises deployment


You can apply updates to an on-premises environment either during deployment or after the deployment is
completed.
While an on-premises environment is being deployed, you can select to deploy a custom package in the Advanced
settings. For more information about how to apply customizations or application X++ updates, see Develop and
deploy custom models to on-premises environments.
To apply updates to an on-premises environment after it has been deployed, in LCS, on the Environment details
page for the environment, under Maintain , select Apply updates .

NOTE
You can apply updates after deployment only on environments that have Platform update 12 for Finance and Operations or
later. The environment must also have the latest version of the local agent available in LCS. For more information, see Update
the local agent. If you're on a platform version that is older than Platform update 12, you can reconfigure an environment
that is already deployed to update the customizations or update to the latest platform release. For more information about
how to redeploy an environment, seeRedeploy on-premises environments.

Apply application or binary updates through LCS


The following steps can be used to apply X++, All Binary, or Platform binary updates.
IMPORTANT
The application of updates requires downtime for your environment. Therefore, no business transactions can be performed in
the environment during the update. When you complete the following steps, verify that the system isn't being used, and that
an official downtime notice has been communicated to all system users.

IMPORTANT
To move to the latest platform, always select the platform update from the Platform Binar y Updates tile on the
Environment details page. If you select updates from another location, the updates might not work.

Prerequisites
Before you begin, complete a full backup of the Management Reporter (MR), Microsoft Dynamics AX, and
Microsoft SQL Server Reporting Services (SSRS databases). Although the code is restored through LCS, the
database must be manually restored to help guarantee that there is no data loss.
Update your environment to the latest build of Platform update 12.
Update the local agent to the latest version. For more information, see Update the local agent.
Depending on the type of update, complete the following steps to generate a deployable package:
Platform binar y updates – Download or save the update directly to the Asset library in LCS by
following the steps in Download updates from Lifecycle Services (LCS).
Application binar y updates – Download or save the update directly to the Asset library in LCS by
following the steps in Download updates from Lifecycle Services (LCS).
Application X++ updates – Download the required hotfix to your development environment, and then
follow the steps in Create deployable packages of models.
Customizations – Follow the steps in Develop and deploy custom models to on-premises
environments.
Update a sandbox environment
1. In the LCS Asset library, upload the deployable package that was generated in the "Prerequisites" section of this
topic to theSoftware deployable packages tab.
2. In LCS, open the on-premises implementation project, and then open the Environment details page of the
environment to update.
3. Under Maintain , select Apply updates . A slider shows the updates that were uploaded to the Asset library.
Note that only packages that are marked as Valid in the Asset library appear.
If you are on local agent version 2.1.0 and higher, complete the following steps.
1. Select the update, and then click Prepare . Clicking on Prepare will prepare your on-premises environment
for servicing.

NOTE
During preparation, the environment state will be Deployed but the Deployment status field will show the progress
of Preparation. Steps such formatting the package and downloading the package are executed during preparation.
The environment is not directly touched during preparation and hence there is no downtime during the preparation
phase. Users can continue to use the system during preparation.

2. After the preparation is complete, you will see Abor t and Update Environment buttons. To start applying
the update, click Update Environment . If preparation fails, see the "Resolve a failed update application"
section later in this topic.
3. In the confirmation message, select Yes . The servicing operation has started on this environment. This is the
start of the downtime on your environment.
4. The environment state is changed from Deployed to Deploying .
5. After the update is completed, the environment state is changed back to Deployed . If application of the
update fails, the environment state is changed to Failed . For information about what to do if package
application fails, see the "Resolve a failed update application" section later in this topic.
6. Open the Histor y and Environment details pages to view the operations that were performed on the
environment. You can also view a record of major actions that were performed on the environment, such as
deployments, servicing, and rollbacks.
If you are on local agent version lower than 2.1.0, complete the following steps.
1. Select the update, and then click Apply .
2. In the confirmation message, select Yes . The servicing operation has started on this environment. This is the
start of the downtime on your environment.
3. Environment state changes from Deployed to Preparing .

NOTE
During preparation, steps such formatting the package and downloading the package are executed during
preparation. The environment is not directly touched during preparation and hence there is no downtime during the
preparation phase. Users can continue to use the system during preparation. However, we recommend that the
downtime starts when the environment enters the Preparing state.

4. After preparation is complete, the environment state is changed from Preparing to Deploying .
5. After the update is completed, the environment state is changed back to Deployed . If application of the
update fails, the environment state is changed to Failed . For information about what to do if package
application fails, see the "Resolve a failed update application" section later in this topic.
6. Open the Histor y and Environment details pages to view the operations that were performed on the
environment. You can also view a record of major actions that were performed on the environment, such as
deployments, servicing, and rollbacks.
Update a production environment
Before you update a production environment, you must successfully complete the package application update on a
sandbox environment.
1. In the project for the sandbox environment that you applied the package to, open the Asset library, and then, on
the Software deployable packages tab, select the package, and mark it as a Release candidate .
2. On the Environment details page, under Maintain , select Apply updates . In the dialog box, only packages
that are marked as a Release candidate are shown.
3. Select the Release candidate package to be applied to the Production environment.
4. The rest of the Update flow is the same as that of a sandbox environment. Your update experience will differ
based on the version of the local agent running on your environment. We recommend that you always run with
the latest version.

Resolve a failed update application


When preparation fails, the environment state is Deployed . When the application of an update fails, the
environment state is Failed . The first step is to determine why there is a failure. The location of the logs varies,
depending on the stage where the failure occurred:
Preparation stage: If the operation fails during the Preparation stage, the logs are uploaded to LCS. In the
log files, select Download logs to download the log files. If the package has any merge issues, the error is
included in the log file.
Deploying stage: If the operation fails during the Deploying stage, the logs are located in the on-premises
environment. You must sign in to the environment, and then access the logs and event viewer.
For more information about how to use the troubleshooting logs, see Troubleshoot on-premises deployments.
After you review the logs and determine the cause of the failure, complete one of the following operations to
restore the environment to a healthy state. No actions can be performed on an environment that is in a Failed
state. The environment must first be restored to a healthy state.
Retr y failed operation – If update application fails, select Retr y to recover from the failed operation.
Abor t failed operation – Because there is no change made to the on-premises environment, if the
preparation fails, you have the option to cancel the operation. Select Abor t to cancel the preparation.
Roll back the update – To roll back the update that failed, select Rollback . Before you start the rollback,
you must restore the database to the last known good state. When you select Rollback , the environment is
restored to the last known good state. The environment state is then changed to Preparation , then to
Deploying , and then to either Deployed or Failed .

NOTE
The Rollback button doesn't roll back the database. You're responsible for restoring the database to the last known
backup that was made before update application. This step is critical to help guarantee that there is no data loss.

Refresh the state – If update application fails during the Preparation stage, the failure is on the LCS side,
and update application hasn't yet started. Therefore, the on-premises environment is in a good state. To
restore the LCS environment state to Deployed , on the project dashboard page, select Refresh .
Delete and redeploy an environment – If the retry and rollback options don't work, you must delete and
redeploy the environment. To delete the environment, on the project dashboard page, select Delete . You
then see the option to configure the environment.

IMPORTANT
This option should not be used on a production environment. However, it can be used on a sandbox deployment to
restore the environment to a healthy state.

Because this option requires that you do a fresh deployment of the environment, you lose any updates
that were previously applied. Any customizations and binary updates must be reapplied to the
environment.
Configure service updates through Lifecycle Services
(LCS)
3/12/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

In Microsoft Dynamics Lifecycle Services (LCS), you can specify how and when you receive service updates from
Microsoft for your environments.

IMPORTANT
This feature is available only to customers who are using version 8.1 and later or are using version 7.3 , and who are not
part of the First release program. Microsoft is working to make the feature available to First release customers. For customers
who are on version 7.1, 7.2, or 8.0, you can take the update manually using the regular servicing flows.

Only users (customers or partners) who are assigned to the Project owner role in LCS can configure updates.
Additionally, updates can be configured only for implementation projects .
Follow these steps to change your update settings.

NOTE
These settings apply only to service updates. They have no effect on the operating system–level security updates that are
applied to your environments every month.

1. In LCS, in your implementation project, open the Project settings page.


This page has a new tab that is named Update settings .
2. On the Update settings tab, set the following configuration options as you require:
Update environment – Select an alternate sandbox environment that should be updated before the
production update.
By default, Microsoft first updates the Tier 2 Standard Acceptance Test (sandbox) environment that is
included in the base offer. It then applies the update to the production environment. If you've
purchased Tier 2 and higher sandbox add-on environments and want a different sandbox to be
updated, you can use this field to change the default environment to an alternate environment.

IMPORTANT
The environment that you select here will be updated seven calendar days before the update cadence that is
selected for the production environment.

Production environment update cadence – Select a recurring cadence for updates to your
production environment. The sandbox environment that is selected in the Update environment
field will be updated seven calendar days before the selected cadence. The following options are
available:
Select the cadence – Select whether to receive updates in the first, second, or third week of the
month.
Select one of the three time-zones – Select the time zone that the production environment
should be updated in: Eastern Time (UTC – 5), Hong Kong Time (UTC + 8), or Greenwich Mean
Time (UTC + 0).
Select a day of the week : Select the day in the week when you want to receive updates.
Select a time slot: Select the time slot when you want to receive updates.

NOTE
Currently, only a few options are available for the day of the week and time slot options. Microsoft will add
more options soon, such as weekdays for customers.

IMPORTANT
If the above time slots do not meet your needs, you always have the option to do a self-update at a time that
is convinient to you by taking the update and applying it to your environments using the regular servicing
flows.

3. When you've finished setting the configuration options, select Save .


After you set the update environment and update cadence, Microsoft generates an update calendar for the next six
months. This calendar shows exactly when the configured sandbox and production environments will be updated.
Therefore, you will know when to expect each update. To view the calendar, select the View update calendar link
under the Production environment update cadence options.

IMPORTANT
After the settings are saved, you can change them at any time. However, if there is an ongoing rollout, the new settings won't
be used to update the existing rollout timings. Instead, they will start to be used in the next rollout. An ongoing rollout is
defined by the 14-day period between the date when the email notification about the update of the sandbox environment is
sent and the date when the production environment is updated.

For more information about how to pause updates to configured sandbox and production environments, see Pause
service updates through Lifecycle Services (LCS).
For more information about One Version and Microsoft-managed service updates, see One Version service updates
FAQ.
Pause service updates through Lifecycle Services
(LCS)
3/12/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to pause updates to your sandbox and production cloud environments by using Microsoft
Dynamics Lifecycle Services (LCS). This topic does not apply to on-premises environments.

IMPORTANT
This feature is available only to customers who are using version 8.1 and later or are using version 7.3 , and who are not
part of the First release program. Microsoft is working to make the feature available to First release customers. For
customers who are on version 7.1, 7.2, or 8.0, you can take the update manually using the regular servicing flows.

Microsoft updates your configured sandbox and production environments to the latest service update that
Microsoft has released. Microsoft notifies you about upcoming updates to your environments via email and
through notifications in LCS. At that point, if you can't proceed with the update for some reason, you can pause it
through LCS.
For more information about how to change the configured sandbox environment and set the production update
cadence, see Configure service updates through Lifecycle Services (LCS).

Who can pause service updates?


Only users (customers or partners) who are assigned to the project owner role in LCS can pause updates.
Additionally, updates can be paused only for implementation projects .
Staying current with service updates helps guarantee that customers always run on the latest set of fixes that
Microsoft has released, so that they have the best service experience. Therefore, Microsoft doesn't allow updates to
be paused indefinitely.
You can't use LCS to pause updates if you're three or more updates behind the latest update that Microsoft has
released. For example, if the latest update that Microsoft has released is version 10.0.0, customers who are on
version 8.1.3, version 8.1.2, and version 8.1.1 can pause updates. However, customers who are on version 8.1.0
can't pause updates, because they are more than three updates behind. Customers who are on version 7.3 can get
only platform updates. For example, if the last platform update that Microsoft has released is Platform update 25,
customers who are on Platform update 24, Platform update 23, and Platform update 22 can pause updates.
However, customers who are on Platform update 21 can't pause updates.

What can I pause?


If you decide to pause updates, you have two options:
Pause updates only to your production environment.
Pause updates to both your sandbox environment and your production environment.
You can pause a maximum of three continuous updates at a time. For example, if you're using version 8.1.3, you
can pause update version 10.0.0, 10.0.1 and 10.0.2. However, you can't pause update version 10.0.3. In addition, in
the month of June, you can pause the next three updates. However, you will not be able to pause updates
scheduled for October, November, December and later. Similarly, for customers on version 7.3 for platform only
updates, if you’re using Platform update 23 then you can pause update 24, update 25, and update 26, but you
cannot pause update 27. We will be releasing 8 updates in a year. We require you to take at least two updates in a
year.

IMPORTANT
There is no way to pause more than three updates, regardless of your industry or business schedule. If you are more than
three updates behind and you find a critical issue during validations in your sandbox environment after the update, you can
contact Microsoft Support to pause the update to your production environment. This is only required if you are more than
three updates behind and you are unable to use the pause updates functionality available in LCS to pause the update to
production.

If you pause updates to your sandbox environment, updates are automatically also paused for your production
environment, because Microsoft always updates configured sandbox environments before production
environments.

How do I pause updates?


To pause updates, follow these steps.
1. In LCS, in your implementation project, open the Project settings page.
This page has a new tab that is named Update settings .
2. On the Update settings tab, set the Pause updates option to ON .
3. Select Edit settings .
4. In the dialog box that appears, select whether you want to pause updates to your production environment
only, or to both your sandbox environment and your production environment.
5. Select Next .
6. Select your reason for pausing updates. If you select Issue found during validations , you must enter a
valid support ticket number. You can add any additional details that will help Microsoft understand why you
want to pause updates.
7. When you've finished, select Confirm .
You can also edit an existing pause. You can either extend the duration of the pause, so that updates are paused for
a longer time, or cancel it, so that updates are resumed. To edit a pause, select Edit settings . The limitations about
the number of updates that you can pause still apply.
To cancel a pause and resume updates to your environments, set the Pause updates option to OFF .
Any time that you pause updates or edit an existing pause, a notification appears at the top of the Update
settings tab. This notification shows what has been paused. An email is also sent to all stakeholders (the project
owner and environment manager), to notify them that service updates for the selected environments have been
paused. If someone cancels an existing pause and resumes updates, the notification disappears, and an email is
sent to inform the stakeholders that updates have resumed.
IMPORTANT
You can pause updates through LCS until four hours before the start of the downtime window.

You can cancel a pause and choose to resume updates only 7 days prior to the start of the downtime date. If
you are past that date then you will not be able to cancel a pause.

What happens after the pause duration expires?


Cumulative service updates help guarantee that customers always run on the latest set of fixes that Microsoft has
released, so that they have the best service experience. Therefore, Microsoft doesn't allow updates to be paused
indefinitely.
There are two ways to cancel pauses, so that updates are resumed:
Someone manually cancels an ongoing pause, as explained in the previous section.
The duration that was set for the pause expires, and updates to the configured environments are automatically
resumed.
In both cases, an email is sent to inform the stakeholders.
For more information about service updates, see One Version service updates FAQ.
Get notified about service updates through Lifecycle
Services (LCS)
3/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how you can stay up to date about service updates from Microsoft.
Microsoft uses service updates to update your configured sandbox and production environments to the latest
released version. Microsoft notifies you about upcoming updates to your environments via email and through
notifications in Microsoft Dynamics Lifecycle Services (LCS).
Here are the different types of notifications that you will receive:
Notification when an update is made available: When a new release is made generally available,
Microsoft surfaces a notification in your implementation projects' action center. You can then save that
update in your projects' asset library, if you want to apply the update to your environments before Microsoft
does an automatic update. When Microsoft does an automatic update, it also saves a copy of the update in
your projects' asset library.
Notification that is sent five days before the update: Microsoft notifies you five days before it updates
your environment. After you've configured your update cadence, you will receive notifications about
upcoming updates five days before they occur. These notifications take three forms:
Email notification: Project owners, environment managers, and users who are listed as additional
stakeholders for an environment are notified by email about the upcoming update.
Notification bar on the environment details page: A notification that appears on the environment
details page in LCS informs the customer about the upcoming update.
Upcoming update reflects the update: On the environment details page in LCS, select Maintain >
Upcoming Update to open a dialog box that contains details about the upcoming update.
Notification that is sent one hour before the update: One hour before the start of the downtime
window, users in the application receive a notification. This notification asks users to save their work,
because the environment will be taken down for an update.
Notification that is sent when the update is completed: After Microsoft has finished updating your
configured environment, it notifies you by email about the outcome of the update. This email is always sent,
regardless of whether the update was successfully applied. It's sent to project owners, environment
managers, and users who are listed as the additional stakeholders for the environment. If Microsoft can't
start the update for some reason, the email includes a reason to explain why the update wasn't started.
After you receive a notification, if you can't proceed with the update for some reason, you can pause it. For more
information about how to pause updates to configured sandbox and production environments, see Pause service
updates through Lifecycle Services (LCS).
For more information about One Version and Microsoft-managed service updates, see One Version service updates
FAQ.
Data task automation
2/8/2020 • 17 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Data task automation lets you easily repeat many types of data tasks and validate the outcome of each task. Data
task automation is very useful for projects that are in the implementation phase. For example, you can automate
the creation and configuration of data projects. You can also configure and trigger the execution of import/export
operations, such as the setup of demo data and golden configuration data, and other tasks that are related to data
migration. You can also create automated testing of data entities by using task outcome validation.

IMPORTANT
Data task automation isn't currently supported for on-premises environments. The user who executes data task automation
must be in the same tenant as the application environment and LCS project.

We recommend the following approach for data task automation.


1. Identify the data-related tasks that will benefit from automation.
We recommend that implementation teams review their configuration management plan and data
migration plan to identify potential data tasks for automation, and also to identify data entity test cases.
2. Define tasks.
Tasks are defined in an XML manifest. You can keep your manifest under source control as part of
configuration management in your application lifecycle management (ALM) strategy.
3. Put the data packages that are related to data task automation in the Shared asset library of Microsoft
Dynamics Lifecycle Services (LCS). You can also use a specific LCS project as you require.
Data task automation manager can consume packages from any sandbox and/or production environment
that is related to the LCS project.

IMPORTANT
The user account that runs Data task automation manager must have access to LCS and to the LCS project that is
referenced in the manifest for data packages.
Although data task automation can be run in any environment in the cloud, we strongly recommend that you not
run any import/export tasks that use integration application programming interfaces (APIs) in a production
environment. Data task automation that involves integration APIs should be used only for automated testing.

4. Run the data tasks, and then review the outcomes.


Data task automation manager provides the success or failure outcome for each task. It also provides
insights into the reason why a task failed.
IMPORTANT
Although data task automation can be run in any environments in the cloud, we recommend that you not run any
import/export tasks that use integration APIs in a production environment. Data task automation that involves
integration APIs should be used only for automated testing.

The following video is a 55-minute TechTalk that walks you through an early release of Data task automation
manager: Task automation framework.

Task manifest
A task must be defined in an XML manifest. This section describes the manifest. For guidance about how to name
and design the manifest, see the "Best practices for manifest design" section later in this topic.
Manifest root
The <TestManifest> element is the root of the manifest. All other elements are children of this element.

<?xml version='1.0' encoding='utf-8'?>


<TestManifest name='Data management demo data set up'>
<SharedSetup />
<JobDefinition ID='ImportJobDefinition_1' />
<EntitySetup ID='Generic' />
</SharedSetup>
<TestGroup />
</TestManifest>

EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT ES AT T RIB UT E DESC RIP T IO N

<TestManifest> 1..1 name The name helps to identify


the purpose of the manifest.

Shared setup
The Shared setup section defines general task parameters and behaviors for all tasks in the manifest.

EL EM EN T AT T RIB UT E
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT ES DESC RIP T IO N

<TestManifest> <SharedSetup> 1..1 - This element takes no


attributes.

Data files
<DataFile> elements define the data packages and data files that the tasks in the manifest will use. The data files
must be either in the LCS asset library of your LCS project or in the Shared asset library.

<DataFile ID='SharedSetup' name='Demo data-7.3-100-System and Shared' assetType='Data package'


lcsProjectId=''/>
<DataFile ID='FinancialsHQUS' name='Demo data-7.3-200-Financials-HQUS' assetType='Data package'
lcsProjectId=''/>
<DataFile ID='FinancialsPICH' name='Demo data-7.3-200-Financials-PICH' assetType='Data package'
lcsProjectId=''/>
<DataFile ID='FinancialsPIFB' name='Demo data-7.3-200-Financials-PIFB' assetType='Data package'
lcsProjectId=''/>
EL EM EN T AT T RIB UT E
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT ES DESC RIP T IO N

<SharedSetup> <DataFile> 1..n - -

<DataFile> - ID

<DataFile> - name Name of the asset


that represents the
data file.

<DataFile> - assetType The asset type in LCS


asset library that
stores the data file.
This is the asset type
name as shown in LCS
asset library.

<DataFile> - lcsProjectId The LCS project that


has the data file in its
asset library. If the
project ID is specified
as '' then, it indicates
the Shared asset
library.

Data project definition


The <JobDefinition> element defines the data project definition. There can be more than one job definition in a
manifest.

<JobDefinition ID='ImportJobDefinition_1'>
<Operation>Import</Operation>
<ConfigurationOnly>No</ConfigurationOnly>
<Truncate></Truncate>
<Mode>Import async</Mode>
<BatchFrequencyInMinutes>1</BatchFrequencyInMinutes>
<NumberOfTimesToRunBatch >2</NumberOfTimesToRunBatch>
<UploadFrequencyInSeconds>1</UploadFrequencyInSeconds>
<TotalNumberOfTimesToUploadFile>1</TotalNumberOfTimesToUploadFile>
<SupportedDataSourceType>Package</SupportedDataSourceType>
<ProcessMessagesInOrder>No</ProcessMessagesInOrder>
<PreventUploadWhenZeroRecords>No</PreventUploadWhenZeroRecords>
<UseCompanyFromMessage>Yes</UseCompanyFromMessage>
<LegalEntity>DAT</LegalEntity>
<PackageAPIExecute>true</PackageAPIExecute>
<PackageAPIOverwrite>false</PackageAPIOverwrite>
<PackageAPIReexecute>false</PackageAPIReexecute>
<DefinitionGroupID>TestExport</DefinitionGroupID>
<PackageName>TestExportPackage</PackageName>
</JobDefinition>

EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT E DESC RIP T IO N

<SharedSetup> <JobDefinition> 1..n ID The job definition ID


is used in the tasks to
reference the
definition to be used
for the data project.
EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT E DESC RIP T IO N

<JobDefinition> <Operation> 1..1 - The operation to be


performed is specified
by the following
values:
- Import
- Export

<Truncate> 1..1 - This is a Boolean field


with possible values
of Yes or No. This is
applicable only when
operation is set to
Import.

<Mode> 1..1 - The mode specifies


the method using
which the operation
must be performed.
The possible values
are:
- Import async
- Export async
- Recurring batch: This
uses the enqueue API.
Dequeue API is not
supported yet.
Package API supports
both export and
import.

<ConfigurationOnly> 0..1 - This is a Boolean field


with possible values
of Yes or No. This
must be set to Yes if
the task is only to
configure the data
project but not to
perform the specified
operation.

<BatchFrequencyInMi 1..1 - This specifies the


nutes> frequency in which
the batch must be
scheduled. This is
applicable only when
mode is set to
recurring batch.

<NumberOfTimesToR 1..1 - This is used to set a


unBatch> limit to how many
times the scheduled
batch should run. This
is applicable only
when mode is set to
recurring batch.
EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT E DESC RIP T IO N

<UploadFrequencyInS 1..1 - This is used to control


econds> the rate at which a file
is uploaded to the
recurring batch job
for import. This must
be used only for
automated testing of
recurring integrations
in non-production
environments. This is
applicable only when
mode is set to
recurring batch and
operation is set to
Import.

<TotalNumberOfTime 1..1 This controls the total


sToUpload> number of times the
file should be
uploaded to the
recurring batch. This
must be used only for
automated testing of
recurring integrations
in non-production
environments. This is
applicable only when
mode is set to
recurring batch and
operation is set to
Import.

<SupportedDataSour 1..1 This must be used to


eType> specify if a file is being
sent to the recurring
batch or a package.
This is only applicable
when mode is set to
'recurring batch'.

<ProcessMessagesIn 1..1 This is a Boolean field


Order> with possible values
of Yes or No. This is
applicable only when
mode is set to
recurring batch and
operation is Import.

<PreventUploadWhe 1..1 This is a Boolean field


nZeroRecords> with possible values
of Yes or No. This is
applicable only when
mode is set to
recurring batch and
operation is Export.
EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT E DESC RIP T IO N

<UseCompanyFrom 1..1 This is a Boolean field


Message> which can be set to
Yes or No. This is
applicable only when
mode is set to
recurring batch and
operation is Import.

<LegalEntity> 1..1 This is used to specify


the legal entity in
which the
import/export job
must be executed.

<PackageAPIExecute> 1..1 Refer to package API


documentation to
understand this
parameter. This is a
Boolean field which
takes 'true' or 'false'.

<PackageAPIOverwrit 1..1 Refer to package API


e> documentation to
understand this
parameter. This is a
Boolean field which
takes 'true' or 'false'.

<PackageAPIReexecut 1..1 Refer to package API


e> documentation to
understand this
parameter. This is a
Boolean field which
takes 'true' or 'false'.

<DefinitionGroupID> 1..1 Refer to package API


documentation to
understand this
parameter. This is a
string field.

<PackageName> 1..1 Refer to package API


documentation to
understand this
parameter. This is a
string field.

Entity setup
The Entity setup section defines the characteristics of an entity that a task in the manifest will use. There can be
more than one definition, one for each entity that is used by the tasks in the manifest.
<EntitySetup ID='Generic'>
<Entity name='*'>
<SourceDataFormatName>Package</SourceDataFormatName>
<ChangeTracking></ChangeTracking>
<PublishToBYOD></PublishToBYOD>
<DefaultRefreshType>Full push only</DefaultRefreshType>
<ExcelWorkSheetName></ExcelWorkSheetName>
<SelectFields>All fields</SelectFields>
<SetBasedProcessing></SetBasedProcessing>
<FailBatchOnErrorForExecutionUnit>No</FailBatchOnErrorForExecutionUnit>
<FailBatchOnErrorForLevel>No</FailBatchOnErrorForLevel>
<DisableEntity>No</DisableEntity>
<SkipStaging>Yes</SkipStaging>
<ParallelProcessing>
<Threshold></Threshold>
<TaskCount></TaskCount>
</ParallelProcessing>
<MappingDetail StagingFieldName='RoundingRulePrices' AutoGenerate='Yes' AutoDefault='No'
DefaultValue='' IgnoreBlankValues='No' TextQualifier='No' UseEnumLabel='No'/>
</Entity>
</EntitySetup>

EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT E DESC RIP T IO N

<SharedSetup> <EntitySetup> 1..n ID An identification that


will be used by tasks
to reference an entity
definition to be used.

<EntitySetup> <Entity> 1..1 name The entity element is


identified by the
entity's name.
However, to facilitate
easy manifest
definition, this
element also supports
* as a wild card which
will mean all entities
being used in a task.
This comes in very
handy when using
data packages with
hundreds of entities
in a task.

<Entity> <SourceDataFormatN 1..1 - This is the file format


ame> to be used for the
entity.

<ChangeTracking> 1..1 - This is a Boolean field


with possible values
of Yes or No. It
enables or disables
change tracking on
the entire entity.

<PublishToBYOD> 1..1 - This is a Boolean field


with possible values
of Yes or No.
EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT E DESC RIP T IO N

<DefaultRefreshType> 1..1 - This sets the default


refresh rate on the
entity. The possible
values are
Incremental push only
or Full push.

<ExcelWorkSheetNam 1..1 - This is used to specify


e> the worksheet to be
used for the entity.

<SelectFields> 1..1 - This can be used to


specify the fields to be
included in the
template for an
export operation.

<SetBasedProcessing 1..1 - This is a Boolean field


> with possible values
of Yes or No. It is used
to enable or disable
set based processing
on an entity.

<FailBatchOnErrorFor 1..1 - This is a Boolean field


ExecutionUnit> with possible values
of Yes or No. It is used
to enable or disable
failure at execution
unit level on an entity.

<FailBatchOnErrorFor 1..1 - This is a Boolean field


Level> with possible values
of Yes or No. It is used
to enable or disable
failure at execution
level on an entity.

<DisableEntity> 1..1 - This is a Boolean field


with possible values
of Yes or No. It is used
to enable or disable
an entity in a data
project.

<SkipStaging> 1..1 - This is a Boolean field


with possible values
of Yes or No. It is used
to skip staging table
for an entity during
exports.
EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT E DESC RIP T IO N

<ParallelProcessing> 1..1 - This is used to define


the parallel processing
set up for an entity.
The task will delete
these settings if
already exits at the
beginning of the task
and it will delete the
created settings at
the end of its
execution.

<ParallelProcessing> <Threshold> 1..1 - This specifies the


threshold for the
parallel processing
rule.

<TaskCount> 1..1 - This is used to specify


the number of parallel
tasks to be used for
parallel processing.

<Entity> <MappingDetail> 0..n - Allows to configure


the auto generate,
auto default and
other settings on the
mapping for an entity.

<MappingDetail> - StagingFieldName This attribute is used


to identify the entity
column for which the
settings are to be
specified.

<MappingDetail> - AutoGenerate This is a Boolean field


with possible values
of Yes or No for
enabling/disabling
auto generate option.

<MappingDetail> - AutoDefault This is a Boolean field


with possible values
of Yes or No for
enabling/disabling
auto default option.

<MappingDetail> - DefaultValue This is the default


value to be used if
auto defaulting is
enabled.

<MappingDetail> - IgnoreBlankValues This is a Boolean field


with possible values
of Yes or No for
enabling/disabling
this option.
EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT E DESC RIP T IO N

<MappingDetail> - TextQualifier This is a Boolean field


with possible values
of Yes or No for
enabling/disabling
this option.

<MappingDetail> - UseEnumLabel This is a Boolean field


with possible values
of Yes or No for
enabling/disabling
this option.

Test groups
Test groups can be used to organize related tasks in a manifest. There can be more than one test group in a
manifest.

<TestGroup name='Set up Financials'>


<TestCase Title='Import shared set up data package' ID='3933885' RepeatCount='1' TraceParser='off'
TimeOut='20'>
<DataFile RefID='SharedSetup' />
<JobDefinition RefID='ImportJobDefinition_1' />
<EntitySetup RefID='Generic' />
</TestCase>

<TestCase Title='Import financials for HQUS' ID='3933886' RepeatCount='1' TraceParser='off' TimeOut='20'>


<DataFile RefID='FinancialsHQUS' />
<JobDefinition RefID='ImportJobDefinition_1'>
<LegalEntity>HQUS</LegalEntity>
</JobDefinition>
<EntitySetup RefID='Generic' />
</TestCase>

<TestCase Title='Import financials for PICH' ID='3933887' RepeatCount='1' TraceParser='off' TimeOut='20'>


<DataFile RefID='FinancialsPICH' />
<JobDefinition RefID='ImportJobDefinition_1'>
<LegalEntity>PICH</LegalEntity>
</JobDefinition>
<EntitySetup RefID='Generic' />
</TestCase>

<TestCase Title='Import financials for PIFB' ID='3933888' RepeatCount='1' TraceParser='off' TimeOut='20'>


<DataFile RefID='FinancialsPIFB' />
<JobDefinition RefID='ImportJobDefinition_1'>
<LegalEntity>PIFB</LegalEntity>
</JobDefinition>
<EntitySetup RefID='Generic' />
</TestCase>
</TestGroup>

EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT ES DESC RIP T IO N

<TestManifest> <TestGroup> 1..n - -

<TestGroup> 1..1 Name This is the name for


the group to identify
its functional reason.
EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT ES DESC RIP T IO N

<TestGroup> <TestCase> 1..n - The task is defined in


this element. The task
can refer to the
shared set up to
inherit task
parameters and task
behavior. The task can
also override
parameters and
behavior at its level
thus making the
management of the
manifest simple.

<TestCase> - Title This is the title for the


task.

<TestCase> - ID This is the ID for the


task. This can be
alphanumeric with a
max character limit of
10.

<TestCase> - RepeatCount This is a placeholder


for a future
functionality.
However, this must be
specified with a value
of 1.

<TestCase> - TraceParser This is a placeholder


for a future
functionality.
However, this must be
specified with a value
off.

<TestCase> - Timeout This is the maximum


duration a task will be
monitored by the task
automation manager.
If the task is still
active beyond the
timeout specified, the
manager will proceed
to the next task in the
manifest.
EL EM EN T
PA REN T EL EM EN T EL EM EN T C A RDIN A L IT Y AT T RIB UT ES DESC RIP T IO N

<TestCase> <DataFile> 1..n - This element is used


to define the file or
data package to be
used by the task. This
can reference to an
already declared file
or a data package in
the shared section of
the manifest. A task
can have more than
one data file specified
for recurring batch
import scenarios only.
For other scenarios,
even if more than one
files are specified, the
first file is what will be
used by the task.

<JobDefinition> 1..1 - This element is used


to define the data
project to be used by
the task. This can
reference to an
already declared job
definition in the
shared section of the
manifest. The task can
override elements of
job definition to a
new value than what
is defined in the
shared set up.

<EntitySetup> 1..1 - This element is used


to define the entity
set up for entities
used by the task. This
can reference to an
already declared
entity set up in the
shared section of the
manifest. The task can
override elements of
entity setup to a new
value than what is
defined in the shared
set up.

Best practices for manifest design


You can define a manifest in many ways. Here are a few pointers that you should consider when you design a
manifest.
Granularity
We recommend that you determine the granularity of your manifest as a functional decision. Your team must
decide whether it wants to manage many manifests or manage changes in a single manifest.
Start with as many manifests as your team thinks you logically need. Later, when the team actually starts to run
the manifests, it might find that it uses fewer manifests than it expected, and it might want to merge them. In
this case, you can merge manifests.
Consider separation of duties. For example, you might have one manifest for the setup of demo data and
another manifest for the setup of the golden configuration for your environment. In this way, you can make sure
that team members use only the manifests that they are supposed to use.
Consider user access to LCS. For example, larger and globally distributed implementation teams might have
multiple instances of the application or multiple LCS projects.
Inheritance
The manifest schema supports inheritance of common elements that will apply to all tasks in the manifest. A task
can override a common element to define a unique behavior. The purpose of the Shared setup section is to
minimize repetition of configuration elements, so that elements are reused as much as possible. The goal is to keep
the manifest concise and clean, to improve maintenance and readability.
Source control
Manifests that must be used by all the members of an implementation team should be stored in source control in
the Application Object Tree (AOT). This approach not only provides the benefits of source control, but also enables a
process to distribute or make manifests available to all users in a consistent manner. This approach also enables
configuration management for data projects that are related to data management, if manifests are used for
configuration.
Number of job definitions and entity definitions
For most of the use cases, one job definition in a manifest should be enough, because inheritance can be used to
change the behavior at the task level. This principle also applies to entity definitions.

Validations
Data task automation manager performs validations, based on the setup of a task. If a task fails, you can quickly
determine the reason for the failure by viewing the validations after the task is completed. The level of information
that Data task automation manager provides is optimized to facilitate initial discovery. For detailed investigation,
you must look at the corresponding data project and its execution details.
The following data validations are currently supported:
Job status – This validation checks whether the job was successful.
Batch status – This validation checks whether the batch was successful.
Message status – If the test is about integrations, the message status is validated.
Truncation – If truncation is enabled, this validation checks whether truncation occurred.
Skip staging – If Skip staging is enabled on a test, this validation checks whether staging was skipped.

Example 1: Configuration management for data projects


The <ConfigurationOnly> element can be used to create configuration tasks for data projects. When
ConfigurationOnly is set to Yes, the data projects are only created but not executed. This allows for managing data
projects across environments in an automated manner.

<?xml version='1.0' encoding='utf-8'?>


<TestManifest name='Data management demo data set up'>
<SharedSetup>
<DataFile ID='SharedSetup' name='Demo data-7.3-100-System and Shared' assetType='Data package'
lcsProjectId=''/>
<DataFile ID='FinancialsHQUS' name='Demo data-7.3-200-Financials-HQUS' assetType='Data package'
lcsProjectId=''/>
<DataFile ID='FinancialsPICH' name='Demo data-7.3-200-Financials-PICH' assetType='Data package'
lcsProjectId=''/>
lcsProjectId=''/>
<DataFile ID='FinancialsPIFB' name='Demo data-7.3-200-Financials-PIFB' assetType='Data package'
lcsProjectId=''/>

<JobDefinition ID='ImportJobDefinition_1'>
<ConfigurationOnly>Yes</ConfigurationOnly>
<Operation>Import</Operation>
<Truncate>No</Truncate>
<Mode>Import async</Mode>
<BatchFrequencyInMinutes>1</BatchFrequencyInMinutes>
<NumberOfTimesToRunBatch >2</NumberOfTimesToRunBatch>
<UploadFrequencyInSeconds>1</UploadFrequencyInSeconds>
<TotalNumberOfTimesToUploadFile>1</TotalNumberOfTimesToUploadFile>
<SupportedDataSourceType>Package</SupportedDataSourceType>
<ProcessMessagesInOrder>No</ProcessMessagesInOrder>
<PreventUploadWhenZeroRecords>No</PreventUploadWhenZeroRecords>
<UseCompanyFromMessage>Yes</UseCompanyFromMessage>
<LegalEntity>DAT</LegalEntity>
</JobDefinition>

<EntitySetup ID='Generic'>
<Entity name='*'>
<SourceDataFormatName>Package</SourceDataFormatName>
<ChangeTracking>No</ChangeTracking>
<PublishToBYOD>No</PublishToBYOD>
<DefaultRefreshType>Full push only</DefaultRefreshType>
<ExcelWorkSheetName></ExcelWorkSheetName>
<SelectFields>All fields</SelectFields>
<SetBasedProcessing>No</SetBasedProcessing>
<FailBatchOnErrorForExecutionUnit>No</FailBatchOnErrorForExecutionUnit>
<FailBatchOnErrorForLevel>No</FailBatchOnErrorForLevel>
<FailBatchOnErrorForSequence>No</FailBatchOnErrorForSequence>
<ParallelProcessing>
<Threshold></Threshold>
<TaskCount></TaskCount>
</ParallelProcessing>
</Entity>
</EntitySetup>
</SharedSetup>

<TestGroup name='Set up import jobs for Financials'>


<TestCase Title='Set up import job for shared set up data package' ID='3933885' RepeatCount='1'
TraceParser='off' TimeOut='20'>
<DataFile RefID='SharedSetup' />
<JobDefinition RefID='ImportJobDefinition_1' />
<EntitySetup RefID='Generic' />
</TestCase>

<TestCase Title='Set up import job for financials HQUS' ID='3933886' RepeatCount='1' TraceParser='off'
TimeOut='20'>
<DataFile RefID='FinancialsHQUS' />
<JobDefinition RefID='ImportJobDefinition_1'>
<LegalEntity>HQUS</LegalEntity>
</JobDefinition>
<EntitySetup RefID='Generic' />
</TestCase>

<TestCase Title='Set up import job for financials PICH' ID='3933887' RepeatCount='1' TraceParser='off'
TimeOut='20'>
<DataFile RefID='FinancialsPICH' />
<JobDefinition RefID='ImportJobDefinition_1'>
<LegalEntity>PICH</LegalEntity>
</JobDefinition>
<EntitySetup RefID='Generic' />
</TestCase>

<TestCase Title='Set up import job for financials PIFB' ID='3933888' RepeatCount='1' TraceParser='off'
TimeOut='20'>
<DataFile RefID='FinancialsPIFB' />
<JobDefinition RefID='ImportJobDefinition_1'>
<LegalEntity>PIFB</LegalEntity>
</JobDefinition>
<EntitySetup RefID='Generic' />
</TestCase>
</TestGroup>
</TestManifest>

Example 2: Automated setup of demo data


The following manifest shows the setup of demo data for three legal entities when the demo data packages are
stored in the Shared asset library. The difference in this example from the previous example is the actual execution
of the data projects to set up the demo data. This is accomplished by not using the ConfigurationOnly option or
setting it to No to use it for consistency of the manifest.

<?xml version='1.0' encoding='utf-8'?>


<TestManifest name='Data management demo data set up'>
<SharedSetup>
<DataFile ID='SharedSetup' name='Demo data-7.3-100-System and Shared' assetType='Data package'
lcsProjectId=''/>
<DataFile ID='FinancialsHQUS' name='Demo data-7.3-200-Financials-HQUS' assetType='Data package'
lcsProjectId=''/>
<DataFile ID='FinancialsPICH' name='Demo data-7.3-200-Financials-PICH' assetType='Data package'
lcsProjectId=''/>
<DataFile ID='FinancialsPIFB' name='Demo data-7.3-200-Financials-PIFB' assetType='Data package'
lcsProjectId=''/>

<JobDefinition ID='ImportJobDefinition_1'>
<Operation>Import</Operation>
<Truncate></Truncate>
<Mode>Import async</Mode>
<BatchFrequencyInMinutes>1</BatchFrequencyInMinutes>
<NumberOfTimesToRunBatch >2</NumberOfTimesToRunBatch>
<UploadFrequencyInSeconds>1</UploadFrequencyInSeconds>
<TotalNumberOfTimesToUploadFile>1</TotalNumberOfTimesToUploadFile>
<SupportedDataSourceType>Package</SupportedDataSourceType>
<ProcessMessagesInOrder>No</ProcessMessagesInOrder>
<PreventUploadWhenZeroRecords>No</PreventUploadWhenZeroRecords>
<UseCompanyFromMessage>Yes</UseCompanyFromMessage>
<LegalEntity>DAT</LegalEntity>
</JobDefinition>

<EntitySetup ID='Generic'>
<Entity name='*'>
<SourceDataFormatName>Package</SourceDataFormatName>
<ChangeTracking></ChangeTracking>
<PublishToBYOD></PublishToBYOD>
<DefaultRefreshType>Full push only</DefaultRefreshType>
<ExcelWorkSheetName></ExcelWorkSheetName>
<SelectFields>All fields</SelectFields>
<SetBasedProcessing></SetBasedProcessing>
<FailBatchOnErrorForExecutionUnit>No</FailBatchOnErrorForExecutionUnit>
<FailBatchOnErrorForLevel>No</FailBatchOnErrorForLevel>
<FailBatchOnErrorForSequence>No</FailBatchOnErrorForSequence>
<ParallelProcessing>
<Threshold></Threshold>
<TaskCount></TaskCount>
</ParallelProcessing>
</Entity>
</EntitySetup>
</SharedSetup>

<TestGroup name='Set up Financials'>


<TestCase Title='Import shared set up data package' ID='3933885' RepeatCount='1' TraceParser='off'
TimeOut='20'>
<DataFile RefID='SharedSetup' />
<JobDefinition RefID='ImportJobDefinition_1' />
<EntitySetup RefID='Generic' />
</TestCase>

<TestCase Title='Import financials for HQUS' ID='3933886' RepeatCount='1' TraceParser='off'


TimeOut='20'>
<DataFile RefID='FinancialsHQUS' />
<JobDefinition RefID='ImportJobDefinition_1'>
<LegalEntity>HQUS</LegalEntity>
</JobDefinition>
<EntitySetup RefID='Generic' />
</TestCase>

<TestCase Title='Import financials for PICH' ID='3933887' RepeatCount='1' TraceParser='off'


TimeOut='20'>
<DataFile RefID='FinancialsPICH' />
<JobDefinition RefID='ImportJobDefinition_1'>
<LegalEntity>PICH</LegalEntity>
</JobDefinition>
<EntitySetup RefID='Generic' />
</TestCase>

<TestCase Title='Import financials for PIFB' ID='3933888' RepeatCount='1' TraceParser='off'


TimeOut='20'>
<DataFile RefID='FinancialsPIFB' />
<JobDefinition RefID='ImportJobDefinition_1'>
<LegalEntity>PIFB</LegalEntity>
</JobDefinition>
<EntitySetup RefID='Generic' />
</TestCase>
</TestGroup>
</TestManifest>
Delivering ISV solutions using One Version
11/18/2019 • 17 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Thanks to One Version, new updates are now automatically broadcast, downtime is minimal, and customers enjoy
the benefits of staying current with recent features and fixes without having to go through expensive upgrades.
Feature management lets customers control when new features are applied. Therefore, as an independent software
vendor (ISV) partner, you can innovate together with Microsoft to take advantage of new features without having to
handle the waiting times that come with long release cycles. When all your customers run on current versions, you
have fewer versions to maintain. You can focus instead on building quality into the solutions that you provide for
your customers.
The process of servicing current versions is also more seamless and safer than it was in earlier versions. Previously,
patching required that individual fixes be combined and merged into a customer environment.
Extensibility allows for deployment of side-by-side solutions that give customers more choices about how they
configure their solutions.
In the One Version model, customer user acceptance testing (UAT) environments and production environments are
updated every month. It's critical that updates not cause issues. However, Microsoft acknowledges that both
technical issues and functional issues may arise when environments are updated.
Technical issues include breaking changes in application programming interfaces (APIs) that customizations in
your solutions use.
Functional issues that customers experience can be caused by the untimely introduction of new features.
Microsoft will put any new functionality that might affect existing processes under feature management. In this
way, customers can control when new functionality is adopted. Therefore, they have time to validate, document,
and train their users about the new features.
Functional issues might also be unintended changes that cause functional regressions.
Prevention of technical and functional issues is difficult and requires close coordination between Microsoft and you
as an ISV partner. The Microsoft goal is that you will adopt practices that resemble Microsoft practices. This topic
explains how you and Microsoft can achieve this goal together. Over the next several months, Microsoft will release
new practices and tools to help you. This topic will be updated as the tools and practices evolve.
This topic includes the following sections:
Servicing customers
Compatibility
Runtime compatibility
Design-time compatibility
Developing new releases
Designing for extensibility
Data upgrade
Feature exposure
Branches and builds
Testing
Deploying updates
ISV solutions as part of One Version automated deployment
Should I release binaries or source code?

Servicing customers
Dynamics 365 Finance and Operations apps run on Microsoft Azure. Therefore, it's a solution that runs as a service.
Microsoft services companies 24/7, either proactively from alerts that report unusual behavior, or from support
tickets that are submitted by customers or their partners. Microsoft has a range of tools to help support the
services that are running. These tools include usage data that is collected from the services. To help safeguard
customer data, Microsoft is also careful about who can access customer systems.
When Microsoft analyzes an issue, it might determine that the issue is related to your ISV solution. Microsoft
reports this type of issue to you, so that you can follow up offline.
Companies can opt out of updates for two consecutive service updates before the next service update is applied to
their environments. Therefore, at any time, Microsoft can expect that companies will be running one of the last
three monthly updates.
When Microsoft resolves an issue that requires a code fix, it generally includes that code fix in the next monthly
update. However, very critical issues that are reported, such as production outage, might require that a fix be
provided for the version that customers are currently running.
Similar policies apply to your ISV solution, and you might also have to provide a code update. For your solution to
be binary-compatible with all your customers, it must be built on the oldest platform release that you want to
support. All new updates that Microsoft releases are intended to be binary backward-compatible. This compatibility
gives you the option of maintaining only one servicing version of your solution that is based on the oldest of the
three most recent updates. Therefore, you must maintain just one released solution,. You can then use that solution
to update all your customers, regardless of which of the three most recent updates they are running. As your
customers adopt new Microsoft updates, you can rebase your maintained solution to a newer release to remain
current with the three most recent updates.
This recommendation applies to servicing and maintaining your released solution. You will use a different approach
to develop new releases of your solution. For more information, see the Developing new releases section of this
topic.

Compatibility
Microsoft diligently tries to guarantee compatibility with existing customizations. To achieve this goal, Microsoft
uses strict practices in its engineering processes, together with tool and automation support that helps identify API
contracts that are unintentionally broken. Telemetry lets Microsoft engineers determine customizations that
reference or extend a Microsoft API.
Updates to Finance and Operations apps that are applied to customer environments are intended to be functionally
compatible and binary-compatible with existing customizations. This compatibility covers not only APIs, but also
functionality and the user experience. Customers must explicitly opt in to all new experiences.
Any deprecation or breaking change in binary or functional compatibility will be announced 12 months in advance.
Therefore, you will have enough time to align your customizations with an alternative design. You must pay
attention to the monthly updates to Microsoft documentation, and you must review the APIs that are marked as
obsolete (deprecated) or internal. In this way, you will be able to manage changes in a timely manner.
The following sections define and describe the aspects of backward compatibility: runtime compatibility and
design-time compatibility.
Runtime compatibility
All new updates are intended to be runtime backward-compatible. This compatibility covers both binary
compatibility and functional compatibility. Runtime compatibility means that customizations that exist in
production and sandbox environments will continue to work after new updates are deployed in those
environments. These updates include both standard platform updates and application updates.
Runtime compatibility also means that changes to the platform will be backward-compatible with customizations
that were compiled on an earlier platform. These changes include changes to the compiler.
Binary compatibility is backwards only. You can compile a customization on an older application and platform, and
deploy it to a customer environment that has been updated to a later version. You cannot deploy code compiled on
a later version than the one running on the environment you deploy to.
Design-time compatibility
Design-time backward compatibility means that developers can apply updates to their development environments
and successfully compile their code without having to make any changes.
You must be aware of how APIs in your solution are used in your customers' implementations, and how you can
use these APIs without causing breaking changes. As part of this effort, you must pay careful attention to what is
changed and rely on engineering best practices. For examples of changes that you should avoid, see Breaking
changes.
You should try to meet a bar that resembles the bar that Microsoft sets. In that way, both you and Microsoft can
help avoid creating regressions.
All changes are intended to be binary compatibility, and Microsoft also aims for design-time compatibility. However,
there is one category of required changes that is not design time–compatible but remains binary-compatible. After
an update is applied, new errors or warnings might occur when your code is compiled. Here are some examples of
these changes:
Microsoft makes an enumeration extensible.
Microsoft marks an API as obsolete or internal.
Microsoft introduces a new compiler error to help avoid unsafe coding practices.
All these changes might require work on your solution.
Design-time breaking changes that are binary-compatible don't require a 12-month deprecation notice.

Developing new releases


Together, One Version and the fact that the Finance and Operations apps run as a service provides a great vehicle
for collecting feedback. Feedback is useful, because it helps Microsoft decide which new features it should add to
upcoming updates. Historically, the Microsoft approach has been to release major releases that include many new
features. However, the new model encourages a different approach. Therefore, Microsoft has moved to a series of
continuous updates that gradually build on the available capabilities of the system. In many cases, one update
contains an initial small feature that Microsoft then enriches in later updates. In some cases, Microsoft must provide
staging for new features, and must use feature exposure to hide the new features or control modifications to them.
We recommend that you follow a similar approach for your ISV solutions. You will benefit from quicker integration
and extension of new standard features.
As the following illustration shows, the frequency of your new releases can be independent of Microsoft releases.
You should consider adopting a strategy for source code branching, as described in the Branches and builds section
of this topic.

What is essential is the quality of every update that is released. Although testing helps guarantee quality, quality
must also be built in during the design and implementation phases. In the One Version model, there are some new
dimensions to consider, as described in the following sections.
Designing for extensibility
To design your solution for extensibility, you must consider now only how you will customize by extending the
standard application, but also how you will enable customization of your ISV solutions by your customers and
partners.
Make sure that customizations are additive instead of intrusive, and follow the guidance on the Extensibility home
page.
Don't be too creative about the way that you build your customization. Otherwise, you might extend an API that is
questionable and increase the risk that later updates will break your solution. Instead, log an extensibility request,
and ask that Microsoft create a more explicit API that is more resilient to breakage.
Design solutions that are extensible. For inspiration, see Write extensible code.
Design for backward compatibility to avoid breaking customer implementations. A good strategy is to be explicit
about what you offer for hooking and wrapping extension code. The way that you decorate your methods gives you
lots of control over which methods you enable extensions for. For more information, see Attributes that make
methods extensible.
Data upgrade
The types of data upgrade jobs that existed in earlier versions are no longer supported. This change was made
because Microsoft wants to provide minimum downtime while a production environment is updated.
Database synchronization is still run during upgrade, and it supports basic operations such as adding new tables,
field, and indexes.
To prevent downtime, Microsoft is introducing new ways of driving data upgrade that are run asynchronously. For
example, data upgrade will sometimes be triggered when a feature is turned on through a feature flag. This new
approach for data upgrade differs significantly from earlier approaches and will become available in upcoming
updates. Documentation resources will also be available.
Feature exposure
In the One Version model, updates are managed by Microsoft and pushed to customer environments. Pushed
updates should not require that customers adjust to functional changes, or that they train their users about new or
changed features every month. Pushed updates also should not cause customers to delay updates to their
environment.
Feature management is a new concept that puts customers in control of deciding when new or changed features
are used. Customers can review, validate, and document new or changed features before they are adopted. They
can also train users before new or changed processes are adopted, to reduce the impact on daily operations.
Feature management will be released in upcoming monthly updates.
You should consider using feature management with your ISV solution to let customers control when new features
are adopted.

Branches and builds


As an ISV, you should plan on a minimum of two source code branches: a servicing branch and a development
branch.
Servicing branch
The servicing branch is used to produce bug fixes for your ISV solution. As the ISV, you specify the frequency of
releases from the branch and distribution of the releases. The expectation is that these releases from the servicing
branch will be binary cumulative releases.
The base Microsoft version that you use to build your ISV solution should match the oldest version that customers
use with the solution. In the One Version model, that version starts with version 8.1 and is a maximum of three
months old.
Development branch
The development branch is used to develop new capabilities for the ISV solution. As the ISV, you determine the
frequency of releases from the development branch. You don't have to synchronize your releases with the monthly
Microsoft releases. The best approach might be to decouple your release schedule from the Microsoft release
schedule and deliver releases less often. A quarterly or biannual cadence is a good starting point.
The base Microsoft version in the development branch should be either the latest released version that is available
or the released version that you plan to use for servicing when your new release goes out. The goals are that you
innovate together with Microsoft by staying as current as is feasible, and that your development model allows for
uptake of recent feature work.

Testing
Microsoft has several checks and balances in its development process to help guarantee functional and binary
compatibility. ISV solutions must be validated with each Microsoft release to help guarantee this compatibility. The
expectation is that you will do this validation during the Partner Early Access Program (PEAP) phase of each release.
It's very important that you provide quick turnaround for feedback, so that you will have time to fix any issues
before the monthly updates are deployed in customer environments.
Test automation is important for quick validation of new updates. Microsoft plans to release the test framework and
libraries to support you as you build your test automation.
Microsoft has an extensive suite of tests that support our validation. The expectation is that you, as an ISV, will
create your own suites of automated tests.
In addition to the SysTest automation framework that is aimed at developers, the Regression Suite Automation Tool
(RSAT) enables automation of business processes without requiring that code be written. Functional users can use
the RSAT to record their critical tests and automate part of their UAT. You can also use the RSAT as you start to build
your test automation.
Recently, Microsoft released the Acceptance test library resources and accompanying libraries. This framework is
aimed at developers and lets them build tests that are more comprehensive than unit tests. The libraries that
accompany the framework help make it a seamless way to build suites of tests.
Currently released products – Testing binary and functional compatibility
The currently released product that is maintained in the servicing branch should first be tested for binary and
functional compatibility. Your suite of automated developer tests, automated functional tests, and manual tests for
your ISV solution should be run on an environment that has the new version from Microsoft and your existing ISV
solution. Because this test run is testing for binary and functional compatibility, the ISV solution should not be
recompiled.
If the testing is successful, this step will validate that a customer installation of the current version of your ISV
solution won't have to be updated when Microsoft broadcasts the new release to the customer.
If the testing isn't successful, you, as the ISV, must immediately notify Microsoft through the PEAP communication
process. This process uses Yammer and an issue notification process. The issue will require either a fix from
Microsoft or a fix in your ISV solution. A fix in your solution might, in turn, require that customers be updated from
the servicing branch. In both cases, Microsoft must know about the issue, so that it can become more proactive in
its processes for future releases.
Currently released products – Testing design-time compatibility
Next, the currently released product that is maintained in the servicing branch should be tested for design-time
compatibility. To do this testing, you should compile the solution against a deployment of the new Microsoft
release. Although the goal of Microsoft is to minimize design-time compatibility issues, they might occur in some
situations. One example is when Microsoft makes an enumeration extensible, and the solution uses it in a manner
that assumes an underlying integer representation (for example, it uses the enumeration value in a logical
comparison or mathematical function). Although the code will continue to work in a customer deployment because
the underlying values are maintained, a compiler error is generated and addressed in future releases. Another
example of a design-time compatibility issue is when Microsoft introduces a new compiler error to protect against
unsafe coding patterns. To learn about more categories of design-time compatibility issues, see Breaking changes.
You should run your suite of automated developer tests, automated functional tests, and manual tests on an
environment that has the new version from Microsoft and your compiled ISV solution.
If the testing is successful, this step will validate that your ISV solution won't have to be updated even if source code
is supplied to the customer and the customer recompiles the ISV solution.
If the testing isn't successful, and the issue isn't one of the categories that are described in Breaking changes, you, as
the ISV, must immediately notify Microsoft through the PEAP communication process. This process uses Yammer
and an issue notification process. The issue will require either a fix from Microsoft or a fix in your ISV solution. A fix
in your solution might, it turn, require that customers be updated from the servicing branch. In both cases,
Microsoft must know about the issue, so that it can become more proactive in its processes for future releases.
Currently released products – Updating the base build
As Microsoft updates your customers to new releases, you should periodically update the base build, so that it
matches the oldest version that is used by customers who run your ISV solution.
Solutions that are in development
You validate your new solution development on either the latest released version or the released version that you
plan for to use for servicing when your new release goes out. However, in both cases, consider doing validation on
the most current version. This validation will help with early discovery of issues or uptake work that you must do.
If an unexpected break occurs, then you, as the ISV, must immediately notify Microsoft through the PEAP
communication process. This process uses Yammer and an issue notification process.

Deploying updates
For Microsoft standard platform and application updates, One Version servicing includes a process for automated
updates of customer environments. However, this automation isn't currently available for ISV solutions. For more
information, see ISV's as part of One Version service updates.
ISV solutions are manually updated, and you control your release cadence. The binary backward compatibility
allows for safe updates of the standard platform and application.
The update process includes database synchronization (for example, the addition of new fields and indexes).
ISV solutions as part of One Version automated deployment
Although Microsoft doesn't currently plan to release ISV solutions as part of the One Version automated
deployment process, this option might become available at some point. However, Microsoft must first align
engineering processes to make this option feasible.
Here are some areas where alignment will be required:
Feature management – The user must be able to control when a new feature is turned on.
Backward compatibility and compliance – Compliance with API customization usage is required.
Feature deprecation – Advanced notice about deprecation of features or APIs must be provided.
Test automation suite
Testing during the preview phase
ISV solution sign-off and upload
Automated deployment scripts
Zero downtime – Deployment of updates must be instantaneous.
Data migration without downtime
Suppor t for on-call duty, for ser vicing of critical production issues

Should I release binaries or source code?


Binary compatibility is supported, provided that you don't recompile. We recommend that your ISV solution not be
compiled in customer environments. Instead, you should deploy precompiled binaries that you've prepared and
validated. Your solution binaries can then be created from your servicing branch, based on an earlier version, when
this approach is practical.
If an implementation partner or customer compiles your solution in an updated environment, new warnings and
errors might occur, as was mentioned in the Design-time compatibility section of this topic. Therefore, we
recommend that implementation partners not compile your solution. However, this recommendation doesn't mean
that you shouldn't share your source code to help support debugging, for example. You should just consider taking
steps to avoid compilation of your code, so that implementation partners aren't exposed to design-time issues.
Create and automate user acceptance tests
4/9/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can use Task recorder and Business process modeler (BPM) to create user acceptance test libraries. Task
recorder is a powerful tool to record test cases and organize them by business process using BPM. As a Microsoft
partner you can use BPM to distribute test libraries to your customers via LCS and LCS solutions. If you are a
customer, use BPM to author and distribute test libraries across different projects and team.
Because BPM can be synchronized with Azure DevOps (formerly known as Visual Studio Team Services), you can
automatically create test cases (including test steps) in your Azure DevOps project. Azure DevOps can then serve
as your test configuration and test management tool where you can create targeted test plans and test suites,
manage the execution of tests and investigate results.
This topic walks through the process of creating and executing acceptance test suites to be used for manual or
automated testing.

Create a Scenario Acceptance Testing BPM library


BPM is a great LCS tool to describe a hierarchy of business processes and user tasks. LCS also allows Microsoft
partners and customers to author and distribute BPM libraries across LCS projects via the Asset library. This
section describes how to take advantage of BPM to define your acceptance test library.
Create a BPM library
There are several ways to create a Business process modeler (BPM) library. For more information about how to
create libraries in BPM, see Create, edit, and browse Business process modeler (BPM) libraries.
For illustration purposes, this topic uses a library that contains common business processes, such as create an
expense report and approve order requests. The library was created by using the Excel import functionality.

Record test cases and save to BPM


After you have created a BPM library, you'll need to use Task recorder to create your test cases and then upload the
cases to BPM. There are several ways to do this.
If you're using a BPM library that already has all of the necessary task recordings (test cases) attached, you can
skip this step. Otherwise, follow the instructions below to create new task recordings.
Create and save a new task recording
1. Open the client and sign in.
2. Select the company that you want to use while recording.
3. Go to Settings > Task recorder .

4. Click Create a new recording .


5. Enter a name for the recording, and then click Star t . Recording begins the moment that you click Star t .
6. When the recording is complete, in the Task recorder pane, click Stop .
7. To save the task recording to an attached BPM, click Save to Lifecycle Ser vices .

8. Select the library that you want to save the recording to, and then click Save . Otherwise, select Save to
Disk and follow the steps in the next section, "Upload an AXTR file to BPM."

NOTE
To enable the effective execution of your tests using automation tools, make sure all of your task recordings start on the
main dashboard of your application. For end-to-end processes that are performed by more than one user, we recommend
that you divide your task recordings into user-specific tasks. This simplifies the maintenance of test cases and allows you to
execute test cases in the context of security roles, which is a best a practice.

Upload an AXTR file to BPM


If you have saved your recordings (AXTR files) to disk, follow these steps to upload them to BPM.
1. In Lifecycle Services (LCS), in your project, on the Business process libraries page, select the library to
upload the task recording to.
2. Click Author and edit and in the lines, locate and select the process to upload the task recording to.
3. In the right pane, click Upload .

4. Click Browse to find and select the file to upload, and then click Upload .

Save an existing task recording to BPM


1. To attach an existing task recording, sign in to the client.
2. Go to Settings > Task recorder .
3. Select Edit Task Recording and attach the file by either saving directly to LCS or downloading the AXTR and
then uploading to BPM.
Guidelines for recording test cases
Follow these guidelines when authoring and recording your test cases, especially if you are planning to automate
test execution. The process and tools described in this article apply to business process acceptance tests. They are
not meant to replace component and unit testing that is typically owned by developers.
Author a limited number of test cases that, when combined, cover complete end-to-end processes.
Focus on business processes that have been customized.
An individual test case (recording) should cover one or two business tasks only, typically executed by one
person. This simplifies task recording maintenance. Do not combine a complete end-to-end business process
such as "Procure to Pay" or "Order to Cash" into one large task recording. For example, instead of having RFQ >
Purchase Order > Product Receipt > Vendor Invoice > Vendor Payment as one test case, divide the process into
three or four test cases. You will have the opportunity to combine these tests into an ordered test suite later.
A test case should have at least one validation. Try to validate critical fields that cover the impact of other fields.
For example: Validation of totals on sales or purchase orders cover the unit price/quantity/discount/tax ...etc.
Avoid printing a report in a test case. If a test case needs to print a report, it should be selected on screen.
80+% of test cases should be of transactions or source documents. Master data should be limited to up to 20%
of test cases only.

Synchronize and configure your test plan in Azure DevOps


An acceptance test library is your starting point. It typically contains all test cases (task recordings) of a particular
application organized by business process. During a particular test pass, you usually do not need to execute all test
cases. What test cases you select depends on the phase of your implementation or the nature of the update you
are planning to apply to your production environment. Azure DevOps enables you to organize your test cases in
test plans and test suites. A test plan contains one or more test suites (A subset of your test library); test cases can
belong to more than one test suite.
Once you have selected your acceptance testing BPM library, synchronize it with Azure DevOps and create your
test plan and test suites.
Sync with Azure DevOps
Synchronize your BPM library with your Azure DevOps project. For more information, see Synchronize BPM
libraries with Azure DevOps.
After configuration is complete, synchronize the BPM library with a Azure DevOps project.
1. On the Business process libraries page, on the tile for the library that you want to synchronize, select the
ellipsis button (…), and then select Azure DevOps sync .

You can also start Azure DevOps synchronization from the toolbar in a BPM library. Select the ellipsis
button (…), and then select Azure DevOps sync .

2. After Azure DevOps synchronization is complete, select the ellipsis button (…), and then select Sync test
cases .

3. When this step is complete, your task recordings will become test cases in Azure DevOps and a link will
appear under the Requirements tab.

In addition to the test steps, the task recording XML file is attached to the Azure DevOps test case. This file will be
needed if you want to automate test execution.
Create a test suite in Azure DevOps
Next, you will need to create a test plan and test suite in Azure DevOps. This will allow you to execute an ordered
suite of test cases and easily manage, investigate, and track the results.
1. Sign in to Azure DevOps and select the project and test plan that you want to test in.
2. On the toolbar, select Test > Test Plans .
3. In the left pane, select + , and then select Static suite .
4. Enter a name for the suite.
5. Click Add existing and query the tag LCS:Test Cases .
6. Click Run > Add test cases .
7. Select the test case to view details and the attached XML file.

NOTE
This example shows how to create one comprehensive acceptance test suite with all test cases added. Instead, you should
create various test suites under the same test plan and then use custom queries to add specific test cases to a test suite. A
test case can belong to more than one test suite.

Execute your tests


Run manual test cases
After you have a test suite, you are ready to use it for regression testing after updates have been made to your
application in a sandbox or test environment. You can run the test cases in your test suite manually or play the task
recordings that are part of the test suite and use Azure DevOps to mark the test cases as passed or failed.
Azure DevOps also provides a tool, Test Runner , to manage manual test case execution. For more information
about using Test Runner, see Run manual tests.
We recommend that you take advantage of Azure DevOps as it provides a rich set of management features not
only for testing, but result management and mitigation.
Run automated test cases
The platform for Finance and Operations provides developers with tools to author test cases based on task
recordings and use Azure DevOps to manage the automated execution of these test cases.
Developers can use the build and test automation capabilities of build and test environments. For details, see the
Continuous delivery home page.
Functional power users can automate the execution of their test cases using the Regression suite automation
tool . For more information, download the tool and read the Regression suite automation tool.
To learn more about using the Regression suite automation tool, see the following:
PART 1: Regression Suite Automation Tool -- Background & Setup
PART 2: Regression Suite Automation Tool -- Testing Lifecycle Demo
Regression suite automation tool
For a hands-on lab experience, see Use the Regression suite automation tool tutorial.
Investigate test runs
Once an automated run is complete, on the Azure DevOps toolbar, select Test > Runs (or Test Plans > Runs ) to
investigate your test run. Select the desired test run to investigate test case failures and errors. You can also go to
your test suite in Azure DevOps to see the latest results associated with your test cases. For more information on
testing and test management in Azure DevOps, see the Azure DevOps documentation.
Dynamics 365 Commerce preview environment
overview
2/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic gives an overview of the Microsoft Dynamics 365 Commerce preview environment.

Overview
The Commerce preview environment is an optional end-to-end preview environment of Dynamics 365 Commerce
that lets potential customers try out the Commerce product before its general release to the public.
Aside from some minor limitations that don't affect features or functionality, the Commerce preview environment
provides the complete Commerce experience, and can be used by customers and implementation partners to
evaluate the product, provide feedback, and do fit/gap analysis.

Limitations of the Commerce preview environment


Although the Commerce preview environment provides the full set of Commerce features and functionality, there
are some minor limitations:
Although the Commerce preview environment itself has no geographical limitations, components of the
environment, such as the Retail Cloud Scale Unit (RCSU) and e-Commerce applications, can be provisioned only
in the United States.
Use of the Commerce preview environment is limited to 30 days from the date when e-Commerce is
provisioned.
The Commerce preview environment can be successfully deployed and initialized only in an environment that
uses the demo topology, where all components of an environment are deployed in a single virtual machine
(VM). The main limitation of this OneBox VM topology is the number of concurrent users that the preview
environment can support.
The Commerce preview environment can be evaluated only until the general availability (GA) of the Commerce
product. New demo environments will be available after GA.

Get started
To provision the Commerce preview environment, see Provision a Commerce preview environment.

Additional resources
Provision a Dynamics 365 Commerce preview environment
Configure a Dynamics 365 Commerce preview environment
Configure optional features for a Dynamics 365 Commerce preview environment
Dynamics 365 Commerce preview environment FAQ
Provision a Dynamics 365 Commerce preview
environment
4/9/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to provision a Dynamics 365 Commerce preview environment.
Before you begin, we recommend that you take a quick scan through this topic to get an idea of what the process
requires.

NOTE
If you haven't yet been granted access to the Dynamics 365 Commerce preview, you can request preview access from the
Dynamics 365 Commerce website.

Overview
To successfully provision your Commerce preview environment, you must create a project that has a specific
product name and type. The environment and commerce scale unit (CSU) also have some specific parameters that
you must use when you provision e-Commerce later. The instructions in this topic describe all the steps required
to complete provisioning and the parameters that you must use.
After you successfully provision your Commerce preview environment, you must complete a few post-
provisioning steps to prepare it. Some steps are optional, depending on the aspects of the system that you want to
evaluate. You can always complete the optional steps later.
For information about how to configure your Commerce preview environment after you provision it, see
Configure a Commerce preview environment. For information about how to configure optional features for your
Commerce preview environment, see Configure optional features for a Commerce preview environment.
If you have any questions about the provisioning steps, or if you encounter any issues, let Microsoft know in the
Microsoft Dynamics 365 Commerce Preview Yammer group.

Prerequisites
The following prerequisites must be in place before you can provision your Commerce preview environment:
You have access to the Microsoft Dynamics Lifecycle Services (LCS) portal.
You are an existing Microsoft Dynamics 365 partner or customer and are able to create a Dynamics 365
Commerce project.
You've been accepted into the Dynamics 365 Commerce Preview program.
You have the required permissions to create a project for Migrate, create solutions, and learn .
You're a member of the Environment manager or Project owner role in the project where you will
provision the environment.
You have admin access to your Microsoft Azure subscription, or you're in contact with a subscription admin
who can complete the two steps that require admin permissions on your behalf.
You have your Azure Active Directory (Azure AD) tenant ID available.
You've created an Azure AD security group that can be used as an e-Commerce system admin group, and you
have its ID available.
You've created an Azure AD security group that can be used as a Ratings and Reviews moderator group, and
you have its ID available. (This security group can be the same as the e-Commerce system admin group.)

Provision your Commerce preview environment


These procedures explain how to provision a Commerce preview environment. After you successfully complete
them, the Commerce preview environment will be ready for configuration. All the activities that are described here
occur in the LCS portal.

IMPORTANT
Preview access is tied to the LCS account and organization that you specified in your Commerce preview application. You
must use the same account to provision the Commerce preview environment. If you need to use a different LCS account or
tenant for the Commerce preview environment, you must provide those details to Microsoft. For contact information, see
the Commerce preview environment support section later in this topic.

Confirm that preview features are available and turned on in LCS


To confirm that preview features are available and turned on in LCS, follow these steps.
1. Sign in to the LCS portal by using the same LCS account that you used to request access to the preview.
2. On the LCS home page, scroll all the way to the right, and select the Preview feature management tile.

3. Scroll down to Private preview features , and confirm that the following features are available and turned
on:
e-Commerce Evaluation
Commerce Preview Program Environments
4. If those features don't appear in the list, contact Microsoft, and provide your work email address, LCS
account, and tenant details. For contact information, see the Commerce preview environment support
section.
Create a new project
To create a new project in LCS, follow these steps.
1. On the LCS home page, select the plus sign (+ ) to create a project.
2. In the right pane, follow one of these steps:
If you're a partner, select Migrate, create solutions, and learn .
If you're a customer, select Prospective presales .
3. Enter a name, description, and industry.
4. In the Product name field, select Dynamics 365 Retail .
5. In the Product version field, select Dynamics 365 Retail .
6. In the Methodology field, select Dynamics Retail implementation methodology .
7. Optional: You can import roles and users from an existing project.
8. Select Create . The project view appears.
Add the Azure Connector
To add the Azure Connector to your LCS project, follow these steps.
1. Follow one of these steps:
If you're a partner, select the Project settings tile on the far right.
If you're a customer, select Project settings on the top menu.
2. Select Azure connectors .
3. Select Add to add the Azure Connector.
4. Enter a name.
5. Enter your Azure subscription ID.
6. Turn on the Configure to use Azure Resource Manager (ARM) option.
7. Verify that the Azure subscription AAD Tenant Domain (or ID) value is correct. Consult your Azure
subscription admin as required.
8. Select Next .
9. Follow the instructions on the page to grant the required applications access to your subscription. Consult
your Azure subscription admin as required.
a. Sign in to the Azure portal.
b. Make sure that the correct directory is selected, and then, on the menu on the left, select Subscriptions .
c. Find the correct subscription in the list, and select it. Use the search functionality as required.
d. On the menu, select Access control (IAM) .
e. On the right, under Add a role assignment , select Add . The Add role assignment pane appears.
f. In the Role field, select Contributor .
g. In the Assign access to field, leave the default value, Azure AD user, group, or ser vice principal .
h. Under Select , enter b96b7e94-b82e-4e71-99a0-cf7fb188acea .
i. Select Dynamics Deployment Ser vices [wsfed-enabled] in the list.
j. Select Save .
10. Select Next .
11. Follow the instructions on the page to grant the required applications access to your subscription. Consult
your Azure subscription admin as required.
12. Select Next .
13. In the Azure region field, select East US , East US 2 , West US , or West US 2 .
14. Select Connect . Your Azure Connector should appear in the list.
Import the Commerce Preview Demo Base Extension
To import the Commerce Preview Demo Base Extension into your project, follow these steps.
1. Open the home page for your project by selecting the project name at the top.
2. Follow one of these steps:
If you're a partner, select the Asset librar y tile on the far right.
If you're a customer, select Asset librar y on the top menu.
3. In the list on the left, select Software deployable package .
3. In the list on the left, select Software deployable package .
4. Select Impor t .
5. Under Shared asset librar y , select Commerce Preview Demo Base Extension in the list of assets.
6. Select Pick . You're returned to the Asset library, and you should see the extension in the list.
The following illustration shows the actions that must be taken on the LCS Asset librar y page.

Deploy the environment


To deploy the environment, follow these steps.

NOTE
You might not have to complete steps 6, 7, and/or 8, because pages that have a single option are skipped. When you're in
the Environment parameters view, confirm that the text Dynamics 365 Commerce - Demo (10.0. x with Platform
update xx) appears directly above the Environment name field. For details, see the illustration that appears after step 8.

1. On the top menu, select Cloud-hosted environments .


2. Select Add to add an environment.
3. In the Application version field, select the most current version. If you have a specific need to select an
application version other than the most current version, do not select a version prior to 10.0.8 .
4. In the Platform version field, use the platform version that is automatically chosen for the application
version you selected.
5. Select Next .
6. Select Demo as the environment topology.

7. Select Dynamics 365 Commerce - Demo as the environment topology. If you configured a single Azure
Connector earlier, it will be used for this environment. If you configured multiple Azure Connectors, you can
select which connector to use: East US , East US 2 , West US , or West US 2 . (For the best end-to-end
performance, we recommend that you select West US 2 .)

8. On the Deploy environment page, enter an environment name. Leave the advanced settings as they are.
9. Adjust the VM size as required. (We recommend VM stock keeping unit [SKU] D13 v2 .)
10. Review the pricing and licensing terms, and then select the check box to indicate that you agree to them.
11. Select Next .
12. On the deployment confirmation page, verify that the details are correct, and then select Deploy . You're
returned to the Cloud-hosted environments view, and your environment should appear in the list.
Your requested environment will appear as queued and then deploying. The environment workflows will
take some time to be completed. Therefore, check back after approximately six to nine hours.
13. Before you continue, make sure that the status of your environment is Deployed .
Initialize the commerce scale unit (CSU )
To initialize CSU, follow these steps.
1. In the Cloud-hosted environments view, select your environment in the list.
2. In the environment view on the right, select Full details . The environment details view appears.
3. Under Environment features , select Manage .
4. On the Commerce tab, select Initialize . The CSU initialization parameters view appears.
5. In the Region field, select East US , East US 2 , West US , or West US 2 .
6. In the Version field, select Specify a version in the list, and then specify 9.18.20014.4 in the field that
appears. Be sure to specify the exact version that is indicated here. Otherwise, you will have to update RCSU to
the correct version later.
7. Turn on the Apply extension option.
8. In the list of extensions, select Commerce Preview Demo Base Extension .
9. Select Initialize .
10. On the deployment confirmation page, verify that the details are correct, and then select Yes . The Commerce
management view displays again, where the Commerce tab is selected. Your CSU has been queued for
provisioning.
11. Before you continue, make sure that the status of your CSU is Success . Initialization takes approximately two
to five hours.
Initialize e -Commerce
To initialize e-Commerce, follow these steps.
1. On the e-Commerce tab, review the preview consent, and then select Setup .
2. In the e-Commerce tenant name field, enter a name. However, be aware that this name will appear in
some of the URLs that point to your e-Commerce instance.
3. In the Commerce scale unit name field, select your CSU in the list. (The list should have only one option.)
The e-Commerce geography field is set automatically, and the value can't be changed.
4. Select Next to continue.
5. In the Suppor ted host names field, enter any valid domain, such as www.fabrikam.com .
6. In the AAD security group for system admin field, enter the first few letters of the name of the security
group that you want to use. Select the magnifying class icon to display the search results. Select the correct
security group from the list.
7. In the AAD security group for ratings and review moderator field, enter the first few letters of the
name of the security group that you want to use. Select the magnifying class icon to display the search
results. Select the correct security group from the list.
8. Leave the Enable ratings and review ser vice option turned on.
9. Select Initialize . The Commerce management view displays again, where the e-Commerce tab is
selected. E-Commerce initialization has started.
10. Before you continue, wait until the status of e-Commerce initialization is Initialization successful .
11. Under Links in the lower right, make a note of the URLs for the following links:
e-Commerce site – The link to the root of your e-Commerce site.
e-Commerce site management tool – The link to the site management tool.

Commerce preview environment support


If you experience issues while you're completing the provisioning steps, visit the Microsoft Dynamics 365
Commerce Preview Yammer group for help.

Next steps
To continue the process of provisioning and configuring your Commerce preview environment, see Configure a
Commerce preview environment.
Additional resources
Dynamics 365 Commerce preview environment overview
Configure a Dynamics 365 Commerce preview environment
Configure optional features for a Dynamics 365 Commerce preview environment
Dynamics 365 Commerce preview environment FAQ
Microsoft Lifecycle Services (LCS)
Retail Cloud Scale Unit (RCSU)
Microsoft Azure portal
Dynamics 365 Commerce website
Configure a Dynamics 365 Commerce preview
environment
2/13/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to configure a Microsoft Dynamics 365 Commerce preview environment after it's
provisioned.

Overview
Complete the procedures in this topic only after your Commerce preview environment has been provisioned. For
information about how to provision your Commerce preview environment, see Provision a Commerce preview
environment.
After your Commerce preview environment has been provisioned end to end, additional post-provisioning
configuration steps must be completed before you can start to evaluate the environment. To complete these steps,
you must use Microsoft Dynamics Lifecycle Services (LCS) and Dynamics 365 Commerce.

Before you start


1. Sign in to the LCS portal.
2. Go to your project.
3. On the top menu, select Cloud-hosted environments .
4. Select your environment in the list.
5. In the environment information on the right, select Full details .
6. Select Login to open a menu, and then select Log on to environment .
7. Make sure that the USRT legal entity is selected in the upper-right corner.

Configure the point of sale in LCS


Associate a worker with your identity
To associate a worker with your identity in LCS, follow these steps.
1. Use the menu on the left to go to Modules > Retail and commerce > Employees > Workers .
2. In the list, find and select the following record: 000713 - Andrew Collette .
3. On the Action Pane, select Retail .
4. Select Associate existing identity .
5. In the Email field to the right of Search using email , enter your email address.
6. Select Search .
7. Select the record that has your name.
8. Select OK .
9. Select Save .
Activate Cloud POS
To activate Cloud POS in LCS, follow these steps.
1. On the top menu, select Cloud-hosted environments .
2. Select your environment in the list.
3. In the environment information on the right, select Full details .
4. Select Login to open a menu, and then select Log on to Cloud Point of Sale to open the point of sale (POS).
5. Select Next .
6. Sign in by using your Microsoft Azure Active Directory (Azure AD) account.
7. Under Store name , select San Francisco .
8. Select Next .
9. Under Register and device , select SANFRAN-1 .
10. Select Activate . You're signed out and taken to the POS sign-in page.
11. You can now sign in to the Cloud POS experience by using operator ID 000713 and password 123 .

Set up your site in Commerce


To start to set up your preview site in Commerce, follow these steps.
1. Sign in to the site management tool by using the URL that you made a note of when you initialized e-
Commerce during provisioning (see Initialize e-Commerce).
2. Select the Fabrikam site to open the site setup dialog box.
3. Select the domain that you entered when you initialized e-Commerce.
4. Select Fabrikam extended online store as the default channel. (Make sure that you select the extended
online store.)
5. Select en-us as the default language.
6. Leave the value of the Path field as it is.
7. Select OK . The list of pages on the site appears.

Enable jobs
To enable jobs in Commerce, follow these steps.
1. Sign in to the environment (HQ).
2. Use the menu on the left to go to Retail and commerce > Inquiries and repor ts > Batch jobs .
The remaining steps of this procedure must be completed for each of the following jobs:
Process retail order email notification
Product availability
P-0001
Synchronize orders job
3. Use the Quick Filter to search for the job by name.
4. If the status of the job is Withhold , follow these steps:
a. Select the record.
b. On the Action Pane, on Batch job tab, select Change status .
c. Select Waiting , and then select OK .
Run full data synchronization
To run full data synchronization in Commerce, follow these steps.
1. Use the menu on the left to go to Modules > Retail and commerce > Headquar ters setup > Retail
scheduler > Channel database .
2. In the list on the left, the Default channel is selected. Select the other available channel. This channel is named
scXXXXXXXXX .
3. On the Action Pane, select Full data sync .
4. Enter 9999 as the distribution schedule.
5. Select OK .
6. Select OK .
Test credit card information to do test purchases
To perform test transactions on the site, you can use the following test credit card information:
Card number : 4111-1111-1111-1111
Expiration date: 10/20
Card verification value (CVV) code: 737

IMPORTANT
Never, under any circumstances, try to use actual credit card information on the test site.

Next steps
After the provisioning and configuration steps are completed, you're ready to evaluate your preview environment.
Use the URL of the Commerce site management tool to go to the authoring experience. Use the URL of the
Commerce site to go to the retail customer site experience.
To configure optional features for your Commerce preview environment, see Configure optional features for a
Commerce preview environment.

Additional resources
Dynamics 365 Commerce preview environment overview
Provision a Dynamics 365 Commerce preview environment
Configure optional features for a Dynamics 365 Commerce preview environment
Dynamics 365 Commerce preview environment FAQ
Microsoft Lifecycle Services (LCS)
Retail Cloud Scale Unit (RCSU)
Microsoft Azure portal
Dynamics 365 Commerce website
Configure optional features for a Dynamics 365
Commerce preview environment
2/13/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to configure optional features for a Microsoft Dynamics 365 Commerce preview
environment.

Prerequisites
If you want to evaluate the transactional email features, the following prerequisites must be met:
You have an available email server (Simple Mail Transfer Protocol [SMTP] server) that can be used from the
Microsoft Azure subscription where you provisioned the preview environment.
You have the server's fully qualified domain name (FQDN)/IP address, SMTP port number, and authentication
details available.
If you want to evaluate Digital Asset Management features by ingesting new omni-channel images, you must
have the name of your content management system (CMS) tenant available. Instructions for finding this name are
provided later in this topic. >>>(Q: where are the instructions?)

Configure the image back end


Find your media base URL

NOTE
Before you can complete this procedure, you must complete the steps in Set up your site in Commerce.

1. Sign in to the Commerce site management tool by using the URL you made a note of when you initialized
e-Commerce during provisioning (see Initialize e-Commerce).
2. Open the Fabrikam site.
3. On the menu on the left, select Assets .
4. Select any single image asset.
5. In the property inspector on the right, find the Public URL property. The value is a URL. Here is an
example:
https://images-us-sb.cms.commerce.dynamics.com/cms/api/fabrikam/imageFileData/MA1nQC .
6. Replace the last identifier in the URL (MA1nQC in the preceding example) with the string search?
fileName= . Here is what the example URL looks like after this change is made:
https://images-us-sb.cms.commerce.dynamics.com/cms/api/fabrikam/imageFileData/search?fileName=
This URL is your media base URL. Make a note of it.
Update the media base URL
1. Sign in to Dynamics 365 Commerce.
2. Use the menu on the left to go to Modules > Retail and commerce > Channel setup > Channel
profiles .
3. Select Edit .
4. Under Profile proper ties , replace the value for the Media Ser ver Base URL property with the media base
URL that you created earlier.
5. In the list on the left, under the Default channel, select the other channel.
6. Under Profile proper ties , select Add .
7. For the property that was added, select Media Ser ver Base URL as the property key. As the property value,
enter the media base URL that you created earlier.
8. Select Save .

Configure the email server


NOTE
The SMTP server or email service that you enter here must be accessible from the Azure subscription that you're using for
the environment.

1. Sign in to Commerce.
2. Use the menu on the left to go to Modules > System administration > Setup > Email > Email
parameters .
3. On the SMTP settings tab, in the Outgoing mail ser ver field, enter the FQDN or IP address of your SMTP
server or email service.
4. In the SMTP por t number field, enter the port number. (If you aren't using Secure Sockets Layer [SSL], the
default port number is 25 .)
5. If authentication is required, enter values in the User name and Password fields.
6. Select Save .
7. Select Refresh .
8. On the Test email tab, in the Email provider field, select SMTP .
9. In the Send to field, enter the email address that the test email should be delivered to.
10. Select Send test email .

Configure email templates


For each transactional event that you want to send emails for, you must update the email template with a valid
sender email address.
1. Sign in to Commerce.
2. Use the menu on the left to go to Modules > Organization administration > Setup > Organization
email templates .
3. Select Show list .
4. For each template in the list, follow these steps:
a. In the Sender email field, enter the sender email address.
b. Optional: In the Sender name field, enter the name that should be used as the sender name.
5. Select Save .

Customize email templates


You might want to customize the email templates so that they use different images. Or you might want to update
the links in the templates so that they go to your preview environment. This procedure explains how to download
the default templates, customize them, and update the templates in the system.
1. In a web browser, download the Microsoft Dynamics 365 Commerce Preview default email templates zip
file to your local computer. This file contains the following HTML documents:
Order confirmation template
Issue gift card template
New order template
Pack order template
Pick order template
2. Customize the templates by using a text or HTML editor. See the list of supported tokens later in this topic.
3. Sign in to Commerce.
4. Use the menu on the left to go to Modules > Organization administration > Setup > Organization
email templates .
5. Expand the list on the left to see all the templates.
6. For each template that you want to customize, follow these steps:
a. Select the template in the list.
b. Under Email message content , select the appropriate language version in the list. (The default
language is en-us .)
c. Under Email message content , select Edit . The Upload email template pane appears.
d. Select Browse , and find the HTML file that has the customized content.
e. Select Upload . The template is uploaded into the system, and a preview is shown.
f. Select OK .
g. Optional: Customize the Subject property of the template.
h. Select Save .
Supported tokens in the email template
When the email is rendered, these tokens are replaced with actual values that apply to the customer and the
customer's order.
Sales order
The following tokens apply to the overall sales order.

N A M E O F T H E TO K EN TO K EN

Order number %salesid%

Customer's name %customername%

Delivery address %deliveryaddress%

Billing address %customeraddress%


N A M E O F T H E TO K EN TO K EN

Order date %shipdate%

Delivery mode %modeofdelivery%

Discount %discount%

Sales tax %tax%

Order total %total%

Sales line
The following tokens are replaced with values for each product in the order.

NOTE
Put the Product list - star t token at the beginning of the HTML block that is repeated for every product, and put the
Product list - end token at the end of the block.

N A M E O F T H E TO K EN TO K EN

Product list - start <!--%tablebegin.salesline% -->

Product list - end <!--%tableend.salesline%-->

Product name %lineproductname%

Description %lineproductdescription%

Quantity %linequantity%

Line unit price %lineprice% (verify)

line item total %linenetamount%

line discount %linediscount%

Ship date %lineshipdate%

Procurement method %linedeliverymode%

delivery address %linedeliveryaddress%

Sales unit of the line %lineunit%

Additional resources
Dynamics 365 Commerce preview environment overview
Provision a Dynamics 365 Commerce preview environment
Configure a Dynamics 365 Commerce preview environment
Dynamics 365 Commerce preview environment FAQ
Microsoft Lifecycle Services (LCS)
Retail Cloud Scale Unit (RCSU)
Microsoft Azure portal
Dynamics 365 Commerce website
Dynamics 365 Commerce preview environment FAQ
4/9/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides answers to frequently asked questions about the Microsoft Dynamics 365 Commerce preview
environment.
Can I transfer my invitation for the Commerce preview environment to another tenant?
Yes. For invitation transfers, you can use the Commerce preview transfer form.
How long does the invitation transfer take?
The transfer takes an average of approximately three to five business days. However, exceptions might apply.
Does the Commerce preview environment work with Dynamics 365 Finance or Dynamics 365
Supply Chain projects?
No. The Commerce preview environment works only with Dynamics 365 Retail projects.
Can we use the Commerce preview environment as an e-commerce storefront for customers that
currently implement Retail?
No. The Commerce preview environment is just the evaluation environment. If you require an environment for a
customer that implements Retail, contact Microsoft.
Can the Commerce preview environment be used to provision the e-commerce features on top of an
existing application/environment that implements Retail?
No. The Commerce preview environment is currently available only in new environments that were deployed on
Retail stock keeping unit (SKU) projects that have demo data from version 10.0.6.
What costs are involved in deploying the Commerce preview environment on Microsoft Azure via
Microsoft Dynamics Lifecycle Ser vices (LCS)?
Retail is the only component that is hosted in your subscription. Other components such as Retail Cloud Scale Unit
(RCSU) and e-Commerce will be hosted in Microsoft subscriptions. You can use the Azure pricing calculator to
estimate this cost.
Which Azure geographies are currently suppor ted for the Commerce preview environment?
The Commerce preview environment can be deployed only in the North America geography.
Is there a downloadable vir tual hard disk (VHD) that has the complete OneBox vir tual machine (VM)
option?
Dynamics 365 Retail Cloud Scale Unit (RCSU) and e-Commerce are completely software as a service (SaaS) and
must be cloud-hosted.
How long can the Commerce preview environment be used?
The Commerce preview environment has a 30-day time limit from the date of provisioning e-Commerce.
Can I extend the time limit for my Commerce preview environment?
Yes. You can contact the support team by using the Commerce preview extension form.
Can we make multiple requests for a Commerce preview environment?
We grant a quota of one Commerce preview environment for each request that is accepted. If you need more than
one preview environment, contact Microsoft. For contact information, see the next section.

Dynamics 365 Commerce preview environment contact information


To contact Microsoft if you have questions or requests that are related to the Commerce preview environment,
visit the Microsoft Dynamics 365 Commerce Preview Yammer group for help.

Additional resources
Dynamics 365 Commerce preview environment overview
Provision a Dynamics 365 Commerce preview environment
Configure a Dynamics 365 Commerce preview environment
Configure optional features for a Dynamics 365 Commerce preview environment
Deployment options
1/8/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can deploy Finance and Operations apps in the cloud or on-premises. Cloud deployments offer an ERP service
that is fully managed by Microsoft, while on-premises deployments are deployed locally within a customer's data
center.

IMPORTANT
On-premises deployments are not supported on any public cloud infrastructure, including Azure.

The following table provides a comparison of the capabilities provided by the two deployment options.

Why cloud
Cloud deployments provide a cloud service that is easy to scale up or down as needed, as well as data centers that
are fully managed by Microsoft. The time spent implementing Finance and Operations apps can be significantly
shortened, fewer customizations may be required, and the costs of IT hardware and infrastructure are lower.
Cloud deployments include high availability, disaster recovery, sandbox environments, and application lifecycle
management combined with cloud-based systems of intelligence, infrastructure, compute, and database services in
a single offering. When needed, data failover in the cloud, automated deployment and continuous updates, and
elastic compute capacity are available. A cloud deployment also provides data aggregation, financial reporting, and
intelligence.
The cloud service provides customers with the greatest value, the broadest range of functionality, the best
application lifecycle experience, the easiest and broadest integration with Microsoft Azure services, the best option
for business insights and intelligence, and the most value for customers’ technology investments.

Why on-premises
With an on-premises deployment, existing data center investments can be leveraged. Customers can also configure
their enterprise preferences to meet the regulatory and compliance needs of their business, comply with data
sovereignty rules in regions where there are no Azure Data Centers, or ensure business continuity in areas with
limited public infrastructure.
A customer’s business data and processes are disconnected from the cloud and are stored and run locally in the
customer’s or their partner’s data center. Some connectivity is required for system management and updates
which are enabled through Microsoft Dynamics Lifecycle Services (LCS), a cloud-based application lifecycle
management service. Customer data that is related to the configuration and application customization may be
stored in the cloud.
For customers who choose to run Finance and Operations apps in their own data center, the on-premises
deployment option will have a similar user-interface and application functionality as other deployment options.
However, customers must take on the following responsibilities:
Stand up their own infrastructure.
Configure their own high-availability and disaster recovery solutions.
Stand up sandbox environments.
Manage their infrastructure, including scheduling operating system updates.
The additional costs to deploy and manage these capabilities might lead to higher deployment costs and a greater
Total Cost of Ownership (TCO). Tools for deploying the Finance and Operations apps and updates will be available
to partners and customers via Lifecycle Services. Unlike the cloud deployment option, Advanced Analytics and
Azure Machine Learning are not included in the on-premises deployment option.
There are several features that are not yet enabled in on-premises option. These features will be available in future
updates. For more information, see Features not implemented in on-premises deployments.
Comparison of cloud and on-premises features
3/6/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic shows a comparison of features available in cloud vs. on-premises for the following applications:
Dynamics 365 Finance
Dynamics 365 Supply Chain Management
Dynamics 365 Commerce
Dynamics 365 Human Resources
Information about the development and administration features is included, as well.
The following tables list the application areas. Cloud and on-premises support is listed for the feature as a whole.
Where specific features differ from the area overall, the features are listed on a separate line in the Feature column.

Dynamics 365 Finance


A REA F EAT URE C LO UD O N - P REM ISES

Compliance and Yes Yes


certifications

SOC 1 Type 1 certification Yes No

Data management and Yes Yes


integration

Export data to your own Yes Yes


data warehouse

Enable the export of Yes Yes


incremental updates to a
data entity

Data integrations Yes Yes

Document management Yes Yes

Financial management Yes Yes

Help Yes No

Human resources Yes Yes

Intelligence Yes Yes


A REA F EAT URE C LO UD O N - P REM ISES

Electronic reporting (ER) Yes Yes

ER: Integration with LCS Yes No

ER: Integration with Yes No


SharePoint

ER: Integration with Yes No


Regulatory Configuration
Services (RCS)

ER: Uses local file system as No Yes


storage of ER configurations
accessible via ER repositories

Integration with Yes No


PowerBI.com

Integration with PowerBI No Yes


Desktop

Analytical workspaces Yes No

Intelligent business process: Yes No


Recommendations

Authoring Power BI reports Yes No


with OData using Power BI
desktop or Excel
PowerQuery tools

SQL Server Reporting Yes No


Services (SSRS) supports
scaling out

Telemetry is transferred into Yes No


the cloud

Lifecycle services Yes Yes

Configurable business Yes No


processes

Localizations Yes Yes

Mobile app, workspaces, and Yes Yes


platform

Office integration Yes Yes

Organization administration Yes Yes

Payroll Yes Yes


A REA F EAT URE C LO UD O N - P REM ISES

Direct deposit Yes No

Project management and Yes Yes


accounting

Security Yes Yes

Service management Yes Yes

Web client Yes Yes

Task recorder - Save or load Yes No


task recordings from the
BPM library

Support Yes Yes

Access to Support via the Yes No


Help & Support menu

Business events Yes Yes (either internet


connectivity is required or
custom endpoints must be
implemented to send/recieve
business events within
intranet)

Dynamics 365 Supply Chain Management


A REA F EAT URE C LO UD O N - P REM ISES

Compliance and Yes Yes


certifications

SOC 1 Type 1 certification Yes No

Cost accounting Yes Yes

Cost accounting content Yes No


pack for Power BI

Cost accounting workspace Yes No


for mobile app

Cost management Yes Yes

Cost management content Yes No


pack for Power BI

Data management and Yes Yes


integration
A REA F EAT URE C LO UD O N - P REM ISES

Configuration-driven Yes No
extension

Export data to your own Yes Yes


data warehouse

Enable the export of Yes Yes


incremental updates to a
data entity

Data integrations Yes Yes

Document management Yes Yes

Help Yes No

Intelligence Yes Yes

Electronic reporting (ER) Yes Yes

ER: Integration with LCS Yes No

ER: Integration with Yes No


SharePoint

ER: Integration with Yes No


Regulatory Configuration
Services (RCS)

ER: Uses local file system as No Yes


storage of ER configurations
accessible via ER repositories

Integration with Yes No


PowerBI.com

Integration with PowerBI No Yes


Desktop

Analytical workspaces Yes No

Intelligent business process: Yes No


Recommendations

Authoring Power BI reports Yes No


with OData using Power BI
desktop or Excel
PowerQuery tools

SQL Server Reporting Yes No


Services (SSRS) supports
scaling out
A REA F EAT URE C LO UD O N - P REM ISES

Telemetry is transferred into Yes No


the cloud

Inventory management Yes Yes

Lifecycle services Yes Yes

Configurable business Yes No


processes

Localizations Yes Yes

Manufacturing Yes Yes

Master planning and Yes Yes


forecasting

Mobile app, workspaces, and Yes Yes


platform

Office integration Yes Yes

Organization administration Yes Yes

Procurement and sourcing Yes Yes

Punch-out to external Yes No


catalog from purchase
requisition

Purchase spend analysis Yes No


Power BI reports

Product information Yes Yes


management

Product master data Yes Yes

Production Yes Yes

Production performance Yes No


Power BI reports

Project management and Yes Yes


accounting

Sales Yes Yes

Sales and profitability Yes No


performance Power BI
reports
A REA F EAT URE C LO UD O N - P REM ISES

Security Yes Yes

Service management Yes Yes

Supply chain management Yes Yes

Transportation management Yes Yes

Vendor collaboration Yes No

Warehouse management Yes Yes

Mobile warehouse app Yes Yes

Warehousing Power BI Yes No


reports

Web client Yes Yes

Task recorder - Save or load Yes No


task recordings from the
BPM library

Support Yes Yes

Access to Support via the Yes No


Help & Support menu

Dynamics 365 Commerce


To see a list of capabilities that are available in on-premises deployments, see Commerce capabilities that are
available in on-premises deployments.

Dynamics 365 Human Resources


A REA F EAT URE C LO UD O N - P REM ISES

All Human Resources areas All Human Resources Yes No


features

Development and administration features


A REA F EAT URE C LO UD O N - P REM ISES

Build and test Yes Yes

Extensibility Yes Yes

Monitoring and telemetry Yes Yes


A REA F EAT URE C LO UD O N - P REM ISES

Platform compatibility Yes Yes

Servicing Yes Yes

Servicing environments Yes No

Trace Parser and PerfTimer Yes No

Upgrade Yes Yes

Upgrade Yes No

Upgrade and support for Yes No


previous versions

Visual Studio development Yes Yes


Cloud deployment overview
3/16/2020 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Working with Microsoft to deploy Finance and Operations apps in the cloud requires that you understand the
environment and subscription that you are deploying to, who can perform which tasks, and the data and
customizations that you need to manage. We recommend that you sign up for the Full Microsoft FastTrack for
Dynamics 365 to help speed your deployment and implementation - it's a program that provides training and
consulting to help you realize business value faster. For more information, see Microsoft FastTrack. If you choose to
use the Essentials FastTrack program instead, you will be using the Implementation Project Methodology in
Lifecycle Services (LCS) to help you manage your implementation project.

Customer lifecycle, subscriptions, and deployment topologies


Microsoft assumes that all customers will follow a lifecycle similar to the following for all cloud deployments, and
therefore need different environment topologies at each phase.
Evaluate
Develop customizations, if needed
Install and test customizations and partner solutions on a tier-1 sandbox (Development or test environment)
Test customizations, partner solutions and data configuration on a tier-2 sandbox environment
Deploy customizations and data configurations to a production environment with high availability
At some phases of a project, you may have all of the environments live at once. For more information, about the
default licenses and tiers that are available, see the Dynamics 365 Licensing Guide.
You may hear the terms, Customer, Partner, and Microsoft subscriptions. A customer or partner subscription means
that the customer or partner brings their own Azure subscription and deploys Finance and Operations apps to it,
for evaluation and development purposes only. The customer or partner pays for the resources deployed to their
Azure subscription based on the Azure price list. A Microsoft subscription means that the customer purchases
Finance and Operations licenses which will then allow them to deploy environments to an Azure subscription which
is managed by Microsoft, therefore, the customer has no separate Azure billing. With each Enterprise offer, three
environments are included by default.
One Tier-1 sandbox which is a development or build environment.
One Tier-2 sandbox (multi-box environment) for user acceptance testing (UAT).
One production environment with High Availability (HA). This environment is managed and operated by
Microsoft.
Additional environments may be purchased as add-ons. For information about licensing and what is included in
Microsoft Dynamics 365, see the Microsoft Dynamics 365 Enterprise edition licensing guide.
Here's how the lifecycle maps to the available environments.
L IF EC Y C L E P H A SE EN VIRO N M EN T SUB SC RIP T IO N

Evaluation and analysis Demo, one-box Customer or partner subscription.

Customize Dev/build, one-box Microsoft subscription,


partner/customer subscription, or local
VM

User acceptance testing (UAT) Tier-2 sandbox, multi-box environment Microsoft subscription

Go live Production, High Availability multi-box Microsoft subscription


environment

Features of a production instance


A production instance has the following capabilities.

Security and compliance


Finance and Operations is PA-DSS 3.1 certified which means that all communications between components are
secured out-of-the-box.
All Finance and Operations front-end virtual machines in Microsoft Azure are configured during deployment to
only accept TLS 1.2.

IMPORTANT
Customers who have administrator access to Microsoft-managed sandboxes, including any add-on sandboxes purchased,
must follow these guidelines:
By default, automatic Windows update is enabled for all Tier 1 - 5 sandboxes and should NOT be disabled. This ensures
that any time that Microsoft pushes security or critical infrastructure updates to your environment, your environment
receives the latest set of updates and is updated each month with the operating system fixes that Microsoft releases.
Admin passwords on these environments should NOT be changed. Environments that have admin passwords changed will
be flagged by Microsoft. Microsoft reserves the right to, and will reset the admin password.
Adding new user accounts to any Microsoft managed VM is NOT permitted. Microsoft reserves the right to, and will
remove the newly added user accounts without providing notice.

IMPORTANT
Finance and Operations is not covered by a FedRAMP ATO at this time. If Finance and Operations is provisioned in the United
States, all Customer Data at rest is stored in data centers located in the United States, as described in the Trust Center.
Finance and Operations does not support any other Dynamics 365 US Government or Office 365 GCC compliance attributes
(for example, access by U.S. screened personnel, and support for CJIS and IRS 1075).

Remote Desktop
Microsoft-managed environments
Customers are now required to complete additional setup to connect to virtual machines (VMs) through Microsoft
Remote Desktop (RDP). This additional setup applies to all Microsoft-managed environments, including Tier 1
through Tier 5 sandboxes and add-ons. In order to connect to Tier 1 through Tier 5 sandbox environments, you
must explicitly enable access (whitelist) from your organization’s IP address space. This can be done by a Lifecycle
Services (LCS) user who has access to the Environment page (Maintain > Enable Access ) where they can enter
the IP address space that will be used to connect to the virtual machines through Remote Desktop. Access rules are
either a single IP address (example: 10.10.10.10) or an IP address range (example: 192.168.1.0/24). You may add
multiple entries at once as a semi-colon(;) separated list (example: 10.10.10.10;20.20.20.20;192.168.1.0/24). These
entries are used to configure the Azure Network Security Group that is associated with your environment’s virtual
network. For more information, see Filter network traffic with network security groups.

IMPORTANT
Customers need to ensure that RDP endpoints are secured through explicit IP whitelist rules as mentioned above. The IP
whitelist rules must adhere to the below conditions to ensure the environments are secure and the Intellectual Property is
protected.
IP whitelist rules must NOT use star/zero, opening the environment to internet
Wide IP address ranges must NOT be used.
IP address ranges must restrict to the Customer's CORPNET
If computers outside the customer's CORPNET (e.g. a home office) are used to connect to the Sandbox environment(s),
only the specific IP addresses of the computers used to connect to the sandbox environment(s) must be added.
Azure Datacenter IP Address ranges must NOT be added
Public IP addresses, such as a coffee shop location must NOT be configured.

WARNING
Microsoft will run periodic tests on the Microsoft Managed environments validating that the environments are sufficiently
restricted. Microsoft reserves the right to and will remove any IP Address whitelist rules that violate the above guidelines,
immediately without providing notice.

Partner/Customer managed environments


By default, Remote Desktop is enabled for all non-Microsoft managed environments. We recommend that
customers restrict access to any environments that belong to their subscriptions. This can be done by configuring
Network Security Group rules on the environments directly in Azure Portal.

Windows Remoting (WinRM)


Windows Remoting (WinRM) is disabled on all environments. Although you can enable WinRM on environments
that belong to your subscriptions through Azure Portal, we strongly recommend that you do not do this.

WARNING
Exceptions to enable WinRM will not be granted for any Microsoft-managed environments.

Availability
The guaranteed uptime for Finance and Operations apps is 99.9%. Planned downtime occurs once a month and
lasts no longer than eight hours. Because the work completed during the downtime doesn’t always take eight
hours, we will always communicate the estimated amount of time that your environments will be down. For more
information, see Get support for Finance and Operations apps or Lifecycle Services (LCS).
High-availability features
To ensure service availability, all production environments are protected by using default Azure high availability
(HA) features. HA functionality provides ways to avoid downtime caused by the failure of a single node within a
datacenter, and DR features protect against outages broadly impacting an entire datacenter. Azure availability sets
are used to prevent single-point-of-failure events. For more information about Azure availability sets, see Azure
availability sets guidelines for Windows VMs. High availability for databases is supported through Azure SQL. For
more information, see Overview of business continuity with Azure SQL Database.
Disaster recovery features
Production environments are configured with Azure disaster recovery support that includes the following:
Azure SQL active-geo replication for primary databases, with a Recovery Point Estimate (RPO) of < 5 seconds.
For more information, see Overview: Failover groups and active geo-replication.
Geo-redundant copies of Azure blob storage (containing document attachments) in other Azure regions. For
more information, see Geo-redundant storage.
Same secondary region for the Azure SQL and Azure blog storage replication.
Only primary data stores are supported by replication. This means that some application components, such as
Management Reporter, and Entity store, which use transformed data from the primary database, must be generated
after the recovery site has been set up and the service has started. Customer code artifacts and recovered data
stores are used to re-deploy the site, with a Recovery Time Objective (RTO) of 10 hours and a Recovery Point
Objective of 5 seconds. For more information, see Azure SQL Database Point in Time Restore.

Service availability
Finance and Operations apps can be deployed into different Microsoft Azure datacenters using Dynamics Lifecycle
Services (LCS). Azure is generally available in datacenters and geographical locations around the world. With
Finance and Operations apps, customers can specify the region or datacenter where their customer data will be
stored. Microsoft may replicate data to other regions for data durability, but we will not replicate or move customer
data outside the geographical location. For more details, see the Service description white paper.

IMPORTANT
Regardless of where customer data is stored, Microsoft does not control or limit the locations from which customers or their
end-users may access it. For more information, see Where your Finance and Operations data is stored.

Frequently asked questions


Why does the status display 'Migrating' on my environment in LCS?
To provide the best experience and performance, Microsoft has to perform maintenance operations on your
environment. During some of these maintenance operations, your environment status may display 'Migrating'. You
will not be able to perform any lifecycle operations, such as package applications, until the status returns to
'Deployed'. There will be no impact to Finance and Operations apps. Users can continue with normal operations
without any service interruption. You will receive an email notification before the maintenance operation is initiated.
How do I connect to the SQL database on my Sandbox environment?
Follow these steps to connect to the SQL Database in your Tier 2+ Sandbox environments.

IMPORTANT
You will not be able to connect to the Production database directly.

1. Remote Desktop into one of the AOS VMs belonging to the Tier 2+ environment with a database that you want
to connect to.
2. Open SQL Server Management Studio.
3. Use these steps to get the connection details:
a. Go to the Environment Details page in Lifecycle Ser vices por tal .
b. Get the SQL Server, Database Name, and AXDBAdmin credentials from the Database Accounts section.
4. In the Connect to SQL Ser ver dialog box, complete the following steps:
a. Enter (ServerName).database.windows.net, where (ServerName) is the name of your database server
obtained from LCS.
b. Select SQL Server Authentication for Authentication .
c. Use axdbadmin for Login .
d. Enter the password obtained from LCS for axdbadmin.
e. Select Options .
f. Enter the name of the database obtained from LCS in the Connect to database drop-down list.
g. Select Connect .
How do I access a development instance?
For information about how to access development instances, configure on-premises development VMs, and find
configurations settings for developers and administrators, see Deploy and access development environments.
How do I deploy a demo environment
A demo environment includes only Microsoft demo data. You can use a demo environment to explore default
features and functionality. For more information, see Deploy a demo environment.
How do I move my customizations between environments?
To move customizations from a development to a sandbox or production environment, see Create deployable
packages of models
Can I bring my own domain name?
You can bring your own domain name if it is running Azure Active Directory (AAD), and the administrator of your
AAD instance has enabled the Finance and Operations apps within their AAD. This is usually done through the office
email, after you buy a license. When you click the link to accept the offer, AAD is set up for you.
Can I add guest AAD accounts as users?
You can add guest AAD accounts if you have correctly configured them within Azure Active Directory, and enabled
the Finance and Operations apps within your AAD.
Why am I no longer able to see the Private AOS machines in one or more of my Tier 2 through Tier 5 Sandbox
environments?
The Private AOS VMs were part of your environment configuration as they were needed to secure communication
between the AOS and BI machines in the past. With recent updates, all communication between AOS and BI
machines are secure directly and no longer need the intermediary Private AOS machines. Therefore, we are in the
process of rolling out removing the Private AOS machines. As we are removing the machines in batches, you may
notice that only some of your environments have the Private AOS machines removed. This change will not impact
functionality or security in any way and will be transparent to you.
Why am I no longer able to Remote Desktop into one or more of my Tier 1 through Tier 5 Microsoft managed
Sandbox environments?
Microsoft managed Tier 1 through Tier 5 sandbox environments require Remote Desktop management endpoints
to be restricted to specific IP Address sets (whitelist). Microsoft regularly validates that the environments are
sufficiently restricted. Microsoft reserves the right to immediately remove any IP Address whitelist rules that violate
the above guidelines without notice. You may not be able to Remote Desktop into your environment for one of
these reasons:
Your current IP address is not in the whitelist.
Your IP has changed from the IP address listed in the whitelist.
Microsoft deleted the rule containing your IP address from the whitelist because it violated a guideline.
To regain access to the environment, you will need to add the IP address of the computer from which you are
connecting. To do this, complete the steps in the section, Remote Desktop earlier in this document.
System requirements for cloud deployments
3/19/2020 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic lists the system requirements for cloud deployments of the current version of Dynamics 365 Commerce.
If this step is appropriate, before you install Commerce, you should verify that the system that you're working with
meets or exceeds the minimum network, hardware, and software requirements.

Supported web browsers


The web application can run in any of the following web browsers that run on the specified operating systems:
Microsoft Edge (latest publicly available version) on Windows 10
Internet Explorer 11 on Windows 10, Windows 8.1, or Windows 7
Google Chrome (latest publicly available version)
Apple Safari (latest publicly available version)
To find the latest release for each web browser, go to the software manufacturer's website.

NOTE
To enable Task Recorder to capture screenshots and include them in Microsoft Word documents that are generated, you
must install a pre-release Chrome extension.
The Workflow Editor and Report Designer for Financial reporting are started as ClickOnce applications. They require a 64-
bit-compatible operating system. Only Microsoft Edge and Internet Explorer (on a supported version of Microsoft
Windows) support ClickOnce applications out of the box. If you're using Chrome, you must install a ClickOnce extension,
such as Meta4 to use ClickOnce applications. If you use Chrome in incognito mode, make sure that the ClickOnce
extension is also enabled for incognito mode.
To preview PDF files, we recommend that you use browsers such as Microsoft Edge (latest publicly available version) on
Windows 10, or Google Chrome (latest publicly available version) on Windows 10, Windows 8.1, Windows 8, Windows 7,
or Google Nexus 10 tablet.

Supported web browsers for Cloud POS


Cloud point of sale (POS) can run in any of the following web browsers that run on the specified operating systems:
Microsoft Edge (latest publicly available version) on Windows 10
Internet Explorer 11 on Windows 10, Windows 8.1, or Windows 7
Chrome (latest publicly available version) on Windows 10, Windows 8.1, or Windows 7

Network requirements
Commerce is designed for networks that have a latency of 250–300 milliseconds (ms) or less. This latency is the
latency from a browser client to the Microsoft Azure datacenter that hosts Commerce. We recommend that you
test network latency at AzureSpeed.com.
Bandwidth requirements for Commerce depend on your scenario. Most typical scenarios require a bandwidth
that is more than 50 kilobytes per second (KBps). However, we recommend more bandwidth for scenarios that
have high payload requirements, such as scenarios that involve workspaces or extensive customization.
In general, Commerce is optimized for the internet. The number of round trips from a browser client to the Azure
datacenter is very small, and the whole payload is compressed.

WARNING
Don't calculate bandwidth requirements from a client location by multiplying the number of users by the minimum
bandwidth requirements. The concurrent usage of a given location is very difficult to calculate. Customers who are concerned
about bandwidth requirements should use a preview version of Commerce.

.NET Framework requirements


Commerce requires Microsoft .NET Framework 4.7.1 or later for all ClickOnce applications, such as the document
routing agent. For installation instructions, see Install the .NET Framework for developers.

Supported Microsoft Office applications


The following Microsoft Office applications are supported:
To run the Microsoft Excel and Word add-ins, you must have Microsoft Office 2016 for Windows installed. For
more information about version requirements, see Troubleshoot the Office integration.
To view documents that are generated by the Export to Excel or Export to Word functionality, you must have
Microsoft Office 2007 or later installed.

System requirements for Commerce client components


It is critical to perform proper performance testing prior to going live in production. The following are considered
minimum system requirements for applications to function. To achieve desired performance, consider concepts like
data volumes, transactional load per hour, and customization impact. Proper performance testing both early into
implementation and again prior to final testing will allow for any necessary performance improvements to be
made and to validate that the base solution meets the expected operation times required.
[!IMPORTANT] The Microsoft Windows 7 operating system is no longer supported for anything other than security-
related fixes. As a result, while Dynamics 365 Commerce components may function on Windows 7, there will be no
bug fixes that specifically relate to supporting this operating system. Workarounds may be required for
components to function properly on Windows 7, so it is highly recommended to upgrade to a supported operating
system.

Modern POS for Windows requirements


NOTE
If Modern POS will use an offline database, the computer must meet all system requirements for Microsoft SQL Server
and the system must have no less than 10 GB of disk space available. It is recommended to have no less than 20 GB of
disk space available. An offline database for Modern POS requires SQL Server 2014 with Service Pack 3 or later, SQL
Server 2016 with Service Pack 2, SQL Server 2017, or newer. The SQL Server version used must have the Full-Text Search
feature installed. We recommend that you always use the latest version that is available, and that you install all the latest
service packs. By following these recommendations, you can help to ensure both compatibility and security.
Starting August 1, 2019, Modern POS and other client-side components require that the Microsoft .NET Framework
version 4.7.1 or later be installed. For installation instructions, see Install the .NET Framework for developers.
Supported Windows operating systems
Modern POS is a 32-bit application, but it will run on both x86 and x64 architectures.
Modern POS is supported on Windows Server 2016, Windows 10 Pro, Windows 10 Enterprise, Windows 10
Enterprise Long Term Service Branch (LTSB), and Windows 10 IOT Enterprise editions. At a minimum, the
Windows 10 Anniversary Update (version 1607), build 14393, must be installed.
It is not recommended to use Modern POS and other Commerce components on Windows 10 Pro unless within
a domain as Windows 10 Pro doesn't allow for advanced management of updates to the operating system.
It is not recommended to use Modern POS and any other Commerce component together on the same
computer.
Minimum system requirements
The minimum supported effective resolution for POS Full layout (PCs and tablets) is 1,024 × 768
(recommended 1366 x 768 or greater)
The minimum supported effective resolution for POS Compact layout (phones and small tablets) is 320 x
568 (recommended 360x640 or greater)
The computer that Modern POS runs on must meet these requirements:
It must have, at a minimum, a dual-core processor that runs at no less than 2 gigahertz (GHz).
It must have, at a minimum, 3 gigabytes (GB) of random-access memory (RAM). When combining with
SQL Server for offline, no less than 4 GB of RAM is required.
It must have internet access.

Modern POS for Apple iPhone or iPad requirements


iOS 11 or later

Modern POS for Android phone or tablet requirements


Android OS 6.0 or later

Retail hardware station requirements


NOTE
Starting August 1, 2019, Retail hardware station and other client-side components require that the .NET Framework version
4.7.1 or later be installed. For installation instructions, see Install the .NET Framework for developers. It is critical to note that
this component utilizes a server certificate. Server certificates must be managed for expiration. By default, a certificate expires
in one calendar year (365 days).

Supported operating systems


Retail hardware station is a 32-bit application, but it will run on both x86 and x64 architectures.
Retail hardware station is supported on the following operating systems:
Windows 7 Professional, Enterprise, and Ultimate editions.
NOTE
Windows 7 is supported only if Internet Explorer 11 is manually installed on the system. Windows 7 is no
longer a supportable operating system (see the Impor tant note above). A recent issue was discovered
regarding installation of hardware station on this operating system. This issue will not be fixed because the
following workaround is available. In the Common-Web.ps1 file, remove the following two sets of Log-
ActionItem : 1. Log-ActionItem 'Config application pool [...] idle timeout to zero. 2. Log-ActionItem
'Config application pool [...] idle timeout action to suspend. Delete the Log-ActionItem specified above and
the following two lines related to Set-ItemProper ty and Log-ActionResult .

Windows 8.1 Update 1 Professional, Enterprise, and Embedded editions.


Windows 10 Pro, Enterprise, Enterprise LTSB, and IOT Enterprise editions.
Windows Server 2012 R2 and Windows Server 2016 (note that Windows Server 2012 R2 is out of
mainstream support at this time).
It is not recommended to use Retail hardware station and other Commerce components on Windows
10 Pro unless within a domain as Windows 10 Pro doesn't allow for advanced management of
updates to the operating system.
Minimum system requirements
The computer must meet all system requirements for installing and using the following items:
Microsoft Internet Information Services (IIS)
Third-party hardware

Commerce Scale Unit requirements


NOTE
Starting August 1, 2019, Commerce Scale Unit and other client-side components require that the .NET Framework version
4.7.1 or later be installed. For installation instructions, see Install the .NET Framework for developers.
It is critical to note that this component utilizes a server certificate in addition to Azure Service to Service authentication. Both
the generated Azure web application keys (formerly called secrets) and the server certificate must be managed for expiration.
By default, a certificate and a generated Azure web application key expires in one calendar year (365 days).

Take note that the minimum system requirements listed below are the bare minimum necessary to get a
Commerce Scale Unit to function in a test scenario. The following is not representative of a realistic production
environment. It is critical to perform proper performance testing and validate that the hardware used will meet the
needs of the users.
Supported operating systems
Commerce Scale Unit is a 32-bit application, but it will run on both x86 and x64 architectures.
Commerce Scale Unit is supported on the following operating systems:
Windows 7 Professional, Enterprise, and Ultimate editions.

NOTE
Windows 7 is supported only if Internet Explorer 11 is manually installed on the system.

Windows 8.1 Update 1 Professional, Enterprise, and Embedded editions.


Windows 10 Pro, Enterprise, Enterprise LTSB, and IOT Enterprise editions.
Windows Server 2012 R2 and Windows Server 2016 (Note that Windows Server 2012 R2 is out of
mainstream support at this time).
It is not recommended to use Commerce Scale Unit and other Commerce components on Windows
10 Pro unless within a domain as Windows 10 Pro doesn't allow for advanced management of
updates to the operating system.
Minimum system requirements

NOTE
The following are the minimum system requirements for Commerce Scale Unit. Both these and the recommended
requirements are the minimum possible for testing and basic functionality. It is crucial to perform performance testing and
validate that the hardware used for Commerce Scale Unit meets expectations.

4 GB of RAM
1.6 GHz i5 (or equivalent) minimum CPU speed per core (2 cores are the minimum).
At least 15 GB of free space (the channel database can require a large amount of space).
Recommended system requirements
6 GB of RAM
2.4 GHz i7 (or equivalent) minimum CPU speed per core (4 cores are recommended).
At least 20 GB of free space (the channel database can require a large amount of space).
It would be in an organization's best interest to also take the following items into consideration when determining
personal hardware needs:
Number of physical network ports (more ports enhances throughput per second).
SQL Server log flush size (this directly impacts SQL Server performance).
Data read and write capabilities (this directly impacts SQL Server performance).
Number of CPU(s) core, number of simultaneous threads per core, and speed per core (this impacts overall
throughput of the system).
Whether load balancing will be required.

Connector requirements
Supported operating systems
The Connector for Microsoft Dynamics AX has two separate installers, one for Async Server Connector
service and one for Real-time service for Microsoft Dynamics AX 2012 R3.
Both components are 32-bit applications, but they will run on both x86 and x64 architectures.
Both components are supported on the following operating systems:
Windows 7 Professional, Enterprise, and Ultimate editions.
Windows 8.1 Update 1 Professional, Enterprise, and Embedded editions.
Windows 10 Pro, Enterprise, and Enterprise LTSB editions.
Windows Server 2012 R2 and Windows Server 2016.
It is not recommended to use Commerce components on Windows 10 Pro unless within a domain as
Windows 10 Pro doesn't allow for advanced management of updates to the operating system.
Minimum system requirements
2 GB of RAM (4 GB of RAM are recommended).
1.6 GHz peak CPU speed per core (2 cores are the minimum).
At least 10 GB of free space (the channel database can require a large amount of space).

Requirements for development on local VMs


For information about the requirements for development on local virtual machines (VMs), see VM that is running
on-premises.

Database collation
The only supported collation for Commerce databases in the cloud is SQL_Latin1_General_CP1_CI_AS . Please
ensure that your SQL Server and database collations in development environments are set to this. Also ensure that
any configuration environments that are published to Sandbox have this same collation.

Additional resources
Get an evaluation copy
On-premises deployment home page
3/5/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can deploy Dynamics 365 Finance + Operations (on-premises). When you choose an on-premises deployment
type, the system requirements, hardware sizing, and functionality differ from a cloud deployment. This topic
provides links to content that contains information specific to on-premises deployments.

Get started
On-premises deployment overview
Plan and prepare for on-premises deployments
System requirements for on-premises deployments
Hardware sizing requirements for on-premises environments
Buy Finance + Operations (on-premises)
Comparison of cloud and on-premises features

Onboard
Set up on-premises projects in Lifecycle Services (LCS)
Set up and deploy on-premises environments (Platform update 12 and later)
Set up and deploy on-premises environments (Platform updates 8 and 11)
Install network printer devices in on-premises environments
Configure SQL Server Reporting Services for on-premises deployments
Develop and deploy custom models to on-premises environments

Work in your on-premises deployment


Configure document management
Import Electronic reporting (ER) configurations
Document generation, publishing, and printing in on-premises deployments
Configure proxies for on-premises environments
Set up technical support for Finance and Operations apps
Client internet connectivity
Apply updates to on-premises deployments
Redeploy on-premises environments
Reuse the same AD FS instance for multiple environments

Commerce
Commerce capabilities that are available in on-premises deployments
Installation steps for Retail channel components in an on-premises environment
Configure, install, and activate Modern POS (MPOS)
Configure and install Commerce Scale Unit

Upgrade
In-place upgrade process for on-premises environments

Other resources
Troubleshoot on-premises deployments
Scripts for resolving issues in on-premises environments
Certificate rotation
On-premises diagnostics
Features not implemented in on-premises deployments
Removed or deprecated features for Finance and Operations
Software lifecycle policy and on-premises releases
System requirements for on-premises deployments
2/1/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic lists the system requirements for the current version of Microsoft Dynamics 365 Finance + Operations
(on-premises) deployments. Before you install, when this step is appropriate, verify that the system that you're
working with meets or exceeds the minimum network, hardware, and software requirements.

IMPORTANT
Dynamics 365 Finance + Operations (on-premises) deployments are not supported on any public cloud infrastructure,
including Azure.

Network requirements
Dynamics 365 Finance + Operations (on-premises) can work on networks that use Internet Protocol Version 4
(IPv4) or Internet Protocol Version 6 (IPv6). Consider the network environment when you plan your system, and
use the following guidelines.
Network response time
The following table lists the minimum network requirements for the connection between the web browser and
Application Object Server (AOS), and for the connection between AOS and the database in an on-premises system.

VA L UE W EB B RO W SER TO A O S A O S TO DATA B A SE

Bandwidth 50 kilobytes per second (KBps) per user 100 megabytes per second (MBps)

Latency Less than 250–300 milliseconds (ms) Less than 1 ms (local area network
[LAN] only). AOS and the database
must be co-located.

Finance + Operations is designed for networks that have a latency of 250–300 milliseconds (ms) or less. This
latency is the latency from a browser client to the datacenter that hosts Finance + Operations.
Bandwidth requirements depend on your scenario. Typical scenarios require a bandwidth of more than 50 KBps
between the browser and the server. However, we recommend higher bandwidth for scenarios that have high
payload requirements, such as scenarios that involve workspaces or extensive customization. The specific
amount of bandwidth depends on use.
Deployments where AOS and the Microsoft SQL Server database are in different datacenters aren't supported.
AOS and the SQL Server database must be co-located.
In general, Finance + Operations is optimized to reduce browser-to-server round trips. The number of round trips
from a browser client to the datacenter is either zero or one for each user interaction, and the payload is
compressed.
WARNING
Don't calculate bandwidth requirements from a client location by multiplying the number of users by the minimum
bandwidth requirements. The concurrent usage of a given location is very difficult to calculate. We recommend that you use
a real-life simulation against a non-production environment as the best gauge of performance for your specific case.

LAN environments
In LAN environments, Microsoft Remote Desktop in Microsoft Windows Server isn't required in order to connect to
Finance + Operations. However, Remote Desktop might be required for servicing operations on the virtual
machines (VMs) that make up the server deployments.
WAN environments
In wide area network (WAN) environments, Remote Desktop in Windows Server isn't required in order to connect
to Finance + Operations.
Internet connectivity requirements
Finance + Operations doesn't require internet connectivity from user workstations. However, some features won't
be available if there is no internet connectivity.

Browser client An intranet scenario without internet connectivity is a design


point for the on-premises deployment option. Some features
that require cloud services won't be available, such as Help
and Task guide libraries in Microsoft Dynamics Lifecycle
Services (LCS).

Ser ver The AOS or Microsoft Azure Service Fabric tier must be able to
communicate with LCS. The on-premises browser-based client
doesn't require internet access.

Telemetr y Telemetry data might be lost if there are long interruptions in


connectivity. Interruptions in connectivity to LCS don't affect
the on-premises application functionality.

LCS Connectivity to LCS is required for deployment, code


deployment, and servicing operations.

Telemetry data transfer to the cloud


Most telemetry data is stored locally and can be accessed by using Event Viewer in Microsoft Windows. A small
subset of telemetry events is transferred to the Microsoft telemetry pipeline in the cloud for diagnostics. Customer
data and user-identifiable data aren't part of the telemetry data that is sent to Microsoft. VM names are sent to
Microsoft to help with environment management and diagnostics from the LCS portal.

Domain requirements
Consider the following domain requirements when you install Finance + Operations:
VMs that host Finance + Operations components must belong to an Active Directory domain. Active Directory
Domain Services (AD DS) must be configured in native mode.
VMs that run Finance + Operations components must have access to each other. This access is configured in
AD DS.
The domain controller must be Microsoft Windows Server 2012 R2 or later, and the domain functional level
must be 2012 R2 or more.
Hardware requirements
This section describes the hardware that is required in order to run Finance + Operations.
The actual hardware requirements vary, based on the system configuration, the data composition, and the features
that you decide to use. Here are some of the factors that can affect the choice of appropriate hardware:
The number of transactions per hour
The number of concurrent users

Minimum infrastructure requirements


Finance + Operations uses Service Fabric to host the AOS, Batch, Data management, Management reporter, and
Environment orchestrator services.
SQL Server must have a high-availability HADRON setup that has at least two nodes for production use.
The following illustration shows the minimum number of nodes that is recommended for your Service Fabric
cluster.

Processor and RAM requirements


The following tables list the number of processors and the amount of random-access memory (RAM) that are
required for each role that is required in order to run this deployment option. For more information, see the
recommended minimum requirements for a Service Fabric standalone cluster in Plan and prepare your Service
Fabric cluster.

NOTE
If other Microsoft software is installed on the same computer, the system must also comply with the hardware requirements
for that software. If other server applications are installed on the same computer as AOS, we recommend that you limit those
server applications 1 gigabyte (GB) of RAM.

Sizing by role and topology type


REC O M M EN DED REC O M M EN DED M EM O RY
TO P O LO GY RO L E ( N O DE T Y P E) P RO C ESSO R C O RES ( GB )

Production AOS, Data management, 8 24


Batch

Management Reporter 4 16

SQL Server Reporting 4 16


Services

Orchestrator 4 16

SQL Server 8 32

Sandbox AOS, Data management, 4 24


Batch

Management Reporter 4 16

SQL Server Reporting 4 16


Services

Orchestrator 4 16

SQL Server 8 32

Minimum sizing estimates for production and sandbox deployments

TO P O LO GY RO L E N UM B ER O F IN STA N C ES

Production AOS (Data management, Batch) 3

Management Reporter 2

SQL Server Reporting Services 1

Orchestrator** 3

SQL Server 2

Sandbox AOS, Data management, Batch 2

Management Reporter 1

SQL Server Reporting Services 1

Orchestrator 3

SQL Server 1

Summary for production and sandbox 19


topologies
* The numbers in this table are being validated by our preview customers and might be adjusted based on the
feedback from those customers.
** Orchestrator is designated as the primary node type and will also be used to run the Service Fabric services.
Initial estimates for the back-end SQL Ser ver and AD DS

M EM O RY P ER
VM S/ IN STA N C IN STA N C E TOTA L
RO L E ES C O RES TOTA L C O RES ( GB ) M EM O RY ( GB )

Shared SQL Server* 2 8 16 32 64


infrastructur
e File The back-end storage must be based on solid-state drives (SSDs) on a runtime storage
server/Storage area network (SAN).
area Size and input/output operations per second (IOPS) throughput is based on the size of
network/Highl the workload.
y available
storage

Active 3 4 12 16 48
Directory

Summary for 5 28 112


shared
infrastructure

* SQL Server sizes are highly dependent on workloads. For more information, see Hardware sizing requirements
for on-premises environments. Separate SQL Server machines for sandbox and production environments must be
used. However, SQL Server can be shared in all sandbox environments.

Storage
AOS – Finance + Operations uses a Server Message Block (SMB) 3.0 share to store unstructured data. For
more information, see Storage Spaces Direct in Windows Server 2016.
SQL – The following options are viable:
A highly available SSD setup
A SAN that is optimized for online transaction processing (OLTP) throughputs
High-performance direct-attached storage (DAS)
SQL Ser ver and data management IOPS – The storage for both data management and SQL Server
should have at least 2,000 IOPS. Production IOPS depends on many factors. For more information, see
Hardware sizing requirements for on-premises environments.
VM IOPS – Each VM should have at least 100 write IOPS.

Virtual host requirements


When you set up the virtual hosts for an environment, see the guidelines in Plan and prepare your Service Fabric
cluster and Describing a service fabric cluster. Each virtual host should have enough cores for the infrastructure
that is being sized. Multiple advanced configurations are possible, where SQL Server resides on physical hardware
but everything else is virtualized. If SQL Server is virtualized, the disk subsystem should be a fast SAN or the
equivalent. In all cases, make sure that the basic setup of the virtual host is highly available and redundant. In all
cases, when virtualization is used, no VM snapshots should be taken.
Finance + Operations falls under Microsoft's standard support policy regarding operation on non-Microsoft
virtualization platforms – specifically VMWare. For more information, read Support policy for Microsoft software.
In short, we support our products in this environment, but if we are asked to investigate an issue, we may ask the
customer to first reproduce the problem without the virtualization platform or on the Microsoft virtualization
platform.

Software requirements for all server computers


The following software must be present on a computer before any Finance + Operations components can be
installed:
The Microsoft .NET Framework version 4.5.1 or later
Service Fabric
For more information, see Plan and prepare your Service Fabric cluster.

Supported server operating systems


The following table lists the server operating systems that are supported.

O P ERAT IN G SY ST EM N OT ES

Microsoft Windows Server 2016 Datacenter or Standard These requirements are for the database and the Service
Fabric cluster that hosts AOS.
Only en-US OS installations are supported.

Software requirements for database servers


Only 64-bit versions of SQL Server 2016 are supported.
Only SQL_Latin1_General_CP1_CI_AS is valid for the server and database collation.
In a production environment, we recommend that you install the latest cumulative update (CU) for the version
of SQL Server that you're using.
Finance + Operations supports Unicode collations that are case-insensitive, accent-sensitive, kana-sensitive, and
width-insensitive. The collation must match the Windows locale of the computers that are running AOS
instances. If you're setting up a new installation, we recommend that you select a Windows collation instead of a
SQL Server collation. For more information about how to select a collation for a SQL Server database, see the
SQL Server documentation.
The following table lists the SQL Server versions that are supported for the databases. For more information, see
the minimum hardware requirements for SQL Server.

REQ UIREM EN T N OT ES

Microsoft SQL Server 2016 Standard Edition or Enterprise For the hardware requirements for SQL Server 2016, see
Edition Hardware and Software Requirements for Installing SQL Server
2016.

Software requirements for Application Object Server (AOS)


SQL Server Integration Services (SSIS)

Software requirements for Reporting Server (BI)


SQL Server Reporting Services (SSRS)
Software requirements for client computers
The Finance + Operations web application can run on any device that has an HTML 5.0–compliant web browser.
Here are some of the specific device/browser combinations that Microsoft has confirmed:
Microsoft Edge (latest publicly available version) on Windows 10
Internet Explorer 11 on Windows 10, Windows 8.1, or Windows 7
Google Chrome (latest publicly available version) on Windows 10, Windows 8.1, Windows 8, Windows 7, or
Google Nexus 10 tablet
Apple Safari (latest publicly available version) on Mac OS X 10.10 (Yosemite), 10.11 (El Capitan) or 10.12
(Sierra), or Apple iPad

Software requirements for Active Directory Federation Services


Active Directory Federation Services (AD FS) on Windows Server 2016 is required.
The domain controller must be Windows Server 2012 R2 or later, and the domain functional level must be 2012 R2
or more. For more information about domain functional levels, see the following pages:
What Are Active Directory Functional Levels
Understanding Active Directory Domain Services Functional Levels

Supported Microsoft Office applications


The following Microsoft Office applications are supported in on-premises deployments:
To run the Microsoft Excel and Microsoft Word add-ins, you must have Microsoft Office 2016 for Windows (or
newer) installed. For more information about version requirements, see Troubleshoot the Office integration.
To view documents that are generated by the Export to Excel or Export to Word functionality, you must have
Microsoft Office 2007 or later installed.

Hardware and software requirements for Commerce components


Currently, Finance + Operations doesn't include the Commerce components.
Installation steps for Retail channel components in an
on-premises environment
3/19/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic covers the installation steps for Commerce channel components in an on-premises environment.

Overview
Channel functionality, in an on-premises environment, is enabled exclusively via use of Commerce Scale Unit. For
an overview, see Commerce Scale Unit.
Unlike a cloud deployment, an on-premises environment does not enable seamless, high-availability deployment of
channel components via Lifecycle Services (LCS). The only way to use channel components is by installing
Commerce Scale Unit.

Prerequisites
Before you can start installation of channel components, you must first complete all prior installation steps for an
on-premises environment. These steps are listed in Set up and deploy on-premises environments (Platform update
12 and later). In addition, version 8.1.1 must be installed in order for Commerce have full functionality. We
recommend that you update to version 8.1.2.

NOTE
It is critical to ensure that a secure network, that is not publicly accessible, is used to connect Commerce Scale Unit to
Headquarters. You must also restrict network access to Headquarters, so access is only allowed to known Commerce Scale
Unit devices via network filtering or other means. This means that a firewall must exist and whitelisting is highly
recommended.

Installation steps
1. On the previously created Application share, (not the LocalAgent share folder), create a new folder called
selfser vicepackages in the root directory of the share location.
2. On each AOS computer, create an easily accessible directory, such as C:/selfser vicepackages .
3. On one AOS computer (which one does not matter), run the following PowerShell script.

.\RetailUpdateDatabase.ps1 -envName '<Environment name>' -AosUrl 'https://<My Environment


Name>.com/namespaces/AXSF/' -SendProductSupportTelemetryToMicrosoft
IMPORTANT
The above steps apply to version 10.0 and later. For the original 8.1.3 release of Retail on-premises functionality, the
original version of the script delimiters must be used.

.\RetailUpdateDatabase.ps1 -DatabaseServer '<Database server name for AOS database>' -DatabaseName


'<Database name for AOS database>' -envName '<Environment name>' -RetailSelfServicePackages '<Local
path of Retail self-service packages, such as **C:/selfservicepackages**>' -
SendProductSupportTelemetryToMicrosoft

The parameter -envName should be known based on creation when the environment is generated.
The legacy parameters -DatabaseSer ver and -DatabaseName should be known based on the environment
setup.
The parameter -SendProductSuppor tTelemetr yToMicrosoft is a required value to enable telemetry to
Microsoft. This is critical to maximize support from Microsoft.
This script will perform a variety of actions, including updating the Service user and role and updating registry
keys.

4. On each AOS computer, run the following PowerShell script.

.\RetailUpdateDatabase.ps1 -RetailSelfServicePackages 'C:\RetailSelfService\Packages'

NOTE
The parameter -RetailSelfSer vicePackages is the full path location created in the beginning of this step
(C:/selfser vicepackages ).

5. Download the appropriate binary update from LCS to have the Commerce installers. For instructions, see
Download updates from Lifecycle Services (LCS).
6. Extract the zip file and copy all self-service installers into the folder C:/selfser vicepackages defined and
created in step 2 in each of the AOS machines. The six self-service installers include:
AsyncServerConnectorServiceSetup.exe
RealtimeServiceAX63Setup.exe
HardwareStationSetup.exe
ModernPosSetup.exe
ModernPosSetupOffline.exe
StoreSystemSetup.exe
7. Navigate to the AD FS machine, then go to the InfrastructureScripts folder. This is the same file directory
where the previously run PowerShell script was located (RetailUpdateDatabase.ps1 ). Find the PowerShell
script Create-ADFSSer verApplicationForRetail.ps1 .
8. On the AD FS machine that you're currently using, run this script in a new PowerShell window using the
command .\Create-ADFSSer verApplicationForRetail -HostUrl
'https://ax.d365ffo.onprem.contoso.com' , where the HostUrl value can be found in Service Fabric. To
find the HostUrl value, go to Ser vice Fabric > Application fabric:/AXSF > Details >
Aad_AADValidAudience .
9. Access the newly generated Server application from the Application Groups in AD FS Management.
10. Edit the newly generated Server application and select Reset the Secret .
NOTE
It is an important security measure to run this script for each Commerce Scale Unit. This maximizes security and
minimizes the workload in case of a security breach.
It is critical to keep this secret safe. This secret should only be copied once and never stored on the system. The Client
ID and Secret generated will be used during the Commerce Scale Unit installer, so it is required to be used at a later
time. You can always reset the secret again, but it must then be updated on any Commerce Scale Unit that used the
previous secret.

11. Go to Retail and Commerce > Headquar ters setup > Commerce scheduler > Connector for
Microsoft Dynamics AX .
12. Select Edit on the Action pane.
13. In the Profile field, enter the value Default . If needed, enter a description in the Description field.

NOTE
It is possible for the following fields in steps 12 through 14 to already have values. If this occurs, skip those steps and
continue from there. What is important is to have a selectable profile title (default in this case).

14. In the Web application name field, enter RetailCDXRealTimeSer vice .


15. In the Protocol field, select https .
16. In the Common name field, enter **[email protected]**.
17. Select Save on the Action Pane.
18. In Headquarters, go to Retail and Commerce > Headquar ters setup > Parameters > Commerce
shared parameters .
19. Select the Security tab.
20. Under the sub-heading Transaction ser vice legacy proper ties , select the Real-time Ser vice profile
field, and then select the newly created Default value.
21. Select the Identity providers tab.
22. On the Identity providers FastTab, select Add .
23. In the new Issuer row, enter the new Identity provider value https://sts.windows.net/ in the field.
24. Select Save on the Action Pane.
25. Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters .
26. On the General tab, select the Initialize link to configure seed data for Commerce functionality.
NOTE
The installers will not download from their relevant pages the first time a download is attempted. This is because the
installers have only just been placed into the download location and the associated database values do not yet exist.
In Headquarters, when the Download functionality is attempted (for example, Commerce Scale Unit or Modern
POS), an error will display and then an automated upload functionality will be initiated to allow the installers to be
downloaded the second time that the download is attempted. (Wait one minute before attempting to download the
installer again).
The Peripheral Simulator (downloaded on the Hardware profile page in headquarters) will not be available until at
least one Hardware profile has been created and is functional. After that point has been achieved, the following script
can be run.

.\RetailUpdateDatabase.ps1 -envName 'LBDenv1' -UpdateRetailHardwareProfileSelfServicePackage

27. Follow the installation steps for installing the Commerce Scale Unit. For instructions, see Configure and
install Commerce Scale Unit. At multiple locations in this document there will be notes referencing changes
to the instructions for an on-premises deployment. It is important to note each of these changes.
Buy Finance + Operations (on-premises)
11/18/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Microsoft Dynamics 365 Finance + Operations (on-premises) offers a variety of license types to best suit the needs
of your organization. To better understand how Finance + Operations (on-premises) is licensed, please work with
your partner, who can access the Licensing guide on PartnerSource. When you are ready to purchase licenses for
your organization, work with your partner to follow the steps outlined in this topic.

IMPORTANT
On-premises environments are not supported on any public cloud infrastructure, including Azure.

Purchase client access licenses


To run on-premises environments, you must obtain the proper number of client access licenses (CALs) for your
organization per the licensing guide. The CAL purchased for an individual user determines the functionality that the
user has the rights to use. User CALs can be purchased from the Microsoft Volume Licensing Service Center.

Purchase server licenses


A server license is required for every server running Finance + Operations (on-premises). After purchasing your
server licenses, work with your partner to download a license file from the PartnerSource Business Center. Keep
this license file handy, as the details it contains will be used when setting up your Lifecycle Services (LCS) project.
Partners can download a customer's Finance + Operations (on-premises) license file from the PartnerSource
Business Center using these steps:
1. Log on to the PartnerSource Business Center.
2. Enter the customer name or account number in the Find A Customer field, and then click Search .
3. Click the company name of the customer. This opens the Customer Summar y page.
4. Under Registered Products , click Registration Keys .
5. Select version 07 in the Request and Display License Keys For Version field.
6. Click Display License Keys .
7. On the Request License Keys page, select Download Current License/Registration Key .
8. Click Save As in the File Download dialog box, select the folder where you want to download the license file
to in the Save As dialog box, and then click Save .

NOTE
If you cannot see registration keys in PartnerSource Business Center, you will need to ensure that your PartnerSource
Business Center Profile has Can See Registration Keys set to Yes .
Get started with Lifecycle Services (LCS)
To purchase Finance + Operations (on-premises) you must have a Microsoft Online Services ID. The Microsoft
Online Services ID is used to provision an LCS project that contains the necessary artifacts for on-premises
environments. LCS is the service where on-premises environments will be provisioned, Business Process Model
created/uploaded, hotfixes are made available, support cases are entered and managed, license key serial number
activation submitted, etc.
The Microsoft Online Services ID is required to provision and register Finance + Operations (on-premises) into
entity-owned hardware and environment. See the Provisioning guide (linked to below) to complete the
provisioning and registration process. If a Microsoft Online Services ID already exists, the process must be
completed by the Global Administrator. If creating a Microsoft Online Services ID for the first time, the person
initiating the process will be the Global Administrator.
If you have an existing Microsoft Online Services trial or paid subscription, you already have a Microsoft Online
Services ID that was created at the time of sign-up. When you click a link below, choose to sign in with this account
if you want to use this same Azure Active Directory (AAD) tenant for the on-premises environment.
Access to the Provisioning guide can be found here:
Provisioning guide on CustomerSource
Provisioning guide on PartnerSource
After you have logged into LCS, a project will be automatically provisioned for you. The LCS project will allow you
to deploy an on-premises environment. For more details on getting started with your LCS project, see Set up on-
premises projects in Lifecycle Services (LCS).
Finance and Operations apps - operated by 21Vianet
in China
3/7/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Microsoft Dynamics 365 online services operated by 21Vianet is designed to comply with regulatory requirements
in China. The services are a physically separated instance of cloud services operated and transacted by a local
operator, Shanghai Blue Cloud Technology Co., Ltd (“21Vianet ”). This is a wholly owned subsidiary of Beijing
21Vianet Broadband Data Center Co., Ltd. located in mainland China.
Microsoft strives to maintain functional parity between our commercially available service and Finance and
Operations apps operated by 21Vianet in China. However, there are notable exceptions to this, which are affected
by dependent service or partner-solution availability, market priorities, or compliance regulations.

Provisioning
Customers in China have two options from which to select how they want to access Finance and Operations apps.
Services operated by 21Vianet in China - 21Vianet operates and offers Finance and Operations services in
China. This option provides a consistent application experience that is the same as global offerings. This
option also meets the demands of customers who prefer to use online services provided by a local company
that stores their data within China. These services are subject to Chinese laws.
Services operated by Microsoft – This option is for Finance and Operations customers that prefer to use
services managed and delivered by Microsoft. For all new customers and existing customers, if the customer
purchases Microsoft Azure, Dynamics 365, and Office using an Enterprise Agreement, Office 365 and/or
Dynamics 365 can co-exist on the tenant.
There are a few technical limitations during the provisioning of services that need to be taken in to account to avoid
potential issues.

SC EN A RIO REC O M M EN DAT IO N

Purchased Azure, Office 365, and Dynamics 365 via Recommended sequence for provisioning: Office 365 or
OSPA. Dynamics 365 must be provisioned first, followed by Azure.

Purchased Azure via OSPA first and then purchased Customer already has two tenants, one for Azure and another
Office 365 via OSPA. Now purchased Dynamics 365 for Office 365. Dynamics 365 can be added to the tenant
via OSPA. containing Office 365 OSPA.

Purchase Office 365 via OSPA and then purchased Customer started with Office 365 and then added Azure.
Azure via OSPA. Now purchased Dynamics 365 via Dynamics 365 can be provisioned on the same tenant.
OSPA.

Purchased Office 365 via OSPA and plans to add If Office 365 is already provisioned, customer will be able to
Dynamics 365. provision Dynamics 365 on the same tenant.
SC EN A RIO REC O M M EN DAT IO N

Purchased Office 365 via OSSA or CSP and purchased Dynamics 365 needs to be provisioned on a separate tenant.
Dynamics 365.

OSPA = Online Services Premium Agreement


OSSA = Online Services Standard Agreement
CSP = Cloud Solution Provider
For information on provisioning environments, see Create and manage environments in the Power Platform Admin
center.

Features not available


Due to certain technical dependencies, the following features listed will not be available for general availability of
the Dynamics 365 Services operated by 21Vianet. For information about future feature availability, see Business
applications and platform release plans.
Development, build, and testing of customizations will be unavailable in Azure DevOps in
Mainland China . However, use of Azure DevOps on-premises will be available in China in April 2019. Also,
Azure DevOps can be used in other regions. For more information, see Developer guide for Azure China
21Vianet.
Set up and maintain vendor collaboration will be unavailable due to Azure Active Directory limitations.
Certain mobile apps (e.g., Install and configure the Warehousing app overview and Project time entry
mobile workspace) will be unavailable due to the Google Play Store not being available in China; however,
alternatives are being considered.
The mobile platform will not be available because certain App store dependencies are unavailable in
China.
The following Microsoft Dynamics Lifecycle Ser vices (LCS) features will have a different experience or
will be unavailable due to the dependencies that are not available:
APQC Business process modeler (BPM) Librar y will be unavailable. However, base Business
process modeler (BPM) functionality will be available for custom models in April 2019. Search
functionality in the BPM will be unavailable in China.
Electronic repor ting (ER) over view assets will not be available automatically, but can be
manually uploaded from the LCS global asset library.
Code upgrade will be unavailable for upgrades from Dynamics AX 2012.
Ser vice and Suppor t requests will be available through LCS but 21Vianet is the service operator.
For more information, see Support for Dynamics 365 Finance and Operations apps operated by
21Vianet in China.
Extensibility requests will be unavailable.
Hotfix requests will be unavailable.
Dynamics 365 Translation Service overview will not be available.
Embedded Power Apps and connectivity to Microsoft Power Apps and Microsoft Power Automate will
be unavailable.
Data integration using Common Data Service overview will be unavailable.
The following features will not be available due to certain current Azure Active Director y limitations in
China:
The System administration > Setup > B2B Invitation configuration page will not be available due
to business-to-business (B2B) being unavailable in Azure Active Directory in China. For more
information, see What is guest user access in Azure Active Directory B2B.
Conditional access is an Azure Active Directory feature that is available for the Azure Active Directory
Premium 2 SKU. This is unavailable in China.

Additional resources
Dynamics 365 support site for 21Vianet (Chinese)
Support for Dynamics 365 Finance and Operations apps operated by 21Vianet in China
Model-driven apps in Dynamics 365 - operated by 21Vianet in China
Dynamics 365 Privacy statement (Dynamics 365 隐私声明)
Dynamics 365 Service Level agreement (世纪互联在线服务的服务级别协议)
Dynamics 365 Legal information (Dynamics 365 法律信息)
Service terms for Dynamics 365 Lifecycle Services
OSPT of Dynamics 365 (世纪互联在线服务的服务级别协议)
Azure Docs (in Chinese)
Azure China 21Vianet
Finance and Operations apps in France
11/5/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

As of July 2019, Finance and Operations apps, Power Apps, and Power Automate are available in France’s
datacenters. This new deployment option serves customers in regulated industry and commercial organizations
that do business with entities in France that require local data residency. Power BI has been available since March
2019.
The deployment of the Dynamics 365 services in France, are built upon the foundational principles of security,
privacy, compliance, transparency, and reliability, offering French organizations a complete cloud infrastructure and
platform, as well as familiar productivity and business application tools. All of this means that customer data stays
resident within France.
Microsoft strives to maintain functional parity between our commercially available service and Dynamics 365
offerings in France. However, there are few exceptions affected by dependent service or partner-solution
availability, market priorities, or compliance regulations. For more information about these exceptions or for
questions about services in France, contact Microsoft Dynamics Online support.
Upgrade and N-1 support for Retail
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Upgrade and N-1 support have been enabled in the July release of Microsoft Dynamics 365 Retail. N-1 support lets
customers who have stores that run Microsoft Dynamics AX 2012 R3 Cumulative Update 10 (CU10) work with
Headquarters after an upgrade. The main purpose of upgrade and N-1 support is to let AX 2012 R3 customers take
advantage of the benefits of the cloud.
The following features let customers upgrade in a seamless manner:
Users can now perform database upgrade from AX 2012 R3 to Headquarters through the upgrade process.
Users can operate their stores by using the components of AX 2012 R3 CU10.
Pre-upgrade and post-upgrade checklist validations are built into the upgrade process.
The upgrade process has enhanced error handling and messaging, so that customers can quickly debug issues.
Users can use tools to bring forward custom X++ code in their existing Headquarters to the upgraded version
of the headquarters.
The upgrade procedure is largely the same as the procedure for upgrading Retail to the latest version. For details
about upgrade in general, see Upgrade overview: AX 2012 to Dynamics 365 Retail.
Planned downtime is required. Upgrade analysis is done first. The upgrade analysis runs against the Microsoft
Dynamics AX 2012 database and is based on the Microsoft Dynamics Lifecycle Services (LCS) Diagnostic service.
This step identifies tasks that can help make upgrade faster and less expensive. It also identifies the required SQL
configuration, data headquarters cleanup, and deprecated features.
The actual data upgrade process then occurs. The AX 2012 database is moved to Microsoft Azure SQL Database,
and then the data upgrade package is run as usual, through the runbook process. Upgrade validation is then done.
A validation tool is run against the upgraded environment before it's used. This tool does an automated smoke test
to verify that the service is running and accessible, row counts match, financials and inventory reconcile, and so on.
Most of the post-upgrade configuration for channels requires few manual steps. Customers can then use the pre-
upgrade and post-upgrade checklists to learn about the tasks that must be completed. The post-upgrade tasks
include initiating a full sync to the stores from the upgraded database, validating channels, registers, and devices
against the upgraded database, validating transaction synchronization, and validating that N-1 support is in place.
For N-1 support, the customer must install the N-1 package in Headquarters. No setup is required in the stores.
This installation must be done during the upgrade window, after the N-1-related configuration has been completed.
After the Headquarters upgrade and N-1 setup are completed, the N-1 store components can communicate with
Headquarters. No channel-side components must be installed for N-1 support. However, to enable the N-1 store to
communicate with Headquarters, cashiers must change their password the first time that they sign in.
For instructions for N-1 installation, see Phased Rollout (N-1) installation, configuration, and cutover guide.
Phased Rollout (N-1) installation, configuration, and
cutover guide
3/19/2020 • 29 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to set up Phased Rollout (N-1) components so that your Microsoft Dynamics AX 2012 R3
channel components, such as Microsoft Dynamics AX for Retail Modern Point of Sale (MPOS) and Commerce Scale Unit,
or Microsoft Dynamics AX for Retail Enterprise Point of Sale (EPOS), can work with Microsoft Dynamics 365 Commerce
Headquarters.

Key terms
T ERM DESC RIP T IO N

N-1 Async Server Connector Service A component that is used to synchronize data packages between
Headquarters and the AX 2012 R3 channel components.

N-1 Real-time Service A component that supports real-time calls from the AX 2012 R3
channel components to Headquarters.

Overview
The sections in this topic describe the following steps, which you must complete to set up an environment with N-1
components. These steps assume that Headquarters is already deployed, and that an AX 2012 R3 environment is
currently running.
Set up Azure AD accounts – This section explains how to set up the Microsoft Azure Active Directory (Azure AD)
accounts that the N-1 components use to connect to Headquarters.
Configure N-1 components – This section explains how to configure the N-1 components in Headquarters.
Install N-1 components – This section explains how to download and install N-1 components in the existing AX
2012 R3 environment.
Cutover steps to switch to N-1 – This section explains the how to use the new N-1 components to cut an existing
AX 2012 R3 environment over from the AX 2012 R3 headquarters to the Dynamics 365 Headquarters.
Troubleshooting steps – This section describes troubleshooting steps for typical issues.
Required KBs for N-1 – This section lists the Microsoft Knowledge Base articles (KBs) that are required in order to
set up an N-1 environment.
High-level architecture
The following illustration shows a high-level overview of the N-1 setup.
Verify that the N-1 license key is turned on
Before you start to configure and install the N-1 components, make sure that the corresponding license key is turned
on. This license key is automatically turned on during an upgrade from AX 2012 R3 to Microsoft Dynamics 365
Commerce. However, because the steps that follow require this key, you should verify that it's turned on before you
continue.
1. Sign in to Commerce Headquarters, and go to System administration > Setup > License configuration .
2. On the Configuration keys tab, expand the Commerce key, expand the Commerce scheduler key, and verify
that the check box for the Retail Data Commerce Exchange backward compatibility key is selected.

NOTE
If the key isn't turned on, contact Microsoft Support for help turning it on.

Set up Azure AD accounts


IMPORTANT
To help maintain a high level of security across the company, we strongly recommend that you create a new client ID and secret
for this installation. This step requires a new Web App.

1. Generate an Azure Web App to create a client ID and secret for Connector for Microsoft Dynamics AX. For
instructions, see the "Create an Azure Active Directory application" section in Create an Azure Active Directory
Application.
2. After you've finished creating the client ID and secret, the client ID must be accepted in Commerce. Go to System
administration > Setup > Azure Active Director y applications . Enter the client ID in the Client Id column,
enter descriptive text in the Name column, and enter RetailSer viceAccount in the User ID column.

Configure N-1 components


Follow the steps in this section to configure the N-1 components in Headquarters.
Connector for Microsoft Dynamics AX
1. Sign in to Commerce Headquarters, and go to Retail and Commerce > Headquar ters setup > Commerce
scheduler > Connector for Microsoft Dynamics AX .
2. On the Action Pane, select New , and set the following fields.

SEC T IO N F IEL D DESC RIP T IO N SA M P L E VA L UE

Header Profile Enter a unique name for the AXConnect


N-1 profile that you're
setting up. You should
create one profile for each
environment/server where
the AX 2012 R3 Real-time
Service is currently installed.

Header Description Enter descriptive text to Connector for AX2012


help identify the profile.

Connection Server Enter the name of the sampleserver.local


server where the N-1 Real-
time Service will be installed.
(This server is the same
server where the AX 2012
R3 Real-time Service is
currently installed.)

Connection Port Enter the port that the N-1 8017


Real-time Service will use.

Connection Web application name Enter the name to use for Real-timeServiceAX63
the N-1 Real-time Service in
Microsoft Internet
Information Services (IIS).

Connection Protocol Select the protocol that the https


AX 2012 R3 Real-time
Service currently uses.

Connection Common name Enter the friendly name of samplecertificate.local


the certificate that the N-1
Real-time Service uses.
SEC T IO N F IEL D DESC RIP T IO N SA M P L E VA L UE

Connection Passphrase Enter the passphrase to use


for the N-1 Real-time
Service.

Connection Language Select the language that is EN-US


associated with the stores
that are mapped to the N-1
Real-time service.

3. When you've finished, select Save .


Commerce shared parameters
1. Sign in to Headquarters, and go to Retail and Commerce > Headquar ters setup > Parameters >
Commerce shared parameters .
2. On the Security tab, set the following fields.

F IEL D DESC RIP T IO N SA M P L E VA L UE

Real-time Service profile Select the profile that you created on AXConnect
the Connector for Microsoft
Dynamics AX page in the previous
section.

TS password encryption name Enter the algorithm that is used to SHA256


connect to the transaction service. You
should set this field to SHA256 .

Legacy device algorithm Enter the AX 2012 R3 device algorithm. AES

Commerce scheduler parameters


1. Sign in to Headquarters, and go to Retail and Commerce > Headquar ters setup > Parameters >
Commerce scheduler parameters .
2. On the HQ Message Database FastTab, set the following fields.

F IEL D DESC RIP T IO N SA M P L E VA L UE

SQL Server instance name Enter the name of the Microsoft SQL sampleinstance
Server instance that hosts the existing
AX 2012 R3 HQ Message Database.

Server name Enter the name of the server that sampleserver


hosts the existing AX 2012 R3 HQ
Message Database.

Database name Enter the name of the AX 2012 R3 HQ HQMessageDB


Message Database. In AX 2012 R3, the
default name was HQMessageDB .

3. When you've finished, select Save .


Working folders
NOTE
The field values that are described here are the default values that are automatically set when environments are upgraded from AX
2012 R3. However, you should verify that they are correct. These values must be manually entered for environments that haven't
been upgraded from AX 2012 R3.

1. Sign in to Headquarters, and go to Retail and Commerce > Headquar ters setup > Commerce scheduler
> Working folders .
2. Make sure that the following field values are set in the grid.

F IEL D DESC RIP T IO N SA M P L E VA L UE

Name The name of the working folder. File storage for N-1

Description A description of the working folder. File storage for N-1

Download path The network path where the AX 2012 \\sampleserver\Download


R3 Commerce Data Exchange (CDX)
download packages are stored.

Upload path The network path where the AX 2012 \\sampleserver\Upload


R3 CDX upload packages are stored.

3. When you've finished, select Save .


Channel database group

NOTE
The field values that are described here are the default values that are automatically set when environments are upgraded from AX
2012 R3. However, you should verify that they are correct. These values must be manually entered for environments that haven't
been upgraded from AX 2012 R3.

1. Sign in to Headquarters, and go to Retail and Commerce > Headquar ters setup > Commerce scheduler
> Channel database group .
2. For each physical channel database in the AX 2012 R3 environment, on the Action Pane, select New , and set the
following fields.

SEC T IO N F IEL D DESC RIP T IO N SA M P L E VA L UE

Header Name Enter the name of the Default_AX63


channel database group
that is used for the AX 2012
R3 environment.

Header Description Enter a description of the Default group for AX63


channel database group channel database
that is used for the AX 2012
R3 channel environment.

General FastTab Channel schema Select the AX 2012 R3 AX2012R3


schema. This field must be
set to AX2012R3 .
SEC T IO N F IEL D DESC RIP T IO N SA M P L E VA L UE

General FastTab Working folders Select the reference to the workingfolder


working folders record that
is used for the
synchronization of CDX data
packages. You created this
working folders record in
the previous section.

3. When you've finished, select Save .


Channel database

NOTE
The field values that are described here are the default values that are automatically set when environments are upgraded from AX
2012 R3. However, you should verify that they are correct. These values must be manually entered for environments that haven't
been upgraded from AX 2012 R3.

1. Sign in to Headquarters, and go to Retail and Commerce > Headquar ters setup > Commerce scheduler
> Channel database .
2. For each physical channel database in the AX 2012 R3 environment, on the Action Pane, select New , and set the
following fields.

SEC T IO N F IEL D DESC RIP T IO N SA M P L E VA L UE

Header Channel database ID Enter a unique identifier for Default_AX63_Database


the physical channel
database. This value should
be derived from the AX
2012 R3 environment.

Header Channel database group Select the channel database Default_AX63_DatabaseGro


group that the channel up
database is mapped to. This
value should be derived
from the AX 2012 R3
environment.

Header Type Select the type of the Channel database


channel database record.
This field must be set to
Channel database .

Header Data sync interval Select the interval at which


to run the CDX data
synchronization. This field
must be left blank .

Header Username (Case Sensitive) Enter the user name to use channeluser
to connect to the AX 2012
R3 channel database.

Header Password Enter the password to use passphrase


to connect to the AX 2012
R3 channel database.
SEC T IO N F IEL D DESC RIP T IO N SA M P L E VA L UE

Header Database name Enter the name of the AX SampleChannelDB


2012 R3 channel database.

Header Server name Enter the name of the sampleserver


server that hosts the AX
2012 R3 channel database.

Channel FastTab Channel Select Add to add the list of London


channels for Phased Rollout
(N-1) that are mapped to
the channel database. The
values should be derived
from the AX 2012 R3
environment.

3. When you've finished, select Save .


Channel profiles

IMPORTANT
This section applies only if the existing AX 2012 R3 environment uses Retail Server to interact with the channel database. If direct
channel database access is enabled from the AX 2012 R3 MPOS, you can skip this step.

NOTE
The field values that are described here are the default values that are automatically set when environments are upgraded from AX
2012 R3. However, you should verify that they are correct. These values must be manually entered for environments that haven't
been upgraded from AX 2012 R3.

1. Sign in to Headquarters, and go to Retail and Commerce > Channels > Stores > All stores .
2. For each Retail Server that is hosted in the N-1 environment, on the Action Pane, select New , and set the
following fields.

SEC T IO N F IEL D DESC RIP T IO N SA M P L E VA L UE

Header Name Enter a unique name for the Default_AX63_Profile


N-1 channel profile that
you're setting up. You
should create one profile
per environment/server
where you currently have
installed the AX 2012 R3
Retail Server. You should
create one profile for each
environment/server where
the AX 2012 R3 Retail
Server is currently installed.

Profile proper ties Property key Enter the key for the Retail Retail Server URL
Server URL that is used in
the AX 2012 R3
environment. This field must
be set to Retail Ser ver
URL .
SEC T IO N F IEL D DESC RIP T IO N SA M P L E VA L UE

Profile proper ties Property value Enter the Retail Server URL http://localhost"35080/RetailServer/V1
that is used in the AX 2012
R3 environment.

Profile proper ties Property key Enter the key for the Hardware Station URL
Hardware Station URL that
is used in the AX 2012 R3
environment.

Profile proper ties Property value Enter the Hardware Station ipc://localhost
URL that is used in the AX
2012 R3 environment.

3. When you've finished, select Save .


All stores

NOTE
The field values that are described will be set if the Headquarters environment was upgraded from the AX 2012 R3 headquarters.

1. Sign in to Headquarters, and go to Retail and Commerce > Channels > Stores > All stores .
2. For each store that is mapped to the N-1 environment, select the channel ID. Then, on the store details page, on
the General FastTab, set the following fields.

F IEL D DESC RIP T IO N SA M P L E VA L UE

Live channel database Select the channel database that you Default_AX63_Database
mapped the store to and set it up for
earlier.

Channel profile Select the channel profile that you Default_AX63_Profile


mapped the store to and set it up for
in the previous section.

3. When you've finished, select Save .


Initialize the AX 2012 scheduler
1. Sign in to Headquarters, and go to Retail and Commerce > Headquar ters setup > Commerce scheduler >
Initialize AX 2012 retail scheduler .
2. Select OK .
Distribution schedule

NOTE
The field values that are described will be set if the Headquarters environment was upgraded from the AX 2012 R3 headquarters.

1. Sign in to Headquarters, and go to Retail and Commerce > Retail and Commerce IT > Distribution
schedule .
2. In the left pane, select each distribution schedule that has the suffix AX63 . Then, on the Channel database groups
FastTab, make sure that the entries that you created earlier are mapped to the distribution schedule.
Workers
NOTE
The field values that are described will be set if the Headquarters environment was upgraded from the AX 2012 R3 headquarters.

1. Sign in to Headquarters, and go to Retail and Commerce > Employees > Workers .
2. Select the name of each worker who will sign in to the AX 2012 R3 environment. Then, on the worker details page,
on the Commerce tab, on the Commerce FastTab, set the Password field.

Install N-1 components


Before you run the Connector for Microsoft Dynamics AX installers, make sure that the following requirements are met:
The installer requires that the Microsoft .NET Framework version 4.5.1 be installed on the system.
The installers install the Connector for Microsoft Dynamics AX applications only on the following operating
systems. Before you install any component, you must update the operating system with all service packs and
updates that are available for it.
Windows 7 Professional, Enterprise, or Ultimate edition (both x86 and x64 architectures). Home edition and
embedded edition aren't supported.
Windows 8.1 Update 1 Pro or Enterprise edition (both x86 and x64 architectures). Standard edition isn't
supported.
Windows 10 Pro or Enterprise edition (both x86 and x64 architectures). Home edition isn't supported.
Microsoft Windows Server 2012 R2 or Microsoft Windows Server 2016.
Async Server Connector Service
The installer validates that all prerequisites are met. These prerequisites include SQL prerequisites, such as a local
installation of SQL Server, or the alternative prerequisites, such as SQL Command Line Utilities and other required SQL
connectivity installations.
To meet prerequisites, the SQL Server that is connected to must have Full-text search and, at a minimum, support for
Transport Layer Security (TLS) 1.2. For Microsoft SQL Server 2012, Service Pack 3 must be installed, at a minimum. For
Microsoft SQL Server 2014, Service Pack 2 must be installed.
If a system restart is required, the installer shows this requirement. Although the restart is recommended, the installer
can continue without it.
When you're ready, follow these steps to download and install the component.
1. Sign in to Headquarters, and go to Retail and Commerce > Headquar ters setup > Commerce scheduler
> Connector for Microsoft Dynamics AX .
2. Select the connector that you created earlier.
3. On the Action Pane, on the Download tab, select Async Ser ver Connector ser vice to download the installer
file, and then select Configuration file below Async Ser ver Connector ser vice to download the
corresponding configuration file. Make sure that the configuration file is saved next to the installer file.
4. After the installer and configuration files are downloaded, double-click the installer file, and follow these steps:
a. Verify the Application Object Server (AOS) URL (the URL that is used to access Headquarters), and then select
Next .
b. If a specific user is required, enter the user name and password that the service should run as. By default, the
installer automatically generates a service account to use. This approach is more secure and is recommended,
but it can't be used when the database is located on a separate computer. Select Next to continue.
c. Enter the application ID (client ID) and secret that are associated with this Connector for Microsoft Dynamics
AX installation.
d. Select Install .
NOTE
For information about how to correctly generate an Azure Web App to create a client ID and secret, see the "Basics of
Registering an Application in Azure AD" section in Create an Azure Active Directory Application.
When you create the Web App, the initial URI and URL don't have to be any specific value. Only the application ID
(client ID) and secret that are created are important.

5. After an application ID (client ID) and secret are created, the application ID must be accepted in Commerce. Go to
Retail and Commerce > Headquar ters setup > Azure Active Director y applications . Enter the
application ID in the Client Id column, enter descriptive text in the Name column, and enter
RetailSer viceAccount in the User ID column.
6. Sign in to Headquarters, and go to Retail and Commerce > Headquar ters setup > Parameters >
Commerce shared parameters .
7. On the Identity Providers tab, select the provider that has an Issuer value that begins with
HTTPS://sts.windows.net/ . The values on the Relying par ties FastTab are automatically set, based on your
selection.
8. On the Relying par ties FastTab, select Add . Enter the application ID (client ID) that was created for this
installation. Set the Type field to Public and the UserType field to Worker . Then, on the Action Pane, select
Save .
9. On the Action Pane, select Save .
N-1 Real-time service
1. Sign in to Headquarters, and go to Retail and Commerce > Headquar ters setup > Commerce scheduler
> Connector for Microsoft Dynamics AX .
2. Select the connector that you created earlier.
3. On the Action Pane, on the Download tab, select Real-time ser vice for Dynamics AX 2012 R3 to download
the installer file, and then select Configuration file below Real-time ser vice for Dynamics AX 2012 R3 to
download the corresponding configuration file. Make sure that the configuration file is saved next to the setup
file.
4. After the installer and configuration files are downloaded, double-click the installer file, and follow these steps:
a. Verify the AOS URL (the URL that is used to access Headquarters), and then select Next .
b. Select a valid SSL certificate to use for HTTPS communication, and then select Next .
The certificate must use private key storage, and server authentication must be listed in the enhanced key
usage property. Additionally, the certificate must be trusted locally, and it can't be expired. It must be
stored in the personal certificate store location on the local computer.
c. If a specific user is required, enter the user name and password that the application pool should run as. By
default, the installer automatically generates a service account to use. This approach is more secure and is
recommended, but it can't be used when the database is located on a separate computer. Select Next to
continue.
d. Verify the HTTPS port that should be used, and verify that the host name of the computer is correct. Select
Next to continue.
The HTTPS port is listed in the Store system profile. To access the Store system profile, on the Store
details page, on the Store systems FastTab, select the profile ID of the selected Store system. The
installer automatically enters the host name. If, for any reason, the host name must be changed for the
installation, change it here. The host name must be the fully qualified domain name (FQDN) of the system,
and it must match the value that you entered on the Connector for Microsoft Dynamics AX page
earlier in this topic.
e. Enter the application ID (client ID) and secret that are associated with this Connector for Microsoft
Dynamics AX installation. Then select Install .
This application ID and secret can be the same application ID and secret that you used in the Async Server
Connector service installation. For information about how to correctly generate an Azure Web App to
create a client ID and secret, see the "Basics of Registering an Application in Azure AD" section in Create an
Azure Active Directory Application. When you create the Web App, the initial URI and URL don't have to be
any specific value. Only the application ID (client ID) and secret that are created are important.

Cutover steps to switch to N-1


This section gives the recommended step-by-step instructions to switch an existing AX 2012 R3 channel environment
from the AX 2012 R3 headquarters to the Commerce Headquarters. Note that these instructions are generic. Different
implementations will likely have to deviate from these steps to accommodate specific business or technical
requirements.
Prerequisites
Follow these steps to prepare your environment for the cutover.

ST EP DETA IL S T IM EL IN E

1. Deploy Headquarters. Headquarters is up and running. Cloud Weeks or months before the cutover
POS (CPOS) can be used to validate
functionality in the environment.

2. Install the Commerce application (X++) Install the KBs that are listed in the Weeks or months before the cutover
KBs. Required KBs for N-1 section to make
sure all issues that are related to N-1 are
addressed.

3. Set up Azure AD accounts. Follow the instructions in the Set up Weeks or months before the cutover
Azure AD accounts section to create the
accounts that are required for the N-1
components to authenticate against
Headquarters.

4. Configure Headquarters. Follow the instructions in the Configure Weeks or months before the cutover
N-1 components section to configure all
the settings for the N-1 components
before they are installed.

5. Configure Headquarters. Go to Retail and Commerce >


Headquar ters setup > Parameters >
Commerce shared parameters , select
the Security tab, and change the value
in TS password encr yption name to
"SHA256".

6. Install the N-1 components. Follow the instructions in the Install N-1 Weeks or months before the cutover
components section to install the N-1
components. Note that the N-1 Async
Server Connector Service component
should be installed but immediately
turned off to ensure that AX 2012 R3 and
Dynamics 365 CDX packages aren't
mixed.

Preparation
Follow these steps to prepare a few days before the cutover is scheduled.

H O W TO VA L IDAT E T H AT
ST EP DETA IL S T IM EL IN E T H IS ST EP IS DO N E

1. Stop all AX 2012 R3 Make sure that all AX 2012 At least a couple days before All packages in the AX 2012
download jobs. R3 download jobs are the cutover R3 network share for upload
stopped in the AX 2012 R3 jobs are processed, and no
headquarters. new packages appear.

2. Do a full synchronization of Run the CDX download jobs At least a couple days before CDX download jobs are in the
all AX63 CDX download jobs to make sure that the the cutover Available state on the
in Headquarters. packages are generated and Download Sessions page in
dropped in the Azure Blob Headquarters.
storage blob, so that the N-1
Async Server Connector
Service can consume them
during cutover.

Cutover steps
Follow these steps to do the actual cutover.

H O W TO VA L IDAT E T H AT
ST EP DETA IL S T IM EL IN E T H IS ST EP IS DO N E

1. Close all shifts. Make sure that all shifts are After store closing Manually validate with the
closed. stores that the shifts are
closed.

2. Clean up any suspended Make sure that all suspended After the previous step Manually validate with the
transactions. transactions are cleaned up. stores that the shifts are
closed.

3. Synchronize all Make sure that all After the previous step All packages in the AX 2012
transactional data. transactional data is R3 network share for upload
synchronized through the jobs are processed, and no
CDX upload jobs to the AX new packages appear.
2012 R3 headquarters.

4. Disable AX 2012 R3 CDX Make sure that all AX 2012 After the previous step Manually validate through the
upload jobs. R3 upload jobs are disabled, AX 2012 R3 headquarters UI
so that packages are no that the CDX upload jobs are
longer being picked up. disabled.

5. Shut down the AX 2012 R3 Connect to the server that After the previous step Manually validate in IIS that
Real-time Service. hosts the AX 2012 R3 Real- the service is stopped.
time Service, start IIS, right-
click the AX 2012 R3 Real-
time Service, and stop the
service.

6. Run the Reset metadata In Microsoft Dynamics AX, go After the previous step Not applicable
synchronization command to Retail and Commerce >
in Headquarters. Headquar ters setup >
Commerce scheduler >
Connector for Microsoft
Dynamics AX , and select
Reset metadata
synchronization to reset
the HQMessageDB
database in the AX 2012 R3
environment for N-1 cutover.
H O W TO VA L IDAT E T H AT
ST EP DETA IL S T IM EL IN E T H IS ST EP IS DO N E

7. Turn on the N-1 Async Connect to the server that After the previous step The status of download jobs
Server Connector Service. hosts the N-1 Async Server on the Download Sessions
Connector Service, and enable page in Headquarters
the Microsoft Windows changes from Available to
service. Applied .

The following illustration is a visual representation of these steps.

Troubleshooting steps
This section describes some typical issues that you might encounter, and the steps that you can follow to investigate or
recover from them.
Runtime
This section describes troubleshooting steps for errors that you might encounter during the runtime of the application.
Metadata synchronization fails
F IEL D VA L UE

Event Log Microsoft-Dynamics-Commerce-


AsyncServerConnectorService/Operational

Sample Event Log Error Message Async server connector service encounters error in download
timer tick. CorrelationId {4c9cd9a0-d4e3-43e5-80da-
59ea2eb01acf}; Error details:
Microsoft.Dynamics.Retail.AsyncServerConnector.Service.Exceptio
ns.SyncMetadataException: Failed synchronizing metadata. --->
Microsoft.Dynamics.Retail.AsyncServerConnector.Service.Exceptio
ns.MessageDBOperationException: Failed updating metadata in
HQ message DB. ---> System.Data.SqlClient.SqlException: A
connection was successfully established with the server, but then
an error occurred during the login process. (provider: SSL
Provider, error: 0 - The certificate chain was issued by an
authority that is not trusted.) --->
System.ComponentModel.Win32Exception: The certificate chain
was issued by an authority that is not trusted

Troubleshooting Steps This could have happened because the Synch service web.config
connection string has the TrustServerCertificate set to false. To fix
the issue browse the Sync service website and open the
web.config. Find the connectionStrings section, update the
TrustServerCertificate to True if it is false.

Metadata synchronization fails

F IEL D VA L UE

Event Log Microsoft-Dynamics-Commerce-


AsyncServerConnectorService/Operational

Sample Event Log Error Message Async server connector service encounters error in download
timer tick. CorrelationId {73d9d0d3-4d12-42ca-ac65-
3f1f947c7840}; Error details:
Microsoft.Dynamics.Retail.AsyncServerConnector.Service.Exceptio
ns.SyncMetadataException: Failed synchronizing metadata. --->
Microsoft.Dynamics.Retail.AsyncServerConnector.Service.Exceptio
ns.MessageDBOperationException: Failed updating metadata in
HQ message DB. ---> System.Data.SqlClient.SqlException:
Cannot open database "HQMessageDB" requested by the login.
The login failed. Login failed for user 'localhost\RetailAsUser'.

Troubleshooting Steps This could have happened because the user who runs the Async
server connector service does not have access to the HQ
message database. To fix the issue run services.msc, check the
user who runs the Async server connector service. Provide this
user access to HQ message database in SQL.

Metadata synchronization fails, or CDX jobs are successfully downloaded but aren't applied

F IEL D VA L UE

Event Log Microsoft Dynamics AX Retail : Async Client SynchClientService


F IEL D VA L UE

Sample Event Log Error Message Unable to communicate with server for download. Please check
username/password, server and database connections. Error
Details: System.ServiceModel.CommunicationException: An error
occurred while making the HTTP request to
https://localhost:44300/SynchService/DownloadService.svc
. This could be due to the fact that the server certificate is not
configured properly with HTTP.SYS in the HTTPS case. This could
also be caused by a mismatch of the security binding between
the client and the server. ---> System.Net.WebException: The
underlying connection was closed: An unexpected error occurred
on a send. ---> System.IO.IOException: Authentication failed
because the remote party has closed the transport stream.

Troubleshooting Steps This could have happened because of the following reasons.
1) The user ID and password that we provide in async client does
not match with the channel database User ID and password that
we provide in AX.
2) The async service end point is not reachable.
https://localhost:44300/SynchService/DownloadService.svc
. To fix this issue, 1) Launch the Async client configuration utility
(AsyncClientConfigurationUtility.exe) from the async client install
location. Under the
Async Server connection tab -> Authentication
information (case sensitive)
-> Update the Channel database ID, User name and Password
fields as per the values provided under N-1 channel database (
Retail and Commerce -> Headquarters setup -> Channel
database
) in AX. 2) Now click on Test connection in the utility. If the
connection is successful, restart the Async client service. If the
connection fails, go to N-1 channel database (
Retail and Commerce -> Headquarters setup -> Channel
database
) in AX, update the Username and password, save. Go to
Retail scheduler parameters in AX and click
Reset metadata synchronization . This will populate the HQ
message database with the new values. Repeat step 1 again. 3) If
the async server end point (
https://localhost:44300/SynchService/DownloadService.svc
) is not reachable, check the bindings of the service and make
sure there is a certificate associated. If the issue still exists, check
that the Working folders were specified for all the Channel
database group’s that were linked to AX2012R3 retail channel
schema.

CDX jobs are successfully downloaded but aren't applied

F IEL D VA L UE

Event Log Microsoft Dynamics AX Retail : Async Client SynchClientService


F IEL D VA L UE

Sample Event Log Error Message Exception during DownloadAgent.Execute. Error Details:
System.IO.FileNotFoundException: Could not load file or
assembly 'Microsoft.Dynamics.Retail.StoreConnect.Request.Base,
Version=6.3.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
The system cannot find the file specified. File name:
'Microsoft.Dynamics.Retail.StoreConnect.Request.Base,
Version=6.3.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' at
Microsoft.Dynamics.Retail.SynchClient.Core.DownloadAgent.Appl
ySessionFileToClientDatabase(SessionManager sessionMgr, String
fileName) at
Microsoft.Dynamics.Retail.SynchClient.Core.DownloadAgent.Proc
essDownloadSession(DownloadSession session) at
Microsoft.Dynamics.Retail.SynchClient.Core.DownloadAgent.Exec
ute()

Troubleshooting Steps This could have happened because the AX63 store connect
components were not installed on the environment. To fix the
issue install the AX63 store connect components on the
environment that is running the async client component.

N-1 Async Server Connector Service communication exception

F IEL D VA L UE

Event Log Microsoft Dynamics AX Retail : Async Client SynchClientService

Sample Event Log Error Message Unable to communicate with server for download. Please check
username/password, server and database connections. Error
Details: System.ServiceModel.CommunicationException: An error
occurred while making the HTTP request to
https://localhost:44300/SynchService/DownloadService.svc
. This could be due to the fact that the server certificate is not
configured properly with HTTP.SYS in the HTTPS case. This could
also be caused by a mismatch of the security binding between
the client and the server. ---> System.Net.WebException: The
underlying connection was closed: An unexpected error occurred
on a send. ---> System.IO.IOException: Authentication failed
because the remote party has closed the transport stream.

Troubleshooting Steps Make sure the HQ Message DB has data. Use the asyncClient
configuration tool to validate the connection is successful.

AX 2012 R3 MPOS activation fails with an error on step 1

F IEL D VA L UE

Event Log Microsoft Dynamics AX Retail : Retail Server RetailServer

Sample Event Log Error Message Microsoft.Dynamics.Commerce.Runtime.UserAuthenticationExcep


tion: An error occurred during logon. --->
Microsoft.Dynamics.Commerce.Runtime.ConfigurationException:
The published channel can not be found in local database. Please
make sure at least 1 retail channel is published to this DB
through AX.

MPOS Error on Activation Screen DA1002: A server side error occurred that prevents user from
logging on. Please check the server log for detailed information
or contact your IT support.
F IEL D VA L UE

Troubleshooting Steps Make sure the CDX download jobs ran successfully and the
channel database has data.

AX 2012 R3 MPOS activation fails with an error on step 2

F IEL D VA L UE

Event Log Microsoft Dynamics Retail Modern POS

Sample Event Log Error Message Dynamics-Error: LoginViewModel ActivateDevice Logon failed.
ErrorMessage: ; ErrorCode:
Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactio
nServiceMethodCallFailure;

MPOS Error on Activation Screen DA2001

Troubleshooting Steps Device you are trying to activate is already active. Please
deactivate the device and try the activation.

AX 2012 R3 MPOS activation fails with an error on step 2

F IEL D VA L UE

Sample Event Log Error Message Exception occurred: [04/19/2018 19:26:51]


Microsoft.Dynamics.Commerce.Runtime.UserAuthenticationExcep
tion: An error occurred during logon. --->
Microsoft.Dynamics.Commerce.Runtime.StorageException: Failed
to read from the database. See inner exception for details.
DatabaseErrorCode: 0 --->
Microsoft.Dynamics.Commerce.Runtime.Data.DatabaseException:
Invalid object name 'crt.EMPLOYEEPERMISSIONSVIEW'. --->
System.Data.SqlClient.SqlException: Invalid object name
'crt.EMPLOYEEPERMISSIONSVIEW'. at
System.Data.SqlClient.SqlConnection.OnError(SqlException
exception, Boolean breakConnection, Action'1
wrapCloseInAction) at
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsP
arserStateObject stateObj, Boolean callerHasConnectionLock,
Boolean asyncClose)

MPOS Error on Activation Screen DZ1001

Troubleshooting Steps Device you are trying to activate is already active. Please
deactivate the device and try the activation.

AX 2012 R3 MPOS activation fails with an error on step 9

F IEL D VA L UE

Event Log Microsoft Dynamics Retail Modern POS

Sample Event Log Error Message Dynamics-Error: LoginViewModel ActivateDevice Logon failed.
ErrorMessage: Sorry, something went wrong with the encryption
on your device. Please contact your system administrator.;
ErrorCode:
MICROSOFT_DYNAMICS_POS_DATAENCRYPTIONERROR;

MPOS Error on Activation Screen DA3122: Sorry, something went wrong with the encryption on
your device. Please contact your system administrator.
F IEL D VA L UE

Troubleshooting Steps Check the Real-time Service profile filed in the CDX Backward
compatibility section of the store. This must be set to the RTS
profile that you created for N-1.

Required KBs for N-1


The following list describes all the KBs that are required for N-1 to work correctly.
Dynamics 365 Retail – Microsoft Dynamics 365 7.2 headquarters
K B N UM B ER T IT L E

4095190 Expose RetailSharedParameter's TransactionServiceProfileID in the


RetailSharedParameters form as it is required to enable N-1
functionality when customer did not follow th official upgrade
process to move data from 6.3 to D365

4095192 Expose RetailSharedParameter's TSPasswordEncryption field in the


RetailSharedParameters form as it is required to enable N-1
functionality when customer did not follow th official upgrade
process to move data from AX6.3 to D365

4095209 The Real-timeServiceAX63 N-1 component's webconfig contains


an invalid authentication type name. This causes issue when the
component tries to authenticate with the transaction service in
D365

4095189 RetialTransactionServiceProfile table's Protocol column is not


being synced to the old version channel databases from the new
version D365 AX database.

4095191 The user is not allowed to set the retail server url to be http
based URL as only secured urls are allowed. This prevents the
user from connecting to old (6.3) version retail servers while
running in backwardcompatiility mode.

4132456 [Upgrade & N-1][Designer] Number pad height should be


extensible

4095926 Upgrade & N-1: Return order fails from 63MPOS as the
transaction was not found on a N-1 non upgrade environment.

4095664 Allow Microsoft Dynamics AX 2012 clients connecting to AX7.2


HQ to create new customers.

4132454 N-1 version of 1070 fails due to duplicate record exception


caused by the CompanyImage_AX63 subjob

4131243 When running D365 Retail in N-1 mode, the user is not able to
set the HardwareStationURL using the AX client hence may not
be able to configure the 6.3 hardwaresation properly

4338120 Async service connector installer should use provided HQ


message db name instead of always using a default name
regardless of the HQ message database name provided by the
user.
K B N UM B ER T IT L E

4337834 When running D365 in N-1 backward compatibility the N-1


(6.3)version MPOS may fails while adding or updating customer
from MPOS due to missing methods in RetailTransactionService.

4337864 When running D365 in N-1 backward compatibility the N-1


(6.3)version MPOS may fails during login or payment when
attempting to load or use the hardware profile payment
merchant property.

4132453 Running the N-1 version of the Product download


job(1040_AX63) fails when moving data to the InventDim table
in the 6.3 version channel database

4206905 POS reports throw errors when they are run in non-upgrade N-1
environment.

4133289 Running the N-1 version of the Product - Refunds from Journal
or existing transactions failing

4161086 CDX table distribution ignores 'FieldValue' link types added on


root table nodes and hence does not use that information for
filtering the table usign the provided condition (x++ fix)

4161099 CDX table distribution ignores 'FieldValue' link types added on


root table nodes and hence does not use that information for
filtering the table usign the provided condition (Binary changes)
Upgrade the Retail channel extension to the latest
Retail SDK
2/13/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides information about how to upgrade to the latest update of the Retail SDK from earlier releases.
The overall process and the supported scenario information are included, but this topic doesn’t provide detailed
instructions of every step in the process. This topic is applicable for Dynamics 365 Commerce and Dynamics 365
Finance.
The following sections will walk through how to manually move your extension to the new Retail SDK, however you
can do this using any source control system like Azure DevOps or Git.

Update the Retail SDK


When you update the Retail SDK by applying a new binary hotfix, a new Update folder is created inside the existing
RetailSDK folder and a copy of the updated SDK is created. If you deploy a new environment, the new Retail SDK is
located in the services volume of the virtual machine (VM) or in the C drive of the downloadable VHD.
Retail SDK components
The Retail SDK updates consist mainly of the following components:
Assets: Configuration file changes related to extensions.
Build tools: Customization package and versioning settings.
Database: Extension DB scripts.
Documents: Instructions to run the samples.
Package: Deployment package.
Payment externals: Payment packaging folders.
Payment: Payment sample code.
POS: Modern and Cloud POS App code and samples.
References: All binary reference and commerce analyzer proxy tool.
Sample extensions: Extension sample projects.

Upgrade scenarios
Upgrade can be completed for one of the following scenarios:
Update to a specific binary hotfix.
Upgrade your custom code.
Upgrade to the latest application release.
The process for SDK upgrade varies between versions. With version 7.3 and higher, we sealed all of the components
and customizations must be completed only by using the extension points. This should result in an easier code
upgrade experience. However, if you are upgrading from 7.0, 7.1, or 7.2 and if you have made inline changes, you
must move the inline changes to extensions. This will require additional work.

NOTE
When upgrading to newer version, do not remove any of the existing Commerce Scale Unit, Commerce Runtime, Proxy,
Hardware station, CDX, or Database extension code/APIs. Your POS client may depend on this code and removing it will
cause runtime exception errors. If you want to remove it then during code upgrade, make sure that the client code is also
updated to support this change, otherwise runtime failure will occur. As a best practice, extension code must be written in
such a way that it is always backward compatible.

The following tables provide some high-level information about which version the code is sealed. If you are
upgrading from an unsealed version to a sealed version, you should identify all of your customizations and move
any inline customizations to extensions. To move the inline customizations, verify that you have all of the necessary
extension points to do this. If you don't, submit an extensibility request.

NOTE
You might have to rewrite some of the POS inline changes that were completed in 7.1 when you upgrade to version 7.3 or
higher.

A P P L IC AT IO N
VERSIO N C RT SEA L ED H W S SEA L ED P O S SEA L ED DB SEA L ED P RO XY SEA L ED

Application Yes Yes Yes Yes Yes


release 8.1

Application Yes Yes Yes Yes Yes


release 8.0

Application 7.3 Yes Yes Yes Yes Yes

July 2017 release Yes Yes Yes Yes No


(Application 7.2)

Release 1611 Yes No No No No


(Application 7.1)

February 2016 No No No No No
release
(Application 7.0)

Upgrade the channel extension from 7.3 to a higher version


If you are completing a code upgrade, the following Retail SDK components must be upgraded. Each of these
components are folders inside the Retail SDK.

NOTE
Code upgrade can be completed using a source control/merge tool. We recommend using a source control tool for this
process so that you can track the changes and revert if required. If you are not using any source control, before you upgrade
the code, be sure to make a back up of the old and new Retail SDK folder.

Assets: If you have modified any of the following extension config files to include your custom assemblies,
you must move those changes to the same config files in the new Asset folder .
CommerceRuntime.Ext.config - CRT extensions.
CommerceRuntime.MPOSOffline.Ext.config - CRT offline extensions.
HardwareStation.Extension.config - Hardware station and payment extensions.
RetailProxy.MPOSOffline.ext.config - Proxy extensions.
Build tools: The Build tools folder contains the files related to packaging, build settings and pfx, and snk
files. Merge or update the following files if you have made any changes in the older versions:
Customization.settings
Microsoft.Dynamics.RetailSdk.Build.props
Any custom pfx or snk files that you have created.
Database: Copy and drop all your custom SQL scripts: ...\RetailSDK\Database\Upgrade\Custom
Online Store: If you have an online store web project or online extension code, include it in this folder.

NOTE
Deployable package will not include online store code for packaging.

Payment externals : Copy and paste all of your payment extension assemblies to the following Payment
assemblies folders:
IPaymentDeviceAssemblies
IPaymentProcessorAssemblies
PaymentWebFiles
Payments: Merge all of your payment extension projects into this folder.

NOTE
If you created a new payment extension project and did not modify anything in this folder, you can include it as part
of the build and packaging process. Update dirs.proj in the RetailSDK folder to build your custom project. Next,
update the Customization.settings file with the payment extension drop location so that during package creation
your custom project is built. Make sure to include the extension as part of the packaging.

POS: If you have any POS extensions, including the generated proxy, copy your POS extensions from …
\RetailSDK\POS\Extensions to the new Retail SDK POS extension folder, RetailSDK\POS\Extensions. After you
copy the extensions, update and merge the extension.json file inside the POS\Extensions folder with the new
POS extensions folder you copied.
For example, if you copied the CustomExtension folder, then you would update extension.json as shown
below.
{
"extensionPackages": [
{
"baseUrl": "SampleExtensions"
},
{
"baseUrl": "SampleExtensions2"
},
{
"baseUrl": "CustomExtension"
}
]
}

You should also update tsconfig.json with the custom extension package so that the POS can compile the changes
during build.
Reference: Copy all of your extension output assemblies, such as Commerce runtime , Hardware
station , proxy , and any external assemblies, to the reference folder. Include any assemblies that you want
included as part of your deployment and packaging.
Commerce runtime (CRT) and Commerce Scale Unit extensions: Copy all of your CRT and extension
projects under the Retail SDK folder. Make sure to include the CRT and RS extension solution file details in
the dirs.proj file under the RetailSDK folder so that during msbuild, all of the extension project is built and
the output path for the project assemblies is set to the RetailSDK\Reference folder.
Hardware station (HWS) and payment extensions: Copy all of your hardware station (HWS) and
payment extension projects under the Retail SDK folder. Make sure to include the HWS and payment
extension solution file details in the dirs.proj file under the RetailSDK folder so that during msbuild, all of
the extension projects are built and the output path for the project assemblies is set to the
RetailSDK\Reference folder.
Retail proxy extensions: Copy all of your proxy extension projects under the Retail SDK folder. Make sure
to include the proxy solution file details in the dirs.proj file under the RetailSDK folder so that during
msbuild, all of the extension projects are built and the output path for the project assemblies is set to the
RetailSDK\Reference folder.

NOTE
Run msbuild on the root of the Retail SDK folder. Use the Microsoft Visual Studio developer command-line tool to generate
the deployable packages.

After you have upgraded all of the components, deploy the Commerce deployable packages, validate the
deployment, and add the Retail SDK files to the repository.

Upgrade the channel extension from 7.2 to a higher version


The steps mentioned in the previous section, Upgrade the channel extension from 7.3 to higher versions ,
will remain same for all the components except the Commerce proxy. In 7.2, you must have completed inline
changes in the proxy project if you have CRT with RS extension and the typescript proxy was auto-generated based
on the customization.settings file.
To upgrade your proxy to 7.3, complete the steps in the topic, Typescript and C# proxies for Retail point of sale
(POS) and then move the proxy to the Retail SDK folder and then update the config file,
RetailProxy.MPOSOffline.ext.config .
Upgrade the channel extension from 7.1 to a higher version
In 7.1, you should have completed most of the POS and Proxy customizations inline. To upgrade to higher a
application release, you should move all of your inline changes to extensions. If it is a binary hotfix upgrade, then
you must perform a code merge with the new Retail SDK and then regenerate the package.

Upgrade the channel extension from 7.0 to a higher version


In 7.0, you should have completed most of the customizations inline. To upgrade to higher a application release, you
should move all of your inline changes to extensions. If it is binary hotfix upgrade, you must perform a code merge
with the new Retail SDK and regenerate the package.

Generate a deployable package for validation


Complete the steps in the topic, Create deployable packages, to generate the deployable package for validation.
What's new or changed in Finance and Operations
apps home page
3/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Application releases
To see what's new or changed in each release of a Finance and Operations app, see the following topics:
Finance: What's new or changed in Dynamics 365 Finance
Supply Chain Management: What's new or changed in Dynamics 365 Supply Chain Management
Commerce: What's new or changed in Dynamics 365 Commerce
Human Resources: What's new or changed in Dynamics 365 Human Resources

Platform updates
To see what's new or changed in the Platform updates for Finance and Operations apps, see the following topic:
What's new or changed in Platform updates

Lifecycle Services releases


To see what's new or changed in Lifecycle Services, see the following topic:
What's new or changed in Lifecycle Services (LCS)
What's new or changed in Dynamics 365 Commerce
3/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Releases of Dynamics 365 Commerce


Dynamics 365 Commerce released to public preview in October 2019. To see what's new or changed in each
release of Commerce, see the following topics.

VERSIO N B UIL D N UM B ER A UTO - UP DAT E AVA IL A B IL IT Y L EA RN M O RE

10.0.10 10.0.420 May 2020 What's new or changed in


Dynamics 365 Commerce
version 10.0.10

10.0.9 10.0.383 April 2020 What's new or changed in


Dynamics 365 Commerce
version 10.0.9

10.0.8 10.0.319 February 2020 What's new or changed in


Dynamics 365 Commerce
version 10.0.8

Releases before February 2020


To see what's new or changed in releases before Februry 2020, see the following topics.

REL EA SE VERSIO N B UIL D N UM B ER AVA IL A B IL IT Y L EA RN M O RE

Microsoft Dynamics 10.0.7 10.0.283 January 2020 What's new or


365 Retail changed in Dynamics
365 Retail version
10.0.7

Microsoft Dynamics 10.0.6 10.0.234 November 2019 What's new or


365 Retail changed in Dynamics
365 Retail 10.0.6

Microsoft Dynamics 10.0.5 10.0.197 October 2019 What's new or


365 for Finance and changed in Dynamics
Operations 365 for Finance and
Operations version
10.0.5 (October 2019)
REL EA SE VERSIO N B UIL D N UM B ER AVA IL A B IL IT Y L EA RN M O RE

Microsoft Dynamics 10.0.4 10.0.136 July 2019 What's new or


365 for Finance and changed in Dynamics
Operations 365 for Finance and
Operations version
10.0.4 (July 2019)

Microsoft Dynamics 10.0.3 10.0.107 June 2019 What's new or


365 for Finance and changed in Dynamics
Operations 365 for Finance and
Operations version
10.0.3 (June 2019)

Microsoft Dynamics 10.0.2 10.0.80 May 2019 What's new or


365 for Finance and changed in Dynamics
Operations 365 for Finance and
Operations version
10.0.2 (May 2019)

Microsoft Dynamics 10.0.1 10.0.51 April 2019 What's new or


365 for Finance and changed in Dynamics
Operations 365 for Finance and
Operations version
10.0.1 (April 2019)

Microsoft Dynamics 10.0 10.0.8 April 2019 What's new or


365 for Finance and changed in Finance
Operations and Operations
version 10.0 (April
2019)

Microsoft Dynamics 8.1.3 8.1.227 January 2019 What's new or


365 for Finance and changed in Dynamics
Operations 365 for Finance and
Operations version
8.1.3 (January 2019)

Microsoft Dynamics 8.1.2 8.1.195 December 2018 What's new or


365 for Finance and changed in Dynamics
Operations 365 for Finance and
Operations version
8.1.2 (December
2018)

Microsoft Dynamics 8.1.1 8.1.170 October 2018 What's new or


365 for Finance and changed in Dynamics
Operations 365 for Finance and
Operations version
8.1.1 (October 2018)

Microsoft Dynamics 8.1 8.1.136 October 2018 What's new or


365 for Finance and changed in Dynamics
Operations 365 for Finance and
Operations version
8.1 (October 2018)
REL EA SE VERSIO N B UIL D N UM B ER AVA IL A B IL IT Y L EA RN M O RE

Microsoft Dynamics 8.0 8.0.30, 8.0.35 April 2018 What's new or


365 for Finance and changed in Dynamics
Operations 365 for Finance and
Operations version
8.0 (April 2018)

Microsoft Dynamics 7.3 7.3.11971.56116 December 2017 What's new or


365 for Finance and changed in Dynamics
Operations, Enterprise 365 for Finance and
edition Operations, Enterprise
edition 7.3

Microsoft Dynamics July 2017 7.2.11792.56024 June 2017 What's new or


365 for Finance and changed in Dynamics
Operations, Enterprise 365 for Finance and
edition Operations, Enterprise
edition (July 2017)

Microsoft Dynamics 1611 7.1.1541.3036 November 2016 What's new or


365 for Operations changed in Dynamics
365 for Operations
version 1611
(November 2016)

Microsoft Dynamics 7.0.1 7.0.1265.23014 May 2016 What's new or


AX changed in Dynamics
AX application version
7.0.1 (May 2016)

Microsoft Dynamics 7.0 7.0.1265.3015 February 2016 What's new or


AX changed in Dynamics
AX 7.0 (February
2016)
Preview features in Dynamics 365 Commerce 10.0.11
(July 2020)
4/15/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

IMPORTANT
Functionality noted in this topic is available as part of a preview release. The content and the functionality are subject to
change. For more information about preview releases, see One version service updates FAQ.

This topic lists features that are either new or changed in Microsoft Dynamics 365 Commerce 10.0.11. This version
has a build number of 10.0.464 and is available as follows:
Preview release: April 2020
General availability (self-update): May 2020
Auto-update: July 2020

Features included in this release


The following features are included in this release. The feature titles link to additional information on the Release
plans site.
POS sign-in page improvements
Auto charges by channel
Improved support for serial number tracking dimension in store inventory processes
Notifications and mini-cart
Theme extensions
New events and placeholders for transactional emails
Commerce SDK updated to Visual Studio 2017

Additional resources
Platform updates for Finance and Operations apps
Dynamics 365 Commerce 10.0.11 includes platform updates. To learn more, see Platform updates for version
10.0.11 of Finance and Operations apps.
Bug fixes
For information about the bug fixes that are included in this update, sign in to Lifecycle Services (LCS) and view the
KB article
Dynamics 365: 2020 release wave 1 plan
Wondering about upcoming and recently released capabilities in any of our business apps or platform?
Check out the Dynamics 365: 2020 release wave 1 plan. We've captured all the details, end to end, top to bottom, in
a single document that you can use for planning.
Removed and deprecated features
The Removed or deprecated features topic describes features that have been removed or deprecated for Finance
and Operations apps.
A removed feature is no longer available in the product.
A deprecated feature is not in active development and may be removed in a future update.
Before any feature is removed from the product, the deprecation notice will be announced in the Removed or
deprecated features topic 12 months prior to the removal.
For breaking changes that only affect compilation time, but are binary compatible with sandbox and production
environments, the deprecation time will be less than 12 months. Typically, these are functional updates that need to
be made to the compiler.
What's new or changed in Dynamics 365 Commerce
10.0.10 (May 2020)
4/9/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic lists features that are either new or changed in Microsoft Dynamics 365 Commerce 10.0.10. This version
has a build number of 10.0.420 and is available as follows:
Preview release: March 2020
General availability (self-update): April 2020
Auto-update: May 2020

Features included in this release


The following features are included in this release. The feature titles link to additional information on the Release
plans site.
Azure AD support for POS sign-in
Channel-side calculations for available physical inventory for stores
Change mode of delivery operation for POS
Upsell and cross-sell using available discounts by enabling store associates to view promotions in POS
Email a receipt from the journal
Auto-charges improvements to support fees based on channel

Additional resources
Platform updates for Finance and Operations apps
Dynamics 365 Commerce 10.0.10 includes platform updates. To learn more, see Platform updates for version
10.0.10 of Finance and Operations apps.
Bug fixes
For information about the bug fixes that are included in this update, sign in to Lifecycle Services (LCS) and view the
KB article.
Dynamics 365: 2020 release wave 1 plan
Wondering about upcoming and recently released capabilities in any of our business apps or platform?
Check out the Dynamics 365: 2020 release wave 1 plan. We've captured all the details, end to end, top to bottom, in
a single document that you can use for planning.
Removed and deprecated features
The Removed or deprecated features topic describes features that have been removed or deprecated for Finance
and Operations apps.
A removed feature is no longer available in the product.
A deprecated feature is not in active development and may be removed in a future update.
Before any feature is removed from the product, the deprecation notice will be announced in the Removed or
deprecated features topic 12 months prior to the removal.
For breaking changes that only affect compilation time, but are binary compatible with sandbox and production
environments, the deprecation time will be less than 12 months. Typically, these are functional updates that need to
be made to the compiler.
What's new or changed in Dynamics 365 Commerce
10.0.9 (April 2020)
3/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic lists features that are either new or changed in Microsoft Dynamics 365 Commerce 10.0.9. This version
has a build number of 10.0.383 and is available as follows:
Preview release: February 2020
General availability (self-update): March 2020
Auto-update: April 2020
The following features are included in this release. The feature titles link to additional information on the Release
plans site.
Enable resetting of receipt numbers at the beginning of the fiscal year
Auto-charges improvements to support fees based on channel
Improved inbound and outbound inventory operations in store
Set preferred payment methods for returns
Support for bulk URL redirects
Task management in HQ and POS for first-line workers and managers

Additional resources
Platform update 33
Microsoft Dynamics 365 Commerce 10.0.9 includes Platform update 33. To learn more, see What's new and
changed in Platform update 33.
Bug fixes
For information about the bug fixes included in each of the updates that are part of 10.0.7, sign in to Lifecycle
Services (LCS) and view the KB article.
Dynamics 365: 2020 release wave 1 plan
Wondering about upcoming and recently released capabilities in any of our business apps or platform?
Check out the Dynamics 365: 2020 release wave 1 plan. We've captured all the details, end to end, top to bottom, in
a single document that you can use for planning.
Removed and deprecated features
The Removed or deprecated features topic describes features that have been removed or deprecated for Finance
and Operations apps.
A removed feature is no longer available in the product.
A deprecated feature is not in active development and may be removed in a future update.
Before any feature is removed from the product, the deprecation notice will be announced in the Removed or
deprecated features topic 12 months prior to the removal.
For breaking changes that only affect compilation time, but are binary compatible with sandbox and production
environments, the deprecation time will be less than 12 months. Typically, these are functional updates that need to
be made to the compiler.
What's new or changed in Dynamics 365 Commerce
10.0.8 (February 2020)
3/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic lists features that are either new or changed in Microsoft Dynamics 365 Commerce 10.0.8. This version
has a build number of 10.0.319 and is available as follows:
Preview release: December 2019
General availability (self-update): January 2020
Auto-update: February 2020
The following features are included in this release. The feature titles link to additional information on the Release
plans site.
Invoke Dynamics 365 Fraud Protection during e-commerce checkout
Recommendations
Product recommendations in POS
Azure Active Directory business to customer tenant per channel

Additional resources
Platform update 32
Microsoft Dynamics 365 Commerce 10.0.8 includes Platform update 32. To learn more, see What's new and
changed in Platform update 32.
Bug fixes
For information about the bug fixes included in each of the updates that are part of 10.0.7, sign in to Lifecycle
Services (LCS) and view the KB article.
Dynamics 365: 2019 release wave 2 plan
Wondering about upcoming and recently released capabilities in any of our business apps or platform?
Check out the Dynamics 365: 2019 release wave 2 plan. We've captured all the details, end to end, top to bottom, in
a single document that you can use for planning.
Removed and deprecated features
The Removed or deprecated features topic describes features that have been removed or deprecated for Finance
and Operations apps.
A removed feature is no longer available in the product.
A deprecated feature is not in active development and may be removed in a future update.
Before any feature is removed from the product, the deprecation notice will be announced in the Removed or
deprecated features topic 12 months prior to the removal.
For breaking changes that only affect compilation time, but are binary compatible with sandbox and production
environments, the deprecation time will be less than 12 months. Typically, these are functional updates that need to
be made to the compiler.
Removed or deprecated features in previous
releases
4/17/2020 • 50 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific
business functions. For more information about these changes, see Dynamics 365 Licensing Guide.

IMPORTANT
This topic is no longer updated. To see a current list of features that have been removed or deprecated from Finance and
Operations apps, search for "Removed or deprecated features" content that relates to the app you're using.

This topic describes features that have been removed or deprecated from Dynamics 365 for Finance and
Operations and previous releases of that product.
A removed feature is no longer available in the product.
A deprecated feature is not in active development and may be removed in a future update.
This list is intended to help you consider these removals and deprecations for your own planning.
Detailed information about objects in Finance and Operations apps can be found in the Technical reference
reports. You can compare the different versions of these reports to learn about objects that have changed or
been removed in each version of Finance and Operations apps.

Finance 10.0.7 with Platform update 31


Chinese voucher types without Account groups selection

Reason for deprecation/removal Changed to the feature with account groups selection.

Replaced by another feature? Yes

Product areas affected Application

Deployment option All

Status Deprecated: By December 1, 2020, we plan to no longer


support Chinese voucher types setup without Account
groups selection. Find more details about new feature design
in What's new in 10.0.7

Finance and Operations 10.0.6 with Platform update 30


DimensionHash.getHash(str _message )
Reason for deprecation/removal Windows is deprecating the use of SHA1, as documented in
Windows Enforcement of SHA1 Certificates.

Replaced by another feature? Yes

Product areas affected Application

Deployment option All

Status Deprecated: By April 1, 2020, developers must use the new


API.

Hash.ComputeSHA1Hash(string message )

Reason for deprecation/removal Windows is deprecating the use of SHA1, as documented in


Windows Enforcement of SHA1 Certificates.

Replaced by another feature? Yes

Product areas affected Platform

Deployment option All

Status Deprecated: By April 1, 2020, developers must use the new


API.

FormDateTimeControl.setUtcString()

Reason for deprecation/removal We are retiring the setUtcString() method, because a better
replacement method is available.

Replaced by another feature? Yes

Product areas affected Platform

Deployment option All

Status Deprecated: By October 1, 2020, we plan to no longer


support the setUtcString() method. Developers should be
using the setUtcDateTime() method instead.

Blacklist report (IT ) – Feature reference IT -00001

Reason for deprecation/removal Not legally required.

Replaced by another feature? No

Product areas affected Italian localization


Deployment option All

Status Deprecated: By October 1, 2020, we plan to no longer


support the Blacklist repor t (IT) – Feature reference
IT-00001 .

Domestic tax report – Feature reference IT -00003

Reason for deprecation/removal Not legally required.

Replaced by another feature? No

Product areas affected Italian localization

Deployment option All

Status Deprecated: By October 1, 2020, we plan to no longer


support the Domestic tax repor t – Feature reference
IT-00003 .

Finance and Operations 10.0.5 with Platform update 29


US Payroll tax updates

Reason for deprecation/removal We are retiring tax updates for the US Payroll functionality
due to low usage and enhanced functionality that is now
offered via strategic integrations.

Replaced by another feature? Yes

Product areas affected Payroll

Deployment option All

Status Deprecated: By October 1, 2021, we plan to no longer


provide tax updates to US Payroll customers. The
functionality will remain in the product, however
enhancements will no longer keep the functionality up to
date and any product defects will be evaluated on a case-by-
case basis. For more information, see Tax updates being
retired for US Payroll feature in Microsoft Dynamics 365 for
Finance and Operations.

Data management staging clean up

Reason for deprecation/removal Does not meet the core requirements that are needed for
scheduling periodic cleanup.

Replaced by another feature? Yes, the Job history cleanup feature is being added to meet
the scenarios holistically.
Product areas affected Data management

Deployment option All

Status Deprecated: Target timeframe for the functionality to be


removed is December 2020.

Finance and Operations 10.0.4 with Platform update 28


France: FEC Accounting data export in XML

Reason for deprecation/removal Replaced by TXT format, French FEC audit file is available
through General ledger > Periodic tasks > Data
expor t .

Replaced by another feature? Yes

Product areas affected General ledger

Deployment option All

Status Deprecated. Target timeframe for the functionality to be


removed is July 2020.

Legacy navigation bar

Reason for deprecation/removal Header alignment with other Dynamics and Office products.
For more details, see Updated navigation bar that aligns with
the Office header.

Replaced by another feature? Starting in Platform update 24, a restyled navigation bar that
features search was introduced.

Product areas affected Web client

Deployment option All

Status Deprecated: Starting in April 2020, the legacy navigation bar


will no longer be available. Until that point, customers can
revert to the legacy navigation bar through the Client
performance options page.

Finance and Operations 10.0.2 with Platform update 26


Legacy default action behavior
Reason for deprecation/removal The legacy behavior for default actions in grids results in an
unexpected column having the default action link after grid
columns have been reordered via personalization. The new
sticky default action feature corrects this. For more details,
see Sticky default actions in grids.

Replaced by another feature? Starting in Platform update 21, a feature for "sticky default
actions" was introduced. This feature can be enabled on the
Client performance options page.

Product areas affected Grids in the web client

Deployment option All

Status Deprecated: Starting in April 2020, sticky default actions will


be the default behavior, without a mechanism to revert to
the legacy behavior.

Legacy "is one of" filtering experience

Reason for deprecation/removal The "is one of" filtering experience went through a redesign
in Platform update 22,with the plan for this to eventually be
the only "is one of" filtering experience.

Replaced by another feature? Starting in Platform update 22, an improved "is one of"
filtering experience became available on the Client
performance options page. For more information, see
Optimized is one of filtering experience.

Product areas affected Web client

Deployment option All

Status Deprecated: Starting in April 2020, the improved "is one of"
experience will be the default behavior, without a mechanism
to revert to the legacy behavior.

Parameter to enable sales orders with multiple project contract funding sources
Support for creating project-based sales orders where the project contract has multiple funding sources is
enabled with the Project management parameters setting Allow sales orders for project with multiple
funding sources . By default, this parameter is not enabled.

Reason for deprecation/removal The functionality will always be enabled after the parameter is
removed.

Replaced by another feature? No. The functionality to support project-based sales orders
with multiple funding sources will always be enabled.
Product areas affected The Allow sales orders for projects with multiple
funding sources parameter will be removed. The following
methods will be modified when the parameter is removed:
ctrlSalesOrderTable method in ProjStatusType class,
validate method for ProjId field, and run method in
SalescreateOrder form. The following methods will be
deprecated when the parameter is removed:
IsSalesOrderAllowedForMultipleFundingSources in
ProjTable table file,
IsAllowSalesOrdersForMultipleFundingSourcesParam
Enabled method in ProjTable table file,
AllowSalesOrdersForMultipleFundingSources data field
in ProjParameters form and ProjParameterEntity files,
IsAssociatedToMultipleFundingSourcesContract
private method in ProjTable table file.

Deployment option All

Status Deprecation is planned for the April 2020 release wave.

Legacy workflow reports for tracking and instance status

Reason for deprecation/removal The legacy workflow reports for tracking and instance status
are being deprecated because they are no longer referenced
from the navigation. The report names are
WorkflowWorkflowInstanceByStatusReport and
WorkflowWorkflowTrackingReport.

Replaced by another feature? The workflow history form can be used instead.

Product areas affected Web client

Deployment option All

Status Deprecated: Target timeframe for the functionality to be


removed is April 2020.

Finance and Operations 10.0.1 with Platform update 25


Deprecated APIs and potential breaking changes
Deriving from internal classes is deprecated

Reason for deprecation/removal Before Platform update 25, it was possible to create a class or
table that derives from an internal class/table that is defined
in another package/module. This is not a safe coding practice.
As of Platform update 25, the compiler will display a warning.

Replaced by another feature? The compiler warning will be replaced by an error in Platform
update 26. This change is backward compatible at runtime,
which means that Platform update 25 or newer can be
deployed on any sandbox or production environment
without the need to modify custom code. This change only
affects development and compile time.
Product areas affected Visual Studio development tools

Deployment option All

Status Deprecated: The warning will become a compilation error in


Platform update 26.

Overriding internal methods is deprecated

Reason for deprecation/removal Before Platform update 25, it was possible to override an
internal method in a derived class that is defined in another
package/module. This is not a safe coding practice. As of
Platform update 25, the compiler will display a warning.

Replaced by another feature? This warning will be replaced by a compile error in Platform
update 26. This change is backward compatible at runtime,
which means that Platform update 25 or newer can be
deployed on any sandbox or production environment
without the need to modify custom code. This change only
affects development and compile time.

Product areas affected Visual Studio development tools

Deployment option All

Status Deprecated: The warning will become a compilation error in


Platform update 26.

Finance and Operations 10.0.0 with Platform update 24


Renaming released products

Reason for deprecation/removal When you use the Rename primar y key function to
change the ItemId of a released product, only direct foreign
key references are updated. Any other references to the
released product, such as from production orders, will retain
the old ItemId. As a result, there could be inconsistent data
that will eventually block business processes.

Replaced by another feature? No.

Product areas affected Product information management

Deployment option All

Status Removed as of Finance and Operations 10.0.0 with Platform


update 24. (If and only if you need to repair data corruption
caused by a previous rename of the primary key of a
released product, please contact Microsoft Support to
request temporary removal of this restriction.)

Finance and Operations 8.1.3 with Platform update 23


SQL Server Reporting Services ReportViewer Control
Customers can use the Expor t action provided by the embedded SQL Server Reporting Services (SSRS)
ReportViewer control to download documents produced by Finance and Operations applications. This HTML-
based presentation of the report offers users a non-paginated preview of the document.

Reason for deprecation/removal The non-paginated nature of the HTML-based preview


experience does not deliver fidelity with the physical
documents ultimately produced by Finance and Operations.
By fully embracing PDF as the standard format for business
documents, users are able to take advantage of a modern
viewing experience with improved performance when
producing application reports.

Replaced by another feature? Going forward, PDF documents will be the default format for
reports rendered by Finance and Operations.

Product areas affected This change does not impact customer scenarios where
reports are distributed electronically or sent directly to
printers.

Deployment option All

Status Deprecated: A removal date has not been set for this feature.
The functionality to automatically preview application reports
using an embedded PDF viewer is planned for the May 2019
Platform update.

Client KPI controls


Embedded key performance indicators (KPIs) could be modeled in Visual Studio by a developer and further
customized by the end user.

Reason for deprecation/removal The native client controls used to define KPIs have low
customer uptake and rely on a developer to add trackable
metrics.

Replaced by another feature? PowerBI.com service delivers world-class tooling for defining
and managing KPIs based on data from external sources. In
an upcoming release, we plan to enable you to embed
solutions hosted on PowerBI.com in application workspaces.

Product areas affected This update will prevent developers from introducing new KPI
controls in Visual Studio designer.

Deployment option All

Status Deprecated: A removal date has not been set for this feature.

Deprecated APIs and future breaking changes


Field groups containing invalid field references
Reason for deprecation/removal It is possible for table metadata definitions to have field
groups containing invalid field references. If deployed, this
can cause runtime failures in Financial Reporting and SQL
Server Reporting Services (SSRS). This issue is currently
categorized as a compiler warning rather than an error,
meaning that the deployable package creation and
deployment can proceed without fixing the issue. To fix this
issue:

1. Remove the invalid field reference from the table field


group definition.

2. Recompile.

3. Ensure any warnings or errors are addressed.

Replaced by another feature? This warning will be replaced by a compile error in the future.

Product areas affected Visual Studio development tools

Deployment option All

Status Deprecated: The warning is a compile-time error with


platform updates for version 10.0.11 of Finance and
Operations apps.

Complete list
To access the full list of APIs that are being deprecated, see Deprecation of methods and metadata elements.

Finance and Operations 8.1 with Platform update 20


Batch transfer rules for subledger journal account entries
The Synchronous transfer mode is being deprecated in the General ledger parameters. This mode is replaced by
Asynchronous and scheduled batch only, which already exist as options for transfer. For additional information,
see the General Ledger Parameters – Batch transfer rules blog.

Reason for deprecation/removal We are removing the synchronous option due to


performance impact to the system.

Replaced by another feature? Asynchronous and scheduled batch are options to use in
place of Synchronous.

Product areas affected General Ledger, Accounts payable, Accounts Receivable,


Procurement, Expense

Deployment option All

Status Deprecated: Target timeframe for the functionality to be


removed is the 10.0 version.

Electronic reporting for Russia


Feature for configuring .txt and .xml file formats of declarations.
Reason for deprecation/removal Replaced with Electronic reporting.

Replaced by another feature? Yes.

Product areas affected General Ledger

Deployment option All

Status Removed as of Finance and Operations 8.1 with Platform


update 20.

Financial reports generator for Russia


A tool for setting up data collection for accounting and tax reports, and to export data to XLS and DOC report
templates. Functional parts: Export data to XLS and DOC report templates, queries, fixed requisites are removed.

Reason for deprecation/removal Removed parts are replaced with Electronic reporting.

Replaced by another feature? Yes. Financial reports setup user interface should be used for
setting up data collection rules by GL accounts or tax
registers. Export data to various file types, fixed requisites
and query-like data collection rules should be configured in
Electronic reporting.

Product areas affected General ledger.

Deployment option All

Status Removed as of Finance and Operations 8.1 with Platform


update 20.

Integration with external providers for sending electronic reporting through communication channels for
Russia
Feature exporting generated electronic files of declarations to folder for further sending to official providers of
electronic reporting as well as importing state back.

Reason for deprecation/removal Replaced with electronic messages configurable feature.

Replaced by another feature? Yes.

Product areas affected General Ledger, Tax

Deployment option All

Status Removed as of Finance and Operations 8.1 with Platform


update 20.

Profit tax register wizard


Feature for creating templates for new profit tax registers. This feature creates X++ objects for new registers,
which are then created as templates with the appropriate calculation logic added in.
Reason for deprecation/removal Feature is not compatible with the Finance and Operations
extensibility model.

Replaced by another feature? No

Product areas affected Tax

Deployment option All

Status Removed as of Finance and Operations 8.1 with Platform


update 20.

Finance and Operations 8.0 with Platform update 15


No features have been removed or deprecated with this release. Platform update 15 is cumulative and contains
new or changed features from Platform update 13, Platform update 14, and Platform update 15.

Finance and Operations, Enterprise edition 7.3 with Platform update


12
Personalized product recommendations
Starting February 15, 2018, retailers will no longer be able to display personalized product recommendations on
a point of sale (POS) device. For more information, see Product recommendations overview.

Reason for deprecation/removal We are removing the current version of the product
recommendation service as we redesign this feature with a
better algorithm and newer retail-oriented capabilities.

Replaced by another feature? No. However, after Spring 2018, we plan to bring back this
feature to leverage a new recommendation service.

Product areas affected Personalized product recommendations in POS.

Deployment option All

Status Removed as of February 15, 2018. This affects customers


running Dynamics 365 for Operations 1611 and later.

Extension of the list of Electronic reporting (ER ) functions


The possibility to introduce custom functions to be used in the ER expression builder (for more information, see
Extend the list of Electronic reporting (ER) functions) is not supported any more. Due to changes of the ER APIs,
the API to call built-in functions from the ER expression builder became internal and can’t be extended any
longer.

Reason for deprecation/removal Code sealing initiative


Replaced by another feature? None. Whenever a new built-in function is needed, a new
extension request must be addressed to the ER framework
team.

As a temporary work around while the requested function is


under development by the ER team, the required logic can be
programmed as a method of a custom application class. This
method can be accessed in an ER expression as a property of
the added ER data source of the Application\Class type
that refers to that custom application class.

Product areas affected Electronic reporting framework

Deployment option All

Status Removed as of Finance and Operations, Enterprise edition


7.3.

Inventory by item group and Inventory by inventory dimension aging reports


These two reports are no longer supported in Finance and Operations. Instead, the Inventor y aging report can
be used to improve the user experience.

Reason for deprecation Duplicate functionality

Replaced by another feature? Yes. The two reports have been replaced by the Inventor y
aging report.

Product areas affected Inventory management, Cost management

Deployment option All

Status Deprecated: The menu items for the two reports have been
removed in version 7.3. However, the code for the reports
remains in the product. The plan is to remove the code in a
future release.

Power BI content packs available on AppSource


The Cost management , Financial performance , and Retail channel performance content packs, available
on the Microsoft AppSource site, are deprecated as a consequence of product updates in Microsoft Power BI.
System administration forms used to deploy these content packs to PowerBI.com are also being deprecated in
Finance and Operations.

Reason for deprecation/removal Product updates in Microsoft Power BI.

Replaced by another feature? The Cost management , Financial performance , and


Retail channel performance content packs, available on
the AppSource site, are being replaced by analytical
applications which allow for solution integrations at the
database level. For more information about analytical
applications, see Embedded Power BI in workspaces.
Product areas affected Cost management, Finance, and Retail

Deployment option Cloud only (Integration with PowerBI.com is not supported in


on-premises deployments.)

Status Deprecated: Target timeframe for the functionality removal is


Q2 2018.

Standard UI in data management workspace


The standard UI in data management is the legacy UI, which is the default UI presented to the users when they
visit the data management workspace.

Reason for deprecation/removal We are investing in providing new user experiences in the
new UI.

Replaced by another feature? The new UI called Enhanced views is replacing the old UI.

Product areas affected Data management workspace

Deployment option All

Status Deprecated: Target timeframe for the functionality to be


removed is Q2 2018.

Excise, Sales Tax, Service Tax for India


These taxes have been subsumed into Indian GST.

Reason for removal or deprecation These taxes have been subsumed into Indian GST.

Replaced by another feature? Indian GST

Product areas affected Tax

Deployment option All modules

Status Deprecated: A removal date has not been set for this feature.

File Validation Utility (FVU ) for India

Reason for removal or deprecation Lack of customer usage

Replaced by another feature? No

Product areas affected Indian withholding tax

Deployment option All modules


Status Deprecated: A removal date has not been set for this feature.

TDS/TCS certificate for India


Users can download this from the government portal.

Reason for removal or deprecation Lack of customer usage

Replaced by another feature? No

Product areas affected Indian withholding tax

Deployment option All modules

Status Deprecated: A removal date has not been set for this feature.

Export/import (EXIM ) incentive scheme for India

Reason for removal or deprecation Lack of customer usage

Replaced by another feature? No

Product areas affected Import and export

Deployment option All modules

Status Deprecated: A removal date has not been set for this feature.

Dynamics 365 for Retail 7.2


Personalized product recommendations
Starting February 15, 2018, retailers will no longer be able to display personalized product recommendations on
a point of sale (POS) device. For more information, see Product recommendations overview.

Reason for deprecation/removal We are removing the current version of the product
recommendation service as we redesign this feature with a
better algorithm and newer retail-oriented capabilities.

Replaced by another feature? No. However, after Spring 2018, we plan to bring back this
feature to leverage a new recommendation service.

Product areas affected Personalized product recommendations in POS.

Deployment option All

Status Removed as of February 15, 2018. This affects customers


running Dynamics 365 for Retail 7.2 and later.
Finance and Operations, Enterprise edition July 2017 with Platform
update 8
Currency conversion for accounting and reporting currencies
Currency conversion for accounting and reporting currencies was introduced when the euro was introduced.

Reason for deprecation/removal Limited usage and addition of the Copy legal entity
functionality as a replacement.

Replaced by another feature? No, but the Copy legal entity and Configurations features
were added to make it easier to move to a company that has
changing core requirements.

Product areas affected Financial management

Status Deprecated: A removal date has not been set for this feature.

Warehouse mobile devices portal


Warehouse mobile devices portal (WMDP) was a standalone component that was intended for on-premises self-
deployment. This component is no longer supported in Finance and Operations. A native app that improves the
user experience has replaced the functionality of WMDP.

Reason for deprecation/removal Duplicate functionality.

Replaced by another feature? Yes. This feature has been replaced by Finance and
Operations - Warehousing. For more information about
setup and prerequisites, see Install and configure the
Warehousing app overview.

Product areas affected Warehouse management, Transportation management

Deployment option Warehouse mobile devices portal (WMDP) was a standalone


component that was intended for on-premises self-
deployment.

Status Deprecated: Target timeframe for the functionality to be


removed is Q4 2019.

Advanced bank reconciliation matching rule for manual matching


A matching rule was used to select and mark a bank document when documents were manually matched in the
reconciliation worksheet.

Reason for deprecation/removal Limited usage.

Replaced by another feature? No. Column filtering capabilities should be used to find
documents for reconciliation.

Product areas affected Cash and bank management


Deployment option All

Status Removed as of July 2017.

Dynamics 365 for Operations 1611 with Platform update 3


AEB payment formats for Spain
The Consejo Superior Bancario payment formats were used to send remittance files to the bank for customer
payments and vendor payments. The content of these formats was determined by the Asociación Española de
Banca. It covers Cuaderno 19, 32, 58, 34.

Reason for deprecation/removal The payment formats are no longer used.

Replaced by another feature? Yes, ISO20022 Credit transfer and Direct debit payment
formats for Spain

Product areas affected Accounts payable, Accounts receivable

Status Deprecated: A removal date has not been set for this feature.

Bank payments transfer for Lithuania


Bank payment transfers were generated and printed by using the Payment transfer (LT) export format for
Lithuania. The Lithuanian market began to use LITAS, the unified electronic banking system, in 2005.

Reason for deprecation/removal The payment formats are no longer used.

Replaced by another feature? Yes, ISO20022 Credit transfer payment format for Lithuania

Product areas affected Accounts payable

Status Deprecated: A removal date has not been set for this feature.

BBS Direkte Remittering payment formats for Norway


BBS Direkte Remittering payment formats include customer payment collection export (direct debit) and return
message import.

Reason for deprecation/removal The payment formats are no longer used.

Replaced by another feature? The AvtaleGiro customer payment format for Norway can be
used to generate direct debit messages. Return message
import will be implemented in future releases.

Product areas affected Accounts payable, Accounts receivable

Status Deprecated: A removal date has not been set for this feature.

Chart of Accounts tool for Spain


This tool is used when a chart of accounts in Spain requires major changes. Users can import a new chart of
accounts in Microsoft Excel or text format, and can also import financial statements.

Reason for deprecation/removal Limited usage

Replaced by another feature? No

Product areas affected General ledger

Status Deprecated: A removal date has not been set for this feature.

Dom80 payment format for Belgium


Legacy Belgian payment format for payment collection (direct debit).

Reason for deprecation/removal The payment format is no longer used.

Replaced by another feature? Yes, ISO 20022 Direct debit payment format for Belgium

Product areas affected Accounts receivable

Status Deprecated: A removal date has not been set for this feature.

DTA/EZAG payment formats for Switzerland


DTA/EZAG formats are integrated into the ESR system, because they can carry on the reference number. Because
the reference number isn’t mandatory, these formats can be used to process any vendor payments. These
formats are used by companies that have a bank account in a location other than “Postfinance.”

Reason for deprecation/removal The payment formats are no longer used.

Replaced by another feature? Yes, ISO20022 Credit transfer payment format for
Switzerland

Product areas affected Accounts payable

Status Deprecated: A removal date has not been set for this feature.

EDIFACT -DIRDEB payment format for Austria


EDIFACT-DIRDEB payment format for payment collection (direct debit).

Reason for deprecation/removal The payment format is no longer used.

Replaced by another feature? Yes, ISO 20022 Direct debit payment format for Austria

Product areas affected Accounts receivable

Status Deprecated: A removal date has not been set for this feature.
EDIVAT for Belgium
EDIVAT is an obsolete Belgian standard for electronic declaration via secure mail. Dynamics AX 2012 retains the
read-only solution to enable access to the historical data.

Reason for deprecation/removal The functionality is no longer used.

Replaced by another feature? No

Product areas affected General ledger

Status Deprecated: A removal date has not been set for this feature.

eGiro EDIFACT CREMUL payment import format for Norway


eGiro is based on the international UN EDIFACT CREMUL (Multiple Credit Advice Message) standard that is used
for automatic posting of customer payments. In Dynamics AX, eGiro is implemented as a customer payment
import format.

Reason for deprecation/removal The payment format is no longer used.

Replaced by another feature? No. The format will be replaced by ISO 20022 statement
import formats in future releases.

Product areas affected Accounts receivable

Status Deprecated: A removal date has not been set for this feature.

External inventory for Poland


Evidence of goods that are taken from a vendor for sales without purchase. Goods that are handled in external
inventory don’t affect standard inventory, and can be sold and then purchased automatically. This process
creates real inventory movements.

Reason for deprecation/removal Replaced by another feature

Replaced by another feature? Yes, the core Inbound consignment functionality

Product areas affected Accounts payable, Inventory management

Status Deprecated: A removal date has not been set for this feature.

Financial reports generator for Eastern Europe


A tool is used to set up data collection for accounting and tax reports, and to export data to XLS and DOC report
templates.

Reason for deprecation/removal Limited usage

Replaced by another feature? No. The tool will be replaced by Electronic reporting
configurations in future releases.
Product areas affected General Ledger

Status Deprecated: A removal date has not been set for this feature.

Import of customer payment transactions for Finland


You can select an import format for Finnish payments to import customer payment transactions from an external
file that the bank provides.

Reason for deprecation/removal The payment format is no longer used.

Replaced by another feature? No. The format will be replaced by ISO 20022 statement
import formats in future releases.

Product areas affected Accounts receivable

Status Deprecated: A removal date has not been set for this feature.

Import of payment transactions into a general ledger journal for Finland


A format that is specific to Finland is used to import accounting transactions into the general ledger.

Reason for deprecation/removal The payment format is no longer used.

Replaced by another feature? No. The format will be replaced by ISO 20022 statement
import formats in future releases.

Product areas affected Accounts receivable

Status Deprecated: A removal date has not been set for this feature.

Integration with Isabel synchronized (CIS ) for Belgium


Isabel is the framework for electronic banking in Europe and is a de-facto standard in Belgium.

Reason for deprecation/removal Integration with Isabel client has been discontinued.

Replaced by another feature? No. The payment formats that are no longer used are
replaced by ISO20022 Credit transfer payment format for
Belgium.

Product areas affected Accounts payable

Status Deprecated: A removal date has not been set for this feature.

Modifications in the chart of accounts and accounting rules for Spain


This feature is used for changes in the chart of accounts and accounting rules in Spain. It maps accounts to help
transform the old chart of accounts into the new chart of accounts, and compares the previous fiscal year with
the new fiscal year, even if they were posted to different account numbers.
Reason for deprecation/removal Limited usage

Replaced by another feature? No

Product areas affected General ledger

Status Deprecated: A removal date has not been set for this feature.

Pagamento Fornittori vendor payment format


Legacy Italian payment format for credit transfers.

Reason for deprecation/removal The payment format is no longer used.

Replaced by another feature? Yes, ISO20022 Credit transfer payment format for Italy

Product areas affected Accounts payable

Status Deprecated: A removal date has not been set for this feature.

Payment export formats for Estonia


The Telehansa and Teleservice formats are used for bank payment export.

Reason for deprecation/removal The payment formats are no longer used.

Replaced by another feature? Yes, ISO20022 Credit transfer payment format for Estonia

Product areas affected Accounts payable

Status Deprecated: A removal date has not been set for this feature.

Payment file archive for Norway


When payment files are generated, the file archive automatically archives all files that are created, even files that
were previously written or read.

Reason for deprecation/removal Replaced by another feature

Replaced by another feature? Yes, Electronic reporting archived jobs

Product areas affected Accounts payable, Accounts receivable, Organization


administration

Status Deprecated: A removal date has not been set for this feature.

Payment import formats for Estonia


The Telehansa and TeleTeenus formats are used for bank payment import.
Reason for deprecation/removal The payment formats are no longer used.

Replaced by another feature? No. The formats will be replaced by ISO 20022 statement
import formats in future releases.

Product areas affected Accounts receivable

Status Deprecated: A removal date has not been set for this feature.

Payroll information in Human Resources


Human Resources Payroll information

Reason for deprecation/removal This functionality has been replaced by core Payroll and
Human Resources pages.

Replaced by another feature? Benefits , Earnings , and other related pages that were
previously in US Payroll have been reconfigured, and are now
part of the core Human Resources configuration to help
support external payroll processing. This functionality is
accessed by using the Human Resources 1 > Payroll
configuration key.

Product areas affected Human Resources, Payroll

Status Removed as of Dynamics 365 for Operations version 1611.

Performance management goal workflow


Performance management includes goal management and integration with performance reviews.

Reason for deprecation/removal Performance management was redesigned, and the number
of goal pages was reduced to simplify the process.

Replaced by another feature? No. Goals are visible to managers through the Manager Self
Service portal, and can be changed and viewed by the
manager.

Product areas affected Human capital management

Status Removed as of Dynamics 365 for Operations version 1611.

Postgirot and Postgirot Utland payment formats for Sweden


Postgirot and Postgirot Utland payment formats for Sweden.

Reason for deprecation/removal The payment formats are no longer used.

Replaced by another feature? Yes, ISO20022 Credit transfer payment format for Sweden

Product areas affected Accounts payable


Status Deprecated: A removal date has not been set for this feature.

Radio frequency identifier


Radio Frequency Identification (RFID) is a data-collection technology that uses electronic tags to store
identification data and a no-line-of-sight requirement reader to capture the identification data.

Reason for deprecation/removal Low customer usage and a limited feature set.

Replaced by another feature? No

Product areas affected Inventory management

Status Removed as of Dynamics 365 for Operations 1611.

Report about state invoices numbering for Latvia


Latvian legislation provides specific rules about the numbering of sales invoices. The functionality lets you assign
specific numbers to sales invoices, based on the user or user group. You can then generate a report or an XML
file. You can also print a report about invoice numbers that are used.

Reason for deprecation/removal The state invoice numbering no longer has to be maintained.
The report about used invoice numbers is no longer
required.

Replaced by another feature? No

Product areas affected Accounts receivable

Status Deprecated: A removal date has not been set for this feature.

Set up the names of the manager and general accountant of a company for Lithuania
The names of the manager and the general accountant of a company can be specified in the company
information and used in different local report printouts.

Reason for deprecation/removal Replaced by another feature

Replaced by another feature? Yes, the setup of officials can be used for the same purpose.

Product areas affected Accounts payable, Accounts receivable, Cash and bank
management

Status Deprecated: A removal date has not been set for this feature.

Shipping carrier interface

Reason for deprecation/removal Duplicate functionality


Replaced by another feature? Partially replaced by Transportation management

Product areas affected Sales and marketing, Inventory management

Status Removed as of Dynamics 365 for Operations version 1611.

Telepay payment formats for Norway


Telepay payment formats include vendor payment export (credit transfer) and customer payment collection
(direct debit).

Reason for deprecation/removal The payment formats are no longer used.

Replaced by another feature? Yes, ISO20022 Credit transfer payment format and
AvtaleGiro customer payment format for Norway

Product areas affected Accounts payable, Accounts receivable

Status Deprecated: A removal date has not been set for this feature.

Vendor payment export formats for Finland


Two formats for exporting payments are available for Finland. LM02 (FI) is used for domestic payments, and
LUM2 (FI) is used for foreign payments.

Reason for deprecation/removal The payment formats are no longer used.

Replaced by another feature? Yes, ISO20022 Credit transfer payment format for Finland

Product areas affected Accounts payable

Status Deprecated: A removal date has not been set for this feature.

Warehouse management II

Reason for deprecation/removal The Warehouse management II solution (WMS II) that was
available in the Inventor y management module duplicates
functionality that is in the Warehouse management
module that was released in Dynamics AX 2012 R3.

Replaced by another feature? The Warehouse management module that was released in
AX 2012 R3, Dynamics AX 2012 R3 CU8, and Dynamics AX
2012 R3 CU9 replaces the Warehouse management II
features. The new module has more advanced features and
more flexible warehouse management processes than
Warehouse management II.

Product areas affected Inventory management, Sales and marketing, Procurement


and sourcing
Status Removed as of Dynamics 365 for Operations version 1611.

Worker reminders in Human Resources


Human Resources Payroll information

Reason for deprecation/removal Low usage

Replaced by another feature? No

Product areas affected Human resources

Status Removed as of Dynamics 365 for Operations version 1611

Workflow for creating goals


A workflow for managing the creation of employee goals is one of several workflows that were available to help
coordinate the performance management process.

Reason for deprecation/removal Performance management has been completely redesigned


in Finance and Operations.

Replaced by another feature? The redesigned Performance management feature gives


more control over the content of the goals, the
measurements that are used to track progress, and the
attachment of supporting documentation. Goals can be
stored as templates and then reused. This feature can help
you set up additional goals for your employees more quickly.

Product areas affected Human capital management

Status Removed as of Dynamics 365 for Operations version 1611.

Dynamics AX 7.0
Ability to cancel changes to a vendor invoice

Reason for deprecation/removal Performance enhancement

Replaced by another feature? No

Product areas affected Accounts payable

Status Removed as of Dynamics AX 7.0.

AIF, AxD, and AxBC integrations


In Application Integration Framework (AIF), data can be exchanged with external systems through business logic
that is exposed as services. Dynamics AX includes services that are based on documents and .NET Business
Connector (AxBC). A document is created by using XML. The XML includes header information that is added to
create a message that can be transferred into or out of Dynamics AX. Examples of documents include sales
orders and purchase orders. However, almost any entity, such as a customer, can be represented by a document.
Services that are based on documents use the Axd <Document> classes.

Reason for deprecation/removal The architecture of AIF and AxDs could not be scaled to a
cloud service. There were performance issues around bulk
import.

Replaced by another feature? This feature is replaced by the Data Import/Export


framework, which supports recurring bulk import/export. For
AxBC, we recommend that you use the actual tables.

Product areas affected AxDs, AxBCs, and AIF

Status Removed as of Dynamics AX 7.0.

Billing code rate scripts


Billing scripts were used to calculate billing rates for billing codes. This scripts required custom development in
the C Sharp or Visual Basic programming language. In the current version of Dynamics AX, the billing code
rate scripts are not supported.

Reason for deprecation/removal The support for the custom C Sharp or Visual Basic scripts
was not added in Dynamics AX 7.0.

Replaced by another feature? No

Product areas affected Public sector, Accounts receivable

Status Removed as of Dynamics AX 7.0.

BOMs without BOM versions


When the BOM versions configuration key was disabled, bill of materials (BOM) versions were hidden in all
forms, and the system forced a 1:1 relationship between released products and BOMs. In the current version of
Dynamics AX, the BOM versions configuration key can't be disabled.

Reason for deprecation/removal Using a configuration key to control BOM versions doesn't
scale in a cloud environment.

Replaced by another feature? No

Product areas affected Product information management, Inventory management

Status Removed as of Dynamics AX 7.0.

Brazilian Bordero
Specific method of payment for Brazilian companies

Reason for deprecation/removal Support for the Brazilian Bordero method of payment has
been discontinued from Brazilian localization
Replaced by another feature? No

Product areas affected Accounts payable

Status Deprecated: A removal date has not been set for this feature.

Brazilian Sintegra statement


Federal tax statement for ICMS tax

Reason for deprecation/removal This statement is no longer applicable in some Brazilian


states.

Replaced by another feature? No. Users can use Generic Electronic reporting tool to
configure the statement if required under specific situations.

Product areas affected Fiscal books

Status Deprecated: A removal date has not been set for this feature.

Brazilian SCAN contingency mode for NF -e


(SCAN) contingency environment is used to generate, export, and import the status of a Nota Fiscal eletrônica
(NF-e) when the environment of Secretaria da Fazenda (SEFAZ) is not available.

Reason for deprecation/removal This method of contingency is no longer applicable in all


Brazilian states

Replaced by another feature? No

Product areas affected Accounts receivable

Status Deprecated: A removal date has not been set for this feature.

Business Analyzer
This mobile application let users review key business metrics.

Reason for deprecation/removal This functionality has been replaced by another feature.

Replaced by another feature? The Monitor financial performance content pack for
Microsoft Power BI will include key financial metrics that were
previously available in Business Analyzer.

Product areas affected General ledger

Status Deprecated: The use of Business Analyzer has been


deprecated.

Business statistics
The setup of business statistics inquiries that can help you analyze the performance of the organization
Reason for deprecation/removal Legacy approach to business intelligence (BI), low customer
usage, and a limited feature set

Replaced by another feature? New BI solutions for the current version of Dynamics AX

Product areas affected Procurement and sourcing, Accounts payable, Sales and
marketing, Accounts receivable

Status Removed as of Dynamics AX 7.0.

Change document date function in Invoice approval journal

Reason for deprecation/removal Low usage

Replaced by another feature? Yes. The document date on the posted vendor transaction
can be changed.

Product areas affected Accounts payable

Status Removed as of Dynamics AX 7.0.

ClieOp03 payment format for the Netherlands

Reason for deprecation/removal The format is no longer applicable in the Netherlands,


because it has been replaced by SEPA functionality.

Replaced by another feature? SEPA payments export

Product areas affected All modules

Status Deprecated: A removal date has not been set for this feature.

Compliance Center
The Compliance Center was an Enterprise Portal site for managing the documentation requirements for
compliance initiatives that are related to the Sarbanes-Oxley law.

Reason for deprecation/removal Lack of customer usage. Microsoft SharePoint includes the
same capability that was available in the Compliance Center.

Replaced by another feature? No

Product areas affected Compliance and internal controls

Status Removed as of Dynamics AX 7.0.

Connector for Microsoft Dynamics


This tool was used to integrate key data from Microsoft Dynamics CRM to Dynamics ERP applications.
Reason for deprecation/removal This functionality has been replaced by another feature.

Replaced by another feature? Common data service

Product areas affected Connector for Dynamics

Status Removed as of Dynamics AX 7.0.

Container unit and multi dimension on-hand

Reason for deprecation/removal Duplicate functionality

Replaced by another feature? Yes. Since AX 2012, this functionality has been replaced by
the consolidated batch orders feature set. This feature set
includes the consolidated on-hand view.

Product areas affected Product information management, Production control,


Inventory management, Sales and marketing

Status Removed as of Dynamics AX 7.0.

Cue group metadata

Reason for deprecation/removal Cue groups were used to display one or more Cues in the
FactBox area. There was limited uptake, and there were also
performance concerns, because a record change in a parent
form caused one query per Cue in the Cue group.

Replaced by another feature? No

Product areas affected All modules

Status Removed as of Dynamics AX 7.0.

Cue metadata

Reason for deprecation/removal Cue metadata was limited to count or sum information.

Replaced by another feature? Tile metadata was introduced to provide more flexibility for
modeling. For example, you can model current counts,
navigation, and key performance indicators (KPIs). Count tile
metadata is the direct replacement of the Cue metadata.

Product areas affected All modules

Status Removed as of Dynamics AX 7.0

Danish check format


Reason for deprecation/removal Support for the Danish check format layout has been
discontinued, and the report has been removed from DK
localization.

Replaced by another feature? No

Product areas affected All modules

Status Deprecated: A removal date has not been set for this feature.

Data partitions
Data partitions provide a logical separation of data in the Dynamics AX database.

Reason for deprecation/removal Data partitions were introduced in Dynamics AX 2012 R2 to


enable data isolation. In a common scenario, a company has
subsidiaries, and the data from one subsidiary should not be
visible to another subsidiary, even though both subsidiaries
are managed by the same IT department. However, extra
scripts and management overhead throughout the program
were required in order to create new partitions and populate
them with data, and to back up partition data. In the cloud,
where we have access to platform as a service (PaaS)
database services (Microsoft Azure SQL Database), it's much
more efficient to use a database as the isolation container
than to do isolation in the program. Regardless of whether
data partitioning is required for subsidiaries, for multiple
tenants, or just for scale, we believe that the scenarios can be
handled better through multiple instances of Finance and
Operations.

Replaced by another feature? Customers using data partitions must use multiple instances
of Finance and Operations if database level separation is a
critical issue.

Product areas affected All modules

Status Removed as of Dynamics AX 7.0.

Database and file share storage for attachments


Dynamics AX 2012 allowed storage of attachments in the database and in file shares. Both of those options are
no longer supported.

Reason for deprecation/removal Files share storage is no longer supported because cloud-
hosted environments cannot communicate with local file
shares. Database storage has been deprecated in favor of
Azure Blob storage. Azure Blob storage is equivalent to
storage in the database, as documents can only be accessed
through Finance and Operations client forms. This provides
the added benefit of providing storage that doesn't
negatively affect the performance of the database. Blob
storage is the default storage mechanism for Document
Management and works immediately.
Replaced by another feature? Database storage has been deprecated in favor of Azure Blob
storage.

Product areas affected All modules

Status Removed as of Dynamics AX 7.0.

Delimitation

Reason for deprecation/removal No use of the functionality was found.

Replaced by another feature? No

Product areas affected Time and attendance

Status Removed as of Dynamics AX 7.0.

Desktop client

Reason for deprecation/removal The Dynamics AX client experience has been redesigned to
improve usability across multiple platforms and devices.

Replaced by another feature? The new web client is based on the desktop Form metadata
and programming model that have been modified to provide
a rich web platform.

Product areas affected All modules

Status Removed as of Dynamics AX 7.0.

Direct database connection


In Dynamics AX 2012 R3, Retail Modern POS could connect directly to the Channel DB in similar fashion to
Enterprise POS. This was in addition to the standard communication method of Retail Modern POS
communicating through Retail Server.

Reason for deprecation/removal Direct database connectivity required lower security


protocols and was primarily used to achieve the highest
levels of performance. Due to the performance and security
enhancements that have occurred in Finance and Operations,
this functionality now causes more issues than it solves.

Replaced by another feature? No. Only standard Retail Server communication is now
supported.

Product areas affected Channel DB/Retail Modern POS

Status Removed as of Dynamics AX 7.0.

Dutch SWIFT MT940


Reason for deprecation/removal Generic functionality is now used instead of localized
functionality.

Replaced by another feature? Yes, this functionality has been replaced by Advanced bank
reconciliation functionality.

Product areas affected All modules

Status Deprecated: A removal date has not been set for this feature.

eBilanz (XBRL for Germany)


This functionality provided eXtensible Business Reporting Language (XBRL) output that is intended specifically
for the German eBilanz taxonomy.

Reason for deprecation/removal Lack of customer usage

Replaced by another feature? This feature hasn't been replaced by another feature, but
multiple specialized XBRL packages that provide rich XBRL
functionality are available for the German market.

Product areas affected Management Reporter

Status Deprecated: A removal date has not been set for this feature.

Enterprise Portal client

Reason for deprecation/removal A single client platform has been provided.

Replaced by another feature? The new web client is based on the desktop form metadata
and programming model that have been modified to provide
a rich web platform.

Product areas affected All modules

Status Removed as of Dynamics AX 7.0.

Environmental sustainability

Reason for deprecation/removal Low customer usage and a limited feature set

Replaced by another feature? No

Product areas affected Compliance and internal controls, Accounts payable

Status Removed as of Dynamics AX 7.0.

Form ActiveX and Managed Host controls


Reason for deprecation/removal The ActiveX and Managed Host controls are based on the
deprecated desktop client.

Replaced by another feature? The extensible control framework supports building new
controls that are based on HTML, CSS, and JavaScript, and is
a first-class control in the Microsoft Visual Studio Tooling
environment.

Product areas affected All modules

Status Removed as of Dynamics AX 7.0.

Generate prenotes by using a batch


Prenote generation can't be done by using a batch, but it can still be done by a user.

Reason for deprecation/removal No form exists to persist and display the resulting prenote
file when it's generated by using a batch.

Replaced by another feature? Prenotes can still be generated, and the user has control over
the location where the file is saved.

Product areas affected Accounts payable, Accounts receivable, Cash and bank
management

Status Removed as of AX 7.0.

German DTAUS payment export and account statement import (totals and transactions)

Reason for deprecation/removal The format is no longer applicable in Germany, because it has
been replaced by Single Euro Payments Area (SEPA)
functionality.

Replaced by another feature? Yes, this functionality has been replaced by SEPA payment
export and advanced bank reconciliation functionality for
importing account statements.

Product areas affected All modules

Status Deprecated: A removal date has not been set for this feature.

German DTAZV payment format

Reason for deprecation/removal The format is no longer applicable in Germany, because it has
been replaced by SEPA functionality.

Replaced by another feature? SEPA payments export

Product areas affected All modules


Status Deprecated: A removal date has not been set for this feature.

German MT940 import

Reason for deprecation/removal Generic functionality is now used instead of localized


functionality.

Replaced by another feature? Yes, this functionality has been replaced by Advanced bank
reconciliation functionality.

Product areas affected All modules

Status Deprecated: A removal date has not been set for this feature.

German XML EU Sales list

Reason for deprecation/removal The XML format for German EU Sales List reporting is no
longer supported. Only the ELMA5 text file format can be
used to submit the EU Sales List report to the German Tax
Office.

Replaced by another feature? No

Product areas affected Tax

Status Deprecated: A removal date has not been set for this feature.

GL SSRS reports
Reports that include the following menu items have been removed: Summar y trial balance , Detailed trial
balance , Char t of accounts , Audit trail , Balances , and Balance list .

Reason for deprecation/removal Financial Microsoft SQL Server Reporting Services (SSRS)
reports have been replaced by Management Reporter
capabilities and default reports.

Replaced by another feature? Management Reporter (labeled Financial repor ting in the
current version of Dynamics AX)

Product areas affected General ledger

Status Removed as of Dynamics AX 7.0.

InfoPart and FormPart metadata

Reason for deprecation/removal InfoPart and FormPart metadata enabled the creation of
FactBoxes for two different clients.
Replaced by another feature? InfoPart metadata, which was a simplified form definition, is
converted into a Form by upgrade tooling. FormPart
metadata, which referenced a Form, is replaced by a more
direct reference that is created by upgrade tooling.

Product areas affected All modules

Status Removed as of Dynamics AX 7.0.

Main account list page


A list of accounts for the legal entity and related balance information

Reason for deprecation/removal Balance information is available on the Trial balance list
page by account and dimension.

Replaced by another feature? Main accounts contains the same list of accounts that the
Main account list page contained. The grid view in Main
accounts also shows an even smaller, grid-like view.

Product areas affected General ledger

Status Removed as of Dynamics AX 7.0.

Malaysia and Singapore bank cash flow report


This feature let the user print a cash flow report that shows transactions and details of the cash inflows and
outflows for a specific date range for selected bank accounts.

Reason for deprecation/removal The same information can be obtained from the Inquiry bank
transaction.

Replaced by another feature? The Inquiry bank transaction

Product areas affected Cash and bank management

Status Deprecated: A removal date has not been set for this feature.

Mexican CFD electronic invoice


This feature enabled the generation of Mexican electronic invoices by using the Comprobante Fiscal Digital (CFD)
method, where the company signs the invoice by requesting the related authorization from the government. This
feature also provides a monthly report that includes all electronics invoices that were issued in the period.

Reason for deprecation/removal The method is no longer applicable. The generation of


electronic invoices by using the CFD method was deprecated
by the tax authorities and replaced by the Comprobante
Fiscal Digital a través de Internet (CFDI) method, where the
signing is delegated to the third-party provider (PAC). The
monthly report has been removed, and an inquiry option
lets users inquire about historical transactions.
Replaced by another feature? No

Product areas affected Account receivables, Project

Status Deprecated: A removal date has not been set for this feature.

Mexico realized and unrealized VAT


Dynamics AX 2012 managed unrealized value-added tax (VAT) by using Mexico-specific functionality for
unrealized tax.

Reason for deprecation/removal Duplicate functionality

Replaced by another feature? Yes, this functionality has been replaced by standard
conditional sales tax functionality that is provided by Core.

Product areas affected Tax

Status Deprecated: A removal date has not been set for this feature.

Microsoft Outlook integration

Reason for deprecation/removal This functionality has been replaced by Microsoft Exchange
Server integration.

Replaced by another feature? Yes

Product areas affected Sales and marketing

Status Removed as of Dynamics AX 7.0.

Private blocking of inventory and warehouse management journals


The inventory and warehouse journals no longer support the ability to mark a journal as private for a selected
user. Only the process of blocking journals as private for user groups and blocking during editing is supported.

Reason for deprecation/removal No use of the functionality was found.

Replaced by another feature? No

Product areas affected Inventory management

Status Removed as of Dynamics AX 7.0.

Product builder
Product builder was used to dynamically configure items from a sales order, purchase order, production order,
sales quotation, project quotation, or item requirement. Based on a product model that had modeling variables,
the user could select values to meet the customer requirements and get a unique product variant that had a BOM
and route.
Reason for deprecation/removal Product builder exposed X++ code to end users and isn't
supported in the current version of Dynamics AX. It has been
removed to avoid duplicate maintenance efforts on
overlapping, sizeable codebases.

Replaced by another feature? Yes. The constraint-based configuration was introduced in


Dynamics AX 2012 where the depreciation of Product builder
in future versions was already announced. The constraint-
based configuration technology is selected on the product
masters to enable the configuration. To learn more, see
Product configuration overview.

Product areas affected Product information management, Sales and marketing

Status Removed as of Dynamics AX 7.0.

Production Floor app


This is the app for tablet devices running Windows 8.1 RT and Windows 8.1 Pro.

Reason for deprecation/removal With the change to a web-based client, it is possible to


deliver similar functionality through the native Dynamics AX
7.0 client. The Job Card Device provides a production floor
user interface that is optimized for touch and tablet form
factors.

Replaced by another feature? Yes. The Job Card Device, which is a native part of Dynamics
AX 7.0.

Product areas affected Production control

Status Deprecated: A removal date from the Microsoft store has not
yet been set for this feature.

Rename product dimension


This feature let you change the name of one of the three standard product dimensions (size, color, or style) to a
name that better suited your business requirements. Renaming included all the labels where the product
dimension name was used.

Reason for deprecation/removal The current version of Dynamics AX doesn't support label
changes at run time.

Replaced by another feature? No

Product areas affected Product information management

Status Removed as of Dynamics AX 7.0.

Retail Server connectivity using HTTP


In Dynamics AX 2012 R3, the Retail Server could function using HTTP communication (non-secured). This was in
addition to the standard communication using HTTPS.
Reason for deprecation/removal Due to new security requirements, only secured
communication using TLS 1.2 (or above, as available) is now
supported. The self-service installer will automatically
configure the computer for this communication.

Replaced by another feature? No. Only standard HTTPS communication is now supported.

Product areas affected Retail Server

Status Removed as of Dynamics AX 7.0.

Role Center pages

Reason for deprecation/removal Role Center pages were built on the deprecated Enterprise
Portal platform, which has been replaced by the new web
client platform in the current version of Dynamics AX.

Replaced by another feature? The new Workspace form pattern provides users with a
process-centered design that provides easy access to
commonly used tasks within that process.

Product areas affected All modules

Status Removed as of Dynamics AX 7.0

Sales tax jurisdictions

Reason for deprecation/removal Low customer usage and a limited feature set

Replaced by another feature? No

Product areas affected US sales tax

Status Removed as of Dynamics AX 7.0.

Sites Services
Sites Services let you build websites that extend your business processes to the Internet without IT support.

Reason for deprecation/removal The Microsoft Azure infrastructure that is used by Dynamics
AX has new capabilities that can be used instead (for
example, Azure sites).

Replaced by another feature? No

Product areas affected HR recruiting, Case management, Request for quotes, Vendor
registration, Collaborative workspaces for opportunities and
campaigns

Status Removed as of Dynamics AX 7.0.


SSAS demand forecasting strategy

Reason for deprecation/removal The design of the feature cannot be supported in the new
cloud architecture.

Replaced by another feature? Azure Machine Learning demand forecasting strategy

Product areas affected Master planning

Status Removed as of Dynamics AX 7.0.

Vendor invoice pool excluding posting details

Reason for deprecation/removal Low usage. This functionality has been replaced by the
Invoice journal that has workflow functionality.

Replaced by another feature? Workflow capabilities of the Invoice journal.

Product areas affected Accounts payable

Status Removed as of Dynamics AX 7.0.

Virtual company accounts


The virtual companies feature is no longer supported in Dynamics AX. The virtual companies feature let users set
up tables that could be shared by a set of companies. For a description of the feature, see Company accounts and
Virtual company accounts. The feature works by grouping tables into collections that are assigned to virtual
companies, which are groups of existing “real” companies. Queries are created so that all the companies in the
virtual company can access the data in the tables of the associated table collections.

Reason for deprecation/removal - Virtual companies must be set up before data is stored in
the tables. Retrofitting virtual companies onto an existing
implementation is very difficult.

- Because there has been so much data normalization in the


current version of Dynamics AX, it has become difficult to
know what to add to the table collections. For example, it's
difficult to know which tables to share. All the tables
referenced from tables that are in a virtual company must
also added. Because of table normalization, even simple
master data that is spread across multiple tables must be
part of the virtual company. Any mistake that is made here
will cause functional issues.

- When a table is part of a virtual company, it loses


information about the origin of the data, and only the virtual
company is recorded.

Replaced by another feature? Global tables can be used to make tables accessible from all
companies. Currently, there is no replacement.

Product areas affected All modules


Status Removed as of Dynamics AX 7.0.

Windows 8 tablet app


The Windows 8 tablet app provided functionality for expense entry and approval.

Reason for deprecation/removal Finance and Operations is compatible with tablets. The tablet
app is no longer required.

Replaced by another feature? No.

Product areas affected Expense management

Status Removed: This functionality is only available for Dynamics AX


2012 R3.

Workplanner

Reason for deprecation/removal Low usage

Replaced by another feature? No, but the Profile relation page, which is opened from the
Profile groups page, supports the same business scenario
as the deprecated Workplanner page.

Product areas affected Time and attendance

Status The code has not been removed. However, the form,
JmgWorkPlanner, was not migrated.

X++ financial statements

Reason for deprecation/removal This functionality has been replaced by another feature.

Replaced by another feature? Management Reporter (labeled Financial repor ting in the
current version of Dynamics AX)

Product areas affected General ledger

Status Removed as of Dynamics AX 2012


AX 2012 features that were postponed
2/3/2020 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic lists features of Microsoft Dynamics AX 2012 that were postponed. These features weren't implemented
in Microsoft Dynamics AX 7.0. In the following table, the Current status column indicates whether the feature has
been implemented since the AX 7.0 release.
For a detailed list of when each version of the product was released, see Software lifecycle policy and cloud
releases.

A X 2012 F EAT URE T H AT WA S C URREN T STAT US ( A S O F F EB RUA RY


P O ST P O N ED DESC RIP T IO N 2019)

Absence management in Human Functionality for entering absence Implemented in Dynamics 365 Human
resources transactions isn't included. Additionally, Resources
functionality for approving absence
transactions as a manager isn't included.
Setup capabilities that are required for
integration with other modules are
available through the Human
Resources 2 configuration key.

Alerts Alerts help users keep track of data Implemented in Platform update 15
changes in the system.

Bank payment order for Latvia and You can print a payment order for Not implemented
Lithuania Latvia and Lithuania. This feature will be
available in a future update.

Bankgirot AP return format for Sweden The Bankgirot return format is used to Not implemented
import bank return messages. This
feature will be available in a future
update.

Client drag-and-drop The web client controls have application Not implemented
programming interfaces (APIs) for drag-
and-drop operations, but these APIs are
based on the deprecated desktop client
technology and must be redesigned so
that they work on the new web client
platform. APIs that support drag-and-
drop operations will be reviewed for
inclusion in a future update.

Client right-to-left (RTL) layout RTL layout is now supported. Implemented in Platform update 2
A X 2012 F EAT URE T H AT WA S C URREN T STAT US ( A S O F F EB RUA RY
P O ST P O N ED DESC RIP T IO N 2019)

Cost accounting The Cost accounting module is Implemented in version 1611


designed to meet the requirements of
internal costs and profitability reports at
multiple organizational levels. To define
the cost object level, the module
depends on a correct mapping of
financial dimensions. The module lets
you perform advanced allocations of
cost origin from expenditures that are
registered in the general ledger or
budget. It also lets you compare
realized costs and budgeted costs.

Customer self-service (CSS) CSS lets you create approved customer Not implemented
records. It also allows users to view
selected product catalogs, order items,
and view the status of invoices.
Additionally, CSS provides the ability to
create and follow return orders.

Customizable help topics The ability to create customized help Not implemented
topics has not yet been implemented.
Custom task guides and custom field
help are available. This feature will be
available in a future update.

Employee self-service (ESS) ESS shows employees several tiles which Implemented in version 1611
have task-related and career-related
information on a single page.
Employees can view pending work items
and click links that open pages where
they can take action on their tasks. ESS
pages also show employees the status
of their certifications, when their next
performance reviews are scheduled,
skills, goals, and compensation
information, and other information,
such as balances for vacation and sick
time. Employees can also access a
company directory from their ESS page.

External questionnaire and recruiting Functionality for externally posting External questionnaire functionality
functionality questionnaires and open jobs will be hasn't been implemented.
added to Human Resources in a future Recruiting functionality is available
update. in Microsoft Dynamics 365 Talent:
Attract.

Fiscal printers for Poland Integration with Polish fiscal printers Not implemented
enables the required information to be
sent to the fiscal printer in the correct
format during invoice posting. Examples
of Polish fiscal printers include the
Posnet Thermal and Elzab Omega
printer types. This feature will be
available in a future update.
A X 2012 F EAT URE T H AT WA S C URREN T STAT US ( A S O F F EB RUA RY
P O ST P O N ED DESC RIP T IO N 2019)

General budget reservations Thw General budget reservations Implemented in version 8.1
document is sometimes referred to as a
commitment. Public sector entities often
use this document to set aside or
earmark budgeted funds so that they
aren't available for other purposes.

Graphics tab on the Fixed asset The chart shows the depreciation, Not implemented
value model and Depreciation book accumulated depreciation, and net book
profile pages value over time. Users can click the
Data tab to view more detailed
information than the chart shows. This
chart will be redesigned in a future
update.

Intelligent Data Management IDMF is an add-on tool that lets system Not implemented
Framework (IDMF) administrators optimize performance.
IDMF assesses the health of the
application, analyzes current usage
patterns, and helps reduce database
size.

Microsoft Project client integration The Microsoft Project client is integrated Implemented in version 7.2 (July 2017
with projects. update)

Procurement site In previous versions, the Employee self- Not implemented


service procurement site let you enter
requisitions for employees, view the
status of an order (created, received, or
receipt confirmed), and request
onboarding of a new vendor. Different
procurement catalogs could be
configured to show on the site
depending on policy. Procurement
catalogs could also be designed by
adding new nodes. In the current
version, procurement catalog
capabilities are reduced and are used
only to limit the products that can be
ordered for an organization. The
structure is always based on the
Procurement categories hierarchy.
Additionally, on the procurement site
the employee could approve a vendor
invoice and confirm receipts in relation
to the requisitions and derived purchase
orders.

Secure global address book The ability to help secure the global Not implemented
address book by legal entity and
address book hasn't been implemented
yet. This feature will be available in a
future update.

Specifications for Electronic reporting Currently, payment format specifications Not implemented
(ER) payment formats must be entered manually. In a future
update, you will be able to select
payment format specifications in a list.
The following payment specifications are
curently supported per payment
A X 2012 F EAT URE T H AT WA S C URREN T STAT US ( A S O F F EB RUA RY
P O ST P O N ED format.
DESC RIP T IO N 2019)

[!NOTE] Values for these supported


payment specifications are used as
payment specification parameters
on the Payment specification
page for a selected method of
payment.

BTL91 for the Netherlands

PAY M E N T
S P E C I F I C AT I O N E X P O R T F O R M AT
(U SED IN ER ) D ESCR IP TIO N

ChqBen Cheque,
Begunstigde

ChqOff Cheque, Kantoor


opdrachtgever

ChqPri Cheque,
Opdrachtgever

TrfBenBen Overboeking
Begunstigde/Beg
unstigde

TrfBenBenUrg Overboeking
Begunstigde/Beg
unstigde Spoed

TrfEurBen Overboeking
Euro/Begunstigd
e

TrfEurBenUrg Overboeking
Euro/Begunstigd
e Spoed

TrfEurEur Overboeking
Euro/Euro

TrfEurEurUrg Overboeking
Euro/Euro
Spoed

TrfForBen Overboeking
VV-
rekening/Beguns
tigde

TrfForBenUrg Overboeking
VV-
rekening/Beguns
tigde Spoed

TrfForFor Overboeking
VV-rekening/VV-
rekening

TrfForForUrg Overboeking
VV-rekening/VV-
rekening Spoed
Betalingsser vice for Denmark
A X 2012 F EAT URE T H AT WA S C URREN T STAT US ( A S O F F EB RUA RY
P O ST P O N ED DESC RIP T IO N 2019)
PAY M E N T
S P E C I F I C AT I O N E X P O R T F O R M AT
(U SED IN ER ) D ESCR IP TIO N

B0112 BS-B 0112: Lang


tekst & adresse

B0113 BS-B 0113:


Erstat. bet. lang
tekst

T0112 BS-T 0112: Lang


tekst & adresse

T0117 BS-T
0117:FIK;kort
frist;lang
tekst&adr.

Nordea vendor for Denmark

PAY M E N T
S P E C I F I C AT I O N E X P O R T F O R M AT
(U SED IN ER ) D ESCR IP TIO N

56 Currency
account transfer
between Nordea
accounts in
Denmark

47 Domestic check

45 Domestic
transfer

50 Express transfer

55 Intercompany
transfer
(domestic)

51 Intercompany
transfer to a
foreign bank

54 International
check

52 Nordea
intercompany
payment

43 Request for
transfer

46 Transfer
form/giro
payment

ISO20022 Credit transfer (CH)


A X 2012 F EAT URE T H AT WA S PAY M E N T C URREN T STAT US ( A S O F F EB RUA RY
P O ST P O N ED S P E CRIP
DESC I F I TC AT
IOINO N E X P O R T F O R M AT 2019)
(U SED IN ER ) D ESCR IP TIO N

Tp1.ESROPS Type 1 - ESR


orange payment
slip

Tp21.ISR1SPS Type 2.1 - IS red


1 stage payment
slip

Tp22.ISR2SPS Type 2.2 - IS red


2 stage payment
slip

Tp7.Dmstc Type 7 -
Domestic postal
order

TpE1.PSWR Type E1 -
Payment slip with
reference

TpE2.PSWN Type E2 -
Payment slip with
notifications

AvtaleGiro (NO)

PAY M E N T
S P E C I F I C AT I O N E X P O R T F O R M AT
(U SED IN ER ) D ESCR IP TIO N

Varsling AvtaleGiro-trans
with notification

AutoGiro (NO)

PAY M E N T
S P E C I F I C AT I O N E X P O R T F O R M AT
(U SED IN ER ) D ESCR IP TIO N

Melding Autogiro-trans
with notification

eFaktura (NO)

PAY M E N T
S P E C I F I C AT I O N E X P O R T F O R M AT
(U SED IN ER ) D ESCR IP TIO N

Reklame Include
advertising flag

ISO20022 Credit transfer (DK)

PAY M E N T
S P E C I F I C AT I O N E X P O R T F O R M AT
(U SED IN ER ) D ESCR IP TIO N

EasyAccountTran Easy-account
sfer with CVR (NKV)

Paym_slip Transfer forms


(OCR)
ISPAG-CNAB240 format (BR)
A X 2012 F EAT URE T H AT WA S C URREN T STAT US ( A S O F F EB RUA RY
P O ST P O N ED DESC RIP T IO N 2019)
PAY M E N T
S P E C I F I C AT I O N E X P O R T F O R M AT
(U SED IN ER ) D ESCR IP TIO N

A OP (payment
order), DOC
(wire transfer),
TED (other type
of wire transfer),
and direct credit
in the account

J Bar code
payments
(invoice with bar
code or other
type of
documents with
bar code)

O Tax payments or
other publics
services
payments

US Payroll US Payroll provides gross-to-net Implemented in version 1611


processing for employees in the United
States. In Payroll, you can set up, enter,
and maintain all payroll records and
transactions.

Vendor collaboration (Vendor Portal) Dynamics AX 2012 provided vendor Implemented in version 7.3
portal capabilities via Enterprise Portal.
These capabilities have been ported to
Financial and Operations. In version 7.1
(also known as Dynamics 365 for
Operations 1611), a vendor could view
and respond to purchase orders.
In version 7.3, the vendor can view
and respond to RFQ's. Vendors can
also view and edit selected
information from the vendor record
such as addresses, contact
information, and contact persons,
and they can upload documents in
relation to their certifications.
A X 2012 F EAT URE T H AT WA S C URREN T STAT US ( A S O F F EB RUA RY
P O ST P O N ED DESC RIP T IO N 2019)

Vendor requests - external request to Dynamics AX 2012 provided the ability Implemented in version 7.3
become a new vendor for an anonymous user to sign up to be
a vendor in the system, which could
lead to a vendor request for adding a
new vendor to the vendor master. In
version 7.3, the anonymous request
from a prospective vendor can be
imported via an entity (Data
Management/OData), which can lead to
inviting the vendor - or the vendor's
contact person - to register additional
details about the prospective vendor.
The information provided is included in
a new vendor request that can be
reviewed and approved via a workflow
process. An approval of the vendor
request leads to creation of a new
vendor account.

Vendor requests in general Dynamics AX 2012 had a concept of Not implemented


vendor requests that served various
purposes related to updating vendor-
related information, such as requesting
new procurement categories for the
vendor, internal employees requesting
new vendors, or requesting to add a
vendor to another company. Only the
vendor's request of being added as a
vendor has been implemented in
version 7.3.
A X 2012 F EAT URE T H AT WA S C URREN T STAT US ( A S O F F EB RUA RY
P O ST P O N ED DESC RIP T IO N 2019)

[Russia] Tax registers Legal entities can use registers to Not implemented
disclose their revenues and expenses.
The registers are used to track revenue
and expense data from the time that
primary documents, such as sales
invoices and delivery notes, are first
entered by using the calculation of cost
prices for production. The data from the
registers is used to confirm the declared
profit of the legal entity. This
functionality includes the following
features:
Current period incomes
Tax expenses
Other expenses of current
period
Unrealized expenses of current
period
Other unrealized expenses
Accounts receivable debt –
inventory
Bad debts reserve calculation
Bad debts reserve movement
Accounts receivable movement
Procedure for writing-off AR bad
debts
Accounts payable debt -
inventory
Accounts payable debt
movement
Procedure for writing-off AP bad
debts
Goods cost calculation
FA object information
IA object information
FA depreciation
IA depreciation
FA/IA sale
Depreciation bonus recovery

[Russia] Electronic export/import format Electronic formats for export of Not implemented
for Client-Bank interface and outgoing payments, and import of
reconciliation procedure incoming payments.

[Russia] VAT declaration Electronic format of VAT declaration. Not implemented

[Russia] Cash Flow Management The functionality which obtains a cash Not implemented
flow forecast and performs an analysis,
manages payments on a daily basis
using payment schedule journals,
controls the company's cash position,
and maintains the company's cash flows
with centralized control,
A X 2012 F EAT URE T H AT WA S C URREN T STAT US ( A S O F F EB RUA RY
P O ST P O N ED DESC RIP T IO N 2019)

[Russia] Accounting reporting format Electronic format of the following Not implemented
accounting reports: BalanceSheet,
IncomeStatement, CashFlow,
EquityStatement, TargetUsageMoney

[Russia] Assessed tax reporting Assessed tax declaration. Not implemented

[Russia] Land tax reporting Land tax declaration. Creation of Land Not implemented
tax declaration by separate divisions.

[Russia] Transport tax reporting Transport tax declaration. Not implemented

[Russia] Indirect tax return (VAT and Indirect (withholding) tax return (VAT Not implemented
Excise) on import of goods and Excise) on import of goods from
state members of Customs union.

[Russia] Journal of Alcohol sales in Retail Daily Alcohol journal. Integration with Not implemented
EGAIS.

[Russia] Optional posting of transfer Option to post/not post transactions to Not implemented
orders to General ledger General ledger when posting a transfer
order.

[Russia] Inventory owner Inventory dimension used to track Not implemented


owner of inventory (consignment stock,
bailment, tolling, etc.).

[Russia] AP/AR - 3rd party Registration of 3rd party miscellaneous Implemented in 8.1.1
miscellaneous charges charges and allocation by the following
regimes: Inclusion into cost of
purchased goods (allocation to invoices
lines from other vendors), and
redrawing to other parties re-allocation
to other expense accounts.

[Russia] Goods in transit from vendor Registering goods in transit from Not implemented
vendor by special posting profile with
Item type "purchased items en route".
Creating Act of inventory holdings en
route. (INV-6)

[Russia] Goods in transit - sales to Post sales invoice with postponed Not implemented
customer with postponed passing of property transfer: no customer debts
property posted, all outgoing taxes are posted,
items are transferred to transit
warehouse. Register passing of property
with posting debts and items sale from
transit warehouse.

[Russia] Bailment - accounting at bailee Accounting of inventory receipt for Not implemented
side bailment as required by the Law and
generation of primary form MX-1.
Accounting of inventory return from
bailment and generation of primary
form MX-3. Bailment costs calculation
from bailee side.
A X 2012 F EAT URE T H AT WA S C URREN T STAT US ( A S O F F EB RUA RY
P O ST P O N ED DESC RIP T IO N 2019)

[Russia] Bailment - accounting at owner Accounting of inventory transfer to Not implemented


side bailment and inventory return from
bailment on goods owner side under
bailment service contract.

[Russia] Localization of Process Basic localization in two areas: Not implemented


Industries solution correspondence of accounts for all new
general ledger postings, and functional
co-existence of Process Industries
features and Russian country context
(no issues when both Process Industries
and Russian country context are
enabled).

[Russia] Alcohol sales declarations: Keeping track of alcoholic beverages Not implemented
Application 6, 7, 8 for wholesale. types including producers, unit of
Applications 11, 12 for retail measures, licenses for retail and
wholesale trade. Preparing data for
alcoholic beverages activities, including
printing declarations and exporting
them in XML format through e-
reporting.
Features not implemented in on-premises
deployments
2/13/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic lists features that have not been implemented in deployments of Dynamics 365 Finance + Operations
(on-premises). The topic is divided into two sections:
The first section lists features that haven't been implemented yet. These features are not deprecated.
The second section lists features that are not intended for use with on-premises deployments. There are no
plans to implement these features.

Features not yet implemented


The following features have not yet been implemented in on-premises deployments. These features have not been
deprecated. If these features are critical to your on-premises deployment, please let us know by providing
feedback on the Ideas site.

F EAT URE DESC RIP T IO N

Task recorder Task recorder libraries in Lifecycle Services (LCS) are not
supported. Task recordings can be loaded from or saved to
the local file system.

Suppor t pane The Suppor t pane (Help & Suppor t > Suppor t ) is not yet
available.

PowerBI.com integration PowerBI.com integration is not yet available for on-premises


deployments. For example, the ability to pin a tile or a report
from your PowerBI.com subscription to a workspace is not
available.

Recurring integrations API The use of recurring data jobs through the recurring
integrations API framework are not supported. You can only
use the data management framework package API with on-
premises deployments.

Microsoft Office integration SharePoint on-premises support is not yet available.


SharePoint online is also not yet supported (due to an
authentication issue).

Skype for Business on-premises is not supported.

Electronic reporting (ER) integration with LCS The ER integration with LCS is not supported. ER
configurations can't be downloaded directly from LCS.
F EAT URE DESC RIP T IO N

ER integration with SharePoint Integration with SharePoint is not supported. SharePoint


server can't be configured as a destination for electronic
documents generated by using ER.

Business document management It is not possible to use the Business document management
feature to edit the templates used to generate business
documents. You can only use the ER framework. This is
because Microsoft Office integration is not yet available for
on-premises deployments.

Author Power BI reports using OData Authoring Power BI reports with OData using Power BI
desktop or Excel PowerQuery tools is not supported.

Purchase requisitions: Punch-out from external catalogs It is not possible to check out a shopping cart from an
external catalog to a purchase requisition.

Trace Parser and PerfTimer These tools are not working or have limited functionality for
this release. These features will be implemented in a future
release.

SSRS scale out Currently SQL Server Reporting Services (SSRS) does not
support scaling out. This feature will be added in a future
release.

Telemetry Currently no telemetry is transferred into the cloud. In a


future update we will start transferring telemetry data into
the cloud.

Data task automation Data task automation is not currently implemented.

Features available in 8.1


F EAT URE DESC RIP T IO N

Commerce To see a list of currently available capabilities in on-premises


deployments, see Commerce capabilities that are available in
on-premises deployments.

Features not intended for use in on-premises deployments


The following features are not intended for use in on-premises deployments. There are no plans to implement
these features in on-premises deployments.

F EAT URE DESC RIP T IO N

SSRS Report Viewer control SQL Server Reporting Services (SSRS) does not support a
report viewer control that is compatible with the on-premises
web client.
Reports are rendered as PDF documents by the on-
premises service. Use extensions to enable embedded
drill-thru links in application reports.
F EAT URE DESC RIP T IO N

Document Routing Agent This component is not necessary for on-premises


deployments. On-premises deployments are hosted on
domain-authenticated servers. This offers secure, direct access
to network printer devices.
End of mainstream support for Microsoft Dynamics
AX 2009, Dynamics AX 2012, and Dynamics AX 2012
R2
2/3/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Mainstream support for Dynamics AX 2009 Service Pack 1 (SP1), Dynamics AX 2012, and Dynamics AX 2012 R2
ends on October 9, 2018. After that date, only security hotfixes will continue to be provided for these three versions
through the extended support period that continues until October 12, 2021. For more information, see
support.microsoft.com.
Mainstream support for Dynamics AX 2012 R3 continues through October 12, 2021. Microsoft will continue
making security hotfixes, non-security hotfixes, and regulatory updates for Dynamics AX 2012 R3 throughout that
mainstream support period. The source code for these non-binary, non-security hotfixes and regulatory updates
will continue to be available for customers, and their partners, active on the Enhancement Plan or Software
Assurance.
Dynamics AX 2009 SP1, Dynamics AX 2012, and Dynamics AX 2012 R2 customers can selectively integrate those
changes as required. Customers and partners can get the source code from packages attached to relevant
Dynamics AX 2012 R3 KB articles published on Lifecycle Services (LCS) and discoverable through Issue Search.
Customers are advised to upgrade to the latest version of Finance and Operations apps, such as Dynamics 365
Finance, Supply Chain Management, Retail, and Human Resources:
Dynamics AX 2009 Service Pack 1 customers should use the migration tool that is available.
Dynamics AX 2012 and Dynamics AX 2012 R2 customers should upgrade to Finance and Operations apps
through Dynamics AX 2012 R3 using the upgrade tool that is available. Additional upgrade information is
available in the Upgrade from AX 2012 to Finance and Operations apps topic.

Frequently asked questions


When does the mainstream support for Dynamics AX 2009 Service Pack 1, Dynamics AX 2012, and Dynamics AX
2012 R2 end?
Mainstream support ends on October 9, 2018.
Was the information of the end date of the mainstream support for Dynamics AX 2009 Service Pack 1, Dynamics
AX 2012, and Dynamics AX 2012 R2 available before?
Yes, it was always publicly available on the Microsoft Support Lifecycle site at support.microsoft.com.
Can customers on Premier Extended Hotfix Support or on Unified Support Advanced and Performance Levels
get a non-security hotfix or regulatory update?
No. Neither non-security hotfixes nor regulatory updates will be available for Dynamics AX 2009 SP1, Dynamics AX
2012, or Dynamics AX 2012 R2 during the Extended Support phase of the product lifecycle.
While the ability to request a non-security hotfix for select products is included with Unified Support Advanced and
Performance Levels, Microsoft has determined that non-security hotfixes cannot be provided with a commercially
reasonable effort for these products. As a result, no requests for non-security hotfixes or regulatory updates will be
accepted. However, Microsoft will continue making security hotfixes, non-security hotfixes, and regulatory updates
for Dynamics AX 2012 R3 throughout that mainstream support period. The source code for these non-binary, non-
security hotfixes and regulatory updates will continue to be available for customers, and their partners, active on
the Enhancement Plan or Software Assurance. Dynamics AX 2009 SP1, Dynamics AX 2012, and Dynamics AX 2012
R2 customers can selectively integrate those changes as required. Customers and partners can get the source code
from packages attached to relevant Dynamics AX 2012 R3 KB articles published on LCS and discoverable through
LCS Issue Search.
I knew about the regulatory change before October 9, 2018, but it has the law enforcement date after October
9, 2018. Will I still get a regulatory update for Dynamics AX 2009 Service Pack 1, Dynamics AX 2012, and
Dynamics AX 2012 R2?
No, we will only provide regulatory updates for Dynamics AX 2009 Service Pack 1, Dynamics AX 2012, and
Dynamics AX 2012 R2 for regulatory changes with the law enforcement dates on or earlier than October 9, 2018.
A customer or partner can already download a fix through LCS and inspect the code by installing it into a test
Dynamics AX 2012 R3 environment. Is there any difference with the approach that you have proposed?
No, there is no difference.
What happens if a new bug is found by a customer in Dynamics AX 2009 Service Pack 1, Dynamics AX 2012, or
Dynamics AX 2012 R2?
The bug must be reproducible in Dynamics AX 2012 R3. If it is reproducible and accepted, then a hotfix will be
provided for Dynamics AX 2012 R3 and the customers can elect to integrate this hotfix in their version themselves,
or work with their partners to integrate the changes.
How are binary hotfixes handled for Dynamics AX 2009 Service Pack 1, Dynamics AX 2012, and Dynamics AX
2012 R2?
If a hotfix is needed for a part of the system where Microsoft does not provide the source code and it is not a
security bug, the hotfix will not be provided.
Help system
2/3/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides an overview of the components of the Help system. The Help system is shared by the following
products:
Dynamics 365 Finance
Dynamics 365 Commerce
Dynamics 365 Supply Chain Management
Dynamics 365 Human Resources
You can access help from the Help pane in whichever product you are using.

Help on docs.microsoft.com
The docs.microsoft.com site (docs.microsoft.com/dynamics365/) is the primary source of product documentation
for the applications listed above. The site offers the following features:
Access to the most up-to-date content – The site gives us a faster and more flexible way to create, deliver,
and update product documentation. Therefore, it helps to ensure that you have access to the latest technical
information.
Content that is written by exper ts – The site provides a richer set of product documentation that can be
enhanced by community members both inside and outside Microsoft.
You can also find our content with any search engine. We recommend that for best results, you use a site search,
such as site:docs.microsoft.com dynamics 365 "search term".
Use an RSS feed
To subscribe to an RSS feed of all updates to the content, use the following link from a browser that supports RSS
feeds, such as Internet Explorer, or an RSS feed manager:
RSS feed
Leave us feedback
If you have feedback or questions about a topic, leave us a comment at the bottom of the page.
1. Click Feedback to get to the comments at the bottom of the page, and then click either Product feedback ,
or Sign in to give documentation feedback .
2. Start typing your comments, and then click Submit feedback .

Contribute to the documentation


You can contribute and make edits to the documentation. To get started, click the Edit (pencil) button on a topic.
The following video shows how you can contribute to our documentation.

The How to contribute to the Microsoft Dynamics 365 documentation video (shown above) is included in the
Microsoft Dynamics 365 channel on YouTube.
For more information, refer to our contributor's guide.

NOTE
We only accept contributions to our English content at this time.

Task guides
A Task guide is a controlled, guided, interactive experience that leads you through the steps of a task, or business
process. You can open (play) a Task guide from the Help pane. When you first click a Task guide, the Help pane will
show the step-by-step instructions for the task. Localized Task guides are available.
Microsoft shipped Task guide libraries for releases through December 2017 for Dynamics 365 for Finance and
Operations. The section Help system describes how to find the correct Task guides for your product.

To begin the guided, interactive experience, click Star t task guide at the bottom of the Help pane. A black pointer
opens and indicates the action that you must perform. Follow the directions that appear in the UI, and enter data as
directed.

IMPORTANT
The data that you enter when you play a Task guide is real. If you're in a production environment, the data will be entered in
the company that you're currently using.

You can use Task recorder to create your own custom Task guides. For more information, see Create documentation
or training with Task Recorder.

In-product Help
To access Help content, either click the Help (? ) icon and then choose Help or press Ctrl+Shift+?. In both cases, the
Help pane opens. From the Help pane, you can access articles or Task guides.

Accessing help topics from the Help pane


From the Help pane, you can access articles that apply to the client. When you first open the Help pane and click the
Help tab, you'll see the articles that apply to the page that you're currently on. If no articles are found, you can
enter keywords to refine your search. When you click an article in the Help pane, a new tab opens in your browser
and displays the article.

IMPORTANT
This section does not apply to Dynamics 365 Human Resources. The Help system for Human Resources is automatically
connected to Task guides for the product. Also, you cannot create custom Task guides for Human Resources.

Accessing Task guides from the Help pane


Before you can access Task guides from the Help pane, a System administrator has to go to the System
parameters page in Finance, Supply Chain Managment, and Commerce and configure some settings.

NOTE
In order to configure help, you must be signed in with an account in the same tenant as the tenant in which the app is
deployed.
It is not possible to connect to an LCS library from an instance of the app running in a local virtual hard drive (VHD).
On the System parameters page, follow these steps:
1. Impor tant: The first time that you open the Help tab, you must connect to Lifecycle Services. Be sure to click
the link in the middle of the form, wait for the connection, close the dialog box, and then click OK to get to
the parameters form.

2. Select the Lifecycle Services project to connect to.


3. Select BPM libraries (within the selected project) to retrieve task recordings from.
4. Set the display order of the BPM libraries. This determines the order in which task recordings from the
libraries will appear in the Help pane.
After a System administrator has completed these steps, you can open the Help pane and click the Task guides
tab. You'll now see the Task guides that apply to the page that you're currently on. If no Task guides are found, you
can enter keywords to refine your search. After you click a Task guide in the Help pane, the Help pane shows the
step-by-step instructions, and you can play the task guide.
Where are the translated Task guides for Microsoft libraries?
Translated Task guides are released in libraries with "All languages" in the title. To see localized Task guide help,
make sure that you are connected to an appropriate library. The language that a Task guide appears in is controlled
for each user by the Language settings under Options > Preferences .
If a Task guide has been translated, when you open that Task guide all the text of the Task guide will appear in
your selected language.
If a Task guide has not yet been translated, when you open it, only some of the text (the text of the controls) will
appear in your selected language.

Creating custom help


You can create help for your users by creating custom Task guides, or connect your own website to the Help pane.
For details, see:
Task recorder resources.
Create Custom Help (white paper)

Additional resources
Task recorder resources
The following table lists our websites. Sites that have an asterisk (*) next to the name require that you sign in by
using an account that is associated with a service plan.

SIT E DESC RIP T IO N

Docs.microsoft.com Hosts or links to all product documentation for Dynamics 365.

Microsoft Learn Microsoft's free eLearning site.


SIT E DESC RIP T IO N

Lifecycle Services* Provides a cloud-based collaborative workspace that


customers and partners can use to manage projects from pre-
sales to implementation and operations. This site is useful in all
phases of an implementation.

Support blog Provides tips and tricks that are posted by the Support team.

Docs.microsoft.com/previous versions Hosts content from previous releases.

Dynamics Community Hosts blogs, forums, and videos.

Microsoft.com/dynamics365/ Provides evaluation and sales information.

CustomerSource* Hosts training resources, downloadable reports and white


papers, and is the primary support site for service plan
holders. May require a service plan to access some resources
on the site.
Connect the Help system
2/3/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the components of the Help system for Finance and Operations apps, such as Dynamics 365
Finance, Supply Chain Management, Commerce, and Human Resources. It provides an overview of how to connect
these components and a summary of how to create custom help.

Help architecture
The following illustration shows the parts of the Help system. The in-product Help system pulls articles from
https://docs.microsoft.com, as well as task guides stored in Business Process Modeler in Lifecycle Services (LCS).

NOTE
The features listed in the diagram with an asterisk (*) are planned, but are not available yet.

Connecting the Help system


NOTE
The Task guides tab is currently not available in Dynamics 365 Human Resources or Commerce. We are currently working to
enable this functionality in a future release. The Task guides in the Getting Started experience in Human Resources remain
available to cover basic functionality. Procedural help is also available on the docs.microsoft.com site for both Human
Resources and Commerce.

Using the System Parameters page, system administrators connect the pieces of the Help system for an
implementation.

On the System parameters page, follow these steps:

IMPORTANT
The first time that you open the Help tab, you must connect to Lifecycle Services. Be sure to click the link in the middle of the
form, wait for the connection, close the dialog box, and then click OK to get to the System Parameters page.

1. Select the Lifecycle Services project to connect to.


2. Select the BPM libraries (within the selected project) to retrieve task recordings from.
3. Set the display order of the BPM libraries. This determines the order in which task recordings from the libraries
will appear in the Help pane.
After you complete these steps, you can open the Help pane and click the Task guides tab. You'll now see the task
guides that apply to the page that you're currently on in Finance and Operations apps. If no task guides are found,
you can enter keywords to refine your search.
Showing translated task guides
Translated task guides were first shipped in the May 2016 APQC Unified Library, and the Getting Started library. In
Finance and Operations apps, to see localized task guide help, make sure that you are connected to the May library.
The language that a task guide appears in is controlled for each user by the Language settings under Options >
Preferences .

NOTE
Even though many task guides have been translated, right now the client is not showing the translated task guide names.
Also, only the task guides that were released in February 2016 are available in translation in the May library. We will release
an updated library with additional translations.
If a task guide has been translated, when you open that task guide all the text of the task guide will appear in your
selected language.
If a task guide has not yet been translated, when you open it, only some of the text (the text of the controls) will appear in
your selected language.

Creating custom help


You can use task guides to create custom help, or connect a website to the Help pane.
Create custom help with task guides
You can create custom help for Finance, Supply Chain Management, and Commerce by creating task recordings
that reflect your implementation, and saving them to an LCS Business Process Library. You cannot create custom
task guides for Human Resources.
For partners, if you promote a library to be a corporate library, and include it in a solution, it will be available to
your customers. You can also make a copy of the APQC Unified global library, and then open your copy, open task
recordings from it, modify them, and save the recordings with your changes. For more information, see Task
recorder resources.
Connect a custom site
Microsoft has provided a white paper and sample code that describe how to create and connect a custom help site
to the Help pane. For more information, see:
Create Custom Help for Finance and Operations apps (white paper)
Custom help GitHub repository

Additional resources
Help system
Task recorder resources
Create documentation or training with Task Recorder
Connect a custom help site
11/18/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Microsoft has provided a white paper and sample code that describe how to create and connect custom help to the
Help pane.
The process for setting up a custom Help solution consists of publishing content as HTML, deploying a site and
extending the help pane to connect to the site.

Resources
Create Custom Help for Finance and Operations apps (white paper)
Custom help GitHub repository

See also
Create documentation or training with Task Recorder
View and export field descriptions
11/18/2019 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article describes how to view field descriptions and how to use the Field descriptions page to export
descriptions.
Some of the more complex fields have field descriptions. These descriptions appear when you hover over a field.
You can also view and export descriptions on the Field descriptions page.
Not all pages have field descriptions. We want to provide descriptions only for the more complex fields, not where
the use of the field is obvious. Therefore, some pages don't have any field descriptions, some pages have a few
descriptions, and some of the more complex pages, such as many of the parameters pages, have many
descriptions.
If you have access to the development environment, you can add new field descriptions and customize existing
descriptions. For example, you can add company-specific information to a field description. For more information,
see Customize field descriptions.

See field descriptions in the user interface


You can view field descriptions by hovering over a field. If no description is available, you see the field name when
you hover over the field.

NOTE
In Dynamics AX 7.0 (February 2016), field descriptions can be viewed only on the Field descriptions page.

The following illustration shows the field description that appears when you hover over the Lock items during
count field.
Use the Field descriptions page to view and export field help
The Field descriptions page lets you view and export field descriptions. You can see the descriptions that are
available for one page at a time.
View the descriptions for a page
To view the descriptions for a page, follow this step.
In the Select a page field, type the name of the page. Alternatively, click the arrow to open a list of all the pages,
and then browse or filter the list.
You can use either the name of the page that is shown in the user interface (UI) (for example, Customers ) or the
code name (AOT name) that's available when you right-click a page (for example, CustTable ).
For information about the various ways to filter the list of pages, see the "Searching for a page" section later in this
article.
If you set the Include fields without a description option to Yes , all the fields on the page are shown, even if
they don't have a field description.
Export the descriptions for a page
To export the descriptions for a page, follow these steps.
1. In the Select a page field, select a page.
2. Click the Open in Microsoft Office button in the upper-right corner, and then click FieldDescriptionTmp .
Searching for a page
There are several ways to search for a page in the Select a page field. In many cases, you must click the arrow in
the Select a page field to open the drop-down list, and then select from a filtered list of pages.
Type part of the name, and then open the drop-down list to select from a filtered list of pages.
Open the drop-down list, and then click either the Page name heading at the top of the list or the Page
AOT name heading. A dialog box appears, where you can use advanced filtering options, such as Page
name begins with .
Type the full name of the page. When you use this option, it's best to open the drop-down list and see what
else is in the list, even if field descriptions are shown.
If there is a single exact match to the name, the field descriptions for that page are shown.
If there is more than one exact match, no descriptions are shown. You must open the drop-down list and
select the page that you want.
If the name that you typed is part of the name of another page, you see the descriptions for your page.
However, if you open the drop-down list, you see additional pages that contain that name.
For example, no descriptions are shown when you type Counting in the Select a page field. You open the drop-
down list, and see that there are two pages that have the name Counting and several pages that contain the word
"Counting" in the name. If you select the page that has the AOT name InventJournalCount , the field descriptions
are shown for that page. However, if you open the drop-down list again, you will see that the list now contains all
pages that have "InventJournalCount" as part of their AOT name.

Troubleshooting
This section provides information to help you troubleshoot issues that you might encounter when you use field
descriptions.
I can't find a field description
We're in the process of adding descriptions for the more complex fields. If you require help for a particular field, let
us know by adding a comment for this topic.
The field description isn't helpful
Let us know by adding a comment for this topic. If you can, describe the additional information that you require.
I can't find a field on the Field descriptions page
To show all the fields on a page, set the Include fields without a description option to Yes . Click the Select a
page field to verify that you've selected the correct page. If the name that you typed is part of another field name,
you might have selected the page that has the longer name.
I can't find a page on the Field descriptions page
For information about the various way to find pages, see the "Searching for pages" section earlier in this article. If
you've typed the exact name of the page, the field descriptions might not be shown if more than one page has the
same name. Click the arrow in the Select a page field to open a filtered list of the pages that are available.

Additional resources
Customize field descriptions
Task recorder resources
4/20/2020 • 32 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how to use Task recorder to record business processes.

Overview
Task recorder
Task recorder for Finance and Operations apps is a utility that lets users record business processes for several
different use cases. Here are some examples:
Step-by-step guided tours of a specific business process in the application itself
Documentation of a business process as a Microsoft Word document that can optionally include screenshots
Regression tests for a business process
Automatic playback of a business process in the application
Task recorder for Finance and Operations apps boasts high responsiveness, a flexible extensibility application
programming interface (API), and seamless integration with consumers of business process recordings. Task
recorder is also integrated with the Business process modeler (BPM) tool in Microsoft Dynamics Lifecycle
Services (LCS), so that users can continue to organize their recordings. However, users can no longer produce
business process diagrams from recordings.
Task recorder can automatically generate application regression tests from business process recordings and play
back previously recorded processes. These features also include test-specific gestures that let users take full
advantage of Task recorder.
Architecture
Task recorder can record user actions in the client with exact fidelity, because every control is instrumented to
notify Task recorder about the execution of user actions. The control notifies Task recorder that an event has
occurred and passes all the relevant information about the corresponding user action in real time. From this
information, Task recorder can capture the type of user action (for example, a button click, value entry, or
navigation) and any data that is related to the user action (for example, the input data value and type, form
context, or record context). Task recorder persists the information with enough detail to ensure that a playback of
the recording can run the recorded actions exactly as they were performed by the user.
Basic configuration
Task recorder is included with every Finance and Operations app, and lets users begin to record business
processes immediately after they open the client for the first time.
IMPORTANT
The Task guides tab is currently not available in Commerce or Human Resources. We are currently working to enable this
functionality in a future release. Task guides in the Getting Started experience in Human Resources remain available to cover
basic functionality. Procedural help is also available on the docs.microsoft.com site
(https://docs.microsoft.com/dynamics365/) for both Commerce and Human Resources.

Start a new recording


The following steps show how to use Task recorder to start a new recording.
1. Open the product, and sign in. It's a good practice to refresh the browser before each new recording. A
refresh creates a new user session and restarts Task recorder. Therefore, it provides the most stable
recording experience.
2. Select the company that you want to use while recording. If this is your first time using Task recorder, you
can follow along as this tutorial creates a sample recording based on a Fleet Management business
process. You will need to load the Fleet demo data to follow along:
a. Go to Dashboard > Fleet Management > Fleet setup .
b. Click Load demo data .
c. When the data is finished loading, click Close .
d. Go back to the Dashboard by clicking the product name in the navigation bar.
3. Go to Settings > Task recorder .
4. The Task recorder pane is opened. You can click the Close button (X ) in the upper-right corner to close
the Task recorder pane before you begin a new recording. You can reopen the pane by following the
previous steps.
5. Click Create recording .
6. Enter a name for the recording and click Star t . Recording begins the moment Star t is clicked. For the Fleet
example in this tutorial, we'll use the name "Create a new rental reservation."
While you're recording, you can click the Close button (X ) in the upper-right corner to hide the Task
recorder pane without stopping the recording. You can reopen the pane by clicking the Task recorder
button that appears at the top of the page. This button appears only while recording is in progress.

NOTE
If the Saved views feature is turned on, recordings should be created by using either published views or the
standard view, to ensure that recordings work reliably for users.

7. Task recorder enters recording mode . The pane shows information and controls that are related to the
process of recording.
Now you're ready to record a business process using Task recorder. If you're following this guide as a first-time
user, you may complete the following Fleet Management scenario as an example. Otherwise, you can record your
own application scenario.
Record a Fleet Management scenario
1. In the Task recorder pane, click Star t sub-task .
2. Set Name to "Create a new rental customer". Leave the Comment field blank.
3. Click OK . The task is added to the step list.
4. Go to Dashboard > Fleet Management > Reser vation Management .
5. Go to All customers under the Summar y tab.
6. In the Action Pane, click New .
7. Enter a first and last name for the customer.
8. Click Save .
9. In the Task recorder pane, click End sub-task .
10. Return to the Reser vation Management workspace by clicking the browser back button twice.
11. In the Task recorder pane, click Star t sub-task . Name the task "Rent a vehicle to the new customer". Click
OK .
12. Click (+ ) Rental under Summar y .
13. Under Information , select a "1975 Litware McKinley" as the vehicle.
14. Under Information , set the customer to the one just created.
15. Expand the Discounts section.
16. Click Add under Discounts and add the Frequent Customer discount. Click OK .
17. In the Action Pane, click Star t Rental .
18. Set the return date to some date in the future.
19. Click OK .
20. In the Task recorder pane, click End sub-task .
21. Click Stop at the very top of the page.

Recording a business process


After you've started your recording, you can perform your business process just as you would typically perform it
by using the web client. As you interact with the product, new steps are added to the step list in the Task
recorder pane. In this section, you will learn about other actions that you can perform while you're recording a
business process, to take full advantage of Task recorder's capabilities.
Stop
Stop is used to end the recording session. Before you click Stop , you should make sure that the recording is
completed, because this action isn't reversible. When you click Stop , you're taken to the download options screen.

Start/End sub-task
Star t/End sub-task lets a user specify the beginning and end of a set of grouped steps in a recording. Click the
Star t sub-task button to add a "Sub-task" step to the end of the current list of recorded steps. The sub-task will
include all steps that you perform from this point until you click the End sub-task button. When you click the
End sub-task button, an "End sub-task" step is also added to the list of recorded steps.

NOTE
You must start a sub-task before you perform/record the steps that you want to include in the task. Then, after you've
performed/recorded all the steps that you want to include in the task, you must end the sub-task.

Sub-tasks are purely an organization tool, and consumers of business process recordings can interpret the task
groupings in useful ways. Because tasks can be nested inside other tasks, they provide the flexibility to organize
very long and complex business processes.
Delete/Restore step
Delete/Restore step enables a user to remove steps from the recording, or undo the removal of a step from the
recording. You must first select the step in the Steps list that you want to delete/restore, and then click the
Delete/Restore step button.

NOTE
The behavior of the Delete button changes when you play back a recording. In playback mode, a deleted step can't be
restored after playback has passed the point where it would have run the deleted step. For example, you load a recording
that contains three steps, and then you delete step 2 before you start playback. You can restore step 2 only as long as
playback hasn't run step 3. After you start playback, and playback has "skipped" step 2 (because you deleted it) and run
step 3, you won't be able to restore step 2. Because step 2 wasn't run and therefore wasn't recorded, it can't be
retroactively added back into the recording at its previous position.

Add developer placeholder


Add developer placeholder lets the user add a placeholder step to the list of recorded steps. This placeholder
step doesn't appear when the task guide is viewed, and it isn't run during maintenance of a recording. It's used
only by the Regression suite automation tool (RSAT) or the X++ code generator that enables an X++ test to be
created from a task recording. When the code generator creates an X++ test, it automatically adds a method stub
to the generated code. The developer can then add X++ code into this method stub. The automated code will call
the validation when the generated test is run at the point in the recording where this placeholder was added.

Enriching steps in a recording


There are various options for enriching a step in a recording. For example, you can adjust the text that is
associated with a step and add information about a specific step. This section describes the step enrichment
capabilities that are available. To access these options, click the Edit step button on a specific step of a recording.
Step instruction
The Step instruction is the primary text that is displayed for this step in the task guide. There are usually 2-3
alternative options for step instructions, and they appear in the following order when editing the annotation.

This image shows the annotation options for changing a step.


Preferred value instruction This type of instruction will direct the user to enter the same data that was
used when the step was recorded. Example: In the First name field, enter 'John'.
Example value label This type of instruction will direct the user to enter their own data, indicating that
the data that was used when the step was recorded was only Example data. Example: In the First name
field, enter a value.
If users click the See more button on this step when they play the recording as a task guide, they will be
able to see the data that was used when the step was recorded. This recorded data value will be labeled as
an Example data value.
NOTE
Steps that are not related to fields, such as clicking buttons, opening forms, or selecting records from a lookup, do
not set Example value label as an option when annotating.

User-supplied value label This step instruction contains placeholder text, which the author can fill in
with their own text. For steps which have an Example value label option, the placeholder allows
substituting the text which normally specifies the data to enter. This is useful for scenarios where neither
the Preferred value label nor the Example value label sufficiently express the data that should be
used for this step.
Example label: In the First name field, enter {your example text}.
Example label after supplying the placeholder text: In the First name field, enter the customer's name.
For steps which do not have an Example value label option, the placeholder allows substituting all of the
label text. Steps associated with buttons, for example, do not have Example value labels , so you may
replace the entire label text with your own text.
Example label before replacement: Click Post.
Example label after replacement: To post the order, click Post.
Titles and notes
Titles and notes provide places for user-specified text to be associated with a step in a task guide.
Title – The title lets you specify the text that appears above the step instruction for this step in the task guide.
The title a good place to put text that you want users to read before they complete the action that is indicated
by the step instruction.
Note – You can use a note to specify text that appears in the expandable section of the pop-up for this step in
the task guide. A note is a good place to put optional reading material or other information that might be
useful to users, but that they aren't required to read to complete the action that is indicated by the step
instruction.
Hide from task guide
The Hide this step option lets the author prevent specific steps from appearing in the task guide. This option is
useful for hiding steps that are required for the task recording to run in playback mode, but that should not be
seen by users. Examples of these steps include copy steps, system-generated steps, and data clean-up steps. If
you hide a sub-task, all the steps that are recorded inside that sub-task will also be hidden.

Using control gestures


The basic recording capability lets a user record an end-to-end business process by using Task recorder, but
without adding overhead to the process. In some circumstances, more advanced recording features can be used
to create even richer business process recordings. Each of the following gestures is found under the Task
recorder option on the shortcut menu (also known as a right-click menu or context menu) for a control and
causes a step to be added to the recording. If the gesture isn't supported for a control, it won't appear on the
shortcut menu for that control.
Copy
The Copy gesture lets you copy the value for the current control to the Task recorder "clipboard." That value can
then be used later as part of a Paste or Validate gesture. Because values from multiple controls might have to be
pasted, the Task recorder clipboard maintains a list of all control values that have been copied in the recording.
Paste
The Paste gesture lets you paste a value from a previous Copy gesture in the same recording. The Task recorder
paste function works like the standard paste function that users might be familiar with, but it has an additional
benefit when it's used during recordings. Because Task recorder will replay the recorded Copy and Paste
commands during playback, if the copied control has a different value than it had during recording, Task recorder
will paste the current value instead of the value that the copied control had during recording. This feature is
useful in scenarios where the copied control has a value that can change between environments (for example,
recID values or number sequences).
There is an additional benefit from using the Copy and Paste gestures when test code is generated. For any
control where the value is set via the Paste command, Task recorder doesn't have to create a parameterized input
variable for that control's value, because it's set based on another control's value. This feature can be very useful
in scenarios where an entity such as a customer is created, and an identifier for that entity is frequently entered
during the recording. Instead of manually re-entering the customer name or ID throughout the scenario, and
causing Task recorder to generate a parameterized input variable for each entry, the user can copy the customer
name or ID one time, and then repeatedly paste it. In this case, Task recorder will generate a single parameterized
input variable to represent the customer name or ID. This feature can make it much easier to change the input
data for a generated test.
Validate
The Validate gesture lets you insert a step that validates the value of the targeted control. This gesture always
uses equality to validate the control value. Validations aren't currently run during recording playback. Instead,
they are run only when the generated test code is run. Two kinds of validation are available:
Current value validation will capture the targeted control's value at the time of recording and use it to
generate an assertion in the test code. In the list of validation options on the shortcut menu, Current value is
always first.
Reference value validation will use the value of a previously copied control when generating an assertion
in the test code. This allows creating assertions that are resilient to changes in the data, since the value is not
hardcoded into the test code. In the list of validation options on the shortcut menu, Reference value
validation follows the format [AOT name of copied control: current copied value].
Add info step
The Add info step gesture lets you insert a step and supply your own text for it. This feature is useful primarily
for creating task guides. An informational step (or info step for short) is a task guide step where the
instruction text for the step is user-specified. Info steps are useful for describing actions that are a part of the
scenario but must occur outside the client. For example, a scenario might require the user to search for item
inventory or check an email for information.
You can specify where an info step should appear in the task guide. The info step can point to a control on the
page, if the step is associated with the control. Alternatively, the info step can appear in the upper right of the
page, if the step is external to the client, or if it's an explanation that applies to the whole page.

NOTE
Because info steps are manually specified steps and are not automatically recorded by Task recorder when the user takes an
action on a control, the info step does not have the capability to automatically progress when a user completes the step in
the task guide. Because the info step is not associated with taking an action in the client, there is no action for a task guide
to detect that the user has completed in order to automatically progress to the next step.

Options after a recording is completed


After you click Stop to end your recording session, several options are shown so that you can save the files that
are related to the completed recording. Select Save to this PC , and save the task recording package to your
desktop. You will use this file later.
Save to this PC
One option after you finish your recording is to download the task recording package (an .axtr file) to your
computer. This file can be loaded later via the Task recorder pane, so that the recording can be played as a task
guide or edited.
Save to Lifecycle Services (LCS )
When you save your recording to an LCS library, it's published on the specified business process in a BPM library.
If the selected LCS library is set as a Help library, you will be able to find the task guide for the recording by
searching the Help menu.
Export as Word document
The Microsoft Word document for your recording contains the recorded steps as well as any screenshots that
were captured.
Save as developer recording
The raw recording file (developer recording) is useful for developer scenarios, such as test code generation and
scenarios where RSAT is used.

Playing back a recording


The playback functionality of Task recorder can automatically run the steps of an existing recording by using the
pages and values that were originally recorded. Playback mode can be used to update an existing recording if
changes were made to the underlying application, and those changes altered the business process steps that are
required for the scenario. It's important to remember that, in this mode, Task recorder simultaneously re-records
the steps and plays them back. When the playback is completed, a new recording is produced that reflects both
the steps that were run from the existing recording and any new steps that the user manually performed. Any
steps that aren't run either by the user or automatically by Task recorder aren't included in this new recording.
To play back an existing recording, follow these steps.
1. Refresh the browser tab.

NOTE
It's a good practice to refresh the browser before each new recording.
2. Open the Task recorder pane.
3. Click Playback recording .
4. Click Open from this PC to load a recording from a previously downloaded Task recorder package (.axtr
file).
If you're reading this guide for the first time and following along, choose the "Create a new rental
reservation" file that you downloaded previously.
5. Click Star t .
When you play back a recording, additional actions are available in the Task recorder pane.
Play next pending step
Play next pending step runs the next step in the recording. This action is useful because it gives you more
control over the playback speed when you want to analyze the effects of a single step. This action has a side-effect
that it's important to be aware of. When you click Play next pending step , any open lookups, drop-down dialog
boxes, or Action Pane tabs might be dismissed, because this action removes focus from those elements. For these
situations, we recommend that you use Play all pending steps instead.
Play all pending steps
Play all pending steps begins sequential execution of the remaining steps in the recording, and continues until
either playback is paused or all steps have been run. During playback, the Play all pending steps button is
replaced by a Pause button that can be used to pause playback. If playback can't successfully run a step for any
reason (for example, because it can't find a button that has been renamed), Task recorder will skip that step, and
playback will automatically be paused. In this way, the user has an opportunity to replace the obsolete step by
completing the new steps in the client. Task recorder will record the new steps and ignore the step that was
skipped. The user can then click Play all pending steps to continue playback for the remaining steps. After the
recording is completed, the user can download the updated recording. This recording will contain all the steps of
the original recording, but will exclude any skipped steps and include any new steps.
Play to selected step
Play to selected step behaves like Play all pending steps , but it lets you play only a subset of the steps
instead of all the steps. In the list, select the step that you want playback to stop at, and then click Play to
selected step . Task recorder will begin to run the steps in the list and will stop when it has run the step that you
selected.

Editing a recording
Although you can edit a recording through the playback functionality, there is also a mode that lets you make
simple edits to a recording without having to replay the whole recording. To access this feature, click Edit
recording after you open the Task recorder pane. You can use this feature to make the following edits:
Insert steps into a recording without re-recording the whole file.
Move steps under a sub-task without re-recording the whole file.
Adjust the name and description of the recording.
Insert steps without re -recording the entire file
You can add a step anywhere in a task recording without playing back or re-recording the whole file.
1. Select the step after which you want the new step to be inserted. Make sure the step is highlighted.
In order for task recorder to insert a step, you must have the correct page open. The correct page is the
page on which the new step occurs. Task recorder has a mechanism that determines what the active page
is, and will disable the functionality if the correct page isn't open.
When you are on the correct page, Inser t step becomes available.

2. Click Inser t step .


When you click Inser t step , Task recorder switches to recording mode. Any action that is performed in the
user interface (UI) will now be recorded and inserted into the recording as steps.
3. Click Stop .
Recording mode is stopped, and you can now continue to edit the recording. For example, you can repeat
this process to insert steps in other places in the recording, or you can move sub-tasks as described in the
next section.
4. When you've finished editing the task recording, click Done editing , and then select one of the options to
save or publish the recording.
Move steps under a sub-task without re -recording the entire file
You can move steps under a sub-task without playing back or re-recording the entire file. You can also move the
sub-task step or the end sub-task step if you want to group an existing block of steps.
1. Select the step or sub-task step that you want to move. Make sure that the step is highlighted.
2. Click Move step after . To access this command, you might have to select the ellipsis (...) button.

3. Select the step or sub-task step that you want to move the step or sub-task step after. Task recorder will
move the step.
4. To move the end sub-task step, select it, click Move step after , and then select the step that you want the
end sub-task step to be after.
If you want the first step in the task guide to be within a sub-task, create a sub-task step as the second
step, and then move the first step into it. You can add or move as many steps or sub-tasks as needed.
5. When you've finished editing the task recording, click Done editing , and then select one of the options to
save or publish the recording.
Adjust the recording name and description
You can adjust values of the Recording name and Recording description fields. If you want to see more steps
in the Task recorder editing pane, you can also collapse the section that shows the recording name and
description.

Playing a task guide


A task guide is a user-focused experience that lets the user follow a guided step-by-step set of instructions to
complete a business scenario by using a task recording. The user is instructed to complete each step through an
animated pop-up prompt that will move across the page and point to the UI element that the user should interact
with. The prompt will also tell the user how to interact with the element. For example, it might state, "Click here"
or "In this field, enter data." Each step that the user is instructed to complete is based on a step that was originally
recorded in the task recording. Because the task recording file contains the data that describes the step that was
originally recorded, the task guide can automatically determine when the user has completed the step as
expected. It then automatically moves on to the next step.

NOTE
One way that the task guide determines that a user has completed a step is by detecting when the value in a field has
changed. Although the task guide doesn't require that a specific value be set, it does require that the field value be changed
in order to determine that the step was completed. The user must change the field value, and then press the Tab key or
click in an area outside the UI element. Only at that point does the client detect that the field value has changed, and it can
then proceed to run any required application validation or business logic. Therefore, before the task guide can determine
that the step was completed by the user, it relies on the client to detect that the field value has changed.

What can a task guide allow a user to do?


When a user is completing a task guide, the client behaves in the same manner, with the same data, security, and
validation rules as it does when the user is not completing a task guide. There is no difference of behavior in the
client that would allow a user to take an action that they cannot otherwise take when they are not completing a
task guide. When a user is completing a task guide:
Any data the user enters is subject to the same data validation rules as when not playing the task guide.
Any data the user enters may be saved, and the user may modify data according to the same restrictions and
rules as when not playing the task guide.
Any security mechanisms the user encounters behave the same as when the user is not playing the task guide.
Any forms or controls the user accesses are subject to the same security and access mechanisms as when the
user is not playing the task guide.
The "On-rails" feature of task guides
By default, when a user begins a task guide, they are placed "on-rails". These "rails" prevent the user from clicking
on elements other than the element the task guide is pointing to. When the user tries to click on something
outside of the UI element that the task guide is pointing to, the task guide pop-up will animate to let the user
know that they cannot progress until they complete the current step of the task guide.
While a user is prohibited from clicking on other elements, the user is not prevented from tabbing through the
other controls on the form, and the user is not prevented from using keyboard shortcuts. This is by design, as the
"on-rails" feature is designed for and targeted at first-time users, who are expected to primarily use the mouse as
they become familiar with the application.
More advanced or experienced users can turn off the "on-rails" feature when they complete a task guide. At any
point during the task guide, these users can turn off the rails by clicking the Unlock button that appears on the
Task recorder toolbar at the top of the page. This button can also be used to restore the rails at any point during
the task guide. In some situations, the task guide might automatically turn off the "on-rails" feature. When the
rails are turned off, the user can click UI elements just as they do when the task guide isn't running. The "on-rails"
feature might be automatically turned off in the following situations:
The user is being directed to go to a page by using the navigation pane or navigation search.
Because the user can use either entry point, the task guide doesn't point to a specific entry point, and it
doesn't prevent the user from using either entry point.
The task guide enters an error state (see the next section for a list of error states).
The task guide is showing an info step.
Error detection
An error state occurs when the task guide is not able to point to the UI element that is associated with the current
step because the UI element is not visible on the screen. When the task guide detects that the current step
requires the user to interact with a UI element that is not visible, then the task guide pop-up will move to the
upper-right side of the screen. These causes of an error state can be simplified into two categories.
The control is not visible on the form
This error state usually occurs when the user has opened or closed the incorrect tab, FastTab, collapsible section,
FactBox, or pop-out menu.
Because the UI element that is needed for the current step is somewhere on the current form, but it is not visible
on the screen, the task guide pop-up will simply move to the upper-right side of the screen while displaying the
same instruction that informs the user of the action they need to take.
Because the task guide can't find the UI element on the screen, the user must manually determine what is causing
the UI element to be hidden and then make the element visible on the screen. The task guide pop-up will
automatically detect that the UI element is visible and will reposition itself so that it's pointing at the now-visible
element.
The control is not on the form
This error state usually occurs when the user has gone to the wrong form, either by navigating to the wrong form
or by leaving the correct form.
Because the UI element is not visible on the screen, the task guide pop-up will move to the upper-right side of the
screen. In addition, when the task guide detects the user is on the wrong form, the task guide pop-up text will
change to inform the user of the form they should navigate to.
In some cases, the task guide pop-up will not mention the form by name. This is because the user may need to
navigate to a dynamic form. A dynamic form is a form that is not modeled, frequently known as a runtime-
generated form. These sorts of forms do not have a proper name. Some examples of runtime-generated forms
include simple and custom lookups. The way for a user to navigate to a lookup form is to re-open the lookup.
Next step and Previous step
The Next step and Previous step buttons appear in the task guide pop-up and let a user manually control the
flow of the task guide. When these buttons are clicked, the task guide will go to the next or previous step. The task
guide doesn't verify that the user has completed a step before it goes to the next or previous step.
The task guide never automatically completes any step for the user, even when the Next step and Previous
step buttons are used. Use of these buttons can cause an error state if the previous or next step refers to a UI
element that isn't on the current page. When the user is completing an info step, the only way to proceed is to use
the Next step button. This action is required because an info step doesn't represent an action that was recorded
on any UI element. Because no action was recorded in the task recording, the task guide doesn't have the
necessary information to determine what action it should expect the user to complete.
The See more button
When the See more button is clicked, the task guide pop-up expands to show additional information that is
related to the step. The additional information is often optional reading material that isn't required for the user to
successfully complete the step. The following information might be included:
An Example value
The Example value is the value that was originally used when the task recording was created.
Example values appear only for steps that use non-lookup fields. These fields include text fields, number
fields, date fields, combo boxes, and check boxes.
A Note
A Note may contain scenario-specific information that will help provide context to the user about the
current step of the task guide.

Taking screenshots in Task recorder


By using a pre-release Chromium browser extension that works for both the new (Chromium-based) Microsoft
Edge browser and Google Chrome, Task recorder can take screenshots of the browser as a user records a
business process. After the user completes the recording, Task recorder can use these screenshots to generate
Microsoft Word documents. To turn on this functionality, follow these steps to install the pre-release Chromium
extension that enables Task recorder to take screenshots during recording.
1. Download the FMLabTaskRecorderScreenshot folder that contains the extension from GitHub, at
https://github.com/Microsoft/FMLab.
2. On-premises deployments only: Adjust the manifest for the extension so that it matches the following
code. Replace <hostname> with the base URL for your environment.

...
"content_scripts": [
{
"matches": ["https://*.dynamics.com/*", "<hostname>"],
"js": ["screenshot.js"]
}
...

3. Open the new (Chromium-based) Microsoft Edge browser or Google Chrome.


4. Select Settings and more > Extensions" in Microsoft Edge (or Customize and control Google
Chrome > More tools > Extensions in Google Chrome).
5. Select the Developer mode box.
6. Click Load unpacked extension .
7. Browse to the folder that contains the Task recorder extension, select the folder, and then click OK .
8. Make sure that the Enabled box is selected, so that extension is turned on.
9. Restart the browser.
Task recorder will now take screenshots of the tab where the client is running. These screenshots are available for
one week after the recording has been played. (If you're running a platform version that is earlier than Platform
update 16, the screenshots are available for only 15 minutes.) If the screenshots have expired, you can regenerate
them by playing the task recording again.
Note that Task recorder does not capture screenshots from other tabs or of the user's desktop.

Generating tests from a recording


After a business process recording has been completed by using Task recorder, a developer can import the raw
developer recording file (.xml file) into Visual Studio to create an X++ test. The import tool generates a human-
readable X++ test from the recording, and translates any control gestures, validations, or tasks into the
appropriate test code.
Import a recorded test
1. Open Visual Studio by using the Finance and Operations development tools.
2. Go to Dynamics 365 > Addins > Impor t task recording .
3. In the Impor t task recording menu, use the Browse button to locate a previously downloaded
recording file.
4. Optionally, choose to have the generated test code be added to the startup project. This requires that a
solution containing a project is set as the startup project. This will place the generated X++ test into the
same model as the project.
5. If you're creating a new project, select the model for the project. The generated X++ test will be put in this
model. For the generated test to be successfully built, the model must have references to the
TestEssentials model.
6. Click Impor t .

7. In the New Project dialog box, provide a name for the project.
8. After the project is created, the user can open and inspect the generated code.
9. To run the test, build the project.
10. Go to Test > Windows >Test Explorer .

Appendix
Controls that are known to have incomplete support for Task recorder
Table
Filter pane, which is the filter that pops out from the left side
When adding filters to the filter pane, the steps are delayed. The steps do not get recorded until the user
clicks "Apply" on the Filter pane.
Enhanced previews
No planned support for recording gestures inside of enhanced previews. While recording, enhanced
previews will be disabled.
No extensible controls are supported out of the box, except Segmented Entry.
Extensible control owners need to individually build support for Task recorder.
Controls that can be recorded, but have limited support for the Copy/Paste/Validate gestures
Date/Time
Doesn't support copy/pasting "Never" as a value.
Image
No ability to copy/paste/validate an image value.
Filter pane
Copy/Paste works, but the UI will not show the pasted data. You can proceed as if it pasted correctly.
Message box
You cannot validate the text in the message box.
Controls that are known to have incomplete support for being used in a task guide
Quick Filter, which is the filter control that appears above lists
Does not support displaying a "generic value" during the task guide. Currently displays the value that
was used during recording.
Filter pane, which is the filter that pops out from the left side
The task guide does not point to the individual elements within the Filter pane that need to be clicked
on.
Create documentation or training with Task Recorder
3/24/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains what Task recorder and task guides are, how to create task recordings, and how to customize
Microsoft task guides and include them in your Help.

IMPORTANT
You can record your own task guides for Dynamics 365 Human Resources, but you won't be able to save them to a Business
Process Modeler (BPM) library or open them from the Help pane at this time. You can save them locally or to a network
location, and then open and replay them using Task recorder.

Learn about Task recorder


Task recorder is a tool that you can use to record actions that you take in the product user interface (UI). When you
use Task recorder, all of the events that you perform in the UI that are executed against the server—including
adding values, changing settings, removing data—are captured. The steps that you record are collectively called a
task recording. Task recordings can be used in many ways:
Task recordings can be played as task guides. Task guides are an integral piece of the Help experience. A
task guide is a controlled, guided, interactive experience through the steps of a business process. The user is
instructed to complete each step by way of a pop-up prompt (or "bubble"), which will animate across the UI
and point to the UI element that the user should interact with. The "bubble" also provides information about
how to interact with the element, such as “Click here” or “In this field, enter a value.” A task guide runs against
the user’s current data set and the data that is entered is saved in the user’s environment.
Task recordings can be saved as Word documents. This allows you to easily produce printable training
guides.
You can create your own task recordings, play task recordings provided by Microsoft, or modify Microsoft-
provided task recordings to reflect your configuration. For more information about Task recorder, see Task
recorder.

Plan your task recording


Whether you’re creating a new task recording or basing your recording on a Microsoft task recording, keep the
following information in mind.
Plan your recording like you would a video. Make all your decisions ahead of time.
Walk through the business process once or twice without recording it to understand the steps.
When you walk through the process before you record, notice where you use shortcut keys or the Enter key, so
that you can avoid using them during the actual recording.
Identify the following:
Do you want to group steps together into sub-tasks? Sub-tasks visually set apart sections of a process.
For example, if you are creating a recording for "Creating and releasing a product," you may want to
group together the steps that are required to create a product, and then group together the steps that
are required to release the product. Sub-tasks also make longer processes easier to read.
Do you want to add annotations, and if so, where? See "Understand the different types of annotations"
below for more information.
What values will you add in the various fields as you complete the steps of the business process? It is a
good idea to know what you'll select or enter as you proceed so that you don't backtrack or fix mistakes
as you're recording.
Write your description and annotations ahead of time
At the beginning of each task recording, there’s a description field that allows you to enter an introduction to
the recording. It is a good idea to write and save the description ahead of time in a separate document so you
can copy and paste it into the task recording when you are recording. That way, you can spend time refining the
text when you aren't in the process of recording. Cutting and pasting the text makes the recording process go
more quickly and smoothly.
For each step in a task recording, you can create annotations. During playback of a task guide, annotations
appear in the "bubble" as notes above or below the text for the step. When viewed as text in the Help pane,
annotations appear as text inline in the step. As with the description, it is a good idea to write and save your
annotations in a separate document. When you’re recording the task recording, cut and paste the annotations
in from that document.
Understand the different types of annotations All annotations are optional. Only add them when they’ll
provide helpful information to the user.
Title : A title annotation will appear before the step text that task recorder automatically generates. In the task
guide, the title annotation appears above the automatically generated text. Use this type of annotation to
explain why the user is doing the step or to give additional context.
This is the editing pane that you see when you add an annotation as you create your recording. Enter a title
annotation in the Title box.
This is what the title annotation looks like in the "bubble" in the task guide.
Notes: A notes annotation will appear after the step text that task recorder automatically generates. In the task
guide it will only be visible if the user clicks the Show more link in the task guide bubble. Use this type of
annotation to describe anything that a user needs to know to complete the step.
This is the editing pane that you see when you add an annotation as you create your recording. Enter a notes
annotation in the Notes box.
This is what the notes annotation looks like in the "bubble" in the task guide.
Info step : These annotations are created by right clicking on a control or anywhere on a form < Task
recorder < Add info step. Info steps appear as a numbered step at whatever point you insert it, even though
no action was recorded in the UI. You can add a form-level info step or an info step associated with a control.
When an info step is associated with a form, the task guide “bubble” will appear someplace on the form, with
no pointer, when the task guide is played. When an info step is associated with a control, the task guide
“bubble” will point to the control when the task guide is played. In the Help pane, an info step annotation will
appear as a numbered step with whatever text you entered. Use info steps to prepare the user for the next
steps, to describe steps that need to be done outside of the application, or to refer to other recordings
(although you cannot create hyperlinks in annotations).
Determine how long to make your recording
The user will generally either read or play the recording from start to finish, so don’t combine steps or tasks
that are better done separately.
Try not to record a long scenario that spans multiple sub-processes. For example, “Operate in-store customer
service desk” is too broad; break it up into shorter tasks such as “Accept returns” and “Add to gift card.”
If a task can be carried out as part of several different business processes, create a separate recording for it, and
you can refer to it in the other recordings.
If the process involves multiple tasks that the person likely does all at once, you can keep the tasks in one
recording, for example, “Set up and assign functionality profiles.”
If it is something someone does once (such as configuration) and then another task that they can do
immediately afterward but may do repeatedly, and on its own, break them up into two task recordings.
Decide where, in the UI, to star t a recording The page that you are on when you start recording a task
recording affects which page the task guide is displayed for. For example, if you want your task recording to be
listed in the Help pane when a user clicks Help on the General ledger parameters page, you must start your
recording on the General ledger parameters page. Save recordings as .axtr files When you are done creating
or editing a task recording, you are presented with several options for how you want to download, or save the
recording. You can download the file as a task recording package (.axtr), download it as a raw recording file (.xml),
download it as a Word document, or save the file to an LCS library. It is a good idea to always save your task
recording as a task recording package file (.axtr). This will help make maintenance of the file easier if procedures or
annotations need to change later. If you want to download the file as a Word document, also save it as a task
recording package file.

Create your task recording


For detailed walk-through steps, see Task recorder resources.

Copy and customize Microsoft's task recordings


You can download and edit Microsoft's task recordings to use them for your own Help documentation or training
materials. To download a Microsoft task recording, follow these steps:
1. Open Task recorder. Task recorder is located in the Settings menu.
2. In the Task recorder pane, click Maintain a recording.
3. Under Where is the recording , click It is in an LCS librar y .
4. Click Select the LCS librar y .
5. Select the Microsoft global library.
6. In the tree, select the business process library node that the task recording is associated with.
7. Click OK .
8. Click Star t .
9. At this point, step through the recording, changing any steps as you go to re-record it. Note : If you only need to
change the text of a recording, you can open the recording in Edit a recording's annotations mode, and
then save it.
10. After the recording has played to the end, click Stop in the task recorder bar at the top of the screen.
11. Choose how you want to save the task recording.

Additional resources
Help system
Connect the Help system
Task Recorder
Create Rich Help Topics with Task Recorder (external link)
Videos
11/12/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

On the Microsoft Dynamics 365 YouTube channel, you can find videos created by Microsoft that demonstrate a
wide range of business solutions for Dynamics 365 products. This section lists the "how-to" videos for Finance and
Operations apps that are hosted on the channel.

NOTE
Some of the videos listed were published under a previous product name, but are still applicable.

Videos for Finance and Operations development and administration


Data integration
Prospect to cash integration
Synchronize a work order between Dynamics 365 for Field Service and Finance and Operations apps
Data management
Use data entities and data packages
Development
How to resolve conflicts in Visual Studio
Optimization advisor
Setting up a development branch and build
Setting up a development machine
Azure DevOps integration with Lifecycle Services
Intelligence
How to edit an embedded report in an analytical workspace
How to embed PowerBI.com reports in Finance and Operations apps
Bring your own database (BYOD) to Finance and Operations apps
How to use cost management Power BI content in Dynamics 365
Lifecycle Services (LCS )
Asset library in Lifecycle Services
Cloud-hosted environments
Creating support tickets from Dynamics 365 for Operations
Deploying environments
Getting started with Lifecycle Services
Deploying code to a sandbox environment
Deploying code to a production environment
Implementation projects in Lifecycle Services
Manage the code upgrade and tool process
Managing business process libraries in Lifecycle Services
Methodologies in Lifecycle Services
Request a production environment
Refreshing data in a production environment
Uptake a new platform release after Platform update 3
Use telemetry to monitor key performance counters in Dynamics Lifecycle Services

Videos for Dynamics 365 Finance


Customize the app
Add custom fields
Embed Power Apps
Expenses
Expense experience
Financial reporting
Find the version of Report designer
Help system
How to contribute to the Microsoft Dynamics 365 documentation
Office integration
Create an Excel template for header and line patterns
Organization administration
Document management
Revenue recognition
How to use revenue recognition
Tax engine
Tax engine overview

Videos for Dynamics 365 Supply Chain Management


Costs
Cost control mobile workspace
Get started with Cost accounting
Use Excel for cost analysis
Help system
How to contribute to the Microsoft Dynamics 365 documentation
Master planning
Master planning setup wizard
Office integration
Create an Excel template for header and line patterns
Organization administration
Document management
Procurement and sourcing
Approve purchase orders on a mobile device
Onboard a new vendor
Production control
Batch balancing
Enhancements to the production order release process
Visual scheduling with Gantt chart for production and batch orders
Warehouse management
Release production picking to the warehouse in batch
Use warehouse template to copy configuration

FastTrack Tech Talks


FastTrack Tech Talks focus on providing technical depth and best practices that provide customers and partners with
detailed knowledge that's specific to the subject areas.
Glossary
10/1/2019 • 15 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This glossary defines key terms and concepts in Finance and Operations apps.

A
a c c o u n t i n g j o u rn a l

A journal that is used to record the financial consequences of accounting events in an accounting system.
a c c o u n t i n g ru l e

A rule in an accounting system that controls the principles, methods, and procedures for classifying, recording, and
reporting the financial consequences of accounting events.
A C H ( A u t o ma t e d C l e a ri n g Ho u s e )

An electronic funds transfer system available in the United States that facilitates the transfer of funds between
receiving party and originating party bank accounts.
ac tu al q u an ti ty

The measured quantity that is input into or output from an activity.


a d d re s s v e ri f i c a t i o n

The service that is provided by a credit card processor that validates that the billing address provided by a card
holder matches the information on file with the issuing bank.
ag i n g

The process of classifying time periods by age.


a g i n g p e ri o d

The number of days in a time period used to report an overdue customer payment balance.

B
b al an c e s h eet

A statement of the financial position of an organization that reports the state of assets, liabilities, and equity on a
specified date.
b al an c e s h eet ac c o u n t

An account that describes the changes in value reported on a balance sheet.


b a n k re c o n c i l i a t i o n

A practice of reconciling a ledger account that represents a bank account by matching ledger account entries to
bank statement entries.
b a t c h a t t ri b u t e

A product attribute of a process batch or a transfer batch.


b e s t -b e f o re d a t e

A recommended date for obtaining the optimum quality or characteristic of a product.


b e s t -b e f o re p e ri o d

The time period in which to obtain the optimum quality or characteristic of a product.
b i l l o f exc h an g e

A source document that documents an unconditional request for a third-party to pay a second party on demand.
b l o c ki n g
The action of placing a document or product on hold.
B O M ( b i l l o f ma t e ri a l s )

A list of products and their quantities that are required to produce one product.
b u d g e t c o n t ro l

A practice of authorizing expenditure only when budget funds can be reserved to meet future payment
commitments.
b u d g e t c o n t ro l d i me n s i o n

A combination of active financial dimensions values used to allocate budget funds to pay for planned activities.
b u d g e t c o n t ro l ru l e

The encoding of a business decision to check committed and actual expenditure against available budget funds
allocated for detailed or aggregate activities defined by valid budget control dimension value combinations.
b u d g e t c y c l e t i me s p a n

A time period specified as a number of fiscal calendar periods. The budget period can be different from the
accounting period.
b u d g e t g ro u p

A set of financial dimension values in a budget dimension hierarchy that is used to calculate aggregate budget
funds allocated to superordinate financial dimension values by summing budget funds allocated to subordinate
financial dimension values.
b u d g e t mo d e l

A planning structure used to schedule budget fund allocations and expenditures.


b u l k i tem

A formula item input into a product delivery activity.


bundle

The combination of a number of products for sale as one unit.


b u s i n es s u n i t

A semi-autonomous operating unit that is created to meet strategic business objectives.

C
c ap ac i ty l o ad

The maximum amount of scheduled work that a work center can perform at a required capacity level.
c ap ac i ty p l an n i n g

A procedure for determining the resource capacity requirements that meet the demand of future output during
specific time periods.
c a rry -f o rw a rd b u d g e t

The budget that is transferred from one fiscal year to the next and that is reserved for open purchase orders in the
new fiscal year.
c a s h -g e n e ra t i n g u n i t

The smallest group of classifiable assets that generates cash independently of other assets within an organization.
These groups of assets are used to measure impairment losses that will be incurred.
c atc h w ei g h t

The actual or nominal weight of a sales item or inventory item.


c h a rt o f a c c o u n t s

A list of main accounts.


C O GS (c o s t o f g o o d s s o l d )

An accounting category used to sum the financial consequences of manufacturing products and carrying inventory.
c o n t ra c t o r

A role assumed by a person who participates in a contractor-employer relationship with a legal entity.
c o -p ro d u c t

An item produced jointly with another item.


c o s t c en ter

An operating unit whose managers are accountable for budgeted and actual expenditures.
c o s t v a ri a n c e

The difference between an expected cost and an actual cost.


c o s ti n g

The process of calculating, assigning, and allocating the cost of economic resources acquired, produced, or
delivered by an organization.
C TP ( c a p a b l e -t o -p ro mi s e )

The portion of product output from available operations resources and available input product required to fulfill a
specific customer requirement.
c u rre n c y c o d e

An alphanumeric identifier that represents a currency unit.


c y c l e t i me

The time taken to complete an activity.

D
d a s h b o a rd

The typical start page in Finance and Operations apps. On the dashboard, users see a section for each workspace
that they have access to. Each section displays the tiles from the summary sections in the related workspace. The
dashboard consists of a name and sections with tiles.
d ata en ti ty

An information structure that represents the data characteristic of an entity.


d el eg ate

A delegate is a type that represents references to methods with a particular parameter list and return type.
d e l i v e ry n o t e

A business document that documents the delivery of products between two parties.
d e ma n d f o re c a s t

A prediction of future product demand.


d e ma n d f o re c a s t i n g

A business process that estimates future demand and creates demand forecasts based on historical transaction
data.
d ep l o yab l e p ac kag e

The vehicle used for deployment on User Acceptance Test (UAT) and production environments.
d es i g n er

A Visual Studio tool that you used to create, update, and inspect your model elements.
d i me n s i o n -b a s e d p ro d u c t c o n f i g u ra t i o n

A configuration technology used to create product variants by selecting values for product dimensions.
d i s t i n c t p ro d u c t

A uniquely identifiable product.


d o c u me n t ma n a g e me n t s y s t e m

An application service for storing and handling an organization's documents.


d u ty

In the security model, a set of application access privileges that are required for a user to carry out their
responsibilities.

E
E F T ( e l e c t ro n i c f u n d s t ra n s f e r)

A networked system for transferring funds from one bank account to another.
even t

An event lets a class or object to notify other classes or objects when something of interest occurs.
E P E ( E v e ry P ro d u c t E v e ry )

A lean concept that is used to establish a regular repeating production cycle.


exten s i o n
Customizing an application by adding functionality to existing code.

F
f i n a n c i a l d i me n s i o n

A financial data classifier created from the parties, locations, products, and activities in an organization and used for
management reporting.
f i n a n c i a l d i me n s i o n v a l u e

A data element in the domain of a financial dimension.


f i n a n c i a l s t a t e me n t

A report that documents the financial information and financial position of an organization.
fi xed c o s t

A cost that does not vary with changes in product delivery throughput or output.
f i x e d c u rre n c y

A currency that has a fixed exchange rate in relation to another currency.


fi xed q u an ti ty kan b an

A type of kanban that is used when the number of kanbans that are assigned to a kanban rule is constant.
f o rmu l a

A numeric relationship among production process inputs and production process outputs.
f o rmu l a i t e m

An output of a batch process controlled by a formula.

G
g e n e ra l b u d g e t re s e rv a t i o n

A document that is often used by public sector entities to set aside or earmark budgeted funds so that those funds
are not available for other purposes.
g ra c e p e ri o d

The time period beyond a specified date during which an obligation can be fulfilled without penalty.
G ST ( g o o d s a n d s e rv i c e s t a x )

A value-added tax levied in some countries/regions.

I
i n t e rc o mp a n y

Occurring between or relating two or more legal entities that are part the same organization that consolidates the
accounts of all legal entities.
i n v o i c e ma t c h i n g

A practice of matching vendor invoice prices and product quantities to purchase orders and product receipts.
i tem al l o c ati o n key

A product family grouping that is used for forecast and demand scheduling.
i t e m re l a t i o n

A reference to the item allocation group or the item and its product dimensions in a kanban rule.

K
kan b an

A signal that communicates a requirement for a quantity of product.


kan b an fl o w

Defines the sequence of activities that are performed for kanbans that are created for a kanban rule.
kan b an j o b

A process or transfer activity in a production flow that is triggered by a Kanban.


k a n b a n j o b c o n s u mp t i o n

The withdrawal of product components from inventory in order to complete the kanban production jobs.
k a n b a n ru l e

A rule in a lean manufacturing system that realizes material planning and replenishment policies by controlling
how process and transfer activities are coordinated in production flows.

L
l e a n ma n u f a c t u ri n g

A philosophy in which manufacturing operations promote lean production flows and business activities.
l e a n s c h e d u l e g ro u p

A way in which to aggregate items for production, for example, based on a setup group, shipping group, or
transport group.
l ed g er ac c o u n t

A classifier created from the combination of main account value and other financial dimension values listed in a
chart of accounts and used to classify the financial consequences of economic activity.
l i c en s e c o d e

An alphanumeric key that grants a party the right to use software or software components as prescribed in the
terms of the license agreement, and that activates and inactivates software modules, software capabilities, and
software functions.
l i q u i d i ty

The ability of a party to use current assets to settle current liabilities.

M
ma s t e r s c h e d u l i n g

The process for generating a timetable for matching supply with demand.
mo d e l

A model contains code elements and reference metadata. It is created and inspected in Visual Studio.
mo d e l e l e me n t

A model is a group of elements (source files and metadata) that constitutes a distributable software solution. The
model is a design-time concept.

N
N B V (n et b o o k val u e)

The value of a fixed asset calculated as the difference between the original cost of the fixed asset minus its
accumulated depreciations.

O
o b j e c t p e rmi s s i o n

A permitted create, read, update, delete, or execute operation on a securable object.


o p e ra t i n g u n i t

An organization that divides the control of economic resources and operational processes among people who have
a duty to maximize the use of scarce resources, to improve processes, and to account for their performance.
o u t p u t p ro d u c t

The physical products that result from an activity.


o v e rl a y e ri n g

A method of customizing source code by providing new source code that overrides the default source code.

P
p ac kag e

A package is a compilable and deployable unit of one or more models.


p a rt y

A person or organization that participates in economic activities.


p eg g i n g
The process of tracing the quantity of a required item to its source.
p eg g i n g even t

A resource flow event that signals the demand for a product.


p l a n n e d i n t e rc o mp a n y d e ma n d

Predicted demand for a product by a legal entity that assumes the role of a vendor. The planned demand is
generated from planned demand for the product from a downstream legal entity.
post

To record the monetary value of an economic event in a specific account, or to summarize and reclassify general
and subsidiary journal account entries into general and subsidiary ledger account entries.
p re p a re r

The person who creates a source document to initiate a request for economic resources.
p ro c u re me n t c a t a l o g

A listing of product offerings that are grouped by procurement category. A procurement catalog is used to request
products for internal use by an organization.
p ro d u c t d i me n s i o n

The size, color, or configuration product attributes that are used for dimension-based product configuration.
p ro d u c t f a mi l y

A unique grouping of items, services, or rights that either participates in the same production or delivery activities
or that are offered to the same market segments. The grouping is represented by using a forecast allocation key.
p ro d u c t ma s t e r

A standard or functional product representation that is the basis for configuring product variants.
p ro d u c t re c e i p t

A source document that documents the receipt of products ordered, the receipt of products returned, or the receipt
of products received on consignment.
p ro d u c t v a ri a n t

A configuration of a product master.


p ro d u c t i o n f l o w

A production process designed using Lean principles.


p ro d u c t i o n f l o w mo d e l

A representation of the production capacity provided by a group of work cells in a production flow process.
p ro d u c t i o n o rd e r

A source document that documents the requirements for producing items to meet a demand.
p ro d u c t i o n s c h e d u l e

A schedule to produce a specific item and item quantity at a specific time and by specific human and operational
resources.
p ro s p e c t

A participant that has the existing and potential ability to provide a service or probable future economic benefit to a
legal entity.
p u rc h a s e a g re e me n t p o l i c y

A policy that authorizes parties to modify purchase agreement terms.


p u rc h a s e o rd e r p o l i c y

A policy that authorizes parties to modify purchase order terms and to control order processing.
p u rc h a s e q u o t a t i o n

A source document that documents an offer to purchase a quantity of product for a specified price and by a
specified date in response to a request for quotation in a procurement process.
p u rc h a s e re q u i s i t i o n

A source document that documents product requests so that they can be submitted for review and be used to
authorize purchasing by a purchasing organization.

Q
q u a n t i t y v a ri a n c e
The difference between an ordered product quantity and a received product quantity when no more receipts are
expected.

R
re c e i p t a d v i c e

A business document that documents a summary of the products a buyer receives from a vendor.
re c o n c i l i a t i o n

A practice of adjusting two or more accounts or statements so that the figures agree.
re d u c t i o n k e y

A method that is used to increase or decrease forecast requirements in master planning, based on user defined
percentages that are applied during specific periods.
re g i s t e r

A record that is used to record the operational, legal, and financial consequences of resource flow events in an
accounting system.
R F Q ( re q u e s t f o r q u o t a t i o n )

A source document that documents an invitation to bid on supplying a quantity of product for a specified price and
by a specified date.
re q u e s t e r

The person who requests the economic resources.

S
s a l e s a g re e me n t

A source document that documents an agreement between two or more parties based on an understanding that a
selling party will commit to selling a specific quantity or value of product over a period of time in exchange for
favorable prices and discounts.
s a l e s a g re e me n t p o l i c y

A policy that authorizes parties to modify sales agreement terms.


s a l e s o rd e r p o l i c y

A policy that authorizes parties to modify sales order terms and to control order processing and payment
processes.
s al es q u o tati o n

A source document that documents an offer to supply a quantity of product for a specified price and by a specified
date in response to a request for quotation in a sales process.
s e c u ri t y ro l e

A defined set of application access privileges. The security role assigned to a user determines which tasks the user
can perform and which parts of the user interface the user can view. All users must be assigned at least one security
role in order to access the system.
s e g re g a t i o n o f d u t i e s

A design principle used to reduce the risk of fraud, irregularities, and errors that separates the recording,
verification, authorization, custody of assets, and periodic review duties of people who participate in, document, or
record the financial consequences of economic transactions.
s eq u en c i n g

The order in which jobs are processed or operations are performed at a manufacturing facility to achieve objectives.
s h a re d a s s e t

An asset that is used by more than one cash-generating unit (CGU). An example is a distribution center that is used
to store items before they are transported to different markets that share that same distribution center.
s i n g l e u s e kan b an

A type of kanban that is used with a fixed quantity kanban rule to meet exceptionally high demand. A single use
kanban does not trigger a new kanban when it is discarded.
s ma rt ro u n d i n g

A marketing practice to use odd numbers that are marginally less than their nearest round number to set prices.
s o u rc e re q u i re me n t

The product quantity documented on a source document line that creates a pegging requirement.
s t a t i s t i c a l b a s e l i n e f o re c a s t

An estimate of future demand that is created by applying a forecasting algorithm to historical transaction data.

T
t a k t t i me

The time that it takes to produce one unit of a product.


Ta s k g u i d e

A controlled, guided experience through the steps in a Task recording. A Task guide leads the user through the
experience that was recorded. All security, data, and application behaviors are the same when completing a Task
guide as they are without the Task guide. The Task guide uses the same instrumentation as Task recorder to know
when a user has completed the intended step, so that it can prompt the user to take the next step in the recording.
Ta s k re c o rd e r

A tool that is pre-installed in Finance and Operations apps. When recording, it records all events that the user
enters in the user interface that get executed against the server—including values added, settings changed, data
removed, etc.
Ta s k re c o rd i n g

A file that contains the actions and annotations that are captured when Task recorder is run.
t h re e -w a y ma t c h i n g p o l i c y

A matching policy that requires one or more vendor invoice prices to match with one or more purchase order
prices and that requires one or more vendor invoice quantities to match with one or more product receipt
quantities.
t ra n s f e r b a t c h

The quantity of one or more items that is transferred or that can be transferred.
t w o -w a y ma t c h i n g p o l i c y

A matching policy that requires one or more vendor invoice prices to match with one or more purchase order
prices.

V
v a l u e s t re a m

An operating unit that controls one or more production flows.


v a ri a n t c o n f i g u ra t i o n t e c h n o l o g y

A method of modeling product masters and searching for product variant configurations.
V A T ( v a l u e -a d d e d t a x )

A tax on products at each stage of their production based on the value added during that stage.
ven d o r c atal o g

A listing of product offerings that are available for purchase from a vendor.
ven d o r i n vo i c e

A source document that documents a vendor payment request. A vendor invoice can refer to one or more purchase
orders. When the vendor invoice is authorized, a payment can be made to the vendor.

W
w o rk c e l l

A resource group that participates in a production flow activity.


w o rk e r

A person who assumes the role of an employee or a contractor and is paid in exchange for services.
w o rk s p a c e

A page that provides an overview of one of the activities that the user performs. The page uses tiles, lists, and
charts to display pending work and related data from multiple sources, and the page surfaces frequent tasks
related to this data. Tiles shown in the summary section of the workspace are also displayed in the related section
in the dashboard.
Learning catalog for Finance and Operations
4/16/2020 • 2 minutes to read • Edit Online

Find the right online training, in person workshops, and events for your role as a user of Finance and Operations
applications.
Business and Technical Decision Makers
Do you decide whether to invest in new technologies?
Business and Technical Decision Makers Learning Catalog
Get started
Exam
Business users
Did you just get a new application to use?
Business Users Learning Catalog
Get Started
Core platform knowledge
Supply chain management
Manufacturing
Financial management
Exam
Implementation Project Managers
Are you in charge of making sure your company’s implementation goes smoothly?
Implementation Project Manager Learning Catalog
Get started
Core platform knowledge
Financial management
Manufacturing
Supply chain managment
Exams
Administrators
Do you need to keep systems and data flowing, provisioned, and secure round-the-clock?
Administrators Learning Catalog
Get started
Core platform knowledge
Migration and upgrade
Servicing
Testing
Exam
Developers
Do you need to write code to integrate with other data sources, extend core system functionality, or build a complex
application?
Developer Learning Catalog
Get started
Core development concepts
Servicing
Migration and upgrade
Testing
Functional consultants
Are you an implementation expert for a business domain?
Functional Application Consultant Learning Catalog
Get started
Core platform knowledge
Financial management
Manufacturing
Supply chain management
Exams
Partner Sales and Marketing
Are you responsible for helping your customers buy the right solution?
Microsoft Partner Sales and Marketing Learning Catalog
Get started
Exam
Solution architects
Do you design solutions that meet your customers' needs and budgets?
Solution Architects Learning Catalog
Get started
Core platform knowledge
Core development concepts
Migration and upgrade
Servicing
Testing
Business and Technical Decision Makers Learning
Catalog
4/16/2020 • 2 minutes to read • Edit Online

Do you decide whether to invest in new technologies?


The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format that
best meets your needs.

Get started
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Learn the business value of Are you interested in Free, self-paced online 7 hours
Microsoft Dynamics 365 and learning about business learning path
the Power Platform applications? Perhaps you
don’t know where to begin
with Microsoft Dynamics
365 and Power Platform
applications? Learn how the
power of business
applications can help
transform your business.

Dynamics 365 and Power Are you interested in Free, self-paced online 5.5 hours
Platform Fundamentals learning about business learning path
applications? Start with this
learning path to see how
Dynamics 365 apps are
used. Learn about cloud
concepts, Power Platform,
and how to get started with
Dynamics 365 apps.

Get started with Finance and Learn how Finance and Free, self-paced online 2 hours
Operations apps Operations apps support learning path
businesses to manage their
global financial systems,
operational business
processes, and streamlined
supply chains to empower
people to make fast,
informed decisions. As the
first step in your career of
working with Finance and
Operations apps, you must
familiarize yourself with its
features and functionality,
whatever your desired role.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Course MB-900T01-A: This course will familiarize Instructor-led in person or 1 day


Dynamics 365 fundamentals the learner with Dynamics online training, cost varies by
365 functionality and region and partner
business value. The course
will cover Dynamics 365
applications, the Power
Platform, cloud concepts, the
security model, and licensing
considerations.

Get started with Asset Asset Management is a Free, self-paced online 1 hour
Management for Dynamics module for managing assets learning module
365 Supply Chain and maintenance jobs in
Management Dynamics 365 Supply Chain
Management. Asset
Management enables you to
efficiently manage and carry
out tasks related to
managing and servicing
many types of equipment in
your company, for example,
machines, production
equipment, and vehicles.
Asset Management
supports solutions across
numerous industries.

Exam
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Dynamics 365 Fundamentals Prove that you understand Exam Cost varies by region
Microsoft Dynamics 365: the
Power Platform; cloud
concepts; licensing options;
and deployment and release
options.
Business Users Learning Catalog
4/16/2020 • 8 minutes to read • Edit Online

Did you just get a new application to use?


The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format that
best meets your needs.

Get started
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Learn the business value of Are you interested in Free, self-paced online 8 hours
Microsoft Dynamics 365 and learning about business learning path
the Power Platform applications? Perhaps you
don’t know where to begin
with Microsoft Dynamics
365 and Power Platform
applications? Learn how the
power of business
applications can help
transform your business.

Dynamics 365 and Power Are you interested in Free, self-paced online 5.5 hours
Platform Fundamentals learning about business learning path
applications? Start with this
learning path to see how
Dynamics 365 apps are
used. Learn about cloud
concepts, Power Platform,
and how to get started with
Dynamics 365 apps.

Get started with Finance and Learn how Finance and Free, self-paced online 2 hours
Operations apps Operations apps support learning path
businesses to manage their
global financial systems,
operational business
processes, and streamlined
supply chains to empower
people to make fast,
informed decisions. As the
first step in your career of
working with Finance and
Operations apps, you must
familiarize yourself with its
features and functionality,
whatever your desired role.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Course MB-900T01-A: This course will familiarize Instructor-led in person or 1 day


Dynamics 365 fundamentals the learner with Dynamics online training, cost varies
365 functionality and by region and partner
business value. The course
will cover Dynamics 365
applications, the Power
Platform, cloud concepts, the
security model, and licensing
considerations.

Core platform knowledge


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure your organization As a functional consultant Free, self-paced online 12 hours


in Finance and Operations who works with Finance and learning path
apps Operations apps, you must
understand how to set up
an organization for your
customer. This learning path
shows you, amongst other
tasks, how to set up legal
entities, implement security
settings, personalize the user
interface for users, design,
and build mobile apps, and
implement common
integrations.

Configure and work with Business leaders can make Free, self-paced online 4 hours
analytics and reporting in important decisions in their learning path
Finance and Operations company if they have
apps accurate insight into the
underlying financial and
operational data. A business
user can also configure, and
use the electronic reporting
tool without a single line of
code, to adopt new
regulatory requirements and
generate business
documents in the required
format to electronically
exchange information with
government bodies, banks,
and other parties.

Supply chain management


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and manage Product information is the Free, self-paced online 14 hours
products and inventory in pillar of supply chain and learning path
Dynamics 365 Supply Chain retail applications across all
Management industries. In the various
modules of a business
solution product-specific
information and
configuration are required to
manage the business
processes that are related to
products product families
bills of materials and product
categories. Inventory
reports show you in a
variety of ways how much
inventory you have and
explain how to be more
effective in your inventory
investments. Master
planning helps you
streamline your planning
based on predetermined
factors so you can efficiently
plan what materials need to
be purchased transferred or
manufactured.

Configure and manage The process of finding and Free, self-paced online 14 hours
procurement and vendors in working with vendors, learning path
Dynamics 365 Supply Chain purchasing products, and
Management ensuring the quality of
goods and services are all
important factors that
impact a company's
reputation and success.

Configure and manage sales, The process of working with Free, self-paced online 7 hours
and customers in Dynamics customers, understanding learning path
365 Supply Chain the life cycle of the sales
Management process, and setting up sales
agreements are all
important factors that
impact a company's success.

Configure and work with Warehouse management in Free, self-paced online 8.5 hours
warehouse management in Dynamics 365 Supply Chain learning path
Dynamics 365 for Finance Management helps optimize
and Operations and streamline warehouse
processes according to your
individual needs and
provides the insight into
your inventory and the tools
to help increase customer
satisfaction and reduce
costs.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and work with The Transportation Free, self-paced online 3 hours
transportation management management module in learning path
in Dynamics 365 Supply Dynamics 365 Supply Chain
Chain Management Management helps you find
the most efficient way to
deliver goods to your
customers. Transportation
management calculates the
least expensive and fastest
way of delivering goods and
lets you identify vendor and
routing solutions for
inbound and outbound
orders.

Work with Asset Asset Management is an Free, self-paced online 12.5 hours
Management for Dynamics add-in to Dynamics 365 learning path
365 Supply Chain Supply Chain Management,
Management that is used to manage
assets that are used in the
daily operation of your
company. Some examples of
these types of assets are
machinery, production
equipment, and fork lifts.

Manufacturing
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use discrete If a company only produces Free, self-paced online 16.5 hours
manufacturing in Dynamics simple products, production learning path
365 Supply Chain can be scheduled manually
Management with the correct bill of
materials (BOM) parts
arriving on the production
floor, at the correct time, and
at the proper resource. As a
functional consultant for
manufacturing, you need to
know how to configure
Dynamics 365 Supply Chain
Management for discrete
manufacturing, so your
customer can perform and
control the production
lifecycle.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use lean Lean manufacturing is a Free, self-paced online 12.5 hours
manufacturing in Dynamics journey of continuous learning path
365 Supply Chain improvement. The goal is to
Management produce exactly what the
customer wants, when the
customer wants it, and to do
it economically. You can use
lean manufacturing in a
unified (mixed-mode)
manufacturing environment
that combines various
supply, production, and
sourcing strategies. These
strategies include production
orders, batch orders for
process industries, purchase
orders, and transfer orders.
The lean manufacturing
architecture in Dynamics
365 Supply Chain
Management consists of
production flows, activities,
and Kanban rules.

Configure and use process Process manufacturing is Free, self-paced online 10.5 hours
manufacturing in Dynamics associated with formulas and learning path
365 Supply Chain manufacturing recipes, in
Management contrast with discrete
manufacturing, which uses
discrete units, and bills of
materials. Process
manufacturing is used in
manufacturing environments
where production is
completed in batch or semi-
continuous processes.

Use warehouse Using warehouse Free, self-paced online 10.5 hours


management in management in learning path
manufacturing in Dynamics manufacturing processes in
365 for Finance and Dynamics 365 Supply Chain
Operations Management helps optimize
and streamline warehouse
processes in your
manufacturing environment,
according to your company's
needs.

Financial management
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use the Dynamics 365 Finance Free, self-paced online 13.5 hours
general ledger in Dynamics empowers business users to learning path
365 Finance control finances and manage
funds with accurate
information at any time for
financial planning and
forecasting, and stay up to
date with analytics. Since
finance is the heart of the
business, and the General
ledger module is the heart
of financial management,
this learning path shows you
how to set up functionality
in the General ledger
module. It also covers how
to complete closing
procedures for a period or a
year.

Configure and use cash and You can use the Cash and Free, self-paced online 7.5 hours
bank management, and bank management module learning path
sales tax in Dynamics 365 in Dynamics 365 Finance to
Finance maintain an organization's
bank accounts and the
financial instruments that
are associated with those
bank accounts. All
businesses must collect and
pay taxes to various tax
authorities. In this learning
path you will learn how to
configure and use these
areas of Dynamics 365
Finance.

Work with Accounts payable Accounts payable are a Free, self-paced online 5.5 hours
in Dynamics 365 Finance liability due to a creditor learning path
when you order goods or
services without paying in
cash up front, which means
that you buy goods on
credit. Learn how to
configure accounts payable
in Dynamics 365 Finance,
record vendor invoices, and
distribute expenses, tax, and
charges across accounts.

Work with Accounts Configure the Accounts Free, self-paced online 7 hours
receivable in Dynamics 365 receivable module in learning path
Finance Dynamics 365 Finance to
create customer invoices,
post packing slips, and use
free text invoices that are
not related to sales orders.
In this learning path, you will
also learn how to do daily
tasks in accounts receivable.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use Every organization, whether Free, self-paced online 3.5 hours
budgeting in Dynamics 365 it is private or public, sets learning path
Finance financial and operational
goals by creating budgets.
With the collaborative and
process-driven nature of
budget planning, you can
make your budget process
more efficient.

Configure and manage fixed You can set up and enter Free, self-paced online 4.5 hours
assets in Dynamics 365 acquisition information for learning path
Finance fixed assets, and then
manage them by
depreciating them and
setting a capitalization
threshold. The way in which
fixed assets are handled
must correspond with both
international accounting
standards and the
accounting legislation in
each country or region.

Get started with cost Cost accounting lets you Free, self-paced online 1 hour
accounting for supply chains collect data from various learning path
in Dynamics 365 Finance sources, such as the general
ledger, sub-ledgers, budgets,
and statistical information.
You can then analyze,
summarize, and evaluate
cost data so that
management can make the
best possible decisions for
price updates, budgets, cost
control, and so on.

Exam
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Dynamics 365 Fundamentals Prove that you understand Exam cost varies by region
Microsoft Dynamics 365; the
Power Platform; cloud
concepts; licensing options;
and deployment and release
options.
Implementation Project Manager Learning Catalog
4/16/2020 • 21 minutes to read • Edit Online

Are you in charge of making sure your company’s implementation goes smoothly?
The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format that
best meets your needs.

Get started
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Learn the business value of Are you interested in Free, self-paced online 7 hours
Microsoft Dynamics 365 and learning about business learning path
the Power Platform applications? Perhaps you
don’t know where to begin
with Microsoft Dynamics
365 and Power Platform
applications? Learn how the
power of business
applications can help
transform your business.

Dynamics 365 and Power Are you interested in Free, self-paced online 5.5 hours
Platform Fundamentals learning about business learning path
applications? Start with this
learning path to see how
Dynamics 365 apps are
used. Learn about cloud
concepts, Power Platform,
and how to get started with
Dynamics 365 apps.

Get started with Finance and Learn how Finance and Free, self-paced online 2 hours
Operations apps Operations apps support learning path
businesses to manage their
global financial systems,
operational business
processes, and streamlined
supply chains to empower
people to make fast,
informed decisions. As the
first step in your career of
working with Finance and
Operations apps, you must
familiarize yourself with its
features and functionality,
whatever your desired role.

Before you buy Check out the step-by-step Documentation


guidance whether you're still
evaluating Finance and
Operations or ready to make
a purchase.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Release plan Find out about the latest Documentation


capabilities and
enhancements in Dynamics
365

Core platform knowledge


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Use Lifecycle Services to Lifecycle Services (LCS) is a Free, self-paced online 2 hours
design and plan an collaborative workspace that learning path
implementation of Finance customers and their
and Operations apps partners use to manage
Finance and Operations
apps projects from pre-sales
to the implementation phase
and finally to the production
environment. It provides
checklists and tools that help
you manage the project,
including pre-build
methodologies to help with
implementation and
regularly updated services.

Configure your organization As a functional consultant Free, self-paced online 12 hours


in Finance and Operations who works with Finance and learning path
apps Operations apps, you must
understand how to set up
an organization for your
customer. This learning path
shows you, amongst other
tasks, how to set up legal
entities, implement security
settings, personalize the user
interface for users, design,
and build mobile apps, and
implement common
integrations.

Migrate data and go live As a functional consultant, Free, self-paced online 4 hours
with Finance and Operations you must understand how learning path
apps to prepare your customer's
data for migration, work
with data management, and
perform user acceptance
testing to go live with
Finance and Operations
apps.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and work with Business leaders can make Free, self-paced online 4 hours
analytics and reporting in important decisions in their learning path
Finance and Operations company if they have
apps accurate insight into the
underlying financial and
operational data. A business
user can also configure, and
use the electronic reporting
tool without a single line of
code, to adopt new
regulatory requirements and
generate business
documents in the required
format to electronically
exchange information with
government bodies, banks,
and other parties.

Finance and Operations: FastTrack offers an Tech Talk (recorded webinar) 62 minutes
Onboarding to Dynamics Onboarding service to every
365 (DYN542PAL2) Dynamics 365 for Finance
and Operations project. In
this TechTalk, we will explain
the Onboarding process,
walk through the content of
the Onboarding session with
you, and unveil how we are
making Onboarding more
efficient and convenient in
the near future. This session
is especially relevant to
everybody who works with
customers in the early
stages of a project, between
closing the license deal and
initiation of the
implementation project.

On-Premises (Local Business Please join this tech talk for Tech Talk (recorded webinar) 48 minutes
Data) Deployment an overview of the on-
(DYN382PAL2) premise deployment option
for Dynamics 365 for
Finance and Operations,
Enterprise Edition. In this
session, we will look at the
solution architecture of an
on-premise deployment,
ALM aspects, system
requirements, and how to
provision the Life Cycle
Services project.

Go-live Planning We will discuss the go-live Tech Talk (recorded webinar) 60 minutes
(DYN458PAL2) process in detail, and how
best to prepare for it, in
order to make it as smooth
as possible for the customer,
partner and Microsoft.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Environment Planning Please join us for this tech Tech Talk (recorded webinar) 53 minutes
(DYN450PAL2) talk on Environment
Planning. Learn about the
standard environments,
what other environments
you might need, the options
and timing for acquiring and
deploying them, and the
expected code and data
flows between
environments.

Finance and Operations: Tech Talk on the Feature Tech Talk (recorded webinar) 47 minutes
Feature Management management experience. It
(DYN641PAL2) provides a workspace where
you can view, enable, disable,
and schedule features that
have been delivered in each
release. By default, new
features are turned off. You
can use the workspace to
turn them on and view the
documentation for them.
Attend this meeting to see
what is delivered in 10.0.3
and our plans for future
releases.

Finance And Operations: The Continuous Update Tech Talk (recorded webinar) 61 minutes
Microsoft Managed cadence for Finance and
Continuous Updates Operations has started!
(DYN610PAL) Please join us during this
hour to discuss Microsoft
Managed Continuous
updates, the user experience
already available in Lifecycle
Services, and forthcoming
updates.

Microsoft Managed During this hour we will Tech Talk (recorded webinar) 56 minutes
Continuous Updates: What's explain what is new since our
new (DYN543PAL2) initial announcements about
Microsoft Managed
Continuous updates. We will
discuss the cadence of
updates, how we have
responded to your valuable
feedback on the process,
and take a look at the
forthcoming Lifecycle
Services user experience,
through which you will be
able to manage your
updates.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance And Operations: During this hour we will Tech Talk (recorded webinar) 59 minutes
Microsoft Managed discuss updates to the
Continuous Updates: What's Microsoft Managed
new - November 1, 2018 Continuous update cadence
(DYN533cust) as well as take a look at the
user experience in Lifecycle
Services.

Monitoring, Optimization We will discuss monitoring Tech Talk (recorded webinar) 40 minutes
Advisor & Critical KBs capabilities and what
(DYN456PAL2) Microsoft monitors for you
in your production
environment, the
optimization advisor and
how it can be extended, the
“Critical X++ updates”
experience in LCS, and best
practices for the “Report
production outage” option
in LCS.

Visual Studio Team Services This Tech Talk will walk thru Tech Talk (recorded webinar) 41 minutes
(VSTS) Setup (VIR782PAL) the necessary steps to
configure a VSTS instance
and project to connect to
LCS implementation project
for Dev/Test environment
configuration.

Copy Into Legal Entity In this session, we will Tech Talk (recorded webinar) 54 minutes
(DYN383PAL) discuss a new feature in the
data management
framework, Copy into legal
entity. We will first briefly
review the new features
added to the data
management framework in
platform 8 for the
workspace, templates, and
data projects and then
discuss the additional
functionality added for Copy
into legal entity.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Regression Suite Automation We will discuss the Tech Talk (recorded webinar) 61 minutes
Tool (DYN480PAL) Regression Suite Automation
Tool. It significantly reduces
the time and cost of user
acceptance testing, when
taking a Microsoft update,
or before applying custom
code and configurations to
your Dynamics 365 for
Finance and Operations
production environment. It
enables functional power
users to record business
tasks, using the Finance and
Operations task recorder,
and convert them into a
suite of automated tests,
without the need to write
source code.

Finance and Operations: This is the first of a two-part Tech Talk (recorded webinar) 70 minutes
Regression Suite Automation series on Regression Suite
Tool -- Background & Setup Automation Testing (RSAT).
(DYN646PAL) In this session, we will cover
how to keep pace with
continuous updates using
automated testing via RSAT.
Learnings and
recommendations on
creating task recordings and
executing tests using RSAT
will be covered, along with a
step-by-step walkthrough of
the installation and setup.

Finance and Operations: This is the second of a two- Tech Talk (recorded webinar) 70 minutes
Regression Suite Automation part series on Regression
Tool -- Testing Lifecycle Suite Automation Testing
Demo (DYN647PAL) (RSAT). This session will cover
a demo of the whole cycle of
creating and saving task
recordings from Finance and
Operations to the BPM
library in LCS, synchronizing
the BPM library to create
test cases in Azure DevOps,
grouping the test cases into
test suites, and loading and
executing the test suites in
RSAT.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Performance Testing Please join us for this tech Tech Talk (recorded webinar) 45 minutes
Approach (DYN449PAL2) talk on how to approach
Performance Testing. Learn
about the fundamentals,
best practices for testing,
available tools and
techniques for executing
tests and measuring
performance, and how to
use the results for
optimization.

How to upgrade to 7.2 (July In this session we will explain Tech Talk (recorded webinar) 58 minutes
2017) from 7.0 (RTW)/7.1 how to upgrade from
(Release 1611) Dynamics 365 Finance and
(DYN338PAL2) Operations application v7.0
(RTW) and v7.1 (1611) to
v7.2 (July 2017). We make a
clear differentiation between
Live customers and ongoing
projects (not live yet).

Finance and Operations: Please join us for our next Tech Talk (recorded webinar) 61 minutes
Upgrading from 7.x to 8+ TechTalk, during which we
(DYN519PAL2) will cover the 7.X to 8.X
upgrade process. We will
discuss various scenarios
and steps to execute for
code upgrade and data
upgrade. We will also cover
extensibility request
scenarios and how to raise
them where appropriate.
Part 1 of 2.

AX2012 to Dynamics 365 This Tech Talk will provide an Tech Talk (recorded webinar) 45 minutes
for Operations Upgrade overview on how to upgrade
(VIR817PAL2) code and data from
Dynamics AX 2012 to
Dynamics 365 for
Operations.

Reporting Options in This session will discuss Tech Talk (recorded webinar) 60 minutes
Dynamics 365 for various printing scenarios in
Operations (VIR810PAL) D365 for Operations,
including tips and tricks for
Document Routing Agent.

Course MB-300T01-A: Core This course discusses core Instructor-led in person or 1 day
common features of common features of online training, cost varies
Dynamics 365 for Finance Microsoft Dynamics 365 for by region and partner
and Operations Finance and Operations.

Course MB-300T02-A: Core This course discusses core Instructor-led in person or 1 day
configuration in Dynamics configuration tasks for online training, cost varies
365 for Finance and Microsoft Dynamics 365 for by region and partner
Operations Finance and Operations.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Course MB-300T03-A: Data This course discusses data Instructor-led in person or 1 day
migration and preparing for migration and go-live online training, cost varies
go-live with Dynamics 365 preparation for Microsoft by region and partner
for Finance and Operations Dynamics 365 for Finance
and Operations.

Implementation Lifecycle These topics describe the Documentation


home page programs, tools, and
processes available related
to the implementation
lifecycle of your Microsoft
Dynamics 365 for Finance
and Operations project.

Financial management
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use the Dynamics 365 Free, self-paced online 11 hours
general ledger in Finance empowers learning path
Dynamics 365 business users to
FinanceOperations control finances and
manage funds with
accurate information
at any time for
financial planning and
forecasting, and stay
up-to-date with
analytics. Since
finance is the heart of
the business, and the
General ledger
module is the heart of
financial
management, this
learning path shows
you how to set up
functionality in the
General ledger
module
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use You can use the Cash Free, self-paced online 7.5 hours
cash and bank and bank learning path
management, and management module
sales tax in Dynamics in Dynamics 365
365 Finance Finance to maintain
an organization's bank
accounts and the
financial instruments
that are associated
with those bank
accounts. All
businesses must
collect and pay taxes
to various tax
authorities. In this
learning path you will
learn how to
configure and use
these areas of
Dynamics 365
Finance.

Work with Accounts Accounts payable are Free, self-paced online 6 hours
payable in Dynamics a liability due to a learning path
365 Finance creditor when you
order goods or
services without
paying in cash up
front, which means
that you buy goods
on credit. Learn how
to configure accounts
payable in Dynamics
365 Finance, record
vendor invoices, and
distribute expenses,
tax, and charges
across accounts.

Work with Accounts Configure the 7 hours


receivable in Accounts receivable
Dynamics 365 module in Dynamics
Finance 365 Finance to create
customer invoices,
post packing slips,
and use free text
invoices that are not
related to sales
orders. In this
learning path, you will
also learn how to do
daily tasks in accounts
receivable.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use Every organization, Free, self-paced online 3.5 hours
budgeting in whether it is private learning path
Dynamics 365 or public, sets
Finance financial and
operational goals by
creating budgets.
With the collaborative
and process-driven
nature of budget
planning, you can
make your budget
process more efficient.

Configure and You can set up and Free, self-paced online 4.5 hours
manage fixed assets enter acquisition learning path
in Dynamics 365 information for fixed
Finance assets, and then
manage them by
depreciating them
and setting a
capitalization
threshold. The way in
which fixed assets are
handled must
correspond with both
international
accounting standards
and the accounting
legislation in each
country or region.

Configure and Cost accounting lets Free, self-paced online 4.5 hours
manage fixed assets you collect data from learning path
in Dynamics 365 various sources, such
Finance as the general ledger,
sub-ledgers, budgets,
and statistical
information. You can
then analyze,
summarize, and
evaluate cost data so
that management can
make the best
possible decisions for
price updates,
budgets, cost control,
and so on.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Get started with cost Cost accounting lets Free, self-paced online 1 hour
accounting for supply you collect data from learning path
chains in Dynamics various sources, such
365 Finance as the general ledger,
sub-ledgers, budgets,
and statistical
information. You can
then analyze,
summarize, and
evaluate cost data so
that management can
make the best
possible decisions for
price updates,
budgets, cost control,
and so on.

Configure Dynamics Dynamics 365 Free, self-paced online 1 hour


365 Finance for public Finance enables learning path
sector business processes
that are common to
the public and private
sectors, such as
budgeting,
purchasing, accounts
payable, and accounts
receivable tasks. Use
the Public sector
functionality to meet
the rules, regulations,
and reporting
requirements for
organizations that
serve the public
sector.

Financial Reporting This Tech Talk will Free recording of a 57 minutes


(DYN305PAL) discuss financial web conference
reporting setup and
report lists in
Dynamics 365 for
Operations. The
session will also cover
datamart reset in UAT
environment and
troubleshooting and
searching for hotfix,
using LCS.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and During this session Free recording of a 63 minutes


Operations: UK Digital we will talk about the web conference
Tax - VAT Declaration new submission
In Dynamics 365 For process introduced by
Finance And HMRC in the United
Operations Kingdom for VAT
(DYN599PAL) declarations. We will
explain how to
configure VAT
declaration and set up
electronic messaging
in Dynamics 365 for
Finance and
Operations. We will
demonstrate the
submission process to
the HMRC application
in a sandbox
environment. This
session is especially
relevant for
consultants who will
implement the feature
and provide training
to users.

Course MB-310T01- You can set up and Instructor-led in 2 days


A: Configure and use enter acquisition person or online
essential components information for fixed training, cost varies
of financial assets, and then by region and partner
management in manage them by
Dynamics 365 for depreciating them
Finance and and setting a
Operations capitalization
threshold. The way in
which fixed assets are
handled must
correspond with both
international
accounting standards
and the accounting
legislation in each
country or region.

Course MB-310T02- Cost accounting lets Instructor-led in 1 day


A: Configure and use you collect data from person or online
accounts payable, various sources, such training, cost varies
receivable, and as the general ledger, by region and partner
collections in Finance sub-ledgers, budgets,
and Operations and statistical
information. You can
then analyze,
summarize, and
evaluate cost data so
that management can
make the best
possible decisions for
price updates,
budgets, cost control,
and so on.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Course MB-310T03- You can complete Instructor-led in 1 day


A: Configure and use closing procedures for person or online
budgeting, fixed a period or a year. training, cost varies
assets, and additional Closing processes by region and partner
functionality in prepare the system
Finance and for a new period.
Operations Learn how to prepare,
configure and
perform periodic
processes in
Dynamics 365 for
Finance and
Operations.

Microsoft Certified: Microsoft Certified: Certification, cost


Dynamics 365 for Dynamics 365 for varies by region
Finance and Finance and
Operations, Financials Operations, Financials
Functional Consultant Functional
Associate Consultants unify
global financials and
operations and
automate tasks and
workflows, streamline
customer ordering,
selling, invoicing, and
reporting.

Manufacturing
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Get started with production The life cycle of product Free, self-paced online 2 hours
control in Dynamics 365 production begins with the module
Supply Chain Management creation of the production
order, batch order, or
kanban. It ends with a
finished, manufactured item
that is ready for either a
customer or another phase
of production. Each step in
the life cycle requires
different kinds of
information to complete the
process. As each step is
completed, the production
order, batch order, or
kanban shows a change in
the production status.
Different types of products
require different
manufacturing processes.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use discrete If a company only produces Free, self-paced online 9 hours
manufacturing in Dynamics simple products, production learning path
365 Supply Chain can be scheduled manually
Management with the correct bill of
materials (BOM) parts
arriving on the production
floor, at the correct time, and
at the proper resource. As a
functional consultant for
manufacturing, you need to
know how to configure
Dynamics 365 for Finance
and Operations for discrete
manufacturing, so your
customer can perform and
control the production
lifecycle.

Configure and use process Lean manufacturing is a Free, self-paced online 6.5 hours
manufacturing in Dynamics journey of continuous learning path
365 Supply Chain improvement. The goal is to
Management produce exactly what the
customer wants, when the
customer wants it, and to do
it economically. You can use
lean manufacturing in a
unified (mixed-mode)
manufacturing environment
that combines various
supply, production, and
sourcing strategies. These
strategies include production
orders, batch orders for
process industries, purchase
orders, and transfer orders.
The lean manufacturing
architecture in Dynamics
365 for Finance and
Operations consists of
production flows, activities,
and Kanban rules.

Configure and use process Process manufacturing is Free, self-paced online 6 hours
manufacturing in Dynamics associated with formulas and learning path
365 Supply Chain manufacturing recipes, in
Management contrast with discrete
manufacturing, which uses
discrete units, and bills of
materials. Process
manufacturing is used in
manufacturing environments
where production is
completed in batch or semi-
continuous processes.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Use warehouse Using warehouse Free, self-paced online 6 hours


management in management in learning path
manufacturing in Dynamics manufacturing processes in
365 for Finance and Dynamics 365 for Finance
Operations and Operations helps
optimize and streamline
warehouse processes in your
manufacturing environment,
according to your company's
needs.

Course MB-320T01-A: This course discusses how to Instructor-led in person or 2 days


Configure and use discrete configure and use discrete online training, cost varies
manufacturing in Dynamics manufacturing in Dynamics by region and partner
365 for Finance and 365 for Finance and
Operations Operations.

Course MB-320T02-A: This course discusses how to Instructor-led in person or 1 day


Configure and use lean configure and use lean online training, cost varies
manufacturing in Dynamics manufacturing in Dynamics by region and partner
365 for Finance and 365 for Finance and
Operations Operations.

Course MB-320T03-A: This course discusses how to Instructor-led in person or 1 day


Configure and use process configure and use process online training, cost varies
manufacturing in Dynamics manufacturing in Dynamics by region and partner
365 for Finance and 365 for Finance and
Operations Operations.

Microsoft Certified: Microsoft Certified: Certification, cost varies by


Dynamics 365 for Finance Dynamics 365 for Finance region
and Operations, and Operations,
Manufacturing Functional Manufacturing Functional
Consultant Associate Consultants integrate digital
and physical systems;
improve visibility,
manufacturing efficiency and
flexibility; and lower costs for
their clients.

Supply chain management


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and manage Product information is the Free, self-paced online 6 hours
products and inventory in pillar of supply chain and learning path
Dynamics 365 Supply Chain retail applications across all
Management industries. In the various
modules of a business
solution, product-specific
information and
configuration are required to
manage the business
processes that are related to
products, product families,
bill of materials, and product
categories. Inventory
reports will show how much
inventory you have in
variety of different ways, and
will explain how to be more
effective in your inventory
investments.

Configure and manage The process of finding and Free, self-paced online 6 hours
procurement and vendors in working with vendors, learning path
Dynamics 365 Supply Chain purchasing products, and
Management ensuring the quality of
goods and services are all
important factors that
impact a company's
reputation and success.

Configure and work with Warehouse management in Free, self-paced online 5 hours
warehouse management in Dynamics 365 for Finance learning path
Dynamics 365 for Finance and Operations helps
and Operations optimize and streamline
warehouse processes
according to your individual
needs and provides the
insight into your inventory
and the tools to help
increase customer
satisfaction and reduce
costs.

Configure and work with The Transportation Free, self-paced online 3 hours
transportation management management module in learning path
in Dynamics 365 Supply Dynamics 365 Supply Chain
Chain Management Management helps you find
the most efficient way to
deliver goods to your
customers. Transportation
management calculates the
least expensive and fastest
way of delivering goods and
lets you identify vendor and
routing solutions for
inbound and outbound
orders.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Warehousing Mobile App This Tech Talk will discuss the Free recording of a web 54 minutes
(VIR816PAL) Advanced Warehousing conference
system in Dynamics 365 for
Operations and what the
future holds for the
advanced warehousing
mobile interface. We will
examine the new mobile
application that has been
released and how it
compares to the legacy
WMDP. We will learn what is
required to install, configure,
and operate this mobile
application and how it can
be used to benefit your
implementations.

Vendor Collaboration This Tech Talk will provide a Free recording of a web 58 minutes
(DYN327PAL) walk through on the Vendor conference
Collaboration feature
including the Consumption
of Response from Vendor
feature that is included in
the July (spring) release.

Item And Warehouse In this Tech Talk, we will Free, self-paced online 54 minutes
Migration Process To Use teach you how to migrate learning path
Advanced Warehouse existing warehouse setup
Management (DYN316PAL) and items with open
transactions to the advance
warehouse management, by
using the new capabilities to
change the storage
dimension group for items
and enable warehouses to
use the advanced warehouse
management processes.

Supply chain management This topic provides a list of Documentation


home page the help topics and other
resources for the supply
chain management features
in Microsoft Dynamics 365
for Finance and Operations.

Demand Replenishment for This TechTalk will cover raw Free recording of a web 38 minutes
Raw Material Picking material picking and demand conference
(DYN333PAL2) replenishment for raw
material picking.

Course MB-330T01-A: This course discusses how to Instructor-led in person or 2 days


Configure and use supply configure and use supply online training, cost varies
chain management in chain management in by region and partner
Dynamics 365 for Finance Dynamics 365 for Finance
and Operations and Operations.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Course MB-330T02-A: Use This course discusses how to Instructor-led in person or 1 day
quality management, use quality management, online training, cost varies
Intercompany trading and intercompany trading and by region and partner
master planning in Dynamics master planning in Dynamics
365 for Finance and 365 for Finance and
Operations Operations.

Course MB-330T03-A: This course discusses how to Instructor-led in person or 1 day


Configure and use configure and use online training, cost varies
warehouse, and warehouse and by region and partner
transportation management transportation management
in Dynamics 365 for Finance in Dynamics 365 for Finance
and Operations and Operations.

Microsoft Certified: Microsoft Certified: Certification, cost varies by


Dynamics 365 for Finance Dynamics 365 for Finance region
and Operations, Supply and Operations, Supply
Chain Management Chain Management
Functional Consultant Functional Consultants
Associate streamline cost accounting,
inventory management,
master planning, and
warehouse management for
their clients.

Exams
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Exam MB-300: Microsoft This exam measures your Exam, cost varies by region
Dynamics 365 Unified ability to accomplish the
Operations Core following technical tasks: use
common functionality and
implementation tools;
configure security, processes,
and options; perform data
migration; and validate and
support the solution.

Exam MB-310: Microsoft This exam measures your Exam, cost varies by region
Dynamics 365 for Finance ability to accomplish the
and Operations, Financials following technical tasks: set
up and configure financial
management; manage and
apply common processes;
implement and manage
accounts payable and
receivable; and manage
budgeting and fixed assets.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Exam MB-320: Microsoft This exam measures your Exam, cost varies by region
Dynamics 365 for Finance ability to accomplish the
and Operations, following technical tasks: set
Manufacturing up and configure
manufacturing; create and
manage production and lean
orders; and create, process,
and manage production
batch orders.

Exam MB-330: Microsoft This exam measures your Exam, cost varies by region
Dynamics 365 for Finance ability to accomplish the
and Operations, Supply following technical tasks:
Chain Management implement product
information management;
implement inventory
management; implement
and manage supply chain
processes; and implement
warehouse management
and transportation
management and perform
business processes.
Administrators Learning Catalog
4/16/2020 • 7 minutes to read • Edit Online

Do you need to keep systems and data flowing, provisioned, and secure round-the-clock?
The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format that
best meets your needs.

Get Started
C O N T EN T DESC RIP T IO N L EN GT H

Dynamics 365 and Power Platform Are you interested in learning about 5.5 hours
Fundamentals business applications? Start with this
learning path to see how Dynamics 365
apps are used. Learn about cloud
concepts, Power Platform, and how to
get started with Dynamics 365 apps.

Get started with Finance and Learn how Finance and Operations 2 hours
Operations apps apps support businesses to manage
their global financial systems,
operational business processes, and
streamlined supply chains to empower
people to make fast, informed decisions.
As the first step in your career of
working with Finance and Operations
apps, you must familiarize yourself with
its features and functionality, whatever
your desired role.

Course MB-900T01-A: Dynamics 365 This course will familiarize the learner 1 day
fundamentals with Dynamics 365 functionality and
business value. The course will cover
Dynamics 365 applications, the Power
Platform, cloud concepts, the security
model, and licensing considerations.

Core platform knowledge


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Use Lifecycle Services to Lifecycle Services (LCS) is a Free, self-paced online 2 hours
design and plan an collaborative workspace that learning path
implementation of Finance customers and their
and Operations apps partners use to manage
Finance and Operations
apps projects from pre-sales
to the implementation phase
and finally to the production
environment. It provides
checklists and tools that help
you manage the project,
including pre-build
methodologies to help with
implementation and
regularly updated services.

Configure your organization As a functional consultant Free, self-paced online 12 hours


in Finance and Operations who works with Finance and learning path
apps Operations apps, you must
understand how to set up
an organization for your
customer. This learning path
shows you, amongst other
tasks, how to set up legal
entities, implement security
settings, personalize the user
interface for users, design,
and build mobile apps, and
implement common
integrations.

Migrate data and go live As a functional consultant, Free, self-paced online 4 hours
with Finance and Operations you must understand how learning path
apps to prepare your customer's
data for migration, work
with data management, and
perform user acceptance
testing to go live with
Finance and Operations
apps.

Work with analytics and Business leaders can make Free, self-paced online 1.5 hours
reporting in Finance and important decisions in their learning path
Operation company if they have
accurate insight into the
underlying financial and
operational data. Without
data visibility, business
leaders are challenged with a
nearly impossible task. By
using analytics and
reporting in Finance and
Operations apps, you can
empower every business
user, depending on their
security rights, to get the
insights they need to make
those important decisions.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

System administration home This topic points to content Documentation


page for system administrators of
Microsoft Dynamics 365 for
Finance and Operations. This
content will help you
configure the system so that
it works smoothly and
effectively for your
organization.

Finance and Operations: FastTrack offers an Free recording of a web 62 minutes


Onboarding to Dynamics Onboarding service to every conference
365 (DYN542PAL2) Dynamics 365 for Finance
and Operations project. In
this TechTalk, we will explain
the Onboarding process,
walk through the content of
the Onboarding session with
you, and unveil how we are
making Onboarding more
efficient and convenient in
the near future. This session
is especially relevant to
everybody who works with
customers in the early
stages of a project, between
closing the license deal and
initiation of the
implementation project.

On-Premises (Local Business Please join this tech talk for Free recording of a web 48 minutes
Data) Deployment an overview of the on- conference
(DYN382PAL2) premise deployment option
for Dynamics 365 for
Finance and Operations,
Enterprise Edition. In this
session, we will look at the
solution architecture of an
on-premise deployment,
ALM aspects, system
requirements, and how to
provision the Life Cycle
Services project.

Copy Into Legal Entity In this session, we will Free recording of a web 54 minutes
(DYN383PAL) discuss a new feature in the conference
data management
framework, Copy into legal
entity. We will first briefly
review the new features
added to the data
management framework in
platform 8 for the
workspace, templates, and
data projects and then
discuss the additional
functionality added for Copy
into legal entity.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Data Management Join us for this TechTalk on Free recording of a web 58 minutes
(DYN757PAL2) Data Management. Learn conference
about the options available
and the scenarios for which
they are recommended. We
will cover the Data
Management framework,
templates, database copying,
cross-company data sharing,
and performance
considerations.

Migration and upgrade


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: Please join us for our next Free recording of a web 61 minutes
Upgrading from 7.x to 8+ TechTalk, during which we conference
(DYN519PAL2) will cover the 7.X to 8.X
upgrade process. We will
discuss various scenarios
and steps to execute for
code upgrade and data
upgrade. We will also cover
extensibility request
scenarios and how to raise
them where appropriate.

How to upgrade to 7.2 (July In this session we will explain Free recording of a web 58 minutes
2017) from 7.0 (RTW)/7.1 how to upgrade from conference
(Release 1611) Dynamics 365 Finance and
(DYN338PAL2) Operations application v7.0
(RTW) and v7.1 (1611) to
v7.2 (July 2017). We make a
clear differentiation between
Live customers and ongoing
projects (not live yet).

AX2012 to Dynamics 365 This Tech Talk will provide an Free recording of a web 45 minutes
for Operations Upgrade overview on how to upgrade conference
(VIR817PAL2) code and data from
Dynamics AX 2012 to
Dynamics 365 for
Operations.

AX2009 to Dynamics 365 This session will cover Free recording of a web 55 minutes
for Operations Migration tooling available to assist conference
Tools (VIR809PAL) you with migrating from
AX2009 to D365 for
Operations.

Servicing
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: Tech Talk on the Feature Free recording of a web 47 minutes
Feature Management management experience. It conference
(DYN641PAL2) provides a workspace where
you can view, enable, disable,
and schedule features that
have been delivered in each
release. By default, new
features are turned off. You
can use the workspace to
turn them on and view the
documentation for them.
Attend this meeting to see
what is delivered in 10.0.3
and our plans for future
releases.

Finance and Operations: Tech Talk on how to Free recording of a web 53 minutes
Servicing, Supporting and efficiently support, maintain conference
Maintaining Production and service your Dynamics
(DYN651PAL2) 365 for Finance and
Operations production
environment.

Finance And Operations: The Continuous Update Free recording of a web 61 minutes
Microsoft Managed cadence for Finance and conference
Continuous Updates Operations has started!
(DYN610PAL) Please join us during this
hour to discuss Microsoft
Managed Continuous
updates, the user experience
already available in Lifecycle
Services, and forthcoming
updates.

Microsoft Managed During this hour we will Free recording of a web 56 minutes
Continuous Updates: What's explain what is new since our conference
new (DYN543PAL2) initial announcements about
Microsoft Managed
Continuous updates. We will
discuss the cadence of
updates, how we have
responded to your valuable
feedback on the process,
and take a look at the
forthcoming Lifecycle
Services user experience,
through which you will be
able to manage your
updates.

Testing
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: This is the first of a two-part Free recording of a web 70 minutes
Regression Suite Automation series on Regression Suite conference
Tool -- Background & Setup Automation Testing (RSAT).
(DYN646PAL) In this session, we will cover
how to keep pace with
continuous updates using
automated testing via RSAT.
Learnings and
recommendations on
creating task recordings and
executing tests using RSAT
will be covered, along with a
step-by-step walkthrough of
the installation and setup.

Finance and Operations: This is the second of a two- Free recording of a web 70 minutes
Regression Suite Automation part series on Regression conference
Tool -- Testing Lifecycle Suite Automation Testing
Demo (DYN647PAL) (RSAT). This session will cover
a demo of the whole cycle of
creating and saving task
recordings from Finance and
Operations to the BPM
library in LCS, synchronizing
the BPM library to create
test cases in Azure DevOps,
grouping the test cases into
test suites, and loading and
executing the test suites in
RSAT.

Finance and Operations: In this Tech Talk, we will Free recording of a web 64 minutes
Performance present the different tools conference
Troubleshooting Tools for that can be used to
Dynamics 365 troubleshoot Microsoft
(DYN541PAL2) Dynamics 365 for Finance
and Operations performance
issues. This session will
contain some scenario-
based demonstrations and
initial guidance on how to
approach typical
performance issues.

Exam
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Dynamics 365 Fundamentals Prove that you understand Exam, cost varies by region
Microsoft Dynamics 365; the
Power Platform; cloud
concepts; licensing options;
and deployment and release
options.
Developer Learning Catalog
4/16/2020 • 10 minutes to read • Edit Online

Do you need to write code to integrate with other data sources, extend core system functionality, or build a
complex application?
The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format that
best meets your needs.

Get started
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Get started with Finance and Learn how Microsoft Free self-paced online 2.2 hours
Operations apps Dynamics 365 for Finance learning path
and Operations supports
businesses to manage their
global financial systems,
operational business
processes, and streamlined
supply chains to empower
people to make fast
informed decisions. As the
first step in your career of
working with Finance and
Operations you must
familiarize yourself with its
features and functionality
regardless of your desired
role.

Core development concepts


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Introduction to developing As a developer working with Free, self-paced online 7.75 hours
with Finance and Operations Dynamics 365 for Finance learning path
apps and Operations, it’s
important to have a firm
grasp of the main
architecture components of
the Dynamics 365
ecosystem and Finance and
Operations. Knowledge of
core developer concepts,
including technical
capabilities, source code,
testing frameworks, and
reporting tools, will support
your further efforts in
building development skills
that you can apply to
Finance and Operations.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Build Finance and Developing in Finance and Free, self-paced online 13 hours
Operations apps Operations apps requires a learning path
basic understanding of the
tasks required to build new
elements and customize
Finance and Operations
apps. The tasks include
understanding X++ code
and Visual Studio, as well as
being able to create and
modify the basic elements of
the system.

Extend Finance and Extensions allow developers Free, self-paced online 2.5 hours
Operations apps to make changes to the user learning path
experience in Dynamics 365
for Finance and Operations
by implementing
modifications to the code
that do not affect the base
code. Among other benefits,
this lets developers to
update Finance and
Operations to adhere to
business processes and
required changes.

Connect to Finance and Integration and the ability to Free, self-paced online 5.75 hours
Operations apps access your data in learning path
Dynamics 365 for Finance
and Operations are
important capabilities.
Developers who have
learned to build and extend
code in Finance and
Operations can enhance
their knowledge of
development by learning
about data integration and
how connecting to data can
have positive impacts on
users.

Migrate data and go live As a functional consultant, Free, self-paced online 4 hours
with Finance and Operations you must understand how learning path
apps to prepare your customer's
data for migration, work
with data management, and
perform user acceptance
testing to go live with
Finance and Operations
apps.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance And Operations: This TechTalk discusses Free recording of a web 52 minutes
Development ALM Development Application conference
(DYN766PAL) Lifecycle Management
concepts, tools and the best
practices we recommend.
We cover how Lifecycle
Services, Visual Studio, and
Azure DevOps work
together to enable business-
process focused continuous
delivery of your solution’s
code base, and servicing of
your environments.

Finance and Operations: Understand the simplicity of Free recording of a web 43 minutes
Extending Dynamics 365 for Microsoft Power Apps and conference
Finance and Operations with how it can integrate with
Power Apps (DYN558PAL2) Dynamics 365 for Finance
and Operations to digitally
transform businesses and
increase user productivity.

Finance and Operations: We will provide an overview Free recording of a web 50 minutes
Extensibility (DYN518PAL2) and update on Microsoft's conference
extensibility plans. We will
discuss in detail the various
ways of extending a solution,
looking deep into the
metadata extensibility
features as well as the ability
to augment and extend
code, including via the
powerful Chain of Command
feature.

Visual Studio Team Services This Tech Talk will walk Free recording of a web 41 minutes
(VSTS) Setup (VIR782PAL) through the necessary steps conference
to configure a VSTS instance
and project to connect to
LCS implementation project
for Dev/Test environment
configuration.

Integration (VIR806PAL) This Tech Talk will discuss Free recording of a web 58 minutes
different integration options conference
for Dynamics 365 for
Operations including code
samples and
demonstrations.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

CDS Data Integrator Please join us for this tech Free recording of a web 61 minutes
(DYN451PAL2) talk on the capabilities of the conference
Common Data Service (CDS)
Data Integrator. We will
discuss integration options
between other Dynamics
365 apps and Dynamics 365
Finance and Operations, as
well as integrating with
other, third-party solutions.

Integration Between In this Tech talk we will Free recording of a web 54 minutes
Dynamics 365 for Sales and introduce the integration conference
Dynamics 365 for Finance & scenario known as Prospect
Operations via CDS to cash, with sales and
(DYN340PAL) marketing activities in
Dynamics 365 for Sales and
fulfillment in Dynamics 365
for Finance and Operations.
We will also take a look at
the Data integrator and how
to modify the integration.

Data Management Join us for this TechTalk on Free recording of a web 58 minutes
(DYN757PAL2) Data Management. Learn conference
about the options available
and the scenarios for which
they are recommended. We
will cover the Data
Management framework,
templates, database copying,
cross-company data sharing,
and performance
considerations.

Azure Integration Tools for This TechTalk will cover the Free recording of a web 63 minutes
Dynamics 365 for Finance types of tools one might conference
and Operations consider while integrating
(DYN386PAL) with Dynamics 365 for
Finance & Operations and
when to choose which
integration tool. The session
will also walk-through some
of integration scenarios
orchestrated using Azure
integration services.

Integration Frameworks This session will provide an Free recording of a web 64 minutes
within Dynamics 365 for overview of the integration conference
Finance & Operations frameworks within Dynamics
(DYN385PAL) 365 for Finance &
Operations and discuss the
consideration under which
these frameworks could be
used.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Copy Into Legal Entity In this session, we will Free recording of a web 54 minutes
(DYN383PAL) discuss a new feature in the conference
data management
framework, Copy into legal
entity. We will first briefly
review the new features
added to the data
management framework in
platform 8 for the
workspace, templates, and
data projects and then
discuss the additional
functionality added for Copy
into legal entity.

How To Extend or Build New This Tech Talk will provide a Free recording of a web 59 minutes
Analytical Workspaces walk through on how to conference
(DYN321PAL) extend or build new
Analytical Workspaces.

Mobile Framework This tech talk will walk Free recording of a web 58 minutes
(VIR824PAL) through the mobile conference
framework capabilities for
building apps in Dynamics
365 for Operations. The
session will also demonstrate
some recently built apps.

Servicing
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: Tech Talk on how to Free recording of a web 53 minutes
Servicing, Supporting and efficiently support, maintain conference
Maintaining Production and service your Dynamics
(DYN651PAL2) 365 for Finance and
Operations production
environment.

Finance and Operations: Tech Talk on the Feature Free recording of a web 47 minutes
Feature Management management experience. It conference
(DYN641PAL2) provides a workspace where
you can view, enable, disable,
and schedule features that
have been delivered in each
release. By default, new
features are turned off. You
can use the workspace to
turn them on and view the
documentation for them.
Attend this meeting to see
what is delivered in 10.0.3
and our plans for future
releases.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance And Operations: The Continuous Update Free recording of a web 61 minutes
Microsoft Managed cadence for Finance and conference
Continuous Updates Operations has started!
(DYN610PAL) Please join us during this
hour to discuss Microsoft
Managed Continuous
updates, the user experience
already available in Lifecycle
Services, and forthcoming
updates.

Finance And Operations: During this hour we will Free recording of a web 59 minutes
Microsoft Managed discuss updates to the conference
Continuous Updates: What's Microsoft Managed
new - November 1, 2018 Continuous update cadence
(DYN533cust) as well as take a look at the
user experience in Lifecycle
Services.

Microsoft Managed During this hour we will Free recording of a web 56 minutes
Continuous Updates: What's explain what is new since our conference
new (DYN543PAL2) initial announcements about
Microsoft Managed
Continuous updates. We will
discuss the cadence of
updates, how we have
responded to your valuable
feedback on the process,
and take a look at the
forthcoming Lifecycle
Services user experience,
through which you will be
able to manage your
updates.

Migration and upgrade


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: Please join us for our next Free recording of a web 61 minutes
Upgrading from 7.x to 8+ TechTalk, during which we conference
(DYN519PAL2) will cover the 7.X to 8.X
upgrade process. We will
discuss various scenarios
and steps to execute for
code upgrade and data
upgrade. We will also cover
extensibility request
scenarios and how to raise
them where appropriate.
Part 1 of 2.

AX2012 to Dynamics 365 This Tech Talk will provide an Free recording of a web 45 minutes
for Operations Upgrade overview on how to upgrade conference
(VIR817PAL2) code and data from
Dynamics AX 2012 to
Dynamics 365 for
Operations.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

AX2009 to Dynamics 365 This session will cover Free recording of a web 55 minutes
for Operations Migration tooling available to assist conference
Tools (VIR809PAL) you with migrating from
AX2009 to D365 for
Operations.

Testing
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: Tech Talk on how to Free recording of a web 61 minutes
Acceptance Test Library efficiently support, maintain conference
(DYN650PAL2) and service your Dynamics
365 for Finance and
Operations production
environment.

Finance and Operations: This is the first of a two-part Free recording of a web 70 minutes
Regression Suite Automation series on Regression Suite conference
Tool -- Background & Setup Automation Testing (RSAT).
(DYN646PAL) In this session, we will cover
how to keep pace with
continuous updates using
automated testing via RSAT.
Learnings and
recommendations on
creating task recordings and
executing tests using RSAT
will be covered, along with a
step-by-step walkthrough of
the installation and setup.

Finance and Operations: This is the second of a two- Free recording of a web 70 minutes
Regression Suite Automation part series on Regression conference
Tool -- Testing Lifecycle Suite Automation Testing
Demo (DYN647PAL) (RSAT). This session will cover
a demo of the whole cycle of
creating and saving task
recordings from Finance and
Operations to the BPM
library in LCS, synchronizing
the BPM library to create
test cases in Azure DevOps,
grouping the test cases into
test suites, and loading and
executing the test suites in
RSAT.

Finance and Operations: In this Tech Talk, we will Free recording of a web 68 minutes
Performance Benchmark for describe an approach for conference
Dynamics 365 preparing and delivering a
(DYN550PAL2) performance benchmark on
Microsoft Dynamics 365 for
Finance and Operations. We
will present the process,
main concepts and tools
before illustrating a simple
case with a demonstration.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: In this Tech Talk, we will Free recording of a web 58 minutes
Performance Key Patterns present efficient conference
and Anti-patterns for performance patterns that
Dynamics 365 (DYN549PAL) we have seen project teams
implement successfully. We
will also describe anti-
patterns that can lead to
serious performance
degradation of the Microsoft
Dynamics 365 for Finance
and Operations
environment.

Finance and Operations: In this Tech Talk, we will Free recording of a web 64 minutes
Performance present the different tools conference
Troubleshooting Tools for that can be used to
Dynamics 365 troubleshoot Microsoft
(DYN541PAL2) Dynamics 365 for Finance
and Operations performance
issues. This session will
contain some scenario-
based demonstrations and
initial guidance on how to
approach typical
performance issues.

Task Automation Framework Please join us for this tech Free recording of a web 55 minutes
for Data Management talk on the new Task conference
(DYN447PAL2) Automation Framework for
Data Management. Learn
how the framework
facilitates testing of data
entities & integrations,
validation of the resulting
data, and automation of
other tasks in the Data
Management Framework.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: This talk will introduce and Free recording of a web 66 minutes
Warehouse App Task explain the new Warehouse conference
Validation Framework App Task Validation
Framework which is
designed to allow for the
automation of warehouse
tasks within the standard
Dynamics 365 Warehousing
application. This new
framework bridges the gap
between the Regression
Suite Automation Tool (RSAT)
and the warehouse
functionality so that end-to-
end regression tests can be
built including both core
Dynamics workflows as well
as distribution scenarios
utilizing the advanced
warehousing module. The
talk will walk through the
setup and configuration of
the framework and show
how it can be utilized to
automate a warehouse
process through RSAT.
Microsoft Partner Sales and Marketing Learning
Catalog
4/16/2020 • 2 minutes to read • Edit Online

Are you responsible for helping your customers buy the right solution?
The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format that
best meets your needs.

Get started
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Learn the business value of Are you interested in Free, self-paced online 7 hours
Microsoft Dynamics 365 and learning about business learning path
the Power Platform applications? Perhaps you
don’t know where to begin
with Microsoft Dynamics
365 and Power Platform
applications? Learn how the
power of business
applications can help
transform your business.

Dynamics 365 and Power Are you interested in 5.5 hours


Platform Fundamentals learning about business
applications? Start with this
learning path to see how
Dynamics 365 apps are
used. Learn about cloud
concepts, Power Platform,
and how to get started with
Dynamics 365 apps.

Get started with Finance and Learn how Finance and Free, self-paced online 2 hours
Operations apps Operations apps support learning path
businesses to manage their
global financial systems,
operational business
processes, and streamlined
supply chains to empower
people to make fast,
informed decisions. As the
first step in your career of
working with Finance and
Operations apps, you must
familiarize yourself with its
features and functionality,
whatever your desired role.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Course MB-900T01-A: This course will familiarize Instructor-led in person or 1 day


Dynamics 365 fundamentals the learner with Dynamics online training; cost varies
365 functionality and by region and partner
business value. The course
will cover Dynamics 365
applications, the Power
Platform, cloud concepts, the
security model, and licensing
considerations.

Exam
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Dynamics 365 Fundamentals Prove that you understand Exam; cost varies by region
Microsoft Dynamics 365; the
Power Platform; cloud
concepts; licensing options;
and deployment and release
options.
Functional Application Consultant Learning Catalog
4/16/2020 • 22 minutes to read • Edit Online

Are you an implementation expert for a business domain?


The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format that
best meets your needs.
For functional consultants, our job-task analysis research showed that everyone must understand the core content
set as well as a domain area.

Get started
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Learn the business value of This learning experience will Free, self-paced online 6.5 hours
Microsoft Dynamics 365 and take you on a journey that learning path
the Power Platform will begin by showing you
how digital transformation
and the power of business
applications can transform
your business. We will cover
how Dynamics 365 and
Power Platform help you
make informed decisions
based on your organization’s
needs and goals, through
four building blocks of digital
transformation—modern,
unified, intelligent, and
adaptable.

Dynamics 365 and Power Are you interested in Free, self-paced online 5.5 hours
Platform Fundamentals learning about business learning path
applications? Start with this
learning path to see how
Dynamics 365 apps are
used. Learn about cloud
concepts, Power Platform,
and how to get started with
Dynamics 365 apps.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Migrate data and go live Learn how Microsoft Free, self-paced online 1.5 hours
with Finance and Operations Dynamics 365 for Finance learning path
apps and Operations supports
businesses to manage their
global financial systems,
operational business
processes, and streamlined
supply chains to empower
people to make fast,
informed decisions. As the
first step in your career of
working with Finance and
Operations, you must
familiarize yourself with its
features and functionality,
regardless of your desired
role.

Before you buy Check out the step-by-step Documentation


guidance whether you're still
evaluating Finance and
Operations or ready to make
a purchase.

Release plan Find out about the latest Documentation


capabilities and
enhancements in Dynamics
365

Core platform knowledge


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Use Lifecycle Services to Lifecycle Services (LCS) is a Free, self-paced online 2 hours
design and plan an collaborative workspace that learning path
implementation of Finance customers and their
and Operations apps partners use to manage
Finance and Operations
apps projects from pre-sales
to the implementation phase
and finally to the production
environment. It provides
checklists and tools that help
you manage the project,
including pre-build
methodologies to help with
implementation and
regularly updated services.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure your organization As a functional consultant Free, self-paced online 12 hours


in Finance and Operations who works with Finance and learning path
apps Operations apps, you must
understand how to set up
an organization for your
customer. This learning path
shows you, amongst other
tasks, how to set up legal
entities, implement security
settings, personalize the user
interface for users, design,
and build mobile apps, and
implement common
integrations.

Migrate data and go live As a functional consultant, Free, self-paced online 4 hours
with Finance and Operations you must understand how learning path
apps to prepare your customer's
data for migration, work
with data management, and
perform user acceptance
testing to go live with
Finance and Operations
apps.

Configure and work with Business leaders can make Free, self-paced online 4 hours
analytics and reporting in important decisions in their learning path
Finance and Operations company if they have
apps accurate insight into the
underlying financial and
operational data. A business
user can also configure, and
use the electronic reporting
tool without a single line of
code, to adopt new
regulatory requirements and
generate business
documents in the required
format to electronically
exchange information with
government bodies, banks,
and other parties.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: FastTrack offers an Tech Talk (recorded webinar) 62 minutes
Onboarding to Dynamics Onboarding service to every
365 (DYN542PAL2) Dynamics 365 for Finance
and Operations project. In
this TechTalk, we will explain
the Onboarding process,
walk through the content of
the Onboarding session with
you, and unveil how we are
making Onboarding more
efficient and convenient in
the near future. This session
is especially relevant to
everybody who works with
customers in the early
stages of a project, between
closing the license deal and
initiation of the
implementation project.

On-Premises (Local Business Please join this tech talk for Tech Talk (recorded webinar) 48 minutes
Data) Deployment an overview of the on-
(DYN382PAL2) premise deployment option
for Dynamics 365 for
Finance and Operations,
Enterprise Edition. In this
session, we will look at the
solution architecture of an
on-premise deployment,
ALM aspects, system
requirements, and how to
provision the Life Cycle
Services project.

Go-live Planning We will discuss the go-live Tech Talk (recorded webinar) 60 minutes
(DYN458PAL2) process in detail, and how
best to prepare for it, in
order to make it as smooth
as possible for the customer,
partner and Microsoft.

Environment Planning Please join us for this tech Tech Talk (recorded webinar) 53 minutes
(DYN450PAL2) talk on Environment
Planning. Learn about the
standard environments,
what other environments
you might need, the options
and timing for acquiring and
deploying them, and the
expected code and data
flows between
environments.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: Tech Talk on the Feature Tech Talk (recorded webinar) 47 minutes
Feature Management management experience. It
(DYN641PAL2) provides a workspace where
you can view, enable, disable,
and schedule features that
have been delivered in each
release. By default, new
features are turned off. You
can use the workspace to
turn them on and view the
documentation for them.
Attend this meeting to see
what is delivered in 10.0.3
and our plans for future
releases.

Finance And Operations: The Continuous Update Tech Talk (recorded webinar) 61 minutes
Microsoft Managed cadence for Finance and
Continuous Updates Operations has started!
(DYN610PAL) Please join us during this
hour to discuss Microsoft
Managed Continuous
updates, the user experience
already available in Lifecycle
Services, and forthcoming
updates.

Finance And Operations: During this hour we will Tech Talk (recorded webinar) 59 minutes
Microsoft Managed discuss updates to the
Continuous Updates: What's Microsoft Managed
new - November 1, 2018 Continuous update cadence
(DYN533cust) as well as take a look at the
user experience in Lifecycle
Services.

Monitoring, Optimization We will discuss monitoring Tech Talk (recorded webinar) 40 minutes
Advisor & Critical KBs capabilities and what
(DYN456PAL2) Microsoft monitors for you
in your production
environment, the
optimization advisor and
how it can be extended, the
“Critical X++ updates”
experience in LCS, and best
practices for the “Report
production outage” option
in LCS.

Visual Studio Team Services This Tech Talk will walk thru Tech Talk (recorded webinar) 41 minutes
(VSTS) Setup (VIR782PAL) the necessary steps to
configure a VSTS instance
and project to connect to
LCS implementation project
for Dev/Test environment
configuration.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Copy Into Legal Entity In this session, we will Tech Talk (recorded webinar) 54 minutes
(DYN383PAL) discuss a new feature in the
data management
framework, Copy into legal
entity. We will first briefly
review the new features
added to the data
management framework in
platform 8 for the
workspace, templates, and
data projects and then
discuss the additional
functionality added for Copy
into legal entity.

Regression Suite Automation We will discuss the Tech Talk (recorded webinar) 61 minutes
Tool (DYN480PAL) Regression Suite Automation
Tool. It significantly reduces
the time and cost of user
acceptance testing, when
taking a Microsoft update,
or before applying custom
code and configurations to
your Dynamics 365 for
Finance and Operations
production environment. It
enables functional power
users to record business
tasks, using the Finance and
Operations task recorder,
and convert them into a
suite of automated tests,
without the need to write
source code.

Finance and Operations: This is the first of a two-part Tech Talk (recorded webinar) 70 minutes
Regression Suite Automation series on Regression Suite
Tool -- Background & Setup Automation Testing (RSAT).
(DYN646PAL) In this session, we will cover
how to keep pace with
continuous updates using
automated testing via RSAT.
Learnings and
recommendations on
creating task recordings and
executing tests using RSAT
will be covered, along with a
step-by-step walkthrough of
the installation and setup.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: This is the second of a two- Tech Talk (recorded webinar) 70 minutes
Regression Suite Automation part series on Regression
Tool -- Testing Lifecycle Suite Automation Testing
Demo (DYN647PAL) (RSAT). This session will cover
a demo of the whole cycle of
creating and saving task
recordings from Finance and
Operations to the BPM
library in LCS, synchronizing
the BPM library to create
test cases in Azure DevOps,
grouping the test cases into
test suites, and loading and
executing the test suites in
RSAT.

Performance Testing Please join us for this tech Tech Talk (recorded webinar) 45 minutes
Approach (DYN449PAL2) talk on how to approach
Performance Testing. Learn
about the fundamentals,
best practices for testing,
available tools and
techniques for executing
tests and measuring
performance, and how to
use the results for
optimization.

How to upgrade to 7.2 (July In this session we will explain Tech Talk (recorded webinar) 58 minutes
2017) from 7.0 (RTW)/7.1 how to upgrade from
(Release 1611) Dynamics 365 Finance and
(DYN338PAL2) Operations application v7.0
(RTW) and v7.1 (1611) to
v7.2 (July 2017). We make a
clear differentiation between
Live customers and ongoing
projects (not live yet).

Finance and Operations: Please join us for our next Tech Talk (recorded webinar) 61 minutes
Upgrading from 7.x to 8+ TechTalk, during which we
(DYN519PAL2) will cover the 7.X to 8.X
upgrade process. We will
discuss various scenarios
and steps to execute for
code upgrade and data
upgrade. We will also cover
extensibility request
scenarios and how to raise
them where appropriate.
Part 1 of 2.

AX2012 to Dynamics 365 This Tech Talk will provide an Tech Talk (recorded webinar) 45 minutes
for Operations Upgrade overview on how to upgrade
(VIR817PAL2) code and data from
Dynamics AX 2012 to
Dynamics 365 for
Operations.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Reporting Options in This session will discuss Tech Talk (recorded webinar) 60 minutes
Dynamics 365 for various printing scenarios in
Operations (VIR810PAL) D365 for Operations,
including tips and tricks for
Document Routing Agent.

Course MB-300T01-A: Core This course discusses core Instructor-led in person or 1 day
common features of common features of online training, cost varies
Dynamics 365 for Finance Microsoft Dynamics 365 for by region and partner
and Operations Finance and Operations.

Course MB-300T02-A: Core This course discusses core Instructor-led in person or 1 day
configuration in Dynamics configuration tasks for online training, cost varies
365 for Finance and Microsoft Dynamics 365 for by region and partner
Operations Finance and Operations.

Course MB-300T03-A: Data This course discusses data Instructor-led in person or 1 day
migration and preparing for migration and go-live online training, cost varies
go-live with Dynamics 365 preparation for Microsoft by region and partner
for Finance and Operations Dynamics 365 for Finance
and Operations.

Implementation Lifecycle These topics describe the Documentation


home page programs, tools, and
processes available related
to the implementation
lifecycle of your Microsoft
Dynamics 365 for Finance
and Operations project.

Financial management
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use the Dynamics 365 Finance Free, self-paced online 13.3 hours
general ledger in Dynamics empowers business users to learning path
365 Finance control finances and manage
funds with accurate
information at any time for
financial planning and
forecasting, and stay up to
date with analytics. Since
finance is the heart of the
business, and the General
ledger module is the heart
of financial management,
this learning path shows you
how to set up functionality
in the General ledger
module. It also covers how
to complete closing
procedures for a period or a
year.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use cash and You can use the Cash and Free, self-paced online 7.5 hours
bank management, and bank management module learning path
sales tax in Dynamics 365 in Dynamics 365 Finance to
Finance maintain an organization's
bank accounts and the
financial instruments that
are associated with those
bank accounts. All
businesses must collect and
pay taxes to various tax
authorities. In this learning
path you will learn how to
configure and use these
areas of Dynamics 365
Finance.

Work with Accounts payable Accounts payable are a Free, self-paced online 5.5 hours
in Dynamics 365 Finance liability due to a creditor learning path
when you order goods or
services without paying in
cash up front, which means
that you buy goods on
credit. Learn how to
configure accounts payable
in Dynamics 365 Finance,
record vendor invoices, and
distribute expenses, tax, and
charges across accounts.

Work with Accounts Configure the Accounts Free, self-paced online 7 hours
receivable in Dynamics 365 receivable module in learning path
Finance Dynamics 365 Finance to
create customer invoices,
post packing slips, and use
free text invoices that are
not related to sales orders.
In this learning path, you will
also learn how to do daily
tasks in accounts receivable.

Configure and use Every organization, whether Free, self-paced online 2.5 hours
budgeting in Dynamics 365 it is private or public, sets learning path
Finance financial and operational
goals by creating budgets.
With the collaborative and
process-driven nature of
budget planning, you can
make your budget process
more efficient.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and manage fixed You can set up and enter Free, self-paced online 4.5 hours
assets in Dynamics 365 acquisition information for learning path
Finance fixed assets, and then
manage them by
depreciating them and
setting a capitalization
threshold. The way in which
fixed assets are handled
must correspond with both
international accounting
standards and the
accounting legislation in
each country or region.

Get started with cost Cost accounting lets you Free, self-paced online path 1 hour
accounting for supply chains collect data from various
in Dynamics 365 Finance sources, such as the general
ledger, sub-ledgers, budgets,
and statistical information.
You can then analyze,
summarize, and evaluate
cost data so that
management can make the
best possible decisions for
price updates, budgets, cost
control, and so on.

Configure Dynamics 365 Dynamics 365 Finance Free, self-paced online path 1.5 hours
Finance for public sector enables business processes
that are common to the
public and private sectors,
such as budgeting,
purchasing, accounts
payable, and accounts
receivable tasks. Use the
Public sector functionality to
meet the rules, regulations,
and reporting requirements
for organizations that serve
the public sector.

Configure electronic Instead of extending the Free, self-paced online path 3 hours
reporting in Dynamics 365 code for Dynamics 365
Finance Finance to meet regulatory
features and compliance for
different countries or
regions, a business user can
configure and use the
electronic reporting tool
without a single line of code.
For example, you can adopt
new regulatory
requirements and generate
business documents in the
required format to
electronically exchange
information with
government bodies, banks,
and other parties.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Financial Reporting This Tech Talk will discuss Free recording of a web 57 minutes
(DYN305PAL) financial reporting setup and conference
report lists in Dynamics 365
for Operations. The session
will also cover datamart
reset in UAT environment
and troubleshooting and
searching for hotfix, using
LCS.

Finance and Operations: UK During this session we will Free recording of a web 63 minutes
Digital Tax - VAT Declaration talk about the new conference
In Dynamics 365 For Finance submission process
And Operations introduced by HMRC in the
(DYN599PAL) United Kingdom for VAT
declarations. We will explain
how to configure VAT
declaration and set up
electronic messaging in
Dynamics 365 for Finance
and Operations. We will
demonstrate the submission
process to the HMRC
application in a sandbox
environment. This session is
especially relevant for
consultants who will
implement the feature and
provide training to users.

Course MB-310T01-A: You can set up and enter Instructor-led in person or 2 days
Configure and use essential acquisition information for online training, cost varies
components of financial fixed assets, and then by region and partner
management in Dynamics manage them by
365 for Finance and depreciating them and
Operations setting a capitalization
threshold. The way in which
fixed assets are handled
must correspond with both
international accounting
standards and the
accounting legislation in
each country or region.

Course MB-310T02-A: Cost accounting lets you Instructor-led in person or 1 day


Configure and use accounts collect data from various online training, cost varies
payable, receivable, and sources, such as the general by region and partner
collections in Finance and ledger, sub-ledgers, budgets,
Operations and statistical information.
You can then analyze,
summarize, and evaluate
cost data so that
management can make the
best possible decisions for
price updates, budgets, cost
control, and so on.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Course MB-310T03-A: You can complete closing Instructor-led in person or 1 day


Configure and use procedures for a period or a online training, cost varies
budgeting, fixed assets, and year. Closing processes by region and partner
additional functionality in prepare the system for a
Finance and Operations new period. Learn how to
prepare, configure and
perform periodic processes
in Dynamics 365 for Finance
and Operations.

Microsoft Certified: Microsoft Certified: Certification, cost varies by


Dynamics 365 for Finance Dynamics 365 for Finance region
and Operations, Financials and Operations, Financials
Functional Consultant Functional Consultants unify
Associate global financials and
operations and automate
tasks and workflows,
streamline customer
ordering, selling, invoicing,
and reporting.

Manufacturing
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use discrete If a company only produces Free, self-paced online 12.5 hours
manufacturing in Dynamics simple products, production learning path
365 Supply Chain can be scheduled manually
Management with the correct bill of
materials (BOM) parts
arriving on the production
floor, at the correct time, and
at the proper resource. As a
functional consultant for
manufacturing, you need to
know how to configure
Dynamics 365 Supply Chain
Management for discrete
manufacturing, so your
customer can perform and
control the production
lifecycle.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use lean Lean manufacturing is a Free, self-paced online 6.5 hours
manufacturing in Dynamics journey of continuous learning path
365 Supply Chain improvement. The goal is to
Management produce exactly what the
customer wants, when the
customer wants it, and to do
it economically. You can use
lean manufacturing in a
unified (mixed-mode)
manufacturing environment
that combines various
supply, production, and
sourcing strategies. These
strategies include production
orders, batch orders for
process industries, purchase
orders, and transfer orders.
The lean manufacturing
architecture in Dynamics
365 for Finance and
Operations consists of
production flows, activities,
and Kanban rules.

Configure and use process Process manufacturing is Free, self-paced online 6 hours
manufacturing in Dynamics associated with formulas and learning path
365 Supply Chain manufacturing recipes, in
Management contrast with discrete
manufacturing, which uses
discrete units, and bills of
materials. Process
manufacturing is used in
manufacturing environments
where production is
completed in batch or semi-
continuous processes.

Use warehouse Using warehouse Free, self-paced online 6 hours


management in management in learning path
manufacturing in Dynamics manufacturing processes in
365 Supply Chain Dynamics 365 for Finance
Management and Operations helps
optimize and streamline
warehouse processes in your
manufacturing environment,
according to your company's
needs.

Course MB-320T01-A: This course discusses how to Instructor-led in person or 2 days


Configure and use discrete configure and use discrete online training, cost varies
manufacturing in Dynamics manufacturing in Dynamics by region and partner
365 for Finance and 365 for Finance and
Operations Operations.

Course MB-320T02-A: This course discusses how to Instructor-led in person or 1 day


Configure and use lean configure and use lean online training, cost varies
manufacturing in Dynamics manufacturing in Dynamics by region and partner
365 for Finance and 365 for Finance and
Operations Operations.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Course MB-320T03-A: This course discusses how to Instructor-led in person or 1 day


Configure and use process configure and use process online training, cost varies
manufacturing in Dynamics manufacturing in Dynamics by region and partner
365 for Finance and 365 for Finance and
Operations Operations.

Microsoft Certified: Microsoft Certified: Certification, cost varies by


Dynamics 365 for Finance Dynamics 365 for Finance region
and Operations, and Operations,
Manufacturing Functional Manufacturing Functional
Consultant Associate Consultants integrate digital
and physical systems;
improve visibility,
manufacturing efficiency and
flexibility; and lower costs for
their clients.

Supply chain management


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Get started with Dynamics Finance and Operations Free, self-paced online 1 hour
365 Supply Chain empowers employees and module
Management organizations with the ability
to obtain a unified view of
inventory, warehouse,
manufacturing, service, and
logistics with predictive
analytics that turn data into
insights to support better
strategic decisions.

Configure and manage Product information is the Free, self-paced online 6 hours
products and inventory in pillar of supply chain and learning path
Dynamics 365 Supply Chain retail applications across all
Management industries. In the various
modules of a business
solution, product-specific
information and
configuration are required to
manage the business
processes that are related to
products, product families,
bill of materials, and product
categories. Inventory
reports will show how much
inventory you have in
variety of different ways, and
will explain how to be more
effective in your inventory
investments.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use The process of finding and Free, self-paced online 6 hours
agreements in Dynamics working with vendors, learning path
365 for Finance and purchasing products, and
Operations ensuring the quality of
goods and services are all
important factors that
impact a company's
reputation and success.

Configure and use Companies negotiate and Free, self-paced online 2 hours
agreements in Dynamics agree on certain terms to fix module
365 for Finance and the price of items. These
Operations agreements help businesses
make correct estimations of
cost of goods purchased and
set a base for sales prices. By
purchasing or selling goods,
companies might be entitled
to receive rebates or gain
royalty rewards, which can
be converted to a credit
note.

Configure and manage the The order to cash process Free, self-paced online 1.5 hours
order to cash process in manages the life cycle of the module
Dynamics 365 Supply Chain sales process which consists
Management of sub processes of receiving
and processing customer
sales. The invoicing and
accounts receivable
functions in the process
determine the company's
cash inflows.

Configure and use Large organizations often Free, self-paced online 1.5 hours
intercompany trade in buy and sell among their module
Dynamics 365 Supply Chain subsidiaries. Dynamics 365
Management for Finance and Operations
facilitates intercompany
trade so that an
organization’s legal entities
can trade goods while all
documents are automatically
generated for the
participating legal entities,
thus saving the organization
time and money.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Configure and use master Businesses in any market, Free, self-paced online 2 hours
planning in Dynamics 365 such as retail, module
Supply Chain Management manufacturing, distribution,
services, and public sector
organizations, need
functionality to help them
plan for demand and supply
of products and services
during the course of short
or long-term operations. Get
to know the Master
planning feature of
Dynamics 365 for Finance
and Operations to
streamline your planning,
based on pre-determined
factors, to efficiently plan
what materials need to be
purchased, transferred, or
manufactured.

Configure and work with Warehouse management in Free, self-paced online 5 hours
warehouse management in Dynamics 365 for Finance learning path
Dynamics 365 for Finance and Operations helps
and Operations optimize and streamline
warehouse processes
according to your individual
needs and provides the
insight into your inventory
and the tools to help
increase customer
satisfaction and reduce
costs.

Configure and work with The Transportation Free, self-paced online 3 hours
transportation management management module in module
in Dynamics 365 for Finance Dynamics 365 for Finance
and Operations and Operations helps you
find the most efficient way
to deliver goods to your
customers by calculating the
least expensive and fastest
way, and lets you identify
vendor and routing
solutions for inbound and
outbound orders.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Warehousing Mobile App This Tech Talk will discuss the Free recording of a web 54 minutes
(VIR816PAL) Advanced Warehousing conference
system in Dynamics 365 for
Operations and what the
future holds for the
advanced warehousing
mobile interface. We will
examine the new mobile
application that has been
released and how it
compares to the legacy
WMDP. We will learn what is
required to install, configure,
and operate this mobile
application and how it can
be used to benefit your
implementations.

Vendor Collaboration This Tech Talk will provide a Free recording of a web 58 minutes
(DYN327PAL) walk through on the Vendor conference
Collaboration feature
including the Consumption
of Response from Vendor
feature that is included in
the July (spring) release.

Vendor Collaboration This Tech Talk will provide a Free recording of a web 58 minutes
(DYN327PAL) walk through on the Vendor conference
Collaboration feature
including the Consumption
of Response from Vendor
feature that is included in
the July (spring) release.

Item And Warehouse In this Tech Talk, we will Free recording of a web 54 minutes
Migration Process To Use teach you how to migrate conference
Advanced Warehouse existing warehouse setup
Management (DYN316PAL) and items with open
transactions to the advance
warehouse management, by
using the new capabilities to
change the storage
dimension group for items
and enable warehouses to
use the advanced warehouse
management processes.

Supply chain management This topic provides a list of Documentation


home page the help topics and other
resources for the supply
chain management features
in Microsoft Dynamics 365
for Finance and Operations.

Demand Replenishment for This TechTalk will cover raw Free recording of a web 38 minutes
Raw Material Picking material picking and demand conference
(DYN333PAL2) replenishment for raw
material picking.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Course MB-330T01-A: This course discusses how to Instructor-led in person or 2 days


Configure and use supply configure and use supply online training, cost varies
chain management in chain management in by region and partner
Dynamics 365 for Finance Dynamics 365 for Finance
and Operations and Operations.

Course MB-330T02-A: Use This course discusses how to Instructor-led in person or 1 day
quality management, use quality management, online training, cost varies
Intercompany trading and intercompany trading and by region and partner
master planning in Dynamics master planning in Dynamics
365 for Finance and 365 for Finance and
Operations Operations.

Course MB-330T03-A: This course discusses how to Instructor-led in person or 1 day


Configure and use configure and use online training, cost varies
warehouse, and warehouse and by region and partner
transportation management transportation management
in Dynamics 365 for Finance in Dynamics 365 for Finance
and Operations and Operations.

Microsoft Certified: Microsoft Certified: Certification, cost varies by


Dynamics 365 for Finance Dynamics 365 for Finance region
and Operations, Supply and Operations, Supply
Chain Management Chain Management
Functional Consultant Functional Consultants
Associate streamline cost accounting,
inventory management,
master planning, and
warehouse management for
their clients.

Exams
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Exam MB-300: Microsoft This exam measures your Exam, cost varies by region
Dynamics 365 Unified ability to accomplish the
Operations Core following technical tasks: use
common functionality and
implementation tools;
configure security, processes,
and options; perform data
migration; and validate and
support the solution.

Exam MB-310: Microsoft This exam measures your Exam, cost varies by region
Dynamics 365 for Finance ability to accomplish the
and Operations, Financials following technical tasks: set
up and configure financial
management; manage and
apply common processes;
implement and manage
accounts payable and
receivable; and manage
budgeting and fixed assets.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Exam MB-320: Microsoft This exam measures your Exam, cost varies by region
Dynamics 365 for Finance ability to accomplish the
and Operations, following technical tasks: set
Manufacturing up and configure
manufacturing; create and
manage production and lean
orders; and create, process,
and manage production
batch orders.

Exam MB-330: Microsoft This exam measures your Exam, cost varies by region
Dynamics 365 for Finance ability to accomplish the
and Operations, Supply following technical tasks:
Chain Management implement product
information management;
implement inventory
management; implement
and manage supply chain
processes; and implement
warehouse management
and transportation
management and perform
business processes.
Solution Architects Learning Catalog
4/16/2020 • 10 minutes to read • Edit Online

Do you design solutions that meet your customers' needs and budgets?
The following catalog is organized from core knowledge to specific domains, and from most basic to most
advanced. If content exists in multiple formats, we'll let you know, so that you can choose the training format that
best meets your needs.

Get started
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Dynamics FastTrack Architect The Dynamics FastTrack Free instructor-led in-person 5 days
Boot camp Architect Boot camps are training. Qualifications apply.
EXCLUSIVELY for solution
integrator partners
commencing customer
implementations governed
by the Microsoft Dynamics
365 FastTrack customer
success program. The FREE
intensive Boot camps are
SPECIFICALLY for solution
integrator partner architects
assigned to FastTrack
engagements and are led by
senior architects from the
Dynamics 365 engineering
team.

Core platform knowledge


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Go-live Planning We will discuss the go-live Free recording of a web 60 minutes
(DYN458PAL2) process in detail, and how conference
best to prepare for it, in
order to make it as smooth
as possible for the customer,
partner, and Microsoft.

Environment Planning Join us for this tech talk on Free recording of a web 53 minutes
(DYN450PAL2) Environment Planning. Learn conference
about the standard
environments, what other
environments you might
need, the options and timing
for acquiring and deploying
them, and the expected code
and data flows between
environments.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Demo Data Packages Join us for this tech talk on Free recording of a web 40 minutes
(DYN443PAL) the recently released demo conference
data packages. You can use
them to customize the demo
data you need for your
scenarios, and then load just
what you need into an
environment.

On-Premises (Local Business Join this tech talk for an Free recording of a web 48 minutes
Data) Deployment overview of the on-premise conference
(DYN382PAL2) deployment option for
Dynamics 365 for Finance
and Operations, Enterprise
Edition. In this session, we
will look at the solution
architecture of an on-
premise deployment, ALM
aspects, system
requirements, and how to
provision the Life Cycle
Services project.

Reduce Data Import and In this Tech Talk, we will Free recording of a web 52 minutes
Export Time Using discuss the new conference
Configurations (DYN315PAL) configuration feature in
Dynamics 365 for Finance
and Operations, Enterprise
edition. We will show how
you can set up
configurations using
predefined templates, copy
configuration data from a
legal entity to a data project
and export it, and then
import it into another legal
entity.

Reporting Options in This session will discuss Free recording of a web 60 minutes
Dynamics 365 for various printing scenarios in conference
Operations (VIR810PAL) D365 for Operations,
including tips and tricks for
Document Routing Agent.

Core development concepts


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Microsoft recently Free recording of a 61 minutes


Operations: made the Acceptance web conference
Acceptance Test Test Library (ATL)
Library publicly available. ATL
(DYN650PAL2) is a library of around
5,000 classes, which
helps you author
readable, performant,
quality X++ tests and
consistent test data,
while hiding the
complexity of setting
up prerequisites.
These are the same
classes Microsoft uses
internally for testing.
The ATL framework’s
fluent API facilitates
the Test Driven
Development and
Specification By
Example software
engineering
approaches. Join us
for this Tech Talk to
learn more about it.

Finance and Tech Talk which Free recording of a 43 minutes


Operations: Extending discusses in detail and web conference
Dynamics 365 for demonstrates
Finance and extending talent
Operations with applications using
Power Apps Microsoft Power Apps
(DYN558PAL2) and Power Automate.

Data Management Join us for this Free recording of a 58 minutes


(DYN757PAL2) TechTalk on Data web conference
Management. Learn
about the options
available and the
scenarios for which
they are
recommended. We
will cover the Data
Management
framework, templates,
database copying,
cross-company data
sharing, and
performance
considerations.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Azure Integration This TechTalk will cover Free recording of a 63 minutes


Tools for Dynamics the types of tools one web conference
365 for Finance and might consider while
Operations integrating with
(DYN386PAL) Dynamics 365 for
Finance & Operations
and when to choose
which integration
tool. The session will
also walk-through
some of integration
scenarios
orchestrated using
Azure integration
services.

Extensibility This session will Free recording of a 55 minutes


(DYN384PAL2) provide an overview web conference
of the extensibility
plans Microsoft has
announced and the
recommended path
forward for partners
and customers who
have overlayered
code. We will discuss
the various methods
of extending a
solution, looking deep
into the metadata
extensibility features
as well as the ability
to augment and
extend code. The
powerful new Chain
of Command feature
will be demonstrated,
and we will show how
many extensibility
features are
unblocked by this
technology.

Integration This session will Free recording of a 64 minutes


Frameworks within provide an overview web conference
Dynamics 365 for of the integration
Finance & Operations frameworks within
(DYN385PAL) Dynamics 365 for
Finance & Operations
and discuss the
consideration under
which these
frameworks could be
used.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Integration Between In this Tech talk, we Free recording of a 54 minutes


Dynamics 365 for will introduce the web conference
Sales and Dynamics integration scenario
365 for Finance & known as Prospect to
Operations via CDS cash, with sales and
(DYN340PAL) marketing activities in
Dynamics 365 for
Sales and fulfillment in
Dynamics 365 for
Finance and
Operations. We will
also look at the Data
integrator and how to
modify the
integration.

Mobile Framework This tech talk will walk Free recording of a 58 minutes
(VIR824PAL) through the mobile web conference
framework capabilities
for building apps in
Dynamics 365 for
Operations. The
session will also
demonstrate some
recently built apps.

Integration This Tech Talk will Free recording of a 58 minutes


(VIR806PAL) discuss different web conference
integration options
for Dynamics 365 for
Operations including
code samples and
demonstrations.

Visual Studio Team This Tech Talk will walk Free recording of a 41 minutes
Services (VSTS) Setup through the web conference
(VIR782PAL) necessary steps to
configure a VSTS
instance and project
to connect to LCS
implementation
project for Dev/Test
environment
configuration.

Migration and upgrade


C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: Join us for our next TechTalk, Free recording of a web 61 minutes
Upgrading from 7.x to 8+ during which we will cover conference
(DYN519PAL2) the 7.X to 8.X upgrade
process. We will discuss
various scenarios and steps
to execute for code upgrade
and data upgrade. We will
also cover extensibility
request scenarios and how
to raise them where
appropriate. Part 1 of 2.

How to upgrade to 7.2 (July In this session, we will Free recording of a web 44 minutes
2017) from 7.0 (RTW)/7.1 explain how to upgrade from conference
(Release 1611) Dynamics 365 Finance and
(DYN338PAL2) Operations application v7.0
(RTW) and v7.1 (1611) to
v7.2 (July 2017). We make a
clear differentiation between
Live customers and ongoing
projects (not live yet).

AX2012 to Dynamics 365 This Tech Talk will provide an Free recording of a web 45 minutes
for Operations Upgrade overview on how to upgrade conference
(VIR817PAL2) code and data from
Dynamics AX 2012 to
Dynamics 365 for
Operations.

AX2009 to Dynamics 365 This session will cover Free recording of a web 55 minutes
for Operations Migration tooling available to assist conference
Tools (VIR809PAL) you with migrating from
AX2009 to D365 for
Operations.

Servicing
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: Tech Talk on how to Free recording of a web 53 minutes
Servicing, Supporting and efficiently support, maintain, conference
Maintaining Production and service your Dynamics
(DYN651PAL2) 365 for Finance and
Operations production
environment
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: Tech Talk on the Feature Free recording of a web 47 minutes
Feature Management management experience. It conference
(DYN641PAL2) provides a workspace where
you can view, enable, disable,
and schedule features that
have been delivered in each
release. By default, new
features are turned off. You
can use the workspace to
turn them on and view the
documentation for them.
Attend this meeting to see
what is delivered in 10.0.3
and our plans for future
releases.

Finance And Operations: The Continuous Update Free recording of a web 61 minutes
Microsoft Managed cadence for Finance and conference
Continuous Updates Operations has started! Join
(DYN610PAL) us during this hour to
discuss Microsoft Managed
Continuous updates, the
user experience already
available in Lifecycle Services,
and forthcoming updates.

Finance And Operations: During this hour we will Free recording of a web 59 minutes
Microsoft Managed discuss updates to the conference
Continuous Updates: What's Microsoft Managed
new - November 1, 2018 Continuous update cadence
(DYN533cust) and look at the user
experience in Lifecycle
Services.

Finance And Operations: During this hour, we will Free recording of a web 56 minutes
Microsoft Managed explain what is new since our conference
Continuous Updates: What's initial announcements about
new (DYN543PAL2) Microsoft Managed
Continuous updates. We will
discuss the cadence of
updates, how we have
responded to your valuable
feedback on the process,
and look at the forthcoming
Lifecycle Services user
experience, through which
you will be able to manage
your updates.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Microsoft Managed During this hour, we will Free recording of a web 56 minutes
Continuous Updates: What's explain what is new since our conference
new (DYN543PAL2) initial announcements about
Microsoft Managed
Continuous updates. We will
discuss the cadence of
updates, how we have
responded to your valuable
feedback on the process,
and look at the forthcoming
Lifecycle Services user
experience, through which
you will be able to manage
your updates.

Microsoft Managed We will discuss Microsoft’s Free recording of a web 62 minutes


Continuous Updates plans for keeping your conference
(DYN474PAL2) system up-to-date with the
latest release. We will cover
timelines, the cadence for
major and minor updates,
the planned procedures, the
implications, and what you
should do for optimal
results.

Monitoring, Optimization We will discuss monitoring Free recording of a web 40 minutes


Advisor & Critical KBs capabilities and what conference
(DYN456PAL2) Microsoft monitors for you
in your production
environment, the
optimization advisor and
how it can be extended, the
“Critical X++ updates”
experience in LCS, and best
practices for the “Report
production outage” option
in LCS.

Punch Out (DYN332PAL2) This Tech Talk will provide a Free recording of a web 42 minutes
walk through on punch out conference
functionality and will cover
the setup of an external
catalog via purchase
requisition scenario.

Testing
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Finance and Operations: This is the first of a two-part Free recording of a web 70 minutes
Regression Suite Automation series on Regression Suite conference
Tool -- Background & Setup Automation Testing (RSAT).
(DYN646PAL) In this session, we will cover
how to keep pace with
continuous updates using
automated testing via RSAT.
Learnings and
recommendations on
creating task recordings and
executing tests using RSAT
will be covered, along with a
step-by-step walkthrough of
the installation and setup.

Finance and Operations: This is the second of a two- Free recording of a web 70 minutes
Regression Suite Automation part series on Regression conference
Tool -- Testing Lifecycle Suite Automation Testing
Demo (DYN647PAL) (RSAT). This session will cover
a demo of the whole cycle of
creating and saving task
recordings from Finance and
Operations to the BPM
library in LCS, synchronizing
the BPM library to create
test cases in Azure DevOps,
grouping the test cases into
test suites, and loading and
executing the test suites in
RSAT.

Finance and Operations: In this Tech Talk, we will Free recording of a web 68 minutes
Performance Benchmark for describe an approach for conference
Dynamics 365 preparing and delivering a
(DYN550PAL2) performance benchmark on
Microsoft Dynamics 365 for
Finance and Operations. We
will present the process,
main concepts and tools
before illustrating a simple
case with a demonstration.

Finance and Operations: In this Tech Talk, we will Free recording of a web 58 minutes
Performance Key Patterns present efficient conference
and Anti-patterns for performance patterns that
Dynamics 365 (DYN549PAL) we have seen project teams
implement successfully. We
will also describe anti-
patterns that can lead to
serious performance
degradation of the Microsoft
Dynamics 365 for Finance
and Operations
environment.
C O N T EN T DESC RIP T IO N F O RM AT L EN GT H

Regression Suite Automation We will discuss the Free recording of a web 61 minutes
Tool (DYN480PAL) Regression Suite Automation conference
Tool. It significantly reduces
the time and cost of user
acceptance testing, when
taking a Microsoft update,
or before applying custom
code and configurations to
your Dynamics 365 for
Finance and Operations
production environment. It
enables functional power
users to record business
tasks, using the Finance and
Operations task recorder,
and convert them into a
suite of automated tests,
without the need to write
source code.

Performance Testing Join us for this tech talk on Free recording of a web 45 minutes
Approach (DYN449PAL2) how to approach conference
Performance Testing. Learn
about the fundamentals,
best practices for testing,
available tools and
techniques for executing
tests and measuring
performance, and how to
use the results for
optimization.
User interface elements
2/28/2020 • 3 minutes to read • Edit Online

This topic describes the user interface (UI) elements used in the app. Before users can navigate the interface, it's
important to know the names and functions of the elements that make up the interface.

Overview
Action Pane - The bar beneath the navigation bar. Here, you can select tabs to change records shown in the
page. You can edit and save the records here.
FactBox - You can see information and follow the activities of certain records in this pane.
FactBox pane Here, you can scroll through different aspects of a record to view in the FactBox.
Filter pane - On some pages, you can select Show filters to open this pane. It allows you to narrow the results
visible to you on the page.
Navigation bar - The bar at the top of the interface. It contains the Dynamics 365 por tal , Search , company
picker , Action center , Settings , Help & Suppor t , and the user profile.
Navigation list - On some pages, you can scroll through this pane to find a specific record. When selected, the
details of the record will appear in the page.
Navigation pane - The left-most pane. From here, you can find any page in the product.
Page - The central focus of the interface. Selections made on the other UI components will affect what records
are shown here.
Pane - The right-most pane. This will open in some cases when aspects of a record need to be changed and
saved.
Tab - When referring to the Action Pane, it's a menu of options that appears when you select a given option in
the Action Pane.

Tabs, fields, and sections


A tab is a selection made on the page that opens a different aspect of a record on the same page. Often, it will allow
you to change certain fields, or UI elements that allow typed input.
A FastTab is a tab with the added benefit of allowing multiple tabs to be visible at the same. You can expand a
FastTab by selecting the downward-pointing arrow on the right end of it.

A section is similar to a tab. The word "section" is often used to describe any area of a page that organizes a specific
category of information. In the following image, Summary, Orders and favorites, and Links are all examples of
sections.

Dialog boxes and drop-down menus


A dialog box is a pane that opens when certain selections are made to change or create a record. Dialog boxes
contain fields that allow you to enter typed input. Sometimes, a given field will allow you to select a downward
facing arrow that opens a list of options to choose from. This is called a drop-down menu. In the following image,
the Type and Customer group fields contain the option to open a drop-down menu.

In some cases, a dialog box will open near a given button when you select it. This is called a drop-down dialog box.
In the following image, the As of date button was selected, which opened a drop-down dialog box.

Notifications
Certain changes to the objects you oversee will appear as notifications. Notifications may notify you when a specific
customer's information has been changed, or it may alert you when the system can't accept inputs you've added in
certain fields. You can learn how to customize what you receive notifications about in the Alerts overview.
Notifications appear in a variety of ways.
Feature callout - This will appear next to a field, tab, or other button to offer an explanation of what the feature
is used for.
Action center - A box that contains the notification will appear next to the Action center button on the
navigation bar. You can see details about the notification by selecting Action center .
Message bar - This will appear beneath the Action Pane.
The following image shows examples of these types of notifications.

Message box - This will appear over the interface and must be interacted with before you can continue to use
the product.

Toolbars, grids, and lists


A toolbar contains tools, such as the ability to add fields or remove records. Sometimes, a toolbar will appear on the
page above a grid. This area, grid, is a name given to rows of records with various columns of data. Not all grids
have toolbars above them.
A list is the name given to a collection of records that you can scroll through. You can bring these records into the
page by selecting them. Often, this will open a grid.
Accessibility features
12/3/2019 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the functionality that is designed to help users who have various disabilities use this app. For
example, there are features for people who use sight-assistive technologies such as Microsoft Windows Narrator.

Windows Narrator and keyboard-only access


Every field and control has a label and a description of applicable shortcuts. A screen reader can read the label and
description.

Shortcuts for the most frequently performed actions


For most users, everyday system use involves lots of data entry and keyboard interaction. To enhance the user
experience, we have created shortcuts to help you "jump" around the screen and shortcuts for specialized actions.
For more information, see Keyboard shortcuts.

Navigation search
Any page that is accessed by using the Navigation pane menu, the left-most pane, is also available from the Search
box. Press Alt+G to move focus to the Search box, and then type the name or description of the page.

For more information, see Navigation search.

NOTE
You can navigate directly to top-level pages only. Secondary pages rely on information or context from their parent page.

Action search for keyboard-only users or for heads-down data entry


Every action that is provided on a page can be accessed from a keyboard, via the tab sequence. Information about
the tab sequence is provided later in this topic. To run actions more directly, you can use the action search
functionality.
Example
You want to run the Email notification log action that appears in the Email notification group on the Sales
order tab on the Action Pane.
One option is to use your keyboard. Press Ctrl+F6 to move focus to the Action Pane, and then press Tab repeatedly
to move through all the tabs and actions, until the Email notification log action has focus.
However, you can also run the action more directly. From anywhere on the page, press Ctrl+Apostrophe (') to show
the search box for actions.

In the search box, type words that describe the action. The action is made available to you, and you can run it
directly. For example, by typing email , notific (a partial word), or log , you can "jump" to the Email notification log
functionality.

When you've finished, you can press Ctrl+Apostrophe again to return focus to the field that you were working with
before you ran the action search.
For more information, see Action search.

Tab sequence
In everyday system use, not every field is required in order to perform typical tasks. Therefore, by default, the tab
sequence is "optimized." Tab stops are set only on those fields that are essential for typical scenarios.
However, you might find that some fields that you often use to perform tasks aren't included in the default tab
sequence. In this case, if you use Windows Narrator, you can use Windows Narrator's keyboard actions to access
those fields and inspect their content. Alternatively, you can turn on the Enhanced tab sequence option on the
Options page. This option makes all editable and read-only fields part of the tab sequence. You can then use page
personalization to create a custom tab sequence and omit fields that don't have to be part of the tab sequence. For
more information about personalization, see Personalize the user experience.
Form patterns
Almost 90 percent of the pages in the app are based on a small set of patterns. These patterns are referred to as
form patterns. Each form pattern is used to provide the actions that are most often performed on the page. A form
pattern helps guarantee familiarity and ease of understanding, because frequently used actions and data are always
presented in the same location on different pages. Because of the small number of form patterns, users can easily
learn the system, regardless of the number of pages in it, and can confidently use it after they recognize the form
patterns.
To learn more about form patterns, see Form styles and patterns.

Responsive layout
The product is designed to work on various devices and form factors, from the smallest screens to large screens
that have the highest resolution. Our responsive layout engine lets users zoom in to a magnification level of 200
percent (or, in some scenarios, more than 200 percent).
On smartphones and other small screens, the controls and the form layout will responsively adapt to ensure that
the core data is favored. These responsive behaviors can also include reducing the number of columns in groups
and tabs to a single column, hiding shell elements, and collapsing the Action Pane.

Guidance to help developers and customers incorporate accessible


thinking in their customizations
To learn more about Microsoft best practices for enabling accessibility, see Accessibility in forms, products, and
controls.
Feature management overview
11/9/2019 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Features are added and updated in every release. The Feature management experience provides a workspace
where you can view a list of features that have been delivered in each release. By default, new features are turned
off. You can use the workspace to turn them on and view the documentation for them.

The Feature management workspace


You can open the Feature management workspace by selecting the appropriate tile on the dashboard. You will
see a page that shows a list of features for all releases that are supported by the Feature management experience.
Over time, Microsoft will enhance the Feature management experience so that it includes additional functionality to
help you manage features.
The feature list includes the following information:
Feature name – A description of the feature that was added.
Enabled status – A symbol indicates whether a feature has been turned on (check mark), hasn't been turned
on (blank), is scheduled to be turned on (clock), is mandatorily turned on (lock), requires attention before you
turn it on (warning), or can't be enabled (X). The setting that is shown is used for all legal entities. Note that even
when a feature has been turned on, it's still controlled by security. Therefore, the feature will be available only to
users who have access to it, based on their security role. It will also be available only in legal entities that the
user has access to.
Enable date – The date when the feature was turned on or is scheduled to be turned on.
Feature added – The date when the feature was added to your environment. This date is automatically entered
when you update your environment during the monthly release cycles.
Module – The module that is affected by the new feature.
When you select a feature, additional information appears in the details pane to the right of the feature list. At the
top of the pane, you will see the feature name, the date when the feature was added, the module that is affected by
the feature, and a Learn more link. Select this link to view the documentation for the feature. If documentation
isn't available, you're taken to a temporary page. The details pane also includes a Comments field where you can
add your own comments about the feature.
The Feature management workspace also has several tabs, each of which shows a list of features.
New – This tab shows all features that have been added since the last monthly update. If you've skipped any
monthly updates, the tab shows all the new features that have been added since the last time that you updated.
The newest features appear at the top of the list. The total number of new features is also shown on a tile at the
top of the page.
Not enabled – This tab shows all features that haven't been turned on. The newest features appear at the top of
the list. The total number of new features that haven't been turned on is also shown on a tile at the top of the
page.
Scheduled – This tab shows all features that have been scheduled to be turned on in the future. The features
that have the earliest scheduled date appear at the top of the list. The total number of schedule new features is
also shown on a tile at the top of the page.
All – This tab shows all features. The newest features appear at the top of the list.

Turn on a feature
If a feature hasn't been turned on, an Enable Now button appears in the details pane. You can use this button to
turn on the feature.
Select the feature to turn on, and then, in the details pane, select Enable Now . The feature is turned on.
Some features can't be turned off after you turn them on. If the feature that you're trying to turn on can't be turned
off, you receive a warning. At that point, you can select Cancel to cancel the operation and leave the feature turned
off. However, if you select Enable to turn on the feature, you won't be able to turn it off later.
Some features will display a message that provides additional information before you turn them on. These features
are indicated by a yellow warning symbol. You should read the additional information carefully to better
understand what will happen when the feature is enabled. However, you can still select Enable to turn on the
feature.
Some features will display a message that the feature can't be enabled until an action is taken. These features are
indicated by a red X symbol. You must take the actions described in the description before the feature is enabled.
For example, if you can't use a feature until a configuration key is disabled, then you must disable the configuration
key first and then return to Feature management to enable the feature.
After a feature is turned on, a message appears below the Learn more link in the details pane. This message either
states that the feature was turned on or indicates the future date when the feature is scheduled to be turned on. It
appears every time that you select the feature in the feature list.
Features that are scheduled to be turned on in the future appear on the Scheduled tab. A batch process will turn
them on at midnight on the specified date, based on the time zone that is represented by the system date.

Reschedule a feature
If a feature has been scheduled to be turned on in the future, a Schedule button appears in the details pane. You
can use this button to change the Enable date value to a different date.
1. Select the scheduled feature to reschedule, and then, in the details pane, select Schedule .
2. In the dialog box that appears, in the Enable date field, specify the new date when the feature should be turned
on.
3. Select Enable to reschedule the feature or Disable to cancel the schedule.

Turn off a feature


If a feature has already been turned on, a Disable button appears in the details pane. You can use this button to
turn off the feature. The Disable button isn't available if the feature can't be turned off after it's turned on.
Select the feature to turn off, and then, in the details pane, select Disable . The feature is turned off, and the
Enable date field is cleared.
After a feature is turned off, a message appears below the Learn more link in the details pane. This message states
that the feature hasn't yet been turned on. It appears every time that you select the feature in the feature list.
Features that haven't been turned on appear on the Not enabled tab.

Features that must be turned on


Sometimes, a critical feature is delivered that must be turned on automatically when you do an update. These
features will be turned on automatically on the date that is specified in the Enable date field. For these features, a
message appears below the Learn more link in the details pane. This message either states that the feature was
turned on or indicates the future date when the feature will be turned on. It appears every time that you select the
feature in the feature list.

Enable all features


By default, all features that are added to your environment are turned off. You can enable all features by selecting
the Enable all button.
When you select Enable all , an option will appear where you need provide the following information:
A list of all features that require confirmation before they can be enabled. If you want to enable the features in
the list, select Yes for the Enable features requiring confirmation button.
A list of all features that can't be enabled will be shown. Those features will not be enabled.
All features that can be enabled will be enabled. If a feature is already scheduled to be enabled in the future, the
schedule will not change.

Turn on all features automatically


By default, all features that are added to your environment are turned off, unless they are mandatory features.
However, if you want to automatically turn on all new features, you can use the drop-down list under the
workspace title to change what occurs when new features are added.
Select Enable new features automatically to automatically turn on all new features when they are added to
your environment.
Select Do not enable new features automatically to default all new features to off when they are added to
your environment.
When you enable all feature automatically, it will enable all of the features that would be enabled when you click
the Enable all button. It will not enable the features that require confirmation or the features that can't be enabled
until an action is taken.

Check for updates


Features are added to your environment after each update. However, you can manually check for updates by
clicking on the Check for updates button. Any feature that was added to the system after the update will be
added to the list of features. For example, if a flighted feature is enabled after a release, then you can check for
updates and the feature will be added to your list.

Assigning roles
The Feature management workspace can be opened by system admins, and also by users who are assigned to
the Feature manager role or the Feature viewer role. These two roles were created to support the Feature
management experience. Users in the Feature manager role can turn any feature on or off. They can also update the
Comments field for the feature. Users in the Feature viewer role can only view the Feature management
workspace. They can't turn features on or off.
The Feature manager role and Feature viewer role don't override the existing security that a user has. They just
control whether the user can turn features on and off. They don't provide access to the features themselves.

Features that use configuration keys


If a feature uses a configuration key, but the configuration key isn't turned on, the Feature management
workspace doesn't show the feature in the list of available features. After you turn on the configuration key, you
must update the feature list by using the Check for update menu item. The feature then appears in the feature
list.
If you turn off the configuration key, the feature isn't removed from the feature list.

Data entities
A data entity that is named Feature management lets you export the Feature management settings from one
environment and then import them into another environment. This entity updates only existing features. The
business logic in the entity also helps guarantee that the same rules that are used on the Feature management
workspace will be applied when the import is done. For example, you can't override a mandatory feature setting by
removing the date during import.
The following examples describe what occurs when you use the Feature management entity to import data.
If you change the value of the Enabled field to Yes , the feature is turned on, and the Enable date field is set to
the current date.
If you change the value of the Enabled field to No or leave the EnableDate field blank, the feature is turned
off, and the Enable date field is cleared. You can't turn off a mandatory feature or a feature that can't be turned
off after it's turned on.
If you change the value of the EnableDate field to a future date, the feature is scheduled for that date.
If you change the value of the Enabled field to Yes and change the value of the EnableDate field to a future
date, the feature is scheduled for that date.
If you change the value of the Enabled field to No , but you also change the value of the EnableDate field to a
future date, the feature is scheduled for that date.
If a feature is turned on, and you add an EnableDate field that is set to a future date, the feature remains turned
on. To reschedule the feature, you must change the Enabled field to No .

Feature management and flighting


Feature management lets you to control the features that are delivered in each release. Flighting lets Microsoft
teams release features to a limited number of customers, so that those features can be tested and validated without
affecting all customers. Feature management doesn't control the flighting of any features.

Using Feature management to turn on ISV features or custom features


Feature management is currently unavailable for features from independent software vendors (ISVs) and custom
features. However, Microsoft is adding more functionality to enhance Feature management. After those
enhancements are completed, Microsoft will make Feature management available to all features and provide
instructions for updating your features to use it.
Client FAQ
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article provides answers to frequently asked questions about the Finance and Operations client.

Why aren't symbols loaded?


The security settings on your browser might prevent the symbols from being loaded correctly. To resolve this issue,
try the following steps:
If you're experiencing this issue in Internet Explorer, click Tools , and then click Internet Options . In the Internet
Options dialog box, on the Privacy tab, click Custom level , and make sure the Font download option is
selected.
Otherwise, you might have to add the app site to the list of trusted sites.

I miss the ribbon from Dynamics AX 2012. Can I keep Action Pane tabs
open all the time?
We are planning to implement this feature soon. Users will then be able to choose to keep the tabs on Action Panes
open all the time. Otherwise, the tabs will be collapsed when they aren't being used, to gain more screen space for
the page.

Why do I sometimes see different shortcut menus when I right click?


If you right-click in an editable field (or if text is selected), the browser's shortcut menu is displayed. This menu
gives you access to the Cut , Copy , and Paste commands. We can't embed these commands into the shortcut
menus because, for security reasons, browsers don't allow us to programmatically access the system clipboard.
If you right-click a field label or the value of a read-only control, you'll see the shortcut menu.
To make keyboard access easier, we plan to implement a keyboard shortcut in the future that will open the shortcut
menu.

Where is the View details functionality?


The View details option is available in a couple of ways:
If a control has View details capabilities, and if the control has a value, that value is displayed as a hyperlink.
You can click the hyperlink to open a page that contains additional details.
View details is also an option on shortcut menus. For more information about when shortcut menus are
displayed when you right-click, see the previous section.
Action search
3/9/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article describes the action search functionality. Action search will help you find and run actions on a page.

Introduction
Pages primarily expose commands on Action Panes, both the standard Action Pane that appears at the top of a
page and the toolbars that appear in various sections of the page. In previous versions, a Key Tips feature let you
quickly access any button on an Action Pane by pressing the Alt key and then a series of letters.

Key Tips are no longer available but have been replaced by the action search feature. This new feature lets you
quickly search for and run a button from any visible Action Pane.

Using action search


To use the action search feature, follow these steps.
1. On the Action Pane, click in the action search field. (The action search field contains a magnifying glass icon.)
2. Type all or part of the name of the button that you want to run. You can also search by using words from the
button's "path." (For more information, see the next section of this article.) Typically, a button will appear near
the top of the results list after you've typed two to four characters.
3. Find and run the button in the results list (by using your mouse or keyboard).
After the button is run, the focus is returned to your last position on the page, so that you can continue to work.
You can also start action search by pressing Ctrl+/ or Alt+Q. Press the keyboard shortcut again to return the focus
to your last position on the page.

Understanding the results list


Often, you must know both the location and the context of a button to fully understand the purpose of that button.
Therefore, additional information is shown for each item in the results list, to help you understand exactly which
buttons appear in the list. In particular, the "path" of the button is shown. This path might include the labels of the
following UI elements, as relevant:
Action Pane tab
Button group
Menu button (if the button is inside a menu button)
Menu separator (if the button is inside a named group inside a menu button)
Group or tab on the page (for example, the name of a FastTab)
For example, you typed tot in the action search field and are now examining the results list. The first entry, for a
button that is named Totals , is highlighted. A button path of Sales order > View is also shown. The Sales order
part of the path corresponds to the Sales order tab on the Action Pane, and the View part of the path
corresponds to the View group on that tab. Similarly, the path of the Total discount button (Sell > Calculate )
informs you that this button is located in the Calculate group on the Sell tab of the Action Pane. Therefore, this
information helps you understand exactly which button will be triggered by action search (if you select that button
in the results list).

In the previous example, action search showed results from the standard Action Pane at the top of a page. However,
action search also shows results from visible toolbars that are located in other places on the page. For example,
you're searching for the On-hand inventor y button that is located on the Sales order lines FastTab. In this case,
the button path in the results list (Sales order lines > Inventor y > View ) informs you that this button is located
under the View heading on the Inventor y menu button on the Sales order lines FastTab.
NOTE
There are some buttons that do not show up in Action search. These include drop dialog buttons and buttons from
subforms.

Action search vs. Navigation search


Whereas action search is intended to find and run actions on a page, there is a separate search mechanism for
finding and navigating to pages. For more information about that feature, see the Navigation search article.
Advanced filtering and query syntax
3/9/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the filtering and query options that are available when you use the Advanced filter/sort dialog
or the matches operator in the Filter pane or grid column header filters.

Advanced query syntax


SY N TA X C H A RA C T ER DESC RIP T IO N DESC RIP T IO N EXA M P L E

value Equal to the value that is Type the value to find. Smith finds "Smith".
entered

!value (exclamation point) Not equal to the value that Type an exclamation point !Smith finds all values
is entered and then the value to except "Smith".
exclude.

from-value..to-value (double Between the two values that Type the from-value, then 1..10 finds all values from 1
period) are separated by double two periods, and then the through 10. However, in a
periods to-value. string field, A..C finds all
values that start with "A"
and "B", and values that are
exactly equal to "C". For
example, this query won't
find "Ca". To find all values
from "A" through "C", type
A..D .

..value (double period) Less than or equal to the Type two periods and then ..1000 finds any number
value that is entered the value. that is less than or equal to
1000, such as "100",
"999.95", and "1,000".

value.. (double period) Greater than or equal to the Type the value and then two 1000.. finds any number
value that is entered periods. that is greater than or equal
to 1000, such as "1,000",
"1,000.01", and "1,000,000".

>value (greater than sign) Greater than the value that Type a greater than sign (> ) >1000 finds any number
is entered and then the value. that is greater than 1000,
such as "1000.01", "20,000",
and "1,000,000".

<value (less than sign) Less than the value that is Type a less than sign (< ) and <1000 finds any number
entered then the value. that is less than 1000, such
as "999.99", "1", and "-200".
SY N TA X C H A RA C T ER DESC RIP T IO N DESC RIP T IO N EXA M P L E

value* (asterisk) Starting from the value that Type the starting value and S* finds any string that
is entered then an asterisk (* ). starts with "S", such as
"Stockholm", "Sydney", and
"San Francisco".

*value (asterisk) Ending with the value that is Type an asterisk and then *east finds any string that
entered the ending value. ends with "east", such as
"Northeast" and "Southeast".

*value* (asterisk) Containing the value that is Type an asterisk, then a *th* finds any string that
entered value, and then another contains "th", such as
asterisk. "Northeast" and "Southeast".

? (question mark) Having one or more Type a question mark at the Sm?th finds "Smith" and
unknown characters position of the unknown "Smyth".
character in the value.

value,value (comma) Matching the values that are Type all your criteria, and A, D, F, G finds exactly "A",
separated by commas separate them by using "D", "F", and "G". 10, 20,
commas. 30, 100 finds exactly "10,
20, 30, 100".

"" (two double quotes) Matching a blank value Type two consecutive double Two consecutive double
quotes to filter for blank quotes ("") finds rows with
values in that field. no value for the current
column.

(Finance and Operations Matching a defined query Type a query as an SQL ((AccountNum LIKE
query) (Finance and statement between "US*") &&
Operations query between parentheses using the (DirPar tyTable.Name LIKE
parentheses) Finance and Operations "Cont*"))
query language.
as an example of syntax for a
filter condition on a field
from the root datasource as
well as a field from a
different datasource (for the
All customers page)

T Today's date Type T . T matches today's date.


SY N TA X C H A RA C T ER DESC RIP T IO N DESC RIP T IO N EXA M P L E

(methodName(parameters)) Matching the value or range Type a SysQuer yRangeUtil 1. Click Accounts
(SysQuer yRangeUtil of values that are specified method that has parameters receivable >
method between by the parameters of the that specify the value or Invoices > Open
parentheses) SysQuer yRangeUtil range of values. customer invoices .
method 2. Press Ctrl+Shift+F3
to open the Inquir y
page.
3. On the Range tab,
click Add .
4. In the Table field,
select Open
customer
transactions .
5. In the Field field,
select Due date .
6. In the Criteria field,
enter (yearRange(-
2,0)) .
7. Click OK . The list
page is updated and
lists the invoices that
match the criterion
that you entered. For
this example, invoices
that were due in the
previous two years
are listed.
See the table in the next
section for additional details
about SysQuer yRangeUtil
date methods, and several
examples.

Advanced date queries that use SysQueryRangeUtil methods


M ET H O D DESC RIP T IO N EXA M P L E

Day (_relativeDays=0) Find a date relative to the session date. Tomorrow – Enter (Day(1)) .
Positive values indicate future dates, Today – Enter (Day(0)) .
and negative values indicate past dates. Yesterday – Enter (Day(-1)) .

DayRange (_relativeDaysFrom=0, Find a range of dates relative to the Last 30 days – Enter
_relativeDaysTo=0) session date. Positive values indicate (DayRange(-30,0)) .
future dates, and negative values Previous 30 days and next
indicate past dates. 30 days – Enter (DayRange(-
30,30)) .

GreaterThanDate (_relativeDays=0) Find all dates after the specified relative More than 30 days from
GreaterThanUtcDate (_relativeDays=0) date. now – Enter
(GreaterThanDate(30)) .

GreaterThanUtcNow () Find all date/time entries after the All future date/times – Enter
current time. (GreaterThanUtcNow()) .
M ET H O D DESC RIP T IO N EXA M P L E

LessThanDate (_relativeDays=0) Find all dates before the specified Less than seven days from
LessThanUtcDate (_relativeDays=0) relative date. now – Enter
(LessThanDate(7)) .

LessThanUtcNow () Find all date/time entries before the All past date/times – Enter
current time. (LessThanUtcNow()) .

MonthRange (_relativeFrom=0, Find a range of dates, based on months Previous two months – Enter
_relativeTo=0) relative to the current month. (MonthRange(-2,0)) .
Next three months – Enter
(MonthRange(0,3)) .

YearRange (_relativeFrom=0, Find a range of dates, based on years Next year – Enter
_relativeTo=0) relative to the current year. (YearRange(0, 1)) .
Previous year – Enter
(YearRange(-1,0)) .
Configure and filter workspaces
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article provides an overview about how to configure and filter workspaces.

Configuring a workspace
You can change the appearance and behavior of some workspaces by updating settings that apply to the whole
workspace. When a workspace can be configured, the Action Pane includes a button that instructs you to click it to
make configuration changes. For example, in the following illustration, the button is named Configure my
workspace .

When you click the button, a dialog appears, where you can modify the predefined settings for the workspace. The
specific settings that you see in this dialog vary by workspace, and depend on the specific controls and business
data that are available in the workspace.
Filtering a workspace
Many workspaces let you filter the content that appears in them. The controls that are available might let you filter
all the content in the workspace or only the content in a specific section of the workspace. The filters on workspaces
can be lookups, combo boxes, free-form text fields, or other types of controls. However, every type of filter has the
same effects, as described in the following sections.
Workspace -wide filters
You can filter the whole workspace by using a workspace-wide filter. A workspace-wide filter appears in the upper-
left corner of the workspace. When you select a specific value in the drop-down list, the contents of the workspace
are filtered based on that selection.

When you click to open the filter, you're presented with several options.
Select an option to filter the workspace based on that option.
Workspace section filters
If individual sections of the workspace have filters, you can filter each section separately. In the following
illustration, the filter (the field that contains the text "Filter") is an example of a free-form text field filter.

As with a workspace-wide filter, select or enter a value in the field to filter the contents of the section.
Show pages side by side by using the Open in new
window feature
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article explains how to display pages side-by-side.


You may want to view multiple pages side-by-side to complete tasks quickly. As an example, you might want to
validate or enter lines in more than one journal. Typically, to do this you would have to go back and forth between
the page that displays a list of journals, and the page that displays lines for a given journal. However, the Open in
new window feature enables you to display these pages side-by-side so that you can perform your tasks quickly.
Continuing with the example mentioned above, when viewing the lines, you can click the Open in new window
icon.

Clicking the Open in new window icon opens the lines page in a new, pop-up browser, and then navigates the
original browser back in history to the page that displayed the list of journals. You can then display both pages
side-by-side. When you are done viewing a journal, you can change the selected journal on the journal list page,
and the lines page in the pop-up window will automatically display the lines of the newly selected journal.

The dynamic linking and refreshing happens due to the relations that exist between the data that is backing these
pages. If the system is not aware of the relation between the data, the pop-up window will not refresh automatically
in response to a change in the window it originated from.
Some pages have multiple views such as the Grid view, Header view, and Details view. The Open in new window
icon causes the entire page to be opened in the new browser window. Therefore, you cannot keep two views of the
same page side-by-side using the Open in new window feature. However, almost all such pages have a
navigation list that you can use to switch between records and achieve a similar experience.
Before using the Open in new window feature, you should configure your browser's pop-up blocker to allow
pop-ups from the URL of the site. As an example, you could allow pop-ups from "*.dynamics.com".
The Open in new window feature is only available when there is more than one page open in the window. Also,
the pop-up window automatically closes when there are no more pages open (that is, when the last page in that
window is closed). The system also closes open pages when you navigate to a different area in the application.
Therefore, if you have pop-up windows open and navigate to a different area in the application, the pop-up
windows are automatically closed because the pages in those windows were closed by the system.
The top bar in the pop-up windows displays information about the company the page was opened in and is read-
only. The pop-up windows also rely on the main browser window. If the main window is closed or refreshed, all
open pop-up windows will become read only. This means that you can still view the information in these windows,
but you will not be able to interact with it.
Keyboard shortcuts
11/18/2019 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following keyboard shortcuts can help you quickly and efficiently enter data.

NOTE
The keyboard shortcuts described here refer to the United States keyboard layout. Keys on other keyboard layouts might not
correspond exactly to the keys on a US keyboard.

Finding a shortcut
As of Platform update 11, users can discover currently available shortcuts directly from the user interface. Simply
right-click on a control and select View shor tcuts . This will open a dialog box showing the shortcuts you can use
based on where you are on the page.

Action shortcuts
TO DO T H IS P RESS

Open action search Ctrl+' or Alt+Q

Move to the standard Action Pane Alt+M,A or Ctrl+F6

Open a tab on the Action Pane or a menu Enter or Space or Alt+Down arrow

Move to next/previous option in a menu Down arrow / Up arrow

Close a tab on the Action Pane or a menu Esc

Simulate a right-click Shift+F10

Open the context menu Ctrl+F10

Execute the default button on a form/dialog box Alt+Enter

Click a button or tile Enter or Space

View refresh information for a count tile Alt+Up arrow

View currently available shortcuts Alt+Shift+K


Date picker shortcuts
TO DO T H IS P RESS

Open the date picker Alt+Down arrow

Move between dates in the date picker Ctrl+Arrow keys

Move to the next/previous month Page down / Page up

Move to the next/previous year Ctrl+Shift+Page down / Ctrl+Shift+Page up

Move to today Ctrl+Home

Pick today's date T

Clear the selected date C

Pick Never (or the max date) N

FactBox shortcuts
TO DO T H IS P RESS

Open the FactBox pane (or move focus to the FactBox pane if Alt+M,B or Ctrl+F2
it is already open)

Close the FactBox pane (with focus in the FactBox pane) Esc

Move to the next/previous FactBox (with focus in the FactBox Alt+Shift+Down arrow / Alt+Shift+Up arrow
pane)

Move to the <n>th FactBox (with focus in the FactBox pane) Alt+<n> (<n> = 1-9)

Expand a FactBox (with focus on the FactBox header) Space or Enter

Collapse the current FactBox Alt+0

Filtering shortcuts
TO DO T H IS P RESS

Open grid filtering for the current column Ctrl+G

Close grid filtering for the current column Esc

Open the Filter pane (or switch focus between the Filter pane Alt+M,F or Ctrl+F3
and the main form if the Filter pane is already open)

Close the Filter pane (with focus in the Filter pane) Esc
TO DO T H IS P RESS

Open advanced filtering/sort Ctrl+Shift+F3

Form shortcuts
TO DO T H IS P RESS

Create a new record Alt+N

Delete a record Alt+Del or Alt+F9

Save record Alt+S or Ctrl+S

Revert (restore) Ctrl+Shift+F5

Data refresh Shift+F5

Move to the visible first field on the form Alt+Shift+F

Toggle edit mode F2

Attach a document Ctrl+Shift+A

Export to Excel Ctrl+Shift+E

Move to the previous record (outside a grid) Ctrl+Up arrow

Move to the next record (outside a grid) Ctrl+Down arrow

Move to the first record (outside a grid) Ctrl+Home

Move to the last record (outside a grid) Ctrl+End

Close the form (click Back) Esc

Close the form with explicit save Shift+Esc

Close the form discarding any unsaved changes Alt+Shift+Q

Form navigation shortcuts


TO DO T H IS P RESS

Move to the next/previous field Tab / Shift+Tab

Move to the next/previous tab Alt+Shift+Right arrow / Alt+Shift+Left arrow

Move to the <n>th tab Alt+Shift+<n> (<n> = 1-9)

Move to the next/previous FastTab Alt+Shift+Down arrow / Alt+Shift+Up arrow


TO DO T H IS P RESS

Move to the <n>th FastTab Alt+<n> (<n> = 1-9)

Move to the next/previous blade (vertical tab) Alt+Shift+Right arrow / Alt+Shift+Left arrow

Move to the <n>th blade (vertical tab) Alt+Shift+<n> (<n> = 1-9)

Expand a FastTab (with focus on the FastTab header) Space or Enter

Collapse the current FastTab Alt+0

Switch to grid view Ctrl+Shift+G

Switch to details view Ctrl+Shift+D

Switch to header view Ctrl+Shift+H

Switch to lines view Ctrl+Shift+L

Grid shortcuts
TO DO T H IS P RESS

Move to the next/previous column Tab / Shift+Tab

Move to the next/previous row Down arrow / Up arrow

Move to the next/previous row without selecting Ctrl+Up arrow / Ctrl+Down arrow
[!NOTE] This shortcut applies to multi-select scenarios
only.

Select/clear the current row Ctrl+Space / Ctrl+Click


[!NOTE] This shortcut applies to multi-select scenarios
only.

Add the next/previous row to the selected set Shift+Space


[!NOTE] This shortcut applies to multi-select scenarios
only.

Add a range of rows to the selected set Shift+Click


[!NOTE] This shortcut applies to multi-select scenarios
only.

Go to the next/previous page of data Page up / Page down


TO DO T H IS P RESS

Create a new row at the bottom of the grid Down arrow (from the last row)

Move to the first record Ctrl+Home

Move to the last record Ctrl+End

Select or clear all rows Ctrl+Shift+M

Move to the first marked row Alt+Shift+M, F

Move to the next marked row Alt+Shift+M, L

Move to the previous marked row Alt+Shift+M, P

Moved to the last marked row Alt+Shift+M, N

Execute the default action in a grid Enter


[!NOTE] This shortcut is enabled when focus is on a cell
containing a hyperlink and all cells in that column have
hyperlinks.

Toggle focus between the selected row and the header row Alt+Shift+H

Make the current column larger/smaller (with focus in the Right arrow / Left arrow
header row)

Open grid filtering for the current column (with focus in the Enter
header row)

Input control shortcuts


TO DO T H IS P RESS

Open the hyperlink Ctrl+Enter

Enter the session date in a date field D

Enter the current date in a date field T

Open lookup, combo box, date picker, drop dialog box Alt+Down arrow

Close lookup, combo box, date picker, drop dialog box Esc

Move focus into a lookup (when the lookup is already open) Alt+Down arrow

Open the control's enhanced preview Alt+Up arrow

Select text in the current field Ctrl+A


TO DO T H IS P RESS

Enter/leave the text area in an HTML editor control Alt+Down arrow / Alt+Up arrow

Switch focus between the text area and the toolbar in an F6


HTML editor control

Messaging shortcuts
TO DO T H IS P RESS

Go to the Message Center Ctrl+Shift+F7

Go to the Message Bar Ctrl+F7

Navigation shortcuts
TO DO T H IS P RESS

Go to the dashboard Alt+Shift+Home

Move to the navigation bar Alt+M,N or Alt+Shift+F1

Move to the company picker Ctrl+Shift+O

Search for a page Ctrl+/ or Alt+G

Open the help pane Ctrl+?

Open the trace parser Alt+Shift+T

Move to the navigation pane Alt+F1

Add/remove form as a favorite (with focus on a form in the Shift+F


navigation pane)

Move to the standard Action Pane Alt+M,A or Ctrl+F6

Move to the Filter pane (which may include opening it) Alt+M,F or Ctrl+F3

Move focus to the page content (with focus in the Filter pane) Alt+M,M or Ctrl+F3

Move to the navigation list on Details form (which may Alt+M,S or Ctrl+F8
include opening it)

Move focus to the page content (with focus in the navigation Alt+M,M or Ctrl+F8
list)

Close the navigation list on Details form (with focus in the Esc
navigation list)

Move to the main page content (with focus in another pane) Alt+M,M
TO DO T H IS P RESS

Move to the FactBox pane (which may include opening it) Alt+M,B or Ctrl+F2

Personalization shortcuts
TO DO T H IS P RESS

Transition the page into personalization mode Ctrl+Shift+P

Use the Select tool (when in personalization mode) S

Open the selected control's quick personalization dialog box Space or Enter
(when using the Select tool)

Use the Move tool (when in personalization mode) M

Select the current control as the one to move (when using the Space or Enter
Move tool and no control has been selected to move yet)

Clear the control to move (when using the Move tool) Esc

Move to the next position for the selected control (when using Tab or Right arrow or Down arrow
the Move tool)

Move to the previous position for the selected control (when Shift+Tab or Left arrow or Up arrow
using the Move tool)

Use the Hide tool (when in personalization mode) H

Switch whether the current control is visible or hidden (when Space or Enter
using the Hide tool)

Use the Skip tool (when in personalization mode) K

Switch whether the current control is in the tab sequence Space or Enter
(when using the Skip tool)

Use the Edit tool (when in personalization mode) E

Switch whether the current control is editable or read-only Space or Enter


(when using the Edit tool)

Use the Summary tool (when in personalization mode) U

Switch whether the current control is a summary field in the Space or Enter
current fast tab (when using the Summary tool)

Use the Add tool (when in personalization mode) A

Select the control whose container will be used to insert the Space or Enter
new fields (when using the Add tool)
TO DO T H IS P RESS

Import a personalization (when in personalization mode) I

Export a personalization (when in personalization mode) X

Clear this page's personalizations (when in personalization Ctrl+C


mode)

Move focus between the personalization toolbar and the page T


(when in personalization mode)

Exit personalization mode (when in personalization mode) Esc

Segmented entry shortcuts


TO DO T H IS P RESS

Open the drop-down list (when the drop-down list is closed) Alt+Down arrow

Move focus into the input field for the current segment in the Alt+Down arrow
drop-down list (when the drop-down list is already open)

Close the drop-down list Alt+Up arrow

Close/open the right portion of the drop-down list Alt+Left arrow / Alt+Right arrow

Switch between "Show valid" and "Show all" modes Alt+W

Select the value from drop-down list and move to the next Enter
segment

Move to the next/previous control on the page (when focus is Tab / Shift+Tab
in input control)

Move to the next/previous input field in the flyout (when Tab / Shift+Tab
focus is in the drop-down list)

Move up/down a row in the lookup Up arrow / Down arrow

Move up/down a page in the lookup Page up / Page down

Move to the top/bottom of the lookup Home / End

Additional resources
Keyboard shortcuts for missing account analysis
Change the banner or logo
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following procedure lists the steps that system administrators can use to update the banner or logo image that
is displayed for a legal entity. The demo data company used to create this procedure is USMF.
1. Go to Navigation pane > Modules > Organization administration > Organizations > Legal
entities .
2. In the list on the left, select the legal entity for which you want to update the banner or logo. If it is already
selected, go to the next step.
3. Expand Dashboard image tab.
4. Select Change .
The ideal resolution for a banner image is 1920 x 281 pixels. The ideal width for a logo image is 350 pixels.
5. Select Save .
6. Go to Navigation pane > Modules > Common > Common > Default dashboard . You should see the
new banner or logo image on the dashboard.
You may need to change your company, using the company picker, to the one you uploaded the banner for.
Navigation search
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to use the search functionality to navigate to pages.
The application includes a number of areas and pages to help you perform various tasks. To quickly find the pages
that you need to complete your tasks, use the navigation search feature.
To use this feature, click the Search icon to display the Search box. You can then type one or more words in the
box. The system instantly searches for relevant pages in the application that match the words that you entered. For
example, you could type "vendor invoice" as the input, and then the system displays results that match that input.

NOTE
The Search box helps you find and navigate to pages. It will not help you find specific data or actions.

Quickly navigate to a particular page


The navigation search feature also serves as a great way for you to quickly navigate to a particular page. For
example, if you are an accounts payable clerk who frequently uses the Payment journal page, you could enter
"payment journal" in the Search box. Because the input is an exact match for the page title, the page is listed at the
top of the search results, and you can quickly navigate to it.
The search results list displays the page title as well as the navigation path. This shows the location of the page in
the application. It also helps you differentiate between two or more similar pages in the results.
When you search for a page, your input is matched against the page title, as well as its navigation path. For
example, if you enter "receivable" in the Search box, you will see results for the pages available to you in the
Accounts receivable area – even though the page titles do not include the word "receivable."

Quickly navigate to a page based on the technical form name


The navigation search functionality also includes a much-requested feature for power users: the ability to quickly
navigate to a page based on the technical form name. Many users are so familiar with the system that they know
the exact form names they work with. If you are one of these users, you can enter form: followed by the name of
the form you are looking for. For example, if you enter form: vendinvoice , the search results will show all pages
where the form name starts with vendinvoice .

Administration and security


From an administration and security perspective, the navigation search functionality only surfaces two types of
results:
Pages that are enabled in the current configuration (via configuration keys).
Pages that the user has access to based on the user's role.
The list of search results is limited to 10 items. If you do not find what you're looking for in the results, you should
try refining or updating the input.

Development
From a development perspective, the navigation search functionality is easy to leverage because there is virtually
no delay between the deployment of menu items and their ability to show up in search results. As long as the
menu items are linked to from either the navigation pane or the dashboard, they will automatically become
searchable.
Personalize the user experience
4/14/2020 • 22 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how you can personalize the app.


There are three basic classes of personalizations.
Personalizations that are made on a setup page. Examples include the color theme and time zone.
Personalizations that are related to page usage. These personalizations are known as implicit personalizations.
For example, the system keeps track of the width of grid columns if you adjust them, and the expanded or
collapsed state of FastTabs.
Personalizations that a user makes to the appearance of a page by changing the way that an element appears
or acts on that page, often through an interactive personalization mode. These personalizations are known as
explicit personalizations. For example, the user might add, hide, or rearrange elements on the page.
Every personalization that a user makes is for that user only, regardless of type of personalization or the company
that the user is currently interacting with. The changes that one user makes to a page don't affect other users in the
system.

System-wide options for the current user


The User options page contains several system-wide settings for the current user. To open the User options
page, select the Settings button (the gear symbol) on the navigation bar, and then select User options . The User
options page has four tabs that contain various user settings:
Visual – Select a color theme and the default size of elements on pages.
Preferences – Select default values that are used every time that you open the system. These values include
the company, the initial page, and the default view/edit mode. (The view/edit mode determines whether a page
is locked for viewing or opened for editing every time that you open it.) This tab also includes options for the
language, the time zone, and date, time, and number formats. Finally, this tab includes several miscellaneous
preferences that vary from release to release.
Account – Adjust your user name and other account-related options.
Workflow – Select workflow-related options.
In addition to changing your user settings, you can also use the User options page to view and delete your usage
data and personalizations. Just select Usage data on the Action Pane.
As you use the app, many of your selections are stored to make the system easier for you to use in the future. On
the Personalization tab, you can view and manage the personal changes that you've made to pages in the
system. On this tab, you can also reset feature callouts (that is, the pop-up windows that introduce new system
features). You will then be alerted again about previously encountered features.
NOTE
If the Saved views feature is turned on, you can view and manage your personalizations by selecting Personalization on
Action Pane on the User options page.

Implicit personalizations
Implicit personalizations are personalizations that you make just by interacting with controls that store their
current visible state.
Grid column widths – You can adjust the width of a column in a grid by selecting the sizing bar to the left or
right of the column header, and then sliding it left or right until the column is the desired width. The app stores
the width that you set for a column. Then, the next time that you open the page that includes that grid, the
column will be resized to that width.
Grid column totals - (Only available with the new grid control enabled) You can decide whether or not a total
should be shown at the bottom of any numeric column in a grid as well as whether the grid footer is visible.
The app stores this data so that these preferences are remembered the next time you open the page. See the
Grid capabilities topic for more information.
FastTabs – Some pages have expandable sections that are known as FastTabs. The app stores information
about the FastTabs that you've expanded and collapsed. Then, the next time that you open the page, the same
FastTabs will be either expanded or collapsed, based on your last interaction with the page. In some cases, you
can help improve system performance by collapsing a FastTab, because the app doesn't have to retrieve the
information for FastTabs until they are expanded. As is explained later this topic, you can also change the order
of the FastTabs on a page.
Fact Boxes – Some pages have a Related information pane that shows read-only information that is related
to the current subject of the page. Each section in the Related information pane is known as a Fact Box. You
can expand or collapse the Related information pane, and you can also expand or collapse individual Fact
Boxes. The app stores these preferences. Then, the next time that you open the page, the Related information
pane and the individual Fact Boxes will be either expanded or collapsed, based on your last interaction with the
page. In some cases, you can help improve system performance by collapsing a FactBox, because the app
doesn't have to retrieve the information for FactBoxes until they are expanded.
Action Panes – An Action Pane appears near the top of most pages. The Action Pane contains buttons for
many of the actions that you can perform on the current page. These buttons are often organized on tabs. You
can "pin" the whole Action Pane open, or you can have it collapsed by default. Then, the next time that you open
the page, the Action Pane will be either open or collapsed, based on your last interaction with the page. If you
pinned the Action Pane open, the last tab that you used will be shown.
QuickFilters – A QuickFilter appears above many grids. The QuickFilter lets you filter the grid, based on a
column that you select. The app stores the column that you filtered on. Then, the next time that you open the
page that includes that grid, the grid will be filtered on the same column. However, you can then select a
different column to filter the grid on.
Column header filters – When you filter a grid by using the column header filters, you can change the filter
operator as you require to find the data that you want. For example, you can change the operator from begins
with to is exactly . Every time that you use a column header filter and change the filter operator, the app stores
the change. Then, the next time that you filter on that column, the filter operator will be restored.
Navigation pane – You can open the navigation pane by selecting the Expand the navigation pane button
in the upper left of any page. (This button is sometimes referred to as the Menu button, hamburger,
hamburger menu, or hamburger button.) You can pin the navigation pane open, or you can have it collapsed by
default. After you pin the navigation pane open, the app will keep it open until you collapse it.

Explicit personalizations
Different people and companies have a different perspective on the data that is most important to them, and the
data that they don't require for the way that they run their business. You can tailor the way that your information is
ordered and interacted with. You can also specify that some information should be hidden. These capabilities are
key to a personal and productive experience, and are examples of explicit personalizations. Explicit personalizations
are personalizations that you explicitly make because you want to change the appearance or behavior of an
element or page.
Shortcut menu options
Shortcut menus provide a few ways to explicitly change a page so that it better meets your requirements or the
requirements of your company. (A shortcut menu is also known as a right-click menu or context menu.)
Some of the most typical and important changes that can be made to a page are available directly as options on a
shortcut menu. For example, starting in Platform update 17, if you want to add or hide columns in a grid, just
right-click a column header, and then select Add columns or Hide this column .
Additionally, the most basic types of explicit personalization are available by right-clicking an element and then
selecting Personalize . (Note that not all elements on your page can be personalized.) When you use this
personalization method, the element's property window appears.

You can use the property window to personalize an element in the following ways:
Change the element's label.
Hide the element so that it isn't shown on the page. The data in the field isn't deleted or modified. The
information just doesn't appear on the page any longer.
Include the information in the FastTab's summary section (if the element is on a FastTab).
Skip the field so that it never receives focus when you tab through the page.
Prevent data in the field from being edited (for any record).
Designate a field to be required for data entry. If no value has been entered in this field, it will appear with a red
border and an asterisk to indicate this state. This option is only available starting in version 10.0.11 when the
Saved views and Designate fields as required using personalization features are enabled.
The property window might include other personalization capabilities, depending on the element. For example, the
property window for a tile might let you promote that tile to a dashboard, and the property window for a
dashboard might let you create a new workspace on that dashboard.
The Personalization toolbar
If you want to make multiple changes to a page, or changes that aren't available through other mechanism (for
example, if you want to reorder elements), you can use the Personalization toolbar. To open the Personalization
toolbar, follow one of these steps:
Select Personalize this page in an element's property window.
Select Personalize this page in the Personalize group on the Options tab of any page's Action Pane.
Select the Settings button (the gear symbol) on the navigation bar, and then select Personalize .

Navigating the page


When the Personalization toolbar is open, the underlying page is read-only (in other words, you can't edit data),
but it's still interactive. Specifically, you can expand or collapse the Related information pane, switch tabs, and
expand or collapse sections, just as you usually perform those actions on the page. To apply a personalization to a
collapsible section or tab (for example, to hide a FastTab), you just have to select the button that appears next to
that section or tab when it gains keyboard focus or when you hover over it.
Personalization tools
The following tools are available on the Personalization toolbar:
Use the Select tool to select and change the properties of an element. To use this tool, select the Select button
on the toolbar, and then select the desired element. The element's property window appears, and you can
change any of the properties of that element. You can repeat the process for other elements that can be
personalized on the page. Note that some personalization properties might not be available in some scenarios.
For example, you can't lock a field that is required.
Use the Hide tool to hide an element on the page. To use this tool, select the Hide button on the toolbar, and
then select the element to hide. When you use the Hide tool, all elements that are currently hidden are made
visible but are shown in a shaded container. You can then make an element visible by selecting it. To see how
the page will look when elements are hidden, switch to another personalization tool.
Use the Add a field tool to add a field to your page. When you use this tool, you can add only fields that are
part of the page definition. For information about how to create new fields that aren't part of the current page
definition, see Create and work with custom fields. After you select the Add a field button on the toolbar, you
must first select the group or area where you want to add a field. A dialog box will show the list of fields that
are related to the selected group or area. In the dialog box, select one or more fields to add, and then select
Inser t . To remove a field that you previously added, repeat the process, but clear the selection of the field in the
dialog box.
Use the Move tool to move an element to a different location in the current group of elements. Note that you
can't move an element outside its parent group. To use this tool, select the Move button on the toolbar, and
then select the element to move. When you select an element, the app determines the locations where the
element is allowed to be moved. These locations are known as drop zones. As you drag the element around in
the current group, each drop zone is shown as a colored, bold line next to the area where the element can be
dropped.
Use the Skip tool to remove an element from the page's keyboard tab sequence. When you select the Skip
button on the toolbar, all elements that are currently skipped are shown in a shaded container. You can
interactively remove or add fields to the tab sequence.
Use the Show in header tool when you want a field to appear in the FastTab's summary section. When you
select the Show in header button on the toolbar, all fields that have been selected as summary fields are
shown in a shaded container. You can interactively add fields to the FastTab summary and remove fields from it
by selecting the fields.
Use the Require tool to designate an element as required for data entry. When you select the Require button
on the toolbar, all elements that have been personalized to be required are shown in a shaded container. You
can then make them not required again. This option is only available in a future release when the Saved views
and Designate fields as required using personalization features are enabled.
Use the Lock tool to mark an element as either editable or noneditable. When you select the Lock button on
the toolbar, all elements that are currently noneditable are shown in a shaded container. You can then make
them editable again. Note that some fields are required and can't be made noneditable. A padlock symbol
appears next to those fields.
Use the Add an app from Power Apps button to embed an app that was created by using Microsoft Power
Apps into the page. For detailed information about how to embed an app from Power Apps into a page, see
Embed apps from Power Apps. This option is only available when the Saved views feature is disabled.
Use the Add an app button to embed an app, either one created from Microsoft Power Apps or a third-party,
into the page. This option is only available when the Saved views feature is enabled.
Use the Clear tool to reset the page to its default, installed state. All personalizations on the current page will
be cleared. There is no undo action. Therefore, use this tool only if you're sure that you want to reset the page.
Use the Impor t tool to load a personalization from a file that you or someone else previously created. When
you import personalizations for a page, you can choose whether they should be added to or replace all your
existing personalizations for the page. There is no undo action. Therefore, after you import personalizations,
you must manually clear or undo any changes that you don't want.
Use the Expor t tool to save your personalizations for the page to a file. You can then share your
personalizations with other users. Those users just have to import the file that contains your personalizations
for the page.
Select the Close button to close the Personalization toolbar and return the page to its previous interactive
state.
Traditionally, when the Personalization toolbar is used, your personalizations take effect as soon as you make
them. However, if the Saved views feature is turned on, you must explicitly save personalizations to a view that you
choose.
In some cases, when you select a tool, a padlock symbol appears next to an element. This symbol indicates that
you can't modify the element properties that are related to the selected tool, because changes to those properties
will prevent the page from working correctly.
Adding a tile, list, or link to a workspace
For some pages that include lists, the Add to workspace personalization feature is available in the Personalize
group on the Options tab of the Action Pane. This feature lets you push relevant information from the current list
to a specific workspace. The information that appears in the workspace can be based on either the whole list, or a
filtered and sorted version of the list. You can also specify whether the information appears in the workspace as a
list, a summary tile that can show the number of items in the list, or a link.

NOTE
If the Saved views feature is turned on, the content that you push to a workspace is directly linked to a view. The view's
query is used to fetch data in the workspace, and the corresponding tile or link in the workspace opens the page to that
view, so that the view's query and personalizations are applied to it.
To add a list to a workspace, first sort or filter the list on the page so that it shows the information as you want
it to appear in the workspace. (If the Saved views feature is turned on, you can't continue until you save a view
that has these conditions.) Then select Add to workspace . Select a workspace, and then, in the Presentation
field, select List . After you select Configure , a dialog box appears, where you can select the columns that
should appear in the list in the workspace. You can also specify the label that is used for the list in the
workspace.
To add a tile to a workspace, first filter the list on the page so that it shows the data that should be summarized,
or that you want quick access to. (If the Saved views feature is turned on, you can't continue until you save a
view that has these conditions.) Then select Add to workspace . Select a workspace, and then, in the
Presentation field, select Tile . After you select Configure , a dialog box appears, where you can specify the
label that should be used for the tile in the workspace. You can also specify whether the tile should show a
count. After the tile is added to the workspace, you can select it to open the current page from the workspace.
You can then view the filtered list that is associated with the tile.
To add a link to a workspace, first filter the list on the page so that it shows the data that you're interested in. (If
the Saved views feature is turned on, you can't continue until you save a view that has these conditions.) Then
select Add to workspace . Select a workspace, and then, in the Presentation field, select Link . After you select
Configure , a dialog box appears, where you can specify the label that should be used for the link. You can also
optionally specify a label for a new section that contains this link.
After you've added a list, tile, or link to a workspace, you can open that workspace and rearrange the elements in it
as you want.
Adding a summary from a workspace to a dashboard
Some workspaces contain count tiles (that is, tiles that have numbers on them), and you might want those tiles to
appear on your dashboard too. In a workspace, right-click a count tile, select Personalize , and then, in the tile's
property window, select Pin to dashboard . Then, the next time that you open and refresh the selected dashboard,
the count will appear below the navigation tile for that workspace. You can select that count to go directly to the
data that it represents.
Personalizing your dashboard
The dashboard is often the first page that you see when you open the app. You can personalize the dashboard so
that it shows only the workspace tiles that you want to see. You can also rearrange the tiles so that they appear in
the order that you prefer to see them in, rename your workspace navigation tiles, or add a new workspace tile.
To personalize the dashboard, right-click any tile, and then select Personalize to open the tile's property window.
If you want to hide or rename the selected tile, you can make that change directly in the property window.
To reorder the workspace tiles, in property window, select Personalize this page to open the
Personalization toolbar. You can then use the Move tool to rearrange the tiles as you want.
To add a new workspace tile, in the property window, select Add a workspace . A new workspace tile is created
at the bottom of the dashboard. You can rename this new workspace tile as you want. You can also add lists,
tiles, and links to the workspace as described in the Adding lists, tiles, or links to workspaces section of this
topic.

Administration of personalizations
After you personalize a page, you can share your personalizations with other users by exporting the personalized
page. You can then ask other users to open the personalized page and import the personalization file that you
created. Alternatively, you can give your personalizations to a user who has admin privileges. That user can then
apply your personalization file to many users at the same time.
Users who have admin privileges can also manage personalizations for other users on the Personalization page.
For customers who haven't turned on the Saved views feature, this page has four tabs:
Apply – You can import or select a personalization for one or more users. To apply a personalization to one or
more users, first select a role and users who have that role. Then either select an existing personalization to
apply to the selected users, or import a personalization file. The personalization is validated and will be applied
to all the selected users the next time that they open the selected page.
Clear – You can clear all personalizations for a page or workspace for one or more users. First select a page or
workspace to see a list of the users who have personalized it. Then select the users who should have
personalizations for that page or workspace cleared, and select Clear . All personalizations that the selected
users have applied to the selected page or workspace are deleted. This action can't be undone. However, if a
personalization was saved for the page or workspace, that personalization can be reimported.
Users – Select a user to see a list of the pages that the user has personalized. You can then turn that user's
ability to use personalizations for specific pages, or for the whole system, on or off. You can also import, export,
or clear a personalization for the user. In addition, you can reset feature callouts for the user. In this case, if the
user previously dismissed any pop-up windows that introduce new features, they will appear again the next
time that the user encounters those features.
System – You can temporarily turn off personalization for all users in the system. In this case, all
personalizations are deleted for all users, and all pages are reset to their default state. If you turn
personalization back on later, all personalizations are reapplied. You can also permanently delete all
personalizations for all users in the system. Personalizations that have been deleted can't be recovered.
Therefore, before you perform this task, be sure to export any personalizations that you might want later.
For customers who have turned on the Saved views feature, the Personalization page has five tabs:
Published views – These views have been published to your organization. To change the users who are
targeted by these views, you can change the security roles or legal entities that are associated with each view.
You can also export or delete one or more published views.
Unpublished views – These views are template views that have been imported into your system but haven't
yet been published. You can publish, export, or delete these views.
Personal views – These views have been created by users in the system. You can publish a personal view to
the organization, or copy one or more of these views to other users. You can also export or delete these views
as required.
Users – Select a user to see a list of the pages that the user has personalized. You can then turn that user's
ability to use personalizations for specific pages, or for the whole system, on or off. You can also import, export,
or clear a personalization for the user. In addition, you can reset feature callouts for the user. In this case, if the
user previously dismissed any pop-up windows that introduce new features, they will appear again the next
time that the user encounters those features.
System – You can temporarily turn off personalization for all users in the system. In this case, all
personalizations are deleted for all users, and all pages are reset to their default state. If you turn
personalization back on later, all personalizations are reapplied. You can also permanently delete all
personalizations for all users in the system. Personalizations that have been deleted can't be recovered.
Therefore, before you perform this task, be sure to export any personalizations that you might want later.
Users who have access to the Personalization page can also import personal or template views by using the
Impor t views button on the Action Pane.

Personalizing inventory dimensions


When you personalize the setup of inventory dimensions on a page, consider the settings that have been created
by using the Display dimension option. For example, you use personalization to hide a column for the Batch
number inventory dimension, but the column appears the next time that the page is opened. This behavior occurs
because the Dimension display settings control the inventory dimension columns that are shown. The
Dimension display settings apply across all pages and override any personalized setup of inventory dimension
fields on individual pages.
Therefore, in the preceding example, if you don't want the column for the Batch number inventory dimension to
appear on a page, you must clear that dimension as part of the Display dimensions option for that page.
Saved views
4/14/2020 • 16 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific
business functions. For more information about these changes, see Dynamics 365 Licensing Guide.

IMPORTANT
Functionality noted in this topic is available as part of a preview release. The content and the functionality are subject to
change. For more information about preview releases, see Service update availability.

Introduction
Personalization plays an important role in allowing users and organizations to optimize the user experience to
meet their needs. For more details on personalization, see Personalize the user experience.
With traditional personalization, users could only have a single set of personalizations per form. Saved views
expands on personalization in several important ways:
Views permit users to have multiple named sets of personalizations per form, which they can quickly
switch between as needed. This allows a user to create multiple optimized views of a page, where each
view has been tailored to fit the needs of performing a particular business task.
Views created for particular page types can also include user-added filters or sorts, which allows users to
quickly return to commonly filtered datasets. See the What pages support views section for more details.
Views can be published to users in specific security roles and specific legal entities. Therefore, any user
who has a specified role and access to a specified legal entity can access and use that view, even though
that user might not be able to personalize it. This publish capability lets organizations define corporate,
standard views that are optimized for their business. For more information, see the Managing
personalizations at an organizational level with views section.
Unlike traditional personalization, views are not automatically saved when a user performs explicit
personalizations or filters a list. Explicit saves are required to provide flexibility in creating a view before
or after the changes associated with that view have been made and to ensure that view definitions are not
unintentionally altered by filters or personalizations that are not intended for long-term use.
Views can be added to workspaces as tiles, lists, or links. Therefore, a filtered data set can be surfaced in a
workspace, and users can associate a set of personalizations that are relevant to that data set with the tile
or link.

Switching between views


After views have been enabled for an environment, any page that supports views will include a collapsed view
selector control at the top of the form that shows the name of the current view.
There are two size variations to the view selector:
Large view selectors : Pages that prominently feature a list will have a larger view selector for a few
reasons. Most importantly, the larger view selector indicates the pages where the view can include user-
defined filters. Because filters are included in the views, the larger selector size is also warranted as the
view names will often be the best description of the data shown on the screen and the expectation is that
users will switch between views more often on these page types.
Small view selectors : All other full-page forms (with the exception of workspaces and the dashboard)
have a smaller view selector that appears next to the page caption. Views on these pages only include
personalizations (and not user-defined filters). On these pages, the form caption or record title is often the
most important information at the top of the form. The smaller size also reflects a lower expected
frequency of view switching on these pages.
If you click on the view name, the view selector opens and shows the list of available views for this page
Standard view : The Standard view (previously known as the Classic view) is the out-of-box view of the
page, where no explicit personalizations are applied.
Personal views : The views without padlocks represent your personal views. These are views that either you
have created or that an administrator has given to you.
Locked views : Some views (such as the Standard view and any views that are published to your role) have
a padlock symbol next to them in the view selector. This symbol indicates that you can't edit those views.
However, implicit personalizations that reflect page usage are automatically saved. These implicit
personalizations include a change to the width of a grid column, or expansion or collapse of a FastTab.
Nevertheless, if you have personalization privileges, you can use the Save as action to make a personal view
that is based on a locked view.
New views : Published views that have not yet been opened are delineated with a spark to the left of the
view name.
To switch to a different view, first open the view selector and then select the view that you want to load.

Creating and modifying views


Unlike traditional personalization, views are not automatically saved when a user performs explicit
personalizations (or filters a list). An explicit action is required to save these changes to a view. This provides user
flexibility in creating a view before or after the changes associated with that view have been made and also
ensures that view definitions are not unintentionally altered by one-time filters or personalizations. Note that
implicit personalizations (such as expanding or collapsing a FastTab or changing the width of a grid column) are
automatically saved to the current view, even for locked views.
To ensure that the current state of the view is known, when you start making changes to a view by performing
an explicit personalization or filtering, an asterisk will appear next to the current view name indicating that you
are looking at an unsaved, modified version of that view.
If you want to save those changes, follow these steps.
1. Select the view name to open the view selector.
2. To modify the existing view:
a. Select Save . Note that this action will not be enabled for locked views.
3. To create a new view:
a. Select Save as .
b. Enter a view name and (optionally) a description.
c. Select Save .

Changing the default view


The default view is the view that the system will try to open when you first navigate to the page. You should set
this to the view that you expect to use most often.
To change the default view for a page, follow these steps:
1. Switch to the view that you use as the default.
2. Select the view name to open the view selector.
3. Select More and then Pin as default .
Alternatively, when you create a new view (by using the Save as action), you can make that new view the default
view by setting the Pin as default option before you save the view.
Note that in some cases, the query associated with the default view does not execute when you first navigate to
a page. For example, if you navigate through a tile to a page, the tile's query will be executed regardless of the
query associated with the default view. Also, if you navigate to a page with a Standard view that already has a
defined query, the original query will execute in place of the default view's query. When this happens, you will be
alerted by an informational message when the view is loading. Switching views after the page has loaded should
allow the view query to execute as expected. Starting in version 10.0.10 Platform update 34, the informational
message will have an embedded action allowing you to load the default view's query directly.

Managing personal views


The Manage my views dialog box gives you basic maintenance capabilities over your personal views and the
order of views in the view selector. To open this page, click the view name to open the view selector drop-down
menu, select More , and then select Manage my views .
For a list of available views for that page, the following set of actions are available.
Change the default view : Use the Pin as default action to make the currently highlighted view the default
view for this page.
Reorder your views : Use the Move up and Move down actions to rearrange your views in a specific
order.
Rename a view : Use the Rename action to change the name of the currently highlighted personal view.
This action is turned off for locked views.
Delete a view : Use the Remove action to permanently delete the currently highlighted view from the page.
There is no way to recover a view after you remove it.
Any changes made in this dialog box will take effect after you select the Save button.

Managing personalizations at an organizational level with views


To help you understand how saved views help improve management of personalizations at an organizational
level, this section describes some differences in personalization management with and without the saved views
feature.
Without views, administrators would apply a set of personalizations for a page to a user or a group of users via
the Personalization page. If those users had personalization rights, the personalizations would be applied to that
page. However, there was no ability to prevent users from further personalizing the page, which meant the
organization could not ensure that its users had a consistent user interface. If any of those users didn't have
personalization rights, the personalizations given to them by an administrator were not loaded. Further, if new
users were hired into an organization, administrators needed to manually load a set of personalizations for the
user. There was no automatic mechanism for specifying that a certain set of personalizations should be available
for users in that role.
The saved views feature makes organizational management of personalizations significantly easier, primarily
because views can be published to groups of users. After a view has been published, any user who has one of
the defined security roles and has access to one the specified legal entities will be able to see and use the view,
even though that user might not be able to personalize it. Although each user has a copy of the published view
where page usage (implicit personalizations) are automatically applied, no user can save explicit personalizations
or query updates to a published view. In other words, published views are locked. Additionally, if new users are
given roles in legal entities that views were published to, they will automatically see the views that are associated
with their roles and legal entities. No additional action is required by the administrator. Likewise, if users change
roles in an organization or are given access to different legal entities, they may no longer be able to access the
views that were previously published to them. Again, no additional action is required by the admin.
Updates to a published view can easily be distributed to users by republishing the view to the appropriate
security roles and legal entities.
The publish capability allows organizations to define corporate standard views that are optimized for their
business, targeted at users in specific security roles.

Publishing views
During the publish process, views can be assigned to one or more security roles for one or more legal entities.
Therefore, any user who has access to a legal entity and who is assigned to one of those roles can access and use
the views, although they can't edit them. System admins have access to the Publish action in the view selector
drop-down menu. However, other trusted users in your organization can also be given access to view publishing
via the new Saved views administrator role.
To publish a view, follow these steps:
1. Create and save a personal copy of the view that you want to publish.
2. With that view currently loaded, select the view name to open the view selector drop-down menu.
3. Select the More button and then select Publish . The Publish dialog box will open.
4. Enter a name and (optionally) a description for the view. The name that you enter is the name that users who
receive this view will see in their view selectors. The names of published views for a page must be unique. No
duplicate names are allowed, even if the list of roles or legal entities that the views are applied to differ.
5. Add the security roles that correspond to the users who are being targeted by this view.
6. Add the legal entities that this view should be available for.
7. [10.0.9/Platform update 33 or later] Determine if the view should be published as the default view for the
selected users. Making a view the default means that this is the view users will see the next time they open
the target page. This will modify the default view for these users; however, users can still change their default
view after the publish has occurred.
8. Select Publish .
Note that in some environments, it may take some time (up to an hour) before users see the published view.

Modifying a published view


After publishing a view, you may discover that you want to make changes to a published view. While you cannot
make live changes to a published view, because these views are locked for editing for all users (including
publishers), you can re-publish a view to make updates.
If the changes that you want to make to a published view only involve the publish parameters (the name and
description of the view, or the security roles the view is published to), do the following:
1. Switch to the published view for the parameters that you want to update.
2. Select Publish from the view selector drop-down menu.
3. Select Yes if you want to update the existing view (or No if you want to publish this under a different name).
4. Update the name, description, and/or security roles for the view.
5. Select Publish .
6. [10.0.8/Platform update 32 or prior] If you updated the name of the published view, you'll also need to delete
the published view with the old name (see the Managing published views section for more details).
7. [10.0.9/Platform update 33 or later] If you had originally chosen this published view to be the default view, it
will be the default view for these users again after the re-publish.
If the changes to the published view involve modifying the personalizations or filters associated with the view,
follow these steps:
1. Switch to the published view that you want to modify.
2. Save a copy of the published view to create a local draft of the published view.
3. Modify the local draft with the needed changes.
4. Publish the view with the original name.

Managing published views


Like managing personal views, the Manage my views dialog box gives users with publish privileges basic
maintenance capabilities over that page's published views (in addition to their own personal views). To open this
page, select the view name to open the view selector drop-down menu, select More , and then select Manage
my views .
While all users see a My views tab showing their personal views, users with publish privileges also see a
Published tab that shows all the published views for that page. Because there may be several users publishing
views, it is important to be able to manage the full list of published views, regardless of whether you were the
user who actually published the view.
For the list of all published views for the page, the following set of actions are available.
Publish : Use the Publish action to republish a view after publish parameters (name, description, security
roles, or legal entities) are changed.
Remove : Use the Remove action to permanently delete a published view. This action removes the view for
all users in the system. Removing published views will take effect after the Save button is selected.

Frequently asked questions


How do I enable saved views in my environment?
Note: The Saved views feature requires the Personalization system in Finance and Operations to be enabled. If
personalization is turned off for the entire environment, views will be disabled even if you follow steps below.
10.0.9 / Platform update 33 and later The Saved views feature is available directly in Feature
management in any environment. Like other public preview features, enabling this feature in production is
subject to the Supplemental Terms of Use Agreement.
10.0.8 / Platform update 32 and prior The Saved views feature can be enabled in Tier 1 (Dev/Test) and
Tier 2 (Sandbox) environments in order to provide additional testing and design changes by following the steps
below.
1. Enable the flight : Execute the following SQL statement:
INSERT INTO SYSFLIGHTING (FLIGHTNAME, enabled, FLIGHTSERVICEID, PARTITION)
VALUES('CLISavedViewsEnableFeature', 1, 0, 5637144576);

2. Reset IIS to flush the static flighting cache.


3. Find the feature : Go to the Feature management workspace. If Saved views does not appear in the
list, select Check for updates .
4. Enable the feature : Find the Saved views feature in the list of features, and select Enable now on the
details pane.
All subsequent user sessions will start with saved views enabled.
What happens to existing personalizations when views are enabled?
When views are enabled, any existing personalizations for a user and form are saved into a new view called My
view that is automatically set as the default view. This is meant to ensure that there is a consistent user
experience before and after views are enabled, except for the view selector control appearing on forms.
What pages support views?
Views are available on most, but not all pages. Specifically, views are currently available on all full-screen pages
except for dashboards and workspaces. Non-full-screen pages, which include dialog boxes, drop-down dialogs,
lookups, enhanced previews, currently do not support views. View support for additional page types, such as
workspaces and dialog boxes, may be considered for a future update.
Who is allowed to publish views?
Only system admins and users who have been assigned to the Saved views administrator role have the
rights to publish views.
Why am I not able to save filters with this view?
There are a few reasons why a filter may not appear to save with a view:
The page may not support saving filters as part of the view definition. Note that only pages with large
view selectors allow personalizations and query modifications to be saved as a view. See the Switching
views section for more information.
The page in question may not properly support views, as it may ignore the view query completely or may
operate on a temporary table whose data is not persistent.
What data will I see when I visit a page?
For pages with small view selectors (only personalizations can be saved to the view), you will see the same data
as you always have when you visit the page.
For pages with large view selectors (personalizations and queries can be saved to the view), you will primarily
see the data linked to the query associated with your default view. There are two main exceptions to this: - If you
navigate to a page from a tile, the tile query will execute regardless of the query associated with the default view.
If you created that tile after views have been enabled, selecting a tile will open the page with the view associated
with that tile.
- If you navigate to a page and that entry point includes a query, the original query will execute originally in
place of the default view's query. You should be alerted when this occurs via an informational message when the
view is loading. You can also confirm by switching to this view after the page loads, as that should allow the view
query to execute regardless.
Grid capabilities
4/14/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

IMPORTANT
Functionality noted in this topic is available as part of a preview release. The content and the functionality are subject to
change. For more information about preview releases, see Service update availability.

The new grid control provides a number of useful and powerful capabilities that can be used to enhance user
productivity, construct more interesting views of your data, and get meaningful insights into your data. This article
will cover the following capabilities:
Calculating totals
Grouping data
Typing ahead of the system
Evaluating math expressions

Calculating totals
In Finance and Operations apps, users have the ability to see totals at the bottom of numeric columns in grids.
These totals are shown in a footer section at the bottom of the grid.
Showing the grid footer
There is a footer area at the bottom of every tabular grid in Finance and Operations apps. The footer can show
valuable information that is related to the data that appears in the grid. Here are some examples of this
information:
The number of selected rows in the table (when more than one record is selected)
Grand totals at the bottom of configured, numeric columns
The number of rows in the dataset
This footer is hidden by default, but can be easily turned on. To show the footer for a grid, right-click on a column
header in the grid and select the Show footer option. Once the footer has been turned on for a particular grid, that
setting will be remembered until the user opts to hide the footer, which can be done by right-clicking on a column
header and selecting Hide footer . Note the placement of the Show footer/Hide footer action is expected to be
re-located in a future update.
Specifying columns with totals
Currently, no columns will be configured to show totals by default. Instead, this is considered a one-time setup
activity, similar to adjusting the widths of columns in grids. Once you specify that you want to see totals for a
column, that setting will be remembered the next time you visit the page.
There are two ways to configure a column to show a total:
Right-click in the column that you want to see a total for, and then select Total this column . This action
causes three events to occur:
1. The footer becomes visible.
2. Your preference for seeing a total for this column is saved.
3. A calculation of totals is initiated for this column and any other columns that you previously configured
to see totals for. The time that is required to show a total depends on the size of the dataset that you're
totaling.
After the footer is visible, select Show total in the footer area at the bottom of the column that you want to
see a total for. If there are no configured columns, the Show total button will be available for all numeric
columns.
After at least one column is configured for totals, the Show total buttons will be available only on hover or
focus. The action of selecting Show total just saves your preference for seeing a total in this column, so that
the preference is applied during future visits to the page. In the footer, this state is indicated by a dash that
appears in the column. (Alternatively, if the dataset is small enough, a total is immediately shown.)
If you make a mistake and no longer want to see a total in a particular column, right-click on the column and select
Hide total or select the Hide total button in the footer in that column. This preference will also be saved for future
visits to the page.
Calculating totals
When you come to a page with the footer visible and columns already configured for totals, totals may or may not
be shown in the footer. The behavior is dependent on the size of the dataset on the page. If the dataset is sufficiently
small, totals will be shown automatically, along with the number of rows in the dataset. If there are dashes in the
footer under the columns you configured for totals, then the dataset is too large for the system to show totals
immediately, and an explicit action is needed to calculate the totals. To do this, click the Calculate button in the
footer, or right-click on a column you want a total for and select Total this column .
If the calculation is taking too long, you can cancel the operation by selecting the Cancel button. Sometimes,
however, the dataset will be too large to calculate totals (a limit imposed by your organization), and you will instead
be notified to filter your data more.
Totals will update automatically as you update, delete, or create rows in the dataset.

Grouping data
Business users often need to perform ad-hoc analysis of data. While this can be done by exporting data to
Microsoft Excel and using pivot tables, the Grouping capability in tabular grids allows users to organize their data
in interesting ways within Finance and Operations apps. As this feature extends the Totals feature, Grouping also
allows you to get meaningful insights into the data by providing subtotals at the group level.
To use this feature, right-click on the column you wish to group by, and select Group by this column . This action
will sort the data by the selected column, add a new Group by column to the beginning to the grid, and insert
"header rows" at the beginning of each group. These header rows provide the following information about each
group:
Data value for the group
Column label (This information will be especially useful after multiple levels of grouping are supported.)
Number of data rows in this group
Subtotals for any column configured to show totals
With Saved views enabled, this grouping can be saved by personalization as part of a view for quick access the next
time you visit the page.
If you select Group by this column for a different column, the original grouping is replaced, because only one
level of grouping is supported in version 10.0.9 with Platform update 33.
To undo grouping in a grid, right-click on the grouping column and select Ungroup .

Evaluating math expressions


As a productivity booster, users can enter mathematical formulas in numeric cells in a grid. They don't have to do
the calculation in an app outside the system. For example, if you enter =15*4 and then press the Tab key to move
out of the field, the system will evaluate the expression and save a value of 60 for the field.
To make the system recognize a value as an expression, start the value with an equal sign (= ). For more information
about the supported operators and syntax, see Supported math symbols.

Frequently asked questions


How do I enable the new grid control in my environment?
10.0.9 / Platform update 33 and later The New grid control feature is available directly in Feature
management in any environment. Like other public preview features, enabling this feature in production is subject
to the Supplemental Terms of Use Agreement.
10.0.8 / Platform update 32 and 10.0.7 / Platform update 31 The New grid control feature can be
enabled in Tier 1 (Dev/Test) and Tier 2 (Sandbox) environments in order to provide additional testing and design
changes by following the steps below.
1. Enable the flight : Execute the following SQL statement:
INSERT INTO SYSFLIGHTING (FLIGHTNAME, enabled, FLIGHTSERVICEID, PARTITION)
VALUES('CLIReactGridEnableFeature', 1, 0, 5637144576);

2. Reset IIS to flush the static flighting cache.


3. Find the feature : Go to the Feature management workspace. If New grid control does not appear in
the list of all features, select Check for updates .
4. Enable the feature : Find the New grid control feature in the list of features, and select Enable now on
the details pane. Note that a browser refresh is required.
All subsequent user sessions will start with the new grid control enabled.
Create and work with custom fields
3/9/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

While there is an extensive set of fields out-of-the-box for managing a broad range of business processes,
sometimes there is a need for a company to track additional information in the system. While programmers can be
used to add those fields as extensions in the developer tools, the custom fields feature allows fields to be added
directly from the user interface, thereby allowing you to tailor the application to fit your business using your web
browser.
The ability to add custom fields is available in platform update 13 and later. Only users with special permissions
have access to this feature.
This video shows how easy it is to add a custom field to a page: Adding custom fields.

Creating custom fields


After you've identified additional information that you would like to track in the application, you can create the
custom field on the appropriate table and expose that new field on a page.
The following steps describe the process for creating a custom field and placing that field on a form.
1. Navigate to the form where the new field is needed.
2. Because the end goal is to expose the custom field on a form, the entry point for creating custom fields
exists inside the personalization experience. Open the personalization toolbar by selecting Options , and
then Personalize this form .
3. Click Inser t and then Field .
4. Select the region of the form where you want to expose the new field. After selection, the Inser t fields
dialog box will display a list of existing fields that can be inserted into the selected region of the form.
5. Ensure that the field you are interested in does not already exist in the list. If it does, you can simply select
that field in the list and click Inser t .
6. Click the Create new field button above the list to initiate the process of creating a custom field. This will
open the Create new field dialog box.
If you do not see the Create new field button, you do not have the necessary permissions to use this
feature.
7. In the Create new field dialog box, enter the following information.
a. Select the database table where this field should be added. Note that only tables that support custom
fields will appear in the drop-down list. See the section below for technical details on supported
tables.
b. Select the data type for the new field. The available data types are checkbox, date, date time, decimal,
number, picklist, and text.
If you choose the text data type, you can also specify the maximum length of the text that can be
entered in this field.
If you choose the picklist data type, you can also select the set of valid values for the field.
c. Provide a name, label, and help text for the field. The name corresponds to the physical field name in
the database, whereas the label and help text are the text used to represent this field in the user
interface.
8. If this is the only field that you need to create for this form, click Save . If you need to create additional fields,
click Save and new and go back to step 7. Note that there is currently a limit of 20 custom fields per
table .
9. Leaving the Create new field dialog box will return you to the Inser t fields dialog box. Any custom fields
that were just added will be automatically marked in the field list to be inserted into the form.
10. Click Inser t to insert the marked fields into the selected region of the form.
11. Optional: Enable Move mode from the personalization toolbar to move the new fields to their desired
location in the selected region. See Personalize the user experience for more information about how to use
the various personalization capabilities to optimize a form for your personal usage.

Sharing custom fields with other users


After you have created a custom field and exposed it on a form, you might want to provide this updated page view
that includes the new field to other users in the system. This can be accomplished in two different ways using the
personalization capabilities of the product:
The recommended route is through the system administrator, who can push a personalization to all users or a
subset of users. See Personalize the user experience for more details.
Alternatively, you can export your changes (called personalizations), send them to one or more users, and have
each of those users import your changes. The Manage option on the personalization toolbar enables you to
export and import personalizations.

Managing custom fields


Management of all the custom fields in the system can be accomplished through the Custom fields page in the
System administration module. This page allows users access to many capabilities, including:
Viewing a list of all custom fields in the system.
Limited editing of existing custom fields.
Deleting custom fields.
Exposing custom fields on data entities.
Providing translations of custom field labels and help text.
Viewing all custom fields
The Custom fields page provides visibility to all the custom fields that have been defined in the system. Simply
select the table that you are interested in, and the page will update to show a list of the custom fields associated
with that table. Choosing a custom field from the list will allow you to view all the details about the field.
Editing custom fields
After a custom field has been created, only certain pieces of information about the custom field can be modified on
the Custom fields page.
You can modify these attributes:
Label
Help text
Length, for Text fields
You cannot edit the following attributes:
Field name
Data type
Additionally, for picklist fields, the set of valid values for the custom field can be reordered, and new values can be
added; however, existing values for the picklist field cannot be removed. Remember to click Apply changes when
you are done editing fields for a particular table so the changes are saved.
Exposing custom fields on data entities
It may also be important to allow custom fields to be visible on data entities. Data entities are utilized in the Office
integration overview feature, as well as for data import/export scenarios.
Follow these steps to expose a custom field on a data entity:
1. Select the custom field on the Custom fields form.
2. Expand the Entities section to view the set of relevant entities.
3. Click the Edit button.
4. Modify the Enabled field to be selected for each entity that should expose this field.
5. Click Apply changes to save your selections.
Allowing custom fields to be displayed in other languages
Because custom fields may need to be accessed by users in a variety of languages, the Custom fields page
provides a mechanism to allow the label and help text for a custom field to be translated into other languages.
The following steps describe the process for translating custom fields in other languages:
1. Select the custom field on the Custom fields page.
2. Select the Translations button in the Action Pane. This will open a drop-down menu with existing
translations for this field.
3. The Language drop-down menu shows the set of languages for which translations have already been
provided.
If you want to edit an existing translation, select the desired language from the menu and modify the values
for the label and help text.
Otherwise, click the Add language button, select the desired language from the menu, and then provide
translated values for the label and help text.
4. Click OK when you are finished.
Deleting custom fields
In some rare cases, you may decide that a custom field is no longer needed. When this occurs, a system
administrator can choose to delete the field from the Custom fields page. To do this, ensure the correct field is
selected, click Delete , click Yes to confirm the deletion, and finally click Apply changes .

NOTE
This action cannot be undone, and will result in the data associated with the field being permanently deleted from the
database.
Appendix
Who can create custom fields?
As a safeguard to the system, only system administrators are able to create custom fields by default. However,
those power users whom the organization deems necessary can be given rights to create custom fields by a
system administrator using the Runtime customization power user security role. Users without this security
role will not be able to create custom fields, but will still be able to see and interact with custom fields added by
other users in the system.
What tables support custom fields?
For performance and technical reasons, only tables that meet the following conditions currently allow custom fields
to be added.
The table must be tagged as one of these groups:
Group
WorksheetHeader
Main
Miscellaneous
Parameter
Reference
TransactionHeader
The table cannot extend another table.
The table cannot be marked as a system table.
The table cannot be a temporary table.
Can I reference custom fields from the developer tools?
Custom fields can only be managed through the user interface and cannot be referenced by code.
Embed Microsoft Power Apps
2/12/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Finance and Operations supports integration with Microsoft Power Apps, a service for developers and non-
technical users to build custom business apps for mobile devices, tablets, and the web without writing code. Power
Apps developed by you, your organization, or the broader ecosystem can then be embedded in Finance and
Operations apps to augment the product's functionality. For example, you might build an app from Power Apps to
supplement a Finance and Operations app with information retrieved from another system.
To learn more about embedding Power Apps, watch the short How to embed Power Apps video.

Adding an embedded app from Power Apps to a page


Overview
Before embedding an app fro Power Apps into the client, you first need to find or build an app with the desired
visuals and/or functionality. We will not describe the detailed process for building apps here. The Introduction to
Power Apps topic is a good starting point if you are new to Power Apps.
When you are ready to embed a specific app, you can choose between one of two ways of accessing the app on a
page, whichever route better fits your scenario. The first way is through the Power Apps button that has been
added to the standard Action Pane. Apps added using this mechanism will appear as menu items inside the Power
Apps menu button. When selected, each of these menu items will open a side pane that contains the embedded
app. Alternatively, you may choose to embed an app directly on a page as a new tab, FastTab, blade, or as a new
section in a workspace.
When configuring your embedded app, you can select a single field that you want to send as context to the app.
This allows the app to be responsive based on the data that you are currently viewing.
Details
The following instructions show how to embed an app from Power Apps into the web client.
1. Go to the page where you would like to embed the app. This will be the same page that contains any data
that needs to be passed to the app as as input.
2. Open the Add an app from Power Apps pane:
Click Options , and then select Personalize this page . Under the Inser t menu, choose Power Apps .
Finally, select the region where you would like to add the app. If you want to embed the app under the
Power Apps menu button, choose the Action Pane. If you want to embed the app directly onto the page,
choose the appropriate tab, FastTab, blade, or section (if you're on a workspace).
If the app will be accessed using the Power Apps menu button, you can alternatively click the Power
Apps menu button in the standard Action Pane, and then select Add an app .
3. Configure the embedded app:
The Name field indicates the text shown for the button or tab that will contain the embedded app.
Oftentimes, you may want to repeat the name of the app in this field.
App ID is the GUID for the app that you want to embed. To retrieve this value, find the app on
web.powerapps.com and then locate the App ID field under Details .
For Input context for the app , you can optionally select the field that contains the data that you want
to pass to the app as input. See the section later in this topic titled Building an app that leverages data
sent from Finance and Operations apps for details on how the app can access the data sent from Finance
and Operations apps.
Choose the Application size that matches the type of app that you're embedding. Select Thin for apps
built for mobile devices, and Wide for apps built for tablets. This ensures a sufficient amount of space is
allotted for the embedded app.
The Legal entities FastTab provides the ability to choose which legal entities the app is available for. The
default is to make the app accessible to all legal entities. This option is only available when the Saved
views feature is disabled.
4. After confirming that the configuration is correct, click Inser t to embed the Power App on the page. You will
be prompted to refresh the browser in order to see the embedded app.

Sharing an embedded app


After you have embedded app on a page and confirmed that it is working correctly with any data context passed
from the page, you might want to share this with other users in the system. This can be accomplished in two
different ways using the personalization capabilities of the product:
The recommended scenario is through the system administrator, who can push a personalization to all users or
a subset of users.
Alternatively, you can export your page's personalizations, send them to one or more users, and have each of
those users import those changes. The personalization toolbar has actions that allow you to export and import
personalizations.
See Personalize the user experience for more details about the personalization capabilities in the product and how
to use them.

Building an app that leverages data sent from Finance and Operations
apps
An important part of building an app from Power Apps that will be embedded in a Finance and Operations app is
utilizing the input data from that application. From the Power Apps development experience, the input data passed
from a Finance and Operations app can be accessed using the Param("EntityId") variable.
For example, in the OnStart function of the app, you could set the input data from Finance and Operations apps to
a variable like this:

If(!IsBlank(Param("EntityId")), Set(FinOpsInput, Param("EntityId")), Set(FinOpsInput, ""));

Viewing an app
To view an embedded app on a page in Finance and Operations apps, simply go to a page with an embedded app.
Recall that apps can be accessed through the Power Apps button in the standard Action Pane, or can appear
directly on the page as a new tab, FastTab, blade, or as a new section in a workspace. When a user first attempts to
load an app on a page, he or she will be prompted to sign in to ensure the user has the appropriate permissions to
use the app.

Editing an embedded app


After an app has been embedded onto a page, you may need to make some changes to the configuration of the
app. For example, perhaps you want to modify the label associated with the embedded app or a new version of the
app has been created and you need to update the App ID to point at the latest.
Follow these steps to edit the configuration of an embedded app:
1. Go to the Edit the app pane.
If the embedded app is accessed through the Power Apps menu button, right-click on the Power Apps
menu button and select Personalize . Select the app that you want to configure from the Select an app
drop-down menu.
If the embedded app appears directly on the page, select Options , and then select Personalize this
page . Using the Select tool, click the embedded app.
2. Make the needed modifications to the app configuration, and then click Save .

Removing an app
After an app has been embedded onto a page, there are two ways to remove it if needed:
Go to the Edit an app pane using the instructions from the Editing an embedded app section earlier in this
topic. Confirm that the pane displays information for the embedded app that you would like to remove, and
then click the Delete button.
Because the embedded app is saved as personalization data, clearing your page's personalization will also
remove any embedded apps on that page. Note that clearing the page's personalization is permanent and
cannot be undone. To remove your personalizations on a page, select Options , and then Personalize this
page , and finally the Clear button. After refreshing your browser, all the previous personalizations for this page
will be removed. See Personalize the user experience for more information about how to optimize pages using
personalization.

Appendix
Developer control over where an app can be embedded
By default, users can embed apps on any page, either under the Power Apps menu button or directly on the page
as a tab, FastTab, blade or as a new section in a workspace. However, if required, developers can also configure this
feature to only allow embedding of apps on certain pages by implementing the following methods:
isPowerAppPersonalizationEnabled – If this method returns false for a specific page, then the Power Apps
menu button will not be shown, and users will not be able to embed apps anywhere on this page, including as a
tab.
isPowerAppTabPersonalizationEnabled – If this method returns false for a specific page, then users will not
be able to embed apps directly on the page as a tab, FastTab, or panorama section. Users will still be able to
embed apps through the Power Apps menu button if embedding is allowed on the page.
The following example shows a new class with the two methods needed to configure where apps can be
embedded.
[ExtensionOf(classStr(FormRunConfigurationPowerAppsConfiguration))]

public final class ClassTest_Extension


{
public static boolean isPowerAppPersonalizationEnabled(str pageName)
{
var result = next isPowerAppPersonalizationEnabled(pageName);
return result;
}

public static boolean isPowerAppTabPersonalizationEnabled(str pageName)


{
var result = next isPowerAppTabPersonalizationEnabled(pageName);
return result;
}
}
Find information by using lookups
10/1/2019 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Many fields have lookups that can help you easily find the correct or desired value. Several enhancements have
been added to lookups that make these controls more usable and make users more productive. In this topic, you
will learn about these new lookup features and will receive some helpful tips to get the optimal use out of lookups
in the system.

Responsive lookups
In previous versions, when interacting with a lookup control, a user would have to take an explicit action to open
the drop-down menu. This may have been by typing an asterisk (*) in the control to filter the lookup based on the
current value of the control, clicking the drop-down button, or by using the Alt +Down arrow keyboard shortcut.
Lookup controls have been modified in the following ways to better align with current web practices:
Lookup drop-down menus will now open automatically after a slight pause in typing, with the drop-down
menu contents filtered based on the lookup control's value.
Note that the old behavior of automatic opening of the dropdown after typing an asterisk (*) has been
deprecated.
After the lookup drop-down menu has opened, the following will occur:
The cursor will stay in the lookup control (instead of focus moving into the drop-down menu) so you can
continue to make modifications to the control's value. However, the user can still use the Up arrow and
Down arrow to change rows in the drop-down menu, and enter to select the current row in the drop-
down menu.
The contents of the drop-down menu will adjust after any modifications are made to the lookup control's
value.
For example, consider a lookup field called City .
When focus is in the City field, you can start looking for the city that you want by typing a few letters, like "col."
After you stop typing, the lookup will open automatically, filtered to those cities that begin with "col".
At this point, the cursor is still in the lookup field. If you continue typing so the value is "colum," the lookup contents
adjust automatically to reflect the latest value in the control.

Even though focus is still in the lookup control, you can also use the Up arrow or Down arrow keys to highlight
the row that you want to select. If you press Enter the highlighted row will be selected from the lookup and the
control's value will be updated.

Typing in more than IDs


When entering data, it's natural for users to attempt to identify an entity, such as a customer or vendor, in terms of
the name rather than an identifier representing the entity. Many (but not all) lookups now allow contextual data
entry. This powerful feature allows the user to type the ID or the corresponding name into the lookup control.
For example, consider the Customer account field when creating a sales order. This field shows the Account ID
for the customer, but a user would typically prefer to enter an Account name instead of an Account ID for this
field when creating a sales order, such as "Forest Wholesales" instead of "US-003."
If the user started to enter an Account ID into the lookup control, the drop-down menu would automatically open
as described in the previous section and the user would see the lookup as shown below.

However, the user can also now enter the beginning of an Account name as well. If this is detected, then the user
will see the following lookup. Notice how the Name column is moved to be the first column in the lookup, and how
the lookup is sorted and filtered based on the Name column.

Using grid column headers for more advanced filtering and sorting
The lookup enhancements discussed in the previous two sections greatly improve a user's ability to navigate the
rows in a lookup based on a "begins with" search of the ID or Name field in the lookup. However, there are
situations in which more advanced filtering (or sorting) is needed to find the correct row. In these situations, the
user needs to use the filtering and sorting options in the grid column headers inside the lookup. For example,
consider an employee entering a sales order line who needs to locate the right "cable" as the product. Typing
"cable" into the Item number control isn't helpful, as there are no product names that begin with "cable."

Instead, the user needs to clear the value of the lookup control, open the lookup drop-down menu, and filter the
drop-down menu using the grid column header, as shown below. A mouse (or touch) user can simply click (or
touch) any column header to access the filtering and sorting options for that column. For a keyboard user, the user
simply needs to press Alt +Down arrow a second time to move focus into the drop-down menu, after which the
user can tab to the correct column, and then press Ctrl +G to open the grid column header drop-down menu.

After the filter has been applied (see the image below), the user can find and select the row as usual.
Change the date for a session
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to change the date for a session. By default, the current date is used when entering and
posting journal entries or source documents. You can change the date that is used for your current session. Use this
feature to back-date journal entries or source documents, as necessary.
1. In the navigation pane, go to Modules > Common > Common > Session date and time .
2. In the Date field, enter a date.
3. Select OK .
Set a user's preferred time zone
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following topic explains how a user in the System Administrator role can set the time zone for a user.
1. Go to Navigation pane > Modules > System administration > Users > Users .
2. In the list, find and select the desired record.
3. Select User options .
4. Select the Preferences tab.
5. In the Time zone field, select an option from the drop-down list.
6. Select Save .
Lifecycle Services (LCS) for Finance and Operations
apps customers
3/12/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article is intended for customers who have signed up for the current versions of Finance and Operations apps.
Partners who are working with customers to help them move through the lifecycle of their Lifecycle Services (LCS)
project will also find this information useful.

LCS workspace for the current versions of the Finance and Operations
apps
When you sign up for the current versions of Finance and Operations apps, your subscription includes an
Implementation project workspace. After you activate the service, the tenant administrator must sign in at
https://lcs.dynamics.com by using the tenant account. The project workspace is automatically created for your
organization. The workspace includes the following elements:
Enabled features, based on the offer that you selected
Environments that are deployed and managed by Microsoft
Guidance that is provided through the Action center to help you complete required actions
A new methodology experience that includes tasks that lock as you move through the implementation
A more complete history that specifies who completed each methodology phase and task
Milestones that you can use to track critical project dates
Various services to help you with your implementation

Methodologies
As a customer, you must complete the steps that are outlined in the methodology to gain access to the production
environment. Before a phase can be marked as completed, you must complete the specified mandatory tasks.
Locked tasks, such as tasks 1.6 and 1.9 in the following screen shot, are unlocked after you've completed the
required actions. To learn which actions must be completed before a specific task can be unlocked, click the lock
icon for that task.
In the case of prerequisites, after you complete the required tasks, you can mark the dependent tasks as completed.
For example, in the following screen shot, tasks 1.6 and 1.9 depend on task 1.5. Because task 1.5 has now been
completed, the two dependent tasks can be marked as completed.

Milestones
High-level milestones must be defined for a project. Milestones can help you track the deliverables that must be
completed and your progress toward the milestone goals. Color indicators help you quickly learn whether you're
behind schedule. For example, in the following screen shot, the milestones are yellow. To enter or update the
milestone dates, click the diamond shape in the methodology, and then click the Edit button (pencil icon). You can
change milestone dates at any time.

When you've finished entering milestones, the Publish plan and milestone task opens, and you can mark it as
completed.
When you've completed all the required tasks in a phase, you can click Complete phase to mark the phase as
completed. After you mark a phase as completed, next steps become available in Microsoft Dynamics Lifecycle
Services (LCS).
Methodology description and history
Descriptions can help you understand what is expected of you for a specific methodology task or phase. You can
expand the methodology description to learn more about each task, and then collapse the description when you've
finished. The task and phase history can tell you when a task or phase was completed or reopened. If you're a
project manager, this information can help you stay on top of the high-level tasks that are required for your
implementations.
Subscription estimator
Use can use the Subscription estimator tool to evaluate your subscription requirements for the current versions of
the Finance and Operations apps. To use Subscription estimator, download the usage profile, which is a Microsoft
Excel workbook. Then, in the workbook, complete the following worksheets:
Deployment details
Instance Characteristics
Retail & Commerce
After you've completed the worksheets, enter the data from the summary sheet into Subscription estimator by
clicking + New estimate . You must make one estimate the active estimate. Make sure that the estimate that you
mark as active is same as the offer that you bought through the VL or CSP channel.

New deployment experience


To provision your environment, you must to complete a configuration checklist. As you make progress through the
methodology, environments become available to you. Click Configure to add deployment information.

]
Because the information that you enter determines your experience, carefully review your input. After you've
entered all the required information, sign-off is required for the deployment request. The user who completes the
sign-off becomes the system administrator on the instance. Verify that the correct user completes the sign-off for
the deployment. After the sign-off is completed, the Microsoft site reliability engagement team reviews the request.
After the team has reviewed the information that you entered, it initiates the provisioning. If the information isn't
correct, the team will contact you. After the provisioning is completed, the status is updated to indicate that the
environment has been deployed, as shown in the following screenshot. If the provisioning takes longer than
expected, the Microsoft site reliability engagement team reviews the status and takes appropriate actions. These
actions might include contacting you. After the environment is provisioned, click Full details to open the
Detailed environment page, where you can sign in to the system, view the monitoring status, or view relevant
updates.
Dynamics 365 Commerce architecture overview
4/10/2020 • 12 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of all components in the Microsoft Dynamics 365 Commerce ecosystem, including
integration points to the suite of Dynamics 365 products.
The following illustration shows an overview of Dynamics 365 Commerce components.

Architecture benefits
Omni-enabled headless commerce engine
The commerce scale unit hosts the headless commerce engine. It serves as the central integration point for all
commerce business logic, and powers a complete omni-channel solution across physical and digital stores. The
commerce scale unit is built by using a portable architecture, and allows for flexible hosting options across cloud,
edge, and hybrid topologies.
The headless commerce engine powers all native Dynamics 365 Commerce channels, including in-store and e-
commerce channels. It also serves as the single integration point for third-party channel solutions. Therefore, those
solutions can take advantage of the power of Dynamics 365 Commerce business logic and integration with other
commerce-related services that are provided by Microsoft and independent software vendors (ISVs).
Interconnected business processes
The platform that is shared among the various Dynamics 365 business applications, such as Dynamics 365
Commerce, Dynamics 365 Supply Chain Management, and Dynamics 365 Finance, provides a set of interconnected
business processes that users can immediately benefit from. All back-office capabilities across these applications
are built on the same web experience and data stores. Therefore, there is a seamless flow of business processes
across various functions in the organization, but custom integrations across applications and services aren't
required. The out-of-box integration between the headless commerce engine and the back office further expands
the coverage of these interconnected business processes across the back office and commerce channels.
Unified data
Dynamics 365 Commerce provides a unified data solution through out-of-box integrations with Common Data
Service and Azure Data Lake Storage. Integrations and data sharing across Dynamics 365 business applications
such as Dynamics 365 Sales and Dynamics 365 Marketing are supported through the shared Common Data
Service. Transactional data in Data Lake Storage is used to power various analytics and insight scenarios in the
Dynamics 365 Commerce solution. However, it can also be used by any third-party software integration.
Powered by AI and analytics
Because of the accessible, persistent, up-to-date, and unified organizational data that is available in Data Lake
Storage, the whole organization has a "single source of truth" that analytics, artificial intelligence (AI), and machine
learning (ML) can be applied on top of. In this way, the organization can derive insights and get key performance
indicators (KPIs) that can be used optimize and automate business processes across all channels.

Component overview
User experiences
Dynamics 365
Dynamics 365 is a collection of applications that together provide comprehensive and flexible enterprise resource
planning (ERP) solutions for medium to large businesses. It provides an extensible framework and ecosystem that
can be tailored to customer-specific requirements via an extensive set of partners. Dynamics 365 applications
provide capabilities for their target business segments. They also take advantage of each other, and other Microsoft
services and offerings, to provide solutions that help run customers' complex businesses.
Modern POS
Modern POS is a cross-platform (Windows, iOS, and Android), multi–form factor (desktop, tablet, and phone)
solution for all in-store first-line workers, such as cashiers, sales associates, stock clerks, and store managers. It can
be deployed as an app that has offline capabilities. Alternatively, it can be deployed in the cloud and accessed
through a web browser. The application is role-based and fully configurable from headquarters. It's also highly
customizable, and can be extended or integrated into third-party services by using the Retail software development
kit (SDK).
In addition to standard "cash and carry" transaction processing, Modern POS includes features for assisted selling,
clienteling, endless aisle, order processing/fulfillment, inventory management, cash/shift management, and
reporting. For more information, see Modern POS (MPOS) architecture and Choose between Modern POS (MPOS)
and Cloud POS.
E-commerce storefront
The e-commerce storefront is the customer-facing website rendering system. It's built on the React.js framework,
and uses a combination of server-side and client-side rendering to deliver responsive web experiences for one or
more online channels. Although the storefront has a rich set of out-of-box capabilities, it's also highly customizable,
and delivers an efficient and scalable solution for online business. For more information, see Online store overview.
Site builder
Site builder is the web-based authoring interface for the content management and storefront website rendering
systems. It provides a what-you-see-is-what-you-get (WYSIWYG) editor for site managers and content authors who
perform the day-to-day workflow tasks of managing and producing the marketing content for the e-commerce
experience. In site builder, a marketer can provide more marketing detail for specific products to enhance the
shopping experience for consumers. In addition, site builder includes integrated accessibility reporting, URL
management, site map generation, and image focal point management, among other features. For more
information, see Online store overview.
External services and apps
The headless commerce engine that is exposed via the commerce scale unit lets partners and customers take
advantage of all the same channel-side capabilities and business logic that are used by the out-of-box e-commerce
and point of sale (POS) components. Therefore, by tapping into the same data and business process capabilities, it
allows for seamless omni-channel capabilities across out-of-box channel components and partner-
provided/customer-developed services and applications. It also provides access to all out-of-box and ISV-developed
surround services that are available through the commerce scale unit.
Back office
Dynamics 365 Commerce headquarters
The Dynamics 365 Commerce application, which is often referred to as the Commerce headquarters component,
provides back-office capabilities that enable the configuration of products, employees, business processes, and
other functionality that is required for the business. It's also the application that call center workers use to provide
assisted commerce-related workflows.
Dynamics 365 Supply Chain Management
Dynamics 365 Supply Chain Management provides functionality to help you manage your products throughout the
supply chain lifecycle, from production, to inventory and warehouse, to transportation and distribution. For more
information, see Help resources for Supply Chain Management.
Dynamics 365 Finance
Dynamics 365 Finance provides functionality to automatically manage your global finances. For customers of the
Dynamics 365 Commerce application, Dynamics 365 Finance offers an integrated experience for managing stores
and e-commerce financial statements alongside the rest of their operations. For more information, see Dynamics
365 Finance help resources.
Dynamics 365 Human Resources
Dynamics 365 Human Resources lets businesses get a comprehensive view of their employee resources and
manage them in a unified way. It provides integrated experiences from the hiring process through workforce
planning and employee time management. For more information, see Dynamics 365 Human Resources help
resources.
Commerce scale unit
Retailers are distributed organizations, where the business topography can be represented as a hub and spoke
model. Dynamics 365 Commerce supports this model by having head-office capabilities (the hub), and also many
distributed channel components (the spokes) that can be deployed and self-managed in-store or in nearby
Microsoft-managed Azure datacenters. The spokes are referred to as scale units, because they represent physical
isolation (a function of scale) and an atomic unit of update.
To facilitate cloud and edge computing scenarios, a commerce scale unit is available both as a software as a service
(SaaS) component that is managed by Microsoft (cloud scale unit) and as a self-managed component that can be
deployed locally (store scale unit). A single environment can have a mixture of cloud scale units and store scale
units. Therefore, organizations can tune their investments in operational overhead on a store-by-store basis by
implementing network redundancy for poor connectivity. For more information, see Select an in-store topology.
Cloud scale units (Microsoft-managed)
Multiple scale units can be associated with each environment. Each scale unit can be independently serviced and
updated, and each can serve one or more channels across one or more legal entities. Each scale unit can be
deployed to any of the supported Azure regions, and multiple scale units can be deployed to the same region. The
independent nature of each scale unit allows for phased rollout of updates across a collection of channels.
Store scale units (self-managed)
The ability to bring the cloud scale unit to edge computing helps accommodate scenarios where internet
connectivity is poor or unreliable. For retailers, this approach typically means having a physical footprint in their
stores. By using a store scale unit, retailers can bring the same business logic and capabilities that run in the Azure
cloud into their stores. In these cases, although in-store connectivity is presumably more reliable, self-management
of these components will involve additional overhead in terms of monitoring and updates. For more information,
see Select an in-store topology.
E-commerce platform
Content management system
A fully featured content management system (CMS) is integrated directly into the e-commerce platform. In addition
to rich indexing features, the CMS provides lifecycle management for marketing materials that supplement the
product information that is managed by the headless commerce engine. It includes features for localization and
multi-item publishing through releases. The system is built on top of a scalable, resilient Azure infrastructure that
includes Azure Active Directory (Azure AD) and Azure Cosmos DB.
Digital asset management
Commerce digital asset management extends the content management store, and keeps track of images, videos,
and file downloads that are served by the web storefront site. Its image resizer service optimizes downloaded
images for different devices and contexts. In this way, it helps enhance performance while it also manages image
quality. Digital asset management is also integrated with Azure Media Services for efficient playback of video
streams.
Web storefront
The CMS stores its pages as a series of modules. The storefront web server assembles those modules into a
rendered HTML page. The web storefront is composed of the rendering platform, the commerce data proxy, and the
extensibility layer. Those components form a base that is supplemented by a set of modules that power a web-
based commerce experience, the Dynamics 365 Commerce starter kit. The initial starter kit can be modified to meet
each business's unique requirements. Alternatively, it can be supplemented by extensions and modules that are
developed by a partner.
Commerce surround services
Dynamics 365 Fraud Protection
Dynamics 365 Fraud Protection is integrated into the e-commerce checkout flows that are managed and processed
through the commerce scale unit. The connection to the service is automatically provisioned with the commerce
scale unit, and customers who sign up for Dynamics 365 Fraud Protection can enable and configure the integration
in Commerce headquarters. The service can run either in "evaluate" mode, so that you can assess the effectiveness
of the service, or in "protect" mode, so that you can catch fraudulent transactions by using configured business
rules. For more information, see Dynamics 365 Fraud Protection integration with Dynamics 365 Commerce.
Dynamics 365 Customer Insights
Dynamics 365 Customer Insights helps you gain a deeper understanding of your customers by connecting data
from various transactional, behavioral, and observational sources to create a 360-degree customer view and
generate insights. Dynamics 365 Commerce makes it easy for retailers to enable the integration with Dynamics 365
Customer Insights and show the generated insights at the POS. These insights include churn probability and next
best action, and they are valuable because they help sales associates have effective conversations with customers
and deliver personalized shopping experiences to them. For more information, see Dynamics 365 Customer
Insights integration with Dynamics 365 Commerce.
Bing for Commerce
Microsoft Bing for Commerce is integrated into Dynamics 365 Commerce to provide consistent product discovery
and search experiences across all commerce channels that use the commerce scale unit. In Commerce
headquarters, retailers can configure boosting and sinking business rules for product discovery and search
experiences. (For example, these rules can be used to boost product discovery for discounted products or remove
items that are out of stock.) In this way, retailers can turn shopper frustration and site abandonment into active
carts and converted sales. By taking advantage of an out-of-box capability that this integration provides, retailers
can let customers use images to search for and discover similar products from a catalog without having to describe
them.
Product recommendations
Dynamics 365 Commerce can be used to show product recommendations on the e-commerce website and POS
devices. These product recommendations are items that a customer might be interested in, and they are based on
the purchase trends of other customers in online and brick-and-mortar stores.
Product recommendations let customers easily and quickly find products that they might want to purchase, and
cross-selling and upselling can be used to help customers find additional products that they didn't originally intend
to buy. When recommendations are used to assist with product discovery, they can help create more conversion
opportunities, increase sales revenue, and enhance customer satisfaction and retention. For more information, see
Product recommendations overview.
Commerce analytics
Dynamics 365 Commerce's prepackaged, business-managed commerce analytics solution provides retailers with
intelligent insights across all points of the Commerce ecosystem by embedding Power BI reports in Commerce
headquarters and POS systems. The commerce analytics solution provides a comprehensive set of out-of-box
business and transactional reports, dashboards, and KPIs that take advantage of insights across all channels.
The solution standardizes data from various sources (such as transactional, behavioral, observational, or external
data sources) into a unified data model that is hosted in Azure Data Lake Storage. Therefore, organizations can
obtain a truly complete view of their business performance across channels. For example, they can analyze the
performance of discount promotions, monitor web visits and activity, compare in-store visits and purchases with
online purchases, track loyalty redemptions, or do customer recency, frequency, monetary (RFM) analysis.
Ratings and reviews
The Commerce ratings and reviews solution lets online retail customers enter product reviews and ratings through
the e-commerce storefront. Retailers can then show averaged ratings and review information across their e-
commerce websites. Azure Cognitive Services offers automatic moderation of profane words in 40 languages, and
because human approval isn't required, moderation costs are reduced. The system also offers moderator tools that
can be used to respond to customer concerns, feedback, and take-down requests, and to address data requests
from users. For more information, see Rating and reviews overview.
Unified data components
Azure Data Lake Storage
Customers who bring their own Azure Data Lake Storage accounts can take advantage of structured business data
from back-office operations and clickstream data from the e-commerce storefront. This data flows back into
intelligence services such as product recommendations, customer insights, and commerce analytics to power
customer-centric business processes and user experiences. Those business processes and user experiences can then
be embedded back into Dynamics 365 Commerce headquarters, the POS, and e-commerce storefronts. For more
information, see Make Entity store available as Data Lake.
Common Data Service
Common Data Service is the unified data store that integrates the data from all your business applications.
Dynamics 365 applications such as Dynamics 365 Sales, Dynamics 365 Customer Service, and Dynamics 365
Commerce use Common Data Service to store business data. Therefore, Common Data Service enables cross-
business application scenarios, and can power new scenarios through Power Apps and Power Automate. For more
information, see What is Common Data Service.

Additional resources
Azure Data Lake Storage
Common Data Service
Modern POS (MPOS) architecture
Dynamics 365 Supply Chain Management
Dynamics 365 Human Resources
Dynamics 365 Finance
Dynamics 365 Fraud Protection
Dynamics 365 Fraud Protection integration with Dynamics 365 Commerce
Dynamics 365 Customer Insights
Microsoft Bing for Commerce
Commerce Scale Unit architecture
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article describes the architecture of Commerce Scale Unit. Commerce Scale Unit provides stateless services
and business logic for Modern Point of Sale (MPOS) and E-Commerce clients.

Commerce Scale Unit architecture


The commerce runtime is wrapped in a Commerce Scale Unit layer. Commerce Scale Unit uses a web API and
OData to support thin clients both in the store and online on tablets and phones. The commerce runtime
communicates with Headquarters through Commerce Data Exchange services. The following diagram shows the
architecture of Commerce Scale Unit.

Commerce Scale Unit uses the following concepts.

C O N C EP T DESC RIP T IO N

Entity type An entity type is an entity that has a life cycle that you want
to monitor. Each entity type has a key. An example of an entity
type is Customer .
C O N C EP T DESC RIP T IO N

Complex type A complex type is an OData concept that is designed to


prevent duplication by grouping specific related properties.
These related properties can be reused in multiple entities. For
example, Customer is an entity type that has a customer
address. This customer address is a wrapper that contains an
address line, city, state, and ZIP/postal code. Therefore,
Customer address is a complex type that can be reused by
other entity types. For example, the Order entity type
requires the same address information that is associated with
the Customer entity type and therefore reuses the
Customer address complex type.

Controller A controller is a mapping for an entity type that controls


create, read, update, and delete (CRUD) behaviors and actions
for the entity type. A controller is provided for each commerce
entity. You can customize the following controllers:
Carts
Catalogs
Categories
Commerce
Commerce Lists
Composite Key Entity
Controller Assembly Resolver
Customers
Employees
Non-Bindable Action
Org Units
Picking Lists
Products
Purchase Orders
Sales Orders
Shifts
Stock Counts Journals
Transfer Orders

Metadata Metadata defines the contract between the client and the
server.

You can create your own entity type or complex type, extend an existing controller, add a new controller, and
customize the metadata. If you customize the commerce runtime, you must also customize various components in
Commerce Scale Unit to expose those changes to your Retail Modern POS clients.
Select an in-store topology
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides an overview of the various Dynamics 365 Commerce in-store topologies.

Supported capabilities when connectivity is lost


W IT H O UT C O N N EC T IVIT Y TO
C O M M ERC E SC A L E UN IT W IT H O UT C O N N EC T IVIT Y TO H Q
O P ERAT IO N ( IN M P O S O F F L IN E M O DE) ( USIN G RSSU)

Cross terminal shifts (such as view, ✔


suspend, resume, close)

Cross terminal transactions (such as ✔


view, suspend, resume)

Supported operations when connectivity is lost


For a list of operations that are supported when the POS loses connectivity to the HQ, see Online and offline point
of sale (POS) operations.

Supported deployment and maintenance capabilities


Mass deployment is supported in Modern POS, but not in Commerce Scale Unit. For more information, see Mass
deployment of self-service components.

Deployed components
The following components are deployed through a single installer. This means that they do not need to be installed
individually.
Modern POS
DEP LO Y ED C O M P O N EN T C O M P O N EN T T Y P E N OT ES

Modern POS App Universal Windows Platform (UWP) The Modern POS application running
Application on the register.

Modern POS Client Broker COM Surrogate hosting native binaries Hosts the Commerce Runtime to
for the Modern POS support operations to execute in offline
mode as well as Async Client Libraries
needed to synchronize data between
the Modern POS and the HQ.

Channel Database SQL Database Register specific Channel Database


instance hosting data for the register.

Commerce Scale Unit


IN STA L L ED C O M P O N EN T C O M P O N EN T T Y P E N OT ES

Commerce Scale Unit IIS Web Service Scale unit specific Commerce Scale Unit
instance used by one or more stores.

Channel Database SQL Database Scale unit specific Store specific Channel
Database instance hosting data for one
or more stores.

Async Client Service Windows Service Component to synchronize master


record data from the HQ to the store
and transactional data from the store to
the HQ.

Cloud POS IIS Web Service Cloud POS application that hosts POS
functionality through a web browser.

Additional resources
MPOS offline mode
For more information about MPOS offline mode, see:
Offline point of sale (POS) functionality
Online and offline point of sale (POS) operations
Mass deployment of self-service components
Commerce Scale Unit
The Commerce Scale Unit is a set of components that can be deployed in a customer environment, such as inside a
store, that can support continuous operations if connectivity to the back office or headquarters (HQ) is lost.
For more information, see:
Configure and install Commerce Scale Unit
Commerce Scale Unit
Commerce Data Exchange and commerce channel
communications
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of Commerce Data Exchange and its components. It explains the part that each
component plays in the transfer of data between Microsoft Dynamics 365 Commerce Headquarters and channels.

Overview
Commerce Data Exchange is a system that transfers data between Headquarters and channels, such as online
stores or brick-and-mortar stores. The database that stores data for a channel is separate from the Commerce
database. The channel database holds only the data that is required for transactions. Master data is configured in
Headquarters and distributed to channels. Transactional data is created in the point of sale (POS) system or the
online store, and then uploaded to Headquarters. Data distribution is asynchronous. In other words, the process of
gathering and packaging data at the source occurs separately from the process of receiving and applying data at
the destination. For some scenarios, such as price and inventory lookups, data must be retrieved in real time. To
support these scenarios, Commerce Data Exchange also includes a service that enables real-time communication
between Headquarters and a channel.

Async Service
Microsoft SQL Server change tracking on the Commerce database is used to determine the data changes that must
be sent to channels. Based on a distribution schedule, Headquarters packages that data and saves it to central
storage (Azure blob storage). A separate batch process uses the Commerce Data Exchange: Async Client library to
insert this data package into the channel database.

Commerce scheduler
Scheduler jobs are the mechanism for distributing data to and from locations. Jobs are made up of subjobs, which
specify the tables and table fields that contain the data to distribute. Headquarters includes predefined scheduler
jobs and subjobs that meet the replication requirements of most organizations. The following types of predefined
jobs are created:
Download jobs – Download jobs send data that has changed from Headquarters to channel databases.
Modifications to records are tracked through SQL Server change tracking.
Upload jobs (P jobs) – Upload jobs pull sales transactions from a channel into the Commerce database. P jobs
upload data incrementally. When a P job runs, the Async Client library checks the replication counter for records
that have already been received from a location. A record is uploaded only if its replication counter is more than
the largest value that is found. P jobs don't update data that was previously uploaded.
The distribution schedule is used to run the data transfer, either manually or by scheduling a batch job in
Headquarters. A distribution schedule can contain one or more channel data groups, and one or more scheduler
jobs. To ensure that the scheduler jobs are running smoothly, do not rename the "Default" database configured for
the instance, and do not create a second database. All non-Commerce Scale Unit databases are managed by
Microsoft, and only one default database is expected.

Realtime Service
Commerce Data Exchange: Real-time Service is an integrated service that provides real-time communication
between Headquarters and channels. Real-time Service enables individual POS computers and online stores to
retrieve specific data from Headquarters in real time. Although most key operations can be performed in the local
channel database, the following scenarios require direct access to the data that is stored in Headquarters:
Issuing and redeeming gift cards
Redeeming loyalty points
Issuing and redeeming credit memos
Creating and updating customer records
Creating, updating, and completing sales orders
Receiving inventory against a purchase order or transfer order
Performing inventory counts
Retrieving sales transactions across stores and completing return transactions

A predefined Real-time Service profile is created.


Modern POS (MPOS) architecture
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the POS topology.

Modern POS topology


Users of Modern Point of Sale (POS) can perform various tasks on supported laptops, tablets, and phones. These
tasks include processing sales transactions, viewing customer orders, managing daily operations and inventory,
and viewing role-based reports. Both MPOS and Cloud POS are available in Microsoft Dynamics 365 Commerce.
The Cloud POS is a hosted version of the POS app. Both the POS clients don't perform business functions or data
processing. All business functions are provided by Commerce Scale Unit. Modern POS and Cloud POS clients can
communicate with Commerce Scale Units that are deployed in the cloud. Modern POS client can also communicate
with peripheral devices, such as cash drawers, credit card readers, and printers, by using Hardware Station.
Hardware Station must be deployed in your store, and all Modern POS clients can connect to the same Hardware
Station. The following diagram shows the high-level topology.

Modern POS architecture


The view, view-controller, and devices layers depend on the operating system (for example, Windows RT) that you
plan to deploy Modern POS on. The other layers are independent of the operating system. These layers use
TypeScript classes and modules to implement Modern POS functionality such as workflows and entities. The
following diagram shows the Modern POS technical architecture.
Cloud POS and Modern POS architecture
Cloud POS is a hosted version of Modern POS, and varies only in the way that it is rendered on specific devices or
in specific browsers. Additionally, Modern POS supports offline mode and therefore a local CRT. Other native
peripheral support is also specific to Modern POS.
Online store publishing architecture
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic contains conceptual information to help developers and system administrators understand how channels
and catalogs are published from the commerce module to an online store in Microsoft SharePoint 2013 Products.
Understanding the publishing process can help you develop, manage, and troubleshoot your online store.

Publish an online store channel


When you publish a Commerce online store channel, you replicate the basic structure of your online store between
Microsoft Dynamics 365 Commerce and Microsoft SharePoint. You create the basic structure of your online store
channel in the Commerce module. Before you can publish an online store channel, you must complete the
following setup tasks:
1. Add the online store to the organization hierarchy.
2. Create the online store and configure properties.
3. Configure the category hierarchy of your site.
After you've completed these steps, you're ready to publish the product schema to the online store.
1. You create the online store and publish it from the Online stores page. The status is changed from Draft to In
progress .
2. Finances and Operations takes a snapshot of the category hierarchies (the Commerce hierarchy) and properties.
3. Commerce Data Exchange: Async Server reads information about the online store, hierarchies, and properties in
the Commerce store database, and sends that information to the commerce runtime (CRT).
4. Async Server synchronizes the tables in the channel database.
5. The Commerce publishing job runs from the CRT application programming interface (API) and creates
hierarchies for the site that you created in the online store.
6. Commerce Data Exchange: Real-time Service receives the status of the publishing job actions from the CRT API
and publishes that status. The status is either Published or Error .
For the specific procedures to publish a channel, see Set up an online store. After you've published the channel, you
can publish a catalog.

Publish an online store catalog


A product catalog lets you identify the products that you want to offer in your online stores. When you create a
catalog, you identify the online stores where the products will be offered, add products, and enhance the product
offerings by adding merchandising details. After the catalog is approved, you publish it to make products available
in the online store. Before you can publish a product catalog, you must complete the following setup tasks:
1. Set up products, and configure hierarchies, assortments, and variants.
2. Set up product catalogs, and configure attribute groups and workflow.
After you've completed these steps, you're ready to publish the online store catalog.
1. Finances and Operations reads the product tables in the Commerce database.
2. Async Server synchronizes all products in the channel database.
3. The CRT/Publishing Connector creates a listing. A listing is an instance of a product for a channel at a given
point in time. For example, you have a product that is named “jeans”, and this product has a variant that is
named “red”. In this case, the system creates a listing for “red jeans”.
4. The system determines whether any new attributes were added for the listing. If new attribute were added (for
example, if the “red jeans” listing includes a new attribute that is named texture , and this attribute is marked as
Included at the channel level), the system creates a custom site column for that attribute. The system also
creates a new rule for the list item and completes the process in SharePoint by creating a new row for the “red
jeans” listing.
5. The CRT records the publishing status for the listing.
6. Async Server synchronizes the publishing status of the listing with all other publishing statuses. The status is
either Published or Error .
Retail channel performance PowerBI.com solution
11/5/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

NOTE
This PowerBI.com solution has been deprecated as documented in Power BI content packs available on AppSource.

This topic provides information about the Retail channel performance PowerBI.com solution for Dynamics AX. This
PowerBI.com solution lets channel managers quickly build channel performance analytics to predict trends and
uncover insights, based on sales performance.
The Retail channel performance PowerBI.com solution lets you quickly build your channel performance analytics.
The PowerBI.com solution is designed specifically for channel managers who focus on sales performance to predict
trends and uncover insights. Its components draw directly from Retail and commerce data in the Dynamics AX
database, and provide drill-down reports about organization-wide sales performance across global geography by
employee, category, product, terminal, channel, and more. Power BI automatically creates reports and dashboards
that give you a great starting point for exploring and analyzing your Retail and commerce data. This article includes
the following information:
Learn how to connect the Retail channel performance PowerBI.com solution to a Dynamics AX data source.
View a list of reports that provide insights into retail channel performance.
Learn how to modify an existing report in the PowerBI.com solution to make it self-authored.
Get a glimpse of an actual data model that enables the whole experience in Power BI.

Connect the Retail channel performance PowerBI.com solution to a


Dynamics AX data source
1. Go to https://www.powerbi.com, and click Sign in . If you don't have an account, you can sign up to try the
new Power BI Preview for free.
2. To sign in, enter a Microsoft Office 365 account that has a Power BI account.
3. If your workspace appears, click Get Data at the bottom of the left navigation pane.
4. In Ser vices section, click Get .
5. Scroll or search to find Microsoft Dynamics AX Retail channel performance , and then click Get it now .
6. Enter your Dynamics AX URL in the following format: https://<tenant>.cloudax.dynamics.com (for example,
https://YourAOSTenant.cloudax.dynamics.com ). Then click Next to pull data from Dynamics AX data storage
into this Power BI dashboard.
7. Select oAuth2 as the authentication method, and then click Sign in .
8. To sign in, enter an Office 365 account that has permission to access your Dynamics AX environment.
9. After data is successfully pulled from Dynamics AX into Power BI, you can view your personal Retail
channel performance dashboard in Power BI by clicking Retail channel performance dashboard in the
left navigation pane.

10. You can then take advantage of the Q&A feature in Power BI to query your Dynamics AX sales data by using
natural language.

View a list of reports


By clicking through any of the pinned tiles on the dashboard, you can navigate the following list of reports that
provide insights into retail channel performance:
Geographical sales distribution
Category sales performance
Sales summary by Tender type or payment method
Employee monthly performance
Store monthly performance
Product sales performance for the given category in the given store
For example, you might want to do a deeper analysis of geographical sales distribution.

Modify an existing report in the PowerBI.com solution to make it self-


authored
Here's an example that shows how easy it is to modify an existing report in the PowerBI.com solution to make it
self-authored. In this example, we will modify an existing report that is named Categor y & product
performance by adding Categor y level 1 to the Total amount by Month/Year chart on that report.
1. Click the Categor yProductPerformance tab at the bottom of the window to open the Categor y &
product performance report, and then click Edit repor t .
2. Select the chart that is named Total amount by Month/Year . Then, on the right side of the window, in the
Fields pane, expand the Default Retail Product Categor y Hierarchy node.

3. In the list of category levels for this hierarchy, select Categor y Level 1 . The name of the chart that you
selected this attribute for changes to Total amount by Month/Year and Categor y level 1 , and the chart
now shows the share of sales in each category for each month.
4. Finally, try to change the visualization itself. Select the Total amount by Month/Year and Categor y
level 1 chart, and then, in the Visualizations pane, click Area char t or Stacked area char t , and see the
effect.

Get a glimpse of the actual data model


The data model that is included in the PowerBI.com solution for the Dynamics AX data entities and aggregated data
entities lets you slice and dice across various measures by using different dimensions.
Additional resources
Features and services available through Power BI integration
Configure Power BI integration for workspaces
Payment Application Data Security Standards (PA-
DSS) certification
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

IMPORTANT
If a version of Microsoft Dynamics 365 is implemented and the PA-DSS certification has not yet been completed by Microsoft,
there may be potential impact to the retailer's Payment Card Industry (PCI) audit and certification. Specifically, until the PA-
DSS certification is complete for the associated version, PCI certification can become more difficult and involved as the
Payment Application may come into scope of testing during the certification.

This topic explains the past, current, and pending listings of PA-DSS certification for Microsoft Dynamics 365. To
view the current certifications, see PCI PA-DSS certified payment applications.
PA-DSS implementation guides that are available are linked to in the Version column in the tables below.

Past certification
REL EA SE VERSIO N B UIL D

Microsoft Dynamics AX 2012 R3 6.3

Microsoft Dynamics AX 7 7.0

Microsoft Dynamics 365 for Operations 1611 7.1

Current certification
REL EA SE VERSIO N B UIL D

Microsoft Dynamics 365 for Finance July 2017* 7.2


and Operations, Enterprise edition

Microsoft Dynamics 365 for Retail July 2017 7.2

Microsoft Dynamics 365 for Finance 10.0 10.0


and Operations

* The PDF document in this link applies to both Dynamics 365 for Retail (as it states) and Dynamics 365 for Finance
and Operations, Enterprise edition.

Certification in progress
REL EA SE VERSIO N B UIL D

Microsoft Dynamics 365 for Finance 10.0.6 10.0.6


and Operations, Enterprise edition

Microsoft Dynamics 365 for Retail 10.0.8 10.0.8


Commerce capabilities that are available in on-
premises deployments
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic lists Commerce capabilities that are available in on-premises deployments.
For more information about on-premises deployments, see On-premises deployment home page.

C O M P O N EN T O N - P REM ISES STAT US

Cloud Point of Sale Available

Retail Point of Sale Available

Modern Point of Sale Available

Commerce Scale Unit Available

Channel database Available

Hardware station Not available

AX 2012 N-1 support Not available

Head office capability


Channel management
The following table indicates which channel management components are available in on-premises deployments.

C O M P O N EN T O N - P REM ISES STAT US

All stores Available

Online stores Not available

Call center Available

Registers Available

Devices Available

POS permissions and permission groups Available


C O M P O N EN T O N - P REM ISES STAT US

Info codes Available

Payment methods Available

Email receipts Available

Email notifications Available

Sales tax overrides Available

Functionality profiles Available

Sales tax groups Available

Pricing and discounts


The following table indicates which pricing and discount components are available in on-premises deployments.

C O M P O N EN T O N - P REM ISES STAT US

All discounts Available

Price groups, price adjustments, category price rules Available

Trade agreements Available

Channel navigation category Available

Affiliation price groups Available

Commerce channel price groups Available

Pricing priorities Available

Price simulator Not available

Customer
The following table indicates which customer components are available in on-premises deployments.

C O M P O N EN T O N - P REM ISES STAT US

Loyalty schemes Available

Loyalty cards Available

Loyalty points Available

Merchandising
The following table indicates which merchandising components are available in on-premises deployments.
C O M P O N EN T O N - P REM ISES STAT US

Products by category Available

Product categories Available

Channel categories and product attributes Available

Assortments Available

Commerce catalogs Available

Commerce product kits Available

Commerce product files Available

Variant groups (size, color, style) Available

Attribute, attribute type, attribute groups Available

Vendor catalogs Available

Bar codes Available

Inventory management
The following table indicates which inventory management components are available in on-premises deployments.

C O M P O N EN T O N - P REM ISES STAT US

Packing slip Available

Fulfilment groups Available

Cross docking and buyer's push Available

Qty on hand Available

Stock counts Available

Inventory adjustment Available

Models of delivery Available

Return locations Available

Distributed order management Not available


Synchronize self-service installers in Dynamics 365
Commerce
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to use the Asset library and Shared asset library in Microsoft Dynamics Lifecycle Services
(LCS), and Dynamics 365 Headquarters, to upload and synchronize self-service installers so that they can be used
with the standard self-service download mechanism.

IMPORTANT
The earlier method of uploading self-service packages is currently still supported. However, it's obsolete and will be removed
in the future.

Key terms
T ERM DESC RIP T IO N

Shared asset library In LCS, two types of asset libraries are available: the Shared
asset library and the project-level Asset library. For more
information about these libraries, see Asset library in Lifecycle
Services (LCS).

Asset library For more information, see Asset library in Lifecycle Services
(LCS).

Self-service installers Self-service installers are the Dynamics 365 Commerce


components. For more information about the installers, see
the links at the end of this topic.

Overview
The Retail Self-ser vice package subsection in the Shared asset library stores all monthly releases for self-service
installers. These installers include Modern POS (which includes the offline version), Commerce Scale Unit (which
was formerly known as Retail Store Scale Unit [RSSU]), and hardware station. You can also upload customized
installers into both this library and the project-level Asset library. By using these locations, you can then synchronize
the available installers in Dynamics 365 Headquarters. After synchronization is completed, all the installers that are
available between these two libraries (and whatever previously existed in the environment) will be accessible for the
standard self-service download processes that are described in detail in separate topics (see the links in the table of
terms earlier in this topic).
The following illustration shows a generic example of the Retail Self-ser vice package subsection in the Shared
asset library (or Asset library).
Synchronize installers in Dynamics 365 Headquarters
1. Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters .
2. On the Channel deployment tab, select Check for package updates to perform synchronization. The
installers that are available for download (through standard self-service processes) are synchronized and
updated, depending on which of the installers that are currently available in LCS apply to environment.

IMPORTANT
Previously, the RetailSelfService table was used as the source that all installer information was pulled from. Information
was entered in this table, based on the installers that had been uploaded into headquarters through the earlier
package application method. The new self-service population methodology combines all values in the RetailSelfService
table (the earlier self-service package upload method) with all available installers in the LCS Shared asset library. The
self-service drop-down package selectors will show the options from this newly synchronized, combined source.
As was stated at the beginning of this topic, the earlier self-service package upload method is obsolete, but it will
continue to be supported until it's removed in the future.

3. On the same page, you can select default packages that will be used throughout headquarters in their
relevant locations (Devices , All stores , and Channel database ).
4. Perform standard configuration and installation flows for Modern POS, hardware station, or Commerce Scale
Unit by using the links in the following table.

C O M P O N EN T L IN K

Modern POS Configure, install, and activate Modern POS (MPOS)

Hardware station Configure and install Retail hardware station


C O M P O N EN T L IN K

Commerce Scale Unit (formerly known as Retail Store Scale Configure and install Commerce Scale Unit
Unit)
Commerce Scale Unit
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the Commerce Scale Unit and when to use it.

Overview
Commerce Scale Unit is a set of features that supports selling products in a store that have inconsistent internet
connectivity to a back office or headquarters (HQ). The Store Scale Unit is designed specifically for in-store
operation, and enables cross-terminal transactions and shift operations despite poor internet service. By
automatically connecting to the back office, when you do have internet connectivity, your store can seamlessly
process credit card transactions, issue gift cards, and sync data with HQ. The Store Scale Unit is available for
download in the standard HQ deployment.

Is the Commerce Scale Unit right for you?


Before you begin setting up Commerce Scale Unit, take a moment determine whether this option is the right fit for
your store. Commerce Scale Unit is a deployment choice intended for retailers with store locations that have slow
or intermittent internet connectivity, who need the flexibility of the Commerce Scale Unit deployed on premises in
each store. In scenarios where a stable internet connection is available and there is low latency to the cloud
environment, then it is recommended to consider operating the store as Cloud only, without setting up a Commerce
Scale Unit. Consider the following before you begin:
You only have one opportunity to set up a store as a Store Scale Unit or a Cloud-only system. Moving from a
Commerce Scale Unit-enabled store to a Cloud-Only store is not supported by default, and will require manual
configuration.
Commerce Scale Unit will support both MPOS and Cloud POS within the store.
Commerce Scale Unit can be set up in a one-box deployment topology on a single computer (recommended) or
in a multi-box topology on different computers.
If you choose the one-box option, most of the settings are pre-configured. For a multi-box topology, you will
have to manually configure connections between components.
In Commerce Scale Unit, users can perform cross-terminal scenarios across multiple POS devices, like
suspend/recall transactions and shift operations.
In Commerce Scale Unit, users cannot perform any real-time operations such as issuing gift cards, looking up
products, or performing credit card transactions, unless there is internet connectivity to HQ or a payment
provider. If most of your transactions involve real time transactions, then you will always need internet
connectivity to enable the connection to HQ or payment provider.
Direct database connectivity from POS to the channel database is not supported in the Commerce Scale Unit.
The POS devices will always use the Commerce Scale Unit for performing operations.
NOTE
It is critical to note that a Commerce Scale Unit does not replace offline. Currently, Retail Modern POS with an offline database
is the only true way to have offline capabilities.

Get started with Store Scale Unit


To get started, review the following topic on configuring the Commerce Scale Unit, Configure and install Commerce
Scale Unit.

Additional resources
Configure and install Commerce Scale Unit
Configure and install Commerce Scale Unit
2/19/2020 • 25 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how you can use self-service to configure a Commerce Scale Unit (previously called Retail Store
Scale Unit) in Microsoft Dynamics 365 Commerce Headquarters, download it, and install it on one or more
computers in a brick-and-mortar store. Commerce Scale Unit combines the Commerce channel database,
Commerce Async Client, Retail Server, and Cloud point of sale (POS) components. A Commerce environment
already provides these components in the cloud. However, you can now configure them so that they work locally
in a store or datacenter, in either a single-computer setup (the default option) or a multiple-computer setup. This
topic also explains how to uninstall and troubleshoot Commerce Scale Unit.

IMPORTANT
It is critical to note that this component utilizes a server certificate in addition to Azure Service to Service authentication.
Both the generated Azure web application keys (Formerly called Secrets) and the server certificate must be managed for
expiration. By default, a certificate and a generated Azure web application key expires in one calendar year (365 days).

Before you begin


IMPORTANT
To help maintain a high level of security across the company, we strongly recommend that you create a new application ID
(client ID) and key (secret) for each store that is created. This step requires a new Web app.

1. Generate a Microsoft Azure Active Directory (Azure AD) app registration to create an application ID (client
ID) and key (secret). For instructions, see Create an Azure Active Directory application. This topic reviews
Azure user permissions and requirements, and explains how to generate an app registration.

IMPORTANT
If you are installing Commerce Scale Unit for use with an on-premises environment using Active Directory
Federation Services, instead of Azure, follow the instructions in the Commerce installation document for on-
premises environments. For more information, see Installation steps for Commerce channel components in an on-
premises environment.

2. After an application ID (client ID) and key are created for Commerce Scale Unit, the client ID must be
accepted in Commerce. Go to System administration > Setup > Azure Active Director y
applications . Enter the application ID (client ID) in the Client ID column, enter descriptive text in the
Name column, and enter RetailSer viceAccount in the User ID column.

Configure a new Commerce Scale Unit


To create a functioning Commerce Scale Unit, complete the procedures in all sections of this topic until the
"Multiple-computer installation" section. To complete the configuration and installation, you must first do the
initial configuration in Headquarters. Next, you must complete the installation. Finally, you must return to
Headquarters to finish the configuration, so that Commerce Scale Unit works correctly.

IMPORTANT
For on-premises deployments, perform the following steps:
1. Go to Retail and Commerce > Headquar ters setup > Commerce scheduler > Channel database group .
2. On the Action pane, select New .
3. In the Name field, enter Default . Enter a description in the Description field, if needed.
4. In the Channel schema field, select AX7 .
5. In the Working folders field, select File storage .
6. On the Action Pane, select Save .

1. In Headquarters, go to Retail and Commerce > Headquar ters setup > Commerce scheduler >
Channel database .
2. On the Channel database page, on the Action Pane, select New .
3. In the Channel database ID field, enter a unique value.
4. In the Channel data group field, select the Default option. Select any option that has been created.

IMPORTANT
For on-premises deployments, this value will be the Default value that was previously described in this topic.

5. In the Type field, leave the default value (Channel database ) selected.
6. You can leave the Data sync inter val field blank. Alternatively, you can select a value in this field. For
example, in the demo data, the value D60-U15 specifies a 15-minute synchronization interval.
The Data sync inter val value determines how often the data is synchronized between the channel
database (Commerce Scale Unit) and Headquarters. If no value is entered, the default interval that is set up
in Commerce Scale Unit is used. This default interval is three minutes.
7. On the Commerce channel FastTab, select Add , and then, in the Channel field, select the appropriate
store channel. Repeat this step to add all the channels that should use this database.
You can also add channels that don't use this database. In this way, you keep the data for those channels in
the Commerce Scale Unit channel database. The channels that actively use this database can then access
that data locally.

IMPORTANT
For on-premises deployments, select the Download button on the Action pane and select Commerce Scale Unit
package . This will cause a known error and initiate the upload logic so that the following step in this document can
be correctly completed. Allow for at least one minute to pass while the upload logic completes.

8. On the Commerce Scale Unit package FastTab, in the Package reference field, select the appropriate
Commerce Scale Unit package. Each environment generates a base Commerce Scale Unit package.
Therefore, this field always contains at least one option.
9. On the Action Pane, select Save .
10. Go to Retail and Commerce > Channel setup > Channel profiles .
11. On the Action Pane, select New .
12. In the Name field, enter a unique name for the channel profile.

IMPORTANT
For on-premises deployments, any value can be entered in this field, however, the value Default is common.

13. On the Action Pane, select Save .


14. On the Profile proper ties FastTab for the new channel profile, select Add .
15. In the Proper ty key field, select Retail Ser ver URL .
16. In the Proper ty value field, enter the URL of the Retail Server that will be installed.
The standard format for the URL of Commerce Scale Unit is https://<Computer Name>:
<Por t>/RetailSer ver/Commerce . In this format, <Computer Name> is either the fully qualified
domain name (FQDN) of the computer where Commerce Scale Unit is installed or, for systems that aren't
joined to a domain, the full computer name. <Por t> is the port number that should be used in the
installation. The port number must be a value between 1 and 65535. If you're using the default HTTPS port
(443), you don't have to specify the port number.
17. On the Profile proper ties FastTab for the new channel profile, select Add .
18. In the Proper ty key field, select Cloud POS URL .
19. In the Proper ty value field, enter the URL of the Cloud POS instance that should be installed for
Commerce Scale Unit.
The standard format for the URL of Cloud POS is https://<Computer Name>:<Por t>/POS . In this
format, <Computer Name> is either the FQDN of the computer where the Commerce Scale Unit is
installed or, for systems that aren't joined to a domain, the full computer name. <Por t> is the port number
that will be used in the installation. The port number must be a value between 1 and 65535. If you're using
the default HTTPS port (443), you don't have to specify the port number.
20. On the Action Pane, select Save .

NOTE
If media is commonly used, it will be necessary to generate a Media Ser ver Base URL for the profile. For testing
and simplicity, the URL that exists for the Default Channel profile can be reused.
For on-premises deployments, the Media Ser ver Base URL will be where all media is stored for POS devices.

21. Go to Retail and Commerce > Channels > Stores > All stores .
22. Select the channel ID for the store that will use the new channel database.
23. On the details page for the selected store, on the Action Pane, select Edit .
24. On the General FastTab for the store, in the Live channel database field, select the channel database that
you created in step 3.
25. On the Action Pane, select Save .
26. On the General FastTab for the store, in the Channel profile field, select the channel profile that you
created in step 12.
27. Go to Retail and Commerce > Headquar ters setup > Commerce scheduler > Channel data
group .
28. Select the Default data group, and then, on the Action Pane, select Full data sync . In the Select a
distribution schedule field, select job 9999 , and then select OK . In the dialog box that appears, select OK
to confirm the full synchronization. All the data in the channel database is prepared for download.

IMPORTANT
For on-premises deployments, there is no Default channel data group. Create a new data group (and associate it to
the channel database and distribution schedule jobs).

Download the Commerce Scale Unit installer


1. In Headquarters, go to Retail and Commerce > Headquar ters setup > Commerce scheduler >
Channel database .
2. In the list of channel databases on the left, select the channel database that you created earlier.
3. On the Action Pane, select Download .
4. On the drop-down menu, select Configuration file .

NOTE
To help ensure that the Commerce Scale Unit installer correctly uses the configuration file (XML file), you must save
the configuration file to the same location as the installer.
For on-premises deployments, the configuration file (at this time) requires manual editing:
StoreSystemAosUrl should have the value used to access headquarters (AX). It is critical to keep a trailing slash at
the end of this URL (for example, https://myContosoURL.com/namespaces/AXSF/ ).
AADTokenIssuerPrefix should have the value https://NOTUSED.microsoft.com
TransactionServiceAzureAuthority should have the value https://<ADFS FQDN including .com>/adfs .
TransactionServiceAzureResource should have the base URL value of the StoreSystemAosUrl edited as shown
above. For instance, based on the above example https://myContosoURL.com would be used as the value,
removing the /namespaces/AXSF/ portion of the URL.

5. On the Notification bar that appears at the bottom of the Internet Explorer window, select Save . (The
Notification bar might appear in a different place in other browsers.)
Browsers might block the download pop-up that is generated. Select either Allow once or Options for
this site > Always allow . Then select Download again.
6. On the Action Pane, select Download .
7. On the drop-down menu, select Commerce Scale Unit package .
8. On the Notification bar that appears at the bottom of the Internet Explorer window, select Save . (The
Notification bar might appear in a different place in other browsers.)
The correct installation package is automatically selected for download, based on the Commerce Scale Unit
package on the selected channel database.
9. After the setup installer has been saved, on the Notification bar, select Run . (This step might differ,
depending on the type of browser.)
Run the Commerce Scale Unit installer

NOTE
If you will install and use Retail Cloud POS, you must initialize the configuration the first time that you run the installer, as
described in the following procedure.

Before you run the Commerce Scale Unit installer, make sure that all system requirements are met.

IMPORTANT
If you are installing Commerce Scale Unit for use with an on-premises environment, you must start it from a command line
using administrator privileges as follows: StoreSystemSetup.exe -UseAdfsAuthentication

The Commerce Scale Unit installer first extracts the associated files. It then begins the installation.
1. On the first page of the installer, select the components to install. You can install the following components:
Commerce channel database together with Async Client
Retail Server
Cloud POS

NOTE
To install Cloud POS, you must also select and install Retail Server. If you will use only Modern POS in the
store, clear the Retail Cloud POS check box, and continue with the installation process as it's described
here.
By default, the installer installs all components on one computer. To install the components across
multiple computers, you must complete additional manual steps. For more information, see the
"Multiple-computer installation" section.

After you've selected all the components to install, select Next to continue.
2. The installer validates that all prerequisites are met. If a valid version of Microsoft SQL Server isn't found,
the installer downloads and installs Microsoft SQL Server 2014 Express with Service Pack 2 (This
downloading feature is deprecated and it is critical to download and install the correct version of Microsoft
SQL Server for your implementation).

NOTE
To meet the prerequisites, SQL Server must have full-text search, and it must support, at a minimum, Transport
Layer Security (TLS) 1.2. For Microsoft SQL Server 2014, Service Pack 2 must be installed. For Microsoft SQL
Server 2016, Service Pack 1 is the minimum required. For Microsoft SQL 2017, manual installation of the CLR
types must be performed. It is critical to install a supported version of Microsoft SQL Server.
If a system restart is required, the installer will prompt the user. This prompt is based upon a Windows system
registry key that tells all applications if a restart is required. While it is recommended to restart prior to
continuing the installation, a restart is not mandatory and the installer can continue without restarting the
computer.

3. Verify the URL for Application Object Server (AOS), and then select Next . (The AOS URL is the URL that is
used to access Headquarters.)
NOTE
The Retail Server URL is automatically entered from the configuration file.

4. Select a valid Secure Sockets Layer (SSL) certificate to use for HTTPS communication.
The certificate must use private key storage, and server authentication must be listed in the enhanced key
usage property. Additionally, the certificate must be trusted locally, and it can't be expired. It must be stored
in the personal certificate store location on the local computer.
5. If a specific user is required, enter the user name and password that the application pool should run under.
By default, the installer automatically generates a service account to use. This approach is more secure and
is recommended.

NOTE
It is important to note that service accounts, out of box, still function under the same password policy that is
defined for all other accounts. This means that the minimum password age policy still applies to the Retail Server
service account and must be updated when necessary. By default, on Windows Server 2012 R2, this is typically 42
days. If the password does expire on a used service account, the Commerce Scale Unit components will fail to
continue functioning until the issue is resolved.

6. On the next page, enter the user account and password for the Retail Server application pool and Async
Client. By default, this account is automatically generated. However, you can manually enter the user
account and password.
7. Enter the HTTPS port to use, and verify that the host name of the computer is correct. Then select Next to
continue.

NOTE
The installer automatically enters the host name. If, for any reason, the host name must be changed for the
installation, change it here. The host name must be the FQDN of the system, and it must be entered in the Host
name field for the selected Store system entry.

8. Enter the application ID (client ID) and key (secret) that are associated with this Commerce Scale Unit
installation. Additionally, verify the channel database ID, which is automatically entered from the
configuration file. Then select Install . If you will use Retail Cloud POS, make sure that the Configure
Retail Cloud POS check box at the bottom of the page is selected. This configuration requests Azure AD
sign-in and automatically generates all required information in Azure, so that Retail Cloud POS can be used
on-premises. If you are installing Commerce Scale Unit for use with an on-premises environment, you
must clear this option.
For information about how to create web applications in Azure, see Create an Azure Active Directory
application.
IMPORTANT
When installing Commerce Scale Unit for use with an on-premises environment, Cloud POS does not require an
Azure or AD FS application to be configured, so it is important to unmark Configure Retail Cloud POS.
When installing Commerce Scale Unit for use with an on-premises environment, the Client ID (Application ID)
and Secret (Key) used will be the values generated by the PowerShell script performed in the configuration steps
performed in steps 6-8 in the Installation steps for Commerce channel components in an on-premises
environment topic. (Step 6 creates the Client ID and step 8 resets the Secret to be copied.)

When you create the Web App, the initial URI and URL don't have to be any specific value. Only the
application ID (client ID) and key (secret) that are created are important.
9. After the application ID (client ID) and key (secret) are created for Commerce Scale Unit, the application ID
(client ID) must be accepted in Commerce. Follow the next procedure to finish the configuration in
Headquarters.
10. After the installation is complete, the final health page appears. This page shows whether the installation
was successful. It also shows the health of each component, based on basic connection tests, and the
location of this topic. If the installation wasn't successful, the page shows the location of the log files. We
recommend that you keep this final health page open until you've completed the configuration of
Commerce Scale Unit and all components are working correctly (Requiring the completion of the following
section).
Finish the configuration in Headquarters
The last steps require validation and verification that the Azure application ID (client ID) and key (secret) are
correctly accepted in Headquarters, so that connections can be made between the environment and the new
Commerce Scale Unit.
1. After the application ID (client ID) and key (secret) are created for Commerce Scale Unit and entered in the
installer, the application ID (client ID) must be accepted in Headquarters.
In Headquarters, go to System administration > Setup > Azure Active Director y applications . Enter
the application ID (client ID) in the Client ID column, enter descriptive text in the Name column, and enter
RetailSer viceAccount in the User ID column.
2. If Cloud POS is configured for use, a client ID is shown at the end of the installation. You must add this
client ID to the Commerce shared parameters page in Commerce.

IMPORTANT
In an on-premises environment, this step is not required to be completed.

a. In Headquarters, go to Retail and Commerce > Headquar ters setup > Parameters > Commerce
shared parameters .
b. Select Identity providers .
c. On the Identity providers FastTab, select the provider that begins with HTTPS://sts.windows.net/ . The
values on the Relying par ties FastTab are set, based on your selection.
d. On the Relying par ties FastTab, select Add . Enter the client ID that is listed on the final health page of
the Commerce Scale Unit installer. Set the Type field to Public and the UserType field to Worker .
Then, on the Action Pane, select Save .
e. Select the new relying party, and then, on the Ser ver resource IDs FastTab, select Add . In the Ser ver
Resource ID column, enter https://retailstorescaleunit.retailserver.com .
f. On the Action Pane, select Save .
3. In Headquarters, go to Retail and Commerce > Headquar ters setup > Parameters > Commerce
shared parameters .
4. Select Identity providers .
5. On the Identity providers FastTab, select Add .
6. In the new Issuer row, enter the URL of the newly installed Commerce Scale Unit. At the end of the URL,
add /auth . The URL will resemble
https://<My Case-Sensitive Computer Name>:<Port Number>/RetailServer/auth .

NOTE
The URL described above is case sensitive. There will be a new identity provider line for each Commerce Scale Unit
that is installed. Each will have a URL that resembles this URL.

7. In the Name column, enter a description for the store that the URL belongs to.
8. In the Type column, select Open ID Connect .

NOTE
This new row must be duplicated for every Commerce Scale Unit installation (that is, for every unique URL).

9. On the Action Pane, select Save .


10. On the Identity providers FastTab, select the newly created line. The values on the Relying par ties
FastTab are set, based on your selection.
11. On the Relying par ties FastTab, select Add , and add the following two entries:
In the ClientId column, enter Cloud POS . Set the Type field to Public and the UserType field to
Worker .
In the ClientId column, enter Modern POS . Set the Type field to Public and the UserType field to
Worker .
12. On the Action Pane, select Save .
13. In Commerce, go to Retail and commerce > Retail and commerce IT > Distribution Schedule , and
run CDX Job 1110 .
14. When you've finished, return to the installer, and select Finish .
The final page of the installer includes valuable information that you can use to test and validate that all
components work correctly. Keep this page open until you've completed the validation.
NOTE
If the installer doesn't show a check mark for Retail Server or Async Client, wait 10 minutes so that any cached values can be
updated in the cloud. Then check again. If the installer still isn't fully successful, run a full synchronization on the new
channel database that this installation uses.
If you followed all the steps correctly, your configuration should have these characteristics:
In Azure, two web applications have been automatically generated through the installer:
Retail Store Scale Unit Cloud POS
Retail Store Scale Unit Retail Server for Cloud POS
In Azure, a web application (that is, an App registration in the new Azure portal) has been manually created for each
Commerce Scale Unit installation (for example, CommerceScaleUnitHouston). A key (secret) has been created that
can be used in the installer, as described earlier.
The application ID (client ID) of the manually created web application has been added to the Azure Active
Director y applications page in Commerce, as explained in step 1 of the preceding procedure.
The Cloud POS application ID (client ID) that was shown at the end of the Commerce Scale Unit installer has been
added on the Identity providers FastTab, as explained in the final steps of the "Run the Commerce Scale Unit
installer" section.

Multiple -computer installation


Only advanced users should install Commerce Scale Unit across multiple computers. The following set of
procedures explains how to install the Commerce channel database and Async Client on one computer, and Retail
Server and Cloud POS on a second computer. The instructions assume that both systems are on the same domain,
and that users for the services that will be installed have already been created on both systems. It's important that
you do all configuration in Headquarters.
Installation on the first computer
On the first computer, run the Commerce Scale Unit self-service installer as described earlier in this topic, but
make the following changes.
1. Select only Commerce channel database and Async Client as the components to install. Then select Next to
continue with the installation.

NOTE
You can use a generated service account for Async Client, because Async Client won't be accessed outside the
computer that it's installed on.

2. Enter the client ID and key (secret). Keep these details available, so that you can use them again on the
second computer.
3. After a client ID and key (secret) are created for Commerce Scale Unit, the client ID must be accepted in
Commerce. Go to System administration > Setup > Azure Active Director y applications . Enter the
client ID in the Client ID column, enter descriptive text in the Name column, and enter
RetailSer viceAccount in the User ID column.
4. When setup is successful, start SQL Server Configuration Manager.
5. Go to SQL Ser ver Network Configuration > Protocols for the SQL Server instance.
6. Right-click, and then select Proper ties .
7. In the Flags section, change the value of Set Force Encr yption to Yes .
8. In the Cer tificate section, select the SSL certificate on the drop-down menu. This SQL Server SSL
certificate is the same certificate that is used in the installer.
9. Select OK .
10. Go back to Protocols in SQL Server Configuration Manager, and enable the following protocols:
Named Pipes
TCP/IP
11. Right-click the TCP/IP protocol, and then select Proper ties .
12. In the IP Address section, scroll down the list to IPALL .
13. Enter TCPPor t = 1433 .
14. Select OK .
15. Start Microsoft Windows Firewall with Advanced Security.
16. In Windows Firewall, create an inbound rule to open TCP port 1433.
For detailed information about SQL Server and Windows Firewall, see Configure a Windows Firewall for Database
Engine Access.
Installation on the second computer
On the second computer, run the Commerce Scale Unit Self-service installer as described earlier in this topic, but
make the following changes.
1. Select only Retail Server and Cloud POS as the components to install. If only Retail Server must to be
installed, don't select Cloud POS. Then select Next to continue with the installation.
2. Enter the domain user credentials (user name and password) that have permission to access SQL Server on
the first computer. Then select Next .

NOTE
A generated service account can't be used, because Retail Server requires access to the SQL database on the first
computer. You must use a domain account.

3. Enter the same Client ID and key (secret) that are used on the first computer.

IMPORTANT
It's critical that you add this Client ID to Commerce headquarters as described earlier.

4. Select Configure Cloud POS , and then enter Azure AD credentials that have the correct permissions to
create Azure Web Apps.
For more information about Azure Web Apps, how to create them, and how to generate a new key (secret),
see Use portal to create an Azure Active Directory application and service principal that can access
resources. Note that the sign-in URL and the App ID URI are not important.
5. When setup is successful, don't exit the installer.
NOTE
At first, the health check ping won't be successful, because the database isn't yet set up correctly. After you've
completed the remaining steps of this procedure, you can test the health check again.

6. Start Microsoft Internet Information Ser vices (IIS) , select the Retail Ser ver website, and select the
Retail Ser ver web application.
7. Explore the working directory.
8. Open the Web.config file, and then, in the connectionStrings section, add Ser ver name . Ser ver name
is the name of the first computer where you installed components. Save the file.
9. If the certificate that is used isn't a valid, trusted certificate from a trusted authority, open CERTMGR.MSC,
and follow these steps:
a. Import the SQL Server SSL certificate that you created earlier, and add it to Trusted Root.
b. Open a Command Prompt window as an administrator, type IISRESET , and then press Enter.
10. If Cloud POS is configured for use, a client ID is shown. You must add this client ID to the Commerce
shared parameters page.
a. In Commerce, go to Retail and commerce > Headquar ters setup > Parameters > Commerce
shared parameters .
b. Select Identity providers .
c. On the Identity providers FastTab, select the provider that begins with HTTPS://sts.windows.net/ . The
values on the Relying par ties FastTab are set, based on your selection.
d. On the Relying par ties FastTab, select Add . Enter the client ID that is listed in the Commerce Scale Unit
installer. Set the Type field to Public and the UserType field to Worker . Then, on the Action Pane,
select Save .
e. Select the new relying party, and then, on the Ser ver resource IDs FastTab, select Add . In the Ser ver
Resource ID column, enter https://retailstorescaleunit.retailserver.com .
f. On the Action Pane, select Save .
11. In Commerce, go to Retail and commerce > Headquar ters setup > Commerce scheduler >
Channel database , and follow these steps:
a. Select the channel database that you created at the beginning of this topic.
b. On the Action Pane, select Full Sync > Job 9999 . Full synchronization might require several minutes.
c. In the Commerce Scale Unit installer, retest to verify that all functionality is working correctly.
12. Start Cloud POS from the computer that you're using for POS operations. (This computer is a third
computer that is separate from the Commerce Scale Unit systems.)
13. Activate the Cloud POS device that you're using for this computer.
14. Do a simple sale to verify full end-to-end functionality.
Help secure Commerce Scale Unit
According to current security standards, the following options should be set in a production environment:
You should completely disable SSL (v2 and v3) on the computer.
You should enable and use only TLS version 1.2 (or the current highest version).
NOTE
By default, SSL and all versions of TLS except TLS 1.2 are disabled. To edit or enable these settings, follow these
steps:
1. Press the Windows logo key+R to open a Run window.
2. In the Open field, enter Regedit , and then select OK .
3. In the User Account Control window, select Yes (if this step is required), and then, in the new Registr y
Editor window, go to
HKEY_LOCAL_MACHINE\System\CurrentControlSet\SecurityProviders\SCHANNEL\Protocols .
4. The following keys have been automatically entered to enable only TLS 1.2:
TLS 1.2\Server:Enabled=1
TLS 1.2\Server:DisabledByDefault=0
TLS 1.2\Client:Enabled=1
TLS 1.2\Client:DisabledByDefault=0
TLS 1.1\Server:Enabled=0
TLS 1.1\Client:Enabled=0
TLS 1.0\Server:Enabled=0
TLS 1.0\Client:Enabled=0
SSL 3.0\Server:Enabled=0
SSL 3.0\Client:Enabled=0
SSL 2.0\Server:Enabled=0
SSL 2.0\Client:Enabled=0

No additional network ports should be open, unless they are required for known, specified reasons.
You must disable cross-origin resource sharing, and you must specify the allowed origins that are accepted.
You should use only trusted certificate authorities to obtain certificates that will be used on Commerce
Scale Unit computers.

IMPORTANT
It's critical that you review security guidelines for IIS and the Payment Card Industry (PCI) requirements.

Troubleshoot Commerce Scale Unit


Here is a checklist of things to verify:
1. In Commerce, on the Commerce shared parameters page, verify that the correct client ID has been added
to the Relying par ties FastTab. Additionally, verify that the correct
https://retailstorescaleunit.retailserver.com entry has been added to the Ser ver resource IDs FastTab.
2. In Commerce, verify that every client ID that was generated for each store exists on the Azure Active
Director y applications page.
3. In Commerce, on the Channel profile page, verify that the URLs are correct. (In other words, verify that the
computer name in each URL is correct, the URL is correctly formatted, and so on.)
4. In Commerce, on the Channel database page, verify that full synchronization correctly occurred for the new
channel database.
5. Verify that the store is correctly configured to use the new channel database.
If the Retail Server stops functioning after a period of time, there are two simple things to verify:
Verify if the password policy requires the service account that was generated to change the password
(password expiration).
Re-run the same installer over the current installation (idempotent), which will update a service account's
password or allow the user to update the selected account's password.
Uninstall Commerce Scale Unit
Use Control Panel in Microsoft Windows to uninstall Commerce Scale Unit components.
1. Press the Windows logo key, and then enter Control Panel in the search box. In the search results, select
Control Panel .
2. In Control Panel, select Programs > Uninstall a program .
3. In the Programs and Features window, select Microsoft Dynamics 365 Commerce Scale Unit , and
then, above the list of programs, select Uninstall .
4. Wait for the uninstaller to finish removing the program.
Configure, install, and activate Modern POS (MPOS)
3/19/2020 • 19 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to configure, download, and install Modern POS on various platforms. It then describes
how to activate Modern POS through device activation.

Technology
The self-service process lets you download the appropriate version of the Modern POS installer and install it on the
physical device that you want to use as the point of sale (POS) register. Device activation is the main onboarding
step that ties the physical device to a register in Headquarters. Here are the main technical functions of this feature:
Tie a physical device to a business entity (register).
Provide enhanced security through Microsoft Azure Active Directory (Azure AD) and a device token/ID.
Stop unauthorized remote use of Modern POS. (In other words, deactivate a device remotely.)
Initialize settings for easy Modern POS functioning (number sequence, hardware profile, merchant information)
as the first touchpoint of the POS.
Comply with payment card industry (PCI) standards, and report on device information from Headquarters.

NOTE
If you are installing Modern POS for use with an on-premises environment, Modern POS does not use Azure Active Directory
credentials for device activation.

Setup
Before you start the steps that are outlined in this topic, follow these steps.
Verify that you have credentials to sign in to Headquarters.
Verify that you have administrative or root access to install Modern POS on a device.
Verify that you can access the Commerce Scale Unit from the device.
Verify that the environment contains the Commerce permission groups and jobs in the Human resources
module. These permission groups and jobs should have been installed as part of the demo data.

Download and install Modern POS


Verify that the device is correctly configured
1. In Headquarters, go to Retail and Commerce > Channels > Channel deployment .
2. On the Channel deployment page, select the Registers tile.
3. On the Registers page, select a store register.
NOTE
The demo data thoroughly defines the Houston store and registers for self-service. To find the Houston registers,
enter Houston in the filter at the top of the list of devices.

4. Select a register by selecting the register number in the Register number column.

NOTE
In the Houston store, register Houston-3 is well defined and is therefore useful as an example.

5. On the page for the register, under General , verify that the Suppor t offline option is set to No .

NOTE
To use offline support, on the Action Pane, select Edit , and then set Suppor t offline option to Yes .

Download the Modern POS installer


1. On the Welcome page, use the menu in the upper left to go to Retail and Commerce > Channels >
Channel deployment .
2. On the Channel deployment page, select the Devices tile.
3. Select a device.

NOTE
The Houston devices are well defined. Houston-3 is useful as an example for a Microsoft Windows desktop or
tablet. Houston-21 is useful as an example for a Windows Phone.
When you select a device, the Download button on the Action Pane becomes available.

4. Select Download , and then select Configuration file .

NOTE
Browsers might block the download pop-up that is generated. You must select either Allow once or Options for
this site > Always allow . Then, while the device is still selected, select Download again.
The configuration file must be saved to the same location as the Modern POS installer. For security reasons, delete
this file after installation is completed.

5. On the Notification bar that appears at the bottom of the Internet Explorer window, select Save . (The
Notification bar might appear in a different place in other browsers.)
6. Select Download , and then select Retail Modern POS .
NOTE
Browsers might block the download pop-up that is generated. You must select either Allow once or Options for
this site > Always allow . Then, while the device is still selected, select Download again.
The installation package that you must use varies, depending on whether you require offline support, and whether
the device that Modern POS will be installed on is a Windows tablet or a phone device (such as a Windows Phone,
an Android device, or an iOS device). The correct package is automatically selected for download, based on the
register settings and the application type that is set for the device. If the offline package is selected for a Windows
tablet, but Microsoft SQL Server isn't already installed (or if it doesn't meet the requirements for the offline
package), SQL Server is downloaded and installed silently.

7. On the Notification bar that appears at the bottom of the Internet Explorer window, select Save . (The
Notification bar might appear in a different place in other browsers.)
8. After the setup installer has been saved, on the Notification bar, select Run . (This step might differ, depending
on your browser.)
Run the installer on a Windows computer

NOTE
Before you run the Modern POS installer, make sure that all system requirements are met.
The installer will sideload a modern application. Therefore, a Group Policy entry must be set to allow for sideloaded
applications. The installer will change the associated registry key as follows to allow for this installation:
Path: HKLM:SoftwarePoliciesMicrosoftWindowsAppx
Proper ty: AllowAllTrustedApps
Value: 1

If you are installing Modern POS for use with an on-premises environment, you must start the installer from a
command line as follows:

ModernPosSetupOffline.exe -UseAdfsAuthentication

The Modern POS installer first extracts the associated files and then starts the installation.
1. The installer validates that all prerequisites are met.

NOTE
If a system restart is required, the installer informs you about this requirement, but the installation can typically
continue.
A sideloaded installation of Modern POS requires a Group Policy change. The installer informs you if this change is
required and then makes the change automatically.

2. If you selected offline support, but a valid version of SQL Server isn't found, the installer downloads and
installs Microsoft SQL Server 2014 Express with Service Pack 2 (SP2). To meet the prerequisites, SQL Server
must have Full-text search installed. Additionally, a minimum of SP2 must be installed for Microsoft SQL
Server 2014, or a minimum of Service Pack 3 (SP3) must be installed for Microsoft SQL Server 2012.
NOTE
The installer tries to download the correct language. However, if you require a specific language, we highly
recommend that you manually install SQL Server. If the installer can't correctly determine the language, it installs
the English version of SQL Server 2014 Express with SP2 by default. Typically, after the SQL installation is
completed, the system requires a restart before the installation of Modern POS can continue.
This process might require a long time, depending on the speed of the computer and the Internet connection. If a
prerequisite fails during this step, first retry the installer. If the installer continues to fail, see the Troubleshooting
section of this topic.

3. The installer installs Modern POS.


4. On the page that states that installation was successful, select Close to exit the installer.
You can now start the program.

NOTE
This installation occurs only for the administrator user who ran the installer. For all other users, a desktop icon to install
Modern POS is created. Every time that a user signs in, he or she must double-click this icon. The program will then be
installed or updated, as required. If a user doesn't use the desktop icon after an update, the POS client will request that the
user run from the desktop icon instead to update correctly prior to running.

Run the installer on any other device (Windows Phone, Google Android device, or Apple iOS device )
1. If the application wasn't downloaded directly to the device, transfer the downloaded app file and the
associated configuration file to the same folder on the device. Depending on the type of device, the app file
will be an APPX, APK, or IPA file.

NOTE
This step can be done in various ways. For example, the files can be accessed through a shared folder, transferred via
USB cable, or securely mailed to the user's device.

2. Use a file explorer on the device to browse to the app directory.


3. Tap the app to begin application installation. (If the configuration file was saved to the same location, the
Commerce Scale Unit URL will be automatically entered when you start the application and begin device
activation.)

NOTE
Some devices require that you double-tap the file to begin application installation. Some devices might not notify you
that an application has been installed. On those devices, we recommend that you look at the application list to verify
that the application was correctly installed.

4. When the installation is completed, you should be able to start the application from the application list on
the device. For example, after you install the application on a Windows Phone, you can start it from the home
screen tiles list.
You can now start the program.

Create a worker
For this topic, we have already created workers and assigned them to the Houston address book in the demo data
that is provided. Therefore, this topic will use pre-generated data.
Create a worker
1. Go to Retail and Commerce > Employees > Workers .
2. On the Action Pane, select New to create a new employee.
3. Enter the first and last name. For example, enter John as the first name and Smith as the last name.
4. Verify that the Legal entity field is set to USRT , the Worker type field is set to Employee , and the
Employment star t date field is set to the current date at 12 AM, so that the worker's employment starts
immediately.
5. Select the Assign a position check box. Select position number 000544 , which is the Store manager position.
6. Set the Personnel action type field to Hire Action to hire a new employee immediately.
7. Select Continue .
8. On the Action Pane, select Complete to finish creating the new worker.
9. Return to the worker list. Search for the newly created worker (for example, John Smith). Select the worker's
name to see the details of the new worker.
10. On the Action Pane, select Edit .
11. Verify that the language for the worker is en-us .
12. Under Worker summar y , in the Address books field, select the Houston store.
13. On the Commerce tab, you can reset the POS password. For this tutorial, reset the password to 123 .
14. On the Commerce tab, under Screen layout , assign a screen layout. For example, select F2MP16:9M
(Fabrikam MPOS Manager (16:9) ).
15. On the Action Pane, select Save .
16. Go to Retail and Commerce > Periodic > Distribution schedule .
17. Select the 1060 – Staff job, and then, on the Action Pane, select Run now to sync the worker data to the
channel database.
18. After the new worker has been created and synced to stores, worker John Smith can sign in to any POS device
that is used in the HOUSTON store that he is assigned to, and he can perform transactions on that device.
However, the device must be activated first. The following section explains how to activate a device for a new
worker.
Map an Azure AD account to a worker who has POS permissions for device activation
You must complete this procedure before you activate Modern POS for a new worker.
1. In Commerce, from the Worker page, open the Worker details page for the worker that you created in the
previous procedure.
2. On the Action Pane, select Edit .
3. On the Commerce tab, select the POS permissions link. Under POS permission group , verify that the
value is Manager .
4. When you've finished, return to the Worker details page for the new worker.

NOTE
To return to the Worker details page, select the Close button (X ) on the right side of the Action Pane.

5. On the Action Pane, select Commerce , and then select Associate existing identity .
6. In the dialog box that appears, select the Azure AD account that is named admin AX Admin . (If an
alternative administrator Azure AD account has been created, select that account instead.)
7. Select OK . In the demo data, the Azure AD account that is associated with the administrator account in
Headquarters is your administrator Azure AD account.
8. On the Action Pane, select Save , and then refresh the page. The External identity section should be now
updated with the new information.

NOTE
The External identifier field will remain empty. This behavior is expected. Therefore, you can ignore it.

This procedure should be completed before you activate Retail Cloud POS or Modern POS. For more information,
see Manage activation accounts and validate devices.
Run the Validate Devices for Activation check
1. In Headquarters, open the Device page (Retail and Commerce > Setup POS > Devices ).
2. Select the device to validate for device activation, and then select Validate Devices for Activation . For
example, select device HOUSTON-3 .
3. In the dialog box that appears, select the worker to validate the device for (that is, the worker that you mapped to
the Azure AD account in the previous procedure). For example, select worker 000160 .
4. Select OK , and make sure that you receive the following message: "Pre-Activation validation completed for
Device HOUSTON-3 and Staff 000160. Validation: Passed"

Activate a device
1. Start Modern POS on your computer. Read the instructions on the Before you star t page, and make sure that
they are completed. Then select Next .
2. Select Activate . You're redirected to the Azure AD sign-in page.
3. Enter the Azure AD account that you mapped earlier, such as admin@<MyCompany>.onmicrosoft.com , and the
password.
4. When activation is completed, select Get Star ted .
5. Sign in to Modern POS by using worker account 000160 and the password 123 .
The device should now be activated and ready to use.

Update the Modern POS application


NOTE
To learn more about deployable packages, see the article Apply a deployable package.

1. After a Modern POS application is uploaded into the environment, the version of the package can be selected on
the device. The package listings should include the new uploaded application.
2. To update the Modern POS application, follow the steps in the Download and install Modern POS section. To do
an in-place update, just run the newer version of the self-service installer. Uninstallation isn't required or
recommended. Device activation status will be maintained after the update.
3. The installer will use the currently installed configuration settings. If the configuration file has changed, because
of various configuration changes in Commerce, an update won't change the Modern POS application settings.

Troubleshooting
Troubleshoot installation
Your browser blocks the download pop-up that is generated.
Solution: Select either Allow once or Options for this site > Always allow (or the equivalent
commands in the browser that you're using). Then, while the correct register is still selected, select
Download again.
The installation package that you must use depends on whether you require offline support. The correct
package is automatically selected for download. For the offline package, SQL Server must be installed and
must meet the requirements for the offline package.
Solution: No action is required. If SQL Server isn't already installed (or if it doesn't meet the requirements),
it's downloaded and installed. The installer gives generic information about the download and installation of
SQL Server Express 2014. This installation might require a long time.
The installation occurs only for the administrator user who ran the installer, but not for any other users.
Solution: The installer generates a desktop icon that is used to install, upgrade, and run Modern POS. This
icon is generated for every user on the computer. When a user who must install Modern POS double-clicks
this icon, the program is installed. The user can then start to use Modern POS.
SQL Server isn't successfully downloaded and installed through the self-service Modern POS installer.
Solution 1: A list of reasons shows the prerequisites that failed. If the list includes SMO or SQL
Management Objects , first try to run the installer again. SQL Server Management Objects (SMO) are
installed during SQL Server installation. Therefore, it's possible that the operating system didn't pick up
the registration of the executable program that you used. When you run the installer a second time, the
prerequisites are retested, and the prerequisite check should correctly verify the required executable
program. If the installer continues to fail, restart the system to fully complete the registration of SQL
Server, and then rerun the installer.
Solution 2: Manually download and install SQL Server (Microsoft SQL Server Express or another
version) by using Advanced Tools. During installation, select Full-text search as an additional feature.
The installation of Modern POS fails, because the registration of performance (perf) counters failed.
Solution: Follow these steps to fix this issue:
1. Open a Command Prompt window as an administrator.
2. Enter the following command.

lodctr /s:"perf_backup.txt"

3. Enter the following command.

lodctr /R

4. If the system doesn't rebuild the performance counter settings from the system backup, rerun the
lodctr /R command.
5. Rerun the Modern POS installer.
If you're using a downloaded virtual hard disk (VHD) instead of a cloud-hosted environment, the downloader
might fail.
Solution 1: In a downloaded VHD, the Azure storage emulator must be installed and must be
running correctly. Otherwise, the self-service packages can't be downloaded correctly.
Solution 2: A failure might have occurred during the process of integrating the VHD into Microsoft
Hyper-V. You must manually edit permissions before the packages can be downloaded correctly.
Follow these steps:
1. In File Explorer, browse to C:\Microsoft Dynamics 365\70\Retail Ser ver .
2. Right-click the SelfSer vicePackages folder, and then select Proper ties .
3. On the Security tab, select Edit .
4. In the Permissions for SelfSer viceDeployment dialog box, select Add .
5. In the Select Users, Computers, Ser vice Accounts, or Groups dialog box, select Locations .
6. In the Locations dialog box, select the first entry in the list (the local computer), and then select
OK .
7. In the Select Users, Computers, Ser vice Accounts, or Groups dialog box, enter the name
IIS_IUSRS , and then select Check names . The object name should be changed to IIS_IUSRS .
Select OK .
8. In the Permissions for SelfSer viceDeployment dialog box, select the new IIS_ISURS user.
Under Permissions for IIS_IUSRS , select Allow for the Full control permission. Select OK .
9. In the Open permission dialog box, select OK .
The latest iOS version does not support your self-signed certificate.
Solution 1: Utilize a domain and generate a proper domain-based certificate.
Solution 2: Download the open source OpenSSL library and perform the following after completing
installation:
1. Using PowerShell, create a private key for the root Certificate Authority (CA) using a command such
as $ openssl genrsa -des3 -out rootCA.key 2048 . 2. You will be prompted for a password, which
must be remembered for later usage. 3. Next, generate the root certificate using a command such as $
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem .
There will be a prompt for the password entered previously and some basic certificate information.

NOTE
The number of days the certificate is valid for can be altered. In the above example this is 1024 days.

d. Create a new info.ext file and enter the following details:


keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
subjectAltName = @alt_names
[alt_names]
DNS.1 = <FULLY QUALIFIED DOMAIN NAME OF HOST COMPUTER>
e. Generate the signing request and private key using a command such as openssl req -new -
nodes -out ser ver.csr -newkey rsa:2048 -keyout ser ver.key .
f. Issue the certificate using the previously generated root certificate using a command such as $
openssl x509 -req -in ser ver.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -
out ser ver.cr t -days 500 -sha256 -extfile info.ext . There will be another prompt for the root
key password and you will need to specify the number of days that the certificate is valid (500 days
in this example).
g. Generate the IIS certificate using a command such as $ openssl pkcs12 -inkey ser ver.key -in
ser ver.cr t -expor t -out ser ver.pfx . This command will request a new password, which will be
used later when the certificate is imported.
h. Open Cer tmgr.msc and go to Trusted Root Cer tificate Authorities . Use the Impor t action to
import the previously generated rootCA.pem root CA file.
i. In the same window, go to Personal and use the Impor t action to import the previously
generated ser ver.pfx .
j. Next, open the IIS Manager , select the RetailHardwareStationWebSite and select Edit
Bindings from the right-most menu.
k. In the new window, select the HTTPS site binding, and the select Edit . In the final screen, select the
newly installed certificate and select OK .
l. Verify the certificate is correctly being used. In a web browser, go to
"https://<hostname>/HardwareStation/ping".
m. Install the certificate on the iOS device:
Copy the rootCA.pem file and rename the copy to rootCA.cr t .
Using OneDrive or another file hosting location, upload the rootCA.cr t and ser ver.cr t so that
they can be downloaded onto the iOS device.
n. On the iOS device, go to Settings > General > Profiles and select the downloaded profile for
the rootCA.cr t . Select Install .
o. Validate that the profile status updates to Verified . Repeat the same process for the ser ver.cr t file.
p. Go to Settings > General > About > Cer tificate Trust Settings and enable the installed root
certificate.
q. On the iOS device, use the hardware station ping URL specified previously to verify that the
certificate is trusted.
r. Open the POS application in Non-drawer mode and pair to the hardware station as typically
performed.
Troubleshoot device activation for Modern POS
The Microsoft account (Azure AD) sign-in page doesn't open.
Solution: The Azure AD endpoint might be unreachable. Wait a few minutes, and then try again.
After you enter the Azure AD account, you receive an error message that states that the user isn't authorized.
Solution: Verify that the Azure AD user is mapped to a worker who has POS permission to activate devices.
The Manage device permission for the worker should be set to Yes .
Device activation isn't completed. It fails during one of the steps.
Solution: Follow this checklist to verify that all data is correct:
Complete the Validate Devices for Activation check in Headquarters, and make sure that the device passes
validation.
On the client computer where you're activating the device, access the Commerce Scale Unit URL health
check, and make sure that the health check is passed. Use the following format for the URL:
https://MyCompanyNameret.axcloud.dynamics.com/commerce/healthcheck?testname=ping
The worker must be mapped to an Azure AD account (under External identity ).
The Azure AD account that is mapped must belong to the same tenant.
To map the worker to the Azure AD account, sign in to Headquarters by using the Admin account for
Microsoft Dynamics Lifecycle Services (LCS).
Make sure that the worker is set up as a Commerce user in the Manager role. (This item is checked by
validation.)
Make sure that the channel is published. (This item is checked by validation.)
Make sure that the channel database has the synced data from Headquarters, and that download jobs are
running.
Set up the hardware profile under Registers . (This item is checked by validation.)
Make sure that the register and store have a screen layout. (This item is checked by validation.)
Make sure that a primary address is set up for the legal entity.
Make sure that the language is set up for the Commerce Data Exchange: Real-time Service user profile
(JBB in the demo data).
Make sure that the Real-time Service profile has the correct access.
Make sure that the electronic funds transfer (EFT) configuration value is present.
Troubleshoot Modern POS connectivity
On a single-computer system, such as a developer topology or a demo environment, or when Commerce Scale Unit
and Modern POS are installed on the same computer, Modern POS can't complete device activation.
Solution: This issue occurs because Modern POS can't make network calls to the same computer (that is, calls to
itself). To mitigate this issue, you must enable an AppContainer loopback exception so that communications can
occur to the same computer. Various applications will help enabling this loopback for Modern POS. For more
information about loopback, see How to enable loopback and troubleshoot network isolation.

Additional resources
Install the POS layout designer
Manage activation accounts and validate devices
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how an IT Pro can set up Commerce activation accounts for workers to activate Modern POS or
Cloud POS devices.

Setting up a device activation account for a single worker


This procedure should be completed before you activate Cloud POS.
1. In Commerce, from the Workers page, open the Worker details page for the worker to assign AAD device
activation privileges to. Click Edit .
2. On the Retail and Commerce tab, click the POS permissions link. Make sure that the worker is in the
Manager Permission group, or that Manage Devices is set to Yes for the worker.
3. On the Commerce tab, under External identity , update the values for the following fields:
Alias
UPN
External identifier
4. You can update the External identity fields by using an existing AAD account or creating a new AAD
account. To update the fields, access the External identity options from the Retail and Commerce main
menu (Retail and Commerce > Associate existing identity or Retail and Commerce > Create new
identity ).
5. To use an existing AAD account, select Retail and Commerce > Associate existing identity . In the slider,
click the AAD account that has the correct name, and then click OK . The AAD account that is associated with
that name and alias is the user's Activation account for Modern POS.
6. Complete and save the changes on the Workers page, and then refresh the page. The section that contains
external identity information should be updated with the new information. The mapped AAD account is now
your Activation account for Cloud POS and Modern POS. This account is mapped to a worker for the
required POS permissions. You can use this AAD account for Modern POS or Cloud POS activation.
7. The Create external identity feature creates a new AAD account for you by using the alias that you enter. To
update the fields, access the External identity options from the Retail and Commerce main menu (Retail
and Commerce > Create new identity ).
8. You can either manually enter the alias to generate or use the Reset to default button. Then manually enter
a strong password, and click OK .
9. If the worker is created successfully, you receive a message on the Workers page. The mapped AAD account
is now the user's Activation account for Cloud POS and Modern POS. This account is mapped to a worker for
the required POS permissions. You can use this AAD account for Modern POS or Cloud POS activation.
Setting up device activation accounts for multiple workers
You can set up activation accounts for multiple workers in bulk. However, this functionality is supported only if
you're creating new external identities, not if you're associating identities.
1. In the workers form, select the list of workers to set the activation account for.
2. Click Retail and Commerce > Create external identity to update the fields. Any AAD accounts that are
associated with the workers appear in this pane.

NOTE
These accounts aren't device activation accounts until you map them by using the external identity flow options.

3. If you want to use the existing AAD accounts as activation accounts, you can't map them in bulk. Cancel the
selection of those workers, and then map them individually by using Use existing external identity .
4. To create new AAD accounts and associate them with the workers, so that they can be used as activation
accounts, update the Alias and Password fields, and then click OK . In the main worker form, you receive a
message as activation accounts are created for each worker.

Run the Validate Devices for Activation check at headquarters


Before handing an activation account to a worker, an IT Pro must run the Validate devices check for the devices
assigned to the worker. This will help identify any potential failures of device activation in advance and fix it before it
is given to the worker.
1. Open the Device page in HQ (Retail and commerce > Channel setup > POS setup > Devices ).
2. Select the device to validate for device activation, and then click Validate devices for activation . For example,
select device HOUSTON-2 .
3. In the dialog box that appears, select the worker to validate the device for (that is, the worker that you mapped to
the AAD account in the previous procedure). For example, select worker 000160 .
4. Click OK , and make sure that you receive a message similar to the following: "Pre-Activation validation
completed for Device HOUSTON-2 and Staff 000160. Validation: Passed"

Checklist to follow before activation


1. Complete the Validate devices for activation check in HQ, and make sure that the device passes validation.
2. On the client machine where you're activating the device, access the Commerce Scale Unit URL health check, and
make sure that the health check is passed. Use the following format:
https://clxtestax404ret.cloud.test.dynamics.com/en/healthcheck?testname=ping
3. The worker must be mapped to an AAD account (under External identity ).
4. The AAD account to map must belong to the same tenant.
5. To map the worker to the AAD account, sign in to HQ by using the Admin account for Microsoft Dynamics
Lifecycle Services (LCS).
6. Make sure that the worker is set up as a Commerce user in the Manager role (checked by validation).
7. Make sure that the channel data is present in the channel database.
8. Set up the hardware profile under Registers > Register (checked by validation).
9. Make sure that the register and store have a screen layout (checked by validation).
10. Make sure that a primary address is set up for the legal entity.
11. Make sure that the electronic funds transfer (EFT) configuration value is present.
Point of sale (POS) device activation
2/14/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article explains the new guided device activation for Cloud POS and Modern POS, and explains the client
simplifications that help users easily activate devices without having to manually enter register and device ID
information.

Checklist to follow before activation


1. Complete the Validate devices for activation check in Headquarters (HQ), and make sure that the device
passes validation.
2. On the client machine where you're activating the device, access the Commerce Scale Unit URL health check,
and make sure that the health check is passed. Use the following format:
https://clxtestax404ret.cloud.test.dynamics.com/en/healthcheck?testname=ping
3. The worker must be mapped to a Microsoft Azure Active Directory (AAD) account (under External
identity ).
4. The AAD account to map must belong to the same tenant.
5. To map the worker to the AAD account, sign in to HQ by using the Admin account for Microsoft Dynamics
Lifecycle Services (LCS).
6. Make sure that the worker is set up as a user in the Manager role (checked by validation).
7. Make sure that the channel is published (checked by validation).
8. Make sure that the channel database has the synced data from HQ, and that download jobs are running. To
check this, run the following command in the channel database for the store.

select * from crt.STORAGELOOKUPVIEW

Make sure that data is returned, and that the result isn't empty.
9. Set up the hardware profile under Register (checked by validation).
10. Make sure that the register and store have a screen layout (checked by validation).
11. Make sure that a primary address is set up for the legal entity.
12. Make sure that the language is set up for the Commerce Data Exchange: Real-time Service user profile (JBB
in the demo data).
13. Make sure that the Real-time Service profile has the correct access.
14. Make sure that the electronic funds transfer (EFT) configuration value is present.
Activate a Modern POS or Cloud POS device by using guided activation
1. Open the initial device activation page for Modern POS or Cloud POS. You're prompted to sign in.
2. On the Before you star t page, follow the instructions, and then click Next .

3. Start Cloud POS or Modern POS.


4. Use your AAD credentials to sign in. The AAD account must already be mapped. For instructions, see
Configure, install, and activate Modern POS (MPOS). For Cloud POS, the server URL is automatically entered
in the address bar. For Modern POS, you must copy and paste the server URL.

5. Click Next to populate the list of stores.


6. Select the correct store in the list.
7. Select the correct register and device.

NOTE
The device can be Pending , De-activated , or Activated . Alternatively, if you turned on the HQ Allow devices to
be associated to registers from store setting, you might see a list of registers that have no device associated
with them.

8. Click Activate . The device should be activated.


Create a device ID from Modern POS and Cloud POS
We have added features to create a device (that is, automatically generate a device ID) from Modern POS or Cloud
POS, so that the device can be associated with a register that doesn't yet have devices mapped to it. This
functionality can be used in Modern POS only if you set the HQ settings as follows.
1. Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce shared parameters >
General .
2. Under Devices, set Allow register association from device to Yes .
3. In the Modern POS client, you can now add a device when you select a register that is listed as No associated
devices in the guided activation flow.
4. After you select the register, you can either select a device that doesn't have register mapping or use the Or,
Add a Device link.
5. Click the Or, Add a Device link, and then either enter the new device ID or select Automatically create a
new device ID for me .
6. Click Activate to create a new device ID, associate it with the selected register, and complete the activation.

Activate the device for Modern POS by using a configuration file


IT Pros can now easily configure device activation for Modern POS by using a configuration file that can be
downloaded together with Modern POS. This file is now available on the Devices page for the appropriate Modern
POS device (Retail and Commerce > Channel setup > POS setup > Devices ).
The configuration file is used to enter the Commerce Scale Unit URL, device ID, and register number for device
activation. During installation, the installer selects this file and populates the values for device activation.

IMPORTANT
The user must put the file in the same folder as the Modern POS self-service package and run the .exe file.

Modern POS starts in Manual entry mode, and the Commerce Scale Unit URL, device ID, and register ID are pre-
populated for activation.

Activate the device for Cloud POS by using syntactic sugar


IT Pros can now configure device activation for Cloud POS by providing the device ID and register ID as the part of
the Cloud POS URL. The link is available in the Cloud POS URL field on the Devices page. (Retail and
Commerce > Channel setup > POS setup > Devices ).
Cloud POS starts in Manual entry mode, and the Commerce Scale Unit URL, device ID, and register ID are pre-
populated for activation.
Security best practices for Cloud POS in shared
environments
2/1/2020 • 17 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Retail Cloud POS is a web application that runs in the context of a browser. This topic provides recommendations
that can help secure Retail Cloud POS in a shared environment.

Background
Retail Cloud POS is a web application that runs in the context of a web browser. Therefore, it's vulnerable to attack
when a user can run any script in the context of the web application. One requirement for such attacks is that the
user must have physical access to the computer, either in person or by using Remote Desktop Connection.
Vulnerability to attack is an existing issue in most browsers that provide developer tools, and that enable scripts to
be run without sufficient privilege control. Because the web application will have little influence over its hosting
environment, one way to mitigate security issues is to add defense-in-depth. The defense-in-depth can be built by
taking advantage of the restrictive policies of both the browser and the operating system.

Hardening instructions for a Retail Cloud POS computer


Here are some of the defense-in-depth recommendations for the operating system and/or browser that will have
an activated instance of Retail Cloud POS. The settings should be enabled or set by a high-privileged account for
the operating system. Retail Cloud POS should be used by a low-privileged account that can't override those
settings. We recommend that you enable all the following settings. Otherwise, you could create a security loophole
that will be prone to security exploitation.
Required - Disable script execution in the browser's address bar.
Required - Disable the browser's developer console.
Required - Retail Cloud POS should be accessed by a low-privileged user.
Required - Set up group policies to enable a kiosk session.
Recommended - Set up a proxy to access only whitelisted websites.

Disable script execution in the address bar of the browser that runs
Retail Cloud POS
Internet Explorer
There is no option to disable script execution in the address bar in Internet Explorer. One alternative is to hide the
address bar itself.
1. Create a shortcut for the Retail Cloud POS URL, and copy it to each store worker's Microsoft Windows desktop.
2. Run regedit.exe to change the registry to disable the Internet Explorer address bar.
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\ToolBars\Restrictions]
"NoNavBar"=dword:00000001
Microsoft Edge
By design, Microsoft Edge prevents script execution in the address bar. Therefore, no action is required.

Disable the developer console in the browser that runs Retail Cloud
POS
Internet Explorer
Use Group Policy Editor to enable the following group policy to disable the Internet Explorer developer console:
\Administrative Templates\Windows Components\Internet Explorer\Toolbars\Turn off Developer Tools="Enabled"
Microsoft Edge
Run regedit.exe to change the registry to disable the developer console.
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MicrosoftEdge\F12]
"AllowDeveloperTools"=dword:00000000

Retail Cloud POS should be accessed by a low-privileged user


A point of sale (POS) user must be a non-administrative account that doesn't have privileges to change applied
policies.

Set up group policies to enable a kiosk session


We recommend that you apply the following restrictions for Retail Cloud POS users:
Restrict access to the file system.
Restrict access to Control Panel.
Restrict access to removable drives.
Restrict access to shells that run commands.
Restrict access to the registry.
Restrict access to application management.
The following table lists the group policies to enable kiosk mode. The set of policies requires that you start your
browser at the sign-in script. These policies can be adjusted to your requirements. You should always assess any
security implications or talk to a specialist.

SET T IN G STAT E C O M M EN T PAT H

Enable screen saver Disabled No \Control


Panel\Personalization

Allow DFS roots to be Disabled No \Shared Folders


published

Allow shared folders to be Disabled No \Shared Folders


published

Add Search Internet link to Disabled No \Start Menu and Taskbar


Start Menu

Show Quick Launch on Disabled No \Start Menu and Taskbar


Taskbar
SET T IN G STAT E C O M M EN T PAT H

Show the Apps view Disabled No \Start Menu and Taskbar


automatically when the user
goes to Start

Show "Run as different user" Disabled No \Start Menu and Taskbar


command on Start

Add the Run command to Disabled No \Start Menu and Taskbar


the Start Menu

Show Start on the display Disabled No \Start Menu and Taskbar


the user is using when they
press the Windows logo key

Show Windows Store apps Disabled No \Start Menu and Taskbar


on the taskbar

Turn off shell protocol Disabled No \Windows Components\File


protected mode Explorer

Turn on menu bar by default Disabled No \Windows


Components\Internet
Explorer

Turn on Script Execution Disabled No \Windows


Components\Windows
PowerShell

Hide the "Add a program Enabled No \Control Panel\Add or


from CD-ROM or floppy Remove Programs
disk" option

Hide the "Add programs Enabled No \Control Panel\Add or


from Microsoft" option Remove Programs

Hide the "Add programs Enabled No \Control Panel\Add or


from your network" option Remove Programs

Hide Add New Programs Enabled No \Control Panel\Add or


page Remove Programs

Remove Add or Remove Enabled No \Control Panel\Add or


Programs Remove Programs

Hide the Set Program Access Enabled No \Control Panel\Add or


and Defaults page Remove Programs

Hide Change or Remove Enabled No \Control Panel\Add or


Programs page Remove Programs

Go directly to Components Enabled No \Control Panel\Add or


Wizard Remove Programs
SET T IN G STAT E C O M M EN T PAT H

Remove Support Enabled No \Control Panel\Add or


Information Remove Programs

Hide Add/Remove Windows Enabled No \Control Panel\Add or


Components page Remove Programs

Disable the Display Control Enabled No \Control Panel\Display


Panel

Hide Settings tab Enabled No \Control Panel\Display

Prevent changing color Enabled No \Control


scheme Panel\Personalization

Prevent changing theme Enabled No \Control


Panel\Personalization

Prevent changing visual style Enabled No \Control


for windows and buttons Panel\Personalization

Prohibit selection of visual Enabled No \Control


style font size Panel\Personalization

Prevent changing color and Enabled No \Control


appearance Panel\Personalization

Prevent changing desktop Enabled No \Control


background Panel\Personalization

Prevent changing desktop Enabled No \Control


icons Panel\Personalization

Prevent changing mouse Enabled No \Control


pointers Panel\Personalization

Prevent changing screen Enabled No \Control


saver Panel\Personalization

Prevent changing sounds Enabled No \Control


Panel\Personalization

Prevent addition of printers Enabled No \Control Panel\Printers

Prevent deletion of printers Enabled No \Control Panel\Printers

Hide "Set Program Access Enabled No \Control Panel\Programs


and Computer Defaults"
page

Hide "Get Programs" page Enabled No \Control Panel\Programs

Hide "Installed Updates" Enabled No \Control Panel\Programs


page
SET T IN G STAT E C O M M EN T PAT H

Hide "Programs and Enabled No \Control Panel\Programs


Features" page

Hide the Programs Control Enabled No \Control Panel\Programs


Panel

Hide "Windows Features" Enabled No \Control Panel\Programs

Hide "Windows Marketplace" Enabled No \Control Panel\Programs

Turn off automatic learning Enabled No \Control Panel\Regional and


Language
Options\Handwriting
personalization

Hide Regional and Language Enabled No \Control Panel\Regional and


Options administrative Language Options
options

Hide and disable all items on Enabled No \Desktop


the desktop

Remove the Desktop Enabled No \Desktop


Cleanup Wizard

Hide Internet Explorer icon Enabled No \Desktop


on desktop

Remove Computer icon on Enabled No \Desktop


the desktop

Remove My Documents icon Enabled No \Desktop


on the desktop

Hide Network Locations icon Enabled No \Desktop


on desktop

Remove Properties from the Enabled No \Desktop


Computer icon context
menu

Remove Properties from the Enabled No \Desktop


Documents icon context
menu

Do not add shares of Enabled No \Desktop


recently opened documents
to Network Locations

Remove Recycle Bin icon Enabled No \Desktop


from desktop

Remove Properties from the Enabled No \Desktop


Recycle Bin context menu
SET T IN G STAT E C O M M EN T PAT H

Do not save settings at exit Enabled No \Desktop

Turn off Aero Shake window Enabled No \Desktop


minimizing mouse gesture

Prevent adding, dragging Enabled


dropping and closing the
Taskbar's toolbars

Prohibit adjusting desktop Enabled No \Desktop


toolbars

Force Start to be either full Enabled No \Start Menu and Taskbar


screen size or menu size

Go to the desktop instead of Enabled No \Start Menu and Taskbar


Start when signing in

Turn off personalized menus Enabled No \Start Menu and Taskbar

Lock the Taskbar Enabled No \Start Menu and Taskbar

Turn off notification area Enabled No \Start Menu and Taskbar


cleanup

Remove Balloon Tips on Enabled No \Start Menu and Taskbar


Start Menu items

Prevent users from Enabled No \Start Menu and Taskbar


customizing their Start
Screen

Remove common program Enabled No \Start Menu and Taskbar


groups from Start Menu

Remove Favorites menu Enabled No \Start Menu and Taskbar


from Start Menu

Remove Search link from Enabled No \Start Menu and Taskbar


Start Menu

Remove frequent programs Enabled No \Start Menu and Taskbar


list from the Start Menu

Remove Games link from Enabled No \Start Menu and Taskbar


Start Menu

Remove Help menu from Enabled No \Start Menu and Taskbar


Start Menu

Turn off user tracking Enabled No \Start Menu and Taskbar


SET T IN G STAT E C O M M EN T PAT H

Remove All Programs list Enabled No \Start Menu and Taskbar


from the Start menu

Remove Network Enabled No \Start Menu and Taskbar


Connections from Start
Menu

Remove pinned programs Enabled No \Start Menu and Taskbar


list from the Start Menu

Do not keep history of Enabled No \Start Menu and Taskbar


recently opened documents

Remove Recent Items menu Enabled No \Start Menu and Taskbar


from Start Menu

Do not use the search-based Enabled No \Start Menu and Taskbar


method when resolving shell
shortcuts

Do not use the tracking- Enabled No \Start Menu and Taskbar


based method when
resolving shell shortcuts

Remove Run menu from Enabled No \Start Menu and Taskbar


Start Menu

Remove Default Programs Enabled No \Start Menu and Taskbar


link from the Start menu.

Remove Documents icon Enabled No \Start Menu and Taskbar


from Start Menu

Remove Music icon from Enabled No \Start Menu and Taskbar


Start Menu

Remove Network icon from Enabled No \Start Menu and Taskbar


Start Menu

Remove Pictures icon from Enabled No \Start Menu and Taskbar


Start Menu

Do not search Enabled No \Start Menu and Taskbar


communications

Remove Search Computer Enabled No \Start Menu and Taskbar


link

Remove See More Results / Enabled No \Start Menu and Taskbar


Search Everywhere link

Do not search for files Enabled No \Start Menu and Taskbar

Do not search Internet Enabled No \Start Menu and Taskbar


SET T IN G STAT E C O M M EN T PAT H

Do not search programs and Enabled No \Start Menu and Taskbar


Control Panel items

Remove programs on Enabled No \Start Menu and Taskbar


Settings menu

Prevent changes to Taskbar Enabled No \Start Menu and Taskbar


and Start Menu Settings

Remove Downloads link Enabled No \Start Menu and Taskbar


from Start Menu

Remove Homegroup link Enabled No \Start Menu and Taskbar


from Start Menu

Remove Recorded TV link Enabled No \Start Menu and Taskbar


from Start Menu

Remove user's folders from Enabled No \Start Menu and Taskbar


the Start Menu

Remove Videos link from Enabled No \Start Menu and Taskbar


Start Menu

Force classic Start Menu Enabled No \Start Menu and Taskbar

Remove Clock from the Enabled No \Start Menu and Taskbar


system notification area

Prevent grouping of taskbar Enabled No \Start Menu and Taskbar


items

Do not display any custom Enabled No \Start Menu and Taskbar


toolbars in the taskbar

Remove access to the Enabled No \Start Menu and Taskbar


context menus for the
taskbar

Hide the notification area Enabled No \Start Menu and Taskbar

Prevent users from Enabled No \Start Menu and Taskbar


uninstalling applications
from Start

Remove user folder link from Enabled No \Start Menu and Taskbar
Start Menu

Remove user name from Enabled No \Start Menu and Taskbar


Start Menu

Remove links and access to Enabled No \Start Menu and Taskbar


Windows Update
SET T IN G STAT E C O M M EN T PAT H

Remove the "Undock PC" Enabled No \Start Menu and Taskbar


button from the Start Menu

Remove Notifications and Enabled No \Start Menu and Taskbar


Action Center

Disable showing balloon Enabled No \Start Menu and Taskbar


notifications as toasts.

Remove the Security and Enabled No \Start Menu and Taskbar


Maintenance icon

Remove the networking icon Enabled No \Start Menu and Taskbar

Remove the battery meter Enabled No \Start Menu and Taskbar

Remove the volume control Enabled No \Start Menu and Taskbar


icon

Turn off feature Enabled No \Start Menu and Taskbar


advertisement balloon
notifications

Do not allow pinning Store Enabled No \Start Menu and Taskbar


app to the Taskbar

Do not allow pinning items Enabled No \Start Menu and Taskbar


in Jump Lists

Do not allow pinning Enabled No \Start Menu and Taskbar


programs to the Taskbar

Do not display or track items Enabled No \Start Menu and Taskbar


in Jump Lists from remote
locations

Turn off automatic Enabled No \Start Menu and Taskbar


promotion of notification
icons to the taskbar

Lock all taskbar settings Enabled No \Start Menu and Taskbar

Prevent users from adding Enabled No \Start Menu and Taskbar


or removing toolbars

Prevent users from Enabled No \Start Menu and Taskbar


rearranging toolbars

Do not allow taskbars on Enabled No \Start Menu and Taskbar


more than one display

Turn off all balloon Enabled No \Start Menu and Taskbar


notifications
SET T IN G STAT E C O M M EN T PAT H

Remove pinned programs Enabled No \Start Menu and Taskbar


from the Taskbar

Prevent users from moving Enabled No \Start Menu and Taskbar


taskbar to another screen
dock location

Prevent users from resizing Enabled No \Start Menu and Taskbar


the taskbar

Turn off taskbar thumbnails Enabled No \Start Menu and Taskbar

Remove Task Manager Enabled No \System\Ctrl+Alt+Del


Options

Code signing for device Enabled No \System\Driver Installation


drivers

Turn off Windows Update Enabled No \System\Driver Installation


device driver search prompt

Disallow selection of Custom Enabled No \System\Locale Services


Locales

Disallow changing of Enabled No \System\Locale Services


geographic location

Disallow user override of Enabled No \System\Locale Services


locale settings

CD and DVD: Deny read Enabled No \System\Removable Storage


access Access

CD and DVD: Deny write Enabled No \System\Removable Storage


access Access

Floppy Drives: Deny read Enabled No \System\Removable Storage


access Access

Floppy Drives: Deny write Enabled No \System\Removable Storage


access Access

Removable Disks: Deny read Enabled No \System\Removable Storage


access Access

Removable Disks: Deny write Enabled No \System\Removable Storage


access Access

All Removable Storage Enabled No \System\Removable Storage


classes: Deny all access Access

Tape Drives: Deny read Enabled No \System\Removable Storage


access Access
SET T IN G STAT E C O M M EN T PAT H

Tape Drives: Deny write Enabled No \System\Removable Storage


access Access

WPD Devices: Deny read Enabled No \System\Removable Storage


access Access

WPD Devices: Deny write Enabled No \System\Removable Storage


access Access

Prevent access to the Enabled No \System


command prompt

Prevent access to registry Enabled No \System


editing tools

Prevent the wizard from Enabled No \Windows Components\Add


running. features to Windows 10

Turn off Program Enabled No \Windows


Compatibility Assistant Components\Application
Compatibility

Search, Share, Start, Devices Enabled No \Windows


and Settings don't appear Components\Edge UI
when the mouse is pointing
to the upper-right corner of
the screen

Disable help tips Enabled No \Windows


Components\Edge UI

Turn off tracking of app Enabled No \Windows


usage Components\Edge UI

Do not show recent apps Enabled No \Windows


when the mouse is pointing Components\Edge UI
to the upper-left corner of
the screen

Prevent users from replacing Enabled No \Windows


the Command Prompt with Components\Edge UI
Windows PowerShell in the
menu they see when they
right-click the lower-left
corner or press the Windows
logo key+X

Turn off switching between Enabled No \Windows


recent apps Components\Edge UI

Turn on or off details pane Enabled No \Windows Components\File


Explorer\Explorer Frame Pane

Turn off Preview Pane Enabled No \Windows Components\File


Explorer\Explorer Frame Pane
SET T IN G STAT E C O M M EN T PAT H

Do not display the Welcome Enabled No \Windows Components\File


Center at user logon Explorer

Turn on Classic Shell Enabled No \Windows Components\File


Explorer

Remove CD Burning features Enabled No \Windows Components\File


Explorer

Remove DFS tab Enabled No \Windows Components\File


Explorer

Hide these specified drives in Enabled No \Windows Components\File


My Computer Explorer

No Entire Network in Enabled No \Windows Components\File


Network Locations Explorer

Remove File menu from File Enabled No \Windows Components\File


Explorer Explorer

Do not allow Folder Options Enabled No \Windows Components\File


to be opened from the Explorer
Options button on the View
tab of the ribbon

Remove Hardware tab Enabled No \Windows Components\File


Explorer

Hide the Manage item on Enabled No \Windows Components\File


the File Explorer context Explorer
menu

Remove Shared Documents Enabled No \Windows Components\File


from My Computer Explorer

Remove "Map Network Enabled No \Windows Components\File


Drive" and "Disconnect Explorer
Network Drive"

Remove the Search the Enabled No \Windows Components\File


Internet "Search again" link Explorer

Remove Security tab Enabled No \Windows Components\File


Explorer

Remove Search button from Enabled No \Windows Components\File


File Explorer Explorer

Remove File Explorer's Enabled No \Windows Components\File


default context menu Explorer

Prevent access to drives Enabled No \Windows Components\File


from My Computer Explorer
SET T IN G STAT E C O M M EN T PAT H

Turn off Windows+X hotkeys Enabled No \Windows Components\File


Explorer

No Computers Near Me in Enabled No \Windows Components\File


Network Locations Explorer

Request credentials for Enabled No \Windows Components\File


network installations Explorer

Prevent users from adding Enabled No \Windows Components\File


files to the root of their Explorer
Users Files folder.

Turn off Accelerators Enabled No \Windows


Components\Internet
Explorer\Accelerators

File menu: Disable closing Enabled No \Windows


the browser and Explorer Components\Internet
windows Explorer\Browser menus

File menu: Disable Save As... Enabled No \Windows


menu option Components\Internet
Explorer\Browser menus

File menu: Disable Save As Enabled No \Windows


Web Page Complete Components\Internet
Explorer\Browser menus

File menu: Disable New Enabled No \Windows


menu option Components\Internet
Explorer\Browser menus

File menu: Disable Open Enabled No \Windows


menu option Components\Internet
Explorer\Browser menus

Help menu: Remove 'Send Enabled No \Windows


Feedback' menu option Components\Internet
Explorer\Browser menus

Help menu: Remove 'For Enabled No \Windows


Netscape Users' menu Components\Internet
option Explorer\Browser menus

Help menu: Remove 'Tip of Enabled No \Windows


the Day' menu option Components\Internet
Explorer\Browser menus

Help menu: Remove 'Tour' Enabled No \Windows


menu option Components\Internet
Explorer\Browser menus
SET T IN G STAT E C O M M EN T PAT H

Turn off Shortcut Menu Enabled No \Windows


Components\Internet
Explorer\Browser menus

Hide Favorites menu Enabled No \Windows


Components\Internet
Explorer\Browser menus

Disable Open in New Enabled No \Windows


Window menu option Components\Internet
Explorer\Browser menus

Turn off Print Menu Enabled No \Windows


Components\Internet
Explorer\Browser menus

Turn off the ability to launch Enabled No \Windows


report site problems using a Components\Internet
menu option Explorer\Browser menus

Disable Save this program to Enabled No \Windows


disk option Components\Internet
Explorer\Browser menus

Tools menu: Disable Internet Enabled No \Windows


Options... menu option Components\Internet
Explorer\Browser menus

View menu: Disable Full Enabled No \Windows


Screen menu option Components\Internet
Explorer\Browser menus

View menu: Disable Source Enabled No \Windows


menu option Components\Internet
Explorer\Browser menus

Turn off Developer Tools Enabled No \Windows


Components\Internet
Explorer\Toolbars

Turn off toolbar upgrade tool Enabled No \Windows


Components\Internet
Explorer\Toolbars

Hide the Command bar Enabled No \Windows


Components\Internet
Explorer\Toolbars

Hide the status bar Enabled No \Windows


Components\Internet
Explorer\Toolbars

Disable customizing browser Enabled No \Windows


toolbars Components\Internet
Explorer\Toolbars
SET T IN G STAT E C O M M EN T PAT H

Disable customizing browser Enabled No \Windows


toolbar buttons Components\Internet
Explorer\Toolbars

Turn off add-on performance Enabled No \Windows


notifications Components\Internet
Explorer

Do not allow users to enable Enabled No \Windows


or disable add-ons Components\Internet
Explorer

Disable changing Advanced Enabled No \Windows


page settings Components\Internet
Explorer

Turn off Favorites bar Enabled No \Windows


Components\Internet
Explorer

Prevent per-user installation Enabled No \Windows


of ActiveX controls Components\Internet
Explorer

Turn off Reopen Last Enabled No \Windows


Browsing Session Components\Internet
Explorer

Turn off Tab Grouping Enabled No \Windows


Components\Internet
Explorer

Prevent managing the Enabled No \Windows


phishing filter Components\Internet
Explorer

Turn off Managing Enabled No \Windows


SmartScreen Filter for Components\Internet
Internet Explorer 8 Explorer

Prevent managing Enabled No \Windows


SmartScreen Filter Components\Internet
Explorer

Turn off the Security Settings Enabled No \Windows


Check feature Components\Internet
Explorer

Enforce full-screen mode Enabled No \Windows


Components\Internet
Explorer

Disable Import/Export Enabled No \Windows


Settings wizard Components\Internet
Explorer
SET T IN G STAT E C O M M EN T PAT H

Prevent Internet Explorer Enabled No \Windows


Search box from appearing Components\Internet
Explorer

Turn off Quick Tabs Enabled No \Windows


functionality Components\Internet
Explorer

Turn off tabbed browsing Enabled No \Windows


Components\Internet
Explorer

Disable changing Automatic Enabled No \Windows


Configuration settings Components\Internet
Explorer

Disable changing Temporary Enabled No \Windows


Internet files settings Components\Internet
Explorer

Disable changing Calendar Enabled No \Windows


and Contact settings Components\Internet
Explorer

Disable changing certificate Enabled No \Windows


settings Components\Internet
Explorer

Disable changing default Enabled No \Windows


browser check Components\Internet
Explorer

Disable changing color Enabled No \Windows


settings Components\Internet
Explorer

Disable changing connection Enabled No \Windows


settings Components\Internet
Explorer

Disable changing font Enabled No \Windows


settings Components\Internet
Explorer

Disable changing language Enabled No \Windows


settings Components\Internet
Explorer

Disable changing link color Enabled No \Windows


settings Components\Internet
Explorer

Disable changing Messaging Enabled No \Windows


settings Components\Internet
Explorer
SET T IN G STAT E C O M M EN T PAT H

Prevent managing pop-up Enabled No \Windows


exception list Components\Internet
Explorer

Turn off pop-up Enabled No \Windows


management Components\Internet
Explorer

Disable changing Profile Enabled No \Windows


Assistant settings Components\Internet
Explorer

Prevent changing proxy Enabled No \Windows


settings Components\Internet
Explorer

Disable changing ratings Enabled No \Windows


settings Components\Internet
Explorer

Turn off the auto-complete Enabled No \Windows


feature for web addresses Components\Internet
Explorer

Turn off suggestions for all Enabled No \Windows


user-installed providers Components\Internet
Explorer

Turn off the quick pick menu Enabled No \Windows


Components\Internet
Explorer

Search: Disable Find Files via Enabled No \Windows


F3 within the browser Components\Internet
Explorer

Search: Disable Search Enabled No \Windows


Customization Components\Internet
Explorer

Turn off ability to pin sites in Enabled No \Windows


Internet Explorer on the Components\Internet
desktop Explorer

Turn off the offer to update Enabled No \Windows


to the latest version of Components\Store
Windows

Turn off the Store application Enabled No \Windows


Components\Store

Prohibit New Task Creation Enabled No \Windows Components\Task


Scheduler
Set up a proxy to access only whitelisted websites
You can define a list of websites that a store worker (cashier) requires for normal operations, and set up an
administrator-controlled proxy that has access only to these websites. Retail Cloud POS requires access to the
following websites:
Retail Cloud POS website
Microsoft Azure Active Directory sign-in page
Commerce Scale Unit website
Bing Maps resources
Media resources
Credit Card Payment acceptance page (optional)
Configure and install Retail hardware station
2/1/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to configure, download, and install Retail hardware station by using self-service. It also
explains how to uninstall Retail hardware station.

IMPORTANT
It is critical to note that this component utilizes a server certificate. Server certificates must be managed for expiration. By
default, a certificate expires in one calendar year (365 days).

Download Retail hardware station by using self-service


Configure a new Retail hardware station profile (Start here for Dynamics 365 for Retail, February 2016)

NOTE
This procedure is required only if you're running the February 2016 (RTW) version of Retail. If you're running version 1611,
start with the next procedure.

1. Use your Microsoft Azure Active Directory (Azure AD) credentials to sign in to the Retail headquarters or
Retail trial.
2. On the Welcome page, use the menu in the upper left to go to Retail > Channel setup > POS setup >
POS profiles > Hardware station profiles .
3. On the Hardware station profile page, on the Action Pane, select New .
4. In the Hardware station ID field, enter a unique hardware station ID.

NOTE
The Name field is used for a description of the unique hardware station profile.

5. In the appropriate fields, enter the port number, select a hardware profile, and select a package name.

NOTE
Only one hardware station package is provided for an environment that has been loaded with demo data.

6. On the Action Pane, select Save .


Configure a new Retail hardware station (Start here for Retail, version 1611 or later)
NOTE
If you're running the February 2016, non-upgraded version of Retail (Initial release), skip step 6.

1. Use your Azure AD credentials to sign in to the Retail trial.


2. On the Welcome page, use the menu in the upper left to go to Retail > Channels > Retail stores > All
retail stores .
3. On the All retail stores page, select the retail channel ID of the desired store. The details view for the store
appears.

NOTE
The Houston store is the most thoroughly prepared store in the demo data.

4. On the Retail store details page, on the Hardware stations FastTab, select Add .

NOTE
The Retail Server URL that is used for the selected store is read-only. This URL will be important during the installation
of Retail hardware station.

5. In the Hardware station type field, select Shared to indicate that this hardware station is an Internet
Information Services (IIS), installed hardware station that will be used by external point of sale (POS)
systems.

NOTE
The value Shared signifies that the installation is a truly shared hardware station installation, and that it works
through HTTPS communication. By contrast, the value Dedicated signifies that the hardware station is a part of
Modern POS, and that it works through inter-process communication.

6. Follow one of these steps, depending on the version that you're running:
For version 1611: In the appropriate fields, enter the port number, select a hardware profile, and
select a package name.

NOTE
Only one hardware station package is provided for an environment that has been loaded with demo data, at
environment creation time.

For the Februar y 2016 version: Select a hardware station profile.


7. Enter the host name of the computer that you're installing Retail hardware station on. Additionally, enter the
electronic funds transfer (EFT) terminal ID that is associated with that computer for merchant account
information.
Download the Retail hardware station installer
1. Use your Azure AD credentials to sign in to the Retail headquarters or Retail trial.
2. On the Welcome page, use the menu in the upper left to go to Retail > Channels > Retail stores > All
retail stores .
3. On the All retail stores page, select the retail channel ID of the desired store. The details view for the store
appears.

NOTE
The Houston store is the most thoroughly prepared store in the demo data.

4. On the Retail store details page, select the Hardware stations FastTab.

NOTE
The Retail Server URL that is used for the selected store is read-only. This URL will be important during the installation
of Retail hardware station.

5. Select the hardware station to download, and then select Download .

NOTE
Browsers might block the download pop-up that is generated. You must select either Allow once or Options for
this site > Always allow . Then select Download again.
The correct installation package is automatically selected for download, based on the hardware station profile.

6. On the Notification bar that appears at the bottom of the Internet Explorer window, select Save . (The
Notification bar might appear in a different place in other browsers.)
7. After the setup installer has been saved, on the Notification bar, select Run . (This step might differ, depending
on your browser.)
Run the installer

NOTE
Before you run the Retail hardware station installer, make sure that all system requirements are met.

The Retail hardware station installer first extracts the associated files and then begins the installation.
1. The installer validates that all prerequisites are met. If a sideloading key is required, the installer requests it.
This key is found on the Devices page for each device, under General .

NOTE
If a system restart is required, the installer informs you of this requirement but can continue the installation.
Before you can use hardware that is based on the Object Linking and Embedding for Retail Point of Sale (OPOS)
standard, the OPOS Common Control Objects must be installed. If they aren't installed, the installer informs you of
this requirement but can continue the installation.

2. Enter the Retail Server URL (for example, https://MyCompanyNameret.axcloud.dynamics.com/Commerce ), and then
select Next .
NOTE
You can find the Retail Server URL at the top of the Hardware stations FastTab on the Retail store details page.

3. Select a valid Secure Sockets Layer (SSL) certificate to use for HTTPS communication.

NOTE
The certificate must use private key storage, and server authentication must be listed in the enhanced key usage
property. Additionally, the certificate must be trusted locally, and it can't be expired. It must be stored in the personal
certificate store location on the local computer.

4. The next page requests the user that should be used for the IIS application pool. By default in version 1611
and later, the installer can automatically create and use a service account. If you're on a domain or require
more specific controls, clear the check box, and then enter the user name and password that the application
pool should run under.
5. Enter the HTTPS port to use.

NOTE
You can find the HTTPS port in Retail. (See the configuration instructions earlier in this topic).
The installer automatically enters the host name. If, for any reason, you must change the host name for the
installation, you can change it here. The host name must be the fully-qualified domain name (FQDN) of the system,
and it must be entered in the Host name field for the selected hardware station entry.

6. The installer installs Retail hardware station and then indicates whether the installation was successful.
7. When the installation is completed, the Install merchant information tool may start. This installer connects to
the environment and installs the merchant account information (such as the EFT ID) for the selected
hardware station.

NOTE
If the hardware station that was installed won't be used for payment-related work, don't close the Install
merchant information window without completing the remaining steps. The hardware station won't work unless
this installation is successfully completed.

For version 10.0.6 and above, the install merchant information tool is no longer used. Instead, the
merchant information for the hardware station is set by the POS at the time of logon or when the
hardware station is made active. If the retail server is not available when the hardware station is
subsequently made active, the last known merchant properties will be used by until the connection to
the retail server is re-established. If the POS client is not upgraded to version 10.0.6 at the same time
the hardware station is upgraded, merchant properties will not be updated until the POS client is
upgraded to an equal or later version.

8. The Install merchant information tool might request Azure AD credentials. Enter the Azure AD credentials of
the user who is installing Retail hardware station.
9. The Retail Server URL is determined through the Retail hardware station installation and is entered
automatically. The installer uses this URL to load the list of stores that the user is connected to via the
address book.
10. Select the retail store that the hardware station was installed for.
11. Select the hardware profile that matches the hardware station that was installed on the current computer.
12. Verify that the host names and EFT terminal IDs are correct, based on the current computer and the Retail
hardware station configuration that has already been completed in Retail. After you've verified this
information, select Install .
13. When you receive a message that states that the merchant account information was installed correctly, exit
the installer by selecting the Close button.

Help secure Retail hardware station


Current security standards state that the following options should be set in a production environment:

NOTE
The hardware station installer automatically makes these registry edits as part of the installation through self-service.

SSL should be disabled.


Only Transport Layer Security (TLS) version 1.2 (or the current highest version) should be enabled and used.

NOTE
By default, SSL and all version of TLS except TLS 1.2 are disabled. To edit or enable these values, follow these steps:
1. Press the Windows logo key+R to open a Run window.
2. In the Open field, type Regedit , and then select OK .
3. If a User Account Control window appears, select Yes .
4. In the new Registr y Editor window, go to
HKEY_LOCAL_MACHINE\System\CurrentControlSet\SecurityProviders\SCHANNEL\Protocols . The
following keys have been automatically entered to allow for TLS 1.2 only:
TLS 1.2\Server:Enabled=1
TLS 1.2\Server:DisabledByDefault=0
TLS 1.2\Client:Enabled=1
TLS 1.2\Client:DisabledByDefault=0
TLS 1.1\Server:Enabled=0
TLS 1.1\Client:Enabled=0
TLS 1.0\Server:Enabled=0
TLS 1.0\Client:Enabled=0
SSL 3.0\Server:Enabled=0
SSL 3.0\Client:Enabled=0
SSL 2.0\Server:Enabled=0
SSL 2.0\Client:Enabled=0

No additional network ports should be open, unless they are required for known, specified reasons.
Cross-origin resource sharing must be disabled and must specify the allowed origins that are accepted.
Only trusted certificate authorities should be used to procure certificates that will be used on computers that
run Retail hardware station.
IMPORTANT
Most common, lower-security software and services will stop working after all lower-security standards are disabled. To use
them again, go to the preceding registry keys, and set the Enabled key from 0 to 1 .
It's critical that you review security guidelines for IIS and Payment Card Industry (PCI) requirements.

Troubleshooting
Modern POS can detect the hardware station in its list for selection, but it can't complete the pairing
Solution: Verify the following list of potential failure points:
The computer that is running Modern POS trusts the certificate that is used on the computer that runs Retail
hardware station.
To verify this setup, in a web browser, go to the following URL:
https://<Computer Name>:<Port Number>/HardwareStation/ping
This URL uses a ping to verify that the computer can be accessed, and the browser indicates whether the
certificate is trusted. (For example, in Internet Explorer, a lock symbol appears in the address bar. When
you select this symbol, Internet Explorer verifies whether the certificate is currently trusted. You can install
the certificate on the local computer by viewing the details of the certificate that is shown.)
On the computer that runs Retail hardware station, the port that will be used by the hardware station is
opened in the firewall.
Retail hardware station has properly installed merchant account information through the Install merchant
information tool that runs at the end of the Retail hardware station installer.
Modern POS can't detect the hardware station in its list for selection
Solution: Any one of the following factors can cause this issue:
Retail hardware station hasn't been set up correctly in Commerce headquarters. Use the steps earlier in this topic
to verify that the hardware station profile and the hardware station are correctly entered.
The jobs haven't been run to update the channel configuration. In this case, run the 1070 job for channel
configuration.
The hardware station isn't accessible from that computer. Verify that the hardware station URL ping test is
accessible from a web browser. This URL can be found at the end of the hardware station installer and is in the
following form: https://<Computer Name>:<Port Number>/HardwareStation/ping

Uninstall Retail hardware station


You can use Control Panel in Microsoft Windows to uninstall Retail hardware station.
1. Press the Windows logo key, and then, in the search box, type Control Panel . In the list of search results, select
Control Panel .
2. In Control Panel, select Programs > Uninstall a program . The Programs and Features window opens.
3. Select Microsoft Dynamics 365 for Retail hardware station , and then select Uninstall above the list of
programs.
4. Wait for the uninstaller to finish removing the program.
Mass deployment of self-service components
2/21/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how you can use self-service to do silent servicing updates and initial deployments. It also
explains some aspects of special deployment. This topic will be updated as the feature is developed and more
functionality becomes available. Currently, only the capability for silent servicing updates is available.

Delimiters for mass deployment


The following table shows the delimiters that can currently be used in execution commands for mass deployment.

DEL IM IT ER DESC RIP T IO N

-S or -Silent Silently run the installer. No graphical user interface (GUI) is


used. The -Q and -Quiet delimiters have the same effect and
can also be used.

-C or -Config Specify the location and file name of the configuration file to
use as part of this installation.

-FilePath Specify a custom installation location.


We don't recommend that you use this delimiter for a
standard installation.

-LogFile Specify a custom file location for the installation logs.


We don't recommend that you use this delimiter for a
standard installation.

-SkipPrerequisiteCheck Skip the check for prerequisites and prerequisite installation.


You should use this delimiter only for development and
testing. We don't recommend that you use it for a
standard installation.

-SkipSystemInfoCollection Skip the process of collecting system information at the


beginning of the installation.
You should use this delimiter only for development and
testing. We don't recommend that you use it for a
standard installation.
DEL IM IT ER DESC RIP T IO N

-SkipMerchantInfo Skip the installation of merchant account information at the


end of the self-service installer for Hardware station.
You should use this delimiter only for development and
testing. We don't recommend that you use it for a
standard installation.

-SkipAppxInstallation Beginning in the October 2018 release of Dynamics 365, this


delimiter will skip the installation of the APPX Retail Modern
POS application. This delimiter is required to perform the
application installation through the SYSTEM account or a
service account (Any account that does not have a user
profile).

Silent servicing
Before you begin
Note that silent servicing maintains all components that are currently installed. If any configuration is still required,
complete it before you begin to follow the instructions in this topic.
Examples of commands for silent servicing
This section shows examples of commands that are used for self-service mass deployment. These commands work
for all the standard self-service installers, such as the installers for Modern POS (both the installer that has offline
support and the installer that doesn't have offline support), Hardware station, and Commerce Scale Unit.
Silently update the current installation of Modern POS
The following command silently updates the current installation of Modern POS. This command has the standard
command structure that is used for silent servicing of components that are currently installed. The structure uses
the basic values of <InstallerName>.exe and the command for silent installation, -S . This command uses the
configuration file that is located in the same file location as the installer, if a configuration file exists there.

ModernPOSSetup_V72.exe -S

NOTE
A configuration file is still required for Retail Store Scale Unit. However, the installer keeps all the values that are currently
installed, whenever it can.

Silently update the current installation of Commerce Scale Unit


The following command silently updates the current installation of Commerce Scale Unit by using a specific
configuration file. (This configuration file might not be in the same location as the executable file for the installer.)
This command skips the prerequisite check and moves on to the installation steps. We recommend that you use
this command only for testing and development purposes.

StoreSystemSetup_V72.exe -S -C "C:\Temp\StoreSystemSetup_V72_Houston.xml" -SkipPrerequisiteCheck

Mass deployment of Modern POS


Before you begin
To use this functionality, you must be using version 7.3 or later. It's assumed that the configuration of all stores,
registers, and devices, and other configurations in the headquarters have already been completed. If any
configuration is still required, complete it before you follow the instructions in this topic.
Examples of commands for silent mass deployment
This section shows examples of commands that are used for self-service mass deployment of Modern POS, even
Modern POS with offline and the installer without offline support. Examples of Windows PowerShell scripts are
also included to help users do the installations.
Silently install Modern POS
The following command silently installs (or updates) Modern POS. It has the standard command structure that is
used for silent servicing of components that are currently installed. The structure uses the basic values of
<InstallerName>.exe and the command for silent installation, -S .
This command uses the configuration file that is in the same location as the executable file for the installer, if a
configuration file exists there. It should not be used if multiple configuration files are available.

ModernPOSSetup_V73.exe -S

NOTE
A configuration file isn't required for Modern POS. However, the Modern POS application that is installed can't be activated in
the appropriate manner unless the associated configuration file can be read from.

Silently install Modern POS by using a specific configuration file


The following command silently installs the current installation of Modern POS by using a specific configuration
file. This configuration file might not be in the same location as the executable file for the installer, or multiple
configuration files might be available.

ModernPOSSetup_V72.exe -S -C "C:\Temp\ModernPOSSetup_V73_Houston-3.xml"

Silently install Retail hardware station

NOTE
The -SkipMerchantInfo delimiter is required to install Retail hardware station. The Merchant Account Information Utility
that is opened at the end of a GUI-based installation of Hardware station no longer has to be used. Because of feature
functionality, when Modern POS is paired to Hardware station, it also pushes the latest merchant account information to the
component.

The following command silently installs (or updates) Retail hardware station. It has the standard command
structure that is used for silent servicing of components that are currently installed. The structure uses the basic
values of <InstallerName>.exe and the command for silent installation, -S . It also uses the -SkipMerchantInfo
delimiter to skip the download of merchant account information through the utility. This command uses the
configuration file that is in the same location as the executable file for the installer.

HardwareStationSetup_V10.exe -S -SkipMerchantInfo

NOTE
A configuration file is required to silently deploy Retail hardware station.

Silently install Retail hardware station by using a specific configuration file


The following command silently installs the current installation of Retail hardware station by using a specific
configuration file. This configuration file might not be in the same location as the executable file for the installer, or
multiple configuration files might be available.

HardwareStationSetup_V10.exe -S -SkipMerchantInfo -C "C:\Temp\HardwareStationSetup_V10__20-19-35.xml"


Retail component events for diagnostics and
troubleshooting
2/1/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

To enable diagnostics and troubleshooting, all Commerce components, which include clients such as the Retail
Modern POS and server components, such as Commerce Scale Unit, log their events locally to Event Viewer (or to
the browser developer tools console, in case of Retail Cloud POS). This article explains where to find events from
Commerce-specific components.

Viewing events in Event Viewer


You can use Event Viewer to view events for components that are installed on computers that run Microsoft
Windows, if you have physical access to the computer where the events are logged. For more information about
Event Viewer, see Event Viewer on TechNet. You can also use Event Viewer to view events remotely from computers
that you have access to. For more information about how to use Event Viewer to view events remotely, see Work
with Event Logs on a Remote Computer on TechNet. Typically, Event Viewer is used for troubleshooting in the
following use cases:
Development on a developer topology or on a downloadable virtual hard disk (VHD) that provides access to
Event Viewer
Client components, when you're running a conference room pilot and have access to Event Viewer for that
computer
However, for most other cases, and especially when you don't have access to Event Viewer for the computer, you
can use Log Search on Microsoft Dynamics Lifecycle Services (LCS). Log Search is discussed later in this article. This
section applies to the following components:
Commerce Scale Unit
Retail Modern POS
Retail Hardware Station
Find Commerce -specific events in Event Viewer
To start Event Viewer on a computer, right-click the Star t button, and then click Event Viewer .
All Commerce-specific event logs can be found under the following path in Event Viewer: Application and Services
Logs\Microsoft\Dynamics We provide the following Commerce-specific event logs:
Commerce-RetailSer ver – This log contains events that are logged by the Commerce Scale Unit components.
Commerce-ModernPos – This log contains events that are logged by Retail Modern POS. These events
include events from the TypeScript and C# (CRT) layer.
Commerce-LoggingProvider – This log contains events that are logged by all other Commerce components
that aren't included in the list earlier in this article.
Enable debug event logs
Currently, some of the events that are logged by various components are sent to debug event logs. These events
are verbose events that are logged at very high rates and are useful only for detailed debugging scenarios. Follow
this step to enable the debug event logs in Event Viewer.
Right-click a debug log, and then click Enable Log .
Viewing events by using the (F12) browser developer tools console
Because Retail Cloud POS is a browser-based component, you can use the browser developer tools console to view
events for it. For information about the Microsoft browser developer tools console, see Using the Console to view
errors and debug on MSDN. To use the browser developer tools for Retail Cloud POS, you must use a supported
browser version.
View events in the browser developer tools console
1. Start Internet Explorer or Microsoft Edge, and go to Retail Cloud POS.
2. Press F12, and then click the Console tab.
3. As you perform operations on Retail Cloud POS, events are logged in the console. You can filter by event
severity to view events that have different severity levels.
Correlating events
This sections explains how to correlate events from various Commerce components.
Data flow between a POS client and Commerce Scale Unit
The diagram that follows shows the data flow between a point of sale (POS) client and the Commerce Scale Unit.
POS client startup
When a user starts a POS client, a new AppSessionID is generated. The AppSessionID is used to log every event
that is instrumented in the POS client. All events that are logged to Event Viewer and App Insights have this ID.
User sign-in
When a user signs in to a POS client, a new UserSessionID is generated. The UserSessionID is used to log every
event that is instrumented in the POS client. All user events that are logged to Event Viewer have this ID. This ID is
maintained for as long as the user is signed in. When the current user signs out and a new user sign in, a new
UserSessionID is generated.
POS client calls to Commerce Scale Unit
Whenever a POS client makes a call to the Commerce Scale Unit, the AppSessionID and UserSessionID are sent as
headers. The Commerce Scale Unit then logs an event for the incoming request (Event ID 5000). This event includes
those two IDs and also an ActivityID. The ActivityID is then also used for all related events. The AppSessionID,
UserSessionID, and ActivityID are available in the event log where Commerce Scale Unit is hosted. They are also
available in LCS Log Search.
Request activity on Commerce Scale Unit
Every event that is logged as part of a Commerce Scale Unit request has the same ActivityID as the initial event that
was logged for the initial incoming request event (Event ID 5000). These events are available in both Event Viewer
and LCS Log Search.
Finding Retail Modern POS events in Event Viewer
Every event that is logged by Retail Modern POS includes the following data points:
AppSessionID – A unique ID that is generated when the app is first started. It's included with every event that
is logged.
UserSessionID – A unique ID that is generated when a user signs in to Retail Modern POS. It's included with
every event that is logged, for as long as the user remains signed in. When a new user signs in, a new
UserSessionID is created.
You can find the AppSessionID and UserSessionID values on the Details tab in Event Viewer on the machine where
Retail Modern POS is installed.
Finding incoming Commerce Scale Unit request events in Event Viewer
To correlate data for incoming Commerce Scale Unit requests in Event Viewer, you must first enable the Analytic
channel. To enable the Analytic channel, follow these steps.
1. In Event Viewer, in the left pane, select Commerce-RetailSer ver .
2. Click View > Enable Analytic and Debug log . A new node for the Analytic channel appears under the
Commerce-RetailSer ver logging provider.
3. Right-click the Analytic node, and then click Enable log .
In Event Viewer, all incoming Commerce Scale Unit requests are logged to the Analytic channel of the Commerce-
RetailServer source as event 5000. These events also have the AppSessionID and UserSessionID that were
described earlier. Every event also has a unique ActivityID that is instrumented for every logged event for the same
request.

Using LCS Log Search


LCS Log Search lets you view data from all the components from a single portal. You can access events from both
cloud-hosted components (such as Commerce Scale Unit) and in-store components (such as Retail Modern POS
and Retail Hardware Station). Event data from all cloud-hosted and in-store components flows to LCS Log Search,
where it's indexed and made searchable. Data is typically available within 5 minutes after it's logged. For POS
clients and Retail Hardware Station, all events are locally queued in persistent storage and then uploaded in batches
after the queue is filled. This behavior enables network traffic to be optimized. It also enables events to be saved
even when there is no Internet connectivity. After connectivity is restored, all pending events are uploaded.
LCS Log Search is available for the HA production topology. It can be used for the following Commerce
components:
Retail Modern POS
Retail Cloud POS
Commerce Scale Unit (running on Retail Cloud Scale Unit)
LCS Log Search does not include logs from the following Commerce components:
Commerce layout designer
Commerce receipt designer
Self-service installer for Retail Modern POS
Self-service installer for Retail Hardware Station
Commerce Scale Unit (running on Retail Store Scale Unit)
Retail Hardware Station
Access LCS Log Search
To access LCS Log Search, follow these steps.
1. Go to Lifecycle Services.
2. Sign in by using the credentials that are associated with your project.
3. On the project page, select the correct project.
4. On the Project details page, select the correct environment.
5. On the Environment details page, click Environment Monitoring .
6. On the Environment monitoring page, click View raw logs .
7. On the Log Search page, select one of the following queries:
Commerce client events query, which includes events from Retail Modern POS, Retail Cloud POS, and
Commerce Scale Unit (running on Retail Cloud Scale Unit)
All logs query, which includes data from Commerce Scale Unit, Commerce Data Exchange, and
Commerce Data Exchange: Real-time Service
You can filter by the following criteria to refine your query:
Start and end dates and times (in Coordinated Universal Time [UTC])
Device ID
POS user
POS application session ID
POS user session ID
Severity level
Apply updates to cloud environments
3/4/2020 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how you can use Microsoft Dynamics Lifecycle Services (LCS) to automatically apply updates
to cloud environments.

IMPORTANT
Updates are applied using deployable packages. Applying updates causes system downtime. All relevant services will be
stopped, and you won't be able to use your environments while the package is being applied. You should plan accordingly.

Supported environments
All environments deployed through Lifecycle Services are supported.

NOTE
If you have a build environment, you can only use LCS to apply Binary updates and Data upgrade packages. You can't use
LCS to apply an Application Deployable package.

For other environments (listed below), you must use Remote Desktop Protocol (RDP) to connect to the
environment and install from the command line. For information about manual package deployment, see Install
deployable packages from the command line.
Local development environments (Downloadable virtual hard disk [VHD])
Multi-box dev/test environments in Microsoft Azure (Partner and trial projects)

Key concepts
Before you begin, you should understand deployable packages, runbooks, and the AXInstaller. A deployable
package is a unit of deployment that can be applied in any environment. A deployable package can be a binary
update to the platform or other runtime components, an updated application (AOT) package, or a new application
(AOT) package. The AXInstaller creates a runbook that enables installing a package. For more details, see Packages,
runbooks, and the AXUpdateInstaller in depth at the end of this topic.

Supported package types


AOT deployable package – A deployable package that is generated from application metadata and source
code. This deployable package is created in a development or build environment.
Application and Platform Binar y update package – A deployable package that contains dynamic-link
libraries (DLLs) and other binaries and metadata that the platform and application depend on. This is a package
released by Microsoft. This is available from the All binar y updates tile from LCS.
Platform update package – A deployable package that contains dynamic-link libraries (DLLs) and other
binaries and metadata that the platform depend on. This is a package released by Microsoft. This is available
from the Platform binar y updates tile from LCS.
Commerce deployable package – A combination of various packages that are generated after the
Commerce code is combined.
Merged package – A package that is created by combining one package of each type. For example, you can
merge one binary update package and one AOT package, or one AOT package and one Commerce deployable
package. The packages are merged in the Asset library for the project in LCS.

NOTE
A binary package and a Commerce deployable package can't be included in the same merged package.
For information about how to download an update from LCS and what you see in the tiles based on your environment
version, see Download updates from Lifecycle Services (LCS).
If your environment is on an application version 8.1 and later, then the Platform Update package does not apply to your
environment. Starting with 8.1 and later releases, Application and Platform Binar y update package is the one that
applies since application and platform will be combined into a single cumulative package and will be released by Microsoft.
Also note that you will no longer be applying granular X++ hotfixes and will get all application and platform updates
together. This means that on the environment details page, clicking on View detailed version information will not have
details on the granular hotfixes or KBs applied as there is no way to apply them.

Prerequisite steps
Make sure that the package that should be applied is valid. When a package is uploaded to the
Asset library, it isn't analyzed. If you select the package, the package status appears in the right pane as Not
Validated . A package must pass validation before it can be applied in an environment by using the
following procedures. The status of the package will be updated in the Asset library to indicate whether the
package is valid. We require validation to help ensure that production environments aren't affected by
packages that don't meet the guidelines.
There are three types of validations:
Basic package format validations
Platform version checks
Types of packages
Make sure that the package is applied in a sandbox environment before it's applied in the
production environment. To help ensure that the production environment is always in a good state, we
want to make sure that the package is tested in a sandbox environment before it's applied in the production
environment. Therefore, before you request that the package be applied in your production environment,
make sure that it has been applied in your sandbox environment by using the automated flows.
If you want to apply multiple packages, create a merged package that can be applied first in a
sandbox environment and then in the production environment. Application of a single package in
an average environment requires about 5 hours of downtime. To avoid additional hours of downtime when
you must apply multiple packages, you can create a single combined package that contains one package of
each type. If you select a binary package and an application deployable package in the Asset library, a
Merge button becomes available on the toolbar. By clicking this button, you can merge the two packages
into a single package and therefore reduce the total downtime by half.
Make sure that the Application binar y update package is applied to your dev/build
environment before it is applied to your sandbox and production environment - If the
application binary package is applied directly to your Tier 2+ sandbox environment but is not applied on
your dev/build environment, the next time you move an AOT package from dev/build box (which does not
have the same application binaries as your sandbox environment) to sandbox, some of the application
binaries will be overwritten with what is in your dev/build environment. This could result in a regression of
the version of your sandbox environment.

Apply a package to a non-production environment by using LCS


Before you begin, verify that the deployable package has been uploaded to the Asset library in LCS.
1. For a binary update, upload the package directly to the Asset library. For information about how to download
an update from LCS, see Download updates from Lifecycle Services (LCS). For an application (AOT) deployable
package that results from an X++ hotfix, or from application customizations and extensions, create the
deployable package in your development or build environment, and then upload it to the Asset library.
2. Open the Environment details view for the environment where you want to apply the update.
3. Click Maintain > Apply updates to apply an update.
4. Select the package to apply. Use the filter at the top to find your package.
5. Click Apply . Notice that the status in the upper-right corner of the Environment details view changes from
Queued to In Progress , and an Environment updates section now shows the progress of the package. You
can refresh the page to check the status.
6. Continue to refresh the page to see the status updates for the package application request. When the package
has been applied, the environment status changes to Deployed , and the servicing status changes to
Completed .

Apply a package to a production environment by using LCS


In a production environment, customers can schedule a downtime for when they want the update to be applied.

IMPORTANT
An important prerequisite for applying a package to a production environment is that the package must be successfully
applied to at least one sandbox environment in the same project.

1. After the update is successfully applied in a sandbox environment, go to the project's asset library. On the
Asset librar y page, select the Software deployable package tab, select the package that you want to
move to production, and click Release candidate . This indicates that this package is ready for production
deployment.
2. Open the Environment details view for the production environment where you want to apply the
package.
3. Select Maintain > Apply updates to apply the package.
4. Select the package to apply in your production environment, and then click Schedule to submit a request
to apply it.

NOTE
The list of packages includes only the packages that have been successfully signed off in the sandbox environment,
and that have been marked as release candidates.

5. Specify the date and time to schedule the package application. Click Submit , and then click OK to confirm.
Note that your environments will be unavailable to perform business while the package is being applied.
6. At the scheduled downtime, package deployment will start.
7. After the environment is serviced, you can monitor the status. The Ser vicing status field indicates the
status of package application. Additionally, a progress indicator shows the number of steps that have been
run, out of the total number of steps that are available.
8. After the deployment is successfully completed, the Ser vicing status field is set to Completed .
9. If package application isn't successfully completed, Microsoft will investigate the issue. The Ser vicing
status field will indicate that package application has failed. The environment will be rolled back to a good
state.

Troubleshoot package deployment failures


If package deployment fails, see the Troubleshoot package application issues topic.

Applying updates and extensions


If you are updating a Tier-2 Sandbox or Production environment on application version 8.1.2.x or newer and have
initialized Cloud Scale Unit, you will also need to update Commerce channel components. For more information,
see Update Retail Cloud Scale Unit.
If you're using components (such as Modern POS), after you've applied updates and extensions in your
environment, you must also update your in-store components. For more information, see Configure, install, and
activate Modern POS (MPOS).

Packages, runbooks, and the AXUpdateInstaller in depth


Deployable packages, runbooks, and the AXUpdateInstaller are the tools you use to apply updates.
Deployable package – A deployable package is a unit of deployment that can be applied in an environment. A
deployable package can be a binary update to the platform or other runtime components, an updated application
(AOT) package, or a new application (AOT) package. Deployable packages downloaded from LCS or created in a
development environment cannot be applied across product types. For example, a Finance deployable package
cannot be applied in a Commerce app environment, and vice versa. If you have an existing customization for a
Finance and Operations app that is compatible with the Commerce app, and you would like to apply it to a
Commerce environment, you will need to re-package your source code in a Commerce development
environment, and conversely if moving in the other direction.
Runbook – The deployment runbook is a series of steps that are generated in order to apply the deployable
package to the target environment. Some steps are automated, and some steps are manual. AXUpdateInstaller lets
you run these steps one at a time and in the correct order.

AXUpdateInstaller – When you create a customization package from Microsoft Visual Studio or a Microsoft
binary update, the installer executable is bundled together with the deployable package. The installer generates
the runbook for the specified topology. The installer can also run steps in order, according to the runbook for a
specific topology.

Additional resources
Install deployable packages from the command line
Implementation lifecycle management home page
11/18/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

These topics describe the programs, tools, and processes available related to the implementation lifecycle of your
Finance and Operations project.

Programs
Microsoft FastTrack

Tools
Microsoft Dynamics Lifecycle Services
Lifecycle Services (LCS) for Finance and Operations apps customers

Processes
Onboard an implementation project
Prepare for go-live

Frequently asked questions


Go-live for implementation projects FAQ
Finance and Operations application architecture
11/18/2019 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The Finance and Operations application cloud architecture contains all the elements that are common to all
Microsoft cloud offerings, as described in Subscriptions, licenses, accounts, and tenants for Microsoft's cloud
offerings. Beyond this, it also includes services that automate software deployment and provisioning, operational
monitoring and reporting, and seamless application lifecycle management.

The cloud architecture consists of these conceptual areas:


Subscription – A subscription to Finance and Operations apps gives you an online cloud environment (or
multiple environments) and experience.
Licenses – Customers must purchase subscription licenses (SLs) for their organization, or for their affiliates'
employees and on-site agents, vendors, or contractors who directly or indirectly access Finance and
Operations apps. These apps are licensed through Microsoft Volume Licensing and the Microsoft Cloud
Solution Provider (CSP) program. For more information, download the latest Microsoft Dynamics 365
Licensing Guide from Dynamics 365 pricing.
Tenant – In Microsoft Azure Active Directory (AAD), a tenant represents an organization. It's a dedicated
instance of the AAD service that an organization receives and owns when it creates a relationship with
Microsoft (for example, by signing up for a Microsoft cloud service, such as Azure, Microsoft Intune, or
Microsoft Office 365). Every AAD tenant is distinct and separate from other AAD tenants. For more
information about AAD tenants, see How to get an Azure Active Directory Tenant.
A tenant houses the company's user information. This information includes passwords, user profile data,
permissions, and related information. The tenant also contains groups, applications, and other information
that pertains to an organization and its security.
The tenant is created when customers sign up for their first subscription to any Microsoft online service,
such as Office 365, Microsoft Dynamics 365, or Azure. Any later subscriptions to the same online services or
other online services can be grouped within the same tenant.
An organization can have multiple AAD tenants. If there are multiple tenants, make sure that any
subscriptions for Finance and Operations apps are associated with the correct tenant.
Azure Active Director y (AAD) – AAD is the multi-tenant, cloud-based directory and identity management
service from Microsoft that combines core directory services, application access management, and identity
protection in a single solution. For more information, see Azure Active Directory. Finance and Operations
apps use AAD as the store for identity. Access to AAD is provided as part of a subscription to Finance and
Operations apps.
Office 365 admin center – Office 365 admin center is the subscription management portal that Office
365 provides for administrators. It's used to provide management functions for users (AAD) and
subscriptions. As part of these management functions, it provides information about service health. For
more information, see About the Office 365 admin center.

NOTE
You don't have to have an Office 365 license to deploy Finance and Operations apps. However, you might require a
license for specific Office integration scenarios. For more information, see Office integration overview.

Microsoft Dynamics Lifecycle Ser vices (LCS) – LCS is a collaboration portal that provides an
environment and a set of regularly updated services that can help you manage the application lifecycle of
your implementations. For more information, see Lifecycle Services resources. After you purchase and
activate a subscription for a Finance and Operations app, an Implementation project workspace is
provisioned in LCS when the tenant administrator signs in for the first time.

NOTE
An implementation project is an LCS project for the cloud service. As a Microsoft partner, you can also provision non-
implementation LCS projects for your own purposes. For more information, see Lifecycle Services (LCS) for Finance
and Operations apps partners.

Finance and Operations apps – Finance and Operations apps are deployed through LCS. Various
topologies are available: development/test/build, acceptance test, performance test, and high-availability
production. For more information about the various topologies, download the latest Microsoft Dynamics
365 Licensing Guide from Dynamics 365 pricing.
Microsoft Azure DevOps – Azure DevOps is used primarily for code version control, development, and to
deploy a build environment. Azure DevOps is also used to track support incidents, such as work items in
Azure DevOps that are submitted to Microsoft through Cloud-powered support, and to integrate the
Business process modeler (BPM) library hierarchy into your Azure DevOps project as a hierarchy of work
items. Azure DevOps is also used during code upgrade.
"Under the hood," Finance and Operations apps use many features of the Azure platform, such as Azure Storage,
networking, monitoring, and Azure SQL Database, to name just a few. Shared services put into operation and
orchestrate the application lifecycle of the environments for participants. Together, Azure functionality and LCS offer
a robust cloud service.

NOTE
Although many features of the Azure platform are used, you don't have to have an Azure subscription to deploy Finance and
Operations apps in the Microsoft-managed cloud. You must have an Azure subscription only if you want to deploy Finance
and Operations apps cloud-hosted environments in your own Azure subscription.
Microsoft FastTrack
3/12/2020 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Microsoft FastTrack is a customer success service that is designed to help you move smoothly and confidently to
Microsoft Dynamics 365, so that you can realize business value faster. When you participate in the FastTrack
program, you receive guidance about implementation best practices, planning for successful rollouts, and
expanding capabilities. However, you implement at your own pace. You also have access to Microsoft engineering
resources who are committed to making your experience a success.

Microsoft FastTrack overview


We offer different deployment options for cloud and on-premises environments. Microsoft provides a dedicated
FastTrack solution architect for cloud deployments only.

Eligibility for FastTrack


To get started with FastTrack, your project must meet the minimum license requirement. For more information, see
the Microsoft Dynamics 365 Licensing Guide. Currently, there is a 20-seat minimum for the Dynamics 365 Finance
and Operations Plan or equivalent.
After your Implementation project workspace is provisioned in Microsoft Dynamics Lifecycle Services (LCS), the
FastTrack team will contact your project team to onboard the project and provide information about the program.
No action is required on your part. You just have to make sure that the user information in LCS is up to date, and
that the email addresses in the setup are monitored.

DEDIC AT ED
FA ST T RA C K
FA ST T RA C K W O RK SH O P EN GIN EERIN G
P RO GRA M REVEN UE T EC H TA L K S W O RK SH O P S F O L LO W - UP S RESO URC ES

Dynamics 365 Combined annual All included All included All included Included
FastTrack adjusted revenue
Business of $300,000 or
process more
applications
Dynamics 365
Finance
Dynamics 365
Supply Chain
Management
Dynamics 365
Retail
Dynamics 365
Human
Resources*
DEDIC AT ED
FA ST T RA C K
FA ST T RA C K W O RK SH O P EN GIN EERIN G
P RO GRA M REVEN UE T EC H TA L K S W O RK SH O P S F O L LO W - UP S RESO URC ES

FastTrack Combined annual All included Pre go-live Not included Not included
Essentials adjusted revenue assessment
Dynamics 365 < $300,000
Finance
Dynamics 365
Supply Chain
Management
Dynamics 365
Retail
Dynamics 365
Human
Resources

We will announce FastTrack coverage later this year for these applications:
Dynamics 365 Guides
Dynamics 365 Remote Assist
Dynamics 365 Layout
FastTrack for services
TechTalks
Community
Workshops

NOTE
The FastTrack team is always increasing the documentation of its processes and guidance. For more information, see
Implementation lifecycle management home page.

TechTalks
TechTalks focus on empowering both customers and partners by providing technical depth and best practices that
are specific to the subject areas that are covered. These talks often provide an overview of available tooling and
features. TechTalks are delivered in the form of live webcasts that include a question and answer (Q&A) session at
the end. They can also be accessed on-demand and are publicly available. To view all TechTalks and sign up for
future talks, see Microsoft Dynamics 365 FastTrack Tech Talks.
TechTalks provide a basic understanding that will increase the value and efficiency of the workshops that are
offered. The FastTrack team will guide you to relevant TechTalks that will help you prepare for specific workshops.
For a complete inventory of all recorded TechTalks that are available to stream or download, see FastTrack Tech
Talks.

Community
The FastTrack community provides a platform where customers and partners can post questions and get answers
from FastTrack solution architects about best practices and guidance. To participate in the community, see FastTrack
Forum.

Workshops
Workshops are interactive outcome-based remote sessions. Customers and partners can provide input before the
workshops and customize them for their engagements.
Kick-off meetings
The kick-off meetings are available to customers who are eligible for a designated FastTrack solution architect. The
kick-off meetings are designed to introduce the FastTrack service and the roles and responsibilities of the FastTrack
team in your project, to define how three parties (the solution integrators, the customer, and Microsoft FastTrack)
will collaborate during the implementation project, and provide introductory guidance about a set of critical
success factors for an implementation. Some of the topics that the kick-off meetings are likely to cover include:
Team introductions
Project background, goals, and success factors
Overview of FastTrack including service offering, roles and responsibilities, and differentiation between
Microsoft teams
Explanation of how services are delivered, and where and when to seek help from the FastTrack engineering
team
Critical success factors and key learning that can be shared by the FastTrack team
Typically, the designated FastTrack solution architect will initialize the engagement by scheduling a partner kick-off
meeting followed by a customer kick-off meeting after the eligible customer has completed the onboarding
process. For more information about customer onboarding, see Onboard an implementation project.
The typical format of a partner kick-off meeting is a one-hour Microsoft Teams call. For customers, the kick-off
meeting is a three-hour Microsoft Teams call. The recommended attendees include key stakeholders like
customer’s project sponsor (not required for entire kick-off meeting), project managers, solution architects,
technical/functional leads, business process owners from the customer, a partner, and the Microsoft teams. The
kick-off meeting can also be conducted in a combined customer and partner session if the implementation
partners have been through the process before.
Solution blueprint workshops
The Solution blueprint workshops are designed to promote understanding of the solution design to facilitate
alignment with the approach that Microsoft uses for public cloud deployment, known patterns and best practices,
a review of the product roadmap, and project goals and schedule. The initial blueprint review is done early in the
implementation. Supplementary reviews are done as the blueprint evolves. Here are some of the topics that these
workshops are likely to cover:
Solution overview and rollout plan
Application component design
Inclusions from independent software vendors (ISVs)
Instance strategy
Environment plan
Business process catalog
Gap solution design
Integration design
Data migration design
Business intelligence and analytics design
The typical format is a two-to-four-hour Skype call. The recommended attendees include key stakeholders from
the customer and partner teams. Solution architects, functional leads, and technical leads are mandatory.
Environment planning workshop
The Environment planning workshop is designed to cover the environment planning in more depth. Here are
some of the topics that the workshop is likely to cover:
Environment strategy
Project methodology
Project schedule and phases
Rollout and long-term operations plan
The typical format is a one-to-three-hour Skype call. The recommended attendees include key stakeholders from
the customer and partner teams. Solution architects, project managers, and technical leads are mandatory.
Gap solution design workshop
The Gap solution design workshop is designed for implementations that have critical requirements that aren't
supported by the standard system. The workshop reviews the top gaps in terms of complexity. This workshop isn't
intended as a fit/gap review. The expectation is that initial consideration of solutions for every scenario will be
completed before the workshop. Here are some of the topics that the workshop is likely to cover:
Gap requirements
Proposed extension solution
Potential workarounds that have been considered
ISV solutions that have been considered
The typical format is a one-to-three-hour Skype call. The recommended attendees include key stakeholders from
the customer and partner teams. Solution architects, functional leads, and technical leads are mandatory.
Application lifecycle management review workshop
The Application lifecycle management (ALM) review workshop is designed for cases where implementers want to
make sure that their ALM approach will meet the requirements of the implementation and be aligned with typical
best practices. Here are some of the topics that the workshop is likely to cover:
Environment plan
Development work management plan
Code management design
Build process design
Rollout plan
The typical format is a one-to-three-hour Skype call. The recommended attendees include key stakeholders from
the customer and partner teams. Solution architects, project managers, and technical leads are mandatory.
Performance workshop
The Performance workshop is designed for cases where implementers must make sure that performance-related
aspects of the implementation are accounted for, and that the correct process and approach are followed to help
guarantee performance. Here are some of the topics that the workshop is likely to cover:
Usage profile
Performance testing approach
Performance remediation approach
The typical format is a one-to-three-hour Skype call. The recommended attendees include key stakeholders from
the customer and partner teams. Solution architects and technical leads are mandatory.
Integration design workshop
The Integration design workshop is designed to review the overall plan for integrations and also aspects of specific
interface designs. Here are some of the topics that the workshop is likely to cover:
Overall application component design
In-scope interface catalog
Middleware designs
Performance and operational aspects of the integration designs
The typical format is a one-to-three-hour Skype call. The recommended attendees include key stakeholders from
the customer and partner teams. Solution architects and technical leads are mandatory.
Data migration workshop
The Data migration workshop is designed to help guarantee that the migration strategy covers all the required
topics or to review the complexities of specific migrations. Here are some of the topics that the workshop is likely
to cover:
Data migration strategy
Data migration design
The typical format is a one-to-three-hour Skype call. The recommended attendees include key stakeholders from
the customer and partner teams. Solution architects and technical leads are mandatory.
Business intelligence and analytics design workshop
The Business intelligence (BI) and analytics design workshop is designed to review the overall strategy for using BI
and analytics in the solution, and also to drill into specific designs. Here are some of the topics that the workshop
is likely to cover:
Analytics designs
Audit reporting designs
Output document designs
Financial reporting designs
The typical format is a one-to-three-hour Skype call. The recommended attendees include key stakeholders from
the customer and partner teams. Solution architects and technical leads are mandatory.
Test strategy workshop
The Test strategy workshop is designed to validate the strategy that has been proposed for various testing
requirements both before and after go-live. Here are some of the topics that the workshop is likely to cover:
Functional test strategy
End-to-end test strategy
Acceptance test strategy
Performance test strategy (This topic is covered in depth during the Performance workshop.)
Regression test strategy
Mock cutover strategy
The typical format is a one-to-three-hour Skype call. The recommended attendees include key stakeholders from
the customer and partner teams. Solution architects, project managers, and testing leads are mandatory.
Cutover plan workshop
The Cutover plan workshop is designed to validate the plan for go-live cutover. The cutover process for the initial
phase and subsequent phases is also validated. Here are some of the topics that the workshop is likely to cover:
Cutover checklist or checklist approach
Subsequent initial and subsequent cutover approaches
Cutover timing and dependency
Cutover validation approach
Cutover contingency planning
The typical format is a one-to-three-hour Skype call. The recommended attendees include key stakeholders from
the customer and partner teams. Solution architects and project managers are mandatory.
Go -live assessment workshop
The Go-live assessment workshop is designed to help guarantee a successful go-live of projects. Here are some of
the topics that the workshop is likely to cover:
Confirmation of the go-live date and scope
Solution acceptance and user training
Performance
Integrations
Code management
Configuration management
Review of blocking issues
Cutover plan and final data migration
Risk and mitigation review
Customer go/no-go criteria
Support process and Hyper-care plan
The typical format is a one-and-a-half-hour Skype call. The recommended attendees include key business users
and subject matter experts. Hyper-care team leads are mandatory.
Post go -live review workshop
The Post go-live review workshop is designed to wrap up the FastTrack engagement. Here are some of the topics
that the workshop is likely to cover:
Review of goals and objectives
Discussion of lessons that have been learned
Support overview
Review of aged support items
Handover of open issues to support teams
The typical format is a one-and-a-half-hour Skype call. The recommended attendees include key stakeholders from
the customer, partner, and Microsoft teams. Project managers are mandatory.
Onboard an implementation project
3/13/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how to onboard a Finance and Operations project by using Microsoft Dynamics Lifecycle
Services (LCS).

Microsoft 365 Admin Center


After your organization has purchased a subscription to Finance and Operations, it must be activated on your
organization's Azure Active Directory (Azure AD) tenant by your Tenant Administrator, who completes the
following steps:
1. Open an Inprivate/Incognito browser session and go to the Microsoft 365 Admin Center.
2. Sign in with the Tenant Administrator credentials.
3. Go to Billing > Products & ser vices and confirm that there is an active subscription for the application
that you want to deploy.

NOTE
If you do not see an active subscription, consult with your Licensing Partner to confirm the status of the subscription
transaction as well as the tenant for the subscription. By default, all Microsoft Online Services should be running on
the same Azure AD tenant.

4. If the subscription in question is shown as active, proceed to the next step by signing in to LCS to trigger the
Implementation Project creation flow.
5. Open another private browser tab and go to Lifecycle Services. Select Login to access LCS with your
current Tenant Admin credentials.
6. Accept and confirm any other prompts displayed to complete the Implementation Project provisioning.
7. The Tenant Administrator is assigned the Project Owner security role in the provisioned Implementation
Project.

NOTE
If the Tenant Administrator will not be a participant in the implementation, at least one additional Project Owner
must be assigned to the implementation project.

For an overview of LCS user management, including the security roles that can be assigned to users, see
Configure Lifecycle Services (LCS) security.

LCS implementation project workspace


After the Tenant Administrator has completed the Finance and Operations subscription activation and added
additional project owners as appropriate, those team members can access the Implementation
project workspace.
The first step to be completed in LCS is Project onboarding . This step is required for all LCS implementation
projects that are created on or after August 22, 2019, PST , prior to deploying any of the Microsoft-managed
environments. You can access the Project onboarding feature using the action center notification or the LCS
Implementation project menu. You must be assigned to the Project owner security role to access Project
onboarding in LCS.
To get started with LCS, see Lifecycle Services (LCS) for Finance and Operations apps customers.

FastTrack onboarding services


After the LCS Implementation project workspace is provisioned, the Microsoft FastTrack team will monitor your
onboarding progress. For more information about the FastTrack program and the services provided, see Microsoft
FastTrack.
All LCS Implementation projects will receive an email from the FastTrack team welcoming them to the service
after they successfully complete the project onboarding. If project onboarding is not completed within a few weeks
after creating an LCS Implementation project creation, a reminder will be sent to the project team.

NOTE
All onboarding-related emails from the FastTrack team will originate from Dynamics 365 Onboarding
([email protected]), so please ensure that any spam blocker/filter allows email from this address.

Key data to keep current in LCS


We recommend that you add key project members (such as project managers) from the customer and partner
teams to the LCS implementation project. Be sure to include each person's work email address. In this way, you
help us work best with you and help ensure that project members don't miss important communication from us.
Be sure to keep the milestone dates in your LCS project current. In this way, you help us connect with you at
different project stages. When you're closer to your go-live date, we will contact you for a project Go-live
assessment before we deploy your production environment.
Milestone dates are stored in the LCS implementation methodology. For more information, see the Methodologies
section of the "LCS for Customers" topic.
Environment planning
2/20/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides an overview of various aspects that you must consider while you plan for your project's
environment. To help guarantee a successful cloud implementation, it's important that you discuss and plan your
environment early in the project.

Environment planning overview


To begin, here are a few important concepts:
Environment purpose – The reasons why the environment exists. Examples include development, system
testing, user acceptance testing (UAT), and operations.
Environment topology – The composition of the environment and the purpose. Examples include Develop
and Build and Test for Tier-1 environments.
Environment tier – The type or category of the environment. Examples include Tier-1 environments and Tier-2
environments.
For more information, about the various environments and tiers, download the latest Microsoft Dynamics 365
Licensing Guide from Dynamics 365 pricing.
Environment types
You can use the following environment types for your project:
Standard – This environment is included in the standard offer and is managed by Microsoft in a Microsoft
subscription. Standard environments include the production environment, a Tier-2 Standard Acceptance Test
environment, and one Tier-1 develop and test environment.
Add-on – The add-on environments are in a Microsoft-managed subscription that the customer has purchased
in addition to the standard offer. For example, an add-on environment might be an additional Tier-4
environment for performance testing.
Cloud-hosted – Cloud-hosted environments are additional environments that are managed by the customer
or partner in a customer or partner Microsoft Azure subscription. A cloud-hosted environment can include a
Tier-1 demo environment.
Environment image (VHD) – These additional Tier-1 environments are hosted on-premises by using a virtual
hard disk (VHD) that can be downloaded from Microsoft Dynamics Lifecycle Services (LCS).

IMPORTANT
In a customer or partner Azure subscription, the customer or partner brings its own Azure subscription, and deploys
environments to that subscription for evaluation and development purposes only. The customer or partner pays for the
resources that are deployed to its Azure subscription. The amount that the customer or partner pays is based on the Azure
price list. By contrast, in a Microsoft subscription, the customer purchases licenses that allow the customer to deploy
environments to an Azure subscription that is managed by Microsoft. Therefore, the customer has no separate Azure billing.
Tier-1 vs. Tier-2 and higher
T IER- 1 T IER- 2 A N D H IGH ER

Single-box environment Multi-box environment

| All components are installed on the same server. These components include Application Object Server (AOS), the
database, Dynamics 365 Commerce, and Management Reporter. | Components are installed on multiple servers. |
| Microsoft SQL Server is used. | Azure SQL Database is used. | | The architecture differs from the architecture of the
production environment to maximize efficiency and cost of the development team. | The architecture is the same as
the architecture of the production environment, even though this type of environment has a different sizing and
isn't enabled for disaster recovery. | | The environment can be deployed in various ways. For example, it can be
deployed as an add-on, it can be cloud-hosted, or it can be deployed as an environment image (VHD). | The
environment can be deployed only as a standard environment or an add-on environment. It can't be cloud-hosted. |
| The environment isn't suitable for UAT or performance testing. | The environment is suitable for UAT and
performance testing. |

Standard cloud offer


The standard cloud offer includes three environments:
Tier-1 environment: Develop and test – One develop/test instance is provided for the duration of the
subscription. This instance is a non-production single-box instance that the customer can use as a
development enviroment, automated build and test environment, or golden configuration environment.
Additional develop/test instances can be purchased separately as an optional add-on.
Tier-2 environment: Standard Acceptance Testing – One Standard Acceptance Testing (UAT) instance is
provided for the duration of the subscription. This instance is a non-production multi-box instance that
customers can use for UAT, integration testing, and training. Additional sandbox/staging instances can be
purchased separately as an optional add-on.
Production environment – One production instance is provided per tenant. The production multi-box
instance includes disaster recovery and high availability. It will be provisioned when the implementation
approaches the Operate phase, after the required activities in the Microsoft Dynamics Lifecycle Services
(LCS) methodology and a successful go-live assessment are completed. Additionally, some file storage and
database storage are included in the offer:
File storage: Every customer receives 100 gigabytes (GB) of file/Azure blob cloud storage for files and
binary data. Additional file/blob storage can be purchased.
Database storage: Every subscription includes 10 GB of Azure SQL Database storage per customer at
no additional charge. Additional storage capacity is provided at no charge as an organization increases
the number of user and device service licenses. For more information about the various environments
and the various types of storage, download the latest Microsoft Dynamics 365 Licensing Guide from
Dynamics 365 pricing.

IMPORTANT
Microsoft promises service and data high availability as well as minimal servicing downtime guarantees as part of the
Dynamics 365 software license agreement (SLA) for production environments. The SLA goals do not apply to non-production
environments.

Provisioning of standard environments


The various environments are provisioned at different times. The following table shows the suggested timing for
the environments in the standard cloud offer.
EN VIRO N M EN T W H EN DO ES P RO VISIO N IN G O C C UR? IS IT SEL F - SERVIC E?

Tier-2 Standard Acceptance Test During onboarding with the Microsoft Yes
FastTrack team

Tier-1 develop/build and test When the Design phase starts. The Yes
provisioning process requires that
Microsoft Azure DevOps be configured.

Production At production system readiness A production deployment request must


be submitted in LCS. Deployment is
done through the Dynamics Service
Engineering (DSE) team within two
business days.

IMPORTANT
Always deploy environments by using an unnamed account, such as [email protected] . Use the build topology to
deploy and use the develop and test environment, because this topology simplifies build management and automatically
initializes the Azure DevOps source repository.

Production system readiness


The production environment can be deployed when the project is ready for the initial go-live. For more information,
see Prepare for go-live.
Production system readiness includes, but isn't limited to, the following conditions:
An up-to-date subscription estimate is activated, as described in Subscription estimator in Lifecycle Services
(LCS).
Code, configuration, and data are ready for cutover.
An engineering process is in place to manage critical fixes.
The customer has signed off on the solution and UAT.
A cutover plan is in place.
Customers should use the production environment to operate the solution, not build it. The production
environment is sized to run your business. The sizing is based on the subscription estimate and diagnostic data
from performance testing. After deployment, customers can and should do a mock cutover and a final round of
validation on the production environment. Before the final cutover, customers can request a Point in time restore to
restore the production environment to a clean snapshot (up to 35 days in the past).
To select the appropriate data center for the production environment, consider the latency from the geographic
locations where the business operates. Use tools such as PsPing and AzureSpeed.com to test latency to Azure data
centers.
The following illustrations shows the environment planning process.

Additional environments
Additional environments can be purchased as add-ons, or they can be deployed as cloud-hosted environments. The
following illustration shows a sample overview of standard and additional environments, based on the complexity
of the implementation.

IMPORTANT
Always deploy environments by using an unnamed account, such as [email protected] . Assign the environments an
owner who will be responsible for their status and maintenance. After go-live, if you plan to work on new releases, get an
additional Tier-2 or higher environment to support production.

Deployment considerations for development environments


For development environments, there are three deployment options:
Standard or add-on – The environments are managed by Microsoft in a Microsoft subscription.
Cloud-hosted – The environments are managed by the customer/partner in a customer/partner Azure
subscription.
Environment image (downloadable VHD) – The environments are hosted on-premises.

NOTE
You must allocate one development environment per developer.

The following table compares the deployment options.

C A PA B IL IT Y STA N DA RD/ A DD- O N C LO UD- H O ST ED EN VIRO N M EN T IM A GE

Public URL ✓ ✓ Not supported

Integration development ✓ ✓ Extra setup is required. (For


example, run the admin user
provisioning tool.)

Azure DevOps ✓ ✓ Extra setup is required. (For


example, rename the
computer.)

Applying deployable Automated Automated Command line runbooks


packages from LCS (AxUpdateInstaller.exe tool)
C A PA B IL IT Y STA N DA RD/ A DD- O N C LO UD- H O ST ED EN VIRO N M EN T IM A GE

Deploying data packages ✓ ✓ Not supported


from LCS

Maintenance Managed by Microsoft Managed by the Managed by the


customer/partner customer/partner

Cost model Fixed flat rate (The price is Pay as you go (If the Hardware-related
the same if the environment environment is on for eight
is on 24/7.) hours, you pay for eight
hours.). Cost is based on
selected Virtual Machine
size, disk size and settings,
and premium storage
settings

Limitations 1) Virtual Machine (VM) None. You have full control None
local Administrator access is over VM specs, disk size and
disabled. 2) Limited disk storage settings. You have
sizes 3) VM specs are administrator access to the
defined by Microsoft VM.

IMPORTANT
Actions that require local administrator access can no longer be performed on Tier-1 environments managed by Microsoft
(Standard and Add-on). These actions include installation of third-party tools and development of Microsoft Power BI reports.
If administrator permissions are required, use cloud-hosted environments or an environment image (downloadable VHD)
instead. For more information, see Development and build VMs that don't allow admin access FAQ.

Selecting the correct Tier-2 or higher environment


It's important that you select the correct Tier-2 or higher environment, depending on the purpose of the
environment. The guidance that is provided in the following illustration is a baseline. You must work with your
implementation partner to adjust this guidance, based on your specific business scenarios and factors such as type
of users, complexity, and volumes.

After a subscription estimate is activated, you can view transaction lines per hour in LCS, as shown in the following
illustration.
IMPORTANT
The upcoming admin lockdown for Tier-2 or higher environments will no longer allow Remote Desktop Protocol (RDP)
connections to the servers. As part of the Microsoft roadmap, the most common actions where RDP access is required are
being replaced by self-service tasks in LCS. For example, the procedure to copy a Finance and Operations database from SQL
Server to a production Azure SQL Database environment will be available as a service from Microsoft. Therefore, to copy a
database from SQL Server to a production Azure SQL Database environment, you will have to create a service request in LCS.
More information will be available through the LCS Blog and on Docs.

Purchasing add-on environments


If you want to purchase add-on environments, we recommend that you work closely with your Cloud Solution
Provider or License Service Reseller. Consider the potential lead time that occurs between the time when the order
is placed and the time when the environment is deployed.
The following illustration shows the process for purchasing add-on environments.

IMPORTANT
If you have a Microsoft Volume Licensing agreement, you can subscribe to add-on environments on a monthly basis through
the Microsoft Products and Services Agreement (MPSA) licensing program. Alternatively, you can subscribe to them through
the Microsoft Cloud Solution Provider (CSP) program. For more information about the various environments and tiers,
download the latest Microsoft Dynamics 365 Licensing Guide from Dynamics 365 pricing.
Environments plan
Create the environments plan early in your implementation.
1. Identify the project activities that require an environment. These activities include, but aren't limited to,
development of customizations and maintenance of golden configuration data.
2. Determine the activities lifecycle to determine the environments lifecycle. Here are some examples of the
questions that you should ask during this step:
When and for how long do you require the environment?
Do you require the environment before or after go-live?
3. Determine the type and topology of the required environments.
4. Summarize the list of required environments in a matrix.
After you've identified the environments, the environments plan can be used to structure the Application Lifecycle
Management (ALM) flows. For example, after you finalize your environments plan, you can define the flows for
building and moving the code and the data across environments.
We strongly recommend that you watch the Environment Planning TechTalk. From the linked page, you can also
download the Sample Environment Planning exercise spreadsheet to get a head start on your environment
planning exercise.
Prepare for go-live
2/1/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how to prepare to go live with a project by using Microsoft Dynamics Lifecycle Services (LCS).
This graphic lists the phases of the go-live process.

The following table lists all the steps in the process, with the expected duration and who is responsible to take the
action.

A C T IO N DURAT IO N / W H EN WH O N OT ES

1 Update Go-live date At the latest 2-3 Partner/Customer The milestone dates
in LCS months in advance should be kept up to
date on an ongoing
basis

2 Complete and send After UAT complete Partner/Customer Follow the


check list instructions provided
in the "FastTrack Go-
live assessment"
section later in this
topic.

3 Project assessment 3-business days for FastTrack Architect Architect delivers


(Fast Track Essentials) initial report, plus assessment after
additional time for checklist is received
mitigation, if required and continues review
until questions are
clarified and
mitigations are in
place, if applicable.
A C T IO N DURAT IO N / W H EN WH O N OT ES

Project workshop To coordinate with FastTrack Architect


(Fast Track) architect assigned

4 Release for Upon successfully FastTrack Architect If the production


production completed deployment request
deployment assessment has already been
submitted,
deployment will start.
However, we request
that you only submit
the Production
request after the
assessment has
successfully
completed.

5 Production Self-service Customer The production


deployment request deployment request
should only be
submitted after the
FastTrack Architect
has finished the
assessment.

Sizing Immediate in case of Sizing team Automatic sizing


automatic sizing. based on subscription
Could require further estimate by default,
clarifications of the manual sizing by
subscription estimate. exception.

Deployment 48 hours Dynamic Service Status in LCS reflects


Engineering (DSE) the deployment
progress. If there are
any questions about
your request, they will
be posted as
Comments on the
service request.

6 Deployable package Self-service Customer Follow the


installation request instructions in the
topic, Apply updates
to cloud
environments.
A C T IO N DURAT IO N / W H EN WH O N OT ES

Package installation Depends on number Dynamic Service Generally, 95% of


of packages, Engineering (DSE) updates are applied in
minimum 5 hours less than one hour,
lead time and 4 hours however we still
downtime per recommend that you
package provide a downtime
window of four hours
in case a rollback is
required for any
reason. When the
package deployment
succeeds, the
environment will be
available as soon as
the package
deployment has
finished, which means
that the longer
downtime window
does not have any
negative effect on the
availability of the
system.

7 Database copy from Self-service Customer Follow the


Sandbox request (if instructions in the
applicable) topic, Golden
configuration
promotion.

Copy database Five hours lead time Dynamic Service Generally, the
and four hours Engineering (DSE) database copy is
downtime completed in less
than one hour. We
still recommend that
you provide a
downtime window of
four hours in case a
rollback is required for
any reason.

8 Production ready After all previous Customer/Partner Customer/Partner can


steps have been take control of the
completed production
environment.

Cutover activities Depends on the Customer/Partner


project

9 Go live Depends on the Customer


project

Completing the LCS methodology


A major milestone in each implementation project is the cutover to the production environment.
To help ensure that the production environment is used for live operations, Microsoft will provision the production
instance only when the implementation is approaching the Operate phase, after the required activities in the LCS
methodology are completed. For more information about the environments in your subscription, see the Licensing
guide.
Customers must complete the Analysis, Design and develop, and Test phases in the LCS methodology before the
Configure button that is used to request the production environment becomes available. To complete a phase in
LCS, you must first complete every required step in that phase. When all the steps in a phase are completed, you
can complete the whole phase. You can always reopen a phase later if you must make changes. If you require more
help, see Lifecycle Services (LCS) for Finance and Operations apps customers.
The process of completing a step has two parts:
Do the actual work, such as a fit-gap analysis or user acceptance testing (UAT).
Mark the corresponding step in the LCS methodology as completed.
It's good practice to complete the steps in the methodology as you make progress with the implementation. Don't
wait until the last minute. Don't just click through all the steps so that you can get a production environment. It's in
the customer's best interest to have a solid implementation.

UAT for your solution


During the UAT phase, you must test all the business processes that you've implemented, and any customizations
that you've made, in a Sandbox, or Standard Acceptance Test, environment in the implementation project. To help
ensure a successful go-live, you should consider the following as you complete the UAT phase:
Test cases cover the entire scope of requirements.
Test by using migrated data. This data should include master data and opening balances, even if they aren't yet
final.
Test by using the correct security roles (default roles and custom roles) that are assigned to users.
Make sure that the solution complies with any company-specific and industry-specific regulatory requirements.
Document all features, and obtain approval and sign-off from the customer.
Regardless of whether the environment is a cloud-hosted environment or a downloaded virtual hard disk (VHD),
testing can't be considered complete when you test only in an environment that is a developer or demo topology.
Here are the reasons:
The topology of the Tier-1 environments differs from the topology of your production environment. It's
important that you test all functionality on a Tier-2 or higher sandbox environment in the Microsoft-managed
subscription. It's especially important that you test integrations, printing functionality, workflow functionality,
and warehouse and commerce devices in the sandbox environment.
System performance can't be measured when you do the UAT on local virtual machines (VMs) or VMs that are
privately hosted.
To prevent delays during the cutover process, it's important that the team experience the servicing in LCS
during the implementation. This servicing includes the processes of applying deployable packages, creating
service requests, and moving database between environments.

FastTrack Go-live assessment


All customers must complete a go-live review with the Microsoft FastTrack team before their production
environment can be deployed. This assessment should be successfully completed before you request your
Production environment. If you aren't familiar with Microsoft FastTrack, see Microsoft FastTrack.
About eight weeks before go-live, the FastTrack team will ask you to fill in a go-live checklist.
You can download the checklist from Dynamics 365 Community on the Go-live Planning TechTalk page.
The project manager or a key project member must complete the go-live checklist during the pre-go-live phase of
the project. Typically, the checklist is completed four to six weeks before the proposed go-live date, when UAT is
completed or almost completed.
When you've completed the go-live checklist, email it to Dynamics 365 FO Go-Live [email protected].
Always include a key stakeholder from the customer and the implementation partner on the email.
After the checklist is submitted, a Microsoft solution architect will review the project and provide an assessment
that describes the potential risks, best practices, and recommendations for a successful go-live of the project. In
some cases, the solution architect might highlight risk factors and ask for a mitigation plan. When the assessment
is completed, the solution architect will indicate that you're ready to request the production environment in LCS.
If you request the production environment before the assessment is completed, the deployment will remain in the
Queued state until the assessment is successfully completed.
You can cancel an environment deployment request while it is in a Queued state by following these steps:
1. Click Queued .
2. On the Customer sign-off tab, click Clear sign-off .
This will set the environment back into a state of Configure and allow you to make changes to the configuration,
such as selecting a different data center or environment topology.

Requesting the production environment


After you've completed the analysis, design and develop, and test phases in the LCS methodology, and the go-live
assessment has concluded that the project is ready, you can request your production environment.
We recommend that you select a service account, for example a generic user account, as the Admin user of the
environments that you deploy. If you use a named user account, you might not be able to access an environment if
that user isn't available. Here are some scenarios where the Admin user must access an environment:
First sign-in to any environment after initial deployment – In this case, the Admin user is the only user
who can access the environment.
First sign-in to a sandbox environment after a database refresh from the production environment
– In this case, all user accounts except the Admin account are unable to sign in.
Your production environment should be deployed to the same datacenter where your sandbox environments are
deployed.
After you've signed off on the request for the production environment, Microsoft is responsible for deploying the
production environment for you. The Microsoft service level agreement (SLA) for deployment of a production
environment is 48 hours. The production environment can be deployed at any time within 48 hours after you
submit the request, provided that your usage profile doesn't require additional information. You can view the
progress of the deployment in LCS. Typically, the status of the production environment request remains Queued
for a few hours before it's changed to Deploying .
When you submit the deployment request, a service request for the Microsoft Dynamics Service Engineering (DSE)
team is automatically created. You can view this service request in the Ser vice requests list in LCS. If the DSE
team has questions that prevent them from deploying the production environment, they will add a comment to
the service request. For example, the DSE team might ask that you update the subscription estimate or change the
datacenter. In some cases, you might have to clear the sign-off from the production deployment request to make
changes. You can clear the sign-off only while the status of the production environment request is Queued . To
clear the sign-off, click the Queued button. The status of the request is returned to Configure . You can then make
any changes that are required and sign off again.
Go-live for implementation projects FAQ
11/18/2019 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic lists frequently asked questions about how to go live with an implementation project.

When can I configure and request my production environment?


Typically, a production environment is deployed after all customizations are code-complete, user acceptance testing
(UAT) is completed, the customer has signed off on the solution, and there are no blocking issues for go-live.
When you're at this stage, the Microsoft FastTrack team will work with the project team to do a Go-live
assessment/review.

What are the prerequisites to deploy a production environment?


For a list of the prerequisites, see Prepare for go-live.

What is a Go-live assessment/review, and why is it required?


The Go-live assessment/review is part of the Microsoft FastTrack program. During this review, a solution architect
assesses whether an implementation project is ready for a successful cutover and go-live. This review is mandatory
for every implementation project before you can request to go live in a production environment.

I want to request my production environment. Who do I contact for a


Go-live assessment/review?
If a FastTrack solution architect is assigned to your project, contact him or her directly. Otherwise, based on the go-
live date that is specified in Microsoft Dynamics Lifecycle Services (LCS), you will receive an email that instructs you
to fill out the Pre-go-live checklist and send it to [email protected] a few weeks before the go-live date. If
you haven't received an email, and you're ready for go-live, you can download the checklist from Dynamics 365
Community on the Go-live Planning TechTalk page, complete it, and send it to [email protected].

The Production button isn't available in LCS. How do I request my


production environment?
The Production button in LCS is available only after you've completed the Analysis , Design & develop , and
Test phases of the LCS implementation methodology. For more information about how to complete these phases,
see Lifecycle Services (LCS) for Finance and Operations apps customers.

NOTE
Your production environment won't be deployed until the Go-live assessment/review has been completed.
My sandbox environment is currently on an update that is set to expire
in two months. Can I request a production environment that has the
latest update?
No. We will deny any request for a production environment that is on a different version than your sandbox
environment. When you configure a production environment, the versions that you select must match the versions
of the sandbox environment where you signed off on your solution. Therefore, you must first apply the latest
update to your sandbox environment, test it, and sign off.
For more information, see Software lifecycle policy and cloud releases.

Our sandbox environments are deployed in the Central US datacenter,


but we want our production environments to be deployed in the West
US datacenter. Can I select West US as the datacenter in my production
configuration?
No. We will deny any request for a production environment that is in a different datacenter than your sandbox
environment. We require that all your environments reside in the same datacenter. If you want your production
environment to reside in the West US datacenter, you must first redeploy your sandbox environments to the West
US datacenter, test them, and sign off.
For information that can help you select the correct datacenter, see the Network requirements section of the
"System requirements" topic.

How will my production environment be sized?


Your production environment will be sized based on the current user license count and the information in the
subscription estimate that is active when you request the production environment.

NOTE
If you add additional users later, you must create a support ticket to activate a new subscription estimate. Your production
environment might have to be resized, depending on the number of users, the type of user licenses, and the expected peak
transaction volume. Downtime is required in order to resize a production environment.

I submitted the request for a production environment, but I made a


mistake. Can I still change it?
Yes. As long as the status of the production environment is Queued , you can clear the sign-off flag, make changes,
and then sign off again.

How long does it take to deploy my production environment?


After the Go-live assessment with the Microsoft FastTrack team is completed and the production request is
submitted, deployment of the production environment should be completed within 48 hours.

What level of access do I have in my production environment? Can I


sign in to the VM?
No. Access to the production environment is limited. You can't access the virtual machine (VM) or Microsoft
Internet Information Services (IIS). You also can't access the database through Microsoft SQL Server Management
Studio.

How often is my production database backed up?


Databases are protected by automatic backups. Full database backups are done weekly, differential database
backups are done hourly, and transaction log backups are done every five minutes. Automatic backups are retained
for 35 days.
For more information, see Learn about automatic SQL Database backups.

Can I request a copy of the backup of my production database?


No. However, you can submit a database refresh service request to copy your production database to your Tier 2
and higher sandbox environment. After the copy request is completed, you can back up your sandbox environment.

My golden configuration database is in a Tier 1 sandbox environment.


How can I copy and restore it to my production environment?
To copy and restore your database, follow the instructions in the topic, Golden configuration promotion.

NOTE
If your golden configuration is in data packages, you must manually import the data packages to the production
environment.

After go-live, can I apply new code changes to the production


environment?
Yes. In LCS, you can submit a service request to apply a deployable package to your production environment.
Application of one deployable package to a production environment involves a lead time of five hours and
downtime of approximately five hours.
For more information, see Apply updates to cloud environments.

What should I do if my production environment is down?


To report a production outage, follow the process described in the topic, Report a production outage.
Submit service requests to the Dynamics Service
Engineering team
3/12/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

A service request is a ticket that you use to request that the Dynamics Service Engineering (DSE) team perform a
predefined set of tasks on your environments.

NOTE
Don't use service requests for product issues. If you encounter a situation that doesn't fit into any of the tasks that are
described in this topic, submit a support ticket instead. For more information about support tickets, see Get support for
Finance and Operations apps or Lifecycle Services (LCS).

You can use Microsoft Dynamics Lifecycle Services (LCS) to submit service requests directly to the DSE team. You
can also view which requests have been submitted, executed, and canceled for your environments.

View service requests


There are two ways to view service requests:
On the project dashboard, in the Environments section, select Ser vice requests .

Select the Menu button and select Work items . On the Work items page select the Ser vice requests
tab.
By default, the Ser vice requests tab on the Work items page lists all requests that are currently active and
requests that have been denied. However, you can use the filter options to show canceled and finished requests too.

After you submit a request, it has a status of Requested . Before the DSE team acts on the request, it might ask for
clarification by entering a comment in the Comment field. For example, you might receive a comment from the
DSE team if you request deployment of a production environment, but the data center differs from the data center
where your sandbox environments are deployed. Carefully review the comments, and provide any required
clarification in your own comment. To view the details of a specific request, or to submit comments for a service
request, select the request ID.
If you signed up for LCS notifications, you receive an email when the status of a service request changes or a
comment is entered.
If you submit a service request to the DSE team, and the action is outside the team's scope, the service request will
be denied. In this case, the reason for the denial and suggestions for further action are provided. For some typical
examples of service requests that the DSE team will deny, see the "Denied service requests" section later in this
topic.

Create service requests


There are two ways to create a service request: automatically and on demand.
Automatically – A service request is automatically created when you request deployment of an environment,
or an application of a package.
On demand – A service request is manually created when you enter a request for a database point-in-time
restore, and some other services.
Automatically create a service request
Environment deployment – To set up deployment options and submit a request to the DSE team to deploy a
new environment, in the Environments section, select Configure .
Package application – To apply a package to the production environment, on the Environment details page,
select Maintain , select the package to apply, and then select Schedule . For more information, see Apply
updates to cloud environments.
Create a service request on demand
Service requests that are created on demand aren't explicitly accepted by the DSE team. They will be addressed
during the specified downtime window unless the DSE team has entered a comment in the request or has had to
deny the request. For details, review the comments in the service request.
Microsoft frequently reviews all incoming service requests. By selecting the correct type of service request for your
scenario, you help the DSE team handle the request in a timely manner.
1. On the Work items page, on the Ser vice requests tab, select Add .
2. In the Create request dialog box, select the type of service request to create. The options on the page then
reflect the specific type of request that you selected.
Sandbox point-in-time restore request – Select this request type to restore a non-production
database to a specific point in time. For more information, see Database movement operations home
page.

NOTE
If you need to restore a production database to a previous point-in-time during the cutover phase, select the
Production point-in-time restore request type. If you need to restore a production database when
you're already live in operations, submit a support ticket through LCS.

Database refresh request – Select this request type to refresh a database from a production
environment to a sandbox environment, or from one sandbox environment to another. For more
information, see Refresh database. This request type is being retired on January 31, 2019.

NOTE
If you need to refresh a database from a sandbox environment to a production environment during the
cutover phase, select the Sandbox to Production type.

Sandbox to Production - Perform a database refresh of your configuration data to a production


environment during the cutover phase. For more information, see Database movement operations
home page.
Other request – You need to use the Other request type exactly as described here. If you word a
request in a way that isn't clear to the DSE team, the team will enter a comment to ask for clarification,
and your request will be delayed. If you use the Other request type for any request that isn't listed
below, the request will be denied. Select this request type to request that the DSE team perform one
of the following actions:
Turn on maintenance mode in a production environment. For more information, see Maintenance
mode.
Define explicit Internet Protocol (IP) whitelist rules in a production environment.
Request that Microsoft Power BI Embedded be activated in a sandbox environment, Standard
Acceptance Test environment, or production environment if you receive the following message:
"Power BI embedded isn't enabled. Please contact your system administrator."
Commonly denied service requests
Here are some typical examples of service requests that will be denied:
You submit a request of the Other request type for one of the following actions, but you should have
submitted a support ticket instead:
You want to activate a new subscription estimate after you're live in production or after you've requested
a production environment.
You want to reset the Financial reporting data mart in a release that is earlier than Microsoft Dynamics
365 for Finance and Operations Financial reporting release 7.2.6.0.
You want to restore a production database after go-live.
You encountered an issue after the DSE team did an application upgrade.
You submit a request of the Other request type for an action that you should have requested through a
different request type. Examples include a database refresh in a non-production environment.
You submit a request of the Other request type for an action that you should perform yourself. Examples
include a database upgrade in a development environment.

Service request types and SLAs


SERVIC E REQ UEST A P P L IC A B L E
TYPE EN VIRO N M EN T S REQ UEST ED SERVIC E L EA D T IM E DO W N T IM E

Environment Any Environment Service level


deployment deployment agreement (SLA):
within two business
days

Package application Production Deployable package Five hours Five hours


application

Sandbox point-in- Any Tier 2 or higher Database point-in- Five hours Four hours
time restore sandbox time restore

Production point-in- Production Database point-in- Five hours Four hours


time restore time restore

Sandbox to Tier 2 or higher Sandbox to Five hours Four hours


Production sandbox to Production
Production

Other Production Maintenance mode Five hours Not applicable,


because the customer
indicates in the
service request when
the environment
should be taken out
of maintenance mode
again

Production IP whitelist rules Five hours Two hours

Production Power BI Embedded Five hours Two hours


Subscriptions, LCS projects, and Azure Active
Directory tenants FAQ
11/18/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

When customers subscribe through a Microsoft Volume Licensing agreement or a Microsoft Cloud Solution
Provider (CSP) agreement, they usually have one Microsoft Azure Active Directory (Azure AD) tenant, one Microsoft
Dynamics Lifecycle Services (LCS) Implementation project and any number of sandbox environments that are
deployed to one data center of the customer's choice, and one production environment. For more information
about these core concepts, see Finance and Operations application architecture. Although this setup works well for
most projects, more advanced scenarios are sometimes required, or changes during the implementation lifecycle
must be accommodated.
This topic provides answers to frequently asked questions about subscriptions and licenses, Azure AD tenants, and
LCS Implementation projects.
For more information, see the following topics:
Move environments between data centers
Move licenses between agreement types
Move LCS implementation projects to different Azure AD tenants
Multiple LCS projects and production environments on one Azure AD tenant

Do I have to move Azure AD tenants when I move from a CSP


agreement to a Volume Licensing agreement?
No. You can keep the existing Azure AD tenant, but you must make sure that the Volume Licensing subscriptions
are purchased against the same Azure AD tenant as the CSP subscriptions.

Do I get a new LCS Implementation project when I move from a CSP


agreement to a Volume Licensing agreement?
No. The LCS project remains the same.

Can I keep the existing LCS Implementation project when I move to


different Azure AD tenant?
No. A new LCS project will be created.

How long does it take to move from a CSP agreement to a Volume


Licensing agreement?
For a Volume Licensing purchase, it can take a few days for the order to be processed and the subscriptions to be
activated. Redeployment of add-on environments has a service level agreement (SLA) of two business days. It takes
a few hours to deallocate and delete old add-on environments.

What if I forget to delete the existing environments before I suspend


the existing subscription?
If you don't deallocate and delete the existing environments before you suspend the subscriptions, the
environments will remain in a Deployed state. However, if you try to access the full details of these environments,
you will receive an error message.

Can I have a CSP agreement and a Volume Licensing agreement in


parallel?
Yes. However, you must maintain the minimum required number of licenses under each program.
Move environments between data centers
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Occasionally, you must move environments that are managed by Microsoft to a different Microsoft Azure data
center. Here are some scenarios where this move might be required:
The data center that you planned to use wasn't available when the environments were originally deployed.
The project creators didn't do enough research to determine the best data center before the environments were
originally deployed.
The customer moves the physical location of its operations, and the wide area network (WAN) connection is
now closer to a data center that provides lower latency.
Microsoft asks that you keep all your environments in the same data center. When you move environments to a
different data center, you should plan to eventually have all environments deployed in the same data center.
You can verify the data center that an environment is deployed to on the Manage environments page in
Microsoft Dynamics Lifecycle Services (LCS).
To change the data center, you must redeploy all environments. The process differs for sandbox environments
(sandbox standard acceptance test environments, and sandbox develop and test environments) and production
environments.

Move sandbox environments


Because this move is a self-service action, the partner and/or customer must move the existing sandbox
environments without Microsoft involvement. Although this action requires little effort on the part of the partner
or customer resources, completion of the end-to-end process might require a few days. To streamline the data
movement between environments, you should develop a plan to determine the best sequence before you begin
the move.
Save data
Before you begin the move, you must save your data.
Tier 1 environment database that is based on Microsoft SQL Ser ver : Make a backup of the
database.
Tier 2 and higher environments that are based on Azure SQL Database: Choose one of the
following options:
Option 1: Review the processes that are listed in the Database movement operations home page topic.
Option 2: If you have an Azure subscription, save a copy of the Azure SQL database under that
subscription.
Option 3: If you have multiple Azure SQL database environments, redeploy one environment, leave the
remaining environments in the old data center, and then request a database refresh between the
environments.
Option 4: Save data as data packages, and then import the packages after the redeployment is
completed.
Move the environments
After you've saved your data, follow these steps.
1. Verify that all code packages have been uploaded to the Asset library in LCS.
2. For each environment, follow these steps:
a. In LCS, select Full details .
b. Stop the environment, and then, when the environment has stopped, select Deallocate .
c. After the deallocation is completed, select Delete .
d. After the environment is deleted, select Configure to redeploy the environment.
e. In the Geography/location field, select the data center to use.
f. After the environment is deployed, apply the code packages.
g. If the redeployed environment is used as the build environment, complete the required configurations
that are described in Deploy and use an environment that supports continuous build and test
automation.
h. Restore the data.

NOTE
The movement of files that are stored in Azure Blob Storage isn't supported in sandbox environments.
Commerce customers should be aware that extra steps are required for components to work correctly after a move. For
more information, see Data management overview.

Move production environments


If you already have a production environment deployed, you must open a Support request to move the production
environment to another data center after you've finished moving all the sandbox environments. This scenario is
rare, and there is no automated/self-service action to complete the move. In this scenario, files that are stored in
Azure Blob Storage will also be moved. For information about the maintenance window and downtime that are
required in order to move a production environment to a different data center, see Service Description and the
related service-level agreement (SLA) documents.
Move licenses between agreement types
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Sometimes, a customer who originally purchased subscriptions through a Microsoft Cloud Service Provider (CSP)
agreement decides to change to a Microsoft Volume Licensing agreement with Microsoft after the Microsoft
Dynamics Lifecycle Services (LCS) Implementation project has been created. The customer can make this change
even after the project has gone live in production.
Less often, a customer who originally purchased the subscriptions through a Volume Licensing agreement with
Microsoft decides to change to a CSP agreement. In this case, the change must align with the renewal date of the
Volume Licensing agreement.
The process of moving subscriptions from one type of agreement to another is primarily a commercial process.
The technical implications for the LCS Implementation project are minimal.

NOTE
The movement of subscriptions between agreement types isn't the same as the movement of an Azure Active Directory
(Azure AD) tenant. If the contractual changes in the agreements require that an Azure AD tenant be moved, you must also
follow the process that is described in Move LCS implementation projects to different Azure AD tenants.

Subscriptions come with three standard environments: one production environment, one Tier-2 Standard
Acceptance Test environment, and one Tier-1 developer environment. These environments aren't affected by the
movement of subscriptions between agreement types. Action might be required in LCS only if the customer has
additional add-on environments. In this case, action that is related to the add-on environments requires minimal
effort on the part of partner or customer resources. To streamline the movement of data between environments,
you should plan in advance to determine the best sequence.

The customer has only default environments


If the customer has only the three standard environments that come with the Microsoft-managed subscription, and
didn't purchase any add-on environments through the original CSP agreement or Volume Licensing agreement,
the activities that are required are purely commercial.
1. The customer places the order for subscriptions under the new agreement with the Volume Licensing
reseller or the CSP.

IMPORTANT
Make sure that the subscriptions are purchased against the same Azure AD tenant that is used on the original
agreement.

2. The customer activates the subscriptions.


3. In Microsoft Office 365 Admin center, the customer verifies that both the new and subscriptions and the
existing subscriptions are active.
4. When the new subscriptions are active, the customer requests that the Volume Licensing reseller or the CSP
suspend the existing subscriptions. Typically, there is an overlap to help guarantee continuity and avoid
disruption of service.

The customer has add-on environments


If the customer purchased add-on environments through the original CSP agreement or Volume Licensing
agreement, those environments must be redeployed.
Prerequisites
Before you begin the move, you must complete the following tasks:
Save the data from your existing environments.
Tier 1 environment database that is based on Microsoft SQL Ser ver : Make a backup of the
database.
Tier 2 and higher environments that are based on Azure SQL Database: Use one of the
following options:
Option 1: Follow the process that is described in Export a copy of the standard user acceptance
testing (UAT) database.
Option 2: If you have an Azure subscription, save a copy of the Azure SQL database under that
subscription.
Option 3: If you have multiple Azure SQL database environments, redeploy one environment,
leave the remaining environments in the old data center, and then request a database refresh
between the environments.
Option 4: Save data as data packages, and then import the packages after the redeployment is
completed.
Verify that all code packages have been uploaded to the Shared asset library in LCS.
Commercial activities
1. The customer places the order for the subscriptions under the new agreement with the Volume Licensing
reseller or the CSP. These subscriptions include the subscriptions for the add-on environments.

IMPORTANT
Make sure that the subscriptions are purchased against the existing Azure AD tenant.

2. The customer activates the subscriptions.


3. In Office 365 Admin center, the customer verifies that both the new subscriptions and the existing
subscriptions are active.
Deploy new environments
1. When the new subscriptions are active, additional add-on environments that you can configure appear in LCS.
Deploy the add-on environments, and configure them as appropriate.
2. Apply the deployable packages, and restore the data.
Delete environments under the obsolete agreement
Follow these steps for every environment that was deployed under the old agreement. After you've deleted the
environments, don't use or redeploy them again.
1. In LCS, on the Environment details page, select Full details .
2. Stop the environment, and when the environment has stopped, select Deallocate .
3. When the deallocation is completed, select Delete .
4. When the environment has been deleted, select Configure .
Update environments
1. The Volume Licensing reseller or the CSP suspends the existing subscriptions.
2. Any original add-on environments no longer appear in LCS.

IMPORTANT
Until physical redeployment of the add-on environments is completed, both existing subscriptions and new subscriptions
must be kept in an active state.

NOTE
The movement of files that are stored in Azure Blob storage isn't supported in sandbox environments.
Commerce customers should be aware that extra steps are required in order for components to work correctly after the
move. For more information, see Data management overview.
Move LCS implementation projects to different Azure
AD tenants
2/12/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can move your subscriptions and your Microsoft Dynamics Lifecyle Services (LCS) Implementation project to a
different Microsoft Azure Active Directory (Azure AD) tenant. Here are some scenarios where this move might be
required:
Subscriptions were accidentally purchased against the incorrect Azure AD tenant.

NOTE
If you're a cloud service provider, and you sell subscriptions for Finance and Operations apps to an existing customer,
you must request a reseller relationship with that customer to put the subscriptions on the customer's existing Azure
AD tenant. If you create a new customer record for the customer in Microsoft Partner Center, you create a new Azure
AD tenant for the customer.

The customer changes the structure of the Azure AD tenant after the subscription is purchased.
The process for moving your subscriptions and all related artifacts has four main steps, as shown in the following
illustration.

Activate subscriptions on the new tenant


Work with your cloud service provider or volume license reseller to activate the subscriptions against the new
Azure AD tenant. All subscriptions for users, and for add-on environments, must be activated.
Cloud service provider
If you're licensed through a Microsoft Cloud Solution Provider (CSP) agreement, purchase the required
subscriptions against the new tenant from your cloud service provider. If the new tenant already exists, the cloud
service provider must request a reseller relationship. Alternatively, in Partner Center, the cloud service provider
must create a new customer that has the desired default domain name, *.onmicrosoft.com (for example,
contoso.onmicrosoft.com ).
Ask the cloud service provider not to suspend the existing subscriptions at this time.
Volume Licensing
If you're licensed through a Microsoft Volume Licensing agreement, you must call the Volume Licensing support
center and ask that the subscriptions be remapped from the old tenant to the new tenant. You can contact Volume
Licensing Support through Microsoft Office 365 Admin center. Request a grace period, when the subscriptions will
be active on both tenants. Because of customer privacy concerns, this request must be made by the customer. You
should have the following information available:
Public customer number
Enrollment number
The current tenant domain that the subscriptions are currently provisioned on
The destination tenant domain that the customer wants the subscriptions provisioned under
A detailed explanation of why the customer must have its Volume Licensing subscriptions migrated to a
different tenant
The total number of paid subscriptions that must be moved to the new tenant, together with the subscription
type and seat count

IMPORTANT
It's crucial that the subscriptions be active on both tenants in parallel for a few weeks, until you've finished decommissioning
LCS on the old tenant.

Configure LCS on the new tenant


On the new tenant, you will get a new LCS project that you must initiate and set up.
1. Fully configure LCS. As part of this configuration, you must add users, a Microsoft Azure DevOps
association, subscription estimates, the Asset library, Business process modeler (BPM), and so on.
2. Deploy all non-production environments in the new LCS project.
3. Apply the required code packages to the environments.
4. Upload data to the environments. You can move the data through data packages or by restoring the
database. If you restore the database, additional steps are required in order to remap some properties to the
new tenant.
5. Update your user information.
a. Remove all user accounts except the admin user.
b. Fix the admin user record in USERINFO.

UPDATE USERINFO
SET SID='mysid', NETWORKALIAS='myalias/email', NETWORKDOMAIN='https://sts.windows.net'
WHERE ID = 'Admin'

6. Re-import all other users that have the correct security identifier (SID) and identity provider.
7. Run the following commands to update the tenant ID in the appropriate tables:

select VALUE from SYSSERVICECONFIGURATIONSETTING where name = 'TENANTID'


select TENANTID from POWERBICONFIG
select TENANTID from PROVISIONINGMESSAGETABLE
select TENANTID from B2BINVITATIONCONFIG
select TENANTID from RETAILSHAREDPARAMETERS
8. Fully configure the environments. As part of this step, configure the integration endpoints.
9. Perform smoke tests on the user acceptance testing (UAT) environment in the new LCS project. These tests
should focus on user sign-in, integrations, workflows, printing, reporting, and similar processes that depend
on configuration and user information.
10. If you already had a production environment deployed, you must open a support request to move it to the
new tenant after you've finished moving all the sandbox environments and completed UAT. The process of
moving a production environment to a new tenant requires an extended downtime of 48 to 72 hours.
Depending on your solution and scope, you might have to perform additional steps on the new Azure AD tenant.
These steps might include registering applications (for recurring integrations and warehouse management),
adding domains, and setting up directory synchronization to enable single sign-on (SSO).
Note that calls to web services are allowed only from the home tenant for the environment. For example, the
original tenant was companya.com, and integration ran as [email protected] . In this case, when you switch
tenants to companyb.com, you can no longer use [email protected] for web service calls, even if you update
userInfo.networkdomain to https://sts.windows.net/companyb.com .

IMPORTANT
During this period, you will have two parallel LCS projects. You can verify the name and ID of the Azure AD tenant that is
associated with an LCS project on the Subscriptions available page in LCS. You will lose any document handling
attachments that are stored in Azure Blob storage.

Delete environments on the old tenant


After the new LCS project against the new Azure AD tenant is fully functional, you must stop, deallocate, and delete
the environments on the old LCS project. When you've finished, the Configure button becomes available for each
environment. You should save any remaining artifacts from the Asset library that you might require later. Microsoft
reserves the right to disable the customer's account and delete the customer data after the service has been
suspended for an extended period.

Suspend subscriptions on the old tenant


1. After all the environments have been deleted, and you've saved the LCS artifacts that you require, work with
your cloud service provider or Volume Licensing Support to suspend all the licenses on the old Azure AD
tenant.
Cloud ser vice provider : Suspend the existing subscriptions against the old tenant.
Volume Licensing Suppor t: Call the Volume Licensing support center to confirm that you've
completed the work and that the subscriptions can now be suspended against the old tenant.
2. File a support ticket to delete the old LCS project.
Multiple LCS projects and production environments
on one Azure AD tenant
11/18/2019 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

For any new cloud project, one Microsoft Dynamics Lifecycle Services (LCS) Implementation project is instantiated
on a Microsoft Azure Active Directory (Azure AD) tenant that provides access to one production instance. In rare
cases, to handle the requirements of a specific implementation, you might require multiple production instances
that run in parallel. By creating multiple LCS projects against the same Azure AD tenant, you can have multiple
production instances. Here are the most common scenarios where multiple production instances might be
required:
A global implementation's requirements for data residency, latency, or data volume can't be met by one
instance.
Different business units in an organization are implementing the product separately as independent
applications.
Manual intervention by the Microsoft Dynamics Service Engineering (DSE) team is required in order to create
additional LCS projects on a shared Azure AD tenant. This approach should be used only if a single-instance
strategy truly isn't feasible. Before additional LCS projects can be created, customers must provide the business
justification and confirm that they understand all the implications of the approach. This process should be started
as early in the implementation lifecycle as possible. Customers who decide to proceed should inform the FastTrack
solution architect who is assigned to their project that they require additional LCS projects. If no solution architect
is assigned to their project, customers should open a support ticket.

Licensing requirements
Every LCS Implementation project that runs on the same Azure AD tenant must satisfy the minimum licensing
requirements. For example, if there are three LCS Implementation projects on the same Azure AD tenant, a
customer must purchase no less than three times the minimum number of subscription licenses. Currently, the
minimum license requirement is 20 full user licenses. Therefore, to run three LCS Implementation projects on the
same Azure AD tenant, the customer must purchase at least 60 licenses.
Because the licenses are associated with the Azure AD tenant, the Subscriptions available page for every LCS
project will show the total number of licenses, even though a given LCS project can use only the portion of licenses
that has been allocated to it. This allocation of license to LCS projects must be documented outside the system.
Users who access multiple environments in parallel must be licensed separately for each environment. For more
licensing information, download the Licensing guide.

Disadvantages of multiple LCS projects


There are some disadvantages to having multiple LCS projects. Here are some of them:
Master data isn't shared.
Intercompany transactions aren't supported.
Integrations must be configured in each LCS project.
Each LCS project requires a separate Bring your own database (BYOD) instance
User acceptance testing (UAT) must be done on each instance, even if the code is the same. UAT is required on
each instance, because differences can occur across the LCS projects, even if they share a code base. One source
of differences can be the integration setup and BYOD configuration that must be done separately in each LCS
project and therefore must be tested in each LCS project. Additionally, there might be data variations, different
application configurations per region might affect functionality, and different data centers might support a
different set of Azure services.
Microsoft Azure DevOps must be configured in each LCS project. When customizations and code are shared, it
makes sense to use the same Azure DevOps project.

Advantages of multiple LCS projects


There are also advantages to having multiple LCS projects. Here are some of them:
Data centers can be selected per LCS project to provide the best latency experience.
Data centers can be selected per LCS project to satisfy statutory requirements for data residency.
There is more flexibility to schedule servicing operations, such as code deployments and upgrades.

Requesting multiple LCS projects on the same Azure AD tenant


If your solution requires multiple LCS projects on the same Azure AD tenant, all LCS projects except the original
project must be provisioned on demand by the DSE team. You should inform the DSE team about this requirement
as early as possible, ideally when the project is being onboarded. For more information, see Onboard an
implementation project. To request additional LCS Implementation projects, the customer must create a support
request by using the Support portal in LCS. In this request, the customer must provide the following information:
The business justification.
The enterprise and project structure. This information includes the following details:
The name of the Implementation project
The breakdown of licenses per LCS project
Confirmation that the customer understands the implications of multiple LCS projects on the same Azure AD
tenant.

Online deployments in China sovereign cloud


If your implementation includes China deployment/rollout, be informed that Dynamics 365 Finance online
deployment became available in Mainland China starting in April 2019. For more information, see Finance and
Operations apps - operated by 21Vianet in China. This deployment is designed to comply with regulatory
requirements in China and the services include a physically separated instance of a cloud service with a different
tenant (Azure Active Directory) that is operated and transacted by 21Vianet.
This is a single organization in multiple clouds with different tenant (Azure Active Directory). The advantages and
disadvantages of multi-Lifecycle Services projects or production environments described above are still applicable,
but the licensing requirement and requesting procedure are different. Work with your Microsoft Account Executive
or your implementation partners for any process assistance.
Implement Commerce projects
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides links to other topics that will help new implementers of Commerce projects with important
aspects of the implementation process, so that they can avoid complications. The guidelines that are mentioned are
best practices that have been collected during previous implementation projects. Therefore, implementers can
focus on the actual feature work and not become bogged down by the procedures.
Some of the information in these topics can also be found on blogs and pages at other locations, such as
Development and administration for Finance and Operations and https://dynamicsnotes.com. You can read those
blogs and pages separately, or you can read this topic from beginning to end and review the linked documents
within the subtopics as you require them during the implementation process.
The information focuses on implementations of Finance and Operations apps that include Commerce functionality.
Set up new environments, Azure DevOps, and branches for Commerce projects
Update code and environments for Commerce projects
Testing and performance issues
Set up new environments, Azure DevOps, and
branches for Commerce projects
2/14/2020 • 19 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Most environments for Microsoft Dynamics 365 Commerce projects are hosted in the cloud. They are either
Microsoft-hosted on a Microsoft subscription or cloud-hosted on a customer subscription. By default,
environments are Microsoft-hosted. You can use cloud-hosted environments to provide more control over a
development or build environment. For more details, see the Lifecycle Services (LCS) user guide.

Development Tier 1 environments


Development environments are called Tier 1 environments. There are three options for hosting a development
environment:
The Commerce app comes with one Sandbox Tier 1 environment. (For details, see the Microsoft Dynamics 365,
Enterprise edition, Licensing Guide.)
A cloud-hosted environment that you run on your own Microsoft Azure subscription. This type of environment
is known as "cloud-hosted" in Microsoft Dynamics Lifecycle Services (LCS).
A downloaded virtual machine (VM) that you host in a location of your choice.
If your implementation of Commerce includes code extensions, we recommend that you use a development
environment where you have administrator privileges. If you don't have administrator privileges in your
development environment, you won't be able to install programming tools or configure the operating system.
The hosting model that you choose has a financial impact. You can reduce some of the hosting cost by using a Tier
1 environment as a simple test environment or golden configuration environment. One Tier 1 environment is free
with your Dynamics 365 subscription. Although this approach isn't ideal, it should work for most projects.
If you want to extend channel components, see Prepare the development environment to learn how to configure a
development environment so that it's ready for development.

NOTE
You can shut down cloud-hosted environments at any time. This capability helps reduce the hosting cost.

A hosting alternative is to download a virtual hard disk (VHD) from LCS and host it locally on a server. From a
development perspective, VHD images have the same capabilities as a hosted VM. The only difference is that LCS
deployments aren't supported on VHDs. However, command-line deployments are supported.
The following table shows the advantages and disadvantages of each hosting model. Use this information to
evaluate the model that will work best for your project.
H O ST IN G M O DEL A DVA N TA GES DISA DVA N TA GES

Microsoft-hosted environment (in an Your subscription includes one Tier 1 Users can't perform administrative
LCS project, default or based on an environment. We recommend that you actions.
add-on) use this environment as a build Users can't install any tools or
environment. certificates.
Telemetry data is collected and is
available on the LCS diagnostics
page.

Cloud-hosted environment (in an LCS You have full administrative rights. There is additional cost. You can
project, private subscription) You can install tools and certificates. mitigate this cost by shutting down the
environment.

Self-hosted downloaded VM The experience depends on the host. You can't deploy packages from LCS.
The experience can be much faster if the
VM runs on a solid-state drive (SSD).

Tier 2 and higher machines are multi-box environments for multiple test and verification purposes. Production
environments are hands-off, and the size of the environment is determined by the sizing process in LCS.

Branches, build definitions, and environments


Branching is an important practice in software development. The Branching and Merging Primer topic describes
the advantages of branching:

NOTE
A branching and merging strategy involves a tradeoff between risk and productivity. You trade the safety of working in
isolation for the increased productivity of working with other people. The productivity increases come with a cost—the
additional effort required for merging software assets sometime in the future.
Using branches provides better isolation and control of individual software assets and increases productivity, because teams
or individuals can work in parallel. However, using branches also requires an increase in merge activities and therefore risk,
because you must later reassemble branches into a whole.

For more information about the delivery of implementation projects, watch Continuous Delivery Using Dynamics
365 for Operations (video).
There is no single best strategy for creating branches. The strategy depends on the project and the size of the
implementation. The approach that Joris De Gruyter mentions in the preceding video is a successful method.
The following illustration shows three code branches: Dev, Main, and ProdRel1. The numbers indicate the order of
setup.
Here is an explanation of the setup. The numbers in brackets refer to the numbers in the preceding illustration:
The Dev branch [2] is used for daily work that isn't ready for testing or might not be stable, but that must be
shared with other developers. For larger teams, you might want to have multiple Dev branches for different
features or purposes.
The Main branch [1] is for changes that meet a certain quality bar and are ready for testing by other people.
This testing might include user acceptance tests, performance tests, integration tests, and sanity tests after
hotfixes. Deployable packages for this branch must be created by a build environment. As a best practice, you
should not generate X++ packages in a Tier 1 environment and then deploy those packages into an official test
or production environment. Otherwise, uncommitted source changes could be included. The correct approach
is always to deploy packages that were built on official build environments.
The ProdRel1 branch [3] holds all source code exactly as it's deployed in a production environment at any
given point. A build environment can be used but isn't required. If packages from the Main branch are deployed
to a production environment, the code should be merged (from Main to ProdRel1) after a production
deployment. By having a branch for production, you can generate official builds later if you require them.
All three branches hold both X++ code (extensions and hotfixes in Metadata folders) and a copy of the Retail
software development kit (SDK) in RetailSdk folders [5, 6, 7]. The Retail SDK includes base Microsoft code and
code extensions. This base code and the code extensions can differ in each branch.
The RetailSdk-mirror folder [4] is used to bring in Microsoft changes to the Retail SDK. It isn't used for
development or build purposes. It should be updated only when a new version or hotfix is used. For a detailed
description of the process, see this cheat sheet.
For small projects, it's acceptable to have only two branches (Main = Dev branch). However, developers must be
more disciplined, because any code submissions can immediately affect the quality of test builds.
You can build deployable packages out of multiple branches. In this case, you must have one build definition for
each branch that can be built. The initial build definition is automatically created when a build environment is
deployed (Main branch). You can make copies of the build for other branches. Note that you must make small
additions to incorporate the Commerce code.
The following high-level steps are used to set up an environment so that development work can begin. For details
about the numbers in brackets, see the previous illustration and the related information.
1. Deploy a build environment and an empty Main branch in Microsoft Azure DevOps [1].
2. Deploy a development environment.
3. Create the Dev branch and the release branch (for example, ProdRel1 in the previous illustration) [2, 3].
4. Add the Retail SDK [4–7].
5. Prepare the development environment.
6. Optional: Deploy a second build environment for a different release branch.
7. Prepare the build definitions.
After you've completed all these steps, your branches, environment, and builds will be ready.
The following sections explain each step in detail.

Deploy a build environment and an empty Main branch in Azure


DevOps
Use the LCS portal to deploy a new build environment. We recommend that you use a cloud-hosted environment,
because you will have more options and capabilities if you have administrative rights. See the table about the
various environment hosting models in the "Development Tier 1 environments" section, earlier in this topic.
Start by creating a new Azure DevOps project if you don't already have one. In your Azure DevOps account, select
New project .

After you create the new Azure DevOps project, you must give Azure DevOps access to it. First, create a new
personal access token on the Azure DevOps account. Then configure the LCS project with the correct URL and
personal access token.
After the LCS project is linked to Azure DevOps, you're ready to deploy.
Add a new environment, select the version, select DEVTEST as the topology, and select a build environment. On
the next page, enter a meaningful name for the environment. Then enter a similar name for the build agent.

Next, under Customize vir tual machine names , enter a unique name, and then deploy the VM.
The build box is deployed, and the build definition and Main branch are created, as shown in the following
illustration. This process might take a couple of hours.

The build appears in the list of build definitions.


The build definition appears in the Agents for pool Default grid.

Deploy a development environment


Use the LCS portal of your implementation project to create a cloud-hosted development environment.
1. Make sure that you're signed in to the correct user account. This user account is used to create the tenant of the
development machine. For example, if you're signed in to LCS as [email protected] , the environment is set up for
the @pad.com tenant and expects users from that tenant. Although other users can be added, point of sale
(POS) activation must be done by a user from that tenant. In some cases, user accounts from different domains
can be used, such as when customers, partners, or other parties use email accounts from different domains. In
these cases, coordination is required during POS activation, because only the tenant that was used during
deployment can activate users.
2. Select the correct version, select DEVTEST , and then select DEV . Enter a meaningful and unique name, and
make sure that the machine name is also unique in the advanced settings. The process of preparing the
machine might take a couple of hours.
Because there is currently no Dev branch, you can skip the process of mapping Azure DevOps to the local
directories. However, you will have to complete that process later.

Create the Dev and release branches


As previously mentioned, you must have a branch that holds changes that are often made but less often tested.
You must also have a branch that holds the source code for production. The following illustration shows the
expected hierarchy.

Follow these steps to create the branches.


1. Sign in to a development environment.
2. Start Microsoft Visual Studio as an administrator. Use an account that has access to the Azure DevOps project.
3. In Team Explorer, connect Visual Studio to the Azure DevOps project, if this connection doesn't already exist.
4. Map the Trunk /Main folder to a local folder (if this mapping doesn't already exist). This mapping is temporary.
5. In Source Control Explorer, right-click the Main folder, and then select Branching and Merging > Conver t to
Branch .
6. Right-click the Main branch, select Branching and Merging > Branch , and name the new branch Dev .
7. Use Pending Changes , and submit this change to Azure DevOps.
8. Right-click the Main branch, select Branching and Merging > Branch , and name the new branch ProdRel1 .
9. Use Pending Changes , and submit this change to Azure DevOps.
At this point, Source Depot Explorer in Visual Studio resembles the following illustration.

Add the Retail SDK


Next, you must add the Retail SDK to each of the three code branches, so that code changes can be propagated
from Dev to Main and eventually to ProdRel1. This step also enables separate changes between these branches, as
for the X++ code. Therefore, we will have the Retail SDK in every branch, together with the X++ code.
First, add the mirror branch. The Retail SDK mirror branch is required as a baseline for code merges when updates
from Microsoft are imported. The process for taking updates will be explained later in this topic.
The mirror branch or folder is only required one time per project.
1. Find the unchanged Retail SDK that has the exact version that you want to start your development with. This
Retail SDK can be found on every development machine on the service drive, or in every downloaded hotfix.
You can uniquely identify a version of the Retail SDK by inspecting the Microsoft-version.txt file. This file
should not be changed, except by an update to the Retail SDK mirror folder.
2. In Source Control Explorer, right-click the Trunk folder, and then select Add Items to Folder .
3. Select the top folder in the Retail SDK, and then select Next .
4. Visual Studio shows the number of files that will be added. Make sure that the RetailSdk folder is under the
Trunk folder.
5. Make sure that there are 0 (zero) excluded items by selecting items and then selecting Include items .

6. Select Finish . This process will take a few minutes.


7. When the process is completed, rename the folder RetailSdk-mirror .
Next, you must branch to each branch. Follow the same path that the code changes will flow in: first to Dev, then to
Main, and then to ProdRel1.
1. Select the folder for the mirror branch, right-click, and then select Branching and Merging > Branch .
2. Go to the Dev branch, append /RetailSdk to the name, and then select OK .

3. Use Pending Changes , and submit the changes.


4. Follow the same steps to branch the RetailSdk folder of the Dev branch to the Main branch.
5. Follow the same steps to branch the RetailSdk folder of the Main branch to the ProdRel1 branch.
At this point, you have the code branches and code locations for the X++ and Commerce extensions setup. In
Source Control Explorer, the file structure should resemble the following illustration.

You should also change the version of the Commerce customization. This version should differ in the Dev, Main,
and ProdRel1 branches. Either change the Customization.settings file, or add a new global.props file in the
RetailSdk\BuildTools folder. For example, you can number Dev as 1.0.0.x, Main as 1.0.1.x, and ProdRel1 as 1.0.2.x.

Prepare the development environment


You can now prepare the development environment for Commerce development tasks. The development
environment will map the code locations for both X++ and the Retail SDK in the Dev branch to local folders. The
Metadata folder (X++) must be always mapped to the PackagesLocalDirectory folder. The location of the RetailSdk
folder must follow these guidelines:
The location should be somewhere inside the local user's folder.
The file path of any file is limited to 256 characters. Therefore, use a short path for the root of the Retail SDK.
For example, you can use c:\users\<user name>\Source\RetailSdk .
To map X++ and the Retail SDK, you must edit the current workspace. Select Pending Changes > Actions >
Workspaces , and update the current workspace so that it resembles the following illustration. As was previously
mentioned, you should map the Metadata folder of the branch to the PackagesLocalDirectory folder and the
RetailSdk folder to a short folder of your choice.

The download of the files can take a few minutes.


Regardless of whether there are customizations in the code branches, the following steps prepare your
development box so that you can write and run code. Some steps are optional, depending on the customizations
that are planned.
1. Install your favorite development tools. For information about one automated script, see Auto-Installing
most needed dev tools in 5 mins with Chocolatey.
2. To help reduce the compile time, exclude the code folders from Microsoft Windows Defender.
3. If there is already code in the Dev/Metadata folder, build all Commerce models. Select all the models, and
then select Database sync .
4. To speed up the development experience, switch to Microsoft Internet Information Services (IIS). For
instructions, see MSDyn365FO. How to switch from IIS Express to IIS on development VM. This step can be
done only on the Tier 1 VM where you have administrative privileges (cloud-hosted environment).
5. Optional: Restore a recent copy of a production database that has good data.
a. Rename the existing database AxDB_Orig .
b. In Microsoft SQL Server Management Studio, restore the .bak file. (If a .bacpac file exists, follow the
steps in Copy a database from Azure SQL Database to a SQL Server environment.)
c. In Visual Studio, refresh the model store.
d. In Visual Studio, do a full build if the source and destination environments of the database are on
different versions.
e. In Visual Studio, run a full database synchronization.
f. Make sure that the Batch service is running.
g. Run the Environment reprovisioning tool. (Find the latest version in the LCS Asset library, and deploy
it by using the Maintain function.)
h. Verify that the tool succeeded. The following query should show the URLs of all local development
machines that were updated.

select * from dbo.RETAILCHANNELPROFILEPROPERTY where ISSYSTEMRECORD = 1

i. In Commerce, run the Initialize Commerce Scheduler job to delete old data.
6. Make sure that you can sign in to Commerce by using your user account. If you aren't the Admin user in the
production database, run the Admin provisioning tool to take ownership. (This tool is in the
PackagesLocalDirector y/bin folder.)
7. Verify that Commerce Data Exchange (CDX) data synchronization works. In Commerce, go to Download
sessions . You should see many applied sessions. If you don't see them, select job 9999 , and run it.
8. Install TypeScript version 2.2.2 from https://www.microsoft.com/download/details.aspx?id=48593.
9. Do a full build of the Retail SDK from a command prompt.
a. Open an MSbuild command prompt for Microsoft Visual Studio 2015 as an administrator.
b. Change the directory to the location of your Retail SDK on the local VM.
c. Type msbuild , and then press Enter. The build should succeed.
10. Add the development/sample Retail Modern POS (MPOS) certificate to the local machine's trusted root
certificate store: ...\RetailSDK\BuildTools\ModernPOSAppxSigningCer t-Contoso.pfx . Set the
password to an empty string.
11. Install MPOS or MPOSOffline by running the installer at ...\RetailSDK
\References\YourCompany|Contoso.ModernPOSSetupOffline.exe . You must complete this step one
time to deploy the ClientBroker files.
12. In Visual Studio, open ModernPOS.sln (as an administrator), and do a full rebuild.
13. Press F5 to start MPOS in the debugger.
14. In Commerce, open the Channel profiles page, and copy the Commerce Scale Unit URL for the default
channel profile.
15. Open a browser window, and paste the URL into the address bar. You should be able to browse to your local
Commerce Scale Unit.
16. In Commerce, add external user credentials to any worker (for activation), save the password, and don't
allow a password reset on first sign-in.
17. In Commerce, run job 1060 (AX/Distribution schedule ).
18. Activate MPOS by using the same Azure Active Directory (Azure AD) user that you added in step 16. Paste
the Commerce Scale Unit URL, select a store and a register, and finish the activation.
You should now be able to run MPOS in the debugger from your local sources.
The process of preparing a development environment is now completed. At this point, any extension code (X++,
Commerce runtime [CRT], Commerce Scale Unit, channel SQL, and POS) can be written, debugged, tested, and
submitted to Azure DevOps.

Optional: Deploy a second build environment for a different release


branch
If you must maintain multiple releases at the same time, you must create deployable packages from different code
branches (for example, Main2 or Main3, and/or ProdRel1 or ProdRel2).
The steps to set up a second build environment are the same as the steps for the first build environment. At this
point, an Azure DevOps project, and the link between the LCS project and the Azure DevOps project, already exist.
To separate the build environments, we recommend that you create a new Azure DevOps agent queue for the
release branch. Although there are ways to share an agent queue (and its build environment) for multiple
branches, this approach can be tricky.
Currently, the build environment must be on the same platform and binary hotfix version as the target
environment during deployment. Otherwise, LCS might reject the deployable package because of version
incompatibility.
First, create a new Azure DevOps agent queue.

When you deploy from LCS, use PRODREL1 as the name of the agent pool.

Next, on the Customize vir tual machine names tab, enter a unique name, and then deploy the new build. The
process of deploying a new build and creating a new agent queue can take a couple of hours.
Prepare the build definitions
After you complete the steps earlier in this topic, you should have one build definition and two agent queues, and
each agent queue should have one agent. To build different branches, you must configure the build definition
differently. Therefore, you must clone the build definition.
However, before you clone the build definition, you must add the Retail SDK into the build, so that you don't have
to complete this step twice. To edit the existing build definition, which is named Unified Operations platform -
Build Main , follow the steps in Integrate the Retail SDK with the continuous build system (Azure DevOps) to
integrate the Retail SDK into the metadata build of the Main branch.
If you had multiple build branches and environments, just clone the build definition, and name the new build
definition so that it's clear which branch it's for. (The clone feature is available in the Azure DevOps portal). Select
the new agent queue that you created, and change the following paths in any build steps or source mappings. (In
the paths, change Main to ProdRel1 .)
Source mappings
Retail SDK build step
Retail SDK copy binaries step
Build the solution step (X++ build)
Retail SDK copy packages step

Tips
You can speed up an official build by making these changes in the Variables section of the build definition:
Set DeployRepor ts to 0 .
Set SkipSourcePackageGeneration to 1 .
Change the version of the Commerce customization in each branch. The version should be different in the
Dev, Main, and ProdRel1 branches. Either change the Customization.settings file, or add a new global.props
file under the RetailSdk\BuildTools folder. You can use any kind of numbering for the file name. For
example, you can number Dev as 1.0.0.x, Main as 1.0.1.x, and ProdRel1 as 1.0.2.x.
For efficiency, shut down build or development environments when they aren't being used.
If you're using cloud-hosted Tier 1 development environments (where you have administrative privileges),
you can switch from IIS Express to IIS. Using IIS for running all web application is more robust, more
performant, and avoids the switching. For details, see MSDyn365FO. How to switch from IIS Express to IIS
on development VM.
For prototyping purposes, a developer might want to change the Retail SDK on a development VM without
using Azure DevOps source control. Always keep the original Retail SDK untouched, and make a copy that
you can work in temporarily. In that way, you can take the unchanged Retail SDK into your mirror branch
later, if it's required.
Currently, a build environment must be on the same platform and binary hotfix version as the target
environment.

Additional resources
Update code and environments for Retail projects
Testing and performance issues
Update code and environments for Commerce
projects
2/1/2020 • 12 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

An environment can be updated by updating either its data or its code.


There are multiple ways to update the data. For examples that show how to get data into an environment, see Data
entities and data packages.
When you update an environment, you should also consider moving the whole database. This approach lets you
quickly and easily duplicate the data from one environment to another.
Other updates are code updates. The environment page in Microsoft Dynamics Lifecycle Services (LCS) tracks the
updates that have been applied and the updates that must be applied. The following illustration shows an
environment that has 79 outstanding X++ fixes, 14 outstanding binary updates, and nine outstanding platform
binary updates.

Platform code is at a very low level, and no Microsoft Dynamics 365 Commerce features are implemented in the
platform. Therefore, stand-alone platform binary updates don't require that you retest any Commerce-specific
code. Examples of features that are implemented in the platform are the Data Import/Export Framework (DIXF)
and the batch framework.
Binary updates or hotfixes include dynamic-link libraries (DLLs), scripts, and channel SQL schema changes. All
channel-side hotfixes are released together as a binary update/hotfix. Because binary updates are DLLs, they are
cumulative. For example, if you download a binary update on Friday, you automatically receive all binary hotfixes
from Monday through Thursday.
If the code merge is done correctly, the version of a binary hotfix that you take matches the version of the
Microsoft-version.txt file in the Retail software development kit (SDK). Typically, binary updates are also linked to
the latest platform. Therefore, when you take binary updates, you must stay up to date with the platform. Platform
updates help increase the stability of the platform, and they affect build environments and test efforts to some
extent.
Application updates or hotfixes are delivered in X++ source code. Therefore, they aren't for the channel side but for
the Microsoft Dynamics 365 side (they are either Commerce-related or not Commerce-related).
Note that some updates require both an application update and a binary update. For hotfix recommendations, see
the next section.
Third-party packages resemble application packages, but they are developed by other people. For more
information about how to use independent software vendor (ISV) packages, see Manage Runtime Packages.

Updating data by restoring the database


In one useful and typical operation, the whole database is moved from one environment to another. For example,
you might move the production database to development environments when you're preparing to develop
additional features. Alternatively, you might move the golden setup database to the production database as part of
the go-live process.
For more details, see Copy Database From Azure SQL to SQL Server. If source and destination environments don't
have the same binary version, you should also do either a build and a database synchronization (for a
development environment), or a deployment (for a sandbox or production environment).
Every time that a database that has been moved from a different environment is restored, specific links in the
database can be broken. The Environment reprovisioning tool fixes all these broken links for the default database
group, regardless of type of environment that is used. The general guideline is that if the database comes from a
different environment, the Environment reprovisioning tool must be run.
In many cases, you should reset the Commerce scheduler after you update the database.
After you've restored the database, follow these steps.
1. Either do a build and a database synchronization, or deploy the deployable package.

NOTE
If you have table extensions that include data, you must have the metadata for those extensions in the environment.
Otherwise, you can lose data, because columns and tables might be dropped.

2. Make sure that the batch service is running.


3. Run the Environment reprovisioning tool. (Find the latest version in the global Shared asset library in LCS,
and then deploy it by using the Maintain function.)
4. Verify that the tool succeeded, the Commerce channel profile is up to date with the correct URLs, and the
data synchronization jobs for the Default data group succeeded.
5. In Commerce, run the Initialize Commerce scheduler job (select to delete old data). This step assumes
that all Commerce Data Exchange (CDX) configuration changes are automated by using a resource file. If
CDX configuration changes aren't automated, and if tables, subjobs, and jobs are manually created in the
Commerce channel schema, don't select the option to delete the existing configuration. We recommend that
you automate CDX configuration changes.
Taking updates frequently
If your project is more than a few weeks from go-live or the final user acceptance testing (UAT), we recommend
that you take all hotfixes (binary, X++, and platform) on a regular schedule. Specifically, we recommend that you
take all hotfixes one time per month. The more often you perform this task, the fewer issues you should
experience, because the code churn of the hotfixes is smaller. If you perform this task often, it will take significantly
less than eight hours.
We recommend that you not pick and choose hotfixes, because this approach is more likely to cause errors and
probably isn't worth your time. If you have 500 or 1,000 outstanding hotfixes, you should consider whether you're
really ready to go-live. The quality of the product will be higher if the count on the update tiles in LCS is very low
(fewer than 100 application fixes and fewer than ten binary fixes).
After you take new hotfixes, the results of a previous round of UAT become less meaningful. Therefore, it's crucial
to retest again. The number of files that changed determines how extensive the testing must be. If hotfixes are
frequently taken, especially during the implementation phase, the number of new files isn't very large, and the
retesting effort is manageable.
Another approach is to take all hotfixes frequently and run only part of the UAT. Then, the next time that new
hotfixes are taken, run a different part of the UAT. Run the different parts of the UAT in a circular manner. Before
go-live, you should do a full UAT run.

The flow of code changes through branches and environments


Just as the branching strategy is dictated by project, team, or other constraints, your project has flexibility about
how the changes are propagated through the branches. The following illustration shows an example of the
process. However, this example might be too simple for some projects and too complex for other projects. The
important point is that a project should have a plan. Different persons in the team will have different
responsibilities (development, deployment, code merges, sign-off, and so on), and the role ownership should be
clearly defined.
Steps 1–3: Obtain and apply updates
For full details about steps 1 through 3 (taking updates), see the hotfix and deployment cheat sheet. If the branches
are set up in the same manner that is shown in the preceding illustration, you should do this work in the Dev
branch.
Steps 3.1–3.2: Keep development environments up to date
You don't have to have a build environment for the Dev branch. In fact, a build environment for the Dev branch
isn't usually required. You just have to coordinate the packages that should be deployed to keep the version
correct.
After you download binary updates and platform updates, you can deploy them via LCS package deployment.
For the X++ code, developers just synchronize the Metadata folder and do a full build and database
synchronization.
If major new changes have been checked in by other members of the team (for example new files, configuration
changes, or a new Retail SDK), it isn't enough to synchronize and build the new files. Remember that a few web
applications that are installed on the developer machine won't be updated through a compilation. Those web
applications must be deployed. Use the LCS package deployment to deploy the commerce package that can be
produced at an MSBuild command prompt. For smaller code changes, new package deployments aren't required
in order to keep the dev environments in sync if the incremental changes are dropped to the install locations.

Step 4: Move changes from the Dev branch to the Main branch
In this example, the Dev and Main branches have been separated to provide an opportunity to "leave some
unwanted changes behind." Although this approach isn't required, it's a good option to have. Microsoft Visual
Studio makes the process of moving the code from Dev to Main easy. You can select a range of changes, select all
or individual changes, and merge those changes. To keep the process simple, you can have some type of a code
freeze in the Dev branch. Then, when you're satisfied with the quality, you can merge all changes. There is no
reason to treat X++ differently than the Retail SDK. They reside next together in each branch, because they are
dependent on each other.
Steps 4.1–4.2: Update test environments
Use your build environment to produce officially built packages from the code in the Main branch.

When the build is completed, find the packages that were built, download them, and rename them according to
your naming conventions.
Then upload the packages to the LCS Asset library.
Finally, deploy the packages to your test environments.

Step 4.3: Deploy packages to the production environment


When all the required tests are passed, you're ready to deploy the same packages to production. After the
packages have been deployed and validated in a Tier 2 or higher environment, you must mark them as Release
Candidates in the LCS Asset library. You must then plan the deployment and submit it via the LCS environment
page.
There are many considerations when you update a production environment, such as downtime, downtime
mitigation, data migration, store updates, and mass deployment. It's very important that you have a plan of all the
steps that are required for an update, because Commerce projects usually require more than just deployment. For
some additional considerations, see the "Tips" section of this topic.
It's assumed that the planning for go-live was started much earlier. For more details, see Implementation lifecycle.
Step 5: Merge the code from the Main branch to the ProdRel1 branch
Immediately after deployment to production, and before any new feature work is added to the Main branch, you
should take a snapshot and move it to the ProdRel1 branch. The steps are the same as in step 4. You don't have to
select individual changes. Instead, just merge all changes up to the last code change set that was submitted to the
Main branch.

Update build environments


You should always deploy binary updates and platform updates by using LCS package deployment.
Finance and Commerce customization packages should not be deployed to a build environment.

Compare LCS tile counts


Environments that are used for work of the same release should also have the same LCS tile counts. Here are some
reasons why the tile counts might differ:
The same deployable packages haven't been deployed and applied. You can troubleshoot this issue by
inspecting and comparing the LCS deployment history.
The scheduled task that collects the version information from an environment hasn't been run yet. For
development environments, you can force the "LCSDiagnosticsCollector" schedule task to run.
The counts for the build environment's application updates don't match because X++ packages aren't deployed
on build environments. Binary and platform counts should be correct.
The difference might be intentional. For example, a developer might work with the next version, whereas the
rest of the team is still working with a different release. Alternatively, one development environment might be
kept on an older version in case a production hotfix must be developed, and that production environment uses
an older version than current development environments.
Notice that after you've finished updating an environment, the tile counts for the available updates are significantly
lower than they were when you started.
Move to a new version
To upgrade to a new version (such as 7.2 to 7.3 or 7.3 to 8.0), you must deploy a new environment. You must also
run a code upgrade and a database upgrade, if these upgrades are applicable. For more details, see Code
migration home page.

Tips
Decide on a good package naming convention for names in the LCS Asset library and for the names of zip
packages that are downloaded. In this way, you can more easily determine what package you've deployed
and where it came from. Avoid spaces in package names. Here is an example of a naming convention:
Platform update packages: PUXX_MMDDYY, where XX is the number of the platform update
Binar y update packages: BIN_MMDDYY
X++ update packages: APP_MMDDYY
Built X++ deployable packages: AX_BRANCH_VERSION, where BRANCH is an appropriate branch
name, and VERSION is the Microsoft Azure DevOps version string
Built Retail combined package: RET_BRANCH_VERSION, where BRANCH is an appropriate branch
name, and VERSION is the Azure DevOps version string
Whenever you start a new item of work, use the Get latest option in the Visual Studio source code
explorer.
Any code submissions should use correct and detailed comments that describe the change sets.
Production go-live procedures are important. You should consider including the following items on your
Go-live checklist. Verify your Go-live checklist in a mock go-live or UAT environment. This list isn't
exhaustive.
After deployment, does LCS show the expected deployment history together with the correct package
names?
After deployment, do the LCS environment page and Commerce show the correct and expected version
numbers?
Can Modern Point of Sale (MPOS) offline mode be used during downtime of Commerce? Package
deployments will cause downtime. If MPOS offline mode can be used, have you tested the procedure?
(To test the procedure, go offline, deploy, go online, synchronize offline transactions, and update MPOS.)
Does the Environment reprovisioning tool have to be run (if a database has been moved)?
Batch jobs for CDX synchronization must be reenabled by setting them to Waiting .
The "Initialize Commerce scheduler" job should be run.
Does other data have to be set up in addition to the deployable packages (for example, screens, buttons,
receipt layouts, the Microsoft Azure Active Directory setup, Commerce shared parameters, the tax
configuration, other batch processes, and DIXF recurring jobs)?
Is a synchronization of the CDX data jobs required?
Is a full synchronization of CDX data jobs required?
Does a deployment require that store components also be updated?
If the store components had to be updated, do they show the new version numbers?
Are the correct experts available during the deployment (for example, partners, ISVs, and customers)?

Additional resources
Set up new environments, Azure DevOps, and branches for Commerce projects
Testing and performance issues
Testing and performance issues
2/13/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This document describes practices and tools that are related to functional testing, performance testing, and
performance troubleshooting.

User acceptance testing


The main purpose of user acceptance testing (UAT) is to verify that specific business scenarios work as you expect.
The testing should include not only the customizations, but also out-of-box Microsoft functionality and non-happy-
path testing. The goal is to catch anything that doesn't work correctly before you go to the production
environment.
For the best results, the UAT environment should be a Tier 2 through Tier 5 environment, not a development
environment (Tier 1).
If a development environment is used, there are scenarios where a developer who uses the same environment can
cause errors (for example, uncommitted source changes or debugger attached errors). The switch between
Microsoft Internet Information Services (IIS) Express and IIS can also cause issues. Additionally, because there is no
way to know exactly what has happened on a development machine, Microsoft support for a Tier 1 environment is
very limited.
A production environment can be used for UAT (for example, as a "dry run" for go-live). However, if you require
access to the database for any reason, you must go through deployment support engineer (DSE) service requests.
Therefore, this approach might not be efficient. Additionally, the production environment isn't available for a long
period before the planned go-live date.
The UAT should be done after you deploy officially built deployable packages. It should not be done on packages
that are manually built in Microsoft Visual Studio. The reason is that there is no way to prove what code changes
were included in a manually built package. Only an official build system provides assurance and an audit trail of
the exact changes that are in a specific build.
If you use Modern POS/Cloud POS, make sure that you use the correct user roles. You should test by signing in as
both a manager and a cashier who has lower privileges.

Performance
Channel performance
In some cases, channel performance might not be as good as you expected. Poor performance is often caused by
the following factors. This list is in order from highest to lowest impact.
Additional custom calls to Commerce Scale Unit. If you extend the product with additional calls, performance
often decreases significantly. Not only is there a possibility of additional processing, but the network latency
must also be considered. We recommend that you try to avoid any additional Commerce Scale Unit calls. Often,
you can accomplish the same tasks by using extension properties and extending existing Commerce runtime
(CRT) handlers or triggers.
Additional channel database extensions. Make sure that your custom SQL is efficient and uses correct indexes.
Multiple runs of the same custom or built-in CRT SQL queries. If this approach is too expensive, caching in the
CRT request handler can be applied, as appropriate.
For more details, see the Commerce for IT pros and developers topics.
When you investigate store performance, follow the suggestions in Retail Channel performance investigations.
Using telemetry data to find performance issues
If you must troubleshoot the performance (especially slow SQL queries or SQL deadlocks), the environment
diagnostics page in Microsoft Dynamics Lifecycle Services (LCS) shows valuable telemetry data. You can use this
data to find potential performance issues in code, configuration, or design. For more details, see How to use
Environment Monitoring View Raw Logs. That information should help you determine why some batch processes
or form loads are slow.
Performance testing
Typically, when you test the performance of a system, you should focus on components where there is competition
for many shared resources. These resources might differ for different projects, customers, or requirements.
Here are some of the reasons why bottlenecks can occur:
Resource-intensive calculations, such as statement posting, change calculations for channel data
synchronization, warehousing operations that involve a large product assortment, and MRP (Material
Requirements Planning) runs
Complex business logic for multiple terminals or stores that run on a few Commerce Scale Unit
Integrated third-party systems (integrated from either Commerce or Commerce Scale Unit)
Real-time transaction services that are frequently called from Commerce Scale Unit.
Non-standard or extended standard functionality (for example, extended statement posting that uses a custom
WHS code)
In general, default and non-real-time POS operations aren't considered bottlenecks because they have their own
dedicated resource: the computer that the POS is installed or running on. Performance issues are typically caused
by the business logic or "chatty" calls to Commerce Scale Unit.
Ideally, performance testing should be done after some initial optimizations have already been completed by using
the information earlier in this topic. If the system doesn't perform well for a single user or process, it won't
perform well for concurrent users or processes. For more information, see Retail Channel performance
investigations. Additionally, in the Finance documentation, search for "PerfSdk" or "Trace parser."
Because every project is different, it's difficult to give a general answer about the exact performance tests that
must be run. For example, if the count of transaction sales lines is low (less than 100,000 per day for all stores),
and if no custom extension code has been added for statement posting, a performance test should not be required
for posting. However, if the count of sales lines is substantially higher, or if major custom changes have been
added, a performance test for posting is a good idea.
Usually, the hardware capabilities of every environment differ. However, performance issues can usually be
reproduced in other environments if the code and data are similar. We don't recommend that you use a production
environment for performance testing. A good practice is to use the same data in development, test, and production
environments. The development environment can then be used to work on and verify a fix. Because many
performance-critical code paths are data-dependent, the same issues might not be seen for a Contoso sample
database.
After you've completed a performance fix, you should verify the fix in a test environment. Deploy an officially built
package to the test environment, and if the issue is fixed, mark the package as a release package.
Any fix of a larger performance issue should be followed by a new performance test. Often, a large issue masks
other smaller issues. After the top issue is resolved, the next issues can be found and worked on until the
performance meets the customer's expectations.

Additional resources
Set up new environments, Azure DevOps, and branches for Commerce projects
Update code and environments for Retail projects
Channels overview
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic presents an overview of channels in Microsoft Dynamics 365 Commerce. It includes information about
the tasks that you must complete both before and after you set up each channel.

Types of Channels
Dynamics 365 Commerce supports three different channel types: retail, call center, and online channels.
Retail channels
Retail channels represent standard brick-and-mortar stores. Each store can have its own point of sale (POS)
registers, income and expense accounts, and staff.
Call center channels
Call center channels represent call center order and customer management.
Online channels
Online channels represent online e-Commerce storefronts. Once an online channel is created, a site must be
created using the Microsoft Dynamics 365 Commerce Site Builder tool or other third-party e-Commerce solution.

Channel setup basics


Channel set up is performed in the Commerce tool. Each channel can have its own payment methods, price
groups, product hierarchies, assortments, and set of products. After you create a channel, you assign the products
that you want it to carry and sell. Each channel type has a unique set of features that may need to be configured.
For example, a retail channel needs assigned employees, registers, and customers. Once a new channel is created,
it needs to be assigned to an organization hierarchy.

Channel setup prerequisites


Before you can set up a channel, you must complete some prerequisite tasks based on the channel type. For more
information, see Channel setup prerequisites.

Set up a channel
After you complete the prerequisite tasks, for further setup instructions, use the following links.
Set up a retail channel
Set up a call center channel
Set up an online channel

Additional resources
Channel setup prerequisites
Set up a retail channel
Set up an online channel
Set up a call center channel
Set up organization hierarchies
Channel setup prerequisites
3/10/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic presents an overview of channel setup prerequisites in Microsoft Dynamics 365 Commerce.

Overview
Before a Dynamics 365 Commerce channel can be created, several prerequisite tasks must be completed. The
following lists of prerequisite tasks are organized by channel type.

NOTE
Some documentation is still being written, and links will be updated as new content is published.

Initialization
Initialize seed data

Global prerequisities required for all channel types


Define and configure your legal entity structure
Configure your organizational hierarchy
Set up a warehouse
Configure sales tax
Set up an email notification profile
Set up number sequences
Set up a default customer and address book

Retail channel prerequisites


Info codes and info code groups
Set up a retail functionality profile
Set up an employee address book
Set up a screen layout
Set up a hardware station

Call Center channel prerequisites


Call center parameters
Call center order and refund payment methods
Call center modes of delivery and charges
Online channel prerequisites
Create an online functionality profile

Additional resources
Channels overview
Organizations and organizational hierarchies overview
Set up organization hierarchies
Create legal entities
Set up a retail channel
Set up an online channel
Organizations and organizational hierarchies
overview
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

An organization is a group of people who are working together to carry out a business process or achieve a goal.
Organizational hierarchies represent the relationships between the organizations that make up your business.

Organizations
You can define the following types of internal organizations: legal entities, operating units, and teams.
All internal organizations are types of the Par ty entity. Therefore, these organizations use the address book to store
address and contact information. A party, which can be either a person or an organization, can belong to one or
more address books.
Legal entities
A legal entity is an organization that has a registered or legislated legal structure. Legal entities can enter into legal
contracts and are required to prepare statements that report on their performance.
A company is a type of legal entity. Currently, companies are the only kind of legal entity that you can create, and
every legal entity is associated with a company ID. This association exists because some functional areas in the
program use a company ID, or DataAreaId, in their data models. In these functional areas, companies are used as a
boundary for data security. Users can access data only for the company that they are currently logged on to.
Operating units
An operating unit is an organization that is used to divide the control of economic resources and operational
processes in a business. People in an operating unit have a duty to maximize the use of scarce resources, improve
processes, and account for their performance.
The types of operating units include cost centers, business units, value streams, departments, and commerce
channels. The following table provides more information about each type of operating unit.

O P ERAT IN G UN IT T Y P E DESC RIP T IO N P URP O SE

Cost center An operating unit in which managers Used for the management and
are accountable for budgeted and actual operational control of business
expenditures. processes that span legal entities.

Business unit A semi-autonomous operating unit that Used for financial reporting that is
is created to meet strategic business based on industries or product lines
objectives. that the organization serves
independently of legal entities.
O P ERAT IN G UN IT T Y P E DESC RIP T IO N P URP O SE

Value stream An operating unit that controls one or Commonly used in lean manufacturing
more production flows. to control the activities and flows that
are required to supply a product or
service to consumers.

Department An operating unit that represents a Used to report on functional areas. A


category or functional part of an department may have profit and loss
organization that performs a specific responsibility, and may consist of a
task, such as sales or accounting. group of cost centers.

Commerce channel An operating unit that represents a Used for the management and
brick and mortar store, an online store operational control of one or more
or an online marketplace. stores within or across legal entities.

Teams
A team is an organization in which the members share a common responsibility, interest, or objective. Teams cannot
be used in organizational hierarchies.

Organizational hierarchies
Set up organizational hierarchies to view and report on your business from different perspectives. For example, you
can set up a hierarchy of legal entities for tax, legal, or statutory reporting. Set up a hierarchy that is based on
operating units to report financial information that is not legally required, but that is used for internal control. For
example, you can create a purchasing hierarchy to control purchasing policies, rules, and business processes.
Each hierarchy is assigned a purpose. The purpose of a hierarchy determines the types of organizations that can be
included in the hierarchy. The purpose also determines which application scenarios a hierarchy can be used in.
Organizations in a hierarchy can share parameters, policies, and transactions. An organization can inherit or
override the parameters of its parent organization. However, shared master data, such as products and address
books, applies to the whole organization and cannot be overridden for individual organizations. Creating
organizations and hierarchies requires careful planning. For more information, see Plan your organizational
hierarchy.
Plan your organizational hierarchy
10/1/2019 • 13 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Before you set up organizations and organization hierarchies, make sure that you plan how your business will be
modeled. The organization model has a significant effect on the implementation and business processes.
Organizational hierarchies represent the relationships between the organizations that make up a business.
Therefore, the most important consideration when you model organizations is the structure of your business. We
recommend that you define organization structures based on feedback from executives and senior managers from
functional areas, such as finance and accounting, human resources, operations, purchasing, and sales and
marketing.
When you are planning hierarchies, it is also important to consider the relationship between the organizational
hierarchy and financial dimensions. You can set up multiple organizational hierarchies to represent different views
of your business. By using financial dimensions, you can create reports based on these views. Work with your
partner to create hierarchies that address both organizational and statutory reporting needs.

NOTE
Although you can use financial dimensions to represent legal entities without creating the legal entities, financial dimensions
aren't designed to address the operational or business needs of legal entities. The interunit accounting functionality is
designed to address only the accounting entries that are created by each transaction.

IMPORTANT
You shouldn't decide how to model organizations based only on the information in this article. This documentation is a guide.
You can work with your Partner for additional guidance. Your Partner has gained experience in various industries and across
the customer base.

Decide whether to model internal organizations as legal entities or


operating units
You must have at least one legal entity to represent your business. A legal entity can enter legal contracts and is
required to prepare financial statements that report on its performance.
Legal entities can be used for transactional business or for consolidation. This means that a legal entity in Finance
and Operations does not necessarily represent a real entity in your business. For example, a company that
participates in transactions can own subsidiary legal entities. In this scenario, a legal entity is required for
transactions, and a virtual legal entity is required to consolidate the results and balances of the subsidiary legal
entities.
Internal organizations in your business, such as regional offices, can be represented as additional legal entities, or as
operating units of the main legal entity. An operating unit is not required to be a legally defined organization.
Operating units are used to control economic resources and operational processes in the business. For example,
departments and cost centers are operating units.
Some functionality works differently depending on whether the organization is a legal entity or an operating unit.
Carefully consider the functionality described below as you make your decision.
Master data
If the organization is modeled as a legal entity
Some master data, such as customers, payment terms, tax authorities, and site-specific stock ordering, must be set
up for each legal entity. Some master data, such as users, products, and most human resources data, is shared
among all legal entities.
If the organization is modeled as an operating unit
Master data is shared among operating units.
Module parameters
If the organization is modeled as a legal entity
Parameters for modules, such as Accounts receivable parameters, Accounts payable parameters, and Cash and bank
management parameters, must be set per legal entity. Because the module setup for legal entities is separate, each
subsidiary can comply with local statutory requirements and business practices. For example, a professional
services legal entity and a manufacturing legal entity can have different module parameters even though they
report to the same parent company.
If the organization is modeled as an operating unit
Module parameters are shared among operating units.
Data security
If the organization is modeled as a legal entity
Most data is automatically secured by company ID. A company ID is a unique identifier for the data that is
associated with a legal entity. A company can be associated with only one legal entity, and a legal entity can be
associated with only one company. Users can access data only for the companies that they have access to. You do
not need to customize to secure data by company ID.
If the organization is modeled as an operating unit
Data can be secured per operating unit by creating customized data security policies. Data security policies are used
to limit access to data. For example, assume that a user is allowed to create purchase orders only in a particular
operating unit. Data security policies can be created to prevent the user from accessing purchase order data from
any other operating unit. The volume of transactions and the number of security policies can affect performance.
When you design security policies, keep performance in mind.
Ledgers
If the organization is modeled as a legal entity
Each legal entity requires a ledger that provides a chart of accounts, accounting currency, reporting currency, and
fiscal calendar. A balance sheet can be created only for a legal entity. Main accounts, dimensions, account structures,
charts of accounts, and account rules can be used by more than one legal entity.
If the organization is modeled as an operating unit
An operating unit can't have its own ledger information. If your internal organizations do not require unique
ledgers, you can model them as operating units. Ledger information will be set up for the parent legal entity in the
hierarchy. Income statements can be created for operating units within a legal entity or for the parent legal entity.
Fiscal calendars
If the organization is modeled as a legal entity
Each legal entity has its own fiscal calendar. If your internal organizations use different fiscal years and fiscal
calendars, you must model the organizations as legal entities.
If the organization is modeled as an operating unit
Operating units must share a fiscal calendar. If your internal organizations can use the same fiscal years and fiscal
calendars, you can model the organizations as operating units.
Consolidation
If the organization is modeled as a legal entity
You must consolidate the financial results for regional offices into a single, consolidated company in order to
prepare financial statements.
If the organization is modeled as an operating unit
Consolidation is not required, because data is already shared among operating units.
Centralized payments
If the organization is modeled as a legal entity
Centralized payments must be set up so that invoices for all child legal entities can be paid to or from a single
parent legal entity.
If the organization is modeled as an operating unit
Centralized payments are not required because all invoices are recorded in a single legal entity.
Intercompany transactions
If the organization is modeled as a legal entity
Intercompany sales orders, purchase orders, payments, or receipts can be applied to one another. You are not
required to use journal vouchers. You can view intercompany transactions at the sub-ledger level (Accounts
receivable, Accounts payable). The following examples illustrate how intercompany transactions are handled.
Ex a m p l e 1 : H e a d q u a r t e r s p r o v i d e s se r v i c e s t o r e g i o n a l o ffi c e s a n d m u st c h a r g e t h e c o st s o f t h o se se r v i c e s t o t h e r e g i o n a l o ffi c e s

If you model the regional office as a legal entity, you have the following options:
Headquarters creates a journal entry to cross-charge the regional office for the expense. The transactions cannot
be aged.
Headquarters sends a purchase order for the services to the regional office. A sales order is automatically
created in the legal entity for the regional office, with intercompany sub-ledger transactions.
Ex a m p l e 2 : H e a d q u a r t e r s p r o c u r e s a n d p a y s fo r se r v i c e t h a t i s d e l i v e r e d t o a r e g i o n a l o ffi c e

If you model the regional office as a legal entity, you have the following options:
The invoice and payment follow the regulatory requirements of headquarters. Headquarters can create a journal
entry to cross-charge the regional office for the expense. The transactions cannot be aged.
The invoice and payment follow the regulatory requirements of headquarters. Headquarters can create an
intercompany sub-ledger transaction.
If the organization is modeled as an operating unit
Intercompany transactions among operating units are supported only through journal vouchers. An operating unit
cannot issue or receive a purchase order, sales order, or invoice from another operating unit in the same legal entity.
You cannot view intercompany transactions at the sub-ledger level (Accounts receivable, Accounts payable). The
following examples illustrate how intercompany transactions are handled.
Ex a m p l e 1 : H e a d q u a r t e r s p r o v i d e s se r v i c e s t o r e g i o n a l o ffi c e s a n d m u st c h a r g e t h e c o st s o f t h o se se r v i c e s t o t h e r e g i o n a l o ffi c e s

If you model the regional office as an operating unit, headquarters enters an expense transaction and codes it to the
regional office.
Ex a m p l e 2 : H e a d q u a r t e r s p r o c u r e s a n d p a y s fo r se r v i c e t h a t i s d e l i v e r e d t o a r e g i o n a l o ffi c e

If you model the regional office as an operating unit, the invoice and payment follow the regulatory requirements
of headquarters. The invoice can be coded to the regional office. On the income statement, use a balancing financial
dimension to report costs for the regional office.
Local tax requirements
If the organization is modeled as a legal entity
A legal entity is subject to the tax laws of the tax authority in the country/region where the legal entity is registered.
For example, a legal entity that is registered in Denmark is subject to Danish tax laws and regulations. A legal entity
can belong to only one country/region. The country/region that you select for the primary address of the legal
entity controls the country/region-specific features that are available to that legal entity. For example, if the primary
address of the legal entity is in Denmark, features that are related to Danish tax laws and regulations become
available. Therefore, if your organizations are in different countries/regions and require different local tax options,
you must set up the organizations as separate legal entities.
If the organization is modeled as an operating unit
Operating units use the country context of the parent legal entity. Operating units in the same legal entity cannot
have different country/region-specific requirements. If your organizations are in the same country/region and use
the same tax options, you can set them up as operating units.
Statutory reporting for a country/region
If the organization is modeled as a legal entity
For countries/regions that are supported, most statutory reports can be created. For information about which
reports are available for each country/region, see the Microsoft Dynamics Localization Portal. (A CustomerSource
logon is required.)

NOTE
A posting layer in the general ledger allows you to make adjusting entries to a parent company that uses a different
accounting standard than the child company. For example, for a company that uses generally accepted accounting practices in
the United Kingdom (UK GAAP), you can make adjusting entries in the posting layer. These entries can be consolidated into a
parent company that uses generally accepted accounting principles (GAAP) in the United States. The adjusting entries do not
affect UK GAAP reporting.

If the organization is modeled as an operating unit


Statutory reports must be created by using another application. You must ensure that data is captured in Finance
and Operations apps to support the requirements of each operating unit, where they differ from the requirements
of headquarters.
Currency
If the organization is modeled as a legal entity
If your organizations must use different functional currencies, you must model the organizations as legal entities.
Functional currencies are set up per legal entity. However, you can enter transactions in multiple currencies.
If the organization is modeled as an operating unit
If your organizations can use a single functional currency, you can model the organizations as operating units.
Operating units must share a functional currency. However, you can enter transactions and create reports in
multiple currencies.
Year-end closing
If the organization is modeled as a legal entity
If laws and accounting practices differ among the countries/regions where your organizations are located, you may
require different year-end procedures per organization. This means that you must model the organizations as legal
entities. Each legal entity has its own year-end procedures.
If the organization is modeled as an operating unit
If laws and accounting practices are the same among the countries/regions where your organizations are located,
you may use a single set of year-end procedures. This means that you can model the organizations as operating
units. All operating units must use the same year-end closing procedure.
Number sequences
If the organization is modeled as a legal entity
Number sequences for some references can be set up per legal entity. Some number sequences can be shared.
If the organization is modeled as an operating unit
Number sequences for some references can be set up per operating unit. Some number sequences can be shared.
Products
If the organization is modeled as a legal entity
Product definitions are shared, and they must be released to individual legal entities before they can be included in
transactions. Each legal entity has its own set of released products that can be included in transaction documents. If
your internal organizations must use different sets of products, you must model the organizations as legal entities.

NOTE
Even though product definitions are shared, in each legal entity where a product has been released, you can specify different
sales, purchase, and stocking parameters for the item at each inventory site.

If the organization is modeled as an operating unit


All operating units share the same set of products. If your internal organizations can share the same set of products,
you can model the organizations as operating units.
Inquiry and reporting
If the organization is modeled as a legal entity
You must manually change companies to enter transactions and perform inquiries in multiple legal entities. Because
of data security boundaries, consolidated inquiry and reporting can be resource intensive and time-consuming.
If the organization is modeled as an operating unit
You do not need to change companies to access data from multiple operating units. Consolidated inquiry and
reporting and individual regional inquiry is easier and faster.

Best practices for modeling organizations and hierarchies


Consider the following best practices when you implement an organization hierarchy:
Create a department to model the intersection between a legal entity and a business unit. You can then roll up
data from a department to a legal entity for statutory reporting, and from a department to a business unit for
internal reporting. Departments can serve as profit centers. If you use departments, you do not have to use legal
entities and business units as dimensions in the account structure. You can use just departments as a dimension.
However, you must use both cost centers and departments as dimensions in the account structure if cost centers
are used only as cost accumulators, and departments are used for revenue recognition.
Model multiple hierarchies for operating units if you have complex requirements for reporting profit and loss.
In a single legal entity, do not model multiple hierarchies for the same hierarchy purpose.
Do not create a hierarchy for every purpose. Usually, you can use one hierarchy for multiple purposes. For
example, one hierarchy of operating units can be assigned to all policy-related purposes.
Create balanced hierarchies. In a hierarchy, all nodes that are the same distance from the root node are defined
as a level. In a balanced hierarchy, only one type of operating unit can occur at each level, and the distance from
the root node to each level is consistent. If there are intermediate levels between a department and a legal entity
or a business unit, placeholder organizations may be required to create a balanced hierarchy.
Do not model a separate hierarchy of operating units if the structure for legal entities is also your operating
structure. A mixed hierarchy of legal entities and operating units may serve both purposes.
Before you model major restructuring scenarios, use the hierarchy's effective dates to perform an impact
analysis and a validation test.
Use draft mode to change a hierarchy before you publish a new version in a production environment.
Limit the number of people who have permissions to add or remove organizations from a hierarchy in a
production environment. A smaller number reduces the chance that costly mistakes can occur and corrections
must be made.
Create legal entities
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create legal entities in Microsoft Dynamics 365 Commerce, which must be created and
configured before creating channels.

Overview
A legal entity is an organization that has a registered or legislated legal structure. Legal entities can enter into legal
contracts and are required to prepare statements that report on their performance.
A company is a type of legal entity. Currently, companies are the only kind of legal entity that you can create, and
every legal entity is associated with a company ID. This association exists because some functional areas in the
program use a company ID, or DataAreaId, in their data models. In these functional areas, companies are used as a
boundary for data security. Users can access data only for the company that they are currently logged on to.
When creating a channel, you must specify which legal entity that channel belongs to.

Create a new legal entity


To create a new legal entity in Dynamics 365 Commerce, follow these steps.
1. In the navigation pane, go to Modules > Headquar ters setup > Legal entities .
2. On the action pane, select New . The New legal entity pane appears on the right.
3. In the Name field, enter a value.
4. In the Company field, enter a value.
5. In the Countr y/region field, enter or select a value.
6. Select OK .
7. In the General section, provide the following general information about the legal entity:
a. Enter a search name, if a search name is required. A search name is an alternate name that can be used
to search for this legal entity.
b. Select whether this legal entity is being used as a consolidation company.
c. Select whether this legal entity is being used as an elimination company.
d. Select the default language for the entity.
e. Select the time zone for the entity.
8. In the Addresses section, select Edit to enter address information, such as the street name and number,
postal code, and city.
9. In the Contact information section, enter information about methods of communication, such as email
addresses, URLs, and telephone numbers.
10. In the Statutor y repor ting section, enter the registration numbers that are used for statutory reporting.
11. In the Registration numbers section, enter any information required by the legal entity.
12. In the Bank account information section, enter bank accounts and routing numbers for the legal entity.
13. In the Foreign trade and logistics section, enter shipping information for the legal entity.
14. In the Number sequences section, you can view the number sequences that are associated with the legal
entity. This will be empty to start with.
15. In the Dashboard image section, view or change the logo and dashboard image associated with the legal
entity.
16. In the Tax registration section, enter the registration numbers that are used to report to tax authorities.
17. In the Tax 1099 section, enter 1099 information for the legal entity.
18. In the Tax invormation section, enter tax information for the legal entity.
19. Select Save .
The following image shows details of an example legal entity.
Additional resources
Organizations and organizational hierarchies overview
Plan your organizational hierarchy
Organization hierarchies
Channels overview
Channel setup prerequisites
Set up organization hierarchies
3/10/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to set up organization hierarchies in Microsoft Dynamics 365 Commerce.

Overview
Before creating channels, you'll want to ensure you have set up your organization hierarchies.
You can use organization hierarchies to view and report on your business from various perspectives. For example,
you can set up one hierarchy for tax, legal, or statutory reporting. You can then set up another hierarchy to report
financial information that is not legally required, but that is used for internal reporting.
Before you create an organization hierarchy, you must create organizations. For more information, see Create legal
entities or Create operating units.
For more information, see the following topics.
Organizations and organizational hierarchies overview
Plan your organization hierarchy
Create an organization hierarchy

Create an organizational hierarchy


To create an organizational hierarchy, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Channel Setup > Organization
hierarchies .
2. On the action pane, select New .
3. In the Name field, enter a value.
4. In the Purpose section, select Assign purpose .
5. In the list, find and select the desired record. Select a purpose to assign to your organization hierarchy.
6. In the Assigned hierarchies section, select Add .
7. In the list, mark the selected row. Find the hierarchy you just created.
8. Select OK .
The following image shows an example organizational hierarchy created for a fictitious "Adventure Works" set of
stores.
Add organizations to a hierarchy
To add organizations to a hierarchy, follow these steps.
1. In the list, find and select the desired record. Select your hierarchy.
2. On the action pane, select View .
3. Add organizations, as necessary.
4. To add an organization, select Edit and then select Inser t . When you are done making changes you can save a
draft and publish the changes.
The following image shows a legal entity added at the hierarchy root with four cost centers added for "Mall",
"Outlet", "Online" and "Call Center" channels. Various retail, call center and online channels can then be added to
each.
Additional resources
Organizations and organizational hierarchies overview
Plan your organizational hierarchy
Create legal entities
Create operating units
Channels overview
Channel setup prerequisites
Create an operating unit
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

An operating unit is an organization that is used to divide the control of economic resources and operational
processes in a business. People in an operating unit have a duty to maximize the use of scarce resources, improve
processes, and account for their performance. The types of operating units include cost centers, business units,
departments, and value streams. Use the following procedure to create an operating unit. The demo data company
used to create this procedure is USMF.
1. Go to Navigation pane > Modules > Organization administration > Organizations > Operating
units.
2. Click New to open the drop dialog.
3. In the list, find and select the desired record. Select the type of operating unit you want to create.
4. In the list, click the link in the selected row.
5. In the Name field, type a value.
Expand the General section, if necessary.
Provide general information about the operating unit, such as an identification number, DUNS number,
and manager.
Expand the Addresses section, if necessary.
Enter address information, such as the street name and number, postal code, and city. Click Add to enter a
new address record, or click Edit to modify an existing address record.
Expand the Contact information section, if necessary.
Enter information about methods of communication, such as email addresses, URLs, and telephone
numbers. To enter a new communication record, click New. To modify an existing communication record,
click More options > Advanced .
6. Optionally, change the Operating unit number as needed. Note that this number is a unique idenitifier for the
correspondng Par ty record and cannot be the same as any other operating unit.
7. Select Save .
Design the relationships between organizational units
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through how to design the relationship between organizational units. You must create a new
organization purpose before defining the relationship, or you can use the existing organization purpose. The demo
data company used to complete this procedure is USRT. This task is intended for the administrator role.
1. Go to Organization administration > Organizations > Organization hierarchies.
2. Click New.
3. In the Name field, type a value.
4. Click Assign purpose.
5. In the list, find and select the desired record.
6. Click Add.
7. In the list, find and select the desired record.
8. Click OK.
You can select as many organization purposes as required for your organization.
9. In the list, find and select the desired record.
10. Click Set as default.
11. Close the page.
12. Click Save.
13. Click View.
14. Click Edit.
15. Click Insert.
16. Click Business unit.
17. In the list, find and select the desired record.
18. In the list, click the link in the selected row.
19. Click Insert.
20. Click Commerce channel.
21. In the list, find and select the desired record.
22. In the list, click the link in the selected row.
You can add as many organization units as is required.
23. Click Save.
24. Click Close.
25. Click Publish to open the drop dialog.
26. In the Effective date field, enter a date and time.
27. In the Effective date field, enter a date and time.
28. In the Describe changes field, type a value.
29. Click Publish.
30. Click Close.
Warehouse set up
3/10/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to set up a warehouse to be used with a new channel in Microsoft Dynamics 365
Commerce.

Overview
Each Commerce channel requires a configured warehouse to be associated with it. The following procedures
provide the minimum configuration required to set up a warehouse for a Commerce channel. For more
information regarding warehouse setup, please see the Warehouse management overview.

Configure a warehouse site


Before setting up a warehouse, you need to configure a warehouse site.
To configure a warehouse site, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Channel setup > Sites .
2. On the action pane, select New .
3. In the Site field, enter a value.
4. In the Name field, enter a value.
5. In the General section, set the appropriate Time zone .
6. In the Addresses section, enter an address.
7. On the action pane, select Save .
The following image shows an example warehouse site.
Set up a warehouse
To set up a warehouse, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Channel setup > Warehouses .
2. On the action pane, select New .
3. In the Warehouse field, enter a value. If this is a 1:1 mapping to a store, consider using the store name or the
name of a regional distribution center.
4. In the Name field, enter a value.
5. In the Site drop-down list, select the warehouse site created previously.
6. In the Type field, select Default .
If you want to set a Quarantine warehouse , first you'll need to follow these steps to create an
additional warehouse where the Type is set to Quarantine .
If you want to set a Transit warehouse , first you'll need to follow these steps to create an additional
warehouse where the Type is set to Transit .
7. On the action pane, select Save .

Set up inventory aisles


To set up inventory aisles, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Channel setup > Location setup >
Inventor y aisles .
2. On the action pane, select New .
3. In the Warehouse drop-down list, select the warehouse created previously.
4. In the Aisle field, enter a name (for example, "Def").
5. In the Name field, enter a name (for example, "Default aisle").
6. On the action pane, select Save .

Set up warehouse inventory locations


To set up warehouse inventory locations for standard, damaged, and returned inventory, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Channel setup > Warehouses .
2. Select the warehouse you created previously.
3. On the action pane, select Edit .
4. On the action pane, select Warehouse , and then select Inventor y location .
5. On the action pane, select New . The Warehouse drop-down list should default to your new warehouse.
a. In the Aisle box, enter the name of the aisle you specified earlier.
b. Set Manual update to Yes
c. In the Location box, enter the name of the warehouse.
d. On the action pane, select Save .
6. On the action pane, select New . The Warehouse drop-down list should default to your new warehouse.
a. In the Aisle box, enter the name of the aisle you specified earlier.
b. Set Manual update to Yes
c. In the Location box, enter "Damaged".
d. On the action pane, select Save .
7. On the action pane, select New . The Warehouse drop-down list should default to your new warehouse.
a. In the Aisle box, enter the name of the aisle you specified earlier.
b. Set Manual update to Yes
c. In the Location box, enter "Returns".
d. On the action pane, select Save .
The following image shows a San Francisco warehouse inventory location setup.

Complete warehouse setup


To complete warehouse setup, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Channel setup > Warehouses .
2. Select the warehouse you previously created.
3. On the action pane, select Edit .
4. Under Inventor y and warehouse management :
a. Set Default receipt location to the default location created above.
b. Select Default issue location to the default location created above.
5. Under the Addresses section, enter a warehouse address.
6. Under the Retail section:
a. In the Default return location box, enter the returns location created previously.
b. Set Store to Yes .
c. Set Weight to 1.00 .
d. In the Storage Dimensions box, enter the default location created previously.
7. Under the Warehouse section, set Physical negative inventor y to Yes .
8. On the action pane, select Save .
The following image shows details for a configured warehouse.

Additional resources
Warehouse management overview
Channels overview
Channel setup prerequisites
Set up a retail channel
Set up an online channel
Set up a call center channel
Sales tax overview
2/27/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides an overview of the sales tax system. It explains the elements of the sales tax setup and how they
work together.

Overview
The sales tax framework supports many types of indirect taxes, such as sales tax, value-added tax (VAT), goods and
services tax (GST), unit-based fees, and withholding tax. These taxes are calculated and documented during
purchase and sales transactions. Periodically, they must be reported and paid to tax authorities.
The following diagram shows the entities of the tax setup and how they are related.

For every sales tax that a company must account for, a sales tax code must be defined. A sales tax code stores the
tax rates and calculation rules for the sales tax.
Every sales tax code must be linked to a sales tax settlement period. Sales tax settlement periods define the
intervals at which sales tax must be reported and paid to the sales tax authority. Every sales tax settlement period
must be assigned to a sales tax authority. A sales tax authority represents the entity that sales tax is reported and
paid to. It also defines the layout for the sales tax report. Sales tax authorities can be related to vendor accounts. For
more information, see Set up sales tax settlement periods.
Every sales tax code must also be linked to a ledger posting group. A ledger posting group specifies the main
accounts that amounts for the sales tax codes will be posted to.
Optional sales tax reporting codes can also be defined. These can be assigned on sales tax codes for the various
amount types that are calculated for the sales tax code. The Sales tax payment by code report shows totals per
sales tax reporting code for a given sales tax settlement period and interval.
Every transaction that sales tax needs to be calculated and posted for must have a sales tax group and an item sales
tax group. Sales tax groups are related to the party (for example, customer or vendor) of the transaction, whereas
item sales tax groups are related to the resource (for example, item or procurement category) of the transaction. Tax
groups contain a list of tax codes. The tax codes that are present in both the sales tax group and item sales tax
group for a transaction are the tax code that apply to that transaction.
The following table describes the entities and the sequence for the tax setup.
SET UP A C T IVIT Y REQ UIRED/ O P T IO N A L A N D DESC RIP T IO N

Create main accounts. Required. Before you can set up the sales tax functionality, the
main accounts that the company uses to pay and record taxes
must be created.

Set up ledger posting groups for sales tax. Required. Ledger posting groups define the main accounts for
recording and paying sales taxes. For more information, see
Set up Ledger posting groups for sales tax.

Set up sales tax authorities. Required. Sales tax authorities are the entities that tax must be
reported and paid to. For more information, see Set up sales
tax authorities.

Set up sales tax settlement periods. Required. Sales tax settlement periods contain information
about when and how often sales tax must be reported and
paid. They are related to a sales tax authority.

Set up sales tax reporting codes. Optional. Sales tax reporting codes can be assigned to sales
tax codes to report amounts for multiple sales tax codes under
one sales tax reporting code. For more information, see Set up
sales tax reporting codes.

Set up sales tax codes. Required. Sales tax codes contain the tax rates and calculation
rules for each sales tax. Sales tax codes are related to a sales
tax settlement period and a ledger posting group. For more
information, see Set up sales tax codes.

Set up sales tax groups. Required. Sales tax groups contain a list of sales codes that
apply for the party (customer or vendor) of a transaction. For
a given transaction, the intersection of sales tax codes in the
sales tax group and the item sales tax group determines the
sales tax codes that apply to that transaction.

Set up item sales tax groups. Required. Item sales tax groups contain a list of sales codes
that apply for the resource (product, service, and so on) of a
transaction. For a given transaction, the intersection of sales
tax codes in the sales tax group and the item sales tax group
determines the sales tax codes that apply to that transaction.
For more information, see Set up sales tax groups and item
sales tax groups.

Set up sales tax parameters on the application parameter Required. Different areas, such as General ledger, Accounts
pages. receivable, and Accounts payable, must set up parameters for
correct calculation of indirect taxes. Although most of these
parameters have default values, they must be modified to fit
each company's requirements.

Sales tax on transactions


On every transaction (sales/purchase document lines, journals, and so on), you must enter a sales tax group and an
item sales tax group to calculate sales tax. Default groups are specified in master data (for example, customer,
vendor, item, and procurement category), but you can manually change the groups on a transaction if you must.
Both groups contain a list of sales tax codes, and the intersection of the two lists of sales tax codes determines the
list of applicable sales tax codes for the transaction.
On every transaction, you can look up the calculated sales tax by opening the Sales tax transaction page. You can
look up the sales tax for a document line or for the whole document. For certain documents (for example, vendor
invoice and general journals), you can adjust the calculated sales tax if the original document shows deviant
amounts.

Sales tax settlement and reporting


Sales tax must be reported and paid to tax authorities at regulated intervals (monthly, quarterly, and so on). You can
settle tax accounts for the interval and offset the balances to the tax settlement account, as specified in the ledger
posting groups. You can access this functionality on the Settle and post sales tax page. You must specify the
sales tax settlement period that sales tax should be settled for.
After the sales tax has been paid, the balance on the sales tax settlement account should be balanced against the
bank account. If the sales tax authority that is specified on the sales tax settlement period is related to a vendor
account, the sales tax balance is posted as an open vendor invoice and can be included in the regular payment
proposal.

Conditional sales tax


Conditional sales tax is a sales tax that is paid proportionally to the actual amount that is paid on an invoice.
Conversely, standard sales tax is calculated at invoicing time. Conditional sales tax must be paid to the sales tax
authority when the payment is posted, not when the invoice is posted. When the invoice is posted, the transaction
must be reported on the sales tax book report. However, the transaction must be excluded from the sales tax
payment report.
If you select the Conditional sales tax check box in the General ledger parameters form, no sales tax can be
deducted until you have paid the invoice. This is a legal requirement in some countries/regions.

NOTE
When you select the Conditional sales tax check box, you must set up sales tax codes and sales tax groups, and also create
ledger posting groups, to support the functionality. |

Example
You settle sales taxes each month. On June 15, you create a customer invoice of 10,000, plus sales tax.
The sales tax is 25 percent, or 2,500.
The invoice payment is due July 30.
You typically would have to settle and pay 2,500 to the tax authority when the invoice is posted in June, even
though you have not received the payment from the customer.
However, if you are using a conditional sales tax, you settle with the tax authority when you receive the payment
from the customer on July 30.
Postdated check
If you use postdated check as the payment method, when the payment is created, the bank account isn't cleared. In
some countries, the VAT becomes 'realized' liability when the payment clears the bank, which means the postdated
check is settled. You can enable it by selecting Realize the conditional tax when postdated checks are drawn
in Cash and bank management > Setup > Cash and bank management parameters > Postdated
checks .
For more information, see Set up withholding tax.
Sales tax calculation methods in the Origin field
11/5/2019 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article explains the options in the Origin field on the sales tax codes page and how sales tax is calculated based
on the selected option for a sales tax code.
For each sales tax code that you create in the Sales tax codes page, you must select the method of calculation to
apply to the tax base amount in the Origin field.

Percentage of net amount


The Percentage of net amount calculation method is the default value in the Origin field. The sales tax is calculated
as a percentage of the purchase or sales amount, excluding any other sales taxes.
Example
The tax rate is 25%. The invoice line shows a quantity of 10 items at 1.00 each, and the customer is allowed a 10%
line discount. Net amount: (10 x 1.00) -10% = 9.00 Sales tax: 9.00 x 25% = 2.25 Total amount: 9.00 + 2.25 = 11.25

Percentage of gross amount


If you select the Percentage of gross amount method, the sales tax is calculated as a percentage of the gross sales
amount. The gross amount is the line net amount plus all taxes and fees for the line except the one tax with Origin =
Percentage of gross amount.
Example
The tax authority has imposed special duties on an item. The duty amounts are added to the net amount before
sales tax is calculated. Given the following sales tax codes:
DUTY 1 = 10%, using the Percentage of net amount calculation method
DUTY 2 = 20%, using the Percentage of net amount calculation method
SALESTAX = 25%, using the Percentage of gross amount calculation method
If the net amount is 10.00, then DUTY 1 is 1.00 (10.00 x 10%) and DUTY 2 = 2.00 (10.00 x 20%). The amounts would
be as follows: Gross amount: Net amount + DUTY 1 amount + DUTY 2 amount (10.00 + 1.00 + 2.00) = 13.00
SALESTAX = 13.00 x 25% = 3.25 Total DUTIES and SALESTAX: 1.00 + 2.00 + 3.25 = 6.25 Total amount: 10.00 + 6.25
= 16.25

N OT E

Only one tax code with Origin = Percentage of gross amount can be used for a transaction. If more than one such tax code is
determined for a transaction an error will be displayed that sales tax cannot be calculated.

Percentage of sales tax


When you select Percentage of sales tax in the Origin field, sales tax is calculated as a percentage of the sales tax
that is selected in the Sales tax on sales tax field. The sales tax that is selected in the Sales tax on sales tax field is
calculated first. The second sales tax is then calculated based on the first sales tax amount.
Example
Given the following sales tax codes:
DUTY 1 = 10%, using the Percentage of net amount method
DUTY 2 = 20%, using the Percentage of sales tax method, with Duty 1 in the Sales tax on sales tax field
SALESTAX = 25%, using the Percentage of gross amount method
Net amount: 10.00 DUTY 1: 10.00 x 10% = 1.00 DUTY 2: 1.00 x 20% = 0.20 Gross amount: 10.00 + 1.00 + 0.20 =
11.20 SALESTAX: 11.20 x 25% = 2.80 Total DUTIES and SALESTAX: 1.00 + 0.20 + 2.80 = 4.00 Total amount: 10.00 +
4.00 = 14.00

N OT E

Multilevel tax on tax calculations are not possible. A tax cannot be calculated based on a tax which already is calculated based on
another tax. Multiple single level tax on tax codes can be calculated on a transaction.

Amount per unit


When you select Amount per unit in the Origin field, sales tax is calculated as a fixed amount per unit multiplied
with the quantity entered on the document line. A unit has to be selected in the Unit field. The amount per unit is
specified in the Sales tax code values page.
Example
Sales tax code is set up as: USD 1.20 per unit = box On a sales invoice line 25 boxes of an item are sold Sales tax is
calculated as 25 x 1.20 = 30.00

N OT E

If the transaction is entered in different unit than the unit specified on the sales tax code, it is converted automatically based on
the unit conversions that are set up in the Unit conversions page.

Amount per unit, additional option


On the Calculation tab, you can select whether an amount per unit calculated tax is calculated before other tax codes
and added to the net amount before other tax codes with Origin = Percentage of net amount are calculated.
Examples
Assume we calculate 2 tax codes on a transaction:
DUTY: Origin = Amount per unit and a sales tax, the value is set to 5.00 per unit = pcs
SALESTAX: Origin = as shown in the examples below, the value is set to 25%
We sell 1 piece of an item at a unit price of 10.00
Example 1
SALESTAX: Origin = Percentage of gross amount method The Calculate before sales tax option has no effect,
because SALESTAX is calculated as a percentage of the gross amount. DUTY: 1 x 5.00 = 5.00 Gross amount: 10.00 +
5.00 = 15.00 SALESTAX: 15.00 x 25% = 3.75 Total sales tax: 5.00 + 3.75 = 8.75 Total amount: 10.00 + 8.75 = 18.75
Example 2
SALESTAX: Origin = Percentage of net amount The Calculate before sales tax option is not selected for the DUTY
calculation. Net amount: 10.00 DUTY: 1 x 5.00 = 5.00 SALESTAX: 10.00 x 25% = 2.50 Total sales tax: 5.00 + 2.50 =
7.50 Total amount: 10.00 + 7.50 = 17.50
Example 3
SALESTAX: Origin = Percentage of net amount The Calculate before sales tax option is selected for the DUTY
calculation. Net amount: 10.00 DUTY: 1 x 5.00 = 5.00 SALESTAX: (10.00 + 5.00) x 25% = 3.75 Total sales tax: 5.00 +
3.75 = 8.75 Total amount: 10.00 + 8.75 = 18.75
Example 4
The result of Example 3 and Example 1 is the same, because there is only one duty. Assume that you have two
DUTIES, and only one of them is included in the net amount for the sales tax calculation: DUTY 1: 5.00, using the
Amount per unit method, and the Calculate before sales tax option is selected DUTY 2: 2.50, using the Amount per
unit method, and the Calculate before sales tax option is not selected Sales tax: 25%, using the Percentage of net
amount method Net amount: 10.00 DUTY 1: 1 x 5.00 = 5.00 DUTY 2: 1 x 2.50 = 2.50 Net amount subject to sales
tax: 10.00 + 5.00 = 15.00 SALESTAX: 15.00 x 25% = 3.75 Total sales taxes, including duties: 5.00 + 2.50 + 3.75 =
11.25 Total amount: 10.00 + 11.25 = 21.25 The 25% SALESTAX is calculated for the sum of the net amount (10.00)
+ DUTY 1 (5.00) = 15.00. DUTY 2 is added to the tax amount after the sales tax is calculated.

Calculated percentage of net amount


The Calculated percentage of net amount handles tax calculation differently depending on the setting of the
Amounts include sales tax parameter for the document or journal.
Example 1
Document / journal is set to Amounts include sales tax = Yes Transaction line amount: 10.00 Tax rate: 25% Sales tax:
Transaction line amount x tax rate (10.00 x 25%) = 2.50 Tax base amount (origin amount): Transaction line amount -
Sales tax (10.00 - 2.50) = 7.50
Example 2
Document / journal is set to Amounts include sales tax = No Transaction line amount: 10.00 Tax rate: 25% Sales tax:
(Transaction line amount x tax rate) / (100 - tax rate) (10.00 x 25%) / (100% - 25%) = 3.33 Tax base amount (origin
amount): Transaction line amount = 10.00

Additional resources
Sales tax rates based on the Marginal base and Calculation methods
Whole amount and Interval calculation options for sales tax codes
Sales tax assignment and overrides
4/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This procedure demonstrates how to assign sales tax groups to commerce channels. It also walks through the
process of creating a new sales tax override and assigning it to an existing sales tax override group. This procedure
uses the USRT company in demo data.
1. Go to Retail and Commerce > Channels > Stores > All stores.
2. In the list, click the Channel ID link for "Houston."
3. Click Edit.
The "Sales tax group" field contains the list of sales tax groups for the current company. The currently
assigned group is a generic "Texas" sales tax group. There are also sales tax groups for "Washington" and
"Washington, King County." Sales tax groups can include applicable taxes for multiple municipalities.
The "Sales tax override" field is where sales tax override groups can be mapped to the channel. Sales tax
override groups can be used to group together sales tax overrides that work for multiple stores. Rather
than manually assigning sales tax overrides one by one, the group can be created and assigned directly to
the channels to save time.
4. Click Save.
5. Close the page.
6. Go to Retail and Commerce > Channel setup > Sales taxes > Sales tax overrides.
7. Click New.
8. In the Sales tax override field, provide a name for your new override.
9. In the Description field, provide a description of the override.
10. Set the status to "Enable."
11. Expand or collapse the Override section.
12. In the Type field, select an option.
Item sales tax groups can be used to override taxes for specific items that belong to the group. For
example, food items are typically taxed differently from hard goods, and would likely have their own sales
tax group. Sales tax groups are groups of taxes that are applicable to a particular channel. For example, if
a channel sells both retail and business-to-business, different items sales tax groups may be used. All the
applicable taxes would be mapped to the sales tax group.
Now you can select the "From" and "To" taxes or "From tax group" and "To tax group" to create your sales
tax override. The "From" field indicates the tax or tax group to be overridden. Overriding by Item sales tax
group provides different options than overriding by sales tax group. Sales tax overrides can be set up to
override taxes on entire transactions or on particular lines in the transaction.
13. Click Save.
14. Close the page.
15. Go to Retail and Commerce > Channel setup > Sales taxes > Sales tax override groups.
In this step you will assigned the newly created sales tax override to the sales tax override group assigned
to the Houston channel.
16. Click Edit.
17. Expand or collapse the Setup section.
18. Click Add.
19. In the Sales tax override field, click the drop-down button to open the lookup.
20. Select the previously created sales tax override from the list.
21. In the list, click the link in the selected row.
22. Click Save.
Whole amount and Interval calculation options for
sales tax codes
11/5/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article explains the options for the Calculation method field on sales tax codes and how sales tax is calculated
for intervals and whole amounts.
You can set up a sales tax code to be calculated based on a whole amount or an interval amount. In the Sales tax
codes page, use the Calculation method field on the Calculation FastTab to select how to calculate a sales tax code.
Whole amount – The tax rate is applied to the whole taxable amount.
Interval – The taxable amount is divided into parts, each of which falls in a range that has a specific sales tax rate.
The part of the amount that falls in a given interval is taxed according to the tax rate for that interval. The sales
tax is the sum of the tax amounts that are calculated for each amount interval.

NOTE
The Interval option is available only when you select Line in the Calculation method field in the Sales tax area of the
General ledger parameters page.

Intervals are set up in the Sales tax code values page by entering Minimum and Maximum limit amounts per tax
rate. For taxes to be calculated on all taxable amounts, regardless of which calculation method is selected, intervals
must follow these rules:
The first interval must have a Minimum limit of zero.
The last interval must have a Maximum limit of zero, which indicates infinity.
The Maximum limit of an interval must be the Minimum limit of the next interval.
If an amount is the Maximum limit of the previous interval and the Minimum limit of the next interval, the sales tax
rate of the first interval will be applied to the amount. If an amount falls outside the intervals that are defined by
upper and lower limits, a sales tax rate of zero will be applied.

Example: Whole amount method of calculation


In the Sales tax code values page, sales tax rates are set up in the following intervals:

Minimum limit Maximum limit Tax rate

0.00 50.00 30%

50.00 100.00 20%


100.00 0.00 10%

The sales tax is calculated on the whole taxable amount.

TA XA B L E A M O UN T ( P RIC E) C A L C UL AT IO N SA L ES TA X

35.00 35.00 * 0.30 10.50

50.00 50.00 * 0.30 15.00

85.00 85.00 * 0.20 17.00

305.00 305.00 * 0.10 30.50

Example: Interval method of calculation


In the Values page, sales tax rates are set up in the following intervals:

Minimum limit Maximum limit Tax rate

0.00 50.00 30%

50.00 100.00 20%

100.00 0.00 10%

The sales tax is the sum of the tax amounts that are calculated for each amount interval.

TA XA B L E A M O UN T ( P RIC E) C A L C UL AT IO N SA L ES TA X

35.00 35.00 * 0.30 10.50

50.00 50.00 * 0.30 15.00

85.00 (50.00 * 0.30 = 15.00) + (35.00 * 0.20 22.00


= 7.00)

305.00 (50.00 * 0.30 = 15.00) + (50.00 * 0.20 45.50


= 10.00) + (205 * 0.10 = 20.50)

For more information, see Sales tax rates based on the Marginal base and Calculation methods.
Set up an email notification profile
4/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create an email notification profile in Microsoft Dynamics 365 Commerce.

Overview
Before creating channels, you'll want to set up a profile to ensure that email notifications can be sent out for
various events, such as order creation, order shipping status, and payment failure.
For additional email configuration information, see Configure and send email.

Create an email notification profile


To create an email notification profile, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Headquar ters setup > Commerce
email notification profile .
2. On the action pane, click New .
3. In the Email notification profile field, enter a name to identify the profile.
4. In the Description field, enter a relevant description.
5. Set the Active switch to Yes .
Create an email template
Before an email notification can be created, you must create an organization email template which contains the
senders email information and the email template.
To create an email template, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Headquar ters setup > Parameters >
Organization email templates .
2. On the action pane, select New .
3. In the Email ID field, enter an ID to help identify this template.
4. In the Sends name field, enter the senders name.
5. In the Email Description , enter a meaningful description.
6. In the Sender email , enter the senders email address.
7. In the General section, fill out any optional information needed (such as the email priority).
8. Expand the Email message content section and select New to create the template content. For each content
item, select the language and provide the email subject line. If the email will have a body, ensure that the Has
body box is checked.
9. On the action pane, select Email message to provide an email body template.
The following image shows some example email template settings.
Create an email event
To create an email event, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Headquar ters setup > Commerce
email notification profile .
2. In the list, find and select the desired record.
3. Select the email template from the Email ID drop-down list.
4. Select the appropriate Email notification type from the drop-down list.
5. Select the Active check box.
6. On the action pane, select Save .
The following image shows some example event notification settings.
Next steps
Before you can send mails, you must configure your outgoing mail service and set up a batch job. For more
information, see Configure and send email.

Additional resources
Configure and send email
Channels overview
Channel setup prerequisites
Organizations and organizational hierarchies overview
Number sequences overview
10/1/2019 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Number sequences are used to generate readable, unique identifiers for master data records and transaction
records that require identifiers. A master data record or transaction record that requires an identifier is referred to
as a reference.
Before you can create new records for a reference, you must set up a number sequence and associate it with the
reference. We recommend that you use the pages in Organization administration to set up number sequences.
If module-specific settings are required, you can use the parameters page in a module to specify number sequences
for the references in that module. For example, in Accounts receivable and Accounts payable , you can set up
number sequence groups to allocate specific number sequences to specific customers or vendors.
When you set up a number sequence, you must specify a scope, which defines which organization uses the number
sequence. The scope can be Shared , Company , Legal entity , or Operating unit . Legal entity and Company
scopes can be combined with Fiscal calendar period to create even more specific number sequences.
Number sequence formats consist of segments. Number sequences with a scope other than Shared can contain
segments that correspond to the scope. For example, a number sequence with a scope of Legal entity can contain
a legal entity segment. By including a scope segment in the number sequence format, you can identify the scope of
a particular record by looking at its number.
In addition to segments that correspond to scopes, number sequence formats can contain Constant and
Alphanumeric segments . A Constant segment contains a set of letters, numbers, or symbols that does not
change. An Alphanumeric segment contains a set of letters or numbers that increment every time that a number
is used. Use a number sign (#) to represent incrementing numbers and an ampersand (&) to represent
incrementing letters. For example, the format #####_2017 creates the sequence 00001_2017, 00002_2017, and so
on.

Number sequence examples


The following examples show how to use segments to create number sequence formats. In particular, the examples
demonstrate the effects of using scope segments.
Expense report numbers
In the following example, expense report numbers are set up for the legal entity that is titled CS .
Area: Travel and expense
Reference: Expense report number
Scope: Legal entity
Legal entity: CS

SEGM EN T S SEGM EN T T Y P E VA L UE

Segment 1 Legal entity CS


SEGM EN T S SEGM EN T T Y P E VA L UE

Segment 2 Constant -EXPENSE-

Segment 3 Alphanumeric ####

Example of formatted number : CS-EXPENSE-0039


You can set up a similar number sequence format for other legal entities. For example, for a legal entity that is
named RW , if you change only the value of the legal entity segment, the formatted number is RW-EXPENSE-0039.
You can also change the whole number sequence format for other legal entities. For example, you can omit the legal
entity scope segment to create a formatted number such as Exp-0001.
Sales order numbers
In the following example, sales order numbers are set up for the company ID CEU .
Area: Sales
Reference: Sales order
Scope: Company
Company: CEU

SEGM EN T S SEGM EN T T Y P E VA L UE

Segment 1 Constant SO-

Segment 2 Alphanumeric ####

Example of formatted number : SO-0029


Even though a scope segment is not included in the format, numbering restarts for each company ID. If you use the
same format for all company IDs, the same numbers are used in each company. For example, sales order number
SO-0029 is used in each company. You can also change the whole number sequence format for other company IDs.
Purchase requisition numbers
In the following example, purchase requisition numbers are organization-wide.
Area: Purchase
Reference: Purchase requisition
Scope: Shared

SEGM EN T S SEGM EN T T Y P E VA L UE

Segment 1 Constant Req

Segment 2 Alphanumeric ####

Example of formatted number : Req0052


Because the scope is Shared , the number sequence format is used across the organization. You cannot set up
different number sequence formats for different parts of the organization.

Performance considerations for number sequences


Consider the following information about how the configuration of number sequences can affect system
performance before you set up number sequences.
Continuous and non-continuous number sequences
Number sequences can be continuous or non-continuous. A continuous number sequence does not skip any
numbers, but numbers may not be used sequentially. Numbers from a non-continuous number sequence are used
sequentially, but the number sequence may skip numbers. For example, if a user cancels a transaction, a number is
generated, but not used. In a continuous number sequence, that number is recycled later. In a non-continuous
number sequence, the number is not used.
Continuous number sequences are typically required for external documents, such as purchase orders, sales orders,
and invoices. However, continuous number sequences can adversely affect system response times because the
system must request a number from the database every time that a new document or record is created.
If you use a non-continuous number sequence, you can enable Preallocation on the Performance FastTab of the
Number sequences page. When you specify a quantity of numbers to preallocate, the system selects those
numbers and stores them in memory. New numbers are requested from the database only after the preallocated
quantity has been used.
Unless there is a regulatory requirement that you use continuous number sequences, we recommend that you use
non-continuous number sequences for better performance.
Automatic cleanup of number sequences
In case of a power failure, an application error, or other unexpected failure, the system cannot recycle numbers
automatically for continuous number sequences. You can run the cleanup process manually or automatically to
recover the lost numbers.
Carefully consider server usage when you plan the cleanup process. We recommend that you perform the cleanup
as a batch job during non-peak hours.
Set up number sequences on an individual basis
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to set up number sequences on an individual basis. Number sequences are used to
generate readable, unique identifiers for master data records and transaction records that require them. A master
data or transaction record that requires an identifier is referred to as a reference. Before you can create new records
for a reference, you must set up a number sequence and associate it with the reference. You can set up all required
number sequences at the same time by using the Set up number sequences wizard, or you can create or modify
individual number sequences by using the Number sequences page.
1. Go to Navigation pane > Modules > Organization administration > Number sequences > Number
sequences .
2. Select Number sequence .
3. In the Number sequence code field, type a value.
4. In the Name field, type a value.
5. On the Scope parameters FastTab, select a scope for the number sequence and select scope values from the
drop-down list. The scope defines which organizations use the number sequence. In addition, number sequences
that have a scope other than Shared can have segments that correspond to their scope. For example, a number
sequence with a scope of Legal entity can have a legal entity segment. For more information about scopes, see
Number sequence overview.
6. Expand the Segments section.
Define the format for the number sequence by adding, removing, and rearranging segments.
Number sequences of all scopes can contain Constant segments and Alphanumeric segments. Constant
segments contain a set of alphanumeric characters that do not change. Use this segment type to add a
hyphen or other separators between number sequence segments. Alphanumeric segments contain a
combination of number signs (#) and ampersands (&). These characters represent letters and numbers
that increment every time that a number from the sequence is used. Use a number sign (#) to indicate
incrementing numbers and an ampersand (&) to indicate incrementing letters. For example, the format
#####_2014 creates the sequence 00001_2014 , 00002_2014 , and so on. At least one alphanumeric
segment must be present. Scope segments, such as company or legal entity, are not required. However, if
you do not include scope segments in the format, numbers for the selected reference are still generated
per scope.
7. Expand the References section. Select the document type or record to assign this number sequence to. This step
is optional for sequences that are defined for special application usage patterns. In these scenarios, a new
number is generated by using the value of a number sequence code or ID, without using a reference. An example
of a special application usage pattern is a voucher series that is used for specific journal names. However, we do
not recommend that you use such patterns.
8. Expand the General section. On the General FastTab, specify whether the number sequence is manual, and
continuous or non-continuous. In addition, enter the lowest and highest numbers that can be used in the
number sequence. We do not recommend changing a non-continuous number sequence to a continuous
number sequence. The number sequence will not be truly continuous. This change may also cause duplicate key
violations in the database. In addition, continuous number sequences have a larger effect on performance.
9. Click Save .
Set up number sequences using a wizard
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Number sequences are used to generate readable, unique identifiers for master data records and transaction
records that require them. A master data or transaction record that requires an identifier is referred to as a
reference. Before you can create new records for a reference, you must set up a number sequence and associate it
with the reference. This topic explains how to set up all required number sequences at the same time by using a
wizard. The demo data company used to create this procedure is USMF.
1. Go to Navigation > Modules > Organization administration > Number sequences > Number
sequences .
2. Select Generate .
3. Select Next .
On this page, you can modify the identification code, the lowest value, and the highest value. In addition,
you can indicate whether the number sequence must be continuous.
Do not select the Continuous option if you must preallocate numbers for the number sequence. To add a
scope segment to the format of a number sequence, select the format in the list, and then select Include
scope in format . To remove a scope segment from the format of a number sequence, select the format
in the list, and then select Remove scope from format . To exclude a number sequence from automatic
generation, select the number sequence in the list, and then select Delete .
4. Select Next .
5. Select Finish .
Create a default customer
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a default customer to use when creating a channel in Microsoft Dynamics 365
Commerce.

Overview
When creating a channel, you will need to provide a default customer. A default customer can easily be created
after first creating the customer group and customer address book.

Create a customer group


If no customer groups exist yet, you can create one. Examples may be groups to represent different customer
groups, such as wholesale, retail, Internet, Employees, etc.
To create a customer group, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Customers > Customer groups .
2. On the action pane, select New .
3. In the Customer group box, enter a customer group ID.
4. In the Description box, enter an appropriate description.
5. In the Terms of payment box, enter an appropriate value.
6. In the Time between invoice due date and payment date box, enter an appropriate value.
7. In the Default tax group box, enter a tax group if applicable.
8. Select the Prices include sales tax check box if applicable.
9. In the Default write-off reason box, enter an appropriate value, if applicable.
The following image shows several configured customer groups.
Create a customer address book
A customer needs to be associated with an address book. If one has not yet been created, then you will need to
create one.
To create a customer address book, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Channel setup > Address Books .
2. On the action pane, select New .
3. In the Name box, enter a name.
4. In the Description box, enter a description.
5. On the action pane, select Save .
The following image shows an example address book.

Create a default customer


To create a default customer, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Customers > All customers .
2. On the action pane, select New .
3. In the Type drop-down list, select "Person".
4. In the Customer account drop-down list, select or enter an account number (for example, "100001").
5. In the First name drop-down list, select or enter a name (for example, "Default").
6. In the Middle name drop-down list, select or enter a name (for example, "Retail").
7. In the Last name drop-down list, select or enter a name (for example, "Customer").
8. In the Currency drop-down list, select or enter a currency (for example, "USD").
9. In the Currency drop-down list, select the customer group created previously.
10. In the Address books drop-down list, select an existing customer address book.
11. Select Save to save and return to customer details screen for the new customer.
NOTE
It is not necessary to add an address for a default customer.

The following image shows an example of customer creation.

The following image shows a default customer configuration.

Most of the default values on the customer detials screen can remain, but two values should be changed.
1. On the customer details screen, expand Sales order defaults .
2. In the Site drop-down list, select or enter a pre-configured site.
3. In the Warehouse drop-down list, and select or enter a pre-configured warehouse.
The following image shows an example customer configuration.

Additional resources
Channels overview
Channel setup prerequisites
Info codes and info code groups
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article provides an overview about info codes, info code groups, and how to use them.
Info codes provide a way for you to capture data at a point-of-sale (POS) register. You can use info codes to prompt
the cashier to enter information during various actions at the POS, such as item sales, item returns, or selecting
customers. Cashiers can select input from a list or enter it as a code, number, date, or text. You can assign info
codes to predefined store actions, retail items, payment methods, customers, or specific point-of-sale activities. You
can use info codes to do the following:
Capture additional information at transaction time, such as a flight number or the reason for a return.
Prompt the register cashier to select from a list of prices for specific products.
Link a subcode to an info code to prompt the cashier for input when performing a specific activity. For example,
when a customer returns a product, you can prompt the cashier to ask why the product is being returned. Then
you can use subcodes to display a list of reasons that the cashier can choose from.
Sell a product as a regular sale, discounted sale, or free product.
Prompt the cashier to enter a value or select from a list of subcodes when the register drawer is opened
without performing a sales operation.

Info codes group


In Commerce, you can create groups of info codes. Info code groups add flexibility by enabling you to define fewer
info codes and then use them in more versatile ways. You can use info code groups in the following ways:
Define fewer info codes and easily re-use them. Info codes that are included in info code groups have no
predefined dependencies on other info codes. You can include the same info code in multiple info code groups
and then use prioritization to present the same info codes in the order that makes sense in any particular
situation.
Link info codes to other info codes or info code groups to gather information about a product or transaction
without having to define a separate info code or linked info code for each scenario.

Info code examples


Example 1: Reuse info codes
You can link info codes so that when one info code is triggered, another info code is triggered immediately after it.
For example, when you sell certain products, you can prompt the cashier to ask the customer if they want to
purchase batteries and a product warranty. For other products, you can prompt the cashier to ask the customer if
they want to purchase batteries and collect their postal code. If you create linked info codes for these scenarios,
you must set up every variation of the info code so that the cashier is prompted to ask for the right information. If
you use info code groups, common info codes, such as asking for batteries, can be set up once and then reused in
multiple info code groups. You can also use prioritization in the info code groups to identify the order in which the
prompts are displayed.
Example 2: Link info codes to info code groups
When you sell certain products, for example mobile devices, you always want to collect a specific set of
information, such as telephone number, mobile equipment identifier (MEID), and serial number. However, you also
want to collect different information for a tablet versus a mobile phone. You can set up an info code group that
includes prompts for the telephone number, MEID, and the serial number, and then link the info code group to an
individual info code. When the product-specific info code is triggered, the info code group can be triggered next to
enable you to collect the common data without having to define multiple sets of linked info codes for each device.
Create a retail functionality profile
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a functionality profile in Microsoft Dynamics 365 Commerce.

Overview
The commerce functionality profile provides various settings used for online channels. Each channel must specify a
functionality profile.

Create a functionality profile


To create a functionality profile, follow these steps.
1. In the navigation pane, go to Modules > Channel setup > POS profiles > Functionality profiles .
2. On the action pane, select New .
3. In the Profile field, enter an ID for the profile ("FN006" in the example image below).
4. In the Description field, enter a value ("Adventure Works Profile" in the example image below).
5. In the General section, select a country for the ISO locale.
6. In the General section, modify other settings, as needed.
7. In the General section, select a Receipt profile ID for email receipts.
8. In the Functions section, modify settings, as needed.
9. In the Amount section, modify settings as, needed.
10. In the Info Codes section, modify settings, as needed.
11. In the Receipt numbering section, modify settings, as needed.
The following image shows an example functionality profile.
Additional resources
Info codes and info code groups
Create new address book
Screen layout overview
Configure and install Retail hardware station
Create new address book
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a new address book in Microsoft Dynamics 365 Commerce.

Overview
Address books are used in Commerce for various reasons including storing customer lists and employee lists for a
channel. Address books can be used for a single channel or shared between channels.

Create a new address book


To create a new address book, follow these steps.
1. In the navigation pane, go to Modules > Channel setup > Address books .
2. On the action bar, select New .
3. Enter name and description information.
4. On the action bar, select Save .
The following image shows the creation of an employee address book for a retail store.

Additional resources
Info codes and info code groups
Create a retail functionality profile
Screen layout overview
Configure and install Retail hardware station
POS user interface visual configurations
4/15/2020 • 12 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

IMPORTANT
Functionality noted in this topic is available as part of a preview release. The content and the functionality are subject to
change. For more information about preview releases, see One version service updates FAQ.

The user interface (UI) of the Microsoft Dynamics 365 Commerce point of sale (POS) can be configured by using a
combination of visual profiles and screen layouts that are assigned to stores, registers, and users. This topic
provides information about those configuration options.
The following illustration shows the relationships among the various entities that make up the configurable aspects
of the POS UI.

Visual profile
Visual profiles are assigned to registers, and they specify the visual elements that are register-specific and shared
across users. Every user who signs in to the register sees the same theme, layout, colors, and images.
Profile number – The profile number is the unique identifier of the visual profile.
Description – You can specify a meaningful name that will help identify the correct profile for your situation.
Theme – You can select between the Light and Dark application themes. The theme affects the font and
background colors throughout the application.
Accent color – The accent color is used throughout the POS to differentiate or highlight specific visual
elements, such as tiles, command buttons, and hyperlinks. Typically, these elements are actionable.
Header color – You can configure the color of the page header to meet the retailer's branding requirements.
Font scheme – You can select between the Standard and Large font schemes. The font scheme affects the font
size throughout the application. The default selection is Standard .
Always show application bar labels – When this option is turned on, the label text is always visible under the
application bar buttons.
Layout – You can select between the Centered and Right layouts. The layout affects the alignment of the sign-
in box on the sign-in screen. The default selection is Centered .
Show date/time – When this option is turned on, the current date and time are shown in the POS header and
on the sign-in screen.
Keyboard – You can select between Default to OS keyboard and Show number pad to specify the default
keyboard that is used for input on the sign-in screen. The number pad is a virtual keyboard that is used primarily
for touch-based devices. The default selection is Default to OS keyboard .
Logo image – You can specify a logo image that is shown on the sign-in screen. We recommend that you use
an image that has a transparent background. The file size should be kept as small as possible, because
application behavior and performance can be affected when large files are stored and loaded.
Login background – You can specify a background image for the sign-in screen. The file size of background
images should be kept as small as possible.
Background – You can specify a background image that is used instead of the solid theme color throughout the
application. As for background images for the sign-in screen, the file size should be kept as small as possible.

NOTE
The Right layout and date/time display don't apply to the sign-in screen in compact view.

Screen layouts
Screen layout configurations determine the actions, content, and placement of UI controls on the POS Welcome
screen and Transaction screen.

Welcome screen – In most cases, the welcome screen is the page that users see when they first sign in to
the POS. The welcome screen can consist of a branding image and button grids that provide access to POS
operations. Typically, operations that aren't specific to the current transaction are put on this screen.

Transaction screen – The Transaction screen is the main screen in the POS for processing sales
transactions and orders. The content and layout are configured by using the screen layout designer.

Default star t screen – Some retailers prefer that cashiers go directly to the Transaction screen after sign-
in. The Default star t screen setting lets you specify the default screen that appears after sign-in for each
screen layout.
Assignment
Screen layouts can be assigned at the store, register, or user level. The user assignment overrides the register and
store assignments, and the register assignment overrides the store assignment. In a simple scenario where all users
use the same layout, regardless of register or role, the screen layout can be set only at the store level. In scenarios
where specific registers or users require specialized layouts, those layouts can be assigned.
Layout sizes
Most aspects of the POS UI are responsive, and the layout is automatically resized and adjusted based on the screen
size and orientation. However, the POS Transaction screen must be configured for every screen resolution that is
expected.
At startup, the POS application automatically selects the closest layout size that is configured for the device. A
screen layout can also contain configurations for both landscape and portrait modes, and for both full-size and
compact devices. Therefore, users can be assigned to a single screen layout that works across various sizes and
form factors that are used in the store.

Name – You can enter a meaningful name to identify the screen size.
Layout type – The POS application can show its UI in various modes to provide the best user experience on
a given device.
Modern POS – Full – Full layouts are typically best for larger displays, such as desktop monitors and
tablets. You can select the UI elements to include, specify the size and placement of those elements, and
configure their detailed properties. Full layouts support both portrait and landscape configurations.
Modern POS – Compact – Compact layouts are typically best for phones and small tablets. The design
possibilities for compact devices are limited. You can configure the columns and fields for the receipt and
totals panels.
Width/Height – These values represent the effective screen size, in pixels, that is expected for the layout.
Remember that some operating systems use scaling for high-resolution displays.

TIP
You can learn the layout size that is required for a POS screen by viewing the resolution in the app. Start the POS, and go to
Settings > Session information . POS shows the screen layout that is currently loaded, the layout size, and the resolution
of the app window.
Button grids
For each layout size in a screen layout, you can configure and assign button grids for the POS welcome screen and
Transaction screen. Button grids for the welcome screen are automatically laid out from left to right, from the
lowest number (Welcome screen 1) to the highest number.
In Full POS layouts, the placement of button grids is specified in the screen layout designer.
In Compact POS layouts, the button grids are automatically laid out from top to bottom, from the lowest number
(Transaction screen 1) to the highest number. They can be accessed on the Actions menu.

Images
For each layout size in a screen layout, you can specify images to include in the POS UI. For Full POS layouts, a
single image can be specified for the welcome screen. This image appears as the first UI element on the left. On the
Transaction screen, images can be used as tab images or as a logo. Compact POS layouts don't use these images.
Screen layout designer
The screen layout designer lets you configure various aspects of the POS Transaction screen for each layout size,
in both portrait and landscape modes, and for both Full and Compact layouts. The screen layout designer uses the
ClickOnce deployment technology to download, install, and start the latest version of the application every time
that users access it. Be sure to check the browser requirements for ClickOnce. Some browsers, such as Google
Chrome, require extensions.

IMPORTANT
You must configure a screen layout for each layout size that is defined and that is used by the POS.

Full layout designer


The Full layout designer lets users drag UI controls onto the POS Transaction screen and configure the settings of
those controls.

Impor t layout/Expor t layout – You can export and import POS screen layout designs as XML files, so that
you can easily reuse and share them across environments. It's important that you import layout designs for
the correct layout sizes. Otherwise, UI elements might not fit correctly on the screen.
Landscape/Por trait – If the POS device lets users switch between landscape and portrait modes, you must
define a screen layout for each mode. The POS automatically detects screen rotation and shows the correct
layout.
Layout grid – The POS layout designer uses a 4-pixel grid. UI controls "snap" to the grid to help you
correctly align the content.
Designer zoom – You can zoom the designer view in and out to better view the content on the POS screen.
This feature is useful when the screen resolution on the POS differs greatly from the resolution of the screen
that is used in the designer.
Show/hide navigation bar – For Full POS layouts, you can select whether the left navigation bar is visible
on the Transaction screen. This feature is helpful for displays that have a lower resolution. To set the
visibility, right-click the navigation bar in the designer, and select or clear the Always visible check box. If
the navigation bar is hidden, POS users can still access it by using the menu in the upper left.
POS controls – The POS layout designer supports the following controls. You can configure many controls
by right-clicking and using the shortcut menu.

Number pad – The number pad is the main mechanism for user input on the POS Transaction screen.
You can configure the control so that the full number pad is shown. This option is ideal for touchscreen
devices. Alternatively, you can configure it so that only the input field is shown. In this case, a physical
keyboard is used for input. The number pad settings are available only for Full layouts. For Compact
layouts, the full number pad is always shown on the Transaction screen.
Totals panel – You can configure the totals panel in either one column or two columns, to show values
such as the line count, discount amount, charges, subtotal, and tax. Compact layouts support only a single
column.
Receipt panel – The receipt panel contains the sales lines, payment lines, and delivery information for
the products and services that are processed in the POS. You can specify columns, widths, and placement.
In Compact layouts, you can also configure additional information that appears in the row under the main
line.
Customer card – The customer card shows information about the customer who is associated with the
current transaction. You can configure the customer card to hide or show additional information.
Tab control – You can add the tab control to a screen layout, and then put other controls, such as the
number pad, customer card, or button grids, in it. The tab control is a container that helps you fit more
content on the screen. The tab control is available only for Full layouts.
Image – You can use the image control to show the store's logo or another branding image on the
Transaction screen. The image control is available only for Full layouts.
Recommended products – If the recommended products control is configured for the environment, it
shows product suggestions, based on machine learning.
Custom control – The custom control acts as a placeholder in the screen layout and lets you reserve
space for custom content. The custom control is available only for Full layouts.
Compact layout designer
Like the Full layout designer, the Compact layout designer lets you configure the POS screen layout for phones and
small tablets. However, in this case, the layout itself is fixed. You can configure the controls in the layout by right-
clicking and using the shortcut menu. However, you can't use drag-and-drop operations for additional content.

Button grid designer


The button grid designer lets you configure button grids that can be used on the POS welcome screen and
Transaction screen for both Full and Compact layouts. The same button grid can be used across layouts and layout
types. Like the screen layout designer, the button grid designer uses the ClickOnce deployment technology to
download, install, and start the latest version of the application every time that users access it. Be sure to check the
browser requirements for ClickOnce. Some browsers, such as Google Chrome, require extensions.
New button – Click to add a new button to the button grid. By default, new buttons appear in the upper-left
corner of the grid. However, you can arrange buttons by dragging them in the layout.

IMPORTANT
The contents of the button grid can overlap. When you arrange buttons, make sure that they don't hide other
buttons.

New design – Click to automatically set up a button grid layout by specifying the number of buttons per
row and column.
Button proper ties – You can configure button properties by right-clicking the button and using the
shortcut menu.

IMPORTANT
Some button grid settings apply only to Enterprise POS, not to Modern POS or Cloud POS.
Action – In the list of applicable POS operations, select the operation that is invoked when the button
is clicked in the POS.
For the list of supported POS operations, see Online and offline point of sale (POS) operations.
Action parameters – Some POS operations use additional parameters when they are invoked. For
example, for the Add product operation, users can specify the product to add.
Button text – Specify the text that appears on the button in the POS.
Hide button text – Use this check box to hide or show the button text. Button text is often hidden for
small buttons that show only an icon.
Tooltip – Specify additional Help text that appears when users mouse over the button.
Size in columns/Size in rows – You can specify how tall and wide the button is.

Custom font – When you select the Enable custom font for POS check box, you can specify a font
other than the default system font for the POS.
Custom theme – By default, POS buttons use the accent color from the visual profile. When you
select the Use custom theme check box, you can specify additional colors.

NOTE
Modern POS and Cloud POS use only the Back color and Font color values.

Button image – Buttons can include images or icons. Select among the available images that are
specified at Retail and Commerce > Channel setup > POS setup > POS > Images .

Additional resources
Install the Retail point of sale (POS) layout designer
Create an online functionality profile
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic presents an overview of setting up an online functionality profile for Microsoft Dynamics 365
Commerce.

Overview
The online functionality profile provides various settings used for online channels. Each online channel must
specify an online functionality profile.

Create an online functionality profile


The following procedure explains how to create an online functionality profile from within Commerce
Headquarters app.
1. In the navigation pane, go to Modules > Channel setup > Online store setup > Functionality profiles .
2. On the action pane, select New .
3. In the Profile field, enter an ID for the profile.
4. In the Description field, enter a value ("Adventure Works Profile" in the example image below).
5. In the Functions section, modify the CART , RETAIL CUSTOMERS , or CHECKOUT settings, as needed.
6. On the action pane, select Save .
The following image shows an example online functionality profile.

Functions
Aggregate products : When enabled, this function allows the cart to update quantity when the same item is
added multiple times.
Allow checkout with no payments : When enabled, this function handles the scenario when items added to
cart have a price $0.00.
Create customer in async mode : This is a legacy setting applicable to third-party e-Commerce channels and
is not applicable to the Dynamics 365 e-Commerce site.

Additional resources
Channels overview
Channel setup prerequisites
Set up an online channel
Set up a retail channel
Set up a call center channel
Set up a retail channel
3/10/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a new retail channel in Microsoft Dynamics 365 Commerce.

Overview
Dynamics 365 Commerce supports multiple retail channels. These retail channels include online stores, call
centers, and retail stores (also known as brick-and-mortar stores). Each retail store channel can have its own
payment methods, price groups, point of sale (POS) registers, income accounts and expense accounts, and staff.
You must set up all of these elements before you can create a retail store channel.
Before a retail channel is created, ensure you follow the channel prerequisites.

Create and configure a new retail channel


1. In the navigation pane, go to Modules > Channels > Stores > All stores .
2. On the action pane, select New .
3. In the Name field, provide a name for the new channel.
4. In the Store number field, provide a unique store number. The number can be alphanumeric with a maximum
of 10 characters.
5. In the Legal entity drop-down list, enter the appropriate legal entity.
6. In the Warehouse drop-down list, enter the appropriate warehouse.
7. In the Store time zone field, select the appropriate time zone.
8. In the Sales tax group drop-down list, select an appropriate sales tax group for the store.
9. In the Currency field, select the appropriate currency.
10. In the Customer address book field, provide a valid address book.
11. In the Default customer field, provide a valid default customer.
12. In the Functionality profile field, select a functionality profile if applicable.
13. In the Email notification profile field, provide a valid email notification profile.
14. On the action pane, select Save .
The following image shows the creation of a new retail channel.
The following image shows an example retail channel.

Other settings
There are numerous other optional settings that can be set in the Statement/closing and Miscellaneous
sections, based on the needs of the retail store.
In addition, see Screen layouts for the point of sale (POS) for information on setting up the default screen layout
in the Screen layout section and Configure and install Retail hardware station for setup information about the
Hardware stations section.
The following image shows an example retail channel setup configuration.
Additional channel set up
There are additional items that need to be set up for a channel that can be found on the Action pane under the
Set up section.
Additional tasks required for online channel setup include setting up payment methods, cash declaration, modes
of delivery, income/expense account, sections, the fulfillment group assignment, and safes.
The following image shows various additional retail channel setup options on the Set up tab.

Set up payment methods


To set up payment methods, for each payment type supported on this channel follow these steps.
1. On the action pane, select the Set Up tab, then select Payment methods .
2. On the action pane, select New .
3. In the navigation pane, select a desired payment method.
4. In the General section, provide an Operation name and configure any other desired settings.
5. Configure any additional settings as required for the payment type.
6. On the action pane, select Save .
The following image shows an example of a cash payment method.

Set up cash declaration


1. On the action pane, select the Set Up tab, and then select Cash declaration .
2. On the action pane, select New , and then create all Coin and Note denominations that are applicable.
The following image shows an example of a cash declaration.

Set up modes of delivery


You can see the configured modes of delivery by selecting Modes of deliver y from the Set up tab on the
Action pane .
To change or add a mode of delivery, follow these steps.
1. In the navigation pane, go to Modules > Inventor y management > Modes of deliver y .
2. On the action pane, select New to create a new mode of delivery, or select an existing mode.
3. In the Retail channels section, select Add line to add the channel. Adding channels using organization nodes
instead of adding each channel individually can streamline adding channels.
The following image shows an example of a mode of delivery.
Set up income/expense account
To set up income/expense account, follow these steps.
1. On the action pane, select the Set Up tab, and then select Income/Expense account .
2. On the action pane, select New .
3. Under Name , enter a name.
4. Under Search name , enter a search name.
5. Under Account type , enter the account type.
6. Enter text for Message line 1 , Message line 2 , Slip text 1 , and Slip text 2 as needed.
7. Under Posting , enter posting information.
8. On the action pane, select Save .
The following image shows an example of an income/expense account.

Set up sections
To set up sections, follow these steps.
1. On the action pane, select the Set Up tab and click Sections .
2. On the action pane, select New .
3. Under Section number , enter a section number.
4. Under Description , enter a description.
5. Under Section size , enter a section size.
6. Configure additional settings for General and Sales statistics as needed.
7. On the action pane, select Save .
Set up a fulfillment group assignment
To set up a fulfillment group assignment, follow these steps.
1. On the action pane, select the Set up tab, then select Fulfillment group assignment .
2. On the action pane, select New .
3. In the Fulfillment group drop-down list, select a fulfillment group.
4. In the Description drop-down list, enter a description.
5. On the action pane, select Save
The following image shows an example of a fulfillment group assignment setup.

Set up safes
To set up safes, follow these steps.
1. On the action pane, select the Set Up tab and click Safes .
2. On the action pane, select New .
3. Enter a name for the safe.
4. On the action pane, select Save .

Additional resources
Channels overview
Channel setup prerequisites
Set up an online channel
Set up a call center channel
Configure a worker
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure demonstrates how to configure a worker as a sales representative who is eligible for commission
on sales in POS. This procedure uses the USRT demo data company.

Create a commission sales group for the worker


1. Go to Sales and marketing > Commissions > Sales groups.
Workers can be assigned to one or more sales groups. In POS, you can choose any sales group that
contains workers from the store's address book.
2. Click New.
3. In the Group field, type a value.
4. In the Name field, type a value.
5. Click Save.
6. On the Action Pane, click General.
7. Click Sales rep.
A sales group can contain more than one worker. Commissions can be split between workers based on
how you define the commission share.
8. In the Name field, enter or select a value.
9. In the Commission share field, enter a number.
10. Click Save.
11. Close the page.
12. Close the page.

Assign the workers default sales group


1. Go to Retail and Commerce > Employees > Workers.
2. In the list, find and select the desired record.
3. In the list, click the link in the selected row.
4. Click the Commerce tab.
A worker can be assigned to a default sales group. The default sales group will be automatically added to
sales lines in POS if the option is enabled in the functionality profile for the store.
5. Click Edit.
6. In the Default group field, enter or select a value.
7. Click Save.
Choose between Modern POS (MPOS) and Cloud
POS
2/13/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic gives implementers additional background, tips, and guidance for factors that they should consider when
they deploy Dynamics 365 Commerce. By reviewing and following this guidance as part of the deployment process,
implementers can avoid issues that might affect user satisfaction or performance.

Insights
Commerce provides a wide range of deployment and topology options. Therefore, retailers can choose the
components and configuration that best meet their business and technology requirements. One aspect of
implementation that requires careful consideration is the choice of a platform and form factor for the point of sale
(POS) component.
POS platform and form factor considerations
Commerce supports the following POS options:
Modern POS (MPOS) for Microsoft Windows
MPOS for Microsoft Windows Phone
MPOS for Apple iPad or Google Android tablet
Cloud POS (CPOS), which supports the Microsoft Edge, Internet Explorer, and Google Chrome browsers
In all cases, the POS (MPOS and CPOS) shares the same core application code. This point is important for the
following reasons:
The user interface (UI) is consistent, regardless of the platform or form factor.
Most of the functional capabilities are the same, regardless of the platform or form factor. However, there are
some important differences. These differences are noted in this topic.
In a given store, the POS variations can be combined and can run concurrently. For example, for its main
registers, a retailer can use MPOS on computers that run Windows. However, the retailer can supplement those
registers with browser-based terminals or mobile devices.
Customizations and extensions can easily be used across platforms and form factors. Because the core
application code is shared, most customizations can be implemented one time instead of multiple times.
MPOS vs. CPOS
Although MPOS and CPOS are largely the same, there are some important differences that you must understand.
MPOS
MPOS on a Windows, iOS, or Android device is an application that is packaged, installed, and serviced on that
device.
Windows – The MPOS for Windows application contains all the application code and the embedded commerce
runtime (CRT).
iOS/Android – On these platforms, the application acts as a host for the CPOS application code. In other words,
the application code comes from the CPOS server on Microsoft Azure or the Commerce Scale Unit. For more
information, see Commerce Scale Unit overview.
CPOS
Because CPOS runs in a browser, the application isn't installed on the device. Instead, the browser accesses the
application code from the CPOS server. Therefore, CPOS can't directly access POS hardware or work in an offline
state.
Store deployment considerations
In addition to a platform and form factor, retailers must also choose a deployment option at the store. The following
table shows the configurations that are available for each POS option.

P O S A P P L IC AT IO N C O M M ERC E SC A L E UN IT AVA IL A B L E O F F L IN E

MPOS for Windows Cloud or RSSU Yes

MPOS for iOS or Android Cloud or RSSU No

Cloud POS Cloud or RSSU No

Commerce Scale Unit


The Commerce Scale Unit is a component that hosts the CRT. The CRT contains all the business logic that the POS
uses, and it provides access to the channel database. While they are online, all POS clients in the store use the
Commerce Scale Unit. The Commerce Scale Unit can be deployed either in the cloud or in the store.
Offline mode
MPOS for Windows supports offline mode. In offline mode, the POS can continue to process sales even if it's
disconnected from the Commerce Scale Unit. It can then be synchronized with the channel database when
connectivity is restored. MPOS uses its own embedded instance of the CRT and temporarily uses its own local data
source (offline SQL Server database). For more information about offline functionality, see POS offline functionality.
POS peripheral/hardware considerations
Retailers must also consider how the POS will access devices and peripherals such as printers, cash drawers, and
payment terminals. Only MPOS for Windows supports direct communication with these devices. MPOS for
Windows Phone, iOS, or Android, and Cloud POS require a hardware station in order to access these devices.
Hardware stations can be dedicated to a POS register or shared among the registers in a store. For more
information about hardware stations, see Configure and install Retail hardware station.

Implementation considerations
Consider the following information as you plan your POS implementation in your stores:
Functional requirements – The core business processes and capabilities are the same, regardless of the
platform, form factor, or deployment topology. Therefore, most retailers don't have to consider functional
requirements when they plan their implementation.
Connectivity – Network availability (wide area network [WAN] and local area network [LAN]) is a major
factor that requires careful consideration. Any benefits that a zero-footprint, cloud-hosted solution brings in
terms of cost and simplicity are lost if the system isn't available for business-critical processes.
Unless the connectivity for a given device is very dependable and resilient, or unless a certain amount of
downtime is acceptable to the retailer, we recommend one of the following options:
Use MPOS in Windows, and enable offline mode.
Deploy an on-premises Commerce Scale Unit.
These two options aren't mutually exclusive. For the most reliable topology, retailers can deploy a local RSSU
to reduce the dependency on internet connectivity or Azure availability, and they can also deploy POS
registers where offline mode is enabled if there is an issue with the local server or network.
Hardware devices/peripherals – One important aspect of a Retail POS system is its ability to use POS
peripherals such as printers, cash drawers, and payment terminals. Although all the available POS options
can use peripheral devices, only MPOS for Windows supports them directly. For all other applications, one or
more hardware stations are required. Although this approach adds flexibility, additional components must be
deployed, configured, and serviced.
System requirements – The system requirements for the POS application vary. Be sure to check the latest
information before you make your choice. For example, because CPOS runs in a browser, it supports a wider
range of operating systems. For more information about system requirements, see System requirements for
cloud deployments.
Deployment and ser vicing – The complexity of the deployment and servicing requirements can vary,
depending on the application and deployment choices. For example, for a cloud-hosted CPOS deployment,
you don't have to install and update on every device. Therefore, this approach greatly reduces complexity
and cost. However, if you deploy MPOS on every register and enable offline mode, and you also deploy
shared hardware stations, you greatly increase the number of endpoints that must be managed.
Online and offline point of sale (POS) operations
2/21/2020 • 17 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Most actions that user take in the point of sale (POS) are considered operations. Operations are configured and
managed in the Dynamics 365 Commerce back office. Many operations can be added to buttons in the POS button
grid. Users can then select the buttons to invoke the operations and perform their function. Other operations are
part of the main POS application, and are invoked either from on-screen buttons or as part of other workflows or
processes.
The following table provides details about the operations that are available in Modern POS and Cloud POS. The
table also specifies where in the application the operations can invoked, and whether they are available when the
POS is in offline mode.
Some operations aren't currently available in Modern POS or Cloud POS. Some of these operations are either
locale-specific operations that require additional extensions and configuration. Others are features from Microsoft
Dynamics AX 2012 that aren't currently supported.
The following columns specify where the operations can be invoked:
Button grid – The operation can be assigned to buttons in POS button grids, which are part of a POS screen
layout.
Transaction screen – The operation can be invoked from POS button grids that are configured on the POS
transaction screen.
Welcome screen – The operation can be invoked from POS button grids that are configured on the POS
welcome screen.

NOTE
The operations listed below apply to the latest version of Commerce. Some operations may have changed or may not be
available in previous versions.

DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-


ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

707 Activate Activate the No No No No No


device current
device by
allowing an
authenticat
ed user to
provide
connection
information
and assign
a device
and register
ID.

134 Add Add a Yes Yes No Yes No


affiliation preselected
affiliation to
a
transaction.
Select the
affiliation
on the
Button
proper ties
page.

135 Add Add an Yes Yes Yes Yes No


affiliation affiliation to
from list a
transaction
by selecting
it in a list.

137 Add Add an No No No Yes No


affiliation to affiliation to
customer a customer
on the
Customer
details
page.

138 Remove Remove an No No No Yes No


affiliation affiliation
from on the
customer Customer
details
page.

643 Add Add a Yes Yes No Yes No


coupon coupon by
code entering its
code in the
POS.

141 Add header Add a misc Yes Yes No No No


charges charge to
the order
header.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

141 Add line Add a misc Yes Yes No No No


charges charge to a
selected
sales line.

117 Add loyalty Prompt the Yes Yes No Yes No


card user to
enter a
loyalty card
number
that will be
added to
the current
transaction.

136 Add serial This Yes Yes No Yes No


number operation
lets the
user specify
a serial
number for
the
currently
selected
product.

1214 Add This Not Not Not Not No


shipping operation applicable applicable applicable applicable
address isn't
supported.

519 Add to gift Add money Yes Yes No No No


card to the
specified
gift card.

6000 Allow skip This Not Not Not Not Yes


fiscal operation applicable applicable applicable applicable
registration isn't
supported.

1212 Bank drop Record the Yes Yes Yes Yes No


amount of
money that
is sent to
the bank
and other
information,
such as the
number of
the bank
bag.

923 Bank totals This Not Not Not Not Yes


verification operation applicable applicable applicable applicable
isn't
supported.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

915 Blank This Yes Yes Yes Yes No


operation operation
represents
a
customizabl
e button
that a
software
developer
can
programma
tically
change for
any
specialized
operation
that the
business
requires.

1053 Blind close Set the Yes Yes Yes No No


shift current shift
to blind
closed, and
sign the
user out. A
blind-closed
shift is
closed to
additional
transactions
but is still
open to
drawer
operations,
such as
tender
removal
and tender
declaration.

310 Calculate When Yes Yes No Yes No


total discount
calculation
is delayed,
this
operation
initiates the
calculation
for the
current
transaction.

642 Carry Out Set the Yes Yes No Yes* No


All Products mode of
delivery for
all lines to
Carr yout .
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

641 Carry Out Set the Yes Yes No Yes* No


Selected mode of
Products delivery for
the selected
lines to
Carr yout .

647 Change Change Yes Yes No No No


mode of mode of
delivery delivery for
preconfigur
ed shipping
sales lines.

1215 Change This Yes Yes Yes No No


password operation
lets the
POS user
change his
or her
password.

123 Change Change the Yes Yes No Yes No


unit of unit of
measure measure for
the selected
line item.

639 Clear Remove the Yes Yes No Yes No


default commission
sales sales group
representati (sales rep)
ve on from the
transaction transaction.

106 Clear Reset the Yes Yes No Yes No


quantity quantity on
the
currently
selected line
to 1 .

640 Clear sales Remove the Yes Yes No Yes No


representati commission
ve on line sales group
(sale rep)
from the
currently
selected
line.

121 Clear This Not Not Not Not No


salesperson operation applicable applicable applicable applicable
isn't
supported.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

1055 Close shift Close the Yes Yes Yes No No


current
shift, print a
Z report,
and sign
the user
out of the
system.

139 Conclude Prompts Yes Yes No Yes No


transaction user to
select
payment
method

620 Create Convert the Yes Yes No Yes* No


customer POS
order transaction
to a
customer
order.

925 Copy the This Not Not Not Not Yes


bank check operation applicable applicable applicable applicable
isn't
supported.

620 Create Convert the Yes Yes No Yes* No


customer POS
order transaction
to a
customer
order.

621 Create Convert the Yes Yes No Yes* No


quotation POS
transaction
to a sales
quotation.

636 Create retail This Yes Yes No Yes No


transaction operation
lets the
user create
a standard
sales
transaction
when the
default POS
behavior is
to create
customer
orders.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

600 Customer Add the No No No Yes No


specified
customer to
the
transaction.

1100 Customer Make a Yes Yes Yes Yes Yes


account payment to
deposit a
customer's
account.

612 Customer This Yes Yes Yes Yes† No


add operation
lets the
user create
a new
customer
record.

603 Customer Remove the Yes Yes No Yes No


clear customer
from the
current
transaction.

602 Customer This Yes Yes Yes Yes No


search operation
lets the
user search
for a
customer
record by
navigating
to the
customer
search page
in the POS.

609 Customer This Not Not Not Not No


transactions operation applicable applicable applicable applicable
isn't
supported.

917 Database This Yes Yes Yes Yes No


connection operation
status lets the
user view
the current
connection
settings,
and switch
between
online and
offline
modes.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

1200 Declare Declare the Yes Yes Yes Yes No


start amount
amount that is in
the cash
drawer
when the
day or shift
starts.

132 Deposit Override Yes Yes No Yes* No


override the default
deposit for
customer
orders.

913 Design This Not Not Not Not No


mode operation applicable applicable applicable applicable
disable isn't
supported.

912 Design This Not Not Not Not No


mode operation applicable applicable applicable applicable
enable isn't
supported.

1217 Disassembl Disassembl Yes Yes Yes Yes No


e kits e a kit into
its
component
products.

624 Display This Not Not Not Not Yes


refund operation applicable applicable applicable applicable
amounts isn't
supported.

513 Display Show the Yes Yes Yes Yes No


total balance of
the
transaction
on the
customer
display.

623 Edit Edit the Yes Yes No No No


customer current
customer's
details.

614 Edit Recall the No No No No No


customer selected
order order so
that it can
be modified
in the POS.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

615 Edit Recall the No No No No No


quotation selected
quotation
so that it
can be
modified in
the POS.

518 Expense Record Yes Yes Yes Yes No


accounts money that
is removed
from the
cash drawer
for
occasional
expenses.

919 Extended Assign or Yes Yes Yes Yes No


log on remove
permission
to sign in
by scanning
a bar code
or swiping a
card.

1201 Float entry This Yes Yes Yes Yes No


operation
lets the
user add
additional
money to
the current
drawer or
shift.

1218 Force The system Not Not Not Not No


unlock uses this applicable applicable applicable applicable
peripheral operation
internally to
unlock POS
peripherals.

520 Gift card Show the Yes Yes No No No


balance balance of a
gift card.

708 Inactivate Inactivate No No No No No


device the current
device, so
that it can't
be used as
a POS
register.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

804 Inbound Access the Yes No Yes No No


operation features of
inbound
store
inventory
manageme
nt.

517 Income Record Yes Yes Yes Yes No


accounts money that
is put into
the cash
drawer for a
reason
other than
a sale.

801 Inventory Look up Yes Yes Yes No No


lookup available,
on order,
and
available-
to-promise
(ATP)
quantities
for the
current
store and
other
available
locations.

122 Invoice This Yes Yes No Yes No


comment operation
lets the
user enter a
comment
about the
current
transaction.

511 Issue credit Issue a Yes Yes No No No


memo credit
memo to
provide a
voucher
instead of a
refund.

512 Issue gift Issue a new Yes Yes No No No


card gift card for
the
specified
amount.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

625 Issue Issue a Yes Yes Yes No No


loyalty card loyalty card
to a
customer,
so that the
customer
can
participate
in the
store's
loyalty
program.

300 Line Enter a Yes Yes No Yes No


discount discount
amount amount for
a line item
in the
transaction.
This
operation is
used only
for
discountabl
e items and
only within
specified
discount
limits.

301 Line Enter a Yes Yes No Yes No


discount discount
percent percentage
for a line
item in the
transaction.
This
operation is
used only
for
discountabl
e items and
only within
specified
discount
limits.

703 Lock Lock the No No No Yes No


register current
register, so
that it can't
be used,
but don't
sign the
current user
out.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

701 Log off Sign the Yes Yes Yes Yes No


current user
out of the
register.

521 Loyalty card Show the Yes Yes No No No


points balance of
balance points for
the
specified
loyalty card.

142 Manage View and Yes Yes No No No


charges manage
misc
charges
applied to
transaction.

918 Manage Show a list Yes Yes Yes No No


shifts of active,
suspended,
and blind
closed
shifts.

914 Minimize This Not Not Not Not No


POS operation applicable applicable applicable applicable
window isn't
supported.

1000 Open Perform a Yes Yes Yes Yes No


drawer "no sale"
operation,
and open
the
currently
selected
cash drawer.

928 Order This Yes Yes Yes No No


fulfillment operation
allows users
to pick,
pack, ship,
or recall
orders for
store picked
up.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

805 Outbound Access Yes No Yes No No


operation features for
managing
shipments
of
outbound
transfer
orders.

129 Override Override Yes Yes No Yes No


line product the tax on
tax the selected
line item,
and use a
different
specified
tax.

130 Override Override Yes Yes No Yes No


line product the tax on
tax from list the selected
line item,
and use the
tax that the
user selects
in a list.

127 Override Override Yes Yes No Yes No


transaction the tax on
tax the
transaction,
and use a
different
specified
tax.

128 Override Override Yes Yes No Yes No


transaction the tax on
tax from list the
transaction,
and use the
tax that the
user selects
in a list.

131 Packing slip Create a No No No No No


packing slip
for the
selected
order.

710 Pair This Not Not Not Not No


hardware operation applicable applicable applicable applicable
station isn't
supported.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

201 Pay card Accept a Yes Yes No Yes No


card such
as a credit
card or a
debit card
as payment.

200 Pay cash Accept cash Yes Yes No Yes No


as payment.

206 Pay cash Complete Yes Yes No Yes No


quick the
transaction
in one
touch, and
accept the
amount
that is due
in cash
(exact
change).

204 Pay check Accept a Yes Yes No Yes No


check as
payment.

213 Pay credit Accept a Yes Yes No No No


memo credit
memo
(voucher)
that the
store
issued.

203 Pay Accept Yes Yes No Yes No


currency payment in
various
currencies.

202 Pay Charge the Yes Yes No No No


customer transaction
account to the
customer's
account.
This
payment
method
isn't valid
for
customer
order
deposits.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

214 Pay gift Accept a Yes Yes No No No


card gift card
that the
store
issued.

207 Pay loyalty Accept a Yes Yes No No No


loyalty card
for
payment,
and redeem
points
toward
qualified
products.

634 Payments Show the Yes Yes No No No


history customer's
payment
history for
the current
customer
order.

803 Picking and Open the Yes Yes Yes No No


receiving Picking
and
receiving
page, where
you can
select
orders to
pick or
receive in
the store.

632 Pickup all Set the Yes Yes No Yes* No


products fulfillment
method to
Store
pickup for
all lines.

631 Pickup Set the Yes Yes No Yes* No


selected fulfillment
products method to
Store
pickup for
selected
lines.

400 Popup This Not Not Not Not No


menu operation applicable applicable applicable applicable
isn't
supported.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

101 Price check This Yes Yes Yes Yes No


operation
lets the
user look
up the price
for a
specified
product.

104 Price Override Yes Yes No Yes No


override the price of
a product, if
the product
has been
set up to
allow for
price
overrides.

1058 Print fiscal X This Not Not Not Not Yes


operation applicable applicable applicable applicable
isn't
supported.

1059 Print fiscal Z This Not Not Not Not Yes


operation applicable applicable applicable applicable
isn't
supported.

927 Print item This Not Not Not Not No


label operation applicable applicable applicable applicable
isn't
supported.

926 Print shelf This Not Not Not Not No


label operation applicable applicable applicable applicable
isn't
supported.

1056 Print X Print and X Yes Yes Yes No No


report for
the current
shift.

103 Product Add a Yes Yes No Yes No


comment comment
to the
selected line
item in the
transaction.

100 Product Add a Yes Yes Yes Yes No


sale specified
product to
the
transaction.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

108 Product This Yes Yes Yes Yes No


search operation
lets the
user search
for a
product by
navigating
to the
product
search page
in the POS.

633 Quote This Yes Yes No Yes* No


expiration operation
date lets the
user view or
modify the
expiration
date on a
sales
quotation.

627 Recalculate Recalculate Yes Yes No Yes* No


all customer
order lines
and taxes,
based on
the current
configuratio
n.

143 Recalculate Recalculate Yes Yes No No No


charges the auto-
charges
applied to
the order.

515 Recall order This Yes Yes Yes No No


operation
lets the
user search
for and
recall
customer
orders and
sales
quotations.

504 Recall This Yes Yes No Yes‡ No


transaction operation
lets the
user recall a
previously
suspended
transaction
from the
current
store.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

305 Redeem This Not Not Not Not Yes


loyalty operation applicable applicable applicable applicable
points isn't
supported.

635 Refund This No No No No No


shipping operation
charges lets the
user refund
shipping
charges on
a canceled
order.

644 Remove Prompt the Yes Yes No Yes No


coupon user to
code remove
coupons by
selecting
them in a
list of
coupons
that are
currently
associated
with the
transaction.

1057 Reprint Z Reprint the Yes Yes Yes No No


Z report for
the
previous
shift or a
selected
shift.

1216 Reset This Yes Yes Yes No No


password operation
lets a user
who has
the
password-
reset
permission
reset
another
employee's
password
by using a
temporary
password.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

1219 Open URL This Yes Yes Yes Yes No


in POS operation
lets a user
to open an
admin
configured
URL in POS.

109 Return Perform a Yes Yes No Yes No


product return of
individual
products.
The next
scanned
product is
shown as a
returned
product
that has a
negative
quantity
and price.

114 Return Recall a Yes Yes Yes Yes§ No


transaction previous
transaction
by its
receipt
number to
return
some or all
of the
products.

1211 Safe drop Perform a Yes Yes Yes Yes No


safe drop to
move
money
from the
register to a
safe.

516 Sales This Yes Yes No No No


invoice operation
lets the
customer
make
payments
toward the
selected
sales
invoice.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

502 Salesperson This Yes Yes No Yes* No


operation
lets the
user set the
Sales
taker value
on a sales
order for
customer
orders in
the POS.

2000 Schedule This Yes Yes Yes No No


manageme operation is
nt not yet
supported.

2001 Schedule This Yes Yes Yes No No


requests operation is
not yet
supported.

622 Search This Yes Yes Yes Yes No


operation
lets users
preconfigur
e POS
buttons to
perform
searches by
item,
customer,
or category.

1213 Search This Not Not Not Not No


shipping operation applicable applicable applicable applicable
address isn't
supported.

709 Select This Yes Yes Yes Yes No


hardware operation
station lets the
user select
a hardware
station in a
list of
available
hardware
stations.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

637 Set default This Yes Yes No Yes No


sales operation
representati lets the
ve on user select
transaction one of the
eligible
commission
sales
groups (sale
reps) as the
default
sales rep for
lines that
are added
later.

105 Set quantity Change the Yes Yes No Yes No


quantity of
a line item
in the
transaction.

638 Set sales This Yes Yes No Yes No


representati operation
ve on line lets the
user select
one of the
eligible
commission
sales
groups (sale
reps) for
the
currently
selected
line.

630 Ship all Set the Yes Yes No Yes* No


products fulfillment
mode to
Shipping
for all line
items.

629 Ship Set the Yes Yes No Yes* No


selected fulfillment
products mode to
Shipping
for the
selected
lines.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

115 Show Show the Yes Yes Yes Yes** No


journal store's
journal. You
can view
transactions
, reprint
receipts and
gift receipts,
and recall
for return.

802 Stock count This Yes Yes Yes No No


operation
lets the
user create
or modify
stock
counting
journals for
physical
inventory
or cycle
counts.

401 Sub menu This Yes Yes Yes Yes No


operation
takes the
user to
another
linked
button grid.

1054 Suspend Suspend Yes Yes Yes No No


shift the current
shift, so
that a new
or different
shift can be
activated
on the
current
register.

503 Suspend Suspend Yes Yes No Yes‡ No


transaction the current
sales
transaction,
so that it
can be
recalled
later in the
store.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

1004 Task Open Task No No No Yes No


recorder recorder to
record
procedural
steps in the
POS.

1052 Tender This Yes Yes Yes Yes No


declaration operation
lets the
user specify
the amount
of money in
the drawer
for each
counted
payment
method.

1210 Tender This Yes Yes Yes Yes No


removal operation
lets the
user
remove
money
from the
current
drawer or
shift.

920 Time clock This Yes Yes Yes No No


operation
lets users
punch in
and punch
out of work
shifts and
breaks.

302 Total Enter a Yes Yes No Yes No


discount discount
amount amount for
the
transaction.
This
operation
applies only
to
discountabl
e items and
only within
specified
discount
limits.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

303 Total Enter a Yes Yes No Yes No


discount discount
percent percentage
for the
transaction.
This
operation
applies only
to
discountabl
e items and
only within
specified
discount
limits.

501 Transaction Add a Yes Yes No Yes No


comment comment
to the
current
transaction.

922 View Open the Yes Yes No Yes No


product product
details details page
for the
currently
selected line
item.

1003 View Show the Yes Yes Yes No No


reports reports that
have been
configured
for the
current
user.

921 View time Show the Yes Yes Yes No No


clock time clock
entries entries for
all workers
at the store.

211 Void Void the Yes Yes No Yes No


payment currently
selected
payment
line from
the
transaction.

102 Void Void the Yes Yes No Yes No


product currently
selected line
item from
the
transaction.
DESC RIP T IO B UT TO N T RA N SA C T I W EL C O M E AVA IL A B L E LO C A L E-
ID O P ERAT IO N N GRID O N SC REEN SC REEN O F F L IN E SP EC IF IC

500 Void Void the Yes Yes No Yes No


transaction current
transaction.

916 Windows This Not Not Not Not No


workflow operation applicable applicable applicable applicable
foundation isn't
supported.

924 X report for This Not Not Not Not Yes


bank cards operation applicable applicable applicable applicable
isn't
supported.

* The operation is available in offline mode only when a customer order or sales quotation is being created, and
only if offline creation of customer orders and sales quotations is configured in the POS functionality profile. The
operation can't be performed when orders are created by using Real-time Service, or when orders are recalled or
edited.
† The operation can be performed in offline mode only when the POS is configured to allow for offline creation of
customers in the POS functionality profile.
‡ When the POS is offline, suspended transactions can be recalled only from the current register's offline database.
Users can't suspend and recall transactions across registers.
§ When the POS is offline, only transactions in the current offline database can be recalled for return.
** When the POS is offline, only transactions in the current offline channel database are shown in the journal.
Device activation of a customized Modern POS
2/21/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to configure Microsoft Dynamics 365 Commerce Headquarters so that device activation
works correctly when a customized Modern POS application is used. It describes the steps that are required in order
to obtain the customized reply address and enter that value in Headquarters.
Modern POS is a client-side component for Microsoft Dynamics 365 Commerce. To use the POS, you must perform
device activation. Device activation uses Microsoft Azure Active Directory (Azure AD) to authenticate users.
Enhanced functionality in this area has modified the device activation flow to take better advantage of the Web
Account Manager service. As part of this enhancement, there is now enhanced security for the authentication
approval process. This enhanced security requires additional configuration in Headquarters when the POS is
customized, because a specific, unique value is now required for the callback URI. (The callback URI is also known as
the reply URI.)
By default, Modern POS is already registered for this callback URI. However, when customized, the callback URI is
changed. Therefore, it must be correctly configured so that it works again. This topic describes the steps that you
must follow to complete this configuration. If this configuration isn't completed, you receive an error message when
you try to perform device activation in the customized POS application. This error message resembles the following
example:

AADSTS50011: The reply address 'ms-appx-web://Microsoft.AAD.BrokerPlugin/[...]' does not match the reply
addresses configured for the application

NOTE
We recommend that you try to use the customized Modern POS application one time before you configure Dynamics 365
headquarters. In this way, you can see what the error message looks like and more easily obtain the customized reply
address.
The error specifies the reply address that is used for the application ID that corresponds to the POS application.

Setup
The following steps are required so that device activation works correctly when the customized Modern POS
application is used. You will create two Azure AD applications: one for Modern POS and one for Commerce Scale
Unit. The Commerce Scale Unit Azure AD application is required because the POS uses resources through
Commerce Scale Unit. Therefore, both Azure AD applications are used when the POS is used. In this scenario,
Commerce Scale Unit serves as the endpoint for protected resources that the POS requests.
Create the Commerce Scale Unit Azure AD application
1. In a web browser, go to https://portal.azure.com/.
2. Sign in by using Azure AD credentials that have enough permission to create Azure AD applications.
3. Select Azure Active Director y > App registrations .
4. Create the Commerce Scale Unit Azure AD application by selecting New application registration and
entering the following values:
Name: Enter Customized Commerce Scale Unit . (You can enter any other unique value, but be sure to
make a note of it.)
Application type: Select Web app / API .
Sign-on URL: Enter any unique URL that doesn't point to a real, physical location. For example, enter
https://MyNotRealURL .

5. Press the Tab key so that Azure can validate the value in the Sign-on URL field. Then select Create , and wait
until the operation is successfully completed. (If an error occurs, address it, and then try again.)
A tile appears that shows the details of the new Azure AD application.
6. Select Settings at the top of the tile to open the Settings tile for the application. Then select Proper ties .
7. On the Proper ties tile, copy the value in the App ID URI field. You will paste this value into the
DLLHost.exe.config file for POS in the next section.

NOTE
Don't close the web browser window, because you will use it again later in this topic.

Update the Modern POS configuration


1. In File Explorer, go to C:\Program Files (x86)\Microsoft Dynamics 365\70\Retail Modern
POS\ClientBroker . (This path assumes that the Microsoft Windows operating system on the computer is based
on the x64 architecture.)
2. In File Explorer, select File > Open Windows PowerShell > Open Windows PowerShell as administrator .
3. In the Microsoft Windows PowerShell window that appears, enter notepad DLLHost.exe.config , and then
press the Enter key. (The Windows PowerShell window will already be pointed to the current file directory.)
4. In the Notepad window that appears, find the value that corresponds to the AADRetailSer verResourceId key.
(By default, this value is https://commerce.dynamics.com .) Then paste the App ID URI value that you copied in step
7 in the previous section.
5. Select File > Save .

NOTE
Don't close the Notepad window, because you will use it again in the next section.

Create the customized Modern POS Azure AD application


1. Return to the web browser window where https://portal.azure.com/ is open, and create the Retail Modern
POS Azure AD application by repeating steps 3 through 4 in the "Create the Commerce Scale Unit Azure AD
application" section. However, enter the following values this time:
Name: Enter Customized Retail Modern POS . (You can enter any other unique value, but be sure
to make a note of it.)
Application type: Select Native .
Redirect URI: If you tried to use the customized Modern POS application without configuring
Dynamics 365 headquarters, as we recommended at the beginning of this topic, you received an error
message. Enter the reply address (redirect URI) that corresponds to that error message. The value will
start with ms-appx-web://Microsoft.AAD.BrokerPlugin/[...] .
NOTE
You can also see the reply address (redirect URI) in Event Viewer in Windows, under Microsoft-
Dynamics-Commerce-ModernPos/Operational. The event ID is 40619. The error message will start
with the following text: "This UWP application was assigned the following callback URI to be used while
interacting with Azure AD: ms-appx-web://Microsoft.AAD.BrokerPlugIn/S-1-15-2-[...]"
After the Azure AD application is created, you can specify additional redirect URIs as you require. If multiple
packages that have different callback URIs have been generated for any reason, keep this single Azure AD
application, and maintain all redirect URIs in it.

2. Press the Tab key so that Azure can validate the value in the Redirect URI field. Then select Create , and wait
until the operation is successfully completed. (If an error occurs, address it, and then try again.)
A tile appears that shows the details of the new customized Retail Modern POS Azure AD application.
3. Find the Application ID field, and copy the value. (You will paste this value into the DLLHost.exe.config file
as the value that corresponds to the AADClientId key.)
4. Select Settings at the top of the tile to open the Settings tile for the application. Then select Required
permissions .
5. On the Required permissions tile, select + Add .
6. On the Add API access tile, select 1 Select an API .
7. On the Select an API tile, in the search field, enter the name of the Commerce Scale Unit Azure AD
application that you created in the "Create the Commerce Scale Unit Azure AD application" section. (In this
topic, the application is named Customized Commerce Ser ver .) Select the item that corresponds to that
application, and then select Select .
On the Add API access tile, 2 Select permission is automatically selected, and a new tile appears that is
named Enable Access .
8. On the Enable Access tile, hold the mouse pointer over the line for Access Customized Commerce
Scale Unit , and then select the check box that appears on the left side. (If you entered a different name for
the Commerce Scale Unit Azure AD application, that name is used on the line instead of Customized
Commerce Scale Unit .) The Select button at the bottom of the tile becomes available.
9. Select Select to return to the Add API access tile.
10. Select Done to return to the Required permissions tile.
11. Select Grant Permissions . When a message prompts you to verify that you want to grant the permissions,
select Yes .
12. Switch to the Notepad window that shows the contents of the DLLHost.exe.config file. (You left this window
after you completed the steps in the previous section.)
13. Find the value that corresponds to the AADClientId key. (By default, this value is a globally unique identifier
[GUID] that corresponds to the headquarters environment.) Paste the value that you copied in step 3.
14. Select File > Save .
Configure Dynamics 365 Headquarters
The previous steps were required so that the Modern POS application can be authenticated. You must now follow
these steps to add the new Azure AD applications to the list of safe programs in Headquarters, so that the requests
are authorized. (A list of safe programs is sometimes also referred to as a whitelist.)
1. In a web browser, go to the Headquarters URL, and sign in by using Azure AD credentials.
2. Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce shared parameters .
3. On the Identity Providers tab, in the Identity providers section, select the provider that begins with
HTTPS://sts.windows.net/ . The values in the Relying par ties section are updated, based on the provider
that you selected.
4. In the Relying par ties section, select + Add , and enter the following values:
ClientId: Enter the value that you copied in step 3 in the previous section and then pasted into the
DLLHost.exe.config file in step 13.
Type: Select Public .
UserType: Select Worker .
Name: Enter a description to help users understand what this entry references.
5. On the Action Pane, select Save . The relying party that you just created should remain selected.
6. In the Ser ver resource IDs section, select + Add , and enter the following values:
Ser ver Resource Id: Enter the URL that you copied in step 4 in the "Update the Modern POS
configuration" section. (You originally created this value in step 4 in the "Create the Commerce Scale Unit
Azure AD application" section.)
Name: Enter a description to help users understand what this entry references.
7. On the Action Pane, select Save .
8. Go to Retail and Commerce > Retail and CommerceIT > Distribution schedule .
9. Select job 1110 (Global configuration ), and then, on the Action Pane, select Run now . This job
synchronizes the new data. However, there is a cache in Commerce Scale Unit that won't be updated for
several minutes. Therefore, if you require an immediate update, the Commerce Scale Unit application pool
must be recycled.

NOTE
For best results, verify that Modern POS is closed, and that no instances of DLLHost.exe exist in Task Manager.

Perform Modern POS device activation


Try to activate the Modern POS device. If you still experience issues, open Event Viewer in Windows, and view the
logs that correspond to Modern POS. Look for warnings and errors that might help you determine which steps you
missed in the previous sections.
Enable Azure Active Directory authentication for POS
sign-in
4/9/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Many customers who use Microsoft Dynamics 365 Commerce also use other Microsoft cloud services, and they
might use Azure Active Directory (Azure AD) to manage user credentials for those services. In those cases, the
customers might want to use the same Azure AD account across applications. This topic explains how to configure
the Commerce point of sale (POS) sign-in experience to use Azure AD authentication.

Configure Azure AD authentication


To make Azure AD available as the authentication method for POS sign-in for a store, you must configure the
settings of the store's functionality profile and then apply those setting to POS clients.
To configure a functionality profile, follow these steps.
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles .
2. Select the functionality profile to change.
3. On the Functions FastTab, in the POS staff logon section, change the value of the Logon Authentication
Method field from Personnel ID and Password to Azure Active Director y .
By default, all functionality profiles use Personnel ID and Password as the POS authentication method.
Therefore, you must change the value of the Logon Authentication Method field if you want to use Azure AD.
Every retail store that is linked to the selected functionality profile will be affected by this change.
To apply the settings to POS clients, follow these steps.
1. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
2. Run the 1070 (Channel configuration ) distribution schedule.

NOTE
Azure AD authentication requires an internet connection. It won't work when POS is in offline mode.

Associate an Azure AD account with a worker


Before a store worker can use an Azure AD account to sign in to the POS application, the Azure AD account must be
associated with that worker.
To associate an Azure AD account with a worker, follow these steps.
1. Go to Retail and Commerce > Employees > Workers .
2. Open the details page for a worker.
3. On the Action Pane, on the Commerce tab, in the External identity group, select Associate existing
identity .
4. In the Use existing external identity dialog box, select Search using email , enter an Azure AD email
address, and then select Search .
5. Select the Azure AD account that is returned, and then select OK .
The Alias , UPN , and External sub identifier fields on the Commerce tab of the worker's details page will be
filled in.

Additional resources
Set up extended logon functionality for MPOS and Cloud POS
Create a retail functionality profile
Configure a worker
Demo data screen layouts in Modern POS (MPOS)
and Cloud POS
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides information about the screen layouts that are included with the demo data set for the point of
sale (POS) experiences in Dynamics 365 Commerce.

Overview
The sample screen layouts that are included with Commerce demo data provide content that is optimized for
various retail segments, store worker roles, and devices. A single layout can contain several layout sizes and
combinations of button grids, to help ensure coverage as store workers move between devices and stations. This
topic highlights the differences between these layouts, the operations that they provide, and the overall experiences
that they deliver.

Anatomy of a screen layout ID


To find screen layouts, go to Retail and Commerce > Channel setup > POS setup > POS > Screen layouts .
Screen layout IDs can have a maximum of 10 characters. The ID is a string that consists of three pieces of
information, in this order:
1. Company
2. Layout version
3. Persona
Company
L ET T ER C O M PA N Y

A Adventure Works

F Fabrikam

C Contoso

Layout version
VERSIO N N UM B ER DESC RIP T IO N

3 The base version that supports multiple screen sizes for


various devices and aspect ratios

3.1 The base version that has additional support for the
Recommended products panel

Persona
A B B REVIAT IO N P ERSO N A C O N T EN T S
A B B REVIAT IO N P ERSO N A C O N T EN T S

CSH Cashier Cashier layouts include all transaction-


related operations, such as customer
orders, returns, discounts, voids, and
gift cards. These layouts also include
daily tasks for inventory management,
such price checks, inventory lookups,
and stock counts. Basic shift
management is also provided for start
amounts, suspending shifts, and time
clock.

MGR Store Manager Store Manager layouts include all


transaction-related operations that are
found in the Cashier layouts but also
include tax overrides. These layouts also
include daily tasks for inventory
management, such as price checks,
inventory lookups, and stock counts.
Shift management is provided for
starting, suspending, and closing shifts.
Additionally, the layouts include drawer
operations for entries, removals, tender
declarations, and safe and bank drops.
Finally, these layouts include access to
performance reports, and enable X and
Z reports to be printed.

STK Stock Clerk Stock Clerk layouts are optimized for


inventory management. They include
access to daily tasks for price checks,
inventory lookups, picking and
receiving, stock counts, and kit
disassembly. These layouts also provide
basic shift operations for time clock and
suspending shifts. Although these
layouts are intended mainly for back-
office tasks, stock clerks have the same
operations as cashiers for transaction
screens.

Example layout
Here is an example of a screen layout ID for the Fabrikam company, layout version 3, and the Store Manager
persona:
F3MGR
The following illustration shows an example of the Welcome screen for a Fabrikam store manager.
Layout sizes
Full vs. compact layouts
A screen layout can have configurations for both full devices and compact devices. Therefore, a user can be
assigned to a single screen layout that will work across various sizes and form factors in the store.
Modern POS - Full – Typically, full layouts are best used for larger displays, such as desktop computer
monitors or tablets. Users can select the UI elements that the layout includes, specify the size and placement of
those elements, and configure their detailed properties. Full layouts support both portrait and landscape
configurations.
Modern POS - Compact – Typically, compact layouts are best used for phones or small tablets. Design
possibilities are limited for compact devices. Users can configure the columns and fields for the receipt pane and
the totals pane.
Screen resolutions that are provided
The following table shows the layout sizes that are provided for typical screen resolutions.

L AY O UT T Y P E RESO L UT IO N A SP EC T RAT IO TA RGET DISP L AY

Compact* 480 × 853 16:9 Phones

Full 1024 × 768 4:3 Tablets

Full* 1280 × 720 16:9 Tablets

Full 1366 × 768 16:9 Tablets, larger screens

Full 1440 × 960 3:2 Tablets, larger screens

* These additional layout sizes are available only in Adventure Works and Fabrikam layouts.
TIP
POS automatically selects layout sizes, based on the closest size that is available for the screen resolution of the current app
window. To find the screen layout ID and layout resolution that are currently used, in Modern POS (MPOS) or Retail Cloud
POS (CPOS), open the Settings page, and look in the Session information section. You can also see the actual window
resolution for your current application or browser frame. After you have this information, you can find the source of the
layout content by going to Channel setup > POS setup > POS > Screen layouts .

Companies and brands


Each fictitious company is targeted to a different retail segment and includes product catalogs that are tuned for the
company's market. Each company has a unique visual brand that accompanies its products. Branding elements
include the accent color, dark or light theme, and accompanying photographs that provide realistic experiences.
Company segment and visual characteristics
C O M PA N Y LO C AT IO N SEGM EN T A C C EN T T H EM E

Adventure Works Seattle Sporting Goods Blue Dark

Fabrikam Houston Fashion Green Light

Contoso Boston Electronics Red Dark

NOTE
Adventure Works and Fabrikam are the two flagship brands. Contoso is available, but not all layouts have been provided.

The following illustrations show examples of the welcome page and transaction page for the three fictitious
companies.
Adventure Works
Fabrikam
Contoso
User sign in matrix
Users have been provided for the various screen layouts. By using the following table, you should be able to access
any of the screens. Just sign in by using an appropriate operator ID.

C O M PA N Y SC REEN L AY O UT ID P ERSO N A O P ERATO R IDS

Adventure Works A3MGR Store Manager 000154, 000137, 000073

Adventure Works A3CSH Cashier 000150, 000175, 000165

Adventure Works A3STK Stock Clerk 000155, 000181, 000152

Fabrikam F3MGR Store Manager 000160, 000168, 000163

Fabrikam F3CSH Cashier 000161, 000113, 000114

Fabrikam F3STK Stock Clerk 000164, 000112, 000123

Contoso C3MGR Store Manager 000100, 000111

Contoso C3CSH Cashier 000110, 000120

Contoso Not applicable Stock Clerk Not applicable

TIP
For best results, activate a register in the corresponding store location, and set the company to the company of the persona
that you plan to use when you sign in. In this way, you help guarantee that the visual profile and branding images are aligned
across the experience. For example, if you're interested in seeing a Fabrikam layout for a cashier, you should activate a register
in the Houston store.
Product search and customer search in the point of
sale (POS)
2/1/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Modern Point of Sale (MPOS) and Cloud Point of Sale (CPOS) provide easy-to-use search functionality for products
and customers. Because the search bar is always present at the top of the MPOS and CPOS windows, employees
can quickly search for products and customers.
Employees can search for products in the assortments and catalogs that are associated with the current store. They
can also search in the assortments and catalogs that are associated with any other store in the company. Therefore,
cashiers can sell and return products outside the store assortment. Similarly, employees can search for customers
who are associated with the current store or any other store in the company. Additionally, employees can search for
customers who are associated with a different company in the parent organization.

Product search
By default, product searches are done on the store assortment. This type of search is known as a local product
search. However, employees can easily switch to any catalog that is associated with the current store, or they can
search in a different store. This type of search is known as a remote product search. To change the catalog, select the
Categories button on the left side of the page. At the top of the pane that appears, select the Change catalog
button, and then select one of the available catalogs to browse it. The system will search the selected catalog for
products.
On the Change catalog page, employees can easily select any store, or they can search for products across all
stores.

A local product search searches in the following product properties:


Product number
Product name
Description
Dimensions
Barcode
Search name
Enhancements to local product searches
The experience for local product searches is now more user-friendly. The following enhancements have been made:
Product and customer drop-down menus have been added to the search bar, so that employees can select
either Product or Customer before they do the search. By default, Product is selected, as shown in the
illustration that follows.
For multiple-keyword searches (that is, for searches that use search terms), retailers can configure whether
the search results include results that match any search term or only results that match all search terms. The
setting for this functionality is available in the POS functionality profile, in a new group that is named
Product search . The default setting is Match any search term . This setting is also the recommended
setting. When the Match any search term setting is used, all products that fully or partially match one or
more search terms are returned as results. Those results are automatically sorted in ascending order of
products that have the most keyword matches (full or partial).
The Match all search terms setting returns only products that match all the search terms (full or partial).
This setting is helpful when the product names are lengthy, and employees want to see only limited products
in the search results. However, this type of search has two limitations:
The search is done on individual product properties. For example, only products that have all the searched
keywords in at least one product property are returned.
Dimensions aren't searched.
Retailers can now configure product search to show search suggestions as users type product names. A new
setting for this functionality is available in the POS functionality profile, in a group that is named Product
search . The setting is named Show search suggestions while typing . This functionality can help
employees quickly find the product that they are searching for, because they don't have to type the whole
name manually.
The product search algorithm now also searches for the searched terms in the Search name property of the
product.
Customer search
Customer search is used to find customers for various purposes. For example, cashiers might want to view a
customer's wish list or purchase history, or add the customer to a transaction. The search algorithm matches the
search terms against the values that are present in the following customer properties:
Name
Email address
Phone number
Loyalty card number
Address
Account number
Among these properties, the name provides the most flexibility for multiple-keyword searches, because the
algorithm returns all customers that match any of the searched keywords. The customers that match the most
keywords appear at the top of the results. This behavior helps cashiers in situations where they search by typing the
full name, but last name and first name were swapped during the initial data entry. However, for performance
reasons, all the other properties preserve the order of the search keywords. Therefore, if the order of the search
keywords doesn't match the order that the data is stored in, no results will be returned.
By default, a customer search is done on the customer address books that are associated with the store. This type of
search is known as a local customer search. However, employees can also search for customers globally. In other
words, they can search across the stores of the company and across all other legal entities. This type of search is
known as a remote customer search.
To search globally, employees can select the Filter results button at the bottom of the page and then select the
Search all stores option, as shown in the illustration that follows. In this case, not only customers are returned. All
types of parties that are part of any address book in the headquarters are also returned. These parties include
workers, vendors, contacts, and competitors.

NOTE
A minimum of four characters must be entered for a remote customer search to return results.

In a remote customer search, the customer ID isn't shown for customers from the other legal entities, because no
customer ID has been created for those parties in the current company. However, if an employee opens the
customer details page, the system automatically generates a customer ID for the party and also associates the
store's customer address books with the customer. Therefore, the customer will be visible in local store searches
that are done later.

Enhancements to local customer search


Searches that are based on the phone number have been simplified. These searches now ignore special characters,
such as spaces, hyphens, and brackets, that might have been added when the customer was created. Therefore,
cashiers don't have to worry about the phone number format when they search. They can also search for customers
by typing a partial phone number. If a phone number includes special characters, it can also be found by searching
for the numbers that appear after the special characters. For example, if a customer's phone number was entered as
123-456-7890 , a cashier can search for the customer by typing 123 , 456 , 7890 , or 1234567890 , or by entering
the first few numbers of the phone number.
The traditional customer search can be time-consuming, because it searches across multiple fields. Instead, cashiers
can now search in a single customer property, such as name, email address, or phone number. The properties that
the customer search algorithm uses are collectively known as the customer search criteria. The system admin can
easily configure one or more criteria as shortcuts that will appear in POS. Because the search is limited to a single
criterion, only the relevant search results are shown, and the performance is much better than the performance of a
standard customer search. The following illustration shows the customer search shortcuts in POS.
To set search criteria as shortcuts, the admin must open the Commerce parameters page in Commerce, and then,
on the POS search criteria tab, select all the criteria that should be shown as shortcuts.

NOTE
If you add too many shortcuts, the drop-down menu on the search bar in POS will become cluttered, and the employee's
search experience can be affected. We recommend that you add only as many shortcuts as you require.

The Display order field determines the order in which shortcuts are shown in POS. The criteria that are shown are
the out-of-box properties that the customer search algorithm uses to search customers. However, partners can add
custom properties as search shortcuts. To add custom properties as search shortcuts, the system admin must
extend the extensible enumeration (enum) that is used for the customer search criteria and then mark the partner's
custom properties as shortcuts. Partners are responsible for writing the code to find results when their custom
shortcuts are used for searches.

NOTE
A custom property that is added to the enum doesn't affect the standard customer search algorithm. In other words, the
customer search algorithm won't search in the custom property. Users can use a custom property for searches only if that
custom property is added as a shortcut, or if the default search algorithm is overridden.

In an upcoming release of Commerce, retailers will be able to set the default customer search mode in POS to
Search all stores . This configuration can be helpful in scenarios where customers that were created outside POS
must be searched immediately (for example, even before the distribution job is run). A new Default customer
search mode option will be available in the POS functionality profile. Set it to On to set the default search mode to
Search all stores . Every customer search attempt will then make a real-time call to the headquarters.
To help prevent unexpected performances issues, this configuration is hidden behind a flighting flag that his named
CUSTOMERSEARCH_ENABLE_DEFAULTSEARCH_FLIGHTING . Therefore, to show the Default customer
search mode setting the user interface (UI), the retailer should create a support ticket for its user acceptance
testing (UAT) and production environments. After the ticket is received, the engineering team will work with the
retailer to make sure that the retailer does testing in its non-production environments to assess the performance
and implement any optimizations that are required.
Search for products and product variants during
order entry
4/3/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Use the Item number field to search for products and product variants when you manually create a sales order
line or a purchase order line. This lets you quickly find product variants when you only have the configuration
string or one of the product dimensions available.
Sometimes, having too much of something is not the best situation to be in, and this is especially true if you sell a
number of products that are similar, and you are trying to remember item numbers or product search names in
order to find the right product to put on a sales order. You can use the Item number field on a sales order line or
a purchase order line as a search field. You can enter any part of a product name, number, or dimension and get a
lookup that displays all the items that match the search word.

How search works


When you search for products or product variants, it is important to understand how the search feature finds the
products that match the text that you enter. The key search rules in delivering search results are:
Search results will return any matching record, disregarding the field that the search text is entered in.
The search text needs to be present in the matching record in its full length.
A match will occur even if the search text is found in the middle of a text string in the matching record. It does
not have to appear in the beginning of a text string.
The search text is treated as a single text string even if it contains white space.
Examples
The following examples use products and product variants to illustrate how search is handled in various scenarios.
Prerequisite: Under Sales and marketing > Setup > Search > Search parameters > Search type , select
the Full match option.

DISP L AY P RO DUC T
P RO DUC T T Y P E P RO DUC T N A M E N UM B ER IT EM N UM B ER C O N F IGURAT IO N

Distinct product SpeakerMidRange D0001 D0001 NA

Product variant Active speaker D0010:::Black: D0010 000005

Product variant Active speaker D0010:::White: D0010 White

If you type 'speak' in the Item number field, you will get all the products above as a result in the lookup. If you
type 'black' in the Item number field, you will get the second product as a result, because it has the text 'black' in
the display product number. These two examples illustrate that the search is not only at the beginning of the field,
a match will occur even if the search text is found in the middle of a text string in the matching record.
If you type '05' you will only get the second product variant as a result, because it has '05' in the configuration. This
illustrates that the search is across all the enabled fields on the Search criteria page.
If you type 'speak 05' you will not get any results. This is because the search looks for the full text that is entered.
The search will not try to find 'speak' and then narrow the results to those containing '05'.
You can limit the number of search results by using the Number of results field on the Sales and marketing >
Setup > Search > Search parameters page. If you set this field to 0, all search results will be returned. If you set
it to 10, for example, it will return a maximum 10 search results.

Configure the product search


Before you can use the product and product variant search feature, follow these steps to configure the product
search.

Step 1: Include all the relevant product and product variant identifiers and dimensions in the search criteria
Examples of product and product variant identifiers and dimensions that you can search by are Product name,
Item number , Display product number, Configuration, Color, Size, Style, Search name, etc .
Go to Sales and marketing > Setup > Search > Search criteria page. The Search criteria page allows you
to define criteria for customer, prospect, and product search. Make sure you filter the page by using product search
criteria. You can do this by switching to Product in the page's menu.
To add the display product number to the search criteria, click New in the page's menu. This will add a new record
in the Search criteria grid. Open the Field name column lookup and chose DisplayProductNumber . To add the
product's configuration to the search criteria, create a new record in the Search criteria grid and chose configId
in the Field name column. In the same manner, create a record with Field name InventColorId for the color
dimension, InventSizeId for the size dimension, and InventStyleId for the style dimension.
Step 2: Populate the database table that is used for product search
In the Search criteria page, click the Update search data button. In the Update search data dialog box, make
sure that Source is set to Product , and then click OK . The system will aggregate in one table all the selected search
criteria specified in step 1. If you have a lot of products and product variants, this operation can be quite lengthy
and you may receive a warning. We recommend that you schedule the search table population on the batch server
at a time when the server is not too busy.
Until the table is populated, product search will not provide the correct results. If you do not get any search results,
make sure that this table is populated.
The table only has to be populated when the search criteria is modified. Newly released products and variants are
automatically added to the table. Deleted products and variants are automatically removed from the table.
Step 3: Enable the lookup for product search on sales and purchase order lines
You can enable this functionality by going to Sales and marketing > Setup > Search > Search parameters
and setting Enable lookup for search to Yes on the General tab.
For sales order line entry, the default behavior is to open the Product search page when you start typing in
the Item number field, and then press the Tab key. The Product search page changes the context during order
line creation and may be considered unnecessarily intrusive. If you prefer to get the search results in a lookup and
not lose context during order line entry, you can use the search lookup instead. If you search for a product or
product variant, but you don't select anything in the lookup and press the Tab key, the Product search page will
display.
Cash management improvements
3/13/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Cash management is a key function for retailers in physical stores. Retailers want their stores to have systems that
can help them provide complete traceability and accountability of cash and its movement across the different
registers and cashiers in a store. They must be able to reconcile any differences and determine accountability.
Microsoft Dynamics 365 Commerce has cash management capabilities in its point of sale (POS) application.
However, in versions of Retail that are earlier than version 10.0.3, cash management functionality isn't robust
enough to provide complete traceability of cash movements in stores. Although retailers can reconcile the cash for
a store, they can't precisely determine accountability in the event of a cash discrepancy.
In Retail version 10.0.3 and later, retailers will gain traceability for cash handling. As part of this traceability, retailers
will be able to define safes, make two-sided cash transactions, and reconcile cash management transactions.

Set up traceability and define safes


To set up the new cash management functionality, follow these steps to configure the functionality profile for stores.
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles ,
and select a functionality profile that is linked to the stores where you want to make the improvements for cash
management available.
2. On the Functions FastTab of the functionality profile, under Advanced cash management , set the Enable
cash traceability option to Yes .
3. To set up safes, go to Retail and Commerce > Channels > Stores > All stores , and select a store.
4. On the Stores page, on the Action Pane, on the Set up tab, in the Set up group, select Safes . By using this
option, you can define and maintain multiple safes for a store.
5. Before the functionality can be used, you must run the 1070 Channel configuration distribution schedule job
to sync these configurations to the channel database.

Additional cash management changes


In Retail version 10.0.3 and later, the following capabilities that are related to cash transactions are also provided:
A user who is prompted to "declare start amount" must enter the source of cash. The user can search for the
available safes that are defined in the store and select the safe that the cash is being taken out of so that it can
be put into the register.
A user who does a "tender removal" operation is prompted to select, in a list of open "float entry" transactions,
the transaction that the operation is being done against. If the corresponding float entry doesn't exist in the
system, the user can create a non-linked tender removal transaction.
A "float entry" operation prompts a user to select, in a list of open "tender removal" transactions, the transaction
that the float entry operation is being done against. If the corresponding tender removal doesn't exist in the
system, the user can create a non-linked float entry transaction.
A user who makes a "safe drop" is prompted to select the safe where the cash is being dropped.
For safes that are defined in a store, users can manage operations such as declaring the start amount, doing a
float entry, doing a tender removal, and making a bank drop.
For users who have the appropriate user privileges, "manage shifts" operations show the cash balances of
active, suspended, and blind closed shifts.
To reconcile the cash transactions within a shift or across shifts, select the shift to reconcile, and then select
Reconcile . The view that is opened shows the list of reconciled and unreconciled transactions on separate tabs.
From this view, users can either select unreconciled transactions and reconcile them, or select previously
reconciled transactions and unreconcile them.
During reconciliation, if the selected transaction doesn't balance, the user must enter a description of the reason
for the unbalanced reconciliation. Users can select a single transaction and reconcile it with the relevant reason
description as they require.
Users can continue to reconcile and unreconcile transactions until the shift is closed. After a shift is closed, the
transactions can't be unreconciled.
When a user chooses to close a shift, Commerce validates that there are no unreconciled cash management
transactions in the shift. Users can't close a shift if there are unreconciled transactions.
Inventory lookup in the point of sale (POS)
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Inventory lookup in the point of sale (POS) helps retailers achieve real-time operational excellence and gain insights
by connecting stores, the POS, and the back office. This functionality provides an accurate real-time view of product
inventory across stores and distribution centers. It also helps retailers drive additional efficiencies and cost savings
by improving inventory planning in real time.
An accurate real-time view of inventory across an organization helps store associates provide timely, superior
customer service. The moment that matters most is the moment when the customer is ready to make a purchase
decision. It's important that cashiers in the store have real-time inventory information at their fingertips, so that
they can accurately promise product delivery and pickup.
You can open the Inventor y lookup page from the Retail Modern POS workspace or the Retail Cloud POS
workspace.

On the Inventor y lookup page, you can use the numeric keyboard to enter a product number. You can then view
the on-hand quantity for multiple stores and warehouses.
Reser ved and Ordered quantities are also shown for each location.
Reser ved – This quantity refers to the Physical reser ved value from the back office for the specified product
number at the location.
Ordered – This quantity refers to the Ordered in total value from the back office for the specified product
number at the location.

Locations that inventory availability information is shown for


The list of locations includes two types of entities:
Stores – The list shows stores that are configured by using the store locator group for the current store in
the Headquarters.
Distribution centers – Various types of distribution centers (such as warehouses) can be configured in
Commerce. However, the list shows inventory availability information only for distribution centers of the
Standard default type.

NOTE
Inventory availability information isn't shown for warehouses of the Transit , Quarantine , and Goods in Route
types for the POS.

On the Inventor y lookup page, you can view available to promise (ATP) quantities for each store, in addition to
the current on-hand quantities, reserved quantities, and ordered quantities. Select the store to view the ATP
information for, and then select Show store availability .
Opening the Dimension based matrix view to show all variants
On the Product details page of a product master, or on the Inventor y lookup page, select View all variants
from the app-bar at bottom of the page. The Dimension based matrix view for the initial launch from these
pages shows the inventory availability information for all variants of a product for the current store.

NOTE
The View all variants button is available only for item product masters that have product variants. It isn't available for
standalone products or kits.
Select View all variants on the Product details page of a product master, or on the Inventor y lookup page,
without selecting a location, to go to the Dimension based matrix view to view the inventory availability
information for all variants of a product for the current store.
NOTE
In the preceding illustration, the display order of the dimensions is alphabetic, because the display order of dimensions wasn't
configured for the selected product.

In the Dimension based matrix view, the cells for the product variants include an on-hand value in the lower-
right corner. The following table explains the meaning of the various values.

O N - H A N D VA L UE DESC RIP T IO N

Numeric value that is more than 0 (zero) A variant has been released to the selected location, and you
can perform additional actions in the cell. (These actions are
described in more detail later in this topic.)

0 (zero) A variant has been released to the selected location, but the
item isn't available in selected location. However, you can
perform additional actions in the cell. (These actions are
described in more detail later in this topic.)

n/a or an inactive cell A variant hasn't been released to the selected location, and
you can't perform additional actions in the cell.

You can also change the pivot for dimensions by selecting the new dimension to use.
NOTE
In the preceding illustrations, the display order of the dimensions for the selected product is custom (non-alphabetic). It's
based on the dimension display order that is set in the back office.

Additionally, in the Dimension based matrix view, more actions can be performed to help boost a store
associate's productivity. Here are some examples:
Change the store location to look up the inventory availability of all product variants at other locations. These
locations include other stores in the store locator group and distribution centers of the Standard default type.
Sell an individual product variant to a customer by using cash and carry, in-store pickup, or shipment to an
address.
Provide the customer with ATP information for an individual product variant at a specific location.
NOTE
In the preceding illustration, the display order of the dimensions is alphabetic, because the display order of dimensions wasn't
configured for the selected product.

The following table provides more information about the additional actions that are available.

A C T IO N DESC RIP T IO N

Sell now Add the selected item variant to the transaction, and redirect
the user to the transaction screen. (This action isn't available
when the selected location is a distribution center.)

Pick up in store Create a customer order for the product variant that will be
picked up from the selected location, and redirect the user to
the transaction screen. (This action isn't available when the
selected location is a distribution center.)

Ship product Create a customer order for the product variant that will be
shipped from the selected location, and redirect the user to
the transaction screen.

Availability Show the ATP information for the selected variant combination
for the selected location.
A C T IO N DESC RIP T IO N

Show all locations Switch to the standard inventory lookup view, and highlight
inventory availability information for the item variant across all
stores in the store locator group, and also in distribution
centers of the Standard/Default type.

View product details Redirect the user to the Product details page of the
associated product master.
Suspend and resume a transaction in the point of sale
(POS)
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Point of sale (POS) users can suspend in-progress transactions, and then resume them later or on a different
register. Transactions are often suspended to quickly free up a register for a different task without losing any
progress on the current transaction. For example, a store associate starts to process a customer's transaction on a
mobile device but must complete it on a register that has a cash drawer. In this case, the store associate can
suspend the transaction on the mobile device, and then recall and resume it on a register.

Configure suspend and resume functionality


POS operations
Two POS operations let the POS support suspend and resume scenarios. You can assign these operations to button
grids on the transaction page or the welcome page.
503: Suspend transaction
504: Recall transaction
Receipt template
The POS can be configured to generate a printed slip when a transaction is suspended. That slip can then be used to
quickly identify and recall the transaction later.
To enable the POS to print a slip, you must add the Suspended transaction receipt format to the store's receipt
profile. You can design the receipt format so that it includes or excludes specific details about the transaction. For
example, the format can include a barcode to support scanning.
Receipt numbering
As for other POS transaction types that generate a printed receipt, you can define a number sequence for
suspended transactions in the Receipt numbering section of the store's functionality profile.
Void when closing shift
You can use the Void when closing shift option to require that users either complete or void any suspended
transactions before they close their shift. During the Close shift operation, the POS will prompt users to either
view or void any outstanding suspended transactions.

Suspend and resume a transaction


Suspend a transaction
Users who have sufficient privileges, and who have a screen layout that includes the Suspend transaction
operation, can suspend a transaction so that it can be recalled later or on a different register.
Transactions can be suspended only if they do not contain the following types of lines:
Active payment lines
Gift card lines (either to issue a gift card or to add to the gift card balance)
A suspended transaction doesn't affect sales information or inventory availability information for the store.
Resume a suspended transaction
Suspended transactions can be recalled and resumed in the same store by any user who has sufficient privileges,
and who also has a layout that includes the Recall transaction operation.
To quickly and easily recall a suspended transaction, scan the barcode on the printed slip while you're viewing the
list of transactions from the Recall transaction operation.
Considerations for offline mode
Any transaction that is suspended while the POS is in online mode can't be resumed in offline mode, because
the data isn't synced to the offline database.
If you suspend a transaction while the POS is in offline mode, you can recall it in offline mode, provided that the
POS wasn't switched back to online mode at any time since you suspended the transaction. When the POS is
switched back to online mode, data about suspended transactions is moved to the online database and removed
from the offline database. Therefore, the transactions can be resumed only in online mode. If you switch the POS
back to offline mode, you won't be able to resume those suspended transaction, because they have already been
removed from the offline database.
Void a suspended transaction
You can void suspended transactions either by recalling the transaction and then performing the Void transaction
operation, or by selecting the transaction in the Recall transaction list and selecting Void on the app bar.
Alternatively, the store can be configured to prompt users to void suspended transactions when they close their
shift.
Offline point of sale (POS) functionality
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article provides information about offline mode for Modern POS, in which POS devices automatically switch
from the channel database to the offline database if the Commerce Scale Unit is unavailable. This article also
includes general setup information for offline mode and explains the data synchronization that occurs between the
offline database and the channel database.

Overview
In Modern POS, a point of sale (POS) device goes into offline mode whenever the Commerce Scale Unit is
unavailable. Therefore, if the connection is lost, the POS automatically switches to the offline database.
During a sales transaction, if a data request doesn't succeed within the time-out interval that is configured in the
offline profile, the POS automatically switches to the offline database and continues the sales transaction. While the
POS device is in offline mode, Rail Modern POS tries to reconnect to the Commerce Scale Unit after the
reconnection attempt interval that is configured in the offline profile. This reconnection attempt occurs only at the
beginning of a transaction.
Determining the connection mode of Modern POS
The status header in Modern POS indicates the current connection status, and the Connection status window
shows the status of the last attempt to sync with the offline database.

Creating a button to manually switch between online and offline modes


You can add a button to Modern POS to manually switch between online and offline modes. Create a button for
POS operation 917 – Database connection status . The name of this button is Disconnect when the POS is
connected to the Commerce Scale Unit and Connect when it is disconnected. You can use this button to view the
connection, and to disconnect from the Commerce Scale Unit or connect to it.
Setup
To enable offline support for a POS device (register), set the Suppor t offline option to Yes on the Register page.
A new channel database entity is created and added to the store's channel data group. Then run all the required
distribution schedules to generate the data packages for the offline database. Next, install the offline version of
Modern POS. The installation process creates the offline database. Additionally, install Microsoft SQL Server 2014
Express if it is required. Offline data synchronization starts after the first sign-in to Modern POS.

Data synchronization
The Commerce scheduler is used to send master data to the offline database. By default, when a distribution
schedule is run, data changes are sent to both the channel database and the offline database. Modern POS includes
the async sync library, which downloads any available data packages and inserts them into the offline database. If
any transactions are created offline, the POS uploads them to the Commerce Scale Unit, so that they can be
inserted into the channel database. Offline data synchronization can occur only if Modern POS is running.
Shift and cash drawer management
2/1/2020 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to set up and use shifts in Commerce point of sale (POS).
In Dynamics 365 Commerce, the term shift describes the collection of POS transactional data and activities between
two points in time. For each shift, the amount of money that is expected is compared against the amount that was
counted and declared.
Typically, shifts are opened at the start of the business day. At that point, a user declares the starting amount that
the cash drawer contains. Sales transactions are then performed throughout the day. Finally, at the end of the day,
the drawer is counted, and the closing amounts are declared. The shift is closed, and a Z report is generated. The Z
report indicates whether there is an overage or shortage.

Typical shift scenarios


Commerce provides several configuration options and POS operations to support a wide range of end-of-day
business processes for the POS. This section describes some typical shift scenarios.
Fixed till
Traditionally, this scenario has been used most often. It's still extensively used. In a "fixed till" shift, the shift and till
are associated with a specific register. They aren't moved from one register to another. A "fixed till" shift can be used
by a single user or shared among multiple users. "Fixed till" shifts don't require any special configuration.
Floating till
In a "floating till" shift, the shift and cash drawer can be moved from one register to another. Although a register
can have only one active shift per cash drawer, shifts can be suspended and then resumed later or on a different
register.
For example, a store has two registers. Each register is opened at the start of the day when the cashier opens a new
shift and provides the starting amount. When one cashier is ready to take a break, that cashier suspends his or her
shift and removes the till from the cash drawer. That register then becomes available to other cashiers. Another
cashier can sign in to and open his or her own shift on the register. After the first cashier's break has ended, that
cashier can resume his or her shift when one of the other registers becomes available. "Floating till" shifts don't
require any special configuration or permission.
Single user
Many retailers prefer to allow only one user per shift, to help guarantee the highest level of accountability for the
cash in the cash drawer. If only one user is allowed to use the till that is associated with a shift, that user can be held
solely responsible for any discrepancies. If more than one user uses a shift, it's difficult to determine who made an
error, or who might be trying to steal from the till.
Multiple users
Some retailers are willing to sacrifice the level of accountability that single-user shifts provide and to allow more
than one user per shift. This approach is typical when there are more users than available registers, and the need
for flexibility and speed outweighs the potential for loss. It's also typical when store managers don't have their own
shifts but can, as required, use the shifts of any of their cashiers. To sign in to and use a shift that was opened by
another user, a user must have the Allow multiple shift logon POS permission.
Shared shift
A "shared shift" configuration lets retailers have a single shift across multiple registers, cash drawers, and users. A
shared shift has a single starting amount and a single closing amount that are summarized across all cash drawers.
Shared shifts are most typical when mobile devices are used. In this scenario, a separate cash drawer isn't reserved
for each register. Instead, all registers can share one cash drawer.
For shared shifts to be used in a store, the cash drawer must be configured as a "shared shift drawer" at Retail and
Commerce > Channel setup > POS setup > POS profiles > Hardware profiles > Drawer . Additionally,
users must have one or both of the shared shift permissions (Allow manage shared shift and Allow use shared
shift).

NOTE
Only one shared shift can be open at a time in each store. Shared shifts and stand-alone shifts can be used in the same store.

Shift and drawer operations


Various operations can be performed to change the state of a shift, or to increase or decrease the amount of money
in the cash drawer. This section describes these shift operations for Modern POS and Cloud POS.
Open shift
The POS requires that users have an active, open shift in order to perform any operations that will produce a
financial transaction, such as a sale, return, or customer order.
When a user signs in to the POS, the system first verifies whether an active shift is available for that user on the
current register. If an active shift isn't available, the user can open a new shift, resume an existing shift, or sign in in
"non-drawer" mode, depending on the system configuration and the user's permissions.
Declare start amount
This operation is often the first operation that is performed for a newly opened shift. For this operation, users
specify the starting cash amount in the cash drawer for the shift. This operation is important because the
overage/shortage calculation that occurs when a shift is closed considers the start amount.
Float entry
Float entries are non-sales transactions that are performed in an active shift to increase the amount of cash in the
cash drawer. A typical example of a float entry is a transaction to add additional change to the drawer when it's
running low.
Tender removal
Tender removals are non-sales transactions that are performed in an active shift to reduce the amount of cash in
the cash drawer. This operation is most often used in conjunction with a Float entry operation on a different shift.
For example, because register 1 is running low on change, the user on register 2 does a tender removal to reduce
the amount in his or her cash drawer. The user on register 1 then does a float entry to increase the amount in his or
her cash drawer.
Suspend shift
Users can suspend their active shift to free up the current register for another user, or to move their shift to a
different register (in this case, the shift is often referred to as a "floating till" shift).
Suspension of a shift prevents any new transactions or changes to the shift until it's resumed.
Resume shift
This operation lets users resume a previously suspended shift on any register that doesn't already have an active
shift.
Tender declaration
This operation is performed to specify the total amount of money that is currently in the cash drawer. Users most
often perform this operation before they close a shift. The specified amount is compared against the expected shift
amount to calculate the overage/shortage amount.
Safe drop
Safe drops can be done on an active shift at any time. This operation removes money from the cash drawer so that
it can be transferred to a more secure location, such as a safe in the back room. The total amount that is recorded
for safe drops is included in shift totals, but it doesn't have to be counted as part of the tender declaration.
Bank drop
Like safe drops, bank drops are done on active shifts. This operation removes money from the shift to prepare for
the bank deposit.
Blind close shift
Blind-closed shifts are no longer active but haven't been fully closed. Unlike suspended shifts, blind-closed shifts
can't be resumed. However, operations such as Declare start amount and Tender declaration can be performed on
them later or from a different register.
Blind-closed shifts are often used to free up a register for a new user or shift without first having to fully count,
reconcile, and close the shift.
Close shift
This operation calculates shift totals and overage/shortage amounts, and then finalizes an active or blind-closed
shift. Depending on the user's permissions, a Z report is also printed for the shift. Closed shifts can't be resumed or
modified.
Print X
This operation generates and prints an X report for the current active shift.
Reprint Z
This operation reprints the last Z report that the system generated when a shift was closed.
Manage shifts
This operation lets users view all active, suspended, and blind-closed shifts for the store. Depending on their
permissions, users can perform their final closing procedures, such as Tender declaration and Close shift operations
for blind-closed shifts. This operation also lets users view and delete invalid shifts, in the rare event that shifts are
left in a bad state after a switch between offline and online modes. These invalid shifts don't contain any financial
information or transactional data that is required for reconciliation.

Shift and drawer permissions


The following POS permissions affect what a user can and can't do in various scenarios:
Allow blind close
Allow X-repor t printing
Allow Z-repor t printing
Allow tender declaration
Allow floating declaration
Open drawer without sale
Allow multiple shift logon – This permission allows the user to sign in to and use a shift that a different user
opened. Users who don't have this permission can sign in to and use only shifts that they have opened.
Allow manage shared shift – Users must have this permission to open or close a shared shift.
Allow use shared shift – Users must have this permission to sign in to and use a shared shift.

Back-office end-of-day considerations


The way that shifts and cash drawer reconciliation are used in the POS differs from the way that transaction data is
summarized during statement calculation. It's important that you understand this difference. Depending on your
configuration and your business processes, the shift data in the POS (the Z report) and a calculated statement in the
back office can give you different results. This difference doesn't necessarily mean that either the shift data or the
calculated statement is incorrect, or that there is a problem with the data. It just means that the parameters that are
provided might be including additional transaction or fewer transactions, or that the transactions have been
summarized differently.
Although every retailer has different business requirements, we recommend that you set up your system in the
following way to avoid situations where differences of this type occur:
Go to Retail and Commerce > Channels > Stores > All stores > Statement/closing , and for each store, set
both the Statement method field and the Closing method field to Shift .
This setup helps guarantee that back-office statements include the same transactions as shifts in the POS, and that
the data is summarized by that shift.
For more information about statement and closing methods, see Store configurations for Retail statement.
Cash out gift card balance for a retail customer
3/12/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides an overview of the cash out gift card feature for the Dynamics 365 Retail Modern POS (MPOS).
The purpose of the cash out feature is to allow cashiers to cash out the remaining amount on a gift card. Retailers
often need to exchange a low balance gift card for cash at the customer's request.

Prerequisites
The payment connector and corresponding payment gateway or processor must support the feature. The
payment connector is an extension which facilitates communication between Dynamics 365 Commerce (and
associated components) and a payment service. The connector described in this topic was implemented using
the standard payments SDK.
If the gift cards are external gift cards, the external gift card must be configured for both the Headquarters and
the POS. Before the gift card can be configured, the retailer must have an account with an external gift card
service provider.

Scenarios
The cash out gift card feature is applicable to a scenario where, for example, in Washington state, the cash out
threshold is $5. Retailers in this case will have the option to set up an operation to cash out a gift card and set the
gift card balance limits under which the cash out operation can be enabled.

Configure Headquarters
1. Open the All stores page.
2. In the list, select the Houston store.
3. On the Action Pane , select Set up > Payment methods .
4. Search for payment methods to open the Payment methods page.
5. Select the Gift Card payment method, and then follow these steps:
a. In the Amount FastTab section, select the Cash Out Gift Card field.
b. In the Cash Out Gift Card field, enter the Gift card Cash out threshold amount.
c. Select Save .
6. Open the Button grid page.
7. In the navigation bar on the left side of the page, search for F2S1M , and select the filtered option.
8. On the Action Pane , select Designer to download the button designer application.
9. When the grid designer appears, right-click on an empty (gray) area, and then select New button .

10. Right-click the new button, and then select Button proper ties .
11. Set the Action , Cash out gift card , and Text on button properties according to the following matrix.

A C T IO N PAY M EN T T Y P E T EXT O N B UT TO N

Cash out gift card Gift Card Cash out gift card

When you've finished, your button layout should resemble the following illustration.
12. Click Ok and close the designer.
13. Search for Distribution Schedule .
14. In the navigation bar on the left side of the page, search for 1090 , 1115 , and 1070 .
15. On the Action Pane , select Run now .
16. Check the status of the job by searching for Download sessions .
17. Wait until Applied appears next to all the jobs, and then close the browser.

Configure and test Retail Modern POS


1. Start the Retail Modern POS (MPOS) application.
2. Sign in by using the standard credentials.
3. When you're prompted, select Perform a non-drawer operation .
4. On the main screen, select Select hardware station .
5. On the bar on the right side of the page, select Manage .
6. Turn on Vir tual Peripherals , and then select OK .
7. In the Available paired stations field, select Vir tual Peripherals .
8. You're prompted to either open a new shift or perform non-drawer operations. You can now open a new
shift.
9. On the main screen, select Current transaction .
10. Select Gift cards .
11. Select Cash out gift card .
12. Enter or scan the gift number.
13. The line for gift card cash out will be added to the Current transaction for cash out.
14. Select the Cash payment method and the drawer will open when the transaction is completed.
Troubleshooting
For all general issues, you should always consult the Modern POS or IIS Hardware Station event logs. The logs can
be found under these nodes in the Windows event log:
Application and Ser vices Logs > Microsoft > Dynamics > Commerce-ModernPOS
Application and Ser vices Logs > Microsoft > Dynamics > Commerce-Hardware Station
Ship orders from another store by using the Charge
send feature
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

With the Charge send feature in Commerce, customer orders can be placed in one store and shipped from another
store.
Customer orders in the point of sale (POS) client support multiple fulfillment options. Some examples of fulfillment
options include:
Pick up from the same store on a different date.
Pick up from a different store on the same date or a different date.
Ship from the default shipping warehouse that is assigned to the store, and deliver on a specific date.
The Charge send feature uses the following POS operations: Ship all products and Ship selected products. This
allows the store clerk to select the "ship from" location that the order or order line can be fulfilled from. By default,
the "ship from" location is the shipping warehouse that is associated with the store. However, the store clerk can
change this location and select any store that is defined in the store locator group that is assigned to the store.
The ability to select "ship to" addresses remains unchanged.
The shipping methods that can be used to fulfill the order line are based on the configuration of valid modes of
delivery for products and addresses. Because the rules about valid of modes of delivery are maintained only in the
Headquarters (HQ), the POS client makes a real-time call to fetch the valid modes of delivery for a ship line.
Hide non-carrier delivery modes from the shipping
options in POS
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes a configuration option that is available for the point of sale (POS) application. This
configuration option changes the behavior for the selection of a mode of delivery when shipment orders are
created in POS.
When users create customer shipment orders in POS, they can select a mode of delivery for the shipment. This
functionality is available regardless of whether the whole order is being shipped or only selected lines.
By default, the dialog box where a mode of delivery is selected shows all the valid modes of delivery for the
combination of a channel, an item, and a delivery address. These modes of delivery are defined on the Modes of
deliver y page in Headquarters (Sales and marketing > Setup > Distribution > Modes of deliver y ). "Non-
carrier" modes of delivery, such as Carr yout or Pickup , might also appear for selection in the dialog box.
However, a feature has been added that lets you hide non-carrier modes of delivery in the dialog box. To turn on
this feature, on the Commerce parameters page, on the Customer orders tab, set the Show only carrier
mode options for ship orders option to Yes . After you turn on this feature and run the appropriate distribution
jobs to sync the information to the channel database, non-carrier modes of delivery won't appear for selection
during the process of creating shipment orders in POS.
Task recorder and Help for Retail Modern POS
(MPOS) and Cloud POS
2/1/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to use Task recorder in Retail Modern POS and Cloud POS.

Overview
Task recorder in Retail Modern POS or Cloud POS is a new solution that was built with a focus on high
responsiveness. It provides a flexible application programming interface (API) for extensibility and seamless
integration with consumers of business process recordings. Additionally, Task recorder integration with the
Business process modeler (BPM) tool on Microsoft Dynamics Lifecycle Services (https://bpm.lcs.dynamics.com) has
been brought forward. Therefore, users can continue to produce rich business process diagrams from recordings to
analyze and design their applications.

Architecture
Task recorder can record user actions in the client with exact fidelity. Each control is instrumented to notify Task
recorder about the execution of a user action. The control notifies Task recorder that an event occurred and passes
along all pertinent information about the corresponding user action in real time. From this information, Task
recorder can capture the type of user action (such as a button click, value entry, or navigation) and any data that is
related to the user action (such as the input data value and type, form context, or record context). Task recorder
persists the information with enough detail to help guarantee that a playback of the recording can perform the
recorded actions exactly as the user performed them. (The playback feature isn't yet implemented at Retail modern
POS or Cloud POS.)

Basic configuration
To enable task recording in POS, follow these steps.
1. Click Retail and Commerce > Channel Setup > POS Setup > Registers .
2. Click the register to enable task recording on.
3. On the Register tab, on the General FastTab, set the Enable task recording option to Yes .
4. Click Save .
5. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
6. Select the Registers (1090) job, and then click Run now .

Create a recording
Follow these steps to create a new recording using Task recorder.
1. Start Retail Modern POS or Cloud POS, and sign in.
2. On the Settings page, in the Task Recorder section, click Open task recorder . The Task recorder pane
appears. You can click the Close button (X ) in the upper-right corner to close the Task recorder pane before
you begin a new recording. To reopen the pane, repeat step 2.

3. Enter a name and description for the recording, and then click Star t . The recording session begins as soon
as you click Star t .

NOTE
If you click the Close button (X ) in the upper-right corner while recording is in progress, the Task recorder pane is
closed, but the recording session isn't ended. To reopen the Task recorder pane, click the Help button (question mark)
at the top of the screen.

4. After you click Star t , Task recorder enters recording mode. The Task recorder pane shows information and
controls that are related to the recording process.
5. Perform the actions that you want to perform in the Retail Modern POS or Cloud POS user interface (UI).
6. To end the recording session, click Stop .

Download options
After you end the recording session, several options are shown, so that you can download your recording.
Save to this PC
You can use the recording package to play a Task guide, maintain the recording, or edit the annotations in the
recording. (This feature isn't yet implemented in Retail Modern POS and Cloud POS.)
Export as Word document
You can save the recording as a Microsoft Word document. The document will contain the recorded steps and the
screenshots that were captured.
Save as developer recording
The raw recording file will be useful for developer scenarios such as test code generation. (This feature isn't yet
implemented.)

Recording controls

Stop
Click Stop to end the recording session. Note that you can't restart a session after you end it. Therefore, make sure
that the recording is completed before you end it.
Pause
Click Pause to temporarily stop (pause) the recording session and continue with the operation. Steps that you
perform after you click Pause aren't recorded.
Continue
To resume the recording session after you've paused it, click Continue .
Capture screenshots
Task recorder can capture screenshots of the Retail Modern POS UI as you record a business process. To turn on the
screenshot capture feature, set the Capture screenshot option to Yes and then make the recording. Once the
recording is completed, click Stop and download the Word document. The document will contain the steps with
relevant screenshots.

NOTE
Capture screenshot functionality is not supported in Cloud POS.

Start task and End task


You can specify the beginning and end of a set of grouped steps by using the Star t task and End task buttons.
Click Star t task to add a "Start Task" step, and then perform the steps that should be included in the group. After
you've finished performing the steps for the group, click End task . Tasks help you organize your procedures. Tasks
can be nested within other tasks. In this way, you can better organize very long and complex business processes.

Adding annotations
An annotation is additional text that you add to a step in a recording. For example, you can use annotations to give
the user more context or instructions. You can add annotations before or after a step. You can add an annotation to
any step by clicking the Edit button (pencil symbol) to the right of the step.

Texts and notes


You can use the Texts and Notes fields to add text that should be associated with a step in a Task guide.

Text
Text that you enter in the Text field appears above the step text in the Task guide. This location is appropriate for text
that you want the user to read before he or she completes the step.
Notes
Text that you enter in the Notes field appears below the step text in the Task guide. To read the note text, the user
must expand the step text in the pop-up window. This location is appropriate for optional reading material or other
information that might be useful to the user, but that the user doesn't require in order to complete the action.

Help in Retail Modern POS and Cloud POS


To show your own custom task recordings in the Help pane of Retail Modern POS and Cloud POS so that they can
be viewed as text, you must save your task recordings to your own BPM library, and then update your Help system
parameters to point to your BPM library. For more information, see Connecting the Help system. Retail Modern
POS and Cloud POS Help searches LCS in real time. It searches across all the BPM libraries that are selected in the
Commerce Help system parameters and shows the relevant results. To access the Help menu, click the Help button
(question mark) at the top of the screen and then in the search box type your process name and hit the search
button.
When you click a Task guide in the search results, you can either view the steps as a Help topic or export the steps
to a Word document.

NOTE
Help in Retail Modern POS and Cloud POS will not bring up task guides according to what form you're on or operation you're
doing. You have to type the process name in the search box and then click Search .
Peripherals
3/19/2020 • 33 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains the concepts that are related to store peripherals. It describes the various ways that peripherals
can be connected to the point of sale (POS) and the components that are responsible for managing the connection
with the POS.

Concepts
POS registers
Navigation: Click Retail and Commerce > Channel setup > POS setup > Registers . The point of sale (POS)
register is an entity that is used to define the characteristics of a specific instance of the POS. These characteristics
include the hardware profile or setup for peripherals that will be used at the register, the store that the register is
mapped to, and the visual experience for the user who signs in to that register.
Devices
Navigation: Click Retail and Commerce > Channel setup > POS setup > Devices . A device is an entity that
represents a physical instance of a device that is mapped to a POS register. When a device is created, it’s mapped to
a POS register. The device entity tracks information about when a POS register is activated, the type of client that is
being used, and the application package that has been deployed to a specific device.
Devices can be mapped to the following application types: Retail Modern POS, Retail Cloud POS, Retail Modern POS
– Windows Phone, Retail Modern POS – Android, and Retail Modern POS – iOS.
Modern POS
Modern POS is the POS program for Microsoft Windows. It can be deployed on Windows 10 operating systems
(OSs).
Cloud POS
Cloud POS is a browser-based version of the Modern POS program that can be accessed in a web browser.
Modern POS for iOS
Modern POS for iOS is an iOS-based version of the Modern POS program that can be deployed on iOS devices.
Modern POS for Android
Modern POS for Android is an Android-based version of the Modern POS program that can be deployed on
Android devices.
POS peripherals
POS peripherals are devices that are explicitly supported for POS functions. These peripherals are typically divided
into specific classes. For more information about these classes, see the “Device classes” section of this topic.
Hardware station
Navigation: Click Retail and Commerce > Channels > Stores > All stores . Select a store, and then click the
Hardware stations FastTab. The Hardware station setting is a channel-level setting that is used to define
instances where the peripheral logic will be deployed. This setting at the channel level is used to determine
characteristics of the hardware station. It's also used to list hardware stations that are available for a Modern POS
instance in a given store. The hardware station is built into the Modern POS programs for Windows and Android.
The hardware station can also be deployed independently as a stand-alone Microsoft Internet Information Services
(IIS) program. In this case, it is accessed via network.
Hardware profile
Navigation: Click Retail and Commerce > Channel setup > POS setup > POS profiles > Hardware profiles .
The hardware profile is a list of devices that are configured for a POS register or a hardware station. The hardware
profile can be mapped directly to a POS register or a hardware station.

Devices classes
POS peripherals are typically divided into classes. This section describes and gives an overview of the devices that
Modern POS supports.
Printer
Printers include traditional POS receipt printers and full-page printers. Printer are supported through Object
Linking and Embedding for Retail POS (OPOS) and Microsoft Windows driver interfaces. Up to two printers can be
used at the same time. This capability supports scenarios where cash-and-carry customer receipts are printed on
receipt printers, whereas customer orders, which carry more information, are printed on a full-page printer. Receipt
printers can be connected directly to a computer via USB, connected to a network via Ethernet, or connected via
Bluetooth.
Scanner
Up to two bar code scanners can be used at the same time. This capability supports scenarios where a scanner that
is more mobile is required in order to scan large or heavy items, whereas a fixed embedded scanner is used for
most standard-sized items, to speed up checkout times. Scanners can be supported through OPOS, Universal
Windows Platform (UWP), or keyboard wedge interfaces. USB or Bluetooth can be used to connect a scanner to a
computer.
MSR
One USB magnetic stripe reader (MSR) can be set up by using OPOS drivers. If you want to use a stand-alone MSR
for electronic funds transfer (EFT) payment transactions, the MSR must be managed by a payment connector.
Stand-alone MSRs can be used for customer loyalty entry, employee sign-in, and gift card entry, independently of
the payment connector.
Cash drawer
Two cash drawers can be supported per hardware profile. This capability enables two active shifts per register to be
available at the same time. In the case of a shared shift, or a cash drawer that is used by multiple mobile POS
devices at the same time, only one cash drawer is allowed per hardware profile. Cash drawers can be connected
directly to a computer via USB, connected to a network, or connected to a receipt printer via an RJ12 interface. In
some cases, cash drawers can also be connected via Bluetooth.
Line display
Line displays are used to show products, transaction balances, and other useful information to the customer during
a transaction. One line display can be connected to the computer via USB by using OPOS drivers.
Signature capture
Signature capture devices can be connected directly to a computer via USB by using OPOS drivers. When signature
capture is configured, the customer is prompted to sign on the device. After the signature is provided, it's shown to
the cashier for acceptance.
Scale
Scales can be connected to the computer via USP by using OPOS drivers. When a product that is marked as a
“Weighed” product is added to a transaction, the POS reads the weight from the scale, adds the product to the
transaction, and uses the quantity that the scale provided.
PIN pad
Personal identification number (PIN) pads are supported through OPOS, but they must be managed via a payment
connector.
Secondary display
When a secondary display is configured, the number 2 Windows display is used to show basic information. The
purpose of the secondary display is to support independent software vendor (ISV) extension, because out of the
box, the secondary display isn't configurable and shows limited content.
Payment device
Payment device support is implemented through the payment connector. Payment devices can perform one or
many of the functions that other device classes provide. For example, a payment device can function as an
MSR/card reader, line display, signature capture device, or PIN pad. Support for payment devices is implemented
independently of the stand-alone device support that is provided for other devices that are included in the
hardware profile.

Supported interfaces
OPOS
To help guarantee that the largest range of devices can be used with Commerce, the OLE for POS industry standard
is the primary peripheral device platform that is supported. The OLE for POS standard was produced by the
National Retail Federation (NRF), which establishes industry-standard communication protocols for peripheral
devices. OPOS is a widely adopted implementation of the OLE for POS standard. It was developed in the mid-1990s
and has been updated several times since then. OPOS provides a device driver architecture that enables easy
integration of POS hardware with Windows–based POS systems. OPOS controls handle communication between
compatible hardware and the POS software. An OPOS control consists of two parts:
Control object – The control object for a device class (such as line displays) provides the interface for the
software program. Monroe Consulting Services (www.monroecs.com) provides a standardized set of OPOS
control objects that are known as the common control objects (CCOs). The CCOs are used to test the POS
component of Commerce. Therefore, the testing helps guarantee that, if Commerce supports a device class
through OPOS, many device types can be supported, provided that the manufacturer provides a service object
that is built for OPOS. You don't have to explicitly test each device type.
Ser vice object – The service object provides communication between the control object (CCO) and the device.
Typically, the service object for a device is provided by the device manufacturer. However, in some cases, you
might have to download the service object from the manufacturer’s website. For example, a more recent service
object might be available. To find the address of the manufacturer's website, see your hardware documentation.
Support for the OPOS implementation of OLE for POS helps guarantee that, if the device manufacturers and POS
publishers implement the standard correctly, POS systems and supported devices can work together, even if they
weren't previously tested together.

NOTE
OPOS support doesn't guarantee support for all devices that have OPOS drivers. Commerce must first support that device
type, or class, through OPOS. In addition, service objects might not always be up to date with the latest version of the CCOs.
You should also be aware that, in general, the quality of service objects varies.

Windows
Receipt printing at the POS is optimized for OPOS. OPOS tends to be much faster than printing through Windows.
Therefore, it's a good idea to use OPOS, especially in environments where 40-column receipts are printed and
transaction times must be fast. For most devices, you will use OPOS controls. However, some OPOS receipt printers
also support Windows drivers. By using a Windows driver, you can access the latest fonts and network one printer
for multiple registers. However, there are drawbacks to using Windows drivers. Here are some examples of these
drawbacks:
When Windows drivers are used, images are rendered before printing occurs. Therefore, printing tends to be
slower than it is on printers that use OPOS controls.
Devices that are connected through the printer (“daisy-chained”) might not work correctly when Windows
drivers are used. For example, the cash drawer might not open, or the slip printer might not word as you expect.
OPOS also supports a more extensive set of variables that are specific to receipt printers, such as paper cutting
or slip printing.
Windows printers are not supported through the IIS hardware station.
If OPOS controls are available for the Windows printer that you're using, the printer should still work correctly with
Commerce.
Universal Windows Platform
UWP, in the case of peripherals, is related to Windows support for Plug and Play devices. When a Plug and Play
device is connected to a Windows OS version that supports that type of device, no driver is required for the device
to be used as intended. For example, if Windows detects a Bluetooth speaker device, the OS knows that the device
has the Speaker class type. Therefore, and it treats that device as a speaker. No additional setup is required. In the
case of POS devices, many USB devices can be plugged in, and Windows will recognize them as Human Interface
Devices (HIDs). However, it might not be able to determine the capabilities that the device provides, because the
device doesn't specify the class, or type, of device. In Windows 10, device classes for bar code scanners and MSRs
have been added. Therefore, if a device declares itself to Windows 10 as a device of one of these classes, Windows
will listen for events from the device at the appropriate times. Modern POS supports UWP MSRs and scanners.
Therefore, when it's ready for input from one of these devices, and a device that belongs to one of these classes is
connected, the device can be used. For example, if a UWP bar code scanner is plugged into a Windows 10 computer,
and bar code sign-in is configured for Modern POS, the bar code scanner will become active on the sign-in screen.
No additional setup is required. Additional classes of point of service UWP devices are being added to Windows.
These classes include classes for cash drawers and receipt printers. Support for these new device classes in Modern
POS is pending.
Keyboard wedge
Keyboard wedge devices send data to the computer as if that data were typed on a keyboard. Therefore, by default,
the field that is active at the POS will receive the data that is scanned or swiped. In some cases, this behavior can
cause the wrong type of data to be scanned into the wrong field. For example, a bar code might be scanned into a
field that is intended for input of credit card data. In many cases, there is logic at the POS that determines whether
the data that is scanned or swiped is a bar code or card swipe. Therefore, the data is handled correctly. However,
when devices are set up as OPOS instead of keyboard wedge devices, there is more control over how the data from
those devices can be consumed, because more is “known” about the device that the data originates from. For
example, data from a bar code scanner is automatically recognized as a bar code, and the associated record in the
database is found more easily and faster than if a generic string search were used, as in the case of keyboard wedge
devices.
Native printer
Native (or "Device" as the type is named in the hardware profile) printers can be configured to prompt the user to
select a printer that is configured for the computer. When a printer of the Device type is configured, if Modern POS
encounters a print command, the user is prompted to select a printer in a list. This behavior differs from the
behavior for Windows drivers, because the Windows printer type in the hardware profile doesn't show a list of
printers. Instead, it requires that a named printer be provided in the Device name field.
Network
Network-addressable cash drawers, receipt printers, and payment terminals can be used over a network, either
directly through the Interprocess Communications (IPC) hardware station that is built into the Modern POS for
Windows application or through the IIS hardware station for other Modern POS clients.

Hardware station deployment options


Dedicated
Modern POS clients for Windows and Android include Dedicated or built-in hardware stations. Those clients can
communicate directly with peripherals using business logic that is built into the applications. The Android
application only supports network devices. For more information on peripheral support for the Android, visit the
Set up POS hybrid app on Android and iOS article.
To use the dedicated hardware station, assign a hardware profile to a register that will use the Modern POS for
Windows or Android applications. Then create a hardware station of the Dedicated type for the store where the
register will be used. Start the Modern POS in non-drawer mode and use the use the Manage hardware stations
operation to turn on the hardware station capabilities, the dedicated hardware station will be active by default. Next,
log out of the Modern POS, then log back in and open a shift and the peripherals configured in the hardware profile
will be usable.
Shared
Also sometimes referred to as the "IIS" hardware station, “IIS” implying that the POS application connects to the
hardware station via Microsoft Internet Information Services. The POS application connects to the IIS hardware
station via web services that run on a computer where the devices are connected. When the shared hardware
station is used, the peripherals that are connected to a hardware station can be used by any POS register that is on
the same network as the IIS hardware station. Because only Modern POS for Windows and Android include built-in
support for peripherals, all other Modern POS applications must use the IIS hardware station to communicate with
POS peripherals that are configured in the hardware profile. Therefore, each instance of the IIS hardware station
requires a computer that runs the web service and application that communicates with the devices.
The shared hardware station can be used to allow multiple point of sale clients to share peripherals or can be used
to manage a committed set or peripherals for a single point of sale.
When a hardware station is used to support sharing of peripherals between multiple POS clients, only cash
drawers, receipt printers, and payment terminals should be used. You can't directly connect stand-alone bar code
scanners, MSRs, line displays, scales, or other devices. Otherwise, conflicts will occur when multiple POS devices try
to claim those peripherals at the same time. Here is how conflicts are managed for supported devices:
Cash drawer – The cash drawer is opened via an event that is sent to the device. The only issue that can occur
when a cash drawer is called occurs if the cash drawer is already open. In the case of shared hardware stations,
the cash drawer should be set to Shared in the hardware profile. This setting prevents the POS from checking
whether the cash drawer is already open when it sends open commands.
Receipt printer – If two receipt printing commands are sent to the hardware station at the same time, one of
the commands can be lost, depending on the device. Some devices have internal memory or pooling that can
prevent this issue. If a print command isn't successful, the cashier receives an error message and can retry the
print command from the POS.
Payment terminal – If a cashier tries to tender a transaction on a payment terminal that is already being used,
a message notifies the cashier that the terminal is being used and asks the cashier to try again later. Usually,
cashiers can see that a terminal is already being used and will wait until the other transaction is completed
before they try to tender again.
Validation is planned for a future release, to detect whether unsupported devices are set up for a hardware profile
that is mapped to a shared hardware station. If any unsupported devices are detected, the user will receive a
message that states that the devices aren't supported for shared hardware stations. In the case of shared hardware
stations, the Select upon tendering option is set to Yes at the register level. The POS user is then prompted to
select a hardware station when a tender is selected for a transaction at the POS. When the hardware station is
selected only at the time of tender, the hardware station selection is added directly to the POS workflow for mobile
scenarios. As an additional benefit, the line display on the payment terminal isn't used for shared scenarios. If the
payment terminal is used as a line display, other users might be blocked from using that terminal until the
transaction is completed. In mobile scenarios, lines might be added to a transaction over a longer period. Therefore,
the Select upon tendering option is required in order to ensure optimum device availability.
Network peripherals
The network designation for devices in the hardware profile enables cash drawers, receipt printers, and payment
terminals to be connected via a network connection.
Modern POS for Windows
You can specify IP addresses for network peripherals in two places. If the Modern POS Windows client is using a
single set of network peripherals, you should set the IP addresses for those devices by using the IP configuration
option on the Action Pane for the register itself. In the case of network devices that will be shared among POS
registers, a hardware profile that has network devices assigned to it can be mapped directly to a shared hardware
station. To assign IP addresses, select that hardware station on the Stores page, and then use the IP configuration
option in the Hardware stations section to specify the network devices that are assigned to that hardware station.
For hardware stations that have only network devices, you don't have to deploy the hardware station itself. In this
case, the hardware station is required only in order to conceptually group network-addressable devices according
to their location in the store.
Cloud POS and Modern POS for iOS
The logic that drives physically connected and network-addressable peripherals is contained in the hardware
station. Therefore, for all POS clients except Modern POS for Windows and Android, an IIS hardware station must
be deployed and active to enable the POS to communicate with peripherals, regardless of whether those
peripherals are physically connected to a hardware station or addressed over the network.

Setup and configuration


Hardware station installation
For information, see Configure and install hardware station.
Modern POS for Windows setup and configuration
For information, see Configure, install and activate Modern POS (MPOS).
Modern POS for Android and iOS setup and configuration
For information, see Set up POS hybrid app on Android and iOS.
OPOS device setup and configuration
For more information about OPOS components, see the "Supported interfaces" section of this document. Typically,
OPOS drivers are provided by the device manufacturer. When an OPOS device driver is installed, it adds a key to
the Windows registry in one of the following locations:
32-bit system: HKEY_LOCAL_MACHINESOFTWAREOLEforRetailServiceOPOS
64-bit system: HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeOLEforRetailServiceOPOS
Within the ServiceOPOS registry location, configured devices are organized according to the OPOS device class.
Multiple device drivers are saved.

Supported scenarios by hardware station type


Client support – IPC hardware station vs. IIS hardware station
The following table shows the topologies and deployment scenarios that are supported.

C L IEN T IP C H A RDWA RE STAT IO N IIS H A RDWA RE STAT IO N

Windows app Yes Yes

Cloud POS No Yes

Android Yes Yes

iOS No Yes

Network peripherals
Network peripherals can be supported directly through the hardware station that is built into the Modern POS for
Windows and Android applications. For all other clients, you must deploy an IIS hardware station.

C L IEN T IP C H A RDWA RE STAT IO N IIS H A RDWA RE STAT IO N

Windows app Yes Yes

Cloud POS No Yes

Android Yes Yes

iOS No Yes
Supported device types by hardware station type
Modern POS for Windows with an IPC (built-in) hardware station
SUP P O RT ED DEVIC E C L A SS SUP P O RT ED IN T ERFA C ES

Printer OPOS
Windows driver
Device
Network

Printer 2 OPOS
Windows driver
Device
Network

Line display OPOS

Dual display Windows driver

MSR OPOS
UWP (No setup is required.)
Keyboard wedge (No setup is required.)

Drawer OPOS
Network
Note: Only one drawer can be set up if Use shared
shift is configured on the drawer.

Drawer 2 OPOS
Network
Note: Only one drawer can be set up if Use shared
shift is configured on the drawer.

Scanner OPOS
UWP (No setup is required.)
Keyboard wedge (No setup is required.)

Scanner 2 OPOS
UWP (No setup is required.)
Keyboard wedge (No setup is required.)

Scale OPOS

PIN pad OPOS (Support is provided through customization of the


payment connector.)

Signature capture OPOS


SUP P O RT ED DEVIC E C L A SS SUP P O RT ED IN T ERFA C ES

Payment terminal Custom device support


Network (For more information, see the payment
connector documentation.)

All Modern POS clients that have a committed "Shared" IIS hardware station

NOTE
When the IIS hardware station is “committed” there is a one-to-one relationship between the POS client and the hardware
station.

SUP P O RT ED DEVIC E C L A SS SUP P O RT ED IN T ERFA C ES

Printer OPOS
Network

Printer 2 OPOS
Network

Line display OPOS

MSR OPOS

Drawer OPOS
Network
Note: Only one drawer per hardware profile can be set
up if Use shared shift is configured on the drawer.

Drawer 2 OPOS
Network

Scanner OPOS

Scanner 2 OPOS

Scale OPOS

PIN pad OPOS (Support is provided through customization of the


payment connector.)

Sig. capture OPOS

Payment terminal Custom device support


Network (For more information, see the payment
connector documentation.)

All Modern POS clients shared an IIS hardware station


NOTE
When the IIS hardware station is “shared,” multiple devices can use the hardware station at the same time. For this scenario,
you should use only the devices that are listed in the following table. If you try to share devices that aren't listed here, such as
bar code scanners and MSRs, errors will occur when multiple devices try to claim the same peripheral. In the future, such a
configuration will be explicitly prevented.

SUP P O RT ED DEVIC E C L A SS SUP P O RT ED IN T ERFA C ES

Printer OPOS
Network

Printer 2 OPOS
Network

Drawer OPOS
Network
Note: Only one drawer per hardware profile can be set
up if Use shared shift is configured on the drawer.

Drawer 2 OPOS
Network

Payment terminal Custom device support


Network (For more information, see the payment
connector documentation.)

Configuration for supported scenarios


For more information about how to create hardware profiles, see Define and maintain channel clients, including
registers and hardware stations.
Modern POS for Windows with an IPC (built-in) hardware station
This configuration is the most typical configuration for traditional, fixed POS registers. For this scenario, the
hardware profile information is mapped directly to the register itself. The EFT terminal number should also be set
on the register itself. To set up this configuration, follow these steps.
1. Create a hardware profile where all the required peripherals are configured.
2. Map the hardware profile to the POS register.
3. Create a hardware station of the Dedicated type for the store where the POS register will be used. A
description is optional.

NOTE
You don't have to set any other properties on the hardware station. All other required information, such as the
hardware profile, will come from the register itself.

4. Click Retail and Commerce > Retail and Commerce IT > Distribution schedule .
5. Select the 1090 distribution schedule to sync the new hardware profile to the store. Click Run now to sync
changes to the POS.
6. Select the 1040 distribution schedule to sync the new hardware station to the store. Click Run now to sync
changes to the POS.
7. Install and activate Modern POS for Windows.
8. Start Modern POS for Windows, and begin to use the connected peripheral devices.
Modern POS for Android with an IPC (built-in) hardware station
New for 10.0.8 - Epson network printers and cash drawers connected to those printers via DK port are now
supported for the Modern POS fo Android app. For details, visit the Set up POS hybrid app on Android and iOS
article.
All Modern POS clients that have a committed, shared IIS hardware station
This configuration can be used for all Modern POS clients that have a hardware station that is used exclusively by
one POS register. To set up this configuration, follow these steps.
1. Create a hardware profile where all the required peripherals are configured.
2. Create a hardware station of the Dedicated type for the store where the POS register will be used.
3. On the dedicated hardware station, set the following properties:
Host name – The name of the host computer where the hardware station will run.

NOTE
Cloud POS can resolve localhost to determine the local computer where Cloud POS is running. However, the
certificate that is required in order to pair Cloud POS with the hardware station must also have "Localhost" as
the computer name. To avoid issues, we recommend that you list an instance of each dedicated hardware
station for the store, as required. For each hardware station, the host name should be the specific computer
name where the hardware station will be deployed.

Por t – The port to use for the hardware station to communicate with the Modern POS client.
Hardware profile – If the hardware profile isn't provided on the hardware station itself, the
hardware profile that is assigned to the register will be used.
EFT POS number – The EFT terminal ID to use when EFT authorizations are sent. This ID is provided
by the credit card processor.
Package name – The hardware station package to use when the hardware station is deployed.
4. Click Retail and Commerce > Retail and Commerce IT > Distribution schedule .
5. Select the 1090 distribution schedule to sync the new hardware profile to the store. Click Run now to sync
changes to the POS.
6. Select the 1040 distribution schedule to sync the new hardware station to the store. Click Run now to sync
changes to the POS.
7. Install the hardware station. For more information about how to install the hardware station, see Configure
and install Retail hardware station.
8. Install and activate Modern POS. For more information about how to install Modern POS, see Configure,
install and activate Modern POS (MPOS).
9. Sign in to Modern POS, and select Perform non-drawer operations .
10. Start the Manage hardware stations operation.
11. Click Manage .
12. On the hardware station management page, set the option to turn on the hardware station.
13. Select the hardware station to use, and then click Pair .
14. After the hardware station is paired, click Close .
15. On the hardware station selection page, click the recently selected hardware station to make it active.
All Modern POS clients that have a shared IIS hardware station
This configuration can be used for all Modern POS clients that share hardware stations with other devices. To set up
this configuration, follow these steps.
1. Create a hardware profile where the required peripherals are configured.
2. Create a hardware station of the Shared type for the store where the POS register will be used.
3. On the shared hardware station, set the following properties:
Host name – The name of the host computer where the hardware station will run.
Description – Text that will help identify the hardware station, such as Returns or Front of store .
Por t – The port to use for the hardware station to communicate with the Modern POS client.
Hardware profile – For shared hardware stations, each hardware station should have a hardware
profile. Hardware profiles can be shared among hardware stations, but they must be mapped to each
hardware station. In addition, we recommend that you use shared shifts when multiple devices use the
same shared hardware station. To set up a shared shift, click Retail and Commerce > Channel setup >
POS setup > POS profiles > Hardware profiles . For each shared hardware profile, select the cash
drawer, and set the Shared shift drawer option to Yes .
EFT POS number – The EFT terminal ID to use when EFT authorizations are sent. This ID is provided by
the credit card processor.
Package name – The hardware station package to use when the hardware station is deployed.
4. Repeat steps 2 and 3 for each additional hardware station that is required in the store.
5. Click Retail and Commerce > Retail and Commerce IT > Distribution schedule .
6. Select the 1090 distribution schedule to sync the new hardware profile to the store. Click Run now to sync
changes to the POS.
7. Select the 1040 distribution schedule to sync the new hardware station to the store. Click Run now to sync
changes to the POS.
8. Install the hardware station on each host computer that you set up in steps 2 and 3. For more information
about how to install the hardware station, see Configure and install Retail hardware station.
9. Install and activate Modern POS. For more information about how to install Modern POS, see Configure,
install, and activate Modern POS (MPOS).
10. Sign in to Modern POS, and select Perform non-drawer operations .
11. Start the Manage hardware stations operation.
12. Click Manage .
13. On the hardware station management page, set the option to turn on the hardware station.
14. Select the hardware station to use, and then click Pair .
15. Repeat step 14 for each hardware station that Modern POS will use.
16. After all the required hardware stations are paired, click Close .
17. On the hardware station selection page, click the recently selected hardware station to make it active.

NOTE
If devices often use different hardware stations, we recommend that you configure Modern POS to prompt cashiers to select
a hardware station when they begin the tender process. Click Retail and Commerce > Channel setup > POS setup >
Registers . Select the register, and then set the Select upon tender option to Yes . Use the 1090 distribution schedule to
sync changes to the channel database.

Extensibility
For information about extensibility scenarios for the hardware station, see Hardware Station extensibility.

Security
According to current security standards, the following settings should be used in a production environment:
Hardware station installer
The hardware station installer will automatically make these registry edits as part of the installation through self-
service.
Secure Sockets Layer (SSL) should be disabled.
Only Transport Layer Security (TLS) version 1.2 (or the current highest version) should be enabled and used.
SSL and TLS
By default, SSL and all version of TLS except TLS 1.2 are disabled. To edit or enable these values, follow these steps:
1. Press the Windows logo key+R to open a Run window. 2. In the Open field, type Regedit , and then click OK . 3. If
a User Account Control message box appears, click Yes . 4. In the Registr y Editor window, navigate to
HKEY_LOCAL_MACHINESystemCurrentControlSetSecurityProvidersSCHANNELProtocols . The following
keys have been automatically entered to allow for TLS 1.2 only: - TLS 1.2Server:Enabled=1 - TLS
1.2Server:DisabledByDefault=0 - TLS 1.2Client:Enabled=1 - TLS 1.2Client:DisabledByDefault=0 - TLS
1.1Server:Enabled=0 - TLS 1.1Client:Enabled=0 - TLS 1.0Server:Enabled=0 - TLS 1.0Client:Enabled=0 - SSL
3.0Server:Enabled=0 - SSL 3.0Client:Enabled=0 - SSL 2.0Server:Enabled=0 - SSL 2.0Client:Enabled=0
No additional network ports should be open, unless they are required for known, specified reasons.
Cross-origin resource sharing must be disabled and must specify the allowed origins that are accepted.
Only trusted certificate authorities should be used to obtain certificates that will be used on computers that run
the hardware station.

NOTE
It’s very important that you review security guidelines for IIS and the Payment Card Industry (PCI) requirements.

Peripheral simulator
For information, see Peripheral simulator for Commerce.

Microsoft-tested peripheral devices


IPC (built-in) hardware station
The following peripherals were tested by using the IPC hardware station that is built into Modern POS for Windows.
Printer

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Epson Tm-T88IV OPOS

Epson TM-T88V OPOS

Epson TM-T88 Custom Connected via network

Star TSP650II Custom Connected via network

Star mPOP OPOS Connected via Bluetooth

HP F7M67AA OPOS Powered USB

Bar code scanner

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Motorola DS9208 OPOS

Honeywell 1900 UWP

Symbol LS2208 OPOS

HP Integrated E1L07AA OPOS

Datalogic Magellan 8400 OPOS

PIN pad

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

VeriFone 1000SE OPOS Requires customization of


the payment connector

Payment terminal

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Equinox L5300 Custom Requires customization of


the payment connector

VeriFone MX925 Custom Requires customization of


the payment connector;
connected via network and
USB

VeriFone MX915 Custom Requires customization of


the payment connector;
connected via network and
USB

Cash drawer
M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Star mPOP OPOS Connected via Bluetooth

APG Atwood Custom Connected via network

Star SMD2-1317 OPOS

HP QT457AA OPOS

Epson Custom Connected to network Epson


printer via DK port

Line display

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

HP integrated G6U79AA OPOS

Epson M58DC OPOS

Signature capture

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Scriptel ST1550 OPOS

Scale

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Datalogic Magellan 8400 OPOS

MSR

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Magtek 21073075 UWP

Magtek 21073062 OPOS

HP IDRA-334133 OPOS

Dedicated IIS hardware station


The following peripherals were tested by using a dedicated (not shared) IIS hardware station together with Modern
POS for Windows and Cloud POS.
Printer

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Epson Tm-T88IV OPOS

Epson TM-T88V OPOS


M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Epson TM-T88V Custom Connected via netowrk

Star TSP650II Custom Connected via network

HP F7M67AA OPOS Powered USB

Bar code scanner

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Motorola DS9208 OPOS

Symbol LS2208 OPOS

HP Integrated E1L07AA OPOS

PIN pad

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

VeriFone 1000SE OPOS Requires customization of


the payment connector

Payment terminal

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Equinox L5300 Custom Requires customization of


the payment connector

VeriFone MX925 Custom Requires customization of


the payment connector;
connected via network and
USB

VeriFone MX915 Custom Requires customization of


the payment connector;
connected via network and
USB

Cash drawer

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

APG Atwood Custom Connected via network

Star SMD2-1317 OPOS

HP QT457AA OPOS

Epson Custom Connected to network Epson


printer via DK port

Line display
M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

HP integrated G6U79AA OPOS

Epson M58DC OPOS

Signature capture

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Scriptel ST1550 OPOS

Scale

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Datalogic Magellan 8400 OPOS

MSR

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Magtek 21073075 UWP

Magtek 21073062 OPOS

HP IDRA-334133 OPOS

Shared IIS hardware station


The following peripherals were tested by using a shared IIS hardware station together with Modern POS for
Windows and Cloud POS.

NOTE
Only a printer, payment terminal, and cash drawer are supported.

Printer

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

Epson TM-T88IV OPOS

Epson TM-T88V OPOS

Epson TM-T88 Custom Connected via network

Star TSP650II Custom Connected via network

Star TSP100 OPOS Requires TSP650II drivers

HP F7M67AA OPOS Powered USB

Payment terminal
M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

VeriFone MX925 Custom Requires customization of


the payment connector;
connected via network and
USB

VeriFone MX915 Custom Requires customization of


the payment connector;
connected via network and
USB

Cash drawer

M A N UFA C T URER M O DEL IN T ERFA C E C O M M EN T S

APG Atwood Custom Connected via network

Star SMD2-1317 OPOS

HP QT457AA OPOS

Epson Custom Connected to network Epson


printer via DK port

Troubleshooting
Modern POS can detect the hardware station in its list for selection, but it can’t complete the pairing
Solution: Verify the following list of potential failure points:
The computer that is running Modern POS trusts the certificate that is used on the computer that runs the
hardware station.
To verify this setup, in a web browser, go to the following URL: https://<Computer Name>:<Port
Number>/HardwareStation/ping.
This URL uses a ping to verify that the computer can be accessed, and the browser indicates whether the
certificate is trusted. (For example, in Internet Explorer, a lock icon appears in the address bar. When you
click this icon, Internet Explorer verifies whether the certificate is currently trusted. You can install the
certificate on the local computer by viewing the details of the certificate that is shown.)
On the computer that runs the hardware station, the port that will be used by the hardware station is opened in
the firewall.
The hardware station has correctly installed merchant account information through the Install merchant
information tool that runs at the end of the hardware station installer.
Modern POS can’t detect the hardware station in its list for selection
Solution: Either of the following factors can cause this issue:
The hardware station hasn’t been set up correctly in headquarters. Use the steps earlier in this topic to verify
that the hardware station profile and the hardware station are correctly entered.
The jobs haven’t been run to update the channel configuration. In this case, run the 1070 job for channel
configuration.
Modern POS doesn't reflect new cash drawer settings
Solution: Close the current batch. Changes to the cash drawer aren't updated to Modern POS until the current
batch is closed.
Modern POS is reporting an issue with a peripheral
Solution: Here are some typical causes of this issue:
Make sure that other device driver configuration utilities are closed. If these utilities are open, they might
prevent Modern POS or the hardware station from claiming the device.
If the peripheral is shared with multiple POS devices, make sure that it belongs to one of the following
categories:
Cash drawer
Receipt printer
Payment terminal
If the peripheral doesn't belong to one of these categories, the hardware station isn't designed to enable the
peripheral to be shared among multiple POS devices.
Sometimes, device drivers can cause the common control objects (CCOs) to stop working correctly. If a
device has recently been installed, but it isn't working properly or you notice other issues, you can often
resolve the issue by reinstalling the CCOs. To download the CCOs, visit
http://monroecs.com/oposccos_current.htm.
If you make frequent peripheral changes during testing or troubleshooting, you might have to reset IIS
instead of waiting for the cache to refresh itself. To reset IIS, follow these steps:
1. From the Star t menu, type CMD .
2. In the search results, right-click Command prompt , and then click Run as administrator .
3. In the Command prompt window, type iisreset /Restar t and then press Enter.
4. After IIS has restarted, restart Modern POS.
While you're making frequent changes to peripheral devices, if you also frequently start and exit the POS
client, the dllhost process from a previous POS session can interfere with the current session. In this case, a
device might not be usable until you close the dynamic-link library (DLL) host that is managing the previous
session. To close the DLL host, follow these steps:
1. From the Star t menu, type Task manager .
2. In the search results, click Task manager .
3. In Task manager, on the Details tab, click the column header that is labeled Name to sort the table
alphabetically by name.
4. Scroll down until you find dllhost.exe.
5. Select each DLL host, and then click End task .
6. After the DLL hosts have been closed, restart Modern POS.

Additional resources
Peripheral simulator for Commerce
Peripheral simulator for Commerce
2/14/2020 • 28 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

The peripheral simulator is a utility that Microsoft provides as part of Microsoft Dynamics 365 Commerce and as a
standalone utility. The utility has two primary components, a virtual peripheral simulator and a point of sale (POS)
simulator.
The virtual peripheral simulator is provided primarily to support testing of scenarios that usually require physical
POS peripheral devices. The POS simulator is used to test the compatibility of physical peripheral devices without
having to deploy the POS client.

Install the peripheral simulator


1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Hardware profiles .
2. Click Download , and then click PeripheralSimulator .

NOTE
You must turn off pop-up blockers before you can download the peripheral simulator.

3. After the download is completed, open the Downloads folder, and double-click Vir tualPeripherals.msi to
start the installer.
4. Install the peripheral simulator by using the default settings.
Besides the peripheral simulator, you must install the common control objects from Monroe Consulting Services.
Otherwise, the peripheral simulator won't work correctly. To download the common control objects, go to
http://monroecs.com/oposccos_current.htm.

Virtual peripheral simulator


The virtual peripheral simulator helps you set up, test, and troubleshoot peripheral devices. It can be used to
streamline the testing of peripherals, and to isolate issues that are caused by incorrect setup or malfunctioning
device drivers. The peripheral simulator includes a desktop program that features virtual versions of devices that
Commerce supports. A section for each virtual device shows the interaction between the device and the POS. You
can also use it to provide input that is valid for various POS scenarios. The peripheral simulator supports
interaction between the POS and the following virtual devices:
Printer – The virtual peripheral simulator can show receipts that are configured for a POS printer.
Line display – You can configure a virtual line display to show activity on a physical line display.
Magnetic stripe reader (MSR) – You can send simulated magnetic stripe events to the POS from the
virtual peripheral simulator.
Drawer – You can simulate a physical cash drawer.
Drawer 2 – By setting up a second cash drawer in the peripheral simulator, you can simulate scenarios that
involve a single POS register that has two active shifts.
Scanner – The virtual bar code scanner that the virtual peripheral simulator supports can issue bar code
scan events.
Scale – A virtual scale lets you simulate the interaction of weighed items with the POS.
Personal identification number (PIN) pad – You can simulate PIN pad operations.

NOTE
You must implement support for a physical PIN pad through the payment connector.

Signature capture – The virtual peripheral simulator includes a virtual signature capture device that you
can set up to prompt for signatures that are required for some tenders, such as customer account payments.
Payment terminal – A virtual payment terminal can be used in conjunction with a custom payment
connector to test application programming interface (API) calls from the POS to a virtual payment device. To
use the virtual payment terminal, you must implement a payment connector. For more information, see
<Implementing a payment connector and payment device (white paper)>.
You can also use the virtual peripheral simulator to simulate keyboard wedge events that originate from a bar code
scanner and MSR. The virtual peripheral simulator specifically supports Object Linking and Embedding for Retail
POS (OPOS) devices.
Key scenarios – Virtual peripheral simulator
Troubleshooting
You can use the peripheral simulator to troubleshoot device setup. If you don't have the peripheral simulator or a
second device of the same class, it can be difficult to determine where issues originate. However, when you have
the peripheral simulator, you can set up virtual devices, and run the same code paths and business logic that are
used for physical devices. From the perspective of the peripheral simulator, the main difference between virtual
devices and physical devices is the service object, or device driver. For physical devices, the service object is
provided by the device manufacturer. By contrast, for virtual devices, the service objects are provided as part of the
peripheral simulator. When the peripheral simulator is working correctly, if a device doesn't work correctly after the
device name in the hardware profile is changed to the name of a real device, you can assume that there's an issue
with the service object that the manufacturer provided.
Training
You can use the peripheral simulator to add a realistic layer to cashier training when a physical hardware setup isn't
available. When the peripheral simulator is included in training scenarios, the cashier can more effectively interact
with the POS by providing input such as product bar code scans and gift card swipes, and by observing which
receipts are printed for a specific transaction.
Testing
You can use the peripheral simulator to test product bar codes, receipt formats, and so on, without having to deploy
physical hardware in a virtual environment. Because physical hardware isn't required, and you don't have to deploy
a POS client on a hardware station or a physical computer, you can more quickly test changes that are made in the
back office.
Set up the virtual peripheral simulator
Set up a hardware profile
1. To set up the peripheral simulator, go to Retail and Commerce > Channel setup > POS setup > POS
profiles > Hardware profiles .
2. Click New to create a profile.
3. Enter values in the Profile number and Description fields.
4. Use the following table to set up the virtual devices that must be tested. Here is an explanation of the
columns in the table:
Device – This column gives the name of the FastTab where you set up the device.
Device type – This column gives the value that you select in the field that is labeled with the name of
the device.
Device name – This column gives the exact value that you enter for the device name.

IMPORTANT
The device names that are given here are required, because the hardware station uses these specific names to
address the devices. If you don't use the following specific names, the device won't be usable.

No specific setup in the hardware profile is required in order to simulate keyboard wedge events
from the bar code scanner and MSR.

DEVIC E DEVIC E T Y P E DEVIC E N A M E

Printer OPOS MockOPOSPrinter

Line display OPOS MockOPOSLineDisplay

MSR OPOS MockOPOSMSR

Drawer OPOS MockOPOSDrawer1

Drawer2 OPOS MockOPOSDrawers

Scanner OPOS MockOPOSScanner

Scale OPOS MockOPOSScale

PIN Pad OPOS MockOPOSPinPad

Signature capture OPOS MockOPOSSignatureCapture

Assign the hardware profile to a register


1. After the hardware profile is created, go to Retail and Commerce > Channel setup > POS setup >
Registers .
2. In the POS registers list, click the link in the Register number field for the register that should use the
peripheral simulator.
3. Click Edit .
4. In the Profiles section, in the Hardware profile field, select the hardware profile that you created for virtual
peripherals.
5. Click Save .
Synchronize changes to the channel database
1. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
2. Select the 1090 distribution schedule.
3. Click Run now to synchronize changes to the POS.
After the data is synchronized, the new hardware profile and changes on the register are available in the channel
database.

Using the virtual peripheral simulator


To start the virtual peripheral simulator, click Star t on your computer, type Peripheral simulator , and then select
the app when it appears in the search results. After you start the peripheral simulator, click Use vir tual
peripherals . The supported devices will be listed as tabs on the left side of the window. To view a specific device,
click the tab for that device.
Line display capabilities
When the virtual line display is configured, it shows line items as they are scanned in the POS transaction. In
addition to line items, the display shows the total that is due when a tender is selected at the POS. It also shows the
balance that is due if a tender is entered but a balance is still due for the transaction. When the POS isn't being
used, a message can be shown to indicate that the till is closed. You must configure the message on the Line
display FastTab in the hardware profile.
Cash drawer capabilities
When the hardware profile is configured to use virtual cash drawers, the POS opens the cash drawer for the active
shift in response to drawer operations such as tender declarations. The POS also opens the cash drawer so that the
cashier can make change or deposit cash during standard cash-and-carry transactions. The virtual cash drawers
have the labels Main drawer and Secondar y drawer . These labels represent Drawer and Drawer 2 in the
hardware profile, respectively. When a drawer is closed, an image of a closed cash drawer is shown, and the button
on the closed cash drawer is labeled Open drawer . If you click this button, the image is replaced with an image of
an open cash drawer to indicate that the drawer is now open. The button on the open cash drawer is labeled Close
drawer .
Several operations at the POS can cause the cash drawer to open. Most operations can't proceed while the cash
drawer is open. The exceptions are some end-of-day procedures. If the POS user receives an error message that
states that an operation can't be performed while the cash drawer is open, the user must close the virtual or
physical cash drawer to proceed. If a cash drawer is marked as Shared in the hardware profile, the system doesn't
verify that the drawer is closed before an operation. The operation proceeds as usual, even if the cash drawer is
open. This behavior supports scenarios where cash drawers are shared among sales associates, and where one
associate uses a cash drawer while another associate performs unrelated tasks on his or her own POS device.
Changes that are made to the cash drawer aren't evident until the current shift is closed and a new shift is opened.
MSR capabilities
The peripheral simulator provides robust support for virtual MSR operations by working in either OPOS mode or
keyboard wedge mode. OPOS mode requires that the MSR be configured in the hardware profile to work as an
OPOS device. Keyboard wedge mode just sends keyboard wedge data events to Microsoft Windows. Besides
differences in setup, OPOS and keyboard wedge modes differ in the following ways:
The POS client enables OPOS MSR devices for specific scenarios, such as scenarios that allow for magnetic
stripe data for loyalty or gift card entry.
In keyboard wedge mode, the peripheral simulator sends keyboard wedge data to the field that is active when
the data is sent. This behavior resembles the behavior that occurs if the data is entered by using a keyboard. To
use the MSR as a keyboard wedge, the user must switch to Modern POS (MPOS) to make sure that data is
received in the correct field. Therefore, you can configure a delay, so that the user has time to make sure that the
data will be sent to the correct field.
Testing gift and payment card swipes
The virtual MSR that the peripheral simulator provides also lets you configure specific MSR data to test scenarios
for gift and payment card swipes. To create a card, click the plus sign (+ ) button, and select the type of card. Then
specify the card number or track data that should be sent to the POS, together with the expiration month and year
for the card that you're defining. The value that you select in the Type of card field is just a label that can be
mapped to a card. This label makes it easier to identify cards when they are swiped through the peripheral
simulator. You can select cards that have been configured in the peripheral simulator by using the left arrow (< )
and right arrow (> ) buttons above the image of the card. You can edit and delete cards by using the Edit and
Delete buttons next to the plus sign (+ ) button.
PIN pad
You can configure the PIN pad simulator to simulate an OPOS PIN pad. When an electronic funds transfer (EFT)
transaction is performed at the POS and requires that a PIN be entered, the hardware station calls the PIN device to
prompt for PIN entry. To work, the PIN pad in the peripheral simulator must support an EFT payment connector.
Printer
The virtual peripheral printer just shows receipts as they are printed from the POS. If a print operation produces
multiple receipts, you can scroll through the receipts.
Configure receipt printing
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Hardware profiles .
2. Select the hardware profile that you created for virtual peripherals.
3. On the Printer FastTab, click Edit .
4. In the Receipt profile ID field, select a receipt profile.
5. Click Save .
Scale
When a scale product is added to the POS transaction, and a scale is configured, the POS retrieves the weight from
the scale. For both the virtual and physical scale, the product or weight should be specified before the product is
added to the transaction. Before you add the scale product to the transaction, go to the scale in the peripheral
simulator, and use the plus sign (+ ) and minus sign (– ) buttons to adjust the weight that the scale should report.
You can also enter the desired weight directly in the Current value field. You can adjust the units of weight for the
scale by using the plus sign (+ ), Edit , and Delete buttons. In this way, units can be specified based on the products
that are weighed or the locale where the scale is used.
C o n fi g u r e a sc a l e p r o d u c t

1. Go to Retail and Commerce > Products and categories > Released products by categor y .
2. Open the product record.
3. Select the product to weigh.
4. On the Retail and Commerce FastTab, set the Scale product option from No to Yes .
Sy n c h r o n i z e c h a n g e s t o t h e c h a n n e l d a t a b a se

1. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
2. Select the 1040 distribution schedule.
3. Click Run now to synchronize changes to the POS.
After the data is synchronized, when a scale product is added to the POS transaction, the POS checks the scale for
the weight.
Signature capture
The virtual signature capture device prompts the user to provide a signature on the virtual signature capture pad
when the tender that is used requires a signature. The user can accept the signature to show it at the POS. The
cashier can then accept the signature. The signature is then saved together with the tender and is synchronized to
the back office together with other transaction data.
Se t u p a t e n d e r t o r e q u i r e a si g n a t u r e

1. Go to Retail and Commerce > Channels > Stores > All stores .
2. Select the store.
3. Click Edit .
4. Click Set up , and then, in the Set up section, click Payment methods .
5. Click Edit .
6. Select the payment method that requires a signature.
7. In the General section, under Signature Capture , set the Use signature capture device option to Yes .
8. In the Signature capture minimum amount field, enter the minimum amount that should trigger signature
capture.
Sy n c h r o n i z e c h a n g e s t o t h e c h a n n e l d a t a b a se

1. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
2. Select the 1070 distribution schedule.
3. Click Run now to synchronize changes to the POS.
After the data is synchronized, when a tender is used that requires a signature, and the amount meets the signature
threshold, the POS prompts for a signature on the virtual signature capture device.
Additional configuration
You can edit the peripheral simulator's configuration file to more appropriately address the scenarios that you're
testing. You can find the configuration file at C:\Program Files (x86)\Microsoft Dynamics
365\70\VirtualPeripherals\Microsoft.Dynamics.Commerce.VirtualPeripherals.Client.exe.config. The configuration
file defines the units that are available for testing on the scale, the card types that are available for testing, and bar
code types. For example, by modifying the text values in the configuration file, you can add a new card type or a
new unit of measure that can be selected at runtime. The new values will appear after the app is restarted.
Troubleshooting
Activities for the peripheral simulator are logged in the peripheral simulator. You can find the log at C:\Program
Files (x86)\Microsoft Dynamics
365\70\VirtualPeripherals\Microsoft.Dynamics.Commerce.VirtualPeripherals.Client.exe.config. The peripheral
simulator also reports issues to the Windows event log, which you can access at Application and Ser vices Logs
> Microsoft > DynamicsAX .
If changes that you made to the hardware profile or other areas aren't evident when you use MPOS or the
peripheral simulator, check the distribution scheduler jobs that you used to synchronize the data to the channel
database. If the changes were synchronized but still aren't evident at the POS, restart the POS client.
Changes to configured cash drawers aren't effective until a new shift is created. Therefore, if you make changes to
cash drawers, make sure that you always close the existing shift to test the new cash drawer setup.
Sometimes, if a manufacturer's driver is installed after the common control objects from Monroe Consulting
Services, the driver can cause the common control objects to stop working correctly. In this case, you should
reinstall the common control objects.
At install time, it's possible that certain assemblies related to the virtual peripheral simulator were registered
incorrectly. This issue is often associated with an 'OPOS_E_CLOSED' error when attempting to use a virtual device.
This can be corrected by running the Windows Assembly Registration tool. To register the assembly (called
Microsoft.Dynamics.Commerce.VirtualPeripherals.ServiceObjects.dll), open a command prompt as administrator
and run 'regasm /codebase "C:\Program Files (x86)\Microsoft Dynamics 365\70\Peripheral simulator for
Retail\Microsoft.Dynamics.Commerce.VirtualPeripherals.ServiceObjects.dll"'.

POS simulator
The POS simulator lets device manufacturers, independent software vendors (ISVs), and retailers test peripheral
devices without having to deploy the POS. By using the same business logic for peripherals as MPOS and the
standalone hardware station, the POS simulator can determine device driver compatibility with the POS as a
standalone utility. Therefore, device selection can occur independently of POS setup and deployment.
The POS simulator is also provided as a standalone utility that is independent of Commerce. As a standalone utility,
the POS simulator is primarily used to test peripheral device compatibility. Only devices that are tested by using the
POS simulator are acceptable for new deployments of the POS. Testing should be driven by the device
manufacturers themselves. Parts of the POS simulator overview are intended to explain how the POS simulator is
used for compatibility testing. Manufacturers that are interested in testing their devices for compatibility with the
POS or standalone hardware station should send an email to [email protected] to request information about
the program.
Using the POS simulator
1. Click Star t on your computer, type Peripheral simulator , and then select the app when it appears in the
search results.
2. Click Use vir tual peripherals . The supported devices will be listed as tabs on the left side of the window. To
view a specific device, click the tab for that device.
The POS simulator supports the following devices:
Line display
Cash drawer
MSR
PIN pad
Printer
Scale
Signature capture pad
Bar code scanner
Payment terminal

NOTE
A payment terminal requires that a payment connector be present. For more information, see Create an end-to-end
payment integration for a payment terminal.

Below the list of supported devices, there is a Settings tab. You can use the Settings tab to specify how the POS
simulator should communicate with the devices that are being tested. If Runtime is selected, the method that the
POS simulator uses to communicate with the device resembles the method that MPOS that has a built-in hardware
station communicates. If Win32 is selected, the POS simulator communicates directly with the device. This
communication method resembles the method that a standalone hardware station communicates.
On the Settings tab, you can also provide details about the user who is performing the tests. These details are
important for manufacturers that perform compatibility testing.
Configuring the POS simulator
For each supported device class, the POS simulator lets you set up multiple devices. For example, several printers
can be configured in the POS simulator. Then, on the Printer tab, the user can cycle through the configured devices
and test them as required.
The setup parameters that are available for a device depend on the type of device. To set up a new device, select the
class of device to test, and then click the plus sign (+ ) button. A menu of the available device parameters appears.
To edit a device that has already been created, use the left arrow (< ) and right arrow (> ) buttons to find the
appropriate device, and then click Edit .
Configure an OPOS device
1. Select OPOS as the device type.
2. Select the name of the device driver. This value is required. This list includes all the OPOS service objects that
are installed on the local machine where devices are being tested. You can also manually enter the device
driver name.

IMPORTANT
Before you can test OPOS devices by using the POS simulator, OPOS common control objects must be installed.
These objects are separate are separate from the service objects that the manufacturer provides.

3. Enter data in the rest of the required fields.

NOTE
When you configure devices for testing, all fields are required, so that the POS simulator can confirm compatibility
with the POS.

4. When the device is configured to the level that is required for either casual testing or compatibility testing,
click Save device .
Configure a network device
The POS simulator can be used to test network devices. The following network devices are supported out of the
box:
Cash drawer : APG Atwood
Receipt printer : Star TSP650II
Payment terminal: Although a payment terminal can be configured as network devices, any testing of a
payment terminal requires a custom payment connector.

NOTE
No payment terminals are supported out of the box.

1. Select Network as the device type.


2. Enter data for the rest of the fields.

NOTE
The fields for the device driver name, model, and version can help identify the version of the device-specific
implementation that is being tested. Because devices tend to have their own communication protocol over IP, custom
implementations should be labeled with specific attributes.

3. When the device is configured to the level that is required for either casual testing or compatibility testing,
click Save device .
Windows devices
The POS simulator can also be used to test Windows printers. The setup parameters are the same as the
parameters for OPOS devices.
1. Select Printer as the device type.
2. Enter data in the rest of the required fields.

NOTE
When you configure devices for testing, all fields are required, so that the POS simulator can confirm compatibility
with the POS.

3. When the device is configured to the level that is required for either casual testing or compatibility testing,
click Save device .
Testing devices
Each device class has unique testing capabilities. In addition to device-specific tests, each device has a Self-test
function.
When you're testing a device for compatibility, set up the device, and then click the green arrow to begin the self-
test. For each device, a different set of tests is performed to determine the device's compatibility with the POS (in
Runtime mode) or the standalone hardware station (in Win32 mode). For some devices, the test requires user
interaction. For example, the self-test for a bar code scanner requires that a bar code be scanned. Therefore, the
self-test will instruct the user to scan a bar code.
Results from each self-test and each manual operation are shown in the Log section of the device test page. You
can clear the Log section, or you can export the results and save them to a file. For information about how the
exported log results can be used for official compatibility testing, see the "Instructions for device manufacturers"
section later in this topic.
To stop a self-test, click the red square. For example, you might have to stop a self-test if the device becomes non-
responsive. The red square can be used only when a self-test is in progress.
Device -specific settings to be aware of
This section lists settings that you might require some help to complete.
Line display > Settings tab
To view the values that are entered in a free text field, click Lock and claim to claim the device.
1. Click Display text , and view the text that was sent to the device.
2. Click Clear text to clear the text from the line display.
3. Click Release to release the line display, so that it can be used for other processes.
Line display > Advanced tab settings
Binar y conversion – Some line displays require that text be converted into binary format. To determine
whether this conversion is required, see the device’s documentation.
Character set – The code page for the characters that are sent to the device. For the identifiers of specific code
pages, see https://msdn.microsoft.com/library/windows/desktop/dd317756(v=vs.85).aspx.
MSR
Open and claim MSR – Prepare the POS simulator to receive data from the MSR.
Release and close MSR – Close the MSR device when testing is completed.
Card info – Data from the card that was scanned on the MSR device.

IMPORTANT
Actual credit cards should never be used for device testing. Even expired credit cards should not be used for testing.

PIN pad
Settings that appear on both tabs
Lock – Lock the PIN pad device so that it can be used only with the POS simulator.
Get entr y – Enable the POS simulator to receive PIN data.
Cancel operation – Cancel the request that was sent to the PIN pad.
Release – Release the PIN pad device.
Settings tab
Amount – The amount to send to the PIN pad device for customer acceptance.
Account number – Specify the account number, if it's required.
Encr ypted PIN – The encrypted PIN that is received from the device.
Additional security data – Specify the cryptography that is used for the encrypted PIN.
Advanced tab
Timeout – Specify the number of seconds to wait for a response from the device.
Exclusive – Require that the PIN pad device be claimed before it can be enabled.
Override – Override previous commands that were sent to device when the device isn't responding.
Scale
Timeout – The time-out interval. Product should be put on the scale before the weight is read. If the scale
doesn't respond within the specified interval, the request is canceled.
Signature capture
Settings tab
Form name – Some signature capture devices require a form name when the signature request is sent.
Signature (in HEX) – The hex value for the signature data that is received from the device.
Rendered signature – The image of the signature that is received from the device.
Advanced tab
Timeout – The time-out interval. If the signature capture device doesn't respond within the specified interval,
the request is canceled.
Exclusive – Require that the PIN pad device be claimed before it can be enabled.
Override – Override previous commands that were sent to device when the device isn't responding.
Lock – Lock the device and claim it for use by the POS simulator.
Get entr y – Request the signature from the device.
Cancel operation – Cancel the signature request.
Release – Release the device so that it can be used by other processes.
Bar code scanner
Open and claim scanner – Open and claim the scanner. The POS simulator can receive scan events after this
operation is completed successfully.
Release and close the scanner – Make the scanner available for other processes.
Scanned information – The data that was received from the bar code scanner.
Payment terminal
Settings that appear on ever y tab
Select an operation – Select a specific operation to perform on the device. Options include All , Pay by card ,
Refund by card , and Void payment .
Lock and claim – Prepare the device so that it can be used by the POS simulator.
Update line items – Send specified line item details to the device.
Authorize payment – Instruct the payment connector to request payment authorization.
Capture payment – Instruct the payment connector to capture the previous authorization.
Release – Release the device.
Settings tab
The Settings tab contains properties that are sent to the device when a payment authorization is requested.
Invoice number – Specify the invoice number that is generated at the POS.
Test mode – A value that indicates that a test transaction is being performed.
Payment connector – The name of the payment connector to use.
Debit cashback limit – The maximum amount of cash back that can be requested on the device when a debit
transaction is performed.
Locale – The locale that is used. Locales are defined in the configuration file for the POS simulator.
Maximum amount allowed – The maximum amount that can be processed for a given transaction.
Minimum amount allowed – The minimum amount that can be processed for a given transaction.
Signature capture minimum amount – The lowest amount that the customer is prompted to provide a
signature for.
Terminal ID – The terminal ID that is included in the transaction properties that the processor provided.
Lines tab
The Lines tab contains data that can be sent to the device when it's used as a line display.
Description – The product description for the transaction line to show on the device.
Discount – The discount amount that is applied to the transaction line.
Extended line with tax – The product line amount. This amount includes tax.
Line item ID – The product ID for the transaction line.
Quantity – The quantity for the transaction line.
Stock keeping unit – The unit of measure to show on the device.
Unit price – The selling price for the transaction line.
Universal product code – The bar code that was scanned for the transaction line.
Is voided – A value that indicates that the transaction line has been voided from the transaction.
Advanced tab
The Advanced tab contains subtotal information that can be shown on the device.
Discount amount – The total amount for discounts on the transaction.
Subtotal amount – The subtotal for the transaction. This amount doesn't include tax.
Tax amount – The tax amount for the transaction.
Total amount – The total amount that is due. This amount includes tax and discounts.
Currency – The currency that is used for the transaction.
Payment info tab
The Payment info tab contains data that is received from the payment connector after an authorization has been
processed.
Is approved – A value that indicates whether the authorization request is approved.
Card number masked – The masked card number that is provided by the device. Typically, only the last four
digits of the card number are shown.
Card type – The issue for the card that is used in the transaction.
Approved amount – The amount that is authorized for the card payment.
Payment SDK data – Additional data that the payment software development kit (SDK) can provide, such as
the authorization code and other data that the payment processor provides.
Signature data – Hexadecimal signature data that is provided by the device.
Payment errors – Any errors that occurred during the authorization request.

Instructions for device manufacturers


To submit a device so that it can be listed for compatibility with Commerce, follow these steps.
1. On the Settings tab, specify all contact information that is requested. All fields are required. The personal
contact information is for Microsoft internal use. It will be used only if there are issues with devices that have
been submitted as compatible.
2. For each device, on the Devices tab, set up the device, and provide values for all fields. For each
permutation, a new device must be specified. For example, if a given device mode is tested for USB and
serial, two compatibility reports must be submitted. Any variance from one device to the next should be
indicated. Then, when devices are listed for compatibility, very specific information can be provided to
people who implement the devices. The more information that can be provided about device compatibility,
the higher the success rate for implementations and the fewer support issues will be raised.
3. After you've entered the required information for devices and settings, test the device.
a. Clear the log for the device that you're testing.
b. Click Self-test .
c. When a test has been completed successfully, export the test results, and save them. Give the file a name
that will make the test easy to identify. We suggest that you use an abbreviated form of the
manufacturer's name and the device model as the file name.
The following example shows the data that is included in the exported file.
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.Commerce.VirtualPeripherals.Modules">
<CreationDateTime>05/27/2017 19:34:50</CreationDateTime>
<ManufacturerInfo>
<ManufacturerName>Contoso </ManufacturerName>
<ManufacturerWebsite>http://www.contoso.com</ManufacturerWebsite>
<SupportEmail>[email protected]</SupportEmail>
<SupportTelephoneNumber>555-555-5555</SupportTelephoneNumber>
<SupportWebsite>http://www.contoso.com</SupportWebsite>
<TechnicalContactEmail>[email protected]</TechnicalContactEmail>
<TechnicalContactName>Karen Berg</TechnicalContactName>
<TechnicalContactPhone>555-555-5555</TechnicalContactPhone>
</ManufacturerInfo>
<DeviceInfo i:type="OposDevice">
<DeviceDriverName>MockOPOSDrawer1</DeviceDriverName>
<DeviceModel>Model1</DeviceModel>
<DriverVersion>V2</DriverVersion>
<FirmwareVersion>V1</FirmwareVersion>
<HardwareType>OPOS</HardwareType>
<ConnectionType>USB</ConnectionType>
<DriverDownloadLink>htttp://model1.drivers.contoso.com</DriverDownloadLink>
<DeviceInfo i:type="OposDevice">
<LogItems>
<LogMessage>
<LogType>Info</LogType>
<Message>The cash drawer is opened successfully.</Message>
<Timestamp>05/27/2017 19:48:14</Timestamp>
</LogMessage>
<LogMessage>
<LogType>Info</LogType>
<Message>The cash drawer open operation elapsed time: 00:00:00.053</Message>
<Timestamp>05/27/2017 19:48:14</Timestamp>
</LogMessage>
<LogMessage>
<LogType>Info</LogType>
<Message>The cash drawer status check operation is completed successfully.</Message>
<Timestamp>05/27/2017 19:48:14</Timestamp>
</LogMessage>
<LogMessage>
<LogType>Info</LogType>
<Message>The cash drawer status check operation elapsed time: 00:00:00.045</Message>
<Timestamp>05/27/2017 19:48:14</Timestamp>
</LogMessage>
<LogMessage>
<LogType>Info</LogType>
<Message>Test finished successfully.</Message>
<Timestamp>05/27/2017 19:48:14</Timestamp>
</LogMessage>
</LogItems>
</Report>

Eventually, the data that is included in the report (except personal contact information) will be listed on a device
compatibility website. It will also be listed in design and deployment tools that are used to manage customer
environments.
Successful logs should be sent to [email protected]. Include the manufacturer’s name and the device model in
the subject line.
For support if you're performing compatibility tests, and for other inquiries, send an email to [email protected].

Additional resources
Peripherals
Connect peripherals to the point of sale (POS)
2/13/2020 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers how to connect peripherals to your Retail POS.

NOTE
For specific installation instructions, see Configure and install Retail hardware station and Configure, install, and activate
Modern POS (MPOS).

Key components
Several components are used to define the relationships among a store, the point-of-sale (POS) registers or
channels within the store, and the peripherals that those registers or channels use to process transactions. This
section describes each component and explains how it should be used in a store deployment.
POS registers
Navigation: Click Retail and Commerce > Channel setup > POS setup > Registers .
The POS register is an entity that is used to define the characteristics of a specific instance of the POS. These
characteristics include the hardware profile or setup for peripherals that will be used at the register, the store that
the register is mapped to, and the visual experience for the user who logs on to that register.
Devices
Navigation: Click Retail and Commerce > Channel setup > POS setup > Devices .
A device is an entity that represents a physical instance of a device that is mapped to a POS register. When a device
is created, it's mapped to a POS register. The device entity tracks information about when a POS register is
activated, the type of client that is being used, and the application package that has been deployed to a specific
device. Devices can be of two types: Retail modern POS (MPOS) or Retail Cloud POS (Cloud POS).
MPOS
MPOS is a POS client application that is installed on Windows 8.1 or a later PC-based operating system. If the
Retail modern POS application type is mapped to a device, the download package can be specified for a
particular device. The download package can be customized to include different versions of the installation
package. The ability to deploy different packages provides flexibility in cases where different POS registers might
need different integrations. MPOS is deployed together with a built-in hardware station.
Cloud POS
Cloud POS is a browser-based POS. Because it runs in the browser, Cloud POS doesn't require Windows 8.1 or a
later PC-based operating system. If the Retail Cloud POS application type is mapped to a specific device in
Headquarters, that device can be used through the browser with no need to download or install a package. Cloud
POS requires a hardware station to use hardware beyond keyboard wedge based bar code scanning.
Hardware profile
Navigation: Click Commerce > Channel setup > POS setup > POS profiles > Hardware profiles .
A hardware profile identifies the hardware that is connected to a POS register or a hardware station. The hardware
profile is also used to specify the payment processor parameters that should be used during communication with
the payment software development kit (SDK). (The payment SDK is deployed as part of the hardware station.)
Hardware station
Navigation: Click Retail and Commerce > Channels > Stores > All stores . Select a store, and then click the
Hardware stations FastTab.
A hardware station is an instance of business logic that drives POS peripherals. A hardware station is automatically
installed together with MPOS. Alternatively, the hardware station can be installed as a stand-alone component, and
then accessed by MPOS or Cloud POS through a web service. The hardware station must be defined at the channel
level.
Hardware station profile
Navigation: Click Commerce > Channel setup > POS setup > POS profiles > Hardware station profiles .
Whereas the hardware station itself is specified at the channel level includes instance-specific information, such as
the URL for the hardware station, the hardware station profile includes information that can be static or shared
across multiple hardware stations. The static information includes the port that should be used, the hardware
station package, and the hardware profile. The static information also includes a description of the type of hardware
station that is being deployed, such as Checkout or Returns , depending on the hardware that is required for each
specific hardware station.

Scenarios
MPOS with connected peripheral devices

To connect MPOS to POS peripherals in a traditional, fixed POS scenario, first navigate to the register itself, and
assign a hardware profile to it. You can find the POS registers at Retail and Commerce > Channel setup > POS
setup > Registers .
After you've assigned the hardware profile, sync changes to the channel database by using the Registers
distribution schedule. You can find the distribution schedules at Retail and Commerce > Retail and Commerce
IT > Distribution schedule .
Next, set up a "local" hardware station on the channel. Click Retail and Commerce > Channels > Stores > All
stores , and select a store.
Then, on the Hardware stations FastTab, click Add to add a hardware station. Enter a description, enter localhost
as the host name, and then sync the changes to the channel by using the Channel configuration distribution
schedule. You can find the distribution schedules at Retail and Commerce > Retail and Commerce IT >
Distribution schedule .
Finally, in MPOS, use the Select hardware station operation to select the localhost hardware station. Set the
hardware station to Active . The hardware profile that is used in this scenario should come from the POS register
itself. A hardware station profile isn't required for this scenario.

NOTE
Some hardware profile changes, such as changes to cash drawers, require that a new shift be opened after the changes have
been synced to the channel.
Cloud POS must use the stand-alone hardware station to communicate with peripherals.

MPOS or Cloud POS with a stand-alone hardware station

In this scenario, a stand-alone hardware station is shared among MPOS and Cloud POS clients. This scenario
requires that you create a hardware station profile to specify the download package, port, and hardware profile that
the hardware station uses. You can find the hardware station profile at Retail and Commerce > Channel setup
> POS setup > POS profiles > Hardware station profiles .
After you've created the hardware station profile, navigate to the specific channel (Retail and Commerce >
Channels > Stores > All stores ), and add a new hardware station. Map this new hardware station to the
hardware station profile that was previously created.
Next, provide a description that will help the cashier identify the hardware station. In the Host name field, enter the
host machine URL in the following format: https://<MachineName:Port>/HardwareStation . (Replace
<MachineName:Por t> with the actual machine name of the hardware station and the port that is specified in the
hardware station profile.) For a stand-alone hardware station, you should also specify the electronic funds transfer
(EFT) terminal ID. This value identifies the EFT terminal that is connected to the hardware station when the payment
connector communicates with the payment provider.
Next, from the actual hardware station machine, navigate to the channel, and select the hardware station. Then click
Download , and install the hardware station.
Next, from MPOS or Cloud POS, use the Select hardware station operation to select the hardware station that
was previously installed. Select Pair to establish a secure relationship between the POS and the hardware station.
This step must be completed once for every combination of a POS and a hardware station.
After the hardware station is paired, the same operation is used to make the hardware station active while it's used.
For this scenario, the hardware profile should be assigned to the hardware station profile rather than the register
itself. If for some reason a hardware station does not have a hardware profile directly assigned, then the hardware
profile assigned to the register is used.

Client maintenance
Registers
POS registers are managed primarily through the registers themselves, and also through the profiles that are
assigned to registers. Attributes that are specific to an individual register are managed at the register level. These
attributes include the store where the register is used, the register number, the description, and the EFT terminal ID
that is specific to the register itself.
POS profiles
You can find the POS profiles at Retail and Commerce > Channel setup > POS setup > POS profiles . It's
useful to manage many aspects of a register through profiles, because the profiles can be shared among many
registers. Profiles can be mapped either to an individual register or, if a profile is effective on a store-wide basis, to
the store. The following sections describe the POS profiles and how they are used.
Offline profile
The offline profile is set at the store level. It's used to specify the upload settings for transactions that are performed
on a POS register while that register isn't connected to the channel database.
Functionality profile
The functionality profile is set at the store level. It's used to specify store-wide settings about the functions that can
be performed at the POS. The following capabilities are managed through the functionality profile. These
capabilities are arranged by FastTab.
General FastTab:
International Organization for Standardization (ISO).
Create a customer in offline mode.
Email receipt profile.
Central staff logon authentication.
Functions FastTab:
Management of logon and extended logon.
Financial and currency-related aspects of the POS, such as the ability to key in prices and whether
decimals are required for minor currency.
Enabling time registration through the POS.
How products and payments appear in the POS and on receipts.
End-of-day management.
Channel database transaction retention parameters.
How customers are looked up and created from the POS.
How discounts are calculated.
Amount FastTab:
Maximum and minimum prices that are allowed.
Discount application and calculation.
Info codes FastTab:
All aspects of how info codes are managed at the POS. For details, see Info codes and info code groups.
Receipt numbering FastTab:
Specify receipt numbering masks, which might include segments for the store number, terminal number,
constants, and whether sales, returns, sales orders, and quotations are printed in separate sequences, or
whether they all following the same sequence.
Receipt profiles
Receipts profiles are assigned to printers within the hardware profile. They are used to specify the receipt types that
are printed at a specific printer. The profiles include settings for the receipt formats, and settings that determine
whether the receipt is always printed, or whether the cashier is prompted to decide whether the receipt must be
printed. Different printers might also use different receipt profiles. For example, printer 1 is a standard thermal
receipt printer, and therefore has smaller receipt formats. However, printer 2 is a full-size receipt printer that is used
to print only customer order receipts, which require more space.
Hardware profiles
Hardware profiles are explained as a component for client setup earlier in this article. Hardware profiles are
assigned directly to the POS register or to a hardware station profile. They are used to specify the types of devices a
specific POS register or hardware station uses. Hardware profiles are also used to specify the EFT settings that are
used to communicate with the payment SDK.
Visual profiles
Visual profiles are assigned at the register level. They are used to specify the theme for a specific register. The
profiles include settings for the type of application that is used (MPOS or Cloud POS), the accent color and theme,
the font scheme, the logon background, and the POS background.
Custom fields
You can create custom fields to add fields that aren't provided out of the box to the POS. For more information
about how to use custom fields, see the Working with custom fields blog post.
Language text
You can override default strings in the POS by using language text entries. To override a string in the POS, add a
new language text line. Then specify an ID, the default string that should be overridden, and the text that should be
shown at the POS instead of the default string.
Hardware station profiles
Hardware station profiles are explained earlier in this article. They are used to assign non-instance-specific
information to hardware stations.
Channel reports configuration
You set up the reports that are available at the channel on the Channel repor ts configuration page. You can
create new reports by providing the XML definition of the report and assigning the report to a specific permission
group at the POS.
Devices
Devices are explained earlier in this article. They are used to manage the activation of a specific POS register.
Devices are also used to specify the application that is used for a specific register and the installation package that
should be used to install the MPOS client. Here are the device activation states:
Pending – The device is ready to be activated.
Activated – The device has been activated.
Deactivated – The device has been deactivated either in Headquarters or through the POS.
Disabled – The device has been disabled.
Additional activation-related information includes the worker who changed the activation status for the device, a
time stamp for the activation, and whether the device configuration has been validated.
Client data synchronization
All changes to a POS client, except changes in the device activation status, must be synced to the channel database
to take effect. To sync changes to the channel database, navigate to Retail and Commerce > Retail and
Commerce IT > Distribution schedule , and run the required distribution schedule. For client changes, you
should run the Registers and Channel configuration distribution schedules.
Health check for POS peripherals and services
4/16/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the health check operation in the point of sale (POS).

Overview
Retail stores can be complex environments where many applications and devices are used. As operations grow, it
can become difficult to ensure that operations always run smoothly, because of dependencies on, for example,
peripherals that can break or accidentally become unplugged over the course of a day. Troubleshooting for issues
that are related to devices and services can be costly for larger merchants and equally frustrating for smaller
operations.
Microsoft Dynamics 365 Commerce versions 10.0.10 and later include a health check operation that can help
prevent some of this cost and frustration. This operation provides a method for testing devices directly from the
POS outside of normal operations. Therefore, it can help retailers detect issues before they occur.

Key terms
T ERM DESC RIP T IO N

Peripheral Any device that the POS application uses to facilitate


transactions and other operations in the store. Examples
include cash drawers, bar code scanners, and payment
terminals.

Service In this topic, a service is an ancillary application that the POS


application depends on to perform transactions and daily
operations. Examples include apps that help with tax or
shipping calculations.

Health check operation


The health check operation is operation 717 on the POS Operations page in Commerce Headquarters. It can be
used while the POS is in non-drawer mode. However, a hardware station must be active.
By default, the health check tests only devices that are configured in the hardware profile for the hardware station
that is currently active for a register. If a register uses multiple hardware stations over the course of a day, to do
health checks for all of them, it must connect to one hardware station at a time. There is no store-level health check.
However, it's possible that this type of check can be done through Commerce Server extensibility.
Out-of-box health checks
TYPE C O N N EC T IO N DETA IL S

Printer OPOS This check tests basic object linking and


embedding for POS (OPOS) functions.
Here are some examples:
Open: Open > ClaimDevice >
DeviceEnabled=True
Close: DeviceEnabled=False >
ReleaseDevice > Close

Line display OPOS This check tests basic OPOS functions.


Here are some examples:
Open: Open > ClaimDevice >
DeviceEnabled=True
Close: DeviceEnabled=False >
ReleaseDevice > Close

Dual display Windows This check ensures that the operating


system detects a second Windows
display.

MSR OPOS This check tests basic OPOS functions.


Here are some examples:
Open: Open > ClaimDevice >
DeviceEnabled=True
Close: DeviceEnabled=False >
ReleaseDevice > Close

Drawer OPOS This check tests basic OPOS functions.


Here are some examples:
Open: Open > ClaimDevice >
DeviceEnabled=True
Close: DeviceEnabled=False >
ReleaseDevice > Close

Scanner OPOS This check tests basic OPOS functions.


Here are some examples:
Open: Open > ClaimDevice >
DeviceEnabled=True
Close: DeviceEnabled=False >
ReleaseDevice > Close

Scale OPOS This check tests basic OPOS functions.


Here are some examples:
Open: Open > ClaimDevice >
DeviceEnabled=True
Close: DeviceEnabled=False >
ReleaseDevice > Close
TYPE C O N N EC T IO N DETA IL S

PIN pad OPOS This check tests basic OPOS functions.


Here are some examples:
Open: Open > ClaimDevice >
DeviceEnabled=True
Close: DeviceEnabled=False >
ReleaseDevice > Close

Payment terminal Payments SDK This check tests basic payment terminal
functions provided by the Payments
SDK.
Lock
BeginTransaction
EndTransaction
ReleaseDevice
Close

Using the health check operation in the POS


When the health check operation is initiated in the POS, a pane on the right lists the configured devices and shows
the status of each device. To do a health check for a single device, select the device, and then select Test selected .
To do a health check for all devices, select Test all . The Test all function tests all the devices, one at a time, and
updates the status of each device in the Status column.
The Last check column shows when the health check was last done for each device.
If the health check for a device passes (that is, if no errors are encountered), the device's status will be OK . If the
health check fails, the status will indicate that there was an error. In this case, the pane on the right provides details
that are related to the error, or it instructs the user to contact the system admin.
Some devices, such as the OPOS keylock, don't have out-of-box health check tests. If a health check test isn't
detected for any device that is used, the status will be Not suppor ted .
Extending health checks
The out-of-box health check tests are configured to provide some user-friendly messages for typical errors.
However, not all scenarios are covered. Through extensibility, merchants can map user-friendly messages to errors
that might be specific to their environment.
Custom health checks can also be created to test devices that aren't supported out of the box, or to test any services
that the POS depends on.

Related articles
Modern POS (MPOS) and Cloud POS trigger extensibility
Demo data screen layouts in Modern POS (MPOS)
and Cloud POS
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides information about the screen layouts that are included with the demo data set for the point of
sale (POS) experiences in Dynamics 365 Commerce.

Overview
The sample screen layouts that are included with Commerce demo data provide content that is optimized for
various retail segments, store worker roles, and devices. A single layout can contain several layout sizes and
combinations of button grids, to help ensure coverage as store workers move between devices and stations. This
topic highlights the differences between these layouts, the operations that they provide, and the overall experiences
that they deliver.

Anatomy of a screen layout ID


To find screen layouts, go to Retail and Commerce > Channel setup > POS setup > POS > Screen layouts .
Screen layout IDs can have a maximum of 10 characters. The ID is a string that consists of three pieces of
information, in this order:
1. Company
2. Layout version
3. Persona
Company
L ET T ER C O M PA N Y

A Adventure Works

F Fabrikam

C Contoso

Layout version
VERSIO N N UM B ER DESC RIP T IO N

3 The base version that supports multiple screen sizes for


various devices and aspect ratios

3.1 The base version that has additional support for the
Recommended products panel

Persona
A B B REVIAT IO N P ERSO N A C O N T EN T S
A B B REVIAT IO N P ERSO N A C O N T EN T S

CSH Cashier Cashier layouts include all transaction-


related operations, such as customer
orders, returns, discounts, voids, and
gift cards. These layouts also include
daily tasks for inventory management,
such price checks, inventory lookups,
and stock counts. Basic shift
management is also provided for start
amounts, suspending shifts, and time
clock.

MGR Store Manager Store Manager layouts include all


transaction-related operations that are
found in the Cashier layouts but also
include tax overrides. These layouts also
include daily tasks for inventory
management, such as price checks,
inventory lookups, and stock counts.
Shift management is provided for
starting, suspending, and closing shifts.
Additionally, the layouts include drawer
operations for entries, removals, tender
declarations, and safe and bank drops.
Finally, these layouts include access to
performance reports, and enable X and
Z reports to be printed.

STK Stock Clerk Stock Clerk layouts are optimized for


inventory management. They include
access to daily tasks for price checks,
inventory lookups, picking and
receiving, stock counts, and kit
disassembly. These layouts also provide
basic shift operations for time clock and
suspending shifts. Although these
layouts are intended mainly for back-
office tasks, stock clerks have the same
operations as cashiers for transaction
screens.

Example layout
Here is an example of a screen layout ID for the Fabrikam company, layout version 3, and the Store Manager
persona:
F3MGR
The following illustration shows an example of the Welcome screen for a Fabrikam store manager.
Layout sizes
Full vs. compact layouts
A screen layout can have configurations for both full devices and compact devices. Therefore, a user can be
assigned to a single screen layout that will work across various sizes and form factors in the store.
Modern POS - Full – Typically, full layouts are best used for larger displays, such as desktop computer
monitors or tablets. Users can select the UI elements that the layout includes, specify the size and placement of
those elements, and configure their detailed properties. Full layouts support both portrait and landscape
configurations.
Modern POS - Compact – Typically, compact layouts are best used for phones or small tablets. Design
possibilities are limited for compact devices. Users can configure the columns and fields for the receipt pane and
the totals pane.
Screen resolutions that are provided
The following table shows the layout sizes that are provided for typical screen resolutions.

L AY O UT T Y P E RESO L UT IO N A SP EC T RAT IO TA RGET DISP L AY

Compact* 480 × 853 16:9 Phones

Full 1024 × 768 4:3 Tablets

Full* 1280 × 720 16:9 Tablets

Full 1366 × 768 16:9 Tablets, larger screens

Full 1440 × 960 3:2 Tablets, larger screens

* These additional layout sizes are available only in Adventure Works and Fabrikam layouts.
TIP
POS automatically selects layout sizes, based on the closest size that is available for the screen resolution of the current app
window. To find the screen layout ID and layout resolution that are currently used, in Modern POS (MPOS) or Retail Cloud
POS (CPOS), open the Settings page, and look in the Session information section. You can also see the actual window
resolution for your current application or browser frame. After you have this information, you can find the source of the
layout content by going to Channel setup > POS setup > POS > Screen layouts .

Companies and brands


Each fictitious company is targeted to a different retail segment and includes product catalogs that are tuned for the
company's market. Each company has a unique visual brand that accompanies its products. Branding elements
include the accent color, dark or light theme, and accompanying photographs that provide realistic experiences.
Company segment and visual characteristics
C O M PA N Y LO C AT IO N SEGM EN T A C C EN T T H EM E

Adventure Works Seattle Sporting Goods Blue Dark

Fabrikam Houston Fashion Green Light

Contoso Boston Electronics Red Dark

NOTE
Adventure Works and Fabrikam are the two flagship brands. Contoso is available, but not all layouts have been provided.

The following illustrations show examples of the welcome page and transaction page for the three fictitious
companies.
Adventure Works
Fabrikam
Contoso
User sign in matrix
Users have been provided for the various screen layouts. By using the following table, you should be able to access
any of the screens. Just sign in by using an appropriate operator ID.

C O M PA N Y SC REEN L AY O UT ID P ERSO N A O P ERATO R IDS

Adventure Works A3MGR Store Manager 000154, 000137, 000073

Adventure Works A3CSH Cashier 000150, 000175, 000165

Adventure Works A3STK Stock Clerk 000155, 000181, 000152

Fabrikam F3MGR Store Manager 000160, 000168, 000163

Fabrikam F3CSH Cashier 000161, 000113, 000114

Fabrikam F3STK Stock Clerk 000164, 000112, 000123

Contoso C3MGR Store Manager 000100, 000111

Contoso C3CSH Cashier 000110, 000120

Contoso Not applicable Stock Clerk Not applicable

TIP
For best results, activate a register in the corresponding store location, and set the company to the company of the persona
that you plan to use when you sign in. In this way, you help guarantee that the visual profile and branding images are aligned
across the experience. For example, if you're interested in seeing a Fabrikam layout for a cashier, you should activate a register
in the Houston store.
POS user interface visual configurations
4/15/2020 • 12 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

IMPORTANT
Functionality noted in this topic is available as part of a preview release. The content and the functionality are subject to
change. For more information about preview releases, see One version service updates FAQ.

The user interface (UI) of the Microsoft Dynamics 365 Commerce point of sale (POS) can be configured by using a
combination of visual profiles and screen layouts that are assigned to stores, registers, and users. This topic
provides information about those configuration options.
The following illustration shows the relationships among the various entities that make up the configurable aspects
of the POS UI.

Visual profile
Visual profiles are assigned to registers, and they specify the visual elements that are register-specific and shared
across users. Every user who signs in to the register sees the same theme, layout, colors, and images.
Profile number – The profile number is the unique identifier of the visual profile.
Description – You can specify a meaningful name that will help identify the correct profile for your situation.
Theme – You can select between the Light and Dark application themes. The theme affects the font and
background colors throughout the application.
Accent color – The accent color is used throughout the POS to differentiate or highlight specific visual
elements, such as tiles, command buttons, and hyperlinks. Typically, these elements are actionable.
Header color – You can configure the color of the page header to meet the retailer's branding requirements.
Font scheme – You can select between the Standard and Large font schemes. The font scheme affects the font
size throughout the application. The default selection is Standard .
Always show application bar labels – When this option is turned on, the label text is always visible under the
application bar buttons.
Layout – You can select between the Centered and Right layouts. The layout affects the alignment of the sign-
in box on the sign-in screen. The default selection is Centered .
Show date/time – When this option is turned on, the current date and time are shown in the POS header and
on the sign-in screen.
Keyboard – You can select between Default to OS keyboard and Show number pad to specify the default
keyboard that is used for input on the sign-in screen. The number pad is a virtual keyboard that is used primarily
for touch-based devices. The default selection is Default to OS keyboard .
Logo image – You can specify a logo image that is shown on the sign-in screen. We recommend that you use
an image that has a transparent background. The file size should be kept as small as possible, because
application behavior and performance can be affected when large files are stored and loaded.
Login background – You can specify a background image for the sign-in screen. The file size of background
images should be kept as small as possible.
Background – You can specify a background image that is used instead of the solid theme color throughout the
application. As for background images for the sign-in screen, the file size should be kept as small as possible.

NOTE
The Right layout and date/time display don't apply to the sign-in screen in compact view.

Screen layouts
Screen layout configurations determine the actions, content, and placement of UI controls on the POS Welcome
screen and Transaction screen.

Welcome screen – In most cases, the welcome screen is the page that users see when they first sign in to
the POS. The welcome screen can consist of a branding image and button grids that provide access to POS
operations. Typically, operations that aren't specific to the current transaction are put on this screen.

Transaction screen – The Transaction screen is the main screen in the POS for processing sales
transactions and orders. The content and layout are configured by using the screen layout designer.

Default star t screen – Some retailers prefer that cashiers go directly to the Transaction screen after sign-
in. The Default star t screen setting lets you specify the default screen that appears after sign-in for each
screen layout.
Assignment
Screen layouts can be assigned at the store, register, or user level. The user assignment overrides the register and
store assignments, and the register assignment overrides the store assignment. In a simple scenario where all users
use the same layout, regardless of register or role, the screen layout can be set only at the store level. In scenarios
where specific registers or users require specialized layouts, those layouts can be assigned.
Layout sizes
Most aspects of the POS UI are responsive, and the layout is automatically resized and adjusted based on the screen
size and orientation. However, the POS Transaction screen must be configured for every screen resolution that is
expected.
At startup, the POS application automatically selects the closest layout size that is configured for the device. A
screen layout can also contain configurations for both landscape and portrait modes, and for both full-size and
compact devices. Therefore, users can be assigned to a single screen layout that works across various sizes and
form factors that are used in the store.

Name – You can enter a meaningful name to identify the screen size.
Layout type – The POS application can show its UI in various modes to provide the best user experience on
a given device.
Modern POS – Full – Full layouts are typically best for larger displays, such as desktop monitors and
tablets. You can select the UI elements to include, specify the size and placement of those elements, and
configure their detailed properties. Full layouts support both portrait and landscape configurations.
Modern POS – Compact – Compact layouts are typically best for phones and small tablets. The design
possibilities for compact devices are limited. You can configure the columns and fields for the receipt and
totals panels.
Width/Height – These values represent the effective screen size, in pixels, that is expected for the layout.
Remember that some operating systems use scaling for high-resolution displays.

TIP
You can learn the layout size that is required for a POS screen by viewing the resolution in the app. Start the POS, and go to
Settings > Session information . POS shows the screen layout that is currently loaded, the layout size, and the resolution
of the app window.
Button grids
For each layout size in a screen layout, you can configure and assign button grids for the POS welcome screen and
Transaction screen. Button grids for the welcome screen are automatically laid out from left to right, from the
lowest number (Welcome screen 1) to the highest number.
In Full POS layouts, the placement of button grids is specified in the screen layout designer.
In Compact POS layouts, the button grids are automatically laid out from top to bottom, from the lowest number
(Transaction screen 1) to the highest number. They can be accessed on the Actions menu.

Images
For each layout size in a screen layout, you can specify images to include in the POS UI. For Full POS layouts, a
single image can be specified for the welcome screen. This image appears as the first UI element on the left. On the
Transaction screen, images can be used as tab images or as a logo. Compact POS layouts don't use these images.
Screen layout designer
The screen layout designer lets you configure various aspects of the POS Transaction screen for each layout size,
in both portrait and landscape modes, and for both Full and Compact layouts. The screen layout designer uses the
ClickOnce deployment technology to download, install, and start the latest version of the application every time
that users access it. Be sure to check the browser requirements for ClickOnce. Some browsers, such as Google
Chrome, require extensions.

IMPORTANT
You must configure a screen layout for each layout size that is defined and that is used by the POS.

Full layout designer


The Full layout designer lets users drag UI controls onto the POS Transaction screen and configure the settings of
those controls.

Impor t layout/Expor t layout – You can export and import POS screen layout designs as XML files, so that
you can easily reuse and share them across environments. It's important that you import layout designs for
the correct layout sizes. Otherwise, UI elements might not fit correctly on the screen.
Landscape/Por trait – If the POS device lets users switch between landscape and portrait modes, you must
define a screen layout for each mode. The POS automatically detects screen rotation and shows the correct
layout.
Layout grid – The POS layout designer uses a 4-pixel grid. UI controls "snap" to the grid to help you
correctly align the content.
Designer zoom – You can zoom the designer view in and out to better view the content on the POS screen.
This feature is useful when the screen resolution on the POS differs greatly from the resolution of the screen
that is used in the designer.
Show/hide navigation bar – For Full POS layouts, you can select whether the left navigation bar is visible
on the Transaction screen. This feature is helpful for displays that have a lower resolution. To set the
visibility, right-click the navigation bar in the designer, and select or clear the Always visible check box. If
the navigation bar is hidden, POS users can still access it by using the menu in the upper left.
POS controls – The POS layout designer supports the following controls. You can configure many controls
by right-clicking and using the shortcut menu.

Number pad – The number pad is the main mechanism for user input on the POS Transaction screen.
You can configure the control so that the full number pad is shown. This option is ideal for touchscreen
devices. Alternatively, you can configure it so that only the input field is shown. In this case, a physical
keyboard is used for input. The number pad settings are available only for Full layouts. For Compact
layouts, the full number pad is always shown on the Transaction screen.
Totals panel – You can configure the totals panel in either one column or two columns, to show values
such as the line count, discount amount, charges, subtotal, and tax. Compact layouts support only a single
column.
Receipt panel – The receipt panel contains the sales lines, payment lines, and delivery information for
the products and services that are processed in the POS. You can specify columns, widths, and placement.
In Compact layouts, you can also configure additional information that appears in the row under the main
line.
Customer card – The customer card shows information about the customer who is associated with the
current transaction. You can configure the customer card to hide or show additional information.
Tab control – You can add the tab control to a screen layout, and then put other controls, such as the
number pad, customer card, or button grids, in it. The tab control is a container that helps you fit more
content on the screen. The tab control is available only for Full layouts.
Image – You can use the image control to show the store's logo or another branding image on the
Transaction screen. The image control is available only for Full layouts.
Recommended products – If the recommended products control is configured for the environment, it
shows product suggestions, based on machine learning.
Custom control – The custom control acts as a placeholder in the screen layout and lets you reserve
space for custom content. The custom control is available only for Full layouts.
Compact layout designer
Like the Full layout designer, the Compact layout designer lets you configure the POS screen layout for phones and
small tablets. However, in this case, the layout itself is fixed. You can configure the controls in the layout by right-
clicking and using the shortcut menu. However, you can't use drag-and-drop operations for additional content.

Button grid designer


The button grid designer lets you configure button grids that can be used on the POS welcome screen and
Transaction screen for both Full and Compact layouts. The same button grid can be used across layouts and layout
types. Like the screen layout designer, the button grid designer uses the ClickOnce deployment technology to
download, install, and start the latest version of the application every time that users access it. Be sure to check the
browser requirements for ClickOnce. Some browsers, such as Google Chrome, require extensions.
New button – Click to add a new button to the button grid. By default, new buttons appear in the upper-left
corner of the grid. However, you can arrange buttons by dragging them in the layout.

IMPORTANT
The contents of the button grid can overlap. When you arrange buttons, make sure that they don't hide other
buttons.

New design – Click to automatically set up a button grid layout by specifying the number of buttons per
row and column.
Button proper ties – You can configure button properties by right-clicking the button and using the
shortcut menu.

IMPORTANT
Some button grid settings apply only to Enterprise POS, not to Modern POS or Cloud POS.
Action – In the list of applicable POS operations, select the operation that is invoked when the button
is clicked in the POS.
For the list of supported POS operations, see Online and offline point of sale (POS) operations.
Action parameters – Some POS operations use additional parameters when they are invoked. For
example, for the Add product operation, users can specify the product to add.
Button text – Specify the text that appears on the button in the POS.
Hide button text – Use this check box to hide or show the button text. Button text is often hidden for
small buttons that show only an icon.
Tooltip – Specify additional Help text that appears when users mouse over the button.
Size in columns/Size in rows – You can specify how tall and wide the button is.

Custom font – When you select the Enable custom font for POS check box, you can specify a font
other than the default system font for the POS.
Custom theme – By default, POS buttons use the accent color from the visual profile. When you
select the Use custom theme check box, you can specify additional colors.

NOTE
Modern POS and Cloud POS use only the Back color and Font color values.

Button image – Buttons can include images or icons. Select among the available images that are
specified at Retail and Commerce > Channel setup > POS setup > POS > Images .

Additional resources
Install the Retail point of sale (POS) layout designer
Install the POS layout designer
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

You can use the one-click designer to design different Modern POS (MPOS) and Cloud POS layouts, in either
Landscape mode or Portrait mode, for stores, registers, cashiers, and managers.
The graphical design interface for MPOS or Cloud POS is controlled by the till layout. A layout controls the position
of various objects. Examples include the total layout, the item grid layout, the customer layout, the payment layout,
and the layout of various menu buttons. Layouts also include the overall appearance of the sales interface that is
presented to workers.

Install the one-click designer


1. In Commerce, use the menu in the upper left to navigate to Retail and Commerce > Channel setup >
POS setup > POS > Screen layouts .
2. Select any layout that has an application type of Modern POS for Windows or Cloud POS , and then click
Layout designer .
3. On the notification bar that appears at the bottom of the Internet Explorer window, click Open to install the
one-click designer. (The notification bar might appear in a different place in other browsers.)
4. In the Application Run - Security Warning message box that appears, click Run to install the Retail
designer host. A progress indicator shows the progress of the installation.
5. After the installation is completed, on the Sign in page, enter your Commerce user name and password, and
then click Sign in to start the designer.
6. After your credentials are validated and the designer starts, you can design your own layout or modify the
existing layout.
Troubleshoot the installation of the Layout designer
When you click Designer , the prompt to download (or run) the installer doesn't appear, or your current
security settings don't allow you to download the file.
Solutions:
In Internet Explorer, make sure that the pop-up blocker is disabled for this site. Click Settings > Options
> Privacy > Find Pop-up Blocker , and change the setting, if a change is required.
In Internet Explorer, add the Commerce URL to your trusted sites. Click Settings > Options > Security
> Trusted sites > Sites > Add .
The program doesn't start, and you're instructed to contact the vendor.
Solution: In Internet Explorer, add the Commerce URL to your trusted sites. Click Setting > Options >
Security > Trusted sites > Sites > Add .
Known issue: The designer doesn't work correctly in the Google Chrome and Mozilla Firefox browsers. We are
working to fix this issue.

Additional resources
Configure, install, and activate Retail Modern POS (MPOS)
Show order notifications in the point of sale (POS)
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In the modern retail environment, store associates are assigned various tasks, such as helping customers, entering
transactions, doing stock counts, and receiving orders in the store. The point of sale (POS) client provides a single
application where associates can perform all these tasks and many others. Because various tasks must be
performed during the day, associates might have to be notified when something requires their attention. The
notification framework in the POS helps by letting retailers configure role-based notifications. As of Dynamics 365
for Retail with application update 5, these notifications can be configured only for POS operations.
Currently, the system can show notifications only for order fulfillment operations. However, because the framework
is designed to be extensible, developers will eventually be able to write a notification handler for any operation and
show the notifications for that operation in the POS.

Enable notifications for order fulfillment operations


To enable notifications for order fulfillment operations, follow these steps.
1. Go to Retail and Commerce > Channel setup > POS setup > POS > Operations .
2. Search for the Order fulfillment operation, and select the Enable notifications check box for it to specify
that the notification framework should listen to the handler for this operation. If the handler is implemented,
notifications for this operation will then be shown in the POS.
3. Go to Retail and Commerce > Employees > Workers >, under Commerce tab, open the POS
permissions associated with the worker. Expand the Notifications FastTab, add the Order fulfillment
operation, and set the Display order field to 1 . If more than one notification is configured, this field is used
to arrange the notifications. Notifications that have a lower Display order value appear above notifications
that have a higher value. Notifications that have a Display order value of 1 are at the top.
Notifications are shown only for operations that are added on the Notifications FastTab, and you can add
operations there only if the Enable notifications check box for those operations has been selected on the
POS operations page. Additionally, notifications for an operation are shown to workers only if the
operation is added to the POS permissions for those workers.

NOTE
Notifications can be overridden at the user level. Open the worker's record, select POS permissions , and then edit
the user's notification subscription.

4. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles .
In the Notification inter val field, specify how often notifications should be pulled. For some notifications,
the POS must make real-time calls to the back-office application. These calls consume the compute capacity
of your back-office application. Therefore, when you set the notification interval, you should consider both
your business requirements and the impact of real-time calls to the back-office application. A value of 0
(zero) turns off notifications.
5. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule . Select the 1060
(Staff ) schedule to synchronize notification subscription settings, and then select Run now . Next, select the
1070 (Channel configuration ) schedule to synchronize the permission interval, and then select Run now .

View notifications in the POS


After you complete the preceding steps, the workers will be able to view the notifications in the POS. To view
notifications, press the notification icon in the top right corner of the POS. A notification center appears and shows
notifications for the order fulfillment operation. The notification center should show the following groups in the
order fulfillment operation:
Store pickup – This group shows the count of orders that have a delivery mode of Pickup , and that are
scheduled for pickup from the current store. You can press the number on the group to open the Order
fulfillment page. In this case, the page will be filtered so that it shows only the active orders that are set up for
pickup from the current store.
Ship from store – This group shows the count of orders that have the delivery mode of Shipping , and that are
scheduled for shipment from the current store. You can press the number on the group to open the Order
fulfillment page. In this case, the page will be filtered so that it shows only the active orders that are set up for
shipment from the current store.
When new orders are assigned to the store for fulfillment, the notification icon changes to indicate that there are
new notifications, and the count for the appropriate groups is updated. Even though the groups are refreshed at
regular intervals however, POS users can manually refresh the groups at any time by selecting the Refresh button
next to the group. Lastly, if a group has a new item, that the current worker hasn't viewed, then the group shows a
burst symbol to indicate new content.

Enable live content on POS buttons


POS buttons can now show a count to help workers easily determine which tasks require their immediate attention.
To show this number on a POS button, you must complete the notification setup that is described earlier in this
topic (that is, you must enable notifications for an operation, set up a notification interval, and update the POS
permission group for the worker). Additionally, you must open the button grid designer, view the button's
properties, and select the Enable live content check box. In the Content alignment field, you can select whether
the count appears in the upper-right corner of the button (Top right ) or in the center (Center ).

NOTE
The live content can be enabled for operations only if the Enable notifications check box has been selected for them on the
POS operations page, as described earlier in this topic.

The following illustration shows the live content settings in the button grid designer.
To show the notification count on a button, you need to ensure that the correct screen layout is being updated. To
determine the screen layout that is being used by the POS, select the Settings icon in upper-right corner and note
the Screen layout ID and Layout resolution . Now using Edge browser, go to the Screen layout page, find the
Screen layout ID and Layout resolution identified above and select the Enable live content check box. Go to
Retail and Commerce > Retail and Commerce IT > Distribution schedule and run the 1090 (Registers) job
to synchronize layout changes.

The following illustration shows the effect of selecting Top right versus Center in the Content alignment field
for buttons of various sizes.
Point of sale (POS) application and user language
settings
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to change language settings in Modern POS (MPOS) and Cloud POS.

Overview
Modern POS (MPOS) and Cloud POS support environments where language settings and translations can vary
between the store and user settings. For example, the store could be located in a region where English is most
common for their customers, but some workers prefer to use the application with French translations.

Data language
Regardless of the user's settings, MPOS and Cloud POS will always use the store's language settings to determine
the translations used for data. This will ensure that all users and customers will have a consistent experience.
Examples of data include:
Products
Attributes and values
Category names
Printed or emailed transaction receipts
Payment method names
Line display messages
The store's language will also be used for the main POS login screen, since the user is not known before logging in.
If a translation is not available for the store's language, the POS will revert to the company's language.
Configuring the store's language setting
The store's language setting is set from All stores on the Store page under General > Regional Settings >
Language . Use the drop-down list to choose the language for each store.

User interface language


The POS user's language setting determines the translations used in the application user interface. This includes all
labels, menus, and lists that are not considered data. One exception is the text that is displayed on POS button grids.
The button grids don't support translations, so they will always show the text as defined on the button. In order to
support translated buttons, you'll have to copy and maintain separate button grids and assign them to the users as
appropriate.
Configuring the user's language setting
The POS user's language setting is set from All workers on the Worker page under Retail and Commerce >
Language . It is not set on the main Profile tab. This setting is not used by POS. If the user's language is not set or it
is set to a language where translations are not available, the POS will revert to the store's language.

DATA L A N GUA GE ( P RO DUC T S, REC EIP T


UI L A N GUA GE F O RM AT S, L IN E DISP L AY, ETC . )

Company Default Default

Store Overrides company Overrides company

User Overrides store or company Never


Set up and manage images for Modern POS (MPOS)
2/1/2020 • 14 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article explains the steps that are involved in setting up and managing images for the various entities that
appear in Modern POS (MPOS).

Setting up the media base URL and defining media templates to


configure the format for image URLs
The images that appear in Modern POS (MPOS) must be hosted externally, outside of Commerce. Typically, they are
hosted in a content management system, content delivery network (CDN), or media server. MPOS then fetches and
displays the images for the appropriate entities, such as products and catalogs, by accessing the target URL. To fetch
these externally hosted images, MPOS requires the correct URL format for the images. You can configure the
required URL format for the images by setting up the Media base URL value in the channel profile and using the
Define media template functionality for each entity. You can also overwrite the standard URL format for a subset
of entities by using the Edit in Excel functionality.

IMPORTANT
In the current version of Commerce, you can no longer set up the URL format by using the Image attribute XML for MPOS
in the Default attribute group for entities. If you're familiar with Microsoft Dynamics AX 2012 R3 and are now using the
current version of Commerce, make sure that you always use the new Define media template functionality to set up
images. Don't use or modify the Image attribute in the Default attribute group for any entities, including products. Changes
that you make directly in the Default attribute group for images won't be reflected. This option will be disabled in a future
release.

In the following procedures, images are set up for the Catalog entity as an example. These procedures will help
guarantee that the correct image destination path is set implicitly for all catalog images that use a common path.
For example, if you've set up a media server or CDN externally, and want the images to appear in MPOS for a given
store, the Define media template functionality helps you the set the path where MPOS can look up and retrieve
the images.

NOTE
For this demo data example, the media server is deployed on the Commerce Scale Unit. However, you can have it anywhere
outside Commerce.

Set up the media base URL for a channel


1. Open the Commerce HQ portal.
2. Click Retail and Commerce > Channel setup > Channel profiles .
3. In the channel profile that your store uses for MPOS, update the Media base URL field with the base URL of
your media server or CDN. The base URL is the first part of the URL that is shared by all image folders of
different entities.

Define the media template for an entity


1. Click Retail and Commerce > Catalog management > Catalog images .
2. On the Catalog images page, on the Action Pane, click Define media template . In the Define media
template dialog box, in the Entity field, Catalog should be selected by default.
3. On the Media path FastTab, enter the remaining path of the image location. The media path supports
LanguageID as a variable. For example, for the demo data, you can create a Catalogs folder for all catalog
images under the media base URL for your media server (
https://testax3ret.cloud.test.dynamics.com/RetailServer/MediaServer ). You can then have a folder for each
language, such as en-US or fr-FR, and copy the appropriate images under each folder. If you don't have
different images for the various languages, you can omit the LanguageID variable from your folder
structure and point directly to the Catalogs folder that contains the catalog images.

NOTE
The current version of Commerce supports the {LanguageId} token for Catalog, Product, and Category entities. (The
{LanguageID} token isn't supported for Customer and Worker entities, according to the existing standard that has
been effective since Microsoft Dynamics AX 6.x.)

4. For images, the file name format is hard-coded to the catalog name and can't be changed. Therefore, rename
your images so that they have appropriate catalog names, to help guarantee that MPOS handles them
correctly.
5. In the File Extension field, select the expected file name extension, depending on the type of images that
you have. For example, for the demo data, the catalog images are set to the .jpg extension. (The image files
are also renamed so that they have catalog names.)
6. Click OK .
7. To validate that the media template for images has been saved correctly, on the Catalog images page, click
Define media template again. To validate the template without closing the Define media template
dialog box, you can use the Generate Image URLs for Excel FastTab. Check the appearance of the image
URL, and verify that the URL complies with the template standard that was mentioned earlier. The Define
media template dialog box has now set the image path implicitly for all catalog images that use this
common URL path. This URL path applies to all catalog images unless they are overwritten. The first part of
the image path is taken from the media base URL that you defined in the channel profile. The remaining part
of the path is taken from the path that you defined in the media template. The two parts are concatenated to
provide the full URL of the image location. For example, a catalog in the demo data is named Fabrikam Base
Catalog. Therefore, the image name must be Fabrikam Base Catalog.jpg so that it uses the catalog name and
the .jpg file name extension that is configured in the template. In this case, after concatenation, the URL will
be
https://testax3ret.cloud.test.dynamics.com/RetailServer/MediaServer/Catalogs/en-US/Fabrikam Base
Catalog.jpg
.
8. Run the synchronization jobs to push the new template to the channel database, so that MPOS can use the
template to access the images.
9. To update the media template for catalog images on the channel side, be sure to run Catalog Job 1150
from Retail and Commerce IT > Distribution schedule .

Previewing an image from the entity level


1. From the page for the entity item in HQ, you can preview the image that uses the image URL that is derived
from the media template. For this example, go to the appropriate catalog, and then, on the Action Pane, click
Media > Images . Use the drop-down list to select different stores that might have different channel profiles.
2. To edit or remove the implicit media template, you must return to the Define media template dialog box
for the Catalog images page.
3. You can use the Add and Remove buttons to manually change the path that is based on the implicit
template and used for a specific image. For more information, see the Overwriting the media template for
entity items section later in this article.
4. After you've finished previewing an image and making any changes that you require, start the MPOS
instance for the appropriate store, and see whether the catalog images are shown.

NOTE
You can use the same procedure for all the five entities that are supported: Worker, Customer, Catalog, Category, and
Products. "Catalog Products" (products that are set at the catalog level) and "Channel Products" (products that are set at the
channel level) use the media template that is set for the Products entity. For the Products media template, you can select the
number of product images to show per product. You can also set the default image for a given product. In this way, you can
prevent blank images in MPOS and help to control which image is used as the default image for a product item. In the
following example, each product has five images, and the first image is set as the default image. Variant products are treated
the same way as master products. The file name of the image file should be based on the product number. Some characters
are also escaped while the file name is generated. Therefore, it's a good to verify the file name by using the Generate Image
URLs for Excel section. See the Overwrite by using Edit in Excel section later in this article.

Synchronization jobs to send a media template to the channel side


For all the five supported entities (Worker, Customer, Catalog, Category, and Products), whenever you update the
Define media template dialog to set up an image, make sure that you run the Catalog job (1150) from Retail
and Commerce IT > Distribution schedule . This job will enable the updated media template to be synced to the
channel and used by MPOS. Run the Catalog job (1150) after you make any of the following changes:
You update the Catalog image media template from Catalog images > Define media template .
You update the Employee image media template from Employee images > Define media template .
You update the Customer image media template from Customer image > Define media template .
You update the Product image media template from Product images > Define media template .
You update the Category image media template from Categor y images > Define media template . You must
also publish the channel.

Overwriting the media template for entity items


As you learned in the previous section, the media template for a given entity supports only one common path. This
path is based on the media base URL that is configured and the media path that is defined. However, in many cases,
a retailer wants to be able to use images from different sources for a subset of items in an entity. For example, a
store uses the self-hosted media server for one set of catalog images but uses CDN URLs for another set. To
overwrite image URLs that are based on a media template for entity images at the entity level, you can use the Edit
in Excel and Manual edit functionality from the Preview page.
Overwrite by using Edit in Excel
1. Click Retail and Commerce > Catalog management > Catalog images .
2. On the Catalog images page, click Define media template . In the Define media template dialog box,
in the Entity field, Catalog should be selected.
3. On the Media path FastTab, notice the image location.
4. On the Generate Image URLs for Excel FastTab, click Generate .

IMPORTANT
Whenever the media template is changed, you must click Generate before you can use the Edit in Excel functionality.

You now see a preview of the image URLs that were generated based on the last saved media template.

NOTE
The URLs that are generated for Excel use the path and conventions of the media template that is defined. These
conventions include the conventions for file names. The expectation is that you've set up the physical images outside
Commerce, and the images can be retrieved from the URLs that are derived from the media template that you
defined earlier. You can overwrite these derived URLs by using the Edit in Excel functionality.

5. Click Edit in Excel .


6. After the Microsoft Excel worksheet is opened, click Enable edit when you're prompted.
7. When you're prompted, click Trust this add-in in the right pane, and wait for the add-in to complete the
installation.
8. If you're prompted to sign in, enter the credentials that you used to sign in to HQ.

9. After you sign in, you should be able to see the list of image URLs for the various catalog entries.
10. You edit, add, and remove the image URLs for various entity items.
11. For all entities except Products, you can overwrite the image URLs. Modify the existing image URL, so that it
uses the new destination URL of the image, and update the file name with the new file name for the image
file. The file name must be unique to help guarantee that the record is unique.
NOTE
When you overwrite image URLs for Products entities by using the Edit in Excel functionality or the entity item page,
MPOS always shows all the media template image URLs together with the overwritten image URLs.

12. After you've finished making your changes, click Publish in Excel to create a new explicit association entry.
13. Return to HQ, and click OK .
14. Run the appropriate synchronization jobs for the entity, and check the preview on the entity page or in
MPOS.
Creating new records
You can create new records in Excel. However, make sure that you provide the correct information. For example, to
create a new entry for a catalog, make sure that the catalog ID and catalog name are correct, and also provide a
unique file name. The unique file name is very important, because the uniqueness of records in Excel is validated
during publishing. First copy the details from the catalog that you want to create a new record for, and copy the
record. You just have to update the file name and URL, because the rest of the information will be same. To create
new records for Product entity items, you use the same basic procedure. From the Excel worksheet, copy an existing
record for the product that you to create a new record for, and then replace the image URL and filename. Make sure
that the file name is unique.
Deleting an existing record
Only the overwritten image URL records can be deleted. After an image is deleted and synchronization is
completed, the image will no longer appear on the Preview page or in MPOS. Image URL records that are derived
from the media template can't be deleted, because these records are always derived from the media template every
time.
Overwrite from the entity-level Preview page
For all entities except Products, you can overwrite the image URL for a given entity item at the entity item level from
the Preview page. For Products, you can use the "Catalog Products" entity page. This example shows how to
overwrite a catalog image.
1. Click Catalogs > Media > Images , and select the catalog image to update.
2. Click Add , and enter the image URL to overwrite the media template URL.
3. If you want this image to be shown in MPOS for the catalog, you can set it as the default image.
4. Click OK . The image URL is updated for this catalog image, and a preview is shown.
5. You can also see the image preview for all overwritten image URLs on the Catalog images gallery page.

NOTE
Currently, the gallery doesn't show image previews for media template image URLs. For Catalog, Worker, Customer, and
Category entities, if the user explicitly provides a URL through this page, we recommend that you indicate which image is the
default image, because Commerce Scale Unit clients show only one image per Catalog, Customer, Worker, and Category. If
the user doesn't specify a default image, the system determines the default image and send it to the Commerce service caller
(MPOS or Ecommerce).

Overwrite the image URL for catalog product images from the Preview page
To overwrite image URLs for catalog product images, you must use the Preview page. You can't use the Edit in
Excel functionality.
1. To overwrite product images at a catalog level, select a catalog, and then select the product to overwrite the
image for.
2. Click Attributes .
3. On the next page, select Image , and then click Edit . The Preview page opens as a slider dialog box.
4. Click Add , and overwrite the image URL with a new URL.
5. Click OK . You now see the preview of the new image and can set it as the default image.
NOTE
After category image association, you must publish the channel and run the Channel job to help guarantee that the changes
are published to the channel database.

Setting up images to appear in Offline mode for MPOS


MPOS can run in Online mode (when MPOS connected to Commerce Scale Unit) or Offline mode (when there is no
Commerce Scale Unit or network connectivity, and transactions are stored in a local offline database). When MPOS
runs in Offline mode, it can't get images from the external image server to display from Commerce Scale Unit,
because connectivity has been lost. However, you can still set up images so that they are shown when MPOS runs in
Offline mode.
Set up product images to appear in Offline mode for MPOS
The product images that must be used in Offline mode can be set up by uploading the required physical image into
the base product image.
1. Click Product information management > Products > Products .
2. Select the product to set the offline image for.
3. Click Edit , and then click the arrow in the right corner to show the right pane.
4. On the Product image FastTab, click Change image , and upload the physical image to use for the selected
product in Offline mode.
5. Save and close the page.
6. While MPOS is in Online mode, run the Catalog job in HQ, to make sure that the data is sent at least one time
to the offline database.
7. Put MPOS into Offline mode. You should see the image that you uploaded for the specific product in HQ.
Set up catalog, category, employee, and customer images to appear in Offline mode for MPOS
The catalog, category, employee, and customer images that must be used in Offline mode can be set up by adding
the required image's destination link to the gallery and setting the image as the default image for the selected
entity.
1. Go to the catalog, and then, on the Action Pane, click Media > Images .
2. Follow the steps in the Overwrite from the entity-level Preview page section to add the external image URL.
3. Mark this image as the default image for the catalog by selecting the check box against the Image listed in
the grid.
4. Run the Catalog job. This image will now be used as the Offline image for that catalog in MPOS.
5. Follow a similar process for other entities, such as Category, Employee, and Customer.
Client images in POS
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic is intended for people who implement functionality related to point of sale (POS) client image
management in a retail environment. It provides tips and guidance to consider when planning an implementation.
This guidance applies to both Cloud POS and Modern POS, and provides some general information about image
file size handling and types of images that can be used to enrich the user experience with the store and support
customer-focused scenarios like up-selling, cross-selling, and clientelling. Welcome screen images, category
images, and product images are examples of types of images that you can use.

Implementation considerations
File size - In order to maintain responsiveness of the POS client user interface (UI) and performance while
loading different kinds of images, we recommend that you prepare your images to be an appropriate file size
respective to the purpose of use. For example, product and category images in the Contoso demo data are
sized at 500 x 500 or 580 x 580 pixels.
Image size - The screens and displays of the POS devices will pre-determine reasonable image sizes (length
and width). You should size the image as close to your intended screen size as possible. For an example, see
the "Implementation example" section below.
Resolution - An important parameter to consider is the dots per inch (dpi), or for screen resolution, pixel
per inch (ppi). Because POS client images will not be printed, the common dpi setting for rendering images
on the web is a good guideline (72 to 150 dpi). Contoso demo image files are typically rendered to 96 dpi.
For high resolution devices, you should take operating system (OS) scaling into account and use the effective
resolution, rather than the actual pixels.
File types – You can use *.png or *.jpg image file types. In most cases, *.jpg are smaller in size.

Implementation example
To create a welcome screen image that covers two-thirds of the canvas on a common 18.5 inch POS display with a
1366 x 768 pixel resolution and a screen layout similar to Contoso demo data, choose an image with resolution that
is not much higher than the length and width of the screen. In this example, 911 x 512 pixel resolution is sufficient.
Selecting a relatively high resolution for length and width but keeping a low dpi setting will still result in reasonably
small file sizes.
Customer orders in Modern POS (MPOS)
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides information about customer orders in Modern POS (MPOS). Customer orders are also known as
special orders. The topic includes a discussion of related parameters and transaction flows.
In an omni-channel commerce world, many retailers provide the option of customer orders, or special orders, to
meet various product and fulfillment requirements. Here are some typical scenarios:
A customer wants products to be delivered to a specific address on a specific date.
A customer wants to pick up products from a store or location that differs from the store or location where the
customer purchased those products.
A customer wants someone else to pick up products that the customer purchased.
Retailers also use customer orders to minimize lost sales that stock outages might otherwise cause, because the
merchandise can be delivered or picked up at a different time or place.

Set up customer orders


Here are some of the parameters that can be set on the Commerce parameters page to define how customer
orders are fulfilled:
Default deposit percentage – Specify the amount that the customer must pay as a deposit before an
order can be confirmed. The default deposit amount is calculated as a percentage of the order value.
Depending on privileges, a store associate might be able to override the amount by using Deposit
override .
Cancellation charge percentage – If a charge will be applied when a customer order is canceled, specify
the amount of that charge.
Cancellation charge code – If a charge will be applied when a customer order is canceled, that charge will
be reflected under a charge code on the sales order. Use this parameter to define the cancellation charge
code.
Shipping charge code – Retailers can charge an extra fee for shipping merchandise to a customer. The
amount of that shipping charge will be reflected under a charge code on the sales order. Use this parameter
to map the shipping charge code to shipping charges on the customer order.
Refund shipping charges – Specify whether shipping charges that are associated with a customer order
are refundable.
Maximum amount without approval – If shipping charges are refundable, specify the maximum amount
of shipping charge refunds across return orders. If this amount is exceeded, manager override is required in
order to continue with the refund. To accommodate the following scenarios, a refund of shipping charges can
exceed the amount that was originally paid:
Charges are applied at the level of the sales order header, and when some quantity of a product line is
returned, the maximum refund of shipping charges that is allowed for the products and the quantity can't
be determined in way that works for all customers.
Shipping charges are incurred for every instance of shipping. If a customer returns products multiple
times, and the retailer's policy specifies that the retailer will bear the cost of return shipping charges, the
return shipping charges will be more than the actual shipping charges.

Transaction flow for customer orders


Create a customer order in Modern POS
1. Add a customer to the transaction.
2. Add products to the cart.
3. Click Create customer order , and then select the order type. The order type can be either Customer order or
Quote .
4. Click Ship selected or Ship all to ship the products to an address on the customer account, specify the
requested shipping date, and specify shipping charges.
5. Click Pick up selected or Pick-up all to select products that will be picked up from the current store or a
different store on a specific date.
6. Collect the deposit amount, if a deposit is required.
Edit an existing customer order
1. On the home page, click Find an order .
2. Find and select the order to edit. At the bottom of the page, click the Edit .
Pick up an order
1. On the home page, click Find an order .
2. Select the order to pick up. At the bottom of the page, click Picking and packing .
3. Click Pick up .
Cancel an order
1. On the home page, click Find an order .
2. Select the order to cancel. At the bottom of the page, click Cancel .
Create a return order
1. On the home page, click Find an order .
2. Select the order to return, select the invoice for the order, and then select the product line for the merchandise to
return.
3. At the bottom of the page, click the Return order .

Asynchronous transaction flow for customer orders


Customer orders can be created from the point of sale (POS) client in either synchronous mode or asynchronous
mode.
Enable customer orders to be created in asynchronous mode
1. Click Retail and Commerce > Channel setup > POS setup > POS profile > Functionality profiles .
2. On the General FastTab, set the Create customer order in async mode option to Yes .
When the Create customer order in async mode option is set to Yes , customer orders are always created in
asynchronous mode, even if Retail Transaction Service (RTS) is available. If you set this option to No , customer
orders are always created in synchronous mode by using RTS. When customer orders are created in asynchronous
mode, they are pulled and inserted into Commerce by Pull (P) jobs. The corresponding sales orders are created
when Synchronize orders is run either manually or through a batch process.
Additional resources
Hybrid customer orders
Hybrid customer orders
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

A hybrid customer order is a single order, which contains products that can be carried out of the store by the
customer, as well as products that will be picked up or shipped later.
In Commerce, you can select either carry out all products or carry out selected products for a customer order. The
product lines that are marked as carry out are automatically invoiced after the order is created, similarly this is the
same for an order that is to be picked-up after the order is created. The amount due on hybrid orders is determined
by adding the deposit percentage on pick and ship product lines with the full amount of the carry out lines. For
hybrid orders, the system switches between customer order mode and cash and carry mode as follows:
If all products in the cart are set to Carr y out deliver y , the order will be handled as a Cash and Carry
transaction.
If any or all lines in the cart are set to either Pick or ship deliver y , the order will be handled as a Customer
order transaction.
If a cart line is selected and Pick selected , Ship selected , or Carr y out selected is selected, only the specific cart
line is set with that delivery method. In that case, the downstream flow of the operation continues as usual.
However, if Pick selected , Ship selected , or Carr y out selected is selected without a cart line being selected, a
new page opens that lists all the cart lines. On that screen, you can select multiple lines at once for setting the
delivery method. When you use that method for selecting lines, any previous delivery method that has been
assigned to the line will be overridden.

Additional resources
Customer orders in Modern POS (MPOS)
Track commissions in the point of sale (POS) by using
sales groups
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

It's a common retail practice to track sales by the associate who worked with the customer by—providing
assistance, up-selling, cross-selling, and processing the transaction.
Tracking sales by sales representative is a measure of the associates selling abilities, while sales by cashier is a
measure of speed and efficiency. Sales tracked by sales representative are also often used to calculate commissions
or other incentives.

Configuring a worker to be a sales representative in POS


When a worker is added to a sales group, they become eligible for commission and can be identified as a sales
representative in the system. A worker who isn't in a sales group isn't eligible for commission and won't be listed as
a sales representative in the point of sale (POS) application. In POS, the list of sales representatives is derived from
all sales groups that contain at least one worker assigned to the store. The list is shown in POS as a combination of
Sales group ID and Name (ID : Name). A default sales group can be assigned to workers to support scenarios where
the retailer chooses to set the sales representative on POS lines automatically. Users can select from any sales
group that the worker is a member of.

Functionality profile settings


There are a number of functionality profile settings for a store that will determine the flow and process in POS that
involve sales representatives.

P RO F IL E DESC RIP T IO N

Default to cashier when available If this option is enabled, POS will automatically populate
transaction lines with the current cashier's default sales group.
If a cashier doesn't have a default sales group specified, the
value won't be set. A user could still manually set the sales
group by using a POS button grid button.
P RO F IL E DESC RIP T IO N

Prompt for sales representative This option has three possible values:
No – If this option is selected, the user won't be
prompted to select a sales group. The value could still
be set by using a cashier's default Sales group or
manually by using a POS button grid button.
Star t of transaction – If this option is selected, and
either the Default to cashier option isn't enabled or
the current cashier doesn't have a default sales group,
the user will be prompted to select a sales group at the
beginning of each transaction. Selecting a sales group
from this prompt will default all subsequent lines to the
selected sales group. A user could still manually set the
sales group by using a POS button grid button.
For each line – If this option is selected, and either
the Default to cashier option isn't enabled or the
current cashier doesn't have a default sales group, the
user will be prompted to select a sales group after
adding each line. A user could still manually set the
Sales group by using a POS button grid button.

Require This option is only applicable when POS is configured to


prompt for a sales representative. If enabled, the user will be
required to choose a sales group before continuing.
Otherwise, the user will be prompted, but can cancel and
continue without making a selection. After the line is added, a
user with sufficient permissions could still remove the sales
group from the line. "Require sales representative" is not
enforced in this situation.

Displaying the Sales representative information on the POS transactions


screen
The POS transaction screen layout and contents are configurable using the screen layout designer and assigned
screen layouts to stores, registers, or workers. The Sales representative field can be added to the Lines tab of the
Receipt pane. This will display the ID of the specified Sales group for each line on the transaction screen.

Adding Sales representative operations to POS button grids


POS allows users to configure button grids, which are included in screen layouts to provide access to POS
operations. The following POS operations can be assigned to button grid buttons that pertain to Sales
representatives.

O P ERAT IO N DESC RIP T IO N

Set sales representative on line This POS operation displays a list of eligible Sales groups (ID :
Name) for the store. Selecting a Sales group from this list will
set the value on the current transaction line.

Clear sales representative on line This POS operation removes the current Sales group value
from the current transaction line.
O P ERAT IO N DESC RIP T IO N

Set sales representative on transaction This POS operation displays a list of eligible Sales groups (ID :
Name) for the store. Selecting a Sales group from this list will
set the default value on the current transaction. Any existing
lines without a sales group assigned will be set, as well as any
subsequently added lines.

Clear sales representative on transaction This POS operation removes the current default Sales group
value from the current transaction. It does not impact any
lines already existing in the transaction.

Calculating commissions
Commission is calculated for the workers in the specified sales groups at the time of statement posting or sales
order posting. The commission amount is determined based on the worker's commission share, as defined in the
sales group and the associated commission calculation settings for the customer and/or products on the
transaction.
Configure, install, and activate Modern POS (MPOS)
3/19/2020 • 19 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to configure, download, and install Modern POS on various platforms. It then describes
how to activate Modern POS through device activation.

Technology
The self-service process lets you download the appropriate version of the Modern POS installer and install it on
the physical device that you want to use as the point of sale (POS) register. Device activation is the main
onboarding step that ties the physical device to a register in Headquarters. Here are the main technical functions
of this feature:
Tie a physical device to a business entity (register).
Provide enhanced security through Microsoft Azure Active Directory (Azure AD) and a device token/ID.
Stop unauthorized remote use of Modern POS. (In other words, deactivate a device remotely.)
Initialize settings for easy Modern POS functioning (number sequence, hardware profile, merchant
information) as the first touchpoint of the POS.
Comply with payment card industry (PCI) standards, and report on device information from Headquarters.

NOTE
If you are installing Modern POS for use with an on-premises environment, Modern POS does not use Azure Active
Directory credentials for device activation.

Setup
Before you start the steps that are outlined in this topic, follow these steps.
Verify that you have credentials to sign in to Headquarters.
Verify that you have administrative or root access to install Modern POS on a device.
Verify that you can access the Commerce Scale Unit from the device.
Verify that the environment contains the Commerce permission groups and jobs in the Human resources
module. These permission groups and jobs should have been installed as part of the demo data.

Download and install Modern POS


Verify that the device is correctly configured
1. In Headquarters, go to Retail and Commerce > Channels > Channel deployment .
2. On the Channel deployment page, select the Registers tile.
3. On the Registers page, select a store register.
NOTE
The demo data thoroughly defines the Houston store and registers for self-service. To find the Houston registers,
enter Houston in the filter at the top of the list of devices.

4. Select a register by selecting the register number in the Register number column.

NOTE
In the Houston store, register Houston-3 is well defined and is therefore useful as an example.

5. On the page for the register, under General , verify that the Suppor t offline option is set to No .

NOTE
To use offline support, on the Action Pane, select Edit , and then set Suppor t offline option to Yes .

Download the Modern POS installer


1. On the Welcome page, use the menu in the upper left to go to Retail and Commerce > Channels >
Channel deployment .
2. On the Channel deployment page, select the Devices tile.
3. Select a device.

NOTE
The Houston devices are well defined. Houston-3 is useful as an example for a Microsoft Windows desktop or
tablet. Houston-21 is useful as an example for a Windows Phone.
When you select a device, the Download button on the Action Pane becomes available.

4. Select Download , and then select Configuration file .

NOTE
Browsers might block the download pop-up that is generated. You must select either Allow once or Options
for this site > Always allow . Then, while the device is still selected, select Download again.
The configuration file must be saved to the same location as the Modern POS installer. For security reasons,
delete this file after installation is completed.

5. On the Notification bar that appears at the bottom of the Internet Explorer window, select Save . (The
Notification bar might appear in a different place in other browsers.)
6. Select Download , and then select Retail Modern POS .
NOTE
Browsers might block the download pop-up that is generated. You must select either Allow once or Options
for this site > Always allow . Then, while the device is still selected, select Download again.
The installation package that you must use varies, depending on whether you require offline support, and
whether the device that Modern POS will be installed on is a Windows tablet or a phone device (such as a
Windows Phone, an Android device, or an iOS device). The correct package is automatically selected for
download, based on the register settings and the application type that is set for the device. If the offline
package is selected for a Windows tablet, but Microsoft SQL Server isn't already installed (or if it doesn't meet
the requirements for the offline package), SQL Server is downloaded and installed silently.

7. On the Notification bar that appears at the bottom of the Internet Explorer window, select Save . (The
Notification bar might appear in a different place in other browsers.)
8. After the setup installer has been saved, on the Notification bar, select Run . (This step might differ,
depending on your browser.)
Run the installer on a Windows computer

NOTE
Before you run the Modern POS installer, make sure that all system requirements are met.
The installer will sideload a modern application. Therefore, a Group Policy entry must be set to allow for sideloaded
applications. The installer will change the associated registry key as follows to allow for this installation:
Path: HKLM:SoftwarePoliciesMicrosoftWindowsAppx
Proper ty: AllowAllTrustedApps
Value: 1

If you are installing Modern POS for use with an on-premises environment, you must start the installer from a
command line as follows:

ModernPosSetupOffline.exe -UseAdfsAuthentication

The Modern POS installer first extracts the associated files and then starts the installation.
1. The installer validates that all prerequisites are met.

NOTE
If a system restart is required, the installer informs you about this requirement, but the installation can typically
continue.
A sideloaded installation of Modern POS requires a Group Policy change. The installer informs you if this change
is required and then makes the change automatically.

2. If you selected offline support, but a valid version of SQL Server isn't found, the installer downloads and
installs Microsoft SQL Server 2014 Express with Service Pack 2 (SP2). To meet the prerequisites, SQL
Server must have Full-text search installed. Additionally, a minimum of SP2 must be installed for
Microsoft SQL Server 2014, or a minimum of Service Pack 3 (SP3) must be installed for Microsoft SQL
Server 2012.
NOTE
The installer tries to download the correct language. However, if you require a specific language, we highly
recommend that you manually install SQL Server. If the installer can't correctly determine the language, it
installs the English version of SQL Server 2014 Express with SP2 by default. Typically, after the SQL installation is
completed, the system requires a restart before the installation of Modern POS can continue.
This process might require a long time, depending on the speed of the computer and the Internet connection. If
a prerequisite fails during this step, first retry the installer. If the installer continues to fail, see the
Troubleshooting section of this topic.

3. The installer installs Modern POS.


4. On the page that states that installation was successful, select Close to exit the installer.
You can now start the program.

NOTE
This installation occurs only for the administrator user who ran the installer. For all other users, a desktop icon to install
Modern POS is created. Every time that a user signs in, he or she must double-click this icon. The program will then be
installed or updated, as required. If a user doesn't use the desktop icon after an update, the POS client will request that the
user run from the desktop icon instead to update correctly prior to running.

Run the installer on any other device (Windows Phone, Google Android device, or Apple iOS device )
1. If the application wasn't downloaded directly to the device, transfer the downloaded app file and the
associated configuration file to the same folder on the device. Depending on the type of device, the app
file will be an APPX, APK, or IPA file.

NOTE
This step can be done in various ways. For example, the files can be accessed through a shared folder, transferred
via USB cable, or securely mailed to the user's device.

2. Use a file explorer on the device to browse to the app directory.


3. Tap the app to begin application installation. (If the configuration file was saved to the same location, the
Commerce Scale Unit URL will be automatically entered when you start the application and begin device
activation.)

NOTE
Some devices require that you double-tap the file to begin application installation. Some devices might not notify
you that an application has been installed. On those devices, we recommend that you look at the application list to
verify that the application was correctly installed.

4. When the installation is completed, you should be able to start the application from the application list on
the device. For example, after you install the application on a Windows Phone, you can start it from the
home screen tiles list.
You can now start the program.

Create a worker
For this topic, we have already created workers and assigned them to the Houston address book in the demo
data that is provided. Therefore, this topic will use pre-generated data.
Create a worker
1. Go to Retail and Commerce > Employees > Workers .
2. On the Action Pane, select New to create a new employee.
3. Enter the first and last name. For example, enter John as the first name and Smith as the last name.
4. Verify that the Legal entity field is set to USRT , the Worker type field is set to Employee , and the
Employment star t date field is set to the current date at 12 AM, so that the worker's employment starts
immediately.
5. Select the Assign a position check box. Select position number 000544 , which is the Store manager
position.
6. Set the Personnel action type field to Hire Action to hire a new employee immediately.
7. Select Continue .
8. On the Action Pane, select Complete to finish creating the new worker.
9. Return to the worker list. Search for the newly created worker (for example, John Smith). Select the worker's
name to see the details of the new worker.
10. On the Action Pane, select Edit .
11. Verify that the language for the worker is en-us .
12. Under Worker summar y , in the Address books field, select the Houston store.
13. On the Commerce tab, you can reset the POS password. For this tutorial, reset the password to 123 .
14. On the Commerce tab, under Screen layout , assign a screen layout. For example, select F2MP16:9M
(Fabrikam MPOS Manager (16:9) ).
15. On the Action Pane, select Save .
16. Go to Retail and Commerce > Periodic > Distribution schedule .
17. Select the 1060 – Staff job, and then, on the Action Pane, select Run now to sync the worker data to the
channel database.
18. After the new worker has been created and synced to stores, worker John Smith can sign in to any POS device
that is used in the HOUSTON store that he is assigned to, and he can perform transactions on that device.
However, the device must be activated first. The following section explains how to activate a device for a new
worker.
Map an Azure AD account to a worker who has POS permissions for device activation
You must complete this procedure before you activate Modern POS for a new worker.
1. In Commerce, from the Worker page, open the Worker details page for the worker that you created in
the previous procedure.
2. On the Action Pane, select Edit .
3. On the Commerce tab, select the POS permissions link. Under POS permission group , verify that
the value is Manager .
4. When you've finished, return to the Worker details page for the new worker.

NOTE
To return to the Worker details page, select the Close button (X ) on the right side of the Action Pane.

5. On the Action Pane, select Commerce , and then select Associate existing identity .
6. In the dialog box that appears, select the Azure AD account that is named admin AX Admin . (If an
alternative administrator Azure AD account has been created, select that account instead.)
7. Select OK . In the demo data, the Azure AD account that is associated with the administrator account in
Headquarters is your administrator Azure AD account.
8. On the Action Pane, select Save , and then refresh the page. The External identity section should be now
updated with the new information.

NOTE
The External identifier field will remain empty. This behavior is expected. Therefore, you can ignore it.

This procedure should be completed before you activate Retail Cloud POS or Modern POS. For more
information, see Manage activation accounts and validate devices.
Run the Validate Devices for Activation check
1. In Headquarters, open the Device page (Retail and Commerce > Setup POS > Devices ).
2. Select the device to validate for device activation, and then select Validate Devices for Activation . For
example, select device HOUSTON-3 .
3. In the dialog box that appears, select the worker to validate the device for (that is, the worker that you
mapped to the Azure AD account in the previous procedure). For example, select worker 000160 .
4. Select OK , and make sure that you receive the following message: "Pre-Activation validation completed for
Device HOUSTON-3 and Staff 000160. Validation: Passed"

Activate a device
1. Start Modern POS on your computer. Read the instructions on the Before you star t page, and make sure
that they are completed. Then select Next .
2. Select Activate . You're redirected to the Azure AD sign-in page.
3. Enter the Azure AD account that you mapped earlier, such as admin@<MyCompany>.onmicrosoft.com , and the
password.
4. When activation is completed, select Get Star ted .
5. Sign in to Modern POS by using worker account 000160 and the password 123 .
The device should now be activated and ready to use.

Update the Modern POS application


NOTE
To learn more about deployable packages, see the article Apply a deployable package.

1. After a Modern POS application is uploaded into the environment, the version of the package can be selected
on the device. The package listings should include the new uploaded application.
2. To update the Modern POS application, follow the steps in the Download and install Modern POS section. To
do an in-place update, just run the newer version of the self-service installer. Uninstallation isn't required or
recommended. Device activation status will be maintained after the update.
3. The installer will use the currently installed configuration settings. If the configuration file has changed,
because of various configuration changes in Commerce, an update won't change the Modern POS application
settings.

Troubleshooting
Troubleshoot installation
Your browser blocks the download pop-up that is generated.
Solution: Select either Allow once or Options for this site > Always allow (or the equivalent
commands in the browser that you're using). Then, while the correct register is still selected, select
Download again.
The installation package that you must use depends on whether you require offline support. The correct
package is automatically selected for download. For the offline package, SQL Server must be installed and
must meet the requirements for the offline package.
Solution: No action is required. If SQL Server isn't already installed (or if it doesn't meet the
requirements), it's downloaded and installed. The installer gives generic information about the download
and installation of SQL Server Express 2014. This installation might require a long time.
The installation occurs only for the administrator user who ran the installer, but not for any other users.
Solution: The installer generates a desktop icon that is used to install, upgrade, and run Modern POS.
This icon is generated for every user on the computer. When a user who must install Modern POS double-
clicks this icon, the program is installed. The user can then start to use Modern POS.
SQL Server isn't successfully downloaded and installed through the self-service Modern POS installer.
Solution 1: A list of reasons shows the prerequisites that failed. If the list includes SMO or SQL
Management Objects , first try to run the installer again. SQL Server Management Objects (SMO) are
installed during SQL Server installation. Therefore, it's possible that the operating system didn't pick up
the registration of the executable program that you used. When you run the installer a second time, the
prerequisites are retested, and the prerequisite check should correctly verify the required executable
program. If the installer continues to fail, restart the system to fully complete the registration of SQL
Server, and then rerun the installer.
Solution 2: Manually download and install SQL Server (Microsoft SQL Server Express or another
version) by using Advanced Tools. During installation, select Full-text search as an additional feature.
The installation of Modern POS fails, because the registration of performance (perf) counters failed.
Solution: Follow these steps to fix this issue:
1. Open a Command Prompt window as an administrator.
2. Enter the following command.

lodctr /s:"perf_backup.txt"

3. Enter the following command.

lodctr /R

4. If the system doesn't rebuild the performance counter settings from the system backup, rerun the
lodctr /R command.
5. Rerun the Modern POS installer.
If you're using a downloaded virtual hard disk (VHD) instead of a cloud-hosted environment, the
downloader might fail.
Solution 1: In a downloaded VHD, the Azure storage emulator must be installed and must be
running correctly. Otherwise, the self-service packages can't be downloaded correctly.
Solution 2: A failure might have occurred during the process of integrating the VHD into
Microsoft Hyper-V. You must manually edit permissions before the packages can be downloaded
correctly. Follow these steps:
1. In File Explorer, browse to C:\Microsoft Dynamics 365\70\Retail Ser ver .
2. Right-click the SelfSer vicePackages folder, and then select Proper ties .
3. On the Security tab, select Edit .
4. In the Permissions for SelfSer viceDeployment dialog box, select Add .
5. In the Select Users, Computers, Ser vice Accounts, or Groups dialog box, select
Locations .
6. In the Locations dialog box, select the first entry in the list (the local computer), and then select
OK .
7. In the Select Users, Computers, Ser vice Accounts, or Groups dialog box, enter the name
IIS_IUSRS , and then select Check names . The object name should be changed to IIS_IUSRS .
Select OK .
8. In the Permissions for SelfSer viceDeployment dialog box, select the new IIS_ISURS user.
Under Permissions for IIS_IUSRS , select Allow for the Full control permission. Select OK .
9. In the Open permission dialog box, select OK .
The latest iOS version does not support your self-signed certificate.
Solution 1: Utilize a domain and generate a proper domain-based certificate.
Solution 2: Download the open source OpenSSL library and perform the following after completing
installation:
1. Using PowerShell, create a private key for the root Certificate Authority (CA) using a command
such as $ openssl genrsa -des3 -out rootCA.key 2048 . 2. You will be prompted for a
password, which must be remembered for later usage. 3. Next, generate the root certificate using a
command such as $ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024
-out rootCA.pem . There will be a prompt for the password entered previously and some basic
certificate information.

NOTE
The number of days the certificate is valid for can be altered. In the above example this is 1024 days.

d. Create a new info.ext file and enter the following details:


keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
subjectAltName = @alt_names
[alt_names]
DNS.1 = <FULLY QUALIFIED DOMAIN NAME OF HOST COMPUTER>
e. Generate the signing request and private key using a command such as openssl req -new -
nodes -out ser ver.csr -newkey rsa:2048 -keyout ser ver.key .
f. Issue the certificate using the previously generated root certificate using a command such as $
openssl x509 -req -in ser ver.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial
-out ser ver.cr t -days 500 -sha256 -extfile info.ext . There will be another prompt for the
root key password and you will need to specify the number of days that the certificate is valid
(500 days in this example).
g. Generate the IIS certificate using a command such as $ openssl pkcs12 -inkey ser ver.key -
in ser ver.cr t -expor t -out ser ver.pfx . This command will request a new password, which will
be used later when the certificate is imported.
h. Open Cer tmgr.msc and go to Trusted Root Cer tificate Authorities . Use the Impor t action
to import the previously generated rootCA.pem root CA file.
i. In the same window, go to Personal and use the Impor t action to import the previously
generated ser ver.pfx .
j. Next, open the IIS Manager , select the RetailHardwareStationWebSite and select Edit
Bindings from the right-most menu.
k. In the new window, select the HTTPS site binding, and the select Edit . In the final screen, select
the newly installed certificate and select OK .
l. Verify the certificate is correctly being used. In a web browser, go to
"https://<hostname>/HardwareStation/ping".
m. Install the certificate on the iOS device:
Copy the rootCA.pem file and rename the copy to rootCA.cr t .
Using OneDrive or another file hosting location, upload the rootCA.cr t and ser ver.cr t so that
they can be downloaded onto the iOS device.
n. On the iOS device, go to Settings > General > Profiles and select the downloaded profile for
the rootCA.cr t . Select Install .
o. Validate that the profile status updates to Verified . Repeat the same process for the ser ver.cr t
file.
p. Go to Settings > General > About > Cer tificate Trust Settings and enable the installed
root certificate.
q. On the iOS device, use the hardware station ping URL specified previously to verify that the
certificate is trusted.
r. Open the POS application in Non-drawer mode and pair to the hardware station as typically
performed.
Troubleshoot device activation for Modern POS
The Microsoft account (Azure AD) sign-in page doesn't open.
Solution: The Azure AD endpoint might be unreachable. Wait a few minutes, and then try again.
After you enter the Azure AD account, you receive an error message that states that the user isn't
authorized.
Solution: Verify that the Azure AD user is mapped to a worker who has POS permission to activate
devices. The Manage device permission for the worker should be set to Yes .
Device activation isn't completed. It fails during one of the steps.
Solution: Follow this checklist to verify that all data is correct:
Complete the Validate Devices for Activation check in Headquarters, and make sure that the device
passes validation.
On the client computer where you're activating the device, access the Commerce Scale Unit URL health
check, and make sure that the health check is passed. Use the following format for the URL:
https://MyCompanyNameret.axcloud.dynamics.com/commerce/healthcheck?testname=ping
The worker must be mapped to an Azure AD account (under External identity ).
The Azure AD account that is mapped must belong to the same tenant.
To map the worker to the Azure AD account, sign in to Headquarters by using the Admin account for
Microsoft Dynamics Lifecycle Services (LCS).
Make sure that the worker is set up as a Commerce user in the Manager role. (This item is checked by
validation.)
Make sure that the channel is published. (This item is checked by validation.)
Make sure that the channel database has the synced data from Headquarters, and that download jobs
are running.
Set up the hardware profile under Registers . (This item is checked by validation.)
Make sure that the register and store have a screen layout. (This item is checked by validation.)
Make sure that a primary address is set up for the legal entity.
Make sure that the language is set up for the Commerce Data Exchange: Real-time Service user profile
(JBB in the demo data).
Make sure that the Real-time Service profile has the correct access.
Make sure that the electronic funds transfer (EFT) configuration value is present.
Troubleshoot Modern POS connectivity
On a single-computer system, such as a developer topology or a demo environment, or when Commerce Scale
Unit and Modern POS are installed on the same computer, Modern POS can't complete device activation.
Solution: This issue occurs because Modern POS can't make network calls to the same computer (that is, calls to
itself). To mitigate this issue, you must enable an AppContainer loopback exception so that communications can
occur to the same computer. Various applications will help enabling this loopback for Modern POS. For more
information about loopback, see How to enable loopback and troubleshoot network isolation.

Additional resources
Install the POS layout designer
Set up extended logon functionality for MPOS and
Cloud POS
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers your options for setting up extended logon for Cloud POS and Retail Modern POS (MPOS).

Setting up extended logon


You can find the setup for bar code masks at Retail and Commerce > Channel setup > POS setup > POS
profiles > Functionality profiles . The Functions FastTab includes the following options that are related to
extended logon.
Staff bar code logon
When the Staff bar code logon option is enabled, workers who have an extended logon assigned to their point of
sale (POS) credentials can log on by using a bar code.
Staff bar code logon requires password
When the Staff bar code logon requires password option is enabled, the staff bar code logon selects only the
worker who is assigned to the extended logon that is presented. Workers must still enter their password when this
option is enabled.
Staff card logon
When the Staff card logon option is enabled, workers who have an extended logon assigned to their POS
credentials can log on by using a magnetic stripe.
Staff card logon requires password
When the Staff card logon requires password option is enabled, the staff card logon selects only the worker
who is assigned to the extended logon that is presented. Workers must still enter their password when this option
is enabled.

Assigning an extended logon


By default, only managers can assign extended logon to workers. To assign extended logon, go to Extended log
on in POS. Then search for a worker by entering his or her operator ID in the search field. Select the worker, and
then click Assign . On the next page, swipe or scan the extended logon to assign to the worker. If the swipe or scan
is successfully read, the OK button becomes available. Click OK to save the extended logon for that worker.

Deleting an extended logon


To delete the extended logon that is assigned to a worker, search for the worker by using the Extended log on
operation. Select the worker, and then click Unassign . All extended logon credentials that are associated with that
worker are removed.
Extending extended logon
The logon service can be extended to support additional extended logon devices, such as palm scanners. For more
information, see the POS extensibility documentation.

Using extended logon


When extended logon is configured, and a worker has been assigned a bar code or magnetic stripe, the worker just
has to swipe or scan his or her card while the POS logon page is displayed. If a password is also required before
logon can proceed, the worker is prompted to enter his or her password.
Manage activation accounts and validate devices
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how an IT Pro can set up Commerce activation accounts for workers to activate Modern POS or
Cloud POS devices.

Setting up a device activation account for a single worker


This procedure should be completed before you activate Cloud POS.
1. In Commerce, from the Workers page, open the Worker details page for the worker to assign AAD
device activation privileges to. Click Edit .
2. On the Retail and Commerce tab, click the POS permissions link. Make sure that the worker is in the
Manager Permission group, or that Manage Devices is set to Yes for the worker.
3. On the Commerce tab, under External identity , update the values for the following fields:
Alias
UPN
External identifier
4. You can update the External identity fields by using an existing AAD account or creating a new AAD
account. To update the fields, access the External identity options from the Retail and Commerce main
menu (Retail and Commerce > Associate existing identity or Retail and Commerce > Create new
identity ).
5. To use an existing AAD account, select Retail and Commerce > Associate existing identity . In the slider,
click the AAD account that has the correct name, and then click OK . The AAD account that is associated with
that name and alias is the user's Activation account for Modern POS.
6. Complete and save the changes on the Workers page, and then refresh the page. The section that contains
external identity information should be updated with the new information. The mapped AAD account is now
your Activation account for Cloud POS and Modern POS. This account is mapped to a worker for the
required POS permissions. You can use this AAD account for Modern POS or Cloud POS activation.
7. The Create external identity feature creates a new AAD account for you by using the alias that you enter. To
update the fields, access the External identity options from the Retail and Commerce main menu
(Retail and Commerce > Create new identity ).
8. You can either manually enter the alias to generate or use the Reset to default button. Then manually
enter a strong password, and click OK .
9. If the worker is created successfully, you receive a message on the Workers page. The mapped AAD
account is now the user's Activation account for Cloud POS and Modern POS. This account is mapped to a
worker for the required POS permissions. You can use this AAD account for Modern POS or Cloud POS
activation.
Setting up device activation accounts for multiple workers
You can set up activation accounts for multiple workers in bulk. However, this functionality is supported only if
you're creating new external identities, not if you're associating identities.
1. In the workers form, select the list of workers to set the activation account for.
2. Click Retail and Commerce > Create external identity to update the fields. Any AAD accounts that are
associated with the workers appear in this pane.

NOTE
These accounts aren't device activation accounts until you map them by using the external identity flow options.

3. If you want to use the existing AAD accounts as activation accounts, you can't map them in bulk. Cancel the
selection of those workers, and then map them individually by using Use existing external identity .
4. To create new AAD accounts and associate them with the workers, so that they can be used as activation
accounts, update the Alias and Password fields, and then click OK . In the main worker form, you receive a
message as activation accounts are created for each worker.

Run the Validate Devices for Activation check at headquarters


Before handing an activation account to a worker, an IT Pro must run the Validate devices check for the devices
assigned to the worker. This will help identify any potential failures of device activation in advance and fix it before
it is given to the worker.
1. Open the Device page in HQ (Retail and commerce > Channel setup > POS setup > Devices ).
2. Select the device to validate for device activation, and then click Validate devices for activation . For
example, select device HOUSTON-2 .
3. In the dialog box that appears, select the worker to validate the device for (that is, the worker that you mapped
to the AAD account in the previous procedure). For example, select worker 000160 .
4. Click OK , and make sure that you receive a message similar to the following: "Pre-Activation validation
completed for Device HOUSTON-2 and Staff 000160. Validation: Passed"

Checklist to follow before activation


1. Complete the Validate devices for activation check in HQ, and make sure that the device passes validation.
2. On the client machine where you're activating the device, access the Commerce Scale Unit URL health check,
and make sure that the health check is passed. Use the following format:
https://clxtestax404ret.cloud.test.dynamics.com/en/healthcheck?testname=ping
3. The worker must be mapped to an AAD account (under External identity ).
4. The AAD account to map must belong to the same tenant.
5. To map the worker to the AAD account, sign in to HQ by using the Admin account for Microsoft Dynamics
Lifecycle Services (LCS).
6. Make sure that the worker is set up as a Commerce user in the Manager role (checked by validation).
7. Make sure that the channel data is present in the channel database.
8. Set up the hardware profile under Registers > Register (checked by validation).
9. Make sure that the register and store have a screen layout (checked by validation).
10. Make sure that a primary address is set up for the legal entity.
11. Make sure that the electronic funds transfer (EFT) configuration value is present.
Create financial dimensions for POS registers and
configure dimension values on registers
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through creating financial dimensions for point of sale (POS) registers, and demonstrates
how to configure financial dimension values on registers. This procedure doesn't include other related steps, such
as creating dimension sets and account structures. Those tasks can be found in other topics. This recording uses
USRT demo company.
1. Go to General ledger > Chart of accounts > Dimensions > Financial dimensions.
2. Click New.
3. In the Use values from field, select an option.
4. In the Dimension name field, type a value.
5. Click Activate.
6. Click Close.
7. Click Activate.
8. Click Dimension values.
9. Close the page.
10. Click Save.
11. Close the page.
12. Go to Retail and Commerce > Channel setup > POS setup > Registers.
13. In the list, find and select the desired record.
14. Toggle the expansion of the Financial dimensions section.
15. Click Edit.
16. In the Terminal field, click the drop-down button to open the lookup.
17. In the list, find and select the dimension value for the register being updated.
18. Click Save.
Create POS permission groups
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to create a POS permission group. The demo data company used to create this task is USRT.
This task is intended for the Commerce operations manager role.
1. In the navigation pane, go to Modules > Retail and Commerce > Employees > Permission groups .
2. Select New .
3. In the POS permission group ID field, type a value.
4. In the Description field, type a value.
5. Select Yes in the View time clock entries field. You can now enable or disable various permissions for your
POS Permission group. For some permission you can set a value that will be used to evaluate if the POS user
can perform the action. This task guide enables a few permission that might be given to a cashier.
6. Select Yes in the Allow create order field.
7. Select Yes in the Allow edit order field.
8. Select Yes in the Allow retrieve order field.
9. Select Yes in the Allow password change field.
10. Select Yes in the Allow blind close field.
11. Select Save . After your changes are saved you need to run the Staff distribution schedule to push the changes to
commerce channels.
12. In the navigation pane, go to Modules > Human resources > Jobs > Jobs .
13. Next we will assign the POS permission group to a Job. In the list, find and select the desired record.
14. Select Edit .
15. Expand the Job classification section.
16. In the POS permission group field, enter or select a value. All Workers in Positions for this Job will use this POS
permission group's settings unless the workers POS permissions have been overridden at their Position level.
17. Select Save . After your changes are saved you need to run the Staff distribution schedule to push the changes to
channels.
Create point of sale (POS) visual profiles
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through creating a new point of sale (POS) visual profile. A visual profile contains basic
information that determines the appearance of POS registers. You can create several visual profiles and assign
specific profiles to run on specific registers. This procedure uses the USRT demo data company.
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Visual profiles.
2. Click New.
3. In the Profile number field, type a value.
4. In the Description field, type a value.
5. In the Application type field, click the drop-down button to open the lookup.
6. In the list, click the link in the selected row.
7. In the Theme field, click the drop-down button to open the lookup.
8. In the list, click the link in the selected row.
9. In the Accent color field, click the drop-down button to open the lookup.
10. In the list, find and select the desired record.
11. In the list, click the link in the selected row.
12. Toggle the expansion of the Login background section.
13. In the Landscape image ID field, select or enter an image ID.
14. In the Portrait image ID field, select or enter an image ID.
15. Toggle the expansion of the Background section.
16. RequestPopup the Image ID.
17. In the list, click the link in the selected row.
18. Click Save.
Configure and install Retail hardware station
2/1/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to configure, download, and install Retail hardware station by using self-service. It also
explains how to uninstall Retail hardware station.

IMPORTANT
It is critical to note that this component utilizes a server certificate. Server certificates must be managed for expiration. By
default, a certificate expires in one calendar year (365 days).

Download Retail hardware station by using self-service


Configure a new Retail hardware station profile (Start here for Dynamics 365 for Retail, February 2016)

NOTE
This procedure is required only if you're running the February 2016 (RTW) version of Retail. If you're running version 1611,
start with the next procedure.

1. Use your Microsoft Azure Active Directory (Azure AD) credentials to sign in to the Retail headquarters or
Retail trial.
2. On the Welcome page, use the menu in the upper left to go to Retail > Channel setup > POS setup >
POS profiles > Hardware station profiles .
3. On the Hardware station profile page, on the Action Pane, select New .
4. In the Hardware station ID field, enter a unique hardware station ID.

NOTE
The Name field is used for a description of the unique hardware station profile.

5. In the appropriate fields, enter the port number, select a hardware profile, and select a package name.

NOTE
Only one hardware station package is provided for an environment that has been loaded with demo data.

6. On the Action Pane, select Save .


Configure a new Retail hardware station (Start here for Retail, version 1611 or later)
NOTE
If you're running the February 2016, non-upgraded version of Retail (Initial release), skip step 6.

1. Use your Azure AD credentials to sign in to the Retail trial.


2. On the Welcome page, use the menu in the upper left to go to Retail > Channels > Retail stores > All
retail stores .
3. On the All retail stores page, select the retail channel ID of the desired store. The details view for the
store appears.

NOTE
The Houston store is the most thoroughly prepared store in the demo data.

4. On the Retail store details page, on the Hardware stations FastTab, select Add .

NOTE
The Retail Server URL that is used for the selected store is read-only. This URL will be important during the
installation of Retail hardware station.

5. In the Hardware station type field, select Shared to indicate that this hardware station is an Internet
Information Services (IIS), installed hardware station that will be used by external point of sale (POS)
systems.

NOTE
The value Shared signifies that the installation is a truly shared hardware station installation, and that it works
through HTTPS communication. By contrast, the value Dedicated signifies that the hardware station is a part of
Modern POS, and that it works through inter-process communication.

6. Follow one of these steps, depending on the version that you're running:
For version 1611: In the appropriate fields, enter the port number, select a hardware profile, and
select a package name.

NOTE
Only one hardware station package is provided for an environment that has been loaded with demo data,
at environment creation time.

For the Februar y 2016 version: Select a hardware station profile.


7. Enter the host name of the computer that you're installing Retail hardware station on. Additionally, enter
the electronic funds transfer (EFT) terminal ID that is associated with that computer for merchant account
information.
Download the Retail hardware station installer
1. Use your Azure AD credentials to sign in to the Retail headquarters or Retail trial.
2. On the Welcome page, use the menu in the upper left to go to Retail > Channels > Retail stores > All
retail stores .
3. On the All retail stores page, select the retail channel ID of the desired store. The details view for the
store appears.

NOTE
The Houston store is the most thoroughly prepared store in the demo data.

4. On the Retail store details page, select the Hardware stations FastTab.

NOTE
The Retail Server URL that is used for the selected store is read-only. This URL will be important during the
installation of Retail hardware station.

5. Select the hardware station to download, and then select Download .

NOTE
Browsers might block the download pop-up that is generated. You must select either Allow once or Options
for this site > Always allow . Then select Download again.
The correct installation package is automatically selected for download, based on the hardware station profile.

6. On the Notification bar that appears at the bottom of the Internet Explorer window, select Save . (The
Notification bar might appear in a different place in other browsers.)
7. After the setup installer has been saved, on the Notification bar, select Run . (This step might differ,
depending on your browser.)
Run the installer

NOTE
Before you run the Retail hardware station installer, make sure that all system requirements are met.

The Retail hardware station installer first extracts the associated files and then begins the installation.
1. The installer validates that all prerequisites are met. If a sideloading key is required, the installer requests
it. This key is found on the Devices page for each device, under General .

NOTE
If a system restart is required, the installer informs you of this requirement but can continue the installation.
Before you can use hardware that is based on the Object Linking and Embedding for Retail Point of Sale
(OPOS) standard, the OPOS Common Control Objects must be installed. If they aren't installed, the installer
informs you of this requirement but can continue the installation.

2. Enter the Retail Server URL (for example, https://MyCompanyNameret.axcloud.dynamics.com/Commerce ), and


then select Next .
NOTE
You can find the Retail Server URL at the top of the Hardware stations FastTab on the Retail store details
page.

3. Select a valid Secure Sockets Layer (SSL) certificate to use for HTTPS communication.

NOTE
The certificate must use private key storage, and server authentication must be listed in the enhanced key usage
property. Additionally, the certificate must be trusted locally, and it can't be expired. It must be stored in the
personal certificate store location on the local computer.

4. The next page requests the user that should be used for the IIS application pool. By default in version
1611 and later, the installer can automatically create and use a service account. If you're on a domain or
require more specific controls, clear the check box, and then enter the user name and password that the
application pool should run under.
5. Enter the HTTPS port to use.

NOTE
You can find the HTTPS port in Retail. (See the configuration instructions earlier in this topic).
The installer automatically enters the host name. If, for any reason, you must change the host name for the
installation, you can change it here. The host name must be the fully-qualified domain name (FQDN) of the
system, and it must be entered in the Host name field for the selected hardware station entry.

6. The installer installs Retail hardware station and then indicates whether the installation was successful.
7. When the installation is completed, the Install merchant information tool may start. This installer connects
to the environment and installs the merchant account information (such as the EFT ID) for the selected
hardware station.

NOTE
If the hardware station that was installed won't be used for payment-related work, don't close the Install
merchant information window without completing the remaining steps. The hardware station won't work
unless this installation is successfully completed.

For version 10.0.6 and above, the install merchant information tool is no longer used. Instead, the
merchant information for the hardware station is set by the POS at the time of logon or when the
hardware station is made active. If the retail server is not available when the hardware station is
subsequently made active, the last known merchant properties will be used by until the
connection to the retail server is re-established. If the POS client is not upgraded to version 10.0.6
at the same time the hardware station is upgraded, merchant properties will not be updated until
the POS client is upgraded to an equal or later version.

8. The Install merchant information tool might request Azure AD credentials. Enter the Azure AD credentials
of the user who is installing Retail hardware station.
9. The Retail Server URL is determined through the Retail hardware station installation and is entered
automatically. The installer uses this URL to load the list of stores that the user is connected to via the
address book.
10. Select the retail store that the hardware station was installed for.
11. Select the hardware profile that matches the hardware station that was installed on the current computer.
12. Verify that the host names and EFT terminal IDs are correct, based on the current computer and the Retail
hardware station configuration that has already been completed in Retail. After you've verified this
information, select Install .
13. When you receive a message that states that the merchant account information was installed correctly,
exit the installer by selecting the Close button.

Help secure Retail hardware station


Current security standards state that the following options should be set in a production environment:

NOTE
The hardware station installer automatically makes these registry edits as part of the installation through self-service.

SSL should be disabled.


Only Transport Layer Security (TLS) version 1.2 (or the current highest version) should be enabled and
used.

NOTE
By default, SSL and all version of TLS except TLS 1.2 are disabled. To edit or enable these values, follow these steps:
1. Press the Windows logo key+R to open a Run window.
2. In the Open field, type Regedit , and then select OK .
3. If a User Account Control window appears, select Yes .
4. In the new Registr y Editor window, go to
HKEY_LOCAL_MACHINE\System\CurrentControlSet\SecurityProviders\SCHANNEL\Protocols .
The following keys have been automatically entered to allow for TLS 1.2 only:
TLS 1.2\Server:Enabled=1
TLS 1.2\Server:DisabledByDefault=0
TLS 1.2\Client:Enabled=1
TLS 1.2\Client:DisabledByDefault=0
TLS 1.1\Server:Enabled=0
TLS 1.1\Client:Enabled=0
TLS 1.0\Server:Enabled=0
TLS 1.0\Client:Enabled=0
SSL 3.0\Server:Enabled=0
SSL 3.0\Client:Enabled=0
SSL 2.0\Server:Enabled=0
SSL 2.0\Client:Enabled=0

No additional network ports should be open, unless they are required for known, specified reasons.
Cross-origin resource sharing must be disabled and must specify the allowed origins that are accepted.
Only trusted certificate authorities should be used to procure certificates that will be used on computers
that run Retail hardware station.
IMPORTANT
Most common, lower-security software and services will stop working after all lower-security standards are disabled. To
use them again, go to the preceding registry keys, and set the Enabled key from 0 to 1 .
It's critical that you review security guidelines for IIS and Payment Card Industry (PCI) requirements.

Troubleshooting
Modern POS can detect the hardware station in its list for selection, but it can't complete the pairing
Solution: Verify the following list of potential failure points:
The computer that is running Modern POS trusts the certificate that is used on the computer that runs
Retail hardware station.
To verify this setup, in a web browser, go to the following URL:
https://<Computer Name>:<Port Number>/HardwareStation/ping
This URL uses a ping to verify that the computer can be accessed, and the browser indicates whether
the certificate is trusted. (For example, in Internet Explorer, a lock symbol appears in the address bar.
When you select this symbol, Internet Explorer verifies whether the certificate is currently trusted. You
can install the certificate on the local computer by viewing the details of the certificate that is shown.)
On the computer that runs Retail hardware station, the port that will be used by the hardware station is
opened in the firewall.
Retail hardware station has properly installed merchant account information through the Install merchant
information tool that runs at the end of the Retail hardware station installer.
Modern POS can't detect the hardware station in its list for selection
Solution: Any one of the following factors can cause this issue:
Retail hardware station hasn't been set up correctly in Commerce headquarters. Use the steps earlier in this
topic to verify that the hardware station profile and the hardware station are correctly entered.
The jobs haven't been run to update the channel configuration. In this case, run the 1070 job for channel
configuration.
The hardware station isn't accessible from that computer. Verify that the hardware station URL ping test is
accessible from a web browser. This URL can be found at the end of the hardware station installer and is in
the following form: https://<Computer Name>:<Port Number>/HardwareStation/ping

Uninstall Retail hardware station


You can use Control Panel in Microsoft Windows to uninstall Retail hardware station.
1. Press the Windows logo key, and then, in the search box, type Control Panel . In the list of search results,
select Control Panel .
2. In Control Panel, select Programs > Uninstall a program . The Programs and Features window opens.
3. Select Microsoft Dynamics 365 for Retail hardware station , and then select Uninstall above the list of
programs.
4. Wait for the uninstaller to finish removing the program.
Set up and design receipt formats
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article describes how to modify form layouts to control how receipts, invoices, and other documents are
printed. Dynamics 365 Commerce includes a form layout designer that you can use to easily create and modify
various kinds of form layouts.

IMPORTANT
You must set up form layouts and receipt profiles to print receipts and other documents from Retail Modern POS and Cloud
POS. You can include multiple form layouts in a receipt profile. You can then assign the receipt profile to a printer by
modifying a hardware profile.

Set up a receipt format


1. Click Retail and Commerce > Channel setup > POS setup > POS > Receipt formats .
2. On the Receipt format page, click New to create a new form layout, or select an existing form layout.
3. In the Receipt format field, enter an identifier for the form layout, and then select the type of receipt that
this layout is used for. You can also enter a description and a short name for the receipt in the Title field.
4. On the General FastTab, select an option to define the print behavior:
Always print – The receipt is printed automatically, as appropriate.
Do not print – The receipt isn't printed.
Prompt user – The user is prompted to print the receipt.
As required – This option is used only for gift receipts. When this option is selected, the user can print a
gift receipt from the Change page, if a gift receipt is required.

Design a receipt format


Use the form layout designer to graphically create the layout of the form document. The Receipt format
designer page has three sections: Header , Lines , and Footer . Some types of form layouts use elements from all
three sections, whereas other types use elements from only one or two sections. To view the elements that are
available for each section, click the appropriate button in the navigation pane on the left side of the page.
1. Click Retail and Commerce > Channel setup > POS setup > POS > Receipt formats .
2. On the Receipt format page, select a form layout, and then click Designer .
3. Click Run to start to install the Commerce designer host.
4. On the Notification bar that appears at the bottom of the Internet Explorer window, click Open to start to
install the one-click designer. (The Notification bar might appear in a different location in other browsers.)
The progress indicator shows the progress of the installation process.
5. After the installation is completed, enter your Commerce user name and password, and then click Sign in
to start the designer.
6. After your credentials are validated and the designer starts, you can start to design the receipt format or
modify an existing format.
7. To create the elements of the form, select the Header , Lines , or Footer section, and then drag an element
from that section to the workspace. Most elements contain variables that are automatically populated with
data from the database. Other elements, such as Text , let you print custom text on the receipt.

NOTE
You can specify how many lines each section spans by adjusting the number in the lower-right corner of that section.
To make it easier to modify a section, increase its height by dragging the sizing bar at the bottom of the section. The
height of the section on the workspace doesn't affect the number of lines on the actual receipt.

8. After you drag an element to the workspace, set the properties for the part in the Object information
pane at the bottom of the page. Enter one or more of the following settings:
Align – Set the alignment of the field to either Left or Right .
Fill char – Specify the white space character. By default, an empty space is used, but you can enter any
character.
Prefix – Enter the value that appears at the beginning of the field. This setting applies only to the Lines
section of the layout.
Characters – Specify the maximum number of characters that the field can contain if the element
contains a variable. If the text in the field is longer than the number of character that you specify, the text
is truncated to fit the field.
Variable – This check box is selected automatically if the element contains a variable and can't be
customized.
Font type – Set the font style to either Regular or Bold . Bold letters use two times as much space as
regular letters. Therefore, some characters might be truncated.
Font size – Set the font size to either Regular or Large . Large letters are two times higher than regular
letters. Therefore, using large letters may lead to overlapping text in the receipt.
Delete – Click this button to remove the selected part from the form layout.

Assign receipt profiles


Receipt profiles are assigned directly to printers through the hardware profile.
1. Open the hardware profile by clicking Retail and Commerce > Channel setup > POS setup > POS
profiles > Hardware profile .
2. Select the printer, and then, in the Receipt profile field, assign the receipt profile to use on the register.

NOTE
If two printers are used, one printer can be used to print standard 40-column thermal receipts. The second printer is typically
used to print full-page receipt types that require more information. These receipt types include customer order receipts and
customer invoices.
Send email receipts from Modern POS (MPOS)
2/14/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In Modern Point of Sale (MPOS), you can send receipt emails when a transaction is tendered at the point of sale
(POS).

Prerequisite
To send email receipts, you must configure a Simple Mail Transfer Protocol (SMTP) server.

Set up email receipts


Set default options for email receipts
1. Select Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters .
2. On the Posting tab, on the Email receipt FastTab, in the Receipt option field, select a default option:
Standard receipt – Print receipts from the POS register.
Email – Send receipts to customers in email messages.
Both – Print receipts from the POS register, and send receipts to customers in email messages.
3. In the Subject field, enter the text that should appear by default on the subject line of a receipt that is sent as
an email message.
Set email receipt options for a customer
1. Go to Retail and Commerce > Customers > All customers .
2. On the All customers list page, select a customer, and then select Edit .
3. On the customer details page, on the Commerce FastTab, in the Receipt option field, select an option:
Standard receipt – The customer will receive only printed receipts. The printed receipt is generated
from the POS register.
Email – The customer will receive only email receipts.
Both – The customer will receive both printed receipts and email receipts.
4. If you selected either Email or Both in the Receipt option field, enter the customer's email address in the
Receipt email field.
Set up an email receipt profile
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Receipt profiles .
2. Press Ctrl+N to create a receipt profile.
3. Enter values in the Receipt profile ID and Description fields.
4. On the General FastTab, select Add to add a receipt type.
5. Select Receipt as the receipt type, and select the receipt format to use for email receipts.
Add an email receipt profile to the functionality profile
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles .
2. Select Edit .
3. On the General FastTab, in the Receipt profile ID field, specify an email receipt profile.
Set up an email template for receipts
1. Go to Organization administration > Setup > Organization email templates .
2. Press Ctrl+N to create a template.
3. On the Over view tab, complete the following fields:
In the Email ID field, enter EmailRecpt .
In the Email description field, enter a description.
In the Default language code field, select the language.
In the Sender name field, specify the name that should appear as the sender of the email. Customers
will see this name as the From name on the email.
In the Sender email field, specify a valid email address. Customers will see this email address as the
From email address on the email.
4. In the lower grid, configure the following fields:
Make sure that the Email ID field is set to EmailRecpt .
In the Subject field, enter a title for the email receipts.
In the Language field, specify the language.
Email - Insert the following string:

<pre>
%message%
</pre>

If you want to have more than just the receipt in the message, select E-mail message to fill out the
template for the body of the email messages to be sent. The placeholder %message%. is used to insert the
receipt from MPOS.
The %message% placeholder is the only placeholder that will be replaced when MPOS receipts are sent. If
you want more placeholder options, you must create a customization on the MPOS side.
It's a best practice to put the HTML content in a text editor, such as Notepad, and save it as a .txt file before
uploading. This will help to preserve receipt alignment and reduce header and footer space in the emailed receipt.
The logo and bar code from the printed receipt will not be included in the emailed receipt version. To include the
logo, create a generic HTML email template and embed the placeholder. Including bar codes in the emailed receipt
requires customization.
5. Depending on the settings that you configured, you must run the appropriate distribution schedule jobs to
synchronize the changes to MPOS.
1010 – Customer
1070 – Channel configuration
1090 – Registers
1110 – Global configuration

MPOS transactions
After the changes are synchronized to the store, MPOS prompts the user for an email address for each transaction
(if this feature is enabled). If an email address is already on file for the customer, that address appears in the email
address prompt. If a customer hasn't been named, or if an email address hasn't been entered for a named customer,
enter an email address, and then select Send . When the transaction is finalized, the real-time service will send the
customer an email that has the receipt in the body of the message, as you configured earlier.
Reset receipt numbers
3/13/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Retailers generate receipt numbers for various actions in the store, such as cash and carry transactions, return
transactions, customer orders, quotations, and payments. Although retailers define their own receipt formats, some
countries or regions have regulations that put restrictions on these receipt formats. For example, these regulations
might limit the number of characters on the receipt, require consecutive receipt numbers, restrict some special
characters, or require a reset of receipt numbers at the beginning of the year. Microsoft Dynamics 365 Commerce
makes the process of managing receipt numbers very flexible, to help retailers meet regulatory requirements. This
topic explains how to use the functionality for resetting receipt numbers.
In Commerce, receipt formats can be alphanumeric. You can put both static content and dynamic content in them.
Static content includes alphabetic character, numbers, and special characters. Dynamic content includes one or
more characters that represent information such as the store number, terminal number, date, month, year, and
number sequences that are automatically incremented. The formats are defined in the Receipt numbering section
of the functionality profile. The following table describes the characters that represent the dynamic content.

C H A RA C T ERS DESC RIP T IO N

S The character S is used for the store number. For example, if a


store is numbered HOUSTON1, the format SSS shows "ON1"
on the receipt. The format SSSSS shows "STON1" on the
receipt.

T The character T is used for the terminal number. For example,


if a terminal is numbered 0001, the format TTTT shows
"0001" on the receipt.

C The character C is used for the staff ID number. For example, if


a staff member has an ID of 000160, the format CCCC shows
"0160" on the receipt.

ddd The characters ddd correspond to the day of the year, from 1
through 366. For example, on January 15, the format ddd
shows "015" on the receipt.

MM The characters MM are used for the two-digit month. For


example, in January, the format MM show "01" on the receipt.

DD The characters DD are used for the two-digit day of the


month. For example, on January 15, the format DD shows
"15" on the receipt.

YY The characters YY are used for the two-digit year. For example,
in any month during the year 2020, the format YY shows "20"
on the receipt.
C H A RA C T ERS DESC RIP T IO N

# A number sign (# ) is used for sequential numbering. For


example, the format #### shows "0001," "0002," "0003," and
so on, on the receipt.

You can reset the sequential numbering of the receipt on a specific date. Then, for the first transaction that occurs
after 12:00 AM on the selected reset date, the system resets the receipt's number sequence to 1. You can also
specify whether the reset occurs only one time, or whether it recurs every year. If yearly recurrence is specified, the
reset automatically occurs every year until the retailer chooses to stop it.
To turn on the reset, follow these steps.
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles .
2. On the Receipt numbering FastTab, select Reset number reset date .
3. In the drop-down dialog box, in the Reset date field, select a future date when the reset should occur.
4. In the Reset receipt type field, select One time only or Yearly .
5. Select OK .

After you select a date, it appears in the Next receipt number reset date column. The reset date is applicable to
all receipt transaction types. Therefore, the receipt number sequence will be reset for all receipt types.
When the reset date arrives, the receipt number is reset for the first transaction of each type. In addition, in the
functionality profile, the reset date is moved from the Next receipt number reset date column to the Current
receipt number reset date column. This change indicates that if a register isn't used on the reset date, the receipt
number will be reset the next time that the register is used. For example, on December 3, 2019, you select Januar y
1, 2020 , as the reset date. On January 1, when the registers make their first transaction, the receipt number are
reset. However, one register isn't used at all during December and January, but then starts to be used in February. In
this case, because a reset action was defined, the receipt number for that register will be reset when the register
makes its first transaction in February.
You can use the Clear reset date functionality to clear future reset dates. However, if the reset date occurred in the
past, it can't be undone. Therefore, the reset will still occur for all registers where the reset hasn't yet occurred.
NOTE
Depending on the reset date that you select, and the receipt format, you might have duplicate receipt numbers. Although the
point of sale (POS) system can handle these situations, they increase the amount of time that is required to process returns,
because sales associates must select among the duplicate receipts. Other complications that are related to data cleanup can
occur if the duplicate receipts weren't a planned consequence. Therefore, we recommend that you use dynamic date
characters (for example, ddd , MM , DD , and YY ) to help prevent duplicate receipt numbers after a reset.
Embed processor credit card receipts in customer
receipts
4/11/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to embed credit card receipts from payment processors into a customer's itemized
transaction receipt. This capability is available in Microsoft Dynamics 365 Commerce version 10.0.8 and later.

Key terms
T ERM DESC RIP T IO N

Customer's receipt The receipt that is generated for a cash-and-carry transaction


at the point of sale (POS).

Customer's credit card receipt The credit card receipt that is printed as a record of the credit
card payment or other electronic payment that is used in a
transaction.

Overview
This topic describes the steps that are required to embed the credit card receipt from a payment processor directly
into a customer's receipt. In Dynamics 365 Retail version 10.0.7 and earlier, several elements from the customer's
credit card receipt could be embedded into the customer's itemized transaction receipt. However, the actual receipt
that comes from the payment processor could not be included. That solution wasn't acceptable for all retailers,
because the configurable receipt fields in the customer's credit card receipt didn't always include all the details that
are stipulated by local statutory requirements.

Prerequisites
The following items are required to embed processor credit card receipts into customer receipts:
A payment connector that is implemented in accordance with the payments software development kit (SDK)
A POS that has a working printer

Set up receipts
1. In the POS, search for "receipt formats" to open the Receipt formats page.
2. Select the receipt of the Customer's credit card receipt type that will be used at the POS. If you're using
demo data, select receipt format 3_P , and set the Print Behavior field to Do not print .
3. Select Designer to open the receipt designer.
4. Remove all the fields from the receipt format.
To edit a section of the receipt, you must first select that section at the bottom of the left pane in the receipt
designer. Then select the desired receipt variable in the selected section. Finally, to delete the selected
variable, you can use the Alt+D keyboard shortcut.
5. Select the Header section at the bottom of the left pane, and then drag the EFT Message receipt variable
into the header.

6. Select Save .
7. While the receipt designer is still open, select Select format in the upper-left corner to open the receipt
selector.
8. In the receipt selector, select the receipt of the Receipt type that will be used at the POS. If you're using demo
data, select receipt format 1_p .
9. In the receipt designer, select the Footer section at the bottom of the left pane, and then drag the Card
Tender Details receipt variable into the footer.
10. Select Save .
11. Sync the changes to the POS by using the 1090 distribution schedule.
12. Close the shift in the POS, and then open a new shift.
13. Perform a credit card transaction to confirm that the processor's credit card receipt is embedded into the
customer's receipt.
Configure the functionality profile for a sales
representative
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure demonstrates how to configure a store's functionality profile settings that apply to sales
representatives. This procedures uses the USRT demo data company.
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles.
2. Click Edit.
3. Expand the Functions section.
You can use the functionality profile settings to configure POS to automatically add the cashier's default
sales group, to prompt for sales groups, and to require sales groups.
4. In the Prompt for sales representative field, select an option.
5. Select Yes in the Require sales representative field.
Create financial dimensions for retail channels and
configure dimension values on stores
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through creating a commerce channel financial dimension with dimension values and steps
to configure financial dimension values on stores. The topic does not include other related steps, such as creating
dimension sets and account structures. This procedure uses the USRT company in demo data.
1. Go to General ledger > Chart of accounts > Dimensions > Financial dimensions.
2. Click New.
3. In the Use values from field, select 'Commerce channels'.
4. In the Dimension name field, type a value.
5. Click Activate.
6. Click Close.
7. Click Activate.
8. Click Dimension values.
9. Close the page.
10. Click Save.
11. Close the page.
12. Go to Retail and Commerce > Channels > Stores > All stores.
13. In the list, click the link in the selected row.
14. Toggle the expansion of the Financial dimensions section.
15. Click Edit.
16. In the Commerce channel field, click the drop-down button to open the lookup.
17. In the list, find and select the dimension value for the store being updated.
18. In the list, click the link in the selected row.
19. In the CostCenter field, click the drop-down button to open the lookup.
20. In the list, find and select the desired record.
21. In the list, click the link in the selected row.
22. In the Department field, click the drop-down button to open the lookup.
23. In the list, find and select the desired record.
24. In the list, click the link in the selected row.
25. Click Save.
Set up an online channel
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a new online channel in Microsoft Dynamics 365 Commerce.

Overview
Dynamics 365 Commerce supports multiple retail channels. These retail channels include online stores, call
centers, and retail stores (also known as brick-and-mortar stores). Online stores give customers the option of
purchasing products from the retailer's online store in addition to its retail stores.
To create an online store in Commerce, you must first create an online channel.
Before you create a new online channel, ensure that you have completed the Channel set up prerequisites.

Create and configure a new online channel


To create and configure a new online channel, follow these steps.
1. In the navigation pane, go to Modules > Channels > Online Stores .
2. On the action pane, select New .
3. In the Name field, provide a name for the new channel.
4. In the Legal entity drop-down, enter the appropriate legal entity.
5. In the Warehouse drop-down, enter the appropriate warehouse.
6. In the Store time zone field, select the appropriate time zone.
7. In the Currency field, select the appropriate currency.
8. In the Default customer field, provide a valid default customer.
9. In the Customer address book field, provide a valid address book.
10. In the Functionality profile field, select a functionality profile if applicable.
11. In the Email notification profile field, provide a valid email notification profile.
12. On the action pane, select Save .
The following image shows the creation of a new online channel.
The following image shows an example online channel.

Set up languages
If your e-Commerce site will support multiple languages, expand the Languages section and add additional
languages as needed.

Set up payment account


From within the Payment account section, you can add a third-party payment provider. For information on
settting up an Adyen payment connector, see Dynamics 365 Payment Connector for Adyen.

Additional channel set up


Additional tasks required for online channel setup include setting up payment methods, modes of delivery, and
the fulfillment group assignment.
The following image shows Modes of deliver y , Payment methods , and Fulfillment group assignment
setup options on the Set up tab.
Set up payment methods
To set up payment methods, for each payment type supported on this channel follow these steps.
1. On the action pane, select the Set Up tab, then select Payment methods .
2. On the action pane, select New .
3. In the navigation pane, select a desired payment method.
4. In the General section, provide an Operation name and configure any other desired settings.
5. Configure any additional settings as required for the payment type.
6. On the action pane, select Save .
The following image shows an example of a cash payment method.

Set up modes of delivery


You can see the configured modes of delivery by selecting Modes of deliver y from the Set up tab on the
Action pane .
To change or add a mode of delivery, follow these steps.
1. In the navigation pane, go to Modules > Inventor y management > Modes of deliver y .
2. On the action pane, select New to create a new mode of delivery, or select an existing mode.
3. In the Retail channels section, select Add line to add the channel. Adding channels using organization nodes
instead of adding each channel individually can streamline adding channels.
The following image shows an example of a mode of delivery.

Set up a fulfillment group assignment


To set up a fulfillment group assignment, follow these steps.
1. On the action pane, select the Set up tab, then select Fulfillment group assignment .
2. On the action pane, select New .
3. In the Fulfillment group drop-down list, select a fulfillment group.
4. In the Description drop-down list, enter a description.
5. On the action pane, select Save .
The following image shows an example of a fulfillment group assignment setup.

Additional resources
Channels overview
Channel setup prerequisites
Set up a retail channel
Set up a call center channel
Dynamics 365 Payment Connector for Adyen
Call center sales functionality
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In Dynamics 365 Commerce, a call center is a type of channel that can be defined in the application. Defining a
specific channel for your call center entities allows the system to tie specific data defaults and order processing
defaults to sales orders created by a user of the call center channel.
Call center features include advanced price and promotions, catalogs, gift cards, loyalty programs, and coupons.
Call center orders are also leveraged by the point of sale (POS) application to support cross-channel order
fulfillment scenarios.
It's important to note that while the call center module can be utilized by other industries outside of Commerce, the
current release of the call center application hasn't been optimized for use in business-to-business (B2B) order
processing scenarios, or scenarios where orders have a large amount of sales lines. It's recommended that users
who want to utilize the call center features for order processing outside of typical direct-to-consumer transaction
processing, take adequate time to test and validate that enabling call center functionality will meet functional and
performance needs.
In addition to supporting order creation, the call center module also provides a user-friendly customer service
application that makes it easier for users to locate customer accounts and review all of the related customer order
data and attributes. The customer service screen is designed to enable a user to quickly access order related data
that will allow them to answer the most common order-related questions received from customers.
This page provides links to relevant documentation related to the setup, configuration, and functional use of the call
center features.

Configure the call center


Set up call center channels

Configure order processing


Set up and work with call center fraud alerts
Configure and work with call center order holds

Configure payment processing


Payment methods in call centers

Configure delivery modes


Configure call center delivery modes and charges

Configure direct marketing


Call center catalogs
Set up Recency, Frequency, and Monetary (RFM) analysis

Configure continuity programs


Set up continuity programs for call centers
Set up a call center channel
3/13/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a new call center channel in Microsoft Dynamics 365 Commerce.

Overview
In Dynamics 365 Commerce, a call center is a type of retail channel that can be defined in the application. Defining
a channel for your call center entities allows the system to tie specific data and order processing defaults to sales
orders. While a company can define multiple call center channels in Commerce, it is important to note that an
individual user may only be linked to one call center channel.
Before you create a new call center channel, ensure that you have completed the Channel setup prerequisites.

Create and configure a new call center channel


To create and configure a new call center channel, follow these steps.
1. In the navigation pane, go to Retail and Commerce > Channels > Call centers > All call centers .
2. On the action pane, select New .
3. In the Name field, provide a name for the new channel.
4. Select the appropriate Legal entity from the drop-down.
5. Select the appropriate Warehouse location from the drop-down. This location will be used as the default on
sales orders created for this call center channel, unless other defaults have been defined at the customer or
item level.
6. In the Default customer field, provide a valid default customer. This data is used to assist in auto-populating
defaults when new customer records are created. When creating call center orders, it is not advisable to create
orders for the default customer.
7. In the Email notification profile field, provide a valid email notification profile. As call center orders are
created and processed, the email notification profile is used to trigger automated email alerts to customers
with information about their order status.
8. Provide a Price override info code. You may need to create an info code for this first. This info code provides
the set of reason codes that the user will be prompted to choose from when using the price override
functionality on a call center order.
9. Provide a Hold code info code. You may need to create an info code for this first. This info code provides the
set of optional reason codes that the user will be prompted to choose from when placing an order on hold.
10. Provide a Credit info code. You may need to create an info code for this first. This info code provides the set of
reason codes that the user can choose from when using the order credit functionality of call center to give
misc refunds to the customer for customer service reasons.
11. Optional: set up financial dimensions on the Financial dimensions FastTab. The dimensions entered here will
default on any sales order created in this call center channel.
12. Click Save .
The following image shows the creation of a new call center channel.

The following image shows an example call center channel.

Additional channel setup


Additional tasks required for call center channel setup include setting up payment methods and modes of
delivery.
The following image shows Modes of deliver y and Payment methods setup options on the Set up tab.
Set up payment methods
To set up payment methods, follow these steps for each payment type supported on this channel. Users will be
required to select from pre-defined payment methods to link them to the call center channel. Before setting up
your call center payment methods, first set up your master methods of payment in Retail and Commerce >
Channel setup > Payment methods > Payment methods .
1. On the action pane, select the Set up tab, and then select Payment methods .
2. On the action pane, select New .
3. In the navigation pane, select a payment method from the pre-defined payments available.
4. Configure any additional settings as required for the payment type. For credit cards, gift cards, or loyalty cards,
additional setup is required by selecting the Card setup function.
5. Configure proper posting accounts for the payment type in the Posting section.
6. On the action pane, click Save .
The following image shows an example of a cash payment method.

Set up modes of delivery


You can see the configured modes of delivery by selecting Modes of deliver y from the Set up tab on the
Action pane .
To change or add a mode of delivery to be associated to the call center channel, follow these steps.
1. From the Call center modes of delivery form, select Manage modes of deliver y
2. On the action pane, select New to create a new mode of delivery, or select an existing mode.
3. In the Retail channels section, click Add line to add the call center channel. Adding channels using
organization nodes instead of adding each channel individually can streamline adding channels.
4. Ensure the mode of delivery has been configured with data on the Products FastTab and the Addresses
FastTab. If no products or delivery addresses are valid for the mode of delivery, choosing it during order entry
will result in errors.
5. After any changes have been made to the call center mode of delivery configurations, the Process deliver y
modes job must be run to explode the change matrix. This job can be found by navigating to Retail and
Commerce > Retail and Commerce IT > Process deliver y modes .
The following image shows an example of a mode of delivery.

Set up channel users


To create a sales order that is linked to the call center channel from Commerce Headquarters, the user creating
the sales order must be linked to the call center channel. The user can not manually link a sales order created in
Commerce Headquarters to the call center channel. The link is systematic, and is based on the user and the user's
relationship to the call center channel. A user may only be linked to one call center channel.
1. On the action pane, select the Channel tab, and then select Channel users .
2. On the action pane, select New .
3. Choose an existing User ID from the dropdown selection list to link this user to the call center channel
After the channel user setup is done and the user creates a new sales order in Commerce Headquarters, the sales
order will be linked to their associated call center channel. Any configurations for this channel will be applied
systematically to the sales order. A user can confirm which call center channel the sales order is linked to by
viewing the channel name reference on the sales order header.
Set up price groups
Price groups are optional, but if used, can control which sales prices will be offered to customers placing orders in
the call center channel. If a price group has not been configured for the customer, or if catalog price groups are
not being applied to the sales order (using the Source code ID field on the call center order header), then the
channel price group is used to locate item prices. If a price group is not found on the call center channel, the
default item master prices are used.
To set up a price group, do the following.
1. On the action pane, click the Channel tab, and then select Price groups .
2. On the action pane, click New .
3. Select a Retail price group from the dropdown selection list.

Additional resources
Channel setup prerequisites
Call center sales functionality
Set up call center order processing options
Call center catalogs
Set up and work with fraud alerts
Set up continuity programs for call centers
Call center catalogs
2/1/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the call center–specific functionality linked to the catalog capabilities in Dynamics 365
Commerce.
The catalog features found in Commerce can be used for multiple purposes. Initially the catalog features were
created to support third party e-Commerce integrations. Catalog setup allowed companies to create a grouping of
products and attributes that could be published externally for consumption by a third party e-Commerce solution.
When call center channel support was added, the catalog concept was expanded to add additional capabilities for
supporting and managing features related to traditional direct-to-consumer marketing catalogs. A direct-to-
consumer company will often produce printed catalogs, which are then mailed to one or more segments of
customers. These catalogs will typically have specific promotions or offers that will only be honored if the
customer provides a catalog identification code at the time of order creation.
Direct-to-consumer marketing companies are very focused on tracking the response to these catalogs to ensure
that the costs to produce and mail them are justified. To track the response, a code is traditionally printed on the
back of the catalog and this code is then requested and applied when the catalog recipient calls to place an order
by phone (or now more traditionally the code may be entered when the customer places an order online). While
there are different industry terms that have been used to identify this catalog tracking code (including key code,
promo code, catalog code, source code), we refer to the code in Commerce as the Source code ID .

Basic catalog setup


Go to Retail and Commerce > Catalogs and assor tments > All catalogs to configure your catalog.
When you create a new catalog, you must first link the catalog to one or more channels. This is done in the
Commerce channels fast tab on the Catalog setup form. Click Add and select one or more channels. Only
items linked to your selected channel assortments can be used when creating the catalog.
To add products to a catalog, a navigation hierarchy must be chosen. The navigation hierarchy will support the
category structure for the catalog. You must pick from one of the navigation hierarchies linked to the channels
selected on the Commerce channels FastTab of the Catalog page. If a navigation channel was not linked to a
channel previously, go to Retail and Commerce > Channel setup > Channel categories and product
attributes to link a navigation hierarchy default to each of your channels.
On the Catalogs menu tab, on the Catalog setup page, click Add products to configure the products to add to
the catalog, or select a node in the navigation hierarchy (selecting a node will change the screen presentation and
allow you to add products directly to a category within the catalog).
Click the top node of the catalog hierarchy to return to the main catalog header view. Configure effective and
expiration dates as necessary on the General FastTab.
Before the catalog is available to use, it must be published. Click Validate catalog on the Catalogs menu to
process a validation. This is required action and will validate that the required setup is accurate. Click View results
to see the details of the validation. If errors are found, you must correct the data and run validation again until the
validation has passed.
After validation is confirmed, click Workflow on the menu to start the approval workflow. Click Submit on the
Workflow menu to execute the process. Configure the steps and authorized users for the workflow from Retail
and Commerce > Headquar ters setup > Commerce workflows . The workflow will define the steps needed
to get the catalog into an Approved status. When the catalog is in an Approved status, you can click the Publish
option on the Catalogs menu to complete the process. After the catalog is in a Published status, it can be used in
call center order entry and send catalog processes.

Use catalogs to drive sales order pricing and promotions


A core reason for defining a catalog to use with a call center is to be able to configure specific prices and
promotions for that catalog. Customers ordering from this catalog will receive these prices and promotions in call
center order entry if the catalog's Source code ID is applied to the order header or lines.
To configure catalog specific prices, select the Price groups option from the Catalogs tab to link one or more
price groups to the catalog. All trade agreements, price adjustment journals, and advanced discounts (threshold,
quantity, mix and match) that have been linked to the same price group will be applied when customers order from
this catalog.
On the Source codes FastTab, click Add to add one or more Source code ID identifiers to this catalog. This is the
code that will be applied during call center order entry to the sales order header (and lines). This code is used to
link the sales order to the catalog and ultimately to the price groups and any special prices and promotions that
have been configured.

Use the source ID to track costs and response rates


When defining the Source code ID , you can optionally link this ID to a Target market ID . The Target market ID
can be defined in Retail and Commerce > Customers > Target market . The target market is a list of
customers and/or prospects that belong to a user-defined segment. Linking the customer or prospect data to the
source code ID allows for better visibility into the recipients of the catalog. If a customer is linked to a target market
and that target market is linked to an active source code ID/catalog, call center users will be able to see what
catalogs a customer has received by selecting the Source codes menu option on the Customers menu tab on
the Customer ser vice page. During order entry, call center users can also see the specific catalogs a customer
was sent in the Source drop-down list on the sales order header. Changing the filter from All to Targeted will
allow the user to see the specific active catalogs the customer was sent. This is helpful in situations where the
customer may have forgotten their catalog or can't locate or read the catalog code when they are calling in to
create a sales order.
It's possible to link multiple source code IDs to a catalog. This is often needed when a company wants to track the
response rate by different segments. The company will give a unique catalog code to different customer segments,
which allows for tracking the response rate, down to the segment level, within a particular catalog event.
Selecting a particular Source code ID record and clicking the Details option on the Source codes FastTab will
provide additional fields where sales projections, mailing costs, and mailing dates can be captured. This data is
helpful for doing detailed analysis on the effectiveness of the catalog. Users can return to this page over time and
use the Source code analysis and Compare promotions buttons to trigger analytical reports based on current
sales data and compare costs and budget to actuals.

Configure catalog-specific order and item scripts


When a call center user is creating a sales order, they can use on-screen scripts. These text-based scripts may
provide additional information that the user should say to the customer, or it may be internal notes/reminders that
the call center user should review and react to as they are creating the sales order.
It is often helpful to have different sets of scripts for different catalogs. On the Scripts FastTab, pre-defined scripts
can be linked to a catalog. Use the Timing field to determine if the script will appear at the beginning of the order
(as soon as the source code ID is entered on the order header), or at the end of the order (in the sales order
summary form).
When selecting a node in the catalog's hierarchy and working with the data on the Products FastTab, users can
also link scripts that are specific to catalogs or items using the Scripts action.

Configure catalog-specific up-sell and cross-sell items


Linking up-sell/cross-sell suggestions to an item can be done from the products setup, but in some cases, a
company may want to promote special up-sell/cross-sell items to customers ordering a specific product from a
specific catalog. On the Products FastTab, select an item and click Up-sell/cross-sell items to configure
products to be up or cross-sold to customers who purchase the selected item from the catalog. During call center
order entry, catalog specific up-sell/cross-sell items will appear on the screen instead of standard up-sell/cross-sell
products that may have been configured for that item through the usual product configuration.
Up-sell/cross-sell items can also take advantage of the script features to show specific messages that a user will
see when the up-sell/cross-sell item is displayed during order entry. Scripts tied to up-sell/cross-sell products
configured specifically for a catalog product will only appear when that catalog's source code is applied in call
center order entry.

Catalog page analysis


On the Catalogs tab, options are available to configure Catalog pages . This feature allows you to define specific
pages and page types for the printed catalog and their associated costs.
When configuring the products in the catalog, use the Product page layout action to define the specific pages,
percentage of page, and position of page details for the item. Configuring this data will allow users to take
advantage of the Catalog area analysis repor t . This report is found by navigating to Retail and Commerce >
Call center repor ts > Catalog area analysis report. This report analyzes sales placed against the catalog (sales
orders where the source ID for the catalog was tied to the order header or line) and their associated percent of
page and costs to give a traditional direct marketing Square inch analysis report.

Catalog requests
As catalogs are configured and published in Commerce, the Send catalog feature can be utilized. This feature is
available on the Customer search and Customer ser vice pages. After selecting a customer record through
Customer search or while viewing a selected customers account from Customer ser vice , users may select the
Send catalog option which will open a dialog box allowing the user to choose from a list of any published and
active catalogs. A user can select a catalog and a quantity, and a particular source code ID to send. When they click
the Send button, a request is stored which can then be managed by printing the Catalog requests report. This
report is found by navigating to Retail and Commerce > Call center repor ts > Catalog requests repor t . It
lists all the catalog requests, including the customer name and address details of the customer who requested the
catalog. This report can be used internally or the data can be transmitted to a third party supporting external
processes for physically sending the catalog to the customer.

Additional features
On the Catalogs tab, options for configuring a Payment schedule and Free products are also available. If the
source code ID linked to the catalog is applied during call center order entry, the customer will be eligible for the
free products or use of the specific catalog payment schedules as defined. If it's necessary to limit the customer to
only being able to select from payment schedules linked to their catalog and not all active payment schedules in
the system, the Only allow catalog plans check box can be selected for one or more of the source code IDs
defined to enforce that limitation.

Additional notes
Currently, when a source code ID is applied to a sales order in call center, it is used to drive prices, promotions,
scripts and up-sell/cross-sell's that are catalog specific. The system will not prohibit or prevent a product that is not
in the catalog from being ordered on the sales order. If an item is ordered that is not part of the catalog, the system
will first use the Price group that is defined on the call center channel (Retail and Commerce > Channels >
Call centers > All call centers ) for item price or promotions. If no specific channel price is found, the base
selling price of the item will be used.
Set up call center channels
2/1/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

A company can define multiple call center channels in Dynamics 365 Commerce. Call center channels are
configured at Retail and Commerce > Channels > Call centers > All call centers , and they are specific to a
legal entity.
When a new call center channel is created, it's systematically assigned an operating unit number. Because call
centers are created as operating units, users can link the call center channel to various Commerce features, such as
assortments, catalogs, and specific modes of delivery.
A default warehouse can be configured on the call center channel. Then, when sales orders are created in that
channel, the default warehouse is automatically entered on the sales order header, unless another warehouse has
been defined on the customer that is selected for the sales order. In that case, the customer's warehouse is entered
by default.
Users must be linked to a call center channel to use the features of call center. Any sales order that a user creates is
automatically linked to that user's call center channel. Currently, a single user may not be linked to multiple call
center channels at the same time.
An email notification profile can also be configured on the call center channel. The profile defines the set of email
templates that is used when email is sent to customers who place orders through the call center channel. The email
triggers can be configured against system events, such as order submission or order shipment.
Before sales can be correctly process through a call center channel, correct payment methods and delivery modes
must be defined for the channel.
At the level of the call center channel, you can define other default values that are related to the financial
dimensions that will be linked to orders that are created by that channel.

Options for order processing behavior


Three settings in the configuration of a call center have a major effect on the features and functions that are
available for sales orders that are created against that call center: Enable order completion , Enable direct
selling , and Enable order price control .
Enable order completion
The Enable order completion setting on the call center channel has a major effect on the order processing flow
of sales orders that are entered for that channel. When this setting is turned on, all sales orders must go through a
set of validation rules before they can be confirmed. You run these rules by selecting the Complete button that is
added on the Action Pane of the sales order page. All sales orders that are created when the Enable order
completion setting is turned on must go through the order completion process. This process enforces the capture
of payment and payment validation logic. In addition to payment enforcement, the order submission process can
trigger fraud checks that you configure in the system. Orders that fail payment or fraud validations are put on hold
and can't be released to further processing (such as picking or shipping) until the issue that caused the hold is
resolved.
When the Enable order completion setting is turned on for the call center channel, if line items are entered on a
sales order and the channel user tries to close or navigate away from the sales order form without first selecting
Complete , the system enforces the order completion process by opening the sales order recap page and requiring
that the user correctly submit the order. If the order can't be correctly submitted together with payment, the user
can use the order holds functionality to put the order on hold. If the user is trying to cancel the order, he or she
must correctly cancel it by using either the Cancel function or the Delete function, depending on the function that
the user's security allows.
If the Enable order completion setting is turned on for the call center channel, the Payment status field will be
tracked on the order. The system calculates the Payment status when the sales order is submitted. Only orders
that have an approved payment status are allowed to move through the system for additional order processing
steps, such as picking and shipping. If payments are declined, the do not process flag will be enabled on the
detailed order status, this puts the order on hold until the payment issue is resolved.
Additionally, if the Enable order completion setting is turned on, when users create sales orders and are in line
item entry mode, the Source field will be available on the main sales order header. The Source field is used to
capture a catalog source code in a direct marketing selling scenario. This code can then drive special prices and
promotions.
Even if the Enable order completion setting is turned off, users can still apply a source code to a sales order.
However, they must first open the sales order header details to access the Source field. In other words, some
additional clicks are required. The same behavior applies to features such as ship complete and expedited orders.
These features are available for all orders that are created in the call center. However, when the Enable order
completion setting is turned on, users can see the configuration of these features on the sales header while they
are in the line entry view. They don't have to drill into the sales order header details to find the appropriate settings
and fields.
Enable direct selling
If the Enable direct selling setting is turned for the call center channel, users can take advantage of the upsell
and cross-sell features of Commerce. In this case, pop-up windows appear during order entry and suggest other
products that the call center user can offer to the customer. The products that are suggested are based on the
product that was just ordered on the sales order line. Currently, the upsell and cross-sell suggestions are
configured at the item level on products or catalogs. If the Enable direct selling setting is turned off for the call
center channel, pop-up windows don't appear during order entry, even if a valid upsell or cross-sell was defined
for an item that is being ordered.
When the Enable direct selling setting is turned on, the scripts and images features of the sales order entry page
are also turned on. In this case, an information panel is available on right side of the page during order entry. This
panel can show scripts that are related to the generic order entry process, the catalog source code that was
applied, or scripts that are related to the items that are being ordered. Additionally, the images panel can show a
product image for the items that are being ordered, if an image has been defined for the item in the product setup.
Enable order price control
When the Enable order price control setting is turned, only authorized users can change the sales price of an
item during order entry. The changes must be within defined tolerances. Users who don't have the proper
authorization must submit a request for a price change instead. The request will then be processed through system
workflows for review and approval.

Channel users
When you define the call center channel, you must link channel users to the call center. Otherwise, the call center
can't be used in the system. When users sign in to Commerce and enter sales orders or return orders on a page
that is related to order entry, their user ID is validated against the configuration of the call center channel. If a user
is linked to a specific call center channel, orders that the user creates inherit the traits and default values of that
channel.
By default, the Sale flag on the sales order header is turned on for all orders that call center users create. The
orders can then take advantage of the system's commerce-specific price and promotions features.
Users who aren't linked to a call center channel use the standard order entry features of Microsoft Dynamics 365
Finance. Orders that these users enter through the sales order entry form will not be systematically identified as
Commerce orders. Additionally, these orders entered by these users will not be subject to any of the order
completion processing rules, pricing logic, or other order validations that can be defined in the call center channel
configuration or call center system parameters.
After you've finished configuring the call center channel and defining channel users, to help ensure the desired
system behavior, make sure that all required Call center parameters are defined at Retail and Commerce >
Channel setup > Call center setup > Call center parameters . Make sure that related number sequences are
also defined.

NOTE
To use call center functionality, the configuration key for Multiple ship-to must be enabled. This configuration key can be
found in the Trade configuration keys under System Administration > Setup > License Configuration . This is
required due to call center functionality that performs various validations based on the delivery address configured at the
sales order line level.
Configure call center delivery modes and charges
2/13/2020 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

When a sales order is placed in Dynamics 365 Commerce, if the person who entered the sales order is linked to a
call center channel, logic and rules are used to validate the mode of delivery (delivery mode) and calculate charges
for the order.
When you create a sales order, you can select a delivery mode on the sales order header and the sales order lines.
By default, the delivery mode that you select on the header is used for all sales order lines. However, you can
override the default delivery mode on individual sales lines as you require. You can also define a delivery mode on
a customer record. Then, when orders are created for the customer, that delivery mode is used by default on the
sales order header.
Commerce has capabilities that let users limit the delivery modes that can be used by a channel, the delivery
modes that can be used for a product, and the delivery modes that are valid for specific shipping destinations.
Charges can also be defined so that additional fees are added to a customer's order, based on the delivery modes
that are selected for the sales order and the total order value.

Define delivery modes


Before you specify which delivery modes can be used for call center orders, and define the associated rules and
charges, you must define the delivery modes. Go to Sales and marketing > Setup > Distribution > Modes
of deliver y . Select New to create a new delivery mode. Alternatively, select an existing delivery mode in the list,
and then select Edit to make changes.
In the Mode of deliver y field, you can enter any combination alphanumeric characters, based on your business
requirement. You can then use the Description field to provide additional context. The Charges group and
Expedite fields are optional and will be explained in more detail later in this topic.
On the Commerce channels FastTab, add any channel that should be allowed to use the delivery mode when
sales transactions are created in that channel.
On the Products FastTab, you can specify which products and/or product categories the delivery mode can and
can't be used for. For example, if a product can't be shipped by air because of hazardous material (hazmat)
restrictions, make sure that the product or product category is excluded from all delivery modes that involve air
transportation.
On the Addresses FastTab, you can specify which countries or regions, or states, the delivery mode can and can't
be used for. For example, orders that are shipped to Hawaii or Alaska aren't eligible for ground delivery. Therefore,
these states should be excluded from any delivery mode that is associated with a ground delivery service but
included in any delivery mode that is associated with an air delivery service.

Validate delivery modes for a call center order


After the delivery modes are defined, you must run the Process deliver y modes batch job. This job makes the
delivery modes available so that they can be used in sales order processes for channels. To run the Process
deliver y modes job, go to Retail and Commerce > Retail and Commerce IT > Process deliver y modes .
This job should be run any time that new delivery modes are added to a channel or changes are made to existing
delivery mode/channel relationships.
After you run the Process deliver y modes batch job, you can go to Retail and Commerce > Channels >
Call centers > All call centers . On the All call centers page, on the Action Pane, on the Set up tab, select
Modes of deliver y . The Modes of deliver y page lists all the valid delivery modes for the selected call center
channel. To edit existing delivery modes or add new delivery modes, select Manage modes of deliver y . Note
that the Process deliver y modes job must be run whenever changes are made.

Define charges for delivery services


When sales orders are created for customers, a company might want to add charges that are automatically
calculated based on the delivery modes that are selected for the order. These charges can be configured so that
they are the same for all customers and delivery modes. Alternatively, the charges can vary, depending on the
customer and/or the delivery modes that are selected for the sales order.
To define the charges, go to Retail and Commerce > Channel setup > Charges > Auto charges . Select New
to add new charges. Alternatively, select an existing entry, and then select Edit .
Charges can be defined so that they are calculated at the level of either the order header or the order lines. Use the
Level field to select the level desired.
Charges can be defined for a specific customer, a group of customers, or all customers. In the Account code field,
select Table to define charges that are applied only to a specific customer. Select Group to define charges for a
specific customer group. Select All to apply the charges to every customer who places a sales order that uses the
related delivery mode. If you selected Table or Group in the Account code field, select the customer or customer
group in the Account relation field.
Charges can be configured so that they are applied for a specific delivery mode, a delivery mode group, or all
delivery modes. If you select Table in the Mode of deliver y code field, you must select a specific delivery mode
in the Mode of deliver y relation field. If you select Group , you must select a delivery mode group in the Mode
of deliver y relation field. Delivery mode groups are defined at Retail and Commerce > Channel setup >
Charges > Deliver y charges group . They can then be linked to one or more delivery modes on the Modes of
deliver y page. If you select a group when you define charges, any delivery mode that is linked to the selected
delivery group uses those charges. Finally, if you select All in the Mode of deliver y code field, all delivery modes
use the charges. Therefore, you don't select a value in the Mode of deliver y relation field.
In the Lines section, you can define one or more charges by currency, as you require. Charges must be linked to a
charges code that defines the financial posting rules for the charge. The Categor y field is used to define how
charges are calculated. For example, if customers should be charged a flat rate of $9.95 to have an order shipped
by a specific delivery mode, use the Fixed category. If the business decides to charge customers a percentage of
the order total to cover the delivery charges, use the Percent category. The actual charge to the customers is
defined in the Charges value field.
Companies often configure tiered charges. In this case, the amount that customers pay for delivery is based on the
order value. To configure tiered charges, enter values in the From amount and To amount fields in addition to
defining the charge itself in the Charges value field. For example, for orders that have a value that is less than
$50, a retailer charges $5.95 for ground shipping. For orders that have a value that is equal to or more than $50,
but less than $100, the retailer charges $7.95. Finally, for orders that have a value that is equal to or more than
$100, the retailer provides free shipping. The following illustration shows the configuration of these charges.
You can use a mixture of categories for charges, depending on your business requirements. For example, for all
orders that have a value that is less than $100, there is a fixed charge of $9.95 for shipping. Then, for orders that
have a value that is equal to or more than $100, delivery charges are calculated at a rate of 5 percent of the order
value. The following illustration shows the configuration of these charges.

Apply delivery modes during order entry in a call center


When a new sales order is created, a value must be specified in the Mode of deliver y field on the Deliver y
FastTab of the sales order header. This field might be filled in automatically, based on default values from the
customer record.
The delivery mode that is defined on the order header is automatically copied to the sales order lines as they are
created. However, you can change the delivery mode setup for a specific line item on the Deliver y tab in the Line
details section of the sales order entry page.
If the selected delivery mode isn't valid for the product or the delivery address that is defined for the order or
order line, you receive an error message. You must then select a delivery mode that has been defined to support
that product or address configuration.

Calculation of delivery charges during entry of order


If the Enable order completion setting is turned on for your call center channel, shipping charges are
automatically calculated for sales orders when users select Complete . The following message appears at the top
of the Sales order summar y page: "Tiered charges calculated." The charges that are calculated are added to the
value of the Sales total field. On the Amount FastTab, the Charges field shows the total amount of all charges
that have been calculated for the order and lines. To see a more detailed breakdown of the charges, select Order
on the Sales order summar y page, and then select the Charges option to view, add, or edit the charges. Note
that the calculation of delivery charges on the order header is based on the delivery mode that is linked to the
header. Line-level delivery charges are calculated based on the delivery mode that is configured for the sales line. If
multiple delivery modes are used on different lines, multiple charges might be applied and added together. The
total amount is then shown in the Charges field on the Sales order summar y page.
If the Enable order completion setting is turned off, users must manually trigger the calculation of charges. On
the Sales order page, on the Action Pane, on the Sell tab, in the Calculate group, select Tiered charges . The
"Tiered charges calculated" message appears. You can then select the Charges option on the Sell tab to view, edit,
or delete the calculated charges.

Use expedited delivery modes on call center orders


You can optionally link an expedite code to any delivery mode that you configure. This code is used as a
prioritization sorting and reporting tool. It doesn't currently cause additional fees to be applied to the order. To set
up expedite codes, go to Sales and marketing > Setup > Distribution > Expedite codes .
For example, for orders that will be shipped by next-day air, picking must be done in the warehouse by 1 PM every
day. In this case, an expedite code can be created, and that code can be linked to any next-day delivery mode that is
configured in the system. When the warehouse creates its pick wave, the appropriate expedite code in the
Expedite field can be used as a filter, so that picking is run only for orders that have delivery modes that are linked
to that code.
Additionally, when a call center order is entered, an expedite code can be manually applied either to the sales order
header or to an individual sales order line. Again, the code can be used for sorting or reporting purposes.
Sometimes, an order must be handled carefully because of a customer service issue. In this case, a specific expedite
code can be applied to the order header or lines to help identify and prioritize the order during the fulfillment
process.
Set up and work with call center fraud alerts
2/13/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to set up criteria and rules to put potentially fraudulent sales orders on hold for further
review. The fraud check feature is used to determine the validity of the information in a sales order. If the
information in the sales order appears to be questionable, based on an organization's fraud criteria and rules, the
order can be put on hold for further review. In this case, the order can't be released to the warehouse for further
processing until the hold has been cleared.

NOTE
This feature can be used only with sales order processing for the Commerce call center channel.

Turning on the fraud check feature


To use the fraud check feature, you must set the Enable order completion option on the channel to Yes when
the call center channel is defined. When order completion is turned on, call center users must select Complete on
the sales order page for all sales orders that are created. The Complete action causes the Sales order summar y
page to open. After users enter the required payment data on the Sales order summar y page, they select
Submit to finalize the order. When the order is submitted, the fraud check feature is triggered, and any rules that
are active in the system are automatically validated.
Call center users can also manually put sales orders on hold for fraud review before they select Submit . To
manually put a sales order on hold, on the Sales order summar y page, select Hold > Manual fraud hold .
You're then prompted to enter a comment to explain your reason for putting the order on hold. This comment will
appear in the order holds workbench to provide context to the user who reviews orders that are on hold to
determine whether the order should be released.
In addition to configuring the Enable order completion option on the channel, you must configure the fraud
check feature in the Call center parameters. Go to Retail and Commerce > Channel setup > Call center setup
> Call center parameters . On the Call center parameters page, on the Holds tab, set the Fraud check option
to Yes .
On the Holds tab, you should also define the hold codes that will be applied to an order that is either manually or
automatically put on hold for fraud review. Set the hold codes in the Manual fraud hold code and Fraud hold
code fields. You might find it helpful to create two unique hold codes, so that users who work in the holds
workbench can easily filter and distinguish automatic holds from manual holds.
For the fraud check feature to work effectively, you must also set the Minimum score field. Every fraud criterion
and rule that is defined in the system has a score. When a sales order is checked for fraud matches, if one or more
matches are found, the scores are added together to give the order a total fraud score. If the total fraud score for
an order exceeds the value of the Minimum score field, the order is automatically put on hold. You can optionally
use the other score-related fields on the Holds tab to define the email score, phone score, ZIP/postal code score,
and extended ZIP/postal code score. If you don't specify a score for any of these static fraud criteria when you
define them on the Static fraud data page, the system will score them by using the default scores that you
specify on the Holds tab of the Call center parameters page.
Finally, use the Fraud comment type field to specify the document type that should be used when users enter
comments when they manually put an order on hold for fraud review. Most often, this field is set to Note .

Defining fraud criteria and rules


The system references two types of fraud criteria to determine whether an order should be put on hold for fraud
review:
Static fraud data uses a specific value, such as a phone number that has been put on a list of blocked
numbers or an email address that has been flagged because it's known to have been used for previous
fraudulent transactions. To set up static fraud data, go to Retail and Commerce > Channel setup > Call
center setup > Fraud > Static fraud data . On the Static fraud data page, you can add fraud criteria
manually or through data import. Scores are attached to the fraudulent information. If the fraud check
feature is turned on, every sales order that is entered is compared to the static data. If the data is found in
either the customer's billing address or the delivery address that is linked to the order header, or if the data
is found in the delivery addresses that are linked to any of the lines on that sales order, the scores of all
unique matches are added together and compared to the Minimum score value to determine whether the
order should be put on hold.
Fraud rules consist of user-defined variables and the conditions that are defined for those variables. To
create rules, go to Retail and Commerce > Channel setup > Call center setup > Fraud > Rules .
Fraud rules let a company configure a more complex rule set that can include AND or OR statements to
evaluate multiple conditions. For example, a user wants all orders for customers who belong to a specific
customer group and who ordered a specific product to be put on hold for fraud review. In this case,
conditions to validate the customer and products are defined on the Rules page, and an AND condition is
used. An order is then put on hold only if both conditions are true, and if the score value that is assigned to
this rule, plus the score value of any other rules that the order matches, causes the order's total fraud score
to exceed the Minimum score value that is defined on the Call center parameters page.

NOTE
Multiple rules or overly complex rules will affect system performance when sales orders are submitted. The fraud check
feature hasn't been optimized to handle a large volume of static fraud data entries and many active rules. Remember that
every rule is evaluated when call center users select Submit during sales order entry. The rules are evaluated against the
sales order header and all order lines. The more rules there are and the more complex the rule statements are, the more time
will be required for processing. If there are many line items on an order, and many active rules and static data entries, the
automatic process of reviewing and validating all the data and calculating a fraud score can have a severe impact on
performance. Organizations that use this feature should always test and confirm that the processing time for order
submission is acceptable before they apply any changes to rules or static fraud criteria to the production environment.

Identifying orders that are on hold for fraud review


When call center users submit a sales order, if the order matches the fraud criteria or rules, and if the score exceeds
the minimum, the users receive a warning message that states that the order has been put on hold. Users can close
this message, because it's for informational purposes only. Users can optionally communicate this information to
the customer. The business should determine the protocol that users follow in this situation.
The order is saved, but the Do not process flag is set on it. This flag helps guarantee that the order can't be
released to the warehouse. At any time, users can view the setting of the Do not process flag for any sales order
on the Detailed status page. This page can be opened from the All sales order and Customer ser vice pages.
The system also updates the value of the Detailed status field for the order to Fraud hold .
To view and manage the orders that are on hold for fraud review, go to Retail and Commerce > Customers >
Order holds . On the Order holds page, select an entry in the list, and then click Order hold to see a more
detailed view that includes information about the reason for the hold. On the Fraud details FastTab, you can view
the systematic fraud criteria that were found to be a match for the order and the scores that were applied. If the
order was put on manual hold, you can review any comments that were entered by the user who put the order on
hold by looking at the Fraud notes section on the Notes FastTab.
For more information about how to work with hold orders, see Order holds.
Add a channel to an organizational hierarchy
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to add a channel to an organizational hierarchy in Microsoft Dynamics 365 Commerce.

Overview
Channels need to be associated with one or more organizational hierarchies. Before creating channels, you need to
confirm that your organizational hierarchies have been set up.
See Organizational hierarchies for more details on how to create organizational hierarchies.

Select a hierarchy
To select a hierarchy, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Channel Setup > Organization
hierarchies .
2. From the list, select the organization hierarchy that you'll be adding the channel to.
3. On the action pane, select View to view hierarchy details.
The following image shows organizational hierarchy details for the selected hierarchy.

Add a channel to a hierachy node


To add a channel to a hierachy node, follow these steps.
1. On the action pane, select Edit .
2. Select the hierachy node you want the channel added to, then from the Inser t drop-down list, select Retail
Channel .
3. Select the channel to add, then select the OK button.
4. On the action pane, select Save .
5. On the action pane, select Publish and provide an Effective date in the past to have this action go into effect
immediately.
The following image shows how to select a channel to add to a hierarchy node.

The following image shows a hierarchy with various channels added.

Additional resources
Channels overview
Channel setup prerequisites
Organizations and organizational hierarchies overview
Plan your organizational hierarchy
Organization hierarchies
Set up a retail channel
Set up an online channel
Omni-channel advanced auto charges
3/31/2020 • 17 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides information on configuration and deployment of the advanced auto-charges features that are
available in Dynamics 365 for Retail version 10.0.
When the advanced auto-charges features are enabled, orders created in any supported Commerce channel (point
of sale (POS), call center, and online), can take advantage of the auto-charges configurations defined in the ERP
application for both header and line-level related charges.
In releases prior to Retail version 10.0, auto-charge configurations are only accessible by orders created in e-
Commerce and call center channels. In versions 10.0 and later, POS-created orders can leverage the auto-charges
configurations. That way, additional miscellaneous charges can systematically be added to sales transactions.
When using releases prior to version 10.0, a POS user is prompted to manually enter a shipping fee during the
creation of a "ship all" or "ship selected" POS transaction. While the miscellaneous charges capabilities of the
application are utilized in respect to how the charges are written to the order, no systematic calculation is provided
– the calculation relies on the user's input to determine the value of the charges. The charges can only be added as
a single "shipping" related charges code and cannot easily be edited or changed in the POS after they are created.
The use of manual prompts to add shipping charges is still available in versions 10.0 and later. If an organization
does not enable the Advanced Auto-charges parameter, the POS prompts for manual entry of charges will
remain the same.
With the advanced auto-charges feature, POS users can have systematic calculations for any defined miscellaneous
charges based on auto-charges setup tables. In addition, users will have the ability to add or edit an unlimited
amount of additional charges and fees to any POS sales transaction at the header or line-level (for a cash and carry
or customer order).

Enabling advanced auto-charges


On the Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters page, go to
the Customer orders tab. On the Charges FastTab, set Use advanced auto-charges to Yes .
When advanced auto-charges are enabled, users are no longer prompted to manually enter a shipping charge at
the POS terminal when creating a ship-all or ship-selected customer order. POS order charges are systematically
calculated and added to the POS transaction (if a corresponding auto-charges table that matches the criterion of
the order being created are found). Users can also add or maintain header or line-level charges manually through
newly added POS operations that can be added to the POS screen layouts.
When advanced auto-charges are enabled, the existing Commerce parameters for Shipping charges code
and Refund shipping charges are no longer utilized. These parameters are only applicable if the Use advanced
auto-charges parameter is set to No .
Before you enable this feature, ensure that you have tested and trained your employees, as this will change the
business process flow of how shipping or other charges are calculated and added to POS sales orders. Make sure
that you understand the impact of the process flow to the creation of transactions from POS. For call center and e-
Commerce orders, the impact of enabling advanced auto-charges is minimal. Call center and e-Commerce
applications will continue to have the same behavior they have had historically related to the auto-charges tables
to calculate additional order fees. Call center channel users will continue to have the ability to manually edit any
system calculated auto-charges at the header or line level, or manually add additional miscellaneous charges at the
header or line level.

Additional POS operations


For advanced auto-charges to work properly in your POS application environment, new POS operations have been
added. These operations must be added to your POS screen layouts and deployed to the POS devices as you
deploy advanced auto-charges. If these operations are not added, users will not be able to manage or maintain
miscellaneous charges on the POS transactions and will have no way of adjusting or changing the charges values
that are systematically calculated based on auto-charges configurations. At minimum, it is suggested that you
deploy the Manage charges operation to your POS layout.
The new operations are as follows.
142 - Manage charges – Use this operation to allow POS users to view and edit miscellaneous charges for
the POS transaction that were either added manually or systematically through auto-charges calculations.
141 - Add header charges – Use this operation to give the user the ability to manually add a header-level
miscellaneous charge to any POS sales transaction (and select the charges code to be used).
140 - Add line charges – Use this operation to give the user the ability to manually add a line level
miscellaneous charge to any POS sales transaction line (and select the charges code to be used).
143 - Recalculate charges – Use this operation to perform a full recalculation of the charges for the sales
transaction. Any previously user-overwritten auto-charges will be recalculated based on the current cart
configuration.
As with all POS operations, security configurations can be made to require manager approval in order to execute
the operation.
It is important to note that the above listed POS operations can also be added to the POS layout even if the Use
advanced auto-charges parameter is disabled. In this scenario, organizations will still get added benefits of
being able to view manually added charges and edit them using the Manage charges operation. Users may also
use the Add header charges and Add line charges operations for POS transactions even when Use advanced
auto-charges parameter is disabled. The Recalculate charges operation has less functionality if used when Use
advanced auto-charges is disabled. In this scenario, nothing would be recalculated and any charges manually
added to the transaction would just reset to $0.00.

Use case examples


In this section, sample use cases are presented to help you understand the configuration and usage of auto-
charges and miscellaneous charges within the context of channel orders. These examples illustrate the behavior of
the application when the Use advanced auto-charges parameter has been enabled.
Auto -charges header charges example
Use case scenario
A retailer wants to automatically add charges for freight when transactions are created in any Commerce channel
that require a shipment of products to the customer. The retailer offers two methods of delivery: Ground and Air. If
a customer chooses Ground delivery and the order value is less than $100, the retailer wants to charge the
customer a freight charge of $10.00. If the order is over $100 in value and the customer chooses ground shipping,
the customer will not be charged any additional freight fees. If the customer chooses the Air method of delivery for
all orders, regardless of their total value, will be charged a freight fee of $20.00.
Setup and configuration
This scenario requires the configuration of two auto-charges tables.
Go to Accounts receivable > Charges setup > Auto charges .
Configure two different header-level auto charges. Configure one for the "Ground mode" of delivery and one for
the "Air mode" of delivery. For this scenario, configure them to be used for "All customers".
For the ground delivery charges, in the lines section of the Auto-charges page, define a charge that will be
applied for orders between $.01 and $100 as $10.00. Create another charges line to indicate orders over $100.01
will have no charges.

For the air delivery charges, in the lines section of the auto-charges form, define a charge of $20.00 that will be
applied to all orders (between a value of $.01 to $9,999,999).
Send the changes to the Commerce Scale Unit/Channel DB so that the POS can utilize them by running the 1040
distribution schedule job.
Sales processing for this scenario
After the configuration steps above are complete and the changes have been applied to the channel database, any
customer order or sales transaction created in the POS, call center, or e-Commerce channels that have the ground
or air delivery methods set at the header level will utilize these charges and automatically apply them to the sale.
At this time the charges will apply to all sales transactions created within the legal entity that utilize these delivery
modes, as there is no functionality to designate that an auto-charge configuration will only apply to a specific
selling channel.
For POS and e-Commerce scenarios, because there is no clearly defined "header" on these orders, header-level
charges will only apply if all sales lines on the transaction are set to ship with the exact same mode of delivery. If
there are "mixed-modes" of fulfillment on the transactions created by POS or e-Commerce, only line-level auto-
charges will be considered and applied.
In call center scenarios, the user has control over the setting of the delivery mode at the order header, therefore
header-level charges will apply for these orders even if some of the sales lines have been configured to use a
different mode of delivery. Header-level charges for call center orders will always be based on the mode of delivery
that is defined at the order header level of the sales order.
Auto -charges line charges example
Use case scenario
A retailer wants to add an additional charge to the customer for setup fees when the customer purchases a
particular model of computer. This computer requires additional non-optional setup actions that the retailer will
perform for the customer. The retailer has informed customers that there will be an additional fee for this setup.
The retailer prefers to manage the charges related to this fee separately from the product sales price for financial
reporting purposes. A setup fee of $19.99 will be charged to the customer when this specific computer is
purchased in any channel.
Setup and configuration
This scenario requires the configuration of one line-level auto charges table.
Go to Accounts Receivable > Charges setup > Auto charges .
Set the Level drop-down menu to Line , and create a new auto-charges record for all customers and for the
specific product or product group where the setup fees will be charged.

Send the charges to the Commerce Scale Unit/Channel DB so that the POS can utilize them by running the 1040
distribution schedule job.
Sales processing for this scenario
After the configurations steps above are complete and the changes have been applied to the channel database, any
customer order or sales transaction created in the POS, call center, or e-Commerce channels that have this item on
the order will trigger a line-level charge to be systematically added to the order total.
At this time the charges will apply to any sales line that matches the configuration of the line-level auto charges
within the legal entity, as there is no functionality to configure a line-level auto-charge to apply only to a specific
selling channel.
Manual header charges example
Use case scenario description
A retailer is making an exception to typical processes by offering to provide a special home delivery of products to
customers who order products in the store. The retailer and the customer have agreed that the customer will pay
an additional $25 handling fee for this service. The order-taker needs to add this additional fee to the transaction.
Because the fee is a blanket fee and not related to any single product on the order, a header charge will be utilized.
Setup and configuration
Ensure the charges code that will be used in this scenario has been properly configured by going to Accounts
Receivable > Charges setup > Charges to define an appropriate charges code for the scenario.
If the charge should be considered a "shipping" related charge for the purpose of shipping related discounts or
promotions, set Shipping charge on the charges code to Yes . If this charge is also allowed to be systematically
refunded during the processing of a return transaction in the POS application, set Refundable to Yes . The
Refundable flag is only applicable when the Use advanced auto-charges parameter is set to Yes .
Send the charges to the Commerce Scale Unit/Channel DB so that the POS can utilize them by running the 1040
distribution schedule job.
The Add header charge operation must be configured in your POS screen layout so that a button that is
accessible to the user from POS can call this operation (operation 141). The screen layout changes must be
distributed to the channel as well through the distribution schedule function.
Sales processing of manual header charges
To execute the scenario in the POS application, the POS user will create the sales transaction as usual, adding the
products and any other configurations to the sale. Prior to collecting payment, the user should execute the Add
header charge operation, which will prompt the user to select a charges code and enter the charges value. Once
the user completes the process, the charge will be added to the sales order as a header-level charge.
This process can be applied in the call center by using the existing Charges feature found on the Sell tab on the
toolbar. On the Maintain charges page, the user can add a new charges line to the order header.
Manual line charges example
Use case scenario
A customer has requested that two of the five items on their sales order be gift-wrapped. The retailer offers this
optional service for a fee of $2.00 per item. The order-taker will need to add these fees to the specific items that
need to be gift-wrapped.
Setup and configuration
Ensure the charges code that will be used in this scenario has been properly configured by going to Accounts
Receivable > Charges setup > Charges to define an appropriate charges code for the scenario.
If the charge should be considered a "shipping" related charge for the purpose of shipping related discounts or
promotions, set the Shipping charge on the charges code to Yes . If the charge is also allowed to be systematically
refunded during the processing of a return transaction in the POS application, set Refundable to Yes . The
Refundable flag is only applicable when the Use advanced auto-charges parameter is set to Yes .
Send the charges to the Commerce Scale Unit/Channel DB so that the POS can utilize them by running the 1040
distribution schedule job.
The Add line charge operation must be configured in your POS screen layout so that a button that is accessible
to the user from POS can call this operation (operation 140). The screen layout changes must be distributed to the
channel as well through the distribution schedule function.
Sales processing of the manual line charge
To execute the scenario in the POS application, the POS user will create the sales transaction as usual, adding the
products and any other configurations to the sale. Prior to collecting payment, the user should select the specific
line where the charge will apply from the POS item list display and execute the Add line charge operation. The
user will be prompted to select a charges code and enter the charges value. Once the user completes the process,
the charge will be linked to the line and added to the order total as a line level charge. The user can repeat the
process to add additional line charges to other items lines on the transaction if needed.
The same process can be applied in the call center by using the "maintain charges" feature found under the
Financials drop-down menu in the Sales order lines section on the Sales order page. This will open the
Maintain charges page where the user can add a new line-specific charge to the transaction.

Additional features
Editing charges on a POS sales transaction
The Manage charges operation (142) should be added to the POS screen layout so that a user can view and edit
or override any system-calculated or manually-created header or line-level charges. If the operation is not added,
users will not be able to adjust the value of the charges on the POS transaction, nor will they be able to view the
details of the charges such as the type of charges code tied to the charge.
On the Manage charges page in POS, the user can view both header and line-level charges details. The user can
use the Edit function available on this page to make changes to the amount charged to a specific charges line.
Once a charges line is overwritten manually, it will not be systematically recalculated unless the user initiates the
Recalculate charges operation.
If the Charge override reason code has been configured on the Commerce parameters setup page, the user
will be prompted to provide a reason code when charges have been modified in the POS application.
If reason codes have been captured for overwritten charges, a new report is also available to review and audit
these overrides. The report can be found in Retail and Commerce > Inquiries and repor ts > Charge
override histor y .
Refunding charges on a POS return transaction
If the Use advanced auto-charges parameter is set to Yes , the existing Commerce parameter for Refund
shipping charges is no longer applicable. To indicate which charges should be systematically refunded to a
customer when using advanced auto-charges, ensure the related charges code has been configured as
Refundable on the Charges code setup page. Make sure that the settings have been synchronized to your
Commerce channel databases through distribution schedule processing.
Refunding charges on a return order transaction
Charges are not systematically refunded to Return orders created in Commerce. Users are required to select the
Copy charges option when creating the Return order . If Copy charges is not selected, charges from the
original sales transaction will not be automatically refunded. If Copy charges is selected, all charges will be copied
to the return order and the user can manually edit or remove any charges they do not want to have refunded. The
call center return order process currently does not acknowledge the Refundable flag on the Charges code setup.
Configuring POS receipts to show charges
The following receipt elements have been added to the receipt line and footer to support the advanced auto-
charges functionality.
Line Shipping Charges – This line-level element can be used to recap specific charges codes that have been
applied to the sales line. Only charges codes that have been flagged as Shipping charges on the Charges
code page will be displayed here.
Line Other Charges – This line-level element can be used to recap any non-shipping specific charge codes
that have been applied to the sales line. These are charges codes where the Shipping flag on the Charges
code page has not been enabled.
Order Shipping Charges Details – This footer-level element displays the descriptions of the charge codes
applied to the order that have been flagged as Shipping charges on the Charges code setup page.
Order Shipping Charges – This footer-level element shows the dollar value of the shipping-related charges.
Order Other Charges Details – This footer-level element displays the description of the charges codes
applied to the order that have not been flagged as shipping-related charges.
Order Other Charges – This footer-level element displays the dollar value of the other charges that are not
shipping-related.
It is recommended that the organization also add free text fields to the receipt footer, in order to define the areas
where charges will be recapped.
Preventing charges from being calculated until the POS order is completed
Some organizations may prefer to wait until the user has finished adding all of the sales lines to the POS
transaction before calculating charges. To prevent calculation of charges as items are added to the POS transaction,
turn on the Manual charge calculation parameter in the Functionality profile used by the store. Enabling this
parameter will require the POS user to use the Calculate totals operation when they have completed adding the
products to the POS transaction. The Calculate totals operation will then trigger the calculation of any auto
charges for the order header or lines as applicable.
Charges override reports
If users manually override the calculated charges or add a manual charge to the transaction, this data will be
available for auditing in the Charge Override Histor y report. The report can be accessed from Retail and
Commerce > Inquiries and repor ts > Charge Override Histor y . It is important to note that the data needed
for this report is imported from the channel database into HQ through the "P" distribution schedule jobs.
Therefore, information about overrides just performed in the POS may not be immediately available on this report
until this job has uploaded the store transaction data into HQ.

Additional resources
Enable and configure auto charges by channel
Prorate header charges to matching sales lines
Enable and configure auto charges by channel
3/31/2020 • 4 minutes to read • Edit Online

This topic explains how to enable and configure automatic charges (auto charges) by channel in Microsoft
Dynamics 365 Commerce.

Overview
You might have scenarios where recycling fees or other fees must be applied to a group of products that are sold
in all or some stores in a specific state (for example, California). The Enable filter auto charges by channel
feature in Commerce lets you specify auto charges by channel (for example, a specific brick-and-mortar channel).
This feature is available in Dynamics 365 Commerce version 10.0.10 and later.
To enable and configure auto charges by channel, you must complete the following tasks:
Turn on the Enable filter auto charges by channel feature.
Configure the organization hierarchy purpose.
Define auto charges by channel.

NOTE
The Enable filter auto charges by channel feature works only if the advanced auto charges feature is also turned on.
For information about how to turn on the advanced auto charges feature, see Omni-channel advanced auto charges.

Turn on the Enable filter auto charges by channel feature


To enable auto charges by channel in Commerce, follow these steps.
1. Go to System administrator > Workspaces > Feature management .
2. On the Not enabled tab, in the Feature name list, find and select Enable filter auto charges by channel .
3. In the lower-right corner, select Enable now . After the feature has been turned on, it will appear in the list on
the All tab.
4. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
5. In the left pane, find and select the 1110 (Global configuration ) job.
6. On the Action Pane, select Run now to propagate the configuration changes.

WARNING
If you turn off the Enable filter auto charges by channel feature after you've already used it, the Retail channel
relation field under Auto charges will no longer appear, and you will lose all existing configurations. If removal of the
Retail channel relation configurations will cause auto charges rules to be duplicated, an attempt to turn off the feature
will fail. Before you turn off the feature, be sure to review all auto charges rules and make any required changes.

Configure the organization hierarchy purpose


A new organization hierarchy purpose that is named Retail auto charge has been created to manage the
hierarchy for auto charges by channel.
To assign a default hierarchy to an organization hierarchy purpose in Commerce, follow these steps.
1. Go to Organization administration > Organizations > Organization hierarchy purposes .
2. In the left pane, select Retail auto charge .
3. Under Assigned hierarchies , select Add .
4. In the Organization hierarchies dialog box, select an organization hierarchy (for example, Retail Stores by
Region ), and then select OK .
5. Under Assigned hierarchies , select Set as default .
6. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
7. In the left pane, find and select the 1040 (Products ) job.
8. On the Action Pane, select Run now .
9. Repeat the previous two steps to run the 1070 (Channel configuration ) and 1110 (Global configuration )
jobs.

Define auto charges by channel


After you've turned on the Enable filter auto charges by channel feature and configured the Retail auto
charge organization hierarchy purpose, auto charges by channel can be defined at either the order header level or
the order line level.
To define auto charges by channel in Commerce, follow these steps.
1. Go to Accounts receivable > Charges setup > Auto charges .
2. In the left pane, in the Level field, select either Header or Line , depending on your business requirements.
3. In the Retail channel code field, select the appropriate channel code (for example, Table or Group ). If the
default setting, All , is used, charge rules are applied to all channels.
If you select Group , make sure that a retail channel charges group is created at Retail and Commerce
> Channel setup > Charges > Retail channel charge groups .
If you select Table , you can select a specific channel (for example, San Francisco ) in the Retail channel
relation field.
4. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
5. In the left pane, find and select the 1040 (Products ) job.
6. On the Action Pane, select Run now .
7. Repeat the previous two steps to run the 1070 (Channel configuration ) and 1110 (Global
configuration ) jobs.
Example scenario
The following example outlines the steps that are required to configure a product so that recycling fees are
charged when the product is sold through a San Francisco brick-and-mortar channel. The example also shows how
the auto charges appear in the Commerce point of sale (POS) application.
The organization defines a charges code that is named RECYCLE , as shown in the following illustration.

An auto charge is created at the line level. It has the following configuration:
The Account code field is set to All .
The Item code field is set to Table .
The Item relation field is set to product ID 91001 .
The Mode of deliver y code field is set to All .
The Retail channel code field is set to Table .
The Retail channel relation field is set to the San Francisco store.
An auto charges line is created. It has the following configuration:
The Currency field is set to USD .
The Charges code field is set to RECYCLE .
The Categor y field is set to Fixed .
The Charges field is set to $6.25 .
In the POS application, a sales order is created in the San Francisco store channel. The Charges line shows the
recycling fee of $6.25 .
By selecting Transaction options > Charges > Manage charges in the POS application, you can view the
charges code and description for the recycling fee.

Additional resources
Omni-channel advanced auto charges
Prorate header charges to matching sales lines
Prorate header charges to matching sales lines
3/31/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the functionality for grouping header-level auto-charges and prorating them to commerce
sales lines. This functionality is available for transactions that are created at the point of sale (POS) in Retail version
10.0.1 and sales that are created in a call center in Retail version 10.0.2.
This functionality is available only if the advanced auto-charges feature is turned on by using the option on the
Commerce parameters page. Additionally, the enhanced calculation method for auto-charges can be applied
only to sales orders that are created through commerce channels (the POS, a call center, and the Dynamics e-
Commerce platform).
This new functionality gives organizations more flexibility in the way that header-level auto-charges are calculated
and applied to sales transactions.
In versions of the app earlier than version 10.0.1, header-level auto-charges that have a specific mode of delivery
relation are calculated only when there is a match with the mode of delivery that is defined on the sales order
header.
For example, header-level auto-charges are defined for mode of delivery 99 and mode of delivery 11 . A sales
order is created, and mode of delivery 99 is defined on the order header. However, some of the sale lines are set up
so that they're shipped by using mode of delivery 11 . In this case, only the header-level charges that are linked to
mode of delivery 99 are considered and applied to the sales order.
In Commerce, the header-level charges have an additional feature that lets you define a tiered charge configuration
that is based on the order value. For example, if the order value is between $50.00 and $200.00, an organization
might want to charge a freight charge of $5.00. However, if the order value is between $200.01 and $500.00, the
freight charge might be $4.00.
Some organizations want the benefits of the tiered charge calculation that is provided with header-level charges.
However, in scenarios that involve mixed modes of delivery, they also want to make sure that the charges that are
calculated are based on a match with the mode of delivery that is defined on each sales line.
You can now configure header-level auto-charges so that all modes of delivery on the order are considered when
charges are calculated. This functionality requires a more complex calculation logic to calculate the header-level
charges. The logic groups together all the items that are shipped using the same mode of delivery, and it treats that
group as the calculation group for the items when it calculates the header-level auto-charges. For items that have
the same mode of delivery, auto-charges are calculated based on the combined sales value of the items. In this
way, the appropriate auto-charge tier is determined.
After the appropriate header-level charges are obtained for the sales lines that are shipped using the same mode
of delivery, the calculated charges are prorated down to the sales line level. Because these charges are at the line
level and not kept at the header level, a more specific link is made between the item and the charge value that
calculated for it. This behavior can be useful in partial return scenarios, where an organization wants to refund only
part of the charge instead of the whole charge when only some items are returned.
Scenarios
The following two sample scenarios outline how these charges are calculated both when the new functionality is
used and when it isn't used.
Scenario 1
This scenario outlines the behavior when the Pro-rate to matching sales lines option is set to No in the auto-
charge setup. (The behavior is equivalent to the behavior of header-level charges in app versions that are earlier
than version 10.0.1.)
In this scenario, the organization has defined header-level charges for mode of delivery relation 99 and mode of
delivery relation 11 . No auto-charges are configured for mode of delivery 21 .

A sales order is created in the call center, and the mode of delivery is set to 99 . This order contains five items. Two
order lines have been configured to use mode of delivery 99 , two lines have been configured to use mode of
delivery 11 , and one line has been configured to use mode of delivery 21 , as shown in the following table.

IT EM L IN E Q UA N T IT Y DEL IVERY M O DE P RIC E P ER UN IT

81331 1 11 $10

81332 1 99 $50

81333 2 11 $30

81334 3 99 $10

81334 3 21 $5

In this scenario, the whole order is evaluated against the auto-charge table for mode of delivery 99 . The full total
of all sales lines is used to determine a matching tier in the auto-charge configuration, and this charge is applied at
the order header level. In this example, the order total is $165.00, and the $15.00 freight charge is applied to the
order header. Auto-charges that are configured for mode of delivery 11 are never referenced or applied.
In this scenario, if a customer returns some of the items on the order, and if the charge code has been configured
so that it will be refunded, the total header-level charge is systematically applied to the refund, even if only some of
the items are returned.
Scenario 2
In this scenario, header-level charges are defined for mode of delivery relation 99 and mode of delivery relation
11 . However, the Pro-rate to matching sales lines option is set to Yes for these auto-charge tables.

This scenario uses the same sales order that contains five lines. The mode of delivery on the order header is set to
99 , but the mode of delivery for each item on the sales order is configured as shown in the following table.

IT EM L IN E Q UA N T IT Y DEL IVERY M O DE P RIC E P ER UN IT

81331 1 11 $10

81332 1 99 $50

81333 2 11 $30

81334 3 99 $10

81334 3 21 $5

Because the auto-charge configuration is set to prorate to matching sales lines, the system performs the following
calculation steps.
1. All items that have the same mode of delivery are grouped together, and the system calculates the total
product value of the items in the group.
Deliver y mode 11
Item 81331, quantity 1 = $10
Item 81333, quantity 2 = $60 net ($30 per unit)
Total product value for deliver y mode 11 = $70
Deliver y mode 99
Item 81332, quantity 1 = $50
Item 81334, quantity 3 = $30 net
Total product value for deliver y mode 99 = $80
Deliver y mode 21
Item 81334, quantity 3 = $15 net
Total product value for deliver y mode 21 = $15
2. The system looks for the configuration for header-level auto-charges that matches the customer and mode
of delivery settings for each group of items. If the configuration is found, the system looks in the tiered
configuration to find the charge that should be applied, based on the total product value of items in the
mode of delivery group.
Deliver y mode 11
Total product value = $70
Charge value = $7
Deliver y mode 99
Total product value = $80
Charge value = $15
Deliver y mode 21
Total product value = $15
Charge value = $0 (No auto-charges have been configured for this combination of a customer and a
mode of delivery.)

3. The system calculates the charge value that should be applied to each line, based on proration logic that
considers the proportional value of the line in relation to the group's total product value.
Deliver y mode 11
Charge value = $7
Group product value = $70
Line 1 value = $10 (= 14.2857 percent of the group value)
Line 3 value = $60 (= 85.7143 percent of the group value)
Line charge for line 1 = $1
Line charge for line 3 = $6
Deliver y mode 99
Charge value = $15
Group product value = $80
Line 2 value = $50 (= 62.5 percent of the group value)
Line 4 value = $30 (= 37.5 percent of the group value)
Line charge for line 2 = $9.38
Line charge for line 4 = $5.62
Deliver y mode 21
Charge value = $0
Group product value = $15
Line 5 value = $15 (= 100 percent of the group value)
Line charge for line 5 = $0
Therefore, for this example, item 81334 will be assigned a freight charge of $5.62. You can view these charges on
the Maintain charges page for the sales line. The following illustration shows what this page looks like for item
81334.

When this method of calculation is used in a partial return scenario, if the charge code is refundable, only the part
of the charge that is allocated to that line will be refunded when the item is returned.

Additional resources
Omni-channel advanced auto charges
Enable and configure auto charges by channel
Set up continuity programs for call centers
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article describes how to set up a continuity program for a call center.
In a continuity program, which is also known as a recurring order program, customers receive regular product
shipments according to a predefined schedule. Each shipment can contain a different product, as in the case of a
book-of-the-month club, or the same product can be sent repeatedly. To set up a continuity program, you must
complete the following tasks.
1. Set the continuity parameters on the Call center parameters page.
2. Create a continuity program that specifies details such as the payment schedule, the timing of the
shipments, and whether billing is up front. You must also add a list of products that are included in the
continuity program. Each product receives an event ID number that is assigned sequentially, beginning with
1. The event IDs determine the order that products are sent in.
If customers receive a different product in each shipment, the products are sent in sequential order,
based on their event IDs and beginning with the current event.
If customers receive the same product in each shipment, the list contains only one product that has one
event ID. The same event occurs repeatedly. You can specify how many times each event is repeated.
3. Create a parent product that represents the continuity program that you created in task 2. If you add this
product to a sales order, the Continuity page opens. You can then use that page to create the actual
continuity order. The parent product doesn't specify the individual products that the customer receives in
each shipment.
After you've set up a continuity program as described above, you can create a continuity order for a customer. You
might also have to perform the following additional maintenance tasks.
Update the current continuity event period – Set up a batch job that tells the system what the current
event period is.
Create continuity child orders – Create child orders from the parent continuity order.
Process continuity payments – Process billing and notifications for payments that are associated with
continuity sales orders.
Extend continuity lines (if required) – Extend the number of times that a continuity event can be repeated.
The repetition of shipments can then extend beyond the limit that was set in the Continuity repeat threshold
field in the call center parameters.
Perform a continuity update (if required) – Synchronize changes between the continuity program and the
continuity parent sales orders.
Close continuity parent lines and orders – Close continuity orders.
Define continuity schedules
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic walks through setting up a continuity program (otherwise known as reoccurring orders). This topic uses
company USRT in the demo data.

Create continuity program


1. Go to Retail and Commerce > Continuity > Continuity programs.
2. Click New.
3. In the Schedule ID field, type the continuity schedule ID.
4. In the Order start field, select 'First event'.
If a customer places a new order for the continuity program, there are two options for which product will
be shipped: 1. First event: the first product in the continuity program will be shipped. 2. Current event: the
current product will be shipped. For example. three months into the program, the customer will receive
the third in the program.
5. Select 'Yes' to prompt for the order start date.
6. Click Add line.
7. In the Item number field, type the item number for the first product ('0013').
8. Type 'CP'.
9. Enter the date when the first product will be available for order.
10. Click Add line.
11. In the Item number field, type '0014'.
12. In the Date interval code field, clear the value so the field is empty.
For this procedure, clear the date interval. You'll set the date as incremental from the start date of the first
item.
13. Here you'll enter the interval at which the products are shipped. Type '30'.
For a monthly program, you'll enter 30 days for the interval.
14. Click Add line.
15. In the Item number field, type '0015'.
16. Type 'End'.
17. Click Save.

Assign to continuity item


1. Go to Product information management > Products > Released products.
2. Select item '0016'.
For this procedure, you'll select item number 0016. Normally, you'll have created a released product that
has additional continuity business logic applied when it's placed on a sales order in call center.
3. In the list, click the link in the selected row.
4. Click Edit.
5. Expand or collapse the Sell section.
6. Here you'll enter the continuity program that this item represents. Type the Schedule ID you created earlier.
When this item is sold in a call center, additional business logic is applied from the selected continuity
program.
7. Click Save.
Create and update store hours
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Overview
From a single place, retailers can create, maintain, and manage the store hours for different stores across
geographic regions. The store hours can then be shown on point of sale (POS) terminals. In this way, cashiers can
share store hours with customers and better help shoppers who are interested in inventory in other stores. The
store hours can also be printed on receipts, in case customers want to return to the store later.
Multiple store hours can be configured across different channels. These channels include brick-and-mortar stores,
call centers, mobile devices, and e-Commerce sites.
If a customer has a pickup order for a different store, the cashier can select dates when the pickup will be available
in that store. The store lookup will provide a reference to the dates and store times. The cashier can select a date
and location, and can also print a pickup receipt that includes the store hours.
This functionality is available in Microsoft Dynamics 365 Retail versions 8.1.2 and later.

Configure store hours


Follow these steps to configure store hours.
1. Go to Retail and Commerce > Channel Setup > Store hours .
2. Select New to create a new store hours template. To use an existing template, select the template in the left
pane.
3. In the Add range dialog box, define the date range, the store hours, and any holidays that are required.
If store hours don't change, select Never ends in the End date field.
If the store hours are for a specific month, week, or day, set the appropriate dates in the Star t Date and
End date fields.

NOTE
You can create multiple templates that have overlapping start and end dates. Therefore, you can, for example, define
store hours for stores in different time zones.
4. Associate the store hours template with the stores where it will be used. In the Choose organization
nodes dialog box, select the stores, regions, and organizations that the template should be associated with.
Only one store hours template can be associated with each store.
Use the arrow buttons to select stores, regions, or organizations. The calendar will be available to the
stores or store groups, and it will be visible at the POS for reference.

5. On the Distribution schedule page, run the 1070 and 1090 jobs to make the store hours available to the
POS.

Add store hours to printed receipts


Follow these steps to add store hours to the printed POS receipts.
1. Open the receipt designer.
2. Select Footer in the lower-left corner.
3. Drag the Store hours element from the left pane to the footer at the bottom of the receipt template.
4. You can edit the default label on the Store hours element as you require.
5. Save the receipt, and close the receipt designer.
6. On the Distribution schedule page, run the 1070 and 1090 jobs.
7. Sign in to the POS.
8. Complete a sale, and select to print a receipt.
POS receipts now include the store hours. If any holidays were included in the template, they are shown on the
receipt.
Commerce Scale Unit
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the Commerce Scale Unit and when to use it.

Overview
Commerce Scale Unit is a set of features that supports selling products in a store that have inconsistent internet
connectivity to a back office or headquarters (HQ). The Store Scale Unit is designed specifically for in-store
operation, and enables cross-terminal transactions and shift operations despite poor internet service. By
automatically connecting to the back office, when you do have internet connectivity, your store can seamlessly
process credit card transactions, issue gift cards, and sync data with HQ. The Store Scale Unit is available for
download in the standard HQ deployment.

Is the Commerce Scale Unit right for you?


Before you begin setting up Commerce Scale Unit, take a moment determine whether this option is the right fit for
your store. Commerce Scale Unit is a deployment choice intended for retailers with store locations that have slow
or intermittent internet connectivity, who need the flexibility of the Commerce Scale Unit deployed on premises in
each store. In scenarios where a stable internet connection is available and there is low latency to the cloud
environment, then it is recommended to consider operating the store as Cloud only, without setting up a
Commerce Scale Unit. Consider the following before you begin:
You only have one opportunity to set up a store as a Store Scale Unit or a Cloud-only system. Moving from a
Commerce Scale Unit-enabled store to a Cloud-Only store is not supported by default, and will require manual
configuration.
Commerce Scale Unit will support both MPOS and Cloud POS within the store.
Commerce Scale Unit can be set up in a one-box deployment topology on a single computer (recommended) or
in a multi-box topology on different computers.
If you choose the one-box option, most of the settings are pre-configured. For a multi-box topology, you will
have to manually configure connections between components.
In Commerce Scale Unit, users can perform cross-terminal scenarios across multiple POS devices, like
suspend/recall transactions and shift operations.
In Commerce Scale Unit, users cannot perform any real-time operations such as issuing gift cards, looking up
products, or performing credit card transactions, unless there is internet connectivity to HQ or a payment
provider. If most of your transactions involve real time transactions, then you will always need internet
connectivity to enable the connection to HQ or payment provider.
Direct database connectivity from POS to the channel database is not supported in the Commerce Scale Unit.
The POS devices will always use the Commerce Scale Unit for performing operations.
NOTE
It is critical to note that a Commerce Scale Unit does not replace offline. Currently, Retail Modern POS with an offline
database is the only true way to have offline capabilities.

Get started with Store Scale Unit


To get started, review the following topic on configuring the Commerce Scale Unit, Configure and install
Commerce Scale Unit.

Additional resources
Configure and install Commerce Scale Unit
Configure and work with call center order holds
2/1/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the order hold features that Dynamics 365 Commerce has for call center orders.

Configuring call center order holds


To use the call center order hold features, you must first define hold codes. To create a set of user-defined hold
codes, based on your business requirements, go to Sales and marketing > Setup > Sales orders > Order
hold codes . You can optionally flag one of the hold codes as the default hold code by setting the Default for
sales order option to Yes for it. This hold code will be used any time that a sales order is put on hold. If a sales
order has reserved inventory, and the reservations must be automatically removed if the order is put on hold for a
particular reason, set the Remove inventor y reser vations option to Yes for the reason codes.
To specify the type of note that will be captured when users who put a sales order on hold enter optional notes, go
to Accounts receivable > Setup > Accounts receivable parameters , and then, on the Sales setup FastTab,
on the General tab, set the Note type field. Use the On Hold sales order status field to define the color that
will be used to highlight sales orders that are on hold when they are viewed on the Customer ser vice page.
To create an optional set of hold reason codes, go to Retail and Commerce > Channel setup > Info codes .
These info codes can be used as a secondary reason code to further define the main hold code. Select New to
create a reason code set, and then select Subcodes to define the list of additional reasons. To link any info codes
that you define to the call center channel, go to Retail and Commerce > Channels > Call centers > All call
centers . On the General FastTab, set the Hold code field.

Putting orders on hold


Orders that call center users create in the back-office Commerce program can be manually put on hold manually or
automatically in specific situations.
During order entry, but before order submission and confirmation, call center users might want to manually put an
order on hold to prevent it from being released to the warehouse for further processing. For example, the
customer who is placing the order might not be ready to commit to it, or critical data that is required in order to
process the order might be missing.
On the order entry page, the call center user can put an order on hold by using the Order holds option on the
Sales order tab of the order entry menu. Alternatively, the user can select the Hold menu item on the Sales
order summar y page that appears when he or she selects Complete on a call center sales order.
In both cases, the Order holds page appears. The user can then select New to create a hold for the order. In the
Hold code field, the user should select the code that best describes the reason for the hold. In the Reason code
field, the user can optionally select an additional code to provide a second level of description of the hold.
On the Notes FastTab, in the Hold Notes field, the user can enter additional, free-form notes to provide additional
context or information about the hold. These notes can help other users who review or work with the hold order
later.
After the hold information is entered and saved, the user can close the Order holds page. The user is then
returned to the sales order entry page. If no further actions are required on the sales order, the user can close the
sales order entry page.
If the Enable order completion flag is turned on in the call center channel, payment doesn't have to applied to an
order that is put on hold. By contrast, for a sales order that isn't put on hold, users can't leave the sales order entry
page until payment is applied. Of course, payment will be required before the order hold is released.
Additionally, call center users can put a manual fraud hold on orders that are suspicious for some reason. Orders
can also be put on hold automatically when they match active fraud criteria and rules. For more information on
about this type of order hold, see Set up fraud alerts.

Viewing and managing orders that are on hold


Viewing hold information for a single sales order
On the Customer ser vice page, users can visually identify orders that are on hold, because the order lines are
highlighted in a specific color. This color is defined by the On Hold sales order status field on the Accounts
receivable parameters page.

NOTE
If the line is selected on the page, the highlight color isn't visible.

Users can also view detailed status information for a sales order to learn whether the order is on hold. The detailed
status information can be accessed from the All sales orders or Customer ser vice page. If an order is on hold,
the Do not process flag is set for it, and the Detailed status field shows a status of either On Hold or Fraud
Hold , depending on the scenario.
To view the details of an individual order hold, users can open a detailed view of the Order hold page from the
Customer ser vice page, by using the Options menu for the selected order. Users can also access this view from
the All sales order page, by selecting the Order holds menu item on the Sales order tab.
Viewing all orders that are on hold
To view all orders that have been put on manual or automatic hold, go to Retail and Commerce > Customers >
Order holds .
The Order holds workbench provides a list view of all orders that are on hold because of manual or fraud-related
hold actions. By taking advantage of the standard filtering and sorting options on the page, users can create views
that let them work with or manage specific hold codes that they are responsible for reviewing. The Order holds
workbench also indicates the number of days that an order has been on hold. This information can help users
prioritize the queue.
To get a more detailed view of the orders that are on hold, users can click the Order hold option on the menu. This
view providing information about the customer, any notes that have been applied to the order, customer, or hold
action. The view also provides details about the reason for an automatic hold, if the order was put on hold because
it matched a fraud rule.
From both the list view and the detailed view of the Order holds page, users can view or edit additional order-
related information, such as payments, totals, and notes.
The options on the Hold checkout tab might be useful if multiple users in your company work on the hold queue
at the same time. By selecting the Check out option, users can indicate that they are working to review and
investigate the order hold. In this way, other users don't waste time by trying to do the same work. From the
detailed view of the Order holds page, users can view information about the checkout date and time, and the user
who checked out the hold record.
After a hold record is checked out, only the user who checked it out can clear the checkout. This restriction is
intended to prevent users from taking records that other users are already working on. To release an order back to
the queue so that other users can work on it, the user who checked out the record selects the Clear checkout
option.

NOTE
The hold isn't released when the checkout is cleared.

In some situations, such as when a user is out sick or has left the company, records that are checked out to that
user might have to be reassigned to another user. A manager can reassign records by using the Override
checkout option.

Releasing orders that are on hold


In both the list view and the detailed view of the Order holds page, the Clear hold tab contains the options that
are used to release an order hold. Use the Clear holds option to release an order from the selected hold code.
Call center orders require payment. Therefore, a hold can't be fully cleared if payment hasn't been applied to the
order. On the Call center parameters page, on the Holds tab, make sure that the Submit when cleared
parameter is turned on. This setting helps guarantee that a cleared hold order goes through the correct order
submission logic to validate and authorize payments. If payments are missing, the user receives an error, and the
hold code isn't cleared.
If the Submit when cleared parameter hasn't been set, users should select the Clear and submit option on the
Clear hold menu to help guarantee that the order goes through all the required payment validations. If order
submission fails when the Enable order completion flag is turned on in the call center channel, the order is
released from its hold status, but the Do not process flag remains set. Therefore, the order isn't released to the
warehouse until correct payments have been applied and validated.
If users want to clear a hold but make additional changes to the order before it's released for further processing,
they can select the Clear and modify option. This option removes the hold code and opens the sales order details
so that users can make additional changes to the order. Users can also apply payment and submit the sales order
through payment validation logic when the Enable order completion flag is turned on in the call center channel.

Reporting options
Go to Retail and Commerce > Inquiries and repor ts > Call center repor ts > Order holds repor t to run a
report about order holds by date range, hold code, or other related criteria.
Payment methods
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Each payment type that a retailer accepts must be configured when the system is set up. This article describes the
payment types that you can set up and describes the process for setting them up.
Retailers can accept various types of payment in exchange for the products and services that they sell. Although
cash is the most common form of payment, retailers can also receive payment in the form of checks, cards,
vouchers, and so on. Each payment type that the retailer accepts must be configured in Dynamics 365 Commerce
when the system is set up. The following list describes each payment type that can be set up:
Cash – Money in the physical form of currency, such as banknotes and coins. This currency can be either the
company currency or the store's local currency.
Check – A negotiable instrument that instructs payment of a specific amount of a specific currency, and that is
drawn on a specific bank. A check is typically valid either indefinitely or for six months after the date of issue,
unless another period of validity is specified. This period varies, depending on the bank that the check is drawn
on. There are various kinds of checks, such as order checks, counter checks, bearer checks, and account payee
checks. You can set up checks as a payment method for each store. Checks can be accepted in the currency that
is defined at either the company level or the store level. You must set up checks as a payment method before
you can accept a check as payment in a store.
Currency – The primary form of payment other than the company's default currency. Coins and paper money
are both forms of currency. The currency payment method represents all currency that is used. Before you can
use this payment method, you must set up currencies and specify exchange information for the currencies.
Card – All the kinds of cards that are used, such as debit cards and credit cards. It's a good idea to set up one
card payment method at the organization level, to represent every kind of card. Then, at the store level, set up a
payment method for each card or set of cards that is processed by using the same settings. You must set up the
manufacturer cards that are available in the market, such as debit cards and credit cards, before you can accept
the cards as payment in a store.
Credit memo – Credit memos that are issued or redeemed at the point of sale. The credit memo can be a credit
or a return credit memo that is issued against a return sale. If credit memos are only partially redeemed, the
program issues a new credit memo for the new balance. The new credit memo has a new number. A credit
memo can be used only one time, and the system keeps a record of all the numbers that are used. The record
can be viewed on the Credit memo table page. A customer can't redeem more than the value of the credit
memo.
Gift Card – Gift cards that are issued and redeemed at the point of sale. Overpayment isn't allowed on gift
cards.
Customer account – Payments that can be charged to a customer account at the register at the time of the
sale. You can also use this payment method to collect sales information or customer-specific discounts when the
customer makes a payment by using another payment method. In this case, you must set up customer-specific
information.
Loyalty points – The points that customers accumulate through loyalty programs. If you create loyalty
programs, customers can earn points and then redeem them in various ways. For example, in some loyalty
programs, customers can redeem loyalty points in the form of a discount or even use them as a form of
payment.
To set up payment methods, you must complete the following tasks.
1. Set up payment methods for an organization. Create the payment methods that are accepted by the whole
organization.
2. Create organization-wide card types and card numbers. If credit cards or debit cards are accepted, you must
create one payment method for cards, and then create the organization-wide card types and card numbers.
3. Set up store payment method. Associate payment methods with each store, and then enter the store-specific
settings for each payment method.
4. Set up card payment methods for stores. For any card payment methods that the store accepts, complete the
card setup.
Payment methods in call centers
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In Dynamics 365 Commerce, the configuration of the call center channel includes a setting that is named Enable
order completion . This setting helps guarantee that all orders that users of the channel create are released to
order processing only if they have a prepaid or pre-authorized payment that is within approved tolerances. If the
Enable order completion setting is turned on, call center users can enter payments against sales orders for
customers by using the payment processing features of Call center. If the setting is turned off, call center users can't
use the Call center payment processing features, but they can still apply prepayments to sales orders by using
standard Accounts receivable functionality.
As part of the channel configuration, a company can define the methods of payment that are allowed for a call
center channel. The call center channel uses the same payment methods that are defined for the store channels.
To configure the payment methods for a call center channel, go to Retail and Commerce > Channels > Call
centers > All call centers , and then, on the Set up menu, select the Payment methods option.
When you create a payment method, there are five payment method functions that you can assign.

F UN C T IO N DESC RIP T IO N

Normal Use the Normal function on your payment method when


you define payment methods such as cash or vouchers. When
these types of payments are applied to a sales order in the call
center, the Prepay flag will default to Yes . This will
immediately post a prepayment voucher to the customer
account when this order is submitted. Users may change the
Prepay flag to No if desired so that the payment voucher is
not created until invoice posting. The prepayment voucher is
posted in the customer transaction history, where it will be
systematically settled against the invoice for the sales order.

Check Use the Check function when you define a bank check
instrument as a form of payment. When this type of payment
is applied to a sales order, the user must enter the customer's
check number as part of the payment application processing.
Check payments are always treated as prepayments when
they are applied and payment vouchers are created
immediately upon order submission. These prepayment
vouchers will be systematically settled against the invoices
that are created for the order.
F UN C T IO N DESC RIP T IO N

Cards Card payment types represent any type of payment that


requires entry of a card number that has been defined on the
customer's payment card. Examples include credit cards and
gift cards. When you configure these types of payments, you
must use the Card setup menu to define the card IDs that
are associated with this payment method. At the time of order
entry, users can indicate whether the card payment will be
prepaid, by using the Prepay option that appears on the
payment entry page. Unless the business requires
prepayments, the typical flow of a true credit card payment is
a two-step process, where authorization is obtained at the
time of order entry, and then payment is settled and collected
from the customer's card at the time of invoicing. For gift card
payments, prepayment is recommended, because the gift card
balance should be reduced immediately so that the customer
can't apply that same value somewhere else.

Customer The Customer function on a payment method implies that


the payment will be applied to the customer's credit limit or
put "on account." In Commerce, a customer can be assigned a
credit limit that can be validated at the time of order entry.
Payments that are made by using a payment method that is
linked to the Customer function create a liability against the
customer's account. Then, when the sales order is invoiced, a
balance due is shown. In these situations, customers typically
send a payment, according to terms that have been given.
Alternatively, a previous open credit voucher on the
customer's account can be applied to settle the balance that is
due. Note that even if you define this payment method, it
doesn't appear among the payment selection options in call
center order entry unless the Allow on account flag is set
on the customer record for the customer that you're working
with. This flag is found on the Payment Defaults tab of the
customer record.

Tender Remove/Float The Tender Remove/Float function isn't used by the call
center. It's applicable only when you define the methods of
payment that the point of sale (POS) application uses in a
store channel.

As methods of payment are defined, they should be linked to a ledger or bank account. If you omit this step, users
will receive errors when they try to save the payment type.

Refund payment methods


For refund processing scenarios, Call center also uses some of the payment methods that are defined in Accounts
receivable. To configure these payment methods, go to Retail and Commerce > Channel setup > Call center
setup > Call center refund methods . You must complete this configuration to process refund checks to
customers. For example, if a customer originally paid for an order by using cash or a check, the user might want to
send the customer a refund check through Accounts receivable. In this case, the cash and check payment types in
the call center must be mapped to the correct payment method in Accounts receivable to help guarantee that the
refund is correctly processed.
Additionally, if a user is processing a return order as a call center user in Commerce, but he or she can't link the
return to an original sale, the Return payment method must be defined in the Call center parameters. Go to Retail
and Commerce > Channel setup > Call center setup > Call center parameters , and then, on the
RMA/Return tab, in the Payment method field, make sure that a payment method is defined. The payment
method will be the payment method that is used for refunds. Typically, it will be defined as either a check method
or a customer account method.
Credit card setup, authorization, and capture
10/9/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article provides an overview of credit card authorization in Microsoft Dynamics 365 Finance. It includes
information about how to set up a payment service, add a credit card to a sales order, and void an authorization.

Setting up the credit card payment service


To use credit cards, you must set up and activate a payment service on the Payment services page. A payment
service acts as a bridge between your legal entity and the bank that processes a customer's credit card charges. You
must work with a credit card provider that is listed in the Payment connector field and set up an account with that
provider. You must then set up the other options on the Payment services page, set up credit card types for
American Express, Discover, MasterCard, and Discover on the Credit card types page, and activate the provider as
the default provider. You must also follow these steps to complete your setup:
On the Accounts receivable parameters page, specify parameters for using credit card authorizations.
On the Terms of payment page, set up payment terms for credit cards. In the Payment type field, select Credit
card.
On the Customer credit cards page, enter credit card information for customers.

Adding a new credit card


You can create new credit card records on the Customers page by using Customer, Set up, Credit card. You can also
create credit card records when you enter sales orders on the Sales order page, by using Manage, Customer, Credit
card, Register.

Adding a credit card to a sales order


You can add a credit card to a sales order by selecting a credit card in the credit card lookup on the Price and
discounts FastTab on the Sales order page. To start the authorization process, on the Action Pane, on the Manage
tab, select Credit card and Authorize.

Authorizing a credit card


When a credit card is authorized, the card number and cardholder's name are verified, and the available credit
balance is confirmed. Optionally, the card verification value and the cardholder’s address are verified. The
customer's available credit balance is then reduced by the amount of the invoice. The payment service sends
information that the credit card has been approved or declined. When the sales order is invoiced, the credit card is
charged (captured) for the invoice amount.
Card verification value
You can require the card verification value, which is sometimes referred to as the card's security code. For American
Express, this is a four-digit value. For Discover, MasterCard, and Visa, it is a three-digit value.
Address verification
Address verification information is always sent to the payment provider. You can decide how much information is
required for a transaction to be accepted. Be sure to check with your provider to determine whether it accepts this
information. Here are the options for address verification:
Always accept transaction – Accept the transaction, regardless of address verification results.
Account holder – Compare the cardholder's name from the transaction with the credit card company’s
information.
Billing address – Compare the cardholder's name and billing address from the transaction with the credit card
company’s information.
Billing postal code – Compare the cardholder's name, billing address, and postal code from the transaction
with the credit card company’s information.

Data support
For each credit card type that is supported, you can specify the level of data support. The level controls how much
information about a transaction is transferred to the payment service. Be sure to check with your provider to
determine whether it can provide this information. Here are the options for the level of data support:
Level 1 – Transfer the transaction date, transaction amount, and description.
Level 2 – Transfer all Level 1 information, plus the shipping and merchant addresses, and tax information.
Level 3 – Transfer all Level 2 information, plus order line information.

Partial payments
If you ship part of an order, the amount of the partial order is captured, and the authorization, which was for the
amount of the whole order, is closed. A new authorization is then submitted for the remaining amount of the order
that hasn't been shipped.

Voiding an authorization
To void a credit card authorization, you can change the method of payment to another method that doesn't have a
type of Credit card.
Configure cash denominations for the point of sale
(POS)
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Cash denominations for notes and coins can be defined in the back office to be used by cashiers, sales associates,
and managers at the store from within the POS. These denominations can be used to aid in counting cash for end
of day tender declarations or for quickly tendering a sale.

Define denominations
The denominations are set up per store on the Set up > Cash declaration option from the store property page.

To define a denomination:
1. Click New .
2. Specify the type (coin or note).
3. Specify the amount (value).
Configure the functionality profile
When paying by cash in POS, the user can use the note denominations to quickly enter the amount paid by the
customer. In the functionality profile, you can configure the two options for showing the denomination in POS.
Greater or equal to amount due – By default, POS will only show the note denominations that are greater
than the amount due, which allows for one-touch tendering. For example, if the amount due is $7.50, POS would
show the following denominations: $10, $20, $50, and $100. Touching any of these amounts will automatically
tender the sale for that amount. The $1 and $5 notes are not shown since these amounts are less than the
amount due.
All denominations – Select this option to always show all note denominations in POS, regardless of the
amount due. This means that the user can use a combination of notes to reach the amount due. For example, if
the amount due is $25.00, the user can choose $20 and $5 to complete the sale.
Configure credit card processing
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through how to view the list of payment providers and how to configure a payment account
for accounts receivable. This procedure uses the USRT company in demo data and is intended for Administrators
and IT Professionals.

View a list of payment providers


1. Go to Accounts receivable > Payments setup > Payment services.
2. Click View available providers.

Configure payment account


1. Click New.
2. In the Payment service field, type a value.
3. In the Payment connector field, select an option.
4. Toggle the expansion of the Payment service account section.
5. In the Environment: field, type 'PROD'.
6. Click Credit card types.
7. In the Payment journal field, click the drop-down button to open the lookup.
8. In the list, click the link in the selected row.
9. Click Add.
10. In the Currency field, type a value.
11. In the list, find and select the desired record.
12. In the Payment journal field, click the drop-down button to open the lookup.
13. In the list, click the link in the selected row.
14. Click Add.
15. In the Currency field, type a value.
16. In the list, find and select the desired record.
You can repeat these steps for as many card types as you need.
17. In the Payment journal field, click the drop-down button to open the lookup.
18. In the list, click the link in the selected row.
19. Click Add.
20. In the Currency field, type a value.
21. Click Save.
22. Close the page.
23. Click Validate.
24. Click the Default processor for new credit cards checkbox.
25. Click Save.
Dynamics 365 Payment Connector for Adyen
4/15/2020 • 20 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the Microsoft Dynamics 365 Payment Connector for Adyen. It includes a
comprehensive list of supported features and functionality, a guide to setting up and configuring the connector,
troubleshooting information, and descriptions of some common issues.

Key terms
T ERM DESC RIP T IO N

Payment connector An extension that facilitates communication between


Microsoft Dynamics 365 Commerce (and associated
components) and a payment service. The connector that is
described in this topic was implemented by using the standard
payments software development kit (SDK).

Card present Refers to payment transactions where a physical card is


presented and used on a payment terminal connector to the
Dynamics 365 Point of Sale.

Card not present Refers to payment transactions where a physical card is not
present, such as e-Commerce or Call Center scenarios. In
these scenarios the payment related information is entered
manually either on an e-Commerce website, a Call Center flow,
or on the point-of-sale or payment terminal.

Overview
This topic includes the following main sections to help you evaluate and set up the Dynamics 365 Payment
Connector for Adyen.
Supported features, functionality, versions, and terminals – This section describes the set of features and
functionalities that the Dynamics 365 Payment Connector for Adyen supports.
Sign up with Adyen – This section explains how to sign up for a merchant account with Adyen.
Setup and configuration – This section explains, in detail, how to set up and configure the Dynamics 365
Payment Connector for Adyen across the point of sale (POS), call center, and e-Commerce channels.

Supported features, functionality, versions, and terminals


The out-of-box Dynamics 365 Payment Connector for Adyen uses the standard payments SDK. Therefore, it doesn't
have special capabilities that aren't also available to other payment connectors.
Supported versions
Microsoft Dynamics 365 supported versions
The first-party out-of-box Dynamics 365 Payment Connector for Adyen is supported in Microsoft Dynamics 365 for
Finance and Operations version 8.1.3 (January 2019) or later, and in Microsoft Dynamics 365 Retail version 8.1.3 or
later. However, third parties can still develop other payment connectors for Adyen for earlier versions of Microsoft
Dynamics 365.
Supported Adyen Firmware versions
The list below describes the minimum and maximum Adyen firmware versions that are supported for each version
of the Microsoft Dynamics 365 Retail POS.

8.1.3
10.0.4
10.0.5
10.0.6
10.0.7
10.0.8
10.0.9
10.0.10
Dynamics 365 Retail POS version 8.1.3
M IN IM UM A DY EN F IRM WA RE VERSIO N M A XIM UM A DY EN F IRM WA RE VERSIO N

adyen_v1_35p15 adyen_v1_35p15

Supported payment terminals


The Dynamics 365 Payment Connector for Adyen takes advantage of the device-agnostic Adyen Payment Terminal
API. It supports all payment terminals that this application programming interface (API) supports. For a complete
list of supported payment terminals, visit the Adyen POS terminals page.
Supported payment instruments
Supported debit and credit cards

B RA N D VA RIA N T C A RD P RESEN T E- C O M M ERC E C A L L C EN T ER

MasterCard Credit ✔ ✔ ✔

MasterCard Debit ✔ ✔ ✔

MasterCard Alpha Bank Bonus ✔ ✔ ✔

MasterCard Apple Pay ✔

MasterCard Samsung Pay ✔

MasterCard Maestro ✔ ✔ ✔

MasterCard Maestro Samsung Pay ✔

MasterCard Maestro UK ✔ ✔ ✔

VISA Credit ✔ ✔ ✔

VISA Debit ✔ ✔ ✔
B RA N D VA RIA N T C A RD P RESEN T E- C O M M ERC E C A L L C EN T ER

VISA Alpha Bank Bonus ✔ ✔ ✔

VISA Android Pay ✔

VISA Apple Pay ✔

VISA Samsung Pay ✔

VISA VISA Checkout ✔ ✔ ✔

VISA VISA Dankort ✔ ✔ ✔

VISA VISA Hipotecario ✔ ✔ ✔

VISA VISA Aravia Card ✔ ✔ ✔

AMEX Credit ✔ ✔ ✔

AMEX Debit ✔ ✔ ✔

AMEX Android Pay ✔

AMEX Apple Pay ✔

AMEX Samsung Pay ✔

AMEX AMEX Commercial ✔ ✔ ✔

AMEX AMEX Consumer ✔ ✔ ✔

AMEX AMEX Corporate ✔ ✔ ✔

AMEX AMEX Small Business ✔ ✔ ✔

Discover Standard ✔ ✔ ✔

Discover Android Pay ✔

Discover Apple Pay ✔

Discover Samsung Pay ✔

Diners Standard ✔ ✔ ✔

Dineromail Standard ✔ ✔ ✔

JCB Standard ✔ ✔ ✔

Union Pay* Standard ✔


B RA N D VA RIA N T C A RD P RESEN T E- C O M M ERC E C A L L C EN T ER

Interac Debit* Standard ✔

*Interac and Union Pay recurring card tokens are not provided by Adyen, so they are cannot be supported for card
not present transactions.
Supported gift cards

SC H EM E C A RD P RESEN T C A RD N OT P RESEN T

Givex ✔ Support will be added in a future


release.

SVS ✔ Support will be added in a future


release.

To support these external gift card schemes through the Dynamics 365 Payment Connector for Adyen, you must
complete additional steps. For more information, see Support for external gift cards.
Supported wallets

SC H EM E C A RD P RESEN T C A RD N OT P RESEN T

Alipay Support will be added in a future No


release.

WeChat Support will be added in a future No


release.

Supported card present input methods

IN P UT M ET H O D SUP P O RT ED N OT ES

Dip ✔

Swipe ✔

Tap ✔

Manual Entry through POS UI. ✔ Does not support pin entry.

Manual Entry through Payment Supports pin entry.


Terminal.

Supported card present countries


The following countries have Dynamics 365 Commerce components available as well as card present support from
Adyen.

C O UN T RY SUP P O RT ED

Australia ✔

Austria ✔

Belgium ✔
C O UN T RY SUP P O RT ED

Canada ✔

Croatia ✔

Cyprus ✔

Czech Republic ✔

Denmark ✔

Estonia ✔

Finland ✔

France ✔

Germany ✔

Greece ✔

Hungary ✔

Hong Kong ✔

Iceland ✔

Ireland ✔

Italy ✔

Latvia ✔

Lithuania ✔

Netherlands ✔

Norway ✔

Poland ✔

Portugal ✔

Singapore ✔

Slovakia ✔

Slovenia ✔

Switzerland ✔
C O UN T RY SUP P O RT ED

Spain ✔

Sweden ✔

Switzerland ✔

United Kingdom ✔

United States ✔

Brazil Future release

Supported Dynamics 365 payment features


The following table shows the set of features that the Dynamics 365 Payment Connector for Adyen supports. These
features use enhancements that were introduced in the payments SDK and some components in December 2018.
They aren't exclusive to the Dynamics 365 Payment Connector for Adyen. For more information about how to
uptake these enhancements for a different payment connector, see Create an end-to-end payment integration for a
payment terminal.

SC H EM E C A RD P RESEN T C A RD N OT P RESEN T

Cash Out Gift Card Balance ✔

Duplicate Payment Protection ✔

Omni Channel Tokenization ✔ ✔

Linked Refunds ✔ ✔
(Starting with 10.0.1) (Starting with 10.0.1)

Save online payments ✔


(Starting with 10.0.2)

Sign up with Adyen


To use the Dynamics 365 Payment Connector for Adyen, you must have a separate agreement with Adyen. To learn
more about Adyen's services, or to create a test merchant account, visit the Adyen website.

Setup and configuration


NOTE
These instructions assume that you've already signed up for a merchant account with Adyen, and that you have access to
the Adyen merchant dashboard.

Prerequisites
The following prerequisites must be completed before payments can be configured in any channel.
Set up a processor for new credit cards
To process payments across point of sale (POS) terminals, a call center, or e-Commerce, you must configure a new
default payment processor for new credit cards. Follow these steps to configure a default payment processor.
1. Sign in to Headquarters, and go to Accounts receivable > Payments setup > Payment ser vices .
2. On the Action Pane, select New , and then, on the Setup tab, enter the following information.

F IEL D DESC RIP T IO N SA M P L E VA L UE

Payment service Enter the name of the payment Adyen Payment Service
service to configure.

Payment connector Select the payment connector to use Dynamics 365 Payment Connector
for new credit card payments. for Adyen

Test mode For the Adyen connector, in false


production and test environments
you should set this field to false .

Default processor for credit cards Specify whether this payment Yes
processor should be the default
processor that's used for new credit
cards.

Bypass payment processor for zero Specify whether this payment Yes
transactions processor should be skipped for
transactions that have a 0 (zero)
amount.

3. On the Payment ser vice account tab, enter the following information.

A UTO M AT IC A L LY
F IEL D DESC RIP T IO N REQ UIRED SET SA M P L E VA L UE

Assembly Name Auto populated Yes Yes Binary name


name of the
assembly for the
Dynamics 365
Payment Connector
for Adyen.

Service account ID Auto populated Yes Yes Guid


unique identifier for
the setup of the
merchant
properties. This
identifier is stamped
on payment
transactions and
identifies the
merchant properties
that downstream
processes (such as
invoicing) should
use.

Version Enter the version of Yes Yes V001


the Dynamics 365
Payment Connector
for Adyen to use.
Currently, only
version V001 is
supported.
A UTO M AT IC A L LY
F IEL D DESC RIP T IO N REQ UIRED SET SA M P L E VA L UE

Gateway Enter the Adyen Yes Yes Live


environment gateway
environment to map
to. The possible
values are Test and
Live . You should set
this field to Live
only for production
devices and
transactions.

Optional Domain The optional domain Live only No Contact Adyen


is required for Live
environments and
should be obtained
by contacting
Adyen.

Merchant account Enter the unique Yes No MerchantIdenfier


ID Adyen merchant
identifier. This value
is provided when
you sign up with
Adyen as described
in the Sign up with
Adyen section.

Terminal architecture This field must be Yes Yes Cloud


set to Cloud for the
Payment service
account
.

Local Password This field is used No Yes Leave this field


phrase only for the POS blank.
payment terminal
integration and
should be left blank.

Local Key Identifier This field is used No Yes Leave this field
only for the POS blank.
payment terminal
integration and
should be left blank.

Local Key Version This field is used No Yes Leave this field
only for the POS blank.
payment terminal
integration and
should be left blank.
A UTO M AT IC A L LY
F IEL D DESC RIP T IO N REQ UIRED SET SA M P L E VA L UE

Local Cryptor Enter the Adyen Yes Yes 1


Version cryptor version to
use when you
interact with the
Adyen gateway. You
should set this field
to 1 .

Cloud API Key Enter the Adyen Yes No abcdefg


cloud API key. You
can obtain this key
by following the
instructions on the
How to get the API
key page on the
Adyen website.

Supported Enter the currencies Yes Yes USD;EUR


Currencies that the connector
should process.
Note that, in card-
present scenarios,
Adyen can support
additional currencies
through Dynamic
Currency
Conversion after the
transaction request
is sent to the
payment terminal.
Contact Adyen
support to get a list
of supported
currencies.

Supported Tender Enter the tender Yes Yes Visa;MasterCard;Am


Types types that the ex;Discover;Debit
connector should
process.

Gift card provider Enter the gift card No No SVS


provider that the
connector should
use to process gift
cards.

Terminal gift card POS Only Allows the Yes Yes True/False
entry customer to select
between Manual or
Swipe .

Allow saving e-Commerce only Yes Yes True/False


payment Gives signed-in
information in e- users the option to
commerce save payment
details for future
online purchases.
POS payment terminal
Onboard and configure an Adyen payment terminal

NOTE
These instructions assume that you have access to an Adyen payment terminal.

Go to the Point of sale page on the Adyen website, and follow the instructions to onboard your Adyen payment
terminal. Skip any steps that instruct you to download Adyen-specific apps. During the onboarding process, make a
note of the following information for each payment terminal. You will need this information in the Configure the
payment terminal IP address and EFT POS register number section later in this topic.
IP address of the payment terminal
POIID (POIID is comprised of the serial number and model number of the device. It is used to uniquely identify
the device.)
After the payment terminal is onboarded, sign in to the Adyen Customer Area, go to the terminal that you want to
configure, and make a note of the following information for each payment terminal. You will need this information
in the EFT service section later in this topic.
Key identifier
Key passphrase
Key version
Set up a Dynamics 365 POS hardware profile
1. Sign in to Headquarters, and go to Retail and Commerce > Channel setup > POS setup > POS profiles
> Hardware profiles .
2. Select the hardware profile to add the Dynamics 365 Payment Connector for Adyen for.
3. Follow the steps in the EFT service and PIN pad sections that follow.
E F T se r v i c e

1. On the EFT ser vice FastTab, in the EFT Ser vice field, select Payment Connector .
2. On the Connectors tab, select New , and then, in the Connector field, select Dynamics 365 Payment
Connector for Adyen . Make sure that the value in the Sequence number field is lower than the value for
all other connectors.
3. In the Connector proper ties section, enter the following information.

A UTO M AT IC A L LY
F IEL D DESC RIP T IO N REQ UIRED SET SA M P L E VA L UE

Assembly Name Auto populated Yes Yes Binary name


name of the
assembly for the
Dynamics 365
Payment Connector
for Adyen.
A UTO M AT IC A L LY
F IEL D DESC RIP T IO N REQ UIRED SET SA M P L E VA L UE

Service account ID Auto populated Yes Yes Guid


unique identifier for
the setup of the
merchant
properties. This
identifier is stamped
on payment
transactions and
identifies the
merchant properties
that downstream
processes (such as
invoicing) should
use.

Version Enter the version of Yes Yes V001


the Dynamics 365
Payment Connector
for Adyen to use.
Currently, only
version V001 is
supported.

Gateway Enter the Adyen Yes Yes Live


environment gateway
environment to map
to. The possible
values are Test and
Live . You should set
this field to Live
only for production
devices and
transactions.

Optional Domain The optional domain Live only No Contact Adyen


is required for Live
environments and
should be obtained
by contacting
Adyen.

Merchant account Enter the unique Yes No MerchantIdenfier


ID Adyen merchant
identifier. This value
is provided when
you sign up with
Adyen as described
in the Sign up with
Adyen section.
A UTO M AT IC A L LY
F IEL D DESC RIP T IO N REQ UIRED SET SA M P L E VA L UE

Terminal architecture This must be set to Yes Yes Local


Local for POS
terminals. For more
information about
the different
Terminal API
architectures, see
the Introducing the
Terminal API page
on the Adyen
website.

Local Password Enter the Adyen key Yes No keypassphrase123


phrase passphrase for the
payment terminal.
This value is
provided when you
sign up with Adyen
as described in the
Sign up with Adyen
section.

Local Key Identifier Enter the Adyen key Yes No mykey


identifier for the
payment terminal.
This value is
provided when you
sign up with Adyen
as described in the
Sign up with Adyen
section.

Local Key Version Enter the Adyen key Yes No 0


version for the
payment terminal.
This value is
provided when you
sign up with Adyen
as described in the
Sign up with Adyen
section.

Local Cryptor Enter the Adyen Yes Yes 1


Version cryptor version to
use when you
interact with the
Adyen gateway. You
should set this field
to 1 .

Cloud API Key Enter the Adyen Yes No abcdefg


cloud API key. You
can obtain this key
by following the
instructions on the
How to get the API
key page on the
Adyen website.
A UTO M AT IC A L LY
F IEL D DESC RIP T IO N REQ UIRED SET SA M P L E VA L UE

Supported Enter the currencies Yes Yes USD;EUR


Currencies that the connector
should process.
Note that, in card-
present scenarios,
Adyen can support
additional currencies
through Dynamic
Currency
Conversion after the
transaction request
is sent to the
payment terminal.
Contact Adyen
support to get a list
of supported
currencies.

Supported Tender Enter the tender Yes Yes Visa;MasterCard;Am


Types types that the ex;Discover;Debit
connector should
process. These
values are case
sensitive.

Gift card provider Enter the gift card No No SVS


provider that the
connector should
use to process gift
cards. The possible
values are SVS and
GIVEX .

Terminal gift card POS Only Allows the Yes Yes True/False
entry customer to select
between Manual or
Swipe .

Allow saving e-Commerce only Yes Yes True/False


payment Gives signed-in
information in e- users the option to
commerce save payment
details for future
online purchases.

4. On the Action Pane, select Save .


P IN pad

1. On the PIN pad FastTab, in the PIN pad field, select Network .
2. In the Device name field, enter MicrosoftAdyenDeviceV001 .
Set up a Dynamics 365 register
NOTE
These instructions assume that there is a dedicated mapping between a POS register and an Adyen payment terminal. For a
hardware station that is based on Microsoft Internet Information Services (IIS), go to Retail and Commerce > Channels
> Stores > All stores , and select the store that you're setting up. Then, on the page for that store, on the Hardware
Stations FastTab, follow the same instructions.

Payment terminals may not be used by multiple hardware stations. If a payment terminal must be shared by
multiple POS devices, an IIS hardware station must be deployed to manage communications with the payment
terminal.
C o n fi g u r e t h e p a y m e n t t e r m i n a l I P a d d r e ss a n d E F T P O S r e g i st e r n u m b e r

1. Sign in to Headquarters, and go to Retail and Commerce > Channel setup > POS setup > Registers .
2. Select the register to link to the Adyen payment terminal.
3. On the POS Registers page, on the General FastTab, in the EFT section, in the EFT POS register number
field, enter a unique number. The register number must be exactly four digits long, and it must be unique across
all POS registers that are under the same Adyen merchant account ID.
4. In the Profiles section, in the Hardware profile field, select the hardware profile that you configured earlier.
5. Save your changes.
6. On the Action Pane, on the Register tab, in the Hardware group, select Configure IP addresses .
7. On the IP address configuration page, on the PIN pad FastTab, in the IP address field, enter the IP address
of the terminal in the following format: https://<IP address>:8443/nexo/<POIID> . Here, <IP address> and
<POIID> are the values that you made a note of when you onboarded the Adyen payment terminal. Here is an
example: https://192.168.1.3:8443/nexo/MX925-123456789 . Note, the values in this URL are case sensitive.
Update the Modern POS or IIS Hardware Station configuration
If you're packaging your own version of Modern POS by using the Retail SDK, you must follow these steps only one
time in the SDK code before the installer is packaged. Otherwise, you must follow these steps after the standard
Modern POS or IIS Hardware Station is installed.
1. Open the dllhost.exe.config file (for Modern POS) or the web.config file (for IIS Hardware Station).
2. Update the PreloadedComposition section as shown here, to switch from the legacy payment device
adapter to the standard payment device adapter.

<PreloadedComposition>
<composition>
<add source="assembly"
value="Microsoft.Dynamics.Commerce.HardwareStation.Peripherals.PaymentDeviceAdapter" />
<!-- Switch from legacy to standard Payment Device Adapter.
<add source="assembly"
value="Microsoft.Dynamics.Commerce.HardwareStation.Peripherals.Legacy.PaymentDeviceAdapter" />
-->
</composition>
</PreloadedComposition>

3. Update the appSettings variable "PrintReceiptsOnCardDeclineOrVoid" value to True to print decline


or void responses from the processor.
Call center
To configure the Dynamics 365 Payment Connector for Adyen for call center payments, follow the instructions in
the Set up a processor for new credit cards section earlier in this topic.
e -Commerce
1. Sign in to Headquarters, and go to Retail and Commerce > Channels > Online stores .
2. Select the online store to add the Dynamics 365 Payment Connector for Adyen.
3. On the Online store page, on the Payment accounts FastTab, select Add .
4. In the Connectors field, select Dynamics 365 Payment Connector for Adyen .
5. Enter the following additional information.

A UTO M AT IC A L LY
F IEL D DESC RIP T IO N REQ UIRED SET SA M P L E VA L UE

Assembly Name Auto populated Yes Yes Binary name


name of the
assembly for the
Dynamics 365
Payment Connector
for Adyen.

Service account ID Auto populated Yes Yes Guid


unique identifier for
the setup of the
merchant
properties. This
identifier is stamped
on payment
transactions and
identifies the
merchant properties
that downstream
processes (such as
invoicing) should
use.

Version Enter the version of Yes Yes V001


the Dynamics 365
Payment Connector
for Adyen to use.
Currently, only
version V001 is
supported.

Gateway Enter the Adyen Yes Yes Live


environment gateway
environment to map
to. The possible
values are Test and
Live .

Optional Domain Enter the domain to No No https://terminal-api-


use when payment live.adyen.com/sync
requests are made
to Adyen.

Merchant account Enter the unique Yes No MerchantIdenfier


ID Adyen merchant
identifier. This value
is provided when
you sign up with
Adyen as described
in the Sign up with
Adyen section.
A UTO M AT IC A L LY
F IEL D DESC RIP T IO N REQ UIRED SET SA M P L E VA L UE

Terminal architecture This field is used No Yes Leave this field


only for the POS blank.
payment terminal
integration and
should be left blank.

Local Password This field is used No Yes Leave this field


phrase only for the POS blank.
payment terminal
integration and
should be left blank.

Local Key Identifier This field is used No Yes Leave this field
only for the POS blank.
payment terminal
integration and
should be left blank.

Local Key Version This field is used No Yes Leave this field
only for the POS blank.
payment terminal
integration and
should be left blank.

Local Cryptor Enter the Adyen Yes No 1


Version cryptor version to
use when you
interact with the
Adyen gateway. You
should set this field
to 1 .

Cloud API Key Enter the Adyen Yes No The full cloud API
cloud API key. You key
can obtain this key
by following the
instructions on the
How to get the API
key page on the
Adyen website.

Supported Enter the currencies Yes Yes USD;EUR


Currencies that the connector
should process.

Supported Tender Enter the tender Yes Yes Visa;MasterCard;Am


Types types that the ex;Discover;Debit
connector should
process.

Gift card provider Enter the gift card No No SVS


provider that the
connector should
use to process gift
cards. The possible
values are SVS and
GIVEX .
A UTO M AT IC A L LY
F IEL D DESC RIP T IO N REQ UIRED SET SA M P L E VA L UE

Terminal gift card POS Only Allows the Yes Yes True/False
entry customer to select
between Manual or
Swipe .

Allow saving e-Commerce only Yes Yes True/False


payment Gives signed-in
information in e- users the option to
commerce save payment
details for future
online purchases.

6. On the Action Pane, select Save .

Frequently asked questions


Can I share a payment terminal with multiple hardware stations?
No. Payment terminals can only be used by a single hardware station or POS terminal. Attempting to connect
multiple hardware stations to a single payment terminal will result in locking issues. If a payment terminal must be
shared by multiple POS devices, an IIS hardware station must be deployed to manage the payment terminal.
Can I reuse my existing payment terminal with the Adyen connector?
No. Adyen payment terminals are injected with the Adyen software. Therefore, existing payment terminals that
aren't preconfigured with Adyen can't be reused with the Dynamics 365 Payment Connector for Adyen.
Do I need a static IP address for the Adyen payment terminal?
Yes. Modern POS requires a known IP address to communicate with the Adyen payment terminal. Although the IP
address of the Adyen payment terminal can be changed in the client, attempts to keep up with changing IP
addresses involve significant overhead and could cause business disruption.
Can I use my merchant bank?
Yes. Adyen can work with any merchant bank.

Troubleshooting
POS payment terminals
General issues
For all general issues, you should always consult the Modern POS or IIS Hardware Station event logs first. You can
find these logs found under the following nodes in the Microsoft Windows event log:
Application and Services Logs > Microsoft > Dynamics > Commerce-ModernPOS
Application and Services Logs > Microsoft > Dynamics > Commerce-Hardware Station
Failing payment transactions
When payment transactions aren't successfully processed through the Adyen payment terminal, the corresponding
error messages in the Dynamics 365 POS will contain a PSP reference number(PSP is the reference ID provided by
Adyen used to uniquely identify each transaction). Provide this reference number when you contact Adyen support
for help with specific transactions.

Common issues
POS payment terminals
The EFT terminal ID isn't set

Title EFT Terminal ID is not set

Symptom Payment authorization calls fail, and a hardware error occurs.


An error message in the event log indicates that the EFT
Terminal ID value isn't set.

Root cause This issue can occur when the EFT POS Register Number
field isn't set on the register or the IIS Hardware Station. It can
also occur if the value is set but isn't correctly synced to the
POS terminal. Finally, it can also occur when the value is
cached.

Fix Follow the instructions in the Set up a Dynamics 365 register


section earlier in this topic. Then run the 1070 and 1090
distribution schedules. If the issue isn't resolved, consider
reactivating Modern POS, because the value of the EFT POS
Register Number field might be cached and might need to
be reset.

The Modern POS or IIS Hardware Station configuration isn't updated

Title Config is not updated

Symptom Modern POS error: "Sign in Error. The initialization data


couldn't be loaded."

Root cause This issue can occur when the POS is redeployed but the
dllhost.config file hasn't been updated.

Fix Follow the instructions in the Update the Modern POS or IIS
Hardware Station configuration section earlier in this topic.
Then end the dllhost.exe task on the Details tab in Task
Manager, and reopen Modern POS. If you're using an IIS
Hardware Station, reset IIS.

Related articles
Payments FAQ
Saving online payment instruments with the Adyen
connector
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the setup and functionality that are related to saving payment instruments when you use the
Adyen "card not present" payment connector for the Dynmics e-Commerce platform.

Key terms
T ERM DESC RIP T IO N

Token A string of data that a payment processor provides as a


reference. Tokens can represent payment card numbers,
payment authorizations, and previous payment captures.
Tokens are important because they help keep sensitive data
out of the point of sale (POS) system.

Card token A token that a payment processor provides for storage in the
POS system. The card token, or card reference, can be used
only by the merchant who receives it

Authorization (Auth) token After a POS system makes an authorization request to a


payment processor, the payment processor provides a unique
ID to the POS system as part of the response to that request.
This authorization token, or authorization reference, can be
used later, when the processor is called to perform actions
such as reversing or voiding the authorization. However, an
authorization token is most often used to capture funds when
an order is fulfilled or when a transaction is being finalized.

List PI A frequently used generic name for the capability that is


described in this topic. List PI refers to the ability to save
payment instruments and to list previously used payment
instruments during future checkouts that are done through
the same e-commerce website.

Named user An e-commerce customer who is signed in to the online


storefront at the time of checkout. Named users have a
unique customer ID, and their online purchases are always
mapped to the same customer ID whenever they are signed in
to the online storefront.

Overview
When e-commerce orders are created, retailers often offer to save the customer's payment card information so that
it can be used for future transactions. This topic explains how that capability ("List PI") is delivered through the
Microsoft Dynamics 365 Payment Connector for Adyen. Although the Adyen payment connector supports this
capability out of the box, third-party payment connectors require customization. Additionally, not all payment
processors might support the same method of saving payment card information.
The out-of-box implementation of the List PI capability relies on the payment processor to keep a mapping of an
online customer's unique ID to the payment instruments that have previously been processed through that
payment connector. Only customers who are signed in to the website as named users have the option to save their
payment card information for their next online visit. Customers who use a "guest checkout" option when they
create an online order won't be able to save payment card information for future transactions.

Prerequisites
The List PI capability requires the following elements:
An e-commerce integration with Microsoft Dynamics 365 Commerce
A payment connector that is compatible with the List PI capability
A payment processor that maps unique customer IDs to the payment instruments that the customers want that
payment processor to save
For more information about how to implement payment connectors and the software development kit (SDK) in
general, visit the Commerce for IT pros and developers home page.

Setup
The List PI capability requires the following components and setup steps:
E-commerce integration – An online storefront integration with Commerce is required. For more
information about the e-Commerce SDK, see e-Commerce platform software development kit (SDK).
Online payments configuration – The Dynamics 365 Payment Connector for Adyen supports List PI out
of the box. For information about how to configure payments for online stores, see Dynamics 365 Payment
Connector for Adyen.
In addition to completing the ecommerce setup steps that are described in that topic, you must set the
Allow saving payment information in e-commerce option in the Payment accounts fasttab of the
Online store form to Yes .
Omni-channel payments configuration – In the back office, go to Retail and Commerce >
Headquar ters setup > Parameters > Commerce shared parameters . Then, on the Omni-channel
payments tab, set the Use omni-channel payments option to Yes .

Functional experience
Guest checkout
When e-commerce visitors choose to check out as guests, customer records aren't created during checkout, and the
customers can't save payment instruments for their next visit.
Named user checkout
When named users (signed-in customers) go to the payment step of the checkout process, they will experience the
List PI capability. The first time that a named user checks out, a Save for my next payment check box appears in
the section where credit card information is entered.
If this check box is selected, when a new credit card is submitted for payment, the named user's unique customer ID
is sent to the payment processor, and the credit card is securely saved and mapped to the that unique customer ID.
If the same customer signs in during future visits to the storefront, he or she will be able to select the same credit
card for payment at checkout.

Order fulfillment and processing


E-Commerce orders where the customer applied a tender line by using the List PI capability work in the same way
as orders that were created without using a saved card payment. From the standpoint of order processing and
fulfillment, the two types of payment are indistinguishable.

Details of eCommerce payment card tokenization


Standard flow
In e-Commerce integrations, the payment card is typically entered as part of the checkout process and is saved
together with the order before finalization. The card details are entered directly on a payment acceptance page that
a payment processor provides. After card details are entered and the customer moves on to the next step of the
checkout process, the processor creates a token that is used later in the order creation process.
When the customer finalizes the online order, the payment card token is sent to the payment processor as part of
an authorization request. If the payment authorization request is successful, the payment processor replies by
sending an authorization token. This authorization token is saved together with the customer's order and is
referenced when that order is fulfilled from the back office.
List PI flow
The main difference between the standard flow and the List PI flow is that the customer doesn't have to enter the
full credit card number. Instead, the customer just has to select a previously saved credit card and provide the Card
Verification Value (CVV number). If the customer provides the correct CVV number and moves on to the next step
of the checkout process, the payment processor provides a payment card token that will be included in the
authorization request.

Related articles
Payments FAQ
Seamless offline switch for gift card and credit memo
operations
2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

If a point of sale (POS) device loses its connection to the channel database, most POS operations and transactions
that were in progress can proceed after the cashier receives a warning message about the loss of connectivity.
However, in some cases, transactions have elements that rely on the real-time service, and those elements aren't
supported when the POS is offline. This topic describes some functionality that helps reduce the impact of lost
connectivity in these scenarios.

Completing gift card transactions in offline mode


Internal gift cards depend on the real-time service, because the balance for the gift cards must be centrally
maintained in Microsoft Dynamics 365 Commerce Headquarters. To help prevent fraud or other synchronization
issues, gift cards are locked as soon as they are added to a transaction. The locking function ensures that a gift card
can't be used on multiple terminals at the same time. When a transaction is completed, the gift card is updated and
unlocked.
However, if the POS loses connectivity after a gift card has been added to a transaction, the gift card can become
unusable. To help prevent this situation, Dynamics 365 Commerce has a parameter that enables transactions that
include a gift card line to be completed while the POS is offline. When this parameter is turned on, gift card
transactions that are forced offline will be saved together with offline transactions, and they will be synced to
Commerce Headquarters when the offline transactions are synced. The synchronization will also unlock the gift
card so that it can be used at another terminal.
To enable the functionality to conclude gift card transactions after switching to offline mode, go to the Posting tab
on the Commerce parameters page. On that tab, locate the Gift card fasttab and set Allow concluding gift
card transactions in offline mode to Yes .
Commerce parameters are typically cached. Therefore, after the setting of this parameter is updated, and the
distribution schedule is initiated to sync the change to the channel, the change can take up to 24 hours to take
effect. To make the change effective immediately, reset Microsoft Internet Information Services (IIS).

Completing credit memo transactions in offline mode


Like internal gift cards, credit memos are centrally maintained in Commerce Headquarters. Commerce has a
parameter that enables credit memo transactions to be completed while the POS is offline. This parameter works
like the gift card parameter that was mentioned in the previous section. When the parameter is turned on, credit
memo transactions that are forced offline will be synced back to the channel database, together with other
transactions that were performed while the POS was offline.
To enable the functionality to conclude credit memo transactions after switching to offline mode, go to the Posting
tab on the Commerce parameters page. On that tab, locate the Credit memo fasttab and set Allow
concluding credit memo transactions in offline mode to Yes .
Commerce parameters are typically cached. Therefore, after the setting of this parameter is updated, and the
distribution schedule is initiated to sync the change to the channel, the change can take up to 24 hours to take
effect. To make the change effective immediately, reset IIS.

Related topics
Offline point of sale (POS) functionality
Online and offline point of sale (POS) operations
Set up pay invoice scenarios
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

The Pay invoice functionality in Dynamics 365 Commerce has been expanded to support:
Payoff of multiple sales order invoices in a single POS transaction.
Payment of various customer invoice types including free text invoices, project-based invoices, and credit notes.
To enable these scenarios, the functionality profile for stores must be configured as outlined in below.
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality
profiles and select a profile that's linked to the stores that you want to make the changes for.
2. On the Functions tab, configure the following parameters as needed.
Sales order invoice – Select Yes to allow users to pay one or more sales order-based invoices in a
single POS transaction.
Free text invoice – Select Yes to allow users to pay one or more free text-based invoices in a single POS
transaction.
Project invoice – Select Yes to allow users to pay one or more project-based invoices in a single POS
transaction.
Sales order credit note – Select Yes to allow users to settle multiple sales order-based credit notes
against open invoices or process a refund to the customer for an open credit note.

NOTE
Payment or settlement of partial amounts is not yet supported.
Duplicate payments prevention
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the duplicate payments protection feature for Dynamics 365 Commerce Modern
POS.

Overview
This topic describes the user experience when the point of sale (POS) recovers from a loss of communication with
the payment terminal, which causes the POS and the payment terminal to be out of sync.
The duplicate payment protection feature ensures that Modern POS can seamlessly recover from a loss of
communication without requiring the shopper to process another payment through the payment terminal, which
can lead to duplicate payments.
This topic covers the following aspects of the duplicate payment protection feature:
Prerequisites – Set of prerequisites to leverage this feature in Modern POS.
Scenario details – Detailed description of the scenarios covered by the duplicate payment protection feature.
Troubleshooting – Steps to take when encountering issues with the duplicate payment protection feature.
Additional resources – List of related articles you might find useful when using the duplicate payment protection
feature.

Prerequisites
The payment connector and corresponding payment gateway or processor must support this feature. The
payment connector is an extension which facilitates communication between Commerce (and associated
components) and a payment service. The connector described in this topic was implemented using the standard
payments SDK.
If a connector implements the corresponding duplicate payment protection interfaces, the feature is
automatically enabled in Modern POS. Otherwise, it is automatically turned off.

Scenario details
The duplicate payment protection feature is applicable to any scenario in which a payment is initiated and
completed on a payment terminal, but Modern POS is unable to receive the corresponding response. As a result,
the customer's card (such as a credit card) is charged but the payment line is not added to the POS. In most cases,
the cashier will trigger a subsequent payment on the payment terminal, which results in a duplicate payment for
the customer.
How duplicate payments scenarios are triggered
1. Cashier initiates payment
The cashier initiates a card payment by clicking Pay card , navigates to the Payment page, and clicks
Tender .
2. Customer interacts with payment terminal
After the payment is initiated, the payment terminal prompts the customer for payment. The customer
initiates the payment process on the payment terminal.
3. Modern POS loses connectivity to the payment terminal
While the customer is running a payment on the payment terminal, Modern POS loses connectivity to the
payment terminal because it either crashes, loses network connectivity, is closed, or the terminal is
rebooted.
The cashier will re-launch Modern POS and address any connectivity issues.
4. Customer completes payment on the payment terminal
As Modern POS is being reset, the customer completes the payment on the payment terminal and is
charged.
5. Modern POS is launched
The cashier completes the reset/launch of Modern POS but the payment is not added to the cart.
Payment recovery scenarios
Once the point of sale or network communications have been recovered, there are several scenarios that will result
in the cashier being prompted to use the previous payment. Here are a few scenarios that can trigger payment
recovery:
If there is a unrecovered payment and the cashier takes one of the following actions, the cashier is shown a dialog
box indicating that a payment has already been made.
Invokes another payment for any amount using a card payment.
Invokes another payment for any amount using a cash payment.
Attempts to void a line on the cart.
Attempts to void the transaction.
Attempts to suspend the transaction.
When the cashier clicks OK , the payment is recovered and added as a payment line to the cart.
The primary function of the duplicate payment protection feature is to put Modern POS back into the same state it
would be if the original payment would have been successfully processed and the corresponding payment line was
added to the cart.
How to skip payment recovery
In some cases, the cashier might explicitly choose to skip the duplicate payment protection and opt not to recover a
previous payment. In those cases, the cashier can use the following steps described to void the transaction without
recovering the payment.
1. Re-launch Modern POS
After Modern POS has lost connectivity to the payment terminal, re-launch the POS.
2. Void the transaction
Navigate to the cart page and click Void Transaction .
3. Ignore the recovered payment
A new dialog box will appear indicating that a recovered payment is available. Click Ignore to skip the
payment recovery.

What to do if the customer leaves the store


In some cases, the customer might leave the store before the cashier can finalize the transaction. In those cases,
follow the steps described in the How to skip payment recovery section to void the transaction and manually void
the payment on the portal of the payment gateway/processor.

Troubleshooting
General issues
For all general issues, you should always consult the Modern POS or IIS Hardware Station event logs first. The logs
can be found under these nodes in the Windows event log:
Application and Services Logs > Microsoft > Dynamics > Commerce-ModernPOS
Application and Services Logs > Microsoft > Dynamics > Commerce-Hardware Station
Validate that the customer is not double charged
Even if the duplicate payment protection feature is enabled, it is generally recommended that the merchant verifies
that no double charge has occurred. To do this, check all transactions on the corresponding payment
gateway/processor portal.
Payment recovery fails
An error may occur while a previous payment is being recovered on Modern POS. This can happen if there is an
issue in the payment connector or payment gateway/processor that does not allow the previous payment to be
recovered. To resolve this issue, because the previous payment cannot be recovered, the cashier must skip the
recovery as described in the How to skip Payment Recovery section.

Additional resources
Payments FAQ
Omni-channel payments overview
2/1/2020 • 15 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides an overview of omni-channel payments in Dynamics 365 Commerce. It includes a
comprehensive list of supported scenarios, information about functionality, setup, and troubleshooting, and
descriptions of some typical issues.

Key terms
T ERM DESC RIP T IO N

Token A string of data that a payment processor provides as a


reference. Tokens can represent payment card numbers,
payment authorizations, and previous payment captures.
Tokens are important because they help keep sensitive data
out of the point of sale (POS) system. They are sometimes also
referred to as references.

Card token A token that a payment processor provides for storage in the
POS system. A card token can be used only by the merchant
who receives it. Card tokens are sometimes also referred to as
card references.

Authorization (auth) token A unique ID that a payment process provides as part of the
response that it sends to a POS system after the POS system
makes an authorization request. An authorization token can
be used later if the processor is called to perform actions such
as reversing or voiding the authorization. However, it's most
often used to capture funds when an order is fulfilled or a
transaction is finalized. Authorization tokens are sometimes
also referred to as authorization references.

Capture token A reference that a payment processor provides to a POS


system when a payment is finalized or captured. The capture
token can then be used to reference the payment capture in
subsequent operations, such as refund requests.

Card not present A term that refers to payment transactions where a physical
card isn't presented. For example, these transactions can occur
in e-commerce or call center scenarios. For these transactions,
the payment-related information is manually entered on an e-
commerce website, in a call center flow, or on the POS or
payment terminal.

Card present A term that refers to payment transactions where a physical


card is presented and used on a payment terminal that is
connected to the Microsoft Dynamics 365 POS system.
Overview
In general, the term omni-channel payments describes the ability to create an order in one channel and fulfill it in
another channel. The key to omni-channel payment support is preserving payment details together with the rest of
the order details, and then using those payment details when the order is recalled or processed in another channel.
A classic example is the "Buy online, pick up in store" scenario. In this scenario, the payment details are added when
the order is created online. They are then recalled at the POS to charge the customer's payment card at the time of
pickup.
All the scenarios that are described in this topic can be implemented by using the standard Payments software
development kit (SDK) that is provided with Commerce. The Dynamics 365 Payment Connector for Adyen provides
an out-of-box implementation of every scenario that is described here.
Prerequisites
Every scenario that is described in this topic requires a payment connector that supports omni-channel payments.
The out-of-box Adyen connector can also be used, because it supports the scenarios that are made available
through the Payments SDK. For more information about how to implement payment connectors, and about the
Retail SDK in general, visit the Retail for IT pros and developers home page.
Supported versions
The omni-channel payment capabilities that are described in this topic were released as part of Microsoft Dynamics
365 for Retail version 8.1.3.
"Card present" and "card not present" connectors
The Payments SDK relies on two sets of application programming interfaces (APIs) for payments. The first set of
APIs is named iPaymentProcessor . It's used to implement "card not present" payment connectors that can be
used in call centers and with the Microsoft Dynamics e-Commerce platform. For more information about the
iPaymentProcessor interface, see the Implement a payment connector and a payment device white paper, which
covers payments.
The second set of APIs is named iNamedRequestHandler . It supports the implementation of "card present"
payment integrations that use a payment terminal. For more information about the iNamedRequestHandler
interface, see Create a payment integration for a payment terminal.
Setup and configuration
The following components and setup steps are required:
eCommerce integration: An integration with Commerce is required to support scenarios where an order
originates in an online storefront. For more information about the Retail e-Commerce SDK, see e-Commerce
platform software development kit (SDK). In a demo environment, the reference storefront supports omni-
channel payment scenarios.
Online payments configuration: The setup of the online channel must include a payment connector that has
been updated to support omni-channel payments. Alternatively, the out-of-box payment connector can be used.
For information about how to configure the Adyen payment connector for online stores, see Adyen payment
connector. In addition to the eCommerce setup steps that are described in that topic, the Allow saving
payment information in e-commerce parameter must be set to True in the settings for the Adyen
connector.
Omni-channel payments configuration: In the back office, go to Retail and Commerce > Headquar ters
setup > Parameters > Commerce shared parameters . Then, on the Omni-channel payments tab, set
the Use omni-channel payments option to Yes .
Payment ser vices: The call center uses the default payment connector on the Payment ser vices page to
process payments. To support scenarios such as "Buy in call center, pick up in store," this default payment
connector must be the Adyen payment connector or a payment connector that meets the implementation
requirements for omni-channel payments.
EFT ser vice: Payments through a payment terminal must be set up on the EFT ser vice FastTab of the
hardware profile. The Adyen connector supports omni-channel payments scenarios out of the box. Other
payment connectors that support the iNamedRequestHandler interface can also be used if they support
omni-channel payments.
Payment connector availability: When an order is recalled, the payment tender lines that are recalled
together with the order include the name of the payment connector that was used to create the authorizations
that are associated with that order. When the order is fulfilled, the Payments SDK tries to use the same connector
that was used to create the original authorization. Therefore, a payment connector that has the same merchant
properties must be available for capture.
Card types: For omni-channel scenarios to work properly, each channel must have the same setup for tender
types that can be used for omni-channel. This setup includes payment method IDs and card type IDs. For
example, if the Cards tender type has an ID of 2 in the online store setup, it should have the same ID in the
retail store setup. The same requirement applies to card type IDs. If card number 12 is set to VISA in the online
store, the same ID should be set up for the retail store.
Basic principle supporting omni-channel payments
Payment connectors and payment processors use tokens, or references, to reference interactions that are related to
card payments. For example, when a payment authorization is requested, a reference to that authorization is
provided. Therefore, the authorization can be referenced later, when funds are captured at the time of fulfillment.
This authorization is unique to the merchant, payment connector, and processor.
If an order that was created online is being picked up in the store, the same payment details for that order must be
recalled and used. When the original details are provided as part of the request to capture a payment against the
original authorization, the payment processor will be able to handle the request and capture the payment.
To correctly reference the online order, a "card not present" payment connector that supports the same processor
must also be available. In this way, the POS system can have one processor for "card present" payments, but it can
also have access to other payment connectors so that it can fulfill orders that are created in other channels by using
different payment processors.

Supported scenarios
The following omni-channel payment scenarios are supported:
Buy online, pick up in store
Buy in call center, pick up in store
Buy in store A, pick up in store B
Buy in store A, ship to customer
Variations of these scenarios are also supported. For example, an online order might include both lines that will be
shipped to the customer and lines that will be picked up in a store. All order fulfillment options are supported via
omni-channel payments.
The following sections describe the steps for each scenario and show how to run the scenario by using demo data.
Buy online, pick up in store
Before you start, make sure that the following prerequisites are in place:
You have a reference storefront where the Adyen connector is configured.
The Omni-channel payments option on the Commerce shared parameters page is set to True .
The Adyen payment connector is configured for the Houston POS register.
Follow these steps to run the scenario.
1. In the reference storefront, create an order for in-store pickup. Be sure to select the Houston store.
2. Go through the checkout steps, and pay by using a test credit card number. You can find test credit card
numbers on the Adyen test card numbers page.
3. In Commerce, use the Synchronize orders batch job and the P-001 distribution schedule to create the
orders in the back office.
4. In the POS, on the welcome page, select the Orders to pickup operation to see the orders for in-store
pickup.
5. Select one or more lines from the order that was created in the reference storefront, and then select Pick
up .
The order is retrieved from the back office.
6. When the order line details are retrieved from the back office, and a card payment that can be used for
omni-channel is detected, you're informed that a payment method is available.
7. Select Use available payment method to complete the transaction by using the card details that were
entered in the reference storefront.
The order lines are loaded on the transaction page, and the balance due is 0 (zero).
8. Select the Payments tab to view the tender line that was pulled from the online order.
9. Select any payment method to complete the transaction.
Buy in call center, pick up in store
1. In Commerce, on the Customer ser vice page, enter Karen Berg in the search bar, and then select Search .
2. Select Karen Berg in the search results.
3. After Karen is loaded onto the Customer ser vice page, select New sales order .
4. On the new sales order page, select Header to view the order header.
5. On the Order header page, set the site to Central and the warehouse to Houston .
6. On the Deliver tab, set the Mode of deliver y field to 60 for customer pickup.
7. Select Lines , and then add one or more lines to the order.
8. Select Complete to enter the order completion flow.
9. Scroll down to the payments section, select Add , and then select a line where the payment method type is
set to Cards .
10. Select the plus sign (+ ) to add a card payment.
11. Enter the details for a test credit card number that you found on the Adyen test card numbers page, and then
select OK .

NOTE
If the card brand for the card number that you entered differs from the brand that was selected when the payment
was initiated, the payment will still go through. However, it will be posted to the accounts that are mapped to the
card brand that you selected in step 10.

12. Select OK again to close the Order completion payments dialog box.
13. On the Sales order summar y page, select Submit .
14. In the POS, on the welcome page, select the Orders to pickup operation to see the orders for in-store
pickup.
15. Select one or more lines from the order that was created in the reference storefront, and then select Pick
up .
The order is retrieved from the back office.
16. When the order line details are retrieved from the back office, and a card payment that can be used for
omni-channel is detected, you're informed that a payment method is available.
17. Select Use available payment method to complete the transaction by using the card details that were
entered in the reference storefront.
The order lines are loaded on the transaction page, and the balance due is 0 (zero).
18. Select the Payments tab to view the tender line that was pulled from the online order.
19. Select any payment method to complete the transaction.
Buy in store A, pick up in store B
1. Start the POS for the Houston store.
2. On the Transaction page, add Karen Berg to the transaction by using the number pad to enter 2001 .
3. Add one or more lines to the transaction.
4. Select Orders to see the order options.
5. Select Pick up all , and then, when you're prompted, select Customer order .
6. In the search bar, enter Seattle , and then select the Seattle store for pickup.
7. Select OK to accept the current date as the date of pickup.
8. Select Pay card to initiate the payment.
9. Tender the card payment for the amount that is due for the deposit.
10. Complete the deposit payment on the payment terminal.
11. After the deposit is paid, select the option to use the same card for fulfillment, and wait for the order to be
completed.
12. Start the POS for the Seattle store.
13. In the POS, on the welcome page, select the Orders to pickup operation to see the orders for in-store
pickup.
14. Select one or more lines from the order that was created in the reference storefront, and then select Pick
up .
The order is retrieved from the back office.
15. When the order line details are retrieved from the back office, and a card payment that can be used for
omni-channel is detected, you're informed that a payment method is available.
16. Select Use available payment method to complete the transaction by using the card details that were
entered in the reference storefront.
The order lines are loaded on the transaction page, and the balance due is 0 (zero).
17. Select the Payments tab to view the tender line that was pulled from the online order.
18. Select any payment method to complete the transaction.
Buy in store A, ship to customer
1. Start the POS for the Houston store.
2. On the Transaction page, add Karen Berg to the transaction by using the number pad to enter 2001 .
3. Add one or more lines to the transaction.
4. Select Orders to see the order options.
5. Select Pick up all , and then, when you're prompted, select Customer order .
6. In the search bar, enter Seattle , and then select the Seattle store for pickup.
7. Select OK to accept the current date as the date of pickup.
8. Select Pay card to initiate the payment.
9. Tender the card payment for the amount that is due for the deposit.
10. Complete the deposit payment on the payment terminal.
11. After the deposit is paid, select the option to use the same card for fulfillment, and wait for the order to be
completed.
When the order is picked, packed, and invoiced in the back office, the payment details that are provided at the POS
will be used to capture the funds for the goods that are being shipped to the customer.

Scenario details
In addition to the basic scenarios that were just described, several enhancements have been made to the Payments
SDK to support omni-channel payments.
POS
Single swipe/dip for customer orders
Before the omni-channel payments feature was implemented, when customer orders that included deposits were
created at the POS, customers were required to swipe (or dip) their card two times: one time to pay the deposit and
one time to tokenize the card for subsequent order fulfillment. When the omni-channel tokenization feature is
turned on, customers must swipe their card only one time to both pay the deposit and authorize the amount that is
due for goods that will be fulfilled later. At the time of fulfillment, the authorized funds are captured. Before the
omni-channel tokenization feature was implemented, only a recurring card token was created for subsequent order
fulfillment. Therefore, the funds for the pending fulfillment weren't authorized, and because those funds weren't
being held for that specific purchase, it was less likely that they could be captured later.

NOTE
Single swipe isn't supported in Retail version 8.1.3. Customer orders in version 8.1.3 use the same flow that was used before
the omni-channel tokenization feature was implemented.

Cards that can't issue recurring card tokens


Some cards can't be used for omni-channel payments, because they don't support issuing recurring card tokens.
When an order is created at the POS, if the deposit is paid by using a card that doesn't support recurring card
tokens, the previous card tokenization flow is used. Therefore, a customer who wants to provide a payment that will
be used for subsequent order fulfillment must present a second card. If the second card doesn't support recurring
card tokens, the tokenization action will be declined, and the cashier will be prompted to ask the customer to
provide a different card.
Using a different card
A customer who comes to the store for order pickup has the option to use a different card. When the cashier
receives the Use available payment method prompt at the time of order pickup, he or she can ask whether the
customer wants to use the same card. If the customer has lost the card that was used to create the order and wants
to pay for the order by using a different card, the cashier can select Use a different payment method . If the
customer comes back later to pick up more items for the same order, if the original card authorization is still valid,
the cashier can again ask whether the customer wants to use that card.
Invalid authorizations
If the card that was used to create an order is no longer valid, when products are selected for pickup, the payment
capture request will fail. The POS payment connector will then try to create a new authorization and capture by
using the same card details. If the new authorization or capture fails, the cashier will be informed that the payment
could not be processed. The cashier must then get a new payment from the customer.
Multiple available payments
When an order that has multiple tenders and multiple lines is picked up, the cashier first receives the Use
available payment method prompt. If there are multiple cards, when the cashier selects Use available
payment method , existing card tender lines will be captured until the balance is met for the goods that are
currently being picked up. The cashier won't have the option to select the card that should be used for the goods
that are being picked up.

Related topics
Payments FAQ
Dynamics 365 Payment Connector for Adyen
Payments FAQ
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

What payment scenarios are supported?


Set up a merchant account.
Process a call center order.
Process an online order.
Process a POS cash-and-carry transaction by using an accepting page.
Process a POS cash-and-carry return by using an accepting page.
Process a POS cash-and-carry return by using an accepting page.
Process a POS customer order by using an accepting page.
Process a POS cash-and-carry transaction by using Microsoft Dynamics AX 2012 Retail Hardware Station.
Process a POS cash-and-carry return by using Hardware Station.
Process a POS customer order by using Hardware Station.

Which payment providers are supported and in what regions?


Adyen is supported for card present and card not present transactions. For a list of supported regions, visit the
Dynamics 365 Payment Connector for Adyen overview page.
Verifone is supported in the United States for transactions where the card is present (performed using devices),
and for transactions where the card is not present (for example, e-commerce or call center transactions).
Mastercard Simplify is no longer supported for new customers.

What is a payment connector and in what cases do I need to deploy


and implement a payment connector?
Payment connectors are software components that can be set up which enable an application to process payments
for transactions where the card is not present and transactions where the card is present.
Microsoft-provided connectors such as Verifone and Adyen can be used, or custom connectors can be built by ISV
partners. A connector is typically built to meet the business needs of a customer. Custom connectors are often
created when there is a scenario that requires a new type of payment type (for example, linked refunds). Customers
doing business in certain geographies may need new connectors if the out-of-box connectors do not support those
regions.

Are other payment connector providers supported?


Yes, but you must connect them using customization.

What is the Service level agreement (SLA) for out-of-box payment


connectors like Verifone and Adyen?
The SLA for the out-of-box Verifone connector is owned by Verifone. Please contact Verifone support for
information about their SLA. For the Adyen connector, refer to the Adyen connector overview page if the issue is
related to setup. For other setup or functional issues with the connector itself, create a support request with
Microsoft. If the issue is originating from the device itself or Adyen's processing service, contact Adyen support at
[email protected].

If a supported payment provider issues an update, will Microsoft


automatically update the payment connector or do I need to work with
the payment provider to get the updated payment connector?
If a payment connector update is issued by the payment connector provider, the updated version of the payment
connector will be included in the next planned release of Dynamics 365 Commerce. However, the customer can
also work directly with the payment connector provider to uptake it earlier.
Related topics:
Create an end-to-end payment integration for a payment terminal
Deploy payment connectors
Create Windows installers for payment connectors
Verifone Payment Connector
Product information overview
4/3/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about product information management. Product information management works
with a shared product definition, categorization, and identifiers across all legal entities, and also specific
configurations of a product, to fit into the business processes.
Product information is the backbone of supply chain and commerce applications across all industries. It refers to
processes and technologies that focus on centrally managing information about products (for example, across
supply chains). It's crucial that shared product definitions, documentation, attributes, and identifiers be used. In the
various modules of a business solution, product-specific information and configuration are required in order to
manage the business processes that are related to specific products, product families, or product categories.

Product definition
A product is primarily defined by a product number, name, and description. However, other data is also required in
order to describe a product or service:
Product type: Item or service
Product subtype: Distinct products or product masters
Definition of the product variant model:
Product dimensions and dimension groups
Product nomenclature
Product configuration models
Association of the product with one or more categories
Definition of the product and category attributes
Product images
Attachments
Units of measure and related conversions
Translations for all names and descriptions

Distribution, export, and import of product data


The product definition can be created in Supply Chain Management. It can also be imported from product lifecycle
management (PLM), product data management (PDM), or product information management (PIM) systems. When
more than one instance of Supply Chain Management is used, one instance is typically used as the master of the
product data for all other instances. This approach is supported by a large set of data entities that enable the export
and import of product definition data from one instance to another.
To support the distribution of product data to many instances, Supply Chain Management lets you use Common
Data Service. The product definitions can be exported from an instance of Supply Chain Management to Common
Data Service. The product definitions can then be used to provision other business applications, such as Dynamics
365 Sales, with product data.
Note that, in dynamic and agile organizations, product information data changes every day. Therefore, maintenance
of accurate and actual product data is a critical business process on its own.

Product masters and product variants


In an agile world, where products must be quickly adapted to customer requirements, product definitions specify a
set of products instead of distinct products. In Supply Chain Management, those generic products are known as
product masters. Product masters hold the definition and rules that specify how distinct products are described and
behave in business processes. Based on these definitions, distinct products can be generated. These distinct
products are known as product variants.
A product master is associated with a product dimension group and a configuration technology to specify the
business rules. The product dimensions (Color, Size, Style, and Configuration) are a specific set of attributes that can
be used throughout the application to define and track specific behaviors of the related products. These dimensions
also help users search for and identify the products.

Configuration technologies
You can choose among three configuration technologies:
The predefined variants are defined by predefined product dimensions. The variant definition includes the
definition of a specific valid combination of dimensions, such as Color, Style, and Size. Each combination
produces a distinct product variant.
The dimension-based configuration is typically used in manufacturing scenarios and lets you use the
Configuration dimension in the definition of the bills of materials (BOMs). After a specific configuration is
selected, the system uses the subset of BOM lines that are valid for that configuration for planning and
production. This concept is also known as global BOM, because one shared BOM is used for all configurations of
a product.
The constraint-based configuration uses a product configuration model to describe all possible attributes and
components that are required in order to describe all possible variants of a product in a single model. The
constraints of combinations of attributes can be described through regular expressions or table-based
constraints. Configuration models and configurators become more important in product information
management and are used across all industries.
When you plan the implementation of Supply Chain Management, it's very important that you choose the correct
configuration technology for a business process. A product can't be converted from one model to another after
implementation.

Product variant model definition workspace


The Product variant model definition workspace gives an overview of the product masters. It also shows the
status of the release of masters and related variants to specific legal entities.

Released products
The products that are released to a specific legal entity are known as released products. Products can be released in
bulk to one legal entity or many legal entities at a time. Because various properties and attributes of the products
might have to be added per legal entity, the Released product maintenance workspace lets you monitor and
complete the recently released products in each legal entity, or in the suborganizations of a legal entity.
Released product maintenance workspace
You can configure the Released product maintenance workspace from the Configure my workspace menu
item. Select a category hierarchy and category to filter the workspace by. To adjust the relevant product data in the
workspace, you can also define, in days, the time fences for Recently released products and Stopped released
products .
The workspace consists of a summary of tiles and two lists. The Open cases list shows product change cases that
have products in the selected product category hierarchy that aren't completed and closed. The Recently released
list shows products that have been released within the time fence that is set in the workspace configuration. For
each item in the list, validation is run, and the validation status is shown. This status might indicate that the required
configurations for the legal entity hasn't been completed. From the list, you can directly access the Released
product details , Product attribute maintenance , Product categor y maintenance , Default order settings ,
and Text translations pages to complete the required configuration of the product.
Manually creating a new released product
You can manually create a released product in a single run, depending on the organization's business processes and
any rules about whether this function should be used. This function creates a new product and automatically
releases it to the current legal entity. To create a new product, click Released products in the Released product
maintenance workspace or on the Released product list page.
Set up retail products
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article describes how to set up products in Dynamics 365 Commerce.


Before you can offer products for resale in your commerce channels, you must create and configure the products.
Commerce creates organization-wide products in the product master. You can create the products, define the
product properties and attributes, and assign the products to commerce category hierarchies. To make the
products available to your channels and add them to an active assortment, you must release the products to the
legal entities where they are available. To set up the products that you sell by using channels, complete the
following tasks.
1. Define a product hierarchy. By using the category hierarchy features in Commerce, you can define category
hierarchies to group and categorize the products that you distribute to your channels. User-defined and system
attributes can be defined at the category level. Then, all products that are assigned to the category inherit those
attributes. Multiple category hierarchies can be defined, and each product can be assigned to multiple
hierarchies. However, in a single hierarchy, each product can be assigned to only one category.
2. Add products and product variants to the product master. Products that are added to the product master
represent a global list of products. You can add products manually, one at a time, or you can import product
data from your vendors.
3. Release the products to legal entities. Only products that have been released to legal entities can be made
available to your channels. When you first define a product, you define it on an organization-wide level. You can
then select one or more legal entities to release the product to. The product then becomes available to multiple
channels across your organization. You can use this functionality to create a product one time, add and update
product attributes and properties in one place, and then distribute the product across your organization, to the
channels where it's available.
4. Add products to assor tments. An assortment represents a collection of products that you offer in your
channels. You can define one or more assortments, and each product can be assigned to one or more
assortments. To assign products to channels, you assign the assortments to those channels. When you create an
assortment, you can add products that haven't yet been released to a legal entity. However, you must release the
products to a legal entity before those products can be made available to the channels.
5. Add products to navigation hierarchies. Before products can be browsed online or in point of sale (POS),
they must be categorized in a Commerce navigation hierarchy.
6. Add products to catalogs. Although this step is optional for POS, online stores require that products be
included in at least one catalog.
Commerce hierarchies
2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article describes hierarchies in Dynamics 365 Commerce.


You can create a category hierarchy to organize the products that you sell through your channels. You can use
product hierarchies to categorize or group products. You can then use these products to create product
assortments and customer loyalty programs. You can also assign product attributes and properties, assign a pricing
structure, include the products in product promotions, and use the products for reporting. You can create one
category hierarchy to represent all the products and categories in your organization, and then use that category
hierarchy for multiple purposes. Alternatively, you can create multiple category hierarchies for special purposes,
such as product promotions. When you create a product hierarchy, you must assign a category hierarchy type to
identify the purpose of the category hierarchy. For example, only product hierarchies that are assigned the
Commerce navigation hierarchy type are referenced when you browse products by category online or in point
of sale (POS).

Hierarchy types
The following table lists the types of category hierarchies that are available and the general purpose of each type.

C AT EGO RY H IERA RC H Y T Y P E P URP O SE

Product hierarchy Use this hierarchy type to define the overall product hierarchy
for your organization. You can use this hierarchy type for
merchandising, pricing and promotions, reporting, and
assortment planning. Only one product hierarchy can be
assigned this hierarchy type.

Supplemental hierarchy Use this hierarchy type for any additional category hierarchies
that you want to create. For example, in the spring, you have a
promotion for swimwear. Therefore, you include your
swimwear products in a separate category hierarchy and apply
the promotional pricing to the various product categories.

Navigation hierarchy Use this hierarchy type to group and organize products into
categories so that the products can be browsed online or in
POS.

By using a category hierarchy to structure your products, you can set up and maintain product attributes and
properties at the category level. These attributes and properties include settings for product dimensions and POS
settings. Any products that you assign to the categories automatically inherit the attributes and properties that you
define. You can also copy the property settings for any product to multiple products in a selected category at the
same time.
Create a new product hierarchy
2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a new product hierarchy in Microsoft Dynamics 365 Commerce.

Overview
Dynamics 365 Commerce supports multiple retail channels. These retail channels include online stores, call centers,
and retail stores (also known as brick-and-mortar stores). Each retail store channel can have its own payment
methods, price groups, point of sale (POS) registers, income accounts and expense accounts, and staff. You must set
up all of these elements before you can create a retail store channel.
A Commerce product hierarchy is used to define the overall product hierarchy for your organization. You can use a
Commerce product hierarchy for merchandising, pricing and promotions, reporting, and assortment planning.
Only one Commerce product hierarchy can be assigned per organization.

Create and configure a product hierarchy


To create and configure a Commerce product hierarchy, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Products and categories > Commerce
product hierarchy .
2. If no hierachy exists yet, on the Action pane , select New to create the root of the hierarchy.
3. Under General :
a. In the Name box, enter a name.
b. In the Description box, enter a description.
c. In the Friendly name box, enter a friendly name.
d. Set Active to Yes .

Add hierarchy nodes


To add hierarchy nodes, follow these steps.
1. On the action pane, select Edit categor y hierarchy .
2. Select the parent node you want to add a new node to, and then select New categor y node .
3. In the General section provide a Name , Description , Friendly name and Keywords .
4. Under General :
a. In the Name box, enter a name.
b. In the Description box, enter a description.
c. In the Friendly name box, enter a friendly name.
d. In the Keywords box, enter relevant keywords.
e. In the Display order box, enter a number for the display order (optional).
5. On the action pane, select Save .
6. Repeat the steps above to add additional nodes.
The following image shows the creation of a new product hierarchy node.

Other settings
Category attribute groups can also be assigned to each group as required.

Additional resources
commerce hierarchies
Manage product categories and products
Change the sort order for merchandizing entities
Manage product categories and products
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes an enhanced way to manage product categories and products in Dynamics 365 Commerce. The
enhancements let merchandising managers view a structure of product properties that is shared between the
product hierarchy and released product details.
To learn more about how to manage product categories, in the Categor y and product management workspace,
select the Commerce product hierarchy tile.
Notice the enhanced structure of the Commerce product hierarchy page that appears. In previous versions of
the app, product properties were divided into basic product properties and Retail product properties, based on the
scope of their applicability. Retail product properties are global in their scope of applicability. In other words, for a
given product property, the same value is shared across all legal entities. By contrast, basic product properties are
legal entity–specific. In other words, for a given basic product property, the value can differ across legal entities,
depending on the individual business requirements of each legal entity.
In the enhanced product category structure, product properties are logically separated based on their applicability
in a group, to reflect the structure of the released product details form structure.

You can switch between managing legal entity–specific properties across all legal entities and managing them for a
specific legal entity.
To manage properties across all legal entities, select View for all legal entities (or Edit for all legal entities ).
To manage properties for a specific legal entity, select View for a specific legal entity (or Edit for a specific
legal entity ).

Additionally, in the enhanced product category structure, a merchandising manager can now define default values
for an additional set of product properties at the level of the individual category. Then, when products are created,
they inherit default values for their product properties, based on the association of those properties with an
individual category in the product hierarchy. These inherited product properties can also be modified for each
product to meet individual business requirements.
Selecting properties to update products on the Commerce product
hierarchy page
You can use the new enhanced structure for product properties to select updated product properties that must be
pushed to the associated products. On the Commerce product hierarchy page, on the Action Pane, select
Categor y , and then select Update products to open the Update products dialog box.
Change the sort order for merchandising entities
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Retailers consider product discovery a primary tool for customer interaction across all channels. Various
functionality can help customers easily discover products. For example, they can browse categories, search, and
filter.
This topic explains the concepts that are related to controlling the display order for various merchandising-related
entities. It also explains how to change the sort order.

Overview
The support for sorting various merchandising-related entities has been enhanced. This support is now better
aligned with existing customer scenarios that previously required extensions from implementation partners.
In versions of Retail that are earlier than version 10.0.5, the sort order for categories in the navigation hierarchy
was alphabetical. The new custom sort order functionality lets merchandising managers configure the sort order
for various merchandising-related entities across all end-user clients. These clients include headquarters (HQ) and
call centers.

Configure the display order for categories in the product hierarchy


Before you can complete this procedure, demo data must be installed in your environment.
1. Go to Retail and Commerce > Products and categories > Commerce product hierarchy .
2. Click Edit categor y hierarchy .
3. Click Edit .
4. In the tree, expand ALL > Action Spor ts .
5. In the tree, expand ALL > Team Spor ts .
6. In the Display order field, enter a number. (The number can be negative.)
7. Repeat steps 4 through 6 for any additional categories that you want to change the order of.
The display order for the channel navigation hierarchy will be reflected in HQ for the commerce product hierarchy
and released products by category.
Configure the display order for categories in the channel navigation
hierarchy
Before you can complete this procedure, demo data must be installed in your environment.
1. Go to Retail and Commerce > Products and categories > Channel navigation categories .
2. In the list, select the Fashion navigation hierarchy.
3. Click Edit categor y hierarchy .
4. Click Edit .
5. In the tree, select Fashion > Womenswear > Womens Shoes .
6. In the Display order field, enter a number.
7. In the tree, select Fashion > Womenswear > Tops .
Likewise, you can define the sort order for the sub-categories.
8. In the tree, select Fashion > Menswear > Casual Shir ts .
9. In the Display order field, enter a number.
10. In the tree, select Fashion > Menswear > Coats & Jackets .
11. In the Display order field, enter a number.
12. Repeat for any additional categories that you want to change the order of.
The display order for the channel navigation hierarchy is reflected in HQ, catalog, and channels.
NOTE
By default the custom sort order feature is turned off. To learn how to turn on this feature and other features, see Feature
management.
Product dimensions
4/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

There are four product dimensions - Color, Configuration, Size and Style. You combine product dimensions in
dimension groups and assign dimension groups to product masters. The combinations of product dimensions
determine how product variants are defined.
Product dimensions are characteristics that serve to identify a product variant. You can use combinations of
product dimensions to define product variants. You must define at least one product dimension for a product
master in order to create a product variant.

Product variants
Product variants are also referred to as items. An item is a tangible product, which is not the same as a service. It is
also possible to define a product master with the Service type. By using the Service type, you can specify product
variants that include services. For example, you can specify a product master for Consultancy work and product
variants for work that is performed by senior consultants and junior consultants.

Product dimensions
The following product dimensions are available: Configuration, Color, Size, and Style. A product variant can be
generated based on the product dimension values.
Product dimensions values such as Size, Color and Style can be created on the Size , Color and Style pages, which
can be accessed from the following locations: Product information management > Setup > Dimension and
variant Groups > Sizes/Colors/Styles . Product dimension values for the Configuration dimension are typically
created using either the Product configurator or the Dimension-based configurator. Product dimensions can also be
created and maintained on the Product dimensions page, which can be accessed from the following locations:
Click Product information management > Products > Product masters . On the Action Pane , click
Product dimensions .
Click Product information management > Products > All products and product masters . Select a
product master. On the Action Pane , click Product dimensions .
Click Product information management > Released products . Select a product master. On the Action
Pane , click Product . In the Product master group, click Product dimensions .
The number of variants that you can create for an item is limited by the number of possible product dimension
combinations.

T IP

When you use a product on, for example, an order line, you select the product dimensions to identify the product variant that
you want to work with.
Example
A company sells denim jeans. The item, Jeans, uses the Color and Size product dimensions. The jeans are sold in
three different colors and six different sizes. Colors: Blue, Black, Brown Sizes: XS, S, M, L, XL, XXL Not all sizes are
available in all the three colors. If all combinations were available, it would create 18 different types of jeans. In this
example, only the following nine product variant combinations are produced.

C O LO R SIZ E

Blue XS

Blue S

Blue M

Black M

Black L

Black XL

Brown L

Brown XL

Brown XXL
Create a variant group
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a size, style, or color variant group for a product in Microsoft Dynamics 365
Commerce.

Overview
Dynamics 365 Commerce supports multiple variants for products. It is ideal to set up variant groups for different
product categories. For example, a size group can be created for t-shirts with sizes extra small, small, medium,
large, and extra large, or a color group could be created to include all available colors of a product. Variant groups
should be added before products are added.
In this topic, a size group will be created and configured. Similar procedures can be used for adding and
configuring style groups and color groups.

Create a size group


To create a size group, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Products and categories > Variant
groups > Size groups .
2. On the action pane, select New .
3. In the Size group box, enter a name for the size group.
4. In the Description box, enter an appropriate description.
5. On the action pane, select Save .

Add attributes to the size group


To add attributes to a size group, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Products and categories > Variant
groups > Size groups
2. In the navigation pane, select a size group.
3. Under Size group lines , select Add .
4. In the Size box, enter a string representing the size (for example, "XL").
5. In the Size name box, enter a name for the size (for example, "Extra Large").
6. In the Replenishment weight box, enter a number representing the replenishment weight.
7. In the Number in bar code box, enter a number representing the bar code.
8. In the Display order box, enter a number representing the display order.
9. When finished adding sizes, select Save on the action pane.
The following image shows an example of a size group for "casual shirt sizes".
Additional resources
Product information overview
Set up retail products
Product dimensions
Create a new product in Commerce
3/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a new product in Microsoft Dynamics 365 Commerce.

Overview
A product is primarily defined by a product number, name, and description. However, other data is also required in
order to describe a product or service:

Create a new product


1. In the navigation pane, go to Modules > Retail and commerce > Products and categories > Products
by categor y .
2. On the action pane, select New .
3. In the Product type drop-down list, select either Item or Ser vice .
4. In the Product subtype drop-down list, select either Product (if the product will have no variants) or Product
master (if the product will have variants).
5. In the Product number box, enter a product number if one is not already prepopulated.
6. In the Product name box, enter a product name.
7. In the Search name box, enter a search name.
8. In the Retail categor y drop-down list, select an appropriate category.
9. If the product is a kit, select Yes for Product kit .
10. If the product subtype is product master, set the Product dimension group to include the supported variants.
Options include Color , Size , Style , and Configuration . You may need to create additional product dimension
groups if needed.
11. In the Configuration technology drop-down list, select an appropriate option.
12. Select OK .
The following image shows an example product being added.
Once a product is added, additional data can be set for it, such as Product description , Variant groups ,
Dimension groups , Product attributes , and Related products .
The following image shows a product's additional details.

Create product variants


If the product subtype is Product master , specific variants will need to be created.
To create product variants, follow these steps.
1. On the action pane, select Product variants .
2. If variant groups have been selected on the action pane, select *Variant suggestions.
3. Select the variants you would like to support for the product.
4. Select Create .

Release a product
To sell a product it must first be released to a legal entity.
1. From the product page, select Release products .

2. Select the product to release, and then select Next .


3. Select the set of product variants to release, and then select Next .

4. Select the legal entity, and then select Next .


5. Select Finish .

Configure a released product


Once a product is released, it will then require further configuration that includes adding a price to the product.
1. In the navigation pane, go to Modules > Retail and commerce > Products and categories > Released
products by categor y .
2. Select the product category node for the product that was released, and then select the product from the
product list.
3. On the action pane, select Edit .
4. In the Purchase section, configure any required properties including Unit , Price , and Quantity .
5. On the action pane, select Validate to ensure that no errors are reported for missing fields.
6. On the action pane, select Save .
The following image shows an example configuration for a released product.

Additional resources
Create legal entities
Create a variant group
Manage product categories and products
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes an enhanced way to manage product categories and products in Dynamics 365 Commerce.
The enhancements let merchandising managers view a structure of product properties that is shared between the
product hierarchy and released product details.
To learn more about how to manage product categories, in the Categor y and product management
workspace, select the Commerce product hierarchy tile.
Notice the enhanced structure of the Commerce product hierarchy page that appears. In previous versions of
the app, product properties were divided into basic product properties and Retail product properties, based on the
scope of their applicability. Retail product properties are global in their scope of applicability. In other words, for a
given product property, the same value is shared across all legal entities. By contrast, basic product properties are
legal entity–specific. In other words, for a given basic product property, the value can differ across legal entities,
depending on the individual business requirements of each legal entity.
In the enhanced product category structure, product properties are logically separated based on their applicability
in a group, to reflect the structure of the released product details form structure.

You can switch between managing legal entity–specific properties across all legal entities and managing them for a
specific legal entity.
To manage properties across all legal entities, select View for all legal entities (or Edit for all legal entities ).
To manage properties for a specific legal entity, select View for a specific legal entity (or Edit for a specific
legal entity ).

Additionally, in the enhanced product category structure, a merchandising manager can now define default values
for an additional set of product properties at the level of the individual category. Then, when products are created,
they inherit default values for their product properties, based on the association of those properties with an
individual category in the product hierarchy. These inherited product properties can also be modified for each
product to meet individual business requirements.

Selecting properties to update products on the Commerce product


hierarchy page
You can use the new enhanced structure for product properties to select updated product properties that must be
pushed to the associated products. On the Commerce product hierarchy page, on the Action Pane, select
Categor y , and then select Update products to open the Update products dialog box.
Manage attributes and attribute groups
2/1/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Attributes provide a way to further describe a product and its characteristics through user-defined fields (such as
Memor y size , Hard disk capacity , Is Energy star compliant , and so on). Attributes can be associated with
various Commerce entities, such as product categories and channels, and default values can be set for them.
Products then inherit the attributes and the default values when they are associated with the product categories or
channels. The default values can be overridden at the individual product level, at the channel level, or in a catalog.
For example, a typical television product might have the following attributes.

C AT EGO RY AT T RIB UT E P ERM ISSIB L E VA L UES DEFA ULT VA L UE

TV & Video Brand Any valid brand value None

TV Screen Size 20–80 inches None

Vertical Resolution 480i, 720p, 1080i, or 1080p 1080p

Screen Refresh Rate 60hz, 120hz, or 240hz 60hz

HDMI Inputs 0–10 3

DVI Inputs 0–10 1

Composite Inputs 0–10 2

Component Inputs 0–10 1

LCD 3D Ready Yes or No Yes

3D Enabled Yes or No No

Plasma Operating Temp From 32–110 degrees 32

Operating Temp To 32–110 degrees 100

Projection Projection Tube Warranty 6, 12, or 18 months 12

# of Projection Tubes 1–5 3

Attributes and attribute types


Attributes are based on attribute types. The attribute type identifies the type of data that can be entered for a
specific attribute. The following attribute types are supported:
Currency – This type supports a currency value. It can be bounded (that is, it can support a range of values), or
it can be left open.
DateTime – This type supports a date and time value. It can be bounded or left open.
Decimal – This type supports a numerical value that includes decimal places. It also supports a unit of measure.
It can be bounded or left open.
Integer – This type supports a numerical value. It also supports a unit of measure. It can be bounded or left
open.
Text – This type supports a text value. It also supports a predefined set of possible values (that is, an
enumeration).
Boolean – This type supports a binary value (true or false ).
Reference – This type references other attributes.
Set up attribute types
1. Sign in to the back-office client as a merchandising manager.
2. Go to Product information management > Setup > Categories and attributes > Attribute types .
3. Create two attribute types of the Text type, set the Fixed list option to Yes , and then add a list of values:
Name one attribute type Lens shape , and add the following values: Oval , Square , and Rectangle .
Name the other attribute type Sunglass brand , and add the following values: Ray ban , Aviator , and
Oakley .

Set up an attribute
1. Sign in to the back-office client as a merchandising manager.
2. Go to Product information management > Setup > Categories and attributes > Attributes .
3. Create an attribute that is named Lens .
4. Set the Attribute type field to Lens shape .
Attribute metadata
Attribute metadata lets you select options to specify how the attributes for each product should behave. For
example, you can specify whether attributes are required, whether they can be used for searches, and whether they
can be used as a filter.
For products, the attribute metadata settings can be overridden at the channel level. This capability will be
discussed later in this topic.
As you might notice, the Attributes page includes options that are related to attribute metadata. Under Attribute
metadata for POS , one option that is named Can be refined affects the behavior of the attribute values in the
point of sale (POS) or the way that the system handles those attribute values. Only attributes for which you may set
the Can be refined option to Yes , will show up for refinement or filtering of products in the POS.
Here are the remaining attribute metadata options on the Attributes page:
Searchable
Retrievable
Can be queried
Sortable
Allow multiple values
Ignore case and format
Complete match
These options were originally intended to improve the search functionality for the online storefront. Although
Commerce doesn't include the online storefront out of the box, it does include the eCommerce Publishing Software
Development Kit (SDK). Customers can use this SDK to put products into a search index of their choice. Although
the product data is imported, customers should still be able to distinguish searchable data, data that can be
queried, and so on. In that way, they can build an optimal index to make sure that they index only attributes that, in
their opinion, should be indexed.
For information about the purpose of these remaining options, see Overview of the search schema in SharePoint
Server 2013.
Filter settings for attributes
Filter settings for attributes let you define how the filters for attributes are shown in the POS. To access the filter
settings for an attribute, on the Attributes page, select the attribute, and then, on the Action Pane, select Filter
settings .
The Filter display preferences page includes the following fields:
Name – By default, this field is set to the name of the attribute. However, you can change the value.
Display option – The following options are available:
Single value – This option is available for the following attribute types: Boolean , Currency , Decimal ,
Integer , and Text . This option enables single value selection for these attributes in the client for
refinement.
Multi value – This option is available for the following attribute types: Currency , Decimal , Integer ,
and Text . This option enables multi-value selection for this attribute in the client for refinement.
Display control – The following options are available:
List – This option is available for the all attribute types.
Range – This option is available for the following attribute types: Currency , Decimal , and Integer .
Slider – This option is available for the following attribute types: Currency , Decimal , and Integer .
Slider with bars – This option is available for the following attribute types: Currency , Decimal , and
Integer .
Threshold value – This setting is required if you selected Range as the display control type. You can define
values by using a semicolon (;) as a delimiter.
For example, for the filter like Bag Volume , a threshold value can be 10; 20; 50; 100; 200; 500; 1000;
5000 . In this case, the POS will show the following ranges. Any ranges that don't have any products in the
result set will appear dimmed.
Less than 10
10 – 20
20 – 50
50 – 100
100 – 200
200 – 500
500 or more
Attribute groups
After attributes have been defined, they can be assigned to attribute groups. An attribute group is used to group
the individual attributes for a component or subcomponent in a product configuration model. An attribute can be
included in more than one attribute group. Attribute groups can help users configure products, because the various
selections are arranged in a specific context. Attribute groups can be assigned to categories or channels.
You can also set default values for attributes that are included in an attribute group. For example, you add an
attribute for color to an attribute group and select Blue as the default attribute value. In this case, when the
attribute group is added to a product that includes color as one of its attributes, Blue appears as the default color
for that product.

Create an attribute group


1. Sign in to the back-office client as a merchandising manager.
2. Go to Product information management > Setup > Categories and attributes > Attribute groups .
3. Create an attribute group that is named Fashion Sunglasses .
4. Add the following attributes: Lens shape and Sunglass brand .
Assign attribute groups to categories
One or more attribute groups can be associated with category nodes in the following types of category hierarchies:
Commerce product hierarchy, Channel navigation category hierarchy, and Supplemental product category
hierarchy. Then, when products are categorized, they inherit the attributes that are included in the attribute groups.

Follow these steps to assign attribute groups to categories in the Commerce product hierarchy.
1. Sign in to the back-office client as a merchandising manager.
2. Go to Retail and Commerce > Categor y and product management > Commerce product
hierarchy .
3. Select Fashion navigation hierarchy .
4. Under Menswear , select the Pants category, and then, on the Product attribute groups FastTab, add an
attribute group that is named Men's belt .
5. Select the Fashion sunglasses category, and verify the new attributes in the Fashion Sunglasses
attribute group by selecting View attributes .
The attribute group should show the new Lens shape and Sunglass brand attributes.
6. Under Menswear , select the Pants category, and verify the attributes for the Men's belt attribute group by
selecting View attributes .
The attribute group should show the Men's belt brand , Belt fabric , and Belt size attributes.
NOTE
This procedure can also be used to assign attribute groups to categories in the Channel navigation category hierarchy and
the Supplemental product category hierarchy. In step 2, use the following navigation paths:
Retail and Commerce > Category and product management > Channel navigation categories
Retail and Commerce > Category and product management > Supplemental product categories

Assign attribute groups to stores


One or more attribute groups can be associated with one or more stores in the store hierarchy. Then, when
products are enriched for specific stores, they inherit the attributes that are included in the attribute groups.
1. Sign in to the back-office client as a merchandising manager.
2. Go to Retail and Commerce > Channel setup > Channel categories and product attributes .
3. Assign attribute groups to the Houston channel:
a. Select the Houston channel.
b. On the Attribute group FastTab, select Add , and then, in the Name field, select
SharePointProvisionedProductAttributeGroup .
c. Select Add again, and then, in the Name field, select Men's belt .
d. Select Add again, and then, in the Name field, select Fashion Sunglasses .

NOTE
An option lets you specify that this channel should inherit the attribute groups from its parent channel in the
hierarchy. If you set the Inherit option to Yes , the child channel node inherits all the attribute groups and all
the attributes in those attribute groups.

4. Enable the attributes so that they are available in the Houston channel:
a. On the Action Pane, select Set attribute metadata .
b. Select the Fashion category node, and then, on the Channel product attributes FastTab, select
Include attribute for each attribute.
c. Select the Fashion Accessories category node, select the Fashion Sunglasses category, and then, on
the Channel product attributes FastTab, select Include attribute for each attribute.
d. Select the Menswear category node, select the Pants category, and then, on the Channel product
attributes FastTab, select Include attribute for each attribute.
Overriding attribute values
The default values of attributes can be overridden for individual products at the product level. Default values can
also be overridden for individual products in specific catalogs that are targeted at specific channels.
Override the attribute values of an individual product
1. Sign in to the back-office client as a merchandising manager.
2. Go to Retail and Commerce > Categor y and product management > Released products by categor y .
3. Select the Fashion > Fashion Accessories > Fashion Sunglasses category node.
4. Select the required product in the grid. Then, on the Action Pane, on the Product tab, in the Set up group, select
Product attributes .
5. Select an attribute in the left pane, and then update its value in the right pane.

Override the attribute values of products in a catalog


1. Sign in to the back-office client as a merchandising manager.
2. Go to Retail and Commerce > Catalog management > All catalogs .
3. Select the Fabrikam Base Catalog catalog.
4. Select the Fashion > Fashion Accessories > Fashion Sunglasses category node.
5. On the Products FastTab, select the required product, and then select Attributes above the product grid.
6. On the following FastTabs, update the values of the required attributes:
Shared product media
Shared product attributes
Channel media
Channel product attributes

NOTE
If shared product media and shared product attributes are created, they apply to all the products.

Override the attribute values of products in a channel


1. Sign in to the back-office client as a merchandising manager.
2. Go to Retail and Commerce > Channel setup > Channel categories and product attributes .
3. Select the Houston channel.
4. On the Products FastTab, select the required product, and then select Attributes above the product grid.

NOTE
If no products are available, add products by selecting Add on the Products FastTab and then selecting the required
products in the Add products dialog box.

5. On the following FastTabs, update the values of the required attributes:


Shared product media
Shared product attributes
Channel media
Channel product attributes

NOTE
If shared product media and shared product attributes are created, they apply to all the products.
Define channel attributes
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Enrich the channel by adding channel and product attributes. You must add the channel to the organization default
hierarchy before you can define the attributes.

Define channel product attribute.


1. Go to Retail and Commerce > Channel setup > Channel categories and product attributes.
2. In the tree, select 'Contoso Retail\Fashion\Houston'.
3. Click Edit.
4. In the Category hierarchy field, enter or select a value.
The navigation hierarchy will be used for navigating the product inside your channels.
5. Expand the Attribute group section.
6. Click Add.
The attribute group will be shown in the product details and also will help when using the product filter.
7. In the Name field, enter or select a value.
8. Click View attributes.
9. Expand the Attributes section.
10. Click Add.
11. In the list, mark the selected row.
12. Click AddBtn.
13. Click OK.
14. Click Save.
15. Close the page.
16. Expand the Products section.
17. Click Add.
18. In the list, mark the selected row.
19. Click Add.
Similarly you can add multiple products.
20. Click OK.
21. Click Attributes.
22. Expand the Channel media section.
23. Click Edit.
24. In the Channel field, select an option.
25. Select the Default check box.
26. Click OK.
27. Expand the Channel product attributes section.
28. In the Brand field, type a value.
Similarly you can set the other attributes.
29. Click Save.
30. Close the page.
31. Click Save.
32. Click Publish channel updates.
After publish the data will be ready for sync with the channel tables. If you didn't publish the modified
data will not be synced with the channel tables.
33. Click OK.
34. Click Save.
Create a channel navigation hierarchy
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a channel navigation hierarchy in Microsoft Dynamics 365 Commerce.

Overview
A channel navigation hierarchy is used to group and organize products into categories so that the products can be
browsed online or in point of sale (POS).

Create a channel navigation hierarchy


To create a channel navigation hierarchy, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Products and categories > Channel
navigation categories .
2. On the action pane, select New .
3. In the Name box, enter a name.
4. In the Description box, enter a description.
5. Select Create .
6. On the action pane, select New categor y node to create a root node.
7. In the Name box, enter a name.
8. In the Description box, enter a description.
9. In the Friendly name box, enter a friendly name.
10. On the action pane, select Save .
The following image shows a example root node.
Create navigation category nodes
To create any additional navigation category nodes to represent the product categories on the channel, follow these
steps.
1. In the navigation pane, select the parent node to add a category to.
2. On the action pane, select New categor y node .
3. In the Name box, enter a name.
4. In the Description box, enter a description.
5. In the Friendly name box, enter a friendly name.
6. In the Display order box, enter a display order (optional).
7. On the action pane, select Save .
The following image shows an example of a completed channel navigation hierarchy.
Add products to category nodes
To add products to category nodes, follow these steps.
1. Select a category node.
2. Under Products , select Add .
3. Find the new product(s) you want to add using product number or product name, and then select OK .
4. On the action pane, select Save .

NOTE
Adding products to a node inside the channel navigation hierarchy is not sufficient for the products to show up on a selected
channel, the products must also be assorted to a product.

The following image shows an example node with products added.


Add product attribute groups to category nodes
NOTE
Attribute groups must be created before you can add them to a node inside the channel navigation hierarchy.

To add product an attribute group to a category node, follow these steps.


1. Select a category node.
2. Under Product attribute group , select Add .
3. Find the attribute group(s) you would like to add, and then select OK .
4. On the action pane, select Save .
The following image shows a sample node with product attribute groups added.
Additional resources
Set up assortments
Manage attributes and attribute groups
Configure a channel to use a channel navigation
hierarchy
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to configure a channel to use a channel navigation hierarchy in Microsoft Dynamics 365
Commerce.

Overview
Channel navigation hierarchies organize products into categories so that the products can be browsed on an e-
Commerce site or at points of sale (POS). Retail and online channels must be configured with channel navigation
hierarchies.

Configure the channel


To configure a channel to use a channel navigation hierarchy, follow these steps.
1. In the navigation pane, go to Modules > Retail and commerce > Channel setup > Channel categories
and product attributes .
2. Select the channel to configure.
3. On the action pane, select Set attribute metadata .
4. In the Categor y hierarchy drop-down list, select the appropriate channel navigation hierarchy.
5. On the action pane, select Save .
6. Under Attribute group , add any attribute groups that will be global attributes for all nodes.
The following image shows how to configure a channel to use a channel navigation hierarchy.
Set attribute metadata
Setting the attribute metadata will allow configuration of attributes on each node.
To set attribute metadata, follow these steps.
1. On the action pane, select Set attribute metadata .
2. For each node select Channel product attributes .
3. Set Show attribute on channel to Yes and Can be refined to Yes , to enable refiners on that channel.
4. After configuring each node as desired, on the Action pane , select the Save button to save.
5. Select the X in the top right corner to exit this screen back to the Channel categories and product
attributes page.
The following image shows an example set of channel product attributes configured on a channel category node.
Publish changes
For changes to take effect, you will need to publish the changes.
To publish changes, follow these steps.
1. On the action pane, select Publish channel updates .
2. In the Publish channel updates pane, select OK .
The following image shows how to publish channel updates.
Additional resources
Create a channel navigation hierarchy
Assortment management
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Overview
Dynamics 365 Commerce provides assortments that let you manage product availability across channels.
Assortments determine which products are available at specific stores and during a specific period.
In Commerce, an assortment is a mapping of one or more channels (or groups of channels, when organization
hierarchies are used) to one or more products (or groups of products, when category hierarchies are used).
The overall product mix of a channel is determined by the published assortments that are assigned to the channel.
Therefore, you can configure multiple active assortments per channel.
Basic assortment setup
In the following example, a unique assortment is configured for each store. In this case, only product 1 is available
at store 1, and only product 2 is available at store 2.

To make product 2 available at store 1, you can add the product to assortment 1.

Alternatively, you can add store 1 to assortment 2.


Organization hierarchies
In situations where multiple channels share the same product assortments, you can configure the assortments by
using the Commerce assortment organization hierarchy. When nodes from this hierarchy are added, all channels in
that node and its child nodes will be included.

Product categories
Similarly, on the product side, you can include groups of products by using product category hierarchies. You can
configure assortments by including one or more category hierarchy nodes. In this case, the assortment will include
all products in that category node and its child nodes.

Excluded products or categories


In addition to including products and categories in assortments, you can use the Exclude option to define specific
products or categories that should be excluded from assortments. In the following example, you want to include all
the products in a specific category, except product 2. In this case, you don't have to define the assortment product
by product or create additional category nodes. Instead, you can just include the category but exclude the product.

NOTE
If a product is both included and excluded in one or more assortments by definition, the product will always be considered
excluded.
Global and released products
Assortments are defined at a global level and can contain channels from multiple legal entities. The products and
categories that are included in assortments are also shared across legal entities. However, a product must be
released before it can actually be sold, ordered, counted, or received in the channel (for example, in the point of sale
[POS]). Therefore, although two stores in different legal entities can share an assortment that contains the same
products, the products are available only if they have been released to those legal entities.
Dynamic and static assortments
Assortments can be defined with specific channels and products or by including organization units and categories.
Assortments including references to these groups are considered dynamic assortments. If the definition or contents
of those groups change while the assortment is active, the definition of the assortment will also change.
For example, an assortment is originally defined and published so that it references a category of products. If
additional products are later added to the category, those products are automatically included in the definition of
the existing assortment. You don't have to manually add the products to the assortment. Similarly, if an
organization unit is added to a different node, the organization unit's assortment is automatically adjusted based
on that definition.
Stopped products
You can "stop" released products for the sales process by turning on a setting in the Default order settings. This
setting is most often used when a product is at the end of its life and should not be sold at any channel.
Assortments respect this setting, and stopped products won't be assorted, regardless of the assortment
configuration.
Blocked products
In addition to stopping sales of a product, you can temporarily block sales of a product. You can configure this
setting on the Commerce tab of a released product. Blocked products are still assorted, but you will receive a
message in the POS that states that the product can't be sold.
Date effectivity
Assortments are date-effective. Therefore, retailers can configure when products should or should not be available
per channel. You can define and publish assortments ahead of time, and specify the start and end dates. The
products will automatically become available or unavailable on the specified dates.
Process assortments batch job
Assortments that are defined in Commerce must be processed before they take effect. This processing is done for
the following reasons:
Assortment definitions must be de-normalized so that channels can more easily consume them. A product mix
for a channel can be defined through multiple assortments that span various date ranges. When some of this
information is calculated ahead of time on the server, performance at the channel is improved.
The products and channels in the assortment can change outside the assortment itself. Dynamic assortments
that contain references to categories or organization units must be processed periodically so that they include or
exclude records, based on their current assignment.

Implementation considerations
Consider the following implementation requirements as you plan and manage assortments for your Commerce
implementation:
Data replication and database size – Although assortments help serve the business need to manage
product availability, they are also an important tool for managing the size of channel and offline databases.
Well-managed assortments help reduce the amount of data that must be processed and replicated to channel
and offline databases. They also help reduce the number of records that must be persisted. Fewer records in
these databases will increase performance when you add items to a transaction, search, and browse for
products.
Date-effective/expiring assor tments – One of the most effective tools for managing the number of
products in channel and offline databases is the date effectivity of assortments. If you leave open-ended (non-
expiring) assortments for seasonal products or products that are at the end of their life, these databases will
grow indefinitely. You can use various approaches to help manage this situation. For example, you can maintain
separate assortments for seasonal products and products that are always available.
Sales and returns outside assor tments – This capability helps retailers effectively manage their
assortments by letting them limit the number of available products to products that belong to the core product
mix for the store. This capability also helps retailers handle situations where a product was mistakenly omitted
from an assortment, or where a product was returned outside the effective dates for the assortment.
If product data doesn't exist in the channel database, the POS makes real-time calls to headquarters to retrieve the
required information, so that the product can be sold, returned, or put on a customer order. Product information
that is retrieved in this manner is available only during the scope of that transaction. The product isn't added to the
assortment definition. Therefore, subsequent real-time calls will be made as required.
Set up assortments
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article describes what an assortment is and explains how to set up assortments in Dynamics 365 Commerce.
An assortment is a collection of related products that you assign to a commerce channel, such as a brick-and-
mortar store or an online store. You use assortments to identify the products that are available in each store. An
assortment can include categories of products. Therefore, all products that are assigned to a specific category are
included in the assortment. An assortment can also include specific products and specific variants of products. By
setting up an assortment, you can assign thousands of products to your channels at that same time, in any
combination that your stores require. You can set up as many product assortments as you require. Each product
can be included in one or more assortments, and each assortment can be assigned to one or more channels. For
example, you define one assortment that includes a base set of products. All stores receive this assortment. You
then define another assortment that includes only large sporting equipment. Only your larger stores receive this
assortment. The following diagram shows how products can be assigned to assortments, and how those
assortments can be assigned to channels.

Prerequisites
Before you can set up an assortment and assign it to a commerce channel, you must complete the following tasks.

TA SK DESC RIP T IO N

Set up a channel. Channels represent a brick-and-mortar store, an online store,


or an online marketplace. You must set up at least one
channel and configure the options for the store. Assortments
are assigned to stores to identify the products that a
particular store carries.
TA SK DESC RIP T IO N

Create an organization hierarchy. After you set up the commerce channels for your
organization, you must configure an organization hierarchy
that represents the organizational structure of your channels.
An organization hierarchy can be used for assortments,
replenishment, and reporting. By adding your channels to an
organization hierarchy, you can assign assortments to groups
of stores. Instead of assigning the assortment individually to
each store, you assign the assortment to the high-level
organization node. Then, whenever a new channel is added to
the high-level organization node, that channel automatically
inherits any assortments that were assigned to the higher-
level organization node. You can assign assortments only to
channels that are included in an organization hierarchy that is
assigned the Commerce assor tment purpose.

Define products. Before you can add products to an assortment, you must add
them in Commerce. You can add products manually, or you
can import them from a vendor. After you add the products,
you must release them to a legal entity. Only products that
have been released to a legal entity can be made available to
your channels. Products that haven't yet been released to a
legal entity can be added to an assortment, and the
assortment can be approved. However, until the products
have been released to a legal entity, they can't be made
available to the channels.

Set up a category hierarchy. When you create your commerce products, you can group
and categorize them by using the category hierarchy feature.
You can create one core hierarchy to group and categorize all
products that you distribute through your channels. You can
also create separate, supplemental category hierarchies to
group or categorize your products for special purposes, such
as promotions or assortments. By using category hierarchies,
you can assign all the products in a specific category to an
assortment. Any products that are added to the category that
is included in the assortment are automatically included in the
assortment. Then, the next time that the commerce
assortment scheduler is run, these products become available
to the channels that the assortment is assigned to.

Setting up an assortment
After you complete the prerequisites, you can create an assortment and assign it to your channels. To set up an
assortment, you must complete the following tasks.
1. Create a new assortment, or copy an existing assortment.
2. Select the channels or the high-level groups of channels that the assortment applies to.
3. Add product categories, individual products, or product variants to the assortment. You can include all products
in a specific category, or you can exclude selected products from a category that is included in the assortment.
4. Publish the assortment. When you publish an assortment, the assortment scheduler is automatically run. This
process generates the list of products. When this process is completed, the products become available to the
channels that the product assortment is assigned to. If changes are made to an assortment that has been
published, or to the channels that the assortment is assigned to, the assortment must be updated. To update the
assortment when changes are made, you can run the assortment scheduler as a batch job.
Manage assortments (November 2016)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure demonstrates how to create and publish a new product assortment and uses the demo data
company USRT.
1. Click Category and product management.

Create an assortment
1. Click the Assortments tab.
2. Click New.
3. Click Assortment.
The Assortment ID is required and must be a unique value.
4. In the Assortment name field, type a value.
5. In the Effective date field, enter a date.
6. In the Expiration date field, enter a date.
7. Expand the Commerce channels section.
8. Click Add line.
9. In the tree, select 'Contoso Retail\Electronics\Boston'.
10. Click Add.
11. Click OK.
12. Expand the Products section.
13. Click Add line.
14. In the Category field, enter or select a value.
15. Click Save.

Publish an assortment
1. Click Publish.
2. Click Yes.
Set up bar codes
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article describes how to use bar codes in Dynamics 365 Commerce.
You can use bar codes to purchase and sell products, track product variants, and set up customers and employees.
You can also use bar codes to issue and endorse coupons, gift cards, and credit memos. You can set up products so
that they have standard bar codes or custom, in-house bar codes. Products can have more than one bar code. For
example, a product might have multiple bar codes if it comes from various manufacturers, or if it has variants that
are based on size, style, or color. Bar codes can include the weight or price of the product. Bar code masks are
templates that are used to create bar codes.

NOTE
If you assign a unique bar code to each variant combination, you can scan the bar code at the register and let the program
determine which variant of the product is being sold. You can also collect and view statistics about sales by variant. Each size,
color, and style group can be assigned a unique number that identifies that group in the bar code. Commerce uses the bar
code mask to automatically generate bar codes for each variant combination. This functionality can be useful if there are
many sizes, colors, and styles, because the number of combinations increases significantly as each variant code is added. If
this functionality isn't used, bar codes must be manually assigned to each combination that represents a product variant.

You can create bar codes manually or automatically. To create bar codes, complete the following tasks in the order
in which they are listed.
1. Set up bar code mask characters.
2. Set up bar code masks.
3. Configure bar code setups.
4. Create bar codes for products.

Additional resources
Set up bar code masks
Set up bar code masks
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to set up bar code mask characters, bar code masks, and how to assign bar code masks to
bar codes.

Set up bar code mask characters


Bar code masks are used to create bar codes and to quickly identify bar codes that are scanned into the point of
sale (POS). Masks are comprised of characters which act as placeholders that indicate the format for the bar codes
that will be created. To configure a bar code mask, you need to set up bar code mask characters. Go to Retail and
Commerce > Inventor y management > Barcodes and labels > Mask characters . Click New to create bar
code mask characters. Mask characters can be created to indicate the following bar code data.

F IEL D DESC RIP T IO N

Product Placeholder for product ID.

Any number Used to specify a number that will be hard coded in bar
codes.

Check digit Indicates that the bar code format in a bar code mask uses a
check digit to confirm the validity of a bar code.

Size digit Indicates size in a bar code created for a product variant
which includes size.

Color digit Indicates color in a bar code created for a product variant
which includes color.

Style digit Indicates style in a bar code created for a product variant
which includes a style.

EAN license code Placeholder for EAN license issued for EAN license codes.

Price Indicates price for price embedded bar codes.

Quantity Indicates quantity in quantity/random weight embedded bar


codes.

Employee Indicates bar code segment for employee ID number used for
bar code POS login.

Customer Indicates customer ID segment.


F IEL D DESC RIP T IO N

Data entry Not yet implemented.

Discount code Deprecated as of Dynamics 365 for Retail Spring 2017 release.
Previously: Indicates discount code for a bar code that's used
to add a discount to a point of sale transaction.

Coupon code Indicates coupon code for a bar code used to add a discount
to an order. This replaced discount code.

Gift card Indicates a gift card number when issuing or paying by gift
card.

Loyalty card Adds a loyalty customer to the transaction, and can be used
when paying by loyalty.

Define bar code masks


After bar code mask characters are specified for the necessary bar code masks, go to Retail and Commerce >
Inventor y management > Barcodes and labels > Barcode mask setup . On this page, you can define bar
code masks that use the previously specified characters. These bar code masks will be used when generating bar
codes and will also help to identify bar codes scanned at the POS.
1. Click New to create a new bar code mask.
2. Enter values in the Mask ID and Description fields, and then select a bar code mask type in the Type field.
3. In the General section, select a value in the Bar code standard field, and then specify the bar code prefix, if
one is required.
4. In the Bar code mask segment section, add bar code segments that will be used in the bar code to be
created.
As an example, to create a bar code mask with mask ID 'Product', you'd do the following:
1. Create a new bar code mask and select type 'Product'.
2. Select a bar code standard, for example, 'Code 39'.
3. Provide a prefix to be used to easily identify the bar code. For example, '22'.
4. Add a mask segment. The 'Product' mask segment will be selected.
5. Provide a length for the product segment, for example, '10'. The length should match the length of a product ID
commonly used in the store. The mask will be displayed as a preview in the General section under Mask .

Assign bar code masks to bar codes


Bar codes masks must be assigned to bar codes before they can be used. Continuing with the previous example, to
assign the bar code mask to a bar code, do the following:
1. Go to Organization administration > Setup > Bar codes . Click New to create a new bar code.
2. Enter values in the Barcode setup and Setup fields.
3. In the General section, in the Bar code type field, select 'Code 39'. In the Mask ID field, select the 'Product'
mask previously created.
4. Under Size , enter '12'.
5. Click Save .
The bar code mask can now be used to create bar codes for products. The above steps are examples of how to
create bar code masks for products, but they also illustrate how to create bar code masks for any of the other
supported bar code types. Bar code masks, types, and lengths should be adjusted for use in your specific
environment.
Retail discounts
2/13/2020 • 14 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Overview
This topic provides an overview of the discounts functionality in the Dynamics 365 Commerce. It explains the
properties found on the various discount forms, and best practices for discount management. However, this topic
does not cover the various discounts types in detail, for example, simple, quantity, mix and match, and threshold
discounts. These details will be covered in separate topics created for each of these discount types.
Because retailers require flexible discounting, and discount styles and types vary by industry, there are many ways
to define discounts in Commerce. The discounting functionality was added on top of the existing discount
functionality in the core product (Supply Chain Management), resulting in some duplication of functionality. As a
result, the discount types can be configured for five different entities: customer, loyalty program, channel, catalog,
and affiliations. Because of the number of discounting options, it's especially important that you plan and
document your discounting strategy.

Creating discounts
Each discount type has a dedicated page that you use to create and manage the discount. Commerce also has an
All discounts page and a Pricing and discounts management workspace, both of which you can use to create
a new discount of any type.
Discount headers and discount lines
All discounts have a header and one or more lines. All discount types have properties defined on the header and
some discount types have additional properties defined per line. For example, quantity discounts have quantity
tiers. People often think about discounts in Commerce in terms of the discount header only and assume that all the
lines on the discount are related to each other because they share a discount header. However, this view of
discounts is too simplistic. For simple discounts and quantity discounts, it is more accurate to think of each discount
line as an independent discount that shares some properties with the other discount lines. In fact, the pricing
engine evaluates simple and quantity discounts in just this manner. Each discount line for simple discounts and
quantity discounts is independent. For simple discounts, it is easy to understand that each discount line is
independent of all other discount lines on the same discount, because there isn't a quantity or amount criterion
required to qualify for the discount. For quantity discounts, you might think that the lines can be combined to reach
the quantity criterion for a discount, but they don't. The quantity tiers must be reached independently for each line
of a quantity discount.
When you create discounts, we recommend that you always avoid or minimize overlapping discount lines.
Overlapping discount lines occur when two or more discount lines in the same discount can be applied to the same
product. In this case, the pricing engine must treat the discount as two or more independent discounts that must
then be evaluated against each other to find the best discount amount. In addition, it can be difficult for a user to
know what the discount will be just by looking at the discount definition.

Managing discounts
Settings and options that are common to all discounts
This section describes the properties that are common to all types of discounts.
When you manage discounts, it's important that you understand each discount option individually, but it is equally
important that you understand which options affect each other and how. The common settings for discounts fall
into two categories. In the first category are settings that filter discounts for consideration. Examples include
Status , Currency , and Unit of measure . Settings in the second category control the order in which multiple
discounts are considered and applied. Examples include Discount concurrency mode and Pricing priority . The
following image shows the various properties of a discount.

Discount ID
This field is labeled Discount and holds a unique ID for each discount. It's set when you first create a discount and
can't be changed later. In Commerce parameters , you can set up independent number sequences for each type of
discount. In this case, make sure that the number sequences won't collide. For example, you can use a unique prefix
for each discount type. For example, D for d iscount, Q for q uantity, MM for m ix and m atch, and T for t hreshold.
Discount name
This field is a short free text field that is used to describe the discount. The string value in this field is shown in the
MPOS and CPOS cart line and printed on Modern Point of Sale (MPOS) and Cloud POS (CPOS) customer receipts.
Therefore, your cashiers and end customers will see this description. It is the primary means for MPOS/CPOS users
and customers to know which discount was applied.
Discount type
There are four types of discounts in Commerce: Discount , Quantity , Mix and match , and Threshold . The
discount type is set when you first create a discount and can't be changed later. The discount type determines
whether there is a quantity or amount criterion that must be met to qualify for the discount.
Status
The status of a discount can be either Enabled or Disabled . When you first create a discount, the status is
Disabled . Discounts can only be edited when they are disabled. When discount data is pushed to a channel,
disabled discounts are not pushed. If a discount was previously enabled and pushed to the channel, then this new
push will also remove the discount from the channel. When you change the status to Enabled , various validation
checks are performed on the discount, depending on the type of discount. The list of validation checks has
increased in recent updates of the product to prevent incomplete or poorly defined discounts from being pushed to
commerce channels. Here is a partial list of the validations that are performed when you enable a discount:
A discount must have at least one discount line.
The percentage value for a percentage discount must be more than 0 (zero) and less than or equal to 100.
The amount value for an amount discount must be more than 0 (zero). Zero and negative amounts aren't valid.
A discount must have at least one price group. A discount that doesn't have a price group will never be applied
to a transaction.
A Unit of measure (UoM) is required for quantity and mix-and-match discount lines.
For quantity discounts that have two or more quantity tiers, the discount value is validated to increase as
quantities increase.
For threshold discounts that have two or more threshold tiers, the discount value for each tier must be equal to
or more than the largest discount of the previous tier.
For mix-and-match least-expensive discounts, the number of least-expensive products must be more than 1 and
less than the number of products that are required to trigger the discount.
Currency
The currency of a discount defines the currency of all amount and price fields on the discount. Different discount
types have different field options. The currency also acts as a filter during discount calculation. In Commerce, all
sales order and MPOS/CPOS transactions have a currency, and the pricing engine will consider only discounts that
have the same currency.
Discount concurrency mode
This determines which discounts compete on a transaction, and which discounts are compounded together. The
three values for this option are Exclusive , Best price , and Compound .
When the value is Exclusive or Best price , only one discount can be applied to a transaction line. The only
difference between Exclusive and Best price is the order that the discounts are considered and applied in.
Exclusive discounts are always evaluated and applied before Best price and Compound discounts, if all other
settings are the same. Therefore, Exclusive and Best price discount never compete for the best price. Two or more
Exclusive discounts will compete for the best price, as will two or more Best price discounts.
When the value is Compound , the discount can be compounded with any other discount that is also set to
Compound . Therefore, two or more Compound discounts will all be applied to a transaction line. When multiple
Compound discounts are applied to a transaction line, they are applied in the following order:
1. Discount price discounts
2. Amount-off discounts
3. Percentage-off discounts
Compound discounts compete with Best price discounts when both types apply to a transaction line. Therefore,
the Compound setting is used to determine which discounts are combined. Depending on the discount
concurrency control mode used, two or more Compound discounts can be combined and compete with the Best
price discounts that apply to the same products. The discount or discounts that have the largest total discount
amount are applied.
Discount account
Commerce lets you post discount amounts for a transaction to a separate general ledger (GL) account. The discount
GL account is set by the product or customer. Commerce offers a unique way to separate the discount amounts
during posting. You can post each type of discount to a specific GL account. Both options can make it easier for you
to determine which discounts or discount types are being used in your general ledger.

NOTE
When the discount account posting feature is enabled, then an additional debit entry and credit entry are made to reclassify
the discount posting out of the Commerce discount GL account and into the discount GL account.
Coupon code required
Starting with version 7.2 of the app, the call center coupons are now merged with discounts. For a discount, when
Coupon code required is set to Yes , the Status field and the standard date fields, Effective date and
Expiration date , are not available. These properties are controlled by equivalent properties that are on the
Coupons page.
When Coupon code required is set to Yes on a discount, the discount is applied to a transaction only if the
coupon code or bar code is provided by MPOS/CPOS. The values of the coupon codes and bar codes are defined
and configured in a separate page named Coupons . The Coupons page is where the coupon is linked to the
discount. When Coupon code required is set to No , a coupon code isn't required, and the discount will always be
applied through its price groups.
Override priority and Pricing priority
These two fields work together. When Override priority is set to Yes , the Pricing priority field becomes
available for editing. You can then select a pricing priority to set directly on the discount. When Override priority
is set to No , the priority is inherited from the priority of the price group associated with the discount. In the case of
multiple price groups association, the priority number is determined by selecting the highest pricing priority of all
the price groups associated with the discount.
Description
This field is a free-form text field. It isn't used in the MPOS/CPOS system or in transactions.
Disclaimer
This is a free-form text field. It isn't used in the MPOS/CPOS system or in transactions.
Line type
This field is on all discount lines. The possible values are Include and Exclude . This field is used in combination
with the Categor y , Product , and Variant fields to define the set of products that the discount is applied to.
Exclude discount lines always override include discount lines. When Line type is Exclude many of the other fields
on the discount line are grayed out, as they do not apply.
Unit of measure
Unit of measure (UoM) is a field on all discount lines except threshold discount lines. This field is label Unit in
Commerce. The Unit of measure field acts as a filter to determine whether a discount should be applied to a
transaction line. The UoM on the transaction line must match the UoM on the discount line. Otherwise, the discount
line isn't considered during discount calculation. No UoM conversion is done during discount calculation.
Category, product, variant, and dimensions
Categor y , Product , Variant, and dimensions are the last discount settings that are common to all discounts.
These fields are set on each discount line and specify what is being discounted. They act as a filter when the pricing
engine searches for discounts that can be applied to a transaction. These fields are related to each other according
to these rules – categories contain products, and products can come in different variations of size, color, style, and
configuration.
The pricing engine does not use the parent/child relationships of categories, products, and variants to order
discounts during discount calculation. This behavior differs from the way that the pricing engine handles sales price
trade agreements. For example, both a discount for 10 percent on a category and a discount for 5 percent on a
product in the same category will be considered. The larger of the two discount amounts will then be used,
provided that all other properties are the same and the discounts aren't set to Compound , in which they both will
be combined. If you want to force a product discount to be used over a category discount you can use pricing
priority or the discount's concurrence mode to cause one discount to be applied before another.
When you edit discounts, the Categor y , Product , Variant , and Dimensions settings act as filters for each other.
The Categor y and Product fields are automatically set from the Commerce Category Hierarchy if a product or
variant is entered directly. The following sections provide detailed descriptions of each of these fields.
Category
At a minimum, you must set the Categor y field. You can select any category from the product category hierarchy
or any category from a supplemental category hierarchy. However, you can't select categories from channel
navigation hierarchies or other non-commerce hierarchies. If only a category is specified on a discount line, the
discount will be applied to any product in that category, even products that are added to the category after the
discount has been created, provided that all other discount criteria are met, such as currency and UoM.

NOTE
The category that you select on a discount line is hierarchy specific. Therefore, you can't specify a value by typing a partial
value in the field, as you can in most Commerce fields. If you type in a full category name, the drop-down list will expand, and
that category will be selected. In addition, you can press Alt+Down arrow to expand the selection dialog box and then press
Tab to move between the hierarchy selection and hierarchy tree within the drop-down list, so that you can use the field
without using a mouse.

The capability to work with categories is a key differentiator between discounts and trade agreement discounts, and
the main reason that we discourage you from using trade agreement discounts. Categories are organized in a
multi-level hierarchy. By contrast, the item discount groups that are used by trade agreements are only a single
level of grouping, and each group is specific to one of the three trade agreement discount types, such as Line
discount, Multiline discount, and Total discount. Therefore, for trade agreements, if you want to use the same set of
products in all three trade agreement discount types, you must create and manage three independent discount
groups. However, for discounts, you must maintain only one category. You can then use that category in all four
discount types. You can also use the same category in price adjustments, assortment management, and loyalty
management.
Product
The product can be a released product or a released product master. All discounts are company specific. Therefore,
they work only with released products. If you select a product master, the discount will be applied to all variants of
the product, even variants that are released after the discount is created, provided that all other discount criteria are
met, such as currency and UoM.
Variant
When you select a variant on a discount line, the discount will be applied to just that variant, provided that all other
discount criteria are met, such as currency and UoM.
Dimensions
Starting with the Retail 8.1.1 release, we have added the capability to set up discounts at a dimension level for a
product. This provides the flexibility to choose one or more dimensions of a product as discount lines. This saves
the merchandizing manager from individually adding the variants on which the discounts apply. For example, you
can specify a discount on all variants with a specific style or you can specify a discount on all variants that are of a
specific color and style.

NOTE
The capability to set up promotions based on dimensions is not supported for price adjustments. The specific interface for
defining the dimensions are removed in Retail versions 10.0.4 and later.

Best practices
Before you create discounts, document your discounting strategy and procedure. Keep your documentation up
to date as your use of the product evolves.
Use independent number sequences for each discount type and configure the number sequences so that the
discount ID by itself indicates the discount type. For example, prefix the ID of each discount type with a different
alphanumeric constant: Q for quantity, MM for mix and match, and so on.
Test your discount configuration using the price simulator before you enable discounts. The price simulator has
an option that lets you treat disabled discounts as enabled. This option was designed specifically for testing
discounts before they are enabled.
Expire discounts when they are no longer valid. In this way, you prevent the total number of discounts that the
pricing engine considers during a transaction from growing unbounded. Otherwise, the performance of
discount calculation can be affected over time.
Leverage the supplemental categories to group the products, for example clearance products or last season
products.
Always avoid or minimize overlapping discount lines.
Retail sales price management
2/13/2020 • 22 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides information about the process of creating and managing sales prices in Dynamics 365
Commerce. It focuses on the concepts that are involved in this process, and on the effects of the various
configuration options for sales prices.

Terminology
The following terms are used in this topic.

T ERM DEF IN IT IO N , USA GE, A N D N OT ES

Price The single unit amount that a product sells for in a point of
sale (POS) client or on a sales order. In this topic, the term
price always refers to the sales price, not the inventory price or
cost price.

Base price The price that is set in the Price field on a released product.

Trade agreement price The price that is set on a product or variant by using a trade
agreement of the Price (sales) type.

Best price When more than one price or discount can be applied to a
product, the smallest price amount and/or the largest discount
amount that produces the lowest possible net amount that
the customer must pay. In this topic, the concept of best price
is always referred to as "the best price." This best price differs
from and should not be confused with the Best price
enumeration value for a discount's concurrency mode.

Price groups
Price groups are at the heart of price and discount management in Commerce. Price groups are used to assign
prices and discounts to commerce entities (that is, channels, catalogs, affiliations, and loyalty programs). Because
price groups are used for all pricing and discounts, it's very important that you plan how you will use them before
you start.
By itself, a price group is just a name, a description, and, optionally, a pricing priority. The main point to remember
about price groups is that they are used to manage the many-to-many relationships that discounts and prices have
with commerce entities.
The following illustration shows how price groups are used. In this illustration, notice that "Price group" is literally
at the center of pricing and discount management. The commerce entities that you can use to manage differential
prices and discounts are on the left, and the actual price and discount records are on the right.
When you create price groups, you should not use a single price group for multiple types of commerce entities.
Otherwise, it can be difficult to determine why a specific price or discount is being applied to a transaction.
As the red dashed line in the illustration shows, Commerce does support the core Microsoft Dynamics 365
functionality of a price group that is set directly on a customer. However, in this case, you get only sales price trade
agreements. If you want to apply customer-specific prices, we recommend that you not set price groups directly on
the customer. Instead, you should use affiliations.
The following sections provide more information about the commerce entities that you can use to set distinct prices
when the price groups are used. The configuration of prices and discounts for all these entities is a two-step
process. These steps can be done in either order. However, the logical order is to set the price groups on the entities
first, because this step is likely to be a one-time setup that is done during implementation. Then, as prices and
discounts are created, you can set the price groups on those prices and discounts individually.
Channels
In the commerce industry, it's very typical to have different prices in different channels. The two primary factors
that affect channel-specific prices are costs and local market conditions.
Costs – The farther away a channel is from the product source, the more it costs to stock a product. For
example, fresh produce has a limited shelf life and specific production requirements (for example, a growing
season). During the winter, fresh lettuce likely costs more in northern climates than in southern climates. If
you're setting prices for channels over a large geographical area, you will probably want to set different prices in
different channels.
Local market conditions – A store that has a direct competitor across the street will be much more price-
sensitive than a store that doesn't have a direct competitor nearby.
Affiliations
The general definition of an affiliation is a link to or association with a group. In Commerce, affiliations are groups
of customers. Affiliations are a much more flexible tool for customer pricing and discounts than the core Microsoft
Dynamics 365 concept of customer groups and discount groups. First, an affiliation can be used for both prices and
discounts, whereas non-retail pricing has a different group for each type of discount and price. Next, a customer
can belong to multiple affiliations but can belong to only one non-retail pricing group of each type. Finally,
although affiliations can be set up so that they are linked to a customer, they don't have to be. An ad-hoc affiliation
can be used for anonymous customers at the POS. A typical example of an anonymous affiliation discount is a
senior or student discount, where a customer can receive a discount just by showing a group membership card.
Although affiliations are most often associated with discounts, you can also use them to set differential pricing. For
example, when a retailer sells to an employee, it might want to change the selling price instead of applying a
discount on top of the regular price. As another example, a retailer that sells to both consumer customers and
business customers might offer business customers better prices, based on their purchasing volume. Affiliations
enable both these scenarios.
Loyalty programs
In relation to prices and discounts, loyalty programs are basically just an affiliation that has a special name. Both
prices and discounts can be set for a loyalty program, just as they can be set for an affiliation. However, the way that
customers get loyalty pricing during a transaction or order differs from the way that they get affiliation pricing.
Customers can get loyalty pricing only if a loyalty card is added to a transaction. When a loyalty card is added to a
transaction, the loyalty program is also added. The loyalty program then enables special prices and discounts.
Loyalty programs can have multiple tiers, and the discounts can differ for different tiers. In this way, retailers can
give frequent customers larger rewards without having to manually put those customers into a special group.
Loyalty programs have additional functionality besides prices and discounts. However, from the perspective of
pricing and discounts, they are the same as affiliations.
Catalogs
Some retailers use physical or virtual catalogs to market products to, and price them for, focused groups of
customers. As part of their business model to target marketing via a catalog, these retailers can set differential
prices on their various catalogs. Microsoft Dynamics 365 supports this capability by letting you define catalog-
specific discounts and prices, just as you can define channel-specific or affiliation-specific discounts. When you edit
a catalog, you can associate price groups with the catalog, just as you can associate them with a channel, affiliation,
or loyalty program.
Best practices for price groups
Don't use a price group for multiple entity types. Instead, use one set of price groups for channels, a different set of
price groups for affiliations or loyalty programs, and so on. You can use a prefix or suffix in the name of the price
group to visually group the various types of price groups that you're using.
Avoid setting price groups directly on a customer. Instead, use an affiliation. In this way, you can assign all types of
prices and discounts to customers, not just sales price trade agreements.

Pricing priority
By itself, a pricing priority is just a number and a description. Pricing priorities can be applied to price groups, or
they can be applied directly to discounts. When pricing priorities are used, they let a retailer override the principle
of the best price by controlling the order in which prices and discounts are applied to products. A larger pricing
priority number is evaluated before a lower pricing priority number. Additionally, if a price or discount is found at
any priority number, all prices or discounts that have lower priority numbers are ignored.
The price and a discount can come from two different pricing priorities, because pricing priorities apply to prices
and discounts independently.
To use pricing priority for prices, you must assign a pricing priority to a price group and then create a sales price
trade agreement for that price group.
The pricing priority feature was introduced to support the scenario where a retailer wants to apply higher prices in
a specific set of stores. For example, a retailer has defined regional prices for the east coast of the United States but
wants higher prices for some products in New York City stores, because it costs more to sell some products in the
city, and/or because the local market will bear a higher price.
As was described in the "Best price" section of this topic, the pricing engine typically selects the lower of two prices.
Therefore, the retailer is usually prevented from using the higher of two prices in a store that has both the East
coast and New York price groups. To resolve this issue before the pricing priority feature was introduced, the
retailer had to define prices for every product two times and not assign both price groups. Alternatively, the retailer
had to create extra price groups to isolate the products that have higher prices from products that have the usual,
lower prices.
However, the pricing priority feature lets the retailer create a pricing priority for store prices that is higher than the
pricing priority for regional prices. Alternatively, the retailer can create a pricing priority just for store prices and
leave regional prices at the default pricing priority, which is 0 (zero). Both setups help guarantee that store prices
will always be used before regional prices.
Pricing priority example
Let's look at an example where store prices override other prices.
A national retailer sets most prices per region, and it has four regions: North east, South east, Mid-west and West. It
has identified several high-cost markets that can support higher prices. These markets are in New York City,
Chicago, and the San Francisco Bay area.
For this example, we will drill into the North east region. Store 1 is in Boston, and store 2 is in Manhattan. For the
Boston store, two price groups are linked to the channel: North East and Store 1. For the Manhattan store, three
price groups are linked to the channel: North East, NYC, and Store 2.
The retailer sets up two pricing priorities: High cost has a priority number of 5, and Store prices has a priority
number of 10. (Remember that, by default, the pricing priority is 0 [zero], and a price or discount that has a higher
priority number is used before a price or discount that has a lower priority number.) For the North East price group,
the pricing priority is left at the default value of 0 (zero). For the NYC price group, the pricing priority is set to 5 ,
because New York City is a high-cost market. For the Store 1 and Store 2 price groups, the pricing priority is set to
10 .
Two products that the retailer sells are product 1, a commodity T-shirt, and product 2, brand-specific fashion jeans.

P RO DUC T N O RT H EA ST P RIC E N Y C P RIC E STO RE P RIC E

T-shirt $15 Not set Not set

Fashion jeans $50 $70 Not set

The T-shirt sells for the same price (that is, $15) at both the Boston and Manhattan stores, because only one price is
set in the North East price group that is linked to both channels. The fashion jeans sell for $50 in the Boston store,
because that price is the only price that is available in that store. However, in the Manhattan store, two prices are
available: $50 and $70. Because the pricing priority of 5 for the NYC price group is higher than the pricing priority
of 0 (zero) for the North East price group, the price will be rung up as $70 in the POS system.

NOTE
For each pricing priority, a full pass through the logic for the retail pricing engine is required. Therefore, to help maintain the
performance of the price and discount calculation, you should use pricing priorities sparingly.

Types of prices
In Microsoft Dynamics 365, you can set the price of a product in three places:
Directly on the product (base price)
In a sales price trade agreement
In a price adjustment
The base price and trade agreement price are part of core Dynamics 365, and are available even if you don't use
Commerce. The price adjustment functionality is available only in Commerce. The next section provides more
information about each of these options for setting prices and explains how the options work together.

Setting prices
Base price
The easiest place to set the price for a product is directly on the product. The value that you set directly on a product
is often referred to as the base price for the product. You set the base price in the Price field on the Sell tab of the
Released product details page. The value that you enter is in the company currency. By default, the price is for a
quantity of 1 of the unit of measure (UoM) that is set in the Unit field on the Sell tab. The actual price per unit of a
product is based on the UoM, the price quantity, and the currency.
If a product has one price for everyone, the base price offers the most efficient way to manage the price of that
product. Even if you use trade agreements to set prices, you might also set the base price on a product. Then, if you
don't use an All trade agreement, you have a fallback price that is used when no trade agreement applies.
If a channel's currency differs from the company currency, the base price in that channel is determined by using
currency conversion on the price that is set on the product.
Although the price unit isn't a common scenario, the pricing engine supports it. If the price unit is set to a value
other than 0 (zero), the price per unit equals Price ÷ Price unit. For example, if a product's price is $10.00, and the
price unit is 50, the price for a quantity of 1 is $0.20 (= $10.00 ÷ 50).
Sales price trade agreement
By using the trade agreement journal, you can create sales price trade agreements for each product. In Microsoft
Dynamics 365, there are three customer scopes for sales price trade agreements: Table , Group , and All . The
customer scope determines the customers that a given sales price trade agreement applies to.
A Table sales price trade agreement is for a single customer that is set directly on the trade agreement. This
scenario isn't a typical business-to-consumer (B2C) scenario. However, if it occurs, the pricing engine uses Table
trade agreements when it determines price.
A Group sales price trade agreement is the type that is most often used with. Outside Commerce, Group sales
price trade agreements are for a simple customer group. However, in Commerce, the concept of a customer group
has been extended so that it's a more generic price group. A price group can be linked to a channel, affiliation,
loyalty program, or catalog. For detailed information about price groups, see the "Price groups" section earlier in
this topic.

NOTE
A trade agreement price is always used before the base price.

Price adjustment
As the name implies, a price adjustment is used to modify the price that was either set directly on the product or set
by using a trade agreement. A price adjustment can be used only to lower the price, not raise it. A price adjustment
is the recommended way for retailers to create, track, and manage price markdowns for their products over time.
There are three types of price adjustments: percentage off, amount off, and price. A price adjustment of the
percentage off or amount off type is always applied to a sale transaction. However, a price adjustment of the price
type is applied only if the adjusted price is less than the price that was set by using the base price or trade
agreement price. Therefore, if the price that is set in a price adjustment is more than the unadjusted price, the price
adjustment isn't used.

Determining price for a product in a transaction


The calculation of the price and discount on a transaction uses the principle of finding the best price for the
customer. According to this principle, if more than one price is found, the lowest price is used. Additionally, the
combination of discounts that produces the largest discount amount for the whole transaction is used. In some
cases, a smaller discount must be used on a single product, so that additional discounts can be applied to other
products in the transaction.
The only exception to the principle of finding the best price for the customer is an option for mix-and-match least-
expensive discounts. This option enables least-expensive discounts that favor the retailer when products are
selected and grouped. Therefore, when a transaction includes more products than are required to qualify for the
least-expensive discount, the pricing engine selects the products that produce the smallest possible discount
amount for the customer.
The pricing engine returns three prices for every product: the base price, the trade agreement price, and the active
price.
The base price is just the property on the product and is the same for everyone everywhere.
On the sales price trade agreement, if the Find next option is set to Yes , the lowest price that is found for
applicable sales price trade agreements is used as the trade agreement price. Trade agreements can be found by
using price groups or the ALL account code. Alternatively, trade agreements can be assigned directly to a customer.
If the Find next option is set to No , the first trade agreement price that is found is used. If no sales price trade
agreements are found, then the trade agreement price is set equal to the base price.
The active price is calculated by taking the trade agreement price and applying the largest price adjustment that
applies to the product. If no price adjustments are found, or if the calculated active price is more than the trade
agreement price, the active price is set equal to the trade agreement price. Remember that you can't raise the price
of a product by using a price adjustment. The applicable price adjustments can be found only by using price groups
that are assigned to a channel, catalog, affiliation, or loyalty program.

Category price rules


The category price rules feature in Commerce gives you an easy way to create new trade agreements for all the
products in a category. This feature also lets you automatically find existing trade agreements for the products in
the category and expire them.
When you select the option to expire existing trade agreements, the system creates a new trade agreement journal
for the products in the category that have an active trade agreement. However, the journal must be manually
posted. Additionally, the category price rules can find existing trade agreements only if you're using the same price
rule (that is, if you create a new price rule that uses the same category that was before). If you aren't using the same
price rule, the existing trade agreements won't be expired.
The prices can be increased or decreased by using the Price rule and Price basis fields of the category price rules.
In the Price rule field, select the type of price change to use:
Markup – A percentage of the price basis is used to calculate the sales price. For example, a product that
costs 10.00 and sells for 15.00 has a markup of 50 percent.
Margin – A percentage of the sales price is used to calculate the amount of profit. For example, a product
that costs 10.00 and sells for 15.00 has a margin of 33.3 percent.
Fixed amount – An amount that is added to the price basis is used to calculate the sales price. For
example, a product that costs 10.00 and sells for 15.00 has a fixed amount of 5.00.
In the Price basis field, select the type of price to modify:
Base cost – The amount that the retailer paid to the supplier.
Base price – The sales price before trade agreements and price adjustments are applied.
Current price – The sales price after trade agreements and price adjustments are applied.
To easily update the prices of various products from different product categories, you can use the supplemental
product categories together with the category price rules.

Best practices
Microsoft SQL Server Express is often used for channel databases because of the cost (free). Keep in mind that SQL
Server Express has hardware limitations and limits on data size. If you don't plan correctly, you can quickly reach
the data size limits of SQL Server Express. This consideration applies not only to pricing but also to other areas of
the product. Here are a few best practices that can help you reduce the size of your data:
If you're using trade agreements, and your prices change, you should expire the old trade agreements by
setting an end date. Over time, this approach helps reduce the number of trade agreements that are kept in
channel databases. It also helps reduce the amount of data that the price calculation algorithm must work
with.
If your prices vary by product variant, consider using the product base price as the price of the most
common variant. Then use trade agreements only for the variant prices that are exceptions. This approach
helps reduce the number of trade agreement records. Because it's so easy to import data into Microsoft
Dynamics 365, you might be tempted to import a trade agreement for every variant of every product.
However, that approach can produce many trade agreements that have the same value. Therefore, it can
needlessly increase the size of your data.
Commerce processes variant-specific prices in order from most specific to least specific. If a product
dimension doesn't affect the price, you don't have to define trade agreements for it. For example, a product is
available in three colors and four sizes, but the price varies only by size. If you define a trade agreement for
every variant, you create 12 records. Instead, you can define a trade agreement just for each size and leave
the Color dimension blank. In this case, you produce only four records.
Alternatively, if not every value of a dimension produces a different price, you can define one trade
agreement for the product master and leave all product dimensions blank. Then define a separate trade
agreement just for each dimension value that produces a different price. For example, if the XXL size has a
higher price, but all other sizes have the same price, you require only two trade agreements: one for the
product master and one for the XXL size.

Prices that include tax vs. prices that exclude tax


When you set sales prices in Dynamics 365, you don't specify whether the price value that you're setting includes or
excludes tax. The value is just the price. However, the Price includes sales tax setting on channels lets you
configure channels so that they either include or exclude tax from prices. This setting is set on the channel and can
change even in a single company.
If you work with both inclusive and exclusive types of tax, it's very important that you set prices correctly, because
the total amount that the customer pays will change if the Price includes sales tax setting on the channel is
changed.

Differences between retail pricing and non-retail pricing


A single pricing engine is used to calculate prices across all channels: Call center, Retail store, and Online stores. This
helps in enabling the unified commerce scenarios.
Pricing is designed to work with retail entities instead of non-retail entities. Specifically, it's designed to set prices by
store, not by warehouse.
The pricing engine does not suppor t the following pricing features:
Setting prices by Site or Site and Warehouse storage dimensions is not supported. If you only specify Site
dimension on the trade agreements, then the pricing engine will ignore the Site and apply the trade agreement
to all sites. If you specify both Site and Warehouse, then the behavior is undefined/untested because it’s
expected that retailers use the store price groups to control the prices for each store/warehouse.
Attribute-based pricing is not supported.
Vendor discount pass-through is not supported.
In addition, only the pricing engine supports the following pricing features:
The price is based on product dimensions, in order from the most-specific variant price to the least-specific
variant price to the product master price. A price that is set by using two product dimensions (for example, Color
and Size) is used before a price that is set by using only one product dimension (for example, Size).
The same price group can be used to control pricing and discounts.

Pricing API enhancements


Price is one of the most important factors that controls the buying decisions of many customers, and many
customers compare prices on various sites before they make a purchase. To help ensure that they provide
competitive prices, retailers carefully watch their competitors and often run promotions. To help these retailers
attract customers, it's very important that product search, the browse feature, lists, and the product details page
show the most accurate prices.
In an upcoming release of Commerce, the GetActivePrices application programming interface (API) will return
prices that include simple discounts (for example, single-line discounts that don't depend on other items in the
cart). In this way, the prices that are shown are close to the actual amount that customers will pay for items. This API
will include all the types of simple discounts: affiliation-based, loyalty-based, catalog-based, and channel-based
discounts. Additionally, the API will return the names and validity information for the applied discounts, so that
retailers can provide a more detailed description of the price and create a sense of urgency if the discount's validity
will expire soon.
Price adjustments and discounts
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article provides information about price adjustments and discounts in Dynamics 365 Commerce.
In Commerce, you can make price adjustments to products, and can also set up discounts that are applied to a line
item or a transaction at the point of sale (POS), in a call center sales order, or in an online order. Both price
adjustments and discounts can be linked to price groups. For both price adjustments and discounts, you can specify
a single start date and end date or a reoccurring period, a discount code, and a few additional attributes.
Price adjustments and discounts can be applied to products, variants, or categories. If more than one discount
applies to a product, a customer might receive either one of the discounts or a combined discount, depending on
the configuration of the discount. Commerce automatically applies the discount or combination of discounts that
gives the best price to the customer. When you set up a price adjustment or a discount, be sure to confirm that
price groups are assigned to the correct channels, catalogs, affiliations, or loyalty programs that you want the
discount to apply to. Additionally, if you want to automatically generate the discount ID, set up number sequences
on the Commerce parameters page before you define a new price adjustment or discount.

NOTE
You can delete a price adjustment or a discount. However, statistical information will be lost.

Types of discounts
There are four types of discounts:
Simple discount – A single percentage or amount.
Quantity discount – A discount that is applied when two or more products are purchased.
Mix and match discount – A discount that is applied when a specific combination of products is purchased.
Threshold discount – A discount that is applied when the transaction total is more than a specified amount.
Both price adjustments and discounts can be associated with price groups. Price groups can then be associated
with channels, catalogs, affiliations, and loyalty programs.
Apply multiple Retail discounts to a product
2/13/2020 • 18 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Overview
This topic reviews all the factors considered when multiple discounts can be applied to a product. In this scenario,
the commerce pricing engine applies as many discounts as it can, to maximize the total discount amount on a
product. Multiple options affect the order in which the discounts are applied. Throughout this topic it's noted when
a setting affects the order of discount application and exclusivity of a discount. The following settings affect how
multiple discounts, applicable on a product, are processed.
Discount concurrency control model
Pricing Priority
Discount type (Simple , Mix and Match , Quantity , and Threshold )
Discount concurrency mode (Exclusive , Best price , and Compound )
Multiple occurrences mode , when it's set to Favor retailer (for mix-and-match least-expensive discounts
only)
The Discount concurrency control model is described below in detail; however, the rest of the properties are
covered in Retail discounts.

Discount concurrency control model


The discount concurrency control model changes when and how multiple discounts are applied to products in a
transaction. The Best price and compound concurrency control model option on the Discounts tab on the
Commerce parameters page is different from the Discount concurrency mode property on each discount.
In earlier versions of the app, there was only one way to apply multiple discounts based on the discount type ,
discount concurrency mode , and pricing priority (if used) properties of discounts. Now, the discount
concurrency control model setting affects how all discounts compete and compound together.
Background on why this change was made
In previous versions of the app, you could directly customize the price engine by overlaying their custom business
logic in the price engine. With the transition to an online service and to improve overall application lifecycle
management, the Dynamics 365 application has been sealed and overlaying customizations are no longer allowed.
New extensibility points have been added to enable the same types of customizations that were the most common.
Most discount customizations are in one of the following categories.
Minor changes to existing discounts: For example, moving the start date and end date from the discount
header to the discount lines.
New discount types: In some cases, companies need to introduce a new type of discount. For example,
capping the total discount amount for a simple discount.
Changing the when and how (the flow) of multiple discounts being applied: For example, having all
mix and match discounts applied on top of quantity or simple discounts while still having quantity and simple
discounts compete for best price or having store-specific and customer-specific discounts compete for best price
and then compound the winning discount with loyalty program discounts.
The first two types of customizations are handled by providing a new extensibility model within the price engine
that enables these scenarios. However, to address the third type of customization we expanded the functional
capabilities of the system by introducing this setting. A discount's concurrency mode and pricing priority already
gave the user significant flexibility over the order of discount application. By introducing a new configuration setting
that affects how a discount's concurrency mode and pricing priority interact, all discount ordering customization is
covered, which results in the concurrency model option.
Best price and compound within priority, never compound across priorities
This is the default and is the legacy way in which multiple discounts are processed. When this option is selected, all
compound discounts within the same pricing priority are combined, and the combined result competes with any
best price discounts in the same pricing priority. After a discount is applied to a product, all discounts at lower
pricing priorities are ignored.
Best price only within priority, always compound across priority
This is the new way multiple discounts can be processed. When this option is selected, discounts with Discount
concurrency mode set to Best price and Compound are all treated as "best price" within a single pricing
priority. When applied, the best price discount within a priority, is compounded with the best price and compound
discounts at lower pricing priorities. In this concurrency control model, only a single discount can be applied to a
product per pricing priority, and if that single discount is a best price or compound discount, then it will compound
with all additional best price or compound discounts at lower pricing priorities.
Examples
The following examples show how the pricing engine processes a pool of discounts for different concurrency
control models.
Example 1
In the first scenario, Best price and compound within priority, never compound across priorities is
selected as the discount concurrency control model. There are two pricing priorities, and for each pricing priority,
there is one discount of each discount type, for example Simple , Mix and Match , Quantity , and Threshold . Let's
assume there are discounts at two priorities 5 and 10 and all products have multiple discounts at both these
priorities. The pool of possible pricing priorities is determined by the price groups and discounts that can be applied
to the product.
1. Given that a discount concurrency control model is selected, for each product, the pricing engine next
considers the highest pricing priority of the discounts that are applicable on the product. Thus, the pricing
engine evaluates and applies the simple, quantity, and mix-and-match discounts with priority 10.

NOTE
Threshold discounts are not evaluated yet because, as indicated by their name, they will be evaluated against the
transaction amount, after all the other discounts have been applied.

The following image shows a concise view of how the pricing algorithm loops through the discounts across
various priorities. Note that this diagram applies for both the discount concurrency control models, but the
difference is in the way in which the pricing algorithm treats discounts at different priorities. This difference
is elaborated using the following example.
2. Within priority 10, the pricing engine first considers the discounts that have the concurrency mode set to
Exclusive . If there is more than one exclusive discount applicable to the product, then the best exclusive
discount is applied. When a product gets an exclusive discount, no other discounts can be applied to this
product at any priority.

NOTE
Mix-and-match, least-expensive discounts that have the Multiple occurrences mode property set to Favor
retailer are skipped in this step. After all the Exclusive discounts (Simple , Quantity , Mix and Match ) at pricing
priority 10 have been applied, then the exclusive mix-and-match Favor retailer discounts, at pricing priority 10, are
applied to any undiscounted products.

3. Within priority 10, the pricing engine then considers the discounts that have the discount concurrency mode
set to Best price and Compound . If multiple Compound discounts apply to a product, then they are
compounded, and the resulting total discount amount competes against the other Best price discounts.
Either one of the Best price discounts or the combination of Compound discounts gets applied to the
product, depending on which discount gives the most benefit to the customer. Like the previous step, mix-
and-match least-expensive discounts that have the Multiple occurrences mode property set to Favor
retailer are skipped in this step. Once all the Best price and Compound discounts at pricing priority 10
have been applied, then Best price and Compound mix-and-match Favor retailer discounts are evaluated
against each other and gets applied. A Best price discount applies only to undiscounted products, but a
Compound discount applies to undiscounted products and products that are discounted with another
Compound discounts at the same pricing priority.
4. Because the discount concurrency control mode is set to Best price and compound within priority,
never compound across priorities so the simple, quantity, and mix-and-match discounts applicable to
the product, at pricing priority 5 do not compete with the applied discounts. At this point, for a product, all
the simple, quantity, and mix-and-match discounts at the highest priority have been evaluated.
5. Next, within priority 10, the pricing engine evaluates threshold discounts that have the concurrency mode set
to Exclusive . An Exclusive threshold discount can't be applied to a product that already has a discount
applied, so a threshold amount is applied and evaluated only on the undiscounted products. If more than one
of these discounts apply to the transaction, the discounts compete, and the largest discount is applied.
6. Next, within priority 10, the pricing engine evaluates threshold discounts that have the concurrency mode set
to Best price and Compound . The pricing engine evaluates and applies threshold discounts at pricing
priority 10. Compound threshold discounts are compounded with other Compound threshold discounts
and compete against the other Best price discounts within the same pricing priority. A Best price threshold
discount applies only to undiscounted products, but a Compound threshold discount applies to
undiscounted products and products that are discounted with another Compound (Simple , Quantity , and
Mix and Match ) discount.

NOTE
If there were threshold discounts set at a higher priority, for example if it's set to 11, and all the other discount types
were at priority 10 and 5, then the threshold discounts would have evaluated at priority 11 and then compounded
with the simple, quantity, and mix and match discounts at priority 10. This is important because simple, quantity, and
mix and match discounts are evaluated within their highest priority and the threshold discounts are evaluated within
their highest priority and then compounded. Any threshold discounts at the lower priority are ignored.

At this point, all the discounts at the highest priorities have been evaluated.
The above logic is showcased in the following image, which shows the detailed view of how the pricing algorithm
loops through the discounts across various priorities. Note that this diagram applies for both the discount
concurrency control models, but the difference is in the way in which the pricing algorithm treats discounts at
different priorities.
In this example, let's assume the following setup.
Product information

P RO DUC T # P RO DUC T P RIC E

Prod1 $10

Prod2 $20

Prod3 $10

Discount setup

DISC O UN T DISC O UN T A P P L IC A B L E O N
DISC O UN T # C O N C URREN C Y P RIO RIT Y A M O UN T DISC O UN T T Y P E P RO DUC T S

BP1 Best price 10 15% Simple, Quantity, Prod1, Prod2


or Mix and Match

BP2 Best price 5 20% Simple, Quantity, All products


or Mix and Match
DISC O UN T DISC O UN T A P P L IC A B L E O N
DISC O UN T # C O N C URREN C Y P RIO RIT Y A M O UN T DISC O UN T T Y P E P RO DUC T S

C1 Compound 10 $1 Simple, Quantity, Prod1, Prod2


or Mix and Match

C2 Compound 10 10% Simple, Quantity, Prod1, Prod2


or Mix and Match

C3 Compound 5 25% Simple, Quantity, All products


or Mix and Match

C4 Compound 5 10% Threshold only All products

Step 1: For each product, determine the highest priority where a Simple, Quantity or Mix and Match discount exists.
In this case, for prod1 it is priority 10, for prod2 it is priority 10 and for prod3 it is priority 5.
Step 2: For each product, find Simple , Quantity , or Mix and Match discounts, with discount concurrency as
Exclusive , at the highest priority applicable to individual products. In this case, there are none for prod1 and prod2
at priority 10 and similarly, there are none for prod3 at priority 5.
Step 3: For each product, evaluate Simple , Quantity , or Mix and Match discounts, with discount concurrency as
Best price and Compound , at the highest priority applicable to individual products. The following table illustrates
this.

NOTE
Two asterisks (**) indicate the discount that gets applied to a product.

T RA N SA C
T IO N P RIO RIT Y
Q UA N T IT 10 ( C 1 + P RIO RIT Y P RIO RIT Y P RIO RIT Y EXP L A N A
Y P RO DUC T P RIC E C 2) 10 ( B P 1) 5 ( C 3) 5 ( B P 2) TOTA L T IO N

1 Prod1 $10 $1.90** $1.50 (NA) (NA) $10 – Because


1.90 = the
$8.1 combinati
on of
compoun
d
discounts
is more
than the
best price
discount,
C1 and
C2 are
applied on
the
product.
The
discounts
at lower
priority,
such as 5,
are
ignored.
T RA N SA C
T IO N P RIO RIT Y
Q UA N T IT 10 ( C 1 + P RIO RIT Y P RIO RIT Y P RIO RIT Y EXP L A N A
Y P RO DUC T P RIC E C 2) 10 ( B P 1) 5 ( C 3) 5 ( B P 2) TOTA L T IO N

1 Prod2 $20 $2.90 $3** (NA) (NA) $20 – 3 = Because


$17.00 the best
price
discount
is more
than the
combinati
on of
compoun
d
discounts,
BP1 is
applied on
the
product.
The
discounts
at lower
priority,
such as 5,
are
ignored.

1 Prod3 $10 $2.50** $2.0 $10 – Priority 5


2.50 = is highest
$7.5 applicable
priority
for this
product.
The
compoun
d discount
is more
than the
best price
discount,
so C3 is
applied on
the
product.

Step 4: Evaluate Threshold discounts applicable to the individual products at the highest priority. For this example,
it is priority 5 for all the products.

T RA N SA C T IO DISC O UN T DISC O UN T ED P RIO RIT Y 5


N Q UA N T IT Y P RO DUC T A P P L IED P RIC E ( C 4) A M O UN T DUE EXP L A N AT IO N
T RA N SA C T IO DISC O UN T DISC O UN T ED P RIO RIT Y 5
N Q UA N T IT Y P RO DUC T A P P L IED P RIC E ( C 4) A M O UN T DUE EXP L A N AT IO N

1 Prod1 C1, C2 $8.1 $0.81** 8.1 – 0.81 = For Threshold


$7.29 discounts,
Priority 5 is
the highest
applicable
priority for
this product,
so any
applicable
threshold
discounts at
priority 5 will
be
compounded
with the
applied
discounts, if
the applied
discounts are
of discount
concurrency
mode
Compound .
Because Prod1
has
compound
discounts only,
the compound
threshold
discounts can
be
compounded.
T RA N SA C T IO DISC O UN T DISC O UN T ED P RIO RIT Y 5
N Q UA N T IT Y P RO DUC T A P P L IED P RIC E ( C 4) A M O UN T DUE EXP L A N AT IO N

1 Prod2 BP1 $17 (NA) $17 For Threshold


discounts,
Priority 5 is
the highest
applicable
priority for
this product,
so any
applicable
threshold
discounts at
priority 5 will
be
compounded
with the
applied
discounts if
the applied
discounts are
of discount
concurrency
mode
Compound .
Because Prod2
has a "Best
price"
discount,
other
discounts
CANNOT be
applied to this
product.
T RA N SA C T IO DISC O UN T DISC O UN T ED P RIO RIT Y 5
N Q UA N T IT Y P RO DUC T A P P L IED P RIC E ( C 4) A M O UN T DUE EXP L A N AT IO N

1 Prod3 C3 $7.5 $0.75** 7.5 – 0.75 = For Threshold


$6.75 discounts,
Priority 5 is
highest
applicable
priority for
this product,
so any
applicable
threshold
discounts at
priority 5 will
be
compounded
with the
applied
discounts, if
the applied
discounts are
of discount
concurrency
mode
Compound .
Because Prod3
has
compound
discounts only,
the compound
threshold
discounts can
be
compounded.

The final amount due for Prod1 is 7.29, Prod 2 is 17, and Prod 3 is 6.75.
Example 2
In the second scenario, Best price only within priority, always compound across priorities is selected as the
discount concurrency control model while rest of the discounts remain as is.
1. Given that Discount concurrency control model is selected, for each product the pricing engine next
considers the highest pricing priority of the discounts that are applicable on a product. If, for a product,
discounts from more than one priority are applicable, then each is evaluated independently, and in
descending order. Thus, the pricing engine first evaluates and applies the simple, quantity, and mix-and-
match discounts with priority 10 followed by the discounts at priority 5.

NOTE
Like the previous discount concurrency control model, the Threshold discounts are not evaluated yet.

2. Within priority 10, the pricing engine first considers the discounts that have the concurrency mode set to
Exclusive . If there is more than one exclusive discount applicable to the product, then the best exclusive
discount is applied. When a product gets an exclusive discount, no other discounts can be applied to this
product at any priority.
NOTE
Mix-and-match, least-expensive discounts that have the Multiple occurrences mode property set to Favor
retailer are skipped in this step. After all the Exclusive discounts (Simple , Quantity and Mix and Match ) at
pricing priority 10 have been applied, then the Exclusive mix-and-match Favor retailer discounts, at pricing priority
10, are applied to any undiscounted products.

3. Within priority 10, the pricing engine then considers the discounts that have the discount concurrency mode
set to Best price and Compound . As stated before, for this discount concurrency control model, discounts
with Discount concurrency mode set to Best price and Compound are all treated as "best price"; within
a single pricing priority. So, if multiple Compound and Best price discounts apply to a product, then all
these discounts compete for best price and only the best discount wins within a priority. Like the previous
step, mix-and-match least-expensive discounts that have the Multiple occurrences mode property set to
Favor retailer are skipped in this step. When all the Best price and Compound discounts at pricing
priority 10 have been applied, then Best price and Compound mix-and-match Favor retailer discounts
are evaluated against each other and applied. Because both Best price and Compound are treated as best
price, only one discount can be applied per product at a given priority.
4. The pricing engine repeats the steps 1 through 3 for any simple, quantity, and mix-and-match discounts at
pricing priority 5.

NOTE
The pricing engine completes steps 1 through 3, one time, for every pricing priority that applies to the transaction.
Therefore, we recommend that you keep the number of pricing priorities to a minimum, based on your business
requirements.

At this point, all the simple, quantity, and mix-and-match discounts at all priorities have been evaluated and
applied.
5. Next, within priority 10, the pricing engine evaluates threshold discounts that have the concurrency mode set
to Exclusive . An Exclusive threshold discount can't be applied to a product that already has a discount
applied, so a threshold amount is applied and evaluated only on undiscounted products. If more than one of
these discounts apply to the transaction, the discounts compete, and the largest discount is applied.
6. Next, within priority 10, the pricing engine evaluates threshold discounts that have the concurrency mode set
to Best price and Compound . Because Best price and Compound are all treated as "best price", these
discounts compete for the best discount. The selected threshold discount gets applied to those products
which do not have any other types of discounts already applied at priority 10. If there are other discounts,
then the threshold discount is not applied because both Best price and Compound discounts are treated as
Best price, and only one discount per priority is allowed with this discount concurrency control.

NOTE
If there were threshold discounts set at a higher priority, for example, it's set to 11 and all the other discount types
were at priority 10 and 5, then the threshold discounts would have evaluated at priority 11 and the best threshold
discount would have been applied at priority 11 (assuming there is no Exclusive discount (Simple , Quantity , or Mix
and Match ) applied at a lower priority).

7. The pricing engine repeats the steps 5 and 6 for threshold discounts at pricing priority 5.
Let's use the same example as before.
Product information
P RO DUC T # P RO DUC T P RIC E

Prod1 $10

Prod2 $20

Prod3 $10

Discount setup

DISC O UN T DISC O UN T A P P L IC A B L E O N
DISC O UN T # C O N C URREN C Y P RIO RIT Y A M O UN T DISC O UN T T Y P E P RO DUC T S

BP1 Best price 10 15% Simple, Quantity, Prod1, Prod2


or Mix and Match

BP2 Best price 5 20% Simple, Quantity, All products


or Mix and Match

C1 Compound 10 $1 Simple, Quantity, Prod1, Prod2


or Mix and Match

C2 Compound 10 10% Simple, Quantity, Prod1, Prod2


or Mix and Match

C3 Compound 5 25% Simple, Quantity, All products


or Mix and Match

C4 Compound 5 10% Threshold only All products

Step 1: For each product, determine the highest priority where a Simple , Quantity , or Mix and Match discount
exists. In this case, for prod1 it is priority 10, for prod2 it is priority 10, and for prod3 it is priority 5.
Step 2: For each product, find Simple , Quantity , or Mix and Match discounts, with discount concurrency as
Exclusive , at the highest priority applicable to individual products. In this case, there are none for prod1 and prod2
at priority 10 and there are none for prod3 at priority 5.
Step 3: For each product, evaluate Simple , Quantity , or Mix and Match discounts, with discount concurrency as
Best price and Compound , at the highest priority applicable to individual products. See the table below.

NOTE
Two asterisks (**) indicate the discount that gets applied to a product.

T RA N SA C T I
ON P RIO RIT Y P RIO RIT Y P RIO RIT Y EXP L A N AT I
Q UA N T IT Y P RO DUC T P RIC E 10 ( C 1) 10 ( C 2) 10 ( B P 1) TOTA L ON
T RA N SA C T I
ON P RIO RIT Y P RIO RIT Y P RIO RIT Y EXP L A N AT I
Q UA N T IT Y P RO DUC T P RIC E 10 ( C 1) 10 ( C 2) 10 ( B P 1) TOTA L ON

1 Prod1 $10 $1 $1 $1.50** $10 – 1.50 Because the


= $8.50 compound
discounts
are treated
as the "Best
price" for
discounts
for this
discount
concurrency
control
model, the
compound
discounts
will not
combine.
Rather they
all compete
for the best
discount.
Because
BP1 gives
the highest
discount,
BP1 gets
applied at
priority 10.

1 Prod2 $20 $1 $2 $3** $20 – 3 = Same as


$17.00 above.
Because
BP1 gives
the highest
discount,
BP1 gets
applied at
priority 10.

1 Prod3 $10 $10 No


discounts
applicable
at priority
10.

Step 4: For each product, determine the next highest priority where a Simple , Quantity , or Mix and Match
discount exists. In this case, it is priority 5 for all three products.
Step 5: At priority 5, find Simple , Quantity , or Mix and Match discounts with discount concurrency mode as
Exclusive . In this case, none.

NOTE
If an exclusive discount existed at priority 5, then it would have been ignored as exclusive discounts cannot co-exist with other
discounts which have been applied at a higher priority

Step 6: At priority 5, evaluate Simple , Quantity , or Mix and Match discounts. The following table illustrates this.
T RA N SA C T IO DISC O UN T ED P RIO RIT Y 5 P RIO RIT Y 5
N Q UA N T IT Y P RO DUC T P RIC E ( C 3) ( B P 2) TOTA L EXP L A N AT IO N

1 Prod1 $8.50 $2.13** $1.7 $8.50 – 2.13 Because the


= $6.37 discounts
across
priorities are
compounded,
the discounts
at priority 5
are
compounded
on the
discounts
applied at
priority 10. C3
gives the
highest
discount so
C3 gets
applied at
priority 5.

1 Prod2 $17 $4.25** $3.40 $17.00 – 4.25 Same as


= $12.75 above.
Because C3
gives the
highest
discount, C3
gets applied at
priority 5.

1 Prod3 $10 $2.5** $2.0 $10 – 2.5 = Same as


$7.5 above.
Because C3
gives the
highest
discount, C3
gets applied at
priority 5.

Step 7: Evaluate Threshold discounts.

DISC O UN T
T RA N SA C T I A P P L IED AT DISC O UN T
ON P RIO RIT Y A P P L IED AT DISC O UN T E P RIO RIT Y 5 A M O UN T EXP L A N AT I
Q UA N T IT Y P RO DUC T 10 P RIO RIT Y 5 D P RIC E ( C 4) DUE ON
DISC O UN T
T RA N SA C T I A P P L IED AT DISC O UN T
ON P RIO RIT Y A P P L IED AT DISC O UN T E P RIO RIT Y 5 A M O UN T EXP L A N AT I
Q UA N T IT Y P RO DUC T 10 P RIO RIT Y 5 D P RIC E ( C 4) DUE ON

1 Prod1 BP1 C3 $6.37 (NA) $6.37 For


Threshold
discounts,
Priority 5 is
highest
applicable
priority for
this
product.
But the
threshold
discount at
priority 5
will only get
applied if
there is no
other
discount
applied at
the priority
5. This is
because
both best
price and
compound
discounts
are treated
as "Best
price" and
only one
discount
per priority
is allowed
with this
discount
concurrency
control. So,
the
threshold
discount is
ignored.

1 Prod2 BP1 C3 $12.75 (NA) $12.75 Same as


above

1 Prod3 C3 $7.5 (NA) $7.5 Same as


above

The final amount due for prod1 is 6.37, Prod 2 is 12.75, and Prod 3 is 7.5.

NOTE
For the same discount setting, the results vastly differ depending on which discount concurrency control model is selected.
Determine the optimal combination of overlapping
discounts
2/1/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

When discounts overlap, you must determine the combination of overlapping discounts that will produce the
lowest transaction total or the highest total discount. When the discount amount varies according to the price of the
products that are purchased, such as in the common "Buy 1, get 1 X percent off" (BOGO) retail discount, this
process becomes an issue of combinatorial optimization.
This article applies to Microsoft Dynamics AX 2012 R3 with KB 3105973 (released November 2, 2015) or later, and
to Dynamics 365 Commerce. To determine the combination overlapping discounts to apply in a timely manner, we
have introduced a method for applying overlapping discounts. We call this new method marginal value ranking .
Marginal value ranking is used when the time that is required in order to evaluate the possible combinations of
overlapping discounts exceeds a threshold that is configurable on the Commerce parameters page. In the
marginal value ranking method, a value is calculated for each overlapping discount by using the discount's value on
the shared products. The overlapped discounts are then applied from the highest relative value to the lowest
relative value. For details about the new method, see the "Marginal value" section, later in this article. Marginal
value ranking isn't used when the discount amounts for a product aren't affected by another product in the
transaction. For example, this method isn't used for two simple discounts, or for a simple discount and a single
product quantity discount.

Discount examples
You can create an unlimited number of discounts on a common set of products. However, because there is no limit,
performance issues can occur when you try to calculate the discounts that should be used on the various products.
The following examples illustrate this issue in more detail. In example 1, we start with two products and two
overlapping discounts. Then, in example 2, we show how the issue evolves as more products are added.
Example 1: Two products and two discounts
In this example, two products are required in order to qualify for each discount, and the discounts can't be
combined. The discounts in this example are Best price discounts. Both products qualify for both discounts. Here
are the two discounts.

For any two products, the better of these two discounts depends on the prices of the two products. When the price
of both products is equal or almost equal, discount 1 is better. When the price of one product is significantly less
than the price of the other product, discount 2 is better. Here is the mathematical rule for evaluating these two
discounts against each other.
NOTE
When the price of product 1 is equal to two-thirds of the price of product 2, the two discounts are equal. In this example, the
effective discount percentage for discount 1 varies from a few percent (when the prices of the two products are far apart) to a
maximum of 25 percent (when the two products have the same price). The effective discount percentage for discount 2 is
fixed. It's always 20 percent. Because the effective discount percentage for discount 1 has a range that can be more than or
less than discount 2, the best discount depends on the prices of the two products that must be discounted. In this example,
the calculation is completed quickly, because only two discounts are applied on only two products. There are only two
possible combinations: one application of discount 1 or one application of discount 2. There are no permutations to calculate.
The value of each discount is calculated by using both products, and the best discount is used.

Example 2: Four products and two discounts


Next, we will use four products and the same two discounts. All four products qualify for both discounts. There are
twelve possible combinations. In the end, two discounts will be applied to the transaction in one of three
combinations: two applications of discount 1, two applications of discount 2, or one application of discount 1 and
one application of discount 2. To illustrate the possible combinations, we will look at two different sets of four
products that have different prices:
All four products have the same price, $15.00. In this case, the best discount combination is two applications of
discount 1. Two products will be full price, and two will be 50 percent off. The discounted total for the transaction
is $45 (15 + 15 + 7.50 + 7.50), which is $15 (25 percent) off the undiscounted total of $60. Discount 2 is only
$12 (20 percent).
Two products are $20 each, one product is $15, and one product is $5. In this case, the best discount
combination is one application of discount 2 and one application of discount 1. The following tables illustrates
the discounts.
To read the tables, use one product from a row and one product from a column. For example, in the table for
discount 1, when you combine the two $20 products, you get $10 off. In the table for discount 2, when you
combine the $15 product and the $5 product, you get $4 off.

First, we find the largest discount that is available from any two products by using either discount. The two tables
show the discount amount for all combinations of the two products. The shaded portions of the tables represent
either cases where a product is paired with itself, which we can't do, or a reverse pairing of two products that
produces the same discount amount and can be ignored. By looking at the tables, you can see that discount 1 for
the two $20 items is the largest discount that is available for either discount on all four products. (This discount is
highlighted in green in the first table.) That leaves only the $15 product and the $5 product. By looking at the two
tables again, you can see that, for these two products, discount 1 gives a $2.50 discount, whereas discount 2 gives a
$4 discount. Therefore, we select discount 2. The total discount is $14. To make this discussion easier to visualize,
here are two additional tables that show the effective discount percentage for all possible two-product
combinations for both discount 1 and discount 2. Only half the list of combinations is included, because, for these
two discounts, the order in which the two products are put into the discount doesn't matter. The highest effective
discount (25 percent) is highlighted in green, and the lowest effective discount (10 percent) is highlighted in red.

NOTE
When prices vary, and two or more discount compete, the only way to guarantee the best combination of discounts is to
evaluate both discounts and compare them.

Total possible combinations


This section continues the example from the previous section. We will add more products and another discount,
and see how many combinations must be calculated and compared. The following table shows the number of
possible discount combinations as the product quantity increases. The table shows what happens both when there
are two overlapping discounts, as in the previous example, and when there are three overlapping discounts. The
number of possible discount combinations that must be evaluated soon exceeds what even a fast computer can
calculate and compare quickly enough to be acceptable for retail transactions.

When even larger quantities or more overlapping discounts are applied, the total number of possible discount
combinations quickly goes into the millions, and the time that is required in order to evaluate and select the best
possible combination quickly becomes noticeable. Some optimizations have been done in the price engine to
reduce the total number of combinations that must be evaluated. However, because the number overlapping
discounts and the quantities in a transaction aren't limited, a large number of combinations will always have to be
evaluated whenever there are overlapping discounts. This issue is the issue that the marginal value ranking method
addresses.

Marginal value method


To resolve the issue of an exponentially increasing number of combinations that must be evaluated, an optimization
exists that calculates the value per shared product of each discount on the set of products that two or more
discounts can be applied to. We refer to this value as the marginal value of the discount for the shared products.
The marginal value is the average per product increase in the total discount amount when the shared products are
included in each discount. The marginal value is calculated by taking the total discount amount (DTotal), subtracting
the discount amount without the shared products (DMinus\ Shared), and dividing that difference by the number of
shared products (ProductsShared).
After the marginal value of each discount on a shared set of products is calculated, the discounts are applied to the
shared products in order, exhaustively, from highest marginal value to lowest marginal value. For this method, all
remaining discount possibilities aren't compared every time after a single instance of a discount is applied. Instead,
the overlapping discounts are compared one time and then applied in order. No additional comparisons are done.
You can configure the threshold to switch to the marginal value method on the Discount tab of the Commerce
parameters page. The acceptable time to calculate the total discount varies across retail industries. However, this
time generally falls in the range of tens of milliseconds to one second.
Define channel-specific discounts
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic reviews the concepts you need to know to create a discount for a specific channel.

Channel-specific discounts
Retailers often offer different discounts in different channels. This may be done to address local market conditions
or to deal with competing retailers.
Commerce uses price groups to define channel-specific discounts. Price groups can be assigned to one or more of
the following entities: channels, catalogs, affiliations, and loyalty programs. This article discusses channels, but the
same concepts apply to catalog discounts, affiliations discounts, and loyalty discounts.

Price groups

The diagram above illustrates the relationship between entities that may be on a transaction (channel, catalog,
affiliation, customer, loyalty card) and the various discount types that can be configured. All transactions occur in a
channel, so the channel is guaranteed to be present on a transaction. The remaining entities are optional. On each
master data pages there is a link to a related price groups page where you can view and add price groups as
needed. A price group is used to relate four different types of entities to discounts, price adjustments, and trade
agreements. We recommend that you plan a strategy for how you will name your price groups to keep them
organized. One option would be to use a letter or number prefix or suffix to distinguish between the different types.
For example, 1-xxxxx for channel price groups and 2-xxxxx for catalog price groups. There are four inquiry pages
that focus on each of the commerce entities that can have discounts associated to them.
Channel channel price groups – This page shows a list of channels and discounts linked together for each
price group.
Catalog price groups – This page shows a list of catalogs and discounts linked together for each price group.
Loyalty price groups – This page shows a list of loyalty programs and discounts linked together for each price
group.
Affiliation price groups – This page shows a list of affiliations and discounts linked together for each price
group.

Example channel discount set up


The following example illustrates the tasks involved in setting up a channel discount.
1. For this example, you have a channel called Houston , and you're going to create a new discount called Back-
to-School .
2. Because the pricing and discount strategy includes the possibility of channel discounts, you always create a
channel-specific price group when you create a channel.
3. You have the price group Houston-PG and it is assigned to the Houston channel.
4. After you create the new Back-to-School discount, you need to click Price groups on the top of the Discount
page. The Discount price groups page will open. Next, click New and select the Houston-PG price group.
5. Now you can enable the discount and push it to the channel.

Additional resources
Price adjustments and discounts
Options for preventing discounts for retail products
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

There are various reasons why retailers may want to prevent some products from being discounted, either from a
promotion or during the sale at the POS.
The following options, which can be found on the Commerce tab of released products, will allow the product to be
configured to prevent all or manual discounts. The settings can also be specified at the category level from the
category hierarchy.
Prevent all discounts – Select this option to prevent all types of discounts from being applied to this product.
This includes promotions such as mix and match, quantity and threshold discounts, as well as manual line and
transaction discounts that are applied during a sale by a POS user.
Prevent manual discounts – Select this option to only prevent the manual line or transaction discounts that
are applied during a sale by a POS user. Products with this option selected are still eligible for promotions, such
as mix and match and quantity and threshold discounts.

NOTE
These settings do not restrict the price override operation, because that sets the base price and is not treated as a discount.
Tender-based discounts
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

It's a common practice among retailers to release private, branded credit cards. The retailers benefit because they
get preferred rates from the banks. Additionally, because these credits cards can encourage customers to visit the
store more often, they help improve the retailer's bottom line. Therefore, retailers have an incentive to increase
customer use of their branded credit cards. To achieve this goal, they often provide additional discounts to
customers who use these credit cards.
Alternatively, retailers who don't provide branded credit cards might want to encourage customers to pay by using
other tender types, such as cash, gift cards, or loyalty points. In this way, they can help reduce the expense of credit
card processing fees. Therefore, retailers might provide discounts to customers who use these alternative tender
types.
In Microsoft Dynamics 365 Commerce, retailers can configure a discount percentage that is applied to qualified
lines if the customer pays by using the preferred tender type. The customer can decide whether to do a partial
payment or a full payment, and Commerce determines the appropriate discount amount. Note that the discount is
always given on the pre-tax amount of the qualified items.
Tender-based discounts don't compete with item-based discounts, such as periodic or manual discounts. They are
always compounded over the item discounts. Therefore, even if an exclusive periodic discount is applied to an item,
the tender-based discount is still applied on top of the exclusive periodic discount. Likewise, if a threshold discount
is applied to the transaction, and the tender-based discount reduces the total below the threshold, the threshold
discount is still applied to the transaction.
Even though tender-based discounts reduce the subtotal of the transaction, automatic charges that are applied to
the transaction aren't affected. For example, if the delivery charges are calculated as $5 because the subtotal was
more than $100, and the tender-based discount reduces the amount so that it's less than $100, the delivery charges
are still $5 for the order.

NOTE
Tender-based discounts are proportionally distributed to the qualified sales lines and reduce the pre-tax amount of the
individual lines. If multiple tender-based discounts are configured for a tender type (for example, cash), only the best tender-
based discount is applied.

Tender-based discounts can be applied only to sales lines where the prices aren't locked. If new sales lines are
added to an order, the tender-based discount is applied to the new sales lines only during payment. While a
customer order for pickup or shipment is being placed, the tender-based discount is applied only to the deposit
amount. After the order is placed, during fulfillment, the prices of the sales lines are locked. Therefore, no tender-
based discount is applied to any balance that is paid during pickup or authorized during shipment. The tender-
based discount can be applied to the whole amount of a customer order only if the retailer collects the whole
amount as a deposit while the order is being placed.
IMPORTANT
In Commerce, tender-based discounts are currently limited to two payment types: credit cards and cash.

POS user experience


If the tender-based discount is set up for cash, and the cashier at the point of sale (POS) selects a button that is
mapped to the Pay cash operation, the tender-based discount is automatically applied to the transaction. The
reduced amount is then shown as the balance. However, if the cashier selects the Back button on the payment
screen, the discount is removed, and the original amount is shown on the transaction screen. The tender-based
discount is removed if the payment line is voided.
For cards payments, retailers can set the tender-based discount on one or more types of credit cards. However, the
system can't verify the type of credit card that is used unless the card is authorized. If the discount is applied after
authorization, the payment authorization will be for a larger amount, but the payment capture will be for a smaller
amount.
To help prevent this situation, if a customer pays with a credit card, the cashier sees a dialog box that lists credit
cards that will bring the customer additional savings. The cashier can then ask whether the customer wants to use
one of the preferred cards to get an additional discount. If the cashier uses a preferred card, the tender-based
discount is applied to the transaction, and the reduced amount is shown on the payment screen. The authorization
will be for the reduced amount. If the customer inserts a card that differs from the card that the cashier selected, an
error message is shown, and the authorization is voided.

Call center user experience


When the user selects Complete during a call center order, the Totals screen is shown. At first, the totals on this
screen don't include tender-based discounts, because the payment method hasn't yet been selected. On the Add
payment screen, if the user selects the payment method that the tender-based discount is configured for, the
payment amount is automatically adjusted so that it reflects the discounted amount. Like the customer at the POS,
the call center customer can decide whether to pay the full payment or a partial payment. Based on the amount that
is paid, the tender-based discount is applied to the sales order.

NOTE
Card validation isn't done for call center orders. For example, if the call center user selects Visa as the credit card, but the
customer uses Mastercard, the system still applies the discount.

Exclude items from discounts


Retailers often choose to exclude some products, such as new items or in-demand items, from discounts. However,
they might still want to apply tender-based discounts. For example, a retailer configures Commerce so that it
doesn't allow item-based discounts or manual discounts. However, if the customer pays by using the preferred
tender, Commerce still applies the tender-based discount. To set up Commerce in this manner, retailers must go to
Product information management > Products > Released products , select the item, and then, on the
Commerce FastTab, set the Prevent all discounts and Prevent tender based discounts options to No , and
the Prevent discounts and Prevent manual discounts options to Yes .

NOTE
When the Prevent all discounts configuration is set to Yes , no discounts will be applied to the product. Not even tender-
based discounts will be applied.
Shipping discount overview
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the shipping promotion capability available within Dynamics 365 Commerce.
Free or discounted shipping is one of the highly influencing factors driving the customers' online purchase
decisions. Many retailers also leverage the free shipping benefit to motivate the customers to increase their basket
size, thus increasing the revenue per transaction. With the 10.0 release of Retail, retailers can use "Retail shipping
threshold discount" to define the thresholds, which once met, will qualify the customers for discounted or free
shipping. For example, spend $50 or more to get free 'Overnight shipping' or sign up for the loyalty program and
get free 'Two-day shipping'.
This feature leverages the advanced auto charges capability that was available in the call center and e-Commerce
modules but has now been made available in POS. For more information, see Omni-channel advanced auto
charges. These advanced auto charges need to be enabled for shipping promotion to work. These can be enabled
by turning on the "Use advanced auto-charges" configuration on the Commerce parameters > Customer
orders tab. Retailers can use the advanced auto charges feature to set various types of charges such as handling,
installation, and disposal, however, the shipping discount is only applied to the shipping charges. Thus, the retailer
needs to specify which of the charges are shipping charges. To specify a shipping charge, go to Retail and
Commerce > Retail and Commerce IT > Channel setup > Charges > Charge codes . Select the Shipping
charge check box for the desired charges. This is the only prerequisite for using the shipping threshold discount.

The next step is to configure the shipping discount itself. To do this, go to Retail and Commerce > Pricing and
discounts > shipping discounts > Shipping threshold discount . You can define the thresholds, set the
discount percent that should be applied when the thresholds are met, and choose a mode of delivery for which this
discount applies, such as Standard overnight or Two-day shipping.
Like product discounts, this discount honors all the existing standard discount capabilities, such as allowing the
retailer to restrict these discounts with coupons so that only the customers with coupons can get these discounts.
Also, these discounts leverage the Price groups capability to determine the eligibility of the discount. For example,
the retailer can choose to run these promotions only in the online channels and/or across channels for certain
customer groups such as loyalty customers. Lastly, to view the charges applied on the sales lines and the applied
promotion, you need to add Manage charges on the POS screen. Go to the Screen layout page to make those
changes. Now run the jobs 1020, 1040, 1090, and 1110 to send the charges, shipping promotion, and screen layout
information to the channels.
When the cashier creates a customer order on POS or the customer places an order on an e-Commerce website,
the charges are calculated automatically. However, if the mode of delivery on the order meets the mode of delivery
and the transaction amount meets the threshold set on the shipping threshold discount, then the shipping discount
gets applied. Currently, the shipping discounts apply only on POS and e-Commerce orders. These discounts will
also be available for call center orders in a future release of the app.

NOTE
Unlike product discounts such as quantity, simple, mix and match, and threshold discounts, the shipping discount does not
create discount lines. Instead, the shipping discount edits the shipping charge directly and appends the name of the discount
to the charge description.
Set up coupons for retail sales
2/13/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Overview of coupons
Coupons are codes and bar codes that are used to add discounts to transactions. Each coupon can have multiple
codes, and each code can have its own effective dates.
Each coupon is related to one discount. The price groups that are associated with the discount define the customers
that can use a coupon or the channels where a coupon is valid.
Essentially, coupons are additional validation on top of discounts. The coupon provides the coupon codes and bar
codes that are required, together with date ranges for those codes. The coupon also provides optional usage limits
and customer required properties. The discount provides the set of products that the coupon is valid for. The price
groups for the discount provide the set of customers, channels, or catalogs that the coupon is valid for.
To create a coupon, you create the discount and the coupon separately. You then link them by selecting the discount
on the coupon page in Commerce.

NOTE
After a coupon is linked to a discount, several fields on the discount page in Commerce become read-only, because they are
managed by the coupon's settings. These fields include the fields for the status and standard date ranges.

Limited-use coupons
Coupons can be configured as limited-use coupons. The usage limit can be defined per customer or channel, or as a
global limit. This limit is enforced when the code or bar code is entered or scanned in POS or during sales order
entry.
The limit is enforced per coupon code on a coupon. For example, a single-use coupon that has two coupon codes
can be used two times: one time for each coupon code. Each code on a coupon can be independently set to active.

NOTE
Once a coupon code has reached its usage limit, the system does not automatically change the status of the coupon code to
"Used". The system however, does not allow further usage of a coupon code which has reached its usage limit. If the status of
a coupon code is manually set to anything apart from "Active" then this coupon code cannot be used in any channel.

Managing coupons
You must create the discount and the coupon separately. You then link them by selecting the discount on the
coupon page. After you link a coupon to a discount, several fields for the discount become read-only, because they
are managed by the coupon's settings. These fields include the fields for the status and standard date ranges.
Essentially, coupons are now additional validation on top of discounts. The coupon provides the coupon codes and
bar codes, together with date ranges, the usage limits, and the customer required property. The discount provides
the set of products that the coupon is valid for. The discount's price groups provide the set of customers, channels,
or catalogs that the coupon is valid for.

System setup for coupons


Before you can set up a coupon, you must set up the coupon bar code and two coupon number sequences.
1. On the Mask characters page, create a new mask character for the coupon code. You can select any unused
character.
2. On the Bar code mask setup page, create a new bar code mask. Set the Type field to Coupon .
3. On the Bar code setup page, create a new bar code that uses the bar code mask that you just created.
4. On the Number sequences page, create two new number sequences. One sequence is for the coupon code
ID, and the other sequence is for the coupon number. The coupon code ID is the unique identifier for each
coupon code for a coupon. The coupon number is the unique identifier for a coupon. Each coupon can have
multiple codes and bar codes that trigger the coupon.

NOTE
For both number sequences, you must set the Scope field to Company . In most cases, you should automatically
generate both sequence numbers.

5. On the Commerce parameters page, on the Bar codes tab, select the bar code that you created earlier.
6. On the Commerce shared parameters page, on the Number sequences tab, select the number
sequences that you created for the coupon number and coupon code ID.
7. You can now open the Coupons page and create new coupons.

The effect of partial updates on coupons


Coupon functionality comprises multiple distinct features. Commerce Headquarters (HQ) and the channel can be
partially updated across components. Therefore, it's important that you understand how partial updates affect
coupon functionality as a whole.
HQ is par tially updated, but Commerce Scale Unit and POS aren't updated. In an HQ update, the
coupon and discount pages are updated, and the commerce price engine is also updated. If only one of those
two components is updated, some pages in Commerce won't match the price calculation data. Therefore,
unexpected discount calculations or errors might occur during discount calculations.
HQ is updated, but Commerce Scale Unit and POS aren't updated (N-1). Because not all stores can be
updated at the same time, we recommend that you update HQ before you update stores. In the N-1 scenario,
new functionality that is related to coupons won't be available in stores that haven't been updated yet. For
example, the coupon functionality introduces "exclude" lines. If you use exclude lines on a discount, they won't
be applied in a store that is running an earlier version.
HQ isn't updated, but Commerce Scale Unit and POS are updated (N+1). Because the updated price
engine in Commerce Scale Unit can handle legacy discount codes during price calculations, the update should
have no functional impact in this scenario.
Show discounts in POS
4/16/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Promotions play an important role in motivating customers who are making purchasing decisions. For example,
holidays can produce the highest number of sales for retailers, because the whole retail market is flooded with
enticing promotions and discounts. If store associates know about and understand the promotions that are
available, they can easily take advantage of those promotions to cross-sell and upsell items. This topic explains how
Microsoft Dynamics 365 Commerce helps sales associates learn about promotions and how they can be used for
cross-sell and upsell motions.

Learn about store discounts


Commerce includes an operation that is named "View all discounts." This operation shows all the discounts that are
currently running in a store. The "View all discounts" operation can be mapped to a button in the point of sale
(POS), and that button can be added to the Welcome page or the Transaction page. The following illustration
shows an example of the All discounts page that is opened.

To show discounts, the system looks for all the discounts that match one or more of the following conditions:
The price group of the discount matches the price group of the store.
The price group of the discount is mapped to an affiliation or loyalty program.
The price group of the discount is mapped to a catalog that is associated with the store.
The All discounts page shows only some coupon-based discounts, because retailers typically create thousands of
coupons and corresponding discounts for unique customers, and this page isn't intended to show customer-specific
discounts. Coupon-based discounts are shown only if the Apply without a coupon code option is turned on in
each coupon header. In that case, cashiers can apply the coupon without having to enter or scan any coupon code
or bar code.
When the Apply without a coupon code option is turned on, various scenarios become available. For example,
cashiers can give additional discounts to customers for customer appeasement purposes or because of product
defects. Printed coupon codes or bar codes don't have to be distributed to cashiers. Instead, cashiers can select the
Apply coupon button. The coupon is then automatically applied to the transaction. If multiple coupons exist for a
coupon header, the system automatically selects the first active coupon on the transaction.
On the All discounts page, sales associates can also search discounts by keywords. The keyword search looks in
the fields that hold the discount name and discount description. Sales associates can also filter discounts based on
whether a discount requires a coupon code.

Cross-sell and upsell by using discounts


Multiline discounts, such as quantity discounts, mix-and-match discounts, and threshold discounts, are a great way
to motivate customers to buy more products to get larger discounts. Therefore, they also help increase the size of a
customer's cart and retailer revenue. These discounts can be publicized on e-commerce websites, on social media,
and on banners in the store.
However, even when all these publicity methods are used, customers might miss the opportunity to take advantage
of promotions. To make it easy for sales associates to learn what promotions are applicable to a selected line, or
even to the whole cart, retailers can add the button for the "View all discounts" operation to any button grid in POS.
We recommend that the button be added to the button grid for the Transaction page. In that way, a sales associate
can select a transaction line and then select the button to show all the discounts that are available for the selected
line. The sales associate can also select another tab to show discounts that apply to the whole transaction.
The All discounts page that was mentioned earlier shows only discounts that don't compete with any of the
applied discounts. This behavior helps ensure that, if a sales associate informs a customer about a discount, and the
customer takes the required action (for example, the customer buys one more item to get 10 percent off), the
discount is applied to the transaction. As was mentioned earlier, coupon-based discounts are shown only when the
Apply without a coupon code option is turned on.
In a simple scenario where all discounts have the same priority, the discount concurrency mode is Compounded ,
and the discount concurrency control is set to Best price and compound within priority, never compound
across priorities , the All discounts page shows all available discounts for a product, because all the discounts
are compounded and don't compete with each other.
The following illustrations show the logic that determines which discounts are shown in advanced scenarios, such
as a scenario where the discount concurrency mode is Best price or Exclusive , and two or more priorities are
used. In these scenarios, the discounts that are shown are further affected based on whether the discount
concurrency control is set to Best price and compound within priority, never compound across priorities
or Best price only within priority, always compound across priority .
The following illustration shows the logic that is used when the discount concurrency control is set to Best price
and compound within priority, never compound across priorities .
.
The following illustration shows the logic that is used when the discount concurrency control is set to Best price
only within priority, always compound across priority .
.
Retail price reports
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In order to provide competitive prices to their customers, retailers often change prices of products. Store managers
want the ability to easily access recent or upcoming price changes so that they can plan for the required resources
to update the price labels displayed on the store shelves. With release 10.0 of Retail, a store manager can open the
Price report by navigating to All stores > Store > Price repor t and viewing the updated prices for the products
associated to the store.
To enable the price report, the Enable price repor t for store parameter must be turned on. This parameter is
located on the Commerce parameters > Discounts > Miscellaneous tab. Opening the Price repor t page
displays a dialog box with various configurations. The available configurations are listed below.

C O N F IGURAT IO N DESC RIP T IO N

From date / To date The date range for which the price report should be
generated. The duration is currently limited to 7 days.

Channel The store for which the price report should be generated.

Display products with available inventory Setting this to Yes will show the prices for only those products
which currently have physical inventory available in the store.

Display prices for variants Setting this to Yes will display the prices of the variants along
with the product masters. This should only be turned On if
you have variant-specific prices, because the number of rows
grows very large. In future releases, we will enable the
dimensions-based prices so that the store manager can
choose the dimensions for which the prices should be
displayed.

Display products with price changes Setting this to Yes will display the prices for only those dates
on which the price has been changed. The price for one day
before the selected From date will always be displayed, so
that the store manager can easily identity the products which
have not changed prices for the entire selected duration, and
can also view the current price.

After the report is generated, the Excel file can be downloaded for any additional filtering needs. The price report
can also be used to check the historical prices of products for past dates.
Base price and trade agreements
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through creating channel-specific sales price trade agreements. This procedure uses the USRT
demo data company.
1. In the Navigation pane , go to Modules > Retail and Commerce > Pricing and discounts management
> Price groups > All price groups . Price groups are how trade agreements are assigned to specific channels.
Using price groups to assign trade agreements to a channel enables channel-specific pricing.
2. Click New .
3. In the Price groups field, type a value.
4. In the Name field, type a value.
5. Click Save .
6. Close the page.
7. In the Navigation pane , go to Modules > Retail and Commerce > Channels > Stores > All stores .
8. In the list, select 'New York'
9. On the Action Pane, click Store .
10. Click Price groups .
11. Click New .
12. In the Price groups field, click the drop-down button to open the lookup.
13. In the list, find and select the desired record.
14. Click Save .
15. Close the page.
16. Close the page.
17. In the Navigation pane , go to Modules > Retail and Commerce > Products and categories >
Released products by categor y .
18. In the list, click the link in the selected row.
19. Click Edit .
20. Expand the Sell fastTab.
21. In the Price field, enter a number. This price is used if no applicable trade agreements are found.
22. Click Save .
23. On the Action Pane , click Sell .
24. Click Create trade agreements .
25. Click New .
26. In the Name field, click the drop-down button to open the lookup.
27. In the list, select Commerce . In the demo data, the Commerce journal name has the default relation of Price
(sales) . That means all new lines created will default to sales price trade agreements.
28. On the Action pane , click Lines .
29. In the Account code field, select 'Group'.
30. In the Account selection field, click the drop-down button to open the lookup.
31. In the list, find and select the desired record. This will complete the link from Channel to Price group to Trade
agreement.
32. In the Item relation field, type a value.
33. In the Amount in currency field, enter a number.
34. In the Details fastTab, check or uncheck the Find next checkbox. When Find next is set to 'Yes', the pricing
engine will continue to search for applicable trade agreements with a lower sale price. When Find next is set to
'No', the price engine stops searching and uses the trade agreement.
35. Click Post .
36. Click OK .
37. Close the page.
38. On the Action Pane , click Sell.
39. Click Sales price .
Category pricing rules to create trade agreements
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure demonstrates how to create sales price trade agreements using a category pricing rule. The demo
data company used to create this task is USRT. This task is intended for the Commerce merchandising manager
role.
1. Click Pricing and discount management.
2. Click New.
3. Click Category price rule.
4. In the list, mark the selected row.
5. In the Account code field, select an option.
A "Group" type account code is used to set up sales price trade agreements that are specific for Channels,
Loyalty programs, Catalogs, and Affiliations.
6. In the Account selection field, enter or select a value.
7. In the Category field, enter or select a value.
8. In the Amount/Percent field, enter a number.
9. In the Rounding version field, enter or select a value.
10. Click Generate trade agreements.
11. Click Next.
12. In the From date field, enter a date.
13. In the To date field, enter a date.
14. Select Yes in the Find next field.
15. Click Next.
16. Click Finish.
This creates a Trade agreement journal and opens it for your review.
17. In the list, find and select the desired record.
The trade agreement journals created from the Category pricing rules aren't posted. You can review and
edit the prices generated before posting them.
18. Click Edit.
19. In the Amount in currency field, enter a number.
20. Click Post.
21. Click OK.
22. Close the page.
23. Close the page.
24. Click the Category price rules tab.
Channel specific Category pricing rules will show in this list.
Product recommendations overview
3/19/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Microsoft Dynamics 365 Commerce can be used to show product recommendations on the e-Commerce website
and point of sale (POS) device. Product recommendations are items that a customer might be interested in. The
recommendations are based on the purchase trends of other customers in online and brick-and-mortar stores.
Product recommendations allow customers to easily and quickly find products that they want while they have an
experience that serves them well. Cross-selling and upselling can even be used to assist customers find
additional products that they didn't originally intend to buy. When recommendations are used to enhance
product discovery, they create more conversion opportunities, help increase sales revenue, and even amplify
customer satisfaction and retention.
In e-Commerce, product recommendations are powered by Microsoft Recommendations machine learning
technologies on a large scale.

Recommendation service
The product recommendations service utilizes artificial intelligence and machine learning (AI-ML) technologies in
the following way:
Data in the format that the Recommendation service requires is extracted from the Commerce operational
database and sent to Azure data lake storage (ADLS) or Entity store.
The recommendations service uses the stored data to train recommendation models for the People also
like , Frequently bought together , New , Best selling , and Trending lists.

Scenarios
Product recommendations are available for the following scenarios:
On any store page for browsing or landing page in e-Commerce: If customers or store associates
visit a store page, the recommendation engine can suggest products in the New , Best Selling , and Trending
lists.
On the Product details page: If customers or store associates visit a Product details page, the
recommendation engine suggests additional items that are also likely to be purchased. These items appear in
the People also like list.
On the Transaction page or the checkout page: The recommendation engine suggests items, based on
the whole list of items in the basket. These items appear in the Frequently bought together list.
Personalized recommendations: Merchandizers can provide signed-in customers a personalized picks
for you list, in addition to new functionality that allows for existing list scenarios to be personalized based on
that customer. To learn more, see Enable personalized recommendations..
Types of product recommendations
The following table describes various types of automated product recommendations available for retailers to
implement in their Dynamics 365 Commerce solution via the product collection module. Retailers can also show
personalized results for a signed-in user if the site author chooses that option.

P RO DUC T C O L L EC T IO N M O DUL E TYPE DESC RIP T IO N

New Algorithmic This module shows a list of the newest


products that have been recently
assorted to channels and catalogs.

Best selling Algorithmic This module shows a list of products


that are ranked by the highest number
of sales.

Trending Algorithmic This module shows a list of the


highest-performing products for a
given period, ranked by highest
number of sales.

Frequently bought together AI-ML This module recommends a list of


products that are commonly purchased
together with the contents of the
consumers current cart.

People also like AI-ML This module recommends products for


a given seed product based on
consumer purchase patterns.

Picks for you AI-ML This module recommends a


personalized list of products based on
purchase patterns of the signed-in
user. For a guest user, this list will be
collapsed.

Additional resources
Enable ADLS in a Dynamics 365 Commerce environment
Enable product recommendations
Enable personalized recommendations
Opt out of personalized recommendations
Add product recommendations on POS
Add recommendations to the transaction screen
Adjust AI-ML recommendations results
Manually create curated recommendations
Create recommendations with demo data
Product recommendations FAQ
Enable ADLS in a Dynamics 365 Commerce
environment
4/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to enable and test Azure Data Lake Storage (ADLS) for a Dynamics 365 Commerce
environment, which is a prerequisite for enabling product recommendations.

Overview
In the Dynamics 365 Commerce solution, all product and transaction information is tracked in the environment's
Entity store. To make this data accessible to other Dynamics 365 services, such as data analytics, business
intelligence, and personalized recommendations, it is necessary to connect the environment to a customer-owned
Azure Data Lake Storage Gen 2 (ADLS) solution.
As ADLS is configured in an environment, all necessary data is mirrored from the Entity store while still being
protected and under customer's control.
If product recommendations or personalized recommendations are also enabled in the environment, then the
product recommendations stack will be granted access to the dedicated folder in ADLS to retrieve the customer’s
data and compute recommendations based on it.

Prerequisites
Customers need to have ADLS configured in an Azure subscription that they own. This topic does not cover the
purchase of an Azure subscription or the setup of an ADLS-enabled storage account.
For more information about ADLS, see ADLS official documentation.

Configuration steps
This section covers the configuration steps necessary for enabling ADLS in an environment as it relates to product
recommendations. For a more in-depth overview of the steps required to enable ADLS, see Make entity store
available as a Data Lake.
Enable ADLS in the environment
1. Log in to the environment's back office portal.
2. Search for System Parameters and navigate to the Data connections tab.
3. Set Enable Data Lake integration to Yes .
4. Set Trickle update Data Lake to Yes .
5. Next, enter the following required information:
a. Application ID // Application Secret // DNS Name - Needed to connect to KeyVault where the
ADLS secret is stored.
b. Secret name - The secret name stored in KeyVault and used to authenticate with ADLS.
6. Save your changes in the top left corner of the page.
The following image shows an example ADLS configuration.

Test the ADLS connection


1. Test the connection to KeyVault using the Test Azure Key Vault link.
2. Test the connection to ADLS using the Test Azure Storage link.

NOTE
If the tests fail, double-check that all of the KeyVault information added above is correct, then try again.

Once the connection tests are successful, you must enable automatic refresh for Entity store.
To enable automatic refresh for Entity store, follow these steps.
1. Search for Entity Store .
2. In the list on the left, navigate to the RetailSales entry, and select Edit .
3. Ensure that Automatic Refresh Enabled is set to Yes , select Refresh , and then select Save .
The following image shows an example of Entity store with automatic refresh enabled.
ADLS is now configured for the environment.
If not completed already, follow the steps for enabling product recommendations and personalization for the
environment.

Additional resources
Make entity store available as a data lake
Product recommendations overview
Enable product recommendations
Enable personalized recommendations
Opt out of personalized recommendations
Add product recommendations on POS
Add recommendations to the transaction screen
Adjust AI-ML recommendations results
Manually create curated recommendations
Create recommendations with demo data
Product recommendations FAQ
Enable product recommendations
4/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to make product recommendations that are based on artificial intelligence-machine
learning (AI-ML) available for Microsoft Dynamics 365 Commerce customers. For more information about
product recommendation lists, see Product recommendations overview.

Recommendations pre-check
Before enabling, note that product recommendations are only supported for Commerce customers who have
migrated their storage to using Azure Data Lake Storage (ADLS).
The following configurations must be enabled in the back office before enabling recommendations:
1. Ensure that ADLS has been purchased and successfully verified in the environment. For more information, see
Ensure that ADLS has been purchased and successfully verified in the environment.
2. Ensure that the entity store refresh has been automated. For more information, see Ensure that the Entity
store refresh has been automated.
3. Confirm that Azure AD Identity configuration contains an entry for Recommendations. More information on
how to do this action is below.
Additionally, ensure that RetailSale measurements have been enabled. To learn more about this set up process,
see Work with measures.

Azure AD Identity configuration


This step is required for all customers running an infra-structure as a service (IaaS) configuration. For customers
running on service fabric (SF), this step should be automatic and we recommend verifying the setting is
configured as expected.
Setup
1. From the back office, search for the Azure Active Director y applications page.
2. Verify if an entry exists for "RecommendationSystemApplication-1".
If the entry does not exist, add a new entry with the following information:
Client Id - d37b07e8-dd1c-4514-835d-8b918e6f9727
Name - RecommendationSystemApplication-1
User Id - RetailServiceAccount
Save and close the page.

Turn on recommendations
To turn on product recommendations, follow these steps.
1. Go to Retail and Commerce > Product recommendations > Recommendation parameters .
2. In the list of shared parameters, select Recommendation Lists .
3. Set the Enable recommendations option to Yes .

NOTE
This procedure starts the process of generating product recommendation lists. It may take several hours before the lists
are available and can be viewed at the point of sale (POS) or in Dynamics 365 Commerce.

Configure recommendation list parameters


By default, the AI-ML-based product recommendation list provides suggested values. You can change the default
suggested values to suit the flow of your business. To learn more about how to change the default parameters,
go to Manage AI-ML-based product recommendation results.

Show recommendations on POS devices


After enabling recommendations in Commerce back office, the recommendations panel must be added to the
control POS screen using the layout tool. To learn about this process, see Add a recommendations control to the
transaction screen on POS devices.

Enable personalized recommendations


In Dynamics 365 Commerce, retailers can make personalized product recommendations (also known as
personalization) available. In this way, personalized recommendations can be incorporated into the online
customer experience and at the point of sale. When the personalization functionality is turned on, the system can
associate a user's purchase and product information to generate individualized product recommendations.
To learn more about personalized recommendations, see Enable personalized recommendations.
Additional resources
Product recommendations overview
Enable ADLS in a Dynamics 365 Commerce environment
Enable personalized recommendations
Opt out of personalized recommendations
Add product recommendations on POS
Add recommendations to the transaction screen
Adjust AI-ML recommendations results
Manually create curated recommendations
Create recommendations with demo data
Product recommendations FAQ
Enable personalized recommendations
3/19/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to make personalized product recommendations available for customers in Microsoft
Dynamics 365 Commerce.

Overview
In Dynamics 365 Commerce, retailers can make personalized product recommendations (also known as
personalization) available. In this way, personalized recommendations can be incorporated into the customer
experience online and at the point of sale (POS). When the personalization functionality is turned on, the system
can associate a user's purchase and product information to generate individualized product recommendations.

Personalization prerequisites
Before you make personalized product recommendations available for customers, note that product
recommendations are supported only for Commerce users who have migrated their storage to Azure Data Lake
Store. Before customers can receive personalized product recommendations, retailers must turn on product
recommendations.

NOTE
By turning on product recommendations, you also turn on personalization. However, if you turn off personalization, you
don't turn off the other types of product recommendations.

For more information about product recommendations, see the Product recommendations overview.

Turn on personalization
To turn on personalization, follow these steps.
1. Go to Retail and commerce > Product recommendations > Recommendation parameters .
2. In the list of Retail shared parameters, select Recommendation lists .
3. Set the Enable personalization option to Yes .
NOTE
When you turn on personalization, the process of generating personalized product recommendation lists is started. Up to
one day might be required before these lists are available and visible online and at the POS.

Personalized lists
In addition to allowing for personalization of existing machine-generated lists, the recommendations service
allows for personalization of the product discovery experience both online and at the POS.
After personalization is turned on, retailers can show shoppers personalized "Picks for you" lists online or
"Recommended for customer" lists on POS terminals. Additionally, retailers can apply personalization to existing
product recommendation lists and provide General Data Protection Regulation (GDPR) opt-out experiences for
authenticated users. If you turn off personalization, you also turn off these features.
Online "Picks for you" lists
A "Picks for you" list is an artificial intelligence-machine learning (AI-ML) list that shows an authenticated user a
personalized list of suggested products. This list is based on the user's omnichannel purchase history.
Personalized recommendations are dynamically updated as the user makes more purchases. This type of list also
supports category filtering, so that retailers can show top picks, based on navigational hierarchies.
Before the "Picks for you" list can appear on any e-Commerce page, the following user requirements must be
met:
Users must be signed in. Anonymous users won't see personalized recommendations.
Users must have at least one purchase on their account.
Users must opt in to receive personalized recommendations.
The following illustration shows an example of a "Picks for you" list on an online store page.
"Recommended for customer" lists at the POS
To enhance their clienteling experience, retailers can personalize existing customer details pages by adding a
contextual "Recommended for customer" list.
The following illustration shows an example of a "Recommended for customer" list on a POS terminal.
Apply personalization to existing recommendation lists
Retailers can apply personalization to existing recommendation lists, such as "New," "Trending," "Best selling,"
"People also like," and "Frequently bought together." When personalization is applied to existing lists, items that a
signed-in user previously bought are removed from those lists. For both anonymous users and users who opted
out of receiving personalized recommendations, default versions of the existing lists are shown. Therefore,
retailers don't have to manually maintain separate page experiences.
For example, a signed-in user has already bought the black watch and the brown work boots that appear in the
"Trending - default" list in the following illustration. Therefore, the user will see new products instead of those
products, as shown in the "Trending - personalized" list.
To apply personalization to an existing recommendation list in the Commerce site builder, follow these steps.
1. Open an existing site builder page that contains a product collection module.
2. In the left navigation pane, select the product collection module.
3. In the right navigation pane, under Products , select the list.
4. In the Select product list configuration dialog box, under Type , select the list type.
5. Select the Apply Personalization check box, and then select OK .
6. Save the page, finish editing it, and then publish it. After the page is published, signed-in users will see
personalized trending lists.

Additional resources
Product recommendations overview
Enable ADLS in a Dynamics 365 Commerce environment
Enable product recommendations
Opt out of personalized recommendations
Add product recommendations on POS
Add recommendations to the transaction screen
Adjust AI-ML recommendations results
Manually create curated recommendations
Create recommendations with demo data
Product recommendations FAQ
Opt out of personalized recommendations
3/19/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how you can let customers opt out of receiving personalized recommendations in Microsoft
Dynamics 365 Commerce.

Overview
During account creation, new customers are automatically set up to receive personalized recommendations.
However, Dynamics 365 Commerce provides various ways for retailers to let users opt out of receiving these
recommendations and restrict the processing of their personal data. Authenticated users who opt out of receiving
personalized recommendations will immediately stop seeing personalized lists. Additionally, all personal data that
is collected for personalization will be removed from personalized recommendations models.
For more information about personalized product recommendations, see Enable personalized recommendations.

Ways for retailers to implement an opt-out experience


Retailers have three ways to implement an opt-out experience.
Opting out on behalf of users
In Account management in Commerce back office, retailers can opt out on behalf of users.
1. From the back-office home page, search for all customers .
2. Search for and select a customer, and then select the Retail FastTab.

3. Under Privacy , set the Disable personalization option to Yes .


4. Select Save , and close the page.
Module -based opt-out experience
Retailers can let authenticated users opt out of personalized recommendations by themselves. To provide this opt-
out experience, add the user opt-out module to customer account profile pages.
Custom extensions
Retailers can create their own extensions to manage the opt-out experience for users. For more information, see
Call Retail Server APIs and Online channel extensibility.

Obtain a digital copy of personalized recommendations data on behalf


of an authenticated user
Customers might want to obtain a digital copy of their personal data and also see an exported view of their
recommendations results. If a customer requests this information, the retailer must create a customized extension
that calls the Retail Server application programming interface (API) and queries for the full results from the Picks
for you list, based on the customer's customer ID. The results can then be exported in comma-separated values
(CSV) format and shared with the customer.
The following example shows how a retailer can accomplish this task.
1. The retailer creates a custom extension to pull personal recommendations data on behalf of the user. For
information about how to create modules, clone existing modules, call Retail Server APIs, and call data
actions, see Online channel extensibility.
2. The custom extension makes a call to the get-recommendations core data action and passes the
required information to it, based on the requirements of the list. In the case of the Picks for you list, the
extension must pass the correct list name and customer ID to the data action.
One way to create the custom extension is to clone the existing product collection module that is used to
return recommendations results. By cloning this existing module, a retailer can modify the existing code
and add a new button that exports the recommendations results to a CSV file. For more information, see
Clone a starter kit module and Product collection modules.
For a full view of the Retail Server API library, see Retail Server Customer and Consumer APIs.
3. After the custom extension is created, the retailer can export a CSV file of all recommendations results,
based on the unique customer ID of the authenticated user.
4. The retailer can share the exported CSV file that contains the full personalized list of recommended
products with the authenticated user.

Additional resources
Product recommendations overview
Enable ADLS in a Dynamics 365 Commerce environment
Enable product recommendations
Enable personalized recommendations
Add product recommendations on POS
Add recommendations to the transaction screen
Adjust AI-ML recommendations results
Manually create curated recommendations
Create recommendations with demo data
Product recommendations FAQ
Add product recommendations on POS
3/19/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

At its core, product recommendations are a transformative business application that span across all commerce
spaces to create rich, engaging, and tailored product discovery experiences. To implement this feature on POS,
follow the steps on how to add recommendations to your POS devices.
For more information about product recommendations features, read the product recommendations overview.

Scenarios
Product recommendations are enabled for the following POS scenarios. They are available in Cloud POS or
Modern POS (MPOS).
1. On the Product details page:
If a store associate visits a Product details page when looking at previous transactions across
different channels, the recommendations service suggests additional items that are likely to be
purchased together.

2. On the Transaction page:


The recommendation engine suggests items based on the entire list of items in the basket that are
frequently bought together.
NOTE
To display recommendations on the Transaction page, the retailer needs to update the screen layout in Dynamics
365 Commerce. The Recommendations control must be dropped onto the Transaction page.

Configure Commerce to enable POS recommendations


To set up product recommendations, follow these steps:
1. Ensure your service has been updated to the 10.0.6 build.
2. Follow the instructions on how to enable product recommendations for your business.
3. Optional: To display recommendations on the transaction screen, go to Screen Layout , choose your screen
layout, launch the Screen layout designer , and then drop the recommendations control where needed.
4. Go to Commerce parameters , select Machine-learning , select Yes under Enable POS
recommendations .
5. To see recommendations on POS, run global configuration job 1110 . To reflect changes made to POS screen
layout designer, run channel configuration job 1070 .

Troubleshoot issues where you have Product recommendations


already enabled
Navigate to Commerce Parameters > Recommendation lists > Disable product recommendations
and run Global configuration job [9999] .
If you added the Recommendations control to your transaction screen using the Screen layout designer ,
please remove that as well.
If you have additional questions, check out the Product recommendations FAQ for more information.

Additional resources
Product recommendations overview
Enable ADLS in a Dynamics 365 Commerce environment
Enable product recommendations
Enable personalized recommendations
Opt out of personalized recommendations
Add recommendations to the transaction screen
Adjust AI-ML recommendations results
Manually create curated recommendations
Create recommendations with demo data
Product recommendations FAQ
Add recommendations to the transaction screen
3/19/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to add a recommendations control to the transaction screen on a point of sale (POS)
device using the screen layout designer in Microsoft Dynamics 365 Commerce. For more information about
product recommendations, read the product recommendations on POS documentation.
You can display product recommendations on your POS device when you use Commerce. To display product
recommendations, you need to add a control to the transaction screen using the screen layout designer.

Open Layout designer


1. Go to Retail and Commerce > Channel setup > POS setup > POS > Screen layouts .
2. Use the Quick Filter to find the screen that you want to add the control to. For example, filter on the
Screen layout ID field using a value of F2CP16:9M .
3. In the list, find and select the desired record. For example, select Name: F2CP16:9M Screen Layout ID:
F2CP16:9M .
4. Click Layout designer .
5. Follow the prompts to launch the layout designer. When prompted for credentials, enter the same
credentials that were in use when the Layout designer was launched from Screen layouts page.
6. When you log in, a page similar to the one below appears. The layout will be different depending on the
customizations that were made for your store.
Choose a display option
There are two configurations options available. Choose the option that works best for your store, and follow the
remaining instructions to finish setting up the control. The two options are:
Recommendations are always visible.
A Recommendations tab appears in the grid on the right side of the screen.
Make recommendations always visible
1. Reduce the height of the transaction lines details area so that it is the same height as the customer panel
to its left.

2. From the menu on the left, drag and drop the recommendations control to between the transaction line
details area and the button grid in the center bottom of the transaction screen. Resize the control so it fits
in that space.

3. Click the X to save and exit Layout designer.


4. In Commerce, go to Retail and Commerce > Retail and Commerce IT > Distribution schedules .
5. In the list, select 1090 Registers .
6. Click Run now .
Add a Recommendations tab to the button grid on the right side of the screen
1. Right-click in the empty space below the last tab on the button grid located on the right side of the page.
2. Click Customize .

3. Click New tab .


4. Find the new tab that you just added. You may need to scroll down.
5. In the Contents drop-down, select Recommended products .
6. In the Label field, type a name for the recommendations tab. For example, type 'Recommended products'.
7. In the Image field, select the image to appear on the tab.
8. Click OK . The new tab appears in the button grid.
9. Click the X to save and exit Layout designer.
10. In Commerce, go to Retail and Commerce > Retail and Commerce IT > Distribution schedules .
11. In the list, select 1090 Registers .
12. Click Run now .

Additional resources
Product recommendations overview
Enable ADLS in a Dynamics 365 Commerce environment
Enable product recommendations
Enable personalized recommendations
Opt out of personalized recommendations
Add product recommendations on POS
Adjust AI-ML recommendations results
Manually create curated recommendations
Create recommendations with demo data
Product recommendations FAQ
Adjust AI-ML-based product recommendation
results
3/19/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to adjust product recommendation results based on artificial intelligence-machine
learning (AI-ML) to your business.
After enabling product recommendations, the default settings will take effect; these parameters will work for
may work for many needs. It is best to plan to spend some time evaluating whether the results fit the selling
motion of products. We suggest evaluating results for a few days before changing parameters as needed before
testing again.

Understanding recommendation list parameters


Before changing the parameters, learn about how they will affect the results below.
"Trending" product list
The "Trending" product list has two parameters that can be changed:

1. Include new products from last X days - Products that have been added within the specified number of
days before the current date can be used to select product candidates. The default value in the picture
suggests that products as old has 180 days can be used in the trending product list.
2. Include sales from last X days - Sales transactions that have occurred within the specified number of
days before the current date can be used to order the products. The default value above suggests that all
purchases made of a product in the last 30 days would be used to determine the placement of the product in
the trending product list.
"Best selling" product list
Depending on your business, the "Best selling" list can bring different results than trending, even though they
both use transaction data to order products. Because best selling has no cut off based on assortment date, Best
selling can still highlight very popular, older products that might have been dropped from the trending list.
The "Best selling" product list has one parameter that can be changed:
1. Include sales from last X days - Sales transactions that have occurred within the specified number of
days before the current date can be used to order the products. The default value above suggests that all
purchases made of a product in the last 30 days would be used to determine the placement of the product in
the Best selling product list.

Manually add or remove products from recommendation lists


For "New," "Trending," or "Best selling" lists
1. Go to Retail and Commerce > Product recommendations > Recommendation parameters .
2. In the list of shared parameters, select Recommendation lists .
3. Select the list add or remove products from.
4. To add products to the table, select Add line.
5. Under the Product column, search for a product by Name or Product number.

6. Under the Line type column, select one of two options:


Include – forces a product to the front of the list
Exclude – removes a product from appearing in the list
7. Changing the Display order will change the order that products marked include will appear in the list.
If two products have the same display order value, then the final order of those two results may
differ from the back office.
8. To remove products from the table: select the line to remove and select Remove .
For "People also like" or "Frequently bought together" lists
In the context of "Frequently bought together" or "People also like" lists, machine learning is used to analyze
consumer purchase patterns to recommend related products commonly purchased together for a unique seed
product.
A seed product is the product you want to generate results for. In the context of manually adjusting
recommendation lists, you are adding or removing results for this product.
Follow these steps to manually add or remove results for a seed product:
1. Select the Seed product .
2. Under the Product column, search for a product by Name or Product number.

3. Under the Line type column, select one of two options:


Include – forces a product to the front of the list
Exclude – removes a product from appearing in the list
4. To remove products from the table: select the line to remove and select Remove.

Additional resources
Product recommendations overview
Enable ADLS in a Dynamics 365 Commerce environment
Enable product recommendations
Enable personalized recommendations
Opt out of personalized recommendations
Add product recommendations on POS
Add recommendations to the transaction screen
Manually create curated recommendations
Create recommendations with demo data
Product recommendations FAQ
Manually create curated recommendations
3/19/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how merchandizers can manually create and manage product recommendations lists for
Microsoft Dynamics 365 Commerce customers.
Curated lists are collections of individual content, created and curated by people.

Create a new list


To create a curated product recommendation list, follow these steps.
1. Go to Retail and Commerce > Product recommendations > Recommendation lists .
2. Select New .
3. In the List Id field, enter a value.
4. In the List name field, enter a value.
The List name is the title of the list that will appear in the curated lists section of the Product
collection module.
5. To add products to the list, select Add products .
6. To change the order of the products in the list, enter a value in the Display order column.
If two products have the same display order value, then the final order of those two results may differ
from the back office.
7. Select Save to save the list.

Example List
Additional resources
Product recommendations overview
Enable ADLS in a Dynamics 365 Commerce environment
Enable product recommendations
Enable personalized recommendations
Opt out of personalized recommendations
Add product recommendations on POS
Add recommendations to the transaction screen
Adjust AI-ML recommendations results
Create recommendations with demo data
Product recommendations FAQ
Create recommendations with demo data
3/31/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides guidance on how to leverage omni-channel product recommendations in Tier-1 single box
environments using pre-populated, customizable demo data.
Omni-channel product recommendations provide a set of editorially curated or programmatically generated list
of products. These lists can be used in several scenarios, depending on the business need. For more information
about product recommendation lists, see Product recommendations overview.
For Tier-2 and higher Dynamics 365 environments, product recommendations are automatically computed
based on customer data. Using product recommendations demo data does not disable any product
recommendations solution already provisioned in the environment and any costs associated with its usage.
For Tier-1 environments, product recommendations are based only off the static demo data stored in a .csv file.

Enabling product recommendations demo data in an environment


To enable product recommendations demo date, you need to deploy the Dynamics 365 Commerce Preview
Demo Extension to the respective environment. Doing so automatically enables product recommendations demo
data.

Default demo data


Each OneBox type environment comes with a preloaded set of product recommendations demo data stored in
the coma separated 'reco_demo_data.csv' file, located on the Commerce Scale Unit.
The data is structured along the following columns.

C O L UM N N A M E M A N DATO RY DESC RIP T IO N P O SSIB L E VA L UES

RecoList ️
✔ The specific product RecoBestSelling
recommendation list type RecoNew
that the demo data point is RecoTrending
to generate. RecoCart
RecoPeopleAlsoBuy

OperatingUnitNumber ️
✔ The specific operating unit
number where product
recommendations are
expected to be surfaced.
C O L UM N N A M E M A N DATO RY DESC RIP T IO N P O SSIB L E VA L UES

Category The category the specific list


should be returned for. If no
category is specified, the list
is for top of navigation
hierarchy only.

SeedItemId For lists that require seed


(RecoPeopleAlsoBuy and
RecoCart), the product
those lists should show
additional products for.

CustomerId For lists that require a


customer identifier
(RecoPicks). The default
value '0' applies to all
customers.

ItemIds ️
✔ One or more products to be
returned as the result,
separated by ';'.

Customize demo data


You can edit the default demo data with any product and category information configured in HQ. After you
update the .csv, the product recommendations that are returned to customers will immediately reflect the
changes.
The extension contains a datafile called 'RecoMockDataset.csv', which allows you to control the dataset used to
power the mock recommendations results. The file name can be controlled through extension configuration
using the ext.Recommendations.DemoFilePath setting. This enables you to have multiple datasets available
that can be switched between easily through configuration.

<settings>
<add name="ext.Recommendations.DemoFilePath" value="RecoMockDataset.csv" />
</settings>

Additional resources
Product recommendations overview
Enable ADLS in a Dynamics 365 Commerce environment
Enable product recommendations
Enable personalized recommendations
Opt out of personalized recommendations
Add product recommendations on POS
Add recommendations to the transaction screen
Adjust AI-ML recommendations results
Manually create curated recommendations
Product recommendations FAQ
Product recommendations FAQ
3/19/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides information about processes and tools that you can use to troubleshoot issues that are
related to product recommendations or their results.

Best practices
It's very important to utilize the concept of product masters and variants. The sensible grouping of variants to a
parent product master helps the list algorithms and service create better models. Additionally, the service can
serve just one instance of a product instead of putting all closely related variants in a list. When all closely
related variants are put in a list, erroneous or duplicate results can occur.

Why are products missing from my recommendation lists?


Typically, if an item is missing from a product recommendation list, there might be a product configuration issue.
For example, there might be an incorrect product start date or end date, a dimension might be misconfigured, or
the product might not be in the correct channel assortment, etc.
If an item is missing from a recommendation list that is based on artificial intelligence-machine learning (AI-ML),
the item might not fit the criteria of the recommendation list, or it might not have enough purchase transactions
for the recommendation list to show it.
We recommend that you check these steps:
1. Make sure that product recommendations have been enabled in HQ. For more information about
how to enable this service, see Enable product recommendations.
2. Make sure that key product proper ties are set. For example, product assortments must be set to
Include .
3. For newly assor ted products, it might take up to 3 hours before the product will star t appearing
in the new list.
4. If a product is still not appearing in Trending, Best selling, People also like, or Frequently
bought together, then that product might not have enough transactions. In this case, you can either
wait for more transactions to occur, update the default recommendation list parameters, or use manual
intervention to modify the recommendation product list results. For more information about
recommendation parameters, see Manage AI-ML-based product recommendation results.
5. Make sure that the product meets the recommendation criteria for the list. For more information
about product recommendation parameters, see Manage AI-ML-based product recommendation results.

How can I prevent poor recommendation results from being


returned?
Recommendation lists require a large volume of transactions to produce results. Therefore, it's important that
users provide full historical transaction data.
Additionally, products that have no transactions or few transactions typically don't have People also like or
Frequently bought together results, and don't appear in Trending or Best selling recommendation lists.
This situation can often occur for very new products, or for old products that have a small number of purchases.
Popular new items will easily overcome this issue.
We recommend that you follow these steps:
1. Make sure that the product meets the recommendation criteria for that list. For more information
about product recommendation parameters, see Modify AI-ML-based product recommendation results.
2. If the product is new, consider modifying a recommendation list until the product has more
transactions. For more information about how to modify recommendation list results, see Manage AI-ML-
based product recommendation results.
Make sure that the product meets the recommendation criteria for that list. For more information
about product recommendation parameters, see Manage AI-ML-based product recommendation results.
If the product is new, consider modifying a recommendation list until the product has more
transactions . For more information about how to modify recommendation list results, see Manage AI-ML-
based product recommendation results.

Can I remove a product but still see it in the store?


You can adjust lists that are algorithmically generated if a business need arises. However, if a product is removed
from a recommendation list, the product will remain discoverable in the store. For more information about how
to modify product recommendation results, see Manage AI-ML-based product recommendation results.
If you must block an item from being discovered in the store, you must change the Item assor tments value to
Exclude .

How do I add a list to an e-Commerce page?


For information about how to add product recommendation pages to your e-Commerce website, see Add
product recommendation lists to pages.

How do I enable recommendations on POS?


After enabling product recommendations, you will need to add the recommendations panel to the control POS
screen. For more information, see Add a recommendations control to the transaction screen on POS devices.

Additional resources
Product recommendations overview
Enable ADLS in a Dynamics 365 Commerce environment
Enable product recommendations
Enable personalized recommendations
Opt out of personalized recommendations
Add product recommendations on POS
Add recommendations to the transaction screen
Adjust AI-ML recommendations results
Manually create curated recommendations
Create recommendations with demo data
Ratings and reviews overview
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers ratings and reviews in Microsoft Dynamics 365 Commerce.

Overview
Ratings and reviews are crucial for e-Commerce customers who want to know how other customers perceive a
product. They can also help consumers make purchase decisions. In Dynamics 365 Commerce, the ratings and
reviews solution lets retailers capture product reviews and ratings from customers. Retailers can then show
average ratings and review information across their e-Commerce website.
Average rating information is shown in point of sale (POS) and call center channels. Therefore, sales associates can
use it to help users make decisions. Ratings and reviews can also serve as a feedback mechanism that retailers can
use to improve the quality of a product and therefore increase sales.
Ratings and reviews functionality in Dynamics 365 Commerce is an omnichannel solution and is natively available
as part of the platform. The ratings and reviews solution is built on top of Microsoft Azure, which provides high
scalability and reliability.
The following illustration shows how the ratings and reviews solution works in Dynamics 365 Commerce.
The ratings and reviews solution in Dynamics 365 Commerce uses Azure Cognitive Services to offer automatic
moderation of profane words in 40 languages. Because human approval isn't required, moderation costs are
reduced. The system also offers moderator tools that can be used to respond to customer concerns, feedback, and
take-down requests, and to address data requests from users.
The ratings and reviews solution provides widgets that show rating summaries in product lists, in search results,
on product details page, and in other places. The widgets show complete review lists, and they also provide sorting
and filtering options.
The ratings and reviews solution also provides a business intelligence (BI) template that includes a set of metrics to
provide insights into ratings and reviews. Ratings and reviews data can be exported for further analysis.

Additional resources
Opt in to use ratings and reviews
Manage ratings and reviews
Configure ratings and reviews
Sync product ratings in Dynamics 365 Commerce
Opt in to use ratings and reviews
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to opt in to use ratings and reviews on your Microsoft Dynamics 365 Commerce site.

Overview
The ratings and reviews solution is an omni-channel solution that you can make available in Dynamics 365
Commerce by using Microsoft Dynamics Lifecycle Services (LCS). LCS is an administration portal that retailers use
to manage their environments from provisioning to decommissioning.
If you want to use the ratings and reviews solution on your Commerce website, you must opt in for ratings and
reviews during deployment of your e-Commerce site on Dynamics 365 Commerce.

Opt in to use ratings and reviews


To opt in to use ratings and reviews on your site, follow these steps.
1. Follow the steps in Deploy a new e-Commerce site.
2. While you're still in LCS, go to Retail deployment setup > Other settings .
3. Set the Enable ratings and reviews ser vice option to Yes .
4. In the AAD security group for ratings and review moderator (security group object id) field, enter
the ID of the Microsoft Azure Active Directory (Azure AD) security group that includes the ratings and
reviews moderators.
5. Complete the e-Commerce initialization process.

NOTE
If you are an existing Dynamics 365 Commerce customer who has already deployed an e-Commerce site without having
opted in for ratings and reviews and now want to use ratings and reviews from the Dynamics 365 Commerce package,
please submit a service request. For information about how to submit a service request, see Submit service requests process.

Additional resources
Ratings and reviews overview
Manage ratings and reviews
Configure ratings and reviews
Sync product ratings in Dynamics 365 Commerce
Manage ratings and reviews
2/5/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to manage ratings and reviews by using the Microsoft Dynamics 365 Commerce ratings
and reviews moderation tool.

Overview
Dynamics 365 Commerce uses Microsoft Azure Cognitive Service to automatically moderate review text by
redacting profane words. In addition, moderators can use the ratings and reviews moderation tool for the
following manual tasks:
Moderate reviews by responding to them or removing them.
Delete a customer's reviews at the customer's request.
Bulk-import ratings and reviews data for all products into a Microsoft Power BI template, so that trends for
ratings and reviews can be analyzed.

Access ratings and reviews moderation features


To access ratings and reviews moderation features in the e-Commerce site management tool, follow these steps.
1. Sign in to Microsoft Lifecycle Services (LCS).
2. Open the project that contains the environment where you want to initialize e-Commerce.
3. In the Environments section, select the environment.
4. Under Environment features , select Retail manage .
5. On the e-Commerce tab under Links , select e-Commerce Site management tool .

Read a review
1. Go to Home > Reviews > Moderation .
2. Use the search field in the upper right of the page to filter the reviews that are shown by product ID, product
name, or review text.
Additional filters let you limit the reviews by period, rating, channel, or concern status (taken down, responded, or
reported).
Respond to a review
Sometimes, customers who purchased a product express their satisfaction or dissatisfaction, or they don't
understand how to use the product. As a moderator, you can post a response to a review. This response appears
together with the review on the site.
To respond to a review, follow these steps.
1. Go to Home > Reviews > Moderation .
2. Find and select the review that requires a response.
3. In the properties pane on the right, select Add a response .
4. Enter the response text and the name that should be shown for the responder. The default responder name is
Moderator .
5. When you've finished, select Post response .
Take down a review
Sometimes, there is a business justification for moderators to take down customer reviews.
To take down a review, follow these steps.
1. Go to Home > Reviews > Moderation .
2. Find and select the review that must be taken down.
3. In the properties pane on the right, select a takedown reason, and then select Take down .

Delete a customer's reviews at the customer's request


Sometimes, customers want their ratings and reviews data to be permanently deleted from an e-Commerce
website. A moderator who receives a removal request from a customer can remove the customer's data by using
the review deletion feature. To find and delete a customer's data, the moderator requires the email address that the
customer used to sign in and provide reviews.
To find and delete customer data, follow these steps.
1. Go to Home > Reviews > Delete .
2. In the Search for users by email address field, enter the customer's email address, and then select Search .
3. If the customer has any review activity (for example, review submissions, votes about the helpfulness of
another customer's reviews, or comments about another customer's review), the results are shown. For each
item, there is a Delete button.
4. For each item that must be deleted, select Delete . When you're prompted for confirmation, select Yes .
NOTE
It can take up to seven days for data to be completely removed from the system. Moderators should notify customers
about this delay.
If customers have changed their name in their account settings, multiple items might appear in the search results. In this
case, to completely delete the customer's data, the moderator must select Delete for each item.

Download ratings and reviews data


The ratings and reviews moderation tool lets moderators import ratings and reviews data in bulk, so that they can
analyze trends. A Power BI template that includes basic metrics is available. Moderators can use this template to
connect bulk-imported data and view a dashboard. They don't have to create a custom dashboard. Moderators can
also customize the Power BI template to meet their specific needs.
To download ratings and reviews data, follow these steps.
1. Go to Home > Reviews > Repor ting .
2. Select Download reviews data to download ratings and reviews data in bulk in comma-separated values
(CSV) format.

View ratings and reviews trends


Moderators can download the Power BI template so that they can view trends in a dashboard.
To view ratings and reviews trends, follow these steps.
1. Go to Home > Reviews > Repor ting .
2. Select PowerBI template to download the template.

3. Open the downloaded template by using the Power BI app. Close the Access to web content dialog box
that appears, and then close the "Refresh" error message that appears.
4. Go to Home , select Edit queries , and then select Data source settings .
5. In the Data source settings dialog box, select Change Source .
6. In the URL field, enter the path of the reviews data that you downloaded in the previous procedure (for
example, c:\reviews\ReviewsData.csv ).
7. Select OK , and then select Apply changes . It will take one to two minutes to apply your changes to the
data source.
8. Select Trends sheet to view ratings and reviews trends.

Additional resources
Ratings and reviews overview
Opt in to use ratings and reviews
Configure ratings and reviews
Sync product ratings in Dynamics 365 Retail
Configure ratings and reviews
2/19/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to configure your e-Commerce site to show customer ratings and reviews in Microsoft
Dynamics 365 Commerce.

Overview
Ratings and reviews on e-Commerce websites help customers learn about products before they make a purchase
decision by showing them what other customers think about those products. For e-Commerce websites, ratings
and reviews are also a mechanism for collecting customer feedback about products.

Configure a site to show ratings and reviews


Configuration values for ratings and reviews, such as the tenant ID, review text length, and review title length, are
configured at the site level.
To configure a site to show ratings and reviews, follow these steps.
1. Go to Home > Sites .
2. Select the name of your site.
3. Go to Site settings > Extensions .
4. In the Review text max length field, enter the maximum number of characters that review text can have (for
example, 1000 ).
5. In the Review title max length field, enter the maximum number of characters that review titles can have (for
example, 55 ).
6. Select Save and Publish .
The following illustration shows what this configuration looks like in Dynamics 365 Commerce.
Link a product rating to the Reviews section of a PDP
A product rating is shown below the product title at the top of PDP. The product rating can be configured so that
it's linked to the Reviews section of the same PDP.
To link a product rating to the Reviews section of the PDP, follow these steps.
1. Open the PDP template.
2. Go to Buy box container module settings .
3. Under Buy box , select Product ratings , and then select the Link the click to full reviews module check
box.
The following illustration shows what this configuration looks like in Dynamics 365 Commerce.

Configure the link for the privacy and policy page


To configure the link for the privacy and policy page, follow these steps.
1. Go to Home > Sites .
2. Select the name of your site.
3. Go to Site settings > Extensions .
4. On the Routes tab, under RNR Privacy and Policy , select Add a link . If a link is already entered, and you
want to replace it, select the link.
5. In the Add a link dialog box, select the link for the privacy and policy page, and then select OK .
6. Select Save and Publish .
The following illustration shows what this configuration looks like in Dynamics 365 Commerce.
Configure ratings and reviews modules on product details pages
For information on configuring ratings and reviews modules on product details pages, see Ratings and reviews
modules.

Additional resources
Ratings and reviews overview
Opt in to use ratings and reviews
Manage ratings and reviews
Configure ratings and reviews modules on product details pages
Sync product ratings in Dynamics 365 Retail
Sync product ratings in Dynamics 365 Commerce
2/6/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to sync product ratings in Microsoft Dynamics 365 Commerce.

Overview
To consume product ratings in omnichannels, such as at the point of sale (POS) and in call centers, product ratings
from the ratings and reviews service must be imported into the Commerce channel database. When product
ratings are made available in omnichannels, they can help customers indirectly during their interactions with sales
associates.
This topic describes following tasks:
1. Configure Product ratings sync job as a batch job to synchronize product ratings from the Ratings and
Reviews ser vice .
2. Verify that the batch job for product rating synchronization was successful.
3. Make product ratings available at the POS.

Configure a batch job to synchronize product ratings


IMPORTANT
Before you start, make sure that version 10.0.6 or later of Dynamics 365 Commerce is installed.

Initialize the commerce scheduler


To initialize the commerce scheduler, follow these steps.
1. Go to Retail and Commerce > Headquar ters setup > Commerce scheduler > Initialize commerce
scheduler . Alternatively, search for "Initialize commerce scheduler."
2. In the Initialize commerce scheduler dialog box, make sure that the Delete existing configuration
option is set to No , and then select OK .
Verify the RetailProductRating subjob
To verify that the RetailProductRating subjob exists, follow these steps.
1. Go to Retail and Commerce > Headquar ters setup > Commerce scheduler > Scheduler subjobs .
Alternatively, search for "Scheduler subjobs."
2. In the subjob list, find or search for the RetailProductRating subjob.
The following illustration shows an example of the subjob details in Commerce.
NOTE
If you don't find the RetailProductRating subjob, you might already have run the Sync product ratings job and the
1040 CDX job before you initialized the Commerce scheduler. In this case, follow these steps to run the Full data sync
job.

1. Go to Retail and Commerce > Headquar ters setup > Commerce scheduler > Channel database .
Alternatively, search for "Channel database."
2. Select the channel database to sync.
3. On the action pane, select Full data sync .
4. In the Select a distribution schedule drop-down dialog box, select 1040 - products , and then select
OK .
5. Repeat the steps of the previous procedure to verify that the RetailProductRating subjob has been
created.

Import product ratings


To import product ratings into Commerce from the ratings and reviews service, follow these steps.
1. Go to Retail and Commerce > Headquar ters setup > Commerce scheduler > Sync product ratings
job . Alternatively, search for "Sync product ratings job."
2. In the Pull product ratings dialog box, on the Run in the background FastTab, select Recurrence .
3. In the Define recurrence dialog box, set up a recurrence pattern. (The suggested value is two hours.) Don't
schedule a recurrence that is less than one hour.
4. Select OK .
5. Set the Batch process option to Yes . This setting helps guarantee that you will be able to audit the logs and
verify the status of batch job runs.
6. Select OK to schedule the batch job.
The following illustration shows an example of batch job configuration in Commerce.
Verify that the batch job for product rating synchronization was
successful
To verify that the Sync product ratings batch job was successful, follow these steps.
1. Go to Retail and Commerce > System administrator > Inquiries > Batch jobs or, if you're using a
Commerce-only stock keeping unit (SKU), Retail and Commerce > Inquiries and repor ts > Batch jobs
instead. Alternatively, search for "Batch jobs."
2. To view the details of the batch job, in the batch job list, in the Job description column, search for a
description that contains "Pull product ratings."
3. Select the job ID to view the batch job details, such as the scheduled start date/time and the recurrence text.
The following illustration shows an example of the batch job details in Commerce when the batch job is scheduled
to run at two-hour intervals.

Make product ratings available at the POS


The ratings and reviews solution in Dynamics 365 Commerce is an omnichannel solution. However, products
ratings aren't shown at the POS by default. To help customers in stores see ratings and reviews when they are
being helped by sales associates, you must turn on product ratings at the POS.
To turn on product ratings at the POS, follow these steps.
1. Go to Retail and Commerce > Commerce setup > Parameters > Commerce parameters .
Alternatively, search for "Commerce parameters."
2. On the Configuration parameters tab, select New .
3. Enter a name such as RatingsAndReviews.EnableProductRatingsForRetailStores , and set the value to
true .
4. Select Save .
5. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule . Alternatively, search
for "Distribution schedule."
6. In the job list, select 1110 (Global configuration ), and then select Run now .
7. After the job has successfully run, verify that products ratings are now shown at the POS.
The following illustration shows an example of the configuration of the Commerce parameters to turn on product
ratings at the POS.

The following illustration shows an example of product ratings at the POS.


The following illustration shows an example of product ratings in call center channels.

Additional resources
Ratings and reviews overview
Opt in to use ratings and reviews
Manage ratings and reviews
Configure ratings and reviews
Store inventory management
2/1/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

When working with inventory in Dynamics 365 Commerce and using the POS application, it is important to note
that POS provides limited support for inventory dimensions and certain inventory item types.
The POS solution does not support the following item configurations:
BOM items (except kit products, which utilize some components of the BOM framework)
Catch weight items
Batch-controlled items
The POS application currently does not support the following tracking dimensions in the POS:
Batch tracking dimension
Owner dimension
The POS solution provides limited support for the following dimensions. Limited support indicates that the POS
may default some of these dimensions into inventory transactions automatically based on warehouse/store setup
configuration. POS will not fully support the dimensions in the way they are supported if a sales transaction is
manually entered into the ERP.
Warehouse Location – Users will not have the ability to manage the receiving warehouse location for items
received into a store warehouse when the store has not been configured to use the warehouse management
process. A default receiving location defined on the store warehouse will be used for these items. If the
warehouse management process has been enabled for the store, limited support that prompts the user to
choose a receiving location for the entire receipt will be triggered. Items sold from the store will always be sold
out of the default location as defined on the store warehouse setup. The location for managing return inventory
can be controlled through default return location definition on the store warehouse or based on return reason
codes as defined in the return location policy.
License plate – License plates are only applicable when Use warehouse management process has been
enabled on the item and the store warehouse. In POS, if inventory is received into a store warehouse where the
warehouse management process has been enabled, and the location chosen to receive the item into is tied to a
location profile that requires license plate control, the POS application will systematically apply a license plate to
the receiving line. Users in POS will not have the ability to change or manage this license plate data. If full
management of license plates is required, it is suggested the store use the WMS mobile application or the back
office ERP client to manage the receipt of these items.
Serial number – The POS application has limited support for single serial number to be registered on a
transaction sales line for orders created in POS with serialized items. This serial number is not validated against
registered serial numbers already in inventory. If a sales order is created in the call center channel or fulfilled
through the ERP and multiple serial numbers are registered to a single sales line during the fulfillment process
in the ERP, these serial numbers will not be able to be applied or validated if a return is processed in POS for
these orders.
Inventor y status – For items that use the warehouse management process and require an inventory status,
this status field is not able to be set or modified through the POS application. The default inventory status as
defined on the store warehouse configuration will be used when items are received into inventory.

NOTE
All organizations must test item configurations through POS in development or test environments before deploying them to
production. Test your items by performing regular cash and carry sales transacting and creating customer orders (if
applicable) through the POS with your items. Testing must include running a full statement posting processes in your test
environment and verifying that there are no issues.
Configuring items in a way that is not supported by the POS application, without proper testing, can result in your statement
posting process failing in production without an easy way to correct the issues. Partner or customer customizations to the
application may optionally be considered to allow these posting processes to successfully complete. If customizations are not
needed, the organization must ensure that the product configuration of your products has been done in a way that is
supported by the standard POS application/order creation/statement posting process.

Purchase orders
Purchase orders are created at the head office. If a warehouse is included in the purchase order header, the order
can be received at the store by using Modern POS (MPOS) or Cloud POS through the Picking/Receiving
operation. After the quantities that are received at the store are entered in the Receive Now field in POS for the
purchase order document, they can be saved locally or committed. Saving this data locally has no effect on in-stock
inventory. Saving should be done only if the user is not ready to post the receipt to HQ and just needs a way to
temporarily store the previously entered Receive Now data. This saves the receive now data locally to the user's
channel database. After the document is processed using the Commit option, the Receive Now data is sent to HQ
and the purchase order receipt will be posted.

Transfer orders
A transfer order can specify that a particular store is the location that items can be shipped from or the location the
inventory will be received into. If the POS user is the shipping warehouse for a transfer order, they will be able to
enter Ship Now quantities from POS. The data entered by the shipping store can be saved locally or committed.
When saved locally, no updates are made to the transfer order document in HQ. Saving should be done only if the
user is not ready to post the shipment to HQ and needs a way to temporarily store the previously entered Ship
Now data. After the store is ready to confirm shipment, the Commit option should be selected. This posts the
shipment of the transfer order in HQ so that the receiving warehouse will now be able to receive against it.
If the POS user is the receiving warehouse for a transfer order, they will be able to enter the Receive Now
quantities from POS. The data entered by the receiving store can be saved locally or committed. Saving should be
done only if the user is not ready to post the receipt to HQ and needs a way to temporarily store the previously
entered Receive Now data. This saves the receive now data locally to the user's channel database. After the
document is processed using the Commit option, the Receive Now data is sent to HQ and the transfer order
receipt will be posted. It's important to note that the receiving store will be restricted to only being able to commit
receive quantities that are equal to or less than shipped quantities. An attempt to receive quantities on a transfer
order that have not previously shipped will result in errors and the receipt will not be confirmed in HQ.

Stock counts
Stock counts can be either scheduled or unscheduled. Scheduled stock counts are initiated at the head office, which
specifies the items that must be counted. The head office creates a counting document that can be received at the
store, where the quantities of actual on-hand stock are entered in MPOS or Cloud POS. Unscheduled stock counts
are initiated at a store, and the quantities of actual on-hand stock are updated in either MPOS or Cloud POS. Unlike
scheduled stock counts, unscheduled stock counts do not have a predefined list of items. When a stock count of
either type is completed, it is committed and sent to the head office. At the head office, the count is validated and
posted as a separate step.
Inventory lookup
The current product quantity on hand for multiple stores and warehouses can be viewed on the Inventor y lookup
page. In addition to the current quantity on hand, the future available to promise (ATP) quantities can be viewed for
each individual store. To do so, select the store that you want to view the ATP for and then click Show store
availability .
Working with serialized items
4/3/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how you can register serial numbers on packing slips or invoices during the sales process. This
functionality is useful if a company wants to capture serial numbers for service and warranty purposes, but doesn't
have to maintain serial numbers in inventory from receipt to issue.
Many companies just want to capture serial numbers for service and warranty purposes, and don't have to
maintain serial numbers in inventory from receipt to issue. In these scenarios, you can register the serial numbers
on the packing slips or invoices when products are sold. If products are later returned, you can trace each product
to an invoice to determine whether you sold the product, and whether the service or warranty obligations are valid.
You must enable serial numbers for the sales process by selecting the Active in sales process option on the
Tracking dimension groups page. The following events then occur in Supply Chain Management:
On the Serial numbers FastTab, the Serial number control option is selected. When this option is selected,
you must register one serial number for each item on the packing slip or invoice.
All selections on the tracking dimension group for serial numbers are cleared, except the Blank issue allowed
option. You can select the Blank issue allowed option to override the serial number control, and allow
products to be packed and invoiced without registering serial numbers.

When do I register serial numbers during the sales process?


You can register serial numbers either on the packing slip for a sales order or on the invoice. When you prepare an
invoice for a serialized item that was shipped together with a packing slip, you can select which serial numbers on
the packing slip to invoice. The number of registered serial numbers must not exceed the quantity of items that
were shipped. If you're creating a partial invoice, you can select fewer serialized items than were registered on the
packing slip. When you print a packing slip or an invoice, the serial numbers that were registered are included.

Can I enter serial numbers by scanning them, or do I have to type


them?
You can either scan or type serial numbers. When you use a scanner, the scan mode determines whether the serial
numbers are added to or removed from the list of serial numbers on the invoice or packing slip. If you want to scan
serial numbers by using, for example, a hand-held bar code scanner, configure the scanner to send an Enter or TAB
command after the serial number. This command will indicate the end of the data stream. Otherwise, you must
press Enter or TAB on the keyboard after you scan each serial number.

If I enable serial numbers for the sales process, do I have to register all
serial numbers for all items?
The setup of the tracking dimension group that is assigned to the product determines whether serial numbers must
be registered for all items on a packing slip or invoice. When you enable serial numbers for the sales process, the
Serial number control option is automatically selected. You must then register one serial number, or register a
blank registration for an unreadable number, for each item on the packing slip or invoice. If you don't want to
require a serial number for each item, select the Blank issue allowed option on the tracking dimension group
that is assigned to the item. You can then register fewer serial numbers than the quantity of items that are being
shipped. If you register more serial numbers than the quantity of items that are being shipped, you won't be able to
post the packing slip or invoice.

Can I register serial numbers for partial invoices and partial shipments?
You can create partial invoices and packing slips for sales orders, and register only the serial numbers for the items
that those invoices and packing slips include. If you want to create a partial invoice, and you have more than one
packing slip for the sales order, you can include serial numbers from more than one packing slip. However, there
can be only one packing slip that doesn't include all serial numbers. For example, if you have three packing slips,
and each packing slip includes two serialized items, you can't create a partial invoice for one item from each
packing slip.

What do I do when a serial number isn't readable?


If a serial number can't be read or scanned, you can create a blank line for the item by clicking Not readable on
the Serial numbers page. If the serial number becomes available later, you can update the invoice or packing slip.
For more information, see the next section, “Can I correct or change the serial numbers I have registered for a sales
order?”

Can I correct or change the serial numbers that I have registered for a
sales order?
Yes, you can correct serial numbers if the following conditions are met:
Invoices – You can change the serial numbers for items that you haven't yet invoiced. The packing slip is then
also updated. However, if a sales order line was corrected by registering a negative quantity, you can't change
serial numbers for the sales order line.
Packing slips – You can't partially correct a packing slip line that contains serialized items. You must reverse the
full quantity for the line. If a packing slip has been canceled or corrected, you don't have to register the reversed
serial numbers again when you create a new packing slip for the same serialized items. The numbers that were
registered will be used.

Can I view the serial numbers that were shipped together with a
specific packing slip, or that were included on an invoice?
Yes, you can run an inquiry on the packing slip journal line or invoice journal line to view a list of all serial numbers
that were included in the document.

Can I view the serialized items that I have on hand?


No, you can't view the serialized items that you have on hand, because serial numbers aren't registered for items
until the items are sold.

Can I register serial numbers for catchweight items?


No, you can't register serial numbers for catch-weight items during the sales process. Additionally, if a product is
set up as a catch-weight item, you can't assign the product to a tracking dimension group that is set up to use serial
numbers only during the sales process.
Can I register serial numbers at the retail POS?
Yes, the retail point of sale (POS) will prompt the user to enter a serial number when the user sells an item that is
assigned a tracking dimension group that is set up to use serial numbers only during the sales process.

What security roles are required in order to register serial numbers


during the sales process?
This functionality is available to all roles that can maintain sales packing slips and sales invoices. The following
duties let workers correct serial numbers, and register blank entries for serial numbers that can't be read or
scanned:
Maintain serial number corrections
Maintain registration of non-readable serial numbers
Push products from distribution center to store using
buyer's push
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through the steps to create and process a Buyer´s push to distribute products from one
location to one or many stores. The user can define multiple configurations and have the system suggest how to
distribute the products, or manually enter where the products are distributed to and how much gets distributed to
each store. This procedure doesn't include setup of data that can be used in the Buyer´s push, such as
replenishment rules, organizational hierarchies, and store weights. This procedure uses the USRT demo company.
1. Go to Buyer's push.
2. Click New.
3. In the Description field, type a value.
4. In the Site field, enter or select a value.
5. In the Warehouse field, enter or select a warehouse that has products with on-hand quantities.
6. Click Add.
7. In the list, mark the selected row.
8. In the Item number field, enter or select a product.
9. Click Add.
10. In the list, mark the selected row.
11. In the Item number field, enter or select a variant product.
When entering a variant product, lines will be created for each variant.
12. In the list, mark a row.
13. In the Pushed quantity field, type how many of the selected product you want to distribute.
14. In the Additional quantity to push field, enter the quantity of the products that have available quantity to
distribute.
15. In the Distribution field, enter 'Location weight'.
You can select the other types to use other rules for the distribution.
16. In the Replenishment hierarchy field, select a value.
17. Select Yes in the Respect assortments field.
18. Click Calculate quantities and review the quantities that are added to the rows in the Warehouse section.
19. Click Create order.
20. Click Yes.
Set up rules and parameters for cross docking and
buyer's push
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure demonstrates the steps to create Replenishment rules. Replenishment rules can be used to control
how products are distributed to stores when using Cross-docking and Buyer´s push. Replenishment rules can be set
up for stores or store groups. The weight defined for each line in a rule will control how the quantities of products
will get distributed between the stores when using Replenishment rules as the distribution method in Cross-
docking or Buyer´s push. This procedure uses the USRT demo company.
1. Go to Replenishment rules.
2. Click New.
3. In the Replenishment rule field, type a value.
4. In the Description field, type a value.
5. Click Save.
6. Click Add.
7. In the list, mark the selected row.
You can choose Replenishment hierarchy or Channel for the type. The value controls whether the
selection in Name will be a hierarchy of channels or a specific channel. For this example, leave it set as
Replenishment hierarchy.
8. In the Name field, select a value.
The default weight value is populated from the weight defined on the warehouse. This weight can be
used for the Replenishment rule or you can enter a new weight in the Weight field.
9. In the Weight field, enter a number.
10. Click Add.
11. In the list, mark the selected row.
12. In the Type field, select 'Channel'.
13. In the Name field, enter or select a value.
14. In the Weight field, enter a number.
15. Click Save.
Inbound inventory operation in POS
3/13/2020 • 15 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In Microsoft Dynamics 365 Commerce version 10.0.10 and later, inbound and outbound operations in the point of
sale (POS) replace the picking and receiving operation.

NOTE
In version 10.0.10 and later, any new features in the POS application that are related to receiving store inventory against
purchase orders and transfer orders will be added to the Inbound operation POS operation. If you're currently using the
picking and receiving operation in POS, we recommend that you develop a strategy for moving from that operation to the
new inbound and outbound operations. Although the picking and receiving operation won't be removed from the product,
there will be no further investments in it, from a functional or performance perspective, after version 10.0.9.

Prerequisite: Configure an asynchronous document framework


The inbound operation includes performance improvements to ensure that users who have high volumes of receipt
postings across many stores or companies, and large inventory documents, can process those documents to
Commerce Headquarters without experiencing time-outs or failures. These improvements require use of an
asynchronous document framework.
When an asynchronous document framework is used, you can commit inbound document changes from POS to
Commerce Headquarters and then move on to other tasks while the processing to Commerce Headquarters occurs
in the background. You can check the status of a document through the Inbound operation document list page in
POS to make sure that posting was successful. In the POS application, you can also use the inbound operation
active document list to see any documents that could not be posted to Commerce Headquarters. If a document
fails, POS users can make corrections to it and then try again to process it to Commerce Headquarters.

IMPORTANT
The asynchronous document framework must be configured before a company tries to use the inbound operation in POS.

To configure an asynchronous document framework, complete the following procedures.


Create and configure a number sequence
1. Go to Organization administration > Number sequences > Number sequences .
2. On the Number sequences page, create a number sequence.
3. In the Number sequence code and Name fields, enter user-defined values.
4. On the References FastTab, select Add .
5. In the Area field, select Commerce parameters .
6. In the Reference field, select Retail document operation identifier .
7. On the General FastTab, in the Setup section, set the Continuous option to No to ensure that there are no
performance issues.
Create and schedule two batch jobs for the document processing and monitoring tasks
The batch jobs that you create will be used to process documents that fail or time out. They will also be used when
the number of active inventory documents that are being processed from POS exceeds a system-configured value.
1. Go to System administration > Inquiries > Batch jobs .
2. On the Batch job page, create two batch jobs:
Configure one job to run the RetailDocumentOperationMonitorBatch class.
Configure the other job to run the RetailDocumentOperationProcessingBatch class.
3. Schedule the new batch jobs to run on a recurring basis. For example, set the schedule so that the jobs are
run every five minutes.

Prerequisite: Add Inbound operation to the POS screen layout


Before your organization can use the inbound operation functionality, it must configure the Inbound operation
POS operation on one or more of your POS screen layouts. Before you deploy the new operation in a production
environment, make sure that you thoroughly test it and train your users to use it.

Overview
The inbound operation lets POS users perform the following tasks:
Receive inventory into store stock from either confirmed purchase order documents or shipped transfer order
documents.
View information about historical inventory receipts for a period of seven days after the document has been
fully received.
Create new inbound transfer order requests.
When the inbound operation is started from the POS application, a list page view appears. This view shows open
purchase order and transfer order documents that have inventory lines that are scheduled to be received by the
current store. To find and select a specific document, users can scroll the list or use the search feature.
The inbound inventory document list has three tabs:
Active – This tab shows documents that are fully or partially open, and that contain lines or quantities on lines
that must still be received.
Draft – This tab shows new inbound transfer order requests that the store has created. However, the documents
have only been saved locally. They haven't yet been submitted to Commerce Headquarters for processing.
Complete – This tab shows a list of purchase order or transfer order documents that the store has fully
received during the last seven days. This tab is for informational purposes only. All the information about the
documents is read-only data for the store.
When you view documents on any of the tabs, the Status field can help you understand the stage that the
document is in.
Draft – The transfer order document has only been saved locally to the store's channel database. No
information about the transfer order request has yet been submitted to Commerce Headquarters.
Requested – The purchase order or transfer order has been created in Commerce Headquarters, and is fully
open. No receipts have yet been processed against the document. For documents of the purchase order
document type, receiving can begin at any time while the status is Requested .
Par tially shipped – The transfer order document has one or more lines or partial line quantities that have
been posted as shipped by the outbound warehouse. These shipped lines are available to be received through
the inbound operation.
Fully shipped – The transfer order has had all its lines and full line quantities posted as shipped by the
outbound warehouse. The whole document is available to be received through the inbound operation.
Par tially received – Some of the lines or line quantities on the purchase order or transfer order document
have been received by the store, but some lines remain open.
Fully received – All lines and quantities on the purchase order or transfer order document have been fully
received. The documents are accessible only on the Complete tab and are read-only by store users.
In progress – This status is used to inform device users that the document is being actively worked on by
another user.
Paused – This status is shown after Pause receiving is selected to temporarily stop the receiving process.
Processing in HQ – The document was submitted to Commerce Headquarters from the POS application, but it
hasn't yet been successfully posted to Commerce Headquarters. The document is going through the
asynchronous document posting process. After the document is successfully posted to Commerce
Headquarters, its status should be updated to Fully received or Par tially received .
Processing failed – The document was posted to Commerce Headquarters and rejected. The Details pane
shows the reason for the posting failure. The document must be edited to fix data issues, and then it must be
resubmitted to Commerce Headquarters for processing.
When you select a document line in the list, a Details pane appears. This pane shows additional information about
the document, such as shipment and date information. A progress bar shows how many items must still be
processed. If the document wasn't successfully processed to Commerce Headquarters, the Details pane also shows
error messages that are related to the failure.
In the document list page view, you can select Order details on the app bar to view the document details. You can
also activate receipt processing on eligible document lines.
In the document list page view, you can also create a new inbound transfer order request for a store. The
documents remain in Draft status, and they can be adjusted or deleted until they are submitted to Commerce
Headquarters for processing. After they are submitted to Commerce Headquarters, the transfer order lines can no
longer be changed from the POS application.

Receiving process
After you select a purchase order or transfer order document on the Active tab, you can select Order details to
begin the receiving process.
By default, the Receiving now view is shown. This view is optimized for bar code scanning. It can be used to build
a list of the items that have been scanned, so that those items can be received. To begin the receiving process, you
can start to scan item bar codes.
As item bar codes are scanned in the Receiving now view, the application validates the items against the selected
purchase or transfer order document, to make sure that each scanned item matches a valid item on the document.
In the Receiving now view, each scan of a bar code is assumed to represent the receipt of a quantity of one unit,
unless a quantity is embedded in the bar code. You can repeatedly scan bar codes in this view to build a list of all
the items and quantities for the receipt.
Example scenario
A user receives a purchase order that contains 10 units of bar code 5657900266. The user can scan that bar code
10 times to update the Receiving now field by one unit per scan. When the user has completed the scans, the
Receiving now field for the item's line will show that a quantity of 10 was received.
Alternatively, in a scenario where the item quantity is large, the user might prefer to manually enter the quantity
instead of scanning the bar code for each item that is received. In this case, the user can scan the bar code one time
to add the item to the Receiving now list. The user can then select the associated line in the Receiving now view
and then, in the Details pane that appears on the right side of the page, update the Receiving quantity field for
the item.
Although the Receiving now view is optimized for bar code scanning, users can also select Receive product on
the app bar, and then enter the item ID or bar code data through a dialog box. After the item that was entered is
validated, the user is prompted to enter the receipt quantity.
The Receiving now view provides a focused way for users to see which products they are receiving. Alternatively,
the Full order list view can be used. This view shows the whole list of document lines for the selected purchase or
transfer order document. Users can manually select lines manually in the list and then, in the Details pane, update
the Receiving quantity field for the selected line. In the Full order list view, users can scan bar codes, or they
can use the Receive product function to enter the item ID or bar code, and data about the received quantity,
without first having to select the matching item line in the list.
Over-receiving validations
Validations occur during the receiving process for the document lines. They include validations for over-delivery. If
a user tries to receive more inventory than was ordered on a purchase order, but either over-delivery isn't
configured or the amount that is received exceeds the over-delivery tolerance that is configured for the purchase
order line, the user receives an error and isn't allowed to receive the excess quantity.
Over-receiving isn't permitted for transfer order documents. Users will always receive errors if they try to receive
more than was shipped for the transfer order line.
Receiving location-controlled items
If the items that are being received are location-controlled, users can select the location where they want to receive
the items during the receiving process. We recommend that you configure a default receiving location for your
store warehouse, to make this process more efficient. Even if a default location is configured, users can override the
receiving location on selected lines as they require.
The operation respects the Blank receipt allowed configuration on the Location storage dimension and doesn't
require that a location dimension be entered if blank receipt is configured. If blank receipt locations aren't allowed
for an item, the POS application shows an error and requires that a location be entered before the receipt can be
posted.
Receive all
As you require, you can select Receive all on the app bar to quickly update the Receiving now quantity for all the
document lines to the maximum value that is available to be received for those lines.
Cancel receiving
You should use the Cancel receiving function on the app bar only if you want to back out of the document and
don't want to save any changes. For example, you initially selected the wrong document and don't want any of the
previous receiving data saved.
Pause receiving
If you're receiving inventory, you can use the Pause receiving function if you want to take a break from the
receiving process. For example, you might want to perform another operation from the POS, such as ringing up a
customer sale, or delay posting of the receipt.
When you select Pause receiving , the document's status is changed to Paused . Therefore, users will know that
data has been entered for the document, but the document hasn't yet been committed. When you're ready to
resume the receiving process, select the paused document, and then select Order details . Any Receiving now
quantities that were previously saved are retained and can be viewed from the Full order list view.
Finish receiving
When you've finished entering all the Receiving now quantities for products, you must select Finish receiving
on the app bar to process the receipt.
When users complete a purchase order receipt, they are prompted to enter a value in the Receipt number field, if
this functionality is configured. Typically, this value is equivalent to the identifier of the vendor packing slip. The
Receipt number data will be stored in the Product receipt journal in Commerce Headquarters. Receipt numbers
aren't captured for transfer order receipts.
When asynchronous document processing is used, the receipt is submitted through an asynchronous document
framework. The time that it takes for the document to be posted depends on the size of the document (the number
of lines) and the general processing traffic that is occurring on the server. Typically, this process occurs in a matter
of seconds. If document posting fails, the user is notified through the Inbound operation document list, where
the document status will be updated to Processing failed . The user can then select the failed document in POS to
view the error messages and the reason for the failure in the Details pane. A failed document remains unposted
and requires that the user return to the document lines by selecting Order details in POS. The user must then
update the document with corrections, based on the errors. After a document is corrected, the user can try again to
process it by selecting Finish fulfillment on the app bar.

Create an inbound transfer order


From POS, users can create new transfer order documents. To begin the process, select New on the app bar while
you're in the main Inbound operation document list. You're then prompted to select a Transfer from warehouse
or store that will provide the inventory to your store location. The values are limited to the selection that is defined
in the configuration of the store's fulfillment group. In an inbound transfer request, your current store will always
be the Transfer to warehouse for the transfer order. That value can't be changed.
You can enter values in the Ship date , Receive date , and Mode of deliver y fields as you require. You can also
add a note that will be stored together with the transfer order header, as an attachment to the document in
Commerce Headquarters.
After the header information is created, you can add products to the transfer order. To start the process of adding
items and requested quantities, select Add product . In the Details pane, you can also add a line-specific note to
the journal lines. These notes will be stored as a line attachment.
After lines are entered on the inbound transfer order, you must select Save to save the document changes locally
or Submit request to submit the order details to Commerce Headquarters for further processing. If you select
Save , the draft document is stored in the channel database, and the outbound warehouse can't run the document
until it has been successfully processed via Submit request . You should select Save only if you aren't ready to
commit the request to Commerce Headquarters for processing.
If a document is saved locally, it can be found on the Drafts tab of the Inbound operation document list. While a
document is in Draft status, you can edit it by selecting Edit . You can update, add, or delete lines as you require.
You can also delete the whole document while it's in Draft status, by selecting Delete on the Drafts tab.
After the draft document is successfully submitted to Commerce Headquarters, it appears on the Active tab and
has a status of Requested . At this point, users in the inbound store or warehouse can no longer edit the requested
inbound transfer order document. Only users in the outbound warehouse can edit the document, by selecting
Outbound operation in the POS application. The editing lock ensures that no conflicts occur because an inbound
requestor changes the transfer order at the same time that the outbound shipper is actively picking and shipping
the order. If changes are required from the inbound store or warehouse after the transfer order has been
submitted, the outbound shipper should be contacted and asked to enter the changes.
After the document is in Requested status, it's visible on the Active tab. However, it can't yet be received by the
inbound store or warehouse. After the outbound warehouse has shipped some or all of the transfer order, the
inbound store or warehouse can post receipts in POS. When the outbound side processes the transfer order
documents, their status is updated from Requested to Shipped or Par tially Shipped . After the documents are in
Shipped or Par tially Shipped status, the inbound store or warehouse can post receipts against them using the
inbound operation receiving process.

Related topics
Outbound inventory operation in POS
Outbound inventory operation in POS
3/13/2020 • 12 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In Microsoft Dynamics 365 Commerce version 10.0.10 and later, inbound and outbound operations in the point of
sale (POS) replace the picking and receiving operation.

NOTE
In version 10.0.10 and later, any new features in the POS application that are related to receiving store inventory against
purchase orders and transfer orders will be added to the inbound operations operation. If you're currently using the picking
and receiving operation in POS, we recommend that you develop a strategy for moving from that operation to the new
inbound and outbound operations. Although the picking and receiving operation won't be removed from the product, there
will be no further investments in it, from a functional or performance perspective, after version 10.0.9.

Prerequisite: Configure an asynchronous document framework


The outbound operation includes performance improvements to ensure that users who have high volumes of
receipt postings across many stores or companies, and large inventory documents, can process those documents
to Commerce Headquarters without experiencing time-outs or failures. These improvements require use of an
asynchronous document framework.
When an asynchronous document framework is used, you can commit outbound document changes from POS to
Commerce Headquarters and then move on to other tasks while the processing to Commerce Headquarters occurs
in the background. You can check the status of the document through the Outbound operation document list
page in POS to make sure that posting was successful. In the POS application, you can also use the outbound
operation active document list to see any documents that could not be posted to Commerce Headquarters. If a
document fails, POS users can make corrections to it and then try again to process it to Commerce Headquarters.

IMPORTANT
The asynchronous document framework must be configured before a company tries to use the outbound operation in POS.

To configure an asynchronous document framework, complete the following procedures.


Create and configure a number sequence
1. Go to Organization administration > Number sequences > Number Sequences .
2. On the Number sequences page, create a number sequence.
3. In the Number sequence code and Name fields, enter user-defined values.
4. On the References FastTab, select Add .
5. In the Area field, select Commerce parameters .
6. In the Reference field, select Retail document operation identifier .
7. On the General FastTab, in the Setup section, set the Continuous option to No to ensure that there are no
performance issues.
Create and schedule two batch jobs for the document processing and monitoring tasks
The batch jobs that you create will be used to process documents that fail or time out. They will also be used when
the number of active inventory documents that are being processed from POS exceeds a system-configured value.
1. Go to System Administration > Inquiries > Batch jobs .
2. On the Batch job page, create two batch jobs:
Configure one job to run the RetailDocumentOperationMonitorBatch class.
Configure the other job to run the RetailDocumentOperationProcessingBatch class.
3. Schedule the new batch jobs to run on a recurring basis. For example, set the schedule so that the jobs are
run every five minutes.

Prerequisite: Add Outbound operation to the POS screen layout


Before your organization can use the outbound operation functionality, it must configure the Outbound
operation POS operation on one or more of your POS screen layouts. Before you deploy the new operation in a
production environment, make sure that you thoroughly test it and train your users to use it.

Overview
The outbound operation lets POS users perform the following tasks:
Post shipments for transfer order documents in cases where the user's store is the designated outbound
warehouse.
View information about historical transfer order shipments that were posted by the store.
Create new outbound transfer order requests.
When the outbound operation is started from the POS application, a list page view appears. This view shows open
transfer order documents that have inventory lines that the user's current store is intended to ship and fulfill. To
find a select a document, users can scroll the list or use the search feature.
The outbound inventory document list has three tabs.
Active – This tab shows transfer orders that have a status of Requested or Par tially Shipped . The orders
contain lines or quantities on lines that must be shipped by the user's current store. This tab also shows orders
that have a status of Processing in HQ (that is, they are waiting for confirmation of successful posting from
Commerce Headquarters) or Processing failed (that is, posting to Commerce Headquarters was unsuccessful,
and the user must correct data and try again to submit the orders).
Draft – This tab shows new outbound transfer order requests that the user's store created. However, the
documents have only been saved locally. They haven't yet been submitted to Commerce Headquarters for
processing.
Complete – This tab shows a list of transfer order documents that the store has fully shipped during the last
seven days. This tab is for informational purposes only. All the information about the documents is read-only
data for the store.
When you view documents on any of the tabs, the Status field can help you understand the stage that the
document is in.
Draft – The transfer order document has only been saved locally to the store's channel database. No
information about the transfer order request has yet been submitted to Commerce Headquarters.
Requested – The purchase order or transfer order has been created in Commerce Headquarters and is fully
open. The user's current store has yet processed any shipments against the document.
Par tially shipped – The transfer order document has one or more lines or partial line quantities that have
been posted as shipped by the outbound warehouse. These shipped lines are available to be received through
the inbound operation.
Fully shipped – The transfer order has had all its lines and full line quantities posted as shipped by the
outbound warehouse.
In progress – This status is used to inform device users that the document is being actively worked on by
another user.
Paused – This status is shown after Pause receiving is selected to temporarily stop the receiving process.
Processing in HQ – The document was submitted to Commerce Headquarters from the POS application, but it
hasn't yet been successfully posted to Commerce Headquarters. The document is going through the
asynchronous document posting process. After the document is successfully posted to Commerce
Headquarters, its status should be updated to Fully received or Par tially received .
Processing failed – The document was posted to Commerce Headquarters and rejected. The Details pane
shows the reason for the posting failure. The document must be edited to fix data issues, and then it must be
resubmitted to Commerce Headquarters for processing.
When you select a document line in the list, a Details pane appears. This pane shows additional information about
the document, such as shipment and date information. A progress bar shows how many items must still be
processed. If the document wasn't successfully processed to Commerce Headquarters, the Details pane also
shows error messages that are related to the failure.
In the document list page view, you can select Order details on the app bar to view the document details. You can
also activate receipt processing on eligible document lines.
In the document list page view, you can also create a new outbound transfer order for a store.

Transfer order shipping process


After you select a transfer order document on the Active tab, you can select Order details to begin the fulfillment
process. The Full order list view appears. This page shows all the document lines that contain the item. It also
shows details of the ordered quantity.
Each scan of a bar code updates the quantity in the Shipping now field by one unit. Alternatively, you can enter a
shipping quantity by selecting Ship product on the app bar, entering an item ID, and then entering the quantity. If
the item is location-controlled, you can confirm or set the shipping location for the document line.
In the Full order list view, you can manually select a line in the list and then update the Shipping now quantity
for the selected line in the Details pane.
Over-delivery shipping validations
Validations occur during the receiving process for the document lines. They include validations for over-delivery. If
a user tries to receive more inventory than was ordered on a purchase order, but either over-delivery isn't
configured or the quantity that is received exceeds the over-delivery tolerance that is configured for the purchase
order line, the user receives an error and isn't allowed to receive the excess quantity.
Shipping location-controlled items
If the items that are being shipped are location-controlled, users can choose the location that they want to issue the
inventory from during the shipping process. We recommend that you configure a default issue location for your
store warehouse, to make this process more efficient. Even if a default location is configured, users can override the
issue location on selected lines as they require.
The operation respects the Blank receipt allowed configuration on the Location storage dimension and doesn't
require that a location dimension be entered if blank receipt is configured. If blank receipt locations aren't allowed
for an item, the POS application shows an error and requires that a location be entered before the receipt can be
posted.
Ship all
As you require, you can select Ship all on the app bar to quickly update the Shipping now quantity for all the
document lines to the maximum value that is available to be fulfilled for those lines.
Cancel fulfillment
You should use the Cancel fulfillment function on the app bar only if you want to back out of the document and
don't want to save any changes. For example, you initially selected the wrong document and don't want any of the
previous shipping data saved.
Pause fulfillment
If you're fulfilling the transfer order, you can use the Pause fulfillment function if you want to take a break from
the process. For example, you might want to perform another operation from the POS, such as ringing up a
customer sale, or delay posting of the shipment to Commerce Headquarters.
When you select Pause fulfillment , the document's status is changed to Paused . Therefore, user will know that
data has been entered in the document, but the document hasn't yet been committed. When you're ready to
resume the fulfillment process, select the paused document, and then select Order details . Any Shipping now
quantities that were previously saved will be retained and can be viewed from the Full order list view.
Finish fulfillment
When you've finished entering all the Shipping now quantities for products, you must select Finish fulfillment
on the app bar.
When asynchronous document processing is used, the receipt is submitted through an asynchronous document
framework. The time that it takes for the document to be posted depends on the size of the document (the number
of lines) and the general processing traffic that is occurring on the server. Typically, this process occurs in a matter
of seconds. If document posting fails, the user is notified through the Outbound operation document list on the
Active tab, where the document status will be updated to Processing failed . The user can then select the failed
document in POS to view the error messages and the reason for the failure in the Details pane. A failed document
remains unposted and requires that the user return to the document lines by selecting Order details in POS. The
user must then update the document with corrections, based on the errors. After a document is corrected, the user
can try again to process it by selecting Finish fulfillment on the app bar.

Create an outbound transfer order


From POS, users can create new transfer order documents. To begin the process, select New on the app bar while
you're in the main Outbound operation document list. You're then prompted to select a Transfer to warehouse
or store that your current store will send inventory to. The values are limited to the selection that is defined in the
configuration of the store's fulfillment group. In an outbound transfer request, your current store will always be the
Transfer from warehouse for the transfer order. That value can't be changed.
You can enter values in the Ship date , Receive date , and Mode of deliver y fields as you require. You can also
add a note that will be stored together with the transfer order header, as an attachment to the document in
Commerce Headquarters.
After the header information is created, you can add products to the transfer order. To start the process of adding
items and requested quantities, scan bar codes or select Add product .
After lines are entered on the outbound transfer order, you must select Save to save the document changes locally
or Submit request to submit the order details to Commerce Headquarters for further processing. If you select
Save , the draft document is stored in the channel database, and the outbound warehouse can't run the document
until it has been successfully processed via Submit request . You should select Save only if you aren't ready to
commit the request to Commerce Headquarters for processing.
If a document is saved locally, it can be found on the Drafts tab of the Inbound operation document list. While a
document is in Draft status, you can edit it by selecting Edit . You can update, add, or delete lines as you require.
You can also delete the whole document while it's in Draft status, by selecting Delete on the Drafts tab.
After the draft document is successfully submitted to Commerce Headquarters, it appears on the Active tab and
has a status of Requested . At this point, only users in the outbound warehouse can edit the document, by selecting
Outbound operation in the POS application. Users in the inbound warehouse can view the transfer order on the
Active tab of the Inbound operation document list, but they can't edit or delete it. The editing lock ensures that
no conflicts occur because an inbound requestor changes the transfer order at the same time that the outbound
shipper is actively picking and shipping the order. If changes are required from the inbound store or warehouse
after the transfer order has been submitted, the outbound shipper should be contacted and asked to enter the
changes.
After the document is in Requested status, it's ready for fulfillment processing by the outbound warehouse. As the
shipment is processed by using the outbound operation, the status of the transfer order documents is updated
from Requested to Fully shipped or Par tially shipped . After the documents are in Fully shipped or Par tially
shipped status, the inbound store or warehouse can post receipts against them by using the inbound operation
receiving process.
Fully shipped transfer orders are moved to the Complete tab of the Outbound operation document list. There,
they remain visible to users in the outbound store or warehouse, in read-only mode, for seven days.

Related topics
Inbound inventory operation in POS
Calculate inventory availability for retail channels
3/9/2020 • 13 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how a company can use Microsoft Dynamics 365 Commerce to view estimated on-hand
availability for products in the online and store channels.

Accuracy of calculation
Commerce uses multiple servers and databases to ensure scalability and performance. Therefore, it's important
that you understand that the available inventory values that are provided through the point of sale (POS)
application, the e-Commerce inventory availability application programming interfaces (APIs), and the on-hand
inventory pages in Commerce Headquarters might not be 100-percent accurate in real time. If transactions that
are created for products in the online or store channel haven't yet been synced to the Commerce Headquarters
server and database, the on-hand inventory pages in Commerce Headquarters might not show an accurate real-
time inventory value for those products. Conversely, if you configured your company so that users in Commerce
Headquarters or other integrated applications can sell, receive, return, or otherwise adjust inventory out of a store
or online warehouse, the POS or online channel might not have all the information that is required to show an
accurate real-time on-hand value for items.
This topic explains the data synchronization processes that can be run frequently to help limit the latency of data
between applications or channels. However, it's critical that you understand that all on-hand availability data that is
provided during the operational day is considered an estimated value. Therefore, if you try to compare the on-
hand inventory information that the application provides with actual physical inventory on the shelves, or if you
try to compare the on-hand values that are shown in POS with the on-hand data that you find for the same
warehouse in Commerce Headquarters, the values might differ. This difference during the operational day is
expected and should not be considered an issue. If you want to audit data and make sure that the values that are
provided in the inventory availability APIs and Commerce Headquarters match the actual physical units that you
find on your store or warehouse shelves, the best time to do it is after channel operations have stopped for the day
and all transactions have been correctly synced between Commerce Headquarters and the channel.

Use inventory lookup APIs for e-Commerce inventory availability


requests
You can use the following APIs to show inventory availability for a product when your customers are shopping on
an e-Commerce site.
GetEstimatedAvailabilty – Use this API to get inventory availability for the item in the e-Commerce channel
warehouse or all warehouses that are linked to the configuration of the fulfillment group for the e-Commerce
channel. This API can also be used for warehouses in a specific search area or radius, based on longitude and
latitude data.
GetEstimatedProductWarehouseAvailability – Use this API to request inventory for an item from a specific
warehouse. For example, you can use it to show inventory availability in scenarios that involve order pickup.
NOTE
These APIs replace the GetProductAvailabilities and GetAvailableInventor yNearby APIs in Dynamics 365 Retail
version 10.0.7 and earlier.

Both APIs fetch data from the Commerce server and provide an estimate of on-hand inventory for a specific
combination of a product or product variant and a warehouse. Although other APIs that are available on the
Commerce server can go directly to Commerce Headquarters to fetch on-hand quantities for products, we don't
recommend that they be used in an e-Commerce environment because of potential performance issues and the
related impact that these frequent requests can have on your Commerce Headquarters servers. Additionally, if the
on-hand inventory is calculated through the Commerce server, the calculation is more likely to include inventory
that was sold in recent e-Commerce transactions that haven't yet been synced to Commerce Headquarters.
Although Commerce Headquarters might not have information about these transactions, the Commerce server
and channel database have the data. Therefore, the data will be factored in and can help provide a more accurate
estimate of a product's available inventory.
Get started with e -Commerce calculated inventory availability
Before you use the two APIs that were mentioned earlier, you must make a parameter change in Commerce
Headquarters to ensure that the snapshot of inventory values that Commerce Headquarters calculates by using
the Product Availability job enters data in the correct tables.
To set the parameter, follow these steps.
1. Go to Retail and Commerce > Headquar ters Setup > Parameters > Commerce shared parameters .
2. On the Inventor y tab, in the Product availability job section, select Use optimized process for Product
Availability job . This setting ensures that the optimal feature set is used to calculate the channel's available
inventory through the Commerce server.
Before the APIs can calculate the best estimate of inventory availability for an item, a periodic snapshot of
inventory availability from Commerce Headquarters must be processed and sent to the channel database that the
e-Commerce Commerce Scale Unit uses. The snapshot represents the information that Commerce Headquarters
has about inventory availability for a specific combination of a product or product variant and a warehouse. It can
include inventory adjustments or movements that are caused by inventory receipts, or by shipments or other
processes that are performed in Commerce Headquarters and that the e-Commerce channel has information
about only because of the synchronization process.
The database snapshot that the Product availability job creates calculates only the inventory transactions that
were processed and posted in Commerce Headquarters at the time when the snapshot was taken. If inventory was
sold for a product in a store warehouse through a cash-and-carry or asynchronous customer order sale in the POS
application, Commerce Headquarters won't immediately have information about the related inventory issue
transaction for the sale. It will have information about the inventory that is sold for these types of store sales only
after the P-job uploads the related transaction from the store's channel database into Commerce Headquarters and
the related sales order is created through statement posting or the trickle feed posting processes. The process of
creating the order in Commerce Headquarters creates the related inventory transactions. For e-Commerce channel
orders, Commerce Headquarters has information about the inventory transactions only after the transactions are
sent to Commerce Headquarters through the P-job and the order synchronization process is completed. Therefore,
it's important that you understand that the inventory snapshot value that is provided in the Product availability
job might not be 100-percent accurate in real time because of the constant sales processing that occurs across
distributed servers.
To take a snapshot of inventory in Commerce Headquarters, follow these steps.
1. Go to Retail and Commerce > Retail and Commerce IT > Products and inventor y > Product
availability .
2. Select OK to run the Product availability job. You can also schedule this job so that it's run in a batch.
After the Product availability job has finished running, the data that was captured must be pushed to the e-
Commerce channel databases, so that the latest Commerce Headquarters inventory snapshot can be considered in
the calculation of estimated on-hand inventory.
1. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
2. Run the 1130 (Product availability ) job to sync the snapshot data that the Product availability job created
from Commerce Headquarters to your channel databases.
When inventory availability is requested from the GetEstimatedAvailabilty or
ProductWarehouseInventor yAvailabilities API, a calculation is run to try to get the best possible estimate of
inventory for the product. The calculation references any e-Commerce customer orders that are in the channel
database but that weren't included in the snapshot data that the 1130 job provided. This logic is performed by
tracking the last processed inventory transaction from Commerce Headquarters and comparing it with the
transactions in the channel database. It provides a baseline for the channel-side calculation logic, so that the
additional inventory movements that occurred for customer order sales transactions in the e-Commerce channel
database can be factored into the estimated inventory value that the API provides.
The channel-side calculation logic returns an estimated physically available value and a total available value for the
requested product and warehouse. The values can be shown on your e-Commerce site if you want, or they can be
used to trigger other business logic on your e-Commerce site. For example, you can show an "out of stock"
message instead of the actual on-hand quantity that the API passed.
The calculation logic that the channel-side e-Commerce APIs use for the estimated inventory value can evaluate
inventory based only on customer orders that have been created in the channel database but that haven't yet been
synced and posted in Commerce Headquarters. If your channel database also contains transactional data for cash-
and-carry sales for store-specific warehouses, the cash-and-carry sales aren't factored into the channel-side e-
Commerce calculation for those warehouses.

Configure the inventory lookup operation in the POS channel


In Retail version 10.0.9 and earlier, the Inventor y lookup operation from POS used a real-time service call to
Commerce Headquarters to get inventory information for the selected product, for both the user's current store
and any other stores that are configured for the fulfillment group as part of the channel configuration for the store.
In Commerce version 10.0.10 and later, you can turn off real-time service calls to Commerce Headquarters.
Instead, you can use channel-side calculation on the Commerce server to determine the on-hand inventory that is
physically available for the store and any other locations that are defined in the fulfillment group. This channel-
calculated inventory configuration is also useful for locations where internet connectivity is unreliable, because you
don't have to be online to get inventory lookups from Commerce Headquarters.
When channel-side calculation is correctly configured and managed, it can provide a more reliable estimate of the
current store inventory, because it uses the transactional data that is in the Commerce channel database but that
Commerce Headquarters might not yet have information about. For example, if you use the existing real-time
service call for inventory lookups in POS, Commerce Headquarters probably won't yet have information about a
cash-and-carry sale that just occurred for a product. Therefore, the on-hand inventory value that Commerce
Headquarters returns for that product will probably exceed the store's actual on-hand inventory by one unit.
However, if you use channel-side calculation, the cash-and-carry sale can be factored into the calculation and
deducted from the on-hand value that is shown. Although the values that both the channel-side calculation and the
real-time service call provide are only estimates of on-hand inventory, the value that the channel-side calculation
provides is much more likely to be accurate for the current store.
Get started with POS channel-side calculated inventory availability
To use the channel-side calculation logic and turn off real-time service calls for inventory lookups from the POS
application, you must first make two parameter changes. You must then sync the changes to the channel through
the distribution schedule process.
To set the first parameter, follow these steps.
1. Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce shared parameters .
2. On the Inventor y tab, in the Product availability job section, select Use optimized process for Product
Availability job . This setting ensures that the optimal feature set is used to calculate the channel's available
inventory through the Commerce server.
To set the second parameter, follow these steps.
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles .
2. Select a functionality profile.
3. On the Functions FastTab, in the Invent availability calculation section, change the value of the Invent
availability calculation mode field from Real time ser vice to Channel . By default, all functionality profiles
use real-time service calls. Therefore, you must change the value of this field if you want to use channel-side
calculation logic. Every retail store that is linked to the selected functionality profile will be affected by this
change.
To update the servers, follow these steps.
1. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
2. Run the 1070 (Channel configuration ) job.
After the configuration is completed, the information that is provided about physically available inventory no
longer uses a real-time service call when a user in the POS application uses the Inventor y lookup operation
(standard and matrix views). Instead, data about physically available inventory for the current store and all the
stores in the fulfillment group is calculated based on the last-known snapshot that was delivered to the channel
database from Commerce Headquarters. The snapshot value is further refined by the channel-side calculation to
adjust the physically available value, based on additional sales or return transactions that exist for the selected
product in the channel database that were not included in the last synchronized snapshot from the 1130 job. If the
channel database doesn't contain transactional data for any of the warehouses or stores in the fulfillment group, it
contains no additional transactions that can be factored into a recalculation of the value. Therefore, the best
estimate of on-hand inventory that can be shown for those warehouses or stores is the data from the last-known
Commerce Headquarters snapshot.
The Order fulfillment screens of POS also leverage the channel side calculation to show on-hand inventory for
items when an order fulfillment line is selected and a user views the Details panel for on-hand inventory for the
selected item.

Optimize your inventory data


To ensure the best possible estimate of inventory, it's critical that you use the following Commerce batch jobs and
run them frequently:
P-job – The P-job is found on the Distribution schedules page and should be run frequently. This job brings
e-Commerce orders, asynchronous customer orders that POS created, and cash-and-carry orders that POS
created from the channel databases into Commerce Headquarters, so that they can be processed further. Until
this data is synced from the channel to Commerce Headquarters, Commerce Headquarters has no information
about inventory adjustments to products in the warehouses that result from those transactions.
Synchronize orders – This job processes the raw transactional data in Commerce Headquarters that the P-job
provides and converts e-Commerce and asynchronous customer order transactions into sales orders in
Commerce Headquarters. Until this job is processed and the sales orders are created, no inventory transactions
are created. Therefore, on-hand inventory in Commerce Headquarters won't consider the transactions.
Calculate transactional statements in batch – For cash-and-carry transactions that are created in the store,
the trickle feed posting process ensures that inventory that is related to the sales is updated efficiently. To get
the most efficient processing of inventory transactions for cash-and-carry orders, make sure that you configure
your system to use trickle feed posting.
Post transactional statements in batch – This job is also required for trickle feed posting. It follows the
Calculate transactional statements in batch job. This job systematically posts the calculated statements, so
that sales orders for cash-and-carry sales are created in Commerce Headquarters and Commerce Headquarters
more accurately reflects your store's inventory.
Product availability – This job creates the snapshot of inventory from Commerce Headquarters.
1130 (Product availability) – This job is found on the Distribution schedules page and should be run
immediately after the Product availability job. This job transports the inventory snapshot data from
Commerce Headquarters to the channel databases.

NOTE
For performance reasons, when channel-side inventory availability calculations are used to make an inventory availability
request using the e-Commerce API's or the new POS channel-side inventory logic, the calculation uses a cache to determine
whether enough time has passed to justify running the calculation logic again. The default cache is set to 60 seconds. For
example, you turned on channel-side calculation for your store and viewed the on-hand inventory for a product on the
Inventor y lookup page. If one unit of the product is then sold, the Inventor y lookup page won't show the reduced
inventory until the cache has been cleared. After users post transactions in POS, they should wait 60 seconds before they
verify that the on-hand inventory has been reduced.

If your business scenario requires a smaller cache time, contact your product support representative for help.
Purchase order overview
4/3/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article provides general information about purchase orders (POs) and links to additional articles that are
related to the various stages that a PO goes through.
A purchase order (PO) is a document that represents an agreement with a vendor to buy goods or services. The
document also helps keep track of product receipts that are made toward the order and, later, the accounting of
vendor invoices that the vendor bills toward the order.
The Purchase orders page contains an overview of the available orders and lets you modify those orders. When
you open a PO, you can select the Header view, which contains information that is specified only one time for each
PO, such as the vendor details. Alternatively, you can select the Lines view, where you can modify order lines.
Typically, you will switch between these two views as you modify POs. Charges aren't listed directly on the
Purchase orders page, but are accessed via menus on the order header and lines.
There are many reports where you can view information about POs, product receipts, and vendor invoices. These
reports are found in the Procurement and sourcing and Accounts payable modules.
The Purchase order preparation and Purchase order receipt and follow-up workspaces let you view lists of
POs in the various states that they have progressed to. They also provide a summary of the actions that must be
taken. The Purchase order preparation workspace is focused on PO creation and review, processing of the
order through approval, and confirmation with the vendor. The Purchase order receipt and follow-up
workspace is focused on processing the receipt of goods or services against POs. It includes lists that give insight
into receipts that are overdue, or that will soon be due for delivery by the supplier. These workspaces aren't used to
perform the related receipt activities that are done in the warehouse. Those activities are performed by using pages
in the Inventor y management and Warehouse management modules. Processing of vendor invoices should
be done by using the Vendor invoice entr y workspace, and payments should be done by using the Vendor
payments workspace.
The following articles provide an overview of the various stages that a PO goes through:
Create purchase orders
Approve and confirm purchase orders
Product receipt against purchase orders
Overview of vendor invoices

Types of purchase orders


There are three types of POs. When you create a PO, you must specify the type. You can set up a default order type
for new orders on the Procurement and sourcing parameters page.

PO TYPE DESC RIP T IO N


PO TYPE DESC RIP T IO N

Journal Use this type to create a draft order. This type doesn't affect
stock quantities or generate inventory transactions. The PO
journal lines aren't included in master scheduling.

Purchase order Use this type to create POs when orders are confirmed with a
vendor, and as the orders are processed through receipt and
invoicing before payment is made to the vendor. This type of
PO is the most common.

Returned order Use this type when you return goods to the vendor. This type
of order requires that you specify the return material
authorization (RMA) number that the vendor gives you. You
specify the RMA number on the General tab of the PO. The
order lines must have negative quantities.

Purchase order statuses


POs include several status fields that indicate the progress of the order. All these fields are visible in the Header
view of the order, and a few of them are also visible in the grid overview of all orders. The Status field show the
status for quantities on the order. The following values are available:
Open order – Orders have been created, and quantities are on order.
Received – Some of the quantities have been received, but they haven't been invoiced yet.
Invoiced – The full quantity on the order has been invoiced. Note: If an order has been partially invoiced,
neither Received status nor Invoiced status is appropriate. Therefore, the order will still have a status of Open
order .
Canceled – An order was confirmed but later canceled. Therefore, this status indicates that there are no longer
any open quantities on order.
The Document status field helps you quickly review the order's progress in terms of documents that have been
processed. It shows the status of the most recent document that has been completed for the order. The following
values are available:
None – No document has been processed for the order yet.
Purchase inquir y – A purchase inquiry has been generated, and the order is awaiting feedback from the
vendor.
Purchase order – Confirmation has been processed on the order.
Product receipt – Product receipt has been processed on the order.
Invoice – An invoice has been accounted with the order.
The Approval status field is used when a PO goes through a review process or workflow. The following values
are available:
Draft , In review , and Rejected – These statuses are used only when an approval workflow is used for the PO.
Approved – This status is assigned to orders that have completed workflow approval. Orders that are created
without using an approval workflow receive a status of Approved immediately.
In external review – This status is used in scenarios where a purchase inquiry is sent to the vendor, so that the
vendor can confirm terms of the PO. This status is also used in the process that is initiated by the Confirmation
request action. For this process, the vendor is asked to confirm terms of the PO by connecting to your system
and registering whether it confirms or rejects the order.
Confirmed – This status is assigned after the order has been confirmed. Typically, this status is the last
approval status that is assigned to an order.
Additional resources
Create purchase orders
Approve and confirm purchase orders
Product receipt against purchase orders
Overview of vendor invoices
Create purchase orders
4/3/2020 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article describes the process and options when you manually create a purchase order.
When you create a purchase order (PO), general information about the whole order is specified in the PO header,
and you then add one or more PO lines. This article describes some of the most frequently used options that are
available.
You can also create POs by copying lines from another PO document or a sales order. In this case, you can reverse
the sign on the inventory, as you would reverse the sign on an invoice to indicate credit.
Although you can manually create POs, they are more typically generated from other processes. Orders can be
automatically created based on other documents, such as requisitions. Alternatively, they can be created as part of
the master planning process through planned POs. If you use purchase agreements, POs can be created by the
Release order action. There are also more advanced methods for automatically creating a PO. For example,
orders can be created when you use direct delivery or intercompany order chains.

Creating a purchase order header


When you create a new PO, a dialog box appears, where you can enter the most common information for the PO
header. When you click OK to close the dialog box, the order is created, and you can then specify additional
information in the header.
The first detail that you must consider when you create a PO is the type of order. The Purchase order type is used
most often. However, if a credit invoice is required, you can use the Returned order type.
You must specify the supplier in the Vendor account field. For this field, you can search on either the account or
the vendor name. If a vendor delivers from multiple locations but uses a single invoice account, you can select that
invoice account in the Invoice account field and then use it with different vendor accounts. If you must create a
PO for products that won’t be ordered repeatedly, you can use the One-time supplier option. This option
automatically creates a new vendor account that is marked as a one-time account, to support a later clean-up
process for one-time accounts in the Accounts payable module. When you select a vendor account, many fields
in the PO header inherit default values from the information that is associated with the vendor account. For
example, the default delivery site and warehouse are copied from the vendor information. However, you can
override these default values if the purchase is intended for another location.
If the supplier has provided a reference number for the order, you can record this information in the Vendor
reference field. For returned orders, you must specify a value in the RMA field to reference the supplier’s
authorization for processing the return.
If a purchase agreement is associated with the order, you must specify this information in the Purchase
agreement field.
The PO header also contains information about charges that apply to the whole order instead of individual lines.
Charges can be automatically added to the order if automatic charges have been set up for the vendor or the
vendor’s charge group. You can also manually add charges to the order header by clicking Maintain charges on
the Action Pane.

Adding purchase order lines


POs can be for physical products or for services. A setting on the inventory model group determines whether a
particular item number applies to a product or a service. Usually, the item that is purchased is specified by an item
number. However, if the order is for products or services that are directly consumed, you can also specify the item
by using a procurement category.
PO lines contain lots of fields, but many of these fields have a default value or a value that is inherited from the
order header. Additional fields are set when you select a product or service. The fields that are most often set
manually include the fields for the item number, quantity, and requested delivery date. Information about unit
price and discounts is also very important, but the values of those fields are often determined by trade
agreements or purchase agreements.
When you select a product, you can search on all or part of the product name instead of using the item number. If
the product has several variants, such as different sizes, you can see an overview of the available variants by using
the Add lines function or by using the lookup that is available in the Variant number field.
Often, you will have to specify several dimensions for the item that is selected on each PO line. The dimensions
that must be specified depend on the dimension groups that have been assigned to the product master definition.
For example, you will often have to specify a site and warehouse to indicate the location that the product should be
delivered to. You identify product variants by specifying a variant number, or by entering values for one or more
product dimensions, such as color, size, configuration, or style. Tracking dimensions, such as batch and serial
number, let you uniquely identify each inventory lot. After you’ve created an order, you can capture dimension
values on the order by using the Registration action. For example, you have ordered a quantity of five pieces of
an item. Later, you register that three of those pieces will be black, and two of them will be blue. This approach is
an alternative to capturing the dimension information during arrival registration.
You can check the details of the inventory transaction status for stocked products. For example, you might want to
check the on-hand inventory to help you decide how much to order. Alternatively, you might want to review the
inventory status of an ordered quantity to see whether inbound arrival registration has occurred.
A PO line that is being used to return a product to the vendor will have a negative quantity. You can select a
specific lot to return by using the Reser vation action.
Sometimes, you might want to divide the quantity that you’ve ordered, so that different parts of it are delivered on
different dates. You can set up these deliveries by using the Deliver y schedule action, which is available on the
Purchase order line menu in the Lines view.
Charges can be automatically added to PO lines, if automatic charges have been set up for the vendor or vendor
charge group, and for the item or item charge group. However, more typically, charges are added manually at the
order line level. To add a charge, open the Maintain charges page by using the Maintain charges action on the
Financials menu in the Lines view. The advantage of adding charges directly at the order line level is that the
charge can be allocated as an inventory cost. To set up charge codes to account product cost, use the Item debit
option. These types of charges must be allocated from the PO header to the lines before the order can be
confirmed. For example, you might want to allocate charges based on the quantity on each line. The charge
category also affects how charges are accounted. For example, fixed charges specify a fixed amount, and percent
charges are calculated as a percentage of the net amount for the order line. POs can be assigned to a load, and the
load might include an estimate of the expected expense for the transportation cost. You can allocate this expense
from the load back to the PO lines.

Purchase order actions


After you’ve added the header and lines to the PO, you must often complete additional steps before the order is
ready to be confirmed. Because so many options are available, you might find it helpful to use Action search to
find the relevant menu item.
You can configure products on the order so that they have supplementary items. Supplementary items are
products that must or can be bought together with other products. Supplementary products might be added free
of charge as accompanying products, or you may be able to decide whether to add them to the order or not. You
can review the supplementary items after each order line that is added. However, you will probably find it more
convenient to review and add relevant supplementary items for all the order lines by using the Supplementar y
items page, which you can open from the Action Pane.
Discounts are usually added to lines as they are created. However, a few discounts apply to the whole order:
The Total discount action calculates a total discount percentage that is applied to the full order. Don’t confuse
this discount with the cash discount percentage. Cash discounts are applied when the invoice is paid, and they
depend on payment settlement by a specific date.
If a multi-line discount applies, you must use the Multiline discount action to calculate and assign it to the
order. Multi-line discounts are discounts that can be offered if a mix of products on the order exceeds a joint
threshold. Only a few companies use this type of discount.
Charges that have a charge code that uses the Item debit type must be assigned to the line level before the order
can be confirmed. You might find it convenient to assign these charges at the order header level, so that you can
specify the total amount of the charge. However, in this case, the charge must then be allocated down to each line
before the order can be confirmed. You can use the Allocate charges action to split amounts from charges that
are assigned at the header level down to the order lines. Charges can be split according to the net amount of each
line, according to the quantity that has been ordered, or evenly across the order lines. After you’ve allocated
charges to the lines, the charge is removed from the order header.
POs can be configured to require that budget funds be allocated to the order before it can be processed. In this
case, you can use the Budget checking action to allocate the budget.
You might have to delay the completion of a PO. For example, you might require additional information about
products or services, or you might have to get authorization for the spend. There are several ways to hold back an
order. For example, you can wait to confirm the order. Alternatively, if a change management workflow is being
used, don’t submit the order for approval. If you must block all orders for a particular vendor, you can also mark
the vendor as On hold for processing on the vendor master. There are also circumstances that might prevent the
order from being processed. For example, processing might be prevented if credit limits have been exceeded, or if
required budget funds aren’t available.

Additional resources
Purchase order overview
Approve and confirm purchase orders
Product receipt against purchase orders
Vendor invoices overview
Product receipt against purchase orders
4/3/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the various options for registering products as received.
Product receipt is the process of recording that products that were ordered have been received, so that the
purchase order (PO) lines can then be processed for invoicing. In some cases, products go through preregistration,
where additional information from the supplier is recorded before the products are received. When products
arrive, they are first marked as Registered . The products might then go through additional processes, such as
quality management, before they are finally marked as Received .

Preregistration (ASN)
Suppliers might share information about products that will be shipped. In this case, you can preregister the
products to record this information before the products are received. By preregistering products, you reduce the
amount of work that is required during item registration and receipt. Suppliers can provide product information
electronically through an Advance Shipment Notice (ASN) that is then automatically recorded in the system. The
information in the ASN includes the quantity of products that will be shipped and the date when they will be
shipped. The ASN might also include information such as batch or serial numbers. Registration of the ASN occurs
in the Transpor tation management module.

Registration
Product receipt registration often occurs at the inbound docks in a warehouse. It’s performed either by using a
hand-held device or through arrival journals. Alternatively, you can manually register product receipt by using the
Registration action on the Purchase order page. In both cases, the products are marked as Registered . Note
that the products aren’t yet marked as Received .
Products that are received in a warehouse might go through quality inspection before they are put away into
inventory. Either quality orders or quarantine orders can be used to perform quality inspection. If quality orders
are used, you can configure the process to temporarily block products through a reservation while they are
inspected. If quarantine orders are used, products are moved to another warehouse for inspection. This warehouse
is known as the quarantine warehouse. In both quality inspection processes, some of the goods might be
scrapped, either because they don’t conform to the quality expectations or because the quality inspection involves
destructive testing of a sample of the product.

Product receipt
Most often, the Product receipt action on the Purchase orders page is used to mark products as Received on
the PO. The Posting product receipt page has various options for the quantity that is accounted as received. For
example, you can set the Quantity field to Ordered quantity or Receive now quantity . Alternatively, if a
warehouse arrival process has been used, you will often set this field to Registered quantity . You can modify the
quantities on each order line that will be marked as Received , to account for any discrepancies, such as under-
delivery and over-delivery. During product receipt, you must specify a product receipt identifier, which is typically a
reference to the packing slip from the supplier. This identifier is required for accounting, because it enables checks
or audits of supplier packing slips against what has been received, and the accounted inventory or expense.
POs can be created for products that aren’t intended as inventory but are considered an expense. This category
includes order lines where the products are marked as Not stocked by their inventory model group, and also
lines that use procurement categories. In this case, the items might not go through arrival registration and receipt
in the warehouse. Instead, the Product receipt action is used to record the receipt directly on the PO, and the
receipt is based on the ordered quantity, not a registered quantity.
You can create PO lines where the New fixed asset option is enabled. This option indicates that the purchase
should be considered a fixed asset instead of inventory. In this case, the fixed asset determination rules that have
been configured determine whether the purchase of the product or category exceeds specific thresholds, and must
therefore be accounted for as an asset and go through fixed asset management. Purchases can also be made
toward an existing fixed asset. In this case, the amount is adjusted as appropriate.
You can select multiple orders and process receipt on all those orders together. This approach isn’t used very often,
but you might want to use it if a supplier has consolidated shipments for you into a single load. During product
receipt on the purchase, there is a function for doing summary updates. Summary updates let you post a single
packing slip from the supplier for more than one PO.
POs might be created from a sales order where the Direct deliver y option was selected. When direct delivery is
used, the products never arrive in your warehouse but are shipped directly from the supplier to the customer. In
this case, the receipt is usually recorded directly on the PO. The receipt can be done automatically, such as through
electronic data interchange (EDI) integration with the supplier. Alternatively, if the PO is an intercompany PO,
Supply Chain Management automates the receipt on the intercompany sales order when shipment occurs. When
direct delivery is used, products are still accounted as inventory, even though they don’t physically arrive at the
warehouse. Therefore, when product receipt is registered on the PO, the sales order is automatically updated with
a packing slip, so that the overall change to inventory is 0 (zero). In direct delivery scenarios, you should not
require preregistration. If you’re using warehouses that are enabled for warehouse management, you can get
around the requirement for license plate registration by specifying a virtual warehouse instead. You specify this
warehouse in the Direct deliver y warehouse field on the product.
After the product receipt has been processed on the PO, the PO status is set to Received to indicate that the
invoice can be processed for the order. You can review details about products that have already been received by
using the Product receipt journals page.
You can access this page from the Receipt action group on the Purchase order page. The information in the
journals includes details about the quantities, dates, and dimensions.

Additional resources
Purchase order overview
Create purchase orders
Approve and confirm purchase orders
Overview of vendor invoices
Approve and confirm purchase orders
4/3/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the statuses that a purchase order (PO) goes through after it has been created, and the effect
of enabling change management on POs.
After a purchase order (PO) has been created, it might have to go through an approval process. After the vendor
has agreed to the order, the PO is set to a status of Confirmed .

Approval of purchase orders


POs that don't use change management have a status of Approved as soon as they are created, whereas POs that
use change management have a status of Draft when they are first created. A PO that has been created by firming
a planned order from master planning is always set to a status of Approved , regardless of the change
management settings. A PO creates inventory transactions only when it reaches the Approved status. Therefore,
that inventory doesn't appear as available for reservation or marking until the order is accepted.
You enable change management for POs by setting the Activate change management option on the
Procurement and sourcing parameters page. When change management is enabled, POs must go through an
approval workflow after they have been completed. Supply Chain Management has a workflow process editor
where you can define a workflow to represent your approval process. This workflow can include rules for
automatic approval, rules that determine who will be assigned to approve particular POs, and rules for escalating
a workflow that has been waiting for approval for a long time. You can enable the change management process
for all vendors or for specific vendors. You can also set up the process so that it can be overridden for individual
POs.
When change management is enabled, POs move through six approval statuses, from Draft to Finalized . After an
order has been approved, users who want to modify it must use the Request change action.

A P P RO VA L STAT US DESC RIP T IO N REQ UEST C H A N GE IS EN A B L ED

Draft The PO is a draft and hasn't been No


submitted for approval in the PO
workflow.

In review The PO was submitted for approval in No


the PO workflow. Approval is pending.

Rejected The PO was rejected during the No


approval process.

Approved The PO was approved. Yes

Confirmed The PO was confirmed. A PO can't be Yes


confirmed until it has been approved.
A P P RO VA L STAT US DESC RIP T IO N REQ UEST C H A N GE IS EN A B L ED

Finalized The PO was made final. It's now No


financially closed and can no longer be
changed.

Confirming purchase orders


POs that have an approval status of Approved can go through additional steps before they are confirmed. For
example, you might have to send a purchase inquiry to the vendor to inquire about prices, discounts, or delivery
dates. In this case, you can set the PO to the In external review status by using the Purchase inquir y action.
Vendors that are set up to use the Vendor portal can review orders on the portal, and approve or reject them.
During this review process, the PO has a status of In external review . The Vendor portal can be configured so
that a confirmation from the vendor automatically confirms the order in Supply Chain Management. Alternatively,
you can manually confirm a PO after you receive confirmation from the vendor. If a vendor rejects a PO, the
rejection is received together with the reason for the rejection and suggestions for changes. In this case, the status
of the PO remains In external review .
There is also an option to generate a pro-forma confirmation for an order before the actual confirmation has been
processed. This option just creates a report that you can share with the vendor. It doesn't create any journal
information.
After the vendor has agreed to the order, the next step is to record the PO as committed. You can complete this
step by using either the Confirmation action or the Confirm action. Both these actions set the approval status of
the order to Confirmed . Confirmation of an order initiates two additional processes:
A journal is created to store an exact copy of what was confirmed in the system. Sometimes, orders require
changes, and additional journals are created after the updated order is confirmed. These journals let you view
the history of the various versions of the order that were confirmed.
Accounting distributions are created, and order checks and budget checks occur if this functionality has been
enabled. If either check fails, you receive an error message that states that changes must be made to the PO
before it can be confirmed again.
A vendor might request some type of assurance that payment will be provided for a purchase. There are various
methods for providing this guarantee within accounts payable processes. For example, the Prepayment action
reserves funds for the PO, and this prepayment is recorded on the PO.

Changing purchase orders


In some situations, you might have to change a PO after it has reached an approval status of Approved or
Confirmed .
If the PO was created by using a change management process, you can make changes by recalling the order or, if
the order has already been approved, by using the Request change action. In this case, the approval status is
changed back to Draft , and you can then modify the order. After you've finished making changes, you might have
to submit the PO for re-approval. You can configure the types of changes that require re-approval by using a Re-
approval rule for purchase orders policy rule on the Purchasing policies page.
If part of the ordered quantity for a PO line has been delivered, you can't change the ordered quantity when the
purchase order is in Draft . However, you can change the Deliver remainder quantity on the line for the purchase
order that is in Draft status.
After an order has been confirmed, you can no longer delete it. However, you can cancel the total quantity or any
remaining quantity on an order, provided that the quantity hasn't been received or invoiced. You can then use the
Finalize action to prevent further processing.

Canceling purchase orders


A PO can be canceled by using the Cancel action on the header.
If the quantity has been partially registered, received, or invoiced, you can cancel only the remaining quantity that
hasn't been registered, received, or invoiced. The order quantity is then reduced accordingly. When the quantity on
the line is updated, the line status is also updated. For example, the original quantity on the line is 5, and a quantity
of 3 is received. In this case, only two can be canceled. The line is then updated to Received status.
If a delivery remainder is added to the order line, and it exceeds the quantity on the order line, the Cancel action
doesn't cancel the excess quantity. Instead, the line remains in Open order status, because it has a remaining
quantity. For example, the original quantity on the line is 5, and the delivery remainder is 7. If the order is canceled,
five are canceled, and a quantity of 2 remains, as you can see in the inventory transactions.
To cancel the whole quantity on a PO line, you should cancel the delivery remainder quantity on the line. The line
will then be updated to Canceled status.
If a PO is under change management, any change, such as cancellation of the order or the delivery remainder,
must be submitted to the workflow system and approved before the process can be completed and the inventory
transactions can be updated as canceled.

Additional resources
Purchase order overview
Create purchase orders
Product receipt against purchase orders
Vendor invoices overview
Purchase order approval mobile workspace
4/3/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Purchase order approval mobile workspace. This workspace lets you
view purchase orders and respond to them through actions. For example, you can approve or reject a purchase
order.

Overview
Purchase orders that requires approval go through an approval workflow. The workflow can include various steps
that require that one or more people take action. For example, a person might have to complete a task or approve
the purchase order.
The Purchase order approval mobile workspace lets you easily view and respond to purchase orders from your
mobile device. This workspace also lets you take the same workflow actions that you can take from the web client.

Prerequisites
The prerequisites vary, depending on the version of Supply Chain Management that has been deployed for your
organization.
Prerequisites if you use Supply Chain Management
If Supply Chain Management has been deployed for your organization, the system administrator must publish the
Purchase order approval mobile workspace. For instructions, see Publish a mobile workspace.
Prerequisites if you use Microsoft Dynamics 365 for Operations version 1611 with Platform update 3 or later
If Microsoft Dynamics 365 for Operations version 1611 with Platform update 3 or later has been deployed for your
organization, the system administrator must complete the following prerequisites.

P REREQ UISIT E RO L E DESC RIP T IO N

Implement KB 4017918. System administrator KB 4017918 is an X++ update or


metadata hotfix that contains the
Purchase order approval mobile
workspace. To implement KB 4017918,
your system administrator must follow
these steps.
1. Download the metadata hotfix
from Microsoft Dynamics
Lifecycle Services (LCS).
2. Install the metadata hotfix.
3. Create a deployable package
that contains the SCMMobile
model, and then upload the
deployable package to LCS.
4. Apply the deployable package.
P REREQ UISIT E RO L E DESC RIP T IO N

Publish the Purchase order approval System administrator See Publish a mobile workspace.
mobile workspace.

Download and install the mobile app


Download and install the Finance and Operations mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Microsoft Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system administrator
publishes a new workspace later, you will have to refresh the list of mobile workspaces.

View orders that are assigned to you


1. On your mobile device, select the Purchase order approval workspace.
2. Select Orders assigned to me to view all the purchase orders for which you've been asked to take action in
the purchase order approval workflow.
3. Select an order. On the Order details page, you will see the order header information and lines. You can also
find guidelines from the workflow task.
4. Select Accounting distributions to open the Header accounting distributions page.
5. Return to the Order details page, and select a line. From the order line details, you can also explore the line-
specific accounting distributions.

Complete an action on the purchase order


After you've viewed the purchase order that is assigned to you and read the workflow instructions, you should be
ready to take action.
1. On your mobile device, select the Purchase order approval workspace.
2. Select Orders assigned to me to view all the purchase orders for which you've been asked to take action
in the purchase order approval workflow.
3. Select an order, and view the details page.
4. Select Actions to show the available actions. The actions that are available depend on the task that has been
assigned to you.

TA SK A C T IO N A P P RO VA L A C T IO N

Complete Approve

Return Reject

Request change Request change

Delegate Delegate

5. Select the appropriate action.


6. On the Complete task page, enter a comment. Note that if you select the Delegate action, you must select
a user to delegate the task to.
7. Select Done . After you refresh your workspace, the purchase order will no longer be in your list.
Create product packages for purchase orders
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through creating a product package and using it on a purchase order. The purchase order will
be used to create an order for a pre-defined set of products. This procedure uses the USRT demo data company.

Create a product package


1. Go to Retail and Commerce > Inventory management > Replenishment > Product packages.
2. Click New.
3. In the Package number field, type a value.
4. In the Description field, type a value.
5. In the Vendor account field, click the drop-down button to open the lookup.
6. In the list, click the link in the selected row.
7. Click Add.
8. In the Item number field, type '0160'.
9. In the Size field, click the drop-down button to open the lookup.
10. In the list, click the link in the selected row.
11. In the Quantity field, enter a number.
12. Click Add.
13. In the Item number field, type '0160'.
14. In the Variant number field, click the drop-down button to open the lookup.
15. In the list, click the link in the selected row.
16. In the Quantity field, enter a number.
17. Click Add.
18. In the Item number field, type '0175'.
19. In the Quantity field, enter a number.
20. Click Save.
21. Close the page.

Add package to purchase order


1. Go to Accounts payable > Purchase orders > All purchase orders.
2. Click New.
3. In the Vendor account field, click the drop-down button to open the lookup.
4. In the list, select the same vendor that the product package was previously created for, if a vendor was selected.
5. Toggle the expansion of the General section.
6. In the Site field, click the drop-down button to open the lookup.
7. In the list, click the link in the selected row.
8. In the Warehouse field, click the drop-down button to open the lookup.
9. In the list, click the link in the selected row.
10. Click OK.
11. Toggle the expansion of the Line details section.
12. Click the Product packages tab.
13. Click Purchase order line.
14. Click Create lines from package.
15. In the list, find and select the product package created in previous step.
16. In the Quantity field, enter a number.
17. Click Create.
18. Click Save.
Create call center orders
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through looking up a customer, creating a new order, searching for a product, and collecting
payment from the customer. This procedure uses demo data company USRT and is intended for the Sales Order
Clerk. Pre-requisites: The user who completes the procedure is set up as a Call center user and the Fabrikam Semi-
Annual Catalog is published with at least one Source code on it.
1. Go to Retail and Commerce > Customers > Customer service.
2. In the SearchText field, enter the search criteria to look up the customer.
For this example procedure type in 'karen' and press tab.
3. Click Search.
Since there is only one customer named Karen in demo data they will be automatically selected.
4. Click New sales order.
5. Expand or collapse the Sales order header section.
6. Select the source code for the catalog.
If there are no active Source codes you can close the Source field and skip this step.
7. Click Add line.
8. In the Item number field, enter the item search term.
For this sample procedure enter a partial item number of '8111' and press tab. This will pop up the item
search window.
9. Select the product to add to the sales order
10. Enter the sales quantity.
11. Click Create.
12. Click Complete to capture the customer payment.
13. Click Add.
The Add link is in the Payments tab. Expand the Payments tab if it is collapsed.
14. Select the payment method.
For this procedure, select the cash payment method.
15. Close the page.
16. Enter the amount.
For this procedure enter an amount equal to the order balance which can be seen in the Sales order
summary page to the left of the amount field. This will allow you to complete the order as fully paid.
17. Click OK.
18. Click Submit.
Change mode of delivery in POS
4/16/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to set up and use the "change mode of delivery" functionality in your point of sale (POS)
environment.
In Dynamics 365 Commerce versions 10.0.10 and later, the Change mode of deliver y operation (647) is available
to add to your POS screen layouts.
The change mode of delivery feature provides you with the option to change the mode of delivery for one or more
shipment-configured sales lines on the POS transaction. In previous versions of Commerce, you had to go through
the full Ship all or Ship selected configuration flows if you wanted to change the mode of delivery on an existing
line that was configured for shipment. This process was time consuming and could result in accidental changes to
the delivery origin or delivery dates for the line. The new functionality provides an alternative method for efficiently
updating the mode of delivery on these sales lines.
For more information about how to add an operation to a button on your POS button grid, see Screen layouts for
the point of sale.
After this feature is configured in POS, when you select Change mode of deliver y , you will be presented with a
list page that allows you to choose the lines of the transaction that you want to change the mode of delivery for. You
can choose some or all of the lines, or exit without making any changes. The sales lines that were previously
configured for shipment are the only lines in the list that you can change. If you want to change a line designated
for pickup or carryout to ship, you must use the Ship all or Ship selected operations. Conversely, if you want to
change a line designated as a shipment to a pickup or carryout, you must use the Pickup all , Pickup selected ,
Carr yout all , or Carr yout selected operations.
After you select the lines that you want to change, click Change mode of deliver y to be prompted to select the
delivery mode options. If you selected multiple lines to change, POS will only display modes of delivery that have
been configured as allowable for all of the selected products. Modes of delivery can be configured to support
specific products and delivery addresses. If there is a mode of delivery that is acceptable for one product and
address combination but is not acceptable for another selected product and address combination, the mode of
delivery is not available. You may need to select lines one by one and change the mode of delivery for each line
separately if you want to select a mode of delivery for one product that is not supported by another product.
After you select the new mode of delivery, the transaction page is displayed. To review your new delivery mode
selections, select the Deliver y tab on the transaction list.
Distributed order management (DOM)
2/1/2020 • 18 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In the new paradigm for commerce operations, retailers strive to provide personalized customer engagement,
omni-channel experiences, and frictionless interactions. Because so many choices are available, consumers will
shop wherever they can have the most favorable experience. In many cases, prices and products are no longer the
top deciding factors for consumers.
To help improve the customer experience, retailers must have visibility into their inventory in real time, across all
their channels. A single, holistic view of all the inventory can help optimize order fulfillment, allocation, and
distribution. Therefore, adoption and implementation of a distributed order management (DOM) system are
becoming more imperative for retailers.
DOM optimizes order fulfillment across a complex network of systems and processes. It relies on a single, global
view of inventory across the whole organization to intelligently manage orders, so that they are fulfilled accurately
and in a more cost-effective manner. By improving the efficiency of a retailer's supply chain, DOM helps the retailer
better meet customer expectations.
The following illustration shows the lifecycle of a sales order in a DOM system.

Set up DOM
1. Go to System administration > Setup > License configuration .
2. On the Configuration keys tab, expand the Commerce node, and then select the Distributed Order
Management check box.
3. Go to Retail and Commerce > Distributed order management > Setup > DOM parameters .
4. On the General tab, set the following values:
Enable distributed order management – Set this option to Yes .
Confirm Bing Maps usage for DOM – Set this option to Yes .

NOTE
You can set this option to Yes only if the Enable Bing Maps option on the Bing Maps tab of the
Commerce shared parameters page (Retail and Commerce > Headquar ters setup > Parameters
> Commerce shared parameters ) is also set to Yes , and if a valid key is entered in the Bing Maps key
field.

Retention period in days – Specify how long the fulfillment plans that DOM runs generate are kept
in the system. The DOM fulfillment data deletion job setup batch job will delete any fulfillment
plan that is older than the number of days that you specify here.
Rejection period (in days) – Specify how much time must pass before a rejected order line can be
assigned to the same location.
5. On the Solver tab, set the following values:
Max auto-fulfillment attempts – Specify how many times the DOM engine will try to broker an
order line to a location. If the DOM engine can't broker an order line to a location in the specified
number of attempts, it will flag the order line as an exception. It will then skip that line in future runs
until the status is manually reset.
Local store region radius – Enter a value. This field helps determine how locations are grouped
and considered equal in terms of distance. For example, if you enter 100 , every store or distribution
center within a 100-mile radius of the fulfillment address is considered equal in terms of distance.
Solver type – Select a value. Two solver types are released with Commerce: Production Solver and
Simplified Solver . For all machines that will run DOM (that is, all servers that are part of the
DOMBatch group), Production Solver must be selected. The Production Solver requires the special
license key that, by default, is licensed and deployed in production environments. For non-production
environments, this license key must be manually deployed. To manually deploy the license key, follow
these steps:
a. In Microsoft Dynamics Lifecycle Services, open the Shared asset library, select Model as the asset
type, and download the DOM license file.
b. Start Microsoft Internet Information Services (IIS) Manager, right-click AOSSer vice website , and
then select Explore . A Windows Explorer window is opened at <AOS ser vice root>\webroot .
Make a note of the <AOS Service root> path, because you will use it in the next step.
c. Copy the configuration file in the <AOS Ser vice root>\PackagesLocalDirector y\DOM\bin
directory.
d. Go to the Headquarters client, and open the DOM parameters page. On the Solver tab, in the
Solver type field, select Production solver , and confirm that no error messages appear.
NOTE
The Simplified Solver is provided so that retailers can try out the DOM feature without having to deploy the
special license. Organizations should not use the Simplified Solver in production environments.
Although the Simplified Solver provides the same set of capabilities as the Production Solver, there are
limitations as to performance (the number of orders and order lines that can be handled in a run) and
convergence of results (a batch of orders might not yield the best result in some scenarios).

6. Go back to Retail and Commerce > Distributed order management > Setup > DOM parameters .
7. On the Number sequences tab, assign the required number sequences to the various DOM entities.

NOTE
Before the number sequences can be assigned to the entities, they must be defined on the Number sequences
page (Organization administration > Number sequences > Number sequences ).

8. The DOM feature supports the definition of various types of DOM rules, and organizations can configure
multiple rules, depending on their business needs. DOM rules can be defined for a group of locations or
individual locations, and for a specific product category, product, or variant. To create the grouping of
locations that must be used for the DOM rules, follow these steps:
a. Go to Retail and Commerce > Channel setup > Fulfillment groups .
b. Select New , and enter a name and description for the new group.
c. Select Save .
d. Select Add line to add a single location to the group. Alternatively, select Add lines to add multiple
locations.
9. To define rules, go to Retail and Commerce > Distributed order management > Setup > Manage
rules . The following DOM rules are currently supported:
Minimum inventor y rule – This rule type lets organizations "ring fence" a specific quantity of a
product for purposes other than order fulfillment. For example, organizations might not want DOM to
consider all the inventory that is available in a store for order fulfillment. Instead, they might want to
reserve some inventory for walk-in customers. When this rule type is used, you can define the
minimum inventory to keep for a category of products, an individual product, or a product variant per
location or group of locations.
Fulfillment location priority rule – This rule type lets organizations define a hierarchy of locations
to establish the priority that the DOM engine considers when it tries to identify fulfillment locations
for specific products. The valid range of priorities is 1 through 10, where 1 is the highest priority and
10 is the lowest priority. Locations that have higher priority are considered before locations that have
lower priority. If the rule is defined as a hard constraint rule, orders are brokered only to locations that
priorities are defined for.
Par tial orders rule – This rule lets organizations define whether an order or order lines can be
partially fulfilled. The following parameters are available:
Fulfill par tial orders? – If this option is set to Yes , DOM can fulfill only part of the quantity on an
order line. This partial fulfillment is achieved by splitting the order line.
Fulfill par tial lines? – If this option is set to Yes , DOM can fulfill a partial quantity of order lines.
This partial fulfillment is achieved by splitting the order line.
Fulfill order from one location only – If this option is set to Yes , DOM makes sure that all lines
on an order are fulfilled from a single location.
The following table explains the behavior when a combination of these parameters is defined.

F UL F IL L O RDER
F UL F IL L PA RT IA L F UL F IL L PA RT IA L F RO M O N E
O RDERS L IN ES LO C AT IO N O N LY DESC RIP T IO N

1 Yes Yes Yes A few lines of the


order can be
fulfilled, and
individual lines can
be partially fulfilled,
but all the lines
must be from the
same location in an
instance of the
DOM run. (This
combination isn't
currently
supported.)

2 Yes No Yes A few lines of the


order can be
fulfilled, but
individual lines
can't be partially
fulfilled, and all the
fulfilled lines must
be from the same
location in an
instance of the
DOM run. (This
combination isn't
currently
supported.)

3 Yes Yes No A few lines of the


order can be
fulfilled, individual
lines can be
partially fulfilled,
and each line can
be fulfilled from
more than one
location in an
instance of the
DOM run.

4* No Not applicable No All order lines must


be fulfilled,
individual lines
can't be partially
fulfilled, and each
order line can be
fulfilled from a
different location.
F UL F IL L O RDER
F UL F IL L PA RT IA L F UL F IL L PA RT IA L F RO M O N E
O RDERS L IN ES LO C AT IO N O N LY DESC RIP T IO N

5* No Not applicable Yes All order lines must


be fulfilled,
individual lines
can't be partially
fulfilled, and all the
order lines can be
delivered from one
location only.

6* No Not applicable No This combination


works like
combination 4,
because Fulfill
par tial lines can't
be set to Yes when
Fulfill par tial
orders is set to
No .

7* No Not applicable Yes This combination


works like
combination 5,
because Fulfill
par tial lines can't
be Yes when
Fulfill par tial
orders is No .

8 Yes No No A few lines of the


order can be
fulfilled, but
individual lines
can't be partially
fulfilled, and the
various order lines
can be fulfilled
from more than
one location in an
instance of the
DOM run.

9* No Not applicable Yes All order lines must


be fulfilled, and all
the order lines
must be fulfilled
from one location
only.

* If Fulfill par tial orders is set to No , Fulfill par tial lines is always considered to be set to No ,
regardless of how it's actually set.
NOTE
In Retail version 10.0.5, the pararmeter Fulfill order from one location only was changed to Maximum
fulfilling locations . Instead of allowing a user to configure whether orders can be fulfilled from one location
only or fulfilled from as many locations as it can be, users can now specify whether the fulfillment can be from
a definite set of locations (up to 5) or from as many locations as it can be. This provides more flexibility in
terms of how many locations the order can be fulfilled from.

Offline fulfillment location rule – This rule lets organizations specify a location or group of
locations as offline or unavailable to DOM, so that orders can't be assigned to those locations for
fulfillment.
Maximum rejects rule – This rule lets organizations define a threshold for rejections. When the
threshold is reached, the DOM processor will mark an order or order line as an exception, and exclude
it from further processing.
After order lines are assigned to a location, the location can reject an assigned order line, because it
might not be able to fulfill that line for some reasons. Rejected lines are marked as an exception and
put back into the pool for processing in the next run. During the next run, DOM will try to assign the
rejected line to a different location. The new location can also reject the assigned order line. This cycle
of assignment and rejection can occur multiple times. When the rejection count hits the threshold that
is defined, DOM will mark the order line as a permanent exception and won't pick the line for
assignment again. DOM will consider the order line again for reassignment only if a user manually
resets the status of the order line.
Maximum distance rule – This rule lets organizations define the maximum distance that a location
or group of locations can be to fulfill the order. If overlapping maximum distance rules are defined for
a location, DOM will apply the lowest maximum distance that is defined for that location.
Maximum orders rule – This rule lets organizations define the maximum number of orders that a
location or group of locations can process during a calendar day. If the maximum number of orders is
assigned to a location in a single day, DOM won't assign any more orders to that location for the rest
of that calendar day.
Here are some of the common attributes that can be defined for all the preceding rule types:
Star t date and End date – Every rule can be made date-effective by using the these fields.
Disabled – Only rules that have a value of No for this field are considered in a DOM run.
Hard constraint – A rule can be defined as either a hard constraint or not a hard constraint. Every DOM
run goes through two iterations. In the first iteration, every rule is treated as a hard constraint rule,
regardless of the setting of this field. In other words, every rule is applied. The only exception is the
Location priority rule. In the second iteration, the rules that weren't defined as hard constraint rules are
removed, and the order or order lines that weren't assigned to locations when all the rules were applied
are assigned to locations.
10. Fulfillment profiles are used to group a collection of rules, legal entities, sales order origins, and modes of
delivery. Every DOM run is for a specific fulfillment profile. In this way, organizations can define and run a set
of rules for a set of legal entities, on orders that have specific sales order origins and modes of delivery.
Therefore, if different set of rules must be run for different sets of sales order origins or modes of delivery,
the fulfillment profiles can be defined accordingly. To set up fulfillment profiles, follow these steps:
a. Go to Retail and Commerce > Distributed order management > Setup > Fulfillment profiles .
b. Select New .
c. Enter values in the Profile and Description fields.
d. Set the Auto apply result option. If you set this option to Yes , the results of the DOM run for the profile
will be automatically applied to the sales order lines. If you set it to No , the results can only be viewed in
the fulfillment plan. They won't be applied to the sales order lines.
e. If you want the DOM profile to be run for orders that have every sales order origin, even orders where
the sales order origin is undefined, set the Process orders with empty sales origin option to Yes . To
run the profile for only a few sales order origins, you can define them on the Sales origins page, as
explained later.
f. On the Legal entities FastTab, select Add , and then select a legal entity.
g. On the Rules FastTab, select Add , and then select the rule to link to the profile.
h. Repeat the previous two steps until all the required rules are associated with the profile.
i. Select Save .
j. On the Action Pane, on the Setup tab, select Modes of deliver y .
k. On the Modes of deliver y page, select New .
l. In the Company field, select the legal entity. The list of companies is limited to the legal entities that you
added earlier.
m. In the Mode of deliver y field, select the mode of delivery to associate with this profile. A mode of
delivery can't be associated with multiple active profiles.
n. Repeat the previous two steps until all the required modes of delivery are associated with the profile.
o. Close the Modes of deliver y page.
p. On the Action Pane, on the Setup tab, select Sales order origins .
q. On the Sales origins page, select New .
r. In the Company field, select the legal entity. The list of companies is limited to the legal entities that you
added earlier.
s. In the Sales origin field, select the sales origin to associate with this profile. A sales origin can't be
associated with multiple active profiles.
t. Repeat the previous two steps until all the required sales origins are associated with the profile.
u. Close the Sales origins page.
v. Set the Enable profile option to Yes . If there are any errors in the setup, you receive a warning message.

DOM processing
DOM will run only in a batch job. To configure the batch job for DOM runs, follow these steps.
1. Go to Retail and Commerce > Distributed order management > Batch processing > DOM processor
job setup .
2. On the Parameters FastTab, in the Fulfillment profile field, select a profile that DOM must be run for.
3. On the Run in the background FastTab, in the Batch group field, select a configured batch group.
4. In the Task description field, enter a name for the batch job.
5. Select Recurrence , and define the recurrence of the batch job.
6. Select OK .
At the time of processing, DOM will consider the order and order lines as described here:
Order lines that meet the criteria for sales order origins, modes of delivery, and legal entity as defined in the
DOM profile, and that also meet any of these criteria:
They are created from commerce channels.
They have never been brokered by DOM.
They have been brokered by DOM before, but they are marked as exceptions and are below the
maximum threshold for attempts.
The mode of delivery isn't pick-up or electronic delivery.
They aren't marked for delivery.
They aren't manually excluded.
Orders that aren't on hold
After it applies the rules, inventory constraints, and optimization, DOM picks the location that is closest to the
customer's delivery address.

Results of DOM runs


If the fulfillment profile is set to Auto apply , the results of the run will be automatically applied to the sales order
lines, and the fulfillment plan can be viewed separately. However, if the fulfillment profile isn't set to Auto apply ,
the results of the run can be seen only from the fulfillment plan view.
To view all the fulfillment plans that are generated, follow these steps.
1. Go to Retail and Commerce > Distributed order management > Distributed order management .
2. In the Distributed order management workspace, select the Fulfillment Plans tile.
3. Select the ID of the relevant order fulfillment plan to view the fulfillment plan.
The order details section of the fulfillment plan shows the original sales order lines that were part of the run.
Besides the standard sales order line fields, the order details section also includes the following three DOM-
related fields:
Fulfillment type – This field indicates whether the sales order line is fully brokered, partially brokered,
or not brokered at all to a location.
Split – This field indicates whether one sales order line has been split and brokered to different locations.
Number of fulfillment locations – This field indicates how many fulfillment lines were created for one
sales order line (based on the number of locations that the original sales order line was brokered to).
The order fulfillment details section shows the assignment of the original sales order lines to different
locations, together with their quantities.

Order line actions and statuses


The following describes settings on the order line. To open the order line, go to Retail and Commerce >
Customers > All sales orders .
If you set the Exclude from DOM processing option on the General tab of the sales order line to Yes , the
order or order line will be excluded from DOM processing.
The DOM status field on the General tab of the sales order line can be set to one of the following values:
None – The order line has never been brokered.
Complete – The order line has been successfully brokered and assigned to a location.
Exception – The order line has been brokered but can't be assigned to a location. Exceptions have
multiple subtypes that can be viewed from the DOM workspace:
No quantity available – There is no available inventory to assign the order to in the locations.
Maximum rejections – The order line has reached the maximum threshold for rejections.
Data modification conflict – The sales order line has been changed since the order was
brokered. Therefore, the fulfillment plan can't be applied to the order.
Order line specific exception – There are multiple exceptions on the order line.
During the sales order entry, DOM can be run in an interactive mode. While you're entering an order line,
after you specify the product and quantity, you can select Update line and then, under DOM , select
Suggest fulfillment location . You then see a list of locations that is based on DOM rules that can fulfill the
quantity on the order line. This list is sorted by distance. Select a location to set the relevant site and
warehouse on the sales order line. For this functionality to work, there must be an existing, active fulfillment
profile that matches the sales origin and delivery mode on the sales line.
To view the DOM run logs for a sales order line, select Sales order line , and then, under DOM , select View
DOM Logs . The DOM logs show all the events and logs that were generated by the DOM run. The logs can
help you understand why a specific location was assigned to the order line, and what rules and constraints
were considered as a part of the assignment. On the Manage tab, the DOM logs are also available at the
level of the sales order header.

Run a clean-up job for DOM fulfillment plans


As DOM processing is run, fulfillment plans are created. Over time, the system will keep numerous fulfillment plans.
To manage the number of fulfillment plans that the system keeps, you can configure a batch job that deletes older
fulfillment plans, based on the Retention period in days value.
1. Go to Retail and Commerce > Distributed order management > Batch processing > DOM
fulfillment data deletion job setup .
2. In the Batch group field, select a configured batch group.
3. Select Recurrence , and define the recurrence of the batch job.
4. Select OK .

More information
Here are some things to consider when you use the DOM feature:
Currently, DOM looks only at orders that are created from commerce channels. Sales orders are identified as
sales orders when the Commerce sale option is set to Yes .
Microsoft hasn't tested DOM with advanced warehouse management features. Customers and partners must be
careful to determine whether DOM is compatible with the advanced warehouse management capabilities and
processes that are relevant to them.
DOM is available only on the cloud version of Commerce. It isn't supported in on-premises deployments.
Cost configuration for distributed order management
(DOM)
2/1/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Organizations consider multiple cost components to determine the optimal location to fulfill an order from. Some
of these cost components are shipping cost, handling cost, and packaging cost. A combination of these costs is
calculated to determine the fulfillment location.
When the first iteration of distributed order management (DOM) in Dynamics 365 Commerce optimized the
assignment of orders to fulfillment locations, it factored in distance only. Although distance can be correlated with
cost, it isn't the same as cost. For example, an overnight shipping method costs more than three-day shipping or
seven-day shipping over the same distance.
The cost configuration feature lets retailers define and configure additional cost components that will be calculated
and factored in to determine the optimal location to fulfill order lines from.
When cost components are configured, the DOM solver uses only those cost definitions to determine the optimal
location for order fulfillment. It doesn't consider the distance component as a cost. However, if no cost components
are configured, the DOM solver does use the distance component as a cost to determine the optimal location for
order fulfillment.

Set up cost components


Two major cost component types can be defined in the system: Shipping and Other .
Both cost component types support multiple calculation bases, as shown in the following table.

C O ST C O M P O N EN T T Y P E C A L C UL AT IO N B A SIS

Shipping Simple
Tiered

Other Sales order


Sales line
Location

Shipping cost component type


This section explains how to set up each combination of the Shipping cost component type and a calculation basis
for shipping costs. It also explains how the DOM solver uses each combination.
Cost component type = Shipping and Calculation basis = Simple
If a combination of the Shipping cost component type and the Simple calculation basis is used, the shipping cost
for a mode of delivery is based on either a flat cost or distance.
You must set up the following fields for this combination:
Cost factor – Enter a unique identifier for the cost factor.
Description – Enter the name and description of the cost factor.
Star t date and End date – You can use these fields to limit the cost factor for a specific date range. If you
leave these fields blank, the cost factor is valid for an indefinite period.
Active – Indicate whether the cost factor is active. The DOM considers only active cost factors that are
associated with the fulfillment profile.
Company – Specify the legal entity that the cost factor is configured for. All lines of the calculation criteria
must be for the same legal entity.
Modes of deliver y – Specify the modes of delivery that the cost is configured for.
Calculation type – Specify how the cost should be calculated for a specific mode of delivery. Two
calculation types are supported:
Fixed – A flat cost is used for the mode of delivery. If you select this calculation type, the Cost field
defines the flat cost.
Per-distance unit – The cost for the mode of delivery is calculated as the cost value that is specified in
the Cost field times the distance between the delivery address and the locations.
Cost – Specify the cost value that is used in conjunction with the Calculation type field to compute the
cost for a mode of delivery.
Cost component type = Shipping and Calculation basis = Tiered
If a combination of the Shipping cost component type and the Tiered calculation basis is used, the shipping cost
for a mode of delivery is based on either a flat cost or distance. However, in this combination, the distance is based
on a tiered range of distances.
You must set up the following fields for this combination:
Cost factor – Enter a unique identifier for the cost factor.
Description – Enter the name and description of the cost factor.
Default cost – Specify the cost that should be used for a mode of delivery if the distance between the
delivery address and the location doesn't fall into any of the tiered distances for the mode of delivery.
Star t date and End date – You can use these fields to limit the cost factor for a specific date range. If you
leave these fields blank, the cost factor is valid for an indefinite period.
Active – Indicate whether the cost factor is active. The DOM considers only active cost factors that are
associated with the fulfillment profile.
Company – Specify the legal entity that the cost factor is configured for. All lines of the calculation criteria
must be for the same legal entity.
Modes of deliver y – Specify the modes of delivery that the cost is configured for.
Distance type – Specify whether the tiered distance definition is an aerial distance or a road distance.
Distance units – Specify the unit that the tiered distance is measured in.
Distance from – Specify the start range for the tiered distance.
Distance to – Specify the end range for the tiered distance.
Calculation type – Specify how the cost should be calculated for a specific mode of delivery and tiered
distance. Two calculation types are supported:
Fixed – A flat cost is used for the mode of delivery. If you select this calculation type, the Cost field
defines the flat cost.
Per distance unit – The cost for the mode of delivery and tiered distance is calculated as the cost value
that is specified in the Cost field times the distance between the delivery address and the locations.
Cost – Specify the cost value that is used in conjunction with the Calculation type field to compute the
cost for a mode of delivery.

NOTE
When you define tiered distances, the system validates that there are no missing or overlapping distances.
The distance type that is used for a mode of delivery must be the same across all the tiered distances.

Other cost component type


This section explains how to set up each combination of the Other cost component type and an other cost type for
non-shipping costs. It also explains how the DOM solver uses each combination.
Cost component type = Other and Other cost type = Sales order
A combination of the Other cost component type and the Sales order other cost type is used to define non-
shipping costs at the sales order level.
You must set up the following fields for this combination:
Cost factor – Enter a unique identifier for the cost factor.
Description – Enter the name and description of the cost factor.
Star t date and End date – You can use these fields to limit the cost factor for a specific date range. If you leave
these fields blank, the cost factor is valid for an indefinite period.
Active – Indicate whether the cost factor is active. The DOM considers only active cost factors that are
associated with the fulfillment profile.
Cost – Specify the cost value for a non-shipping cost at the sales order level.
Cost component type = Other and Other cost type = Sales line
A combination of the Other cost component type and the Sales line other cost type is used to define non-
shipping costs at the sales order line level.
You must set up the following fields for this combination:
Cost factor – Enter a unique identifier for the cost factor.
Description – Enter the name and description of the cost factor.
Star t date and End date – You can use these fields to limit the cost factor for a specific date range. If you leave
these fields blank, the cost factor is valid for an indefinite period.
Active – Indicate whether the cost factor is active. The DOM considers only active cost factors that are
associated with the fulfillment profile.
Cost – Specify the cost value for a non-shipping cost at the sales order line level.
Cost component type = Other and Other cost type = Location
A combination of the Other cost component type and the Location other cost type is used to define non-shipping
costs for a group of locations or an individual location.
You must set up the following fields for this combination:
Cost factor – Enter a unique identifier for the cost factor.
Description – Enter the name and description of the cost factor.
Star t date and End date – You can use these fields to limit the cost factor for a specific date range. If you
leave these fields blank, the cost factor is valid for an indefinite period.
Active – Indicate whether the cost factor is active. The DOM considers only active cost factors that are
associated with the fulfillment profile.
Fulfillment group – Specify the group of locations that the non-shipping cost is defined for.
Fulfillment location – Specify the location that the non-shipping cost is defined for.

NOTE
You can't specify a fulfillment group and a fulfillment location on the same line for location-based calculation criteria.

Cost – Specify the cost value for a non-shipping cost at the fulfillment group level or fulfillment location
level.

IMPORTANT
For DOM to consider these costs when it's run, you must add the cost factor to the relevant fulfillment profile.
Store order fulfillment
2/1/2020 • 14 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Many retailers would like to optimize order fulfillment by enabling stores to fill orders. Order fulfillment at the store
level can help to ease overstock scenarios for a specific store, or may be needed from a logistical standpoint in
cases where a store has extra capacity or is located within closer shipping distance to the customer. To address this
need, a unified order fulfillment operation is available at the point of sale.
Orders for fulfillment at a specific store has the store's warehouse designated on the header or lines of the order.
The order fulfillment operation in the point of sale provides a single work area in the point of sale that can be used
to process orders. This includes everything from accepting the order, to marking it as shipped, or initiating store
pickup.

Access unified order fulfillment in the point of sale


Order fulfillment, Operation ID 928, can be used to access the store order fulfillment work area in the point of sale.
The order fulfillment operation does not have its own permission out-of-the-box, but in the future, users will be able
to use the Allow retrieve order permission to invoke the operation from the point of sale.
At the store level, a configuration setting is available to determine whether an order line must be accepted manually
from within the point of sale. If that configuration option is not set, order lines will be accepted by default. If that
configuration option is turned on, users at the point of sale will need to select Allow accept order permission to
accept orders from within the point of sale.
Order lines can also be rejected from the point of sale. Rejecting an order line signifies that it will not be fulfilled at
that store and sends the order line back for reassignment to another store or warehouse. Order line rejection
permission is granted through the Allow order reject permission.

Order fulfillment operation parameters


Order fulfillment provides out-of-the-box parameters that can be applied to the operation when it is called in the
point of sale. When the All orders parameter is configured, all orders are shown when the operation is used. The
Orders to ship parameter shows only orders that must be shipped from the store and Orders for pick up shows
orders that will be picked up in-store.

Orders for fulfillment


The order fulfillment operation shows only orders that will either be picked up in or shipped from the current store.
Orders for other stores to fulfill are not listed when using the order fulfillment operation.

Line selection
Lines can be selected using the Select function in the Action Pane. When Select is enabled, multiple lines can be
selected for processing. You can clear selected lines by clicking the same line again.
Line details
Line details can be shown using the line details flyout menu. When this menu is used, three tabs are provided to
show additional information for the selected line. The first tab, Line details shows details for the line itself such as
quantity ordered and remaining. Additional details are provided including quantity picked, packed, and invoiced as
well as mode of delivery and delivery address. The Order details tab provides order header information including
customer, customer ID, order number, order total, and balance. The Inventor y tab shows information for the
selected line in terms of physical available inventory, reserved inventory and ordered inventory.
If multiple lines are selected, the order line details flyout menu will only indicate that multiple lines are selected. To
show details for a single line, clear the lines until only one line remains.

Pending order lines


Unified order fulfillment includes the ability to manually accept orders. By default, orders for fulfillment at the store
are already accepted. However, if business processes dictate that a worker at the store level must accept orders,
manual acceptance can be turned on at the retail store level. To enable order acceptance, go to Retail and
Commerce > Channels > Stores > All stores . Open the desired store and on the General tab, locate the Order
fulfillment sub header. This sub header has a Manual accept option that is set to No by default. By setting this
option to Yes and synchronizing the changes to the channel database, order lines can go through the acceptance
process.
Workers with the Allow accept order permission can open order fulfillment and select lines for acceptance. Once
lines have been accepted, their state changes from Pending to Accepted and the rest of the order fulfillment
process can proceed. When Manual accept is turned on, orders will not be processed until they have been
accepted.
Orders for store pickup never have the Pending state. This is done to avoid a scenario in which a customer arrives
at the store and the order line cannot be processed because a worker with the proper privilege is not available.

Accepted order lines


Orders with the line state Accepted can proceed through the rest of the order fulfillment process at the point of
sale. After an order has been accepted, any remaining action can be taken against the order line.
For example, an accepted order line can be selected and then picked up directly without going through picking and
packing.

Line actions
Pick
The Pick category of actions is provided to aid in the process of picking order lines from shelves. The picking action
can only be performed on order lines that have been previously accepted.
Action: Picking
Resulting POS status: Picking
Resulting back office status: No change
After an order has been accepted, lines can be selected and marked as Picking . Marking a line as Picking is a way
to indicate that the picking work is already being performed on a line. This prevents two workers from attempting
to pick the same order lines at the same time.
Action: Print picking list
Resulting status: Picking
Resulting back office status: No change
Picking lists can be printed at the point of sale to assist workers performing the picking process. A printed picking
list can be carried with the worker performing picking and as products are picked, the worker would manually mark
them as picked on the picking list.
The picking list format is configured in Commerce and added to the receipt profile. For more information about
setting up receipt profiles, see Receipt templates and printing.
If lines are selected and a picking list is printed for those lines, they are automatically updated with the Picking
status.
Action: Mark as picked
Resulting status: Picked or partially picked
Resulting back office status: Picked or partially picked
After the physical picking process has been performed, lines can be marked as Picked . Selecting a line and marking
it as Picked performs a real-time call to update the order line. After the line has been marked as Picked at the
point of sale, the status in the back office is also updated to Picked and inventory transactions reflect that the
specified quantity has been decremented.
When orders are processed over time, partial quantities can be processed for a specific line. If a line is selected and
the action Mark as picked is taken, and the quantity is greater than one, the user is prompted for the quantity. The
remaining quantity to be picked is auto-filled. If less than the remaining quantity is specified, the status of the line
becomes Par tially picked . When the order line is updated in the back office, it will also reflect the partially picked
status and the quantity entered by the user is used for the inventory update.
If an order line is picked in error, the unpick process must be performed on the order line in the back office. There is
currently no unpick action supported at the point of sale.
Orders lines from different orders can be selected and marked as Picking , printed on the same pick list, or marked
as Picked .
Pack
Order lines can be packed at any point after the order line has been accepted.
Action: Print packing slip
Resulting status: Packed or partially packed
Resulting back office status: Delivered or partially delivered
This action marks lines as packed or partially packed and prints a packing slip. A packing slip can be printed to
validate the products that have been packed together. The packing slip format is configured in Commerce and
added to the receipt profile. For more information about setting up receipt profiles, see Receipt templates and
printing.
Action: Mark as packed
Resulting status: Packed or partially packed
Resulting back office status: Delivered or partially delivered
The Mark as packed action can be used to indicate that lines are packed without printing a packing slip. Both
Print packing slip and Mark as packed result in inventory transactions in the back office. Packing lines in the
point of sale will result in packing slip journals being generated in the back office.
If an order line is packed in error, the packing slip journal must be corrected at the back office.
Only lines on the same order and with the same mode of delivery can be packed at the same time.
Currently, the option to mark store pickup lines as Packed is disabled. This capability will be added in a future
release. The packing slip creation process will be enhanced to support injection of third-party shipping information
into the packing slip process.
Pick up
Orders for store pickup can be directly picked up once they are retrieved in the point of sale. Store pick up orders
are not subject to acceptance.
Action: Pick up
Resulting status: Invoiced or partially invoiced
Resulting back office status: Invoiced or partially invoiced
If a line is selected for pick up from unified order fulfillment, the entire order is loaded into the point of sale and the
full quantity for the selected line is marked. Other lines on the order are also loaded into the transaction view of the
point of sale, but with quantity marked as zero.
After lines for pickup have been loaded into the transaction view, the transaction can be tendered as usual.
Lines that have been fully invoiced through pick up will no longer show up in unified order processing. Lines that
have been partially picked up will continue to appear in unified order fulfillment until they have been picked up in
full.
If a line is picked up in error, a return must be performed to correct the error.
Only lines on the same order and with the same mode of delivery can be picked up at the same time.
Shipping
Order lines to be shipped from the store can be processed through unified order fulfillment using the Ship action. If
manual order line acceptance is configured at the channel level, orders must be accepted prior to shipping. After an
order line has been accepted and has a Pending or other status, lines can be shipped.
Action: Ship
Resulting status: Invoiced or partially invoiced
Resulting back office status: Invoiced or partially invoiced
Lines shipped from unified order fulfillment are invoiced from the back office similar to if the order is invoiced
directly from the back office. Lines being shipped from unified order fulfillment are not loaded into the transaction
view and there is no tendering performed at the time the lines are shipped.
Order lines that have been fully shipped no longer appear in unified order fulfillment. Partially shipped lines will
continue to appear in unified order fulfillment until they have been shipped in full.
Only lines from the same order can be shipped at the same time. If the lines from the same order have different
modes of deliver, they can still be selected for shipping at the same time.
Reject
Lines or partial lines can be rejected. This allows them to be reassigned from the back office to another store or
warehouse. Lines can only be rejected if they have not yet been picked or packed. To reject a line that has already
been picked or packed, that line must be unpicked or unpacked from the back office.
Action: Reject
Resulting status: Rejected
Resulting back office status: No change
The rejected order lines can be viewed from the Sales order processing and inquir y workspace. Clear the
person filter on the workspace to view all the rejected order lines across the stores. The Rejected order lines tab
under the Orders and favorites section display the order line details. Additionally, the users can click the
Rejected order lines button under the Summar y section to navigate to a sales order view. This shows all the
orders that have one or more rejected order lines. If Distributed Order Management (DOM) is enabled, then these
rejected orders will be automatically reassigned to the appropriate stores for fulfillment, however, these order lines
can be manually reassigned as well. To do so, select the line that shows the Fulfillment status as Rejected and
change the site/warehouse as needed. Click the Update line drop-down menu and click Reset fulfillment status
to change the fulfillment status from Rejected to Accepted or Pending depending on the order fulfillment set up.
After the fulfillment status is reset, then the store workers will be able to view the order lines in POS.

Line quantity tracking


A single order line of quantity greater than one can be processed over time, resulting in multiple sub states for
order lines. For example, if a builder has a project that required 500 boards, but the builder will only pick up or have
a few boards delivered at a time over the course of the project, there could be quantities that are being picked,
packed, and shipped at the same time.
Any time a line is selected, the remaining amount for the line will be auto-filled to assume that the remaining
quantity is being processed. Using the above example, if 200 boards have already been picked and the line for
boards is selected for picking, the remaining quantity of 300 will be automatically filled in the quantity. The same is
true if 200 boards have already been invoiced. In that case, only the remaining quantity will be auto filled.
Continuing with the above example, if 200 boards are marked as packed and shipping is selected, the full amount of
500 will be autofilled. If only 200 boards are shipped, the system will assume that the previously packed boards are
being shipped and the packed quantity will be decremented. If 201 boards are shipped, the packed boards are first
decremented with the remaining single board being decremented from the quantity remaining.

Line statuses
Order lines in the point of sale have several statuses to reflect the state of the order line. Statuses in the point of sale
and back office do not match in all cases. Order line status can be viewed through the point of sale using the order
fulfillment operations. In the back office, order lines can be viewed from the order details. Order details can be
accessed through Retail and Commerce > Customers > All customer orders . Select the Order ID to view
order details. From order details select the Sales order tab, then select Detailed status under the View
subheader.
Pending – Order lines that have been assigned to a store, but not yet accepted have the Pending status when
viewed at the point of sale. Lines pending acceptance in the point of sale will have the Order processing status
in the back office.
Accepted – Order lines that have been manually accepted or automatically accepted will have the status of
Accepted when viewed at the point of sale. Lines with the Accepted status will show as Order processing in
the back office.
Picking – Lines that are currently being picked at the store level have the status of Picking . Those same lines,
when viewed at the back office, will show as Order processing .
Picked and Par tially picked – Lines that have been picked or partially picked at the point of sale will have the
status Picked or Par tially picked . The same lines in the back office will also show as Picked or Par tially
picked .
Packed and Par tially packed – Lines that have been packed or partially packed at the point of sale will have
the status Packed or Par tially packed . The same lines in the back office will also show as Delivered or
Par tially delivered .
Par tially invoiced – Lines that have been partially picked up or partially shipped will have the status Par tially
invoiced at the point of sale and in the back office.
Invoiced – Lines that have been fully invoiced at the point of sale will no longer show up for fulfillment. In the
back office the status for those lines is Invoiced .
Order fulfillment filtering
Order fulfillment at the point of sale includes filtering to help the user easily find what they need. Filters can be
changed through the Action Pane at the bottom of the Point of sale screen. By default, a Deliver y type filter is
applied, based on how the operation is set up. If the operation is set up with the All orders parameter, then that
filter is applied when accessing order fulfillment. The same applies for the Store pickup and Ship from store
parameters. Other filters that can be applied to the order fulfillment view include:
Customer number
Customer name
Customer email
Order number
Mode of delivery
Receipt number
Channel reference ID
Originating store number
Line status
Created date
Delivery date
Receipt date
Set up order fulfillment for stores
2/1/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Overview
Many retailers would like to optimize order fulfillment by enabling stores to fill orders. Order fulfillment at the store
level can help to ease overstock scenarios for a specific store, or may be needed from a logistical standpoint in
cases where a store has extra capacity or is located within closer shipping distance to the customer. To address this
need, a unified order fulfillment operation is available at the point of sale.
Orders for fulfillment at a specific store has the store's warehouse designated on the header or lines of the order.
The order fulfillment operation in the point of sale provides a single work area in the point of sale that can be used
to process orders. This includes everything from accepting the order, to marking it as shipped, or initiating store
pickup.

Set up the order fulfillment operation


Order fulfillment, Operation ID 928, can be used to access the store order fulfillment work area in the point of sale.
Follow the steps in Add the operation to a button grid to specify which parameter to use when invoking order
fulfillment at the point of sale. By default, after specifying the order fulfillment operations, the All orders is
selected. When configured with this parameter, the operation will list all order lines for fulfillment at the current
store. Also available is Orders to ship , which can be assigned to a button and utilized when the user only wants to
see orders that will ship out of the store. Finally, there is Orders for pick up . When invoked at the point of sale,
this only lists orders to be picked up at the store. The different parameters can be assigned to different buttons to
give the user a variety of ways to view order fulfillment.
Enable users to access order fulfillment at the point of sale
The order fulfillment operation does not have its own permission out-of-the-box, but in the future, users may
require the Allow retrieve order permission to invoke the operation from the point of sale.
At the store level, a configuration setting is available to determines whether an order line must be accepted
manually from within the point of sale. If that configuration option is not set, order lines will be accepted by default.
If that configuration option is turned on, users at the point of sale will need to have the Allow accept order
permission to accept orders from within the point of sale.
Enable manual order acceptance
Be default, order lines assigned to a store are marked as Accepted . This means that it is assumed they will be
fulfilled from the assigned store and will not be subject to further assignment. In certain cases, retailers may want
to manually accept orders before they can be fulfilled. For example, if a store is short staffed and is unable to fulfill
orders, a store manager will only accept as many orders for processing as they feel can adequately be processed in
a given day. Until an order is accepted, it may be reassigned by the back office to a different store. In this way, order
acceptance also provides a way to indicate that an order has been acknowledged by a store and will be fulfilled.
Order lines for store pickup are marked as Pending and are not subject to acceptance.
To turn on manual acceptance for order lines, navigate to Retail and Commerce > Channels > Stores > All
stores . Select the store and click in the store ID to view the store's details. Click Edit . On the General FastTab, locate
the Order fulfillment subheader and change Manual accept from No to Yes .
Enable reject order line capability
Order lines can also be rejected from the point of sale. Rejecting an order line signifies that it will not be fulfilled at
that store and sends the order line back for reassignment to another store or warehouse. Order line rejection
permission is granted through the Allow reject order permission in the POS permission group associated with
the worker. While rejecting a line, the retailers can mandate their workers to provide a reason for rejection. This can
be achieved by using info codes of Info code activity type Order fulfillment and assigning the info code to
Reject order line in the functionality profile associated with the channel.

NOTE
Only the info codes of Info code activity type Order fulfillment can be assigned to the Reject order line action.

Synchronize changes to the channel database


After the operation has been assigned to a button grid, the proper permissions have been assigned, and the channel
is configured, the changes must be synchronized to the channel database. To do so, navigate to Retail and
Commerce > Retail and Commerce IT > Distribution schedule . Select schedule "1090-Registers" to sync
button grid changes and then click Run now . Next, sync permissions changes by selecting "1060-Staff" and then
click Run now . Next, sync channel changes by selecting "1070-Channel configuration" and click Run now . Finally,
sync the newly created info code for reject reason by selecting the "1110-Global configuration" and click Run now .

Use order fulfillment at the point of sale


Open the point of sale and select the order fulfillment operation. Depending on how it is configured, either all lines,
order lines for pickup, or order lines to ship will be listed.
Order fulfillment view
The order fulfillment view lists order lines for fulfillment at the store and includes the following columns:
Order number
Product number
Description
Quantity ordered
Requested delivery date
Customer name
Fulfillment status
Additional information for a specific order line can be viewed by selecting the order line and then opening the
flyout menu located just below the logged in user/shift information shown in the point of sale header. This menu
includes 2 tabs: one for line details and another for order details. The line details tab includes the following
information:
Quantity ordered
Quantity remaining to be shipped/picked up
Quantity picked
Quantity packed
Quantity invoiced (already picked up or shipped)
Mode of delivery
Delivery address
The details flyout menu also has a tab that provides more order level details including:
Customer name
Customer ID
Order number
Order total
Order balance
At the bottom of the order fulfillment view is an Action Pane. This contains all of the actions that can be taken
against an order line. If an action is not available based on a line's status, that action will be unavailable.
By default, orders will have a status of Accepted . Order status can be viewed as a column in the list of order lines. If
Manual accept is configured at the channel level, all lines to be shipped will show as Pending and must be
accepted before they can be fulfilled. Orders for store pickup are Pending by default and do not need to be
accepted.
Order fulfillment line actions
Edit – If an order status is pending, it can be edited at the point of sale. Orders that have already been partially
picked, packed, or invoiced cannot be edited from the order fulfillment view.
Accept – If Manual accept is configured at the channel level, lines must be first accepted before they can move
through the order fulfillment process.
Pick – The pick option supports several actions. First, Picking updates the status of the order line so others in
the store do not attempt to pick the same line. Next, Print picking list prints a picking list for the selected line
or lines and also updates their status to Picking . Picking list formats are controlled as part of receipt formats.
For more information about how to set up receipt formats, see Receipt templates and printing. Finally, Mark as
picked indicates the line has been picked. Mark as picked initiates corresponding inventory transactions in the
back office. Picking actions can be performed at the same time for multiple order lines across orders and for all
modes of delivery.
Reject – Lines or partial lines can be rejected. This allows them to be reassigned from the back office to another
store or warehouse. Lines can only be rejected if they have not yet been picked or packed. To reject a line that
has already been picked or packed, that line must be unpicked or unpacked from the back office.
Pack – The pack option supports two actions: Print packing slip will print a packing slip for the selected lines
and Mark as packed will and mark the lines as packed and mark the lines as delivered in the back office. Only
order lines that belong to the same order and have the same mode of delivery can be packed at the same time.
Packing slip formats are controlled as part of receipt formats. For more information about how to set up receipt
formats, see Receipt templates and printing.
Ship – The ship action will mark selected lines as Delivered in the back office. After a line has been fully
shipped, it will no longer appear in the order fulfillment view.
Pickup – The pickup action adds the lines to the transaction view for pickup. If there are other lines on the order
that aren't currently being picked up, they will be added to the transaction view with quantity zero. After a line
has been fully picked up, it will no longer appear in the order fulfillment view.
Order fulfillment filtering
Order fulfillment at the point of sale includes filtering to help the user easily find what they need. Filters can be
changed on the Action Pane at the bottom of the Point of sale screen. By default, a Deliver y type filter is applied,
based on how the operation is set up. If the operation is set up with the parameter All orders , then that filter is
applied when accessing order fulfillment. The same applies for the Store pickup and Ship from store
parameters. Other filters that can be applied to the order fulfillment view include:
Customer number
Customer name
Customer email
Order number
Mode of delivery
Receipt number
Channel Reference ID
Originating store number
Line status
Created date
Delivery date
Receipt date
Show order notifications in the point of sale (POS)
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In the modern retail environment, store associates are assigned various tasks, such as helping customers, entering
transactions, doing stock counts, and receiving orders in the store. The point of sale (POS) client provides a single
application where associates can perform all these tasks and many others. Because various tasks must be
performed during the day, associates might have to be notified when something requires their attention. The
notification framework in the POS helps by letting retailers configure role-based notifications. As of Dynamics 365
for Retail with application update 5, these notifications can be configured only for POS operations.
Currently, the system can show notifications only for order fulfillment operations. However, because the framework
is designed to be extensible, developers will eventually be able to write a notification handler for any operation and
show the notifications for that operation in the POS.

Enable notifications for order fulfillment operations


To enable notifications for order fulfillment operations, follow these steps.
1. Go to Retail and Commerce > Channel setup > POS setup > POS > Operations .
2. Search for the Order fulfillment operation, and select the Enable notifications check box for it to specify
that the notification framework should listen to the handler for this operation. If the handler is implemented,
notifications for this operation will then be shown in the POS.
3. Go to Retail and Commerce > Employees > Workers >, under Commerce tab, open the POS
permissions associated with the worker. Expand the Notifications FastTab, add the Order fulfillment
operation, and set the Display order field to 1 . If more than one notification is configured, this field is used
to arrange the notifications. Notifications that have a lower Display order value appear above notifications
that have a higher value. Notifications that have a Display order value of 1 are at the top.
Notifications are shown only for operations that are added on the Notifications FastTab, and you can add
operations there only if the Enable notifications check box for those operations has been selected on the
POS operations page. Additionally, notifications for an operation are shown to workers only if the
operation is added to the POS permissions for those workers.

NOTE
Notifications can be overridden at the user level. Open the worker's record, select POS permissions , and then edit
the user's notification subscription.

4. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles .
In the Notification inter val field, specify how often notifications should be pulled. For some notifications,
the POS must make real-time calls to the back-office application. These calls consume the compute capacity
of your back-office application. Therefore, when you set the notification interval, you should consider both
your business requirements and the impact of real-time calls to the back-office application. A value of 0
(zero) turns off notifications.
5. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule . Select the 1060
(Staff ) schedule to synchronize notification subscription settings, and then select Run now . Next, select the
1070 (Channel configuration ) schedule to synchronize the permission interval, and then select Run
now .

View notifications in the POS


After you complete the preceding steps, the workers will be able to view the notifications in the POS. To view
notifications, press the notification icon in the top right corner of the POS. A notification center appears and shows
notifications for the order fulfillment operation. The notification center should show the following groups in the
order fulfillment operation:
Store pickup – This group shows the count of orders that have a delivery mode of Pickup , and that are
scheduled for pickup from the current store. You can press the number on the group to open the Order
fulfillment page. In this case, the page will be filtered so that it shows only the active orders that are set up for
pickup from the current store.
Ship from store – This group shows the count of orders that have the delivery mode of Shipping , and that
are scheduled for shipment from the current store. You can press the number on the group to open the Order
fulfillment page. In this case, the page will be filtered so that it shows only the active orders that are set up for
shipment from the current store.
When new orders are assigned to the store for fulfillment, the notification icon changes to indicate that there are
new notifications, and the count for the appropriate groups is updated. Even though the groups are refreshed at
regular intervals however, POS users can manually refresh the groups at any time by selecting the Refresh button
next to the group. Lastly, if a group has a new item, that the current worker hasn't viewed, then the group shows a
burst symbol to indicate new content.

Enable live content on POS buttons


POS buttons can now show a count to help workers easily determine which tasks require their immediate attention.
To show this number on a POS button, you must complete the notification setup that is described earlier in this
topic (that is, you must enable notifications for an operation, set up a notification interval, and update the POS
permission group for the worker). Additionally, you must open the button grid designer, view the button's
properties, and select the Enable live content check box. In the Content alignment field, you can select whether
the count appears in the upper-right corner of the button (Top right ) or in the center (Center ).

NOTE
The live content can be enabled for operations only if the Enable notifications check box has been selected for them on
the POS operations page, as described earlier in this topic.

The following illustration shows the live content settings in the button grid designer.
To show the notification count on a button, you need to ensure that the correct screen layout is being updated. To
determine the screen layout that is being used by the POS, select the Settings icon in upper-right corner and note
the Screen layout ID and Layout resolution . Now using Edge browser, go to the Screen layout page, find the
Screen layout ID and Layout resolution identified above and select the Enable live content check box. Go to
Retail and Commerce > Retail and Commerce IT > Distribution schedule and run the 1090 (Registers) job
to synchronize layout changes.

The following illustration shows the effect of selecting Top right versus Center in the Content alignment field
for buttons of various sizes.
Using continuity program
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through selling a continuity program and processing related sales orders. To complete this
procedure, the user has to be set up as a call center user. This procedure uses the USRT demo data company.
1. Go to Retail and Commerce > Customers > Customer service.
2. In the SearchText field, type 'Karen' and then press the Tab key.
The advanced search dialog should pop up. If it doesn't, click Search to the right of this field.
3. In the list, mark the selected row.
There should be only one row with Karen Berg showing. Select the row by clicking on the checkmark
column on the far left of the grid.
4. Click Select.
5. Click New sales order.
It's a good idea to note the sales order number. You'll need it later in this procedure.
6. In the Item number field, type '88000' and then press the Tab key.
This is a continuity item in the USRT demo data.
7. Click Complete.
8. In the Payment method field, enter 'Visa'.
9. Click Add credit card.
Enter the required credit card information on this page.
10. Click OK.
11. Expand the Payment section.
To submit a call center order, payments have to be entered for the order.
12. Click OK.
13. Click Submit.
You're done creating a new continuity order. Next, you'll run two batch processes that are used to process
the continuity orders.
14. Close the page.
15. Go to Retail and Commerce > Continuity > Process continuity payments.
16. In the Continuity item field, type '88000' and then press the Tab key.
17. Click OK.
18. Go to Retail and Commerce > Continuity > Create continuity child orders.
This process will create new sales orders based on the settings of your continuity programs.
19. In the Continuity item field, type '88000' and then press the Tab key.
Item '88000' is a continuity item in the USRT demo data.
20. In the Sales order field, enter or select a value.
Enter the sales order number that you noted earlier in the procedure. This will keep the processing time
to a minimal for this procedure. The Sales order field field is optional--you could process all orders for
any one program.
21. Click OK.
Linked refunds – Refunds of previously approved and
confirmed transactions
3/10/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Returns are an important operation for retailers. The ability to accept returns for sales and refund payments to
customers gives retailers a way to service the needs of customers and to help resolve their issues.
This topic provides information about how to configure and use linked refunds. A linked refund is a refund of a
transaction that was previously approved and confirmed. The refund can be either a full refund or a partial refund
of the transaction, and it can't exceed the full amount of the original authorization. The functionality for linked
refunds is available in Microsoft Dynamics 365 Retail version 10.0.1.
In Microsoft Dynamics 365 Retail version 10.0 and earlier, retailers can process refunds to cards, but cashiers must
manually specify these refunds. Cashiers can process refunds to the original mode of payment only if the customer
provides that mode of payment. Therefore, by providing new card details, customers can use the return process to
move balances from one card to another and therefore do unauthorized card balance transfers.
By using linked refunds, retailers can greatly reduce risk by making sure that refunds are processed only to the card
that was authorized during the original transaction. To help prevent unauthorized card balance transfers, the system
can prompt cashiers to use the confirmed and approved card token to process refunds. By using the original mode
of payment for refunds, retailers can help reduce their card authorization costs.

Prerequisites
Payment method setup
Omni channel payments setup
Additional setup
Customers who aren't using the out-of-box implementation of the Adyen Connector must set up the connector that
supports tokenization of credit cards. All the scenarios that are described in this topic can be implemented by using
the standard Payments software development kit (SDK) that is provided with Commerce. The Dynamics 365
Payment Connector for Adyen provides an out-of-box implementation of every scenario that is described here.

Turn on the linked refunds functionality


The linked refunds functionality works with the omni-channel payments functionality that is available in Microsoft
Dynamics 365 Retail 8.1.3 and later.
To turn on the linked refunds functionality, go to Retail and Commerce > Headquar ters setup > Parameters
> Commerce shared parameters . On the Omni-channel payments tab, set the Use omni-channel
payments option to Yes .
When you turn on the omni-channel payments functionality, you change the business process flow for calculating
shipping charges and other charges, and for adding those charges to point of sale (POS) sales. Therefore, make
sure that you test and train your employees before you turn on this functionality.
When the omni-channel payments functionality is turned on, the card payment tokens that are used in one channel
(for example, a call center or Modern POS (MPOS)) will be available in all channels that are set up for the retailer.
For POS applications, the linked refunds functionality will also be turned on. For call center, MPOS, and e-
Commerce applications, customers can still manually enter card numbers for payment.
Supported flows
Cashiers can process a refund to the card that was used during the original transaction, even if the card isn't
presented for the return.
Linked refunds for cash-and-carry transactions that use credit or debit cards
Linked refunds for customer orders that use credit or debit cards
Unsupported flows
Linked refunds for transactions that use gift cards
Linked refunds for transactions that use loyalty cards
Linked refunds for exchange orders
Multiple return orders in the same transaction
Returns without a receipt or customer account details

Use case examples


This section presents examples of use cases to help you understand the configuration and use of linked refunds and
payment authorizations in the context of a customer order or a return where a receipt is presented. These examples
show the behavior of the application when the Omni-channel payments parameter has been turned on.
Customer account–based or receipt-based return that has a single card authorization
A customer comes to return an item that was purchased by using a single credit card. The customer provides a
receipt, and the return is being made within the allowed period for returns. When the cashier scans the receipt, the
item for return is processed. When the cashier processes the payment refund by selecting the button for any
payment method, the existing credit card authorization is shown.
When the cashier selects the credit card authorization, the payment refund is processed, and the Transaction end
screen appears. If a receipt printing is configured, the cashier is prompted to print a receipt.
Customer account–based or receipt-based return that has multiple card authorizations
A customer comes to return an item that was purchased by using multiple credit cards. When the cashier scans the
receipt, the item for return is processed. When the cashier processes the payment refund by selecting the button for
any payment method, all the existing credit card authorizations are shown.

When the cashier selects a credit card authorization, the payment refund is processed. If more must be refunded,
the current transaction screen shows the remaining amount. When the cashier processes the payment refund for
this amount, the remaining credit card authorizations are shown. This process continues until there is no remaining
amount that must be refunded.
After the full amount is successfully refunded, the cashier can complete the transaction, and a receipt can be printed
as configured.

Related topics
Payments FAQ
Dynamics 365 Payment Connector for Adyen
Sell and return products that aren't part of a store's
assortment
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

A common scenario for any retailer is to sell products to their customers or accept returns from their customers
even if they don't carry the specific products in their store (in other words, the products are not assorted to the
store).
Here are some typical scenarios:
A retailer doesn't carry all its products in a specific store. The remaining products are stored in the warehouse.
The store associate can assist the customer by searching or browsing for the products in the warehouse, add
them to the cart, and complete the checkout by selecting a delivery method, such as shipping to an address
from the warehouse or letting the customer pick up the product from the current store or from another store.
A retailer doesn't carry specific products in the store or doesn't have them in stock at the store the customer
visited, but the products are available in other stores. The store associate can assist the customer by searching or
browsing the products in the other store, add them to the cart, and complete the checkout by selecting a
delivery method.
A retailer has many stores in and around a specific city or zip code and doesn't want to force the customers to
return products to the same store they were purchased in. Instead, customers can return products to any store.
Those common scenarios are available for retailers using Commerce. With Commerce, you can:
Search or browse products at other stores.
Search or browse all released products.
Create cash-and-carry transactions or customer orders.
Select delivery options for customer orders.
Pick up products at the current store or another store.
Cancel an order at the current store or another store.
Return an order with or without the receipt at the current store or another store.
Configure and process an exchange on a return order
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In previous versions of Dynamics 365 Commerce, returns against customer orders were processed by using the
return order document in Headquarters. However, the return order document can be used to process only products
that are being returned. The returned products are indicated by a negative quantity on the return order lines. By
contrast, sales are indicated by a positive quantity. However, the return order document doesn't support positive
quantities. Because of this limitation, previous versions of the app didn't support scenarios where product
exchanges are done by using the return order document.
However, functionality has been added to support scenarios where exchanges are done on return orders.
Commerce now uses the sales order document instead of the return order document to process these types of
transactions.

Configure Commerce to support exchanges on return orders


Follow these steps to configure the system to support exchanges on return orders.
1. Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters . On the
Customer orders FastTab, set the Process return orders as sales orders option to Yes .
2. Run the Global configuration distribution schedule job (1110 ).

Make an exchange
After the system is configured as described in the previous section, the point of sale (POS) user will still select a
sales order or sales invoice to process a return, as in previous versions of the app. However, after the return items
are added to the cart, the user will be able to add new sales lines to the cart.
For these new sales lines, the user must define all the attributes that are required in order to process a customer
order line. These attributes include the delivery method and fulfillment location. The payment that is due for the
transaction will be a net of the return order lines and sales order lines. When payment is tendered for the
transaction, the return order will be posted as a sales order document in Headquarters, and the system will
immediately invoice the return lines.
To provide better visibility into the various amounts for the cart, three new amount fields have been added to the
cart. You can use the screen designer to make these new fields available in the POS user interface (UI).
Deposit applied – The deposit amount that is applied on a transaction when the user does a customer order
pickup. If there is no deposit override, and a 10-percent deposit is configured, the amount in this field is 90
percent of the total amount of the customer order.
Carr y out amount – The total amount for lines where the delivery mode was set to Carr y out when the
customer order was created or edited, or during a customer order exchange. The amount in this field includes
taxes and charges.
Return amount – The total amount for lines that have negative quantities during the customer order exchange.
The amount in this field includes taxes and charges.
Restrict payment methods for returns without a
receipt
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Each payment type that a retailer accepts must be configured when the system is set up. This topic describes how
certain payment types can be restricted for refund if the returns are made without a receipt.

Set up payment methods


To set up payment methods, the following tasks must be completed.
1. Create the payment methods that are accepted by the entire organization.
2. Create organization-wide card types and card numbers. If credit cards or debit cards are accepted, you must
create one payment method for cards, and then create the organization-wide card types and card numbers.
3. Set up store payment methods. Associate payment methods with each store, and then enter the store-specific
settings for each payment method.
4. Set up card payment methods for stores. For any card payment methods that the store accepts, complete the
card setup.

Restrict payment methods for returns without a receipt


For each store payment method, on the Store management page, under Non receipt returns , set Restrict for
refunds without receipt to Yes .
The default value of the toggle is No , which ensures that the payment method is allowed for refunds.
When Restrict for refunds without receipt is set to Yes , the selected payment method will not be allowed for
refunds.
NOTE
When a cashier selects a payment method that is restricted for refund without a receipt, a message displays to verify the
acceptable payment methods.

If a transaction has both a receipted return and a return without a receipt, the restriction conditions will not be
enforced because the transaction will be a return workflow with a receipt.
Return items across multiple customer orders and
invoices
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Returns can be made across multiple orders and invoices.

Configure Commerce to support returns across multiple customer order


and invoices
1. Go to Commerce parameters > Customer orders .
2. Turn on the Enable returns for multiple orders parameter.

Process returns
After the parameter is turned on and the changes are synchronized to the stores, the cashier in the store can select
multiple sales orders for a customer for their return.
When the orders are selected, a list of all the returnable products across all the invoices for the orders will display.
The cashier can then select the products to return. A single return order will be created for all the selected products.
Create and update a returns and refunds policy for a
channel
4/16/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Overview
The channel return policy in Dynamics 365 Commerce enables retailers to set enforcements on which payment
tenders can be allowed for processing a return on a point of sale (POS) device.
This topic describes the steps to set up a returns and refunds policy for a channel.
The scope of the policy is currently limited to setting the payment tenders that can be allowed for a channel. The
"allowed" list is based on the payment methods used to make the purchase. For example:
If a purchase was made using a gift card, the store policy is to process refunds only to a new gift card or to give
store credit.
If a sale is made using cash, the options allowed for refund are cash, gift card, and customer account, but not
credit card.

Enable return policy


To enable the channel return policy functionality, do the following:
1. Go to the Feature Management workspace in Dynamics 365 Commerce.
2. Search for the Enable channel return policies feature in the list of feature names.
3. Select Enable now .

Configure return policy


Follow these steps to configure a return policy for a retail store or online retail channel.
1. Go to Retail and Commerce > Channel Setup > Returns > Channel return policy .
2. Select New to create a new return policy template. To use an existing template, select the template in the left
pane. For new templates, add a name and description that will help you identify the policy when it is being
applied to the channel.
3. In the Allowed refund payment methods section, define Allowed return payment tenders that are
specific to each payment method.

IMPORTANT
The payment methods are derived from the payment methods set for the organization.
Adding an allowed return tender type for each listed payment method will ensure that returns can be made to the
allowed return tender type.

4. Associate the return policy template with the stores where it will be used. Select Add in the Retail
Channels tab and associate the available channels.
In the Choose organization nodes dialog box, select the stores, regions, and organizations that the
template should be associated with.
Only one return policy template can be associated with each store.
Use the arrow buttons to select stores, regions, or organizations.
The effective date on the policy will be the date on which the policies are applied to the channels and the
channel jobs are run.
5. On the Distribution schedule page, run the 1070 job to make the channel return policy available to the
POS.

Preview the channel return policy in the POS


Follow the steps in either of the following examples to view the allowed return tender types in POS.
1. Sign in to the POS as a cashier or manager.
2. Under Shift and Drawer , select Show journal .
3. Select the transaction that is part of the return.
4. Select the items to refund, and choose the payment method.
If the payment tender selected is in the allowed list of return tender types, the cashier can complete the
transaction.
If the payment tender selected is not allowed, an error message is displayed.
Select Amount Due to display a list of all the allowed return tender types.
-or-
1. Sign in to the POS as a cashier or manager.
2. Select Return Transaction and enter the receipt ID using a barcode scan or by manual entry.
3. Select the transaction that is part of the return.
4. Select the items to refund, and choose the payment method.
If the payment tender selected is in the allowed list of return tender types, the cashier can complete the
transaction.
If the payment tender selected is not allowed, an error message is displayed.
Select Amount Due to display a list of all the allowed return tender types.
Clienteling overview
2/1/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Many retailers, especially high-end specialty retailers, want their sales associates to form long-term relationships
with their key customers. The associates are expected to know about these customers' likes and dislikes, purchase
history, product preferences, and important dates, such as anniversaries and birthdays. Associates need a place
where they can capture this information and easily find it when it's required. If this information is available in a
single view, the associates can easily target customers who meet specific criteria. For example, they can find all
customers who prefer to shop for handbags, or customers who have an important event approaching, such as a
birthday or anniversary.

Client book
In Microsoft Dynamics 365 Commerce, retailers can use the client book functionality to help store associates form
long-term relationships with key customers.
The client book includes customer cards that show contact information for each customer, together with three
additional properties that are defined by the retailer and configured in Headquarters. Retailers can decide the three
most important things that sales associates should know about customers. For example, a jewelry retailer might
want to include important dates such as anniversaries or birthdays, because these dates are occasions when people
might buy more jewelry. Similarly, a fashion retailer might want to include the customer's preferred shopping
interests and brands.
The client book also lets sale associates filter the list so that it shows only customers who meet specific criteria. For
example, a new collection of shoes has arrived in the store, and an associate wants to inform customers who like to
buy shoes. In this case, the associate can filter the client book to find the relevant customers and then take further
action.
If any customers are no longer considered key customers for some reason, and therefore should not be closely
managed, sales associates can remove them from their client book.
Some retailers don't want to manage customers at the sales associate level. Instead, they want to manage a list of
key customers at the store level. These retailers can view customers from store client books. By using this option,
retailers can view the customers from the client books of all the sales associates whose address book matches the
address book of the current store. In this way, if an associate works in multiple stores of the legal entity, the client
book shows the customers from all those stores. This functionality supports additional capabilities. For example,
customers can be reassigned from one associate to another associate. This capability is useful when associates are
transferred or leave the company.
Each sales associate can have one client book per legal entity, and associates can add one or more customers to
their client book. In Commerce, each customer can currently be added to only one client book. However, Microsoft
plans to add functionality that lets a single customer be added to multiple client books.
NOTE
Unlike customer search, the client book doesn't filter customer records based on the store's address books.

Activities and notes


Online channels give retailers ways to learn about customer preferences without requiring that customers explicitly
provide this information. By contrast, when customers interact with sales associates in the store, they explicitly
share information about their preferences. Unfortunately, this information can be lost after the sale is over.
However, if this information is recorded, it can help retailers better understand customers, and therefore help them
provide better recommendations and a better overall shopping experience.
To capture the critical information that customers share, sales associates can use not only the client book attributes,
but also use the activities and notes functionality. Retailers can configure the activity types, such as information
about the store visit, email address, phone number, and appointments. Activities that associates create can be
viewed in a timeline format at the point of sale (POS). They can also be viewed on the Activities tab on the All
customers > General page in Headquarters.
Sales associates can also use notes to capture generic customer information that can be referenced before every
interaction. These notes are saved in Headquarters, and can be viewed in the customer profile or on the customer
details page in the call center.

NOTE
Currently, all notes and activities can be viewed by any sales associate who works for the legal entity and can view customer
details pages. Notes and activities aren't limited to the associate who added a customer to the client book.

Integration with Dynamics 365 Customer Insights


By using the Dynamics 365 Customer Insights application, retailers can aggregate data from the various systems
that customers use to interact with the retailer's brand. They can then use this data to generate a single view of the
customer and derive insights. The integration of Customer Insights with Commerce lets retailers select one or more
measures that should be shown on the customer card in the client book. For example, retailers can use the data in
Customer Insights to calculate the "churn probability" for a customer and define the "next best action." If these
values are defined as measures, they can be shown on the customer card and can provide crucial information to
sales associates. For more information about Customer Insights, see the Dynamics 365 Customer Insights
documentation. For more information about measures, see Measures.

Set up clienteling
To turn on the clienteling functionality in your environment, follow these steps.
1. In the Feature management workspace, filter the features by the Retail and commerce module.
2. Turn on the Clienteling feature by selecting Enable now .
3. On the Commerce Parameters page, on the Number sequence tab, select the Client book identifier
row. Then, in the Number sequence code field, select a number sequence. The system will use this number
sequence to assign an ID to client books.
4. Select Save .
5. Create a new attribute group that contains the attributes that you want to capture for customers who are
managed in client books. For instructions, see Attributes and attribute groups.
Define the required attributes as Can be refined . Sales associates can then use these attributes to filter
their client book.
Set the display order for these attributes. This display order determines which attributes should be shown
on the customer card in the client book. A display order of 1 is considered higher than a display order of
2. Therefore, the attribute that has a display order of 1 will be shown before to the attribute that has a
display order of 2.

NOTE
You can make Customer Insights available from the same page. However, an Azure application ID and secret must be
created, for authentication purposes. (For information about the requirements, see the Turn on the integration of
Customer Insights with Commerce section later in this topic.) If Customer Insights is turned on, and you select one or
more measures that should be shown on the customer card, those measures will be shown first. Next, client book
attribute groups will be shown, based on the display order. For example, if you select two measures from Customer
Insights, those two measures and one client book attribute will be shown on the customer card. (The client book
attribute that is shown will be the attribute that has the highest display order.)

6. On the Commerce parameters page, on the Clienteling tab, in the Client book attribute group field,
select the attribute group that you just created.
7. To capture activities that occur at the POS, define the activity types on the Activity types page (Retail and
Commerce > Customers > Activity types ).

NOTE
Activity types are pulled by the Commerce Scale Unit when it makes a real-time call for the first time. After the
activities are pulled, they are cached for a few hours. If you change the activity types, wait until the cache is no longer
valid. Alternatively, for non-production environments, restart the Commerce Scale Unit service.

8. Add two buttons to the appropriate POS screen layout, so that sales associates can view their own client
book and the store client book. (Store client books include clients from all client books of all associates who
share an address book with the store.) The corresponding operations are named View customers in client
book and View customers from store client books , respectively. Three additional operations that are
related to client books are available. These operations determine which associates can add, remove, and
reassign customers from the client book. They are named Add customer to client book , Remove
customers from client book , and Reassign customers to a client book , respectively.
9. Run the following distribution schedule jobs: 1040, 1150, 1110, and 1090.
After you've completed this procedure, sales associates can open the customer details page at the POS, and add
customers to their client book, view and capture activities and notes for customers, and target customers by using
customer and client book attributes to filter the client book. The following illustration shows an example of a client
book.
Turn on the integration of Customer Insights with Commerce
To turn on the integration of Customer Insights with Commerce, you must make sure that you have an active
instance of Customer Insights in the tenant where Commerce is provisioned. You must also have an Azure Active
Directory (Azure AD) user account that has an Azure subscription.
Follow these steps to set up the integration.
1. In the Azure portal, register an application. This application will be used for authentication with Customer
Insights. For instructions, see Quickstart: Register an application with the Microsoft identity platform.
2. Generate a secret for the application. Make a note of the secret, and keep it somewhere safe, because you
will need it later. Also select the expiration duration for the secret.

IMPORTANT
Take steps so that you will remember to change the secret before it expires. Otherwise, the integration will
unexpectedly stop.

3. Create an Azure key vault, and save the application secret. For instructions, see Quickstart: Set and retrieve a
secret from Azure Key Vault using the Azure portal.
4. Turn on access to Azure Key Vault from Commerce. To complete this step, you must have an application ID
and secret. The application can be the same application that you created in step 1, or it can be a new
application. (In other words, you can use the application that you created in step 1 for both Key Vault access
and Customer Insights service access, or you can create a unique application for each type of access.) For
instructions, see Store service principal credentials in Azure Stack Key Vault.
5. In Headquarters, go to System administration > Setup > Key Vault parameters , and enter the
required information for the key vault. Then, in the Key Vault client field, enter the application ID that you
used in step 4, so that Commerce can access the secrets in the key vault.
6. To add the application that you created in step 1 to the list of safe applications (sometimes referred to as a
whitelist), go to Customer Insights, and provide View access to the application. For instructions, see
Permissions.
7. In Commerce, on the Commerce parameters page, on the Clienteling tab, on the Dynamics 365
Customer Insights FastTab, follow these steps:
a. In the Application ID field, enter the application ID that you used in step 1.
b. In the Secret name field, enter the name of the Key Vault secret that you created in step 5.
c. Set the Enable Customer Insights option to Yes . If the setup is unsuccessful for any reason, you will
receive an error message, and this option will be set to No .
d. You can have multiple environments in Customer Insights, such as test and production environments. In
the Environment instance ID field, enter the appropriate environment.
e. In the Alternate customer ID field, enter the property in Customer Insights that is mapped to the
customer account number. (In Commerce, the customer account number is the customer ID.)
f. The remaining three properties are the measures that will be shown on the customer card in the client
book. You can select up to three measures to show on the customer card. (However, you don't have to
select any measures.) As was mentioned earlier, the system shows these values first, and then it shows
the values for the client book attribute group.
Loyalty overview
2/1/2020 • 18 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Loyalty programs can help increase customer loyalty by rewarding customers for their interactions with the
retailer's brand. In Dynamics 365 Commerce, you can set up simple or complex loyalty programs that apply across
your legal entities in any commerce channel. This topic describes the loyalty capabilities within Commerce and the
corresponding setup steps to help the retailer easily get started with their loyalty programs.
You can set up your loyalty program so that they include the following options.
Set up multiple types of rewards that you offer in your loyalty programs, and track participation in your loyalty
programs.
Set up loyalty programs that represent the different reward incentives that you offer. You can include loyalty
program tiers to offer greater incentives and rewards to customers who shop more frequently or spend more
money in your stores.
Define earning rules to identify the activities that a customer must complete to earn rewards. You can also define
redemption rules to identify when and how a customer can redeem rewards.
Issue loyalty cards from any channel that participates in your loyalty programs, and link loyalty cards to one or
more loyalty programs that the customer can participate in. You can also link a customer record to a loyalty
card, so that the customer can pool loyalty points from multiple cards and redeem them.
Manually adjust loyalty cards, or transfer the loyalty rewards balance from one card to another to accommodate
or reward a customer.

Setting up loyalty programs


You must set up several components to enable the loyalty feature in Commerce. The following diagram illustrates
the loyalty components and how they relate to each other.

Loyalty components
The following table describes each component and where it's used in the loyalty setup.

C O M P O N EN T DESC RIP T IO N W H ERE IT 'S USED

Set up discounts (prerequisite) Set up the discounts that you offer to Discounts must be added to price
your loyalty customers. For example, groups before they can be included in a
you can offer 5 percent off all apparel loyalty program. Price groups are
products. assigned to loyalty programs and
loyalty tiers.

Set up price groups (prerequisite) Price groups are used to create and Price groups are assigned to loyalty
manage prices and discounts for programs and loyalty program tiers.
products. Set up the price groups that
include the discounts that apply to your
loyalty programs.

Set up channels (prerequisite) Commerce channels are the stores that You assign channels to a loyalty
participate in your loyalty programs, program if the channel is participating
such as a brick-and-mortar store, an in the loyalty program.
online store, or a call center. You must
set up your channels before you can
assign loyalty programs to them.

Set up the loyalty payment method You must set up a payment method Set up a loyalty type payment method,
(prerequisite) before a loyalty card can be used at a and then assign the loyalty payment
register and loyalty points can be method to the channels that are
redeemed as part of a loyalty program. participating in the loyalty program.
You must also add the loyalty payment
method to the channel before
customers can redeem their loyalty
points as payment for products.

Set up date intervals Date intervals provide a flexible way to Date intervals apply only if you use tiers
set the time span that applies to loyalty in your loyalty programs. You select the
tiers. Use date intervals to specify how date interval that applies to program
long a customer can stay in a tier or tiers, and also the date intervals that
how much time a customer has to apply to program tier rules.
complete an activity to qualify for a tier.

Set up reward points Reward points are the types of reward Reward points are referenced in tier
that you offer to your customers. rules and are used to qualify a customer
Rewards points can be redeemable or for a specific tier. Reward points are also
non-redeemable. Redeemable reward referenced in loyalty schemes in earning
points can be exchanged for products. and redemption rules. In earning rules,
Non-redeemable reward points are you specify the rewards that a customer
used for tracking purposes or to can earn for a specific activity. In
advance a customer to the next tier in a redemption rules, you specify the
loyalty program. reward that the customer can redeem.

Set up loyalty programs Loyalty programs are the core loyalty You create loyalty schemes for your
entity that you offer. Each loyalty loyalty programs. You assign loyalty
program can also have loyalty tiers cards to your loyalty programs, and
assigned to it. Discounts and price loyalty cards can be assigned to a
groups are assigned to the loyalty customer. Channels participate in the
programs at either the program level or loyalty programs that are assigned to
the tier level. the loyalty schemes. Any customer who
holds a loyalty card can participate in
the loyalty programs that are assigned
to the card.
C O M P O N EN T DESC RIP T IO N W H ERE IT 'S USED

Set up loyalty tiers and tier rules Loyalty tiers are optional levels that you Loyalty tiers and loyalty tier rules are
can define for your loyalty programs. defined in the loyalty programs. If you
You can set up base discounts and don't define any loyalty tiers, all
rewards for all customers who customers who participate in the loyalty
participate in the loyalty program, and program qualify for the discounts that
you can set up additional discounts and you assign in the loyalty program price
rewards for customers who achieve the group. If you define loyalty tiers, you
various levels in the program. For each can set up earning rules and
loyalty tier that you define, you can set redemption rules for the loyalty tiers in
up the rules that qualify a customer for the loyalty scheme.
that tier. You can also define how long
customers can remain in that tier after
they have reached it.

Set up loyalty schemes Loyalty schemes specify the earning A loyalty scheme is assigned to a loyalty
rules and redemption rules that apply program and channels. You can assign
to a selected loyalty program. You many loyalty schemes to the same
assign channels to a loyalty scheme to loyalty program, and you can assign
identify which loyalty program, earning many loyalty schemes to many
rules, and redemption rules apply to a channels.
store.

Set up loyalty cards A loyalty card entitles the card holder to You assign loyalty programs to a loyalty
participate in the loyalty programs that card.
are assigned to the card. Loyalty cards
can be issued anonymously, or they can
be assigned to a specific customer. You
can view the loyalty transactions for a
specific card, and you can view a
summary of loyalty points that have
been accumulated on the card. You can
issue loyalty cards from any channel.
You can also manually adjust a loyalty
card to upgrade the customer to a
different tier, add loyalty points, or
transfer the loyalty point balance from
one card to another.

Loyalty processes
The following table describes the processes that must be run to send the loyalty configurations and data to your
stores, and to retrieve the loyalty transactions from your stores.

P RO C ESS N A M E DESC RIP T IO N PA GE N A M E

1050 (loyalty information) Run this process to send the loyalty Distribution schedule
data from Commerce to the stores. It's
a good idea to schedule this process to
run frequently, so that loyalty data is
transmitted to all stores.
P RO C ESS N A M E DESC RIP T IO N PA GE N A M E

Process loyalty schemes Run this process to associate loyalty Process loyalty schemes
schemes with the channels that the
loyalty scheme is assigned to. This
process can be scheduled to run as a
batch process. You must run this
process if you change loyalty
configuration data, such as loyalty
schemes, loyalty programs, or loyalty
reward points.

Post earned loyalty points in batches Run this process to update loyalty cards Post earned loyalty points in batches
so that they include transactions that
were processed offline. This process
applies only if the Post earned points
in batches check box is selected on the
Commerce shared parameters
page, so rewards can be earned offline.

Update loyalty card tiers Run this process to evaluate the Update loyalty card tiers
customer's earning activity against the
tier rules for a loyalty program, and to
update the customer's tier status. This
process is required only if you change
the tier rules in loyalty programs and
want the updated rules to be
retroactively applied to loyalty cards
that have already been issued. This
process can be run as a batch process
or for individual cards.

Loyalty enhancements
Commerce has new loyalty functionality as a part of the October 2018 release. Each of the new enhancements is
explained below.
As a part of a loyalty scheme in previous releases, retailers could create different earning and redemption
rules by tiers to differentiate the rewards for customers in different tiers. Retailers can now include
"affiliations" as a part of the earning and redemption rules so that certain group of customers can be a part
of existing tiers, but still be rewarded differently. Thise prevents the need to create additional tiers.

NOTE
The earning rules within a loyalty scheme are additional. For example, if you create a rule to reward a gold tier
member 10 points for each US dollar, and you also create a rule for a customer with "veteran" affiliation to reward 5
points for each US dollar, then a veteran who is also a gold tier member would earn 15 points for 1 US dollar, as the
customer qualifies for both lines. However, if the veteran customer was not a gold tier member, then he would earn 5
points for each dollar. To reflect the changes in the channels, run the Process loyalty schemes and 1050 (loyalty
information) jobs.
Retailers often have special prices for a certain group of customers that they don't want loyalty programs
applied to. For example, wholesalers or employees who get special pricing and no loyalty points. Commonly,
"affiliations" are used to provide the special pricing to such customer groups. To restrict certain customer
groups of customers from earning loyalty points, the retailer can specify one or more affiliations under the
Excluded affiliations section of the loyalty scheme. That way, when customers belonging to excluded
affiliations are existing loyalty members, they won't be able to earn loyalty points for their purchases. To
reflect the changes in the channels, run the Process loyalty schemes and 1050 (loyalty information) jobs.

Retailers can generate loyalty card numbers in the channels. Prior to the October 2018 update, retailers
could use physical loyalty cards or generate a loyalty card using some unique customer information such as
a phone number. To enable the automatic generation of loyalty cards in the stores, turn on Generate
loyalty card number in the functionality profile associated to the store. For online channels, retailers can
use the IssueLoyaltyCard API to issue loyalty cards to customers. Retailers can either provide a loyalty card
number to this API, which will be used to generate the loyalty card, or the system will use the loyalty card
number sequence set in Commerce. However, if the number sequence is not present, and the retailer does
not provide a loyalty card number while calling the API, then an error is displayed.

Earned and redeemed loyalty points are now saved for each transaction and sales orders against the sales
line, so that the same amount can be refunded or taken back in the case of full or partial returns. Moreover,
having the visibility for points at the sales line level provides the capability for call center users to answer
customer questions on how many points were earned or redeemed for each line. Prior to this change,
reward points were always recalculated during returns, which resulted in a different amount than the
original, if the earning or redemption rules were changed and also the call center users did not have the
visibility on the points breakdown. The points can be viewed under the Card transactions form for each
loyalty card. To enable this feature turn on the configuration Post loyalty points per sales line under
Commerce shared parameters > General tab.

NOTE
We strongly recommend turning this feature on to ensure, in case of returns, the correct amount of points can be
refunded or taken from the customer.

Retailers can now define the vesting period for each reward point. A vesting period configuration will define
the duration from the earn date, after which the reward points would become available to the customers.
Unvested points can be viewed in the Unvested points column on the Loyalty cards page. Additionally,
retailers can define the maximum loyalty reward point limit per loyalty card. This field can be used to reduce
the impact of loyalty fraud. When the maximum award points have been reached, the user cannot earn more
points. The retailer can decide to block such cards until they have investigated for potential fraud. If the
retailer determines fraud, the retailer cannot only block the loyalty card for the customer but also mark the
customer as blocked. To do so, set the Block customer for loyalty enrollment property to Yes under All
customers on the Commerce FastTab. The blocked customers will not be able to be issued a loyalty card in
any of the channels.
Affiliations are used to provide special pricing and discounts, but there be some affiliations that retailers do
not want their customers to see. For example, an affiliation titled "High spend customer" might not be well
received by some customers. Moreover, there are some affiliations that should not be managed in the store,
for example, employees, because you do not want the cashiers to decide who is an employee and thus
provide employee-based discounts. Retailers can now select the affiliations which should be hidden in the
channels. Affiliations marked as Hide in channels cannot be viewed, added, or removed in the POS.
However, the pricing and discounts associated with the affiliation will still be applied to the products.

Call center users can now more easily search for a customer using their loyalty card information, and
navigate to the customer's loyalty card and loyalty card transaction pages from the Customer ser vice
page.
If a loyalty card is compromised, a replacement card needs to be generated and the existing points
transferred to the new card. The replacement card flow has been simplified in this release. Additionally,
customers can gift some or all of their loyalty points to friends and family. When points are transferred,
points adjustment entries are created for each loyalty card. The replacement card and transfer balance
functionality can be accessed from the Loyalty cards page.

Retailers may want to capture the effectiveness of a particular channel to enroll customers into a loyalty
program. The enrollment source for the loyalty cards is now saved so that retailers can run reports on this
data. The enrollments source is automatically captured for all the issued loyalty cards from MPOS/CPOS or
e-Commerce channels. For the loyalty cards issued from the back office application, the call center user can
select an appropriate channel.
In earlier releases, retailers could use MPOS/CPOS to redeem loyalty points for customers in a store.
However, in those releases, because the loyalty balance is displayed in loyalty points, the cashier could not
view the currency value amount that could be applied toward the current transaction. The cashier had to do
the points to currency conversion before paying by loyalty points. In the current release, after lines are added
to the transaction the cashier can see the amount that the loyalty points can cover for the current
transaction, making it easy to apply some or all of the loyalty points to the transaction. Additionally, the
cashier can see the points that will be expiring in next 30 days, so they can upsell or cross-sell to motivate
the customer to spend the expiring points at that transaction.
With the 8.1.3 release, we have enabled the "pay by loyalty" option in the call center channel. To enable this
option, create a loyalty tender type and associate it with the call center.

NOTE
Because the loyalty payments are set up as card payments, you will have to select a card from the Card setup page.

After this is set up, customers can redeem their loyalty points in the call center. Additionally, we are
enhancing the user experience further to show the "Amount covered by loyalty points", so that the call
center users do not have to navigate to a different screen to view the loyalty balance.
Many retailers award loyalty points only based on the sales transactions, but the more customer-centric
retailers want to reward their customers for any of their engagement activity with their brand. For example,
they want to provide rewards for completing an online survey, visiting a store, liking the retailers on
Facebook, or tweeting about the retailer. To do this, the retailer can define any number of "Other activity
type" and define the corresponding earning rules for these activities. There is also an exposed Commerce
Scale Unit API "PostNonTransactionalActivityLoyaltyPoints" that can be called when an activity is identified
that should reward the customer with loyalty points. This API expects the Loyalty card ID, Channel ID, and the
Other Activity Type ID, so that the customer who should be rewarded can be located and the earning rule for
the activity can be identified.
Awarding points for non-transaction activities generally has two major steps:
Realizing an activity has occurred that should be rewarded.
Rewarding the appropriate points.
The first step is external to Commerce, such as tweeting about the brand or liking the brand on Facebook.
After this activity has been recognized, the retailers can call the above-mentioned Commerce Scale Unit API
and award loyalty points in real time. In such scenarios, there is no need for a review step because an activity
has occurred and corresponding points should be awarded. However, there are scenarios where the retailer
would want to review the records prior to awarding the points. For example, the retailer has set up a
workshop in the store for which the customers sign up on the ecommerce website or any other event
registering application. However, only the attending customers should earn loyalty points. For such
scenarios, in the 10.0 release, we introduced a data entity named Retail loyalty other activity type lines .
This data entity enables the retailers to use either Data Import/Export Framework (DIXF) or OData API to
record the activities that should award customers with loyalty points. The data entity stores the activities in a
journal named Loyalty lines for other activities , which can be used for review and modification
purposes. After the data has been reviewed, the IT user can either manually post the activity lines or run a
job named Process other activity type for loyalty lines , which will post all the unposted activity lines
and award the points to the customers based on the earning rules. In the above scenario, the event
registration application would call OData API to send the customer information to Commerce. However, the
IT user can post the activity lines for only those customers who attended the workshop and delete the
activity lines for the other customers.

NOTE
Currently, the system forces users to set up a number sequence for "other activity types", but this will not be a
required step in future releases. To set up a number sequence, go to Commerce shared parameters > Number
sequences and select a number sequence for Loyalty other activity type ID .

To provide good customer service and effectively resolve customer queries, it is important for the cashiers to
have access to complete customer's profile. With the 10.0 release, cashiers will be able to see loyalty history
details along with the associated loyalty program and tier information on POS.
Free or discounted shipping is one of the highly motivating factors for customers to buy online. To enable
the retailers to set up shipping promotions, with the 10.0 release, we have introduced a new type of
promotion named "Shipping threshold discount," where the retailer can define the thresholds, which once
met, will qualify the customers for discounted or free shipping. For example, spend $35 for free 'Two day
ship' or Free 'Two day ship' for all loyalty customers. This feature leverages the new Advanced auto charges
capability. Refer the documentation on Advanced auto charges. These advanced auto charges need to be
enabled for shipping promotion to work. These can be enabled from the Customer orders tab on the
Commerce parameters page and turn on the "Use advanced auto-charges" configuration. Additionally,
because a retailer can set up multiple types of charges, such as handling or installation, the retailer needs to
specify which charge is considered shipping charge. The shipping discounts are only applied to the shipping
charges. To specify charge as Shipping charge, navigate to the Charge codes form present under Retail
and Commerce > Retail and Commerce IT > Channel setup > Charges and turn on the "Shipping
charge" checkbox for the desired charges. Now you can navigate to the Shipping threshold discount
form and set up the discount.
Like product discounts, this discount honors all the existing standard discount capabilities, such as allowing
the retailer to restrict these discounts with the coupons so that only the customers with coupons can get
these discounts. Also, these discounts leverage the Price groups capability to determine the eligibility of such
discounts. For example, the retailer can choose to run these promotions only in the online channels and/or
across channels for certain customer groups such as loyalty customers. After the order lines with the
specified delivery mode meets the defined threshold, then the shipping discount gets applied and reduces
the shipping charge based on the discount set up.

NOTE
Unlike other periodic discounts such as quantity, simple, mix and match, and threshold discounts, the shipping
discount does not create discount lines, rather edits the shipping charge directly and appends the name of the
discount to the charge description.
Define loyalty programs
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure shows how to set up a loyalty program with two loyalty tiers. This procedure uses the USRT demo
data company.
1. Go to Retail and Commerce > .. > Loyalty programs.
2. Click New.
3. In the Name field, type a value.
4. In the Description field, type a value.
5. Click Add line.
6. In the Level field, enter a number.
7. In the Tier field, enter a name for the loyalty tier.
8. In the Description field, type a value.
9. In the Date interval field, click the drop-down button to open the lookup.
This date interval should extend into the future. For example, if the date interval that is selected for gold
tier is a one-year period, any customer who qualifies for the gold tier can receive the rewards that are
assigned to the gold tier for one year. If the customer re-qualifies for the gold tier while they are in the
tier, the date that the tier expires is extended by another year from the date when they re-qualify.
10. In the list, click the link in the selected row.
11. Click Add line.
12. In the Level field, enter a number.
13. In the Tier field, enter a name for the loyalty tier.
14. In the Description field, type a value.
15. In the Date interval field, click the drop-down button to open the lookup.
16. In the list, click the link in the selected row.
17. Click Save.
18. In the list, find and select the desired record.
Tier rules define the minimum number of a reward point needed to be earned during a time period to
qualify for the tier.
19. Toggle the expansion of the Tier rules section.
20. Click New.
You can have more than one tier rule per tier. For example, you could have three different criteria to earn
a tier; by spending $500 in one month, by spending $1000 over one year, and by having 20 transactions
in one year. To do this, you would need to create three tier rules.
21. In the Reward point field, click the drop-down button to open the lookup.
This should be a non-redeemable loyalty reward point.
22. In the list, click the link in the selected row.
23. In the Minimum issued points field, enter a number.
For the lowest level tier, if all customers qualify simply by participating in the program, enter '0'.
24. In the Evaluation date interval field, click the drop-down button to open the lookup.
This date interval should extend into the past. Only points earned during this date interval will be counted
towards reaching the minimum issued points value.
25. In the list, click the link in the selected row.
26. Click Save.
27. In the list, find and select the desired record.
28. Click New.
29. In the Reward point field, click the drop-down button to open the lookup.
30. In the list, click the link in the selected row.
31. In the Minimum issued points field, enter a number.
32. In the Evaluation date interval field, click the drop-down button to open the lookup.
This date interval should extend into the past.
33. In the list, click the link in the selected row.
34. Click Save.
35. Click Price groups.
If you want to give loyalty customers discounts. you'll need to assign one or more price groups to the
loyalty program and assign the price groups to discounts. It is a best practice to not mix price groups
across different types of discounting entities. For example, don't use the same price group for a loyalty
discount and a channel discount.
36. In the Price group field, click the drop-down button to open the lookup.
The Price groups link at the top of the page is for the loyalty program. The Price groups link in the
Program tiers FastTab is for a specific loyalty tier only.
37. In the list, click the link in the selected row.
38. Click Save.
39. Close the page.
40. Click Save.
Define loyalty reward points
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through defining loyalty reward points. You should set up loyalty reward points before you
set up a loyalty program. This procedure uses the USRT demo data company.
1. Go to Retail and Commerce > Customers > Loyalty > Loyalty reward points.
2. Click New.
3. In the Reward point ID field, type a value.
4. In the Description field, type a value.
5. In the Reward point type field, select an option.
Select Quantity if you want the reward points to be rounded to the nearest integer. Select Amount if you
want the reward points to be rounded according to currency rounding rules. If you select Quantity, skip
the next step of this procedure..
6. In the Currency field, type a value.
For Amount type reward points, all points issued will have the selected currency. For Quantity type
reward points, this field doesn't apply—skip this step.
7. Check or uncheck the Redeemable checkbox.
8. In the Redeem ranking field, enter a number.
Redeem ranking is used when two or more redeemable reward points can be used to pay for products. If
the two reward points have the same redeem ranking, then the one that needs to lower number of points
will be used.
9. In the Expiration time value field, enter a number.
The reward points will expire the specified number of days, months, or years after when the points are
issued. A value of '0' means the loyalty reward points will never expire.
10. In the Expiration time unit field, select an option.
11. Click Save.
Define loyalty schemes
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through how to define a loyalty scheme. Loyalty schemes are reward earning and redeeming
rules for a loyalty program. This procedure uses the USRT demo data company.
1. Go to Retail and Commerce > Customers > Loyalty > Loyalty schemes.
2. Click New.
3. In the Scheme ID field, type a value.
4. In the Description field, type a value.
5. In the Name field, click the drop-down button to open the lookup.
You can have multiple loyalty schemes for a loyalty program. Loyalty schemes can be for all channels or
only a sub-set of channels.
6. In the list, find and select the desired record.
7. In the list, click the link in the selected row.
8. Click Save.
9. Click Add line.
10. In the Activity type field, select an option.
Select Purchase products by amount if you want customers to earn rewards based on how much they
spend. Select Purchase products by quantity if you want customers to earn rewards based on how many
products they buy. Select Sales transaction count if you want customers to earn rewards for each sales
transaction, regardless of what or how much is purchased.
Select a category. The category will limit which products this earning rule applies to.
If you want the earning rule to apply to all products, leave this field blank.
11. In the Activity amount/quantity field, enter a number.
For activity type Sales transaction count, you should always use a value of '1.0'. For activity types of
Purchase by amount or Purchase by quantity, any transaction that is less than the value entered will not
trigger the earning rule. For example, if the activity type is Purchase by amount, and you enter '10.00',
then a sales transaction for '9.00' will not earn rewards for this earning rule.
12. In the Activity currency field, type a value.
13. In the Reward point ID field, click the drop-down button to open the lookup.
14. In the list, click the link in the selected row.
15. In the Reward points field, enter a number.
Amount type reward points will record earned amounts with decimals. For example, if the earning rule
states 1 reward point earned for every 1 Canadian Dollar spent, and the customer spends 1.25 Canadian
Dollars, then the customer will earn 1.25 reward points. Quantity type reward points will record earned
amounts in integers. Using the example where the earning rule states 1 reward point earned for every 1
Canadian Dollar spent, and the customer spends 1.25 Canadian Dollars, then the customer will earn 1.0
reward points.
16. Click Save.
17. Click Add line.
Redemption rules are used when the loyalty payment method is used.
18. In the Reward point ID field, click the drop-down button to open the lookup.
Only redeemable reward points are shown.
19. In the list, click the link in the selected row.
20. In the Reward points field, enter a number.
21. In the Redemption type field, select an option.
Selecting Payment by amount causes the Amount or quantity field to be treated as a currency value. In
this case, the amount of reward points used per currency unit of payment is a fixed ratio. Selecting
Payment by quantity causes the Amount or quantity field to be treated as a quantity value. In this case,
the amount of reward points used per item quantity is a fixed ratio, however, the amount in currency can
vary if the price of items paid for with loyalty reward points varies for the same quantity. Redemption
type of Loyalty points discount is only valid when the 'Russia' Country/Regional specific features
configuration key is enabled, and the POS functionality profiles has an ISO code of 'RU'.
Select a category. The category will limit which products this redemption rule applies to.
If you want the redemption rule to apply to all products, leave this field blank.
22. In the Amount or quantity field, enter a number.
23. In the Currency field, type a value.
24. Click Save.
25. Click Add line.
Select one or more nodes from the Available organization nodes list and move them to the Selected
organization nodes list by clicking the arrow between the two lists.
26. Click OK.
27. Click Save.
Anytime you change the channels for a loyalty scheme, you must run Process loyalty schemes. That way,
the channels will get updated loyalty schemes.
Process loyalty reward point adjustments
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure demonstrates how to look up loyalty card information and adjust loyalty reward points. The demo
data company used to create this task is USRT. This task is intended for the Commerce operations manager role or a
Customer service manager role.
1. Go to Loyalty cards.
2. In the list, find and select the desired record.
3. In the list, click the link in the selected row.
4. Click Card transactions.
On this page you can view all loyalty transactions for the selected loyalty card.
5. Close the page.
6. Click Card adjustments.
7. Click New.
8. In the Reward point field, enter or select a value.
9. In the Amount or quantity field, enter a number.
You can add or remove points from the loyalty card by using positive or negative amounts.
10. In the Loyalty program field, enter or select a value.
11. In the Comment field, type a value.
12. Click Post adjustment.
13. Click Yes.
14. Close the page.
Normally at this point you'd refresh the page to see the result of the reward points adjustment in the
Reward point summary tab. But if you are running this as a task guide, don't refresh now because if you
do, the task guide will stop.
15. Click Card transactions.
16. Close the page.
Retail statements
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In Dynamics 365 Commerce, the statement posting process is used to account for the transactions that occur in
Cloud point of sale (POS) or Modern POS (MPOS). The statement posting process uses the distribution schedule to
pull a set of POS transactions into the headquarters (HQ) client. The parameters that are defined on the
Commerce parameters and Stores pages are used to select the transactions that are pulled into individual
statements.
The following illustration shows the statement posting process. In this process, transactions that are recorded in the
POS are transmitted to the client by using the Commerce scheduler. After the client receives the transactions, you
can create, calculate, and post the transaction statement for the store.

Creating and posting statements


You can create a statement manually or by using batch processes that you set up to run periodically throughout the
day. In both cases, the following steps are used to create and post statements.
Create the statement
This step identifies the store that the statement is manually created for. If you configure a batch process, you can
automatically create statements for all stores, based on a schedule that you define.
Calculate the statement
In this step, the transaction lines are selected based on criteria that are defined for each store on the Commerce
parameters and Stores pages. On these pages, you define the criteria and specify how the transactions are
calculated. To view a list of the transactions that are included in the statement before you calculate the statement,
use the Transactions page.
Statement calculation uses tender declarations from the registers as the counted amount. Alternatively, you can
enter the counted amount manually. The statement shows the difference between the sales amount for the
transactions and the actual counted amount in all payment methods. The statement is posted only if this difference
is less than the maximum posting difference that is defined for the store.

NOTE
The statement calculation process uses the global number sequence.

When you calculate a statement, the calculation includes the following tasks:
For the selected date range, mark transactions that weren't included in a previous statement calculation.
Calculate the total amounts that were tendered in the selected transactions. The results are shown on the
statement lines, depending on the statement method:
If the statement method is Total , a line is created for each payment method in the selected transactions.
If the statement method is Staff , a line is created for each payment method in transactions that were
performed by the selected staff member.
If the statement method is POS terminal , a line is created for each payment method in transactions that
were performed on the selected register.
If the statement method is Shift , a line is created for each payment method in transactions that were
performed during a shift.
If the Split by Statement method check box is selected on the Stores page, a separate statement is created
based on the value that is selected in the Statement method field.
If your store's operating hours extend past midnight, you can configure statement posting so that it's based on the
end of the business day instead of the end of the calendar day.
On the Stores page, on the Statement/closing FastTab, in the End of business day field, enter the time that the
last transaction must be recorded to be included in the business day's statement. Select the Post as business day
check box to post the transactions within the same business day. When the statement is posted, transactions that
are recorded within the same business day can be included on the same sales order, even if some transactions
occur before midnight and other transactions occur after midnight.
Example: Post a statement for a business day that extends over two calendar days
A store is open between 8:00 AM and 3:00 AM, and the Post as business day check box is selected in the store's
configuration. On May 31, the store records transactions between 8:00 AM and midnight. The store also records
transactions between 12:01 AM and 3:00 AM on June 1.
When the store posts its statement for the close of the business day, the sales order that is generated includes all
transactions that were recorded between the business hours of 8:00 AM and 3:00 AM, even though the transactions
occurred on two days, May 31 and June 1.
If the Post as business day check box is cleared for the same store, separate sales orders are generated when the
store posts its statement for the close of the business day. One sales order includes the transactions that were
recorded between the business hours of 8:00 AM and midnight on May 31, and the second sales order includes the
transactions that were recorded between the business hours of 12:01 AM and 3:00 AM on June 1.
NOTE
Before you can create statements, you should close the shifts in the statement period.

Post the statement


When you post a statement, sales orders and invoices are created for the sales in the statement.
Cash and carry sales are aggregated onto one sales order, and are invoiced for the default customer who is
assigned to the store.
Sales for which a customer was added to the transaction in POS generate separate sales orders and invoices,
one for each unique customer.
Payment journals are automatically created for the payments in the statement, and the inventory is updated for the
POS store.
Retail transaction consistency checker
4/16/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the transaction consistency checker functionality in Microsoft Dynamics 365 Commerce. The
consistency checker identifies and isolates inconsistent transactions before they are picked up by the statement
posting process.
When a statement is posted, posting can fail due to inconsistent data in the commerce transaction tables. The data
issue may be caused by unforeseen issues in the point of sale (POS) application, or if transactions were incorrectly
imported from third-party POS systems. Examples of how these inconsistencies may appear include:
The transaction total on the header table does not match the transaction total on the lines.
The line count on the header table does not match with the number of lines in the transaction table.
Taxes on the header table do not match the tax amount on the lines.
When inconsistent transactions are picked up by the statement posting process, inconsistent sales invoices and
payment journals are created, and the entire statement posting process fails as a result. Recovering the statements
from such a state involves complex data fixes across multiple transaction tables. The transaction consistency
checker prevents such issues.
The following chart illustrates the posting process with the transaction consistency checker.

The Validate store transactions batch process checks the consistency of the commerce transaction tables for the
following scenarios.
Customer account – Validates that the customer account in the transaction tables exists in the HQ customer
master.
Line count – Validates that the number of lines, as captured on the transaction header table, matches the
number of lines in the sales transaction tables.
Price includes tax – Validates that the Price includes tax parameter is consistent across transaction lines.
Payment amount - Validates that the payment records match the payment amount on header.
Gross amount – Validates that the gross amount on the header is the sum of the net amounts on the lines plus
the tax amount.
Net amount – Validates that the net amount on the header is the sum of the net amounts on the lines.
Under / Over payment – Validates that the difference between the gross amount on the header and the
payment amount doesn't exceed the maximum underpayment/overpayment configuration.
Discount amount – Validates that the discount amount on the discount tables and the discount amount on the
transaction line tables are consistent, and that the discount amount on the header is the sum of the discount
amounts on the lines.
Line discount – Validates that the line discount on the transaction line is the sum of all the lines in the discount
table that corresponds to the transaction line.
Gift card item – Commerce doesn't support the return of gift card items. However, the balance on a gift card
can be cashed out. Any gift card item that is processed as a return line instead of a cash-out line fails the
statement posting process. The validation process for gift card items helps guarantee that the only return gift
card line items on the transaction tables are gift card cash-out lines.
Negative price – Validates that there are no negative price transaction lines.
Item & Variant – Validates that items and variants on the transaction lines exist in the item and variant master
file.
Tax amount - Validates that tax records match the tax amounts on the lines.
Serial number - Validates that the serial number is present in the transaction lines for items that are controlled
by serial number.
Sign - Validates that the sign on the quantity and the net amount are the same in all the transaction lines.
Business date - Validates that the financial periods for all the business dates for the transactions are open.

Set up the consistency checker


Configure the "Validate store transactions" batch process, at Retail and Commerce > Retail and Commerce IT
> POS posting , for periodic runs. The batch job can be scheduled based on store organization hierarchy, similar to
how the "Calculate statement in batch" and "Post statement in batch" processes are set up. We recommend that you
configure this batch process to run multiple times in a day and schedule it so that it runs at the end of every P-job
execution.

Results of validation process


The results of the validation check by the batch process are tagged on the appropriate transaction. The Validation
status field on the transaction record is either set to Successful or Error , and the date of the last validation run
appears on the Last validation time field.
To view more descriptive error text relating to a validation failure, select the relevant store transaction record and
click the Validation errors button.
Transactions that fail the validation check and transactions that have not yet been validated will not be pulled into
statements. During the "Calculate statement" process, users will be notified if there are transactions that could have
been included in the statement but weren't.
If a validation error is found, the only way to fix the error is to contact Microsoft Support. In a future release,
capability will be added so that users can fix the records that failed through the user interface. Logging and auditing
capabilities will also be made available to trace the history of the modifications.

NOTE
Additional validation rules to support more scenarios will be added in a future release.
Disable rules in the retail transaction consistency
checker
4/16/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Retailers can have business scenarios and processes that are unique to them. Therefore, not all the rules that are
included by default in the commerce transaction consistency checker are applicable to all retailers. To accommodate
differences, Microsoft Dynamics 365 Commerce provides functionality that can be used to disable the rules that
aren't applicable.
To view the list of rules that are available in the transaction consistency checker in your environment, and to see the
status of each rule, go to Retail and Commerce > Headquar ters setup > Parameters > Commerce
parameters , and select the Transaction validation tab.
By default, the status of every rule is set to Enabled . Therefore, all the rules are used to validate transactions before
they are pulled into the commerce statements. To disable a rule, change its status to Disabled . Disabled rules aren't
considered when transactions are validated during the statement calculation process.
To bypass the whole validation process, regardless of the rules that are enabled, go to Retail and Commerce >
Headquar ters setup > Parameters > Commerce parameters , and then, on the Transaction validation tab,
set the Disable consistency checker for Commerce transactions option to Yes . After this option is set to No ,
it can't be set back to Yes from the user interface (UI).
Edit and audit retail store transactions
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Dynamics 365 Commerce customers use first-party as well as third-party point of sale (POS) applications. With the
first-party POS application, store transactions are pulled into Headquarters from the channels through a batch
process. With third-party applications, transactions are pulled into Headquarters through integration. In both cases,
after transactions are pulled into Headquarters, a consistency check process needs to be executed that runs
multiple validations on the transactions so that only successfully validated transactions are pulled into the
statement to be posted in Headquarters.
Commerce transactions fail validation for various reasons. For example, a bug in the integration code or a bug in
the POS application may cause inconsistent data, or a user error, such as deleting a product after it was
synchronized to the channel or closing a fiscal period without posting transactions for that period, can cause
inconsistent data.
While these transactions get flagged and are excluded from the statements, the transactions can disrupt a
customer’s daily process of posting daily sales to the financials.
In Commerce, you can edit the specific transactions that fail validation while maintaining audit of all the changes.

Edit and audit transactions


In Retail version 10.0.5, cash and carry transactions like sales and returns are the only transactions that can be
edited. Editing customer orders or online orders is not supported. In Retail version 10.0.6 and higher, editing cash
management transactions is also supported.
1. Install the Dynamics Excel Add-in.
2. Go to the Store financials workspace. The Transaction validation failures tile provides a pre-filtered
view of the transaction form that failed one or more of the validation rules.
3. Open the form. Click the record that failed validation, click Office Add in , and then click Edit selected
transaction . An Excel file with the details of the selected transaction opens, with the following worksheets:
Lines: This worksheet has the header and product lines and related data for the transaction.
Payments: This worksheet has the details of the payment lines for the transaction.
Discounts: This worksheet has the discount-related details for the transaction.
Taxes: This worksheet has the tax-related details for the transaction.
Charges: This worksheet has the charges-related data for the transaction.
4. In the Excel file, you modify the appropriate fields and then upload the data back into Headquarters using
the Dynamics Excel Add-in publish functionality. Once published, the changes will be reflected in the system.
During publish, no validation is done on changes that users make.
5. A complete audit trail of the changes can be viewed by clicking View audit trail in the Retail transaction
header for the header-level changes and in the relevant section and record on the appropriate transaction
page. For example, all changes relating to sales lines will be visible on the Sales transactions page,
changes relating to payments will be visible on the Payment transactions page, etc. The audit details that
are maintained for the changes are as follows.
Modified date and time
Field
Old value
New value
Modified by
6. After your changes are made and published, run the Validate store transactions option again to validate
that the changes you made are consistent and valid.

NOTE
You can only edit transactions that failed validation. If you want to edit transactions that passed validation, change the
validation status of the transaction you want to change to Error or None and then you will be able to edit it.

Bulk edit transactions


In Retail version 10.0.6 and higher, the option to bulk edit transactions at a statement level is supported.
1. Use the Excel Add-in to open a statement that has transactions you want to modify using steps 1-3 above.
2. Choose one of the options below.
Edit cash and carr y transactions . This option enables you to edit all the cash and carry
transactions included in the statement. The following Excel worksheets are available.
Transaction : This worksheet has all the header-level information for the sales transactions.
Sales transaction : This worksheet has all the lines-level information for the sales transactions.
Payment transactions : This worksheet has all the payment lines information for the sales
transactions.
Discount transactions : This worksheet has all the discount lines information for the sales
transactions.
Tax transactions : This worksheet has all the tax lines information for the sales transactions.
Charge transactions : This worksheet has all the charge lines information for the sales
transactions.
Edit cash management transactions . This option enables you to edit all the cash management
transactions included in the statement. The following Excel worksheets are available.
Transaction : This worksheet has all the header-level information for the cash management
transactions.
Bank tender transactions : This worksheet has all the bank drop transaction details.
Safe tender transactions : This worksheet has all the safe drop transaction details.
Tender declaration : This worksheet has all the tender declaration transaction details.
Income-expense transaction : This worksheet has all the income-expense transaction line
details.
Payment transactions : This worksheet has all the payment-related information for the Pay
invoice operation as well as the income-expense transaction.
3. Validations are not performed when you publish bulk edited transactions. You must ensure that all your edits
are accurate and the fidelity of data across the worksheets is maintained. For example, if you want to change
the transaction date to manage the scenarios where the fiscal or inventory period for the open transactions
is closed, you need to change the date on all the Excel worksheets that have the Business date column. To
validate transactions after they have been edited, you can use Revalidate transactions on the Statements
page.
Create, calculate, and post statements for a retail
store
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the manual steps for creating, calculating, and posting a statement for a store. There are also
batch jobs that can be configured for the same tasks. The steps for configuring and running the batch jobs can be
found in other topics. To complete this procedure, you must have transactions that were completed in POS and then
pulled into Dynamics 365 Commerce. This recording uses the USRT company in demo data.
1. Select Store financials from the home page.
2. Select New statement .
3. In the Store number field, select a option from the drop-down.
4. Select OK .
5. The Setup group has the settings that control what transactions are included in the statement and how they are
grouped into statement lines. You can open the Setup group and change these settings, or you can use the
defaults.
The Statement method field defines how the statement lines will be grouped.
Select a staff member or a register in the staff/register field if you want to calculate a statement only for
the specific staff member or register.
6. In the Closing method field, select an option.
7. Select Calculate statement from the Action Pane.
8. Select Yes .
After calculating the statement, there should be lines created with total amounts for each payment
method and statement method that was used.
Enter a counted amount in each line if it needs to be entered or updated. The counted field is populated
with amounts from tender declarations done in POS.
9. Select Post statement from the Action Pane.
10. Select Close .
11. Close the pane.
12. At the home page, select Store financials .
13. Select the Posted statements tab.
Improvements to statement posting functionality
2/13/2020 • 14 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the first set of improvements that have been made to the statement posting feature. These
improvements are available in Microsoft Dynamics 365 for Finance and Operations 7.3.2.

Activation
By default, during deployment of Finance and Operations 7.3.2, the program is set up to use the legacy feature for
statement postings. To enable the improved statement posting feature, you must turn on the configuration key for
it.
Go to System administration > Setup > License configuration , and then, under the Retail and
Commerce node, clear the Statements (legacy) check box, and select the Statements check box.
When the new Statements configuration key is turned on, a new menu item that is named Statements is
available. This menu item lets you manually create, calculate, and post statements. Any statement that causes an
error when the batch posting process is used will also be available through this menu item. (When the Statements
(legacy) configuration key is turned on, the menu item is named Open statements .)
Commerce includes the following validations that are related to these configuration keys:
Both configuration keys can't be turned on at the same time.
The same configuration keys must be used for all the operations that are performed on a given statement during
its lifecycle (Create, Calculate, Clear, Post, and so on). For example, you can't create and calculate a statement
while the Statement (legacy) configuration key is turned on, and then try to post the same statement while the
Statement configuration key is turned on.

NOTE
We recommend that you use the Statements configuration key for the improved statement posting feature, unless you have
compelling reasons to use the Statements (legacy) configuration key instead. Microsoft will continue to invest in the new
and improved statement posting feature, and it's important that you switch to it at the earliest opportunity to benefit from it.
The legacy statement posting feature is deprecated starting in 8.0 release.

Setup
As part of the improvements to the statement posting feature, three new parameters have been introduced on the
Statement FastTab on the Posting tab of the Commerce parameters page:
Disable clear statement – This option is applicable only for the legacy statement posting feature. We
recommend that you set this option to No to prevent users from clearing statements that are in a semi-
posted state. If statements that are in a semi-posted state are cleared, data becomes corrupted. You should
set this option to Yes only in exceptional circumstances.
Reser ve inventor y during calculation – We recommend that you use the Post inventor y batch job for
inventory reservation, and that you set this option to No . When this option is set to No , the improved
statement posting feature doesn't try to create inventory reservation entries at the time of calculation (if
entries weren't already created through the Post inventor y batch job). Instead, the feature creates inventory
reservation entries only at the time of posting. This implementation was a design choice and was based on
the fact that the time window between the calculation process and the posting process is typically small.
However, if you want to reserve inventory at the time of calculation, you can set this option to Yes .
The legacy statement posting feature always reserves inventory during the statement calculation process (if
reservation wasn't already done through the Post inventor y batch job), regardless of the setting of this
option.
Disable counting required – When this option is set to Yes , the posting process for a statement continues,
even if the difference between the counted amount and the transaction amount on the statement is outside
the threshold that is defined on the Statement FastTab for stores.
Additionally, the following parameters have been introduced on the Batch processing FastTab on the Posting tab
of the Commerce parameters page:
Maximum number of parallel statement posting – This field defines the number of batch tasks that will be
used to post multiple statements.
Max thread for order processing per statement – This field represents the maximum number of threads
used by the statement posting batch job to create and invoice sales orders for a single statement. The total
number of threads that will be used by the statement posting process will be computed based on the value in
this parameter multiplied by the value in the Maximum number of parallel statement posting parameter.
Setting the value of this parameter too high can negatively impact the performance of the statement posting
process.
Max transaction lines included in aggregation – This field defines the number of transaction lines that will
be included in a single aggregated transaction before a new one is created. Aggregated transactions are created
based on different aggregation criteria such as customer, business date, or financial dimensions. It is important
to note that the lines from a single transaction will not be split across different aggregated transactions. This
means that there is a possibility that the number of lines in a aggregated transaction is slightly higher or lower
based on factors such as number of distinct products.
Maximum number of threads to validate store transactions – This field defines the number of threads
that will be used to validate transactions. Validating transactions is a required step that needs to occur before the
transactions can be pulled into the statements. You also need to define a Gift card product on the Gift card
FastTab on the Posting tab of the Commerce parameters page. This needs to defined even if gift cards are not
used by the organization.

NOTE
All settings and parameters that are related to statement postings, and that are defined on stores and on the Commerce
parameters page, are applicable to the improved statement posting feature.

Processing
Statements can be calculated and posted in batch using the menu items Calculate statements in batch and Post
statements in batch . Alternatively, statements can be manually calculated and posted by using the Statements
menu item that the improved statement posting feature provides.
The process and steps for calculating and posting statements in a batch are the same as they were in the legacy
statement posting feature. However, significant improvements have been made in the core back-end processing of
the statements. These improvements make the process more resilient, and provide for better visibility into the
states and error information. Therefore, users can address the root cause of errors and then continue the posting
process without causing data corruption and without causing data fixes to be required.
The following sections describe some of the major improvements for the statement posting feature that appear in
the user interface for statements and posted statements.
Status details
A new state model has been introduced in the statement posting routine across the calculation and posting
processes.
The following table describes the various states and their order during the calculation process.

STAT E O RDER STAT E DESC RIP T IO N

1 Started The statement was created and is ready


to be calculated.

2 Marked The transactions that are in scope for


the statement are identified based on
the statement parameters, and they are
marked with the statement ID.

3 Calculated The statement lines are computed and


shown.

The following table describes the various states and their order during the posting process.

STAT E O RDER STAT E DESC RIP T IO N

1 Checked Multiple validations are done that are


related to parameters (for example, the
disposition charge), and to the
statement and statement lines (for
example, the difference between the
counted amount and the transaction
amount).

2 Aggregated Sales transactions for named and


unnamed customers are aggregated
based on the configuration. Every
aggregated transaction is eventually
converted to a sales order.

3 Customer order created Based on the aggregated transaction,


sales orders are created in the system.

4 Customer order invoiced Sales orders are invoiced.

5 Discounts posted Periodic discount journals are posted


based on the configuration.

6 Income/expense posted Income/expense transactions are posted


as vouchers.

7 Vouchers linked Payment journals are created and linked


to the corresponding invoice.
STAT E O RDER STAT E DESC RIP T IO N

8 Payments posted Payment journals are posted.

9 Gift cards posted Gift card transactions are posted as


vouchers.

10 Posted The statement is marked as posted.

Every state in the preceding tables is independent in nature, and a hierarchical dependency is built between the
states. This dependency flows from top to bottom. If the system encounters any errors while it's processing a state,
the status of the statement is reverted to the previous state. Any subsequent reattempt of the process resumes from
the state that failed and continues to move forward. This approach has the following benefits:
The user has complete visibility into the state where the error occurred.
Data corruption is avoided. For example, in the legacy statement posting feature, there were instances where
some sales orders were invoiced but others were left open. There were also instances where some payment
journals didn't have a corresponding invoice to settle, because the invoice posting had an error.
Users can see the current state of a statement by using the Status details button in the Execution details
group of the statement. The status details page has three sections:
The first section shows the current status of the statement, together with the error code and a detailed
error message, if an error occurred.
The second section shows the various states of the calculation process. Visual cues indicate states that
have been successfully run, states that could not be run because of errors, and states that haven't yet been
run.
The third section shows the various states of the posting process. Visual cues indicate states that have
been successfully run, states that could not be run because of errors, and states that haven't yet been run.
Additionally, the header of the second and third sections shows the overall status of the relevant process.
Event logs
A statement goes through various operations (for example, Create, Calculate, Clear, and Post), and multiple
instances of the same operation might be called during the statement's lifecycle. For example, after a statement is
created and calculated, a user can clear the statement and calculate it again. The Event logs button in the
Execution details group of the statement provides a complete audit trail of the various operations that were called
on a statement, together with information about when those operations were called.
Aggregated transactions
During the posting process, the sales transactions are aggregated based on the configuration. These aggregated
transactions are stored in the system and used to create sales orders. Every aggregated transaction creates one
corresponding sales order in the system. You can view the aggregated transactions by using the Aggregated
transactions button in the Execution details group of the statement.
The Sales order detail tab of an aggregated transaction shows the following information:
Record ID – The ID of the aggregated transaction.
Statement number – The statement that the aggregated transaction belongs to.
Date – The date when the aggregated transaction was created.
Sales ID – When a sales order is created from the aggregated transaction, the sales order ID. If this field is blank,
the corresponding sales order hasn't been created.
Number of aggregated lines – The total number of lines for the aggregated transaction and sales order.
Status – The last status of the aggregated transaction.
Invoice ID – When the sales order for the aggregated transaction is invoiced, the sales invoice ID. If this field is
blank, the invoice for the sales order hasn't been posted.
The Transaction details tab of an aggregated transaction shows all the transactions that have been pulled into the
aggregated transaction. The aggregated lines on the aggregated transaction show all the aggregated records from
the transactions. The aggregated lines also show details such as the item, variant, quantity, price, net amount, unit,
and warehouse. Basically, each aggregated line corresponds to one sales order line.
From the Aggregated transactions page, you can download the XML for a specific aggregated transaction by
using the Expor t sales order XML button. You can use the XML to debug issues that involve sales order creation
and posting. Just download the XML, upload it to a test environment, and debug the issue in the test environment.
The functionality for downloading the XML for aggregated transactions isn't available for statements that have been
posted.
The aggregated transaction view provides the following benefits:
The user has visibility into the aggregated transactions that failed during sales order creation and the sales
orders that failed during invoicing.
The user has visibility into how transactions are aggregated.
The user has a complete audit trail, from transactions, to sales orders, to sales invoices. This audit trail wasn't
available in the legacy statement posting feature.
Aggregated XML file make it easier to identify issues during sales order creation and invoicing.
Journal vouchers
The Journal vouchers button in the Execution details group of the statement shows all the various voucher
transactions that are created for a statement, and that are related to discounts, income/expense accounts, gift cards,
and so on.
Currently, the program shows this data only for posted statements.
Payment journals
The Payment journals button in the Execution details group of the statement shows all the various payment
journals that are created for a statement.
Currently, the program shows this data only for posted statements.

Other improvements
Other, back-end improvements that users can see have been made to the statement posting feature. Here are some
examples:
The aggregation doesn't consider the staff, terminal, and shift entities. Because there are fewer aggregation
parameters, fewer sales order lines must be processed.
The occurrence of deadlock on transaction tables is reduced by introducing additional extension tables and by
doing insert operations instead of update operations on the transaction tables.
The number of running batch tasks has been parameterized and limited. Therefore, this number can be fine-
tuned specifically to a customer's environment. In the legacy statement posting feature, an unlimited number of
batch tasks was created at the same time. The results were unmanageable loads, overhead, and bottlenecks on
the batch server.
Statements are efficiently queued for processing by prioritizing the statements that have the maximum number
of transactions.
Batch processes such as Calculate statements in batch and Post statements in batch are run only in batch
mode. In the legacy statement posting feature, users could choose to run these batch processes in an interactive
mode which is s single threaded operation unlike batch processes which are multi-threaded.
In the legacy statement posting feature, any failure of a batch task put the whole batch job in an error state. In
the improved feature, batch task failures don't put the batch job in an error state if other batch tasks are
successfully completed. You should assess the posting status for a batch execution run by using the Statements
page, where you can see any statements that weren't posted because of errors.
In the legacy statement posting feature, the first occurrence of a statement failure causes the whole batch to fail.
The remaining statements aren't processed. In the improved feature, the batch process continues to process all
statements, even if some of the statements fail. One benefit is that users gain visibility into the exact number of
statements that have errors. Therefore, users don't have to be stuck in a continuous loop of fixing the errors and
running the post statement process till all statements are posted.

General guidance about the statement posting process


We recommend that you run the statement posting process in a batch, because batch runs take advantage of
the power of the batch framework in terms of multithreading. Multithreading is required in order to handle
the huge volumes of transactions that are normally seen in statement postings.
We recommend that you turn on negative physical inventory on the item model group, so that you have a
seamless posting experience. In some scenarios, negative statements might not be able to be posted unless
there is negative physical inventory. For example, in theory, if there is only one unit of an item in inventory,
and there have been a sales transaction and a return transaction for the item, the transaction should be able
to be posted even if negative inventory isn't turned on. However, because the statement posting process
pulls both the sales transaction and the return transaction in a single customer order, there is no guarantee
that the sales line will be posted first, followed by the return line. Therefore, errors can occur. If negative
inventory is turned on in this scenario, the transaction posting isn't negatively affected, and the system will
correctly reflect the inventory.
We recommend that you use aggregation while you calculate and post statements. Therefore, the following
settings are recommended for some of the aggregation parameters:
Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters .
Then, on the Posting tab, on the Inventor y update FastTab, in the Detail level field, select Summar y .
Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters .
Then, on the Posting tab, on the Aggregation FastTab, set the Voucher transactions option to Yes .
Trickle feed-based order creation for retail store
transactions (Public preview)
2/13/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In Dynamics 365 Retail versions 10.0.4 and earlier, statement posting is an end-of-day operation and all
transactions are posted in the books at the end of the day. Large transactions must then be processed in a limited
time window, sometimes resulting in load and locks and statement posting failures. Retailers also can't recognize
revenue and payments in their books throughout the day.
With the public preview of trickle feed-based order creation introduced in Retail version 10.0.5, transactions are
processed throughout the day, and only the financial reconciliation of tenders and other cash management
transactions are processed at the end of the day. This functionality splits the load of creating sales orders, invoices,
and payments throughout the day, providing better perceived performance and the ability to recognize revenue
and payments in the books in near real-time.

How to use trickle feed-based posting


1. To enable trickle feed-based posting of transactions, go to System administration > Set up > License
configuration and disable the the Statements key.
2. On the same page, enable the Statements (trickle feed) – Preview license key. When you enable this key,
make sure there are no pending statements waiting to be posted.

IMPORTANT
Before you enable the Statements (trickle feed) – Preview license key, make sure that no pending statements are
waiting to be posted.

3. The current statement document will be split into two different types; transactional statement and financial
statement.
The transactional statement will pick up all unposted and validated transactions and create sales
orders, sales invoices, payment and discount journals, and income-expense transactions at the
cadence that you configure. You should configure this process to run at a high frequency so that
documents are created when the transactions are uploaded into Headquarters through the P-job.
With the transactional statement that already creates sales orders and sales invoices, there is no real
need to configure the Post inventor y batch job. However, you can still use it to meet specific
business requirements that you may have.
The financial statement is designed to be created at the end of the day and only supports the closing
method of Shift . This statement will be limited to financial reconciliation and will only create the
journals for the difference amounts between counted amount and transaction amount for the
different tenders, along with journals for other cash management transactions.
4. To calculate the transactional statement, click Retail and Commerce > Retail and Commerce IT > POS
Posting > Calculate transactional statements in batch . To post the transactional statement statements
in batch, click Retail and Commerce > Retail and Commerce IT > POS Posting > Post
transactional statements in batch .
5. To calculate the financial statement, click Retail and Commerce > Retail and Commerce IT > POS
Posting > Calculate financial statements in batch . To post the financial statements in batch, click
Retail and Commerce > Retail and Commerce IT > POS Posting > Post financial statements in
batch .

NOTE
The menu items Retail and Commerce > Retail and Commerce IT > POS Posting > Calculate statements in
batch and Retail and Commerce > Retail and Commerce IT > POS Posting > Post statements in batch are
removed with this new feature.

Alternately, transactional and financial statement types can be created manually. Go to Retail and Commerce >
Channels > Stores and click Statements . Click New and then choose the type of statement that you want to
create. Fields on the Statements page and actions under the Statement group of the page will show relevant
data and actions based on the selected statement type.
Create, calculate, and post statements for a retail
store
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the manual steps for creating, calculating, and posting a statement for a store. There are also
batch jobs that can be configured for the same tasks. The steps for configuring and running the batch jobs can be
found in other topics. To complete this procedure, you must have transactions that were completed in POS and
then pulled into Dynamics 365 Commerce. This recording uses the USRT company in demo data.
1. Select Store financials from the home page.
2. Select New statement .
3. In the Store number field, select a option from the drop-down.
4. Select OK .
5. The Setup group has the settings that control what transactions are included in the statement and how they are
grouped into statement lines. You can open the Setup group and change these settings, or you can use the
defaults.
The Statement method field defines how the statement lines will be grouped.
Select a staff member or a register in the staff/register field if you want to calculate a statement only
for the specific staff member or register.
6. In the Closing method field, select an option.
7. Select Calculate statement from the Action Pane.
8. Select Yes .
After calculating the statement, there should be lines created with total amounts for each payment
method and statement method that was used.
Enter a counted amount in each line if it needs to be entered or updated. The counted field is populated
with amounts from tender declarations done in POS.
9. Select Post statement from the Action Pane.
10. Select Close .
11. Close the pane.
12. At the home page, select Store financials .
13. Select the Posted statements tab.
Improvements to statement posting functionality
2/13/2020 • 14 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the first set of improvements that have been made to the statement posting feature. These
improvements are available in Microsoft Dynamics 365 for Finance and Operations 7.3.2.

Activation
By default, during deployment of Finance and Operations 7.3.2, the program is set up to use the legacy feature for
statement postings. To enable the improved statement posting feature, you must turn on the configuration key for
it.
Go to System administration > Setup > License configuration , and then, under the Retail and
Commerce node, clear the Statements (legacy) check box, and select the Statements check box.
When the new Statements configuration key is turned on, a new menu item that is named Statements is
available. This menu item lets you manually create, calculate, and post statements. Any statement that causes an
error when the batch posting process is used will also be available through this menu item. (When the Statements
(legacy) configuration key is turned on, the menu item is named Open statements .)
Commerce includes the following validations that are related to these configuration keys:
Both configuration keys can't be turned on at the same time.
The same configuration keys must be used for all the operations that are performed on a given statement during
its lifecycle (Create, Calculate, Clear, Post, and so on). For example, you can't create and calculate a statement
while the Statement (legacy) configuration key is turned on, and then try to post the same statement while the
Statement configuration key is turned on.

NOTE
We recommend that you use the Statements configuration key for the improved statement posting feature, unless you have
compelling reasons to use the Statements (legacy) configuration key instead. Microsoft will continue to invest in the new
and improved statement posting feature, and it's important that you switch to it at the earliest opportunity to benefit from it.
The legacy statement posting feature is deprecated starting in 8.0 release.

Setup
As part of the improvements to the statement posting feature, three new parameters have been introduced on the
Statement FastTab on the Posting tab of the Commerce parameters page:
Disable clear statement – This option is applicable only for the legacy statement posting feature. We
recommend that you set this option to No to prevent users from clearing statements that are in a semi-
posted state. If statements that are in a semi-posted state are cleared, data becomes corrupted. You should
set this option to Yes only in exceptional circumstances.
Reser ve inventor y during calculation – We recommend that you use the Post inventor y batch job for
inventory reservation, and that you set this option to No . When this option is set to No , the improved
statement posting feature doesn't try to create inventory reservation entries at the time of calculation (if
entries weren't already created through the Post inventor y batch job). Instead, the feature creates inventory
reservation entries only at the time of posting. This implementation was a design choice and was based on
the fact that the time window between the calculation process and the posting process is typically small.
However, if you want to reserve inventory at the time of calculation, you can set this option to Yes .
The legacy statement posting feature always reserves inventory during the statement calculation process (if
reservation wasn't already done through the Post inventor y batch job), regardless of the setting of this
option.
Disable counting required – When this option is set to Yes , the posting process for a statement continues,
even if the difference between the counted amount and the transaction amount on the statement is outside
the threshold that is defined on the Statement FastTab for stores.
Additionally, the following parameters have been introduced on the Batch processing FastTab on the Posting tab
of the Commerce parameters page:
Maximum number of parallel statement posting – This field defines the number of batch tasks that will be
used to post multiple statements.
Max thread for order processing per statement – This field represents the maximum number of threads
used by the statement posting batch job to create and invoice sales orders for a single statement. The total
number of threads that will be used by the statement posting process will be computed based on the value in
this parameter multiplied by the value in the Maximum number of parallel statement posting parameter.
Setting the value of this parameter too high can negatively impact the performance of the statement posting
process.
Max transaction lines included in aggregation – This field defines the number of transaction lines that will
be included in a single aggregated transaction before a new one is created. Aggregated transactions are created
based on different aggregation criteria such as customer, business date, or financial dimensions. It is important
to note that the lines from a single transaction will not be split across different aggregated transactions. This
means that there is a possibility that the number of lines in a aggregated transaction is slightly higher or lower
based on factors such as number of distinct products.
Maximum number of threads to validate store transactions – This field defines the number of threads
that will be used to validate transactions. Validating transactions is a required step that needs to occur before the
transactions can be pulled into the statements. You also need to define a Gift card product on the Gift card
FastTab on the Posting tab of the Commerce parameters page. This needs to defined even if gift cards are not
used by the organization.

NOTE
All settings and parameters that are related to statement postings, and that are defined on stores and on the Commerce
parameters page, are applicable to the improved statement posting feature.

Processing
Statements can be calculated and posted in batch using the menu items Calculate statements in batch and Post
statements in batch . Alternatively, statements can be manually calculated and posted by using the Statements
menu item that the improved statement posting feature provides.
The process and steps for calculating and posting statements in a batch are the same as they were in the legacy
statement posting feature. However, significant improvements have been made in the core back-end processing of
the statements. These improvements make the process more resilient, and provide for better visibility into the
states and error information. Therefore, users can address the root cause of errors and then continue the posting
process without causing data corruption and without causing data fixes to be required.
The following sections describe some of the major improvements for the statement posting feature that appear in
the user interface for statements and posted statements.
Status details
A new state model has been introduced in the statement posting routine across the calculation and posting
processes.
The following table describes the various states and their order during the calculation process.

STAT E O RDER STAT E DESC RIP T IO N

1 Started The statement was created and is ready


to be calculated.

2 Marked The transactions that are in scope for


the statement are identified based on
the statement parameters, and they are
marked with the statement ID.

3 Calculated The statement lines are computed and


shown.

The following table describes the various states and their order during the posting process.

STAT E O RDER STAT E DESC RIP T IO N

1 Checked Multiple validations are done that are


related to parameters (for example, the
disposition charge), and to the
statement and statement lines (for
example, the difference between the
counted amount and the transaction
amount).

2 Aggregated Sales transactions for named and


unnamed customers are aggregated
based on the configuration. Every
aggregated transaction is eventually
converted to a sales order.

3 Customer order created Based on the aggregated transaction,


sales orders are created in the system.

4 Customer order invoiced Sales orders are invoiced.

5 Discounts posted Periodic discount journals are posted


based on the configuration.

6 Income/expense posted Income/expense transactions are posted


as vouchers.

7 Vouchers linked Payment journals are created and linked


to the corresponding invoice.
STAT E O RDER STAT E DESC RIP T IO N

8 Payments posted Payment journals are posted.

9 Gift cards posted Gift card transactions are posted as


vouchers.

10 Posted The statement is marked as posted.

Every state in the preceding tables is independent in nature, and a hierarchical dependency is built between the
states. This dependency flows from top to bottom. If the system encounters any errors while it's processing a state,
the status of the statement is reverted to the previous state. Any subsequent reattempt of the process resumes from
the state that failed and continues to move forward. This approach has the following benefits:
The user has complete visibility into the state where the error occurred.
Data corruption is avoided. For example, in the legacy statement posting feature, there were instances where
some sales orders were invoiced but others were left open. There were also instances where some payment
journals didn't have a corresponding invoice to settle, because the invoice posting had an error.
Users can see the current state of a statement by using the Status details button in the Execution details
group of the statement. The status details page has three sections:
The first section shows the current status of the statement, together with the error code and a detailed
error message, if an error occurred.
The second section shows the various states of the calculation process. Visual cues indicate states that
have been successfully run, states that could not be run because of errors, and states that haven't yet been
run.
The third section shows the various states of the posting process. Visual cues indicate states that have
been successfully run, states that could not be run because of errors, and states that haven't yet been run.
Additionally, the header of the second and third sections shows the overall status of the relevant process.
Event logs
A statement goes through various operations (for example, Create, Calculate, Clear, and Post), and multiple
instances of the same operation might be called during the statement's lifecycle. For example, after a statement is
created and calculated, a user can clear the statement and calculate it again. The Event logs button in the
Execution details group of the statement provides a complete audit trail of the various operations that were called
on a statement, together with information about when those operations were called.
Aggregated transactions
During the posting process, the sales transactions are aggregated based on the configuration. These aggregated
transactions are stored in the system and used to create sales orders. Every aggregated transaction creates one
corresponding sales order in the system. You can view the aggregated transactions by using the Aggregated
transactions button in the Execution details group of the statement.
The Sales order detail tab of an aggregated transaction shows the following information:
Record ID – The ID of the aggregated transaction.
Statement number – The statement that the aggregated transaction belongs to.
Date – The date when the aggregated transaction was created.
Sales ID – When a sales order is created from the aggregated transaction, the sales order ID. If this field is blank,
the corresponding sales order hasn't been created.
Number of aggregated lines – The total number of lines for the aggregated transaction and sales order.
Status – The last status of the aggregated transaction.
Invoice ID – When the sales order for the aggregated transaction is invoiced, the sales invoice ID. If this field is
blank, the invoice for the sales order hasn't been posted.
The Transaction details tab of an aggregated transaction shows all the transactions that have been pulled into the
aggregated transaction. The aggregated lines on the aggregated transaction show all the aggregated records from
the transactions. The aggregated lines also show details such as the item, variant, quantity, price, net amount, unit,
and warehouse. Basically, each aggregated line corresponds to one sales order line.
From the Aggregated transactions page, you can download the XML for a specific aggregated transaction by
using the Expor t sales order XML button. You can use the XML to debug issues that involve sales order creation
and posting. Just download the XML, upload it to a test environment, and debug the issue in the test environment.
The functionality for downloading the XML for aggregated transactions isn't available for statements that have been
posted.
The aggregated transaction view provides the following benefits:
The user has visibility into the aggregated transactions that failed during sales order creation and the sales
orders that failed during invoicing.
The user has visibility into how transactions are aggregated.
The user has a complete audit trail, from transactions, to sales orders, to sales invoices. This audit trail wasn't
available in the legacy statement posting feature.
Aggregated XML file make it easier to identify issues during sales order creation and invoicing.
Journal vouchers
The Journal vouchers button in the Execution details group of the statement shows all the various voucher
transactions that are created for a statement, and that are related to discounts, income/expense accounts, gift cards,
and so on.
Currently, the program shows this data only for posted statements.
Payment journals
The Payment journals button in the Execution details group of the statement shows all the various payment
journals that are created for a statement.
Currently, the program shows this data only for posted statements.

Other improvements
Other, back-end improvements that users can see have been made to the statement posting feature. Here are some
examples:
The aggregation doesn't consider the staff, terminal, and shift entities. Because there are fewer aggregation
parameters, fewer sales order lines must be processed.
The occurrence of deadlock on transaction tables is reduced by introducing additional extension tables and by
doing insert operations instead of update operations on the transaction tables.
The number of running batch tasks has been parameterized and limited. Therefore, this number can be fine-
tuned specifically to a customer's environment. In the legacy statement posting feature, an unlimited number of
batch tasks was created at the same time. The results were unmanageable loads, overhead, and bottlenecks on
the batch server.
Statements are efficiently queued for processing by prioritizing the statements that have the maximum number
of transactions.
Batch processes such as Calculate statements in batch and Post statements in batch are run only in batch
mode. In the legacy statement posting feature, users could choose to run these batch processes in an interactive
mode which is s single threaded operation unlike batch processes which are multi-threaded.
In the legacy statement posting feature, any failure of a batch task put the whole batch job in an error state. In
the improved feature, batch task failures don't put the batch job in an error state if other batch tasks are
successfully completed. You should assess the posting status for a batch execution run by using the Statements
page, where you can see any statements that weren't posted because of errors.
In the legacy statement posting feature, the first occurrence of a statement failure causes the whole batch to fail.
The remaining statements aren't processed. In the improved feature, the batch process continues to process all
statements, even if some of the statements fail. One benefit is that users gain visibility into the exact number of
statements that have errors. Therefore, users don't have to be stuck in a continuous loop of fixing the errors and
running the post statement process till all statements are posted.

General guidance about the statement posting process


We recommend that you run the statement posting process in a batch, because batch runs take advantage of
the power of the batch framework in terms of multithreading. Multithreading is required in order to handle
the huge volumes of transactions that are normally seen in statement postings.
We recommend that you turn on negative physical inventory on the item model group, so that you have a
seamless posting experience. In some scenarios, negative statements might not be able to be posted unless
there is negative physical inventory. For example, in theory, if there is only one unit of an item in inventory,
and there have been a sales transaction and a return transaction for the item, the transaction should be able
to be posted even if negative inventory isn't turned on. However, because the statement posting process
pulls both the sales transaction and the return transaction in a single customer order, there is no guarantee
that the sales line will be posted first, followed by the return line. Therefore, errors can occur. If negative
inventory is turned on in this scenario, the transaction posting isn't negatively affected, and the system will
correctly reflect the inventory.
We recommend that you use aggregation while you calculate and post statements. Therefore, the following
settings are recommended for some of the aggregation parameters:
Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters .
Then, on the Posting tab, on the Inventor y update FastTab, in the Detail level field, select Summar y .
Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters .
Then, on the Posting tab, on the Aggregation FastTab, set the Voucher transactions option to Yes .
Improved handling of batch-tracked items
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

In Point of Sale (POS), batch numbers can't be captured for batch-tracked items at the time of sale. However, for
specific configurations, when sales are posted in the headquarters through customer orders or statement posting,
the Microsoft Dynamics system expects that valid batch numbers for batch-tracked items exist, and that they will be
used during the invoicing process.
If valid batch numbers are available for products, the customer order invoicing process and the sales order
invoicing process from statement posting use them. Otherwise, the customer order invoicing process can't post,
and the POS user receives an error message. Statement posting then goes into an error state. This error state
occurs even when negative inventory has been turned on for the products.
Improvements that have been made in Retail version 10.0.4 and later help guarantee that, when negative inventory
is turned on for batch-tracked items, customer order invoicing and sales order invoicing through statement posting
aren't blocked for those items if the inventory is 0 (zero) or a batch number isn't available. The new functionality
uses a default batch ID for the sales lines when batch numbers aren't available.
To define the default batch ID that is used for customer orders, on the Commerce parameters page, on the
Customer orders tab, on the Order FastTab, set the Default batch id field.
To define the default batch ID that is used for sales order invoicing through statement posting, on the Commerce
parameters page, on the Posting tab, on the Inventor y update FastTab, set the Default batch id field.

NOTE
This functionality is available only when advanced warehousing is turned on for the specific store warehouse and items. In a
later release, the functionality will also be supported for scenarios where advanced warehouse management isn't used.

NOTE
Support for improved handling of batch-tracked items during statement posting for non-advanced warehouse management
scenarios was introduced in Retail version 10.0.5.
Configure parameters that affect retail statements
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic demonstrates configurations for Commerce parameters that affect how statements get created and
posted. This procedure uses the USRT demo company.
1. In the navigation pane, go to Modules > Retail and Commerce > Headquar ters setup > Parameters >
Commerce parameters .
2. Select the Posting tab.
Select Yes if you want to post the periodic discount amounts specifically.
Select Standard to use default accounts, or select Periodic if you want to define which account to use
for each periodic discount.
Select Summar y if inventory lines should get aggregated whenever possible.
Select Yes if Invoices and Payments should get automatically settled as part of the Statement
posting process.
Select Yes if Safe drop transactions should get aggregated.
Select Yes if Bank drop transactions should get aggregated.
Select Yes to turn aggregation on for Statement posting.
Select Yes to create and process orders in parallel when statements are posted.
Enter the maximum orders to be processed in each batch job task.
3. Select Save .
Payment configurations for Retail statements
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure demonstrates configurations for Commerce store payment methods, which affect how statements
get created and posted.
This recording uses the USRT demo company.
1. Go to Retail and Commerce > Channels > Stores > All stores.
2. In the list, find and select the desired record.
3. In the list, click the link in the selected row.
4. On the Action Pane, click Set up.
5. Click Payment methods.
6. Expand or collapse the Posting section.
7. Click Edit.
Select whether the amounts received for this payment method should be posted to a ledger account or
bank account.
Select the account that amounts received for this payment method should be posted to.
Select an account to post possible differences between the total transaction amount received and the
amount counted for this payment method.
In this field you can enter an amount to control when the difference amount should be posted to another
difference account. You can use this to track big differences.
Select an account to post possible differences between the total transaction amount received and the
amount counted, when it exceeds the value that is defined in the "Maximum difference amount" field.
Select "Yes" to post bank drop amounts to a separate account.
In this field you can select whether bank drop amounts should be posted to a ledger account or a bank
account.
Select the account to post bank drop amounts into.
Select the bank transaction type to use when posting bank drop amounts to the bank account.
Select "Yes" to post safe drop amounts to a separate account.
Select whether safe drop amounts should be posted to the ledger account or the bank account.
Select the account to post safe drop amounts into.
8. Click Save.
Configure and run job to calculate statements
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through configuring and running recurrent batch jobs to create and calculate statements for a
selected store or group of stores. This procedure uses the USRT company in demo data.
1. Go to All workspaces > Store financials.
2. Click Calculate statements.
Select either a specific store, or a node if you want to create the batch job for a group of stores.
Click the arrow to add your selection.
3. Click the Run in the background tab.
4. Under Batch processing, select 'Yes'.
5. Click Recurrence.
6. In the Start date field, enter a date.
7. In the Start time field, enter a time.
8. Select the No end date option.
9. In the PatternUnit field, enter 'Days'.
10. In the Per field, enter a number.
11. Click OK.
12. Click OK.
Configure and run job to post statements
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through configuring and running a recurrent batch job to post statements for a selected store
or group of stores. This procedure uses the USRT company in demo data.
1. Go to All workspaces > .. > Store financials.
2. Click Post statements in batch.
Select an organizational hierarchy and then in the organization nodes tree, select either an individual
store or a node. Select a node if you want to create the batch job for a group of stores.
Click the arrow to add your selection.
3. Click the Run in the background tab.

4. Check or uncheck the Batch processing checkbox.


5. Click Recurrence.
6. In the Start date field, enter a date.
7. In the Start time field, enter a time.
Choose whether you want to end the recurrence after a specific number of runs, at a specific date, or
never. Then choose the various options to define how frequently you want the job to run.
8. Click OK.
9. Click OK.
Store configurations for Retail statements
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through configurations for the store that affect how Commerce statements get created and
posted. Financial dimensions on stores are covered in another procedure. This procedure uses the USRT demo
company.
1. In the Navgiation pane , go to Modules > Retail and Commerce > Channels > Stores > All stores .
2. In the list, find and select the desired record.
3. In the list, click the link in the selected row.
4. Click Edit .
5. The settings in the Statement/closing fastTab affect the statement creation, validation, and posting for the
store. Expand the Statement/closing fastTab.
6. In the Statement method field, select the method you want to use to to group the statement lines by.
7. Select "Yes" in One statement per day if there should only be one statement created per day when creating
statements from the statement creation batch job.
8. The Tender declaration calculation field defines whether tender declarations should be added together or if
the last one should be used.
9. In the Rounding field, select the ledger account to post rounding differences into.
10. In the Maximum rounding difference field, enter the maximum rounding difference allowed.
11. In the Posting field, enter the maximum total posting difference allowed for a statement.
12. In the Shift field, enter the maximum total difference within a shift in a statement.
13. In the Transaction field, enter the maximum total difference in a statement line.
14. In the Closing method field, define whether transactions that will be included in a statement should be part of
a closed shift or if they can be any transactions within the defined date/time range.
15. In the End of business day field, enter a time if transactions that happen after midnight should be posted with
the previous day.
16. Select "Yes" in Post as business day if transactions that happen after midnight should be posted as part of the
previous day.
17. Select "Yes" in Split by Statement method to get statements created for each statement method defined. This
can be useful if the performance of the posting needs to be improved for stores with high transaction volumes
since it will create many smaller statements that can be processed in parallel.
18. In the General fastTab, in the Default customer field, you can select the customer account to use for sales to
walk-in customers.
Posting of online sales and payments
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This procedure walks through configuring and running a recurrent batch job to create sales orders and payments
for online store transactions.
Posting online sales and payments is a two-stage process.
Pulling the online commerce transaction data in HQ.
Synchronizing orders to create sales orders in HQ.
Pulling the online transaction data can be done either by manually running the P-job or by creating a recurrent
batch job.
Manually running the P-job
1. Go to All workspaces > Retail and Commerce IT.
2. Click Distribution schedule.
3. Select P-0001.
4. Adjust channel database groups, if required.
5. Click Run now.
6. Click Yes.
Scheduling a recurring P-job
1. Go to All workspaces > Retail and Commerce IT.
2. Click Distribution schedule.
3. Select P-0001.
4. Click Create batch job.
5. Click Run in the background.
6. Enable Batch processing.
7. Click Recurrence..
8. Select the No end date option.
9. In the Count field, enter interval between the runs in minutes. Typically this would be 5-10.
10. Click OK.
11. Click OK.
Orders can be synchronized either by manually running the "Synchronize orders"-job or by creating a recurring
batch job.
Manually running order synchronization
Follow these steps to manually run "Synchronize orders" job once.
1. Go to All workspaces > Store financials.
2. Click Synchronize orders.
3. In the Organization hierarchy field, select 'Stores by Region'.
Select either a specific online store, or select a node if you want to create the batch job for a group of
stores.
Click the arrow to add your selection.
4. Click the Run in the background tab.
5. Disable Batch processing
6. Click Recurrence.
7. Select End After option
8. In the End After field, enter 1.
9. Click OK.
10. Click OK.
Scheduling recurring order synchronization
This procedure walks through configuring and running a recurrent batch job to create sales orders and payments
for online store transactions. This procedure uses the USRT company in demo data.
1. Go to All workspaces > Store financials.
2. Click Synchronize orders.
3. In the Organization hierarchy field, select 'Stores by Region'.
Select either a specific online store, or select a node if you want to create the batch job for a group of
stores.
Click the arrow to add your selection.
4. Click the Run in the background tab.
5. Enable Batch processing
6. Click Recurrence.
7. Select the No end date option.
8. In the Count field, enter interval between the runs in minutes. Typically this would be 2-20
9. Click OK.
10. Click OK.

Data entities involved in the process


RetailTransactionTable
RetailTransactionAddressTrans
RetailTransactionInfocodeTrans
RetailTransactionTaxTrans
RetailTransactionSalesTrans
RetailTransactionTaxMeasure
RetailTransactionDiscountTrans
RetailTransactionTaxTransGTE
RetailTransactionMarkupTrans
RetailTransactionPaymentTrans
RetailTransactionAttributeTrans
Task management overview
2/11/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of task management for managers and workers in Microsoft Dynamics 365
Commerce.

Overview
In a retail environment, it's always difficult to make sure that tasks are performed by the right person at the right
time. Retailers must be able to notify workers about upcoming tasks and provide related business context, so that
the tasks can be completed correctly and on time.
Task management is a productivity feature in Dynamics 365 Commerce that lets managers and workers create task
lists, manage assignment criteria, track task status, and integrate these operations between Commerce back office
and point of sale (POS) applications.
Headquarters personas can use task management to create task lists for retail stores, and to track status by store
or worker. They can also create recurrent tasks (for example, "Thursday night closing checklist").
Store managers can use task management to assign tasks to individual workers, send notifications about
upcoming tasks or tasks that are past due, update task status, and create single-purpose tasks in the POS
application. Workers can then see notifications, view task details, and update task status at the POS.
The following illustration shows the conceptual architecture of task management in Commerce.

Additional resources
Configure task management
Create task lists and add tasks
Assign task lists to stores or employees
Task management in POS
Configure task management
2/11/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to configure task management features in Microsoft Dynamics 365 Commerce.

Overview
Before Dynamics 365 Commerce managers and employees can use the task management features in Commerce,
task management must be configured. Configuration steps include granting permissions to managers and
employees, distributing permissions to point of sale (POS) clients, setting up POS notifications, and configuring the
Tasks tile on the home page of a POS application.

Configure permissions for store managers


Every worker in a given store can view all tasks that are assigned to that store. They can also update the status of
the tasks that are assigned to them. However, personas such as store managers must have task management
permissions to manage tasks that are assigned to the store and to create single-purpose tasks.
To configure task management permissions for store managers, follow these steps.
1. Go to Retail and Commerce > Employees > Permission groups .
2. Select a specific permission group (for example, Manager ), and then select Edit .
3. On the Permissions FastTab, set the Allow task management option to Yes .
4. On the Notifications FastTab, add the Task management operation, and enter a value in the Display order
field. For example, enter 2 if the Order fulfillment operation already has a Display order value of 1 .

NOTE
If a non-manager persona must have task management permissions in the POS, you can grant permission to the individual.
Alternatively, you can create a new permission group for non-managers and set the Allow task management option to
Yes .

The following illustration shows how to configure task management permissions for store managers.
Configure permissions for employees
Employees must have permissions to create task lists, manage assignment criteria, and configure the recurrence of
any task list. To configure these permissions, you assign employees to the Retail task manager role.
To configure permissions for an employee, follow these steps.
1. Go to Retail and Commerce > Employees > Users .
2. Select an employee.
3. On the User's roles FastTab, select Assign roles .
4. In the Assign roles to user dialog box, select the Retail task manager role, and then select OK .

Distribute permissions to POS clients


Before employees can use POS clients, permissions must be distributed and synced to those clients.
To distribute permissions to POS clients, follow these steps.
1. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
2. Select the 1060 (Staff ) distribution schedule, and then select Run now .
3. Select the 1070 (Channel configuration ) distribution schedule, and then select Run now .

Configure POS notifications for tasks


Task management must be configured so that notifications are available in the POS application.
To configure POS notifications for tasks, follow these steps.
1. Go to Retail and Commerce > Channel setup > POS setup > POS > POS operations .
2. Find operation 1400 (Task management ), and select the Enable notifications check box for it.
The following illustration shows the Task management operation on the POS operations page.
For more information about how to configure POS notifications, see Show order notifications in the point of sale
(POS).

Configure the Tasks tile on a POS application home page


Before you configure the Tasks tile on the home page of a POS application, see Screen layouts for the point of sale
(POS) for information about how to configure and add new buttons to a POS screen layout.
To configure the Tasks tile on a POS application home page, follow these steps.
1. Go to Retail and Commerce > Channel setup > POS setup > POS > Screen layouts .
2. Select a screen layout, select a layout size, and select a button grid.
3. On the Button grids FastTab, select Designer to edit the selected button grid.
4. Add a Tasks tile to the appropriate section of the home page.
The following illustration shows an example of a Tasks tile on a POS home page.

Additional resources
Task management overview
Create task lists and add tasks
Assign task lists to stores or employees
Task management in POS
Create task lists and add tasks
2/11/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create task lists and add tasks to them in Microsoft Dynamics 365 Commerce.

Overview
A task defines a specific piece of work or an action that someone must complete on or before a specified due date.
In Dynamics 365 Commerce, a task can include detailed instructions and information about a contact person. It can
also include links to back-office operations, point of sale (POS) operations, or site pages, to help improve
productivity and provide the context that the task owner requires to complete the task efficiently.
A task list is a collection of tasks that must be completed as part of a business process. For example, there might
be a task list that a new worker must complete during onboarding, a task list for cashiers who work evening shifts,
or a task list that must be completed to prepare the store for an upcoming holiday season. In Commerce, every
task list that has a target date can be assigned to any number of stores or employees, and it can be configured to
recur.
Both managers and workers can create task lists in Commerce back office, and then assign them to a set of stores.

Create a task list


To create a task list, follow these steps.
1. Go to Retail and Commerce > Task management > Task management administration .
2. Select New , and then enter values in the Name , Description , and Owner fields.
3. Select Save .

Add tasks to a task list


To add tasks to a task list, follow these steps.
1. On the Tasks FastTab of an existing task list, select New to add a task.
2. In the Create a new task dialog box, in the Name field, enter a name for the task.
3. In the Due data offset from target date field, enter a positive or negative integer value. For example, enter -
2 if the task should be completed two days before the task list's due date.
4. In the Notes field, enter detailed instructions.
5. In the Contact person field, enter the name of a subject matter expert that the task owner can contact if he or
she needs help.
6. In the Task link field, enter a link, based on the nature of the task.
TIP
Although you can use the Assigned to field to assign tasks to someone while you're creating a task list, we recommend
that you avoid assigning tasks during task list creation. Instead, assign the tasks after the list is instantiated for individual
stores.

Use task links to help improve worker productivity


Commerce lets you link tasks to specific POS operations, such as running a sales report, viewing an online training
video for new employee orientation, or performing a back-office operation. This feature helps task owners get the
information that they need to complete a task efficiently.
To add task links while you create a task, follow these steps.
1. On the Tasks FastTab of an existing task list, select Edit .
2. In the Edit task dialog box, in the Task link field, select one or more of the following options:
Select Menu item to configure a back-office operation, such as "Product kits."
Select POS Operation to configure a POS operation, such as "Sales reports."
Select URL to configure an absolute URL.
The following illustration shows the selection of task links in the Edit task dialog box.

Configure a POS operation so that it can be linked to a task


To configure a POS operation so that it can be linked to a task, follow these steps.
1. Go to Retail and Commerce > Channel setup > POS setup > POS > POS operations .
2. Select Edit , find the POS operation, and then select the Enable Task Management check box for it.

Additional resources
Task management overview
Configure task management
Assign task lists to stores or employees
Task management in POS
Assign task lists to stores or employees
2/11/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to assign task lists to stores or employees in Microsoft Dynamics 365 Commerce.

Overview
Task management in Dynamics 365 Commerce lets you assign a task list to multiple stores or employees, or to a
combination of stores and employees. For example, a regional manager for 20 stores might want to assign the
Holiday season preparation task list to all 20 stores.

Start the task list assignment process


To start the process of assigning a task list, follow these steps.
1. Go to Retail and Commerce > Task management > Task management administration .
2. Select the task list to assign.
3. Select Star t process .
4. In the Star t process dialog box, on the General tab, in the Process name field, enter a name (for
example, East region stores ).
5. In the Target date field, specify a date.
6. To assign the task list to stores, on the Stores tab, use the Organization hierarchy filter to find and select
the stores.
To assign the task list to employees, on the Workers tab, find and select the employees.
7. Select OK to start the process. The tasks list is assigned to the selected stores or employees.
The following illustration shows an example of how to find and select stores in the Star t process dialog box.
Assign task lists on a recurring basis
Retailer sometimes have recurrent tasks, such as "Thursday closure checklist" or "First day of the month checklist."
Therefore, they might want to assign the task list on a recurring basis.
1. Go to Retail and Commerce > Task management > Task management administration .
2. Select the task list to assign.
3. Select Star t process .
4. In the Star t process dialog box, on the General tab, in the Process name field, enter a name.
5. Set the Recurrence option to Yes .
6. In the Recurrence target date offset in days field, enter a number of days. For example, if you enter 4 , the
target date is the recurrence date plus four days.
7. On the Run in the background tab, select Recurrence .
8. In the Define recurrence dialog box, enter the frequency criteria, and then select OK .
The following illustration shows an example of how to enter frequency criteria in the Define recurrence dialog
box.
Track task list status
If you're a regional manager or store manager, you might want to track the status of task lists that have been
assigned to multiple stores or employees. You can then follow up with stores or workers that didn't complete their
assigned tasks on time. Commerce back office lets you view the status of task lists, reassign tasks, or change the
status of a task.
To track the task list status for all tasks, follow these steps.
1. Go to Retail and Commerce > Task management > Task management processes .
2. Select the All task lists tab to view the status of all task lists that are assigned to various stores.
To track the task list status for all tasks that are assigned to you, follow these steps.
1. Go to Retail and Commerce > Task management > Task management processes .
2. Select the My tasks or All tasks tab to view or update the status of tasks that are assigned to you.

Additional resources
Task management overview
Configure task management
Create task lists and add tasks
Task management in POS
Task management in POS
2/11/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes task management in the Microsoft Dynamics 365 Commerce point of sale (POS) application.

Overview
The Dynamics 365 Commerce POS application has task management features that let store managers and
workers manage tasks and update task status. Store workers can access tasks either by selecting the Tasks tile on
the POS home page or by selecting task notifications. By default, store workers are taken to the My tasks tab,
where they can view the tasks that are assigned to them. However, they can easily switch to the Overdue tasks ,
Open tasks , and Task lists tabs.

Task operations for store managers


Store managers can perform the following task operations in the POS application by using the buttons on the
command bar:
Assign – Assign selected tasks to a store worker.
Task status – Change the status of selected tasks.
Filter – By default, only active tasks are shown. However, by applying filters, managers can view all tasks, even
tasks that have been completed or canceled.
New task – Create a task under an existing task list, or create an single-purpose task.
Store workers can perform the following task operations in the POS application by using the buttons on the
command bar:
Task status – Change the status of selected tasks.
Filter – By default, only active tasks are shown. However, by applying filters, workers can view all tasks, even
tasks that have been completed or canceled.
The following illustration shows the My tasks tab in the Commerce POS application.
The following illustration shows the Task lists tab.

Additional resources
Task management overview
Configure task management
Create task lists and add tasks
Assign task lists to stores or employees
Online store overview
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic introduces the concept of an online store and explains how online stores are used in Microsoft Dynamics
365 Commerce. It also provides a link to more information about online stores and information about how to set
up an online store.
Before you can build your site in Dynamics 365 Commerce, at least one online store must be set up. In Dynamics
365 Commerce, you use an online store to establish the products, pricing, languages, payment methods, delivery
modes, fulfillment centers, and other aspects of the online experience that should be available to your customers.
Only one online store has to be set up before you can get started with Dynamics 365 Commerce. However, a single
Dynamics 365 Commerce site can provide the online experience for multiple online stores. For example, if multiple
online stores are set up to support different geographical regions, a single set of pages can be used to provide the
unique experiences that are defined by each store. For more information about how to configure a site to support
multiple online stores, see Associate an online site with a channel.
After an online store is set up, it can be associated with the Dynamics 365 Commerce site that will serve as your
online storefront. For more information about online stores and how to set them up, see Set up online stores.

Additional resources
Create an e-Commerce site
Deploy a new e-Commerce site
Associate an online site with a channel
Configure your domain name
Add support for a content delivery network (CDN)
Enable location-based store detection
Set up custom pages for user logins
Configure your domain name
3/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to configure a domain name for a Microsoft Dynamics 365 e-commerce site.

Add domains during e-Commerce initialization


To associate domains with your e-commerce environment, initialize e-Commerce as described in Deploy a new e-
Commerce site. During initialization, you're asked to provide information that will be used to provision your e-
Commerce environment. In the Suppor ted host names field, add all the domains that you plan to use with this
environment. Multiple domains should be separated with semi-colon. In this way, the domains are configured in
all the required e-Commerce components, and they are ready to be used when you switch traffic from your
content delivery network (CDN) or web server and point it to the e-Commerce front ends.

Add domains after e-Commerce initialization


To associate new domains with your e-Commerce environment after e-Commerce initialization, you must submit
a service request.

Additional resources
Deploy a new e-Commerce site
Set up an online store channel
Create an e-Commerce site
Associate an online site with a channel
Manage robots.txt files
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Set up custom pages for user logins
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Enable location-based store detection
Deploy a new e-Commerce tenant
4/17/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to deploy a new e-Commerce site by using Microsoft Dynamics Lifecycle Services (LCS).

Overview
Microsoft Dynamics Lifecycle Services (LCS) is a cloud-based collaborative workspace that partners and
customers can use to manage their projects and environments, view the latest information about Microsoft
Dynamics products and features, and create, track, and browse support incidents. E-Commerce management
features are integrated into LCS.
To learn more about LCS, see the Lifecycle Services User Guide.

Get started
Before you can initialize e-Commerce, you must initialize a project, an environment, and a Retail Cloud Scale Unit
(RCSU). To do the initialization in LCS, you must have permissions for either the Project Owner or Environment
manager role. The production and sandbox environment topologies are supported.
For more information about environments, see Environment planning. For more information about RCSU, see
Initialize Retail Cloud Scale Unit.

Initialize e-Commerce
Use this procedure to initialize the e-Commerce feature in an existing environment.
Before you begin, make sure that you have the following required information:
The RCSU that will be used.
The Microsoft Azure Active Directory security group that will be used for e-Commerce system admins.
The Microsoft Azure Active Directory security group that will be used for ratings and reviews moderators.
The domains that will be associated with the environment.
In addition, you can collect the following optional information:
Azure AD business-to-consumer (B2C) information:
Tenant Name.
Client ID.
Login Custom Domain.
Reply URL.
SignUp SignIn Policy ID.
Reset password Policy ID.
Edit Profile Policy ID.
NOTE
This information can be added later, through a service request.

After you've collected the required information, follow these steps to initialize e-Commerce.
1. Sign in to LCS.
2. Open the project that contains the environment where you want to initialize e-Commerce.
3. In the Environments section, select the environment.
4. Under Environment features , select the Retail manage link.
5. On the e-Commerce tab, select Setup . A dialog box appears, where you must enter the information that is
required for provisioning.
6. Fill in the required information, and then go to the next page.
7. On the next page, fill in the required information, and then submit the form. You're returned to the e-
Commerce tab, where you should see that initialization has been started.
8. To view the initialization status, either Refresh or return to the e-Commerce tab later.
When e-Commerce is initialized from LCS, the system provisions several components that are required for e-
Commerce and associates them with the environment. After provisioning is complete, the e-Commerce tab on
the Retail management page is updated to reflect the provisioning. The page shows the latest customization
deployments and the status of any other ongoing deployments. It also includes links to the e-Commerce site and
the e-Commerce site builder where sites are authored.

Access site builder


To access site builder, go to the e-Commerce tab on the Retail management page in LCS and select the e-
Commerce site management tool link. The site builder landing page displays a tenant-level view. From this
page, you can:
Modify tenant-level settings.
Navigate to any site you have created, and have permission to view.
Access Reviews features such as moderation and reporting.
Create a new site. For more information about how to create a new site, see Create an e-Commerce site .

Additional resources
Configure your domain name
Create an e-Commerce site
Set up an online store channel
Associate an online site with a channel
Manage robots.txt files
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Set up custom pages for user logins
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Enable location-based store detection
Set up an online store channel
3/3/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article provides information about online store channels and how to set them up in Dynamics 365
Commerce.
Commerce supports multiple retail channels. These channels include online stores, call centers, and retail stores
(also known as brick-and-mortar stores). Online stores give an online presence to a retailer, so that customers can
purchase products from the retailer's online store in addition to its retail stores. If customers purchase products
from the online store, those products can be shipped to them, or the customers can pick the products up at a local
store.
You create an online store in the Commerce client. This online store is then published to a third-party online store
that is integrated with Commerce. The third-party online store serves as the storefront (UI) for the online store,
and gives you a choice of customer management system (CMS) and UI capabilities. Several integrations of this
type are available.
The properties that you define for the online store control the behavior of the online store. For example, you
define the navigation category hierarchy and assign it to the online store. When you publish the online store to
the third-party online store, the navigation category hierarchy appears in the online version of the store. Shoppers
then use the navigation category hierarchy to browse the online store and search for products.
To create an online store, you must set up the components that enable transactions to be processed for the store.
For example, you must add assortments, apply attributes, and set up payment methods and shipping methods.
You can also define prices, promotions, discounts, trade agreements, and shipping terms that are specific to the
online store.
After you publish the online store to the third-party online store, you can create product catalogs for the online
store. The products in the catalog become product listings in the online store. When a shopper purchases products
from the online store, the available inventory is updated and synchronized in the client. Additionally, sales orders
are generated for the purchases, and are sent to the client for order fulfillment and processing.

Set up an online store


To set up an online store, you must complete the following tasks.
1. Create the online store.
2. Add the online store to the appropriate organization hierarchies.
3. Add assortments that include the products that are available in the online store.
4. Assign or create price groups for the online store.
5. Set up the modes of delivery that are available for the online store.
6. Assign the payment methods that are accepted by the online store.
7. If you allow shoppers to order products online and then pick them up at a local store, assign store locator
groups to the online store.
8. Assign attributes for channels, products, and sales orders to the online store. Channel attributes apply to
the whole online store, product attributes apply to the products that are offered in the online store, and
sales order attributes apply to the sales orders that are generated from the online store.
9. Map attributes to define the properties that determine how those attributes behave in the online store. For
example, attributes can be defined as required or searchable.
10. Publish the online store to generate the store structure on your choice of third-party online store.

IMPORTANT
Before you publish the online store, you must set up a distribution location for it.

Commerce channel navigation hierarchies


Before you create an online store, you must define the commerce channel navigation hierarchy that you want to
use for it. The channel navigation hierarchy represents the category hierarchy that is displayed in the online store
after the store is published. When you publish product catalogs to the online store, the products in the catalog are
mapped to the categories in the channel navigation hierarchy. Shoppers then use the hierarchy to navigate in the
online store.

Organization hierarchies
Organization hierarchies are used to structure commerce channels and to represent the relationships between the
organizations that make up your business. When you set up online stores, you can add them to an organization
hierarchy. The stores then share the data that is used for assortments, replenishment, and reporting.
When you create an organization hierarchy, you assign a purpose to it. The purpose indicates how the hierarchy is
used in the business structure. You can create one organization hierarchy for your store operations, and use that
hierarchy for assortments, replenishment, and reporting.
Alternatively, you can create a separate organization hierarchy for each purpose. You can also create multiple
hierarchies that have the same purpose, and assign a separate channel to each one. If you plan to publish product
catalogs to the online store, you should, at a minimum, add the online store to an organization hierarchy for
assortments. The products in a catalog are selected from the assortments that are assigned to the online store.
When the catalog is published, the publishing process compares the effective dates for the assortment that is
assigned to the online store with the products that are included in the catalog to determine which products to
make available in the online store.

Additional resources
Configure your domain name
Deploy a new e-Commerce site
Create an e-Commerce site
Associate an online site with a channel
Manage robots.txt files
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Set up custom pages for user logins
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Enable location-based store detection
Create an e-Commerce site
3/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the steps and information required to create a new e-Commerce site in Dynamics 365
Commerce site builder.
Before you can start developing your e-Commerce site, you must first establish a new site in site builder.
To start to develop your e-Commerce site, you must first establish a new site in the site authoring environment.
Before you can create a new site, at least one online store must be created in Commerce.

Set up your site


To set up your site, do the following.
1. Open the site builder environment. You can find a link to site builder in Microsoft Lifecycle Services (LCS) in
the environment features page for Commerce.
2. On the home page for the site authoring environment, select New site .
3. In the New site dialog box, provide the following information.

F IEL D DESC RIP T IO N

Site name Enter the display name that should be used for your site in
the site authoring environment. This name is visible only in
the authoring environment and will not be shown to
customers.

Site administrator's security group Specify the Microsoft Azure Active Directory (Azure AD)
security group that manages users who have the site
administrator role in this site.

Default channel (operating unit number) Select the online store that this site will serve as the web
storefront for. If you want your e-Commerce site to support
multiple online stores, you must associate the stores with
your site in Site settings after the site is set up.

Default language Specify the default language for this online store and market.
An online store can support multiple languages. If you want
to support multiple languages for this online store or
another online store, you can configure that support in Site
settings after the site is set up.

Domain Select a domain name that will serve as the domain for this
online store. If you haven't configured any domains in LCS,
you can leave this field blank. After your domain is
configured in LCS, you must add it to your online store in
Site settings .
F IEL D DESC RIP T IO N

Path When your site supports more than one language for a
given domain name, use the path field to create a unique site
URL for that domain and language combination. If the
language you specified in the Default language field is the
only language you will support for this domain, or will
continue to be the default language after you have localized
your site into additional languages, we recommend that you
leave this field empty.

After your site is created, you can verify that it is associated with your online store by selecting the Products tab.
You should see the assortment of products that has been allocated to the online store. You can also use the drop-
down menu in the upper left of the page to access the allocated products by category.

Additional resources
Configure your domain name
Deploy a new e-Commerce site
Set up an online store channel
Associate an online site with a channel
Manage robots.txt files
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Set up custom pages for user logins
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Enable location-based store detection
Associate an e-Commerce site with an online
channel
3/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to bind your Microsoft Dynamics 365 Commerce site to one or more online stores.
After you've provisioned e-Commerce by using the Microsoft Dynamics Lifecycle Services (LCS) portal, you're
ready to establish your first e-Commerce website. As part of the initial site creation, you associate the site with an
online store that was previously created. This step binds the site to an online channel and lets the site show the
navigation hierarchy, products, categories, prices, shipping options, and everything else that you defined in the
online store.
To establish a new site and associate an online store with it, in LCS, select the link for the site authoring
environment. Then, on the page for the site authoring environment, select New site . In the New site dialog box,
you must provide some basic information about your site. For a complete explanation of the information that
you must provide, see Create a new e-Commerce site.
After your site is created, you can verify that it's associated with your online store by selecting the Products tab.
You should see the assortment of products that has been allocated to the online store. You can also use the drop-
down field in the upper left of the page to access the products by category.

Additional resources
Configure your domain name
Deploy a new e-Commerce site
Set up an online store channel
Create an e-Commerce site
Manage robots.txt files
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Set up custom pages for user logins
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Enable location-based store detection
Manage robots.txt files
3/3/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to manage robots.txt files in Microsoft Dynamics 365 Commerce.

Overview
The robots exclusion standard, or robots.txt, is a standard that websites use to communicate with web robots. It
instructs web robots about any areas of a website that should not be visited. Robots are often used by search
engines to index websites.
To exclude robots from a server, you create a file on the server. In this file, you specify an access policy for robots.
The file must be accessible via HTTP at the local URL /robots.txt . The robots.txt file helps search engines index
the content on your site.
Dynamics 365 Commerce lets you upload a robots.txt file for your domain. For each domain in your Commerce
environment, you can upload one robots.txt file and associate it with that domain.
For more information about the robots.txt file, visit The Web Robots Pages.

Upload a robots.txt file


After you've created and edited your robots.txt file according to the robots exclusion standard, make sure that the
file is accessible on the computer where you will use the Commerce authoring tools. The file must be named
robots.txt . For best results, it must be in the format that is noted in the standard. Each Commerce customer is
responsible for validating and maintaining the contents of its robots.txt file. To upload a robots.txt file, you must
be signed in to Commerce as a system admin.
To upload a robots.txt file in Commerce, follow these steps.
1. Sign in to Commerce as a system admin.
2. In the left navigation pane, select Tenant Settings (next to the gear symbol) to expand it.
3. Under Tenant Settings , select Robots.txt . A list of all the domains that are associated with your environment
appears in the main part of the window.
4. Select Manage to upload a robots.txt file for a domain in your environment.
5. On the menu on the right, select the Upload button (the upward-pointing arrow) next to the domain that is
associated with the robots.txt file. A file browser dialog box appears.
6. In the dialog box, browse to and select the robots.txt file that you want to upload for the associated domain,
and then select Open to complete the upload.

NOTE
During upload, Commerce verifies that the file is a text file, but it doesn't validate the file's contents.
Download a robots.txt file
To download a robots.txt file in Commerce, follow these steps.
1. Sign in to Commerce as a system admin.
2. In the left navigation pane, select Tenant Settings (next to the gear symbol) to expand it.
3. Under Tenant Settings , select Robots.txt . A list of all the domains that are associated with your environment
appears in the main part of the window.
4. Select Manage to download a robots.txt file for a domain in your environment.
5. On the menu on the right, select the Download button (the downward-pointing arrow) next to the domain
that is associated with the robots.txt file. A file browser dialog box appears.
6. In the dialog box, go to the desired location on your local drive, confirm or enter a file name, and then select
Save to complete the download.

NOTE
This procedure can be used to download only robots.txt files that were previously uploaded via the Commerce authoring
tools.

Delete a robots.txt file


To delete a robots.txt file in Commerce, follow these steps.
1. Sign in to Commerce as a system admin.
2. In the left navigation pane, select Tenant Settings (next to the gear symbol) to expand it.
3. Under Tenant Settings , select Robots.txt . A list of all the domains that are associated with your environment
appears in the main part of the window.
4. Select Manage to delete a robots.txt file for a domain in your environment.
5. On the menu on the right, select the Delete button (the trash can symbol) next to the domain that is
associated with the robots.txt file. A file browser window appears.
6. In the file browser window, browse to and select the robots.txt file that you want to delete for the domain, and
then select Open . A warning message box appears.
7. In the message box, select Delete to confirm deletion of the robots.txt file.

NOTE
This procedure can be used to delete only robots.txt files that were previously uploaded via the Commerce authoring tools.

Additional resources
Configure your domain name
Deploy a new e-Commerce site
Set up an online store channel
Create an e-Commerce site
Associate an online site with a channel
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Set up custom pages for user logins
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Enable location-based store detection
Upload URL redirects in bulk
3/3/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to implement URL redirects in bulk by uploading a redirect comma-separate values
(CSV) file in Microsoft Dynamics 365 Commerce.

Overview
After you've finished creating a new e-commerce site in Dynamics 365 Commerce, and it's ready to go live, you
must make the Domain Name System (DNS) switch from your old site to your new site. After you make this
switch, the URLs for the new site will likely differ from the URLs for the old site. For specific URLs, traffic that uses
the old URL can be redirected to the new URL. In this way, you ensure that site visitors reach the desired location.
Redirects help prevent broken links for your customers and help you maintain your established search engine
optimization (SEO) results.
Although redirects for individual links can be manually configured in DNS, manual configuration becomes
tedious if multiple links must be redirected. To streamline the redirect process, Commerce provides the capability
to upload a data file that contains bulk redirect mappings for your site. In the site settings in Commerce site
builder, your system admin can upload and publish a CSV file that handles bulk URL redirects.

Redirect CSV file


To handle URL redirects, Commerce supports a simple but specific CSV file. This file uses the following schema:
source URL, target URL, redirect type, case sensitivity

Here is an explanation of the elements of this schema:


Source URL : The original URL that must be redirected.
Target URL : The URL that users will be redirected to when they try to go to the source URL.
Redirect type : Set this value to 301 or 302 , depending on the type of redirect that you want to use.
The 301 redirect type represents permanent redirects and is the most frequently used redirect type. It's
the best option when you must maintain search engine optimization (SEO) rankings.
The 302 redirect type represents temporary redirects and is less frequently used. It's the best option
when you must maintain link targeting during temporary maintenance or other non-permanent
scenarios.
Case sensitivity : Set this value to true if your source URL paths are case-sensitive. Case sensitivity will
then be honored for the source URL paths. Set this value to false if case sensitivity isn't required. If you
leave this value blank, the default value of false is used.
The following example shows a set of redirect rows in a redirect CSV file.
https://www.oldsite.com/shop, https://www.newsite.com/allstores, 301, true

https://www.oldsite.com/news, https://www.newsite.com/updates, 301, false

https://www.oldsite.com/news, https://www.newsite.com/updates, 301

IMPORTANT
The following rules must be followed. Otherwise, the bulk URL redirects won't work correctly.
No header is allowed in the CSV file : The first or topmost row must start with the first redirect row.
There must be no circular entries : The source URL in a row must not be used as the target URL in the same row.
You must also avoid implementations where a target URL is linked back as a source URL, either in a different row of the
CSV file or in a DNS redirect.
Source and target URLs must be in valid URL format : No spaces or invalid characters can be used in URLs.
No quer y string URLs are suppor ted : Commerce won't run query strings that are provided as source or target
URLs.
The CSV file must be in valid CSV format : The CSV file must have comma-separated values, a separate line for
each redirect, and valid file formatting, and it must have no header.

Upload a redirect CSV file


Redirect CSV files can be uploaded by using Commerce site builder. The person who uploads a redirect CSV file
to a site must be an admin for that site.
To upload a redirect CSV file, follow these steps.
1. In Commerce site builder, go to the site that will receive the bulk URL redirects.
2. Go to Site settings > General .
3. Under URL Redirect Mapping , select Upload .
4. In File Explorer, browse to your CSV file, select it, and then select Open .
5. Under URL Redirect Mapping , set the option to On to activate the redirects.
6. On the command bar, select Save and Publish to commit the changes. Allow up to 15 minutes for the
redirects to take effect.

IMPORTANT
Only one bulk redirect CSV file can be loaded and active per site at any time.

Update an uploaded redirect CSV file


A previously uploaded redirect CSV file can be downloaded for reference. Alternatively, after the file is
downloaded, it can be edited and then uploaded again.
To update an uploaded redirect CSV file, follow these steps.
1. In Commerce site builder, go to the site that will receive the bulk URL redirects.
2. Go to Site settings > General .
3. Under URL Redirect Mapping , select Download .
4. Save the file to your local computer.
5. Edit the CSV file as appropriate, and then save it.
6. Under URL Redirect Mapping , select Replace .
7. In File Explorer, browse to the replacement CSV file, select it, and then select Open .
8. Under URL Redirect Mapping , set the option to On to activate the redirects.
9. On the command bar, select Save and Publish to commit the changes. Allow up to 15 minutes for the
redirects to take effect.

Turn off bulk redirects


To turn off the bulk redirects in an uploaded redirect CSV file, follow these steps.
1. Create and save a new CSV file that has valid but nonexistent source and target URLs (for example,
https://www.com,https://www.com,301 ).
2. In Commerce site builder, go to the site that will receive the bulk URL redirects.
3. Go to Site settings > General .
4. Under URL Redirect Mapping , select Replace .
5. In File Explorer, browse to your new CSV file, select it, and then select Open .
6. Under URL Redirect Mapping , set the option to On to activate the redirects.
7. On the command bar, select Save and Publish to commit the changes. Allow up to 15 minutes for the
redirects to stop working.

Additional resources
Configure your domain name
Deploy a new e-Commerce site
Create an e-Commerce site
Associate an online site with a channel
Manage robots.txt files
Set up a B2C tenant in Commerce
Set up custom pages for user logins
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Enable location-based store detection
Set up a B2C tenant in Commerce
4/17/2020 • 14 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to set up your Azure Active Directory (Azure AD) business-to-consumer (B2C) tenants
for user site authentication in Dynamics 365 Commerce.

Overview
Dynamics 365 Commerce uses Azure AD B2C to support user credential and authentication flows. A user can
sign up, sign in, and reset their password through these flows. Azure AD B2C stores sensitive user authentication
information, such as username and password. The user record in the B2C tenant will store either a B2C local
account record or a B2C social identity provider record. These B2C records will link back to the customer record
in the Commerce environment.

Create or link to an existing AAD B2C tenant in the Azure portal


1. Sign in to the Azure portal.
2. From the Azure portal menu, select Create a resource . Be sure to use the subscription and directory that
will be connected with your Commerce environment.

3. Go to Identity > Azure Active Director y B2C .


4. Once on the Create New B2C Tenant or Link to existing Tenant page, use one of the options below
that best suits your company's needs:
Create a new Azure AD B2C Tenant : Use this option to create a new AAD B2C tenant.
a. Select Create a new Azure AD B2C Tenant .
b. Under Organization name , enter the organization name.
c. Under Initial domain name , enter the initial domain name.
d. For Countr y or region , select the country or region.
e. Select Create to create the tenant.

Link an existing Azure AD B2C Tenant to my Azure subscription : Use this option if you already
have an Azure AD B2C tenant you want to link to.
a. Select Link an existing Azure AD B2C Tenant to my Azure subscription .
b. For Azure AD B2C Tenant , select the appropriate B2C tenant. If the message "No eligible B2C
Tenants found" appears in the selection box, you do not have an existing eligible B2C tenant and
will need to create a new one.
c. For Resource group , select Create new . Enter a Name for the resource group that will
contain the tenant, select the Resource group location , and then select Create .

5. Once the new Azure AD B2C directory is created (this may take a few moments), a link to the new
directory will appear on the dashboard. This link will direct you to the "Welcome to Azure Active Directory
B2C" page.
NOTE
If you have multiple subscriptions within your Azure account or have set up the B2C tenant without linking to an active
subscription, a Troubleshoot banner will direct you to link the tenant to a subscription. Select the troubleshooting
message and follow the instructions to resolve the subscription issue.

The following image shows an example of an Azure AD B2C Troubleshoot banner.

Create the B2C application


Once the B2C tenant has been created, you will create a B2C application within the tenant to interact with the
Commerce actions.
To create the B2C application, follow these steps.
1. In the Azure portal, select Applications and then select Add .
2. Under Name , enter the name of the desired AAD B2C application.
3. Under Web App/Web API , for Include web app / web API , select Yes .
4. For Allow implicit flow , select Yes (the default value).
5. Under Reply URL , enter your dedicated reply URLs. See Reply URLs below for information on reply URLs and
how to format them here.
6. For Include native client , select No (the default value).
7. Select Create .
Reply URLs
Reply URLs are important as they allow a whitelist of the return domains when your site calls Azure AD B2C to
authenticate a user. This allows the return of the authenticated user back to the domain from which they are
signing into (your site domain).
In the Reply URL box on the Azure AD B2c - Applications > New application screen, you need to add
separate lines for both your site domain and (once your environment is provisioned) the Commerce-generated
URL. These URLs must always use a valid URL format and must be base URLs only (no trailing forward slashes or
paths). The string /_msdyn365/authresp then needs to be appended to the base URLs, as in the following
examples.
https://fabrikam.com/_msdyn365/authresp
https://fabrikam-prod.commerce.dynamics.com/_msdyn365/authresp

Create user flow policies


User flows are the policies Azure AD B2C uses to provide secure sign in, sign up, edit profile, and forget password
user experiences. Dynamics 365 Commerce uses these flows to perform the policy actions to interact with the
Azure AD B2C tenant. When a user interacts with these policies, they are redirected to the Azure AD B2C tenant to
perform the actions.
Azure AD B2C provides three basic user flow types:
Sign up and sign in
Profile editing
Password reset
You can choose to use the default user flows provided by Azure AD, which will display a page hosted by AAD B2C.
Alternately, you can create an HTML page to control the look and feel of these user flow experiences.
To customize the user policy pages for Dynamics 365 Commerce, see Set up custom pages for user logins. For
additional information, see Customize the interface of user experiences in Azure Active Directory B2C.
Create a sign up and sign in user flow policy
To create a sign up and sign in user flow policy, follow these steps.
1. In the Azure portal, select User flows (policies) in the left navigation pane.
2. On the Azure AD B2C – User flows (policies) page, select New User Flow .
3. On the Recommended tab, select Sign up and sign in .
4. Under Name , enter a policy name. This name will display afterwards with a prefix the portal assigns (for
example, "B2C_1_").
5. Under Identity providers , select the appropriate check box.
6. Under Multifactor Authentication , select the appropriate choice for your company.
7. Under User attributes and claims , select options to collect attributes or return claims as appropriate.
Commerce requires the following default options:

C O L L EC T AT T RIB UT E RET URN C L A IM

Email Addresses

Given Name Given Name

Identity Provider

Surname Surname

User’s Object ID

8. Select Create .
The following image is an example of the Azure AD B2C sign up and sign in user flow.
The following image shows the Run user flow option in the Azure AD B2C sign up and sign in user flow.

Create a profile editing user flow policy


To create a profile editing user flow policy, follow these steps.
1. In the Azure portal, select User flows (policies) in the left navigation pane.
2. On the Azure AD B2C – User flows (policies) page, select New User Flow .
3. On the Recommended tab, select Profile editing .
4. Under Name , enter the profile editing user flow. This name will display afterwards with a prefix the portal
assigns (for example, "B2C_1_").
5. Under Identity providers , select Local Account SignIn .
6. Under User attributes , select the following check boxes:
Email Addresses (Return claim only)
Given Name (Collect attribute and Return claim )
Identity Provider (Return claim only)
Surname (Collect attribute and Return claim )
User's Object ID (Return claim only)
7. Select Create .
The following image shows an example of the Azure AD B2C profile editing user flow.

Create a password reset user flow policy


To create a password reset user flow policy, follow these steps.
1. In the Azure portal, select User flows (policies) in the left navigation pane.
2. On the Azure AD B2C – User flows (policies) page, select New User Flow .
3. On the Recommended tab, select Password Reset .
4. Under Name , enter a name for the password reset user flow.
5. Under Identity providers , select Reset password using email address .
6. Select Create .
7. Under Application claims , select the following check boxes:
Email addresses
Given Name
Surname
User's Object ID
8. Select Create .
The following image shows where to set Reset Password using mail address in the Azure AD B2C password
reset user flow.
Add social identity providers (Optional)
Social identity providers allow users to use their social accounts for authentication. Adding social identity
provider authentication is optional in Dynamics 365 Commerce.
If social identity provider authentication is not added, the default Azure AD B2C profiles will be the main profiles
for your user base. Users will select their own username (their preferred email address) and set a password.
Azure AD B2C will authenticate users directly.
If social identity provider authentication is added and a user chooses one of the social identity providers offered,
an entity is still created in the Azure AD B2C tenant. Azure AD B2C will then authenticate the user's credentials
with the social identity provider.

NOTE
The identity provider sign in creates a record in the B2C tenant, but in a different format than local accounts since it will call
the external social identity provider reference for authentication. The user can use the same email address across social
identity providers, meaning that the email username used for authentication may not be unique to the tenant. Azure AD
B2C will only enforce that users have a unique email address on local B2C accounts.

Before you can add a social identity provider for authentication, you must go to the identity provider's portal and
set up an identity provider application as instructed in the Azure AD B2C documentation. A list of links to the
documentation is provided below.
Amazon
Azure AD (Single Tenant)
Microsoft Account
Facebook
GitHub
Google
LinkedIn
OpenID Connect
Twitter
Add and set up a social identity provider
To add and set up a social identity provider, follow these steps.
1. In the Azure portal, navigate to Identity Providers .
2. Select Add . The Add identity provider screen appears.
3. Under Name , enter the name to be displayed to users on your sign in screen.
4. Under Identity provider type , select an identity provider from the list.
5. Select OK .
6. Select Set up this identity provider to access the Set up the social identity provider screen.
7. Under Client ID , enter the client ID as obtained from the identity provider application setup.
8. Under Client secret , enter the client secret as obtained from the identity provider application setup.
9. Attach user flow for sign in sign up policies:
10. Go to Azure AD B2C – User flows (policies) > {your sign-in sign-up policy} > Identity providers .
11. To attach the sign in/sign up user flow policy, select each identity provider you have set up for your account. To
test these, select Run user flow for each identity provider. A new tab will display the sign-in page displaying
the new identity provider selection box.
The following image shows examples of the Add identity provider and Set up the social identity provider
screens in Azure AD B2C.

The following image shows an example of how to select identity providers on the Azure AD B2C Identity
Providers page.

The following image shows an example of a default sign-in screen with a social identity provider sign-in button
displayed.
Update Commerce headquarters with the new Azure AD B2C
information
Once the Azure AD B2C provisioning steps above are completed, the Azure AD B2C application must be
registered in your Dynamics 365 Commerce environment.
To update headquarters with the new Azure AD B2C information, follow these steps.
1. In Commerce, go to Commerce Shared Parameters and select Identity Providers in the left menu.
2. Under Identity Providers , do the following:
a. In the Issuer box, enter the identity provider issuer URL. To find your issuer URL, see Obtain issuer URL
below.
b. In the Name box, enter a name for your issuer record.
c. In the Type box, enter Azure AD B2C (id_token) .
3. Under Relying Par ties , with the above B2C identity provider item selected, do the following:
a. In the ClientID box, enter your B2C application ID. You can find this in the Application ID box of your
B2C application's properties page.
b. In the Type box, enter Public .
c. In the User Type box, enter Customer .
4. On the action pane, select Save .
5. In the Commerce search box, search for Number sequences (Organization administration > Number
sequences).
6. Under the action pane, select Edit under Maintain .
7. On the General fast tab, select No for Manual .
8. On the action pane, select Save .
9. In the Commerce search box, search for Distribution schedule
10. In the left navigation menu of the Distribution schedules page, select job 1110 Global configuration .
11. On the action pane, select Run Now .
Obtain issuer URL
To obtain your identity provider issuer URL, follow these steps.
1. Create a metadata address URL in the following format using your B2C tenant and policy:
https://<B2CTENANTNAME>.b2clogin.com/<B2CTENANTNAME>.onmicrosoft.com/v2.0/.well-known/openid-
configuration?p=<B2CSIGN-INPOLICY>
Example:
https://d365plc.b2clogin.com/d365plc.onmicrosoft.com/v2.0/.well-known/openid-configuration?
p=B2C_1_signinup
.
2. Enter the metadata address URL into a browser address bar.
3. In the metadata, copy the identity provider issuer URL (the value for "issuer" ).
Example: https://login.fabrikam.com/073405c3-0113-4f43-b5e2-df01266e24ae/v2.0/ .

Configure your B2C tenant in Commerce site builder


Once setup of your Azure AD B2C tenant is completed, you must configure the B2C tenant in Commerce site
builder. Configuration steps include collecting B2C application information from the Azure portal, entering that
B2C application information into site builder, and then associating the B2C application with your site and channel.
Collect the required application information
To collect the required application information, follow these steps.
1. In the Azure portal, go to Home > Azure AD B2C - Applications .
2. Select your application, and then in the left navigation pane select Proper ties to obtain the application
details.
3. From the Application ID box, collect the application ID of the B2C application created in your B2C tenant.
This will later be entered as the Client GUID in site builder.
4. Under Reply URL , collect the reply URL.
5. Go to Home > Azure AD B2C – User flows (policies) , and then collect the names of each user flow policy.
The following image shows an example of the Azure AD B2C - Applications page.
The following image shows an example of an application Proper ties page in Azure AD B2C.

The following image shows an example of user flow policies on the Azure AD B2C – User flows (policies)
page.

Enter your AAD B2C tenant application information into Commerce


You must enter details of the Azure AD B2C tenant into Commerce site builder before associating the B2C tenant
with your site(s).
To add your AAD B2C tenant application information to Commerce, follow these steps.
1. Sign in as an administrator to Commerce site builder for your environment.
2. In the left navigation pane, select Tenant Settings to expand it.
3. Under Tenant Settings , select B2C Settings .
4. In the main window next B2C Applications , select Manage . (If your tenant appears in the B2C
Applications list, then it was already added by an administrator. Verify that the items in step 6 below match
your B2C Application.)
5. Select Add B2C Application .
6. Enter the following required items in the form displayed, using values from your B2C tenant and
application. Fields that are not required (those without an asterisk) may be left blank.
Application Name : The name for your B2C Application, for example "Fabrikam B2C".
Tenant Name : The name of your B2C Tenant, for example "Fabrikam".
Forget Password Policy ID : The forget password user flow policy ID, for example
"B2C_1_PasswordReset".
Signup Signin Policy ID : The sign up and sign in user flow policy ID, for example
"B2C_1_signup_signin".
Client GUID : The B2C application ID, for example "22290eb2-c52e-42e9-8b35-a2b0a3bcb9e6".
Edit Profile Policy ID : The profile editing user flow policy ID, for example "B2C_1A_ProfileEdit".
7. Select OK . You should now see the name of your B2C application appear in the list.
Associate the B2C application to your site and channel

WARNING
If your site is already associated with a B2C application, changing to a different B2C application will remove the current
references established for users already signed up in this environment. If changed, any credentials associated with the
currently-assigned B2C application will not be available to users.
Only update the B2C application if you are setting up the channel's B2C application for the first time or if you intend to
have users re-sign up with new credentials to this channel with the new B2C application. Take caution when associating
channels to B2C applications, and name applications clearly. If a channel is not associated to a B2C application in the steps
below, users signing into that channel for your site will be entered into the B2C application showing as default in the
Tenant Settings > B2C Settings list of B2C applications.

To associate the B2C application to your site and channel, follow these steps.
1. Navigate to your site in Commerce site builder.
2. In the left navigation pane, select Site Settings to expand it.
3. Below Site Settings , select Channels .
4. In the main window under Channels , select your channel.
5. In the channel properties pane on the right, select your B2C application name from the Select B2C
Application drop down menu.
6. Select Close , and then select Save and Publish .

Additional B2C information


Customer migration
If you are considering migrating customer records from a previous identity provider platform, please work with
the Dynamics 365 Commerce team to review your customer migration needs.
For additional Azure AD B2C documentation on customer migration, see Migrate users to Azure Active Directory
B2C.
Custom policies
For additional information regarding customizing Azure AD B2C interactions and policy flows beyond what is
offered by B2C standard policies, see Custom policies in Azure Active Directory B2C.
Secondary admin
An optional, secondary administrator account can be added in the Users section of your B2C tenant. This can be
a direct account or a general account. If you need to share an account across team resources, a common account
can also be created. Due to the sensitivity of the data stored in Azure AD B2C, a common account should be
monitored closely per your company's security practices.

Additional resources
Configure your domain name
Deploy a new e-Commerce site
Create an e-Commerce site
Associate an online site with a channel
Manage robots.txt files
Upload URL redirects in bulk
Set up custom pages for user logins
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Enable location-based store detection
Set up custom pages for user logins
3/3/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to build custom pages in Microsoft Dynamics 365 Commerce that handle customized
sign-ins for users of Azure Active Directory (Azure AD) business-to-consumer (B2C) tenants.

Overview
To use custom pages that are authored in Dynamics 365 Commerce to handle user sign-in flows, you must set
up the Azure AD policies that will be referenced in the Commerce environment. You can configure the "Sign up
and sign in," "Profile editing," and "Password reset" Azure AD B2C policies by using the Azure AD B2C
application. The Azure AD B2C tenant and policy names can then be referenced during the provisioning process
that is done for the Commerce environment by using Microsoft Dynamics Lifecycle Services (LCS).
The custom Commerce pages can be built by using the sign in, sign up, account profile edit, or password reset
module. The page URLs that are published for these custom pages should then be referenced in Azure AD B2C
policy configurations in the Azure portal.

Set up B2C policies


After you set up your Azure AD B2C tenant and associate it with your Commerce environment, go to the Azure
AD B2C page in the Azure portal, and then, on the menu, under Policies , select User flows (policies) .
You can now configure the "Sign up and sign in," "Profile editing," and "Password reset" user sign-in flows.
Configure the "Sign up and sign in" policy
To configure the "Sign up and sign in" policy, follow these steps.
1. Select New user flow , and then, on the Recommended tab, select the Sign up and sign in policy.
2. Enter a name for the policy (for example, B2C_1_SignInSignUp ).
3. In the Identity Providers section, select the identity providers to use for the policy. At a minimum,
Email signup must be selected.
4. In the Collect attribute column, select the check boxes for Email Address , Given Name , and
Surname .
5. In the Return claim column, select the check boxes for Email Addresses , Given Name , Identity
Provider , Surname , and User's Object ID .
6. Select OK to create the policy.
7. Double-click the new policy name, and then, in the navigation pane, select Proper ties .
8. Set the Enable JavaScript enforcing page layout (preview) option to On .
NOTE
The policy name will be fully referenced in the Commerce environment. (The B2C_1_ prefix will be included in the
reference.) Policies can't be renamed after they are created. If you're replacing an existing policy for your Commerce
environment, you can delete the original policy and build a new policy that has the same name. Alternatively, if the
environment has already been provisioned, you can submit the new policy name through a service request.

You will return to this policy to finish the setup after you've built the custom pages. For now, close the policy to
return to the User flows (policies) page in the Azure portal.
Configure the "Profile editing" policy
To configure the "Profile editing" policy, follow these steps.
1. Select New user flow , and then, on the Recommended tab, select the Profile editing policy.
2. Enter a name for the policy (for example, B2C_1_EditProfile ).
3. In the Identity Providers section, select the identity providers to use for the policy. At a minimum, Local
Account SignIn must be selected.
4. In the Collect attribute column, select the check boxes for Email Addresses and Surname .
5. In the Return claim column, select the check boxes for Email Addresses , Given Name , Identity
Provider , Surname , and User's Object ID .
6. Select OK to create the policy.
7. Double-click the new policy name, and then, in the navigation pane, select Proper ties .
8. Set the Enable JavaScript enforcing page layout (preview) option to On .
You will return to this policy to finish the setup after you've built the custom pages. For now, close the policy to
return to the User flows (policies) page in the Azure portal.
Configure the "Password reset" policy
To configure the "Password reset" policy, follow these steps.
1. Select New user flow , and then, on the Preview tab, select the Password reset v1.1 policy.

2. Enter a name for the policy (for example, B2C_1_ForgetPassword ).


3. In the Identity Providers section, select Reset password using email address .
4. In the Return claim column, select the check boxes for Email Addresses , Given Name , Surname , and
User's Object ID .
5. Select OK to create the policy.
6. Double-click the new policy name, and then, in the navigation pane, select Proper ties .
7. Set the Enable JavaScript enforcing page layout (preview) option to On .
You will return to this policy to finish the setup after you've built the custom pages. For now, close the policy to
return to the User flows (policies) page in the Azure portal.

Build the custom pages


To build the custom pages to handle user sign-ins, follow these steps.
1. In the Commerce authoring tools, go to your site.
2. Build the following five templates and five pages:
A Sign In template and page that use the sign in module.
A Sign Up template and page that use the sign up module.
A Password Reset template and page that use the password reset module.
A Password Reset verification template and page that use the password reset verification module.
A Profile Edit template and page that use the account profile edit module
When you build the pages, follow these guidelines:
For each page or module, use the layout and style that best suit your business requirements.
Publish all pages and URLs that must be used in the Azure AD B2C setup.
After the pages and URLs are published, collect the URLs that must be used for the Azure AD B2C policy
configurations. A ?preloadscripts=true suffix will be added to every URL when it's used.

IMPORTANT
Don't reuse universal headers and footers that have relative links. Because these pages will be hosted in the Azure AD B2C
domain when they are used, only absolute URLs should be used for all links.

Configure Azure AD B2C policies with custom page information


In the Azure portal, return to the Azure AD B2C page, and then, on the menu, under Policies , select User
flows (policies) .
Update the "Sign up and sign in" policy with custom page information
To update the "Sign up and sign in" policy with custom page information, follow these steps.
1. In the Sign in and sign up policy that you configured earlier, in the navigation pane, select Page
layouts .
2. Select the Unified sign up or sign in page layout.
3. Set the Use custom page content option to Yes .
4. In the Custom page URI field, enter the full sign-in URL. Include the ?preloadscripts=true suffix. For
example, enter www.<my domain>.com/sign-in?preloadscripts=true .
5. In the Page Layout Version (Preview) field, select 1.2.0 .
6. Select the Local account sign up page layout.
7. Set the Use custom page content option to Yes .
8. In the Custom page URI field, enter the full sign-up URL. Include the ?preloadscripts=true suffix. For
example, enter www.<my domain>.com/sign-up?preloadscripts=true .
9. In the Page Layout Version (Preview) field, select 1.2.0 .
10. In the User attributes section, follow these steps:
a. For the Email Address , Given Name , and Surname attributes, select No in the Requires
Verification field.
b. For the Given Name and Surname attributes, select No in the Optional field.
Update the "Profile editing" policy with custom page information
To update the "Profile editing" policy with custom page information, follow these steps.
1. In the Profile Editing policy that you configured earlier, in the navigation pane, select Page layouts .
2. Select the Profile edit page layout.
3. Set the Use custom page content option to Yes .
4. In the Custom page URI field, enter the full profile edit URL. Include the ?preloadscripts=true suffix.
For example, enter www.<my domain>.com/profile-edit?preloadscripts=true .
5. In the Page Layout Version (Preview) field, select 1.2.0 .
6. In the User attributes section, follow these steps:
a. For the Email Address , Given Name attributes, select No in the Requires Verification field.
b. For the Given Name and Surname attributes, select No in the Optional field.
Update the "Password reset" policy with custom page information
To update the "Password reset" policy with custom page information, follow these steps.
1. In the Password Reset policy that you configured earlier, in the navigation pane, select Page layouts .
2. Select the New password page layout.
3. Set the Use custom page content option to Yes .
4. In the Custom page URI field, enter the full password reset URL. Include the ?preloadscripts=true suffix.
For example, enter www.<my domain>.com/passwordreset?preloadscripts=true .
5. In the Page Layout Version (Preview) field, select 1.2.0 .
6. Select the Account verification page layout.
7. Set the Use custom page content option to Yes .
8. In the Custom page URI field, enter the full password reset verification URL. Include the ?
preloadscripts=true suffix. For example, enter
www.<my domain>.com/passwordreset-verification?preloadscripts=true .
9. In the Page Layout Version (Preview) field, select 1.2.0 .

Customize default text strings for labels and descriptions


In the starter kit, sign in modules are prefilled with default text strings for the labels and descriptions. You can
customize these strings in the software development kit (SDK) by updating the values in the global.json file for
the sign in module.
For example, the default text for the forgotten password link is Forgotten password? . The following shows this
default text on the sign-in page.

However, in the global.json file for the starter kit sign in module, you can edit the text to Forgot Password? , as
shown in the following illustration.

After you update the global.json file and publish your changes, the new link text appears in the sign in module in
both Commerce and on the live sign-in page.

Additional resources
Configure your domain name
Deploy a new e-Commerce site
Set up an online store channel
Create an e-Commerce site
Associate an online site with a channel
Manage robots.txt files
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Enable location-based store detection
Configure multiple B2C tenants in a Commerce
environment
3/3/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes when and how to set up multiple Microsoft Azure Active Directory (Azure AD) business-to-
consumer (B2C) tenants per channel for user authentication in a dedicated Dynamics 365 Commerce
environment.

Overview
Dynamics 365 Commerce uses the Azure AD B2C cloud identity service to support user credentials and
authentication flows. Users can use the authentication flows to sign up, sign in, and reset their password. Azure
AD B2C stores a user's sensitive authentication information, such as his or her user name and password. The user
record is unique to each B2C tenant, and it uses either user name (email address) credentials or social identity
provider credentials.
In most cases, a single Azure AD B2C tenant is used in a Commerce environment. Commerce customers can then
create and publish multiple sites in the same Commerce environment, and the same customer credentials will be
used across these sites. However, if the sites in the environment should be treated as different brands and appear
to users as separate businesses, a B2C tenant can be configured for the channel that is used for the site/brand
separation.

Considerations when multiple B2C tenants are set up per channel


Often, when each channel or site is being treated as a separate business, the best option with respect to user
authentication flows in Commerce is to use separate legal entities. However, if you want to keep each
channel/site in the same environment and legal entity, but want to have separate user authentication for each
site, it's important that you consider the following points before you proceed:
Users will have their own distinct credentials for each channel/site.
The same person can have two separate accounts per channel/site, because each account will be a unique
entry into a separate B2C tenant.
In the Microsoft Dynamics environment, separate customer records will be returned for global record
searches.
If a user uses the same email address across channels/sites, global customer searches will return results
for each channel/site. (A channel indicator will be shown.)
The address book can be used to help group users, so that they can be tracked per channel.
The number of customer records per channel might increase, and this increase might affect the
performance of global customer searches.
B2C tenants must be carefully mapped to a channel, to help prevent situations where customers sign up
for an incorrect tenant. Otherwise, confusion or tracking issues can occur.
The following illustration shows multiple B2C tenants in a Commerce environment.

If you decide that your business requires distinct B2C tenants per channel in the same Commerce environment,
complete the procedures in the following sections to request this feature.

Request that B2C per channel be enabled in your environment


Currently, if you want distinct B2C tenants per channel to be available in the same Commerce environment, you
must submit a request to Dynamics 365 Commerce. For more information, see Get support for Lifecycle Services
(LCS), or discuss this issue with your Commerce solutions contact.

Configure B2C tenants in your environment


To configure B2C tenants in your environment, complete the relevant procedures in this section.
Add an Azure AD B2C tenant
To add an Azure AD B2C tenant to your environment, follow these steps.
1. Sign in to Commerce site builder for your environment as a system admin. To configure Azure AD B2C
tenants, you must be a system admin for the Commerce environment.
2. In the left navigation pane, select Tenant Settings to expand it.
3. Select B2C Settings , and then select Manage .
4. Select Add B2C Application , and then enter the following information:
Application Name : Enter the name that should be used for the application in the context of managing
it in Commerce. We recommend that you use the application name that you chose when you set up the
Azure AD B2C application in the Azure portal. In this way, you can help reduce confusion when you
manage B2C tenants in Commerce.
Tenant Name : Enter the B2C tenant name as it appears in the Azure portal.
Forget Password Policy ID : Enter the policy ID (the name of the policy in the Azure portal).
Signup Signin Policy ID : Enter the policy ID (the name of the policy in the Azure portal).
Client GUID : Enter the Azure AD B2C tenant ID as it appears in the Azure portal (not the application ID
for the B2C tenant).
Edit Profile Policy ID : Enter the policy ID (the name of the policy in the Azure portal).
5. When you've finished entering this information, select OK to save your changes.

NOTE
You should leave fields such as Scope , Non Interactive Policy ID , Non Interactive Client ID , Login Custom
Domain , and Sign Up Policy ID blank unless the Dynamics 365 Commerce team instructs you to set them. Your new
Azure AD B2C tenant should now appear in the list under Manage B2C Applications .

Manage or delete an Azure AD B2C tenant


1. Sign in to Commerce site builder for your environment as a system admin. To configure Azure AD B2C
tenants, you must be a system admin for the Commerce environment.
2. In the left navigation pane, select Tenant Settings to expand it.
3. Select B2C Settings , and then select Manage .
4. To edit a B2C tenant, select the pencil symbol next to it. To delete a B2C tenant, select the trash can symbol
next to it.
5. Select Save , and then select Publish to activate your changes.

WARNING
When a B2C tenant is configured for a live/published site, users might have signed up by using accounts that are present
on the tenant. If you delete a configured tenant on the Tenant Settings > B2C Tenant menu, you remove the
association of that B2C tenant from sites that are associated with any channels of the tenant. In this case, your users
might no longer be able to sign in to their accounts. Therefore, use extreme caution when you delete a configured tenant.
When a configured tenant is deleted, the B2C tenant and records will continue to be maintained, but the Commerce
system configuration of that tenant will be changed or removed. Users who try to sign up or sign in to the site will create
a new account record in the default or newly associated B2C tenant that is configured for the channel of the site.

Configure your channel with a B2C tenant


1. Sign in to Commerce site builder for your environment as a system admin. To configure Azure AD B2C
tenants, you must be a system admin for the Commerce environment.
2. In the left navigation pane, select Site Settings to expand it.
3. Select Channels , and then select the channel to configure.
4. In the properties pane on the right, in the Select B2C Application field, select the configured Azure AD B2C
tenant to use for this channel.
5. On the command bar, select Save and Publish to commit the new or updated configuration.

WARNING
If you change the B2C application that is assigned to the channel, you remove the current references that have been
established for any users who have already signed up in the environment. In this case, any credentials that are associated
with the currently assigned B2C application won't be available to users. Therefore, change a channel Azure AD B2C
configuration only if you're setting up the channel for the first time, and no users have been able to sign up. Otherwise,
users might have to sign up again to establish a record in the new Azure AD B2C tenant.
Additional resources
Configure your domain name
Deploy a new e-Commerce site
Create an e-Commerce site
Associate an online site with a channel
Manage robots.txt files
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Set up custom pages for user logins
Add support for a content delivery network (CDN)
Enable location-based store detection
Add support for a content delivery network (CDN)
3/3/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to add a content delivery network (CDN) to your Microsoft Dynamics 365 Commerce
environment.

Overview
When you set up an e-Commerce environment in Dynamics 365 Commerce, you can configure it to work with
your CDN service.
Your custom domain can be enabled during the provisioning process for your e-Commerce environment.
Alternatively, you can use a service request to set it up after the provisioning process is completed. The
provisioning process for the e-Commerce environment generates a host name that is associated with the
environment. This host name has the following format, where e-commerce-tenant-name is the name of your
environment:
<e-commerce-tenant-name>.commerce.dynamics.com
The host name or endpoint that is generated during the provisioning process supports a Secure Sockets Layer
(SSL) certificate only for *.commerce.dynamics.com. It doesn't support SSL for custom domains. Therefore, you
must terminate SSL for custom domains in your CDN and forward traffic from the CDN to the host name or
endpoint that Commerce generated.
Additionally, the statics (JavaScript or Cascading Style Sheets [CSS] files) from Commerce are served from the
endpoint that Commerce generated (*.commerce.dynamics.com). The statics can be cached only if the host name
or endpoint that Commerce generated is put behind the CDN.

Set up SSL
To help guarantee that SSL is set up, and that statics are cached, you must configure your CDN so that it is
associated with the host name that Commerce generated for your environment. You must also cache the
following pattern for statics only:
/_msdyn365/_scnr/*
After you provision your Commerce environment with the custom domain that is provided, or after you provide
the custom domain for your environment by using a service request, point your custom domain to the host
name or endpoint that Commerce generated.
As was previously mentioned, the generated host name or endpoint supports an SSL certificate only for
*.commerce.dynamics.com. It doesn't support SSL for custom domains.

CDN services
Any CDN service can be used with a Commerce environment. Here are two examples:
Microsoft Azure Front Door Ser vice – The Azure CDN solution. For more information about Azure Front
Door Service, see Azure Front Door Service Documentation.
Akamai Dynamic Site Accelerator – For more information, see Dynamic Site Accelerator.

CDN setup
The CDN setup process consists of these general steps:
1. Add a front-end host.
2. Configure a back-end pool.
3. Set up rules for routing and caching.
Add a front-end host
Any CDN service can be used, but for the example in this topic, Azure Front Door Service is used.
For information about how to set up Azure Front Door Service, see Quickstart: Create a Front Door for a highly
available global web application.
Configure a back-end pool in Azure Front Door Service
To configure a back-end pool in Azure Front Door Service, follow these steps.
1. Add <ecom-tenant-name>.commerce.dynamics.com to a back-end pool as a custom host that has an
empty back-end host header.
2. Under Health probes , in the Path field, enter /keepalive .
3. In the Inter vals (seconds) field, enter 255 .
4. Under Load balancing , leave the default values.
The following illustration shows the Add a backend pool dialog box in Azure Front Door Service.
Set up rules in Azure Front Door Service
To set up a routing rule in Azure Front Door Service, follow these steps.
1. Add a routing rule.
2. In the Name field, enter default .
3. In the Accepted protocol field, select HTTP and HTTPS .
4. In the Frontend hosts field, enter dynamics-ecom-tenant-name.azurefd.net .
5. Under Patterns to match , in the upper field, enter /* .
6. Under Route Details , set the Route type option to For ward .
7. In the Backend pool field, select ecom-backend .
8. In the For warding protocol field group, select the Match request option.
9. Set the URL rewrite option to Disabled .
10. Set the Caching option to Disabled .
To set up a caching rule in Azure Front Door Service, follow these steps.
1. Add a caching rule.
2. In the Name field, enter statics .
3. In the Accepted protocol field, select HTTP and HTTPS .
4. In the Frontend hosts field, enter dynamics-ecom-tenant-name.azurefd.net .
5. Under Patterns to match , in the upper field, /_msdyn365/_scnr/* .
6. Under Route Details , set the Route type option to For ward .
7. In the Backend pool field, select ecom-backend .
8. In the For warding protocol field group, select the Match request option.
9. Set the URL rewrite option to Disabled .
10. Set the Caching option to Disabled .
11. In the Quer y string caching behavior field, select Cache ever y unique URL .
12. In the Dynamic compression field group, select the Enabled option.
The following illustration shows the Add a rule dialog box in Azure Front Door Service.

After this initial configuration is deployed, you must add your custom domain to the configuration for Azure
Front Door Service. To add the custom domain (for example, www.fabrikam.com ), you must configure a Canonical
Name (CNAME) for the domain.
The following illustration shows the CNAME configuration dialog box in Azure Front Door Service.

NOTE
If the domain that you will use is already active and live, contact support to enable this domain with Azure Front Door
Service to set up a test.

You can use Azure Front Door Service to manage the certificate, or you can use your own certificate for the
custom domain.
The following illustration shows the Custom Domain HTTPS dialog box in Azure Front Door Service.

Your CDN should now be correctly configured so that it can be used with your Commerce site.

Additional resources
Configure your domain name
Deploy a new e-Commerce site
Set up an online store channel
Create an e-Commerce site
Associate an online site with a channel
Manage robots.txt files
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Set up custom pages for user logins
Configure multiple B2C tenants in a Commerce environment
Enable location-based store detection
Enable location-based store detection
3/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to turn on location-based store detection for your Dynamics 365 Commerce site.

Overview
Location-based store detection in Commerce lets you provide relevant site content to customers, based on their
location. When location-based store detection is turned on, the Commerce rendering service uses the
country/region information from the IP address of the customer's web browser to direct the customer to the
best geographical site configuration that is available.

Privacy notice
If you turn on the location-based store detection feature, information from the customer's browser is sent to a
Microsoft location service. This information is then used to provide the customer content that is relevant to his
or her location. Both the information that is sent from the customer's browser and the location-based
information that is returned to the customer are subject to privacy and cookie compliance policies.

Turn on location-based store detection


To turn on location-based store detection in Commerce, follow these steps.
1. In the authoring tool, go to your site.
2. In the navigation pane on the left, select Site Management .
3. Select Site Settings .
4. Set the Enable location based store detection option to On .

Additional resources
Configure your domain name
Deploy a new e-Commerce site
Set up an online store channel
Create an e-Commerce site
Associate an online site with a channel
Manage robots.txt files
Upload URL redirects in bulk
Set up a B2C tenant in Commerce
Set up custom pages for user logins
Configure multiple B2C tenants in a Commerce environment
Add support for a content delivery network (CDN)
Overview of the home page
2/5/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the home page in Microsoft Dynamics 365 Commerce.

Overview
The home page is the default page that shoppers go to when they visit an e-Commerce site. Typically, this page
showcases products and promotions by using a combination of marketing modules. The home page should be
rich with images and text to keep shoppers engaged.
The following illustration shows an example of a home page that was built by using the online starter kit and the
"Fabrikam" theme.
The top of the home page has a header that shows all the product categories and other pages that the retailer
wants customers to browse. The bottom of the home page has a footer that contains quick links to various topics
that might interest customers.
The main section of the home page can highlight products, categories, or promotions by using various Dynamics
365 Commerce modules:
Hero – Typically, the first item at the top of the main section shows one or more "hero" images that
highlight new products and promotions in the store. If there are multiple hero images, they are hosted in a
carousel module so that users can browse them.
The following illustration shows an example of a home page where the first item in the main section is a
hero layout of a content block module that is named "New Arrival."
Feature – A feature layout of a content block module is used to market products or promotions by using a
combination of images and text. Features layouts can be used independently, or they can be hosted in a
carousel module.
The following illustration shows an example of feature layout of a content block module on a home page.

Tile – A tile layout of a content block module is used to showcase multiple products or category of products
by using a combination of images and text in a multicolumn layout. In the illustration of a home page that
appears earlier in this topic, a tile layout is used for the three-column rendering of the Shop Women ,
Shop Men , and Shop Accessories items.
Video player – A video player module can be used to showcase video content on the home page. The
illustration of a home page that appears earlier in this topic includes a video player module.
Text block – A content rich block module can be used to present text content on the home page in a single-
column or multicolumn layout.
Product recommendations – Product recommendations modules are used to show lists, such as New ,
Trending , and Best Selling on the home page. These lists showcase products based on shopping trends,
and they can be algorithmically generated or manually curated. They help customers quickly discover top
products and then continue to shop.
The following illustration shows an example of product recommendations modules on a home page.

NOTE
All the modules that are listed here can be used on any site page. However, their placement on the home page is important
because that page is where customers first interact with your site.

Additional resources
Overview of default category landing page and search results page
Overview of product details pages
Overview of cart and checkout pages
Overview of account management pages
Overview of default category landing page and
search results page
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the default category landing page and search results page in Microsoft
Dynamics 365 Commerce e-Commerce.

Default category landing page


The default category landing page is the page that website users typically are taken to when they select a category
in the navigation hierarchy. The category page lets you browse, and you can also sort and refine the categorized
products.
At the top of the page is a header that shows all the product categories and other pages that the merchandising
manager has categorized. Configuration is done as part of the configuration of the channel navigation hierarchy. At
the bottom of the page is a footer that includes quick links to various topics that a shopper might be interested in.
The following components are essential for a category:
Product placement tiles show the products that the merchandising manager has defined in a category as
part of the configuration of the navigation hierarchy.
Refiners and choice summar y are filters that provide counts and that can be used to refine items. The
merchandising manager configures them as part of the configuration of the metadata related to channel
categories and product attributes.
Sor ting options are used by website visitors to sort the products. By default, the following sorting options
are available:
Price – low to high
Price – high to low
Product name – [A-Z]
Product name – [Z-A]
Ratings – low to high
Ratings – high to low
Pagination lets website visitors move from one page of categorized product results to another page.
Total count provides the total number of products that are defined in a category.

Enrich a category landing page


If you want a category landing page to have a more tailored experience for a specific category, you can "enrich" the
category landing page for that category. For example, you can add a marketing video and some category
storytelling to get the shopper's attention. For more information, see Enrich a category landing page.

Auto-suggest and search results pages


Website users can explore a site either by going to a category from the navigation hierarchy or by entering a search
term in the search field.
As soon as users start to type in the search field, they experience the immersive auto-suggest functionality that
suggests search terms.
Here are some of the types of suggestions that might be shown:
Keywords are used to find items across all products that are assorted to the channel.
Products provide direct links to the product details page.
Scoped categor y search suggestions list various categories and let users search for the keyword in a
specific category.

When users select one of the keyword or scoped category search suggestions, or when there are no suggestions for
the search term that they enter, they are redirected to a search results page. The users can then browse, sort, and
refine the list of search results to find the desired item.
The following components are essential for a search results page:
Product placement tiles show the products for the user's search. By default, these tiles are sorted by the
cloud-powered search relevancy score for the user search.
Refiners and choice summar y are filters that provide counts and that can be used to refine items. The
merchandising manager configures them as part of the configuration of the "channel categories and product
attributes" metadata.
Sor ting options are used by website visitors to sort the products. By default, the following sorting options
are available:
Price – low to high
Price – high to low
Product name – [A-Z]
Product name – [Z-A]
Ratings – low to high
Ratings – high to low
Default
Pagination lets website visitors move from one page of categorized product results to another page.
Total count provides the total number of products that are defined in a category and that match the search
criteria.
Additional resources
Overview of the home page
Overview of product details pages
Overview of cart and checkout pages
Overview of account management pages
Overview of product details pages
2/5/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of product details pages (PDPs) in Microsoft Dynamics 365 Commerce.

Overview
A PDP provides detailed information about a product, and lets customers select product options such as a size,
style, and color. A PDP should showcase all the product information that a customer requires to make a purchase
decision.
The following illustration shows an example of a PDP.
Header and footer modules
The top of a PDP has a header that shows all the product categories and other pages that the retailer wants
customers to browse. The bottom of the page has a footer that contains quick links to various topics that might
interest customers.

Buy box module


The most important module on a PDP is the buy box module, which appears as the first item in the main section of
the page. A buy box module shows important product information, such as the product name, the product
description, the product price, product images, and product ratings.
The buy box module lets the customer select product options (for example, a size, style, and color) and add the
product to the cart. It also lets the customer buy the product online and pick it up in a store. The buy online and
pick up in store module uses integration with Bing Maps application programming interfaces (APIs) to find nearby
stores or stores in another location that the customer specifies.
A buy box module requires a product ID. This ID is derived from the page context. If a buy box module is added to
a page where the page context doesn't include a product ID, it won't render the information correctly.

Product specifications module


The product specifications module can be used to showcase additional details about the product. These details are
taken from product attributes in Commerce. The product specifications module shows every attribute where the
visible property is set to true . It requires a product ID to retrieve the product attributes.

Recommendations module
The recommendations module is an important module on a PDP. While customers browse for products, more
product options should be presented to them, so that they can find the correct product and make a purchase.
Recommendations help customers easily discover related content and continue to shop.
Different types of recommendation lists are available:
The People also like list is based on machine learning. It uses the transaction history of other customers to
provide recommendations. This list is generated by the recommendations service and resembles "Customers
who bought this also bought..." lists. A product ID is required to generate this list.
A Related list can be configured for a product in Commerce. For example, for a brown leather travel handbag,
more handbags that are leather-based or designed for travel purposes can be configured for the related list.
Other types of related lists, such as Accessories and More like this , can also be configured in Commerce. A
product ID is required to generate this list. Therefore, if it's added to a home page, where the page context
doesn't include a product ID, the list will be empty.
Algorithmically generated recommendation lists, such as Trending , Best Selling , and New , can be used on
PDPs. Although these lists might not be directly related to the product on the PDP, they are another way to help
customers find products that might interest them. These types of lists don't require a product ID. They are
generic lists that are generated based on shopping patterns across the site.
Editorial lists are manually curated lists. For example, a retailer might decide to manually curate lists of
products that it wants to showcase.

Ratings and reviews modules


Three modules can be used to show and add reviews:
Reviews – This module lists ratings and reviews that have been provided by other customers. Customers can
sort and filter the reviews. This module also lets customers like or dislike reviews, and report issues.
Write review – This module lets customers write their own reviews of a product.
Ratings histogram – This module includes a histogram that shows the ratings trend for a product.
For more details, see Ratings and reviews overview.

Marketing modules
If marketing content is unique to a specific product, any marketing module can be added to the PDP. You can add
marketing modules to a PDP by "enriching" the page. For more details, see Enrich a product page.

Additional resources
Overview of the home page
Overview of default category landing page and search results page
Overview of cart and checkout pages
Overview of account management pages
Enrich a product details page
Overview of cart and checkout pages
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the cart and checkout pages in Microsoft Dynamics 365 Commerce.

Overview
The cart page of an e-Commerce website shows all items that a customer has added to the cart. The cart page is
built by using the cart module. The cart module is a container that hosts all the modules that are required to
showcase items in the cart. The cart module can also use other modules to show the order summary and any
promotional codes that have been applied to the customer order.
The checkout page of an e-Commerce website presents a step-by-step flow that customers follow to enter all the
information that is required to place an order. A checkout module can include modules that handle the shipping
address, shipping methods, billing information, order summary, and other information that is related to customer
orders.

Cart page
The cart page serves as the shopping bag and includes all the items that have been added to the cart.
The following illustration show an example of a cart page that was built by using the online starter kit and the
"Fabrikam" theme.
The main body of the cart page shows all the items that the customer has added to the cart. All applicable
discounts are showcased. These discounts include complex discounts. Examples include "Buy 3 items and get 10%
off" or "Buy a bottle and a backpack to get 10% off." The order summary module shows the amount that is due
after discounts, shipping, taxes, and so on, have been applied. There is also a promo code module that lets the
customer apply or remove promotional codes.
A customer can shop anonymously or as a signed-in user. If a customer is signed in, items in the cart are
preserved between sessions. In this way, the customer can continue to shop from multiple devices.
From the cart, the customer can proceed to checkout. A customer can initiate checkout as a guest user or as a
signed-in user.
For information about how to author a cart page, see Add a cart module to a page.

Checkout page
The checkout page is where customers enter the information that is required to place an order.
The following illustration show an example of a checkout page that was built by using the online starter kit.
The main body of the checkout page is where all the order information is collected. This information includes the
shipping address, delivery options, and payment information. Checkout has a step-by-step flow, because the
information must be entered in a specific order to be processed. For example, the shipping address must be
entered before the shipping costs can be calculated and the payment can be authorized.
Shipping address
A shipping address is required if items must be shipped. The format of shipping addresses for each locale can be
configured in Dynamics 365 Commerce. For example, if the items will be shipped to the United States, the
shipping address must include a street address, state, and ZIP Code. Some basic input validation is done for
shipping address fields, such as validation for alphanumeric characters, maximum length, and numbers. Although
the validity of the address itself isn't verified, this verification can be done by using customized third-party
services.
The shipping address is applied to all items in the cart that the "ship" option is selected for. If you use the checkout
flow that is provided in the online starter kit, individual cart items can't be shipped to different addresses. If you
require this capability, it can be implemented through customization of the checkout modules.
After the shipping address is provided, the shipping methods that are available from the Dynamics 365
Commerce online store are shown. The shipping methods and the addresses that they support can be configured
in Commerce.
Payment
The next step in the checkout flow is payment. In e-Commerce, multiple methods of payment can be used to place
orders, such as credit cards, gift cards, and loyalty points. A combination of these payment methods can also be
used. Depending on the payment methods that are used, additional information might be required. For example, a
credit card payment requires a billing address. Credit card payments are processed by using the Adyen Payment
Connector.
Loyalty points
During the checkout flow, a customer who is a member of a loyalty program and who has accrued loyalty points
can redeem those loyalty points for an order. The loyalty points module is shown only if the customer has an
existing loyalty membership. For non-members and guest users, this module is hidden.
Gift cards
The online starter kit lets internal gift cards be redeemed for an order. To apply an internal gift card, the customer
must be signed in. For additional security, we recommend that you customize the flow by using a personal
identification number (PIN) for internal gift cards.
Signed-in and guest users
The customer can complete the checkout process as a guest user or a signed-in user. If the customer signs in,
account information such as saved shipping addresses and saved credit card details is automatically retrieved.
Order summary
Checkout shows a summary of the line items in the cart, so that the customer can verify the order before he or
she places it. The line items can't be edited during the checkout flow. However, a link to the cart is provided in case
the user wants to go back and edit line items.
After the customer provides shipping and billing information, the order summary reflects the amount that is due
after loyalty points, gift cards, and other payments have been applied.
Order confirmation and email
When the customer places an order, a confirmation number is provided. At this point, the payment has been
authorized but not charged. The payment will be charged only when the order is fulfilled (that is, when it's either
shipped or picked up).
After an order is created, an order confirmation email is sent to the customer.
For more information about how to author a checkout page, see Add a checkout module to a page.

Additional resources
Overview of the home page
Overview of default category landing page and search results page
Overview of product details pages
Overview of account management pages
Overview of account management pages
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of account management pages in Microsoft Dynamics 365 Commerce.

Overview
Account management pages let customers view information that is related to their account and orders. Account
management pages include the account management landing page, and pages for the user's profile, addresses,
order history, order details, loyalty points, and wish list.
Account management landing page
When a customer signs in and selects My Account , the account management landing page is opened. This page
provides a quick summary of all account-related information, such as the user's profile, orders, wish list,
addresses, loyalty points. From this page, the customer can access more details for each area.
The following illustration shows an example of the account management landing page.

My profile page
The My profile page shows customer's account information, such as his or her name and phone number. The
customer can update his or her profile information on this page. This page can be customized so that it includes
additional customer account preferences, such as an option for opting in to marketing email.
The following illustration shows an example of a My profile page that was built by using the starter kit.
Addresses page
The Addresses page lets the customer add addresses to his or her account. It also shows the list of addresses that
the customer has previously added or saved to the account. These addresses are addresses that the customer
entered either on this page or while placing an order.
The following illustration shows an example of the Addresses page.

Order history and Order details pages


The Order histor y page shows a summary of all orders that the customer has submitted by using his or her
account. It gives a quick summary of the items that were ordered, the confirmation number, sales ID, tracking
information, and other information. If the customer wants to view a more detailed breakdown of each order, there
is an Order details page. This page includes information such as the shipping address, payment information,
discounts, taxes, and shipping costs for the order.
The following illustration shows an example of the Order histor y page.
The following illustration shows an example of the Order details page.

Loyalty program page


The Loyalty program page lets the customer become a member of a loyalty program. After a customer has
signed up for a loyalty program, the Loyalty program page include details such as the number of points that
have been earned and the number of points that have been redeemed.
The following illustration shows an example of a Loyalty program page.
Wishlist page
The Wishlist page shows a list of the items that the customer has added to his or her wish list. Both products and
product variants can be added to the wish list. From this page, the customer can remove an item from the wish list
or add an item directly to the cart.
The following illustration shows an example of a Wishlist page.

For more information about account management modules and how to author them, see Account Management.

Additional resources
Overview of the home page
Overview of default category landing page and search results page
Overview of product details pages
Overview of cart and checkout pages
Authoring page overview
2/1/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the authoring page in Microsoft Dynamics 365 Commerce.

Overview
Websites can be created to support various business needs. They can represent a whole business, offer a single
channel of the business, or target a specific audience or segment of an audience. For example, a clothing
manufacturer might have a website that showcases all the brands that it owns. The same clothing manufacturer
might then have a separate website for each of those brands, and also a set of websites that feature luxury fashion,
outdoor fashion, and children's fashion.
Dynamics 365 Commerce supports the creation and management of multiple websites, and each website can have
its own appearance and content. The authoring page serves as a common access point for these websites. You can
use it to sign in to and out of the system, and to create new websites.
Currently, the authoring page consists of the following sections.
Top bar – The top bar appears at the top of the authoring page. It provides easy access to e-Commerce tools,
notifications, support links, and user sign-in.
Command bar – The command bar appears below the top bar. It can be used to create new websites.
Site list – The site list fills all the space below the command bar. It provides a comprehensive list of websites
and the domains that are associated with them.
The following illustration shows the authoring page.
Use the Home button to select a tool
The Home button is in the upper-left corner of the authoring page. It provides easy access to other e-Commerce
tools. When you select this button, a menu of the tools that you can use is opened. When you select a tool, the
menu is closed, and the selected tool is loaded in the browser.

View and clear notifications


The Notifications button is one of the buttons in the upper-right corner of the authoring page. It looks like a bell.
By selecting this button, you can view all the notifications that have been sent to you.
Notifications are used throughout the authoring tool to inform you when actions have been completed. For
example, a notification might state, "Your page has been published" to inform you that a publish action was
successful.
Notifications can also inform you about errors that were encountered while an action was being performed. Select
the error notification to open its message. The information in this message can help you resolve the error.
You can clear notifications from the notification menu by selecting Remove at the bottom of the notification
message. To clear notifications in bulk, select Remove all at the bottom of the notification menu.

Get help with the authoring tool


The Help button is another button in the upper-right corner of the authoring page. It looks like a question mark.
When you select this button, a menu of the following predefined options is opened:
Site development help – If you select this option, the documentation for creating a new website is opened on
a new browser tab.
Feedback and suppor t – Select this option to open a Microsoft Yammer channel where you can leave
feedback about the authoring tool or request support.
Privacy and cookies – If you select this option, the Microsoft privacy statement is opened on a new browser
tab.
About – Select this option to open a message box that contains information about the authoring tool and the
version that you're currently using.
Sign in to and out of the authoring tool
The My account button is another button in the upper-right corner of the authoring page. It looks like a colored
circle. By selecting this button, you can see which account you used to sign in, and you can also sign out of that
account as you require.
To sign in to or out of the authoring tool, follow one of these steps.
If you aren't already signed in to the authoring tool, select My account > Sign in to sign in.
If you're already signed in and want to sign out, select My account > Sign out .

Change the display language of the authoring tool


You can also use the My account button to change the language of the text strings that appear in the authoring
tool.
To change the display language, follow these steps.
1. Select My account > Change language . A dialog box appears.
2. Select one of the user languages, and then select Save .

Create a new website


Dynamics 365 Commerce supports the creation and management of multiple websites, and each website can have
its own appearance and content.
To create a new website, follow these steps.
1. On the command bar, select New Website . A dialog box appears.
2. Enter the following required information for the new website:
Site name – Enter the name of the website. This name isn't shown to website customers. Instead, it's
used in the site list and other places in the authoring tool.
Site administers security group – Enter the full name of the Microsoft Azure Active Directory (Azure
AD) security group that contains the users who should have administrative access to the website. The
admin group name, together with the other permissions for the website, can be changed after the
website is created.
Default channel – Enter the default merchandizing channel that should be associated with the website.
The default channel determines the products that can be sold through the website.
Default language – After you specify the default channel, select the default language for the channel.
The default channel defines the language that products are shown in if the customer doesn't specify a
preferred language.
Default market – Enter the default market for the website. The default market defines the market that is
shown if the customer doesn't specify a preferred market.
Domain – Select the web domain that should be associated with the website. This domain is the domain
that the website's customers will go to in their browser.
3. Select OK . The new website is created.

NOTE
Creation of a new website can take up to 60 seconds. After the process is completed, a notification appears in the notification
area. Additionally, the website appears in the site list and has the site name that you entered.
Select a website to author
The site list provides a comprehensive list of the websites that are associated with the e-Commerce system.
Websites appear in alphabetical order. The domain that is associated with each website is also shown. To view the
contents of a website and start to author pages, select the name of the website. The authoring tool and the content
for the website are loaded.
After the authoring tool is loaded, you can select Home to return to the authoring page.

Additional resources
Manage e-Commerce users and roles
Search engine optimization (SEO) considerations for your site
Manage Content Security Policy (CSP)
Manage e-Commerce users and roles
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to grant users access to the authoring environment for your Microsoft Dynamics 365
Commerce site.
To help control user access and grant users permission to perform specific tasks, the site authoring environment
uses security groups that you create in Microsoft Azure Active Directory (Azure AD). You first assign a new or
existing security group from Azure AD to each role in the authoring environment. You then grant or revoke
permissions for individual users by either adding those users to an appropriate security group or removing them
from a security group.

Overview of roles in the authoring environment


The Dynamics 365 for Commerce authoring environment supports the following roles.

RO L E DESC RIP T IO N

System Administrator Users who have this role have all privileges for all tools, and
for all ratings and reviews. They can also create sites.

Administrator Users who have this role have all privileges for all tools and
RnR in a given site structure.

Web Producer Users who have this role can create pages, fragments and
templates, upload and manage assets, and enrich products
and categories.

Reader Users who have this role can view pages, templates, assets,
fragments, layouts and settings, but may not make changes.

RnR Moderator Users who have this role can moderate product reviews.

System Administrator role


When you provision Dynamics 365 Commerce in the Microsoft Dynamics Lifecycle Services (LCS) environment,
you're asked to provide a security group for the System Administrator role. This role is then automatically
applied to all sites that you create in the environment that you're configuring. The security group for this role can
be updated only in LCS. On the Site Administration page for all sites, it appears as read-only and is for
informational purposes only.

Administrator role
When you create a new site in Commerce, you're asked to provide a security group for the Administrator role.
See the table earlier in this topic for an overview of the permissions that this role grants.
Add or update security groups
After your site is created, only users who are in the security groups that are associated with the System
Administrator and Administrator roles can access the authoring environment for that site. To assign users to
the Web Producer , RnR Moderator , and Reader roles, you must assign security groups to those roles. To add a
security group to a role, or to update a security group that is currently assigned to a role, follow these steps.
1. Go to the site that you want to update.
2. In Site management , open the Security page.
3. Select the role to modify.
4. Add security groups to roles, or remove security groups from roles.

Additional resources
Add script code to site pages to support telemetry
Search engine optimization (SEO) considerations for your site
Manage Content Security Policy (CSP)
Search engine optimization (SEO) considerations for
your site
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers earch engine optimization (SEO) considerations for your site from development to production.

A site that is under development


While a site is under development, all site pages should have the NOINDEX and NOFOLLOW meta tags, so that
search engines don't index the pages and store development versions of your site in their cache. To do this
configuration, you must add the default meta tags module to the site page template. The default meta tags
properties will then be available in the SEO properties section in the page editor. You can use these properties to
manage the meta tags.

Soft launch of a site


During a "soft launch," a website is made available to a limited audience or market before the full launch occurs. If
you do a soft launch of your website, you should consider leaving the NOINDEX meta tags in place. In this way,
you help guarantee that the soft launch remains restricted to the limited audience that you want to reach.

A site that is in production


When a site is in production, you should make sure that all site pages are correctly tagged. Microsoft Dynamics
365 Commerce uses the information that is entered for a page to render all the SEO information on that page. The
following modules provide this functionality: category page summary, list page summary, and product page
summary.
To optimize search engine indexing, the rendering framework uses both information from the SEO properties that
are configured in Dynamics 365 Commerce and module-specific information. For a site that is in production, you
should make sure that the robots.txt file allows for indexing of your whole site, and that it contains links to your
published site map document. You should turn on the site map generation functionality at Site Settings > Site
maps enabled .
Page SEO settings for internal preview, limited audiences, and all audiences
Because Dynamics 365 Commerce supports "what you see is what you get" (WYSIWYG) authenticated previews,
authors can prepare their page content without having to worry that the information will become visible to site
visitors. If a page must be published, but its exposure must be limited, it should have the NOINDEX meta tag, so
that it won't be indexed by search engines. Then, when the page is ready for all audiences, all the basic SEO
metadata should be present, to maximize the efficiency of search engine indexing. Additionally, the NOLIMIT meta
tag should be removed.

Additional resources
Manage e-Commerce users and roles
Add script code to site pages to support telemetry
Manage Content Security Policy (CSP)
Manage Content Security Policy (CSP)
2/12/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to manage Content Security Policy (CSP) in Microsoft Dynamics 365 Commerce.

Overview
CSP is an additional layer of security that helps detect and mitigate some types of web attacks. The purpose of
these attacks can range from data theft, to site defacement, to the distribution of malware. CSP provides an
extensive set of policy directives that help you control the resources that a site page is allowed to load. Each
directive defines the restrictions for a specific type of resource.
When CSP is turned on for an e-Commerce site, it helps enhance security by blocking connections, scripts, fonts,
and other types of resources that originate from unknown or malicious sources. In Dynamics 365 Commerce, CSP
is turned on by default. However, it will likely require additional configuration for most sites. The Dynamics 365
Commerce online software development kit (SDK) provides a default list of allowed source URLs that style, script,
and application programming interface (API) calls can be made from. You can edit this list on the Extensibility tab
in Commerce.
For more information about CSP, see Content Security Policy Reference.

CSP directives in Commerce


The following CSP directives can be used on Commerce sites.

DIREC T IVE DESC RIP T IO N

child-src This directive defines valid sources of web workers and nested
browsing contexts that are loaded by using elements such as
<frame> and <iframe> .

connect-src This directive defines the URLs that AJAX requests can be
made from.

font-src This directive defines valid sources of fonts.

img-src This directive defines valid sources of images.

media-src This directive defines valid sources of audio and video, such as
HTML5 <audio> and <video> elements.

object-src This directive defines valid sources of plug-ins, such as


<object> , <embed> , and <applet> elements.

script-src This directive defines valid sources of JavaScript.


DIREC T IVE DESC RIP T IO N

style-src This directive defines valid sources of stylesheets.

Example: Configure a CSP directive


The following example shows how to configure a CSP directive so that an external script can be called from your
site.
1. In Commerce, go to your site.
2. Select Site Management , and then select the Extensibility tab.
3. On the Content Security Policy tab, under script-src , select Add , and then enter the full URL of the
external script that should be called.

4. Select Save and Publish .

Interpret and fix CSP errors


When you first configure CSP for a site, some pages probably won't be loaded at all or won't work as intended,
because CSP is blocking external connections, scripts, fonts, and other types of resources from being loaded.
Fortunately, CSP logs some helpful errors that you can use to fix, tune, and clean up unwanted or unneeded
requests.
The following illustration shows an example of CSP errors in a web browser's developer tools.

There are two CSP errors in this example:


The Eval function is blocked by default, because it can cause arbitrary JavaScript execution. To allow this
function, add 'unsafe-eval' to your site's script-src directive. The single quotation marks are required.
The external stylesheet is blocked. To allow a stylesheet to be loaded from an external domain, add the URL to
your site's style-src directive.
The following screenshot shows what the fixed settings look like on the Content Security Policy tab in
Commerce.
Update page mocks that use CSP
If you're testing modules by using the online SDK in a development environment, you can also add CSP by using
page mocks. In a page mock, you must either add a top-level "appContext" property or go to the existing top-
level "appContext" property, and create a property under it that is named "contentSecurityPolicy" . There, you
can add key/value pairs of directives to policies, as shown in the following example.

"appContext": {
"contentSecurityPolicy": {
"script-src": ["https://www.w3schools.com/js/myScript.js"],
"font-src": ["https://*.commerce.dynamics.com"]
}
}
NOTE
If you add CSP policies in a page mock, the page mock won't include any of the default CSP policies that are provided by the
platform.

You can turn off CSP in a page mock by using the following code.

"appContext": {
"contentSecurityPolicy": {
"disableContentSecurityPolicy": true
}
}

Turn off CSP for a site


To prevent CSP from applying policies to your site, you can turn it off for that site.
1. In Commerce, go to your site.
2. Select Site Management , and then select the Extensibility tab.
3. On the Content Security Policy tab, select the Disable content security policy check box.
4. Select Save and Publish .

Additional resources
Manage e-Commerce users and roles
Add script code to site pages to support telemetry
Search engine optimization (SEO) considerations for your site
Ways to add content
2/5/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview and links to documentation about how to manage content using the Microsoft
Dynamics 365 Commerce site builder web authoring toolset.

Overview
There are many ways to change the look, feel, and content of your site. Depending on the required level of
customization, many of these changes can be implemented by non-developers within site builder, the web
authoring toolset included with Dynamics 365 Commerce. Site builder enables you to build templates, select
themes, and select and configure modules without writing any code. By contrast, development skills are required to
create a new theme or module, because the e-Commerce software development kit (SDK) and the Microsoft
Dynamics Lifecycle Services (LCS) deployment workflow must be used.
The following topics are good jumping off points to start understanding how to add and manage site content. Most
of the topics listed focus on areas of your site that don't require a developer. Some address basic content editing,
while others focus on site administrator tasks. Each of these topics will denote specific tasks might require SDK
work. Each topic assumes that you have already provisioned a site and been granted access to the site builder
toolset for your site.
Select one of the following topics to get started.
To familiarize yourself with the content management terminology used in site builder and within this
documentation, see Page model glossary.
To understand how modules work within content management workflows, see Work with modules.
To change the text, images, or video on an existing site page, see Work with modules.
To see how fragments can make content management more efficient and flexible, see Work with fragments.
To help ensure a successful on-brand authoring experience for web content authors, see Templates and layouts
overview and Work with templates.
To rearrange sections on a site page, see Work with layouts.
To change the fonts, colors, and general look of site pages, see Select a site theme or Work with CSS over-ride
files.
To rearrange or add new navigation options, see Customize site navigation.
To learn how to stage, preview, and publish a broad set of concurrent web content changes, see Work with
publish groups.

Additional resources
Authoring page overview
Document states and lifecycle
Page model glossary
2/5/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the various elements that are used on the pages of a Microsoft Dynamics 365 Commerce site.

Page element definitions


The following table provides a summary of terms that you should be familiar with when you change the look, feel,
and content of your site. For more thorough explanations and procedures, follow the links.

T ERM DESC RIP T IO N A N D N OT ES

Module Definition: Modules are building block that can be


authored and make up the skeleton of a webpage.
Examples include header, hero, and carousel modules.
Where it's selected: Deployed modules can be selected
and configured in various stages of the site authoring
workflow, such as the template, layout, page, and
fragment authoring stages.
Where it's edited: Custom modules are created in code
by using the software development kit (SDK). They are
then uploaded to your site, where they become available
for selection.

Module property Definition: Module properties are specific settings that


are defined by the module. They can be edited in the e-
Commerce authoring tools. For example, module
properties are used to set the heading and background
image of a banner module.
Where it's configured: Module properties are selected
and configured in the property pane that appears in the
authoring environments (editors) for templates, layouts,
pages, fragments, and app settings.

Template Definition: Templates define the module combinations


and options that should be used for a category of pages
(for example, marketing pages, category pages, and
product pages).
Where it's selected: Templates can be selected during
page or layout creation workflows.
Where it's edited: Templates are authored in the
template editor. No code is required to create or modify
them.
T ERM DESC RIP T IO N A N D N OT ES

Layout Definition: Layouts define the final selection and


arrangement of modules from the parent template's set of
options. A layout can be configured for a single page
(custom layout), or it can be shared by multiple pages
(preset layout).
Where it's selected: Layouts can be selected during
new page creation or when a different layout is required
for an existing page.
Where it's edited: Layouts are authored in the layout
editor. No code is required to create or modify them.

Page instance Definition: Page instances define the final, page-specific


localized content for a single page. This content is derived
from the values of module properties.
Where it's selected: Pages are selected when URLs are
assigned.
Where it's edited: Pages are edited in the page editor.
No code is required to create or modify them.

Theme Definition: Themes define the Cascading Style Sheet


(CSS), and determine the look and feel of the modules
that are rendered on a page.
Where it's selected: After a theme is uploaded to your
site by using Microsoft Dynamics Lifecycle Services (LCS),
it can be selected as a property of the page container
module.
Where it's edited: Themes are currently created and
edited by using the SDK. They are then uploaded to your
site by using LCS.

Fragment Definition: Fragments are fully configured modules that


have localized content that can be reused and centrally
updated across multiple pages. For example, a fragment
that is created from a header module can be used in all
templates and on all pages across your site, and centrally
updated in one place.
Where it's selected: Fragments can be selected
wherever modules can be selected. They can be
substituted for a module to help increase efficiency
through reusable and centralized authoring.
Where it's edited: Fragments are edited in the fragment
editor. No code is required to create or modify them.

URL Definition: Uniform resource locators (URLs) are


addresses that point to webpages or other URLs.
Where it's selected: URLs are selected if links between
pages are required.
Where it's edited: URLs are edited in the URL editor. No
code is required to create or modify them.
T ERM DESC RIP T IO N A N D N OT ES

Asset Definition: Assets are file binaries that have an extension


such as .jpg, .docx, .pdf, or .mpg.
Where it's selected: Assets are selected as module
properties for modules that require them.
Where it's edited: Assets are uploaded, and associated
metadata is edited in the asset manager.

Additional resources
Ways to add content
Document states and lifecycle
Work with publish groups
Work with modules
Work with fragments
Templates and layouts overview
Customize site navigation
Document states and lifecycle
4/15/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers the various document states of page elements in Microsoft Dynamics 365 Commerce.

Document state descriptions


The Page elements topic lists various documents types in the content management system (CMS). These document
types can have several states in the authoring tool. The document states help prevent data conflicts and enforce
version control. They determine who can change the documents, when the documents can be changed, and when
changes can be viewed by other people.
The following table shows the possible document states of page elements in Commerce.

DO C UM EN T STAT E SIT E B UIL DER A C T IO N DESC RIP T IO N

Checked out Select Edit . The applicable document is checked out


to you. While a document is in this
state, it can't be changed by other
authenticated system users, and any
changes that you make to the
document are visible only to you.

Saved Select Save . Changes that have been made to a


checked-out document are saved to the
database, but the document isn't yet
checked in or published. The saved
changes aren't visible to other
authenticated system users until the
author selects Finish editing . They
aren't visible to external users until the
item is published.

Discarded check out Select Discard edits . All changes to the checked-out
document are discarded, and the item
reverts to the last version that was
checked in.

Checked in Select Finish editing . The edited document is checked in. All
changes are visible to other
authenticated system users, and those
users can then edit the document. Each
check-in creates a document version
record in the item's history.
DO C UM EN T STAT E SIT E B UIL DER A C T IO N DESC RIP T IO N

Published Select Publish . The document is published, and the


changes are pushed to your live site
and become discoverable by external
users. Items can be published only if
they have first been checked in by
selecting Finish editing .

Additional resources
Ways to add content
Page model glossary
Work with publish groups
Work with modules
Work with fragments
Templates and layouts overview
Customize site navigation
Work with publish groups
2/1/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the publish groups feature in Microsoft Dynamics 365 Commerce.

Overview
E-commerce websites are constantly updated with new content throughout the year. Updates are often published
in batches around busy e-commerce events such as holidays, seasonal marketing campaigns, or promotional
launches. These updates often require that groups of website content (for examples, pages, images, fragments,
and templates) be staged, validated, and published concurrently in a single action.
The ability to group items into logical sets that publish items together, where each set has its own lifecycle,
provides many advantages to site authors. In Commerce, these logical sets are known as publish groups. They let
site authors track sets of updates as their own configurable, testable, and publishable entities.
Authors can preview updates in a staged publish group without affecting the live site or other self-contained
publish groups. Authors can then schedule the publish action to simultaneously publish all the items in the
publish group to the live site. The ability to group, preview, and schedule updates for publishing is important for
many enterprise-level companies that generate considerable annual revenue around event-based site update
milestones.
Companies can incur costs from slow or invalidated content rollouts that don't go smoothly. Publish groups help
guarantee that launches are organized, validated, and published on time. Whether they are large or small, publish
groups provide a valuable toolset that helps authors organize and simplify ongoing site update tasks.

When to use publish groups


You can use publish groups whenever you must stage and publish multiple documents together. For example, if
your website updates content every season, you can create publish groups for these seasonal marketing motions.
Your "Autumn Seasonal Update" publish group might contain new seasonal images, fragments that have seasonal
marketing messages, pages that include seasonal product collections, or other seasonal website updates.
An advantage of publish groups is that you can stage multiple updates in parallel. For example, soon after the
update for the "Autumn Seasonal Update" publish group, there might be a content update for a specific holiday
weekend. In this case, you can stage content for the "Autumn Seasonal Update" publish group at the same time
that you stage content for a subsequent "Autumn Holiday Update" publish group. Each publish group contains its
own unique set of pages, images, fragments, templates, and so on. You can stage, preview, and validate these two
publish groups independently but on a concurrent timeline. Each publish group can then be scheduled to go live
on your site at specific dates and times.

Turn on the publish groups feature


The publish groups feature is optional and must be turned for your site.
To turn on the publish groups feature for your site in the Commerce authoring tools, follow these steps.
1. In the left navigation pane, select Site Settings to expand it.
2. Under Site Settings , select Features .
3. Set the Publish groups option to On .

Create a publish group


To create a publish group for your site in the Commerce authoring tools, follow these steps.
1. In the left navigation pane, select Publish Groups .
2. In the top command bar, select New .
3. In the Create Publish Group dialog box, under Publish Group Name , enter a descriptive name. Then select
OK .

Set the publish group authoring context


In Commerce, the default authoring context is the live site context. The live site authoring context is the default
view where you can view and make changes directly to your website without using a publish group. It represents
the latest direct updates to the published version of your site. If the context control under Publish Groups in the
left navigation pane shows the name Live site , you're working in the live site authoring context. Live site is the
default name of the context control. Otherwise, the context control shows the name of a publish group.
To work in a publish group, you must switch to the publish group authoring context for it. To set the publish group
context, follow one of these steps.
In the left navigation pane, select the context control directly under Publish Groups , and then select the name
of the publish group in the list of options that appears. The context control is renamed and shows the name of
the publish group.
In the left navigation pane, select Publish Groups , and then, under Publish Groups , select the name of the
publish group. The context control is renamed and shows the name of the publish group.
After you set your publish group authoring context, you're working in that publish group context when you
preview and edit site content.
To return to the default live site authoring context, select the context control, and then select Live site .

Add pages or other items to a publish group


After you've selected a publish group authoring context, and the context control in the left navigation pane shows
its name, you can create content just as you do in the default live site context. You can also add existing pages or
other items from other publish groups, or from the live site context.
To copy existing pages to a publish group, follow these steps.
1. Select the authoring context to copy from, and then, in the left navigation pane, select Pages .
2. Select the page to add to a publish group.
3. In the command bar, select Copy to Publish group .
4. In the Select a Publish Group dialog box, select the publish group to add the page to, and then select OK .
You can use the same basic steps to create customized product pages, URLs, templates, layouts, fragments, and
media library assets, or to add existing items of these types to a publish group.

Validate a publish group


To make sure that all dependencies in publish group content are satisfied, and that all validations are passed, you
can run validation to identify any issues that must be addressed before you schedule a publish action.
To validate your publish group before you schedule it, follow these steps.
1. In the left navigation pane, select Publish Groups .
2. Select the publish group to validate.
3. In the command bar, select Validate .
Validation is run on all content in the publish group. Any issues that will prevent a successful publish action are
shown in a notification box that appears in the upper right.

NOTE
Validation is always run automatically when a publish group is scheduled. However, the Validate button in the command
bar is useful because it helps identify issues that you must fix before you try to schedule a publish group to go live.

Schedule a publish group to go live


To schedule a publish group to go live on your site, follow these steps.
1. In the left navigation pane, select Publish Groups .
2. Under Publish Groups , select the publish group to schedule.
3. In the command bar, select Edit Schedule . The Edit Schedule dialog box appears.
4. Select the date and time when your publish group should go live, and then select OK .
To unschedule a publish group, follow the same steps, but select Unschedule publish group in the Edit
Schedule dialog box.

NOTE
Very large publish groups might take up to a minute or two to be published when their scheduled time arrives. Be aware
that a publish action isn't instantaneous, and that smaller publish groups will be published faster.

Publish groups FAQ


How many items can be in a publish group?
Currently, there is a limit of 2,000 items per publish group. Be aware that very large publish groups might take
several minutes to be published when their scheduled time arrives.
Are publish groups like code "branches" in software development terminology?
Yes and no. Publish groups can be thought of as forked versions of your site. In that way, they do act like branches.
However, there is no concept of a merge at the level of individual items. The item that is published last just
overwrites what previously existed, and the most recent publish action always supersedes previous publish
actions.
Can I schedule two publish groups to go live at the same time?
No. For performance and conflict reasons, the system will force you to stagger scheduled publish groups at least
five minutes apart.
Can I use publish groups to schedule omnichannel back-office items, such as discounts and product
updates?
Currently, the publish groups feature supports only website content. However, Microsoft is aware that integration
with back-office merchandising scenarios could be valuable for the coordination and automation of omnichannel
campaign launches.
Additional resources
Ways to add content
Page model glossary
Document states and lifecycle
Work with modules
Work with fragments
Templates and layouts overview
Customize site navigation
Add a logo
2/5/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to add a logo to your site in Microsoft Dynamics 365 Commerce.

Overview
When you build your site, one of the first things that you will probably do is add your company or brand logo to
the site's header. The Dynamics 365 Commerce online starter kit provides a module that makes this task easy.
You can add a logo directly to a template, layout, or page. In this way, you can easily change the logo that appears
on specific pages or groups of pages. However, this topic covers the most frequent scenario, where you add your
logo to a header fragment that can be reused across all the pages of your site.

Prerequisites
Before you can add a logo to all the pages of your site, you must complete these tasks.
1. Upload your logo to the Media Library.
2. Create a header fragment. For more information about how to create and use fragments, see Work with
fragments.
3. Include the header fragment in the template that the pages of your site use for their layout and module
options. For more information about templates, see Work with templates.

Add a logo to a header fragment


To add a logo to the header fragment for your site, follow these steps.
1. In the navigation pane on the left, select Page Fragments .
2. Select the header fragment that you created, and then select Edit .
3. Expand the header module.
4. In the property pane for the header module, provide an image and link for the logo.
5. Save the header fragment, finish editing it, and publish it.
After you publish the updated header fragment, all site pages that use the template that contains the header
fragment will show your logo.

Additional resources
Select a site theme
Work with CSS override files
Add a favicon
Add a welcome message
Add a copyright notice
Add languages to your site
Add script code to site pages to support telemetry
Select a site theme
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to set or change your site's theme in Microsoft Dynamics 365 Commerce.

Overview
A site's layout and style (for example, fonts, sizes, and colors) are defined by the theme that you select and apply
to the site. A theme is created and deployed by a developer at your company. For an overview of themes, see
Theming overview. For more information about how to create and deploy themes, see Create a new theme.
By default, when you first create a site, it uses a theme that is named Fabrikam . This default theme is provided as
part of the starter kit. After you've deployed additional themes for your site, you can configure the site so that it
uses one of them instead.

Select the site theme


To select the theme that is applied to your site, follow these steps.
1. In the site authoring environment, go to your site.
2. Go to Site Management > Extensibility .
3. Under Theme , select a theme on the drop-down menu.
4. To apply the selected theme to your site, select Save and publish .

NOTE
The theme that you select is published to your site as soon as you select Save and publish on the Extensibility page. To
preview a theme on your site before you apply it, you can use your development or sandbox environment.

Additional resources
Add a logo
Work with CSS override files
Add a favicon
Add a welcome message
Add a copyright notice
Add languages to your site
Add script code to site pages to support telemetry
Work with CSS override files
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes why, when, and how to use Cascading Style Sheets (CSS) override files in Microsoft Dynamics
365 Commerce.

Overview
Permanent site styles should usually be handled through a site's theme. Themes provide the foundational CSS and
style settings for the modules on any page of your site. Themes are created by using the Dynamics 365
Commerce online software development kit (SDK), and they are deployed to your websites through Microsoft
Dynamics Lifecycle Services (LCS). Theme debugging capabilities and module interface configurations in the SDK
help site developers create customizable and cohesive site design packages. When these design packages are
deployed to a site, site authors can focus on creating, editing, and publishing content instead of site development.
Given the usual lifecycle of a theme, the dependency on developers to make style changes through the SDK and
LCS deployment pipeline can be prohibitive in some scenarios. Site prototypes or hotfixes can seem cumbersome
if the SDK isn't configured, or if you don't have time to wait for an LCS deployment.
In these scenarios, CSS override files can help. In the Commerce authoring tools, authenticated users can upload a
CSS file, preview it, and then activate it to override a site's theme. The overhead of SDK or LCS deployment isn't
required. The overrides that are specified in a CSS override file can be as small as a change to a single text style or
as wide-ranging as a complete brand overhaul.
Before you use CSS override files, be aware of the following limitations:
Only one CSS override file can be active on a site at a time. Therefore, all active overrides must be present in a
single override file.
Although you can preview the overrides in the Commerce authoring tools, there are no dedicated debugging
features to help identify any bugs that the overrides introduce. In other words, when you use CSS override
files, you don't have the same toolset that the SDK provides for module and authoring validation.
Nevertheless, CSS override files provide a quick way to prototype a design or implement a hotfix before a full
theme update is developed and deployed.

Create a CSS override file


To create a CSS override file, you can use any integrated development environment (IDE), text editor, or source
code editor. A typical approach is to use standard web debuggers in your browser to identify style selectors,
properties, and values on your existing site. Most browsers let you change values and preview them in the
debugger. After you've identified the changes that you want to make, you can save them to your own CSS file.

Upload a CSS override file


To upload a CSS file to your site in Commerce, follow these steps.
1. In the authoring tools, go to your site.
2. In the navigation pane on the left, select Design .

NOTE
Depending on the version of the Commerce authoring tools that you're using, you might have to expand Settings
in the navigation pane before you can select Design .

3. At the top of the main design pane, select the CSS override tab, if it isn't already selected.
4. Under Available CSS overrides , select Upload CSS file . A File Explorer window appears.
5. In File Explorer, browse to and select a CSS file, and then select Open . The uploaded CSS file now appears
under Available CSS overrides .

Preview a CSS override file


To preview a CSS override file before you make it active on your live site, follow these steps.
1. In the navigation pane on the left, select Design , and then, on the CSS override tab, under Available CSS
overrides , find the CSS file that you want to preview.
2. Next to the CSS file name, select Preview site .
3. In the Select a URL dialog box, select the URL of the site that you want to see the override applied to, and
then select OK .
4. If there are multiple variants for the selected URL, select the desired variant in the Preview variations dialog
box that appears.
A new browser tab or window is opened, where you can validate your style overrides against your site. You can
then share the URL with other authenticated Commerce users for review and feedback.

Activate a CSS override file on your live site


After you've previewed and approved the CSS override file, you can activate it on your live site.

NOTE
Only one CSS override file can be active on your site at a time. If you activate a new override file, the previous override file is
inactivated. Therefore, make sure that all required overrides are present in a single CSS override file.

To activate a CSS override file, follow these steps.


1. In the navigation pane on the left, select Design , and then, on the CSS override tab, under Available CSS
overrides , find the CSS file that you want to activate.
2. Under the CSS file name, select Activate . The override file immediately becomes active on your live site.

Deactivate a CSS override file on your live site


To deactivate a CSS override file on your site, follow these steps.
1. In the navigation pane on the left, select Design , and then, on the CSS override tab, under Available CSS
overrides , find the CSS file that you want to deactivate.
2. Under the CSS file name, select Deactivate . The override file immediately becomes inactive on your live site.
TIP
To access additional options for CSS override files, select the ellipsis (... ) next to the CSS file name. The Download , Rename ,
and Replace options are useful for quick changes to an existing CSS override file.

Additional resources
Add a logo
Select a site theme
Add a favicon
Add a welcome message
Add a copyright notice
Add languages to your site
Add script code to site pages to support telemetry
Add a favicon
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to add a favicon to your site.

Overview
A favicon is a small graphics file that is shown on a web browser tab, in the Address bar, in the browsing history,
and in bookmarks or favorites, among other places. We recommend that you add a favicon to your site, because it
represents and reinforces your brand, and helps distinguish your site from other sites that your customers visit.
Although you can add multiple favicons of various sizes and file types to your site, this topic shows how to add a
single favicon. However, the same process and location are used to add more favicons.

Upload a favicon to your site's asset collection


To upload a favicon to your site's asset collection, follow these steps.
1. Go to Assets > Upload > Upload assets .
2. Find and select the favicon on your local file system.
3. Enter a title, and then select OK .
4. In the property pane on the right, copy the public URL of the favicon.

NOTE
If you don't select the Publish assets after upload option, you must return to Assets page and manually publish the
favicon later.

Create the HTML for the favicon


To create the HTML for the favicon, use the following HTML snippet. For the href attribute, replace
"Public_URL_for_your_favicon" with the public URL that you copied earlier.
<link rel="shortcut icon" href="Public_URL_for_your_favicon">

Add the HTML for the favicon to the <head> element of your pages
To add a favicon to your site, use the same procedure that is used to add any type of HTML or script to the
<head> element of your site pages.

Additional resources
Add a logo
Select a site theme
Work with CSS override files
Add a welcome message
Add a copyright notice
Add languages to your site
Add script code to site pages to support telemetry
Add a welcome message
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to add a welcome message to your Microsoft Dynamics 365 Commerce website.

Overview
A welcome message on your e-Commerce website can inform visitors about ongoing sales, site updates, or
availability of seasonal collections. The welcome message is set by using the alert module.
The alert module should be added to the Error/Information messages slot of the header fragment. The alert
module lets you specify the text that is shown, the text color, and the alignment. It also lets you specify whether
visitors to the site can dismiss the message.
When a welcome message is added to a shared header fragment, it will be shown on every page that uses the
template where that shared header fragment is used.
To add a welcome message to your site, follow these steps.
1. In Commerce site builder, go to your site.
2. Select Fragments .
3. Select the header fragment to add the message to.
4. In the outline tree, expand Error/Information messages .
5. Select the alert module, and then select OK . If an alert module doesn't yet exist, first select the ellipsis button
(...) next to Error/Information messages , and then select Add module .
6. In the property pane on the right, on the Data tab, select Add Data Source , and then select Content .
7. In the Input Text field, enter the text of the welcome message.
8. Select Save , select Finish editing to check in the header fragment, and then select Publish to publish it.
The welcome message will now appear at the top of every site page that uses the selected header fragment.

Additional resources
Add a logo
Select a site theme
Work with CSS override files
Add a favicon
Add a copyright notice
Add languages to your site
Add script code to site pages to support telemetry
Add a copyright notice
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to add a copyright notice to your e-Commerce website.

Prerequisites
Before you can add a copyright notice to your site, you must have the following items:
A template that includes a shared footer fragment.
A page that uses that template.

Add a copyright notice


To add a copyright notice to the bottom of every page that uses a specific template, follow these steps.
1. Go to Fragments , and then select New Page Fragment .
2. In the dialog box, select the Footer module, and name the fragment. For example, enter Footer-Copyright .
3. Select OK .
4. In the navigation pane, select the ellipsis button (...) next to Footer , and then select Add Module .
5. In the dialog box, select Footer categor y , and then select OK .
6. In the navigation pane, select the ellipsis button next to Footer categor y , and then select Add Module .
7. In the dialog box, select Text block , and then select OK .
8. In the navigation pane, select Text block .
9. In the properties pane on the right, in the Paragraph field, add your copyright message. For example, enter
(C) Fabrikam 2019 .
10. Select Save , select Finish editing , and then select Publish .
11. Go to Templates , select the template, and then select Edit .
12. Under Page Outline , expand Body , and then expand Default Page .
13. Select the ellipsis button next to Footer Slot , and then select Add Fragment .
14. Select the fragment that you created earlier, and then select Select .
15. Select Finish editing to check in the template, and then select Publish to publish it.
The footer that contains the copyright notice automatically appears at the bottom of all pages that use the
selected template.

Additional resources
Add a logo
Select a site theme
Work with CSS override files
Add a favicon
Add a welcome message
Add languages to your site
Add script code to site pages to support telemetry
Add languages to your site
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to add support for additional languages to a Microsoft Dynamics 365 Commerce site.

Overview
You can localize your website into any language that Commerce supports. (The list of supported languages
appears later in this topic.) To add a language on your website, you must first add it to an online store that is
bound to your site.

Add a language to an online store


To add a language to an online store, follow these steps.
1. Open the Dynamics 365 Commerce environment for your site.
2. Go to Retail and Commerce > Channels > Online stores to access the list of online stores that are
configured for your environment. Alternatively, enter online stores as a search term.
3. Select the online store to add a language for.
4. On the Languages FastTab, select Add .
5. In the Language field, select the language to add.
The language that you added will now be available so that you can configure your site to use it in the site
authoring environment.
Languages that are supported by Dynamics 365 Commerce
af
ar
ar-ae
ar-bh
ar-dz
ar-eg
ar-iq
ar-jo
ar-kw
ar-lb
ar-ly
ar-ma
ar-om
ar-qa
ar-sa
ar-sy
ar-tn
ar-ye
be
bg
ca
cs
da
de
de-at
de-ch
de-li
de-lu
el
en-029
en-au
en-bz
en-ca
en-gb
en-ie
en-in
en-jm
en-my
en-nz
en-sg
en-tt
en-us
en-za
es
es-ar
es-bo
es-cl
es-co
es-cr
es-do
es-ec
es-gt
es-hn
es-mx
es-ni
es-pa
es-pe
es-pr
es-py
es-sv
es-tr
es-uy
es-ve
et
eu
fa
fi
fo
fr
fr-be
fr-ca
fr-ch
fr-lu
hi
hr
hu
is
it
it-ch
ja
lt
lv
mk
ms
mt
nb-no
nl
nl-be
nn-no
pl
pt-br
ro
ru
ru-ru
sk
sl
sq
sr
sr-la
sv
sv-fi
th
tn
tr
uk
ur
xh
zh-hans
zh-hk
zh-sg
zu

Additional resources
Add a logo
Select a site theme
Work with CSS override files
Add a favicon
Add a welcome message
Add a copyright notice
Add script code to site pages to support telemetry
Add script code to site pages to support telemetry
3/21/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to add client-side script code to your site pages to support the collection of client-side
telemetry.

Overview
Web analytics are an essential tool when you want to understand how your customers interact with your site and
make decisions that will help optimize the experience for maximum conversion. Many web analytics packages
are available to help you achieve these goals, such as Google Analytics, Clicky, Moz Analytics, and KISSMetrics.
Most web analytics packages require that you add client-side script code in the <head> element of the HTML
for all pages of your site.

NOTE
The instructions in this topic also apply to other custom client-side functionality that Microsoft Dynamics 365 Commerce
doesn't natively offer.

Create a reusable page fragment for your script code


A page fragment allows you to reuse inline or external script code across all pages on your site, regardless of the
template they use.
Create a reusable page fragment for your inline script code
To create a reusable page fragment for your inline script code in site builder, follow these steps.
1. Go to Page Fragments , and then select New .
2. In the New Page Fragment dialog box, select Inline script .
3. Under Page Fragment Name , enter a name for the fragment, and then select OK .
4. Under the page fragment that you created, select the Default inline script module.
5. In the property pane on the right, under Inline script , enter your client-side script. Then configure other
options as you require.
6. Select Save , and then select Finish editing .
7. Select Publish .
Create a reusable page fragment for your external script code
To create a reusable page fragment for your external script code in site builder, follow these steps.
1. Go to Page Fragments , and then select New .
2. In the New Page Fragment dialog box, select External script .
3. Under Page Fragment Name , enter a name for the fragment, and then select OK .
4. Under the page fragment that you created, select the Default external script module.
5. In the property pane on the right, under Script source , add an external or relative URL for the external script
source. Then configure other options as you require.
6. Select Save , and then select Finish editing .
7. Select Publish .

Add a page fragment that includes script code to a template


To add a page fragment that includes script code to a template in site builder, follow these steps.
1. Go to Templates , and open the template for the pages that you want to add your script code to.
2. In the left pane, expand the template hierarchy to show the HTML Head slot.
3. In the HTML Head slot, select the ellipsis button (...), and then select Add Page Fragment .
4. Select the fragment that you created for your script code.
5. Select Save , and then select Finish editing .
6. Select Publish .

Add an external script or inline script directly to a template


If you want to insert an inline or external script directly into a set of pages that are controlled by a single
template, you don't have to create a page fragment first.
Add an inline script directly to a template
To add an inline script directly to a template in site builder, follow these steps.
1. Go to Templates , and open the template for the pages that you want to add your script code to.
2. In the left pane, expand the template hierarchy to show the HTML Head slot.
3. In the HTML Head slot, select the ellipsis button (...), and then select Add Module .
4. In the Add Module dialog box, select Inline script .
5. In the property pane on the right, under Inline script , enter your client-side script. Then configure other
options as you require.
6. Select Save , and then select Finish editing .
7. Select Publish .
Add an external script directly to a template
To add an external script directly to a template in site builder, follow these steps.
1. Go to Templates , and open the template for the pages that you want to add your script code to.
2. In the left pane, expand the template hierarchy to show the HTML Head slot.
3. In the HTML Head slot, select the ellipsis button (...), and then select Add Module .
4. In the Add Module dialog box, select External script .
5. In the property pane on the right, under Script source , add an external or relative URL for the external script
source. Then configure other options as you require.
6. Select Save , and then select Finish editing .
7. Select Publish .

Additional resources
Add a logo
Select a site theme
Work with CSS override files
Add a favicon
Add a welcome message
Add a copyright notice
Add languages to your site
Work with modules
2/5/2020 • 5 minutes to read • Edit Online

This topic describes how and when to use modules in Microsoft Dynamics 365 Commerce.

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Overview
Modules are logical building blocks that make up your page structure, and they have various purposes and
scopes. Some modules are high-level containers, and their only purpose is to hold and organize other modules
(child modules). Other modules, such as a simple image placement module, have a very specific purpose. Other
modules, such as a carousel module, fall somewhere between those two categories.
By default, your Dynamics 365 Commerce site includes a starter kit module library that lets you achieve most
basic e-Commerce scenarios. You should be able to construct an end-to-end e-Commerce site just by using these
modules. However, you might also want to customize these modules or build new, custom modules for specific
needs. If you want to build custom modules, a module design software development kit (SDK) is available to help
you create a custom module library.

Container modules and slots


As was mentioned earlier, some modules are designed to hold child modules. These modules are known as
containers, and they allow for hierarchies of nested modules. Container modules include slots. Slots are used to
handle the layout and purpose of child modules in the container. An example is a basic page container module (a
top-level module for any page) that defines several important slots:
A header slot
A body slot
A footer slot
The module's developer defines these slots, and determines which child modules and how many child modules
can be put directly inside it. For example, the header slot might support only one module of the Header Module
type, whereas the body slot might support an unlimited number of modules of any type (except other page
container modules).
In the authoring tools, page authors don't have to know in advance which modules can and can't be put in each
slot. When page authors select a slot and then try to select a module to add to it, they see a filtered view of
module types that are supported for that slot.

Content modules
Content modules contain content and media elements, such as text (for example, headlines, paragraphs, and links)
or asset references (for example, images, video, and PDFs). Examples of typical content module types are Hero ,
Feature , and Banner . Modules of these three types can contain text or media, and they don't require any child
modules to make something visible on a page.
The majority of typical, day-to-day page and content authoring activities involve content modules, primarily
because these modules define the actual content that is rendered in their parent container modules. Many content
modules are available, and these modules are typically the last pieces that you will add to a page's hierarchy of
nested modules.
The following illustration shows how modules are nested inside parent container module slots.

Add or remove modules


The following procedures describe how to add and remove modules.
Add a module
To add a module to a slot or container on a page, follow these steps.
1. In the outline pane on the left, select a container or slot that a child module can be added to.

NOTE
The module designer defines the list of modules types that can be added to a specific module slot. Template authors
can then refine the allowed module options to help guarantee consistent search engine optimization (SEO) and
authoring efficiency for all the pages pages that are built from a specific template.

2. Select the ellipsis button (...) for the module, and then select Add Module . The Add Module dialog box
appears. This dialog box is automatically filtered so that it shows only modules that are supported in the
selected container or slot. The list of modules is determined by the page's template or the container
module definition.

NOTE
If a container or slot doesn't support new child modules, the Add Module option is unavailable.

3. In the dialog box, search for and select a module to add to your page.

TIP
Feature and Hero are good module types for beginners to work with.
4. Select OK to add the selected module to the selected container or slot on your page.
Remove a module
To remove a module from a slot or container on a page, follow these steps.
1. In the outline pane on the left, select the ellipsis button next to the name of the module to remove, and then
select the trash can button.
2. When you're prompted to confirm that you want to remove the module, select OK .

Configure modules
The following procedures describe how to configure content and container modules.
Configure a content module
To configure a content module on a page, follow these steps.
1. In the outline pane on the left, expand the tree and select any content module (for example, Feature , Hero , or
Banner ).
2. In the properties pane on the right, find the module's content and settings controls.
3. Enter properties for any desired module controls.
4. Select Save in the command bar. This will also refresh the preview canvas.
Configure a container module
To configure a container module on a page, follow these steps.
1. Select a container module on your page (for example, a carousel or fluid container module).
2. In the properties pane on the right, expand the nested controls by selecting the headers, and set any required
control values.
3. In the outline pane on the left, select the ellipsis button next to the name of either the container or any slots
inside the container, and then select Add Module . Then, add child modules to the selected container. For more
information, see the Work with modules section earlier in this topic.
4. If multiple child modules exist as siblings in a parent container, you can change their display order in the
parent container. Select the ellipsis button for a module, and then use the up arrow and down arrow buttons.

Additional resources
Templates and layouts overview
Work with templates
Work with preset layouts
Work with fragments
Add a container module to a page
Work with publish groups
Work with fragments
2/5/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes why, when, and how to use fragments in Microsoft Dynamics 365 Commerce.

Overview
Fragments allow for a centralized authoring experience for module configurations that must be reused
throughout your site. For example, headers, footers, and banners are often configured as fragments, because they
are shared across many pages. You can think of fragments as miniature webpages that can be inserted into other
pages on your site. Fragments have their own lifecycle. In other words, they are created, referenced, updated, and
deleted as independent entities in the authoring tools.
After fragments are configured, they can be used wherever modules can be used in your site structure.
Fragments can be referenced on pages, in layouts, in templates, and in other fragments.

NOTE
Fragments can be nested up to seven levels deep inside other fragments.

For example, if you want to promote a seasonal event cross many pages on our site, you can use a fragment. The
first step in the process of creating a new fragment is to select the type of module that you want to start from. For
this example, you can build the fragment from a hero module.

NOTE
Fragments can be built from any module type.

You can then configure the hero fragment with your specific promotional content. You can also localize it as you
require. The new stand-alone hero fragment can then be consumed as a preconfigured module throughout your
site. You can easily add it to templates, to specific pages, or to other fragments that can contain hero modules.
All the places where the fragment is added are references to the central hero fragment that you created. If you
publish changes to the fragment, those changes are immediately reflected in all the places where the fragment is
referenced across the site. Therefore, fragments provide a powerful and efficient way to reuse and centrally
manage module configurations on a site. By effectively using them, you can significantly increase agility and help
reduce the cost that is associated with managing site content.
The following illustration shows how fragments can be used to centralize authoring of shared module
configurations across an e-Commerce site.
Create a fragment
You can either create a new fragment or save an existing module configuration as a fragment.
Save an existing module configuration as a fragment
To convert a previously configured module to a reusable fragment, follow these steps.
1. Open a page or template that contains the module that you want to convert to a fragment.
2. In the outline pane on the left, select the ellipsis button (...) next to the name of the module.
3. Select Share as Fragment .
4. A dialog box appears. Enter a name and metadata for the fragment.
5. Select OK to save the module configuration as a fragment that can be added to other pages.
The following image shows how to save a module configuration as a fragment.

Create a new fragment


To create a new fragment, follow these steps.
1. In the navigation pane on the left, select Fragments .
2. Select New Page Fragment . A dialog box appears that shows all the available module types. As was
mentioned earlier, fragments can be created from any module type.
3. Select a module type for your fragment.
The following image shows where to create a new fragment.

TIP
By selecting a generic container module type, you get the most flexibility when you need to update and configure your
fragment later.

Add, remove, or edit fragments on a page


The following procedures describe how to add, remove, and edit fragments.
Add a fragment
To add a fragment to a page, follow these steps.
1. In the outline pane on the left, select a container or slot that child modules can be added to.
2. Select the ellipsis button next to the name of the container or slot, and then select Add Fragment . A
dialog box appears.

NOTE
If the container or slot doesn't support new child modules, the Add Fragment option is unavailable.

3. In the dialog box, search for and select a fragment to add. If no available fragments are listed, you might
first have to create a fragment from a module type that the selected container or slot supports.
4. Select your desired fragment to add it to the container or slot on your page.
NOTE
The modules that are allowed in a container or slot are defined by the page's template or the modules' own definitions.

Remove a fragment
To remove a fragment from a slot or container on a page, follow these steps.
1. In the outline pane on the left, select the ellipsis button next to the name of the fragment to remove, and then
select the trash can button.
2. When you're prompted to confirm that you want to remove the fragment, select OK .

NOTE
When you remove a fragment from a page, you just remove the reference to it from that page. You do not delete the
fragment from your site. To delete fragments from your site, you must use the fragment inspector user interface (UI). You
can delete fragments from a site only if they aren't currently referenced by any pages, templates, or other fragments.

Edit a fragment
To edit fragments, you must use the fragment editor UI. This restriction is by design. It helps guarantee that
authors don't confuse the process of editing the modules for a specific page with the process of editing
fragments that might be shared across many pages.
To edit a fragment, follow these steps.
1. In the navigation pane on the left, select Fragments .
2. Under Fragments , select the fragment to edit.
3. Edit the fragment's module properties and structure as you require. The process resembles the process for
editing modules are edited in the page editor view.
You can also edit a fragment by selecting it on a page, in a template, or in a parent fragment, and then selecting
Edit Fragment in the properties pane on the right.

Additional resources
Templates and layouts overview
Work with templates
Work with preset layouts
Work with publish groups
Templates and layouts overview
2/1/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Templates are a foundational element of the Microsoft Dynamics 365 Commerce page model. If your goal is to
maximize efficiency and consistency for site authoring workflows, it's important that you learn how to take
advantages of templates for your website. Early decisions about template structure are important, and can
significantly affect cost and agility for daily, seasonal, and site-wide brand updates. Well-structured templates
have other benefits too. For example, they help improve site-wide search engine optimization (SEO) scores and
minimize bug counts.
A good way to start to work with templates is to understand the functional benefits of templates and layouts, the
differences between them, and the hierarchy.
The following illustration shows the page model hierarchy behind a rendered webpage.

EN T IT Y B A SIC F UN C T IO N

Template Templates define the module options and basic scaffolding


for a set of layouts and page instances.
EN T IT Y B A SIC F UN C T IO N

Layout Layouts define the final selection and arrangement of


modules for a page or a set of pages.

Page instance Page instances define the data and content for specific
pages.

Templates
Templates are at the top of the Dynamics 365 Commerce page model hierarchy and represent an important
early step for site configuration. Conceptually, templates help control consistency across a family of child layouts
and pages by defining the base structure and authoring options for downstream layout creation and page
creation workflows. Templates can help simplify the content authoring process through predefined, centrally
managed elements (such as headers and footers) and guided authoring flows that help guarantee that module
configuration choices are on-brand.
Controlling consistency
When you design a template, the biggest business decision that you must make is how much control the
template should have over the page creation process. A template that leaves everything open for a downstream
author is the easiest type of template to create, but it might have long-term consequences for the maintenance
of pages that are created from it. A well-written template provides guidance and a streamlined authoring
experience, but it also gives authors enough flexibility so that they can complete their task. All these aspects
depend on the level of control that the template enforces.
Templates can help content authors be more efficient and stay on-brand in the following ways:
Limit the modules that can be used on a page.
Suggest default module and configuration choices.
Explicitly make some module and configuration choices that are controlled at the template level. This process
is also known as locking a setting.
The following example shows how a basic template (template X) can be configured:
All child layouts of template X must have a header container, a body container, and a footer container.
In template X, the configuration of the header container is locked and can be changed only in template X
itself. All child layouts and pages always have this header.
The body container requires at least one module and up to a maximum of ten modules. These modules are
defined by downstream layouts and pages.
For the body container, the hero, feature, carousel, and banner modules are available.
A footer container is configured in template X, but it can be overridden by downstream layouts and pages.
The template in this example defines a simple structure and set of options for downstream content authors.
Notice that some parts of a page (in this case, the header) are fully defined and locked in the template, and they
can't be changed by downstream authors. Other parts (in this case, the body) can be defined by downstream
authors within specific guidelines (in this case, a minimum number and maximum number of modules of
specific types). And other parts (in this case, the footer) are defined in the template but can be overridden by
downstream authors.
An important initial step for site and brand admins is to determine the correct balance between constraint and
flexibility for child layout and page authors. When templates are used, this balance is completely configurable. It
affects whether page elements are centrally updated (locked in the template) or left to individual child levels that
are lower in the page hierarchy.
To start to use templates, Work with templates.

Layouts
Layouts are the next level in the page model hierarchy, below templates. Whereas a template defines all the
modules that are allowed for a page, a layout is an explicit selection and arrangement of modules. Pages are the
next level in the page model hierarchy, below layouts. They define the localized content for the modules that are
selected in the layout.
The following example builds on the template example from the previous section, and shows how a basic layout
can be configured:
The parent template of the layout requires that the body container have between one and ten modules.
These modules can be only hero, feature, carousel, and banner modules. Therefore, the layout can define
the following selection and arrangement of modules:
The first module in the body container is a banner module, and it's followed by a hero module and two
feature modules.
The first feature module is left-aligned, and the second feature module is right-aligned.
Even though a default footer is inherited from the parent template, the template author left the footer
unlocked. Therefore, the layout can override it by defining a different footer fragment.
The layout in this example defines the final arrangement of modules for child pages. Like a template, a layout
can define default or locked module properties that will always be inherited by child pages (for example, the
alignment of the feature modules). The actual content or data for every module in the layout is then defined
farther down the hierarchy, in each child page instance. An important distinction here is that layouts don't
directly contain localizable content, whereas their child pages do. The layout's primary function is to define the
final arrangement and default configuration of modules for its child pages.
This hierarchy is powerful for two reasons. First, layouts that share the same parent template are treated as
compatible for layout switching scenarios. Therefore, the layout for any page can be changed to another layout
from the same template hierarchy without requiring that page-level content be reauthored. You can take
advantage of this capability to do seasonal design updates, experiment, or do a permanent site redesign. Second,
layouts provide another way to centrally modify shared elements for a group of pages without requiring
updates to individual pages. For example, if a product category has 1,000 pages that share the same layout, the
modules can be reordered in the layout, and this change will immediately be reflected in all 1,000 child pages.
By understanding this hierarchy, you can deliver an agile and efficient site structure that helps save cost, is
scalable, and produces better results as the site evolves over time.
Preset and custom layouts
Layouts on your site can be either preset or custom:
Preset layouts allow for a page creation workflow where all modules are already selected and arranged,
and only data entry is required. This approach can help save time when many pages must be authored that
have the same layout requirements. Preset layouts have a one-to-many relationship with their child pages.
Therefore, a single preset layout can be used to centrally control the module arrangement for hundreds or
thousands of child pages.
Custom layouts are essentially single-use layouts that are embedded in one page. They aren't exposed as
an option when other new pages are created or in layout switching scenarios. The benefit of this approach is
that an author can experiment by authoring a page that uses a custom layout. Then, if the author wants to
reuse the layout for other pages, it can easily be converted to a preset layout. The new preset layout is then
exposed as an option in page creation workflows and in layout switching scenarios for pages from the same
template hierarchy. Conversely, preset layouts can be branched into custom layouts. In this way, an author
can break a page away from the preset layout and create a new single-use custom layout. (This new custom
layout is still bound by any constraints in the parent template.)
Preset layout and custom layouts are edited in different parts of the authoring toolset. Because custom layouts
have no dependencies on other pages, they are edited directly in the page editor. In this case, the existence of a
layout is mostly transparent to the user and is exposed only in page-level properties and through the actions for
layout options. However, because changes to preset layouts can affect many child pages, they must be edited in
the layout editor, where publish actions consider the full downstream impact on child pages.
The following illustrations shows scenarios for preset and custom layouts.

To start to use preset layouts, see Work with preset layouts.

Additional resources
Work with templates
Work with preset layouts
Work with publish groups
Work with templates
4/17/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to work with templates in Microsoft Dynamics 365 Commerce.

Overview
As was discussed in Templates and layouts overview, templates define the set of options that is available to
downstream authors. Templates are useful to an enterprise's web authoring team for several reasons, and well-
structured templates can help with all the following goals:
Simplify the authoring experience for day-to-day content editor roles.
Filter module options so that only relevant modules are shown for a specific page section. (For
example, a marketing section of a template can be configured to filter out irrelevant modules that
should never be used in that context, and that will just complicate content authoring tasks if they are
shown.)
Configure default module setting to help improve authoring efficiency.
Define default page fragments to help improve authoring efficiency. (For example, header and footer
fragments in a template will automatically appear on every downstream page.)
Keep enterprise sites on-brand by defining an approved set of module arrangement and configuration
options.

TIP
Successful e-Commerce sites provide customers with familiar, repeatable, and on-brand user experience (UX) design
patterns. By using templates, you help control consistency across your site.

Improve search engine optimization (SEO) scores by ensuring repeatable and programmatically defined
page definitions and metadata.

NOTE
Although templates are designed to control consistency across a site, they can theoretically be configured so that they
don't enforce any consistency. Brand and site administrators can define any level of variability for the pages on their site.
For example, a template can be left entirely open, so that content authors can create any page design that they choose. In
this case, none of the benefits in the preceding list are applicable.

Modify a template
Templates are modified by using the template editor.
To open the template editor, follow one of these steps:
In the navigation pane of your site, select Templates , and then select the template to modify.
In the page editor for an existing page, select the top node in the outline tree on the left. Then, in the property
pane on the right, select Edit Template .
The outline tree view on the left shows the module options and structures that are available to child layouts and
pages. When you select a module in the outline tree, you can view the template properties for the selected
module in the property pane on the right. Some of these properties are unique to template editing. The following
table describes these properties.

P RO P ERT Y N A M E DESC RIP T IO N

Min Occurs This property defines the minimum number of occurrences


for the selected module. For example, if the value is set to 1 ,
the module is required for downstream authors, whereas if
the value is set to 0 (zero), the module is optional.

Max Occurs This property defines the maximum number of occurrences


for the selected module. For example, if the value is set to 1 ,
the module can be added only one time.

Min Modules (Containers) For modules that contain other modules (that is, for
containers modules), this property defines the minimum
number of total modules that should be added as children.
For example, for a carousel module, the value might be set to
a number that is more than 1.

Max Modules (Containers) For container modules, this property defines the maximum
number of total modules that should be added as children.
For example, for a carousel module, the value might be set to
a number that is less than 10.

Locked A Locked Boolean control appears next to all core module


properties. It lets the template author lock a module setting
in the template. A module setting that is locked can't be
overridden by any child layouts or pages. It becomes a
centrally editable property value for all layouts and pages
that use the template.

Create a new template


To create a new template, follow these steps.
1. In the navigation pane of your site, select Templates to open the template inspector view.
2. Select New Template .
3. In the template creation dialog box, enter a name and description for the template. The values that you enter
will be shown to authors when they create new pages. Therefore, enter metadata that will be useful to page
authors. For example, enter Use this template to create general marketing pages as the description.
This metadata can be edited later.
4. Select OK to create the new template and open the template editor. The template editor shows an outline tree
on the left and a property pane on the right.
5. In the outline tree, expand the nodes, and select the HTML Head slot.
6. If there aren't yet any modules in this slot, select the ellipsis button (...), and then select Add Module .
7. In the Add Module dialog box, select Default page summar y , and then select OK .
8. In the outline tree, select the new module, and then, in the property pane, enter any default settings that
should be automatically configured for all child pages of the template. If you don't want any default settings,
leave the values blank.
9. In the outline tree, select the Body slot, select the ellipsis button, and then select Add Module .
10. Select a page container module (there might be only one option), and then select OK .
Under the new page container module, you will see a new set of slots (Header , Main , and so on). Here, you can
add and configure the module options that will be available to authors when they create pages from this
template. By default, if you don't add any modules to a slot, all available modules types are supported for that
slot.
The template is now technically valid, and it can be saved, checked in, and used to create new pages. However, the
next three sections describe some other default settings that you might want to configure first.

Add a header and a footer


If your site already has a header fragment, follow these steps to add a header and a footer to a template.
1. In the outline tree, expand the Body slot and its child page module.
2. Select the Header slot.
3. Select the ellipsis button for the Header slot, and then select Add Fragment .
4. Search for and select your site's header fragment, and then select OK .
All pages that use the template will now automatically inherit this header fragment.
If your site doesn't yet have a header fragment, see Create a fragment for information about how to create it, and
then complete the previous procedure.

Change the template theme


To set the default theme for all pages that use a template, follow these steps.
1. In the outline tree on the left, expand the Body slot.
2. In the Body slot, select the page container module (for example, Default Page ).
3. In the property pane on the right, in the Theme field, select a theme.
By default, all new pages will now use the selected theme. To prevent pages from overriding this setting at the
layout or page level, set the Locked Boolean control to True .

Add a script to a template


You can add HTML <script> elements that contain JavaScript to your template. In this way, you can provide
default script behaviors to the HTML head, body begin, and body end sections of your pages.
To add a script to a template, follow these steps.
1. In the outline tree on the left, select the slot where you want to add the <script> element (for example, the
HTML head, body begin, or body end).
2. Select the ellipsis button for the slot, and then select Add Module .
3. In the Add Module dialog box, select a script module (for example, External Script or Inline Script ).
4. In the property pane on the right, in the appropriate script property control (for example, Inline Script or
Script tags ), enter your script.
5. In the property pane, enter any other optional settings that you want to configure.
TIP
If you want to reuse any of your script modules for other templates, you can convert them to fragments. In this way, you
help make the authoring process more efficient, and you centralize the update process. For information about how to
convert a script module to a fragment, see Save an existing module configuration as a fragment.

Save, check in, preview, and publish a template


To save and check in a template, follow these steps.
1. Select Save at the top of the template editor. Saved changes don't affect downstream pages until they are
checked in.
2. Select Finish editing . Your changes are now discoverable for downstream workflows.
To preview your changes, either open an existing page that uses the template or create a new page from the
template.
After you've previewed the changes to your template, follow one of these steps to publish the template to your
live site:
Go to Templates , select the template, and then select Publish .
Select the layout name to open the layout editor, and then select Publish .
Publish a page that references the unpublished template. The template is automatically published.

WARNING
When a template, or any other content management system (CMS) item, is published, it's discoverable on the internet.
Don't publish documents or assets until you're ready to make them public. Document versions that have been saved and
checked in, but that haven't been published, are discoverable only to authenticated system users.

Additional resources
Templates and layouts overview
Work with preset layouts
Work with preset layouts
4/17/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to work with preset layouts in Microsoft Dynamics 365 Commerce.

Overview
Before you complete the procedures in this topic, be sure to read Preset and custom layouts. For a general
overview, see Templates and layouts overview.

Create a new preset layout


There are two methods for creating a preset layout. You can save an existing custom layout as a new preset
layout, or you can create a preset layout from scratch.
Create a preset layout from an existing custom layout
To create a preset layout from an existing custom layout, follow these steps.
1. Open an existing page that doesn't currently use a preset layout, and that has a module structure that you
want to reuse for other pages on your site.
2. Select Edit to check out the page.
3. Select Save as new layout . The Save as new layout dialog box appears.
4. Enter a name and description for your preset layout. The values that you enter will be shown to other authors
when they create new pages from your layout or switch to it. Therefore, enter values that will be useful to page
authors.
5. Select OK .
The preset layout will now be available when you create new pages or select a different layout for a page in the
same template hierarchy.

TIP
To quickly see whether a specific page is currently bound to a preset layout, select the page in the pages list view, and
inspect the layout metadata in the property pane on the right.

Create a new preset layout


To create a preset layout from scratch, follow these steps.
1. In the navigation pane on the left, select Layouts .
2. Select New Layout . The New layout dialog box appears.
3. Select the template to use for your preset layout.
4. Enter a name and description for your preset layout. The values that you enter will be shown to other authors
when they create new pages from your layout or switch to it. Therefore, enter values that will be useful to page
authors.
5. Select OK to create the new preset layout and open the layout editor.
6. In the layout editor, add and configure modules by using the outline tree on the left and the property pane on
the right. (The process resembles the process for adding and configuring modules for a template in the
template editor.) The arrangement of modules and any locked default settings become the centralized module
configuration for any pages that use this preset layout.

Modify a preset layout


To modify a preset layout, follow these steps.
1. In the navigation pane on the left, select Layouts .
2. In the layout editor, in the outline tree on the left, select the module to modify. Then follow any of these
steps:
To move a module up or down inside its parent, select the ellipsis button (...) for the module, and then
select Move up or Move down .
To change a module's default settings, use the property pane to enter default values and optionally lock
them for all downstream pages.
To add new modules or fragments to container modules, select the ellipsis button, and then select Add
module or Add fragment .
To remove a module from the layout, select the ellipsis button, and then select Delete .

Change a preset layout theme


A typical practice is to set a default theme for all pages that use a preset layout.
To set or change the theme for all child pages that use your preset layout, follow these steps.
1. In the layout editor, in the outline tree on the left, select the page container module. (Typically, this module is
the second node and is named Default page .)
2. In the property pane on the right, in the Theme field, select a theme.

Save, check in, preview, and publish a preset layout


To save and check in your preset layout, follow these steps.
1. Select Save at the top of the layout editor. Saved changes don't affect downstream pages until they are
checked in.
2. Select Finish editing . Your changes are now discoverable for downstream workflows.
To preview your changes, either open an existing page that uses the preset layout or create a new page from the
layout.
After you've previewed the changes to your preset layout, follow one of these steps to publish the layout to your
live site:
Go to Layouts , select the layout, and then select Publish .
Select the layout name to open the layout editor, and then select Publish .
Publish a page that references the unpublished layout. The layout will automatically be published.

WARNING
Preset layouts can be referenced by multiple pages. When you publish a preset layout, be aware that you might affect the
layout of multiple pages.
Additional resources
Templates and layouts overview
Work with templates
Modify an existing site page
4/17/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to modify an existing site page in Microsoft Dynamics 365 Commerce.

Overview
When you must modify a page, the first step is to open it in the page editor. Go to the site that contains your page,
and then, in the list of pages, find the page that you want. If you can't find the page, you can use the authoring
tool's rich search functionality. Either type the exact page name, or type the first few letters of it and then an
asterisk (*). A filtered list of pages appears. You can use this list to find the page that you want. After you find the
correct page, select the page name to open the page in the page editor.

TIP
If your page is visible in the page inspector, you can select Edit and check the page out before you open it in the page
editor. In this way, you can check out multiple pages at the same time.

After the page is open in the page editor, you must make sure that it's checked out to you. The command bar in the
authoring tool is dynamic, context-sensitive, and state-sensitive. Therefore, it shows only the actions that you can
currently perform on the page. For example, if the page isn't checked out to you, the Save and Finish editing
buttons don't appear on the command bar. The state of the page is also shown on the right side of the window.
If the page isn't already checked out to you, select Edit on the command bar. The command bar changes to reflect
the new state of the page. You also receive a notification that states that the page was checked out to you.
The next step is to make your actual changes. Often, you will use the page outline tree on the left to find and select
the module that you want to change, and then make changes in the properties pane on the right.
However, your change might sometimes involve adding or removing models or fragments. To add a fragment or
module, use the page outline tree to find the slot that you want to add the module or fragment to, and then select
the ellipsis button (...) for that slot. A menu appears that includes commands for adding a module or fragment. To
remove a module or fragment, find and select it in the page outline tree, select the ellipsis button, and then select
the command to delete the module or fragment.

TIP
You can also view and edit the properties for any module that is visible in the "what you see is what you get" (WYSIWYG)
preview by selecting it directly.

After you've finished making your changes and previewing their effect, you should check in the page by selecting
Finish editing on the command bar.
To publish your changes immediately, select Publish on the command bar. The latest checked-in version of the
page that you modified is published and becomes available to external users who view your site.
Example: Change the video on the home page
The following example shows how to modify the home page by changing the video that appears in the video
player module.
1. Under Sites , select Fabrikam (or the name of your site).
2. In the navigation pane on the left, select Pages .
3. Find and select the home page to open it in the page editor.
4. On the command bar, select Edit .
5. In the page outline, select the Main slot.
6. Under the Main slot, expand all the fluid container modules.
7. Find and select the video player module.
8. In the properties pane on the right, select the video property. The asset picker appears.
9. In the asset picker, select an available video asset, or select Upload new asset to upload a new video asset.
10. Select OK .
11. Select Save , and then select Finish editing .
12. In the Comments field, enter Changed the video , and then select OK .
13. Select Preview to preview the updated page. When you've finished, close the preview tab to return to the
authoring tool.
14. Select Publish .

Additional resources
Add a new site page
Select page layouts
Manage SEO metadata
Save, preview, and publish a page
Enrich a product page
Enrich a category landing page
Verify page content accessibility
Add a new site page
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to add a new site page in Microsoft Dynamics 365 Commerce.

Overview
After you've created templates and fragments for your site, the next step is to start to create pages that use them.
To get started, you must select a template or layout, a page name, and a page URL.

Template or layout
You can use either a template or a layout for your new page. For more information, see Templates and layouts
overview.

Page name
The page name must be unique to your page. It should be descriptive, so that you can easily find it and other
people know what the page is intended for. Choose the page name carefully, because it can't be changed later.

Page URL
You can have the option to enter a URL for your new page. When you create a page, you can enter a string that
will be used to form a complete URL. This string is known as a relative URL or a URL slug. A complete URL is then
generated based on the URL slug, and the new page is assigned to it. You can change the URL slug later, before
you publish the page. For more information, see Create a page URL.

NOTE
Dynamics 365 Commerce decouples URLs and content. In other words, a page can be created that isn't associated with an
URL, and a URL can be created that isn't associated with a page. Therefore, content swapping can be done for a URL and
doesn't require downtime, and redirects are easier to manage.

Add a new page


To add a new site page to your site, follow these steps.
1. Under Sites , select Fabrikam (or the name of your site).
2. Select New Page .
3. In the New Page dialog box, select a template, and then select OK .
4. In the Page Name field, enter a page name (for example, My New Page ).
5. In the URL field, enter a string (URL slug) to complete the URL (for example, mynewpage ).
6. Select OK . The page editor appears. Notice that a header and a footer are automatically added to the page,
based on the template that you selected.
7. In the page outline, select the Main slot, select the ellipsis button (...), and then select Add Module .
8. Select Container , and then select OK
9. Select Fluid Container , select the ellipsis button, and then select Add Module .
10. Select Content Rich block , and then select OK .
11. Select Content Rich Block , select the ellipsis button, and then select Add Module .
12. Select Content rich block item , and then select OK .
13. In the properties pane on the right, select Paragraph , and then, in the field, enter My test text .
14. Select Save , and then select Finish editing .
15. In the Comments field, enter Added new page , and then select OK .
16. Select Preview to preview your page. When you've finished, close the preview tab to return to the authoring
tool.
17. Select Publish .
18. In the navigation path (breadcrumbs), select Fabrikam (or the name of your site).
19. In the navigation pane on the left, select URLs .
20. Find and select your URL (mynewpage ) in the list.
21. Select Publish .

Additional resources
Modify an existing site page
Select page layouts
Manage SEO metadata
Save, preview, and publish a page
Enrich a product page
Enrich a category landing page
Verify page content accessibility
Select page layouts
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to create and select page layouts in Microsoft Dynamics 365 Commerce.

Create layouts for an existing page


NOTE
You can create layouts for an existing page only if that page has at least two modules under the main slot.

To create layouts for an existing page, follow these steps.


1. Go to Pages , and find the existing page in the list. Use the search feature as you require.
2. Select the page, select Edit to check it out, and then select the page name to open it. Make a note of the module
order.
3. Select Save as New Layout .
4. Enter a name for the layout, and then select OK .
5. Select Conver t to Embedded Layout .
6. Change the order of the modules as you require, and make a note of the new order.
7. Select Save as New Layout .
8. Enter a name for the layout, and then select OK .
9. Select Change Layout , select the first layout that you created, and then select OK . Make a note of the module
order. Change it so that it matches the module order that was saved with the layout.
10. Select Finish editing to check in the page, and then select Publish to publish it.

Select a different layout for an existing page


NOTE
You can select a different layout for an existing page only if the template that was used to create that page has more than
one layout.

To select a different layout for an existing page, follow these steps.


1. Go to Pages , and find the existing page in the list. Use the search feature as you require.
2. Select the page, select Edit to check it out, and then select the page name to open it.
3. Select Change layout .
4. Select the new layout for the page, and then select OK . The page editor is refreshed to show the new layout.
5. Select Finish editing to check in the page, and then select Publish to publish it.
Additional resources
Modify an existing site page
Add a new site page
Manage SEO metadata
Save, preview, and publish a page
Enrich a product page
Enrich a category landing page
Verify page content accessibility
Manage SEO metadata
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to manage search engine optimization (SEO) metadata in Microsoft Dynamics 365
Commerce.

Overview
SEO metadata for a site can be managed by using site maps and page metadata.

Site maps
A site map is a machine-readable list, in XML format, of the pages on your website. It's intended to be consumed
by search engines, so that they can provide better search results from your site. Site maps can be manually
ingested by search engines or published in a robots.txt file.
Dynamics 365 Commerce supports automatic generation of site maps. Site maps are automatically updated when
pages are published and unpublished.
Turn on site map generation
1. Sign in to the authoring tool.
2. Under Sites , select Fabrikam (or the name of your site).
3. In the navigation pane on the left, select Site Management .
4. Make sure that the Site maps enabled option is turned on.

Page metadata
Dynamics 365 Commerce lets you manage SEO metadata for individual pages. You can view and modify this
information in the SEO Proper ties section of a page container. The following SEO metadata properties are
supported:
Title
Description
SEO keywords
Aria labels
noindex
nofollow
noarchive
nocache
noOpenDirectoryProject
nosnippet
noImageIndex
unavailableAfter
Modify page metadata
To modify page metadata, follow these steps.
1. Under Sites , select the Fabrikam (or the name of your site).
2. In the navigation pane on the left, select Pages .
3. Select the home page to open it in the page editor.
4. On the command bar, select Edit .
5. In the properties pane on the right, expand Default metatags .
6. To add a new metatag, select Add , and then enter the tag in the field. To remove an existing metatag, select the
trash can symbol to the right of it.
7. Select Save , and then select Finish editing .
8. In the Comments field, enter Updated metatags , and then select OK .
9. Select Preview to preview your page. When you've finished, close the preview tab to return to the authoring
tool.
10. Select Publish .

Additional resources
Modify an existing site page
Add a new site page
Select page layouts
Save, preview, and publish a page
Enrich a product page
Enrich a category landing page
Verify page content accessibility
Save, preview, and publish a page
4/17/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to save, preview, and publish a page in Microsoft Dynamics 365 Commerce.

Save a page
To save a page, you must have it checked out to yourself and open in the page editor. To check out a page, select
Edit on the command bar. After you've finished editing a page, you should immediately save it to ensure that your
changes are stored.
When you save a page, the changes are visible only to you. The save operation is intended primarily to store
changes while the page isn't yet ready to be checked in. When you've finished modifying the page, we
recommend that you check it in, so that the changes become visible to others. At that point, the page can also be
checked out by other users who must modify it.

Preview a page
The authoring tool offers two kinds of preview features: a "what you see is what you get" (WYSIWYG) preview
pane in the page editor and a separate preview window.
While you're using the page editor, a "what you see is what you get" (WYSIWYG) preview appears in the center
pane. This preview is automatically updated whenever you save the page. You can also manually update it by
selecting Refresh on the command bar. The WYSIWYG preview renders the page just as the site's users will see it,
but authoring helpers are rendered on top of it.
When you've finished modifying the page, you might want to preview it to see what customers will see. To
preview a page, select Preview on the command bar. The preview will appear in a separate browser window. The
page in the preview window is rendered just as the site's user will see it. You can resize the window to make sure
that responsive modules are correctly rendered in all view ports.

NOTE
Authentication and correct permissions are required to preview unpublished content. Therefore, if you share the URL of the
preview with someone, that person must have the correct permissions to access the content.

Publish a page
When your page is ready, the next step is to publish it, so that external users can view the content. Before you can
publish a page, you must check it in by selecting Finish editing on the command bar.
You can publish and unpublish pages from either the page inspector or the page editor. The page inspector shows
a list of pages and allows for bulk operations. The page editor can be used to publish or unpublish only the single
page that is open in it.
To publish one or more pages from the page inspector, select the pages, make sure that they are checked in, and
then select Publish on the command bar. The pages are published, and you receive a notification about the
operation in the authoring tool.
To publish a single page from the page editor, the procedure is similar. While the page is open in the page editor,
make sure that it has been checked in, and then select Publish on the command bar. The page is published, and
you receive a notification about the operation.
When you publish a page, just the page content is published. You and other users can go to the page and view it
only after a URL is associated with it. The URL must be published separately.

IMPORTANT
Before you can publish a page, any images or fragments that the page references must already be published.

Save, preview, and publish a home page


To save, preview, and publish a home page, follow these steps.
1. Under Sites , select Fabrikam (or the name of your site).
2. In the navigation pane on the left, select Pages .
3. Find and select the home page to open it in the page editor.
4. Select Edit .
5. Modify the page as you require.
6. Select Save , and then select Finish editing .
7. In the Comments field, enter a note about the changes that you made, and then select OK .
8. Select Preview to preview your page. When you've finished, close the preview tab to return to the authoring
tool.
9. Select Publish .

Publish a URL
To publish a URL, follow these steps.
1. Under Sites , select Fabrikam (or the name of your site).
2. In the navigation pane on the left, select URLs .
3. Find and select the URL to publish.
4. On the command bar, select Publish .

Additional resources
Modify an existing site page
Add a new site page
Select page layouts
Manage SEO metadata
Enrich a product page
Enrich a category landing page
Verify page content accessibility
Enrich a product page
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to enrich a product page in Microsoft Dynamics 365 Commerce.

Overview
By default, your site uses a generic page to show product data. This page includes the basic information about the
product and the controls that are required to sell it. However, you can supplement the information that comes
from the Commerce Scale Unit with additional images or text for a specific product. This process is known as
enriching the product page.
In many cases, you will want to use specific additional content for your products. When you go to Retail and
Commerce in the authoring tool, you will see a list of products from the channel that is assigned to the site. In
this list, the Enriched column indicates whether the product page for a product has been enriched. If a check
mark appears in the column, an enriched product page exists for the product. If no check mark appears, the
default product page and content are used for the product. You can preview both enriched and non-enriched
product pages by selecting a product name in the list.

Enrich a product page


To enrich a product page, follow these steps.
1. Under Sites , select Fabrikam (or the name of your site).
2. In the navigation pane on the left, select Products .
3. Select any product that doesn't have an enriched product page.
4. On the Action Pane, select Enrich product page .
5. Select PDP-template , and then select OK .
6. In the page outline tree on the left, expand the Main slot.
7. Select the ellipsis button (...) for the Main slot, and then select Add Module .
8. Select Container 2 , and then select OK .
9. Select the ellipsis button for Container 2 , and then select Add Module .
10. Select Feature , and then select OK .
11. In the properties pane on the right, in the Rich Text field, enter the updated description of the product.
12. In the Heading field, enter heading text, and then select OK .
13. Select Save , and then select Finish editing .
14. In the Comments field, enter Enriched a product , and then select OK .
15. Select Preview to preview the enriched product page. When you've finished, close the preview tab to return
to the authoring tool.
16. Select Publish .

Additional resources
Modify an existing site page
Add a new site page
Select page layouts
Manage SEO metadata
Save, preview, and publish a page
Enrich a category landing page
Verify page content accessibility
Enrich a category landing page
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers the enrichment of category pages in Dynamics 365 Commerce.

Overview
Commerce provides a default category landing page that is used when category data is shown. A default
category page contains required elements, such as refiners, categorized product placement, sorting options, a
choice summary, and pagination controls.
However, instead of using the default category page, you might want to use an "enriched" category landing page
that has more content and more specific elements. A typical enrichment might involve adding category-specific
marketing content to the category page. This content might include cross-category product placement for cross-
sell purposes, editorial lists, images, videos, and other text. You can either modify the default category page or
define a different category page for a specific category.
In Commerce site builder, the Products page includes a list of categories from the channel that are assigned to
the site. If the Enriched status is selected for a category page, that category page has been enriched. Otherwise,
the default category page and content are used for the category. You can preview both the enriched and non-
enriched category pages for a category by selecting the category name.
To enrich a category page, do the following.
1. On the Products page, select the name of the category for which you want to enrich the category page. The
default category page for the selected category is opened in the page editor.
2. Select Enrich categor y page .
3. Select a template for the enriched category page. If you're making only minor changes, you can select the
default category page. Alternatively, you can select a specific category page template. When you select the
template, the page editor is opened, and the selected template is used to create a new category page for the
selected category. The page is checked out to you, and you can now make your changes.

NOTE
Modules that use category specification data use the data from your selected category. The settings of the template that
you select determine the changes that you can make.

Additional resources
Modify an existing site page
Add a new site page
Select page layouts
Manage SEO metadata
Save, preview, and publish a page
Enrich a product page
Verify page content accessibility
Verify page content accessibility
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to verify the accessibility of page content in Microsoft Dynamics 365 Commerce.

Overview
When you've finished changing a page, you should make sure that the content is accessible to everyone on the
web. In the Commerce authoring tools, you can easily verify the accessibility of page content by using the
integrated Microsoft Accessibility Insights service. This service verifies your page content against the latest World
Wide Web Consortium (W3C) accessibility guidelines.
The Microsoft Accessibility Insights integration must be turned on at the tenant or site level before you can use it.

Turn on Microsoft Accessibility Insights for all the sites in your tenant
To turn on the Microsoft Accessibility Insights integration for all the Commerce sites in your tenant, follow these
steps.

NOTE
To access tenant settings, you must be signed in to Commerce as a system admin.

1. Sign in to Commerce as a system admin.


2. In the left navigation pane, select Tenant Settings (next to the gear symbol) to expand it.
3. Under Tenant Settings , select Features .
4. Set the Accessibility Check option to On .

Turn on Microsoft Accessibility Insights for a single site


To turn on the Microsoft Accessibility Insights integration for a single Commerce site, follow these steps.
1. Under Sites , select Fabrikam (or the name of your site).
2. In the left navigation pane, select Site Settings to expand it.
3. Under Site Settings , select Features .
4. Set the Accessibility Check option to On .

Verify the accessibility of the content on the home page


To use the integrated Microsoft Accessibility Insights service to scan and verify the content of your home page in
Commerce, follow these steps.
1. Under Sites , select Fabrikam (or the name of your site).
2. In the left navigation pane, select Pages .
3. Find and select the home page to open it in the page editor.
4. On the command bar, select Check accessibility . The Check Accessibility page appears.
5. After the scan is completed, review the contents of the report.
6. If any checks failed, select each failed check item to expand it so that you can view more details.
7. To close the report after you've finished reviewing it, scroll to the bottom of the Check Accessibility page,
and select OK .

Additional resources
Modify an existing site page
Add a new site page
Select page layouts
Manage SEO metadata
Save, preview, and publish a page
Enrich a product page
Enrich a category landing page
Customize site navigation
4/17/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to create a customized online navigation hierarchy to organize your products for
browsing on your Microsoft Dynamics 365 Commerce site.

Overview
Online storefronts typically let customers discover and browse products by navigating through product
categories. This capability is usually provided by tabs at the top of the page or by a navigation bar on the left. In
Dynamics 365 Commerce, you can create and manage the hierarchal structure of your category navigation and
the products that are included in the various categories.

Create a channel navigation hierarchy


To create a channel navigation hierarchy, follow these steps.
1. Go to Retail and Commerce > Products and categories > Categor y and product management .
2. Select Categor y hierarchies , and then select New .
3. Name the hierarchy.

NOTE
The topmost category that you create is the root category node. It won't be shown on your site. To create a
category hierarchy where a single top-level node is shown on your site, create and name the category as a child of
the root category.

4. Select New categor y node , and name the category.


5. Continue to create sibling and child categories as you require.
You can now assign products to each category that you created under the top-level category.

Customize the order of categories


By default, the categories that you define will appear in alphabetical order on your site. However, you can also
customize the display order of categories.

Assign a category hierarchy type


1. Go to Retail and Commerce > Products and categories > Categor y and product management .
2. Select Categor y hierarchies .
3. On the Action Pane, on the Categor y hierarchy tab, in the Set up group, select Associate hierarchy type .
4. Select New .
5. In the Categor y hierarchy type field, select Channel navigation hierarchy .
6. In the Categor y hierarchy field, select the channel navigation hierarchy that you created earlier.

Publish new or updated navigation hierarchies


To make your navigation hierarchy available to your online storefront, follow these steps.
1. Go to Retail and Commerce > Channel setup > Channel categories and product attributes .
2. In the tree on the left, select your online store.
3. Select Publish channel updates .
4. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
5. In the list, find and select Job 1040 .
6. Select Run now .
7. Repeat steps 5 and 6 for jobs 1070 and 1150.

Show categories on your site


To show your category hierarchy on your online storefront, you must add the navigation menu module in the
appropriate location in a template or fragment. The navigation menu module will then show your navigation
hierarchy, provided that you've published your navigation hierarchy to the channel that your site is bound to.

NOTE
The navigation menu module that is included in the store starter kit lets users navigate only to categories that don't have
subcategories. If your customers should be able to navigate to categories that have subcategories, you must customize the
navigation menu module.

Add custom navigation options


On your navigation menu, you can add navigation options that aren't part of your product category hierarchy. For
example, at the end of the list of product categories, you can add a Contact Us item that points to a contact page
that you've built for your site.
To add custom navigation options to your navigation menu, follow these steps.
1. In the template or fragment that you want to customize, select the navigation menu module.
2. In the property pane, on the Data tab, select Add item to create a new content management system (CMS)
navigation item.
3. Enter link text and a URL.
4. Repeat steps 2 and 3 to add more custom navigation options.
5. When you've finished, select Save to save the template or fragment, and then select Finish editing to check it
in.

Additional resources
Templates and layouts overview
Work with templates
Work with preset layouts
Work with fragments
Work with modules
Create a page URL
Work with publish groups
Create a page URL
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers the basic concepts and procedures for creating a page URL on your site.

Overview
The full, or absolute, URL that points to a page on your site consists of distinct parts. For example, the URL
https://www.contoso.com/en-us/contactus has the following parts:

https://www.contoso.com – The HTTP protocol and the site's domain.


/en-us – The site's language path.
/contactus – The relative URL for the Contact Us page. A relative URL is also known as a URL slug.

You establish your site's domain and optional language path when you set up the site. You can add more domains
and language paths to your site through the online stores page in the site's settings.
The URL slug for a page exists as a standalone entity in the site authoring environment. A page URL consists of two
parts: a name that represents the URL slug, and a pointer to a page on either your site or an external site. A page
URL can also be configured to act as a redirect to another page on either your site or an external site.

Create a page URL


There are two ways to create page URLs:
Automatically, when you create a page
Manually, from the URLs page
Create a page URL when you create a page
If you provide a name in the URL field when you create a new page, a page URL that points to that page is
automatically created on the URLs page. After you publish the URL and the page that it points to, site users (your
customers) can access the page that is associated with the URL.

NOTE
If you publish a URL without publishing the page that it points to, site users receive a 404 error when they try to access the
page. If you publish a page without publishing the URL that points to it, the page can't be accessed by using a URL.

Manually create a page URL


When you create new pages, you aren't required to specify a page URL. If you leave the URL field blank, the page is
created in an unlinked state. In this case, customers won't be able to access the page, even if it's published. To make
the page accessible, you must manually create the URL and link it to the page.
To manually create the page URL for a page, follow these steps.
1. On the URLs page, select New .
2. Select the site page to associate with the URL.
3. Enter the URL slug, and then select OK .
At this point, the URL is in a draft state. It must be published before site users can access the associated page.

Update a page URL


To update the target page of a page URL, follow these steps.
1. On the URLs page, select the URL to update.
2. In the property pane on the right, select the ellipsis button (...) next to the target page field.
3. In the dialog box, select a different page, and then select OK .
4. Save and publish the URL.

Redirect a page URL


Sometimes, you might want your customers to view a different page when they request a specific URL. In these
cases, the best and easiest approach is often to change the page that the page URL points to. However, you might
have legitimate reasons for using HTTP 301 or 3023 redirects to redirect requests for a URL to a different URL.
To redirect a URL to a different URL, follow these steps.
1. On the URLs page, select the URL to update.
2. In the property pane on the right, select Redirect .
3. Select a destination for the redirect:
To point to another page on your site, select Internal URL , select the ellipsis button (...), and then select
the URL to redirect to.
To point to a page on an external site, select External URL , and then enter the full URL for that page. Be
sure to include the protocol. For example, enter https://domain.com/new/page . If the URL already
redirects to an internal URL, you must select Clear selection before you can enter an external URL.
4. Select a redirect type:
Permanent redirect (301) – Select this option when you know that your content is moving
permanently and won't revert to its previous URL. Search engines will assign the search engine
optimization (SEO) value of the redirecting URL to the URL that is being redirected to and update their
record to show the new URL.
Temporar y redirect (302) – Select this option to redirect traffic without updating search engines. This
approach is typically used if the content will soon revert to its previous URL.
5. When you're ready to implement the redirect, save and publish the URL.

Additional resources
Customize site navigation
Add a new site page
Configure your domain name
Add languages to your site
Digital asset management overview
3/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of digital asset management in Microsoft Dynamics 365 Commerce site builder.

Overview
Dynamics 365 Commerce site builder's Media Library features rich digital asset management functionality,
including support for the following:
Image assets
Video assets
Other types of binary assets, such as Office documents and PDF files
Localized images
Folder uploads
Cropping of images
Customizing of image focal points
Omni-channel image assets (product, product variants, catalog, category, worker, and customer images)
Digital assets are channel-specific, with the exception of omni-channel assets, which are environment-wide by
default.
Digital assets and management features are located within site builder under Media Librar y on the left
navigation pane within a site.

Additional resources
Upload images
Upload video
Upload files
Crop images
Customize image focal points
Upload images
3/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to upload images in Microsoft Dynamics 365 Commerce site builder.

Overview
The Commerce site builder Media Library allows you to upload images, either singly or in bulk using folders. You
should always upload the version of the image with highest resolution and quality, because the image resizer
component will automatically optimize the image for different viewports and their breakpoints.
Image information specified during upload
When uploading an image, the following information can be specified.
Title, Alt Text, Description, Keywords : Metadata of the image or images. Title and alt text are required
values.
Select categor y :
None : Used for an e-Commerce storytelling image or images.
Product, Categor y, Customer, Employee, Catalog : Used for Dynamics 365 Commerce omni-
channel image or images.
Publish assets after upload : When this check box is selected, the image or images are published
immediately after upload.

NOTE
Image assets with a category assigned are also automatically tagged with the category as a keyword to aid searching for
assets of a specific category.

Naming conventions for omni-channel images


If you have configured the Media Library as the omni-channel image backend, you can use image categories to
indicate which category the uploaded image belongs to. There is also a naming convention that should be
followed to ensure that images are retrieved correctly by other channels, such as point of sale (POS).
The default naming convention varies based on the category:
Catalog images should be named "/Catalogs/{LanguageId}/{CatalogName}.jpg "
Category images should be named "/Categories/{Categor yName}.png "
Customer images should be named "/Customers/{CustomerNumber}.jpg "
Employee images should be named "/Workers/{WorkerNumber}.jpg "
Product images should be named "/Products/{ProductNumber}_000_001.png "
001 is the sequence of the image and it can be 001, 002, 003, 004 or 005
Product variant images should be named
"/Products/{ProductNumber}_{Size}_{Color}_{Style}_000_001.png "
Upload an image
To upload an image in site builder, follow these steps.
1. In the left navigation pane, select Media Librar y .
2. On the command bar, select Upload > Upload Media Items .
3. In the File Explorer window, navigate to and select one or more image files to upload, and then select Open .
4. In the Upload Media Item dialog box, enter the required title and alt text.
5. Enter optional description and keywords and select a category if desired.
6. If you want to publish the image(s) immediately after upload, select the Publish media items after upload
check box.
7. Select OK .

Upload a folder of images


To bulk upload a folder of images in site builder, follow these steps.
1. In the left navigation pane, select Media Librar y .
2. On the command bar, select Upload > Upload Folder .
3. In the File Explorer window, navigate to and select a folder to upload, and then select Open .
4. In the Upload Media Items dialog box, enter optional keywords and select a category if desired.
5. If you want to publish the images in the folder immediately after upload, select the Publish media items
after upload check box.
6. Select OK .

Additional resources
Digital asset management overview
Upload video
Upload files
Crop images
Customize image focal points
Upload videos
3/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to upload videos in Microsoft Dynamics 365 Commerce site builder.

Overview
The Commerce site builder Media Library allows you to upload videos. You should always upload the version of a
video with the highest bitrate and resolution, because the video will be automatically converted to be suitable for
different viewports and their breakpoints.
Video information specified during upload
When uploading a video, the following information can be specified.
Title, Description, Keywords : Metadata of the video.
Automatically generate closed captions : Specifies whether closed captions should be automatically
generated for the video.
Closed Caption : Specifies the closed captions to be used.
Regular Audio : Specifies the regular audio track to be used.
Thumbnail : Specifies the thumbnail for the video. If not specified, it will be generated automatically.
Descriptive Audio : Specifies the descriptive audio track to be used.

Upload a video
To upload a video in site builder, follow these steps.
1. In the left navigation pane, select Media Librar y .
2. On the command bar, select Upload > Upload Media Items .
3. In the File Explorer window, navigate to and select one or more video files to upload, and then select Open .
4. In the Upload Media Item dialog box, enter the required title and alt text.
5. Enter optional description and keywords and select a category if desired.
6. If you want to publish the image(s) after immediately upload, select the Publish media items after upload
check box
7. Select OK .
If you are uploading multiple types of assets simultaneously (for example, images and videos), in the Upload
Media Item dialog box you will only be able to specify keywords, whether the files should be published
immediately after upload, and whether closed captions should be automatically generated for video files. All the
assets will share the same keywords.

Additional resources
Digital asset management overview
Upload images
Upload files
Crop images
Customize image focal points
Upload files other than images and videos
3/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to upload files other than images and videos in Microsoft Dynamics 365 Commerce site
builder.

Overview
The Commerce site builder Media Library supports the uploading of binary assets other than images or videos.
For example, you might want to upload Microsoft Excel, Microsoft Word, Microsoft PowerPoint, or PDF files.
The following document types are supported:
7Z
AVI
CS
CSS
DOC
DOCX
EPUB
GIF
INDD
JAR
JPG
JPEG
JS
MP3
MP4
MPEG
MPG
ODP
ODS
ODT
PDF
PNG
PPT
PPTX
PS
QXP
RAR
RTF
SVG
TAR
TGZ
TXT
WMV
XLS
XLSX
XML
ZIP

Upload a file
To upload a file to Commerce site builder, follow these steps.
1. In the left navigation pane, select Media Librar y .
2. On the command bar, select Upload > Upload Media Items .
3. In File Explorer, select one or more files and then select Open .
4. In the Upload Media Item dialog box, enter title, description, and keyword metadata as needed.
5. To publish the file(s) immediately after upload, select the Publish media items after upload check box.
6. Select OK .

Additional resources
Digital asset management overview
Upload images
Upload video
Crop images
Customize image focal points
Crop images
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to crop images in Microsoft Dynamics 365 Commerce site builder.

Overview
The Commerce site builder Media Library allows you to crop images to optimize them for different module types
and viewports.

Crop an image
To crop an image in site builder, follow these steps.
1. In the left navigation pane of Commerce site builder, select Media Librar y .
2. In the main window, select the image you want to modify.
3. On the command bar, select Edit .
4. Select the image to enter Edit Mode .
5. Under Edit Mode , select Edit View by Module .
6. From the Module drop-down menu, select the module type.
7. From the View type drop-down menu, select the view type.
8. From the Placement drop-down menu, select the image placement.
9. From the Viewpor t drop-down menu, select the viewport size.
10. The image is overlaid with the area representing the crop region. Move and resize the crop region as needed.
The aspect ratio will be maintained automatically.
11. When you're done, on the command bar, select Save , and then select Finish editing .
After custom cropping is completed, image modifications will take effect almost immediately.

Additional resources
Digital asset management overview
Upload images
Upload video
Upload files
Customize image focal points
Customize image focal points
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to customize image focal points in Microsoft Dynamics 365 Commerce site builder.

Overview
When an image is uploaded to the Commerce site builder Media Library, the system attempts to determine the
focal point of the image. For example, if the image has a person on it, the system will set the focal point to the face
of the person by default. In most cases the automatically set focal point works well for all viewports, but
sometimes you may want to adjust the focal point to ensure that a specific part of the image is always visible.
Define a custom focal point for an image
To define a custom focal point for an image, follow these steps.
1. In the left navigation pane of Commerce site builder, select Media Librar y .
2. In the main window, select the image you want to modify.
3. On the command bar, select Edit .
4. Select the image to enter Edit Mode .
5. Under Edit Mode , select Change Focal Point . A circular focal point control appears over the image.
6. Select the focal point control to move it over the desired focal point.
7. When you're done, on the command bar select Save , and then select Finish editing .

Additional resources
Digital asset management overview
Upload images
Upload video
Upload files
Crop images
Compliance overview
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic is an overview of the compliance guidance that is provided with Microsoft Dynamics 365 Commerce to
help you make your company's sites compliant. Compliance is an important factor for all businesses, because it
helps their user base connect with their site content. By staying compliant, you can also help protect your company
from expensive legal action or hefty fines.
The compliance documentation includes a review of areas that you should consider when you use Dynamics 365
Commerce, to help you meet your company's compliance requirements.
You're responsible for reviewing your company's compliance requirements, and for authoring and building sites
that meet the standards of those requirements. The following topics provide examples that show how you can take
compliance into account as you use the Commerce authoring tools.
To learn more about the basic principles that Microsoft uses, visit the Microsoft Trust Center. On that site, you can
also get more information about areas of compliance.

Additional resources
Accessibility features and capabilities
Cookie compliance
Add a privacy policy page
Accessibility features and capabilities
4/17/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides information about the accessibility features and capabilities in Microsoft Dynamics 365
Commerce.

Overview
Accessibility features and capabilities provide the functional means for all users to access and perform actions so
that they can accomplish their goals. This broad range of users might require assistive tools for hearing, vision,
mobility, or neurodiversity.
Various features in Dynamics 365 Commerce let you build your site so that it includes assistive functionality. When
you design your site, you should consider the areas of accessibility functionality that are mentioned in the
Microsoft Accessibility Center.
This topic describes some additional areas of accessibility functionality that you should consider when you use
Dynamics 365 Commerce.

Image alt text


Dynamics 365 Commerce has a built-in digital asset management system to track image and video assets that are
used on your site. Image captions, descriptions, and alt text can be added in the properties pane for an image when
it's selected or uploaded.

Video accessibility
The Dynamics 365 Commerce digital asset management system supports several accessibility features for video
content. The following table lists some examples.

VIDEO F EAT URE DESC RIP T IO N

Closed captioning (CC) Text that can be shown for the audio and audio descriptive
elements of a video, to help users who are deaf or hard of
hearing

Subtitles Caption files that show the text of context clues or dialog on-
screen

Audio transcripts A textual transcript of spoken words that is generated from


the audio of a video asset

Descriptive audio A non-primary audio channel that describes the content or


context that is occurring on-screen
VIDEO F EAT URE DESC RIP T IO N

Minimum age gate An attribute that can store the minimum age that a viewer
must be to view a video (metadata only)

Configure video accessibility elements


In the Commerce Media Librar y section for your site, you can upload video assets that have separate files for
closed captions, regular audio, and descriptive audio. Closed captions can also be generated automatically when a
video asset is uploaded.
Generate or upload closed caption files during video asset upload
To have a closed caption file automatically generated when you upload a video, follow this step.
In the Asset Upload dialog box, select Automatically generate closed captions . If you're generating a
closed caption file, the file selector for closed caption files will be unavailable in the dialog box.
To manually upload a closed caption file when you upload a video, follow this step.
In the Asset Upload dialog box, clear Automatically generate closed captions .
To upload regular audio or descriptive audio files for the video, use the file selector in the Asset Upload dialog
box.

NOTE
Closed caption, regular audio, and descriptive audio assets can also be added after a video asset is uploaded. Go to Media
Librar y , select the video asset, and select Edit to check it out. Then, in the properties pane for the video asset, upload the
additional assets.

Edit CC and audio transcript files


CC and audio transcript files can be edited directly in the authoring tool. Video playback is available during editing.
To edit CC and audio transcript files, follow these steps.
1. Go to Media Librar y , and select the file name of the video asset. The closed caption and transcript content
editor appears.
2. Select Edit .
3. Edit the closed caption or transcript text.
4. When you've finished, select Save , and then select Finish editing .
5. When you're ready to publish, select Publish .
Set the Minimum Age attribute
A Minimum Age metadata attribute can be associated with video assets.
To set the Minimum Age attribute for a video asset, follow these steps.
1. Go to Media Librar y , and select the video asset.
2. Select Edit .
3. In the properties pane for the video asset, set the Minimum Age attribute.

NOTE
The properties pane is used only to set and store the metadata attribute value. Customized modules must be created to use
this attribute for playback gating.
Additional resources
Accessibility in forms, products, and controls
Microsoft Accessibility Center
Dynamics 365 Accessibility Center
Compliance overview
Cookie compliance
Add a privacy policy page
Cookie compliance
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes considerations for cookie compliance and the default policies that are included in Microsoft
Dynamics 365 Commerce.

Overview
Privacy is an important factor whenever any tracking technologies that affect e-Commerce customers are used.
Because of privacy compliance standards such as the General Data Protection Regulation (GDPR) in the European
Union (EU), electronic privacy guidelines must be considered for any site that is active today. Because many e-
Commerce sites are globally accessible by default, it's important that you review the compliance standards for
your e-Commerce site.
To learn more about the basic principles that Microsoft uses for cookie compliance, visit the Microsoft Trust Center.
On that site, you can also get more information about areas of compliance and privacy.

Additional resources
Accessibility features and capabilities
Compliance overview
Add a privacy policy page
Add a privacy policy page
4/17/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to add a privacy policy page to your site in Microsoft Dynamics 365 Commerce.

Overview
Privacy compliance includes organizational measures that inform site users about how their data is collected and
handled. Users can then decide how they want their personal data to be handled and can take appropriate action.

Review the Microsoft privacy statement in Dynamics 365 Commerce


To review the Microsoft privacy statement while you're signed in to the Dynamics 365 Commerce authoring tools,
select the Help button (? ) in the upper-right corner, and then select Privacy and cookies . A new tab is opened
that has a link to the Microsoft privacy statement.

Build a privacy policy page for your site


In Dynamics 365 Commerce, there are several ways to give users of your site access to your privacy policy. This
section shows how to build a privacy policy page and then reference the page by using a footer fragment.
The guidance that follows is an example that shows how to build a generic privacy policy page for a Commerce
site. You're responsible for designing and implementing a privacy policy page solution that best meets your
company's legal requirements.
To start, in the authoring tools, go to the site that you want to build a privacy policy page for.
Create a template

NOTE
If a template that can be used for the privacy policy page has already been created, skip ahead to the Build a privacy policy
page section.

To create a template, follow these steps.


1. Go to Templates , and then select New to create a page template.
2. In the New Template dialog box, under Template Name , enter Promo banner template , and then select
OK .
3. In the template, add any required modules to the required page slots. For guidance, hover over the red
exclamation marks. (For example, the HTML Head slot might require a Default External Script module.)
4. In the Body slot, add a Default Page module.
5. In the Default Page module, in the Main slot, add a Content Rich Block module.
6. In the Content Rich Block module, add a Content rich block item module.
7. Select Save , select Finish editing to check in the template, and then select Publish to publish it.
Build a privacy policy page
To build a privacy policy page, follow these steps.
1. Go to Pages , and then select New to create a page.
2. In the Choose a template dialog box, select the template for the privacy policy page.
3. Enter a page name and page URL, and then select OK .
4. In the Main slot of the page, add a Content Rich Block module.
5. In the Content Rich Block module, add a Content rich block item module.
6. In the properties pane for the Content Rich Block module, select Add Data Source , and then select Rich
Text Content .
7. In the rich text editor, enter the content for the privacy policy page. Expand the rich text editor to full-screen
mode as you require.
8. When you've finished entering content, select Preview to preview the page in the web browser.
9. Complete any remaining additions to the page and module properties.
10. Select Save , select Finish editing to check in the page, and then select Publish to publish it.
To publish the URL for the privacy policy page, follow these steps.
1. Go to URLs , and select the URL for the privacy policy page.
2. Select Publish to publish the selected URL.
Create a link to the privacy policy page in a footer
You can add a link to the privacy policy page to a fragment. In this way, you can share the link and update it across
multiple site pages by referencing the fragment. This example shows how to add a link to the privacy policy page
to a footer fragment.
To add a link to a footer fragment, follow these steps.
1. Go to Page Fragments , and then select New to create a page fragment.
2. In the New Page Fragment dialog box, select the Footer module.
3. Under Page Fragment Name , enter a name for the fragment, and then select OK .
4. In the Footer categor y slot, add a Footer item module.
5. In the properties pane on the right, select Link text .
6. In the Link text dialog box, enter the link text and link target of the privacy policy page, and then click OK .
7. To get the URL of the privacy policy page, go to Pages , go to the privacy policy page, and copy the URL from
the properties pane.
8. Select Save , select Finish editing to check in the fragment, and then select Publish to publish it.
9. Preview the fragment, and test the link to the privacy policy page.
The fragment can now be referenced in the template for other site pages. When this fragment is referenced in the
Footer module of a template, the link reference will appear on any pages that are built by using that template.

Additional resources
Compliance overview
Accessibility features and capabilities
Cookie compliance
Starter kit overview
2/5/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic presents an overview of the Microsoft Dynamics 365 Commerce starter kit.

Overview
The Dynamics 365 Commerce starter kit is a collection of modules that can be used to build an e-Commerce
website. Modules have both user interface (UI) aspects and functional behavior aspects.
Themes can be applied to the modules in the starter kit to change their look and feel. The themes use Cascading
Style Sheets (CSS). A theme for a fictitious e-Commerce site that is named "Fabrikam" is provided as part of the
starter kit and can be used as a reference.

Starter kit modules


The following types of modules are provided in the starter kit:
Container module – A container module is a simple module that acts as a host for other modules. It
controls the layout of the modules that are inside it.
Marketing modules – Marketing modules include content block, text block, video player, and carousel
modules. All these modules can be used to showcase content. They can be put on any page and are driven by
data from the content management system (CMS).
Header and footer modules – Header and footer modules appear in the header and footer of all site pages.
These modules can be configured as required through properties.
Search modules – Products can be discovered by using the search module in the header. Search results
appear on the search results page. Products can also be discovered on category pages, which are dedicated
pages for each category that is supported in the channel navigation hierarchy. In addition, refiner modules
can be used to further filter results on search results and category pages.
Product details page modules – Product details pages use several modules to show product information.
The buy box module lets customers view products and add them to the cart. Other modules, such as the tech
specs module, show the product details. The ratings and reviews module can used to view and provide
reviews.
Buy online pick up in store module – The buy online pick up in store module is integrated with Bing
Maps. It can be used to find nearby stores where customers can pick up products that they have purchased.
Purchase modules – Purchase modules include the cart module, which can be used to add items to the cart.
The checkout module captures the shipping address, delivery options, and gift card, loyalty program, and
credit card information, so that an order can be processed. After an order is placed, the order confirmation
module can be used to show the confirmation details.
Account management modules – The sign-in module lets customers sign in to an existing account, and
the sign-up module lets them create a new account. After an account is created, the order history module can
be used to view recent orders, and the order details module can be used to view order details.
Recommendations module – Recommendations are shown by using the product placement module. This
module supports algorithmic and editorial lists that can be showcased on any page.

Additional resources
Container module
Buy box module
Cart module
Checkout module
Order confirmation module
Header module
Footer module
Container module
2/5/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers container modules and describes how to add them to site pages in Microsoft Dynamics 365
Commerce.

Overview
A container module is a module that hosts other modules inside it. The primary purpose of a container module is
to define, through the properties that are set for it, the layout of the modules that it contains. For example, those
modules can appear side by side in a two-column, three-column, four-column, or six-column layout. They can also
be limited to the width of the container, or they can fill the screen. A heading can also be added to every container
module.
Three container modules are supported: container, container with 2-slots, and container with 3-slots. Modules of
any type can be put inside these containers.

NOTE
We recommend that you always put modules inside a container module, so that they can be limited to the width of the
container.

Examples of container modules in e-Commerce


A site author wants a three-column layout, where three modules appear side by side. Therefore, the site author
uses a container module of the container with 3-slots type.
A site author wants a six-column layout, where six modules appear side by side. Therefore, the site author uses
a container of the contain type that has six columns inside it.
A site author wants to put a module on a page but doesn't want it to fill the screen. Therefore, the site author
adds the module to a container module and sets the container's Width property to Fit container .

Container module properties


P RO P ERT Y N A M E VA L UES DESC RIP T IO N

Heading Heading text and heading tag (H1 , H2 , An optional heading can be provided
H3 , H4 , H5 , or H6 ) for the container. By default, the H2
heading tag is used for the heading.
However, the tag can be changed to
meet accessibility requirements.
P RO P ERT Y N A M E VA L UES DESC RIP T IO N

Width Fit container or Fill screen If the value is set to Fit container (the
default value), the modules inside the
container are limited to the width of
the container. If the value is set to Fill
screen , the modules aren't limited to
the container width but can fill the
screen.

Number of columns 1 , 2 , 3 , 4 , 6 , or 12 This property defines the number of


columns in the container. A container
can have up to 12 columns.

Container with 2-slots


The container with 2-slots type is optimized for a two-column layout. This type of container has two slots to allow
for a side-by-side view of the modules that are inside.
Additional properties can be used to optimize the layout for different view ports (mobile devices, tablets,
computers, and so on). For every view port, the width of each column can be defined. The following column width
settings are available:
75%/25% – The first module has a column width of 75 percent, and the second module has a column width
of 25 percent. A 25%/75% option is also available.
50%/50% – Both modules have equal column width.
67%/33% – The first module has a column width of 67 percent, and the second module has a column width
of 33 percent. A 33%/67% option is also available.
100% – Both modules have a full-column width. Therefore, the modules are vertically stacked in a single
column. Although this single-column layout goes against intent of the container with 2-slots type, it might be
preferable for some view ports (for example, extra-small view ports such as mobile devices).
Container with 2-slots properties
P RO P ERT Y N A M E VA L UES DESC RIP T IO N

Heading Heading text and heading tag An optional can be provided for the
container.

X-Small view port configuration 25%/75%, 75%/25%, 50%/50%, This property defines the layout for
67%/33%, 33%/67%, or 100% extra-small view ports.

Small view port configuration 25%/75%, 75%/25%, 50%/50%, This property defines the layout for
67%/33%, 33%/67%, or 100% small view ports, such as mobile
devices.

Medium view port configuration 25%/75%, 75%/25%, 50%/50%, This property defines the layout for
67%/33%, 33%/67%, or 100% medium view ports, such as tablets.

Large view port configuration 25%/75%, 75%/25%, 50%/50%, This property defines the layout for
67%/33%, 33%/67%, or 100% large view ports, such as computers.

Container with 3-slots


The container with 3-slots modules type is optimized for a three-column layout.
Additional properties can be used to optimize the layout for different view ports. For every view port, the width of
each column can be defined. The following column width settings are available:
33%/33%/33% – All three modules have equal column width.
50%/25%/25% – The first module has a column width of 50 percent, and each of the remaining two modules
has a column width of 25 percent. 25%/50%/25% and 25%/25%/50% options are also available.
16%/16%/67% – Each of the first two modules has a column width of 16 percent, and the third module has a
column width of 67 percent. 16%/67%/16% and 67%/16%/16% options are also available.
Container with 3-slots properties
P RO P ERT Y N A M E VA L UES DESC RIP T IO N

Heading Heading text and heading tag An optional heading can be added to
the container.

X-Small view port configuration 33%/33%/33%, 50%/25%/25%, This property defines the layout for
25%/50%/25%, 25%/25%/50%, extra-small view ports.
16%/16%/67%, 16%/67%/16%, or
67%/16%/16%

Small view port configuration 33%/33%/33%, 50%/25%/25%, This property defines the layout for
25%/50%/25%, 25%/25%/50%, small view ports, such as mobile
16%/16%/67%, 16%/67%/16%, or devices.
67%/16%/16%

Medium view port configuration 33%/33%/33%, 50%/25%/25%, This property defines the layout for
25%/50%/25%, 25%/25%/50%, medium view ports, such as tablets.
16%/16%/67%, 16%/67%/16%, or
67%/16%/16%

Large view port configuration 33%/33%/33%, 50%/25%/25%, This property defines the layout for
25%/50%/25%, 25%/25%/50%, large view ports, such as computers.
16%/16%/67%, 16%/67%/16%, or
67%/16%/16%

Add a container module to a page


To add a container player module to a new page and set the required properties, follow these steps.
1. Create a page template that is named container template .
2. In the Body slot, add a Default page module.
3. Finish editing the template, and publish it.
4. Use the container template that you just created to create a page that is named container page .
5. In the Main slot of the new page, add a container module.
6. In the property pane for the container module, set the Number of columns property to 1 and the Width
property to Fill container .
7. In the container module, add a content block module.
8. In the property pane for the content block module, configure the heading, image, and layout.
9. Save and preview the page. You should see one feature module that fits within the width of the container
module.
10. In the property pane for the container module, change the value of the Number of columns property to 3 .
11. Add two more content block modules to the container module.
12. Save and preview the page. You should now see three content block modules that appear side by side.
13. After you've achieved the layout that you want, finish editing the page, and publish it.

Additional resources
Starter kit overview
Carousel module
Text block module
Buy box module
Cart module
Checkout module
Header module
Footer module
Promo banner module
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers promo banner modules and describes how to add them to site pages in Microsoft Dynamics 365
Commerce.

Overview
Promo banner modules are used to show inline informational messages on a page. They can be used to show site-
wide promotions that appear on all pages of an e-Commerce site.
Promo banner modules support a text message and a link. If multiple messages are added to a promo banner
module, it becomes a rotating carousel banner that lets customers cycle through all the messages.
Promo banner modules are driven by data from the content management system (CMS) and can be put on any
page.

Usage examples of promo banners in e-Commerce


Promo banners can be used in the site header to show site-wide promotions or messages, as in the following
examples.
"Annual sale ends in 10 days"
"Save big with back to school sale. Shop Now."

Promo banner module properties


P RO P ERT Y N A M E VA L UE DESC RIP T IO N

Banner messages Text and links An array of text and links.

Autoplay True or False A value that indicates whether


messages are automatically cycled
through, if multiple messages are
configured.

Slide transition interval A number of milliseconds (ms) The interval that is used to cycle
through messages.

Allow dismiss True or False If the value is set to True , customers


can dismiss the alert.
P RO P ERT Y N A M E VA L UE DESC RIP T IO N

Show carousel flipper True or False A value that indicates whether the
carousel flippers should be shown, so
that customers can manually cycle
through multiple banner items.

Text alignment Right , Left , or Center The text alignment in the promo banner
module.

Link A URL The URL for an optional link.

Add a promo banner module to a page


To add a promo banner module to a page and set the required properties, follow these steps.
1. Select New to create a page template.
2. In the New Template dialog box, under Template Name , enter Promo banner template , and then select
OK .
3. Under Page Outline , add a Default page module to the Body slot.
4. Select Finish editing to check in the template, and then select Publish to publish it.
5. Use the template that you just created to create a page that is named Promo banner page .
6. In the Main slot of the new page, add a container module.
7. In the pane on the right, set the Width value to Fill Container .
8. Under Page Outline , add a promo banner module to the container module.
9. In the settings for the banner module, add one or more banner messages. Each message can have text together
with a link. You can edit the other properties to customize the module further.
10. Select Save , and then select Preview to preview the page. At the top of the page, you should see an alert that
shows the text that you added.
11. Select Finish editing to check in the page, and then select Publish to publish it.

NOTE
A promo banner is typically used in the page header slot or a subheader slot.

Additional resources
Starter kit overview
Carousel module
Text block module
Content block module
Video player module
Carousel module
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers carousel modules and describes how to add them to site pages in Microsoft Dynamics 365
Commerce.

Overview
A carousel module is used to put multiple promotional items (including rich images) in a rotating carousel banner
that customers can browse. For example, a retailer can use a carousel module on a home page to showcase
multiple new products or promotions.
You can add content block modules inside a carousel module. The properties of the carousel module then define
how those modules are rendered.

Examples of carousel modules in e-Commerce


A carousel that has multiple promotional modules inside it can be used on a home page.
A carousel that has multiple promotional modules inside it can be used on a product details page.
A carousel can be used on any marketing page to promote multiple promotions or products.

Carousel module properties


P RO P ERT Y N A M E VA L UE DESC RIP T IO N

Autoplay True or False If the value is set to True , the transition


between items inside the carousel
occurs automatically. If the value is set
to False , no transition occurs unless
the customer uses the keyboard or
mouse to move from one item to the
next item.

Slide transition interval A value in seconds The interval for transitions between
items.

Transition type Slide or Fade The transition effect between items.

Hide carousel flipper True or False If the value is set to True , the carousel
flipper and sequence indicator are
hidden.

Allow carousel dismiss True or False If the value is set to True , users can
dismiss the carousel.
Add a carousel module to a page
To add a carousel module to a new page and set the required properties, follow these steps.
1. Select New to create a page template.
2. In the New Template dialog box, under Template Name , enter Carousel template , and then select OK .
3. In the Body slot, add a Default page module.
4. Select Finish editing to check in the template, and then select Publish to publish it.
5. Use the carousel template that you just created to create a page that is named Carousel page .
6. In the Main slot of the new page, add a container module.
7. In the pane on the right, set the Width value to Fill Screen .
8. Under Page Outline , add a carousel module to the container module.
9. Add a content block module to the carousel module. Set the properties of the content block module by
providing Heading , Link , Layout , and other properties.
10. Add and configure another content block module.
11. Set additional properties for the carousel module as you require.
12. Select Save , and then select Preview to preview the page. The page should show a carousel that has two
modules inside it (a hero module and a feature module). You can change additional properties for the carousel,
hero, and feature modules to achieve the desired effect.
13. Select Finish editing to check in the page, and then select Publish to publish it.

Additional resources
Starter kit overview
Promo banner module
Text block module
Content block module
Video player module
Text block module
2/5/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers text block modules and describes how to add them to site pages in Microsoft Dynamics 365
Commerce.

Overview
A text block module is a module that is used to add textual content. This content can be informational or
promotional.
Text block modules are driven by data from the content management system (CMS) and can be put on any page.
They are stand-alone modules that don't depend on page context or any other modules.

Examples of text block modules in e-Commerce


Text block modules can be used in the following ways:
To showcase product features on a product details page.
For informational purposes on any page. For example, they can explain the benefits of loyalty programs,
describe shipping and return policies, answer frequently asked questions, or provide "about us" content.
To add custom messages on a product details page. (for example, "Free shipping for orders over $50").
For disclaimers and contact details on product details pages, cart pages, checkout pages, and other pages (for
example, "Shipping and returns are subject to store policies").

Text block module properties


P RO P ERT Y N A M E VA L UE DESC RIP T IO N

Rich text Rich text Paragraph text. Some basic rich text
capabilities are supported, such as bold,
underlined, and italic text.

Custom class name A Cascading Style Sheets (CSS) class The name of a custom CSS class that a
name developer provides to format this
module. The class name should be
defined in the theme pack.

Font size Small, Medium , Large , or X-Large The font size of the content.

Add a text block module to a page


To add a text block module to a new page and set the required properties, follow these steps.
1. Create a page template that is named Content template .
2. In the Body slot, add a Default page module.
3. Finish editing the template, and publish it.
4. Use the content template that you just created to create a page that is named Content page .
5. In the Main slot of the new page, add a container module.
6. In the property pane for the container module, set the Width property to Fill container .
7. Add a text block module to the container module.
8. In the property pane of the text block module, add text to the Rich text field.
9. Finish editing the page, and publish it.

Additional resources
Starter kit overview
Promo banner module
Carousel module
Content block module
Video player module
Content block module
4/17/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers content block modules and describes how to add them to site pages in Microsoft Dynamics 365
Commerce.

Overview
A content block module is used to market products or promotions through a combination of images and text. For
example, a retailer can add a content block module to the home page of an e-Commerce site to promote a new
product and attract the attention of customers.
A content block module is driven by data from the content management system (CMS). It's a stand-alone module
that doesn't depend on any other modules on the page. A content block module can be put on any site page where
a retailer wants to market or promote something (for example, products, sales, or features).

Examples of content block module in e-Commerce


A content block module can be used on the home page of an e-Commerce site to highlight promotions and
new products.
A content block module can be used on a product details page to showcase product information.
Multiple content block modules can be put inside a carousel module to highlight multiple products or
promotions.

Content block modules and themes


Content block modules can support various layouts and styles based on a theme. For example, the Fabrikam
theme supports three layout variations of a content block module: hero, feature, and tile. The hero layout shows an
image on the background with text overlay. The feature layout shows an image and text side by side. The tile layout
allows multiple content blocks in a tile format.
In addition, the theme can expose different properties for each layout. A theme developer can build more layouts
with more styles using the content block module.
The following image shows an example of a content block module with a hero layout.
The following image shows an example of a content block module with a feature layout.

Content block module properties


P RO P ERT Y N A M E VA L UES DESC RIP T IO N

Image Image file An image can be used to showcase a


product or a promotion. An image can
be uploaded to the image gallery, or an
existing image can be used.

Heading Heading text and heading tag (H1 , H2 , Every hero module can have a heading.
H3 , H4 , H5 , or H6 ) By default, the H2 heading tag is used
for the heading. However, the tag can
be changed to meet accessibility
requirements.
P RO P ERT Y N A M E VA L UES DESC RIP T IO N

Paragraph Paragraph text Hero modules support paragraph text


in rich text format. Some basic rich text
capabilities are supported, such as bold,
underlined, and italic text, and
hyperlinks. Some of these capabilities
can be overridden by the page theme
that is applied to the module.

Link Link text, link URL, Accessible Rich Hero modules support one or more
Internet Applications (ARIA) label, and "call to action" links. If a link is added,
Open link in new tab link text, a URL, and an ARIA label are
required. ARIA labels should be
descriptive to meet accessibility
requirements. Links can be configured
so that they are opened on a new tab.

Content block module properties exposed by the Fabrikam theme


P RO P ERT Y N A M E VA L UES DESC RIP T IO N

Text placement Left , Right , Center This property defines the position of
the text on the image. It only applies to
the hero layout.

Text theme Light or Dark A color scheme can be defined for the
text, based on the background image.
For example, if the image has a dark
background, a light theme can be
applied to make the text more visible
and to meet color contrast ratios for
accessibility purposes. It only applies to
the hero layout.

Image placement Left , Right This property specifies if the image


should be to the left or right of the text.
It only applies to the feature layout.

Add a content block module to a new page


To add a hero module to a new page and set the required properties, follow these steps.
1. Go to Templates , and create a page template that is named Content block template .
2. In the Main slot of the default page, add a hero module.
3. Select Save , select Finish editing to check in the template, and then select Publish to publish it.
4. Use the hero template that you just created to create a page that is named Content block page .
5. In the Main slot of the default page, select the ellipsis button (...), and then select Add Module .
6. In the Add Module dialog box, under Select Modules , select the hero module, and then select OK .
7. In the outline tree on the left, select the content block module.
8. In the properties pane on the right, select Add an image . Then either select an existing image or upload a new
image.
9. Select Heading .
10. In the Heading dialog box, add the heading text, select the heading level, and then select OK .
11. Under Rich Text , add text as you require.
12. Select Add Link .
13. In the Link dialog box, add link text, a link URL, and an ARIA label for the link, and then select OK .
14. Select the Hero layout.
15. Select Save , and then select Preview to preview the page.
16. Select Finish editing to check in the template, and then select Publish to publish it.

Additional resources
Starter kit overview
Promo banner module
Carousel module
Text block module
Video player module
Video player module
2/5/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers video player modules and describes how to add them to site pages in Microsoft Dynamics 365
Commerce.

Overview
The video player module is used to support video playback. It can be added to any page, provided that video
content is uploaded to and available in the content management system (CMS). The video player module supports
the .mp4 media type.

Video player module


The video player module can be used to showcase videos on an e-Commerce site. It supports all playback
capabilities, such as play, pause, full-size mode, audio descriptions, and closed captions. The video player module
also supports customization of closed captions to meet Microsoft accessibility standards. For example, you can
customize the font size and background color.
The video player module also supports secondary audio tracks. When a video is uploaded to the CMS, a
secondary audio track can also be uploaded. The video player module can then play the secondary audio track if a
user selects it.
Examples of video player modules in e -Commerce
Instructional videos on product details pages or marketing pages
Promotional videos or videos about policies on any marketing page
Marketing videos that highlight product features on product details pages or marketing pages
Video player module properties
P RO P ERT Y N A M E VA L UE DESC RIP T IO N

Auto play True or False When the value is set to True , the
video is automatically played.

Mute True or False When the value is set to True , the


audio is muted. For this player, the
default value is False . In the Chrome
browser, autoplay videos are muted by
default, and the audio is played only if
the user manually plays the video.

Loop True or False When the value is set to True , the


video is repeated in a loop.
P RO P ERT Y N A M E VA L UE DESC RIP T IO N

Media Video file path and name The video file that is played in the video
player.

Play fullscreen True or False When the value is set to True , the
video is played in full-screen mode.

Play pause trigger True or False When the value is set to True , a
play/pause button is shown on the
video.

Video player controls True or False When the value is set to True , all video
player controls are shown. These
controls include play and pause
buttons, a progress indicator, and
closed caption options.

Hide poster image True or False A video can have a poster frame. When
the value of this property is set to True ,
the poster frame is hidden.

Mask level A number from 0 through 100 The mask that is applied to the video
for styling.

Add a video player module to a page


NOTE
Before you create a video player module, you must first upload a video to the Media Library.

To add a video player module to a new page and set the required properties, follow these steps.
1. Create a page template that is named video player template .
2. In the Main slot of the default page, add a container module.
3. In the container module, add video player and ambient video player modules.
4. Finish editing the template, and publish it.
5. Use the video player template that you created to create a page that is named video player page .
6. In the Main slot of the new page, add a video player module.
7. In the property pane for the video player module, select Add a video .
8. In the Media Picker dialog box, select a video, and then select Upload new media item .
9. Save and preview the page. You should see the video module on the page. You can change additional settings
to customize the behavior of the module.
10. Finish editing the page, and publish it.

Additional resources
Starter kit overview
Promo banner module
Carousel module
Text block module
Content block module
Header module
4/15/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers header modules and describes how to create page headers in Microsoft Dynamics 365
Commerce.

Overview
In Dynamics 365 Commerce, a page header comprises multiple modules, such as the header, navigation menu,
search, promo banner, and cookie consent modules.
The header module includes a site logo, links to the navigation hierarchy, links to other pages on the site, a cart
symbol, a wishlist symbol, sign-in options, and the search bar. A header module is automatically optimized for the
device that the site is being viewed on (in other words, for a desktop device or a mobile device). For example, on a
mobile device, the navigation bar is collapsed into a Menu button (which is sometimes referred to as a
hamburger menu).

Properties of a header module


A header module supports Logo image , Logo link , and My account links properties.
The Logo image and Logo link properties are used to define a logo on the page. For more information, see Add
a logo.
The My account links property can be used to define account pages that the site owner wants to show quick
links for in the header.

Modules that are available in a header module


The following modules can be used in a header module:
Navigation menu – The navigation menu represents the channel navigation hierarchy and other static
navigation links. The channel navigation hierarchy can be configured in Dynamics 365 Commerce. The
navigation menu has a Navigation Source property that is used to specify Retail Server navigation menu
items and static menu items as a source. If static menu items are specified as a source, relative links to other
pages on the site can be provided. Configured items then appear as header navigation.
Search – The search module lets users enter search terms to search for products. The URL of the default
search page and the search query parameters must be provided at Site Settings > Extensions . The search
module has properties that let you suppress the search button or label as you require. The search module also
supports auto-suggest options, such as product, keyword, and category search results.
Car t icon - The cart icon module represents the cart icon, which shows the number of items in the cart at any
given time. For more information, see Cart icon module.

Create a header module for a page


To create a header module, follow these steps.
1. Create a fragment that is named Header fragment , and add a container module to it.
2. In the property pane for the container module, set the Width property to Fill container .
3. Add a promo banner and cookie consent modules to the container module.
4. Add another container module to the fragment, and set the Width property to Fill container .
5. Add a header module to the second container module.
6. In the Navigation menu slot of the header module, add a navigation menu module.
7. In the property pane for the navigation menu module, configure the properties of the navigation menu
module.
8. In the Search slot of the header module, add a search module.
9. In the property pane for the search module, configure the properties of the search module.
10. In the Car t icon slot of the header module, add a cart icon module.
11. In the property pane for the cart icon module, configure the properties of the cart icon module. If you want
the cart icon to display a mini cart when hovered over, select True for Show mini car t .
12. Save the page fragment, finish editing, and publish it.
To help guarantee that a header appears on every page, follow these steps on every page template that is created
for the site.
1. In the Main slot of the default page, add the header page fragment that contains the header module to the
header.
2. Save the template, finish editing, and publish it.

Additional resources
Starter kit overview
Container module
Buy box module
Cart module
Cart icon module
Checkout module
Order confirmation module
Header module
Footer module
Footer module
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers footer modules and describes how to create them in Microsoft Dynamics 365 Commerce.

Overview
The footer module is a special container that is used to host the modules that appear in the page footer. For
example, it can include links to various pages across the site, such as Contact Us and Store Policies pages.

Footer module properties


Like most containers, a footer module supports properties for the heading and the width. It also supports the
addition of multiple footer category modules. Each footer category module that is added is rendered as a column
in the footer module.

Modules available in a footer module


Footer items – A footer items module can contain a heading, an image, and a link. The heading can be used
either alone or in combination with an image and a link. Every link in the footer can be configured so that it has
just text (for example, "Contact Us" and "Privacy" links), or so that it has both text and an image (for example,
social media links).
Back to top – A back to top module provides a link for quick navigation to the top of the page. A destination is
required. The default destination value is #, which takes the user to the top of the page.

Author a footer module


1. In the navigation pane, select Fragments , and then select New Page Fragment .
2. In the New Page Fragment dialog box, select the footer module, enter a name for the page fragment, and
then select OK .
3. In the outline tree on the left, select the ellipsis button (...) for the footer module, and then select Add Module .
4. In the Add Module dialog box, select the footer category module, and then select OK .
5. In the outline tree, select the ellipsis button for the footer category module, and then select Add Module .
6. In the Add Module dialog box, select the footer item module, and then select OK .
7. In the outline tree, select the footer item module. Then, in the properties pane on the right, configure the
heading, link and link text, and image as you require.
8. To add more footer items, repeat steps 5 through 7.
9. To add a "back to top" link to your footer, select the ellipsis button for the footer category module, and then
select Add Module .
10. In the Add Module dialog box, select the back to top module, and then select OK .
11. In the outline tree, select the back to top module. Then, in the properties pane on the right, configure the back
to top module as you require.
12. Select Save , select Finish editing to check in the page fragment, and then select Publish to publish it.
On every page template that has been created for the site, follow these steps.
1. In the Main slot of the default page, in the footer module, add the footer fragment that you created.
2. Select Save , select Finish editing to check in the template, and then select Publish to publish it.
By adding the page fragment to page templates, you help guarantee that the footer is rendered on every page.

Additional resources
Starter kit overview
Container module
Buy box module
Cart module
Checkout module
Order confirmation module
Header module
Footer module
Buy box module
4/17/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers buy box modules and describes how to add them to site pages in Microsoft Dynamics 365
Commerce.

Overview
The term buy box typically refers to the area of a product details page that is "above the fold," and that hosts all
the most important information that is required to make a product purchase. (An area that is "above the fold" is
visible when the page is first loaded, so that users don't have to scroll down to see it.)
A buy box module is special container that is used to host all the modules that are shown in the buy box area of a
product details page.
The URL of a product details page includes the product ID. All the information that is required to render a buy box
module is derived from this product ID. If a product ID isn't provided, the buy box module won't be rendered
correctly on a page. Therefore, a buy box module can be used only on pages that have product context. To use it
on a page that doesn't have product context (for example, a home page or a marketing page), you must do
additional customizations.

Buy box module properties and slots


On a product details page, a buy box is divided into two regions: a media region on the left and a content region
on the right. By default, the ratio of the width of the media region column to the width of the content region
column is 2:1. On mobile devices, the two regions are stacked so that one region appears below the other region.
Themes can be used to customize the column widths and stacking rank.
A buy box module renders the title, description, price, and ratings of a product. It also lets customers select
product variants that have different product attributes, such as size, style, and color. When a product variant is
selected, other properties in the buy box (for example, the product description and images) are updated to reflect
the variant information.
A quantity selector is provided, so that customers can specify the quantity of items to purchase. The maximum
quantity that can be purchased can be defined in the site settings.
From the buy box, customers can also perform actions such as adding a product to the cart, adding a product to
their wishlist, and selecting a pickup location. These actions can be performed on a product or a product variant.
To add a product to a wishlist, the customer must be signed in.
Themes can be used to remove or change the order of buy box product properties and action controls.

Module properties
Heading tag – This property defines the heading tag for the product title. If the buy box is at the top of the
page, this property should be set to h1 to meet accessibility standards.
Modules that can be used in a buy box module
Media galler y – This module is used to showcase images of a product on a product details page. It can
support one to many images. It also supports thumbnail images. The thumbnail images can be arranged
either horizontally (as a row below the image) or vertically (as a column next to the image). The media gallery
module can be added to the Media slot in the buy box module. It currently supports only images.
Store selector – This module shows a list of nearby stores where an item is available for pickup. It lets users
enter a location to find stores that are nearby. For more information on this module, see Store selector
module.

Buy box module settings


Buy box modules have three settings that can be configured at Site Settings > Extensions :
Maximum quantity – This property is used to specify the maximum number of each item that can be
added to the cart. For example, a retailer might decide that only 10 of each product can be sold in a single
transaction.
Inventor y check – When the value is set to True , an item is added to the cart only after the buy box
module makes sure that it's in stock. This inventory check is done for scenarios where the item will be
shipped and for scenarios where it will be picked up in the store. If the value is set to False , no inventory
check is done before an item is added to the cart and the order is placed. For information on how to
configure inventory settings in back office, see Calculate inventory availability for retail channels.
Inventor y buffer – This property is used to specify a buffer number for inventory. Inventory is
maintained in real time, and when many customers place orders, it can be difficult to maintain an accurate
inventory count. When an inventory check is done, if the inventory is less than the buffer amount, the
product is treated as out of stock. Therefore, when sales occur quickly through several channels, and the
inventory count isn't fully synced, there is less risk that an item that is out of stock will be sold.

Commerce Scale Unit interaction


The buy box module retrieves product information using Commerce Scale Unit APIs. The product ID from the
product details page is used to retrieve all information.

Add a buy box module to a page


To add a buy box module to a new page and set the required properties, follow these steps.
1. Create a fragment that is named buy box fragment , and add a buy box module to it.
2. In the Media slot of the buy box module, add a media gallery module.
3. In the Store selector slot of the buy box module, add a store selector module.
4. Select Save , select Finish editing to check in the fragment, and then select Publish to publish it.
5. Create a template for a product details page, and name it PDP template .
6. Add a default page.
7. In the Main slot of the default page, add a buy box fragment.
8. Select Save , select Finish editing to check in the template, and then select Publish to publish it.
9. Use the template that you just created to create a page that is named PDP page .
10. In the Main slot of the new page, add a buy box fragment.
11. Save and preview the page. Add the ?productid=<product id> query string parameter to the URL of the
preview page. In that way, the product context is used to load and render the preview page.
12. Select Save , select Finish editing to check in the page, and then select Publish to publish it. A buy box
should appear on the product details page.
Additional resources
Starter kit overview
Store selector module
Container module
Cart module
Cart icon module
Checkout module
Order confirmation module
Header module
Footer module
Calculate inventory availability for retail channels
Ratings and reviews modules
2/19/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers ratings and reviews modules used on product details pages (PDPs) in Microsoft Dynamics 365
Commerce.

Overview
Ratings and reviews on e-Commerce websites help customers learn about products before they make a purchase
decision, and are also a mechanism for collecting customer feedback about products.
Ratings are shown on product list pages, category list pages, search results pages, and other site pages.
Ratings histograms and product reviews are shown on PDPs. A Write a review button lets customers submit
ratings and reviews for a product. These PDP features are controlled by ratings and review modules.

Ratings and reviews modules on PDPs


Three modules show the ratings and reviews summary on PDPs:
Write review module
Product reviews list module
Ratings histogram module
The following illustration shows what the ratings and reviews modules look like on a PDP.
TIP
For information about how to optimize PDP templates and layouts so that you can share the configurations for ratings and
reviews modules among multiple PDPs on your e-Commerce site, see Templates and layouts overview.

The following illustration shows how the Add module dialog box presents ratings and reviews modules in
Dynamics 365 Commerce.

Write review module


The write review module includes a Write a review button that lets users sign in, assign a rating, and write a
review of a product. This module also lets users edit a rating or review that they previously submitted. This module
typically appears above the ratings histogram and product reviews list modules on a PDP. The following illustration
shows the Write a review dialog box that appears when a customer selects Write a review . The customer can
use this dialog box to submit a rating and a review.

The following table shows the write review module property that needs to be configured in the authoring tool. |
Property name | Value | Property description | |---------------|--------------|--------------------------------------| | Name
| Write review | The name of the write review module. |
Ratings histogram module
The ratings histogram module shows a ratings histogram. This module typically appears between the write review
module and the product reviews list module on a PDP. The ratings histogram module requires no configuration.
You just have to add the module in the PDP template. The following illustrations shows what a PDP template looks
like in Dynamics 365 Commerce when ratings and reviews modules are configured for display on PDPs.

Product reviews list module


The product reviews list module shows a list of product reviews together with sort, filter, and pagination options.
This module typically appears after the ratings histogram module on a PDP. The following table shows the product
reviews list module properties that need to be configured in the authoring tool.

P RO P ERT Y N A M E VA L UE P RO P ERT Y DESC RIP T IO N

Reviews shown on each page 10 The number of reviews that should be


shown at a time on a PDP. Next and
Previous buttons are included, so that
users can move through the pages of
reviews.

Ratings histogram – Summary view


The product reviews list module includes a slot where you can add a ratings histogram module. The following
illustration shows how you can add a ratings histogram module in the product reviews list module in Dynamics
365 Commerce.

Additional resources
Starter kit overview
Container module
Cart module
Checkout module
Order confirmation module
Header module
Footer module
Cart module
4/15/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers cart modules and describes how to add them to site pages in Microsoft Dynamics 365
Commerce.

Overview
A cart module shows the items that have been added to the cart before the customer proceeds to checkout. The
module also shows an order summary and lets the customer apply or remove promotional codes.
The cart module supports signed-in checkout and guest checkout. It also supports a Back to shopping link. You
can configure the route for this link at Site Settings > Extensions > Routes .
The cart module renders data based on the cart ID, which is a browser cookie available throughout the site.

Cart module properties and slots


The cart module has a Heading property that can be set to values such as Shopping bag and Items in your
car t .

Modules that can be used in a cart module


Text block – This module supports custom messaging in the cart module. The messages are driven by the
content management system (CMS). Any message can be added, such as "For issues with your order, contact
1-800-Fabrikam."
Store selector – This module shows a list of nearby stores where an item is available for pickup. It lets users
enter a location to find stores that are nearby. For more information on this module, see Store selector
module.

Module properties
Cart modules have the following settings that can be configured at Site Settings > Extensions :
Maximum quantity – This property is used to specify the maximum number of each item that can be added
to the cart. For example, a retailer might decide that only 10 of each product can be sold in a single
transaction.
Inventor y check – When the value is set to True , an item is added to the cart only after the buy box module
makes sure that it's in stock. This inventory check is done for scenarios where the item will be shipped and for
scenarios where it will be picked up in the store. If the value is set to False , no inventory check is done before
an item is added to the cart and the order is placed. For information on how to configure inventory settings in
back office, see Calculate inventory availability for retail channels.
Inventor y buffer – This property is used to specify a buffer number for inventory. Inventory is maintained
in real time, and when many customers place orders, it can be difficult to maintain an accurate inventory
count. When an inventory check is done, if the inventory is less than the buffer amount, the product is treated
as out of stock. Therefore, when sales occur quickly through several channels, and the inventory count isn't
fully synced, there is less risk that an item that is out of stock will be sold.
Back to shopping – This property is used to specify the route for the Back to shopping link. The route can
be configured at the site level, allowing retailers to take the customer back to the home page or any other
page on the site.

Commerce Scale Unit interaction


The cart module retrieves product information by using Commerce Scale Unit APIs. The cart ID from the browser
cookie is used to retrieve all the product information from Commerce Scale Unit.

Add a cart module to a page


To add a cart module to a new page and set the required properties, follow these steps.
1. Create a fragment named Car t fragment , and add a cart module to the new fragment.
2. Add a heading to the cart module.
3. Add a store selector module to the cart module.
4. Save the fragment, finish editing, and then publish the fragment.
5. Create a template named Car t template , and add the cart fragment that you just created.
6. Save the template, finish editing, and then publish the template.
7. Create a page that uses the new template.
8. Save and preview the page.
9. Finish editing the page, and then publish the page.

Additional resources
Starter kit overview
Container module
Store selector module
Buy box module
Cart icon module
Checkout module
Order confirmation module
Header module
Footer module
Calculate inventory availability for retail channels
Cart icon module
4/15/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers the cart icon module and describes how to add it to site pages in Microsoft Dynamics 365
Commerce.

Overview
The cart icon module represents the cart in the header module of the page, and shows the number of items in the
cart. The cart icon module also displays a cart summary (also known as a mini cart) when the cart icon is hovered
over. The mini cart provides the user with a summary of the items in the cart without having to navigate to the
cart page. In addition, it also allows the user to directly go to checkout page if they are happy with the summary.
This reduces the number of page navigations and makes checkout faster.

Module properties
Show mini car t – When true, this property enables a cart summary (mini cart) to be displayed when the cart
icon is hovered over. This functionality is only supported for desktop view ports.

Add a cart icon module to a page


To add a cart icon module, see Header module.

Additional resources
Buy box module
Cart module
Checkout module
Order confirmation module
Header module
Footer module
Checkout module
2/5/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to add a checkout module to a page and set the required properties.

Overview
A checkout module is a special container that hosts all modules that are required to create an order. It presents a
step-by-step flow that a customer uses to enter all the relevant information to make a purchase. It captures the
shipping address, shipping method, and billing information. It also provides an order summary and other
information that is related to a customer order.
A checkout module renders data based on the cart ID. This cart ID is saved as a browser cookie. A cart ID is
required to render information in the checkout module, such as the items in the order, the total amount, and
discounts.

Checkout module properties


A checkout module shows an order summary and provides the functionality for placing an order. To gather all
the customer information that is required before an order can be placed, additional modules must be added to
the checkout module. Therefore, retailers have the flexibility to add custom modules to the checkout flow, or to
exclude modules, based on their requirements.
Modules that can be used in the checkout module
Shipping address – This module lets a customer add or select the shipping address for an order. If the
customer is signed in, any addresses that were previously saved for that customer are shown. The customer
can then select among those addresses. The customer can also add a new address. The shipping address is
used for all the items in the order that require shipping. It can't be customized for individual line items.
Shipping address formats are defined for each country or region, and the country/region-specific rules are
enforced by this module. Although this module doesn't provide address validation, address validation can be
implemented through customization. If the order includes only items that will be picked up in the store, this
module is automatically hidden.
Deliver y options – This module lets a customer select a delivery option for an order. Delivery options are
based on the shipping address. If the shipping address is changed, the delivery options must be retrieved
again. If the order includes only items that will be picked up in the store, this module is automatically hidden.
Checkout section container – This module is a container that you can put multiple modules inside to
create a section within the checkout flow. For example, you can put all payment-related modules inside this
container to make them appear as one section. This module affects only the layout of the flow.
Gift card – This module lets a customer pay for an order by using a gift card. It supports only Microsoft
Dynamics 365 Commerce gift cards. One or more gift cards can be applied to an order. If the balance of the
gift card doesn't cover the amount in the cart, the gift card can be combined with another payment method.
Gift cards can be redeemed only if the customer is signed in.
Loyalty points – This module lets a customer pay for an order by using loyalty points. It provides a
summary of available points and expiring points, and lets the customer select the number of points to
redeem. If the customer isn't signed in or isn't a loyalty member, or if the total amount in the cart is 0 (zero),
this module is automatically hidden.
Payment – This module lets a customer pay for an order by using a credit card. If the total amount in the cart
is covered by loyalty points or a gift card, or if it's 0 (zero), this module is automatically hidden. Credit card
integration is provided by the Adyen payment connector for this module. For more information about how to
use this connector, see Dynamics 365 Payment Connector for Adyen.
Billing address – This module lets a customer provide billing information. This information is processed,
together with the credit card information, by Adyen. This module includes an option that lets customers use
their billing address as the shipping address.
Contact information – This module lets a customer add or change the contact information (email address)
for an order.
Text block – This module contains any messaging that is driven by the content management system (CMS).
For example, it might contain a message that states, "For issues with your order, contact 1-800-Fabrikam."

Commerce Scale Unit interaction


Most of the checkout information, such as the shipping address and shipping method, is stored in the cart and
processed as part of the order. The only exception is the credit card information. This information is processed
directly by using the Adyen payment connector. The payment is authorized but isn't charged.

Add a checkout module to a new page and set the required


properties
To add a checkout module to a new page and set the required properties, follow these steps.
1. Go to Fragment > New Fragment , and name the new fragment Checkout fragment .
2. Add a checkout module to the fragment.
3. Add a heading to the checkout module.
4. Add shipping address, delivery options, checkout section container, and contact information modules.
5. In the checkout section container module, add gift card, loyalty points, and payment modules. In this way, you
make sure that all the payment methods appear together in a section.
6. Save and preview the fragment. Some modules that don't have a cart context might not be rendered in the
preview.
7. Finish editing the fragment, and publish it.
8. Create a template that uses the new checkout fragment.
9. Create a checkout page that uses the new template.

Additional resources
Starter kit overview
Container module
Buy box module
Cart module
Order confirmation module
Header module
Footer module
Order details module
2/5/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers order details modules and describes how to use them in Microsoft Dynamics 365 Commerce.

Overview
The order details module is used to show order confirmation details after an order has been placed. It shows the
order confirmation ID, order contact information, and other order details, such as the items that were purchased,
payment information, and the shipping method.

Order confirmation module properties


P RO P ERT Y N A M E VA L UES DESC RIP T IO N

Heading Heading text and heading tag (H1 , H2 , The order confirmation module can
H3 , H4 , H5 , or H6 ) have a heading. By default, the H2
heading tag is used for the heading.
However, the tag can be changed to
meet accessibility requirements.

Contact number Text A contact number can be provided for


order-related questions.

Modules that can be used on an order details page


When you create an order details page, you can add other relevant modules in addition to the order details
module. Here are some examples:
Recommendations module – The recommendations module can be added to the order details page to
suggest other products to the customer.
Marketing modules – Any marketing module can be added to the order details page to show marketing
content.

Create an order details page module


1. Create a page template that is named Order details template .
2. In the Main slot of the default page, add an order details module.
3. In the order details module, add a recommendations module.
4. Save and preview the template. The order details module won't be rendered, because it requires the context of
the order confirmation number.
5. Finish editing the template, and publish it.
6. Use the order details template that you just created to create a page that is named order details page .
7. Add the default page to the page outline.
8. In the Header slot, add a header fragment.
9. In the Footer slot, add a footer fragment.
10. In the Main slot, add an order details module.
11. In the property pane for the order details module, add the heading Order details .
12. Below the order details module, add a recommendations module, and configure it so that it uses the New and
Best Selling settings.
13. Save and preview the page.
14. Finish editing the page, and publish it.

Additional resources
Starter kit overview
Container module
Buy box module
Cart module
Checkout module
Header module
Footer module
Store selector module
3/19/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers the store selector module and describes how to add it to site pages in Microsoft Dynamics 365
Commerce.

Overview
A store selector module is used for the "buy online, pick up in store"" (BOPIS) customer scenario. It displays a list
of stores where a product is available for pickup, as well as store hours and product inventory for each store.
The store selector module requires the context of a product and a search location to find stores. In the absence of a
search location, it defaults to the customer's browser location, provided that the customer gives consent. The
module has an input box which allows the customer to enter a location (zipcode, or city and state) to find stores
that are nearby.
The store selector module is integrated with the Bing Maps Geocoding application programming interface (API) to
convert the location to a latitude and longitude. A Bing Maps API key is required and must be added to the
Commerce shared parameters page in Dynamics 365 Commerce.
The store selector module can be added to a buy box module on the product details page (PDP) to display stores
where a product is available for pickup. It can also be added to a cart module. When added to a cart module, the
store selector module displays pickup options for each cart line item. In addition, with custom coding this module
can be added to other pages or modules via extensions and customizations.
For the BOPIS scenario to work, products should be configured with the "customer pickup" delivery mode.
Otherwise, the module will not be shown on the respective pages. For details on how to configure the delivery
mode, see Set up modes of delivery.
The following image shows an example of a store selector module used on a PDP.
Store selector module usage in e-Commerce
A store selector module can be used on a product details page (PDP) to find nearby stores where a product is
available for pickup.
A store selector module can be used on a cart page to find nearby stores where a product in the cart is
available for pickup.

Store selector module properties


P RO P ERT Y N A M E VA L UE DESC RIP T IO N

Search radius Number Defines the search radius for stores, in


miles. If no value is specified, the default
search radius of 50 miles is used.

Terms of Service URL The terms of service URL that is


required for the Bing Maps service.

Add a store selector module to a page


A store selector module needs the context of a product, so it can only be used within buy box and cart modules.
Store selector modules do not function outside these modules.
For information on how to add a store selector module to a buy box module, see Buy box module.
For information on how to add a store selector module to a cart module, see Cart module

Additional resources
Starter kit overview
Buy box module
Cart module
Quick tour of PDP
Quick tour of Cart and checkout
Set up modes of delivery
Gift card module
4/15/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers gift card modules and describes how to add them to site pages in Microsoft Dynamics 365
Commerce.

Overview
Gift cards are a common form of payment, and the gift card module can be used in a checkout module to accept
gift cards. The gift card module supports Dynamics 365, SVS, and Givex gift cards. SVS and Givex gift cards are
redeemed via the Adyen payment provider.
For more information on support for external gift cards such as SVS and Givex, see Support for external gift cards

Module properties
Show additional fields - This property defines what fields should be displayed for gift cards in addition to the
gift card number, which is always displayed by default. For example, some gift cards support displaying a
personal identification number (PIN), and others support displaying a PIN and expiration date. Alternatively, this
property could be set to "None", which would only display the gift card number and no additional fields.
Supported values:
PIN
Expiration date
PIN and expiration date
None

Site settings for gift card modules


In Commerce site builder under Site Settings > Extensions , there is a gift card module setting called Suppor ted
gift card type . This setting supports three values:
Dynamics 365 gift card - When this setting is applied, the gift card module only allows the redemption of
Dynamics 365 gift cards. This setting is only supported for signed-in users on the e-Commerce site.
SVS and Givex gift cards - When this setting is applied, the gift card module only allows the redemption of
Givex and SVS gift cards. This setting is supported for signed-in and anonymous users on the e-Commerce site.
Dynamics 365, SVS, and Givex gift cards - When this setting is applied, the gift card module allows the
redemption of Dynamics 365, Givex, and SVS gift cards. This setting is only supported for signed-in users on the
e-Commerce site.

Add a gift card module to a page


For instructions on how to add a gift card module to a checkout page and set the required properties, see Checkout
module.
Additional resources
Starter kit overview
Checkout module
Support for external gift cards
Account management pages and modules
2/5/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic covers account management pages and modules in Microsoft Dynamics 365 Commerce.

Overview
Account management refers to a group of pages that is used to manage user account–related information in
Dynamics 365 Commerce. Account management pages include the account management landing page, user
profile page, user address page, order history page, order details page, loyalty page, and wish list page.
Account management landing page
The account management landing page uses the following modules:
Container - All account management landing page modules should be placed within a container.
Account welcome tile – This module is used to provide a welcome message on the account management
page. It includes properties for the heading.
Account generic tile - This module can be used to provide headings and links to account management pages,
such as the "Order history" or "My profile" pages. The generic tile module can be used to configure a tile for any
page. In Fabrikam, this module is used for "Order history" and "My profile" page links on the account
management landing page.
Account wishlist tile – This module is used to provide a summary of the items on the customer's wish list. For
example, it might state, "You have 10 items in your wish list." It includes properties for the heading and the
"View details" link. The "View details" link should be configured to redirect to the wish list page.
Account address tile – This module is used to provide a summary of the user's addresses. For example, it
might state, "You have 2 addresses added to your account." It includes properties for the heading and the "View
details" link. The "View details" link should be configured to redirect to the user address page.
Account loyalty tile – This module is used to display and link to loyalty program information. This tile has two
states: one state shows links to join a loyalty progam if the user is not a member already. The other state shows
links to view the loyalty details page when the user is already a member. Properties include the heading, the
"Sign-up" link, and the "View loyalty" link. The "View loyalty" link should be configured to redirect to the loyalty
page. The "Sign-up" link should be configured to redirect to a page where users can join the loyalty program.
Order history page
The order history page uses the order history module to show all the recent orders that the user has placed.
Order details page
The order details page provides detailed information for each order and is accessed from the order history page. It
uses the order details module, which requires the sales ID or transaction ID to retrieve the order details.
User profile page
The user profile page shows user account details, such as a user's name and email address. It uses the user profile
details and user profile edit modules. Although the email address can't be removed, it can be edited. The user
profile page also shows user preferences that enable a user to opt in or opt out from certain features, such as
personalization of recommendation lists.
User address page
The user address page shows the list of addresses that are associated with the user account. The user either
provided these addresses during checkout or added them directly on this page. The user address module is used
add and edit addresses, set the primary address, and render existing addresses on the page.
Wish list page
The wish list page shows the items that have been added to the customer's wish list. It uses the wish list module to
render wish list items.
Loyalty page
The loyalty page lets customers view their loyalty details if they are already loyalty program members. They can
also view the points that they have earned and redeemed in recent transactions. The page uses the loyalty details
module to showcase the loyalty details.
To join loyalty program, a marketing page can be created with loyalty sign up and loyalty terms modules. If the
user is not a member of a loyalty program, these modules will enable the user to sign up.

Additional resources
Starter kit overview
Container module
Buy box module
Cart module
Checkout module
Order confirmation module
Header module
Footer module
Product collection modules
2/5/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of product collection modules in Microsoft Dynamics 365 Commerce.

Overview
Product discovery is a primary tool that retailers use to engage with their customers on an e-Commerce website.
Product collection modules help retailers build compelling shopping experiences by providing an intuitive visual
interface that can be used to quickly author product collections.
Product collection modules represent physical products and services on the website. A product collection module
is typically linked to a details page where customers can purchase a product or service, or learn more about it.
The sources for product collections can be lists of the following four types:
Editorial lists of products that are manually defined in Dynamics 365 Commerce as related products for a
product, or product lists
Algorithmic lists, such as lists of new, best-selling, or trending products
Recommendation lists that are based on machine learning
Personalization lists that support personalized results for a customer. Customers must be signed in to the e-
Commerce site to see personalized results. Guest users don't see personalized results. Customers can opt out of
personalization from the account management page.
The following illustration shows the different types of product collections being used on an e-Commerce site.

NOTE
Always use product collection modules to show a group of products of a similar type.
Product collection modules and types
The following table describes various types of product collection modules in Dynamics 365 Commerce.

P RO DUC T C O L L EC T IO N M O DUL E TYPE DESC RIP T IO N

Category Category This module shows a list of products in


a category, as defined by the navigation
category hierarchy that the retailer
created for a channel.

Related products Editorial This module shows a list of products


that a merchandising manager has
configured as related products in
Commerce, for the relation type that
the author has selected.

Search results Search query This type of product collection module


shows a list of products that best match
the search query that the customer
entered.

Curated product lists Editorial This module shows custom lists that
merchandisers and editors have created
in Commerce.

New Algorithmic This module shows a list of the newest


products that have been assorted to
channels and catalogs. This list can
show personalized results for a signed-
in user if the site author chooses that
option.

Best selling Algorithmic This module shows a list of products


that are ranked by the highest number
of sales. This list can show personalized
results for a signed-in user if the site
author chooses that option.

Trending Algorithmic This module shows a list of the highest-


performing products for a given period.
This list can show personalized results
for a signed-in user if the site author
chooses that option.

Frequently bought together Artificial intelligence/Machine learning This module uses machine learning to
analyze consumer purchase patterns
and recommend related items that are
frequently bought together with a
given product. This list can show
personalized results for a signed-in user
if the site author chooses that option.

People also like Artificial intelligence/Machine learning This module uses machine learning to
analyze consumer purchase patterns
and recommend items that are related
to a given product. This list can show
personalized results for a signed-in user
if the site author chooses that option.
P RO DUC T C O L L EC T IO N M O DUL E TYPE DESC RIP T IO N

Picks for you Artificial intelligence/Machine learning This module uses machine learning to
analyze the purchase patterns of the
signed-in user and provide personalized
recommendations that are based on
those purchase patterns. For a guest
user, this list will be collapsed.

Add a product collection module to a category page


To add a product collection module to a category page, follow these steps.
1. In Dynamics 365 Commerce, go to your site, and create a page that uses the same template as your default
category page.
2. In the page outline, select the Sub footer slot, select the ellipsis button (...), and then select Add Module .
3. In the Add Module dialog box, select Container , and then select OK .
4. In the container module, select the ellipsis button, and then select Add Module .
5. In the Add Module dialog box, select Product collection , and then select OK .
6. Configure settings by selecting an appropriate data source and inputs for the product collection.
7. In the properties pane for the product collection module, select Add a product list .
8. In the Select product list configuration dialog box, select the type of list, enter the number of items, and
select any other options that are available for the list type. For more information about list types, see the table
that follows.
9. Select OK .
10. Save the page, and check it in.
The following table shows the list types that are available for selection in the Select product list configuration
dialog box.

SP EC IF IC P ERSO N A L IZ AT IO
TYPE DESC RIP T IO N USA GE PA GE C O N T EXT C O N T EXT N

Products by A list of products This type of list Category from The author can Not applicable
category that belong to a can be used on the page context, provide a specific
given category. any page (for where available category as
This category is example, a home (for example, a context for the
determined from page, category category page) list.
either the page page, marketing
context or the page, or product
context that the details page
author provides. [PDP]) to
promote a
specific category
of products.

Related products A list of products This type of list is Product from the The product can Not applicable
that a used primarily on page, relation be selected in the
merchandising PDPs, but it can type (mandatory) picker, and the
manager has be used on any relation type is
configured as page if a parent used.
related products product is
for the relation provided.
type in
Commerce.
SP EC IF IC P ERSO N A L IZ AT IO
TYPE DESC RIP T IO N USA GE PA GE C O N T EXT C O N T EXT N

Curated A custom list that Enrich category Not applicable Not applicable Not applicable
merchandisers page, home
and editors have page, checkout
created in and cart pages,
Commerce. and product
pages

Algorithmic New – A Home page, Category from The category that Supported
list of the enrich category the page context is determined by
newest page, and (for example, a the site author
products checkout and category page)
that have cart pages
been
assorted
to
channels
and
catalogs.
Best-
selling –
A list of
products
that are
ranked by
the
highest
number
of sales.
Trending
– A list of
the
highest-
performin
g
products
for a
given
period.

Frequently A list that uses This type of list is Cart Not applicable Supported
bought together machine learning applicable only to
to analyze the cart page.
consumer
purchase
patterns and
recommend
related items that
are frequently
bought together
with a given
product.
SP EC IF IC P ERSO N A L IZ AT IO
TYPE DESC RIP T IO N USA GE PA GE C O N T EXT C O N T EXT N

People also like A list that uses This type of list is Product context The product that Supported
machine learning used on PDPs to from the page is provided by
to analyze show products the site author
consumer that other
purchase customers have
patterns and bought.
recommend
items that are
related to a given
product.

Picks for you A list that uses This type of list Not applicable Not applicable Supported
machine learning can be used on
to determine any page.
customer
preferences.

Additional resources
Starter kit overview
Carousel module
Content rich block module
Container module
Buy box module
Product recommendations overview
Overview of default category landing page and
search results page
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-
Commerce, in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the default category landing page and search results page in Microsoft
Dynamics 365 Commerce e-Commerce.

Default category landing page


The default category landing page is the page that website users typically are taken to when they select a category
in the navigation hierarchy. The category page lets you browse, and you can also sort and refine the categorized
products.
At the top of the page is a header that shows all the product categories and other pages that the merchandising
manager has categorized. Configuration is done as part of the configuration of the channel navigation hierarchy.
At the bottom of the page is a footer that includes quick links to various topics that a shopper might be interested
in.
The following components are essential for a category:
Product placement tiles show the products that the merchandising manager has defined in a category
as part of the configuration of the navigation hierarchy.
Refiners and choice summar y are filters that provide counts and that can be used to refine items. The
merchandising manager configures them as part of the configuration of the metadata related to channel
categories and product attributes.
Sor ting options are used by website visitors to sort the products. By default, the following sorting
options are available:
Price – low to high
Price – high to low
Product name – [A-Z]
Product name – [Z-A]
Ratings – low to high
Ratings – high to low
Pagination lets website visitors move from one page of categorized product results to another page.
Total count provides the total number of products that are defined in a category.

Enrich a category landing page


If you want a category landing page to have a more tailored experience for a specific category, you can "enrich"
the category landing page for that category. For example, you can add a marketing video and some category
storytelling to get the shopper's attention. For more information, see Enrich a category landing page.

Auto-suggest and search results pages


Website users can explore a site either by going to a category from the navigation hierarchy or by entering a
search term in the search field.
As soon as users start to type in the search field, they experience the immersive auto-suggest functionality that
suggests search terms.
Here are some of the types of suggestions that might be shown:
Keywords are used to find items across all products that are assorted to the channel.
Products provide direct links to the product details page.
Scoped categor y search suggestions list various categories and let users search for the keyword in a
specific category.

When users select one of the keyword or scoped category search suggestions, or when there are no suggestions
for the search term that they enter, they are redirected to a search results page. The users can then browse, sort,
and refine the list of search results to find the desired item.
The following components are essential for a search results page:
Product placement tiles show the products for the user's search. By default, these tiles are sorted by the
cloud-powered search relevancy score for the user search.
Refiners and choice summar y are filters that provide counts and that can be used to refine items. The
merchandising manager configures them as part of the configuration of the "channel categories and
product attributes" metadata.
Sor ting options are used by website visitors to sort the products. By default, the following sorting
options are available:
Price – low to high
Price – high to low
Product name – [A-Z]
Product name – [Z-A]
Ratings – low to high
Ratings – high to low
Default
Pagination lets website visitors move from one page of categorized product results to another page.
Total count provides the total number of products that are defined in a category and that match the
search criteria.
Additional resources
Overview of the home page
Overview of product details pages
Overview of cart and checkout pages
Overview of account management pages
Cloud-powered search overview
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic gives an overview of cloud-powered search in Microsoft Dynamics 365 Commerce.

Overview
Product discoverability helps guarantee that customers can quickly and easily find products by browsing
categories, searching, and filtering. Retailers consider product discovery a primary tool for customer interaction
across all channels.
Customers are accustomed to the nearly instantaneous response times of web search engines, sophisticated e-
Commerce websites, social apps, automatic suggestions that appear as they type search terms, faceted navigation,
and highlighting. If customers can't find the product that they are looking for quickly enough in one e-Commerce
store, they won't hesitate to go to a different e-Commerce store.
The cloud-powered product discoverability in Dynamics 365 Commerce helps retailers continue to increase
consumer retention and conversion rates across all channels, both e-Commerce channels and point of sale (POS)
channels.
The Dynamics 365 Commerce search experience has improved capabilities to help retailers achieve better product
discoverability. At the same time, these capabilities deliver the scalability and performance that are required for e-
Commerce traffic.

Browse and search


Search relevance and performance are key factors in the omnichannel experience, because product discovery relies
primarily on search functionality for information retrieval and content navigation. An effective and efficient browse
and search experience helps increase conversion.
The following illustration shows an example of typical browse and search functionality.
Faceted navigation and choice summary
Faceted navigation helps customers more easily browse for content by letting them filter on refiners that are linked
to terms in a term set. After a customer has selected and applied refiners, a summary of the choices is shown.
By using faceted navigation, you can configure different refiners for different terms in a term set, without having to
create additional pages.
The following illustration shows an example where faceted navigation is used in a search.

Immersive autosuggest
Current autosuggest functionality just shows keywords that trigger a search for the matching keyword. Because of
new enhancements in Dynamics 365 Commerce, customers can often discover links to products before they have
finished typing.
Dynamics 365 Commerce also supports functionality for keyword matches in various categories. This functionality
lets customers see the number of matching keywords across categories and trigger a search for a keyword in other
categories.
The following illustration shows an example where immersive autosuggest is being used.

Sort
Enhanced sorting in Dynamics 365 Commerce lets customers sort, search, and browse search results, and refine
them by criteria such as price, product name, and product number. Customers can also sort results based on
whether a product is new, top-selling, or recently added.

Additional resources
Default category landing page and search results page
Manage SEO metadata
Generate online channel reports
2/13/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to generate reports for your online channel in Microsoft Dynamics 365 Commerce.

Overview
You can generate and view several reports in Commerce to see how your online channel is performing.

Channel summary report


The Channel summar y report shows a summary of the following transactions for the selected channel:
Sales transactions
Payment transactions
Tax transactions
Discounted transactions
To generate a Channel summar y report, follow these steps.
1. Go to Retail and Commerce > Inquiries and repor ts > Sales repor ts > Channel summar y repor t .
2. In the From date field, enter a date.
3. In the To date field, enter a date.
4. In the Channel field, select the online channel.
5. Select OK .

Channel sales by year report


The Channel sales by year report shows a comparison of year-over-year sales for a specific store. You select the
year to compare the sales against, and the report compares sales for the selected year with sales for the previous
year.
To generate a Channel sales by year report, follow these steps.
1. Go to Retail and Commerce > Inquiries and repor ts > Sales repor ts > Channel sales by year repor t .
2. In the From calendar year field, enter a year.
3. In the To calendar year field, enter a year.
4. In the Channel field, select the online channel.
5. Select OK .

Channel sales by hour report


The Channel sales by hour report shows sales metrics per hour for a selected channel or operating unit.
To generate a Channel sales by hour report, follow these steps.
1. Go to Retail and Commerce > Inquiries and repor ts > Sales repor ts > Channel sales by hour
repor t .
2. In the From date field, enter a date.
3. In the To date field, enter a date.
4. In the Channel field, select the online channel.
5. Select OK .

Top customers report


The Top customers report shows sales metrics for the top N customers for a selected channel or operating unit.
The value N is a number from 10 to 100 and is based on a user-selected aggregate measure.
To generate a Top customers report, follow these steps.
1. Go to Retail and Commerce > Inquiries and repor ts > Sales repor ts > Top customers repor t .
2. In the From date field, enter a date.
3. In the To date field, enter a date.
4. In the Channel field, select the online channel.
5. Select OK .

Top discounts report


The Top discounts report shows sales metrics for the top N discounts for a selected channel or operating unit. The
value N is a number from 10 to 100 and is based on a user-selected aggregate measure.
To generate a Top discounts report, follow these steps.
1. Go to Retail and Commerce > Inquiries and repor ts > Sales repor ts > Top discounts repor t .
2. In the From date field, enter a date.
3. In the To date field, enter a date.
4. In the Channel field, select the online channel.
5. Select OK .

Top products report


The Top products report shows sales metrics for the top N products for a selected channel or operating unit. The
value N is a number from 10 to 100 and is based on a user-selected aggregate measure.
To generate a Top products report, follow these steps.
1. Go to Retail and Commerce > Inquiries and repor ts > Sales repor ts > Top products repor t .
2. In the From date field, enter a date.
3. In the To date field, enter a date.
4. In the Channel field, select the online channel.
5. Select OK .

Category sales report


The Categor y sales report shows sales metrics over a selected period for each node of a category hierarchy for a
selected channel or operating unit.
To generate a Categor y sales report, follow these steps.
1. Go to Retail and Commerce > Inquiries and repor ts > Sales repor ts > Categor y sales repor t .
2. In the From date field, enter a date.
3. In the To date field, enter a date.
4. In the Channel field, select the online channel.
5. Select OK .

Organization sales report


The Organization sales report shows the performance of your stores by organization unit. This report includes
the sales quantity and amount by store, and the profit margin for each store. The organization unit is based on the
default reporting hierarchy.
To generate an Organization sales report, follow these steps.
1. Go to Retail and Commerce > Inquiries and repor ts > Sales repor ts > Organization sales repor t .
2. In the From date field, enter a date.
3. In the To date field, enter a date.
4. Select OK .

Additional resources
Commerce home page
Build custom response pages for 4xx/5xx status code
errors
4/17/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes how to build custom response pages for 4xx and 5xx status code errors by using the authoring
tools in Microsoft Dynamics 365 Commerce.

Overview
If a request isn't successful, the server issues HTTP status code error responses. The 404 status code is captured and
returned if a page isn't found, and the 500 status code is captured and returned if a server error occurs. In
Dynamics 365 Commerce, application users can build custom status code error response pages that are shown to
users for these status code error responses.

Build a status code error response page


To start to build a status code error response page, follow these steps.
1. In your preferred web browser, sign in to Dynamics 365 Commerce.
2. Select the site that you want to build a 4xx/5xx status code error response page for.
Build the template
To build the template for the status code error response page, follow these steps.
1. Go to Templates .
2. Select New to create a page template.
3. In the New Template dialog box, under Template Name , enter a name for the new template, and then select
OK .
4. Build the template, based on the structure that you want the status code error response page to have.
5. Select Save , select Finish editing to check in the template, and then select Publish to publish it.
Build the status code error response page
To build the status code error response page, follow these steps.
1. Go to Pages .
2. Select New to create a page.
3. In the Choose a template dialog box, select a template, and then, under Page name , enter a name for the
status code error response page. Leave the Page URL field blank.
4. Build the page.
5. Select Save , select Finish editing to check in the page, and then select Publish to publish it.
NOTE
You can create separate status code error response pages for 4xx and 5xx status code errors. Alternatively, you can use the
same general status code error response page for both error categories.

Set up a redirect for the status code error response page


To set up a redirect for the status code error response page, follow these steps.
1. Go to URLs > New > New Alias , and select the status code error response page that you built earlier.
2. In the Alias field, enter either default-4xx or default-5xx , depending on the status code error response page
that you're setting up a redirect for. These aliases must be published. Otherwise, the redirect won't work.
3. Select OK to commit the linking.

NOTE
If you're using a single status code error response page for both error categories, repeat this procedure to link an alias for the
other error category to the same page.

Additional resources
Work with templates
Add a new site page
Create a page URL
Dynamics 365 Fraud Protection integration with
Dynamics 365 Commerce
2/28/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes out-of-box integrations that are available between Microsoft Dynamics 365 Commerce and
Dynamics 365 Fraud Protection.

Key terms
T ERM DESC RIP T IO N

Purchase protection The Fraud Protection module that analyzes purchases for
fraud, based on risk levels that are determined by the
merchant.

Storefront The out-of-box e-commerce storefront that is provided with


Commerce.

Overview
Fraud Protection is a service that offers fraud protection solutions to help retailers prevent fraudulent activity and
identify places where fraud might be unnoticed. This topic describes out-of-box integrations between Fraud
Protection and Commerce. It will be updated as new integrations between the two services are released in future
releases. For more information about Fraud Protection, including information about modules that aren't yet
supported by an out-of-box integration with Commerce, visit the Fraud Protection landing page. You can also
request a callback from a Dynamics 365 sales representative to discuss how Fraud Protection can help boost
profitability, reduce operational expenses, and improve customer experiences.

Purchase protection in Commerce


Purchase protection overview
The first generally available offering from Fraud Protection is a purchase protection module that lets merchants
sign in to the Fraud Protection dashboard for their organization and define fraud rules for online purchases. Based
on the settings that a merchant configures in Fraud Protection, e-commerce transactions can be validated with
Fraud Protection before they are sent for payment authorization.
When an order is sent to the Fraud Protection purchase protection module, Fraud Protection analyzes the purchase
and provides a risk assessment, based on merchant-defined fraud rules, insights that are driven by artificial
intelligence (AI), and consortium-based fraud analytics. If the fraud score that is returned for the order exceeds the
merchant's risk tolerance, Fraud Protection instructs the storefront to reject the order. If an order isn't rejected,
Fraud Protection returns a fraud score that the storefront can use to determine the next steps in the order
fulfillment process. Those steps might include putting the order on hold for manual review or follow-up with the
customer who placed the order.
Supported capabilities in the purchase protection integration
Purchase events
Currently, Commerce is in public preview. However, when it becomes generally available, the purchase protection
integration will support the receipt of Fraud Protection risk assessments and termination of orders in the online
storefront.
Here is the flow for purchase events.
1. A storefront customer adds items to the basket and proceeds to checkout.
2. The customer enters shipping and payment details.
3. After the prerequisites are completed, the customer selects Place order .
4. Order details are sent to Fraud Protection for purchase protection assessment.
5. If the merchant rules that are defined in Fraud Protection determine that the order should be rejected, a
response is sent to the storefront, and the order is terminated.
If Fraud Protection purchase protection causes an order to be terminated, the user receives the following error
message: "The order cannot be processed at this time. Please try again later."

Alternatively, if the merchant rules determine that the order should be approved, the response that is sent to the
storefront includes the fraud score and the reason code that were determined by Fraud Protection. For the initial
integration, the Fraud Protection assessment isn't used in any way, and the response for both approval and rejection
scenarios isn't saved.
Rejected orders aren't sent to payment processors for authorization, and they don't go through the order creation
process in the back office.
Bank events
If an online order is approved based on the Fraud Protection assessment, the next step is to authorize payments for
that order, if payment authorizations are applicable. Once the order is authorized with the payment processor, Fraud
Protection is notified of the authorization result. By sending these results to Fraud Protection, the advanced AI can
be trained to better predict future authorization results, thereby boosting the quality of future Fraud Protection
assessments.
Purchase status events
Purchase status events resemble bank events. After an order is created in the Commerce back office, a signal is sent
to Fraud Protection to indicate that the order was successfully created. Both bank events and purchase status events
are informational events. Therefore, no response is expected from Fraud Protection.
Availability
As of Dynamics 365 Retail version 10.0.8, Retail includes the back-office setup for Fraud Protection integration.
However, the full out-of-box integration requires the storefront that is included in Commerce, and Commerce is
currently in public preview. When Commerce becomes generally available, existing Retail customers will be able to
update to it. For more information, visit the Dynamics 365 Commerce landing page.
Setup
The out-of-box purchase protection integration requires a Fraud Protection environment. To set up Fraud Protection,
request a callback from a Dynamics 365 sales representative.
After the merchant's Fraud Protection environment is available, and purchase protection settings have been
configured, the setup can continue in the Commerce back office.
K e y Va u l t se t u p

The integration setup requires that a secret be used when Commerce communicates with Fraud Protection to get a
purchase protection result. That secret must be stored by using an Azure Key Vault client. For information about
how to set up a Key Vault client, see Setting up Azure Key Vault Client.
The Fraud Protection certificate that is stored in Key Vault can be referenced only if it's referenced by Key Vault
parameters in the Commerce back office. To set up Key Vault parameters, go to Retail and Commerce >
Headquar ters setup > Parameters > Key Vault parameters in Commerce.
Next, select the Key Vault URL that is used to store the Fraud Protection secret, and select Add . Then specify the
name, description, and path of the Key Vault secret that is used to authenticate Commerce when it sends orders for
purchase protection assessment.
R e t a i l p a r a m e t e r s se t u p

1. Go to Retail and Commerce > Headquar ters setup > Parameters > Retail parameters .
2. On the Dynamics Fraud Protection tab, set the Enable Dynamics Fraud Protection integration
option to Yes .
3. On the Configuration FastTab, add the Azure Active Directory (Azure AD) client ID, and then select the name
of the Key Vault secret that you configured earlier.
By default, the Assessment type field is set to Evaluate . In this case, Fraud Protection will passively check
orders for fraud but won't actively reject orders. Therefore, merchants can compare Fraud Protection risk
assessments with their current fraud tools to understand the impact of Fraud Protection on acceptance rates.
Alternatively, the Assessment type field can be set to Protect . In this case, Fraud Protection will return
"Reject" assessments, and fraudulent orders will be terminated before they are sent for authorization or
created in the back office.
4. The Dynamics Fraud Protection endpoint URL field must be set. This URL is provided by Fraud
Protection and will vary across user acceptance testing (UAT) and production environments.
NOTE
The Key Vault and Fraud Protection settings are company-specific. To enable Fraud Protection for production environments,
you don't enter the Azure AD client ID through the user interface (UI). Instead, you must create and submit a service request.
In the title of your request, clearly indicate that the request is to configure Fraud Protection purchase protection for a
production Commerce or Retail environment.

Privacy notice
When you enable this feature, some of your data is shared with other Microsoft online services. This data includes
information about payments, credit, returns, and transaction status, or personal data. Fraud Protection purchase
protection assessments aren't stored by the Retail or Commerce online services.
Your privacy is important to Microsoft. To learn more, read the Microsoft Privacy Statement.

Related articles
Payments FAQ
Dynamics 365 payment data use
Monitor sales and margin performance
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

You can monitor sales and margin performance in real time using Dynamics 365 Commerce.
As part of Commerce, users can monitor sales and margin performance in real time across different levels of the
organization hierarchy for the following dimensions:
Products
Categories
Discounts
Years as time period
Registers/terminals
Staff/employees
Customers
Operating units
Additionally, two unique reports that take advantage of hierarchical grid structuring let users monitor sales and
margin performance by drilling down from the top category node to individual leaf nodes of the category in the
default product category hierarchy. Users can also drill-down from the top operating unit to an individual channel
in the organization hierarchy that is defined as the default organization hierarchy for reporting. You can open the
reports from any of the following locations:
Store management workspace > Retail and Commerce > Channels > Store management > Repor ts
Categor y and product management workspace > Retail and Commerce > Product and categories >
Store management > Repor ts
Pricing and discount management workspace > Retail and Commerce > Pricing and discounts >
Store management > Repor ts
Inquiries and repor ts section > Retail and Commerce > Inquiries and repor ts > Sales repor ts
Analyze sales trends and patterns
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

You can study sales trends and patterns in real time in Dynamics 365 Commerce.
As part of Commerce, users can study sales trends and patterns in real time across different levels of the
organization hierarchy over a period of years by using the out-of-box Channel sales by year report. You can
open this report from any of the following locations:
Store management workspace > Retail and Commerce > Channels > Store management > Repor ts >
Channel sales by year repor t
Store financials workspace > Retail and Commerce > Channels > Store financials > Repor ts >
Channel sales by year repor t
Inquiries and repor ts section > Retail and Commerce > Inquiries and repor ts > Sales repor ts >
Channel sales by year repor t
Users can also study sales trends and patterns by hour across different levels of the organization hierarchy over a
selected period by using the out-of-box Channel sales by hour report. You can open this report from any of the
following locations:
Store management workspace > Retail and Commerce > Channels > Store management > Repor ts >
Channel sales by hour repor t
Store financials workspace > Retail and Commerce > Channels > Store financials > Repor ts >
Channel sales by hour repor t
Inquiries and repor ts section > Retail and Commerce > Inquiries and repor ts > Sales repor ts >
Channel sales by hour repor t
Assess sales performance by product
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

You can study profitability for the top 10 products using Dynamics 365 Commerce.
As part of Commerce, users can also study profitability for the top products (10 to 100) across different levels of
the organization hierarchy, based on one of the following criteria:
Sales amount
Quantity
Gross profit margin
Margin percentage
For this assessment, you can use the out-of-box Top products report, which you can open from any of the
following locations:
Store management workspace > Retail and Commerce > Channels > Store management > Repor ts >
Top products repor t
Categor y and product management workspace > Retail and Commerce > Channels > Store
management > Repor ts > Top products repor t
Inquiries and repor ts section > Retail and Commerce > Inquiries and repor ts > Sales repor ts > Top
products repor t
Assess customer and product profitability
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article explains how you can use the in-memory and real-time analytics to access, explore, and gain insight
about customers and product profitability from your Dynamics 365 Commerce data.
As part of Commerce, users can study profitability for the top customers (10 to 100) across different levels of the
organization hierarchy, based on one of the following criteria:
Sales amount
Quantity
Gross profit margin
Margin percentage
For this assessment, you can use the out-of-box Top customers report, which you can open from any of the
following locations:
Store management workspace > Retail and Commerce > Channels > Store management > Repor ts >
Top customers repor t
Inquiries and repor ts section > Retail and Commerce > Inquiries and repor ts > Sales repor ts > Top
customers repor t
Likewise, users can study profitability for the top products (10 to 100) across different levels of the organization
hierarchy, based on one of the following criteria:
Sales amount
Quantity
Gross profit margin
Margin percentage
For this assessment, you can use the out-of-box Top products report, which you can open from any of the
following locations:
Store management workspace > Retail and Commerce > Channels > Store management > Repor ts >
Top products repor t
Categor y and product management workspace > Retail and Commerce > Products and categories >
Store management > Repor ts > Top products repor t
Inquiries and repor ts section > Retail and Commerce > Inquiries and repor ts > Sales repor ts > Top
products repor t
Analyze store performance
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article explains how you can use the in-memory and real-time analytics to access, explore, and gain insight
about store performance, based on your Dynamics 365 Commerce data.
As part of Retail, users can study store performance in real time across different levels of the organization hierarchy
over a selected period by opening the out-of-box Channel summar y report from any of the following locations:
Retail store management workspace > Retail > Channels > Retail store management > Repor ts >
Channel summar y repor t
Retail store financials workspace > Retail > Channels > Retail store financials > Repor ts > Channel
summar y repor t
Inquiries and repor ts section > Retail > Inquiries and repor ts > Sales repor ts > Channel summar y
repor t
This report provides a snapshot of following summaries as part of store performance:
Gross sales summary
Tender type summary
Tax summary
Price overrides summary
Discounts summary
Set up Recency, Frequency, and Monetary (RFM)
analysis
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic explains how to set up a Recency, Frequency, and Monetary (RFM) analysis of your customers.
Recency, frequency, and monetary (RFM) analysis is a marketing tool that your organization can use to evaluate the
data that is generated by customer purchases. After you set up RFM analysis, customers are assigned a calculated
RFM score as they make purchases. The RFM score can be a three-digit rating or an aggregate number, depending
on how your organization has configured RFM analysis. Here's how the rating works if your organization uses a
three-digit rating for the score:
The first digit is the customer's recency rating, which is how recently the customer made a purchase from your
organization.
The second digit is the customer's frequency rating, which is how often the customer makes purchases from
your organization.
The third digit is the customer's monetary rating, which is how much the customer spends when he makes
purchases from your organization.
For example, your organization has set the ratings on a scale of 1 through 5, where 5 is the highest rating. In this
case, a customer rating of 535 tells you the following information about the customer:
Recency rating of 5 – The customer recently made a purchase.
Frequency rating of 3 – The customer purchases products from your organization moderately often.
Monetar y rating of 5 – When the customer makes a purchase, he spends a significant amount of money.
If your organization uses an aggregate number for the score, the individual ratings are added together. For the
same example, the customer has a rating of 13 (5 + 3 + 5).

Set up RFM analysis for the customers in your organization


1. Go to Call center > Periodic > RFM analysis .
2. On RFM analysis page, select New . In the RFM definition field, enter a name for the RFM definition. For
example, you could call the definition RFM-A.
3. Enter a start date and end date for this RFM definition.
4. On the General FastTab, do the following:
If each section of the RFM score must contain an equal count of customers, select the Even distribution
check box.
Select the Add scores check box to aggregate the three scores. For example, this would give a customer
an RFM score of 13 instead of 535.
Select the Save histor y check box to require the system to save the statistical data for customers so that
the data can be used to calculate the RFM score.
5. On the Recency FastTab, do the following:
In the Divisions field, enter the number of divisions, or groups, which will be used to calculate the
recency score for customers. For example, if you have 100 customers, a division of 5 means that there
are 20 customers for each score. The 20 customers who have made purchases most recently have a
recency score of 5. The next 20 customers have a recency score of 4, and so on. If you have 50 customers,
10 customers have a recency score of 5, 10 have a recency score of 4, and so on.
In the Priority field, select how much weight to give the recency parameter in relation to the other
parameters when the RFM score is calculated for a customer. For example, you might place more value
on the recency score than the monetary score.
In the Multiplier field, enter the value by which to multiply the recency score. If you do not enter a value,
the score will not be multiplied.
In the Period field, select the time period by which the recency score is calculated. For example, by week
or by month.
6. On the Frequency FastTab, do the following:
In the Divisions field, enter the number of divisions, or groups, which will be used to calculate the
frequency score for customers.
In the Priority field, select how much weight to give the frequency parameter in relation to the others
when the RFM score is calculated for a customer.
In the Multiplier field, enter the value by which to multiply the frequency score. If you do not enter a
value, the score will not be multiplied.
7. On the Monetar y FastTab, do the following:
In the Divisions field, enter the number of divisions, or groups, which will be used to calculate the
monetary score for customers.
In the Priority field, select how much weight to give the monetary parameter in relation to the others
when the RFM score is calculated for a customer.
In the Multiplier field, enter the value by which to multiply the monetary score. If you do not enter a
value, the score will not be multiplied.
In the Gross/net field, select whether the customer's monetary score should be calculated by using the
gross or net invoice amount.
If a customer's return amounts should be subtracted from the customer's total invoice calculation, select
the Subtract returns check box.

View a customer's RFM score


Use this procedure to view a customer's RFM score.
1. Go to Call center > Journals > Customer ser vice .
2. On the Customer ser vice page, in the Customer ser vice pane, in the search fields, select the keyword type
to search on and enter the search text.
3. Select Search .
4. On the Customer search page, select the customer record that you want, and then click Select customer .
The RFM score is displayed in the Order histor y group on the right side of the Customer ser vice page.

View or clear the history of an RFM analysis record


Use this procedure to view or clear the history of an RFM analysis record.
1. Go to Call center > Periodic > RFM analysis .
2. On the RFM analysis page, select the record that you want to view.
3. To view the record history, select the Histor y FastTab.
4. To clear the history of the record, select Clear histor y .
Overview of fiscal integration for Commerce
channels
2/13/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Introduction
This topic is an overview of the fiscal integration capabilities that are available in Dynamics 365 Commerce. Fiscal
integration includes integration with various fiscal devices and services that enable fiscal registration of sales in
accordance with local fiscal laws that are aimed at preventing tax fraud in the retail industry. Here are some typical
scenarios that can be covered by using fiscal integration:
Register a sale on a fiscal device that is connected to point of sale (POS), such as a fiscal printer, and print a
fiscal receipt for the customer.
Securely submit information that is related to sales and returns that are completed in Retail POS to an external
web-service that is operated by the tax authority.
Help guarantee inalterability of sales transaction data through digital signatures.
The fiscal integration functionality is a framework that provides a common solution for further development and
customization of the integration between Retail POS and fiscal devices and services. The functionality also includes
fiscal integration samples that support basic scenarios for specific countries or regions, and that work with specific
fiscal devices or services. A fiscal integration sample consists of several extensions of Commerce components and
is included in the software development kit (SDK). For more information about the fiscal integration samples, see
Fiscal integration samples in the Retail SDK. For information about how to install and use the Retail SDK, see Retail
software development kit (SDK) architecture.
To support other scenarios that aren't supported by a fiscal integration sample, to integrate Retail POS with other
fiscal devices or services, or to cover requirements of other countries or regions, you must either extend an
existing fiscal integration sample or create a new sample by using an existing sample as an example.

Fiscal registration process and fiscal integration samples for fiscal


devices
A fiscal registration process in Retail POS can consist of one or more steps. Each step involves fiscal registration of
specific transactions or events in one fiscal device or service. The following solution components participate in the
fiscal registration in a fiscal device that is connected to a Hardware station:
Commerce runtime (CRT) extension – This component serializes transaction/event data in the format that
is also used for interaction with the fiscal device, parses responses from the fiscal device, and stores the
responses in the channel database. The extension also defines the specific transactions and events that must be
registered. This component is often referred to as a fiscal document provider.
Hardware station extension – This component initializes the communication with the fiscal device, sends
requests and direct commands to the fiscal device based on the transaction/event data that is extracted from
the fiscal document, and receives responses from the fiscal device. This component is often referred to as a
fiscal connector.
A fiscal integration sample for a fiscal device contains the CRT and Hardware station extensions for a fiscal
document provider and a fiscal connector, respectively. It also contains the following component configurations:
Fiscal document provider configuration – This configuration defines an output method and a format for
fiscal documents. It also contains a data mapping for taxes and payment methods, to make data from Retail
POS compatible with the values that are predefined in the fiscal device firmware.
Fiscal connector configuration – This configuration defines the physical communication with the specific
fiscal device.
A fiscal registration process for a specific POS register is defined by a corresponding setting in the POS
functionality profile. For more details about how to configure a fiscal registration process, upload fiscal document
provider and fiscal connector configurations, and change their parameters, see Set up a fiscal registration process.
The following example shows a typical fiscal registration execution flow for a fiscal device. The flow starts with an
event in the POS (for example, finalization of a sales transaction) and implements the following sequence of steps:
1. The POS requests a fiscal document from CRT.
2. CRT determines whether the current event requires fiscal registration.
3. Based on the fiscal registration process settings, CRT identifies a fiscal connector and corresponding fiscal
document provider to use for the fiscal registration.
4. CRT runs the fiscal document provider that generates a fiscal document (for example, an XML document) that
represents the transaction or event.
5. The POS sends the fiscal document that CRT prepares to a Hardware station.
6. The Hardware station runs the fiscal connector that processes the fiscal document and communicates it to the
fiscal device or service.
7. The POS analyzes the response from the fiscal device or service to determine whether the fiscal registration
was successful.
8. CRT saves the response to the channel database.

Error handling
The fiscal integration framework provides the following options to handle failures during fiscal registration:
Retr y – Operators can use this option when the failure can be resolved quickly, and the fiscal registration can
be rerun. For example, this option can be used when the fiscal device isn't connected, the fiscal printer is out of
paper, or there is a paper jam in the fiscal printer.
Cancel – This option lets operators postpone the fiscal registration of the current transaction or event if it fails.
After the registration is postponed, the operator can continue to work on the POS and can complete any
operation that the fiscal registration isn't required for. When any event that requires the fiscal registration
occurs in the POS (for example, a new transaction is opened), the error handling dialog box automatically
appears to notify the operator that the previous transaction wasn't correctly registered and to provide the error
handling options.
Skip – Operators can use this option when the fiscal registration can be omitted under specific conditions and
regular operations can be continued on the POS. For example, this option can be used when a sales transaction
that the fiscal registration failed for can be registered in a special paper journal.
Mark as registered – Operators can use this option when the transaction was actually registered in the fiscal
device (for example, a fiscal receipt was printed), but a failure occurred when the fiscal response was being
saved to the channel database.

NOTE
The Skip and Mark as registered options must be activated in the fiscal registration process before they are used. In
addition, corresponding permissions must be granted to operators.

The Skip and Mark as registered options enable info codes to capture some specific information about the
failure, such as the reason for the failure or a justification for skipping the fiscal registration or marking the
transaction as registered. For more details about how to set up error handling parameters, see Set error handling
settings.
Optional fiscal registration
Fiscal registration might be mandatory for some operations but optional for others. For example, the fiscal
registration of regular sales and returns might be mandatory, but the fiscal registration of operations that are
related to customer deposits might be optional. In this case, failure to complete the fiscal registration of a sale
should block further sales, but failure to complete the fiscal registration of a customer deposit should not block
further sales. To distinguish mandatory and optional operations, we recommend that you handle them through
different document providers, and that you set up separate steps in the fiscal registration process for those
providers. The Continue on error parameter should be enabled for any step that is related to optional fiscal
registration. For more details about how to set up error handling parameters, see Set error handling settings.
Manually running fiscal registration
If the fiscal registration of a transaction or event has been postponed after a failure (for example, if the operator
selected Cancel in the error handling dialog box), you can manually rerun the fiscal registration by invoking a
corresponding operation. For more details, see Enable manual execution of postponed fiscal registration.
Fiscal registration health check
The health check procedure for fiscal registrations verifies the availability of the fiscal device or service when
specific events occur. If the fiscal registration can't currently be completed, the operator is notified in advance.
The POS runs the health check when the following events occur:
A new transaction is opened.
A suspended transaction is recalled.
A sales or return transaction is finalized.
If the health check fails, the POS shows the health check dialog box. This dialog box provides the following buttons:
OK – This button lets the operator ignore a health check error and continue to process the operation. Operators
can select this button only if the Allow skip health check error permission is enabled for them.
Cancel – If the operator selects this button, the POS cancels the last action (for example, an item isn't added to
a new transaction).

NOTE
The health check is run only if the current operation requires fiscal registration, and if the Continue on error parameter is
disabled for the current step of the fiscal registration process. For more details, see Set error handling settings.

Storing fiscal response in fiscal transaction


When fiscal registration of a transaction or event is successful, a fiscal transaction is created in the channel
database and linked to the original transaction or event. Similarly, if the Skip or Mark as registered option is
selected for a failed fiscal registration, this information is stored in a fiscal transaction. A fiscal transaction holds
the fiscal response of the fiscal device or service. If the fiscal registration process consists of several steps, a fiscal
transaction is created for each step of the process that resulted in a successful or failed registration.
Fiscal transactions are transferred to Headquarters by the P-job, together with transactions. On the Fiscal
transactions FastTab of the Store transactions page, you can view the fiscal transactions that are linked to
transactions.
A fiscal transaction stores the following details:
Fiscal registration process details (process, connector group, connector, and so on). It also stores the serial
number of the fiscal device in the Register number field, if this information is included in the fiscal response.
The status of the fiscal registration: Completed for successful registration, Skipped if the operator selected
the Skip option for a failed registration, or Marked as registered if the operator selected the Mark as
registered option.
Info code transactions that are related to a selected fiscal transaction. To view the info code transactions, on the
Fiscal transactions FastTab, select a fiscal transaction that has a status of Skipped or Marked as
registered , and then select Info code transactions .

Fiscal texts for discounts


Some countries or regions have special requirements about additional texts that must be printed on fiscal receipts
when different kinds of discounts are applied. The fiscal integration functionality lets you set up a special text for a
discount that is printed after a discount line on a fiscal receipt. For manual discounts, you can configure a fiscal text
for the info code that is specified as the Product discount info code in the POS functionality profile. For more
details about how to set up fiscal texts for discounts, see Set up fiscal texts for discounts.

Printing fiscal X and fiscal Z reports


Fiscal integration functionality supports generation of end-of-day statements that are specific to the integrated
fiscal device or service:
New buttons that run corresponding operations should be added to the POS screen layout. For more details,
see Set up fiscal X/Z reports from the POS.
In the fiscal integration sample, these operations should be matched to the corresponding operations of the
fiscal device.

Fiscal integration samples in the Retail SDK


The following fiscal integration samples are currently available in the Retail SDK:
Fiscal printer integration sample for Italy
Fiscal printer integration sample for Poland
Fiscal registration service integration sample for Austria
Fiscal registration service integration sample for Czech Republic
Control unit integration sample for Sweden
The following fiscal integration functionality is also available in the Retail SDK but doesn't currently take advantage
of the fiscal integration framework. Migration of this functionality to the fiscal integration framework is planned
for later updates.
Digital signature for France
Digital signature for Norway
The following legacy fiscal integration functionality that is available in Retail SDK does not use the fiscal integration
framework and will be deprecated in later updates:
Control unit integration sample for Sweden (legacy)
Set up the fiscal integration for Commerce channels
2/1/2020 • 12 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Introduction
This topic provides guidelines for setting up the fiscal integration functionality for Commerce channels. For more
information about the fiscal integration, see Overview of fiscal integration for Commerce channels.
The process of setting up the fiscal integration includes the following tasks:
1. Configure fiscal connectors that represent fiscal devices or services that are used for fiscal registration
purposes, such as fiscal printers.
2. Configure document providers that generate fiscal documents that will be registered in fiscal devices or
services by fiscal connectors.
3. Configure the fiscal registration process that defines a sequence of fiscal registration steps and the fiscal
connectors and fiscal document providers that are used for each step.
4. Assign the fiscal registration process to point of sale (POS) functionality profiles.
5. Assign connector technical profiles to hardware profiles.

Set up a fiscal registration process


Before you use the fiscal integration functionality, you should configure the following settings.
1. Update Commerce parameters.
a. On the Commerce shared parameters page, on the General tab, set the Enable fiscal
integration option to Yes . On the Number sequences tab, define the number sequences for the
following references:
Fiscal technical profile number
Fiscal connector group number
Registration process number
b. On the Commerce parameters page, define the number sequence for the fiscal functional profile
number.

NOTE
Number sequences are optional. Numbers for all fiscal integration entities can be generated either from number
sequences or manually.

2. Upload configurations of fiscal connectors and fiscal document providers.


A fiscal document provider is responsible for generating fiscal documents that represent transactions and
events that are registered on the POS in a format that is also used for the interaction with a fiscal device or
service. For example, a fiscal document provider might generate a representation of a fiscal receipt in an
XML format.
A fiscal connector is responsible for the communication with a fiscal device or service. For example, a fiscal
connector might send a fiscal receipt that a fiscal document provider created in an XML format to a fiscal
printer. For more details about fiscal integration components, see Fiscal registration process and fiscal
integration samples for fiscal devices.
a. On the Fiscal connectors page (Retail and Commerce > Channel setup > Fiscal integration
> Fiscal connectors ), upload an XML configuration for each device or service that you plan to use
for fiscal integration purposes.

TIP
By selecting View , you can view all functional and technical profiles that are related to the current fiscal
connector.

b. On the Fiscal document providers page (Retail and Commerce > Channel setup > Fiscal
integration > Fiscal document providers ), upload an XML configuration for each device or
service that you plan to use.

TIP
By selecting View , you can view all functional profiles that are related to the current fiscal document provider.

For examples of configurations of fiscal connectors and fiscal document providers, see Fiscal integration
samples in the Retail SDK.

NOTE
Data mapping is considered part of a fiscal document provider. To set up different data mappings for the same
connector (for example, state-specific regulations), you should create different fiscal document providers.

3. Create connector functional profiles and connector technical profiles.


a. On the Connector functional profiles page (Retail and Commerce > Channel setup > Fiscal
integration > Connector functional profiles ), create a connector functional profile for each
combination of a fiscal connector and a fiscal document provider that is related to this fiscal
connector.
a. Select a connector name.
b. Select a document provider.
You can change the data mapping parameters in a connector functional profile. To restore the default
parameters that are defined in the fiscal document provider configuration, select Update .
Examples

F O RM AT EXA M P L E

VAT rates settings value : VATrate 1 : 2000, 2 : 1800

VAT codes mapping VATcode : value vat20 : 1, vat18 : 2

Tender types mapping TenderType : value Cash : 1, Card : 2


NOTE
Connector functional profiles are company-specific. If you plan to use the same combination of a fiscal
connector and a fiscal document provider in different companies, you should create a connector functional
profile for each company.

b. On the Connector technical profiles page (Retail and Commerce > Channel setup > Fiscal
integration > Connector technical profiles ), create a connector technical profile for each fiscal
connector.
a. Select a connector name.
b. Select a connector type. For devices that are connected to a Hardware station, select Local .

NOTE
Only local connectors are currently supported.

Parameters on the Device and Settings tabs in a connector technical profile can be changed. To
restore the default parameters that are defined in the fiscal connector configuration, select Update .
While a new version of an XML configuration is loaded, you receive a message that states that the
current fiscal connector or fiscal document provider is already being used. This procedure doesn't
override manual changes that were previously made in connector functional profiles and connector
technical profiles. To apply the default set of parameters from a new configuration, on the
Connector functional profiles page or the Connector technical profiles page, select Update .
4. Create fiscal connector groups.
A fiscal connector group combines functional profiles of fiscal connectors that perform identical functions
and are used at the same step of a fiscal registration process. For example, if several fiscal printer models
can be used in a store, fiscal connectors for those fiscal printers can be combined in a fiscal connector
group.
a. On the Fiscal connector group page (Retail and Commerce > Channel setup > Fiscal
integration > Fiscal connector groups ), create a new fiscal connector group.
b. Add functional profiles to the connector group. On the Functional profiles tab, select Add , and select a
profile number. Each fiscal connector in a connector group can only have one functional profile.
c. To suspend use of the functional profile, set the Disable option to Yes . This change affects only the
current connector group. You can continue to use the same functional profile in other connector groups.
5. Create a fiscal registration process.
A fiscal registration process is defined by the sequence of registration steps and the connector group that is
used for each step.
a. On the Fiscal registration process page (Retail and Commerce > Channel setup > Fiscal
integration > Fiscal registration processes ), create a new record for each unique process of
fiscal registration.
b. Add registration steps to the process:
a. Select Add .
b. Select a fiscal connector type.
c. In the Group number field, select an appropriate fiscal connector group.
6. Assign entities of the fiscal registration process to POS profiles.
a. On the POS functionality profiles page (Retail and Commerce > Channel setup > POS setup >
POS profiles > Functionality profiles ), assign the fiscal registration process to a POS functionality
profile. Select Edit , and then, on the Fiscal registration process tab, in the Process number field,
select a process.
b. On the POS hardware profile page (Retail and Commerce > Channel setup > POS setup >
POS profiles > Hardware profiles ), assign connector technical profiles to a hardware profile. Select
Edit , add a line on the Fiscal peripherals tab, and then, in the Profile number field, select a connector
technical profile.

NOTE
You can add several technical profiles to the same hardware profile. However, a hardware profile or POS functionality
profile should have only one intersection with any fiscal connector group.

The fiscal registration flow is defined by the fiscal registration process and also by some parameters of fiscal
integration components: the Commerce runtime extension for the fiscal document provider and the
Hardware station extension for the fiscal connector.
The subscription of events and transactions to fiscal registration is predefined in the fiscal document
provider.
The fiscal document provider is also responsible for identifying the fiscal connector that is used for fiscal
registration. It matches the connector functional profiles that are included in the fiscal connector group
that is specified for the current step of the fiscal registration process with the connector technical profile
that is assigned to the hardware profile of the Hardware station that the POS is paired to.
The fiscal document provider uses the data mapping settings from the fiscal document provider
configuration to transform transaction/event data such as taxes and payments while a fiscal document is
generated.
When the fiscal document provider generates a fiscal document, the fiscal connector can either send it to
the fiscal device as is, or parse it and transform it into a sequence of commands of the device application
programming interface (API), depending on how the communication is handled.
7. On the Fiscal registration process page (Retail and Commerce > Channel setup > Fiscal
integration > Fiscal registration processes ), select Validate to validate the fiscal registration process.
We recommend that you run this type of validation in the following cases:
After you've completed all the settings for a new registration process, including when you assign
registration processes to POS functionality profiles and hardware profiles.
After you make changes to an existing fiscal registration process, and those changes might cause a
different fiscal connector to be selected at runtime (for example, if you change the connector group for a
fiscal registration process step, enable a connector functional profile in a connector group, or add a new
connector functional profile to a connector group).
After you make changes in the assignment of connector technical profiles to hardware profiles.
8. On the Distribution schedule page, run the 1070 and 1090 jobs to transfer data to the channel database.

Set up fiscal texts for discounts


In some cases, a special text must be printed on a fiscal receipt if a discount is applied. You can set up fiscal texts for
discounts on the Fiscal connector group page (Retail and Commerce > Channel setup > Fiscal
integration > Fiscal connector groups ).
For manual discounts that are applied at the POS, you should set a fiscal text for the info code or info code
group that is specified as the Product discount info code in the POS functionality profile.
1. On the Fiscal connector group page, select Text for fiscal receipt .
2. On the Info codes tab, select Add , and select an info code or info code group.
3. In the Info code number , select a value.
4. In the Subcode number field, select a value if a subcode is required for the selected info code.
5. In the Text for fiscal receipt field, specify a fiscal text that should be printed on a fiscal receipt.
6. Set the Print user input on fiscal receipt option to Yes to override the text on a fiscal receipt with
information that a user manually enters at the POS. This option applies only to info codes that have an
input type of Text .

NOTE
You can specify a fiscal text for several info codes to support scenarios where info code groups, linked info codes, and
triggered info codes are used. In these scenarios, the fiscal receipt will contain the fiscal texts from all info codes that
are linked to the transaction line where the discount was applied.

For channel-specific discounts, you should define a fiscal text for the discount ID.
1. On the Fiscal connector group page, select Text for fiscal receipt .
2. On the Discounts tab, select Add , and select a discount ID.
3. In the Text for fiscal receipt field, specify a fiscal text that should be printed on a fiscal receipt.

NOTE
If several discounts are applied to the same transaction line, the fiscal receipt will contain fiscal texts from all discounts
that are linked to those transaction line.

Set error handling settings


The error handling options that are available in the fiscal integration are set in the fiscal registration process. For
more information about error handling in the fiscal integration, see Error handling.
1. On the Fiscal registration process page (Retail and Commerce > Channel setup > Fiscal
integration > Fiscal registration processes ), you can set the following parameters for each step of the
fiscal registration process:
Allow skip – This parameter enables the Skip option in the error handling dialog box.
Allow mark as registered – This parameter enables the Mark as registered option in the error
handling dialog box.
Continue on error – If this parameter is enabled, the fiscal registration process can continue on the
POS register if the fiscal registration of a transaction or event fails. Otherwise, to run the fiscal
registration of the next transaction or event, the operator must retry the failed fiscal registration, skip it,
or mark the transaction or event as registered. For more information, see Optional fiscal registration.

NOTE
If the Continue on error parameter is enabled, the Allow skip and Allow mark as registered parameters are
automatically disabled.

2. The Skip and Mark as registered options in the error handling dialog box require the Allow skip
registration or mark as registered permission. Therefore, on the Permission groups page (Retail
and Commerce > Employees > Permission groups ), enable the Allow skip registration or mark
as registered permission.
3. The Skip and Mark as registered options let operators enter additional information when fiscal
registration fails. To make this functionality available, you should specify the Skip and Mark as registered
info codes on a fiscal connector group. The information that operators enter is then saved as an info code
transaction that is linked to the fiscal transaction. For more details about info codes, see Info codes and info
code groups.

NOTE
The Product trigger function isn't supported for the info codes that are used for Skip and Mark as registered in
fiscal connector groups.

On the Fiscal connector group page, on the Info codes tab, select info codes or info code groups in
the Skip and Mark as registered fields.

NOTE
One fiscal document and one non-fiscal document can be generated on any step of a fiscal registration process. A
fiscal document provider extension identifies every type of transaction or event as related to fiscal or non-fiscal
documents. The error handling feature applies only to fiscal documents.
Fiscal document – A mandatory document that should be registered successfully (for example, a fiscal receipt).
Non-fiscal document – A supplementary document for the transaction or event (for example, a gift card slip).

4. If the operator must be able to continue to process the current operation (for example, creation or
finalization of a transaction) after a health check error occurs, you should enable the Allow skip health
check error permission on the Permission groups page (Retail and Commerce > Employees >
Permission groups ). For more information about the health check procedure, see Fiscal registration health
check.

Set up fiscal X/Z reports from the POS


To enable fiscal X/Z reports to be run from the POS, you should add new buttons to a POS layout.
On the Button grids page, follow the instructions in Add POS operations to POS layouts by using Button
grid designer to install the designer and update a POS layout.
1. Select the layout to update.
2. Add a new button, and set the Print fiscal X button property.
3. Add a new button, and set the Print fiscal Z button property.
4. On the Distribution schedule page, run the 1090 job to transfer changes to the channel database.

Enable manual execution of postponed fiscal registration


To enable manual execution of a postponed fiscal registration, you should add a new button to a POS layout.
On the Button grids page, follow the instructions in Add POS operations to POS layouts by using Button
grid designer to install the designer and update a POS layout.
1. Select the layout to update.
2. Add a new button, and set the Complete fiscal registration process button property.
3. On the Distribution schedule page, run the 1090 job to transfer your changes to the channel
database.
Fiscal registration service integration sample for
Austria
3/13/2020 • 19 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

Introduction
To meet local fiscal requirements for cash registers in Austria, the Dynamics 365 Retail functionality for Austria
includes a sample integration of the point of sale (POS) with an external fiscal registration service. The sample
extends the fiscal integration functionality. It's based on the EFR (Electronic Fiscal Register) solution from EFSTA and
enables communication with the EFR service via the HTTPS protocol. The EFR service should be hosted on either
the Retail Hardware station or a separate machine that can be connected to from the Hardware station. The sample
is provided in the form of source code and is part of the Retail software development kit (SDK).
Microsoft doesn't release any hardware, software, or documentation from EFSTA. For information about how to get
the EFR solution and operate it, contact EFSTA.

Scenarios
The following scenarios are covered by the fiscal registration service integration sample for Austria:
Registration of cash transactions in the fiscal registration service:
Send detailed transaction data to the fiscal registration service. This data includes sales line information,
and information about discounts, payments, and taxes.
Capture a response from the fiscal registration service. This response includes a digital signature and a
link to the registered transaction.
Register taxes, and map them to the fiscal registration service's tax codes.
Print the QR code for a registered transaction on the receipt.
Registration of gift card operations and customer deposits as non-cash transactions in the fiscal registration
service:
Issue or add money to a gift card.
Register a customer account deposit.
Register a customer order deposit.
Registration of non-sales transactions and events as non-cash transactions in the fiscal registration service:
Open shift and Close shift
Start amount, Float entry, and Tender removal
Price override
Tax override
Print copy of receipt
Open drawer
Print X report
Print Z report
Printing end-of-day statements (X/Z reports) that have Austria-specific fields:
Total number of products or services that were delivered to customers
Breakdown of sales by tax rate
Breakdown of payments by cashier/cash register operator
Price discounts and returns that reduce daily sales
Zero sales (giveaways)
Error handling, such as the following options:
Retry fiscal registration if a retry is possible, such as if the fiscal registration service isn't available, isn't
ready, or isn't responding.
Postpone fiscal registration.
Skip fiscal registration, or mark the transaction as registered, and include info codes to capture the
reason for the failure and additional information.
Check the availability of the fiscal registration service before a new sales transaction is opened or a sales
transaction is finalized.
Default data mapping
The following default data mapping is included in the fiscal document provider configuration that is provided as
part of the fiscal integration sample:
Value-added tax (VAT) rates mapping:
A: 20.00; B: 10.00; C: 13.00; D: 0.00; E: 19.00; F: 7.00
Gift cards
The fiscal registration service integration sample implements the following rules that are related to gift cards:
Exclude sales lines that are related to the Issue gift card and Add to gift card operations from a cash transaction.
Instead of registering those lines as a part of a cash transaction, register them as a separate non-cash
transaction in the fiscal registration service.
Don't print a tax group breakdown and a QR code on a receipt if the receipt consists only of gift card lines.
Print the total amount of gift cards that are issued or re-charged in a transaction separately from the cash
transaction amount on the receipt.
Save calculated adjustments of payment lines in the channel database with a reference to a corresponding fiscal
transaction.
Payment by gift card is considered a regular payment.
Customer deposits and customer order deposits
The fiscal registration service integration sample implements the following rules that are related to customer
deposits and customer order deposits:
Register a non-cash transaction if a transaction is a customer deposit.
Register a non-cash transaction if a transaction contains only a customer order deposit or a customer order
deposit refund.
Deduct the customer order deposit amount from payment lines when a hybrid customer order is created.
Save calculated adjustments of payment lines in the channel database with a reference to a fiscal transaction for
a hybrid customer order.
Limitations of the sample
The fiscal registration service supports only scenarios where sales tax is included in the price. Therefore, the Price
include sales tax option must be set to Yes for both stores and customers.
Set up Commerce for Austria
This section describes the Commerce settings that are specific to and recommended for Austria. For more
information set up information, see Commerce home page.
To use the Austria-specific functionality, you must specify the following settings:
In the primary address of the legal entity, set the Countr y/region field to AUT (Austria).
In the POS functionality profile of every store that is located in Austria, set the ISO code field to AT (Austria).
You must also specify the following settings for Austria. Note that you must run appropriate distribution jobs after
you complete the setup.
Set up VAT per Austrian requirements
You must create sales tax codes, sales tax groups, and item sales tax groups. You must also set up sales tax
information for products and services. For more information about how to set up and use sales tax features, see
Sales tax overview.
On sales receipts, you can print an abbreviated code for a sales tax code (for example, "A" or "B"). To make this
functionality available, set the Print code field on the Sales tax codes page.
Set up stores
On the All stores page, update the store details. Specifically, set the following parameters:
In the Sales tax group field, specify the sales tax group that should be used for sales to the default customer.
Set the Prices include sales tax option to Yes .
Set the Name field to the company name. This change helps guarantee that the company name appears on a
sales receipt. Alternatively, you can add the company name to the sales receipt layout as free-form text.
Set the Tax identification number (TIN) field to the company identification number. This change helps
guarantee that the company identification number appears on a sales receipt. Alternatively, you can add the
company identification number to the sales receipt layout as free-form text.
Set up functionality profiles
Set up POS functionality profiles:
On the Receipt numbering FastTab, set up receipt numbering by creating or updating records for the Sale ,
Sales order , and Return receipt transaction types.
Configure custom fields so that they can be used in receipt formats for sales receipts
You can configure the language text and custom fields that are used in the POS receipt formats. The default
company of the user who creates the receipt setup should be the same legal entity where the language text setup is
created. Alternatively, the same language texts should be created in both the user's default company and the legal
entity of the store that the setup is created for.
On the Language text page, add the following records for the labels of the custom fields for receipt layouts. Note
that the Language ID , Text ID , and Text values that are shown in the table are just examples. You can change them
to meet to your requirements. However, the Text ID values that you use must be unique, and they must be equal to
or more than 900001.
Add the following POS labels to the POS section of Language text from the table:

L A N GUA GE ID T EXT ID T EXT

en-US 900001 QR Code

en-US 900002 Continuous Number


L A N GUA GE ID T EXT ID T EXT

en-US 900003 Tax Retail Print Code

en-US 900004 Total (sales)

en-US 900005 Total Tax (sales)

en-US 900006 Total Include Tax (sales)

en-US 900007 Tax Amount (sales)

en-US 900008 Tax Basis (sales)

On the Custom fields page, add the following records for the custom fields for receipt layouts. Note that Caption
text ID values must correspond to the Text ID values that you specified on the Language text page:

NAME TYPE C A P T IO N T EXT ID

QRCODE Receipt 900001

CONTINUOUSNUMBER Receipt 900002

RETAILPRINTCODE Receipt 900003

SALESTOTAL Receipt 900004

SALESTOTALTAX Receipt 900005

SALESTOTALINCLUDETAX Receipt 900006

SALESTAXAMOUNT Receipt 900007

SALESTAXBASIS Receipt 900008

Configure receipt formats


For every required receipt format, change the value of the Print behavior field to Always print .
In the Receipt format designer, add the following custom fields to the appropriate receipt sections. Note that field
names correspond to the language texts that you defined in the previous section.
Header : Add the following fields:
Store name and Tax Identification Number fields, which are used to print the company name and
identity number on receipts. Alternatively, you can add the company name and identity number to the
layout as free-form text.
Store address , Date , Time 24H , Receipt Number , and Register number fields.
Continuous Number fields, to identify the number of the cash transaction in the fiscal registration
service.
Lines: Add the following fields:
Item name .
Qty .
Total price with tax .
Tax Retail Print Code , which is used to print the abbreviated code that corresponds to the sales tax
code that applies to the item.
Footer : Add the following fields:
Payment fields, so that the payment amounts for each payment method are printed. For example, add
the Tender name and Tender amount fields to one line of the layout.
Sales total field group:
Total (sales) field, which is used to print the receipt's total cash sale amount. The amount
excludes tax. Prepayments and gift card operations are excluded.
Total Include Tax (sales) field, which is used to print the receipt's total cash sale amount. The
amount includes tax. Prepayments and gift card operations are excluded.
Total Tax (sales) field, which is used to print the receipt's total tax amount for cash sales.
Prepayments and gift card operations are excluded.
Tax break down field group. The fields in this field group must be printed on a separate line.
Tax Id field, which is a standard field that enables a sales tax summary to be printed for each sales
tax code. The field must be added to a new line.
Tax Percentage field, which is a standard field that is used to print the effective tax rate for the
sales tax code.
Tax Basis (sales) field, which is used to print the receipt's total cash sale amount for the sales tax
code. Prepayments and gift card operations are excluded.
Tax Amount (sales) field, which is used to print the receipt's tax amount for cash sales for the
sales tax code.
Tax Retail Print Code field, which is used to print the abbreviated code that corresponds to the
sales tax code.
QR Code field, which is used to print the reference to the registered cash transaction in the form of
QR code.
For more information about how to work with receipt formats, see Set up and design receipt formats.
Configure fiscal integration
Complete the fiscal integration setup steps as described in Set up the fiscal integration for Commerce channels:
Set up a fiscal registration process. Note also the settings for the fiscal registration process that are specific to
this fiscal registration service integration sample.
Set error handling settings.
Enable manual execution of postponed fiscal registration.

Deployment guidelines for cash registers for Austria


The fiscal registration service integration sample for Austria is part of the Retail SDK. For information about how to
install and use the SDK, see the Retail software development kit (SDK) architecture.
This sample consists of extensions for the CRT, Hardware station, and POS. To run this sample, you must modify
and build the CRT, Hardware station, and POS projects. We recommend that you use an unmodified Retail SDK to
make the changes that are described in this topic. We also recommend that you use a source control system, such
as Azure DevOps, where no files have been changed yet.
Follow these steps to set up a development environment so that you can test and extend the sample.
Enable Commerce runtime extensions
The CRT extension components are included in the CRT samples. To complete the following procedures, open the
CRT solution, CommerceRuntimeSamples.sln , under RetailSdk\SampleExtensions\CommerceRuntime .
DocumentProvider.EFRSample component
1. Find the Runtime.Extensions.DocumentProvider.EFRSample project, and build it.
2. In the Runtime.Extensions.DocumentProvider.EFRSample\bin\Debug folder, find the
Contoso.Commerce.Runtime.DocumentProvider.EFRSample.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Commerce Scale Unit: Copy the assembly to the \bin\ext folder under the Microsoft Internet
Information Services (IIS) Commerce Scale Unit site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Commerce Scale Unit: The file is named commerceruntime.ext.config , and it's in the bin\ext folder
under the IIS Commerce Scale Unit site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.DocumentProvider.EFRSample" />

DocumentProvider.DataModelEFR component
1. Find the Runtime.Extensions.DocumentProvider.DataModelEFR project, and build it.
2. In the Runtime.Extensions.DocumentProvider.DataModelEFR\bin\Debug folder, find the
Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Commerce Scale Unit: Copy the assembly to the \bin\ext folder under the IIS Commerce Scale Unit
site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Commerce Scale Unit: The file is named commerceruntime.ext.config , and it's in the bin\ext folder
under the IIS Commerce Scale Unit site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR" />

Update extension configuration file


1. Find the extension configuration file for CRT:
Commerce Scale Unit: The file is named commerceruntime.ext.config , and it's in the bin\ext folder
under the IIS Commerce Scale Unit site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
2. Register the CRT change in the extension configuration file.

<add source="assembly" value="Microsoft.Dynamics.Commerce.Runtime.ReceiptsAustria" />


<add source="assembly" value="Microsoft.Dynamics.Commerce.Runtime.RegisterAuditEventAustria" />
<add source="assembly" value="Microsoft.Dynamics.Commerce.Runtime.XZReportsAustria" />

Enable Hardware station extensions


The Hardware station extension components are included in the Hardware station samples. To complete the
following procedures, open the solution, HardwareStationSamples.sln.sln , under
RetailSdk\SampleExtensions\HardwareStation .
EFRSample component
1. Find the HardwareStation.Extension.EFRSample project, and build it.
2. In the Extension.EFRSample\bin\Debug folder, find following files:
The Contoso.Commerce.HardwareStation.EFRSample.dll assembly
The Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR.dll assembly
3. Copy the assembly files to the Hardware station extensions folder:
Shared hardware station: Copy the files to the bin folder under the IIS Hardware station site location.
Dedicated hardware station on Modern POS: Copy the files to the Modern POS client broker
location.
4. Find the extension configuration file for the Hardware station's extensions. The file is named
HardwareStation.Extension.config .
Shared hardware station: The file is located under the IIS Hardware station site location.
Dedicated hardware station on Modern POS: The file is located under the Modern POS client
broker location.
5. Add the following line to the composition section of the configuration file.

<add source="assembly" value="Contoso.Commerce.HardwareStation.EFRSample.dll" />

Enable Modern POS extension components


1. Open the solution at RetailSdk\POS\ModernPOS.sln , and make sure that it can be compiled without
errors. Additionally, make sure that you can run Modern POS from Microsoft Visual Studio by using the Run
command.

NOTE
Modern POS must not be customized. You must enable User Account Control (UAC), and you must uninstall
previously installed instances of Modern POS as required.

2. Enable the extensions to be loaded by adding the following lines in extensions.json .

{
"extensionPackages": [
{
"baseUrl": "Microsoft/AuditEvent.AT"
}
]
}
NOTE
For more information, and for samples that show how to include source code folders and enable extensions to be
loaded, see the instructions in the readme.md file in the Pos.Extensions project.

3. Rebuild the solution.


4. Run Modern POS in the debugger, and test the functionality.
Enable Cloud POS extension components
1. Open the solution at RetailSdk\POS\CloudPOS.sln , and make sure that it can be compiled without errors.
2. Enable the extensions to be loaded by adding the following lines in extensions.json .

{
"extensionPackages": [
{
"baseUrl": "Microsoft/AuditEvent.AT"
}
]
}

NOTE
For more information, and for samples that show how to include source code folders and enable extensions to be
loaded, see the instructions in the readme.md file in the Pos.Extensions project.

3. Rebuild the solution.


4. Run the solution by using the Run command and following the steps in the Retail SDK handbook.
Set up the registration process
To enable the registration process, follow these steps to set up Headquarters. For more details, see Set up the fiscal
integration for Commerce channels.
1. Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce shared
parameters . On the General tab, set the Enable fiscal integration option to Yes .
2. Go to Retail and Commerce > Channel setup > Fiscal integration > Fiscal connectors , and load
the connector configuration. The file location is
RetailSdk\SampleExtensions\HardwareStation\Extension.EFRSample\Configuration\ConnectorE
FRSample.xml .
3. Go to Retail and Commerce > Channel setup > Fiscal integration > Fiscal document providers ,
and load the document provider configurations. The configuration files are located under
RetailSdk\SampleExtensions\CommerceRuntime\Extensions.DocumentProvider.EFRSample\Con
figuration :
DocumentProviderEFRSampleAustria.xml
DocumentProviderNonFiscalEFRSampleAustria.xml
4. Go to Retail and Commerce > Channel setup > Fiscal integration > Connector functional
profiles . Create two new connector functional profiles, one for each document provider that you loaded
earlier, and select the connector that you loaded earlier. Update the data mapping settings as required.
5. Go to Retail and Commerce > Channel setup > Fiscal integration > Connector technical profiles .
Create a new connector technical profile, and select the connector that you loaded earlier. Update the
connection settings as required.
6. Go to Retail and Commerce > Channel setup > Fiscal integration > Fiscal connector groups .
Create two new fiscal connector groups, one for each connector functional profile that you created earlier.
7. Go to Retail and Commerce > Channel setup > Fiscal integration > Fiscal registration
processes . Create a new fiscal registration process, two fiscal registration process steps, and select the fiscal
connector groups that you created earlier.
8. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality
profiles . Select a functionality profile that is linked to the store where the registration process should be
activated. On the Fiscal registration process FastTab, select the fiscal registration process that you created
earlier. To enable registration of non-fiscal events on the POS, on the Functions FastTab, under POS , set the
Audit option to Yes .
9. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Hardware profiles .
Select a hardware profile that is linked to the Hardware station that the fiscal printer will be connected to. On
the Fiscal peripherals FastTab, select the connector technical profile that you created earlier.
10. Open the distribution schedule (Retail and Commerce > Retail and Commerce IT > Distribution
schedule ), and select jobs 1070 and 1090 to transfer data to the channel database.
Production environment
The previous procedure enables the extensions that are components of the fiscal registration service integration
sample. In addition, you must follow these steps to create deployable packages that contain Commerce
components, and to apply those packages in a production environment.
1. Make the following changes in the package configuration files under the RetailSdk\Assets folder:
In the commerceruntime.ext.config and CommerceRuntime.MPOSOffline.Ext.config
configuration files, add the following lines to the composition section.

<add source="assembly" value="Contoso.Commerce.Runtime.DocumentProvider.EFRSample" />


<add source="assembly" value="Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR" />
<add source="assembly" value="Microsoft.Dynamics.Commerce.Runtime.ReceiptsAustria" />
<add source="assembly" value="Microsoft.Dynamics.Commerce.Runtime.RegisterAuditEventAustria" />
<add source="assembly" value="Microsoft.Dynamics.Commerce.Runtime.XZReportsAustria" />

In the HardwareStation.Extension.config configuration file, add the following line to the


composition section.

<add source="assembly" value="Contoso.Commerce.HardwareStation.EFRSample" />

2. Make the following changes in the BuildTools\Customization.settings package customization


configuration file:
Add the following lines to include the CRT extensions in the deployable packages.

<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.DocumentProvider.EFRSample.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR.dll" />
<ISV_HardwareStation_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR.dll" />

Add the following line to include the Hardware station extension in the deployable packages.
<ISV_HardwareStation_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.HardwareStation.EFRSample" />

3. Start the MSBuild Command Prompt for Visual Studio utility, and run msbuild under the Retail SDK folder
to create deployable packages.
4. Apply the packages via Microsoft Dynamics Lifecycle Services (LCS) or manually. For more information, see
Create deployable packages.
5. Complete all the required setup tasks that are described in the Set up Commerce for Austria section.

Design of extensions
Commerce runtime extension design
The purpose of the extension that is a fiscal document provider is to generate service-specific documents and
handle responses from the fiscal registration service.
The CRT extension is Runtime.Extensions.DocumentProvider.EFRSample .
For more details about the design of the fiscal integration solution, see Overview of fiscal integration for
Commerce channels.
Request handler
There are two request handlers for document providers:
DocumentProviderEFRFiscalAUT – This handler is used to generate fiscal documents for the fiscal
registration service.
DocumentProviderEFRNonFiscalAUT – This handler is used to generate non-fiscal documents for the fiscal
registration service.
These handlers are inherited from the INamedRequestHandler interface. The HandlerName method is
responsible for returning the name of the handler. The handler name should match the connector document
provider name that is specified in Headquarters.
The connector supports the following requests:
GetFiscalDocumentDocumentProviderRequest – This request contains information about what document
should be generated. It returns a service-specific document that should be registered in the fiscal registration
service.
GetNonFiscalDocumentDocumentProviderRequest – This request contains information about what non-
fiscal document should be generated. It returns a service-specific document that should be registered in the
fiscal registration service.
GetSuppor tedRegistrableEventsDocumentProviderRequest – This request returns the list of events to
subscribe to. Currently, the following events are supported: sales, printing X report, printing Z report, customer
account deposits, customer order deposits, audit events, and non-sales transactions.
GetFiscalRegisterResponseToSaveDocumentProviderRequest – This request returns the response from
the fiscal registration service. This response is serialized to form a string so that it's ready to be saved.
Configuration
The configuration files are located in the Configuration folder of the extension project:
DocumentProviderFiscalEFRSampleAustria – For fiscal documents.
DocumentProviderNonFiscalEFRSampleAustria – For non-fiscal documents.
The purpose of these files is to enable settings for the document provider to be configured from Headquarters. The
file format is aligned with the requirements for fiscal integration configuration. The following setting is added:
VAT rates mapping
Hardware station extension design
The purpose of the extension that is a fiscal connector is to communicate with the fiscal registration service.
The Hardware station extension is HardwareStation.Extension.EFRSample . The Hardware station extension
uses the HTTP protocol to submit documents that the CRT extension generates to the fiscal registration service. It
also handles the responses that are received from the fiscal registration service.
Request handler
The EFRHandler request handler is the entry point for handling requests to the fiscal registration service.
The handler is inherited from the INamedRequestHandler interface. The HandlerName method is responsible
for returning the name of the handler. The handler name should match the fiscal connector name that is specified
in Headquarters.
The connector supports the following requests:
SubmitDocumentFiscalDeviceRequest – This request sends documents to the fiscal registration service and
returns a response from it.
IsReadyFiscalDeviceRequest – This request is used for a health check of the fiscal registration service.
InitializeFiscalDeviceRequest – This request is used to initialize the fiscal registration service.
Configuration
The configuration file is located in the Configuration folder of the extension project. The purpose of the file is to
enable settings for the fiscal connector to be configured from Headquarters. The file format is aligned with the
requirements for fiscal integration configuration. The following settings are added:
Endpoint address – The URL of the fiscal registration service.
Timeout – The amount of time, in milliseconds, that the driver will wait for a response from the fiscal
registration service.
Advance invoices for Commerce for Eastern Europe
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

The information in this topic applies to the Eastern European localization and is specific to the commerce industry.
For Poland, Hungary, and Czech Republic, when a prepayment is received from a customer via Point of Sale (POS),
the prepayment must be registered for tax purposes, and it's required to generate and print an advance invoice
document that includes the prepayment amount. Additionally, for Poland, advance invoice transactions must be
posted in the general ledger.
When the invoice for the sales order is finally posted, the final document should include the advance invoice, and
any prepayments should be indicated.
If you generate sales orders from Accounts receivable, you must manually generate advance invoices by using the
procedure in Advance invoices for Eastern Europe. If you generate sales orders via POS, the system generates and
posts the advance invoices for you.

Supported scenarios
The following scenarios are supported:
Create and post an advance invoice.
Modify a deposit amount. If a customer decides to increase the amount of a deposit, an additional advance
invoice is issued. For all other changes to the deposit amount (for example, if a customer order is edited), a
credit note is created for the advance invoice that was previously generated, and a new advance invoice is
generated and posted for the corrected amount.
Cancel a sales order that has linked advance invoices. In this case, a credit note is created for the advance
invoice.
Post a sales order invoice that has linked advance invoices. The advance invoice that is linked to a sales order is
reversed for the amount of the sales invoice. The advance invoice transactions are settled with advance invoice
reversal transactions.

Set up advance invoices


Turn on the functionality for creating advance invoices
1. Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters .
2. On the Customer orders tab, on the Order FastTab, set the Create advance invoice for deposit option to
Yes .
Define the parameters for posting advance invoices
1. Go to Accounts receivable > Setup > Accounts receivable parameters .
2. On the Updates tab, on the Advance invoice FastTab, set the Posting profile , Sales tax group , and Item
sales tax group fields. If these fields are set correctly, the advance invoice will be posted. If these fields aren't
set, advance invoices won't be posted.
Turn off posting of the Sales tax on prepayment journal voucher
The Sales tax on prepayment journal voucher must not be posted if advance invoice posting is turned on. To verify
that this requirement is met, follow these steps.
1. Go to Accounts receivable > Setup > Accounts receivable parameters .
2. On the Ledger and sales tax tab, on the Payment FastTab, make sure that the following fields are blank or
set to No :
Sales tax on prepayment journal voucher
Posting profile with prepayment journal voucher
Tax group for prepayment
Item Sales tax group

Print advance invoices


You can print advance invoices from POS on a Microsoft Windows printer that is connected to the hardware
station. There are two options for printing an advance invoice from POS:
Print an advance invoice after a transaction is concluded in POS. This option occurs automatically if an
advance invoice was generated and a Windows printer was correctly set up. In this case, only the last advance
invoice that is linked to the customer order is printed.
Reprint an advance invoice from the transaction journal. Select Show journal to open the transactions
journal, find the customer order, and then select Print Advance invoice . In this case, all advance invoices that
are linked to the customer order are printed.
Set up a Windows printer
Follow these steps to enable documents to be printed from POS on a Windows printer that is connected to the
hardware station.
1. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Hardware profiles .
2. Select a hardware profile that is related to the store where the printer is used.
3. In either the Printer section or the Printer 2 section, update the settings:
In the Printer field, select Windows driver .
In the Device name field, enter the name of the printer.
4. Go to Retail and Commerce > Retail and Commerce IT > Distribution schedule .
5. Select job 1090 , and then select Run now .
Petty cash management for Commerce for Eastern
Europe
2/1/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This article contains information about Eastern European localization specific for the commerce industry.
In accordance with the Eastern Europe accounting requirements, you can set up operations for cash accounts to
automate the processes for receipts, cash documents and cash reports. For more information, go to (EEUR) Set up
parameters for cash management.
Retailers can accept various types of payment in exchange for the products and services that they sell. Although
cash is the most common form of payment, retailers can also receive payment in the form of checks, cards, or
vouchers. In Retail point of sale (POS), cash, credit card receipts, and other payments are processed through a cash
office.
You can do the following by using Cash management in Commerce:
Create a cash account for the selected payment method for each store.
Use cash journals to post cash transactions and customer payments that are received at a retail POS.
Aggregate transactions in a statement line when you post a statement. You can aggregate safe drops, bank
drops, voucher transactions, remove tender transactions, float entry transactions, income transactions, expense
transactions, customer payments, sales transactions, and return transactions.
All transactions that take place in POS are posted using a ledger journal. You can use cash payment journals,
customer payment journals, and general journals to create and post the statements. For more information, go to
Create, calculate, and post statements for a retail store.
On the Posted statements page, on the Action Pane, you can do the following:
Go to Inquiries > Cash payment journal to access the cash payment journals that are related to the
statement.
Go to Inquiries > General journal to access the ledger journals that are related to the statement, other than
customer payments and cash payments.

Set up for cash management for POS


You must complete the following setup procedure before you use cash management:
Set up a payment method for each payment type that the retailer accepts on the Payment methods page. You
can use different payment methods for posting transactions in POS. For more information about payment
methods, see Payment methods.
Set up parameters for cash operations.
Set up a payment method for cash payments in a store.
Set up parameters for cash operations
You can set up parameters to create and post cash transactions in Commerce. You can use cash payment journals,
customer payment journals, or general journals to post sales transactions and payment transactions in the POS.
You can aggregate transactions that have the same properties when you post a statement.
1. Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce parameters . In the
left pane, click Posting .
2. In the Posting area, on the Aggregation FastTab, set Tender remove/float to Yes to aggregate the
remove tender transactions or float entry transactions that are associated with a statement line when you
post the statement. A remove tender transaction is created when you withdraw cash from the POS cash
drawer. A float entry transaction is created when you deposit cash in the POS cash drawer.
3. Activate the individual parameters listed below to aggregate the transactions that are associated with a
statement line when you post the statement:
Bank drop – Aggregate bank transactions.
Safe drop – Aggregate safe transactions.
Income/Expense transactions – Aggregate income transactions or expense transactions.
Voucher transactions – Aggregate voucher transactions.
Customer payments – Aggregate customer payments.
Sales and returns – Aggregate sales and returns transactions.
4. On the Payments FastTab, select a default journal name for the following options:
Customer payment journal – This journal is used to post customer payments.
Cash payment journal – This journal is used to post cash payments.
General journal – This journal is used to post transactions other than cash payments and customer
payments.
Set up a payment method for cash payments in a store
Use the following procedure to set up a payment method for cash payments in a store.
1. Go to Retail and Commerce > Channels > Stores > All stores .
2. On the All stores list page, select the store to set up a payment method for.
3. On the Action Pane, on the Set up tab, in the Set up group, click Payment methods .
4. On the Payment method page, create or select a payment method.
5. On the Posting FastTab, in the Account field group, in the Account type field, select Cash account .

NOTE
You can select Cash account in the Account type field only if you select Normal or Tender remove/float in the
Function field.

6. In the Account number field, select a cash account number for the payment method.
7. In the Tender remove/float field group, in the Offset account field, select the offset account to post
remove tender or float entry transactions for the payment method.

NOTE
You must set up offset accounts for both the cash tender payment method and the remove tender or float entry payment
method for a store. This creates balanced general ledger entries for remove tender or float entry transactions.
Customer invoices and return sales orders in Eastern
European countries
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how to set up information for customer invoices and return sales orders in Eastern European
countries.
You can set up the following information for customer invoices and return sales orders that are generated in Retail
point of sale (POS).
You can use sales tax groups to process returns by using return sales orders. Go to Retail and Commerce
> Headquar ters setup > Parameters > Commerce parameters . Open the Posting > Invoice tab,
and then set Use sales tax group for returns to Yes .
To specify the sales tax group for returns that are made by a customer, on the Customers page, on the
Commerce FastTab, in the Sales tax group for returns field, select a sales tax group. When you post a
return sales order for a customer, the return sales order line is updated with the sales tax group for
returns that is specified in the Customers form.
To specify a sales tax group for returns that are made at a retail POS by a customer, on the Stores page,
on the General FastTab, in the Sales tax group for returns field, select a sales tax group. When you
post a return sales order for a customer of a store, the return sales order line is updated with the sales tax
group for returns that are specified on the Stores page.
You can use the posting date of a customer invoice or a return sales order as the sales date of the invoice or
return if the invoice or return does not have a default sales date. Go to Retail and Commerce >
Headquar ters setup > Parameters > Commerce parameters . Open the Posting > Invoice tab, and
then set Use posting date as sales date to Yes .
You can use the number range that is provided by the tax authorities to number Latvian and Lithuanian
customer invoices and return sales orders.
Go to Organization administration > Number sequences > Counters management . There
should be a record where Module = Sales and Type = Invoice .
Go to Organization administration > Number sequences > Invoice numbering setup . Select the
Commerce check box for the number sequence line that is used to number the customer invoices.
Deployment guidelines for Advance Invoice report
printing for Czech Republic, Hungary, and Poland
2/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic shows how to enable the Dynamics 365 Commerce localization for Czech Republic, Hungary, and Poland.
The localization consists of several extensions of Commerce components. These extensions let you print the
Advance Invoice report from Point of Sale (POS). For more information about localization for Czech Republic,
Hungary, and Poland, see Advance invoices for Commerce for Eastern Europe.
The localization is part of the Retail software development kit (SDK). For information, see the Retail software
development kit (SDK) architecture.
The localization consists of extensions for the Commerce runtime (CRT) and POS. To enable this localization, you
must modify the CRT configuration file and modify and build POS projects. We recommend that you use an
unmodified Retail SDK to make the changes that are described in this topic. We also recommend that you use a
source control system, such as Microsoft Visual Studio Team Services, where no files have been changed yet.

Development environment
Complete these procedures to set up a development environment, so that you can test the functionality.
CRT extension components
1. Find the extensions configuration file for CRT.
The file is named commerceruntime.ext.config , and is located in the bin\ext folder under the IIS
Commerce Scale Unit site location.
2. Register the CRT change in the extensions configuration file.

<add source="assembly" value="Microsoft.Dynamics.Commerce.Runtime.UseAdvanceInvoice" />

WARNING
Do not edit the commerceruntime.config file. This file isn't intended for any customizations.

Modern POS extension components


1. Open the solution at RetailSdk\POS\ModernPOS.sln , and make sure that it can be compiled without
errors. Additionally, make sure that you can run Modern POS from Microsoft Visual Studio by using the Run
command.
NOTE
Modern POS must not be customized. You must enable User Account Control (UAC), and you must uninstall
previously installed instances of Modern POS as required.

2. Enable the extensions to be loaded in extensions.json by adding the following lines in the appropriate
location.

{
"extensionPackages": [
{
"baseUrl": "Microsoft/AdvanceInvoice"
}
]
}

3. Rebuild the solution.


4. Run Modern POS in the debugger and test the functionality.
Cloud POS extension components
1. Open the solution at RetailSdk\POS\CloudPOS.sln , and make sure that it can be compiled without errors.
2. Enable the extensions to be loaded in extensions.json by adding the following lines in the appropriate
location.

{
"extensionPackages": [
{
"baseUrl": "Microsoft/AdvanceInvoice"
}
]
}

3. Rebuild the solution.


4. Run Cloud POS in the debugger and test the functionality.
Set up required parameters in Headquarters
For more information, see Advance invoices for Commerce for Eastern Europe.

Production environment
Follow these steps to create deployable packages that contain Commerce components, and to apply those
packages in a production environment.
1. Complete the steps in the Cloud POS extension components or Modern POS extension components
sections earlier in this topic.
2. Make the following change in the package configuration files under the RetailSdk\Assets folder.
In the commerceruntime.ext.config configuration files, add the following lines to the composition
section.

<add source="assembly" value="Microsoft.Dynamics.Commerce.Runtime.UseAdvanceInvoice" />


3. Run msbuild for the Retail SDK to create deployable packages.
4. Apply the packages via Microsoft Dynamics Lifecycle Services (LCS) or manually. For more information, see
Create deployable packages.
Fiscal printer integration sample for Poland
2/13/2020 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce, in-store, and call center. For more information
about these changes, see Microsoft Dynamics 365 Commerce.

Introduction
The Dynamics 365 Commerce functionality for Poland includes a sample integration of the point of sale (POS) with a fiscal printer. The sample extends the
fiscal integration functionality and supports the POSNET THERMAL HD 2.02 protocol for fiscal printers from Posnet Polska S.A. The sample enables
communication with a fiscal printer that is connected via a COM port by using a native software driver. It was implemented and tested by using a software
emulator that Posnet provided for the Posnet Thermal HD FV EJ fiscal printer. The sample is provided in the form of source code and is part of the Retail
software development kit (SDK).
Microsoft doesn't release any hardware, software, or documentation from Posnet. For information about how to get the fiscal printer and operate it, contact
Posnet Polska S.A.

Scenarios
The following scenarios are covered by the fiscal printer integration sample for Poland:
Sales scenarios:
Print a fiscal receipt for cash-and-carry sales and returns.
Capture a response from the fiscal printer, and store it in the channel database.
Taxes:
Map to the fiscal printer's tax codes (departments).
Transfer mapped tax data to the fiscal printer.
Payments:
Map to the fiscal printer's methods of payment.
Print payments on a fiscal receipt.
Print change information.
Print line discounts.
Gift cards:
Exclude an issued/re-charged gift card line from a fiscal receipt for a sale.
Print a payment that uses a gift card as a regular method of payment.
Print fiscal receipts for customer order operations:
A fiscal receipt isn't printed for a customer order deposit.
Print a fiscal receipt for carry-out lines of a hybrid customer order.
Print a fiscal receipt for the pickup operation for a customer order.
Print a fiscal receipt for a return order.
Print the customer information that is specified for a sales transaction on a fiscal receipt. An example of this information is the customer's VAT
number.
End of day statements (fiscal X and fiscal Z reports).
Error handling, such as the following options:
Retry fiscal registration if a retry is possible, such as if the fiscal printer isn't connected, isn't ready, or isn't responding, the printer is out of paper, or
there is a paper jam.
Postpone fiscal registration.
Skip fiscal registration, or mark the transaction as registered, and include info codes to capture the reason for the failure and additional
information.
Check the availability of the fiscal printer before a new sales transaction is opened or a sales transaction is finalized.
Default data mapping
The following default data mapping is included in the fiscal document provider configuration that is provided as part of the fiscal integration sample:
Value-added tax (VAT) rates mapping:
0 : 23.00 ; 1 : 8.00 ; 2 : 5.00 ; 3 : 0.00
Tender type mapping:
0:0;1:0;2:2;3:2;4:0;5:0;6:0;7:2;8:0
Gift cards
The fiscal printer integration sample implements the following rules that are related to gift cards:
Exclude sales lines that are related to the Issue gift card and Add to gift card operations from the fiscal receipt.
Don't print a fiscal receipt if it consists only of gift card lines.
Deduct the total amount of gift cards that are issued or re-charged in a transaction from payment lines of the fiscal receipt.
Save calculated adjustments of payment lines in the channel database with a reference to a corresponding fiscal transaction.
Payment by gift card is considered a regular payment.
Customer deposits and customer order deposits
The fiscal printer integration sample implements the following rules that are related to customer deposits and customer order deposits:
Don't print a fiscal receipt if a transaction is a customer deposit.
Don't print a fiscal receipt if a transaction contains only a customer order deposit or a customer order deposit refund.
Print the amount of the previously paid deposit on a fiscal receipt for a customer order pickup operation.
Deduct the customer order deposit amount from payment lines when a hybrid customer order is created.
Save calculated adjustments of payment lines in the channel database with a reference to a fiscal transaction for a hybrid customer order.
Limitations of the sample
The fiscal printer supports only scenarios where sales tax is included in the price. Therefore, the Price include sales tax option must be set to Yes for
both stores and customers.
Daily reports (fiscal X and fiscal Z) are printed by using the embedded Shift report format.
Printing a bar code on fiscal receipts is considered a potential customization, because this feature isn't supported in the embedded formats and can be
implemented only by using the customizable Super-format report.
The fiscal printer doesn't support mixed transactions. The Prohibit mixing sales and returns in one receipt option should be set to Yes in POS
functionality profiles.

Set up Commerce for Poland


Configure fiscal integration
Complete the fiscal integration setup steps as described in Set up the fiscal integration for Commerce channels:
Set up a fiscal registration process. Note also the settings for the fiscal registration process that are specific to this fiscal printer integration sample.
Set error handling settings.
Set up fiscal X/Z reports from the POS.
Enable manual execution of postponed fiscal registration.
Enable extensions
Commerce runtime extension components
The Commerce runtime (CRT) extension components are included in the Retail SDK. To complete the following procedures, open the CRT solution,
CommerceRuntimeSamples.sln , under RetailSdk\SampleExtensions\CommerceRuntime .
1. Find the Runtime.Extensions.DocumentProvider.PosnetSample project, and build it.
2. In the Extensions.DocumentProvider.PosnetSample\bin\Debug folder, find the
Contoso.Commerce.Runtime.Extensions.DocumentProvider.PosnetSample.dll assembly file.
3. Copy the assembly file to the CRT extension folder:
Commerce Scale Unit: Copy the assembly to the \bin\ext folder under the Microsoft Internet Information Services (IIS) Commerce Scale Unit
site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker location.
4. Find the extensions configuration file for CRT:
Commerce Scale Unit: The file is named commerceruntime.ext.config , and it's in the bin\ext folder under the IIS Commerce Scale Unit site
location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's under the local CRT client broker
location.
5. Register the CRT change in the extension's configuration file. Add source="assembly"
value="Contoso.Commerce.Runtime.Extensions.DocumentProvider.PosnetSample" .
6. Restart the Commerce service.
Commerce Scale Unit: Restart the Commerce service site from IIS Manager.
Client broker : End the dllhost.exe process in Task Manager, and then restart Modern POS.
Hardware station extension components
The Hardware station extension components are included in the Retail SDK. To complete the following procedures, open the Hardware Station solution,
HardwareStationSamples.sln , under RetailSdk\SampleExtensions\HardwareStation .
1. Find the Extension.PosnetThermalFVFiscalPrinterSample project, and build it.
2. In the Extension.PosnetThermalFVFiscalPrinterSample\bin\Debug folder, find the
Contoso.Commerce.HardwareStation.PosnetThermalFVFiscalPrinterSample.dll assembly file.
3. Copy the files to a deployed Hardware station machine:
Remote Hardware station: Copy the files to the bin folder under the IIS Hardware station site location. Copy the printer driver libraries
(libposcmbth.dll , libcmbth_serial.dll , and cmbth_pl.lng ).
4. Find the configuration file for the Hardware station's extensions. The file is named HardwareStation.Extension.config :
Remote Hardware station: The file is located under the IIS Hardware station site location.
5. Add the following section to the composition section of the config file.

<add source="assembly" value="Contoso.Commerce.HardwareStation.PosnetThermalFVFiscalPrinterSample" />

6. Restart the Hardware station service:


Remote Hardware station: Restart the Hardware station site from IIS Manager.
Set up the registration process
To enable the registration process, follow these steps to set up Headquarters. For more details, see Set up a fiscal registration process.
1. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Fiscal Connectors . Import the configuration from
RetailSdk\SampleExtensions\HardwareStation\Extension.Posnet.ThermalDeviceSample\Configuration\ConnectorConnectorPosnetThermalFVEJ.xml
2. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Fiscal Document providers . Import the configuration from
RetailSdk\SampleExtensions\CommerceRuntime\Extension.DocumentProvider.PosnetSample\Configuration\DocumentProviderPosnetSample.xml
3. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Connector Technical profiles . Create a new profile, and select the loaded
connector from the earlier step. Update connection settings if an update is required.
4. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Connector Functional profiles . Create a new profile, and select the loaded
connector and document provider from the earlier steps. Update data mapping settings, if an update is required.
5. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Connector Functional group . Create a new group, and select the
connector functional profile from the earlier step.
6. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Registration process . Create a new process, and select the connector
functional group from the earlier step.
7. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles . Open the functionality profile that is linked
to the store where the registration process should be activated. On the Fiscal registration process FastTab, select the registration process that was
created earlier.
8. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Hardware profiles . Open the hardware profile that is linked to the
Hardware station that the fiscal printer will be connected to. On the Fiscal peripherals FastTab, select the connector technical profile.
9. Open the distribution schedule (Retail and Commerce > Retail and Commerce IT > Distribution schedule ), and select jobs 1070 and 1090 to
transfer data to the channel database.
Production environment
Follow these steps to create deployable packages that contain Commerce components, and to apply those packages in a production environment.
1. Complete the steps that are described in the Enable extensions section earlier in this topic.
2. Make the following changes in the package configuration files under the RetailSdk\Assets folder:
In the commerceruntime.ext.config and CommerceRuntime.MPOSOffline.Ext.config configuration files, add the following line to the
composition section.

<add source="assembly" value="Contoso.Commerce.Runtime.Extensions.DocumentProvider.PosnetSample" />

In the HardwareStation.Extension.config configuration file, add the following line to the composition section.

<add source="assembly" value="Contoso.Commerce.HardwareStation.PosnetThermalFVFiscalPrinterSample" />

3. Make the following changes in the BuildTools\Customization.settings package customization configuration file:
Add the following line to include the CRT extension in the deployable packages.

<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.Extensions.DocumentProvider.PosnetSample.dll"/>

Add the following line to include the Hardware station extension in the deployable packages.

<ISV_HardwareStation_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.HardwareStation.PosnetThermalFVFiscalPrinterSample.dll"/>

4. Start the MSBuild Command Prompt for Visual Studio utility, and run msbuild under the Retail SDK folder to create deployable packages.
5. Apply the packages via Microsoft Dynamics Lifecycle Services (LCS) or manually. For more information, see Create deployable packages.
Design of extensions
Commerce runtime extension design
The purpose of the extension that is a fiscal document provider is to generate printer-specific documents and handle responses from the fiscal printer.
The Commerce runtime extension is Runtime.Extensions.DocumentProvider.PosnetSample . This extension generates a set of printer-specific
commands in JavaScript Object Notation (JSON) format that are defined by POSNET specification 19-3678.
For more details about the design of the fiscal integration solution, see Fiscal registration process and fiscal integration samples for fiscal devices.
Request handler
The DocumentProviderPosnetProtocol request handler is the entry point for the request to generate documents from the fiscal printer.
The handler is inherited from the INamedRequestHandler interface. The HandlerName method is responsible for returning the name of the handler. The
handler name should match the connector document provider name that is specified in Headquarters.
The connector supports the following requests:
GetFiscalDocumentDocumentProviderRequest – This request contains information about what document should be generated. It returns a printer-
specific document that should be registered in the fiscal printer.
GetSuppor tedRegistrableEventsDocumentProviderRequest – This request returns the list of events to subscribe to. Currently, the following events
are supported: sales, printing X report, and printing Z report.
Configuration
The configuration file is found in the Configuration folder of the extension project. The purpose of the file is to enable settings for the document provider to
be configured from Headquarters. The file format is aligned with the requirements for fiscal integration configuration. The following settings are added:
VAT rates mapping
Tender type mapping
Deposit payment type
Hardware station extension design
The purpose of the extension that is a fiscal connector is to communicate with the fiscal printer.
The Hardware station extension is HardwareStation.Extension.PosnetThermalFVFiscalPrinterSample . This extension calls the functions of the POSNET
driver to submit commands that the Commerce runtime extension generates to the fiscal printer. It also handles device errors.
Request handler
The FiscalPrinterHandler request handler is the entry point for handling the request to the fiscal peripheral device.
The handler is inherited from the INamedRequestHandler interface. The HandlerName method is responsible for returning the name of the handler. The
handler name should match the fiscal connector name that is specified in Headquarters.
The connector supports the following requests:
SubmitDocumentFiscalDeviceRequest – This request sends documents to printers and returns the response from the fiscal printer.
IsReadyFiscalDeviceRequest – This request is used for a health check of the device.
InitializeFiscalDeviceRequest – This request is used for printer initialization.
Configuration
The configuration file is located in the Configuration folder of the extension project. The purpose of the file is to enable settings for the connector to be
configured from Headquarters. The file format is aligned with the requirements for fiscal integration configuration. The following settings are added:
Connection string – This string describes the details of the connection to the device in a format that is supported by the driver. For details, see the
POSNET driver documentation.
Date and time synchronization – This setting specifies whether the date and time of the printer must be synced with the connected Hardware station.
Device timeout – The amount of time, in milliseconds, that the driver will wait for a response from the device. For details, see the POSNET driver
documentation.
Fiscal registration service integration sample for Czech Republic
2/13/2020 • 18 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce, in-store, and call center. For more information about
these changes, see Microsoft Dynamics 365 Commerce.

Introduction
To meet local fiscal requirements for cash registers in the Czech Republic, the Dynamics 365 Commerce functionality for the Czech Republic includes a sample
integration of the point of sale (POS) with an external fiscal registration service. The sample extends the fiscal integration functionality. It's based on the EFR
(Electronic Fiscal Register) solution from EFSTA and enables communication with the EFR service via the HTTPS protocol. The EFR service ensures Electronic
Registration of Sales (EET - Elektronická evidence tržeb), that is, the online transmission of the sales data to a fiscal web service of tax authorities.
The EFR service should be hosted on either the Commerce Hardware station or a separate machine that can be connected to from the Hardware station. The
sample is provided in the form of source code and is part of the Retail software development kit (SDK).
Microsoft doesn't release any hardware, software, or documentation from EFSTA. For information about how to get the EFR solution and operate it, contact EFSTA.

Scenarios
The following scenarios are covered by the fiscal registration service integration sample for the Czech Republic.
Registration of cash transactions in the fiscal registration service.
Send detailed transaction data to the fiscal registration service. This data includes sales line information, and information about discounts, payments, and
taxes. The fiscal registration service further sends the data to the web-service of tax authorities and receives a confirmation from it that includes the
fiscal identification code of the transaction.
Capture a response from the fiscal registration service. This response includes fiscal data such as the fiscal identification code and the security code of
the transaction, etc.
Print the fiscal data for a registered transaction on the receipt.
Registration of gift card operations and customer deposits in the fiscal registration service.
Issue or add money to a gift card.
Register a customer account deposit.
Create a customer order and register a deposit for the order.
Edit a customer order and override the deposit for the order.
Cancel a customer order and refund the deposit for the order.
Error handling, such as the following options.
Retry fiscal registration if a retry is possible, such as if the fiscal registration service isn't available, isn't ready, or isn't responding.
Postpone fiscal registration.
Skip fiscal registration, or mark the transaction as registered, and include info codes to capture the reason for the failure and additional information.
Check the availability of the fiscal registration service before a new sales transaction is opened or a sales transaction is finalized.
Default data mapping
The following default data mapping is included in the fiscal document provider configuration that is provided as part of the fiscal integration sample.
Value-added tax (VAT) rates mapping:
A: 21.00; B: 15.00; C: 10.00; Z: 0.00
Default VAT group mapping. Any VAT amounts that cannot be mapped to one of the predetermined VAT groups will be attributed to the default (basic) VAT
group:
A
Deposit VAT group mapping. Customer deposit amounts and customer order deposit amounts will be attributed to the deposit VAT group:
Z
Gift cards
The fiscal registration service integration sample implements the following rules that are related to gift cards.
Sales lines that are related to the Issue gift card or Add to gift card operations in a sales transaction are marked with a special attribute when the transaction is
registered in the fiscal registration service.
A payment by gift card is considered a regular payment and marked with a special attribute when the transaction is registered in the fiscal registration service.
Customer account deposits and customer order deposits
The fiscal registration service integration sample implements the following rules that are related to customer account deposits and customer order deposits.
A transaction that is related to a customer account deposit or a customer order deposit is registered in the fiscal registration service as a single line transaction
and is marked with a special attribute. The deposit VAT group is specified in this line.
When a hybrid customer order is created, that is, a customer order that contains products that can be carried out of the store by the customer, as well as
products that will be picked up or shipped later, the transaction registered in the fiscal registration service contains lines for the products that are carried out, as
well as a line for the order deposit.
A payment from a customer account is considered a regular payment and marked with a special attribute when the transaction is registered in the fiscal
registration service.
The customer order deposit amount that is applied to a customer order Pick up operation is considered a regular payment and marked with a special attribute
when the transaction is registered in the fiscal registration service.
Offline registration
If the fiscal registration service fails to transmit transaction data to the fiscal web service of tax authorities (e.g. due to the response timeout) and to receive a
confirmation from the web-service (that is, the fiscal identification code of the transaction), it generates a local signature for the transaction and includes it and a
special error code in the response. The fiscal registration service resends transactions in original order in background as soon as the network connection is
restored.
Limitations of the sample
The fiscal registration service supports only scenarios where sales tax is included in the price. Therefore, the Price include sales tax option must be set to Yes for
both stores and customers.

Set up Commerce for Czech Republic


This section describes the Commerce settings that are specific to and recommended for the Czech Republic. For more information, see Commerce home page.
To use the Czech-specific functionality, you must specify the following settings.
In the primary address of the legal entity, set the Countr y/region field to CZE (Czech Republic).
In the POS functionality profile of every store that is located in the Czech Republic, set the ISO code field to CZ (Czech Republic).
You must also specify the following settings for the Czech Republic. Note that you must run appropriate distribution jobs after you complete the setup.
Set up VAT per Czech Republic
You must create sales tax codes, sales tax groups, and item sales tax groups. You must also set up sales tax information for products and services. For more
information about how to set up and use sales tax features, see Sales tax overview.
Set up stores
On the All stores page, update the store details. Specifically, set the following parameters.
In the Sales tax group field, specify the sales tax group that should be used for sales to the default customer.
Set the Prices include sales tax option to Yes .
Set the Name field to the company name. This change helps guarantee that the company name appears on a sales receipt. Alternatively, you can add the
company name to the sales receipt layout as free-form text.
Set the Tax identification number (TIN) field to the company identification number. This change helps guarantee that the company identification number
appears on a sales receipt. Alternatively, you can add the company identification number to the sales receipt layout as free-form text.
Set up functionality profiles
Set up POS functionality profiles.
On the Receipt numbering FastTab, set up receipt numbering by creating or updating records for the Sale , Sales order , and Return receipt transaction
types.
Set up registration numbers
1. Go to Organization administration > Global address book > Registration types > Registration types . Create a new registration type. Specify the
Countr y/region field to CZE (Czech Republic) and make it restricted to Organization.
2. Go to Organization administration > Global address book > Registration types > Registration categories . Create a new registration category.
Select the registration type from the previous step and set the Registration categor y to Business Premise ID .
3. Go to Organization administration > Organizations > Operating units . For each store located in the Czech Republic, select the unit related to the
store. On the Address FastTab expand the More options drop-down list and select Advanced .
4. On the opened Manage addresses page you must specify following setting.
On the Address FastTab set the Countr y/region field to CZE .
On the Registration ID FastTab create a new record. Select the registration type created earlier and set the registration number.
Configure custom fields so that they can be used in receipt formats for sales receipts
You can configure the language text and custom fields that are used in the POS receipt formats. The default company of the user who creates the receipt setup
should be the same legal entity where the language text setup is created. Alternatively, the same language texts should be created in both the user's default
company and the legal entity of the store that the setup is created for.
On the Language text page, add the following records for the labels of the custom fields for receipt layouts. Note that the Language ID , Text ID , and Text values
that are shown in the table are just examples. You can change them to meet your requirements. However, the Text ID values that you use must be unique, and they
must be equal to or more than 900001.
Add the following POS labels to the POS section of Language text from the table:

L A N GUA GE ID T EXT ID T EXT

en-US 900001 ID provozovny/pokladny


L A N GUA GE ID T EXT ID T EXT

en-US 900002 BKP

en-US 900003 FIK

en-US 900004 PKP

en-US 900005 Info

en-US 900006 Sequence number

On the Custom fields page, add the following records for the custom fields for receipt layouts. Note that Caption text ID values must correspond to the Text ID
values that you specified on the Language text page:

NAME TYPE C A P T IO N T EXT ID

TLT Receipt 900001

SEC Receipt 900002

SIGN Receipt 900003

FISCAL Receipt 900004

INFO Receipt 900005

CONTINUOUSNUMBER Receipt 900006

Configure receipt formats


For every required receipt format, change the value of the Print behavior field to Always print .
In the Receipt format designer, add the following custom fields to the appropriate receipt sections. Note that field names correspond to the language texts that you
defined in the previous section.
Header : Add the following fields.
Store name and Tax Identification Number : these fields are used to print the company name and identity number on receipts. Alternatively, you can
add the company name and identity number to the layout as free-form text.
Store address , Date , Time 24H , Receipt Number , and Register number .
Sequence number : this field identifies the number of the cash transaction in the fiscal registration service.
Lines: Add the following fields.
Item name
Qty
Total price with tax
Footer : Add the following fields.
Payment fields, so that the payment amounts for each payment method are printed. For example, add the Tender name and Tender amount fields to
one line of the layout.
ID provozovny/pokladny : this field prints the identifiers of the business premises and the cash register.
BKP : this field prints the taxpayer's security code that is assigned by the fiscal registration service.
FIK : this field prints the fiscal identification code of the transaction that is assigned by the web-service of tax authorities in case of successful online
registration.
PKP : this field prints the taxpayer's signature code that is generated by the fiscal registration service in case of offline registration.
Info : this field prints the additional information from the fiscal registration service.
For more information about how to work with receipt formats, see Set up and design receipt formats.
Configure fiscal integration
Complete the fiscal integration setup steps as described in Set up the fiscal integration for Commerce channels.
Set up a fiscal registration process. Note also the settings for the fiscal registration process that are specific to this fiscal registration service integration sample.
Set error handling settings.
Enable manual execution of postponed fiscal registration.

Deployment guidelines for cash registers for Czech Republic


The fiscal registration service integration sample for the Czech Republic is part of the Retail SDK. For information about how to install and use the Retail SDK, see
the Retail software development kit (SDK) architecture.
This sample consists of extensions for the CRT and Hardware station. To run this sample, you must modify and build the CRT and Hardware station projects. We
recommend that you use an unmodified Retail SDK to make the changes that are described in this topic. We also recommend that you use a source control system,
such as Azure DevOps, where no files have been changed yet.
Follow these steps to set up a development environment so that you can test and extend the sample.
Enable Commerce runtime extensions
The CRT extension components are included in the CRT samples. To complete the following procedures, open the CRT solution, CommerceRuntimeSamples.sln ,
under RetailSdk\SampleExtensions\CommerceRuntime .
DocumentProvider.EFRSample component
1. Find the Runtime.Extensions.DocumentProvider.EFRSample project, and build it.
2. In the Runtime.Extensions.DocumentProvider.EFRSample\bin\Debug folder, find the
Contoso.Commerce.Runtime.DocumentProvider.EFRSample.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Commerce Scale Unit: Copy the assembly to the \bin\ext folder under the Microsoft Internet Information Services (IIS) Commerce Scale Unit site
location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker location.
4. Find the extension configuration file for CRT:
Commerce Scale Unit: The file is named commerceruntime.ext.config , and it's in the bin\ext folder under the IIS Commerce Scale Unit site
location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.DocumentProvider.EFRSample" />

DocumentProvider.DataModelEFR component
1. Find the Runtime.Extensions.DocumentProvider.DataModelEFR project, and build it.
2. In the Runtime.Extensions.DocumentProvider.DataModelEFR\bin\Debug folder, find the
Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Commerce Scale Unit: Copy the assembly to the \bin\ext folder under the IIS Commerce Scale Unit site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker location.
4. Find the extension configuration file for CRT:
Commerce Scale Unit: The file is named commerceruntime.ext.config , and it's in the bin\ext folder under the IIS Commerce Scale Unit site
location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR" />

Update extension configuration file


1. Find the extension configuration file for CRT:
Commerce Scale Unit: The file is named commerceruntime.ext.config , and it's in the bin\ext folder under the IIS Commerce Scale Unit site
location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's under the local CRT client broker location.
2. Register the CRT change in the extension configuration file.

<add source="assembly" value="Microsoft.Dynamics.Commerce.Runtime.ReceiptsCzechia" />

Enable Hardware station extensions


The Hardware station extension components are included in the Hardware station samples. To complete the following procedures, open the solution,
HardwareStationSamples.sln.sln , under RetailSdk\SampleExtensions\HardwareStation .
EFRSample component
1. Find the HardwareStation.Extension.EFRSample project, and build it.
2. In the Extension.EFRSample\bin\Debug folder, find following files:
The Contoso.Commerce.HardwareStation.EFRSample.dll assembly
The Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR.dll assembly
3. Copy the assembly files to the Hardware station extensions folder:
Shared hardware station: Copy the files to the bin folder under the IIS Hardware station site location.
Dedicated hardware station on Modern POS: Copy the files to the Modern POS client broker location.
4. Find the extension configuration file for the Hardware station's extensions. The file is named HardwareStation.Extension.config .
Shared hardware station: The file is located under the IIS Hardware station site location.
Dedicated hardware station on Modern POS: The file is located under the Modern POS client broker location.
5. Add the following line to the composition section of the configuration file.
<add source="assembly" value="Contoso.Commerce.HardwareStation.EFRSample.dll" />

Set up the registration process


To enable the registration process, follow these steps to set up Headquarters. For more details, see Set up a fiscal registration process.
1. Go to Retail and Commerce > Headquar ters setup > Parameters > Commerce shared parameters . On the General tab, set the Enable fiscal
integration option to Yes .
2. Go to Retail and Commerce > Channel setup > Fiscal integration > Fiscal connectors , and load the connector configuration. The file location is
RetailSdk\SampleExtensions\HardwareStation\Extension.EFRSample\Configuration\ConnectorEFRSample.xml .
3. Go to Retail and Commerce > Channel setup > Fiscal integration > Fiscal document providers , and load the document provider configuration. The
configuration file is
RetailSdk\SampleExtensions\CommerceRuntime\Extensions.DocumentProvider.EFRSample\Configuration\DocumentProviderFiscalEFRSampleCzech.xml
4. Go to Retail and Commerce > Channel setup > Fiscal integration > Connector functional profiles . Create a new connector functional profile. Select
the document provider and the connector that you loaded earlier. Update the data mapping settings as required.
5. Go to Retail and Commerce > Channel setup > Fiscal integration > Connector technical profiles . Create a new connector technical profile, and
select the connector that you loaded earlier. Update the connection settings as required.
6. Go to Retail and Commerce > Channel setup > Fiscal integration > Fiscal connector groups . Create a new fiscal connector group, for the connector
functional profile that you created earlier.
7. Go to Retail and Commerce > Channel setup > Fiscal integration > Fiscal registration processes . Create a new fiscal registration process, a fiscal
registration process step, and select the fiscal connector group that you created earlier.
8. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles . Select a functionality profile that is linked to the
store where the registration process should be activated. On the Fiscal registration process FastTab, select the fiscal registration process that you created
earlier.
9. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Hardware profiles . Select a hardware profile that is linked to the
Hardware station that the fiscal printer will be connected to. On the Fiscal peripherals FastTab, select the connector technical profile that you created earlier.
10. Open the distribution schedule (Retail and Commerce > Retail and Commerce IT > Distribution schedule ), and select jobs 1070 and 1090 to transfer
data to the channel database.
Production environment
The previous procedure enables the extensions that are components of the fiscal registration service integration sample. In addition, you must follow these steps
to create deployable packages that contain Commerce components, and to apply those packages in a production environment.
1. Make the following changes in the package configuration files under the RetailSdk\Assets folder.
In the commerceruntime.ext.config and CommerceRuntime.MPOSOffline.Ext.config configuration files, add the following lines to the
composition section.

<add source="assembly" value="Contoso.Commerce.Runtime.DocumentProvider.EFRSample" />


<add source="assembly" value="Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR" />
<add source="assembly" value="Microsoft.Dynamics.Commerce.Runtime.ReceiptsCzechia" />

In the HardwareStation.Extension.config configuration file, add the following line to the composition section.

<add source="assembly" value="Contoso.Commerce.HardwareStation.EFRSample" />

2. Make the following changes in the BuildTools\Customization.settings package customization configuration file.
Add the following lines to include the CRT extensions in the deployable packages.

<ISV_CommerceRuntime_CustomizableFile Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.DocumentProvider.EFRSample.dll" />


<ISV_CommerceRuntime_CustomizableFile Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR.dll" />
<ISV_HardwareStation_CustomizableFile Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.DocumentProvider.DataModelEFR.dll" />

Add the following line to include the Hardware station extension in the deployable packages.

<ISV_HardwareStation_CustomizableFile Include="$(SdkReferencesPath)\Contoso.Commerce.HardwareStation.EFRSample" />

3. Start the MSBuild Command Prompt for Visual Studio utility, and run msbuild under the Retail SDK folder to create deployable packages.
4. Apply the packages via Microsoft Dynamics Lifecycle Services (LCS) or manually. For more information, see Create deployable packages.
5. Complete all the required setup tasks that are described in the Set up Commerce for Czech Republic section.

Design of extensions
Commerce runtime extension design
The purpose of the extension that is a fiscal document provider is to generate service-specific documents and handle responses from the fiscal registration service.
The CRT extension is Runtime.Extensions.DocumentProvider.EFRSample .
For more details about the design of the fiscal integration solution, see Fiscal registration process and fiscal integration samples for fiscal devices.
Request handler
There is a single DocumentProviderEFRFiscalCZE request handler for document provider, which is used to generate fiscal documents for the fiscal registration
service.
This handler is inherited from the INamedRequestHandler interface. The HandlerName method is responsible for returning the name of the handler. The
handler name should match the connector document provider name that is specified in Headquarters.
The connector supports the following requests.
GetFiscalDocumentDocumentProviderRequest – This request contains information about what document should be generated. It returns a service-
specific document that should be registered in the fiscal registration service.
GetSuppor tedRegistrableEventsDocumentProviderRequest – This request returns the list of events to subscribe to. Currently, the following events are
supported: sales, customer account deposits and customer order deposits.
GetFiscalRegisterResponseToSaveDocumentProviderRequest – This request returns the response from the fiscal registration service. This response is
serialized to form a string so that it's ready to be saved.
Configuration
The DocumentProviderFiscalEFRSampleCzech configuration file is located in the Configuration folder of the extension project. The purpose of this file is to
enable settings for the document provider to be configured from Headquarters. The file format is aligned with the requirements for fiscal integration
configuration. The following settings are added.
VAT rates mapping
Default VAT group
Deposit VAT group
Hardware station extension design
The purpose of the extension that is a fiscal connector is to communicate with the fiscal registration service.
The Hardware station extension is HardwareStation.Extension.EFRSample . The Hardware station extension uses the HTTP protocol to submit documents that
the CRT extension generates to the fiscal registration service. It also handles the responses that are received from the fiscal registration service.
Request handler
The EFRHandler request handler is the entry point for handling requests to the fiscal registration service.
The handler is inherited from the INamedRequestHandler interface. The HandlerName method is responsible for returning the name of the handler. The
handler name should match the fiscal connector name that is specified in Headquarters.
The connector supports the following requests.
SubmitDocumentFiscalDeviceRequest – This request sends documents to the fiscal registration service and returns a response from it.
IsReadyFiscalDeviceRequest – This request is used for a health check of the fiscal registration service.
InitializeFiscalDeviceRequest – This request is used to initialize the fiscal registration service.
Configuration
The configuration file is located in the Configuration folder of the extension project. The purpose of the file is to enable settings for the fiscal connector to be
configured from Headquarters. The file format is aligned with the requirements for fiscal integration configuration. The following settings are added.
Endpoint address – The URL of the fiscal registration service.
Timeout – The amount of time, in milliseconds, that the driver will wait for a response from the fiscal registration service.
Cash register functionality for France
2/13/2020 • 16 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the cash register functionality that is available for France in Dynamics 365
Commerce. It also provides guidelines for setting up the functionality.
The functionality consists of the following parts:
Common point-of-sale (POS) features that are available to customers in all countries or regions. Examples
include an option to register various events in the POS audit log.
France-specific features, such as digital signatures for sales transactions.

Overview
Common POS features
To learn about POS features that are available to customers in all countries or regions, see Commerce home page.
The following POS localization features that are available to customers in all countries or regions can now be used
specifically for France:
Register additional events in the POS audit event log. If the Audit option in the POS functionality
profile is set to Yes , the following events are registered in the POS audit event log:
Sign-in
Sign-out
Printing a copy of a receipt
Starting offline mode
Ending offline mode
Cleanup of transactions from the channel database
France -specific POS features
The following France-specific POS features are enabled when the ISO code field in the POS functionality profile is
set to FR .
Digital signing overview
The following types of data (transactions and events) are digitally signed in POS:
Sales transactions
Copies of receipts
Closed shift/Z reports
Audit events
The signature is created and recorded in the channel database at the same time that the transaction is finalized or
the event is registered. The data that is signed is a text string that consists of several data fields. These fields vary,
depending on the type of data. The general signing process consists of the following steps:
1. Based on the type of data, select the next sequential number for signing purposes.
2. Extract the data fields that must be signed from the record that is being signed.
3. Build a string that consists of a comma-separated list of the data fields.
4. Add the previous signature for the same type of data.
5. Calculate a hash code of the string by using the SHA-x algorithm.
6. Encrypt the resulting string by using a digital certificate.
7. Do the base64url transformation for the resulting string.
8. Store the string that is used for signing, the sequential number, the signature, and the thumbprint of the
certificate in a fiscal response record that is linked to the transaction or event.
9. Transfer the fiscal response to the enterprise resource planning (ERP) system in Headquarters, together with the
transaction or event.
Digital signing of sales transactions
Only transactions for cash sales are signed. Here are some examples of transactions that are excluded from the
signing process:
Prepayments (customer account deposits)
Quotations
Prepayments for sales orders (customer order deposits)
Issuing a gift card and adding funds to a gift card
Non-sales transactions (float entry, tender removal, and so on)
The data that is signed for a sales transaction is a text string that consists of the following data fields:
1. The total amount of sales lines. The amount includes tax per tax rate.
2. The total amount of sales. The amount includes tax.
3. The date and time of the transaction, in the format YYYYMMDDHHMMSS.
4. The register number.
5. The sequential number of the signed sales transaction.
6. The type of sales transaction.
7. A value (Y/N) that indicates whether the transaction is the first signed sales transaction for the register.
8. The previous signature for the same register. A blank value is used for the first signed sales transaction.
You can view the transaction signature, together with the transaction data that was used to generate it, on the
Fiscal transactions FastTab of the Store transactions page in Headquarters.
Digital signing of receipt copies
When a copy of a receipt is printed, the event is registered in the POS audit event log. Only copies of receipts for
signed sales transactions are signed. The data that is signed for a receipt copy event is a text string that consists of
the following data fields:
1. The receipt number of the original sales transaction.
2. The type of transaction for the original sales transaction.
3. The number of the receipt copy for this sales transaction.
4. The staff ID of the operator who is printing the receipt copy.
5. The date and time of the receipt copy event, in the format YYYYMMDDHHMMSS.
6. The sequential number of the signed receipt copy event.
7. A value (Y/N) that indicates whether the transaction is the first signed receipt copy event for the register.
8. The previous signature for the same register. A blank value is used for the first signed receipt copy event.
You can view the signature of the receipt copy, together with the event data that was used to generate it, on the
Signature tab of the Audit events page in Headquarters.
Digital signing of closed shifts
When a shift is closed, the event is registered in the POS audit event log. The data that is signed for a shift closing
event is a text string that consists of the following data fields:
1. The total amount of sales. The amount includes tax per tax rate.
2. The total amount of sales. The amount includes tax.
3. The date and time of the shift closing event, in the format YYYYMMDDHHMMSS.
4. The sequential number of the shift closing event.
5. A value (Y/N) that indicates whether the transaction is the first signed shift closing event for the register.
6. The previous signature for the same register. A blank value is used for the first signed shift closing event.
You can view the signature of a closed shift, together with the shift data that was used to generate it, on the
Signature tab of the Shifts page in Headquarters.
Digital signing of events
The data that is signed for an event other than a receipt copy or shift closing event is a text string that consists of
the following data fields:
1. The sequential number of the signed event.
2. A predefined event code.
3. A description of the event.
4. The date and time of the event.
5. The staff ID of the operator who raised the event.
6. The register number.
7. A value (Y/N) that indicates whether the transaction is the first signed event for the register.
8. The previous signature for the same register. A blank value is used for the first signed event.
You can view the event signature, together with the event data that was used to generate it, on the Signature tab
of the Audit events page in Headquarters.
Receipts
Receipts for France can include additional information that was implemented by using custom fields:
Transaction type – You can add a field to a receipt format layout to identify the type of transaction. For
example, a sales receipt will include the text "Sales."
Sequential number of signed sales transaction – A receipt can include the sequential number of a
signed sales transaction. This number is used to associate the printed receipt with a digital signature in the
database.
Extract from digital signature – A receipt can include an extract from the digital signature. This extract is
used to confirm that the transaction is signed. It consists of a concatenation of the third, seventh, thirteenth,
and nineteenth symbols of the signature.
Reprint number – An original receipt or a receipt copy can include the number of the receipt copy. For an
original receipt, the value is 0 (zero).
Line count – A receipt can include the number of printed item lines on the receipt.
Sales totals – Custom fields for receipt totals exclude non-sales amounts from the total transaction
amounts. Non-sales amounts include amounts for the following operations:
Prepayments (customer account deposits)
Prepayments for sales orders (customer order deposits)
Issuing a gift card
Adding funds to a gift card
Cer tification data – A receipt can include the category and number of the certificate of compliance that an
authorized body issued per the NF 525 certification requirements.
Build number – A receipt can include the POS build number.
Restricting the duration of shifts
There is an option to enforce daily shift closing in POS. A shift can't last longer than the time that is specified in the
Shift closing time field. Several minutes before that time, the operator will start to receive warnings that the shift
must be closed. The number of minutes is determined by the value of the Shift closing inter val (minutes) field.
X and Z reports
The information that is included on X and Z reports is based on French requirements:
Total sales for the shift. This information includes amounts only for cash sales transactions. Prepayments and
operations for issuing a gift card are excluded.
Total returns for the shift.
Cumulative grand total . This amount is calculated as the cumulative grand total amount of the previous shift
plus the total sales amount of this shift minus the absolute value of the total returns amount of this shift.
Cumulative perpetual grand total . This amount is calculated as the cumulative perpetual grand total
amount of the previous shift plus the total sales amount of this shift plus the absolute value of the total returns
amount of this shift.
Value-added tax (VAT) amounts per tax rate.
The totals are also stored in the closed shift record and transferred to Headquarters.
Period grand total journal
Period grand total journals summarize sales totals per store and fiscal period.
Period grand total journals are maintained on the Period grand total journal page. To create a new journal, you
must specify a store. If previous journals exist for the store, the next fiscal period after the last closed journal for the
store is automatically used as the new journal period. If previous journals do not exist, you can specify the end date
of the journal. In this case, the fiscal period that includes the specified date is used as the journal period.
The journal can then be calculated. Shifts that were closed during the journal period are selected, and totals are
calculated for those shifts. You can view the journal's tax totals per sales tax code. You can also view the shifts that
are included in the journal.
After the journal is calculated, it can be closed. A closed journal can't be modified, and another journal can't be
created for a previous period, the same period, or an intersecting period. However, the last closed journal for a
store can be canceled. In that case, another journal can be created for the same store and period.
A closed journal is digitally signed. You can view the journal signature, together with the journal data that was used
to generate it, on the Signature details tab of the Period grand total journal page in Headquarters.
Archive
An archive is an XML file that can be exported from a Period grand total journal that has been closed. It includes
the totals for the closed period, and also includes detailed data about sales transactions and events. The exported
file is digitally signed, and the signature is contained in a separate file.
The archive format is implemented by using Electronic reporting (ER).

Setting up Commerce for France


This section describes the Commerce settings that are specific to and recommended for France. For more
information, see Commerce home page.
To use the France-specific functionality, you must complete these tasks:
Set the Countr y/region field to FRA (France) in the primary address of the legal entity.
Set the ISO code field to FR (France) in the POS functionality profile of every store that is located in France.
You must also specify the following settings for France. Note that you must run appropriate distribution jobs after
you complete the setup.
Set up the legal entity
You must make the following changes on the Legal entities page. These settings are used in the archive format.
On the Bank account information FastTab, in the Routing number field, specify the VAT identifier of the
organization.
On the Statutor y repor ting FastTab, in the NAF code field, specify the Nomenclature des Activités Françaises
(NAF) code of the organization.
On the Tax registration FastTab, in the Tax registration number field, specify the Système d'identification du
répertoire des établissements (SIRET) number of the organization.
Set up VAT per French requirements
You must create sales tax codes, sales tax groups, and item sales tax groups. You must also set up sales tax
information for products and services. For more information about how to set up and use sales tax, see Sales tax
overview.
You must also specify sales tax groups and enable the Prices include sales tax option for stores that are located
in France.
Set up functionality profiles
You must enable auditing by setting the Audit option to Yes .
To enforce daily shift closing, you must make the following changes:
Set the Enforce daily shift closing option to Yes .
Set the Shift closing time and Shift closing inter val (minutes) fields.
Configure custom fields so that they can be used in receipt formats for sales receipts
You can configure the language text and custom fields that are used in the POS receipt formats. The default
company of the user who creates the receipt setup should be the same legal entity where the language text setup
is created. Alternatively, the same language texts should be created in both the user's default company and the
legal entity of the store that the setup is created for.
On the Language text page, add the following records for the labels of the custom fields for receipt layouts. Note
that the Language ID , Text ID , and Text values that are shown in the table are just examples. You can change
them to meet to your requirements. However, the Text ID values that you use must be unique, and they must be
equal to or higher than 900001.

L A N GUA GE ID T EXT ID T EXT ID

en-US 900001 Transaction type

en-US 900002 Sequential number

en-US 900003 Digital signature

en-US 900004 Reprint number

en-US 900005 Sales tax amount


L A N GUA GE ID T EXT ID T EXT ID

en-US 900006 Sales total

en-US 900007 Sales total tax

en-US 900008 Sales total including tax

en-US 900009 Build number

en-US 900010 Certification category

en-US 900011 Certificate number

en-US 900012 Line count

On the Custom fields page, add the following records for the custom fields for receipt layouts. Note that Caption
text ID values must correspond to the Text ID values that you specified on the Language text page.

NAME TYPE C A P T IO N T EXT ID

TRANSACTIONTYPE Receipt 900001

SEQUENTIALNUMBER Receipt 900002

DIGITALSIGNATURE Receipt 900003

REPRINTNUMBER Receipt 900004

SALESTAXAMOUNT Receipt 900005

SALESTOTAL Receipt 900006

SALESTOTALTAX Receipt 900007

SALESTOTALINCLUDETAX Receipt 900008

BUILDNUMBER Receipt 900009

CERTIFICATIONCATEGORY Receipt 900010

CERTIFICATENUMBER Receipt 900011

LINECOUNT Receipt 900012

Configure receipt formats


For every required receipt format, change the value of the Print behavior field to Always print .
In the Receipt format designer, add the following custom fields to the appropriate receipt sections. Note that field
names correspond to the language texts that you defined in the previous section.
Header : Add the following field:
Transaction type – This field identifies the type of receipt.
Lines: We recommend that you add the following standard fields:
Unit price with tax
Total price with tax
Tax ID
Footer : Add the following fields:
Sales total – This field prints the receipt's total cash sale amount. The amount excludes tax.
Prepayments and gift card operations are excluded.
Sales total tax – This field prints the receipt's total tax amount for cash sales. Prepayments and gift card
operations are excluded.
Sales total including tax – This field prints the receipt's total cash sale amount. The amount includes
tax. Prepayments and gift card operations are excluded.
Tax ID – This standard field enables a sales tax summary to be printed per sales tax code. The field must
be added to a new line.
Sales tax amount – This field prints the receipt's tax amount for cash sales per sales tax code.
Prepayments and gift card operations are excluded. The field must be added to the same line as the Tax
ID field.
Sequential number – This field prints the sequential number of a signed sales transaction.
Digital signature – This field prints the extract from the digital signature.
Reprint number – This field prints the number of a receipt copy.
Build number – This field prints the POS build number.
Cer tification categor y – This field prints the category of the certificate of compliance that an
authorized body issued per the NF 525 certification requirements.
Cer tificate number – This field prints the number of the certificate of compliance that an authorized
body issued per the NF 525 certification requirements.
Line count – This field prints the number of printed item lines on a receipt.
Text – Add a text field, and specify the VAT identifier of the organization.
Text – Add a text field, and specify the NAF code of the organization.
Text – Add a text field, and specify the SIRET number of the organization.
Store name – This standard field prints the name of the store.
Store address – This standard field prints the address of the store.
For more information about how to work with receipt formats, see Set up and design receipt formats.
Configure the digital signature parameters for Headquarters
To digitally sign Period grand total journals and archives, you must set up digital signature parameters. The signing
is done by using a digital certificate that is stored in Microsoft Azure Key Vault storage. The following steps must
be completed before you can use a certificate that is stored in Key Vault storage:
The Key Vault storage must be created. We recommend that you deploy the storage in the same geographical
region as the Commerce Scale Unit.
The certificate must be uploaded to the Key Vault storage.
The Application Object Server (AOS) application must be authorized to read secrets from the Key Vault storage.
For more information about how to work with Key Vault, see Get started with Azure Key Vault.
Then, on the Key Vault parameters page, you must specify the parameters for accessing the Key Vault storage:
Name and Description – The name and description of the Key Vault storage.
Key Vault URL – The URL of the Key Vault storage.
Key Vault client – An interactive client ID of the Azure Active Directory (Azure AD) application that is
associated with the Key Vault storage for authentication purposes. This client should have access to read secrets
from the storage.
Key Vault secret key – A secret key that is associated with the Azure AD application that is used for
authentication in the Key Vault storage.
Name , Description , and Secret reference – The name, description, and secret reference of the certificate.
Finally, on the Commerce parameters page, you must specify the parameters for digital signatures:
Cer tificate – Select the certificate that you configured in the previous step.
Hash function – Specify one of the cryptographic hash algorithms that are supported by Microsoft .NET, such
as SHA1 .
Encoding – Specify the encoding of the signed data, such as UTF-8 .
Configure the archive export format
You can download the ER configuration for the archive from Microsoft Dynamics Lifecycle Services (LCS). For more
information, see Import electronic reporting configurations. You must download the following versions, or later
versions, of the configurations:
Retail channel data.version.2 data model
Archiving DMM.version.2.1 data model mapping
Retail data archive FR .version.2.1 format
After you import the configurations, on the Commerce parameters page, on the Electronic documents tab, in
the Retail data archive expor t format field, select the Retail data archive FR .version.2.1 format.
Renitialize Commerce components

NOTE
You only need to complete the steps of this section if you are updating an existing evironment.

To enable audit events, you must reinitialize the Commerce Extensible enumerations. To enable transmitting
France-specific data from POS to HQ, you must reinitialize the Commerce Scheduler.
On the General FastTab of the Commerce parameters page, click Initialize . For more information, see Initialize
seed data in new Retail environments
There is an option to separately configure the scheduler. Click Commerce scheduler > Initialize commerce
scheduler . On the Initialize Commerce scheduler page, click OK .
Configure channel components
To enable France-specific functionality, you must configure extensions for channel components. For more
information, see the deployment guidelines.
Deployment guidelines for cash registers for France
2/13/2020 • 19 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic is a deployment guide that shows how to enable the Dynamics 365 Commerce localization for France.
The localization consists of several extensions of components. For example, the extensions let you print custom
fields on receipts, register additional audit events, sales transactions, and payment transactions in Point of Sale
(POS), digitally sign sales transactions, and print X and Z reports in local formats. For more information about the
localization for France, see Cash register functionality for France.
This localization is part of the Retail software development kit (SDK). For information about how to install and use
the SDK, see the Retail software development kit (SDK) architecture.
This localization consists of extensions for the Commerce runtime (CRT), Retail Server, and POS. To run this sample,
you must modify and build the CRT, Retail Server, and POS projects. We recommend that you use an unmodified
Retail SDK to make the changes that are described in this topic. We also recommend that you use a source control
system, such as Microsoft Visual Studio Online (VSO), where no files have been changed yet.

NOTE
In Commerce 10.0.8 and above, Retail Server is known as Commerce Scale Unit. Because this topic applies to multiple
previous versions of the app, Retail Server is used throughout the topic.

Storing a certificate for digital signing in Azure Key Vault


The digital signature extension uses a certificate that is installed in the local certificate storage of the machine
where Retail Server is deployed. The thumbprint of the certificate must be specified in the configuration file (see
the SequentialSignatureRegister component section later in this topic). Depending on the implementation topology,
the certificate might have to be stored in Microsoft Azure Key Vault storage. The localization for France contains a
code sample that shows how to override the signing flow and sign sales transactions by using a certificate that is
stored in Azure Key Vault storage.
Prerequisites
The following steps must be completed before you can use a certificate that is stored in Azure Key Vault storage:
The Azure Key Vault storage must be created. We recommend that you deploy the storage in the same
geographical region as the Retail Server.
The certificate must be uploaded to the storage.
The Retail Server application must be authorized to read secrets from the storage.
For more information about how to work with Azure Key Vault, see Get started with Azure Key Vault.
Using the sample
The DigitalSignatureKeyVaultSample project contains sample code that uses a certificate that is stored in Azure
Key Vault storage. To use the sample in a production environment, you must implement logic so that the following
parameters can be specified in the HashAndSignData method of the
Cer tificateSignatureSer viceRequestHandler class:
Azure Key Vault URL – The URL of the Azure Key Vault storage.

settings.Add(WellKnownKeyVaultSettings.KeyVaultUrl, "Set your Azure Key Vault URL here");

Client ID – An interactive client ID of the Azure Active Directory (Azure AD) application that is associated
with the Azure Key Vault storage for authentication purposes. This client should have access to read secrets
from the Azure Key Vault storage.

settings.Add(WellKnownKeyVaultSettings.KeyVaultInteractiveClientId, "Set the client ID here");

Client secret – A secret key that is associated with the Azure AD application that is used for authentication
in the Azure Key Vault storage.

// Secret key value should be encrypted and stored in a safe place.


settings.Add(WellKnownKeyVaultSettings.KeyVaultClientSecretKey, "Set the secret key here");

Secret reference – A secret reference to the certificate.

SecretCertificate secretCertificate = settingsHelper.SecretProvider.GetSecret("vault:///{Specify the


secret reference}") as SecretCertificate;

To override the signing flow, follow these steps.


1. Build the DigitalSignatureKeyVaultSample project, and copy the
Contoso.Commerce.Runtime.DigitalSignatureKeyVaultSample.dll assembly to the bin\ext Retail
Server folder.
2. Update the commerceRuntime.ext.config file by adding the following line to the composition section.

<add source="assembly" value="Contoso.Commerce.Runtime.DataSignatureKeyVaultSample" />

NOTE
The thumbprint of the certificate that is used for digital signing should be specified in the configuration file of the
SequentialSignatureRegister assembly, even if the certificate is stored in Azure Key Vault storage. For more information, see
the SequentialSignatureRegister component section later in this topic.

Specifying application attributes that will be printed on receipts


You can use custom fields to print the following application attributes on receipts:
Build number – The software version of the POS application. By default, the value should equal the POS
build number that Microsoft assigned to the POS application.
Cer tificate categor y and Cer tificate number – The category and number of the certificate of
compliance that an accredited body issues for the application. By default, the values equal the category and
the number of the certificate that is granted to Microsoft:
Microsoft Dynamics 365 for Commerce:
Cer tificate categor y: C
Cer tificate number : 18/0202
Microsoft Dynamics 365 for Commerce:
Cer tificate categor y: B
Cer tificate number : 18/0203

NOTE
By default, the certificate category and number that are assigned are printed. If you're implementing Commerce, you
must override the certificate category and number.

If you customize the POS application, and your customizations affect the compliance of the application, you might
have to request a new certificate of compliance from an accredited body. In this case, you must override the build
number, and the certificate category and number. Otherwise, the default values for the certificate category and
number will be printed, but you must still specify the POS build number that Microsoft assigned to the POS
application.
Overriding the build number
The software version/build number and publisher are specified in
RetailSDK\BuildTools\Customization.settings .

<CustomVersion Condition="'$(CustomVersion)' == ''">1.0.0.1</CustomVersion>


<CustomName Condition="'$(CustomName)' == ''">Contoso Retail Customization</CustomName>
<CustomDescription Condition="'$(CustomDescription)' == ''">Contoso Retail Customization</CustomDescription>
<CustomPublisher Condition="'$(CustomPublisher)' == ''">CN=Contoso Ltd.</CustomPublisher>
<CustomPublisherDisplayName Condition="'$(CustomPublisherDisplayName)' == ''">Contoso Ltd.
</CustomPublisherDisplayName>
<CustomCopyright Condition="'$(CustomCopyright)' == ''">Copyright © 2016</CustomCopyright>

Overriding the certificate category and number


The certificate category and number are specified in
RetailSDK\SampleExtensions\CommerceRuntime\Extensions.ReceiptsFrance\GetSalesTransactionCust
omReceiptFieldSer vice .

/// <summary>
/// Certification category.
/// </summary>
private const string CertificationCategory = "C";

/// <summary>
/// Certificate number.
/// </summary>
private const string CertificateNumber = "18/0202";

NOTE
You must also override the certificate category and number if you're implementing Commerce. In this case, use the certificate
category and number that are provided in the Specifying application attributes that will be printed on receipts section earlier
in this topic.

Development environment
Follow these steps to set up a development environment so that you can test and extend the localization
functionality.
CRT extension components
The CRT extension components are included in the CRT samples. To complete the following procedures, open the
CRT solution, CommerceRuntimeSamples.sln , under RetailSdk\SampleExtensions\CommerceRuntime .
CommonFrance component
1. Find the Runtime.Extensions.CommonFrance project, and build it.
2. In the Extensions.CommonFrance\bin\Debug folder, find the
Contoso.Commerce.Runtime.CommonFrance.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the Microsoft Internet Information
Services (IIS) Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.CommonFrance" />

ReceiptsFrance component
1. Find the Runtime.Extensions.ReceiptsFrance project, and build it.
2. In the Extensions.ReceiptsFrance\bin\Debug folder, find the
Contoso.Commerce.Runtime.ReceiptsFrance.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.ReceiptsFrance" />

SalesPaymentTransExt component
1. Find the Runtime.Extensions.SalesPaymentTransExt project, and build it.
2. In the Extensions.SalesPaymentTransExt\bin\Debug folder, find the
Contoso.Commerce.Runtime.SalesPaymentTransExt.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.SalesPaymentTransExt" />

SalesPaymentTransExtFrance component
1. Find the Runtime.Extensions.SalesPaymentTransExtFrance project, and build it.
2. In the Extensions.SalesPaymentTransExtFrance\bin\Debug folder, find the
Contoso.Commerce.Runtime.SalesPaymentTransExtFrance.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.SalesPaymentTransExtFrance" />

SequentialSignatureFrance component
1. Find the Runtime.Extensions.SequentialSignatureFrance project, and build it.
2. In the Extensions.SequentialSignatureFrance\bin\Debug folder, find the
Contoso.Commerce.Runtime.SequentialSignatureFrance.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.
<add source="assembly" value="Contoso.Commerce.Runtime.SequentialSignatureFrance" />

SequentialSignatureRegister component
1. Find the Runtime.Extensions.SequentialSignatureRegister project.
2. Modify the App.config file by specifying the thumbprint, store location, and store name for the certificate
that should be used to sign sales transactions. The cer tificateThumbprint property is the only mandatory
property. The value must be a string that is 40 characters long in upper case and that doesn't include any
delimiters. For more information, see How to retrieve the thumbprint of a certificate.

<?xml version="1.0" encoding="utf-8"?>


<configuration>
<configSections>
<section name="SequentialSignatureRegister"
type="Contoso.Commerce.Runtime.SequentialSignatureRegister.Configuration.SequentialSignatureRegisterConf
igSection, Contoso.Commerce.Runtime.SequentialSignatureRegister"/>
</configSections>
<SequentialSignatureRegister certificateThumbprint="insert key certificateThumbprint here"
certificateStoreLocation="LocalMachine" certificateStoreName="My"/>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
</startup>
</configuration>

3. Build the project.


4. In the Extensions.SequentialSignatureRegister\bin\Debug folder, find the following files:
The Contoso.Commerce.Runtime.SequentialSignatureRegister.dll assembly file
The Contoso.Commerce.Runtime.SequentialSignatureRegister.dll.config configuration file
5. Copy the files to the CRT extension folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
6. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
7. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.SequentialSignatureRegister" />

SequentialSignatureRegister.Contracts component
1. Find the Runtime.Extensions.SequentialSignatureRegister.Contracts project, and build it.
2. In the Extensions.SequentialSignatureRegister.Contracts\bin\Debug folder, find the
Contoso.Commerce.Runtime.SequentialSignatureRegister.Contracts.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
XZReportsFrance component
1. Find the Runtime.Extensions.XZRepor tsFrance project, and build it.
2. In the Extensions.XZRepor tsFrance\bin\Debug folder, find the
Contoso.Commerce.Runtime.XZRepor tsFrance.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.XZReportsFrance" />

RestrictingShiftDuration component
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
1. Find the Runtime.Extensions.RestrictingShiftDuration project, and build it.
2. In the Extensions.RestrictingShiftDuration\bin\Debug folder, find the
Contoso.Commerce.Runtime.RestrictingShiftDuration.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.RestrictingShiftDuration" />

Retail Server extension components


SalesTransactionSignature Retail Server sample component
1. In the
RetailSDK\SampleExtensions\RetailSer ver\RetailSer ver.Extensions.SalesTransactionSignatureSa
mple folder, find the RetailSer ver.Extensions.SalesTransactionSignatureSample project, and build it.
2. In the RetailSer ver\Extensions.SalesTransactionSignatureSample\bin\Debug folder, find the
Contoso.RetailSer ver.SalesTransactionSignatureSample.dll assembly file.
3. Copy the assembly file to the \bin\ext folder under the IIS Retail Server site location.
4. Find the configuration file for Retail Server. The file is named web.config , and it's in the root folder under
the IIS Retail Server site location.
5. Register the Retail Server extensions in the extensionComposition section of the configuration file.

<add source="assembly" value="Contoso.RetailServer.SalesTransactionSignatureSample" />

Proxy extension component


You must complete the following procedure to enable the extensions in offline mode for Modern POS.
SalesTransactionSignature Retail proxy sample component
1. In the
RetailSDK\SampleExtensions\RetailProxy\RetailProxy.Extensions.SalesTransactionSignatureSam
ple folder, find the RetailSer ver.Extensions.SalesTransactionSignatureSample project, and build it.
2. In the RetailProxy\RetailProxy.Extensions.SalesTransactionSignatureSample\bin\Debug folder, find
the Contoso.Commerce.RetailProxy.SalesTransactionSignatureSample assembly file.
3. Copy the assembly files to the \ext folder under the local CRT client broker location.
4. Register the proxy change in the extensions configuration file. The file is named
RetailProxy.MPOSOffline.ext.config , and it's under the local CRT client broker location.

<add source="assembly" value="Contoso.Commerce.RetailProxy.SalesTransactionSignatureSample" />

Modern POS extension components


1. Open the solution at RetailSdk\POS\ModernPOS.sln , and make sure that it can be compiled without
errors. Additionally, make sure that you can run Modern POS from Microsoft Visual Studio by using the Run
command.

NOTE
Modern POS must not be customized. You must enable User Account Control (UAC), and you must uninstall
previously installed instances of Modern POS as required.

2. Include the following existing source code folders in the Pos.Extensions project.
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
SalesTransactionSignatureSample
SequentialSignature
AuditEventSignatureSample
RestrictingShiftDuration
SalesTransBuildNumberSample
NOTE
To view all files in the project folder, not just the files that are included in the project, select the Show All Files
button in Solution Explorer. If this button isn't available, make sure that you selected the project. The icons of files and
folders that aren't currently part of the project have a dotted outline. Right-click the folder to include in the project,
and then select Include in Project .

3. Enable the extensions to be compiled by removing the following folders from the exclude list in
tsconfig.json :
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
SalesTransactionSignatureSample
SequentialSignature
AuditEventSignatureSample
RestrictingShiftDuration
SalesTransBuildNumberSample
4. Enable the extensions to be loaded by adding the following lines in extensions.json :
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later

{
"baseUrl": "SalesTransactionSignatureSample"
},
{
"baseUrl": "SequentialSignature"
},
{
"baseUrl": "AuditEventSignatureSample"
},
{
"baseUrl": "RestrictingShiftDuration"
},
{
"baseUrl": "SalesTransBuildNumberSample"
}

NOTE
For more information, and for samples that show how to include source code folders and enable extensions to be
loaded, see the instructions in the readme.md file in the Pos.Extensions project.

5. Rebuild the solution.


6. Run Modern POS in the debugger, and test the functionality.
Cloud POS extension components
1. Open the solution at RetailSdk\POS\CloudPOS.sln , and make sure that it can be compiled without errors.
2. Include the following existing source code folders in the Pos.Extensions project:
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
SalesTransactionSignatureSample
SequentialSignature
AuditEventSignatureSample
RestrictingShiftDuration
SalesTransBuildNumberSample

NOTE
To view all files in the project folder, not just the files that are included in the project, select the Show All Files
button in Solution Explorer. If this button isn't available, make sure that you selected the project. The icons of files and
folders that aren't currently part of the project have a dotted outline. Right-click the folder to include in the project,
and then select Include in Project .

3. Enable the extensions to be compiled by removing the following folders from the exclude list in
tsconfig.json :
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
SalesTransactionSignatureSample
SequentialSignature
AuditEventSignatureSample
RestrictingShiftDuration
SalesTransBuildNumberSample
4. Enable the extensions to be loaded by adding the following lines in extensions.json :
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later

{
"baseUrl": "SalesTransactionSignatureSample"
},
{
"baseUrl": "SequentialSignature"
},
{
"baseUrl": "AuditEventSignatureSample"
},
{
"baseUrl": "RestrictingShiftDuration"
},
{
"baseUrl": "SalesTransBuildNumberSample"
}
NOTE
For more information, and for samples that show how to include source code folders and enable extensions to be
loaded, see the instructions in the readme.md file in the Pos.Extensions project.

5. Rebuild the solution.


6. Run the solution by using the Run command and following the steps in the Retail SDK handbook.
7. Test the functionality.
Set up required parameters in Headquarters
For more information, see Cash register functionality for France.

Production environment
Follow these steps to create deployable packages that contain Commerce components, and to apply those
packages in a production environment.
1. Complete the steps in the Cloud POS extension components or Modern POS extension components section
earlier in this topic.
2. Make the following changes in the package configuration files under the RetailSdk\Assets folder:
a. In the commerceruntime.ext.config and CommerceRuntime.MPOSOffline.Ext.config
configuration files, add the following lines to the composition section:
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later

<add source="assembly" value="Contoso.Commerce.Runtime.CommonFrance" />


<add source="assembly" value="Contoso.Commerce.Runtime.ReceiptsFrance" />
<add source="assembly" value="Contoso.Commerce.Runtime.RestrictingShiftDuration" />
<add source="assembly" value="Contoso.Commerce.Runtime.SalesPaymentTransExt" />
<add source="assembly" value="Contoso.Commerce.Runtime.SalesPaymentTransExtFrance" />
<add source="assembly" value="Contoso.Commerce.Runtime.SequentialSignatureFrance" />
<add source="assembly" value="Contoso.Commerce.Runtime.SequentialSignatureRegister" />
<add source="assembly" value="Contoso.Commerce.Runtime.XZReportsFrance" />

To use a certificate that is stored in Azure Key Vault storage for digital signing, add the following line.

NOTE
Before you add this line, complete the steps in the Storing a certificate for digital signing in Azure Key Vault
section earlier in this topic.

<add source="assembly" value="Contoso.Commerce.Runtime.DataSignatureKeyVaultSample" />

b. In the RetailProxy.MPOSOffline.ext.config configuration file, add the following lines to the


composition section.

<add source="assembly" value="Contoso.Commerce.RetailProxy.SalesTransactionSignatureSample" />


3. Make the following changes in the Customization.settings package customization configuration file:
a. Add the following lines to the ItemGroup section to include the Commerce proxy extension in the
deployable packages.

<ISV_RetailProxy_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.RetailProxy.SalesTransactionSignatureSample.dll"
/>

b. Add the following lines to the ItemGroup section to include the CRT extensions in the deployable
packages:
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later

<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.CommonFrance.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.ReceiptsFrance.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.RestrictingShiftDuration.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SalesPaymentTransExt.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SalesPaymentTransExtFrance.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SequentialSignatureFrance.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SequentialSignatureRegister.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SequentialSignatureRegister.dll.config" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SequentialSignatureRegister.Contracts.dll"
/>
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.XZReportsFrance.dll" />

To use a certificate that is stored in Azure Key Vault storage for digital signing, add the following line.

NOTE
Before you add this line, complete the steps in the Storing a certificate for digital signing in Azure Key Vault
section, earlier in this topic.

<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.DataSignatureKeyVaultSample.dll" />

c. Add the following lines to the ItemGroup section to include the Retail Server extension in the
deployable packages.

<ISV_RetailServer_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.RetailServer.SalesTransactionSignatureSample.dll" />

4. Update the Retail Server configuration file. In RetailSDK\Packages\RetailSer ver\Code\web.config , add


the following lines to the extensionComposition section.
<add source="assembly" value="Contoso.RetailServer.SalesTransactionSignatureSample" />

5. Modify the certificate's configuration file by specifying the thumbprint, store location, and store name for the
certificate that should be used to sign sales transactions. Then copy the configuration file to the References
folder. The file is named Contoso.Commerce.Runtime.SequentialSignatureRegister.dll.config , and it's
under Extensions.SequentialSignatureRegister\bin\Debug .
6. Override the build number and the category and number of the certificate of compliance, as required. For
more information, see the instructions in the Specifying application attributes that will be printed on receipts
section earlier in this topic.
7. Start the MSBuild Command Prompt for Visual Studio utility, and run msbuild under the Retail SDK folder
to create deployable packages.
8. Apply the packages via Microsoft Dynamics Lifecycle Services (LCS) or manually. For more information, see
Create deployable packages.
Enable the digital signature in offline mode for Modern POS
To enable the digital signature in offline mode for Modern POS, you must follow these steps after you activate
Modern POS on a new device.
1. Sign in to POS.
2. On the Database connection status page, make sure that the offline database is fully synchronized. When the
value of the Pending downloads field is 0 (zero), the database is fully synchronized.
3. Sign out of POS.
4. Wait a while for the offline database to be fully synchronized.
5. Sign in to POS.
6. On the Database connection status page, make sure that the offline database is fully synchronized. When the
value of the Pending transactions in offline database field is 0 (zero), the database is fully synchronized.
7. Restart Modern POS.
Goods and Services Tax (GST) integration for cash
registers for India
2/1/2020 • 12 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides a walkthrough of the features that are related to Goods and Services Tax (GST). It also highlights
the effect of GST on various types of commerce business transactions, and shows the accounting and posting of
transactions where the receipt is printed at the point of sale (POS).

Prerequisites
Set up GST for India. For more information, see India Goods and Services Tax (GST).
Configure Commerce channel components. To enable India-specific functionality, you must configure extensions
for channel components. For more information, see the deployment guidelines.

India tax entities for Commerce


The following table shows the navigation paths for the India tax entities in Commerce.

IN DIA TA X EN T IT IES N AVIGAT IO N PAT H IN C O M M ERC E

Business verticals Retail and Commerce > Channel setup > Sales taxes >
Business verticals

Enterprise tax registration numbers Retail and Commerce > Channel setup > Sales taxes >
Enterprise tax registration numbers

GST reference number sequence group Retail and Commerce > Channel setup > Sales taxes > GST
reference number sequence group

HSN codes Retail and Commerce > Channel setup > Sales taxes > HSN
codes

Service accounting codes Retail and Commerce > Channel setup > Sales taxes > Service
accounting codes

Maintain setoff hierarchy profiles Retail and Commerce > Channel setup > Sales taxes >
Maintain setoff hierarchy profiles

VAT schedules Retail and Commerce > Channel setup > Sales taxes > VAT
schedules

Tax setup Retail and Commerce > Channel setup > Sales taxes > Tax
configuration > Tax setup
NOTE
The navigation paths for the India tax entities in Commerce differ from the navigations paths in Finance. For information
about the navigation paths in Finance, see India Goods and Services Tax (GST).

Validate tax information for the store


The tax information for the store comes from the selected warehouse. This warehouse is defined in the warehouse
master. The configured tax information from the store is printed on the POS receipt. It's also updated on the sales
order at the headquarters for the financial postings.
Follow these steps to view the tax information for a store.
1. Go to Retail and Commerce > Channels > Stores > All stores .
2. Select a store.
3. Select the Tax information FastTab.

Configure language texts and custom fields


You can configure the language text and custom fields that are used in the POS receipt formats. The default
company of the user who creates the receipt setup should be the same as the legal entity where the language text
setup is created. Alternatively, the same language texts should be created in both the user's default company and
the legal entity of the store that the setup is created for.
Set up the POS language text
1. Go to Retail and Commerce > Channel setup > POS setup > POS profile > Language text .
2. On the POS tab, on the POS language text FastTab, select the language ID for the text. The language should
match the user's preferred language.
3. In the Text ID field, enter a unique ID that is equal to or more than 900001 .
4. In the Text field, enter the language text.

Create custom fields


When you create custom fields, the value of the Caption text ID field must match the value that you entered for
the Text ID field on the Language text page.
1. Go to Retail and Commerce > Channel setup > POS setup > POS profile > Custom fields .
2. Enter a name for the field.
3. Select the field type.
4. In the Caption text ID field, enter the Text ID value for one of the language texts on the Language text page.

Create the receipt format


You can use Receipt format designer to add custom fields to the appropriate receipt sections. For more information,
see Set up and design receipt formats.
1. Go to Retail and Commerce > Channel setup > POS setup > POS profile > Receipt formats .
2. Select a receipt format for the Receipt receipt type, and make the required changes.

Update receipt profiles


After you create a receipt format, you can assign that format to a receipt profile.
Follow these steps to update a receipt profile.
1. Go to Retail and Commerce > Setup > POS > Receipt profile .
2. Select the receipt profile to update.
3. Select Edit .
4. For each receipt type in the list, select a receipt format.

Update the POS invoice number


You can reconcile the POS receipt number with the invoice number for customer transactions. If you set the
Update POS invoice number option to Yes on the Posting tab of the Commerce parameters page, the POS
receipt number is entered in the Transaction ID field for corresponding sales orders.
You can set the Update POS invoice number option to Yes only if the existing receipt number format includes
both the store number and the terminal number. The following illustration shows a POS functionality profile where
the receipt numbering includes the store number and the terminal number.

Run a distribution schedule


To synchronize Tax Engine (GTE) data from headquarter to the POS database, you must add a job to the
Distribution schedule page.
Follow these steps to verify that the job exists and to run the job.
1. Go to Retail and Commerce > Periodic > Data distribution > Distribution schedule .
2. Verify that a new job, 1180 , has been added for Generic tax engine .
3. Run all the jobs (9999 ).
Example scenarios
The following example scenarios walk you through sample transactions for India:
Scenario 1: Sell to a registered customer
Scenario 2: Sell taxable goods to a consumer
Scenario 3: Sell taxable goods to an anonymous customer where GST is price-inclusive
Scenario 4: Sell an exempted good
Scenario 5: Return the transaction that has GST
Scenario 1: Sell to a registered customer
Sales to a registered customer are known as business-to-business (B2B) sales. If the store location and the place of
supply (that is, the customer address) are in the same state, the transaction is an intrastate sale, and Central GST
(CGST) and State GST (SGST) must be paid. If the store location and the place of supply are in different states, the
transaction is an interstate sale, and Integrated GST (IGST) must be paid.

NOTE
For these transactions, the fields for the customer address and the registration number are required.

1. Sign in to the POS.


2. Enter the items, and then select Enter .

3. Validate the GST calculations. Consider the rate that is defined in the tax setup.

IT EM / SERVIC E UN IT P RIC E TA X RAT ES C GST SGST

M0001 10,000.00 CGST 12%, SGST 1,200.00 1,100.00


11%

M0002 5,000.00 CGST 10%, SGST 500.00 500.00


10%
IT EM / SERVIC E UN IT P RIC E TA X RAT ES C GST SGST

S0001 1,200.00 CGST 11%, SGST 5% 132.00 60.00

16,200.00 1,832.00 1,660.00

Total amount 19,692.00

4. Select Orders > Create customer order .


5. Select Add customer , and select the customer account.
6. Select Pick up all .
7. Select the store and the pick-up date.
8. Select OK .

NOTE
In this example, the state of the store location is Delhi, and the state of the customer address is also Delhi. Because
the state is the same, intrastate GST is calculated.

9. Select Exact to process the deposit payment.


10. Validate the receipt:
a. Select Show journal .
b. Select the transactions.
c. Select Receipt .
11. Validate the sales order and tax document in Headquarters:
a. Go to Retail and Commerce > Customers > All sales orders .
b. Select the sales order.
c. On the Action Pane, on the Sell tab, in the Tax group, select Tax document .

12. Recall and process the customer order:


a. Sign in to the POS.
b. Select Recall order .
c. Search for and select the order.
d. Select Picking and packing > Pickup
e. Select Select all and then Pickup .
13. Select Exact to process the payment.
14. Validate the receipt.
15. Validate the voucher transactions:
a. Go to Retail and Commerce > Customers > All sales orders .
b. Select the sales order.
c. On the Action Pane, on the Invoice tab, select Invoice journals .
d. Select Voucher .

L EDGER A C C O UN T N A M E DEB IT A M O UN T ( RS. ) C REDIT A M O UN T ( RS. )

Customer account 19,692.00

CGST payable account 1,832.00

SGST payable account 1,660.00

Sales account 16,200.00

e. Select Tax document .


f. Verify that the receipt number is updated as the transaction ID.
Scenario 2: Sell taxable goods to a consumer
When you sell to unregistered customers, the sales are referred to as business-to-consumer (B2C) sales. Tax is
calculated in the same manner for B2B and B2C sales.
1. Sign in to the POS.
2. Enter an item, and then select Enter .
3. Select Add customer , and select the customer account.
NOTE
In this example, the state of the store location is Delhi, but the state of the customer address is Bengaluru
(Bangalore). Because the states differ, interstate GST is computed.

4. Select Exact to process the payment.


5. Validate the receipt:
a. Select Show journal .
b. Select the transactions.
c. Select Receipt .

6. Validate the sales invoice in Headquarters:


a. Go to Retail and Commerce > Retail and Commerce IT > Data distribution .
b. Run job P-0001 (Channel transactions ).
c. Close the page.
7. Post the statement:
a. Go to Retail and Commerce > Channels > Stores > Open statements .
b. Create a statement.
c. Select Calculate statement and then Post statement .
8. Validate the voucher transactions:
a. Go to Retail and Commerce > Customers > All sales orders .
b. Select the sales invoice.
c. Select Sales order lines > Tax information .
d. On the appropriate tabs, verify the location (store address) and the customer address.

e. Select OK .
f. On the Action Pane, on the Invoice tab, select Invoice journals .
g. Select Voucher .

L EDGER A C C O UN T N A M E DEB IT A M O UN T ( RS. ) C REDIT A M O UN T ( RS. )

Customer account 12,500.00

IGST payable account 2,500.00

Sales account 10,000.00

h. Select Tax document .


i. Verify that the receipt number is updated as the transaction ID.
Scenario 3: Sell taxable goods to an anonymous customer where GST is price -inclusive
1. Define price-inclusiveness at the store:
a. Go to Retail and Commerce > Channels > Stores > All stores .
b. Select a store.
c. Set the Prices include sales tax option to Yes .
2. Run the distribution schedule:
a. Go to Retail and Commerce > Retail and Commerce IT > Data distribution .
b. Run the job to update the changes in the POS database.
c. Close the page.
3. Enter a transaction:
a. Sign in to the POS.
b. Enter an item, and then select Enter . For this example, use an item that has the following values:
Taxable value: 10,000.00
CGST: 12 percent
SGST: 11 percent

4. Select Exact to process the payment.


5. Validate the receipt.
6. Validate the sales invoice in Headquarters:
a. Go to Retail and Commerce > Retail and Commerce IT > Data distribution .
b. Run job P-0001 (Channel transactions ).
c. Close the page.
7. Post the statement:
a. Go to Retail and Commerce > Channels > Stores > Open statements .
b. Create a statement.
c. Select Calculate statement and then Post statement .
8. Validate the voucher transactions:
a. Go to Retail and Commerce > Customers > All sales orders .
b. Select the sales invoice.
c. On the Action Pane, on the Invoice tab, select Invoice journals .
d. Select Voucher .

L EDGER A C C O UN T N A M E DEB IT A M O UN T ( RS. ) C REDIT A M O UN T ( RS. )

Customer account 10,000.00

CGST payable account 975.61


L EDGER A C C O UN T N A M E DEB IT A M O UN T ( RS. ) C REDIT A M O UN T ( RS. )

SGST payable account 894.31

Sales account 8,130.08

e. Select Tax document .


f. Verify that the transaction ID is updated according to the GST number sequence that is defined in the
GST reference number sequence group.

Scenario 4: Sell an exempted good


1. Sign in to the POS.
2. Enter an exempted item.

3. Select Exact to process the payment.


4. Validate the receipt.

5. Validate the sales invoice in Headquarters:


a. Go to Retail and Commerce > Retail and Commerce IT > Data distribution .
b. Run job P-0001 (Channel transactions ).
c. Close the page.
6. Post the statement:
a. Go to Retail and Commerce > Channels > Stores > Open statements .
b. Create a statement.
c. Select Calculate statement and then Post statement .
7. Validate the voucher transactions:
a. Go to Retail and Commerce > Customers > All sales orders .
b. Select the sales invoice.
c. On the Action Pane, on the Invoice tab, select Invoice journals .
d. Select Voucher .

L EDGER A C C O UN T N A M E DEB IT A M O UN T ( RS. ) C REDIT A M O UN T ( RS. )

Customer account 12,000.00

Sales - Finished Goods 12,000.00

e. Select Tax document .


f. Verify that the Exempt option is set to Yes .
Scenario 5: Return the transaction that has GST:
1. Sign in to the POS.
2. Select Show journal .
3. Select the transaction, and then select Return .
4. Select Select all and then Return .
5. Verify that the GST calculation is done correctly, based on the selected original transactions that must be
returned.

6. Select Exact .
7. Validate the receipt.
8. Validate the sales invoice in Headquarters:
a. Go to Retail and Commerce > Retail and Commerce IT > Data distribution .
b. Run job P-0001 (Channel transactions ).
c. Close the page.
9. Post the statement:
a. Go to Retail and Commerce > Channels > Stores > Open statements .
b. Create a statement.
c. Select Calculate statement and then Post statement .
10. Validate the voucher transactions:
a. Go to Retail and Commerce > Customers > All sales orders .
b. Select the sales invoice.
c. On the Action Pane, on the Invoice tab, select Invoice journals .
d. Select Voucher .

L EDGER A C C O UN T N A M E DEB IT A M O UN T ( RS. ) C REDIT A M O UN T ( RS. )

Customer account 12,500.00

IGST payable account 2,500.00

Sales account 10,000.00

e. Select Tax document .


f. Verify that the return receipt number is updated as the transaction ID.
Update credit notes with references to original invoices
NOTE
This functionality is available with Application update 10.0.3 and later.

In order to be correctly reflected in the GSTR reporting, sales credit notes should contain references to original
sales invoices. When store transactions are posted through statements, it is not always possible to establish this
reference for return transactions. You can use the Update credit notes with references to original invoices
procedure to update the Original GST transaction ID link in credit notes so that the link correctly references the
related original sales invoice. The procedure is located on the Retail and Commerce > Retail and Commerce
IT > POS posting menu.
It is also recommended that you enable the Do not aggregate returns parameter on the Commerce
parameters page. In this case, each return transaction will be posted as a separate sale order when posting a
statement. This option is only available if the transaction aggregation is enabled.

Manage customer registration numbers from POS


NOTE
This functionality is available in Application update 10.0.6 and later.

You can specify customer registration numbers, such as GSTIN, VAT number (TIN), and PAN number, when creating
or editing a customer master record and a customer address record in POS. The customer registration numbers
may be printed in receipts or used for searching customers in POS.
Configure printing customer registration numbers in receipts
To enable printing customer registration numbers in receipts, follow the procedure outlined in the Configure
language texts and custom fields section. Add language texts and custom fields with the following names:
TAXREGISTRATIONGST_IN for the GST registration number;
TAXREGISTRATIONTIN_IN for the VAT registration number;
TAXREGISTRATIONPAN_IN for the PAN number.
Add the custom fields to receipt profiles.
Enable searching customers by tax registration numbers in POS
To enable searching customers by tax registration numbers in POS, on the POS search criteria tab of the
Commerce parameters page, add a record on the Customer search criteria fast-tab and select Tax
registration number in the Customer search criteria drop-down list. Select the Display as shor tcut
checkbox while keeping the Can be refined checkbox clear. Run the 1110 job on the Distribution schedules
page.
Deployment guidelines for cash registers for India
2/1/2020 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic is a deployment guide that shows how to enable the requirements for Goods and Services Tax (GST) in
the Dynamics 365 Commerce app's localization for India. For more information about the localization for India, see
Goods and Services Tax (GST) integration for cash registers for India.
This sample is part of the Retail software development kit (SDK). For information about how to install and use the
SDK, see the Retail software development kit (SDK) architecture.
This sample consists of extensions for the Commerce runtime (CRT). To run this sample, you must modify and build
the CRT projects. We recommend that use you an unmodified Retail SDK to make the changes that are described in
this topic. We also recommend that you use a source control system, such as Microsoft Visual Studio Online (VSO),
where no files have been changed yet.

NOTE
Some steps in the procedures in this topic differ, depending on the version of the app that you're using. For more
information, see What's new or changed in Dynamics 365 Retail.

Prerequisites
Make sure that the Visual C++ Redistributable Packages are present on the machine that you're running Goods and
Services Tax (GST) calculations on. For Cloud POS, and for Modern POS in online mode, this machine is Retail
Server (Retail Server is known as Commerce Scale Unit in Commerce 10.0.8 and above). For Modern POS in offline
mode, it's the Modern POS machine itself. To get the packages, see Download the Visual C++ Redistributable
Packages.

Development environment
Follow these steps to set up a development environment so that you can test and extend the sample.
The CRT extension components
The CRT extension components are included in the CRT samples. To complete the following procedures, open the
CRT solution, CommerceRuntimeSamples.sln . You can find this solution under
RetailSdk\SampleExtensions\CommerceRuntime .
Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later
1. Find the Runtime.Extensions.GenericTaxEngine project, and build it.
2. Find the following files:
In the Extensions.GenericTaxEngine\bin\Debug folder:
Contoso.Commerce.Runtime.Extensions.GenericTaxEngine.dll
In the Reference\Newtonsoft.Json\9.0.0.0 folder:
Newtonsoft.Json.dll
In the Reference\TaxEngine folder:
Microsoft.Dynamics365.Tax.Core.dll
Microsoft.Dynamics365.Tax.DataAccessor.dll
Microsoft.Dynamics365.Tax.DataAccessFramework.dll
Microsoft.Dynamics365.Tax.DataModel.dll
Microsoft.Dynamics365.Tax.Metadata.dll
Microsoft.Dynamics365.LocalizationFramework.dll
Microsoft.Dynamics365.LocalizationFrameworkCore.dll
Microsoft.Dynamics365.ElectronicReportingMapping.dll
Microsoft.Dynamics365.XppSupportLayer.dll
Find the following folders in the Reference\Z3 folder:
x86
x64
3. Copy the 11 assembly files, and both x64 and x86 folders to the CRT extensions folder:
Retail Ser ver : Copy the assemblies to the \bin\ext folder under the Microsoft Internet Information
Services (IIS) Retail server site location.
Local CRT on Modern POS: Copy the assemblies to the \ext folder under the local CRT client broker
location.
4. Find the extensions configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extensions configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.Extensions.GenericTaxEngine" />

WARNING
Do not edit the commerceruntime.config and CommerceRuntime.MPOSOffline.config files. These files aren't intended
for any customizations.

The extension components


1. Open web.config in the root folder under the IIS Retail Server site location. Note that Retail Server is known as
Commerce Scale Unit in Commerce 10.0.8 and above.
2. Register the extensions in the extensionComposition section of the configuration file.
Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later

NOTE
This step doesn't apply to this version.

The ClientBroker extension components


1. Open RetailProxy.MPOSOffline.ext.config under the local CRT client broker location.
2. Register the Proxy extensions in the extensionComposition section of the configuration file.
Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later

NOTE
This step doesn't apply to this version.

The Modern POS extension components


Enable the Tax Registration Id extension.
Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later

NOTE
This step doesn't apply to this version.

The Cloud POS extension components


Enable the Tax Registration Id extension.
Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later

NOTE
This step doesn't apply to this version.

Set up required parameters in Headquarters


For more information, see Goods and Services Tax (GST) integration for cash registers for India.
Production environment
Follow these steps to create deployable packages that contain components, and to apply the packages in a
production environment.
1. In the commerceruntime.ext.config and CommerceRuntime.MPOSOffline.Ext.config configuration
files under the RetailSdk\Assets folder, add the following lines to the composition section.
Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later

<add source="assembly" value="Contoso.Commerce.Runtime.Extensions.GenericTaxEngine" />

2. In the RetailProxy.MPOSOffline.ext.config configuration file under the RetailSdk\Assets folder, add the
following lines to the composition section.
Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later

NOTE
This step doesn't apply to this version.

3. Update the web configuration file. In the RetailSDK\Packages\RetailSer ver\Code\web.config file, add
the following lines to the extensionComposition section.
Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later

NOTE
This step doesn't apply to this version.

4. In the Customization.settings package customization configuration file under the RetailSdk\BuildTools


folder, add the following lines to the ItemGroup section to include the CRT extensions in deployable
packages.
Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.Extensions.GenericTaxEngine.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\TaxEngine\Microsoft.Dynamics365.Tax.Core.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\TaxEngine\Microsoft.Dynamics365.Tax.Metadata.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\TaxEngine\Microsoft.Dynamics365.Tax.DataAccessor.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\TaxEngine\Microsoft.Dynamics365.Tax.DataAccessFramework.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\TaxEngine\Microsoft.Dynamics365.Tax.DataModel.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\TaxEngine\Microsoft.Dynamics365.LocalizationFramework.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\TaxEngine\Microsoft.Dynamics365.LocalizationFrameworkCore.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\TaxEngine\Microsoft.Dynamics365.ElectronicReportingMapping.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\TaxEngine\Microsoft.Dynamics365.XppSupportLayer.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Newtonsoft.Json\9.0.0.0\Newtonsoft.Json.dll" />

5. Modify the following files to include the Z3 libraries in deployable packages:


Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later
Packages\ModernPOS.Sdk\Sdk.ModernPOSSetup.csproj
Packages\ModernPOSOffline.Sdk\Sdk.ModernPOSSetupOffline.csproj
Packages\RetailServer\Sdk.RetailServerSetup.proj
Add the following lines to the ItemGroup section.

<_bin_ext_Z3_x86_File Include="..\..\References\Z3\x86\*.*" />


<_bin_ext_Z3_x64_File Include="..\..\References\Z3\x64\*.*" />

For Sdk .ModernPOSSetup.csproj and Sdk .ModernPOSSetupOffline.csproj also add the following
lines to the <Target Name="CopyPackageFiles"> section.

<Copy SourceFiles="@(_bin_ext_Z3_x86_File)"
DestinationFolder="$(OutputPath)content.folder\CustomizedFiles\ClientBroker\ext\x86"
SkipUnchangedFiles="true" />
<Copy SourceFiles="@(_bin_ext_Z3_x64_File)"
DestinationFolder="$(OutputPath)content.folder\CustomizedFiles\ClientBroker\ext\x64"
SkipUnchangedFiles="true" />

For Sdk .RetailSer verSetup.proj also add the following lines to the <Target
Name="CopyPackageFiles"> section.
<Copy SourceFiles="@(_bin_ext_Z3_x86_File)"
DestinationFolder="$(OutputPath)content.folder\RetailServer\Code\bin\ext\x86" SkipUnchangedFiles="true"
/>
<Copy SourceFiles="@(_bin_ext_Z3_x64_File)"
DestinationFolder="$(OutputPath)content.folder\RetailServer\Code\bin\ext\x64" SkipUnchangedFiles="true"
/>

6. Enable the Tax Registration Id POS extension:


Retail 7.3.1
Retail 7.3.2 and later
Retail 8.1.3 and later
Retail 10.0 and later
Retail 10.0.6 and later

NOTE
This step doesn't apply to this version.

7. Run msbuild for the whole Retail SDK to create deployable packages.
8. Apply the packages via Microsoft Dynamics Lifecycle Services (LCS) or manually. For more information, see
Create retail deployable packages.
Support for upgrade and N-1 for India
2/1/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic describes the steps needed to set up and use Phased Rollout (N-1) commerce components for India. The
upgrade procedure and the workflow for N-1 are basically the same as for a general Dynamics 365 Commerce
environment. For general information about N-1 installation and usage, see Upgrade and N-1 support for Retail.
In addition, the following steps are important for upgrade:
Both Commerce Headquarters and AX 2012 Retail components must support Goods and Services Tax (GST)
calculation. See the Prerequisites section for details.
Downgrade of the GST configuration is required to use the configuration prepared for Commerce at the AX
2012 channel side.
Distribution schedule includes additional upload and download jobs required to synchronize GST configuration
and tax calculation results between Headquarters and AX 2012 channels.

Prerequisites
Update AX 2013 R3 retail components to GST Update 2, KB4058327, or higher. For details, see India GST Update
2 - Release Notes.
Set up basic N-1 environment. For more information, refer to Phased Rollout (N-1) installation, configuration,
and cutover guide.
Set up Commerce GST for India in Headquarters according to the Goods and Services Tax (GST) integration for
cash registers for India guide.

Periodic procedure to downgrade tax configuration


GST configuration data differs between AX 2012 and Commerce versions. A special periodic procedure should be
run to transform data. To run this procedure, do the following:
1. Sign in to Headquarters, and go to Retail and Commerce > Retail and Commerce IT > Process tax
configuration from N-1 .
2. Click OK .
Each time tax configuration changes are made and finalized the above operation should be run before sending the
data to the AX 2012 channel.
Fiscal printer integration sample for Italy
2/13/2020 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce, in-store, and call center. For more information about these
changes, see Microsoft Dynamics 365 Commerce.

Introduction
The Commerce functionality for Italy includes a sample integration of the point of sale (POS) with a fiscal printer. The sample extends the fiscal integration functionality
so that it works with Epson FP-90III Series printers from Epson, and it enables communication with a fiscal printer in the web server mode via the EpsonFPMate web-
service using Fiscal ePOS-Print API. The sample supports the Registratore Telematico (RT) mode only. The sample is provided in the form of source code and is part of
the Retail software development kit (SDK).
Microsoft doesn't release any hardware, software, or documentation from Epson. For information about how to get the fiscal printer and operate it, contact Epson Italia
S.p.A.

Scenarios
The following scenarios are covered by the fiscal printer integration sample for Italy:
Sales scenarios:
Print a fiscal receipt for cash-and-carry sales and returns.
Capture a response from the fiscal printer, and store it in the channel database.
Taxes:
Map to the fiscal printer's tax codes (departments).
Transfer mapped tax data to the fiscal printer.
Print taxes on a fiscal receipt.
Payments:
Map to the fiscal printer's methods of payment.
Print payments on a fiscal receipt.
Print change information.
Print line discounts.
Gift cards:
Exclude an issued/re-charged gift card line from a fiscal receipt for a sale.
Print a payment that uses a gift card as a regular method of payment.
Print fiscal receipts for customer order operations:
A fiscal receipt isn't printed for a customer order deposit.
Print a fiscal receipt for carry-out lines of a hybrid customer order.
Print a fiscal receipt for the pickup operation for a customer order.
Print a fiscal receipt for a return order.
Print a bar code for the receipt number on a fiscal receipt.
Print the customer information that is specified for a sales transaction on a fiscal receipt. An example of this information is the customer's lottery code.
End of day statements (fiscal X and fiscal Z reports).
Error handling, such as the following options:
Retry fiscal registration if a retry is possible, such as if the fiscal printer isn't connected, isn't ready or isn't responding, the printer is out of paper, or there is a
paper jam.
Postpone fiscal registration.
Skip fiscal registration, or mark the transaction as registered, and include info codes to capture the reason for the failure and additional information.
Check the availability of the fiscal printer before a new sales transaction is opened or a sales transaction is finalized.
Default data mapping
The following default data mapping is included in the fiscal document provider configuration that is provided as part of the fiscal integration sample:
Value-added tax (VAT) rates mapping:
1 : 22.00 ; 2 : 10.00 ; 3 : 4.00 ; 4 : 0.00
Tender type mapping:
1 : 0 ; 2 : 1 ; 3 : 2 ; 4 : 2 ; 5 : 0 ; 6 : 0 ; 7 : 0 ; 8 : 2 ; 9 : 0 ; 10 : 2 ; 11 : 1
Gift cards
The fiscal printer integration sample implements the following rules that are related to gift cards:
Exclude sales lines that are related to the Issue gift card and Add to gift card operations from the fiscal receipt.
Don't print a fiscal receipt if it consists only of gift card lines.
Deduct the total amount of gift cards that are issued or re-charged in a transaction from payment lines of the fiscal receipt.
Save calculated adjustments of payment lines in the channel database with a reference to a corresponding fiscal transaction.
Payment by gift card is considered a regular payment.
Customer deposits and customer order deposits
The fiscal printer integration sample implements the following rules that are related to customer deposits and customer order deposits:
Don't print a fiscal receipt if a transaction is a customer deposit.
Don't print a fiscal receipt if a transaction contains only a customer order deposit or a customer order deposit refund.
Print the amount of the previously paid deposit on a fiscal receipt for a customer order pickup operation.
Deduct the customer order deposit amount from payment lines when a hybrid customer order is created.
Save calculated adjustments of payment lines in the channel database with a reference to a fiscal transaction for a hybrid customer order.
Limitations of the sample
The fiscal printer supports only scenarios where sales tax is included in the price. Therefore, the Price include sales tax option must be set to Yes for both stores
and customers.
Daily reports (fiscal X and fiscal Z) are printed by using the format that is embedded in the fiscal printer's firmware.
The fiscal printer doesn't support mixed transactions. The Prohibit mixing sales and returns in one receipt option should be set to Yes in POS functionality
profiles.
The sample supports integration only with a fiscal printer that is working in the RT (Registratore Telematico) mode.

Set up Commerce for Italy


Configure fiscal integration
Complete the fiscal integration setup steps as described in Set up the fiscal integration for Commerce channels:
Set up a fiscal registration process. Note also the settings for the fiscal registration process that are specific to this fiscal printer integration sample.
Set up fiscal texts for discounts.
Set error handling settings.
Set up fiscal X/Z reports from the POS.
Enable manual execution of postponed fiscal registration.
Set up the functionality for management of customer information in POS
Enable extensions
Commerce runtime extension components
The Commerce runtime extension components are included in the Retail SDK. To complete the following procedures, open the CRT solution,
CommerceRuntimeSamples.sln , under RetailSdk\SampleExtensions\CommerceRuntime .
1. Find the Runtime.Extensions.DocumentProvider.EpsonFP90IIISample project, and build it.
2. In the Extensions.DocumentProvider.EpsonFP90IIISample\bin\Debug folder, find the
Contoso.Commerce.Runtime.DocumentProvider.EpsonFP90IIISample.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Commerce Scale Unit: Copy the assembly to the \bin\ext folder under the Microsoft Internet Information Services (IIS) Commerce Scale Unit site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker location.
4. Find the extensions configuration file for CRT:
Commerce Scale Uni: The file is named commerceruntime.ext.config , and it's in the bin\ext folder under the IIS Commerce Scale Uni site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's under the local CRT client broker location.
5. Register the CRT change in the extensions configuration file. Add source="assembly"
value="Contoso.Commerce.Runtime.DocumentProvider.EpsonFP90IIISample" .
6. Restart the Commerce Scale Unit:
Commerce Scale Uni: Restart the Commerce Scale Uni site from IIS Manager.
Client broker : End the dllhost.exe process in Task Manager, and then restart Modern POS.
Hardware station extension components
The Hardware station extension components are included in the Retail SDK. To complete the following procedures, open the Hardware Station solution,
HardwareStationSamples.sln , under RetailSdk\SampleExtensions\HardwareStation .
1. Find the HardwareStation.Extensions.EpsonFP90IIIFiscalDeviceSample project, and build it.
2. In the Extensions.EpsonFP90IIIFiscalDeviceSample\bin\Debug folder, find the
Contoso.Commerce.HardwareStation.EpsonFP90IIIFiscalDeviceSample.dll assembly file.
3. Copy the files to a deployed Hardware station machine:
Remote Hardware station: Copy the files to the bin folder under the IIS Hardware station site location.
Local Hardware station: Copy the files to the Modern POS client broker location.
4. Find the configuration file for the Hardware station's extensions. The file is named HardwareStation.Extension.config :
Remote Hardware station: The file is located under the IIS Hardware station site location.
Local Hardware station: The file is located under the Modern POS client broker location.
5. Add the following section to the composition section of the config file.
<add source="assembly" value="Contoso.Commerce.HardwareStation.Extension.EpsonFP90IIIFiscalDeviceSample" />

6. Restart the Hardware station service:


Remote Hardware station: Restart the Hardware station site from IIS Manager.
Local Hardware station: End the dllhost.exe process in Task Manager, and then restart Modern POS.
Set up the registration process
To enable the registration process, follow these steps to set up Headquarters. For more details, see Set up a fiscal registration process.
1. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Fiscal Connectors . Import the configuration from
RetailSdk\SampleExtensions\HardwareStation\Entension.EpsonFP90IIIFiscalDeviceSample\Configuration\ConnectorEpsonFP90IIISample.xml .
2. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Fiscal Document providers . Import the configuration from
RetailSdk\SampleExtensions\CommerceRuntime\Entension.DocumentProvider.EpsonFP90IIISample\Configuration\DocumentProviderEpsonFP90IIISample.xml
3. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Connector Technical profiles . Create a new profile, and select the loaded connector
from the earlier step. Update the connection settings if an update is required.
4. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Connector Functional profiles . Create a new profile, and select the loaded connector
and document provider from the earlier steps. Update data mapping settings if an update is required.
5. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Connector Functional group . Create a new group, and select the connector functional
profile from the earlier step.
6. Go to Retail and Commerce > Channel Setup > Fiscal Integration > Registration process . Create a new process, and select the connector functional group
from the earlier step.
7. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Functionality profiles . Open the functionality profile that is linked to the store
where the registration process should be activated. On the Fiscal registration process FastTab, select the registration process that was created earlier.
8. Go to Retail and Commerce > Channel setup > POS setup > POS profiles > Hardware profiles . Open the hardware profile that is linked to the Hardware
station that the fiscal printer will be connected to. On the Fiscal peripherals FastTab, select the connector technical profile.
9. Open the distribution schedule (Retail and Commerce > Retail and Commerce IT > Distribution schedule ), and select jobs 1070 and 1090 to transfer data
to the channel database.
Production environment
Follow these steps to create deployable packages that contain Commerce components, and to apply those packages in a production environment.
1. Complete the steps that are described in the Enable extensions section earlier in this topic.
2. Make the following changes in the package configuration files under the RetailSdk\Assets folder:
In the commerceruntime.ext.config and CommerceRuntime.MPOSOffline.Ext.config configuration files, add the following line to the composition
section.

<add source="assembly" value="Contoso.Commerce.Runtime.DocumentProvider.EpsonFP90IIISample" />

In the HardwareStation.Extension.config configuration file, add the following line to the composition section.

<add source="assembly" value="Contoso.Commerce.HardwareStation.Extension.EpsonFP90IIIFiscalDeviceSample" />

3. Make the following changes in the BuildTools\Customization.settings package customization configuration file:
Add the following line to include the CRT extension in the deployable packages.

<ISV_CommerceRuntime_CustomizableFile Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.DocumentProvider.EpsonFP90IIISample.dll"/>

Add the following line to include the Hardware station extension in the deployable packages.

<ISV_HardwareStation_CustomizableFile Include="$(SdkReferencesPath)\Contoso.Commerce.HardwareStation.EpsonFP90IIIFiscalDeviceSample.dll"/>

4. Start the MSBuild Command Prompt for Visual Studio utility, and run msbuild under the Retail SDK folder to create deployable packages.
5. Apply the packages via Microsoft Dynamics Lifecycle Services (LCS) or manually. For more information, see Create deployable packages.

Design of extensions
Commerce runtime extension design
The purpose of the extension that is a fiscal document provider is to generate printer-specific documents and handle responses from the fiscal printer.
The Commerce runtime extension is Runtime.Extensions.DocumentProvider.EpsonFP90IIISample .
For more details about the design of the fiscal integration solution, see Fiscal registration process and fiscal integration samples for fiscal devices.
Request handler
The DocumentProviderEpsonFP90III request handler is the entry point for the request to generate documents from the fiscal printer.
The handler is inherited from the INamedRequestHandler interface. The HandlerName method is responsible for returning the name of the handler. The handler
name should match the connector document provider name that is specified in Headquarters.
The connector supports the following requests:
GetFiscalDocumentDocumentProviderRequest – This request contains information about what document should be generated. It returns a printer-specific
document that should be registered in the fiscal printer.
GetSuppor tedRegistrableEventsDocumentProviderRequest – This request returns the list of events to subscribe to. Currently, the following events are
supported: sales, printing X report, and printing Z report.
Configuration
The configuration file is located in the Configuration folder of the extension project. The purpose of the file is to enable settings for the document provider to be
configured from Headquarters. The file format is aligned with the requirements for fiscal integration configuration. The following settings are added:
VAT codes mapping
VAT rates mapping
Tender type mapping
Barcode type for receipt number
Deposit payment type
Hardware station extension design
The purpose of the extension that is a fiscal connector is to communicate with the fiscal printer.
The Hardware station extension is HardwareStation.Extension.EpsonFP90IIIFiscalDeviceSample . This extension uses the HTTP protocol to submit documents that
the Commerce runtime extension generates to the fiscal printer. It also handles the responses that are received from the fiscal printer.
Request handler
The EpsonFP90IIISample request handler is the entry point for handling request to the fiscal peripheral device.
The handler is inherited from the INamedRequestHandler interface. The HandlerName method is responsible for returning the name of the handler. The handler
name should match the fiscal connector name that is specified in Headquarters.
The connector supports the following requests:
SubmitDocumentFiscalDeviceRequest – This request sends documents to printers and returns the response from the fiscal printer.
IsReadyFiscalDeviceRequest – This request is used for a health check of the device.
InitializeFiscalDeviceRequest – This request is used for printer initialization.
Configuration
The configuration file is located in the Configuration folder of the extension project. The purpose of the file is to enable settings for the connector to be configured from
Headquarters. The file format is aligned with the requirements for fiscal integration configuration. The following settings are added:
Endpoint address – The URL of the printer.
Date and time synchronization – This setting specifies whether the date and time of the printer must be synced with the connected Hardware station.
Global CFDI electronic invoices for Mexico
2/13/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The Commerce functionality for Mexico supports the Comprobantes fiscales digitales por internet (CFDI) format for
Mexican companies. For more information about CFDI electronic invoices, see Electronic invoices (CFDI). When a
company closes the daily process, it must issue a Global CFDI document to consolidate all receipts that were issued
to the final consumers. This document includes the following information for each transaction that is registered
during the period:
A receipt number
A corresponding amount

Processing Global CFDI documents


The Global CFDI functionality lets you perform the following tasks:
Create an electronic invoice, in Global CFDI format (layout 3.3), that is based on the posted commerce
statement. For more information about the layout, see CFDI layout version 3.3.
For each electronic invoice generate a file in the .pdf or .xml format, and send it to the customer as an email
attachment. After the Global CFDI electronic invoices are generated, they are verified and certified by a
digital signature service provider (PAC) in the same way as other CFDI documents. For more information, see
Electronic invoices (CFDI) and Inquire and print an electronic invoice.
To generate and submit a Global CFDI electronic invoice, follow these steps.
1. As a preparatory step, on the Retail tab of the Electronic invoice parameters page (Organization
administration > Setup > EInvoice > Electronic invoice parameters ), you must specify the default
parameters of the Global CFDI format.
2. Close the shift at the point of sale (POS).
3. Run the P-job in the distribution schedule to transfer transactions from the channel database to
Headquarters.
4. Calculate and post a statement by following the steps in Create, calculate, and post a statement for a retail
store.
5. Run the Post CFDI – Electronic invoices periodic operation to create Global CFDI electronic invoices that
are based on a posted statement. You can select a statement number for this periodic operation. If you don't
select a statement number, the system creates Global CFDI electronic invoices for all posted statements that
haven't yet been processed.
As a result of the Post CFDI – Electronic invoices periodic operation, two Global CFDI electronic invoices
are created. One electronic invoice collects all receipts that are related to sales operations, and the other
collects all receipts that are related to returns. For the electronic invoice that is related to returns, the Return
attribute is set to Yes . You can view these electronic invoices on the CFDI (electronic invoices) page
(Retail and Commerce > Inquiries and repor ts > CFDI (electronic invoices) ).
All further workflows, such as communication with a service provider, generation of the .pdf and .xml files,
and manual functions are the same as the workflows for CFDI Normal electronic invoices.
6. Run the Expor t/impor t electronic invoice process periodic operation to submit electronic invoices to
the PAC.

Updates for the Global CFDI functionality


In Microsoft Dynamics 365 for Finance and Operations version 10.0.2 (May 2019), the Global CFDI functionality
was extended to support new requirements that were introduced in the second revision of the Global CFDI filling
guide. Starting in Microsoft Dynamics 365 for Finance and Operations version 10.0.2 (May 2019), you can perform
the following tasks:
At the customer's request, generate a separate CFDI Normal electronic invoice that is based on a sale or
return operation that is registered at the POS.
In this case, the sale or return operation should be registered as a customer order. For more information
about the functionality for customer orders, see Customer orders in Modern POS (MPOS).
In a CFDI electronic invoice that is generated based on returns, specify universally unique identifiers (UUIDs)
for CFDI electronic invoices that are related to the original sales operations.
Starting in Dynamics 365 for Finance and Operations version 10.0.2 (May 2019), the Global CFDI functionality also
supports the following additional scenarios:
Item returns across multiple customer orders and invoices
Customer order returns that involve an exchange, when a customer invoice includes both lines that have
positive amounts and lines that have negative amounts
Showing related CFDI documents in a CFDI electronic invoice
To show the UUIDs of the original sales in CFDI electronic invoices for returns, turn on the Specify related CFDI
in returns parameter on the Retail tab of the Electronic invoice parameters page (Organization
administration > Setup > EInvoice > Electronic invoice parameters ). After you turn on this parameter, both
Global CFDI and CFDI Normal documents are generated that include the following information:
A list of related electronic invoices.
A status of Draft . (This status is a new status that was introduced in version 10.0.2). An electronic invoice is
automatically set to this status if a UUID isn't specified for all the related electronic invoices. The Expor t/impor t
electronic invoice process periodic procedure skips all electronic invoices that have a status of Draft .
An XML file that is generated, where the CFDI relacionados section contains the list of related electronic
invoices. You can view the list of related electronic invoices by selecting Inquiries > Related e-invoices . You
can also manually add a new related electronic invoice on the same page.
The status of electronic invoices is automatically updated later, when all related electronic invoices get their UUIDs.
To manually update the status of an electronic invoice, you can use the Mark as ready function. The status of the
electronic invoice will be changed, and it will become available for export.
Excluding customer orders from Global CFDI electronic invoices
To process customer orders as CFDI Normal electronic invoices in the same way that sales orders are processed in
the Accounts receivable module, and to exclude those operations from the Global CFDI electronic invoices, turn
on the Exclude customer orders from CFDI Global parameter on the Retail tab of the Electronic invoice
parameters page (Organization administration > Setup > EInvoice > Electronic invoice parameters ).
After you turn on this parameter, a separate electronic invoice is created based on each sale or return operation that
is posted via a customer order at the POS.
The following customer order operations can cause a CFDI Normal electronic invoice to be posted:
Customer order pickup
Customer order return
Hybrid customer order (For more information about this scenario, see Hybrid customer orders.)
When the Exclude customer orders from CFDI Global parameter is turned off, and no previous customer
invoice was posted from the same customer order and processed as a separate electronic invoice (CFDI Normal),
customer orders are included in Global CFDI electronic invoices. Otherwise, customer orders are processed as
separate electronic invoices (CFDI Normal). Therefore, they are excluded from Global CFDI electronic invoices.
Customer order returns are processed in the same way (either CFDI Global or CFDI Normal) as the original sales
operations.
Limitations
Note the following limitations:
All invoices from an original sales order are included in a return electronic invoice as the related CFDI
documents.
The scenario of a customer order return that involves an exchange is supported only for Global CFDI electronic
invoices.
Cash register functionality for Norway
2/1/2020 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the cash register functionality that is available for Norway in Dynamics 365
Commerce. It also provides guidelines for setting up the functionality. The functionality consists of the following
parts:
Common point-of-sale (POS) features that are available to customers in all countries or regions. Examples
include an option that lets you prevent a copy of a receipt from being printed more than one time.
Norway-specific features, such as digital signatures for sales transactions.

Overview of cash register functionality for Norway


Common POS features
To learn about POS features that are available to customers in all countries or regions, see Help resources for
Dynamics 365 Retail.
The following POS localization features that were previously implemented and made available to customers in all
countries or regions can now be used specifically for Norway:
Print text fields on a receipt in a large font size. You can use the Font size parameter in the Receipt
format designer to specify that the large font size should be used for a field in the receipt format. (The large font
size is approximately double the usual font size.) For example, you can use this parameter to print the "Copy"
indicator on a copy of a receipt in large characters.
Register the printing of receipt copies in the POS audit event log. You can use the Audit parameter in
the POS functionality profile to enable copies of receipts to be printed and other POS audit events to be
registered. The audit events are registered in the channel database and in Headquarters. You can view the audit
events on the Audit events page.
Prevent a copy of a receipt from being printed more than one time. When the Audit parameter in the
POS functionality profile is enabled, the Allow printing receipt copies POS permission controls whether
copies of receipts can be printed. There is also an option that lets you prevent a copy of a receipt from being
printed more than one time.
Additionally, the following POS feature was implemented for Norway but made available to customers in all
countries or regions:
Register additional events in the POS audit event log. If the Audit parameter in the POS
functionality profile is enabled, the following events are registered in the POS audit event log:
Price checks
Tax overrides
Corrections to line quantities
Clearing transactions from the channel database
Norway-specific POS features
The following Norway-specific POS features are enabled when the ISO code parameter in the POS functionality
profile is set to No .
Digital signing of sales transactions
Every sales transaction is digitally signed. The signature is created and recorded in the POS transaction journal at
the same time that the transaction is finalized. The signature is also available in the journal that is exported for
audit purposes.
Only transactions for cash sales are signed. Here are some examples of transactions that are excluded from the
signing process:
Prepayments (customer account deposit)
Prepayments for sales orders (customer order deposit)
Issuing a gift card
Non-sales transactions (float entry, tender removal, and so on)
The data that is signed is a text string that consists of the following data fields. The data fields are separated by
semicolons.
1. Previous signature for the same POS (A zero [0 ] is used for the first transaction.)
2. Transaction date
3. Transaction time
4. Sequential signed transaction number
5. Transaction amount including tax
6. Transaction amount excluding tax
The digital signing process uses an RSA 1024-bit key that has a SHA-1 hash function (RSA-SHA1-1024). A
certificate that is installed on Commerce Scale Unit is used for signing. The unique identifier of the certificate
(footprint) is recorded together with the signature.
The signature is stored in the store database and the headquarters (HQ) database together with the transaction
data. You can view the transaction signature, together with the transaction data that was used to generate it, on the
Fiscal transactions FastTab of the Store transactions page.
Receipts
Receipts for Norway can include additional information that was implemented by using custom fields:
Receipt title – You can add a field to a receipt format layout to identify the type of receipt. For example, a
sales receipt will include the text "Sales receipt".
Signed transaction sequential number – The sequential number of a signed transaction can appear on
the receipt to associate a printed receipt with a digital signature in the database.
Receipt totals – Custom fields for receipt totals exclude non-sales amounts from total transaction
amounts. Non-sales amounts include amounts for the following operations:
Prepayments (customer account deposit)
Prepayments for sales orders (customer order deposit)
Issuing a gift card
Adding funds to a gift card
X and Z reports
The information that is included on X and Z reports is based on Norwegian requirements. For example, Total cash
sales amounts include only amounts for cash sales transactions and exclude issue gift card operations and
prepayments. Total cash sales are also listed per item group and payment method. In addition, cumulative Grand
total sales and Grand total returns amounts are maintained and printed.
SAF-T Cash Register audit file
You can export the POS transaction journal in the predefined Standard Audit File - Tax (SAF-T) Cash Register
format. The audit file includes information about the organization, relevant master data (such as item groups,
items, and tax codes), cash sales transaction data together with signatures for those transactions, non-sales event
data, and end-of-date report data.
The audit file can be exported for the following scenarios:
Per store
All stores
Per terminal
All terminals
You can also send a report from one legal entity on behalf of another legal entity. In this case, you must run the
export from the operating legal entity and specify the reporting legal entity as the sender of the report.
The SAF-T Cash Register format is implemented at Headquarters by using Electronic reporting.

Setting up Commerce for Norway


This section describes the settings that are specific to and recommended for Norway. For more information, see
Help resources for Dynamics 365 Retail.
To use the Norway-specific functionality, you must complete these tasks:
Set the Countr y/region field to NOR (Norway) in the primary address of the legal entity.
Set the ISO code field to NO (Norway) in the POS functionality profile of every store that is located in Norway.
You must also specify the following settings for Norway.
Set up the legal entity
Make sure that the name of the legal entity is specified. This name will be printed on X and Z reports.
Additionally, on the Bank account information FastTab, in the Routing number field, specify the organization
number.
Set up value -added tax (VAT ) per Norwegian requirements
You must create sales tax codes, sales tax groups, and item sales tax groups. You must also set up sales tax
information for products and services. For more information about how to set up and use sales tax, see Sales tax
overview.
You must also specify sales tax groups and enable the Prices include sales tax option for stores that are located
in Norway.
Set up functionality profiles
You must enable auditing and set up receipt numbering.
Update POS permissions groups and individual permission settings for store workers
Set the Allow printing receipt copy permission to an appropriate value:
Allow always – The operator can print a copy of a receipt multiple times.
Allow only once – The operator can print a copy of a receipt only one time.
Allow only once, and only if HQ DB is available – The operator can print a copy of a receipt only one time,
and only if the HQ database is available through Commerce Data Exchange: Real-time Service, so that the
system can verify that no copies of the receipt have previously been printed in any store.
Never – The operator can't print a copy of a receipt.
Configure custom fields so that they can be used in receipt formats for sales receipts
On the Language text page, add the following records for the labels of the custom fields for receipt layouts. Note
that the Language ID , Text ID , and Text values that are shown in the table are just examples. You can change
them to meet to your requirements.

L A N GUA GE ID T EXT T EXT ID

en-US Receipt title 900011

en-US Is gift card 900012

en-US Total (sales) 900013

en-US Tax total (sales) 900014

en-US Total with tax (sales) 900015

en-US Tax amount (sales) 900016

en-US Cash transaction ID 900017

On the Custom fields page, add the following records for the custom fields for receipt layouts. Note that Caption
text ID values must correspond to the Text ID values that you specified on the Language text page.

NAME TYPE C A P T IO N T EXT ID

ReceiptTitle Receipt 900011

IsGiftCard Receipt 900012

SalesTotalExt Receipt 900013

TaxTotalExt Receipt 900014

TotalWithTaxExt Receipt 900015

AmountPerTaxExt Receipt 900016

CashTransactionSequentialNumber Receipt 900017

Configure receipt formats


For all required receipt formats, change the value of the Print behavior field to Always print for the receipt
format.
In the Receipt format designer, add the following custom fields to the appropriate receipt sections. Note that field
names correspond to the language texts that you defined in the previous section.
1. Header:
Receipt title – This field identifies the type of receipt.
Cash transaction ID – This field prints the sequential number of the signed cash transaction.
2. Lines:
Is gift card – This field marks the receipt line as related to the Issue gift card or Add to gift card
operation.
3. Footer:
Total (sales) – This field prints the receipt's total cash sale amount. The amount excludes tax.
Prepayments and gift card operations are excluded.
Tax total (sales) – This field prints the receipt's total tax amount for cash sales. Prepayments and gift
card operations are excluded.
Total with tax (sales) – This field prints the receipt's total cash sale amount. The amount includes tax.
Prepayments and gift card operations are excluded.
Tax amount (sales) – This field prints the receipt's tax amount for cash sales per tax code. Prepayments
and gift card operations are excluded.
For more information about how to work with receipt formats, see Set up and design receipt formats.
Configure the SAF -T Cash Register export format
The SAF-T Cash Register configuration is available for download from Microsoft Dynamics Lifecycle Services (LCS).
For more information, see Import electronic reporting configurations. You must download the following
configurations:
Retail channel data.version.1 – The data model configuration.
DMM Retail channel data.version.1.6 – The data model mapping configuration.
NO SAF T Cash Register.version.1.15 – The format configuration.
After you import the configurations, on the Commerce parameters page, on the Electronic documents tab, in
the SAF-T Cash register expor t format field, select the name of the format configuration that was imported.
You must also map required master data to predefined SAF-T standard codes. For more information, see the SAF-T
Cash register documentation that is provided by the Norwegian Tax Administration. To create the mapping, you
must set the new SAF-T Cash register code field on the following pages:
Item groups
Payment methods
Sales tax codes
Configure channel components
To enable Norway-specific functionality, you must configure extensions for channel components. For more
information, see the deployment guidelines.
Deployment guidelines for cash registers for Norway
2/13/2020 • 31 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic is a deployment guide that shows how to enable the Dynamics 365 Commerce localization for Norway.
The localization consists of several extensions of Commerce components. For example, the extensions let you print
custom fields on receipts, register additional audit events, sales transactions, and payment transactions in Point of
Sale (POS), digitally sign sales transactions, and print X and Z reports in local formats. For more information about
the localization for Norway, see Cash register functionality for Norway.
This sample is part of the Retail software development kit (SDK). For information about the SDK, see the Retail
software development kit (SDK) architecture.
This sample consists of extensions for the Commerce runtime (CRT), Retail Server, and POS. To run this sample, you
must modify and build the CRT, Retail Server, and POS projects. We recommend that you use an unmodified Retail
SDK to make the changes that are described in this topic. We also recommend that you use a source control
system, such as Microsoft Visual Studio Online (VSO), where no files have been changed yet.

NOTE
In Commerce 10.0.8 and above, Retail Server is known as Commerce Scale Unit. Because this topic applies to multiple
previous versions of the app, Retail Server is used throughout the topic.

NOTE
Some steps in the procedures in this topic differ, depending on the version of Commerce that you're using. For more
information, see What's new or changed in Dynamics 365 Retail.

Development environment
Complete these procedures to set up a development environment so that you can test and extend the sample.
The CRT extension components
The CRT extension components are included in the CRT samples. To complete the following procedures, open the
CRT solution, CommerceRuntimeSamples.sln , under RetailSdk\SampleExtensions\CommerceRuntime .
ReceiptsNorway component
1. Find the Runtime.Extensions.ReceiptsNor way project, and build it.
2. In the Extensions.ReceiptsNor way\bin\Debug folder, find the
Contoso.Commerce.Runtime.ReceiptsNor way.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the Microsoft Internet Information
Services (IIS) Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.ReceiptsNorway" />

WARNING
Do not edit the commerceruntime.config and CommerceRuntime.MPOSOffline.config files. These files aren't intended
for any customizations.

SalesPaymentTransExt component
1. Find the Runtime.Extensions.SalesPaymentTransExt project, and build it.
2. In the Extensions.SalesPaymentTransExt\bin\Debug folder, find the
Contoso.Commerce.Runtime.SalesPaymentTransExt.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.SalesPaymentTransExt" />

WARNING
Do not edit the commerceruntime.config and CommerceRuntime.MPOSOffline.config files. These files aren't intended
for any customizations.

XZReportsNorway component
1. Find the Runtime.Extensions.XZRepor tsNor way project, and build it.
2. In the Extensions.XZRepor tsNor way\bin\Debug folder, find the
Contoso.Commerce.Runtime.XZRepor tsNor way.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.XZReportsNorway" />

WARNING
Do not edit the commerceruntime.config and CommerceRuntime.MPOSOffline.config files. These files aren't intended
for any customizations.

Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
RegisterAuditEvent sample component
1. Find the Runtime.Extensions.RegisterAuditEventSample project, and build it.
2. In the Extensions.RegisterAuditEventSample\bin\Debug folder, find the
Contoso.Commerce.Runtime.RegisterAuditEventSample.dll assembly file.
3. Copy the assembly file to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
4. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
5. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.RegisterAuditEventSample" />

WARNING
Do not edit the commerceruntime.config and CommerceRuntime.MPOSOffline.config files. These files aren't intended
for any customizations.

SalesTransactionSignature sample component


1. Find the Runtime.Extensions.SalesTransactionSignatureSample project.
2. Modify the App.config file by specifying the thumbprint, store location, and store name for the certificate
that should be used to sign sales transactions.
3. Build the project.
4. In the Extensions.SalesTransactionSignatureSample\bin\Debug folder, find the following files:
The Contoso.Commerce.Runtime.SalesTransactionSignatureSample.dll assembly file
The Contoso.Commerce.Runtime.SalesTransactionSignatureSample.dll.config configuration file
5. Copy the files to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail Server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client broker
location.
6. Find the extension configuration file for CRT:
Retail Ser ver : The file is named commerceruntime.ext.config , and it's in the bin\ext folder under
the IIS Retail Server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config , and it's
under the local CRT client broker location.
7. Register the CRT change in the extension configuration file.

<add source="assembly" value="Contoso.Commerce.Runtime.SalesTransactionSignatureSample" />

WARNING
Do not edit the commerceruntime.config and CommerceRuntime.MPOSOffline.config files. These files aren't intended
for any customizations.

The Retail Server extension components


SalesTransactionSignature Retail Server sample component
1. In the
RetailSDK\SampleExtensions\RetailSer ver\RetailSer ver.Extensions.SalesTransactionSignatureSa
mple folder, find the RetailSer ver.Extensions.SalesTransactionSignatureSample project, and build it.
2. In the RetailSer ver\Extensions.SalesTransactionSignatureSample\bin\Debug folder, find the
Contoso.RetailSer ver.SalesTransactionSignatureSample.dll assembly file.
3. Copy the assembly file to the Retail Server extensions folder.
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
The folder is the \bin folder under the IIS Retail Server site location.
4. Find the configuration file for Retail Server. The file is named web.config , and it's in the root folder under
the IIS Retail Server site location.
5. Register the Retail Server extensions in the extensionComposition section of the configuration file.
<add source="assembly" value="Contoso.RetailServer.SalesTransactionSignatureSample" />

6. Register the dependencies of the Retail Server extensions.


Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
1. In the CommerceRuntime\Extensions.SalesTransactionSignatureSample\bin\Debug folder,
find the following files:
The Contoso.Commerce.Runtime.SalesTransactionSignatureSample.dll assembly file
The Contoso.Commerce.Runtime.SalesTransactionSignatureSample.dll.config
configuration file
2. Copy the files to the \bin folder under the IIS Retail Server site location.
3. Register the CRT change in the extension configuration file for CRT. This file is named
commerceruntime.ext.config , and it's in the bin folder under the IIS Retail Server site location.

<add source="assembly" value="Contoso.Commerce.Runtime.SalesTransactionSignatureSample" />

The Modern POS extension components


Implement the proxy code for offline mode
This part is equivalent to the Retail Server controller, but it extends the local CRT that is used when the client isn't
connected.
1. In the customization.settings file, change the @(RetailSer verLibrar yPathForProxyGeneration)
section so that it uses the new Retail Server assembly for proxy generation.
2. Implement the following interface methods in the StoreOperationsManager class. For the first iteration,
add the following code:
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later

public Task<bool> SalesTransactionSignatureServiceIsReady()


{
throw new NotImplementedException();
}
public Task<FiscalTransaction> GetLastFiscalTransaction(string storeNumber, string terminalId)
{
throw new NotImplementedException();
}

3. To regenerate the proxy code, build the Proxies folder from the command line by using the msbuild
/t:Rebuild command.
4. Resolve the Proxies.RetailProxy project dependencies:
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
Open RetailSDK\Proxies\RetailProxy\Proxies.RetailProxy.csproj , add the
RetailSDK\SampleExtensions\CommerceRuntime\Extensions.SalesTransactionSignatureSample\
CommerceRuntime.Extensions.SalesTransactionSignatureSample project to the solution, and add a
project reference to the RetailProxy project to reference SalesTransactionSignatureSample .
5. Adjust the interface methods in the StoreOperationsManager class:
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later

public Task<bool> SalesTransactionSignatureServiceIsReady()


{
return Task.Run(() =>
CommerceRuntimeManager.Runtime.Execute<SalesTransactionSignatureServiceIsReadyResponse>(new
SalesTransactionSignatureServiceIsReadyRequest(), null).IsReady);
}
public Task<FiscalTransaction> GetLastFiscalTransaction(string storeNumber, string terminalId)
{
return Task.Run(() => CommerceRuntimeManager.Runtime.Execute<GetLastFiscalTransactionResponse>(new
GetLastFiscalTransactionRequest(), null).FiscalTransaction);
}

6. Update the dllhost.exe.config file so that the client broker loads the new RetailProxy assembly.

<add key="RetailProxyAssemblyName" value="Contoso.Commerce.RetailProxy" />


<add key="AdaptorCallerFullTypeName" value="Contoso.Commerce.RetailProxy.Adapters.AdaptorCaller" />

Retail proxy extension component (Retail 7.3.1 and later)


Complete the following procedure only if you're using Retail 7.3.1 and later.
1. In the
RetailSDK\SampleExtensions\RetailProxy\RetailProxy.Extensions.SalesTransactionSignatureSam
ple folder, find the RetailSer ver.Extensions.SalesTransactionSignatureSample project, and build it.
2. In the RetailProxy\RetailProxy.Extensions.SalesTransactionSignatureSample\bin\Debug folder, find
the Contoso.Commerce.RetailProxy.SalesTransactionSignatureSample assembly file.
3. Copy the assembly files to the \ext folder under the local CRT client broker location.
4. Register the Retail proxy change in the extension configuration file. The file is named
RetailProxy.MPOSOffline.ext.config , and it's under the local CRT client broker location.
<add source="assembly" value="Contoso.Commerce.RetailProxy.SalesTransactionSignatureSample" />

Modern POS extension components


1. Open the solution at RetailSdk\POS\ModernPOS.sln , and make sure that it can be compiled without
errors. Additionally, make sure that you can run Modern POS from Microsoft Visual Studio by using the Run
command.

NOTE
Modern POS must not be customized. You must enable User Account Control (UAC), and you must uninstall
previously installed instances of Modern POS as required.

2. Include the following existing source code folders in the Pos.Extensions project.
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
AuditEventExtensionSample
SalesTransactionSignatureSample
3. Enable the extensions to be compiled in tsconfig.json by removing the following folders from the exclude
list.
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
AuditEventExtensionSample
SalesTransactionSignatureSample
4. Enable the extensions to be loaded in extensions.json by adding the following lines in the appropriate
place.
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
{
"baseUrl": "AuditEventExtensionSample"
},
{
"baseUrl": "SalesTransactionSignatureSample"
}

NOTE
For more information, and for samples that show how to include source code folders and enable extensions to be
loaded, see the instructions in the readme.md file in the Pos.Extensions project.

5. Rebuild the solution.


6. Run Modern POS in the debugger, and test the functionality.
Cloud POS extension components
1. Open the solution at RetailSdk\POS\CloudPOS.sln , and make sure that it can be compiled without errors.
2. Include following existing source code folders in the Pos.Extensions project.
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
AuditEventExtensionSample
SalesTransactionSignatureSample
3. Enable the extensions to be compiled in tsconfig.json by removing following folders from the exclude list.
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
AuditEventExtensionSample
SalesTransactionSignatureSample
4. Enable the extensions to be loaded in extensions.json by adding the following lines in the appropriate
place.
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
{
"baseUrl": "AuditEventExtensionSample"
},
{
"baseUrl": "SalesTransactionSignatureSample"
}

NOTE
For more information, and for samples that show how to include source code folders and enable extensions to be
loaded, see the instructions in the readme.md file in the Pos.Extensions project.

5. Rebuild the solution.


6. Run the solution by using the Run command and following the steps in the Retail SDK handbook.
7. Test the functionality.
Set up required parameters in Headquarters
For more information, see Cash register functionality for Norway.

Production environment
Follow these steps to create deployable packages that contain Commerce components, and to apply those
packages in a production environment.
1. Complete the steps in the Cloud POS extension components or Modern POS extension components section
earlier in this topic.
2. Make the following changes in the package configuration files under the RetailSdk\Assets folder:
a. In the commerceruntime.ext.config and CommerceRuntime.MPOSOffline.Ext.config
configuration files, add the following lines to the composition section:
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later

<add source="assembly" value="Contoso.Commerce.Runtime.ReceiptsNorway" />


<add source="assembly" value="Contoso.Commerce.Runtime.RegisterAuditEventSample" />
<add source="assembly" value="Contoso.Commerce.Runtime.SalesPaymentTransExt" />
<add source="assembly" value="Contoso.Commerce.Runtime.SalesTransactionSignatureSample" />
<add source="assembly" value="Contoso.Commerce.Runtime.XZReportsNorway" />

b. Enable Commerce Proxy customization:


Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
In the dllhost.exe.config configuration file, add the following lines to the appSettings subsection
of the configuration section.

<add key="RetailProxyAssemblyName" value="Contoso.Commerce.RetailProxy"/>


<add key="AdaptorCallerFullTypeName" value
="Contoso.Commerce.RetailProxy.Adapters.AdaptorCaller"/>

3. Make the following changes in the Customization.settings package customization configuration file:
a. Enable Retail Proxy customization.
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
Add the following lines to the <ItemGroup
Condition="'@(RetailSer verLibrar yPathForProxyGeneration)' == ''"> section.

<RetailServerLibraryPathForProxyGeneration
Include="$(SdkReferencesPath)\Contoso.RetailServer.SalesTransactionSignatureSample.dll"/>

b. Add the following lines to the ItemGroup section to include the CRT extensions in the deployable
packages:
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later

<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.ReceiptsNorway.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.RegisterAuditEventSample.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SalesPaymentTransExt.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SalesTransactionSignatureSample.dll" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SalesTransactionSignatureSample.dll.config
" />
<ISV_CommerceRuntime_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.XZReportsNorway.dll" />

c. Add following lines to the ItemGroup section to include the Retail Server extension in the deployable
packages:
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later

<ISV_RetailServer_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.RetailServer.SalesTransactionSignatureSample.dll" />
<ISV_RetailServer_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SalesTransactionSignatureSample.dll" />
<ISV_RetailServer_CustomizableFile
Include="$(SdkReferencesPath)\Contoso.Commerce.Runtime.SalesTransactionSignatureSample.dll.config
" />

4. Modify the following files to include the resource files for Norway in deployable packages:
Packages_SharedPackagingProjectComponents\Sdk.ModernPos.Shared.csproj
Packages\RetailServer\Sdk.RetailServerSetup.proj
For the Sdk .ModernPos.Shared.csproj file
Add line to the ItemGroup section

<<File_name> Include="$(SdkReferencesPath)\nb-NO\*" />

NOTE
Instead of the <File_name> specify a name of the resource file. The same is relevant for the other examples given
below.

Add line to the Target Name="CopyPackageFiles" section

<Copy SourceFiles="@(<File_name>)"
DestinationFolder="$(OutputPath)content.folder\CustomizedFiles\ClientBroker\ext\nb-NO"
SkipUnchangedFiles="true" />

For the Sdk .RetailSer verSetup.proj file


Add line to the ItemGroup section

<<File_name> Include="$(SdkReferencesPath)\nb-NO\*" />

Add line to the Target Name="CopyPackageFiles" section

<Copy SourceFiles="@(<File_name>)"
DestinationFolder="$(OutputPath)content.folder\RetailServer\Code\bin\ext\nb-NO"
SkipUnchangedFiles="true" />

5. Modify the certificate's configuration file by specifying the thumbprint, store location, and store name for the
certificate that should be used to sign sales transactions. Then copy the configuration file to the References
folder.
Application update 4
Application update 5 and later
Retail 7.3.1
Retail 7.3.2 and later
Retail 7.3.5 and later
Retail 8.1.1 and later
The file is named Contoso.Commerce.Runtime.SalesTransactionSignatureSample.dll.config , and it's
under CommerceRuntime\Extensions.SalesTransactionSignatureSample\bin\Debug .
6. Update Retail Server configuration file. In the RetailSDK\Packages\RetailSer ver\Code\web.config file,
add the following lines to the extensionComposition section.

<add source="assembly" value="Contoso.RetailServer.SalesTransactionSignatureSample" />

7. Run msbuild for the whole Retail SDK to create deployable packages.
8. Apply the packages via Microsoft Dynamics Lifecycle Services (LCS) or manually. For more information, see
Create deployable packages.
Enable the digital signature in offline mode for Modern POS
To enable the digital signature in offline mode for Modern POS, you must follow these steps after you activate
Modern POS on a new device.
1. Sign in to POS.
2. On the Database connection status page, make sure that the offline database is fully synchronized. When the
value of the Pending downloads field is 0 (zero), the database is fully synchronized.
3. Sign out of POS.
4. Wait a while for the offline database to be fully synchronized.
5. Sign in to POS.
6. On the Database connection status page, make sure that the offline database is fully synchronized. When the
value of the Pending transactions in offline database field is 0 (zero), the database is fully synchronized.
7. Restart Modern POS.
Cash register functionality for Sweden
2/13/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

This topic provides an overview of the cash register functionality that is available for Sweden in Dynamics 365
Commerce. It also provides guidelines for setting up the functionality. The functionality consists of the following
parts:
Common point-of sale (POS) features that are made available to customers in all countries or regions, such as
an option to prevent sales and returns from being combined on one receipt
Sweden-specific features, such as additional counters in daily POS reports
A sample for integration of POS with Sweden-specific fiscal devices that are known as control units.

Overview of cash register functionality for Sweden


Common POS features
To learn about common POS features that are available to customers in all countries or regions, see Commerce
home page.
Additionally, the following POS features that were implemented for Sweden have been made available to
customers in all countries or regions:
Prohibit sales and returns from being combined on one receipt. When you set the Prohibit mixing
sales and returns in one receipt parameter in the POS functionality profile to Yes , Cloud POS and Modern
POS won't let users create a transaction that contains both positive and negative lines.
Print text fields on the receipt in a large font size. You can use the Font size parameter in the Receipt
format designer to specify that the large font size should be used for a field in a receipt format. (The large font
size is approximately double the usual font size.) For example, you can use this parameter to print the "Copy"
indicator on a receipt copy in large characters.
Register the printing of receipt copies in the POS audit event log. You can use the Audit parameter in
the POS functionality profile to enable the printing of receipt copies and other POS audit events to be registered.
The audit events are registered in the channel database and in Headquarters. You can view the audit events on
the Audit events page.
Prevent a copy of a receipt from being printed more than one time. When the parameter Audit in the
POS functionality profile is enabled, the Allow printing receipt copies POS permission controls whether
receipt copies can be printed. There is also an option to prevent a copy of a receipt from being printed more
than one time.
Sweden-specific POS features
The following Sweden-specific POS features are enabled when the ISO code parameter in the POS functionality
profile is set to SE :
Additional counters on daily POS reports, such as X-reports and Z-reports:
Receipt copy count and total amount
Value added tax amounts per tax rate
Total quantities of items and services sold
Total sales excluding and including VAT
Grand total sales, returns, and net
An Electronic journal (Sweden) channel report that lists continuous use events in the POS, such as sales,
returns, receipt copies, drawer openings, and price overrides.

NOTE
Currently, the Electronic journal (Sweden) report can't be exported or printed. However, functionality for
exporting and printing the report will be added later.

Integration of Retail POS with control units


Retail 10.0.6 and earlier
Retail 10.0.7 and later
For more information about the integration with control units that is available in Retail versions up to and including
Retail 10.0.6, see Sample for POS integration with control units for Sweden (legacy).

Setting up Commerce for Sweden


This section describes the settings that are specific to and recommended for Sweden. For more information, see
Commerce home page.
To use the Sweden-specific functionality, you must complete these tasks:
Set the Countr y/region field to SWE (Sweden) in the primary address of the legal entity.
Set the ISO code field to SE (Sweden) in the POS functionality profile of every store that is located in Sweden.
Sweden-specific settings can be divided into two groups:
General settings
Control unit–specific settings
General settings
You must specify the following general settings for Sweden.
1. Set up the following parameters for value-added tax (VAT) per Swedish requirements:
Sales tax codes
Sales tax groups
Item sales tax groups
Sales tax settings in items (item sales tax groups for sales)
For more information about how to set up and use sales tax, see Sales tax overview.
2. On the All stores page, update store details. Specifically, set the following parameters:
In the Sales tax group field, set the sales tax group that should be used for sales to the default customer.
Select the Prices include sales tax check box.
Set the Store name field so that it includes the company name. This change helps guarantee that the
company name appears on a sales receipt. Alternatively, you can add the company name to the sales
receipt layout as free-format text.
Set the Tax identification number (TIN) field so that it includes the company identification number.
This change helps guarantee that the company identification number appears on a sales receipt.
Alternatively, you can add the company identification number to the sales receipt layout as free-format
text.
3. Set up POS functionality profiles:
On the Functions FastTab, select the Audit and Prohibit mixing sales and returns in one receipt
check boxes.
On the Receipt numbering FastTab, set up receipt numbering. Create or update records for the Sale
and Return receipt transaction types. Set the formats so that they include only numeric characters. Clear
the Independent sequence check box in both records.
4. Update POS permissions groups and individual permission settings for store workers. Set the Allow
printing receipt copy permission to an appropriate value:
Allow always – The operator can print a copy of a receipt multiple times.
Allow only once – The operator can print a copy of a receipt only one time.
Allow only once, and only if HQ DB is available – The operator can print a copy of a receipt only
one time, and only if the headquarters database is available through Real-Time service, so that the
system can verify that no copies of the receipt have previously been printed in any store.
Never – The operator can't print a copy of a receipt.
5. Make the required changes to receipt formats for sales receipts:
Change the value of the Print behavior field to Always print for the receipt format.
In the Receipt format designer, make these changes:
Add at least the following fields to the Header section of the receipt layout:
Store name and Tax Identification Number fields, so that the company name and
identity number are printed receipts. Alternatively, you can add the company name and
identity number to the layout as free-format text.
Store address , Date , Time 24H , Receipt Number , and Register number fields.
Reprint Message field, so that the "Copy" indicator is printed on receipt copies. Set the
Font size field for the Reprint Message field to Large .
Add at least the following field to the Lines section of the receipt layout: Item name , Qty , and
Total price with tax .
Add at least the following fields to the Footer section of the receipt layout:
Tax fields, so that the receipt tax amounts for each tax rate are printed. For example, add the
Tax Id , Tax percentage , and Tax amounts fields to one line of the layout.
Payment fields, so that the payment amounts for each payment method are printed. For
example, add the Tender name and Tender amount fields to one line of the layout.
6. On the Channel repor ts configuration page, set up the Electronic journal (Sweden) report. In the
Permission groups field, select the POS permission groups that should be allowed to run the report.
Control unit–specific settings
Retail 10.0.6 and earlier
Retail 10.0.7 and later
For more information about setting up and configuring the integration with control units that is available in Retail
versions up to and including Retail 10.0.6, see Sample for POS integration with control units for Sweden (legacy).
Sample for POS integration with control units for
Sweden (legacy)
2/1/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 Retail is now Dynamics 365 Commerce - offering comprehensive omnichannel commerce across e-Commerce,
in-store, and call center. For more information about these changes, see Microsoft Dynamics 365 Commerce.

NOTE
This sample fiscal integration functionality does not take advantage of the fiscal integration framework and will be deprecated
in later updates. You should use the Control unit integration sample for Sweden instead.

SAMPLE CODE NOTICE


THIS SAMPLE CODE IS MADE AVAIL ABLE AS IS. MICROSOFT MAKES NO WARRANTIES, WHETHER
EXPRESS OR IMPLIED, OF FITNESS FOR A PARTICUL AR PURPOSE, OF ACCURACY OR COMPLETENESS
OF RESPONSES, OF RESULTS, OR CONDITIONS OF MERCHANTABILITY. THE ENTIRE RISK OF THE USE
OR THE RESULTS FROM THE USE OF THIS SAMPLE CODE REMAINS WITH THE USER.
NO TECHNICAL SUPPORT IS PROVIDED. YOU MAY NOT DISTRIBUTE THIS CODE UNLESS YOU HAVE A
LICENSE AGREEMENT WITH MICROSOFT THAT ALLOWS YOU TO DO SO.
This sample shows how to create Dynamics 365 Commerce extensions to integrate Retail Modern POS or Cloud
POS with a fiscal register. Specifically, this sample includes the code for integrating Retail POS with control units for
Sweden. It's assumed that a control unit is physically connected to a Hardware station that POS is paired with. As
an example, this sample uses the application programming interface (API) of the CleanCash® Type A control unit
by Retail Innovation HTT AB. Version 1.1.4 of the CleanCash® API is used. For the integration package that
includes the API and documentation, contact the manufacturer of the device.
This sample is a part of the Retail software development kit (SDK). For information about how to install and use the
Retail SDK, see the Retail software development kit (SDK) architecture.
This sample consists of extensions for the Hardware station, commerce runtime (CRT), and point of sale (POS). To
run this sample, you must modify and build the Hardware station, CRT, and POS projects. We recommend that use
you an unmodified Retail SDK to make the changes that are described in this topic. We also recommend that you
use a source control system, such as Microsoft Visual Studio Online (VSO), where no files have been changed yet.

NOTE
Some steps in the procedures in this topic differ, depending on the version of Commerce that you're using. For more
information, see What's new or changed in Dynamics 365 Retail.

NOTE
In Commerce 10.0.8 and above, Retail Server is known as Commerce Scale Unit. Because this topic applies to multiple
previous versions of the app, Retail Server is used throughout the topic.
Overview of integration with control units
The sample includes the following capabilities:
Sales, returns, and receipt copies are automatically registered in a control unit that is connected to the Hardware
station that is paired with the POS.
The control code and the manufacturing number of the control unit for a registered transaction are captured
from the control unit and saved in the transaction. (This data is also referred to as fiscal data.) The fiscal data can
be viewed on the Store transactions page.
Custom fields for the control code and the manufacturing number of the control unit can be added to a receipt
format, so that you can print the fiscal data for the transaction on a receipt.
The fiscal data for a transaction is printed on the Electronic journal (Sweden) channel report.
If a failure occurs during the registration of a transaction in the control unit, the fiscal data for the transaction
remains blank. In this case, a new transaction can't be started, and the current shift can't be closed. The operator
will be asked to try to register the unregistered transaction again in the control unit. If the second attempt fails,
the operator can skip the registration, provided that the operator has a special permission. If the operator skips
the registration of a transaction in the control unit, information about this event is saved in the transaction
instead of the fiscal data.

NOTE
Currently, the control unit integration sample doesn't support customer orders. However, a sample that supports customer
orders will be available at a later date.

Setting up integration with control units


You must specify the following settings, so that Retail POS is integrated with control units for Sweden.
1. Create fiscal register configurations, and assign them to hardware profiles:
a. On the Fiscal register configurations page, create a new fiscal register configuration record. Set
the name and the description of the configuration.
b. Fill in the configuration content. For this sample, a configuration is an XML file that establishes the
mapping between sales tax codes and a control unit's VAT groups. You can map up to four sales tax
codes. In the following example of a configuration, VAT10 and VAT20 represent sales tax codes that
must be mapped.

<UnitConfiguration>
<TaxMapping>
<Tax taxCode="VAT10" controlUnitTaxId="1"/>
<Tax taxCode="VAT20" controlUnitTaxId="2"/>
</TaxMapping>
</UnitConfiguration>

You can also export a sample configuration by clicking Expor t sample configuration on the Action
Pane.
c. On the Hardware profiles page, select the hardware profile of the Hardware station that the POS is
paired with and the control unit is connected to. On the Fiscal register FastTab, set the following
fields:
In the Fiscal register field, select Third-par ty driver .
In the Configuration field, select the name of the fiscal register configuration that you just
created.
2. Set up custom fields for receipt layouts, so that the control code and the manufacturing number of the
control unit are printed on receipts:
a. On the Language text page, add two records for the captions of the custom receipt layout fields. In
the appropriate fields, specify the language ID for the captions (for example, sv-se ), the text ID (for
example, 900001 and 900002 ), and the caption text (for example, Control code and Control unit
ID ).
b. On the Custom fields page, add two records for the custom receipt layout fields. In the Type field,
select Receipt . Specify names and captions for the custom receipt layout fields:
Control code:
Name: FiscalRegisterControlCode
Caption text ID: The text ID that you specified for the control code field (900001 in the
preceding example)
Manufacturing number of the control unit:
Name: FiscalRegisterId
Caption text ID: The text ID that you specified for the control unit ID field (900002 in the
preceding example)
c. For sales receipt formats, in the Receipt format designer, in the Footer section of the receipt layout,
add the fields for the specified captions (Control code and Control unit ID in the preceding
example).
3. Update POS permissions groups and individual permission settings for store workers. To allow workers who
are assigned to the permission group to skip the fiscal registration, select the Allow skip fiscal
registration check box.

Development environment
Follow these steps to set up a development environment so that you can test and extend the sample.
1. Extend the Hardware station component:
a. Open the Hardware station solution under RetailSDK\SampleExtensions\HardwareStation .
b. Find the HardwareStation.Extension.FiscalRegisterSample.csproj extension project, and
compile it.
c. Find extension assemblies and configurations.
Retail 7.3 and earlier
Retail 7.3.1 and later
Retail 10.0 and later
Find the following files in Extension.FiscalRegisterSample\bin\Debug :
The Contoso.Commerce.HardwareStation.FiscalRegisterSample.dll assembly
The Contoso.Commerce.HardwareStation.FiscalRegisterSample.dll.config configuration
The Interop.CleanCash_1_1.dll assembly
d. Copy the files to a deployed Hardware station machine:
Remote Hardware station: Copy the files to the bin folder under the Microsoft Internet
Information Services (IIS) Hardware station site location.
Local Hardware station: Copy the files to the Modern POS client broker location.
e. Find the configuration file for Hardware station's extensions.
Retail 7.3 and earlier
Retail 7.3.1 and later
Retail 10.0 and later
Remote Hardware station: The file is named hardwarestation.shared.config , and it's under
the IIS Hardware station site location.
Local Hardware station: The file is named HardwareStation.Dedicated.config , and it's under
the Modern POS client broker location.
f. Add the following section to the composition section of the config file.
Retail 7.3 and earlier
Retail 7.3.1 and later
Retail 10.0 and later

<add source="assembly" value="Contoso.Commerce.HardwareStation.Extension.FiscalRegisterSample" />

g. Restart the Hardware station service:


Remote Hardware station: Restart the Hardware station site from IIS Manager.
Local Hardware station: End the dllhost.exe process in Task Manager, and then restart Modern
POS.
2. Extend the CRT component:
a. Open the CRT solution, CommerceRuntimeSamples.sln , under
RetailSdk\SampleExtensions\CommerceRuntime .
b. Find the Runtime.Extensions.FiscalRegisterReceiptSample project, and build it.
c. Find the ext.config file for CRT:
Retail Ser ver : The file is named commerceRuntime.ext.config , and it's under the bin\ext
folder under the IIS Retail server site location.
Local CRT on Modern POS: The file is named CommerceRuntime.MPOSOffline.Ext.config ,
and it's under the bin\ext folder under the local CRT client broker location.
d. Register the CRT change in the configuration file.

<add source="type" value="Contoso.Commerce.Runtime.FiscalRegisterReceipt,


Contoso.Commerce.Runtime.FiscalRegisterReceipt" />

NOTE
Do not edit the commerceruntime.config and CommerceRuntime.MPOSOffline.config files. These files aren't
intended for any customizations.

e. Find the Contoso.Commerce.Runtime.FiscalRegisterReceiptSample.dll assembly file in


Extensions.FiscalRegisterReceiptSample\bin\Debug .
f. Copy the assembly to the CRT extensions folder:
Retail Ser ver : Copy the assembly to the \bin\ext folder under the IIS Retail server site location.
Local CRT on Modern POS: Copy the assembly to the \ext folder under the local CRT client
broker location.

NOTE
All the code changes for CRT and Retail Server are all part of RetailSdk\SampleExtensions. Therefore, the
preceding steps show how to build, deploy, and test these code changes.

3. Extend the Modern POS component:


a. Open the solution at RetailSdk\POS\ModernPOS.sln , and make sure that it can be compiled
without errors. Also make sure that Modern POS can be run from Microsoft Visual Studio using the
Run command. (Modern POS must not be customized. You must enable User Account Control [UAC],
and you must uninstall previously installed instances of Modern POS as required.)
b. Include FiscalRegisterSample in the Pos.Extensions project.
c. Enable the extension to be compiled in tsconfig.json by removing the FiscalRegisterSample
folder from the exclude list.
d. Enable the extension in Extensions\extensions.json by adding the following lines in the
appropriate place.

{
"debugBuildsOnly": false,
"baseUrl": "FiscalRegisterSample"
}

e. Rebuild the solutions.


f. Run Modern POS in the debugger, and test the functionality.
4. Extend the Cloud POS component:
a. Open the solution at RetailSdk\POS\CloudPOS.sln , and make sure that it can be compiled without
errors.
b. Include FiscalRegisterSample in the Pos.Extensions project.
c. Enable the extension to be compiled in tsconfig.json by removing the FiscalRegisterSample
folder from the exclude list.
d. Enable the extension in Extensions\extensions.json by adding the following lines in the
appropriate place.

{
"debugBuildsOnly": false,
"baseUrl": "FiscalRegisterSample"
}

e. Rebuild the solutions.


f. Run the solution by using the Run command and following the steps in the Retail SDK handbook.
g. Test the functionality.
5. Set up the fiscal register configuration and other required parameters in Headquarters. For more
information, see Cash register functionality for Sweden.
Production environment
Follow these steps to create and apply deployable packages that contain Commerce components in a production
environment.
1. Extend the POS component
a. Enable the extension to be compiled in tsconfig.json by removing the FiscalRegisterSample
folder from the exclude list.
b. Enable the extension in Extensions\extensions.json by adding the following lines in the
appropriate place.

{
"baseUrl": "FiscalRegisterSample"
}

2. Make the following changes in the package config files under the RetailSdk\Assets folder:
a. Add the following section to the composition section of the commerceruntime.ext.config and
CommerceRuntime.MPOSOffline.Ext.config config files.

<add source="assembly" value="Contoso.Commerce.Runtime.FiscalRegisterReceiptSample" />

b. Add the following section to the composition section of the Hardware station configuration file.
Retail 7.3 and earlier
Retail 7.3.1 and later
Retail 10.0 and later
Modify the HardwareStation.Shared.config and HardwareStation.Dedicated.config
configuration files.

<add source="assembly" value="Contoso.Commerce.HardwareStation.Extension.FiscalRegisterSample" />

3. Make the following changes in the BuildTools\Customization.settings package customization


configuration file:
Add the following line to include the Hardware station extension in deployable packages:

<ISV_CommerceRuntime_CustomizableFileInclude="$(SdkReferencesPath)\Contoso.Commerce.HardwareStati
on.Extension.FiscalRegisterSample.dll"/>

4. Run msbuild for the whole Retail SDK to create deployable packages.
5. Apply the packages via Microsoft Dynamics Lifecycle Services (LCS) or manually. For more information, see
Retail SDK packaging.
Reporting and analytics with Power BI home page
4/11/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic points you to resources that you can use to learn more about the business intelligence (BI) and reporting
tools that are available.

Get started
Information access and reporting
Tech Talk: Reporting options (video)
Finance and Operations: Power BI Analytics & Reporting Services blog (blog)

Analytical workspaces
Workspaces can use rich infographics and visuals that are supported by Microsoft Power BI. These infographics and
visuals include many controls that are provided by third parties. Therefore, workspaces can provide a highly visual,
interactive experience for users.
Users can interact with data by clicking or touching visuals on the page. They can see cause and effect, and do
simple what-if operations without leaving the workspace. Thanks to stunning, interactive visuals, your users will
have fun exploring data and discovering hidden trends.
To learn more, see the following topics:
Embedded Power BI in workspaces
Power BI Embedded integration
Add analytics to workspaces by using Power BI Embedded
Help secure analytical workspaces and reports by using Power BI Embedded
Power BI content home page

Business documents and printing


Reporting solutions are often used to capture and communicate the details of business transactions. Therefore, a
reporting solution must be able to produce physical manifestations of business data by using existing devices, such
as network printers. Examples of business documents include sales invoices, customer statements, and checks.

To learn more, see the following topics:


Document Reporting Services
Document printing overview
Install the Document Routing Agent to enable network printing

Electronic reporting
Electronic reporting (ER) is the tool that you use to configure electronic document formats that comply with the
legal requirements of various countries or regions. The applications of electronic reporting include financial
auditing, tax reporting, and electronic invoicing.
To learn more, see the following topics:
Electronic reporting (ER) overview
MManage the Electronic reporting (ER) configuration lifecycle
Create Electronic reporting (ER) configurations

Financial reporting
Standard financial reports are provided that use the default main account categories. You can use the report
designer to create or modify traditional financial statements, such as income statements and balance sheets. You
can then share the results with other members of your organization. Examples of financial reporting include
balance sheets, cash flow, and summary trial balance year over year.

To learn more, see the following topics:


Financial reporting
Generate financial reports
Financial report components
Technical reference reports
The following reports provide reference information about the objects:
Find information about standard data entities
License codes and configuration keys report
SQL Server Reporting Services (SSRS) reports that are available
Workflow types report
Information access and reporting
11/5/2019 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains the various reporting options available as part of the platform.

Why information access is important


Information access is an essential part of an ERP solution and represents a significant portion of the user
engagement with the system. Consider the numerous methods of capturing information related to daily activities
and the level of investments required to manage the data. Employees depend on logical interpretations of massive
amounts of data to stay on top of their daily tasks. Out of the box the platform provides a collection of reporting
solutions to address the various information access needs of an ERP solution. In an increasingly competitive
environment, mergers and acquisitions seem to occur as often as the change in seasons. More than ever before,
businesses today are finding ways to expand their global reach to attract more customers. To be successful, they
must adapt legacy solutions used to communicate with customers and prepare for the enforcement of regional
regulatory requirements associated with new markets. Beyond the primitive functions provided by Microsoft Azure
– compute, networking, storage, and authentication – the platform provides tools to manage resources for
organizations that span in size from small businesses to global enterprise conglomerates. These tools are designed
with flexibility in mind, to accommodate a dynamic world of business.

What is a "report" in the application?


A report can be defined simply as a structured presentation of data. Under ideal circumstances, reports materialize
data in such a way that it allows the user to make informed decisions. The application supports a broad spectrum
of information access scenarios: cross company all-up financial reporting; analytical dashboards and tiles;
electronically transferable funds; customer sales invoices; checks and tax documents; and many more. Examples of
integrated report scenarios that involve the consumption of business data include:
Native controls including list pages, grid controls, and chart visualizations.
Dashboards and workspaces containing predefined and personalized views.
Financial repor ting providing all-up views across legal entities.
Structured documents distributed internally to employees or externally to customers and vendors.
Although each of these scenarios at its core involves the presentation of structured business data, the process of
accessing these reports and how the results are subsequently consumed varies greatly. Flexibility in the user
tooling is essential for scenarios that involve data exploration. By contrast, layout precision is required for
compliance with most regulatory documents. Given the diversity of information access scenarios it's
understandable that not all reports are created equal. This topic is intended to help familiarize you with the various
reporting options available as part of the platform.

Common myths of reporting


To become a proficient report maker, it's often useful to let go of past inhibitions. The following section seeks to
rebuke three common myths about reporting.
Myth #1: Operational repor ts require "real-time" data To the contrary, there are relatively few reporting
scenarios that require real-time results. And, in the grand scheme of things, taking a critical stance on a request
for real-time views is recommended given the high development costs and potential heavy burden these
solutions may incur on production environments.
Myth #2: The best tool is the one the developer is most comfor table using Consider a customer
request for a report that allows them to monitor company's assets. In the past, a developer would build a static
report displaying a list of inventory items with complex calculations relying entirely on the user to provide
filters to sufficiently reduce the result set. This solution may function perfectly in developer environments with a
reduced data set. However, this approach is prone to unnecessarily consume significant amounts of compute
resources when utilized in production.
Myth #3: Developers are good at creating visually compelling designs In reality, developers are the
often the worst offenders when it comes to producing elegant design layouts that will appeal to the customer's
aesthetic preferences. When it comes to analytical reports you're better off empowering users to both explore
the data directly and share personalized views.

Understanding report requirements


The best reporting solutions are designed with the expertise, daily functions, and information access needs of the
target user in mind. The platform offers several tools designed to meet the functional requirements which are
common across various reporting experiences. Without question, selecting the right tool that most effectively
addresses the need requires a clear understanding of the customer experience. You can drastically increase your
chances of delivering a complete and robust solution that fully satisfies customer requirements by simply asking
the right questions. Here are some leading questions to ask when evaluating customer requirements for reporting
solutions:
Get to know the user
What is the proficiency of the target persona? Are they familiar with analytical tools like Microsoft Excel?
Does the user require a guided parameter experience to refine the dataset?
How frequently will the report be accessed?
Familiarize yourself with the data
Are they looking for transactional, analytical, and/or predictive information?
Does the shape of the data change and if so, how often?
Will the report include data from external sources?
Determine how the results will be used
Are you going to explore the data to gain insights?
How will the results be shared with others?
Is there a fixed document structure for the target output?
It's understandable that customers want a solution that aligns with the existing processes they are comfortable
using. However, there's a lot you can learn through these leading questions used to discover what the customer
actually needs to be successful in their task. Delight your customers by providing them with solutions that
empower them to be more productive.

Reporting experiences
Information access scenarios supported in applications can be broken down into five distinct reporting
experiences. Specialized tools are provided to meet the complex and diverse reporting needs of various functions
throughout the organization.
Operational views – Designed to address the specific needs of a given business persona.
Business documents – Static documents used to capture and exchange processed business data.
Analytical tools and visualizations – Personalized presentations of logical calculations that allow the user to
explore their data.
Electronic repor ting – Tool used to configure formats for electronic documents.
Financial repor ting – Designed to provide in-depth accounting management tools based on standard views
of financial activities across legal entities.
Scorecard
The following table can be used as a guide when choosing the right tool for the reporting solution.

A N A LY T IC A L
O P ERAT IO N A L B USIN ESS TO O L S & EL EC T RO N IC F IN A N C IA L
M A K ER VIEW S DO C UM EN T S VISUA L IZ AT IO N S REP O RT IN G REP O RT IN G

Persona Developer Developer Power user Power user Power user

Authoring tool Visual Studio Visual Studio PowerBl.com Excel Management


PowerBl app Reporter
Designer

Time to market Weeks Weeks Hours Hours Hours

Data sources Entity DB OLTP Entity DB OLTP OLTP


OLTP Azure Catalog

Effort Days Days Minutes Hours Hours

A N A LY T IC A L
O P ERAT IO N A L B USIN ESS TO O L S & EL EC T RO N IC F IN A N C IA L
VIEW ER VIEW S DO C UM EN T S VISUA L IZ AT IO N S REP O RT IN G REP O RT IN G

Target Organization Back Office Power user Power user Finance officers

Data accuracy Near real-time Real-time Near real-time Real-time Cached views

Personalization Medium- None High - Free form Low - Expressions Medium -


Modeled designer Modeled

Sharing None PDF export Dashboards Excel export Excel export


0365 export Reports
Email Tiles

Printing Screen captures Local printer Screen captures Excel Local printer
Network devices

Automation Auto-refresh Batch integration Scheduled refresh Batch jobs None

Scenarios Monitoring Transactions Exploratory Transactions Accounting

NOTE
"Near real-time" denotes processed data that is slightly slower than real-time.

Operational views
Operational views represent an essential part of the average employee's daily life. As important as a brush is to a
painter, operational views are used to empower people to be productive. These views contain logical presentations
of data to help the user discover patterns, highlight anomalies, and act on the most important tasks. Targeted
experiences are used to satisfy the unique information access requirements for a given persona. These views
provide actionable controls that help to maximize efficiency for common user actions. Learn more about
constructing custom operational workspaces in Build operational workspaces. Example applications of operational
views include controller operations, production floor management, and customer collections monitoring.

What are the characteristics and capabilities?


A fully-integrated experience with responsive visualizations fully-aware of user context and selections.
Views can be personalized to a large extent, to meet the unique desires of the user that are prone to change.
Actionable controls allow the user to efficiently transact and monitor activities.
Combination of analytical data to help answer general questions and transactional views to access record
details.
What distinguishes "operational views" from other types of visualizations?
General purpose tools designed to be utilized at all levels of the organization.
Pre-defined views are provided based on common information access requirements associated with a specific
role within the organization.
Highly responsive to user interactions and changes made to the transactional database.
What's impor tant to consider when selecting this tool for the job?
The platform allows users to embed Power BI tiles and links to reports directly in workspaces.
Users can introduce personalized workspaces to create their own custom operational views.
Form data sources now support aggregate queries for analytical views using native controls.

Analytical tools and visualizations


Embedded visuals based on analytical data allow users to navigate between aggregate views down to the
transactional details that affect them. Power BI service integration delivers world-class analytical tools with built-in
support for accessing data. These tools empower "citizen developers" to author the reports they need and share
the reports with others within the organization. Use the Power BI content packs available in Lifecycle Services to
get started. Learn more about Power BI integration in Features and services available through Power BI integration.
Example applications of analytical tools and visualizations include customer sales per quarter, total revenue by
region, and inventory turn-over.
What are the characteristics and capabilities?
Near real-time results that provide macro level insights based on micro level activities.
Common applications include charts, KPIs, and more complex visuals.
Offer a deep exploratory experience with interactive controls that provide drill-thru navigations.
What distinguishes "analytical tools and visualizations" from other types of repor ts?
Highly graphical in nature, these presentations are used to find the hidden meaning behind the data.
Free form web designer that supports rich visualizations with built-in user interactions.
Utilized by power users to explore data and gain insight through analysis.
Personal in nature by allowing the user to choose which information to include.
Built-in sharing capabilities and user controlled access management.
What's impor tant to consider when selecting this tool for the job?
Developers are responsible for publishing data entities that can be consumed by Power BI.
Power users can produce mash-up views based on application data combined with external data sources.
Visuals are highly-responsive to user interactions and provide near real-time results when using Direct Query
access to the data source.

Business documents
These reporting solutions are often used to capture and communicate the details of business transactions. As such,
this requires a reporting solution capable of producing physical manifestations of business data using existing
devices like network printers. Learn more about the enhancements to the Document reporting service in
Document Reporting Services. Example applications of business documents include sales invoice, customer
statements, and checks.
What are the characteristics and capabilities?
Paginated documents that are ultimately destined to be printed on paper or distributed via email.
Heavily dependent on parameters to filter and produce the desired result set.
Business documents capture a snap-shot of customer and vendor activity that can be archived for future
reference.
The complex solutions are developed in Visual Studio and deployed as part of the application.
What distinguishes "business documents" from other types of visualizations?
Asynchronous data access and rendering solution designed to handle relatively large data sets.
Dedicated reporting services offer distributed resource utilization.
Ideal solution for automated processes that involve bulk generation of business documents.
Includes built-in support for document archive and data extraction via file export to PDF in addition to Word,
Excel, and CSV.
What's impor tant to consider when selecting this tool for the job?
Application suite reports are intended to be used as a starting point for custom solutions.
Solutions are heavily dependent on metadata changes and do not offer personalization.
Modifications to out-of-box solutions must be managed as a metadata change.

Electronic reporting
Electronic reporting (ER) is the tool to use to configure electronic document formats in accordance with the legal
requirements of various countries/regions. For more information about the Electronic reporting tool, see Electronic
reporting (ER) overview. Example applications of electronic reporting include financial auditing, tax reporting, and
electronic invoicing.
What are the characteristics and capabilities?
Perfect tool for producing TEXT, XML, and OPENXML worksheet formats.
Tooling is designed for business users familiar with Excel-based formulas.
Highly adaptable to adhere to changes in regulatory requirements.
Component versioning is available to manage draft definitions.
What distinguishes "electronic repor ts" from other types of visualizations?
Designed for electronic submission to banks, governments, and other external entities.
Use formulas to define data transformations into groups containing summary data and logical calculations.

Financial reporting
Standard financial reports are provided using the default main account categories. Use the report designer to
create or modify traditional financial statements, such as Income statement and Balance sheet and share the results
with other members of your organization. For detailed information about the Financial reporting tooling, see
General ledger and Financial reporting overview. Example applications of financial reporting include balance
sheets, cash flow, and summary trial balance year over year.
What are the characteristics and capabilities?
Built-in flexible financial reporting solution designed to handle complex organizational structures.
Fully-integrated with General ledger.
Create custom financial reports using the default solutions as a starting point.
Interactive reports with drill-down capabilities to navigate down to transaction details.
What distinguishes "financial repor ts" from other types of visualizations?
User controls are tailored for the specialized needs of financial reporting.
Create roll-up reports containing data across companies or business units.
Utilizes a financial data mart for optimized performance.
Features available through PowerBI.com integration
4/11/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Microsoft Power BI is a suite of business analytics tools that let you analyze data and share insights. By using
Power BI tools, you can explore data and quickly create rich reports and dashboards. You and your colleagues can
then use the reports interactively on many devices. The application uses Power BI for data exploration.

Data exploration through Power BI


There are various types of reporting.

Chart controls are used to build embedded experiences that require visuals.
Microsoft SQL Server Reporting Services (SSRS) is an engine that is designed for pixel-perfect, formatted reports
that often require printing. We use SSRS for document-style reports, such as invoices and purchase orders. Our
investments in SSRS integration focus on document generation and printing scenarios.
For all non-document reports or reports that don’t have to be printed, we want to embrace Power BI.
In the past, we have used the terms self-service reports and ad-hoc reports to refer to Power BI. We will now use
the term data exploration. This change in terminology reflects a subtle shift in paradigms. Self-service reports were
reports that the users themselves created. (Alternatively, a power user created the reports and shared them with
other people. These people then continued to adjust the reports according to their requirements.) Often, users had
to change the shape of a chart, add a new column, change the grouping, or just create a new view of data.
Although we might think of the results as reports, users are just trying to understand the data by exploring it,
pivoting it around columns, and changing the shape of charts. Technologies of the past didn’t let users interactively
explore large volumes of data. Therefore, users had to create "reports," or many views of the same data.
In Power BI, thanks to the in-memory database technologies in Microsoft SQL Server, a report is a just the starting
point for interactive data exploration. Charts in a Power BI report invite users to click them, visuals change shape
interactively, and data can easily be filtered. Users can easily adjust existing reports and create their own views of
the data. The reports can be shared, and teams can collaborate over data.
Therefore, although you might use the term report to refer to Power BI artifacts, you should think about the larger
scenario that is involved. Your users are exploring data! Power BI is the tool of choice when you must address data
exploration and visualization requirements.
For a detailed discussion of reporting concepts, see Information access and reporting.

Ready-made Power BI content


You can use ready-made Power BI reports right away. Two types of Power BI content are available:
Power BI content that is available in Microsoft Dynamics Lifecycle Service (LCS)
Power BI content packs that are distributed in the PowerBI.com marketplace
Depending on your version, you can use one of both types of content.
Power BI content that is available in LCS
LCS is a service that can manage your environments. LCS is operated by Microsoft. Power BI reports are developed
by using Entity store and are then distributed in LCS as implementation assets. In LCS, you will find not only
content that is developed by Microsoft, but also content that is developed by independent software vendors (ISVs)
and partners.
We will continue to release Power BI content that is based on Entity store. For information, see the Roadmap.
Power BI content packs that are distributed in the PowerBI.com marketplace
There are several Power BI content packs in the PowerBI.com marketplace. Although these content packs will
continue to be supported until further notice, our future investments in content packs will be based on Entity store,
and content will be released via LCS.
For more information about the content, see Power BI content.

Extending, creating, and distributing Power BI reports


You should use the ready-made Power BI content as a first step. You can modify ready-made reports or extend
them by using capabilities that are built into PowerBI.com. In addition to modifying ready-made reports, you can
extend them using Power BI authoring tools such as Power BI desktop. You can also create new reports. You can
use several approaches to create new Power BI reports.
Creating high-volume, near-real-time "operational Power BI reports" by using Entity store
Entity store is an operational data store that is built specifically for Power BI integration. To create high-volume,
near-real-time Power BI reports that use Entity store, a business analyst or a developer can use Power BI desktop,
which is the authoring tool for Power BI reports. Like other artifacts that developers create, these reports must be
distributed to your users via LCS.
Reports that are created by using Entity store take advantage of DirectQuery technology. This technology enables
reports to be created over large volumes of data. Reports that are created by using DirectQuery technology don't
cache data in the PowerBI.com service. Instead, data is always stored in application.
For an overview of Power BI integration with Entity store, see Power BI integration with Entity store.
If you're upgrading from Microsoft Dynamics AX 2012, you can upgrade cubes to aggregate measurements that
use Entity store. You can then create Power BI reports by using Entity store. For more information, see Migrate
upgraded AX 2012 R3 sales cubes to the entity store.
Creating Power BI reports by using Excel
In addition to using the Power BI desktop authoring tool, you can use "Power tools" that are incorporated into Excel
to create visualizations. Your organization might have many users who already use Excel every day. For a quick
"one-off" report, Excel might be the best option for these users.
There are several scenarios where you can use Excel:
Export data from a page in Dynamics 365 into Excel. You can then use the Power View add-in that is built into
Excel to visualize the data. The Excel workbook can be used as a stand-alone visualization. In addition, you can
import the report into the PowerBI.com service.
Use the Power Query extension in Excel to combine the data in another worksheet (or data that is imported
from OData endpoints) with external data. You can visualize the resulting data by using Power View.
Use the PowerPivot extension in Excel to ingest a larger amount of data into Excel.
Consider using Export to Excel functionality for ad-hoc "one-off" reports. If the reports will be shared with a group
of users, you should consider using Entity store to create them.

Sharing and using reports in PowerBI.com


PowerBI.com is a service that is offered by Microsoft. It lets you create dashboards and reports, and also enables
collaboration with a group of users. Regardless of how you create your reports, you can share reports with users
by uploading them into the PowerBI.com service. (This process is also known as publishing.)
After your reports are uploaded, your users can view, adjust, and explore them either on the web (when they are
connected to the Internet at home or in the office) or by using apps on a device.
For more information about Power BI concepts, see the Power BI documentation.

Pinning Power BI content to the client


PowerBI.com can be used on its own as a reporting and dashboard solution for your organization or business unit.
However, users can also pin tiles and reports from their own PowerBI.com accounts to workspaces. Power BI
content in Dynamics 365 provides contextual insights that are related to business operations.
You can pin two types of objects from PowerBI.com: tiles in PowerBI.com dashboards, and reports.
Before you can pin Power BI content, you must configure Power BI in your Dynamics 365 environment.
One -time configuration of PowerBI.com integration
Before you can pin tiles or reports, an administrator must configure integration with PowerBI.com in your
environment. This configuration must be done only one time per environment. For instructions, see Configure
Power BI integration for workspaces.
Pinning PowerBI.com tiles
Power BI tiles that are pinned to the Dynamics 365 client provide insightful visuals at a glance. They also let users
open PowerBI.com for interactive analysis. For more information, see Configure Power BI integration for
workspaces.
Pinning PowerBI.com reports to workspaces
As a power user, a business analyst, or a developer, you can use Power BI desktop to create reports that use Entity
store. Not only are these reports rich and interactive, but your users can make changes without having to rely on
another person.
Although the reports in PowerBI.com are powerful and interactive on their own, they can also be pinned into
workspaces. Your users can pin reports to workspaces themselves. For more information about how to pin reports
to workspaces, see Pin Power BI reports to workspaces.
Pin PowerBI.com content
4/11/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Microsoft Dynamics 365 Finance uses Power BI for data exploration. This topic explains how you can pin full-page
Power BI reports to workspaces to give your users an interactive data exploration experience.
This topic assumes that you're familiar with the feature that lets you pin Microsoft Power BI tiles to a workspace.
For more information, see Features and services available through Power BI integration. If you're a developer who
is creating a workspace, to let users pin Power BI tiles to the workspace, embed the Power BI tile control.

Pin Power BI reports to workspaces


Microsoft Dynamics AX platform update 1 (May 2016) introduced the capability to pin Power BI reports to
workspaces. Power BI reports can be added to any workspace that contains a Links section. In other words, the
reports can be added to most of the out-of-box workspaces that are included in the product. To enable Power BI
reports and tiles, you must configure Power BI to work with the application. This one-time operation must be
completed by an administrator of the environment. For instructions, see Configure Power BI integration for
workspaces. After you've configured Power BI to work with the application, open the Ledger budgets and
forecasts workspace in the client. In the workspace, click the Options tab. Notice that this tab contains buttons to
open the (Power BI) tile catalog and the (Power BI) report catalog. Click Open repor t catalog . A dialog box that
contains a list of reports appears. The list of reports comes from the reports that you have in your Power BI
account. If you open PowerBI.com in a browser, you will see that the same list of reports is used across your Power
BI dashboards. Select some reports, as shown in the following illustration, and then click OK to continue.

Next, scroll to the bottom of the Links section in the workspace. Notice that a new section for Power BI reports has
been added to your links.
Full-page Power BI reports in the client
You can open and run Power BI reports in the client. The functionality resembles the functionality for running
Microsoft SQL Server Reporting Services (SSRS) reports. To run a Power BI report, in the Links section, click the
link for one of the Power BI reports. For this example, click the Retail Analysis Sample link. The Power BI report
is opened in the client in a full-page view, as shown in the following illustration. This report is interactive. As you
click regions of the report, the remaining visuals react to your selection.

You can filter the data on the report by using the filter pane. The following illustration shows the report after filters
have been applied.
You can also open this report on PowerBI.com and make changes. You can then save the modified report as
another copy that has a different name, and even pin the new report to the workspace.

Power BI in user-created workspaces


So far, we have described how to add Power BI tiles and reports to "developer-created" workspaces. Developer-
created workspaces are workspaces that are created by Microsoft (that is, they are built into the product), by your
independent software vendor (ISV) or partner, or by in-house developers. However, in Microsoft Dynamics AX
platform update 1 (May 2016), users can create new workspaces by using the personalization capabilities of the
client. To create a new workspace, on the home page (or the dashboard), right-click the tile for a workspace, and
then click Add a workspace . A new workspace is created. New workspaces are named My Workspace 1 , My
Workspace 2 , and so on. You can change the name later. Click the workspace that you just created. You can now
add Power BI tiles and reports by using the same options that we discussed earlier. The following illustration shows
an example.
Select analytical workspaces from PowerBI.com
2/7/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Analytical workspaces
The analytical workspaces that are bundled with the application suite offer users relevant insights into their
business data. However, in some cases, it might make sense to replace standard reports with custom reports that
are designed specifically for the users in your organization.
The world-class tooling that PowerBI.com provides lets you produce analytical reports that contain mashup views
that use data from external sources. In Platform update 26 for Finance and Operations, power users can replace the
standard embedded reports with those that are hosted on PowerBI.com.

IMPORTANT
The functionality that this topic describes isn't a personalization. The customization of analytical workspaces applies to all
users in the active legal entity.

Motivations for embedding PowerBI.com reports


Although standard reports deliver insights that are tailored for a given business persona, an organization might
prefer a custom report in some cases. The application lets power users promote custom reports that are hosted on
PowerBI.com and shared with members of the organization.
Here are some of the top motivations for selecting reports that are hosted on PowerBI.com:
PowerBI.com reports support data mashups that use external data sources and can be accessed outside the
application.
The reports are appropriate for demonstrating custom solutions that are hosted on PowerBI.com and embedded
in the application in one-box deployments.
Organizations that have Microsoft Power BI Premium services want to augment the standard reports.
Embed a PowerBI.com report in an analytical workspace

The How to embed PowerBI.com reports video (shown above) is included in the Finance and Operations playlist
available on YouTube.
To replace the standard reports, you must be a member of the System Report Editors security group. Members of
this security group can access the options in application workspaces that let them customize the standard reports.
This example shows how to replace the standard analytical report with a customized report that is hosted on
PowerBI.com.
1. Sign in and open the application report that you want to customize. In this example, you will replace the
standard analytical report that is embedded in the Compensation management workspace.
2. Select the Analytics tab to access the workspace's embedded analytical report.

By default, you will see the standard analytical workspace solution that is included with your application. The
reports in this solution are automatically deployed and configured for your environment during the
provisioning process.

NOTE
The analytical workspaces require a hosted Power BI service that is available only for dedicated environments. For
more information, see the blog post, Accessing Analytical Workspaces and Reports on 1-Box Environments.

3. On the Action Pane, on the Options tab, in the Power BI group, select Select Analytics to open the Power
BI Repor ts dialog box.
This dialog box lets you select among the reports that have been shared on the PowerBI.com service. The
reports are organized by workspace.
4. In the drop-down list, select the workspace that contains the report.
5. Select the report to embed in the application workspace, and then select OK .
6. To view the updates to the workspace, you must reload the page. Either move away from the workspace and
then return, or refresh your browser.
7. In the Compensation management workspace, select the Analytics tab to access the PowerBI.com report
that is now embedded in the analytical workspace.

Revert to the standard solution


After a PowerBI.com report has been embedded in an application workspace, updates to the report are reflected
immediately for users. However, to replace the report with another PowerBI.com solution, a power user must first
revert to the standard application solution. Follow these steps to revert to the standard application solution.
1. On the Action Pane, on the Options tab, in the Power BI group, select Restore Analytics .
2. To view the updates to the workspace, you must reload the page. Either move away from the workspace and
then return, or refresh your browser.
3. In the Compensation management workspace, select the Analytics tab to access the standard solution
that is now embedded in the analytical workspace.
Power BI content home page
10/2/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following PowerBI.com solutions are available for application environments.

PowerBI.com solutions available from Lifecycle Services (LCS)


The following PowerBI.com solutions are available in the Shared assets library of LCS. Refer to the version
information in the Shared assets library to download the correct version for your environment.

NOTE
Most of the PowerBI.com solutions in the following list have been embedded in analytical workspaces in recent versions.
Using analytical workspaces eliminates the need to download these solutions from the Shared assets library in LCS. The
topics in this list indicate where these PowerBI.com solutions have been embedded where applicable.

Actual vs budget
Cash overview
Compensation and benefits
Cost accounting analysis
Credit and collections management
Employee competencies and development
Financial performance
Fixed asset management
Organizational training
Practice manager
Production performance
Purchase spend analysis
Recruiting
Sales and profitability performance
Vendor payments
Warehouse performance
Workforce metrics

PowerBI.com solutions available from AppSource


The following PowerBI.com solutions are available from Microsoft AppSource.

NOTE
These solutions have been deprecated as documented in Power BI content packs available on AppSource.
Cost management
Financial performance
Retail channel performance
Learning Power BI content
2/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the Learning Microsoft Power BI content.

Reports that are included in the Power BI content


The reports that are included in the Learning Power BI content have both charts and tables that contain additional
information. The following table describes the reports.

REP O RT C O N T EN T S

Learning Overview Summary of other reports

Course Analysis Registration by location, attendee by status, courses by type


per company, and course attendance by job

Registration Analysis Registration list

Course Types Course types by skill

Instructor Analysis Ratio of courses to instructors, number of instructors, courses


by instructor, courses per instructor, and course agenda by
instructor

Courses Offered List of courses

Courses Design Course agenda

You can filter the charts and tiles on these reports, and pin the charts and tiles to the dashboard. For more
information about how to filter and pin in Power BI, see Create and Configure A Dashboard.

Understanding the data model and entities


The following data is used to fill the reports in the Learning Power BI content. This table shows the entities that the
content was based on.

EN T IT Y C O N T EN T S REL AT IO N SH IP S W IT H OT H ER EN T IT IES

Calendar Offset Calendar offsets to slice reports Course Agenda, Course Attendees

Company Companies to filter reports by Course Agenda, Course Attendees


EN T IT Y C O N T EN T S REL AT IO N SH IP S W IT H OT H ER EN T IT IES

Course Course, description, instructor name, Course Agenda, Course Attendees,


location, room, and status Course Skill

Course Agenda Agenda, course, and start and end Company, Calendar Offset, Date, Course
times

Course Attendees Name, status, job, and registration date Company, Calendar Offset, Date,
Course, Demographics, Employment,
Course, Employee Name, Employee
Title, Job, Position

Course Skill Skill, skill type, and level Course

Date Days, weeks, months, and years Course Agenda, Course Attendees

Demographics Date of birth, gender, ethnic origin, and Course Agenda, Course Attendees
marital status

Employment Start date, end date, and transition date Course Agenda, Course Attendees

Job Function, type, and title Course Agenda, Course Attendees

Position Position, title, and full-time equivalent Course Agenda, Course Attendees
(FTE)

Employee Name First name, last name, and full name Course Attendees

Employee Title Title and seniority date Course Attendees


Organizational training Power BI content
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the Finance and Operations - Organizational training Power BI content.

Reports that are included in the content pack


After you've connected the content pack to your data, the reports show your organization's data. If you've never
used Microsoft Power BI before, you can learn more about it on the Guided Learning page for Power BI. The reports
that are included in the content pack have both charts and tables that contain additional information. The following
table describes the reports.

REP O RT C O N T EN T S

Course Analysis Registration by location, course attendees by status, and


registration list

Course Types Course types by skill

You can filter the charts and tiles on these reports, and pin the charts and tiles to the dashboard. For more
information about how to filter and pin in Power BI, see Create and Configure A Dashboard.

Understanding the data model and entities


Application data is used to populate the reports in the Organizational training content pack. The following table
shows the entities that the content pack was based on.

EN T IT Y C O N T EN T S REL AT IO N SH IP S W IT H OT H ER EN T IT IES

Training_CalendarOffset Calendar offsets to slice reports Training_CourseAgenda,


Training_CourseAttendees

Training_Company Companies to filter reports by Training_CourseAgenda,


Training_CourseAttendees

Training_Course Course, description, instructor name, Training_CourseAgenda,


location, room, and status Training_CourseAttendees,
Training_CourseSkill

Training_CourseAgenda Agenda, course, and start and end Training_Company,


times Training_CalendarOffset, Training_Date,
Training_Course
EN T IT Y C O N T EN T S REL AT IO N SH IP S W IT H OT H ER EN T IT IES

Training_CourseAttendees Name, status, job, and registration date Training_Company,


Training_CalendarOffset, Training_Date,
Training_Demographics,
Training_Employment, Training_Course,
Training_WorkerName,
Training_WorkerTitle, Training_Job,
Training_Position

Training_CourseSkill Skill, skill type, and level Training_Course

Training_Date Days, weeks, months, and years Training_CourseAgenda,


Training_CourseAttendees

Training_Demographics Date of birth, gender, ethnic origin, and Training_CourseAgenda,


marital status Training_CourseAttendees

Training_Employment Start date, end date, and transition date Training_CourseAgenda,


Training_CourseAttendees

Training_Job Function, type, and title Training_CourseAgenda,


Training_CourseAttendees

Training_Position Position, title, and full-time equivalent Training_CourseAgenda,


(FTE) Training_CourseAttendees

Training_WorkerName First name, last name, and full name Training_CourseAttendees

Training_WorkerTitle Title and seniority date Training_CourseAttendees


Retail channel performance PowerBI.com solution
11/5/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

NOTE
This PowerBI.com solution has been deprecated as documented in Power BI content packs available on AppSource.

This topic provides information about the Retail channel performance PowerBI.com solution for Dynamics AX. This
PowerBI.com solution lets channel managers quickly build channel performance analytics to predict trends and
uncover insights, based on sales performance.
The Retail channel performance PowerBI.com solution lets you quickly build your channel performance analytics.
The PowerBI.com solution is designed specifically for channel managers who focus on sales performance to predict
trends and uncover insights. Its components draw directly from Retail and commerce data in the Dynamics AX
database, and provide drill-down reports about organization-wide sales performance across global geography by
employee, category, product, terminal, channel, and more. Power BI automatically creates reports and dashboards
that give you a great starting point for exploring and analyzing your Retail and commerce data. This article includes
the following information:
Learn how to connect the Retail channel performance PowerBI.com solution to a Dynamics AX data source.
View a list of reports that provide insights into retail channel performance.
Learn how to modify an existing report in the PowerBI.com solution to make it self-authored.
Get a glimpse of an actual data model that enables the whole experience in Power BI.

Connect the Retail channel performance PowerBI.com solution to a


Dynamics AX data source
1. Go to https://www.powerbi.com, and click Sign in . If you don't have an account, you can sign up to try the
new Power BI Preview for free.
2. To sign in, enter a Microsoft Office 365 account that has a Power BI account.
3. If your workspace appears, click Get Data at the bottom of the left navigation pane.
4. In Ser vices section, click Get .
5. Scroll or search to find Microsoft Dynamics AX Retail channel performance , and then click Get it
now .
6. Enter your Dynamics AX URL in the following format: https://<tenant>.cloudax.dynamics.com (for example,
https://YourAOSTenant.cloudax.dynamics.com ). Then click Next to pull data from Dynamics AX data storage
into this Power BI dashboard.
7. Select oAuth2 as the authentication method, and then click Sign in .
8. To sign in, enter an Office 365 account that has permission to access your Dynamics AX environment.
9. After data is successfully pulled from Dynamics AX into Power BI, you can view your personal Retail
channel performance dashboard in Power BI by clicking Retail channel performance dashboard in
the left navigation pane.

10. You can then take advantage of the Q&A feature in Power BI to query your Dynamics AX sales data by using
natural language.

View a list of reports


By clicking through any of the pinned tiles on the dashboard, you can navigate the following list of reports that
provide insights into retail channel performance:
Geographical sales distribution
Category sales performance
Sales summary by Tender type or payment method
Employee monthly performance
Store monthly performance
Product sales performance for the given category in the given store
For example, you might want to do a deeper analysis of geographical sales distribution.

Modify an existing report in the PowerBI.com solution to make it self-


authored
Here's an example that shows how easy it is to modify an existing report in the PowerBI.com solution to make it
self-authored. In this example, we will modify an existing report that is named Categor y & product
performance by adding Categor y level 1 to the Total amount by Month/Year chart on that report.
1. Click the Categor yProductPerformance tab at the bottom of the window to open the Categor y &
product performance report, and then click Edit repor t .
2. Select the chart that is named Total amount by Month/Year . Then, on the right side of the window, in the
Fields pane, expand the Default Retail Product Categor y Hierarchy node.

3. In the list of category levels for this hierarchy, select Categor y Level 1 . The name of the chart that you
selected this attribute for changes to Total amount by Month/Year and Categor y level 1 , and the chart
now shows the share of sales in each category for each month.
4. Finally, try to change the visualization itself. Select the Total amount by Month/Year and Categor y
level 1 chart, and then, in the Visualizations pane, click Area char t or Stacked area char t , and see the
effect.

Get a glimpse of the actual data model


The data model that is included in the PowerBI.com solution for the Dynamics AX data entities and aggregated data
entities lets you slice and dice across various measures by using different dimensions.
Additional resources
Features and services available through Power BI integration
Configure Power BI integration for workspaces
Analytical Workspaces (using Power BI Embedded)
4/11/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Dynamics Finance and Operations apps now deliver rich, interactive reports seamlessly integrated into application
workspaces. By using graphics and visuals supported by Power BI, workspaces can provide a highly-visual, yet
interactive experiences for users.

Overview
Workspaces in the application provide an overview of business processes or business units. With rich workspaces,
users can get a bird's-eye view of the state of business before diving into details and taking action. Workspaces
contain visuals, count tiles, and KPIs as well as quick links to reports and pages. Within a workspace, all controls are
tightly integrated to provide a highly-productive and engaging work environment to the user. Power BI Embedded
is a Microsoft Azure service that enables ISVs and app developers to surface Power BI data experiences within their
applications. With Power BI Embedded, developers can deliver always-up-to-date views with Direct Query. To learn
more about how the Power BI Embedded service integrates with the application, see Power BI Embedded
integration.

Power BI in workspaces
The application now delivers interactive reports that seamlessly integrate into application workspaces. By using
rich infographics and visuals supported by Power BI (including the large number of controls provided by third
parties), workspaces can provide a highly-visual, yet interactive experience for users. Using infographics in the
overview page, users can get a quick glance of the state of the business. They can interact with data by simply
clicking or touching visuals on the page. They can see the cause and effect, perform simple what-if operations
without leaving the workspace. Thanks to stunning yet interactive visuals, your users will have fun exploring data
and discovering hidden trends.
The following screenshot shows Power BI in a workspace.
Power BI vs operational workspaces
Power BI workspaces complement operational views with analytical insights based on near real-time information.
The following offers a visual comparison of a Power BI workspace and an operational workspace.
The following screenshot shows an operational workspace.
Edit embedded reports in analytical workspaces
The How to edit an embedded report in an analytical workspace video (shown above) is included in the Playlist
available on YouTube.

What's next?
Going forward, new cloud deployments will come bundled with the Power BI Embedded service. Additional
documentation describing the Developer ALM process will be made available to help partners and ISVs create new
solutions that take advantage of the Power BI Embedded service integration options that are available.
Power BI Embedded integration
11/5/2019 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Microsoft Power BI content that partners and independent software vendors (ISVs) developed can be embedded
directly into the Microsoft Dynamics 365 Finance. This topic describes some of the ways that you can use the
Microsoft Power BI Embedded integration.

Overview
The integration of the application and Power BI enables data mash-up scenarios that require access to external data
sources that are supported through Microsoft Power Query for Excel. Users can personalize workspaces by
embedding tiles that are hosted on PowerBI.com. Users can also add direct links to reports that are hosted on
PowerBI.com. In this way, users can access and interact with the reports without leaving the application. Power BI
content (PBIX files) that partners and ISVs develop can be embedded directly into the application. PBIX files that are
associated with a model file are automatically published in Power BI Embedded as part of the application
deployment process. Additionally, you can add X++ extensions for embedded reporting scenarios that require the
following functionality:
Drill-down navigation into detailed pages in response to user interactions
Report filters that are based on user and session context information, such as company or date range
The ability to navigate directly to a specific tab on a Power BI report via menu items
For more information about customizations that use extensions, see Customize through extension and
overlayering.

Advantages of Power BI Embedded


Deliver Power BI workspaces and repor ts in the application. If you're a power user or a business
analyst, you can tweak ready-made reports or create new reports by using Power BI tools. As a developer, you
can use the reports that your users create to provide rich navigation experiences in the product through
workspaces. If you're in the partner and ISV community, you can build rich workspaces that include Power BI
experiences, and then release those workspaces as part of your solution.
The Power BI Embedded ser vice license is bundled with the application. If you're an ISV or a systems
integrator, you can package workspaces that are enabled for Power BI (and navigational experiences that those
workspaces provide) as part of a Microsoft Dynamics Lifecyle Services (LCS) solution. Your customers get the
same experience without having to have a PowerBI.com subscription. The workspaces just work with Finance
and Operations applications.
Enable drill-down into detailed pages from Power BI. The visuals are the starting point for action. Your
users can drill down to business processes and pages to act immediately on issues that they uncover. The
visuals let users filter data and uncover trends. Action pages reflect just the set of data that requires attention.
Help secure access to Power BI repor ts by using menu items. As a developer, you can use familiar
programming concepts that are available in Finance and Operations apps, because we have extended the same
concepts to workspaces that are based on Power BI. You can create new workspaces or extend existing
workspaces by adding an overview page that is driven by Power BI. Developers can associate menu items with
Power BI reports and include them as links in workspaces. The role-based and task-based security in Finance
and Operations apps can be used to help secure these menu items.
Filter repor ts based on application context. You can build navigation experiences by passing one or more
filters to Power BI reports. For example, depending on a user’s actions or context, you can filter the Power BI
report to reflect data from one business unit or a specific product. The user doesn't have to filter the data. You
can define drill-through links to Finance and Operations pages, so that users can go directly to the transactional
details pages.
For more information about the Power BI Embedded service, see the Power BI FAQ.

Service availability
The Power BI Embedded ser vice is automatically deployed and configured for all cloud-hosted,
multi-box deployments. Because the service relies on Microsoft Azure services, application analytical
workspaces and reports are unavailable in one-box environments. The Power BI Embedded service is already
available in most Azure datacenters. You can check the latest availability on the Azure status page.

NOTE
The Microsoft Dynamics 365 team is working on a solution that will enable analytical workspaces in one-box environments
without requiring that customers host their own instance of the Power BI Embedded service. Watch for announcements on
the Dynamics 365 Roadmap site.

Frequently asked questions


Can I customize the Power BI embedded reports?
Yes. To customize the Power BI embedded reports, just install Power BI Desktop in a one-box environment, and
follow the steps in Create analytical reports by using Power BI Desktop.
Do customers have to purchase a separate Power BI license to use the new embedded analytics?
No, customers don't have to purchase a separate Power BI license to use the new embedded analytics. However, a
Power BI Pro license is required in order to connect to Entity Store from PowerBI.com by using DirectQuery.
Can I do data mash-ups by using external data in the embedded reports?
No, you can't currently do data mash-ups by using external data in the embedded reports.
Can I help secure data to only those companies that I have access to?
Yes, the single company view prevents users from accessing data from companies that they don’t have access to.
For more information about how to help secure custom solutions, see Help secure analytical workspaces and
reports by using Power BI Embedded.
How is currency shown across multiple companies?
Currency is shown as a system currency. The system currency is defined on the System parameters page .
Can I drill from summary balances back into Finance and Operations?
Yes, you can drill into the details on a Power BI report. However, there is limited support for drill-down into Finance
and Operations apps.
What languages are currently supported?
Currently, only English is supported. However, the Power BI team plans to add support for other languages.
Can I access analytical workspaces and reports in the on-premises version of Finance and Operations?
No, you can't currently access analytical workspaces and reports in Dynamics 365 Finance + Operations (on-
premises). Systems of Intelligence functions rely on cloud-hosted solutions.
Customize embedded reports in analytical
workspaces
4/17/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Analytical workspaces
Analytical workspaces are bundled with the application suite. Through reporting, they offer users insights into data
that is based on standard business operations. The reports are generic reports that are defined by business
professionals. They include metrics that are considered interesting to a wide range of users from any industry.
However, in some cases, the standard reports include data that isn't relevant to all customers. More often,
customers might want to access data points or calculations that are left out of the standard reports.
Power users can use web-friendly design tools to customize the analytical reports that are embedded in the
application. By using the free-form canvas designer, users who are familiar with the relevant business insights that
are required can help make the organization successful.

IMPORTANT
Customizations that are made to the embedded analytical reports are automatically deployed by the service and made
available to other users of the system.

Important points about embedded analytical reports


Although the standard reports deliver insights that are tailored to a given business persona, customizations can
often maximize the value of these standard reports.
Here are some important points to note about this service capability:
Customizations are limited to the report design canvas. Users can't change the definitions of report data sets.
Report customizations that are made to the analytical workspace apply to all users in the environment.
The service automatically preserves report customizations during product upgrades.
The service doesn't support the export of customizations that are made to analytical workspaces.

Customize an analytical workspace


To customize the embedded application solutions, a user must be a member of the System Report Editors security
group. Members of this security group can do customizations by using the buttons on the Options tab on the
Action Pane of the application workspaces. This example shows how to customize one of the standard analytical
workspaces that are bundled with the application suite.
1. Sign in and open the application workspace that you want to customize. In this example, you will replace the
standard analytical report that is embedded in the Compensation management workspace.
2. Select the Analytics tab to access the workspace's embedded analytical report.

By default, you see the standard analytical workspace solution that is packaged with your application. The
reports in this solution are automatically deployed and configured for your environment during the
provisioning process.

NOTE
The analytical workspaces require a hosted Microsoft Power BI service that is available only for dedicated
environments. For more information, see Accessing Analytical Workspaces and Reports on 1Box environment.

3. On the Action Pane, on the Options tab, in the Power BI group, select Edit Analytics .
The analytical workspace is opened in edit mode, and you have direct access to the Power BI web designer
tools.

4. Use the Power BI web designer tools to customize the report canvas. The intuitive web controls let you
perform typical actions such as adding and removing visuals, changing visual types, and formatting the
content. You can also inspect the source of the report visualizations to make sure that decisions are based on
the most relevant data that is available in the system. For more information, see Add visualizations to a
Power BI report.
5. After you've completed your report customizations, select the Save button to promote the report edits.
Customizations to the report are reflected immediately in the service. Therefore, users in your organization
have access to the latest innovations.

Restore the standard application solution


Follow these steps to restore the analytical workspaces that are bundled with the application solution.
1. In the analytical workspace, on the Action Pane, on the Options tab, in the Power BI group, select Restore
Analytics .
2. To view the updates to the workspace, reload the page. Either move away from the workspace and then return,
or refresh your browser.
3. In the Compensation management workspace, select the Analytics tab to access the original analytical
workspace that was packaged with the application.

Troubleshooting
Follow these steps to address common issues encountered while attempting to use analytical workspaces.
Error message: Please log into Power BI to access its resource
The Power BI service requires explicit permission from the user to allow access to hosted content. Use the following
steps to ensure the current user is able to connect to reports hosted on PowerBI.com from the application suite.
1. Open any application workspace containing a section titled Link . For example, "Bank management".
2. Select Options , and then select Open repor t catalog on the top left.
3. Follow the steps in the dialog box to Authorize to Power BI to access Finance and Operations apps for the
current user.
Document Reporting Services
10/8/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article describes the integrated reporting solution that are available. This solution simplifies service
administration, increases developer productivity, and provides an enhanced report viewing experience for users.

Document Reporting Services


Document Reporting Services are based on Microsoft SQL Server Reporting Services (SSRS). In the current
version of the application, these services are hosted in the Microsoft Azure compute service. If you're developing in
a one-box environment, the services also run locally in the Azure compute emulator.
Service deployment – Local vs. cloud
In a one-box environment, developers can create, modify, and preview reports, from end to end, by using Microsoft
Visual Studio 2015. A separate process isn't required in order to add reports to the application's metadata store.
Changes to reports are packaged together with other solution updates and then deployed to the cloud after
development is completed in the local environment.
Viewing reports
The enhanced report viewing experience that provides for end users is the same as the report preview experience
in Microsoft Visual Studio. You no longer use a separate design preview in Visual Studio. Instead, just press Ctrl+F5
to build and preview the report in an Internet Explorer window. The report appears exactly as it would appear in
the client. Even the user's parameter experience is the same. The following screen shot shows an example of a
report preview that is opened from Visual Studio.
Service administration prerequisites
The following table compares the service administration prerequisites for Microsoft Dynamics AX 2012 and the
current version of the application.

A X 2012 T H E C URREN T VERSIO N O F T H E A P P L IC AT IO N

A report development environment has the following Reporting services run in the Azure compute emulator,
prerequisites: together with the application server. Therefore, there are no
SSRS must be installed. SSRS service administration prerequisites. After reports have
SSRS must be configured by using Reporting Services been deployed to the local reporting services, they can be
Configuration Manager. accessed from the client.
SSRS extensions for the application must be installed.

Developing application reports


The process for developing a report in the current version is easier than it is in AX 2012, because you can create
and validate a reporting solution entirely in Visual Studio 2015. The following table describes how the application
simplifies the basic procedure for adding an automatic design report that is based on a query.

A X 2012 T H E C URREN T VERSIO N O F T H E A P P L IC AT IO N

1. In the application, create a query in the Application 1. In Visual Studio, create a reporting project and the
Object Tree (AOT). query.
2. In Visual Studio, create a reporting project, and add 2. Edit the report in Visual Studio.
the query to it. 3. In Visual Studio, add the report to a menu item, and
3. Edit the report in the Visual Studio model editor. set the menu item as a startup object.
4. Preview the report design in Visual Studio by using the 4. Use the AOT to deploy the report to the report server.
model editor toolbar. 5. Press Ctrl+F5 to verify the report in the application.
5. Use Visual Studio to add the report to the AOT.
6. Use the AOT in the client to create a menu item for the [!NOTE] There is no longer a separate preview of
report, and add the menu item to a menu. the report design from the model editor.
7. Use the AOT to deploy the report to the report server.
8. Verify the report in the client. 6. When the whole solution is completed, deploy it to the
cloud in one package.
Supported fonts
2/26/2020 • 13 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Finance and Operations apps include access to hundreds of standard, business-ready fonts available for documents
rendered by the cloud-hosted service.
This portfolio will continue to grow as the service expands into new regions and industries. However, the service no
longer supports the installation of custom fonts in customer environments. Requests to expand the collection of
fonts supported by the service will be considered on a case-by-case basis.
The following list captures the portfolio of font families available for documents produced using SQL Server
Reporting Services (SSRS) services in Finance and Operations apps.

Supported fonts for application version 8.3 with Platfrom update 32 or


later
F O N T FA M ILY SO URC E

Agency FB Office font

Algerian Office font

Arial Finance and Operations font

Arial Black Finance and Operations font

Arial Narrow Finance and Operations font

Arial Rounded MT Bold Office font

Baskerville Old Face Office font

Bauhaus 93 Office font

BC C128 HD Medium Finance and Operations font

BC C128 HD Narrow Finance and Operations font

BC C128 HD Wide Finance and Operations font

BC C128 Medium Finance and Operations font

BC C128 Narrow Finance and Operations font


F O N T FA M ILY SO URC E

BC C128 Wide Finance and Operations font

BC C39 2 to 1 HD Medium Finance and Operations font

BC C39 2 to 1 HD Narrow Finance and Operations font

BC C39 2 to 1 HD Wide Finance and Operations font

BC C39 2 to 1 Medium Finance and Operations font

BC C39 2 to 1 Narrow Finance and Operations font

BC C39 2 to 1 Wide Finance and Operations font

BC C39 3 to 1 HD Medium Finance and Operations font

BC C39 3 to 1 HD Narrow Finance and Operations font

BC C39 3 to 1 HD Wide Finance and Operations font

BC C39 3 to 1 Medium Finance and Operations font

BC C39 3 to 1 Narrow Finance and Operations font

BC C39 3 to 1 Wide Finance and Operations font

BC CBar 2 to 1 HD Medium Finance and Operations font

BC CBar 2 to 1 HD Narrow Finance and Operations font

BC CBar 2 to 1 HD Wide Finance and Operations font

BC CBar 2 to 1 Medium Finance and Operations font

BC CBar 2 to 1 Narrow Finance and Operations font

BC CBar 2 to 1 Wide Finance and Operations font

BC CBar 3 to 1 HD Medium Finance and Operations font

BC CBar 3 to 1 HD Narrow Finance and Operations font

BC CBar 3 to 1 HD Wide Finance and Operations font

BC CBar 3 to 1 Medium Finance and Operations font

BC CBar 3 to 1 Narrow Finance and Operations font

BC CBar 3 to 1 Wide Finance and Operations font


F O N T FA M ILY SO URC E

BC I25 HD Medium Finance and Operations font

BC I25 HD Narrow Finance and Operations font

BC I25 HD Wide Finance and Operations font

BC I25 Medium Finance and Operations font

BC I25 Narrow Finance and Operations font

BC I25 Wide Finance and Operations font

BC Postnet Finance and Operations font

BC UPC HD Medium Finance and Operations font

BC UPC HD Narrow Finance and Operations font

BC UPC HD Wide Finance and Operations font

BC UPC Medium Finance and Operations font

BC UPC Narrow Finance and Operations font

BC UPC Wide Finance and Operations font

Bell MT Office font

Berlin Sans FB Office font

Berlin Sans FB Demi Office font

Bernard MT Condensed Office font

Blackadder ITC Office font

Bodoni MT Office font

Bodoni MT Black Office font

Bodoni MT Condensed Office font

Bodoni MT Poster Compres Office font

Book Antiqua Office font

Bookman Old Style Office font

Bookshelf Symbol 7 Office font


F O N T FA M ILY SO URC E

Bradley Hand ITC Office font

Britannic Bold Office font

Broadway Office font

Brush Script MT Office font

Buxton Sketch Office font

Calibri Finance and Operations font

Calibri Light Finance and Operations font

Californian FB Office font

Calisto MT Office font

Cambria Finance and Operations font

Cambria Math Finance and Operations font

Candara Finance and Operations font

Castellar Office font

Centaur Office font

Century Office font

Century Gothic Office font

Century Schoolbook Office font

Chiller Office font

Colonna MT Office font

Comic Sans MS Finance and Operations font

Consolas Finance and Operations font

Constantia Finance and Operations font

Cooper Black Office font

Copperplate Gothic Bold Office font

Copperplate Gothic Light Office font


F O N T FA M ILY SO URC E

Corbel Finance and Operations font

Courier New Finance and Operations font

Curlz MT Office font

DengXian Office font

Dotum Finance and Operations font

DotumChe Finance and Operations font

Ebrima Finance and Operations font

Edwardian Script ITC Office font

Elephant Office font

Engravers MT Office font

Eras Bold ITC Office font

Eras Demi ITC Office font

Eras Light ITC Office font

Eras Medium ITC Office font

Felix Titling Office font

Footlight MT Light Office font

Forte Office font

Franklin Gothic Book Office font

Franklin Gothic Demi Office font

Franklin Gothic Demi Con Office font

Franklin Gothic Heavy Office font

Franklin Gothic Medium Finance and Operations font

Franklin Gothic Medium C Office font

Freestyle Script Office font

French Script MT Office font


F O N T FA M ILY SO URC E

Gabriola Finance and Operations font

Gadugi Finance and Operations font

Garamond Office font

Georgia Finance and Operations font

Gigi Office font

Gill Sans MT Office font

Gill Sans MT Condensed Office font

Gill Sans MT Ext Condens Office font

Gill Sans Ultra Bold Office font

Gill Sans Ultra Bold Con Office font

Gloucester MT Extra Cond Office font

Goudy Old Style Office font

Goudy Stout Office font

Gulim Finance and Operations font

GulimChe Finance and Operations font

Haettenschweiler Office font

Harlow Solid Italic Office font

Harrington Office font

High Tower Text Office font

IDAutomationMICR Finance and Operations font

Impact Finance and Operations font

Imprint MT Shadow Office font

Informal Roman Office font

Javanese Text Finance and Operations font

Jokerman Office font


F O N T FA M ILY SO URC E

Juice ITC Office font

Kristen ITC Office font

Kunstler Script Office font

Leelawadee Office font

Leelawadee UI Finance and Operations font

Leelawadee UI Semilight Finance and Operations font

Lucida Bright Office font

Lucida Calligraphy Office font

Lucida Console Finance and Operations font

Lucida Fax Office font

Lucida Handwriting Office font

Lucida Sans Office font

Lucida Sans Typewriter Office font

Lucida Sans Unicode Finance and Operations font

Magneto Office font

Maiandra GD Office font

Malgun Gothic Finance and Operations font

Malgun Gothic Semilight Finance and Operations font

Marlett Finance and Operations font

Matura MT Script Capital Office font

MICR E13B 2.1 Finance and Operations font

Microsoft Himalaya Finance and Operations font

Microsoft JhengHei Finance and Operations font

Microsoft JhengHei Light Finance and Operations font

Microsoft JhengHei UI Finance and Operations font


F O N T FA M ILY SO URC E

Microsoft JhengHei UI Li Office font

Microsoft MHei Office font

Microsoft NeoGothic Office font

Microsoft New Tai Lue Finance and Operations font

Microsoft PhagsPa Finance and Operations font

Microsoft Sans Serif Finance and Operations font

Microsoft Tai Le Finance and Operations font

Microsoft Uighur Office font

Microsoft YaHei Finance and Operations font

Microsoft YaHei Light Finance and Operations font

Microsoft YaHei UI Finance and Operations font

Microsoft YaHei UI Light Finance and Operations font

Microsoft Yi Baiti Finance and Operations font

MingLiU Finance and Operations font

MingLiU-ExtB Finance and Operations font

MingLiU_HKSCS Finance and Operations font

MingLiU_HKSCS-ExtB Finance and Operations font

Mistral Office font

Modern No. 20 Office font

Mongolian Baiti Finance and Operations font

Monotype Corsiva Office font

MS Gothic Finance and Operations font

MS Outlook Office font

MS PGothic Finance and Operations font

MS Reference Sans Serif Office font


F O N T FA M ILY SO URC E

MS Reference Specialty Office font

MS UI Gothic Finance and Operations font

MT Extra Office font

MV Boli Finance and Operations font

Myanmar Text Finance and Operations font

Niagara Engraved Office font

Niagara Solid Office font

Nirmala UI Finance and Operations font

Nirmala UI Semilight Finance and Operations font

NSimSun Finance and Operations font

OCR A Extended Office font

OCRB Finance and Operations font

Old English Text MT Office font

Onyx Office font

Palace Script MT Office font

Palatino Linotype Finance and Operations font

Papyrus Office font

Parchment Office font

Perpetua Office font

Perpetua Titling MT Office font

Playbill Office font

PMingLiU Finance and Operations font

PMingLiU-ExtB Finance and Operations font

Poor Richard Office font

Pristina Office font


F O N T FA M ILY SO URC E

Rage Italic Office font

Ravie Office font

Rockwell Office font

Rockwell Condensed Office font

Rockwell Extra Bold Office font

Script MT Bold Office font

Segoe Marker Office font

Segoe MDL2 Assets Finance and Operations font

Segoe Print Finance and Operations font

Segoe Script Finance and Operations font

Segoe UI Finance and Operations font

Segoe UI Black Finance and Operations font

Segoe UI Emoji Finance and Operations font

Segoe UI Historic Finance and Operations font

Segoe UI Light Finance and Operations font

Segoe UI Semibold Finance and Operations font

Segoe UI Semilight Finance and Operations font

Segoe UI Symbol Finance and Operations font

Segoe WP Office font

Segoe WP Black Office font

Segoe WP Light Office font

Segoe WP Semibold Office font

Segoe WP SemiLight Office font

Showcard Gothic Office font

SimSun Finance and Operations font


F O N T FA M ILY SO URC E

SimSun-ExtB Finance and Operations font

Sitka Banner Finance and Operations font

Sitka Display Finance and Operations font

Sitka Heading Finance and Operations font

Sitka Small Finance and Operations font

Sitka Subheading Finance and Operations font

Sitka Text Finance and Operations font

SketchFlow Print Office font

Snap ITC Office font

Stencil Office font

Sylfaen Finance and Operations font

Symbol Finance and Operations font

Tahoma Finance and Operations font

Tempus Sans ITC Office font

Times New Roman Finance and Operations font

Trebuchet MS Finance and Operations font

Tw Cen MT Office font

Tw Cen MT Condensed Office font

Tw Cen MT Condensed Extr Office font

Verdana Finance and Operations font

Viner Hand ITC Office font

Vivaldi Office font

Vladimir Script Office font

Webdings Finance and Operations font

Wide Latin Office font


F O N T FA M ILY SO URC E

Wingdings Finance and Operations font

Wingdings 2 Office font

Wingdings 3 Office font

Yu Gothic Finance and Operations font

Yu Gothic Light Finance and Operations font

Yu Gothic Medium Finance and Operations font

Yu Gothic UI Finance and Operations font

Yu Gothic UI Light Finance and Operations font

Yu Gothic UI Semibold Finance and Operations font

Yu Gothic UI Semilight Finance and Operations font

Supported fonts for application version 8.0 with Platform update 23


F O N T FA M ILY

1 Agency FB

2 Algerian

3 Arial

4 Arial Black

5 Arial Narrow

6 Arial Rounded MT Bold

7 Baskerville Old Face

8 Bauhaus 93

9 BC C128 HD Medium

10 BC C128 HD Narrow

11 BC C128 HD Wide

12 BC C128 Medium

13 BC C128 Narrow
F O N T FA M ILY

14 BC C128 Wide

15 BC C39 2 to 1 HD Medium

16 BC C39 2 to 1 HD Narrow

17 BC C39 2 to 1 HD Wide

18 BC C39 2 to 1 Medium

19 BC C39 2 to 1 Narrow

20 BC C39 2 to 1 Wide

21 BC C39 3 to 1 HD Medium

22 BC C39 3 to 1 HD Narrow

23 BC C39 3 to 1 HD Wide

24 BC C39 3 to 1 Medium

25 BC C39 3 to 1 Narrow

26 BC C39 3 to 1 Wide

27 BC CBar 2 to 1 HD Medium

28 BC CBar 2 to 1 HD Narrow

29 BC CBar 2 to 1 HD Wide

30 BC CBar 2 to 1 Medium

31 BC CBar 2 to 1 Narrow

32 BC CBar 2 to 1 Wide

33 BC CBar 3 to 1 HD Medium

34 BC CBar 3 to 1 HD Narrow

35 BC CBar 3 to 1 HD Wide

36 BC CBar 3 to 1 Medium

37 BC CBar 3 to 1 Narrow

38 BC CBar 3 to 1 Wide
F O N T FA M ILY

39 BC I25 HD Medium

40 BC I25 HD Narrow

41 BC I25 HD Wide

42 BC I25 Medium

43 BC I25 Narrow

44 BC I25 Wide

45 BC Postnet

46 BC UPC HD Medium

47 BC UPC HD Narrow

48 BC UPC HD Wide

49 BC UPC Medium

50 BC UPC Narrow

51 BC UPC Wide

52 Bell MT

53 Berlin Sans FB

54 Berlin Sans FB Demi

55 Bernard MT Condensed

56 Blackadder ITC

57 Bodoni MT

58 Bodoni MT Black

59 Bodoni MT Condensed

60 Bodoni MT Poster Compres

61 Book Antiqua

62 Bookman Old Style

63 Bookshelf Symbol 7
F O N T FA M ILY

64 Bradley Hand ITC

65 Britannic Bold

66 Broadway

67 Brush Script MT

68 Buxton Sketch

69 Calibri

70 Calibri Light

71 Californian FB

72 Calisto MT

73 Cambria

74 Cambria Math

75 Candara

76 Castellar

77 Centaur

78 Century

79 Century Gothic

80 Century Schoolbook

81 Chiller

82 Colonna MT

83 Comic Sans MS

84 Consolas

85 Constantia

86 Cooper Black

87 Copperplate Gothic Bold

88 Copperplate Gothic Light


F O N T FA M ILY

89 Corbel

90 Courier New

91 Curlz MT

92 DengXian

93 Dotum

94 DotumChe

95 Ebrima

96 Edwardian Script ITC

97 Elephant

98 Engravers MT

99 Eras Bold ITC

100 Eras Demi ITC

101 Eras Light ITC

102 Eras Medium ITC

103 Felix Titling

104 Footlight MT Light

105 Forte

106 Franklin Gothic Book

107 Franklin Gothic Demi

108 Franklin Gothic Demi Con

109 Franklin Gothic Heavy

110 Franklin Gothic Medium

111 Franklin Gothic Medium C

112 Freestyle Script

113 French Script MT


F O N T FA M ILY

114 Gabriola

115 Gadugi

116 Garamond

117 Georgia

118 Gigi

119 Gill Sans MT

120 Gill Sans MT Condensed

121 Gill Sans MT Ext Condens

122 Gill Sans Ultra Bold

123 Gill Sans Ultra Bold Con

124 Gloucester MT Extra Cond

125 Goudy Old Style

126 Goudy Stout

127 Gulim

128 GulimChe

129 Haettenschweiler

130 Harlow Solid Italic

131 Harrington

132 High Tower Text

133 IDAutomationMICR

134 Impact

135 Imprint MT Shadow

136 Informal Roman

137 Javanese Text

138 Jokerman
F O N T FA M ILY

139 Juice ITC

140 Kristen ITC

141 Kunstler Script

142 Leelawadee

143 Leelawadee UI

144 Leelawadee UI Semilight

145 Lucida Bright

146 Lucida Calligraphy

147 Lucida Console

148 Lucida Fax

149 Lucida Handwriting

150 Lucida Sans

151 Lucida Sans Typewriter

152 Lucida Sans Unicode

153 Magneto

154 Maiandra GD

155 Malgun Gothic

156 Malgun Gothic Semilight

157 Marlett

158 Matura MT Script Capital

159 MICR E13B 2.1

160 Microsoft Himalaya

161 Microsoft JhengHei

162 Microsoft JhengHei Light

163 Microsoft JhengHei UI


F O N T FA M ILY

164 Microsoft JhengHei UI Li

165 Microsoft MHei

166 Microsoft NeoGothic

167 Microsoft New Tai Lue

168 Microsoft PhagsPa

169 Microsoft Sans Serif

170 Microsoft Tai Le

171 Microsoft Uighur

172 Microsoft YaHei

173 Microsoft YaHei Light

174 Microsoft YaHei UI

175 Microsoft YaHei UI Light

176 Microsoft Yi Baiti

177 MingLiU

178 MingLiU-ExtB

179 MingLiU_HKSCS

180 MingLiU_HKSCS-ExtB

181 Mistral

182 Modern No. 20

183 Mongolian Baiti

184 Monotype Corsiva

185 MS Gothic

186 MS Outlook

187 MS PGothic

188 MS Reference Sans Serif


F O N T FA M ILY

189 MS Reference Specialty

190 MS UI Gothic

191 MT Extra

192 MV Boli

193 Myanmar Text

194 Niagara Engraved

195 Niagara Solid

196 Nirmala UI

197 Nirmala UI Semilight

198 NSimSun

199 OCR A Extended

200 OCRB

201 Old English Text MT

202 Onyx

203 Palace Script MT

204 Palatino Linotype

205 Papyrus

206 Parchment

207 Perpetua

208 Perpetua Titling MT

209 Playbill

210 PMingLiU

211 PMingLiU-ExtB

212 Poor Richard

213 Pristina
F O N T FA M ILY

214 Rage Italic

215 Ravie

216 Rockwell

217 Rockwell Condensed

218 Rockwell Extra Bold

219 Script MT Bold

220 Segoe Marker

221 Segoe MDL2 Assets

222 Segoe Print

223 Segoe Script

224 Segoe UI

225 Segoe UI Black

226 Segoe UI Emoji

227 Segoe UI Historic

228 Segoe UI Light

229 Segoe UI Semibold

230 Segoe UI Semilight

231 Segoe UI Symbol

232 Segoe WP

233 Segoe WP Black

234 Segoe WP Light

235 Segoe WP Semibold

236 Segoe WP SemiLight

237 Showcard Gothic

238 SimSun
F O N T FA M ILY

239 SimSun-ExtB

240 Sitka Banner

241 Sitka Display

242 Sitka Heading

243 Sitka Small

244 Sitka Subheading

245 Sitka Text

246 SketchFlow Print

247 Snap ITC

248 Stencil

249 Sylfaen

250 Symbol

251 Tahoma

252 Tempus Sans ITC

253 Times New Roman

254 Trebuchet MS

255 Tw Cen MT

256 Tw Cen MT Condensed

257 Tw Cen MT Condensed Extr

258 Verdana

259 Viner Hand ITC

260 Vivaldi

261 Vladimir Script

262 Webdings

263 Wide Latin


F O N T FA M ILY

264 Wingdings

265 Wingdings 2

266 Wingdings 3

267 Yu Gothic

268 Yu Gothic Light

269 Yu Gothic Medium

270 Yu Gothic UI

271 Yu Gothic UI Light

272 Yu Gothic UI Semibold

273 Yu Gothic UI Semilight


Configure SQL Server Reporting Services for on-
premises deployments
3/6/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Use the steps in this topic to configure SQL Server Reporting Services (SSRS) for your Microsoft Dynamics 365
Finance + Operations (on-premises) deployment.
1. Open the Reporting Services Configuration Manager application.
2. Leave the default Ser ver name , which should be the name of the current machine, and the Repor t Ser ver
Instance , MSSQLSERVER .
3. Click Connect .

4. Click the Ser vice Account tab and verify that the settings match the following graphic.
5. Click the Web Ser vice URL tab and verify that the settings match the following graphic.
6. Click the Database tab and verify that the Database Name and Credential settings match the following
graphic.

NOTE
You will need to create a new database. To do this, click Change Database , and then verify that the new database
name is: DynamicsAxRepor tSer ver .
7. Click the Web Por tal URL tab and verify that the settings match the following graphic.

NOTE
You must click Apply to create and properly configure the Portal.
After the Portal is configured, the Web Por tal tab will match the following graphic.
8. Click the reports URL to view the SQL Server Reporting Services web portal.
9. When you are in the portal, create a new folder named Dynamics .

10. In the Repor ting Ser vices Configuration Manager , click the E-mail Settings tab and verify that the
settings match the following graphic.
11. Click the Execution Account tab and verify that the settings match the following graphic.
Don't change the default settings on the Encr yption Keys tab.
12. Click the Subscription Settings tab, and verify that the settings match the following graphic.
Don't change the default settings on the Scale-out Deployment tab.
Don't change the default settings on the Power BI Integration tab.
13. Click Exit to close the Repor ting Ser vices Configuration Manager .
Document printing overview
11/5/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can print documents by using either a local printer or a network-connected device. This article provides an
overview of how documents are printed.

Printing overview
The application provides integrated services and client applications that make it easy to generate, store, and
distribute documents that support business activity. You can print documents by using either a local printer or a
network-connected device. In addition, you can export pages and reports directly from the client, as PDF files or
Microsoft Office documents. Finally, the distributed workload lets you print business documents directly from a
mobile device by using network resources. Although printing requirements might vary, all industries typically must
create hard copies of business documents by using the application. Printing documents on network devices from
hosted applications presents a unique set of challenges. Here are some examples:
Print drivers might not be available on the user's device.
The user's device might not be connected to the corporate network.
By using a dedicated host and following a few easy steps, system administrators can configure deployments so
that users can print directly from business applications on network devices.
Application printing scenarios
The following table describes the three primary printing scenarios.

SC EN A RIO GO A L SO L UT IO N

1. Printing what you see Print what is currently shown in the A "print-friendly" version of the
browser. webpage is generated for the browser.

2. Interactive printing Print a precision document on a locally You can export a PDF version of the
connected device. report and download it to the browser.

3. Printing on a network device Send a precision document to a domain A precision document is sent to a client
printer device. application that runs on a server that is
hosted in the customer's domain.

Because the solution varies, depending on the scenario, applications provide built-in services and tooling to help
users accomplish their goals:
Scenario 1 is supported by the browser's rendering of the HTML5 client.
Scenario 2 uses client applications and Microsoft Office 365 services.
Scenario 3 requires support from client applications and from services that are hosted in Microsoft Azure.
In addition to the platform that is deployed to the Azure subscription, Finance and Operations applications provide
customers with an integrated, first-party Azure application that helps them more easily use domain-hosted devices
to print documents.

Service overview
While documents that are produced by the hosted applications are waiting to be printed on a network-connected
device, they are stored in Azure blob storage. The Install the Document Routing Agent to enable network printing
uses Azure authentication to establish a secure channel to the Azure services.
Execution sequence
1. The report is generated by Microsoft SQL Server Reporting Services (SSRS) and stored in Azure blob storage.
Attached printer settings are stored together with the document.
2. The Document Routing Agent queries the Azure Service Bus queue for active jobs.
3. The document is downloaded by the Document Routing Agent and spooled to the network printer.
The client-based solution lets customers manage the scale of their printing needs. Customers who have heavy-
volume printing workloads can install many Document Routing Agents to increase the number of concurrent
printing operations. Alternatively, some customers require very few installations of the Document Routing Agent to
handle their anticipated printing needs.
Service components for network printing
The following diagram shows the basic components that help support network printing operations.

Note that a single printer can be registered with multiple Document Routing Agents. To resolve the printer
preferences, the hosted service uses the network path that uniquely identifies every network printer. As a result,
even when a printer is registered by multiple clients, it appears as a single selection in the list of printers available
in applications.
Install the Document Routing Agent to enable
network printing
10/1/2019 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how to install and configure the Document Routing Agent (DRA). The DRA is a downloadable
application that you can use to enable network printing scenarios. You can enable network printers for specific
companies by using in-client administrative pages.

Preparing to install the Document Routing Agent


Supported on Windows 8.1, Windows 10, Microsoft Windows Server 2012 R2, or Microsoft Windows Server
2016.
Access to network printing resources requires Active Directory Domain Services (AD DS) authentication.
When installing the DRA, make sure you are logged in as the Admin user.
The Microsoft Azure Active Directory (Azure AD) account that is used to configure the DRA must share the
same domain as the Azure tenant.
The DRA requires .NET 4.62 or later and Adobe Acrobat Reader on the client.
Configure Adobe client print settings to prevent document scaling.
Network printers that are registered for applications can be used by all legal entities (also known as companies)
that are defined in the environment. Network printer settings are company-specific. Therefore, administrators can
restrict access, based on the user's active company. For example, users in the active company might have access to
all the network printers that are registered by the Document Routing Agent. However, users in another company
won't have access to those printers until access is explicitly enabled for that company.

Key concepts
This topic will help you with the following tasks:
Identify the key components that are involved in the support for network printing in applications.
Learn about the function of the Document Routing Agent.
Configure the Document Routing Agent to work against an existing application.
Use administration pages to manage access to network printers.

Install the Document Routing Agent


Applications use the Document Routing Agent to manage the spooling of documents to network printer devices.
You can obtain the client by using direct links that are embedded in the web application. Use the following
procedure to download the application to your local computer. You will then be able to access both local and
network printers that are connected to your computer, from a single deployment.
1. Open the Manage network printers page (Organization administration > Setup > Network
printers ).
2. On the Options tab, in the Application group, click Download document routing agent installer .

3. Run the downloaded file to begin the installation process.


4. Complete the setup process.
After the application is installed, you can begin to register local printers as network printers for the applications.

Configure the Document Routing Agent


Use the following procedure to configure the client application so that it can communicate with the Azure services
that host the documents that are in-flight.
1. Close all browser instances that are running the application. This resets the local Azure authentication
tokens.
2. On your desktop, run the Document Routing Agent.
3. On the toolbar, click Settings .

4. Add the following settings:


Application ID – The ID that is unique to the application and should be entered automatically.
Finance and Operations URL – The base URL of the application.
Azure AD tenant – The domain name of the Azure AD.
5. Click OK .
6. Click Sign In to sign in to your account.

NOTE
The account must share the same domain as the Azure AD that is associated with the application. The Document
Routing Agent is now ready to process documents.

After you've successfully signed in, the Printers button becomes available on the toolbar.

Register network printers


Before you complete this procedure, make sure that you've installed all the network printers on the local host
computer. All the printer devices that are installed will be available for service registration. Be sure to select only
the printers that you want to expose in the applications.
1. On the toolbar, click Printers .
2. Select the printers to make available in the applications.

3. Specify a default name for the printer.


4. Click OK .
After you've completed this procedure, the selected printer devices are registered in the application's network
printer catalog. System administrators can now enable the printers for access from within the application.

Administer network printers


Use client pages to manage access to the network printers that have been registered by one or more Document
Routing Agents. Network printers are uniquely identified by their path. Therefore, printers are listed one time, even
if they have been registered by more than one Document Routing Agent. Use the following procedure to activate
the Application Object Server (AOS) network printers.
1. Open the Manage network printers page (Organization administration > Setup > Network
printers ).

2. Edit the existing entries that are mapped to each network printer. As part of your changes, edit the
connection path.
3. To include a printer as an option in the Print Destinations field, set the Active field to Yes .
The network printers can now be used in the application.

Frequently asked questions


Does the Document Routing Agent have to be installed on each computer where a user connects by using a
browser?
No. Client installations of the Document Routing Agent can be shared by individuals who access the provisioned
environment. We recommend that you install agents on one or more Print Servers or other domain-hosted clients
that have access to network printers.
If the Document Routing Agent belongs on a network Print Server, why doesn't the client run as a service?
The Document Routing Agent now supports running in the background as a service. You need to ensure that you
have downloaded the latest version of the client. For more information, see Run the Document Routing Agent as a
Windows service.
Do I need to update credentials or refresh Azure authentication tokens on a recurring basis?
Yes. The Azure Active Directory token must be refreshed every 90 days. Failing to do so will prevent the DRA from
being able to authenticate and retrieve printing instructions applications.
Will Microsoft add support for Microsoft Windows Server 2008 servers?
No, not at this time. There are several dependencies on Azure capabilities that are available only in Microsoft
Windows Server 2012 R2 and Microsoft Windows Server 2016.
Does the user who installs the Document Routing Agent have to be part of a Finance and Operations apps
security group?
Yes. To access the agent installation links, the user must be part of the Document routing client security role.
How many network printers can the Document Routing Agent support?
The number of supported network printers depends on the number of legal entities and the number of network
printers deployed. If you have fifty printers and one legal entity, a single Document Routing Agent can handle the
load (although you'd want more than one to ensure high availability). If you have a large number of printers and
legal entities, we recommend that you do some performance testing to determine the number of Document
Routing Agents that you'll need.
Upgrade the Document Routing Agent
4/9/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Platform update 12 includes several important enhancements to the components that provide network printing
capabilities. For example, the solution for managing the print job queue has been redesigned so that the Print Job
Management service can be scaled to satisfy high-volume printing requirements. Although the Print Job
Management service is backward-compatible with in-market versions of the Document Routing Agent (DRA) client,
we strongly recommend that customers upgrade all existing DRA clients that are hosted on-premises.
If you don't upgrade existing installations of the DRA to Platform update 12 or later, you might experience the
following issues:
Observable performance degradation in applications
Document loss that is associated with orphaned print jobs
Inconsistent handling of printed documents that have custom margins
IT administrators must perform the following procedures on each domain resource that is used to host a DRA.

NOTE
When you complete the DRA upgrade, IT administrators should register any printers that are connected through the host
server. For network printers that are identified by their network paths, if the paths have not changed, updates are not
required.

Get started
To continue to run the DRA as a Microsoft Windows service, you must have both the user name and the password
of the domain account that is used to run the service. This information must be available after the upgrade is
completed. To find the information for the active service account, start the Microsoft Management Console (MMC)
Services snap-in, and select Microsoft Dynamics 365 Document Routing Ser vice in the list.
Uninstall an existing Document Routing Agent
Open Programs and Features , and then find and uninstall Microsoft Dynamics 365 for Finance and
Operations: Document Routing .
During the uninstallation process, if you're prompted to close the Microsoft Dynamics 365 Document Routing
Service application, select Automatically close applications and attempt to restar t them after setup is
complete.

Install the latest Document Routing Agent


For information about how to install the latest DRA that is available with your subscription, see Install the
Document Routing Agent to enable network printing.

NOTE
Be sure to open the DRA client after upgrading to refresh network user credentials.
Install network printer devices in on-premises
environments
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to connect an on-premises deployment of Microsoft Dynamics 365 Finance + Operations
(on-premises) to existing network printer devices. Network printing in the on-premises application is supported by
the Print and Document Services feature in Microsoft Windows Server 2016. This feature lets you centralize tasks
that are related to printer management. To install and configure Print and Document Services, you must have
administrative access to the server that hosts the primary instance of Application Object Server (AOS).
Two roles are associated with the configuration of network printing services:
Ser vice Administrator – The person who has this role is responsible for installing and configuring
components of the platform infrastructure. Traditionally, this role is an Active Directory account that has elevated
domain privileges. It has enough privileges to install components of Microsoft Windows Server.
Organization Administrator – The person who has this role manages application security privileges. This
Active Directory account is assigned to the System Administrator role.
Before the organization administrator can begin to add network printers, the service administrator must install and
configure Print and Document Services on the server that hosts the primary AOS instance. The organization
administrator can then begin to use built-in tools to configure network printer devices.

Install and configure Print and Document Services


The environment administrator uses the information in this section to enable network printing services.
1. Install Print and Document Services by following the instructions in Install Print and Document Services.
2. Configure Print and Document Services by following the instructions in Configure Print and Document
Services.
3. Follow these steps for each server that is used to host the AXService application:
a. On the local server, start the Local Users and Groups manager.
b. Select the Groups node.
c. Right-click Print Operators , and then select Add to Group .
d. Add the network Active Directory account that is used to run the AXService application to the group.
e. Install network printers by using the AXService user account. This step helps guarantee that the printer
driver is available to the AXService user account.
f. Print a test page on the installed printers to make sure that all the connections are correctly configured.
g. Restart the AXService application to help guarantee that the user's profile is correctly loaded so that it can
look up the printer driver.

Manage network printers


The system administrator uses the information in this section to define network printers.
1. Go to Organization administration > Setup > Network printers .
2. On the Network printers page, add new printers. For each printer, specify a name, description, path, and status.
Make sure that the printer path matches the network path of the installed printer.
Items that are marked Active immediately become available to application users, so that they can begin to print
document-style reports on network printer devices.
Document generation, publishing, and printing in on-
premises deployments
2/5/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the capabilities for generating, publishing, and printing documents in on-premises
deployments of Microsoft Dynamics 365 Finance + Operations (on-premises). The application provides a fully
integrated experience for enterprise document generation that is powered by Microsoft SQL Server Reporting
Services (SSRS). From any supported device, users can produce standard industry documents that are linked to
business processes. These documents include sales invoices, checks, and packing slips. Built-in tools let
administrators configure the service so that users can securely connect to network printers.
You can upgrade solutions that are built on the Microsoft Dynamics AX 2012 SQL Reporting Services framework,
or you can take advantage of the modern solutions that are available in Microsoft Dynamics Lifecycle Services
(LCS).

Document publishing services: secure, reliable, and convenient


Employees spend lots of time on the go. Therefore, businesses depend on their employees' ability to stay
productive while they work remotely. However, even today, documents remain critical for business transactions and
record keeping.
From their mobile devices, users can print documents on network printers. Users can also automate the creation of
business documents and use built-in tools to configure instructions for routing documents to multiple recipients.
The following options are available for document publishing:
Email – Distribute mail via a server, and link reports as attachments.
Archive – Store reports for future reference and regulatory compliance.
File – Produce a PDF file that is downloaded directly to the browser for local printing.
Print – Send documents directly to network printers from all supported platforms. These platforms include
mobile devices.
For a high-level summary of the options for information access that are available in the cloud-hosted solution, see
Document printing overview.

Comparing the cloud-hosted and on-premises services


Unlike the cloud-hosted service, the on-premises publishing service produces documents as PDF files that are
automatically downloaded to the browser. Therefore, users can save documents or print hard copies by using local
connected devices. Administrators can manage access to network printers directly from the application, by using
built-in administrative pages. Users can interact with reports on demand, or they can schedule automatic jobs to
securely generate and distribute documents on a recurring basis.
The following illustration shows the components that are involved in document printing.

For information about how to use extensions to manage availability of the embedded drill-through links in
application reports, see the Appendix.

Managing access to network printers


Administrators can use built-in administrative pages to manage access to network printers. Network printers are
secured per company and shared by users of the application. Documents are then printed by using a privileged
domain account, based on settings that the user provides. In on-premises deployments, you don't have to install an
adapter to connect to domain resources such as printers and fax machines.
The following illustration shows the page that is used to manage network printers.
Appendix
Turning on embedded links in business documents
Here is the code that you can use to make embedded drill-through links available in PDF documents.

class Controller extends SrsReportRunController


{
protected void preRunModifyContract()
{
this.parmReportContract().parmRdlContract().parmEnableFileDrillThrough(true);
super();
}
static void main(Args _args)
{
...
}
}
Run the Document Routing Agent as a Windows
service
11/5/2019 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The Document Routing Agent includes an option that lets you select the mode of execution. The process can run as
either a desktop application or a Microsoft Windows service. When the application runs as a Windows service, it
can be started automatically after a computer restart. It can also be configured to run under the security context of
a specific user account. This enhancement lets customers host the Document Routing Agent on secured domain
resources such as network print servers.
This topic provides important information that will help you select the correct execution mode.

Service applications
An application is a program that a user interacts with on the desktop. A service is a process that runs in the
background and doesn't have an active window. The Document Routing Agent now supports both execution
modes. It's important that you understand why you might select one mode instead of the other and the steps that
are involved in running the process as a service. For more information about Windows services, see Introduction to
Windows Service Applications. Here are some of the main benefits of running the Document Routing Agent as a
background service:
The service can be configured to start automatically after a computer restart. No user intervention is required.
The service runs in the background. No active application runs in the notification area.
The service routes documents without requiring that a user sign in by using cached credentials.
Although there are many benefits of running the Document Routing Agent as a Windows service, there are also
limitations. The next section discusses an issue that affects the handling of document reports, such as checks, that
require custom page margins.

Documents that require custom margins


When the Document Routing Agent runs as a Windows service, document reports, such as checks, that require
custom margins can't be printed directly to network printers. Instead, the Document Routing Agent automatically
routes those document to a target folder. New configuration properties in the application's Settings dialog box let
you define the target location for document reports that require custom margins.
When the Document Routing Agent runs as a desktop application, it continues to take advantage of Adobe Reader
to spool the document to the shared printer device that is selected in Finance and Operations. To handle scenarios
where documents that have custom margins must be printed, we recommend that you install the Document
Routing Agent in multiple locations. Then install the printers that will handle those documents only on the
Document Routing Agents that will run in desktop application mode. Alternatively, use a post-execution process to
pick up the files in the target directory and direct them in the appropriate manner.
Install the latest build
1. Save a copy of the current Document Routing Agent configuration file. This file is located at C:\Users\
<UserID>\AppData\Local\Microsoft\Microsoft Dynamics 365 for Finance and Operations Document
Routing\Microsoft.Dynamics.AX.Framework.DocumentRouting.config. In this path, <UserID> is the Active
Directory Domain Services (AD DS) user name that the Document Routing Agent was installed under.
2. Uninstall the current version of the Document Routing Agent.
3. Install the latest version of the Document Routing Agent by following the instructions in Install the
Document Routing Agent to enable network printing.

NOTE
Although you install the application at this point, don't run it yet.

4. Copy the configuration file from step 1, and paste it into the following directory:
C:\ProgramData\Microsoft\Microsoft Dynamics 365 for Finance and Operations Document Routing. This
step helps guarantee that all your previous configuration settings are used for the new version of the
Document Routing Agent application.
5. Run the Document Routing Agent.
6. Sign in by using your Microsoft Azure Active Directory (Azure AD) or your credentials for your Finance and
Operations apps.
7. View and verify your settings and printers by clicking the appropriate menu items.
The next section provides detailed instructions for selecting the Windows service execution mode.

Change the default execution mode


By default, the Document Routing Agent runs as a desktop application. To run the process as a Windows service,
make sure that you're familiar with the process for installing the Document Routing Agent to enable network
printer devices. Then complete the following tasks.
Update the execution mode for the Document Routing Agent
1. Start the Document Routing Agent by using the desktop icon.
2. Select the Sign In option, and sign in by using your Azure AD credentials.
3. On the ribbon, select Settings .
4. Enable the Run as a Windows Ser vice option.
5. Provide a target folder for PDF files that are produced for documents that have custom margins.
6. Select OK , and close the Document Routing Agent window.
Configure and start the Windows service
1. In Windows, start Service Manager.
2. In the list, select Microsoft Dynamics 365 for Finance and Operations Document Routing Ser vice .
3. Right-click the name, and then select Proper ties .
4. On the Log On tab, select the This account option, and then supply the AD DS credentials that are used to
run the service.
NOTE
Make sure that the selected account has access to the shared network devices.

5. Select OK .
6. Start the service.
The Document Routing Agent is now running as a Windows service.

Troubleshooting tips
Verify the network printer connection
Verify that the active account has enough access rights to the network printer.
Verify that the user account can successfully print to the network device by using Notepad or another local
application.
Verify security roles
To access the application links that are used to install the Document Routing Agent, the user must be part of the
Document routing client security role.
Review the service account's access rights
Verify that the DocumentRoutingSer vice service is running as a domain account that has access to the
network devices.
Refresh the Azure service token
Azure authentication tokens must be refreshed ever y 90 days while the Document Routing Agent is running
as a Windows service. To refresh the service token, start the client, and then sign out and sign back in by using
the menu items.
Disable shared printers for remote access
When you connect to the host machine by using Microsoft Remote Desktop, make sure that you clear the
Printers option in the Local devices and resources section on the Local Resources tab.
Review the event logs
1. On the host machine, start Event Viewer.
2. Review the logs at Application and Ser vices Logs > Microsoft > Dynamics > AX-DocumentRouting .
SQL Server Reporting Services (SSRS) reports that
are available
11/5/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic points you to a report that lists the SQL Server Reporting Services (SSRS) reports available.
Reports can be defined simply as any visualization of a structured data set. This may include transactional data
presented in a tabular layout and advanced graphical views of aggregate information. To account for this broad
definition, the application offers several tools to produce reports to satisfy complex business requirements. One of
these tools is SQL Server Reporting Services. SSRS reports provide the following advantages:
Back office document management capabilities including email support, scheduled executions via batches, and
print archive functionality.
Parameterized views with drill-through navigation to application pages and other reports.
Used to produce precision documents for compliance with local regulatory business practices.
For more information, see Create reporting solutions.

To view the report


The SQL Server Reporting Services Reports report lists each report that is available. The report indicates the data
set used for each report, as well as the filters and fields available on each report.
Install modern report design templates
2/14/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to install the modern report design templates in the application suite. You can use these
samples to create graphically rich business documents that have flexible branding in the header and footer.

Introduction
A new set of developer tools is available that takes the form of report designs for several core business documents
in the application suite. These report designs have been re-imagined so that flexible branding appears in the header
and footer of public-facing documents when transactions are generated in the application. The following illustration
shows how an earlier design for a sales invoice differs from a modern sales invoice design.

After you complete the installation, you can use the built-in brand management tools to define brand settings that
should be applied to the modern designs for application business documents. The brand management tools are
available at Organization administration > Setup > Document branding > Branding details .

Why aren't these designs the default designs for the application suite
reports?
We are maintaining the legacy solutions for two primary reasons:
Modern designs don't include code. Although the legacy solutions use embedded Microsoft Visual Basic
(VB) code to recognize configuration keys and honor regulatory requirements that vary by region, the modern
report designs offer much less flexibility. The benefit of a simple design that has minimal code behind it comes
at the expense of reusability across regions.
Modern designs aren't available for all business documents. There is a gap between the supported
business documents and the availability of modern report designs. Although the legacy designs aren't as
aesthetically pleasing, they provide a sense of consistency.

IMPORTANT
The simple modern designs are not recommended for all types of deployments. They are intended for cases where the
customer doesn't require runtime control over the layout of the document through existing application configuration
settings.

Apply the modern designs


The modern report designs have been bundled into a model file and posted to Microsoft Dynamics Lifecycle
Services (LCS). Therefore, you can easily access them from your existing subscription. Use the following procedure
to obtain the modern report design solutions and install them in your local development environment. You must
then apply some customizations to incorporate the modern report designs into the appropriate scenarios.
Follow these steps to install the modern report designs for the application suite.
1. Sign in to LCS to access the deployment dashboard. Then, on the Shared asset librar y page, select the
Model asset type, and download the ApplicationSuiteModernDesigns model file. Save the model file to
a location that is accessible from the development environment.

NOTE
Be sure to select the appropriate model file for the version of the application that you're using.

2. Import the model file into your local development environment. To install a model file in a development
environment, use the ModelUtil.exe tool and the -impor t directive. Here is an example.

ModelUtil.exe -import -metadatastorepath=[path of the metadata store] -file=[full path of the file to
import]

3. Navigate to the J:\AOSSer vice\PackagesLocalDirector y\bin folder.


4. Run the following command.

ModelUtil.exe -import -metadatastorepath=J:\AOSService\PackagesLocalDirectory -


file="E:\Test\AppSuiteModernDesigns.axmodel"

For more information about how to import model files, see Export and import models. After you've
imported the model file, start Microsoft Visual Studio 2015. In Application Explorer, verify that the
Application Suite - Modern Designs collection appears under the AOT node. For more information
about how to use the Application Explorer, see Development tools tutorial
Now that you've successfully imported the Application Suite Modern Designs model, you must to rebuild the
application suite to update the metadata elements.

Build the application suite


The Application Suite Modern Designs model is an extension of the Application Suite model. To help guarantee that
all application references are updated so that they target the model extensions, you must build the Application
Suite model by using Microsoft Visual Studio.
1. Start Visual Studio 2015, or use the existing instance.
2. On the Dynamics 365 menu, select Build models .
3. In the list, select the check box for the ApplicationSuite package.

NOTE
You will see that the Application Suite Modern Designs model is included in the package definition.

4. Select Build to do a full build of the application suite.


This process may take up to 20 minutes, depending on the size of your machine.

Deploy the modern designs (one-box environments)


After you've compiled the application suite that includes the modern report design templates, you should verify the
changes locally. To verify the changes, you must deploy the new modern report design solutions to the instance of
Microsoft SQL Server Reporting Services (SSRS) that is running locally.
Follow these steps to incorporate the modern report design into an existing application suite report.
1. Create a project that contains the application suite report. In Application Explorer, under the Application Suite
Modern Designs model, expand the Repor ts node, and then expand the Repor ts subnode. Select all the
items in the folder, right-click, and then select Add to new project .
2. Complete the New Project wizard. Accept all default values.
3. In Solution Explorer, select the project, right-click, and then select Deploy repor ts to deploy the build and
deploy the reports locally.
When you add the modern report design to an existing report, you can reuse both the parameter handling and the
data provider that the out-of-box solution uses.

Update Print management settings


At this point, you should be able to access the modern report designs from the application. Make sure that you do
thorough test validations on the modern report design templates before you deploy them to production
environments. To do test validations, you must activate the modern report designs for the application business
process.
Follow these steps to update the Print management settings for customer sales orders by selecting the modern
report design solution as the default report design.
1. Open the Form setup page for the module. For example, for Accounts receivable, select Accounts
receivable > Setup > Forms > Form Setup .
2. Select Print management to open the Print management setup page.
3. Expand the tree, and find the settings for the Sales order confirmation document.
4. Select Original <Default> to begin to modify the default document routing.
5. In the Repor t format list, select SalesConfirmModern.Repor t to enable the modern report design
solution.

6. Open another page. This step forces a save operation to occur.


7. Post a sales order to view the modern design in the application.
Power BI integration with Entity store
11/5/2019 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Entity store is an operational data store that is included with Microsoft Dynamics 365 Finance. This topic describes
how Entity store enables Power BI integration.
Entity store is an operational data store that is included with the application. The Entity store feature was
introduced in the Microsoft Dynamics AX platform update 1 (May 2016) release. This feature lets an administrator
or power user stage aggregate measurements in a dedicated data store for reporting and analytics. (Aggregate
measurements are a star schema that is modeled by using entities.) We call this data store Entity store. It’s a
database that is optimized for reporting purposes. Entity store uses the in-memory, clustered columnstore index
(CCI) functionality that is built into Microsoft SQL Server to optimize reporting and queries. Customers can use
Microsoft Power BI DirectQuery models together with Entity store to enable high-volume, near-real-time analytical
reporting over large volumes of data.

Power BI DirectQuery mode


In the February 2016 release of Microsoft Dynamics AX, you could create Power BI reports by using OData
endpoints that are exposed via data entities (both aggregate data entities and detailed or regular data entities).
Although this approach is still supported, Entity store also lets power users create Power BI DirectQuery reports.

As the preceding illustration shows, DirectQuery is a reporting mode that runs reports directly on Entity store. In
this reporting mode, data isn't staged in Power BI caches. This mode provides two immediate benefits:
You can create Power BI reports over large data volumes.
Reports don't have to be updated by using Power BI. When Entity store is updated, reports reflect the latest data.
Additionally, data doesn't leave your environment, because no data is cached in the Power BI service.

Stage aggregate measurements in Entity store


Aggregate measurements are a star schema that is modeled for analytical scenarios. In the February 2016 release,
we enabled real-time, in-memory aggregate measurements. By using real-time aggregate measurements, you can
enable embedded charts and key performance indicators (KPIs) that react to real-time operations on data. For
information, see Transition from Analysis Services cubes to aggregate models. Real-time aggregate measurements
take advantage of the in-memory, non-clustered columnstore index (NCCI) technology. Visuals and aggregate
calculations that are built over real-time aggregate measurements reflect transactions within seconds. In the
platform update 1 (May 2016) release, we enabled aggregate measurements that can be staged in Entity store.
Aggregate measurements that are staged in Entity store can be used for near-real-time analytical scenarios where
large volumes of data must be explored by using Power BI. As a developer, you learned how to model an aggregate
measurement for real-time analytics in Model aggregate data. In the platform update 1 (May 2016) release, we also
added the capability to model aggregate measurements that can be staged in Entity store. In Microsoft Visual
Studio, you can specify StagedEntityStore as the usage property of an aggregate measurement. This new
property was added in May 2016. Previously, InMemor yRealTime was available as the usage property.

However, you might wonder why you would model an aggregate measurement so that it can be staged? Why
wouldn’t you use in-memory real-time aggregate measurements all the time? There are several reasons for using
the StagedEntityStore pattern:
There might be large amounts of data that must be explored and analyzed.
You might have Analysis projects (that is, cubes) that you migrated from Microsoft Dynamics AX 2012 R3 as
part of the code upgrade process. Because of the complex views and joins that are present in the schema, query
response times might not be acceptable for embedded visuals. However, you might not want to refactor the
visuals to take advantage of NCCI technology immediately.
Unlike the operational database schema, the schema in Entity store is modeled specifically for reporting.
Therefore, it's much easier to build new reports from the schema in Entity store.
Your scenario might not require that analytical data be updated within seconds of an operation. Most Power BI
reports that are built to enable data exploration fall into this category. If data freshness of approximately 10
minutes is acceptable for your scenario, you might want to use the staged pattern.
If one of the preceding reasons covers your situation, you should stage your aggregate measurement in Entity
store and it use for Power BI integration.

Update Entity store


In the client, you can find the Entity Store page at Systems administration > Setup > Entity Store .

This page includes a list of aggregate measurements. You can stage any of these aggregate measurements in Entity
store. If you're a developer and are familiar with the aggregate measurements that are available in the Application
Object Tree (AOT), you might wonder why some aggregate measurements aren't shown here. If you have
aggregate measurements that you migrated from AX 2012 R3 (that is, SQL Server Analysis Services projects that
were migrated as part of the upgrade process), they can't be deployed until a developer changes the usage
property to StagedEntityStore . This behavior is intentional. We have enabled best practice warnings and errors
that are intended to capture some of the common upgrade issues that affect aggregate measurements. You should
fix best practice errors and warnings if you plan to use near-real-time (NCCI) mode. As of the May 2016 update, the
administrator must schedule a periodic update by clicking Refresh on the Entity Store page. You can use the
Refresh button for a one-time update (that is, demo) or to schedule periodic updates, as shown in the following
illustration.
The batch framework is used for scheduling. Therefore, refresh jobs can be monitored, load balanced, and
prioritized by using the capabilities of the batch framework. As of the May 2016 update, we support only full
updates. However, we will enable incremental updates soon. Eventually, in a future update, the system will update
Entity store based on actual usage patterns. Therefore, as an administrator, you will have to use the Configure
refresh dialog box only as an exception.
Connecting to the Entity store database
For troubleshooting and diagnostics, you can connect to the Entity store database directly from a related sandbox
environment. To connect:
1. Use Remote Desktop to access the sandbox. The RDP file can be downloaded from the Environment Details
page after you have whitelisted your IP address.
2. Open SQL Server Management Studio, and connect to the server specified on the Environment Details page.
Find the section titled Database Accounts . Locate the entry for the user with the name axdwadmin .
The server name is the first portion of the SQL Ser ver\Database Name field. This should be used in
the format of SQLSer verName.database.windows.net where SQLServerName is the value from LCS.
The authentication type should be changed from Windows Authentication to SQL Server Authentication.
The login will be axdwadmin and the password will be the value from LCS.
3. Using the Options button or by browsing to the Connection Proper ties tab, change the Connect to
database property from the default value to your Database Name value from LCS.
4. Click Connect to access the database.
Resolve issues after entity store maintenance
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

When maintenance is performed on the entity store, it impacts the following components:
Application analytical workspaces.
Entity store-based reports that have been deployed to PowerBI.com.
To resolve issues with these components, complete the procedures in this topic.

NOTE
There will be no impact to the normal operation of your application.

If you are using application analytical workspaces


Application analytical workspaces and reports may not render data after certain maintenance operations are
completed. The following screenshot shows an example of this.

To resolve this issue:


1. Sign in to the application.
2. Go to the Batch jobs page (System administration > Inquiries > Batch jobs ).
3. Delete all pending batch jobs associated with the entity store. These batch jobs:
Will have a status of Waiting .
Will typically have a description of Deploy measurement .

NOTE
The default description is Deploy measurement . If the description has been customized, you can verify whether a
batch job is associated with the entity store by looking at the class name. Batch jobs associated with the entity store
will have a class name of BIMeasurementDeployManagementEntityBatchJob .

4. Go to the Entity store page (System Administration > Setup > Entity Store ).
5. Select all measurements that need to be refreshed.
6. Click Refresh , and then click OK .
After the refresh completes, the application analytical workspaces and reports will render data.

If you have deployed entity store-based reports to PowerBI.com and


are using the reports within PowerBI.com
After refreshing the entity store (as described above), redeploy the reports using the Deploy Power BI repor t
files page by selecting System Administration > Setup > Deploy Power BI files .

NOTE
Reports that were previously deployed to PowerBI.com may produce errors. If this occurs, you may need to delete and
redeploy the report after the maintenance activity is completed.
Configure PowerBI.com integration
4/11/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Overview
Users can pin tiles, dashboards, and reports from their own PowerBI.com account to application workspace.
This functionality requires a one-time configuration of your environment. An administrator must do this step to
enable Microsoft Power BI to communicate and authenticate correctly.
For a workspace to show a Power BI tile, the server must contact the Power BI service on behalf of a user and
access the visualization. It must then redraw the visualization in the application workspace. The fact that the
server contacts the Power BI service "on behalf of a user" is important. When a user, such as
[email protected] , contacts the PowerBI.com service, Power BI should show only tiles and reports from the
user's PowerBI.com subscription.
By completing this configuration step, you enable to contact the PowerBI.com service.

Things you must know before you start


You must be a system administrator in the application. This option is available on the System
administration menu.
You must have a PowerBI.com account. You can create a trial account if you don't have an account. (A Pro
license isn't required for this configuration step.)
You must have at least one dashboard and one report in your Power BI account. Although the dashboard and
report aren't required for this configuration step, you might not be able to validate the configuration if you
don't have any content in your PowerBI.com account.
You must be an administrator for your Microsoft Azure Active Directory (Azure AD) account. If you aren't the
administrator, an administrative user must perform this configuration step for you.
The Azure AD domain that is configured must be the same domain that you used for your PowerBI.com
account. For example, if you provisioned the application in the Contoso.com domain, you must have Power BI
accounts in that domain, such as [email protected] .

Registration process
1. Sign in to https://portal.azure.com/ using an Azure tenant admin account.

NOTE
The user who completes this procedure must have Admin rights for the tenant to register applications.

2. Go to Azure Active Director y > App registrations > New application registration .
3. Enter the following values:
Name - Your app name.
Application type - Web app/API
Sign-on URL - The base URL of your client. For example, https://contosoax7.cloud.dynamics.com .

NOTE
Depending on your version, you may need to add /oauth as a suffix to the URL, or use http instead of https as the
protocol, such as: https://contosoax7.cloud.dynamics.com/oauth/ or
http://contosoax7.cloud.dynamics.com/oauth/ .

4. Click Create .
5. Copy the Application ID . This will be used to connect to the PowerBI.com service.
6. Click Settings > Required permissions > Add > Select an API > Power BI Ser vice (Power BI) .
7. Click Select .
8. Enable Access and click Select .
9. Click Done and then click Grant Permissions .
10. Click Settings > Keys .
11. Enter a value for Key description and Expires , and then click Save .
Make a note of the Application ID and Application Key . You will use these values in the next procedure.

Specify Power BI settings in Finance and Operations


1. In the client, open the Power BI configuration page.
2. Select Edit .
3. Set the Enabled option to Yes .
4. In the Application ID field, enter the Application ID value that you got from Power BI in the previous
procedure.
5. In the Application Key field, enter the Application Key value that you got from Power BI in the previous
procedure.
You can apply the company filter only if your Power BI content has a table that is named Company and a
column that is named ID . Ready-made Power BI content that is released uses this convention.
6. Click Save .
Complete the steps in the next section to verify the changes and enable PowerBI.com integrations.

Pin tiles to a workspace


1. To validate the PowerBI.com configuration, click Get star ted .
NOTE
You may need to refresh the browser to apply the changes.

If you're starting Power BI from the application for the first time, you're prompted to authorize sign-in to Power BI
from the client. Select Click here to provide authorization to Power BI .
Users must complete this step the first time they pin Power BI content.
2. The Azure AD consent page asks for your consent. User consent is required for the application to access
PowerBI.com on behalf of the user. Select Accept .
3. Because you're already signed in to Azure AD, you don't have to enter your credentials again. A new tab
appears, where you're prompted to authorize the connection between the application and Power BI.
Authorize the connection, and then return to the original tab.
4. A list of tiles from your PowerBI.com account appears. Select one or more tiles to pin to the selected
workspace.
Troubleshooting common errors
In the procedure above, after you click Accept , you might receive the following error message if the process is
unsuccessful. Note that the details of the error appear at the bottom of the message. Additional technical
information provides clues that can help you determine what went wrong.
Some common issues and the resolution steps
ERRO R RESO L UT IO N

The Power BI service is unavailable. This issue doesn't occur very often, but the Power BI service
might sometimes be unreachable. You don't have to re-
register. Try to pin a tile to a workspace later.

You can't access the application. You probably didn't select all the check boxes under Step 8
in the Registration proces during the registration process.
Start Power BI, and re-run the registration process.

The Power BI tiles page is empty (no content is shown). Your PowerBI.com account might not have a dashboard or
any tiles. Add a dashboard, such as a sample dashboard, and
try to pin a tile again.

Error when authorizing Power BI On the Azure Admin dashboard, under Users and Groups
> User settings , make sure that the Users can consent
to apps accessing company data on their behalf
option is set to Yes .
Bring your own database (BYOD)
2/5/2020 • 13 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how administrators can export data entities from the application into their own Microsoft Azure
SQL database. This feature is also known as bring your own database (BYOD). The BYOD feature was released in
Microsoft Dynamics AX with platform update 2 (August 2016). Minor improvements and bug fixes have been
included in subsequent platform updates.
The BYOD feature lets administrators configure their own database, and then export one or more data entities that
are available in the application into the database. (Currently, more than 1,700 data entities are available.)
Specifically, this feature lets you complete these tasks:
Define one or more SQL databases that you can export entity data into.
Export either all the records (full push) or only the records that have changed or been deleted (incremental
push).
Use the rich scheduling capabilities of the batch framework to enable periodic exports.
Access the entity database by using Transact-SQL (T-SQL), and even extend the database by adding more tables.

Entity store or BYOD?


If you followed the series of blog posts about Microsoft Power BI integration, you will be familiar with Entity store.
Entity store is the operational data warehouse. Entity store provides built-in integration of operational reports with
Power BI. Ready-made reports and analytical workspaces use Entity store. If you write Power BI reports by using
data in your application environment, you should use Entity store.
However, the BYOD feature is recommended for the following scenarios:
You must export data into your own data warehouse.
You use analytical tools other than Power BI, and those tools require T-SQL access to data.
You must perform batch integration with other systems.

NOTE
The application doesn't allow T-SQL connections to the production database. If you're upgrading from a previous version of
Finance and Operations, and you have integration solutions that require direct T-SQL access to the database, BYOD is the
recommended upgrade path.

You can use either Entity store or BYOD. The default operational reports that are available take advantage of
embedded Power BI and Entity store. We recommend that you use our default operational reports as your first
choice. You can also extend the ready-made operational reports to meet your requirements. You should consider
BYOD a complementary option that you use as you require.

Creating a SQL database


Before you can configure the entity export option and use the BYOD feature, you must create a SQL database by
using Azure portal.
For one-box development environments, you can create a database in the local Microsoft SQL Server database.
However, this database should be used only for development and testing purposes. For production environments,
you must create an Azure SQL database.
You should also create a SQL user account for sign-in to the database. Write down the server name, database name,
and the SQL user ID and password. You will use this information when you configure the entity export option in the
next section.
If you're using the BYOD feature for integration with a business intelligence (BI) tool, you should consider using
clustered columnstore indexes (CCIs). CCIs are in-memory indexes that improve the performance of read queries
that are typical in analytical and reporting workloads.

NOTE
Your BYOD database must be accessible to Finance and Operations apps. If you encounter issues where you are unable
access to access BYOD, you must ensure firewall rules in your BYOD are configured appropriately.

Configuring the entity export option


1. Start the client, and then, in the Data management workspace, select the Configure Entity expor t to
database tile.
2. If you've configured any databases, a list is shown. Otherwise, you must configure a new database. In this
case, select New , and then enter a unique name and a description for the new database. Note that you can
export entities into multiple databases.
3. Enter the connection string in the following format:
Data Source=<logical server name>,1433; Initial Catalog=<your DB name>; Integrated Security=False; User
ID=<SQL user ID>; Password=<password>
In this connection string, the logical server name should resemble nnnn.database.windows.net . You
should be able to find the logical server name in Azure portal. The following illustration shows an example
of a connection string.

4. Select Validate , and make sure that the connection is successful.


The Create clustered column store indexes option optimizes the destination database for selected
queries by defining CCIs for entities that are copied. However, CCIs are currently supported only on SQL
premium databases. Therefore, to enable this option, you must create a SQL premium database.
The Enable triggers in target database option sets export jobs to enable SQL triggers in the target
database. This option lets you hook downstream processes into the trigger to orchestrate actions that
must be started after records have been inserted. One trigger is supported per bulk insert operation. The
size of the bulk insert is determined by the Maximum inser t commit size parameter in the Data
management framework.
For scenarios in which reporting systems read data from BYOD, there is always the challenge of ensuring that the
reporting systems get consistent data from BYOD while the sync is in progress. You can achieve this result by not
having the reporting systems read directly from the staging tables created by the BYOD process. The staging tables
hold the data while data is being synced from the instance and hence will be constantly changing. Use the SQL
trigger feature to determine when the data sync has been completed, and then hydrate the downstream reporting
systems.
When the validation is passed, the database that you configured for entity export appears in lists of databases, as
shown in the following illustration.

You can now publish one or more entities to the new database by selecting the Publish option on the menu.
Publishing the entity schema to the database
The Publish page enables several scenarios:
Publish new entities to the database.
Delete previously published entities from the database. (For example, you might want to re-create the schema.)
Compare published entities with the entity schema. (For example, if new fields are added later, you can compare
the fields with your database schema.)
Configure change tracking functionality that enables incremental updates of your data.
The following sections discuss each option.
Publish
The Publish option defines the entity database schema on the destination database. When you select one or more
entities, and then select the Publish option, a batch job is started. This job creates the entities in the destination
database. When the database definition job is completed, you receive a message, which you can access by using the
bell symbol in the upper right.
The actual data update occurs when you export data. At this point, you're just creating the schema.
Drop entity
The Drop entity option deletes the data and the entity definition from the destination database.
Compare source names
The Compare source names option lets you compare the entity schema in the destination with the entity schema
in the application. This option is used for version management. You can also use this option to remove any
unwanted columns from the destination table.
Configure change tracking
Change tracking is a feature that is provided in SQL Server and SQL Database. Change tracking enables the
database to track changes including deletes that are made on tables. The system uses change tracking to identify
changes that are made to tables as transactions. However, because the application must track changes at the data
entity level, there is additional logic on top of SQL change tracking to make this functionality work. The steps to
enable change tracking are explained later in this section.
The Change tracking option on the Publish page lets you configure how changes are tracked on the underlying
entity.

The following table describes the change tracking options that are available.

O P T IO N DESC RIP T IO N

Enable primary table An entity consists of several tables. Select this option to track
all changes that are made to the primary table of the entity.
When changes are made to the primary table, the
corresponding record is inserted into or updated in the
destination database. Although data from the whole entity is
written to the destination table, the system triggers the insert
or update option only when the primary table is modified.

Enable entire entity Select this option to track all changes to the entity. (These
changes include changes to all the tables that make up the
entity.) When changes are made to the entity, corresponding
updates are made to the destination.

Enable custom query This option lets a developer provide a custom query that the
system runs to evaluate changes. This option is useful when
you have a complex requirement to track changes from only a
selected set of fields. You can also select this option when the
entities that will be exported were built by using a hierarchy of
nested views. For more information, see Enable change
tracking for entities.

To use change tracking, you must enable the Change tracking option as shown above in data management. This
action is available on the Data entities list page, by going to Data management > Data entities . You need to
select an entity and select from one of the options listed above to enable change tracking on the data entity.
If you republish an entity that exists in the destination database, the system warns you that existing data will be
deleted because of the new operation.
When you confirm the publish operation, the system publishes the schema to the database, and you're notified
when the operation is completed.
By selecting the Show published only option on the Publish page, you can show only the entities that were
published to a given destination database. The Publish function creates the entity schema in the database. You can
navigate to the database and see the table schemas that were created, together with corresponding indexes.

NOTE
Currently, you can't use BYOD to export composite entities into a database. You must export each entity in the composite
entity.

Exporting data into your database


After entities are published to the destination database, you can use the Export function in the Data management
workspace to move data. The Export function lets you define a Data movement job that contains one or more
entities.
You can use the Expor t page to export data into many target data formats, such as a comma-separated values
(CSV) file. This page also supports SQL databases as another destination.

You can create a data project that has multiple entities. You can schedule this data project to run by using the batch
framework. You also schedule the data export job to run on a periodic basis by selecting the Expor t in batch
option.
The same job can also be used to export data from all companies. In prior to Platform update 27, this feature can be
enabled by enabling the flight DMFEnableAllCompanyExport as explained in Data management overview. Starting
in Platform update 27, this feature can be enabled in data management framework parameters. After the feature is
enabled, a new option will appear when adding an entity to a data project. This option can be enabled to export
data from all companies for the specific entity.
NOTE
Adding multiple entities to an export project for BYOD must be done carefully to ensure the overall reliability of the BYOD
export is not compromised. Different parameters must be taken into consideration when deciding the number of entities that
are added to the same project. Some of these parameters should be the degree of complexity of the entities, data volume per
entity that is expected, and the overall time for export to complete at the job level. Adding hundreds of entities must be
avoided, therefore creating multiple jobs with smaller number of entities is recommended.
Use of recurring exports in Manage > Manage recurring data jobs for BYOD is discouraged. You must use the Expor t
in batch option.

Incremental export
When you add an entity for data export, you can select to do an incremental export (which is also known as
incremental push) or a full push. For incremental push to work, you must enable the Change tracking option in
the database and specify an appropriate change tracking option, as described earlier in this topic.

NOTE
A full push deletes all existing records from an entity and then inserts the current set of records from the selected entity.

If you select an incremental push, the first push is always going to be a full push. This is because SQL needs to
know which records have been 'tracked' in order to be able to track subsequent changes. Whenever a new record is
inserted, or a record is added or deleted, the corresponding change will be reflected in the destination entity.
Because the first push is always a full push, we do not recommend that you do an explicit full push before you
enable change tracking.
We recommend that you first enable change tracking and schedule a export job with incremental push. This will
take care of the first full push and the subsequent incremental exports.
Timeouts
The default timeouts for BYOD exports are set to ten minutes for truncation operations and one hour for actual bulk
insert operations. When volumes are high, these timeout settings may not be sufficient and must be updated.
Starting with the release of Platform update 18, you can update the timeout settings by navigating to Data
management > Framework parameters > Bring your own database . These timeouts are company specific
and must be set separately for each company.
Known limitations
The BYOD feature has the following limitations.
There should be no active locks on your database during synchronization
Because BYOD is your own database, you must ensure that there are no active locks on your Azure SQL database
when data is being synced. Having active locks on your database during synchronization can result in slow writes
or even failure to export to your Azure SQL database.
You can't export composite entities into your own database
Currently, composite entities aren't supported. You must export individual entities that make up the composite
entity. However, you can export both the entities in the same data project.
Entities that don't have unique keys can't be exported by using incremental push
You might face this limitation especially when you try to incrementally export records from a few ready-made
entities. Because these entities were designed to enable the import of data, they don't have a unique key. However,
you can enable change tracking only for entities that have a unique key. Therefore, there is a limitation on
incremental push. One workaround is to extend the required entity and define a unique key.
Troubleshooting
Incremental push not working correctly
Issue - When a full push occurs for some entity then a large set of records can be seen in BYOD using a select
statement. However, an incremental push results in only a few records in BYOD. It seems as if the incremental push
deleted all the records and added only the changed records in BYOD.
Solution - In cases like this it is recommended to disable and re-enable change tracking for the entity in question.
The state of the SQL change tracking tables might not be in the expected state. Also verify that there are no other
incremental exports that cover the same tables (DMF, MR, Retail).
SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005
Issue - Export to BYOD fails with an SSIS exception shown below.

An OLE DB error has occurred. Error code: 0x80004005.

An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005
Description: "Communication link failure".

An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005
Description: "TCP Provider: An existing connection was forcibly closed by the remote host.

Failed to open a fastload rowset for <entityStaging>. Check that the object exists in the database.

OLE DB Destination failed the pre-execute phase and returned error code 0xC0202040.

Solution - This can occur if the connection policy on the Azure SQL BYOD server is set to Proxy. This must be
changed to 'Redirect' as explained in SQL DB Connectivity Architecture
Preview PDF documents using a PDF viewer
4/11/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can streamline application experiences that result in the production of business documents by taking
advantage of the embedded PDF Preview option. Finance and Operations applications deliver a modern experience
to preview business documents that are produced by the service. You can use the built-in toolbar to navigate and
download the document or to print to locally connected devices.
The embedded viewer offers consistency between the screen presentation and the printed output. In addition,
report viewing times are drastically reduced when compared to the legacy experience. The Preview option is
available on all supported devices and does not require any additional third-party software. Documents can be
easily downloaded and navigated by using the built-in viewer toolbar options.
The following illustration shows a preview of the experience with a modern business document.

The legacy HTML-based preview experience is being replaced by a true document preview experience. There are
several key advantages in the modern PDF preview experience. These advantages include:
A fidelity between the screen presentation and the printed output.
A consistent document report preview experience across devices and platforms, including on-premises
deployments.
The server-side rendering improves the performance when producing the document.
A built-in tooling that allows users to quickly navigate the contents of the business document.

Accessing the PDF preview experience


The hosted PDF document viewer control is automatically available in most deployment types. However, for one-
box deployments, the PDF preview experience must be enabled on the Repor t options page. Complete the
following steps to enable the PDF preview experience.
1. Go to the Repor t options page by adding "&mi=SysReportAdministration" to the URL in your browser
window.
2. Set the Preview documents using embedded viewer field to Yes .
3. Click Save .

Additional feature information


Expandable/collapsible sections are available by default. These interactive operations do not function after the
PDF document has been created.
The printer drop-down menu allows users to choose from locally connected devices. This list does not include
network printers connected through the service.
Documents are downloaded to the local device using the built-in toolbar actions.
Application extensions are available to activate embedded drill-thru links in PDF documents.
Use the Print destination options to produce documents in formats other than PDF.

Feature limitations
The Embedded PDF viewer experience delivers a closed document that exactly matches the printed output of the
document. These documents cannot be modified by the recipient making the format ideal for business operations.
However, as a closed format, the documents are far less interactive on the screen when compared to HTML
presentations. The following end-user capabilities are not supported when previewing documents using the
embedded PDF viewer.
Embedded drill-thru navigations are not actionable while previewing PDF documents.
PDF documents do not support expandable and collapsible sections.
Sub-reports are not supported when viewing reports as PDF documents.
Printing the report directly to domain-hosted printer devices.
Analytics, aggregate measurements, and KPI
modeling
10/1/2019 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic discusses the embedded business intelligence (BI), aggregate measurements, dimensions, and data
entities, and aggregate programming model.

Embedded business intelligence


The term embedded business intelligence (BI) refers to experiences that use highly intuitive and fluid visualizations
to provide insights that are relevant to a task, so that user is more informed and can make better choices. For
example, a rental clerk in a car rental organization views the previous rental preferences of a customer when the
customer makes a reservation. In this case, the clerk can see the vehicles and colors that the customer has selected
in the past, and therefore can offer options that are likely to please the customer. Embedded BI is used throughout
the user interface. At a technical level, building rich visualizations requires a powerful charting framework, and also
an efficient way to access aggregated data that enables the display of fluid visualizations. Microsoft Dynamics 365
Finance and Operations meets both of these requirements, so that application developers can build rich and deep
embedded BI–enabled scenarios.

Where are the perspectives?


Perspectives were a concept that was designed to present data from a reporting point of view. Perspectives have
evolved over the past three releases for analytical scenarios.

VERSIO N DESC RIP T IO N

Microsoft Dynamics AX 4.0 Perspectives provided the ability to model ad-hoc reporting
models.

Microsoft Dynamics AX 2009 Perspectives added support for modeling analysis cubes.

Microsoft Dynamics AX 2012 Perspective modeling capabilities were improved through


richer modeling support and deeper integration with the
Application Object Tree (AOT).

Finance and Operations apps Perspectives are a first-class citizen in the data access
framework. They can be consumed via X++ or C# code, and
also in a model-driven way.

Perspectives reside within the analytics collection in the Application Explorer. Perspectives have undergone a major
upgrade and now incorporate the following improvements:
You can model new aggregate models and customize existing aggregate models as a star schema within
Application Explorer.
Modeling for key performance indicators (KPIs) in Application Explorer is supported.
You can model data entities by referencing aggregate models. Data entities can be exposed to external reporting
tools, such as PowerBI, as OData endpoints. Data entities can also be consumed.
You can consume aggregate models directly in the programming model by using X++ or C# code. You no
longer have to write MDX code to consume aggregate data.
Aggregate data is a first-class citizen within application data access. Its behavior is similar to the behavior of
detailed data. For example, aggregate data can be enriched with extended data types (EDTs) and enumerations,
and you can help secure them by using application security concepts.
The aggregate data infrastructure is maintained completely within the environment. By default, aggregate
measurements are real-time. As a system administrator, you can manage the latency of aggregate data and
controls based on available resources and business needs, without having to deal with the complexity of
scheduling and external tools.
Developers can reuse existing business models, making the modeling process quicker and easier.
Projects that were generated by using perspectives from Dynamics AX 2012 and later can be upgraded to Finance
and Operations metadata equivalents.

Aggregate measurements and aggregate dimensions


An aggregate measurement is a model that contains a collection of measures together with their corresponding
dimensions. Measures are aggregate numbers, such as Total Sales or Number of Orders. Dimensions are slicers,
such as Product, Vendor, or Customer, that help you analyze the measure. For example, the measure of Total Sales
isn't useful unless it can be sliced by Product, Region, and Customer. Aggregate measurements are the evolution of
AX 2012 analysis cubes. Whereas a cube was based on a multidimensional online analytical processing (OLAP)
technology, an aggregate measurement abstracts the underlying technology. Therefore, you no longer have to
know a lot about the underlying implementation technology. Additionally, the underlying technology infrastructure
can take advantage of improvements in in-memory real-time technology without requiring the developer to
rewrite the program. Aggregate dimensions are shared across an implementation. Aggregate measurements
associate themselves with relevant aggregate dimensions. For example, Total Sales can be associated with
Customer, Product, and Sales Region dimensions. However, Total Sales can't be associated with Vendor and
Warehouse dimensions. Aggregate dimensions and aggregate measurements are modeled by using Visual Studio
tools. The Upgrade tool lets customers and partners migrate existing Dynamics AX 2012 cubes to newer versions
of the product.

Aggregate data entities


By using the model-driven approach, you can create data entities by directly referencing aggregate measurements
and aggregate dimensions. These are known as aggregate data entities. Aggregate data entities are read-only data
entities that are used for reporting purposes. To consume aggregate data when you build charts and other client
controls, add the aggregate data to a form as a data source. You can also consume aggregate data entities
programmatically in C# or X++ code.

Aggregate programming model


The Aggregate programming model lets a developer consume aggregate data programmatically by using either
X++ or C# code. Data that you retrieve by using the Aggregate programming model can be used as a data source
in forms and reports. A developer can add aggregate data that is modeled in perspectives to an AXQuer y object.
The developer can also use an existing aggregate data entity to create a query that can be extended by adding
filters and additional columns that aren't present in the aggregate data entity. Bulk Move is a capability that is
associated with the Aggregate programming model. When a query is run by the kernel, the developer can move all
the records to a temporary or regular table without iterating row by row. Bulk Move provides a very efficient way
to move data from aggregate models to temporary tables.
Method expressions
Method expressions are a programming model for constructing rich calculations that are used to define fields in a
data entity. Method expressions enhance the computed column capability that was introduced in AX 2012 views.
Method expressions let you build expressions by using the C# or X++ programming language. You can also create
calculations on aggregate data that was previously coded by using MDX. Method expressions can be shared across
the program.

In-memory, near-real-time aggregate measurements


Aggregate measurements are deployed to Microsoft SQL Server non-clustered column store indexes (NCCI).
Therefore, they can take advantage of the in-memory computing (IMC) engine that is built into Microsoft SQL
Server 2016 as Azure DB. Aggregate measurements that have the IMC engine as their destination are referred to as
in-memory, near-real-time (IM-NRT) aggregate measurements. These aggregate measurements don't require that a
Microsoft SQL Server Analysis Services (SSAS) server be used. Because these models don't involve data updates,
the queries that are sent to them reflect the latest state of data in the operational database. That is why it's referred
to as near-real-time.

KPI modeling and customization


In AX 2012 and earlier versions, KPIs and business indicators had to be modeled by using native SQL Server
development tools. Although users could pin a KPI or business indicator to a Role Center by using the Business
Over view Web Part, they could not modify a KPI definition, such as the goal. Users can use a rich client form to
modify a KPI definition that was built and shipped by a developer. Users can also define new KPIs by using the
aggregate data that is contained in aggregate measurements. A developer can model a KPI definition in Microsoft
Visual Studio and ship it to a customer, either as a project or together with an independent software vendor (ISV)
solution. After a KPI is defined, users can customize it at run time.
Model aggregate data
11/5/2019 • 15 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This tutorial will walk you through the process of modeling aggregate data .

Prerequisites
This tutorial requires you to access the environment using Remote Desktop, and be provisioned as an
administrator. For more information, see the topic named Deploy and access development environments.

Key concepts
Aggregate measurements , similar to perspectives and Cubes from earlier versions, enable you to model
and consume aggregate data.
Key Performance Indicators (KPIs) are a form of analytic controls that track organizational performance
against the current status. KPIs are represented as tiles in a workspace or the dashboard . In this tutorial, you
will model a KPI in Visual Studio.
KPIs that are modeled in Visual Studio can be modified in the client. A user also has the ability to model new
KPIs using the client.
A workspace is an overview page that is specific to a particular subject area. Workspaces are common to all
users.
The dashboard is the default home page for each user.
Tiles are securable objects that can be pinned to a workspace or the dashboard. KPIs and aggregate data that
are shown on the dashboard, or a workspace, can be secured by using menu items.
Aggregate data can be consumed in building charts and other controls. Using the model driven approach, you
have the ability to create data entities by directly referencing aggregate measurements and aggregate
dimensions. These entities are referred to as Aggregate data entities . Aggregate data entities are read-only
data entities used for reporting purposes.
The aggregate programming model enables a developer to consume aggregate data programmatically
using either X++ or C# code. Data retrieved using the aggregate programming model can be used as a data
source in forms.
Method expressions enable a developer to build rich expressions using aggregate data. Method expressions
are an X++ class. KPIs can be modeled using method expressions, thereby eliminating the need to build MDX
expressions.
Contextual BI refers to providing required insights as part of the user experience such that the user has
relevant insights to not only achieve the task at hand, but be highly-productive during the course of the day.
Embedded BI refers to analytic content being embedded within the user experience. Contextual BI and
embedded BI teams are closely related. Contextual BI implies the added notion that the context of analytic
context revolves around the data or the task.
Self-ser vice BI refers to enabling a user to tweak existing and/or create new analytic content such as reports,
KPIs, and dashboards.
Set up
If this is the first tutorial you are working on, make sure you have configured the administrator user if you are
running on a local VM.
Import the tutorial project
If you have already imported the Fleet management tutorial project, skip to the next section. In Visual Studio, on the
Dynamics 365 menu, click Impor t Project .
1. Download the Fleet Management sample from https://github.com/Microsoft/FMLab, save it to c:\ , and unzip it.
2. In the Impor t Project window, next to the Filename text box, click the ellipsis button.
3. In the Select the file to impor t window, browse to the location of the FMLab folder, click
FMTutorialDataModel.axpp , and then click Open .
4. In the Project file location text box, enter C:\FMLab .
5. Select the Over write Elements check box, and then click OK .
Open the tutorial project
1. In Visual Studio, open the FMTutorial project. On the File menu, point to Open , and then click
Project/Solution .
2. In the Open Project dialog box, browse to C:\FMLab\FMTutorial, and then click FMTutorial. Click Open . The
FMTutorial project appears in Solution Explorer .
3. Use the FMTDataHelper class to load data for the Fleet Management tutorial. In Solution Explorer , in the
FMTutorial project, expand Classes . Right-click FMTDataHelper , and then click Set as Star tup Object .
4. On the Build menu, click Rebuild Solution . You use the rebuild to update the timestamps of the imported
artifacts. You can view the build progress in the Output window.
5. Press Ctrl+F5 to run the project and load the data.

Model an aggregate measurement for rental charges


Often, when a user asks for additional information, you get a request for one or more new reports. Imagine that
the manager of a rental car company has called and asked for a report. She is interested in finding out how the
rental business is performing. She wants a report that shows rental revenue by month. You soon find out that she
is interested in a breakdown of rental revenues. She wants to know whether the rental revenue is high in cases
where they have sold additional services, for example, car seats, GPS, re-fueling, as opposed to the base rental
charge. As it turns out, she suspects that specific customer groups are driving revenue up, and this is why she
wanted the report in the first place. She insists on adding Customer group to the report. Because the revenue must
be considered in relation to the number of rentals, she doesn’t want a few large corporate rentals to skew her
analysis. You both agree that the number of rentals needs to be shown along with revenue. We could represent this
requirement as a set of business questions using a matrix. Rows indicate the measures (or numbers) and the
columns indicate the dimensions (or slicers). An "X" in the intersection between a measure and a dimension
indicates that the measure needs to be "grouped by" the dimension.

REN TA L DAT E C USTO M ER GRO UP REN TA L C H A RGE T Y P E

Revenue X X X

Number of rentals X X X

Next, we will model an aggregate measurement to answer this business question.


Add a measure group for rental charges by using an existing view
In this section you will add a new measure group to an existing aggregate measurement.
1. In Solution Explorer , expand the Analytics folder of the project, and then double-click the aggregate
measurement, FMTAggregateMeasurement . The aggregate measurement will be launched in the
designer. Notice that the existing aggregate measurement contains two measure groups related to vehicle
inventory and rental details. You will create a new measure group related to rental charges.

2. In Solution Explorer , expand the Views folder of the project, and then select the
FMTRentalChargeExtendedView view.
3. Drag-and-drop the FMTRentalChargeExtendedView into the root node of the
FMTAggregateMeasurement aggregate measurement in the designer. Notice that a new measure group
is created and the values of properties have been applied as follows.

P RO P ERT Y VA L UE

Name FMRentalChargeExtendedView

Table FMRentalChargeExtendedView

4. In Solution Explorer , double-click the FMRentalChargeExtendedView view. When the designer form
opens, expand the Fields node.
5. Select the ExtendedAmount and RentalID fields, and then drag-and-drop the two fields onto the
Measures node of the newly created FMAggregateMeasurement measure group called
FMRentalChargeExtendedView . As you drag the fields, hover your cursor over the
FMAggregateMeasurement tab to access the Measures node. By default, when you drag-and-drop the
fields, the system assumes that you want counts of the measures. In this case, you need to modify default
properties for the ExtendedAmount and RentalId measures as follows:
P RO P ERT Y ( EXT EN DEDA M O UN T ) VA L UE

Default Aggregate Sum

Field ExtendedAmount (no change required)

Name Revenue

P RO P ERT Y ( REN TA L ID) VA L UE

Default Aggregate DistinctCount

Field RentalId (no change required)

Name NumRentals

6. Next let's create another measure which calculates Revenue per Rental by copying an existing measure.
Select the TotalRevenue measure. Right-click and select Copy from the Context menu.
7. Select the FMRentalDetails measure group. Right-click and select paste. Rename the newly created
measure to RevenuePerRental . Modify the aggregation function to Average .
Model an aggregate dimension charge type
To analyze rental revenue by the different charge types, you need to be able to slice revenue by the charge type. For
this purpose, you will first model a charge type dimension.
1. In Solution Explorer , under FMTutorial , right-click Analytics , point to Add , and then click New Item .
2. Select Dynamics 365 Ar tifacts > Analytics > Aggregate Dimension from the list of items.
3. In the Name property, enter FMTChargeType . This is the name of the aggregate dimension that will be
created. This name must be unique. Click Add . The new dimension will appear in Visual Studio.
4. In Application Explorer , expand the AOT and click Data Model > Tables . Drag-and-drop the
FMTChargeType table from Application Explorer onto the root node of the newly created
FMTChargeType dimension in the designer. Notice that dimension attributes and corresponding keys have
been added using the AutoReport field group of the table.
5. Expand the Attributes node of the new dimension. Notice that several attributes have been created for you
by default. The system has also created a dimension key based on unique indexes of the table. You can add
additional fields by dragging and dropping them into the Fields node.
6. Save the new dimension.
7. You may get a warning asking you to rename the field name Description to avoid the MDX reserved word.
Even though the aggregate dimension may not be deployed to SSAS in this aggregate measurement, it's
possible that this dimension may be used by an aggregate measurement deployed to SSAS in the future. To
avoid potential issues in the future, rename the field name Description to ChargeDescription .
Model dimension references for customer profile and charge type dimensions
Next, create dimension references to new and existing dimensions so that revenue can be sliced by customer as
well as charge type.
1. In Solution Explorer , double-click FMTAggregateMeasurement or, if you have it open, navigate to it in
the designer.
2. In Solution Explorer , select the dimensions FMTChargeType and FMTCustomerProfile .
3. Drag-and-drop them into the Dimensions node of the FMTRentalChargeExtendedView measure group.
Notice that dimension references have been created along with relations.
4. Save changes to FMTAggregateMeasurement . Review the property sheet for the dimension relation and
notice that the Use Table relations property is set to Yes . Notice that the drag-and-drop operation created
relationships between the measure group dimensions FMTRentalChargeExtendedView and
FMTChargeType , FMTCustomerProfile . Review the property sheet for the dimension relation and notice
that the Use Table relations property is set to Yes .
NOTE
In platform update 1611 and later, UseTableRelations property has been removed. When a new dimension
reference is created, system will default existing relationships. You can continue to provide an explicit relationship by
changing the relationship field that was defaulted. Providing an explicit relationship is equal to setting
UseTableRelationship to No .

5. Expand the Dimension relations node for the FMTCustomerProfile dimension. Notice that the
UseTableRelations property is set to No . In this case, the system has not been able to find a suitable
relationship between the Measure group and dimension. You will need to specify one manually.
6. Expand the FMTCustomerProfile dimension reference if you have not done so already. Select the node
FMTCustomerExtendedView . Right-click and see the property sheet.
7. Select CustomerID as the value for property DimensionAttribute . Select the relationship shown below.
Select Customer for the property value RelatedField .
8. Save changes to FMTAggregateMeasurement .

9. In this scenario, we specified a relationship because the system was unable to find one. You could also
specify a different relationship if you want to override the system choice by setting Use Table Relations
proper ty to No .
Model dimension references for the date dimension's rental start date and transaction date
Assume that for analysis purposes, you want to enable slicing by the start date of the rental; but for accounting
purposes, you want to enable slicing by the transaction date for each of the charges. To do this, you need to
associate the rental charges measure group with two date dimensions. In the BI world, this pattern is known as
Role Playing dimensions . By default, a date dimension is added to the measure group. You can rename the
default name appropriately and add new date dimensions as required.
1. Expand the Dimensions node of the FMTRentalChargeExtendedView measure group. Notice that the
Date_ dimension has already been included as dimension slicers.

NOTE
If the table or the view used to model the measure group is a Company-specific table, for example it contains
DATAAREAID as part of the key), a Company dimension relation will be created by default. In this case, the view we
used is not a company specific one.

2. Select the Date dimension and specify the following properties.

P RO P ERT Y VA L UE

Name RentalStartDate

Use Table Relations No (This is the default – no need to change)

3. Define the table relationship. Expand RentalStar tDate , and then expand the Date node.
4. Select the Relationship shown. Right-click and select the property sheet. Select Star tDate for the value of
Related field property.
5. The relationship you defined should look like the following screenshot.
6. Next, enable slicing of measures by the TransactionDate dimension. TransactionDate is also a date
dimension, so you will add another reference to the date dimension and associate that with the
corresponding field that contains the transaction date. When more than one date dimension is used as a
slicer, each date dimension is known as a Role playing date dimension .
7. Under the FMTRentalChargeExtendedView measure group, right-click the Dimensions node, and then
click New Dimension . A new dimension will be added to the list of dimension references.
8. Specify the following properties for the new dimension reference.

P RO P ERT Y VA L UE

Dimension Name Date_


[!NOTE] If you select the Dimension Name in the
wrong order, it will reset the other values you already
set.

Name TransactionDate

Use table relations No

Tags RolePlayingDate; Fleet

Notice the new property called Tags . This property enables the discovery of patterns within code and
metadata from within the Visual studio environment. You can enter any number of tags and they can be
searched using the hot keys or the Dynamics 365 menu in Visual Studio.
9. Define the table relationship. Right-click TransactionDate , and then click New Relation . You do not need
to specify any properties in the DimensionsRelation at this point.
10. Expand BIDateDimensionValue , and then select the Relationship Constraint . Right-click and select the
property sheet.
11. Specify the following properties for the BIDateDimensionsView relation constraint.
P RO P ERT Y VA L UE

Field Date

Related Field TranDate

The relationship you defined should look like the following screenshot.

12. Save the aggregate measurement.


Deploy the newly generated aggregate measurement
Now that you have completed modeling the aggregate measurement, you can deploy the aggregate measurement
and continue with building KPIs and visualizations. You have 2 deployment choices as shown below.

O P T IO N C O N SIDERAT IO N S

In-memory real-time This option will leverage the In-memory Column store indexes
of SQL Server database to deploy Aggregate Measurements.
This option is recommended when the Aggregate
measurement is used for embedded analytics within the client
where you need real-time analytics . For an overview of
concepts on real-time analytics, see Analytics, aggregate
measurements, and KPI modeling.

Stage in Entity Store This option leverages Entity store, the operational data store
that enables near real-time PowerBI repor ting . If you
choose this option, Aggregate measurement can be deployed
to Entity store and you can schedule the data to be refreshed
periodically. For an overview of this approach, refer to the blog
post here:
https://blogs.msdn.microsoft.com/dynamicsaxbi/2016/06/09/p
ower-bi-integration-with-entity-store-in-dynamics-ax-7-may-
update/
NOTE
SSAS Cube option is no longer supported when modeling aggregate measurements.

1. Select the FMTAggregateMeasurement node. Right-click and select Proper ties . Select
InMemor yRealTime as the value for the property Usage .

2. InMemoryRealTime aggregate models are deployed to SQL Server using Non-Clustered Column Store Index
(NCCI) technology. NCCIs is an in-memory technology that enables analytical and operational workloads to
be served from SQL server database. NCCI indexes can be defined on tables similar to any other index.
While NCCI indexes can be defined manually, framework has the ability to analyze index requirements and
add them to underlying tables where necessary.
3. Right-click FMAggregateMeasurement in Solution Explorer, and then click Add Column store indices
option . You will notice several new indexes being added by the system.
4. Save and build the project.
5. InMemoryRealTime aggregate models do not require data processing as the models are queried real-time. If
you have not enabled database synchronization along with the build, manually synchronize the database.

Model a KPI to show revenue per rental


Model a KPI in Visual Studio
Model a KPI definition in Visual Studio by using the aggregate measurement you defined above.
1. In Solution Explorer , right-click FMTutorial , point to Add , and then click New Item .
2. Select Dynamics 365 Ar tifacts > Analytics > Key Performance Indicator . Enter FMTRevenuePerRental
as the name of the KPI, and then click Add . The name must be unique across KPIs. The KPI is created.
3. Select FMTRevenuePerRental , and specify the Measurement Leave the default values for the other
properties.

P RO P ERT Y VA L UE

Measurement FMTAggregateMeasurement

Bad Threshold 0
P RO P ERT Y VA L UE

Good Threshold 0

Scoring Pattern MoreIsBetter

Show Goal Yes

Show Status and Trend Yes

Threshold Type Value

4. Define the expression for the KPI value. Under FMTRevenuePerRental , select Value , and specify the
following properties.

NOTE
The values must be entered in the order they appear in the table:

P RO P ERT Y VA L UE

Value Type BasedOnMeasure

Measure Group FMTRentalChargeExtendedView

Measure RevenuePerRental

5. Define the expression for the KPI Goal. Select Goal , and specify the following properties.

P RO P ERT Y VA L UE

Goal Type BasedOnValue

Value 250

NOTE
You could have defined a goal based on an aggregate measure as well. In this case, we will define a number as the
goal.

6. Save the KPI definition.


Preview KPI in client
Next you will preview the KPI definition in the client.
1. Right-click FMTutorial , and then click Re-Build . On completion of the build, select the Synchronize ...
database option.
2. Open Internet Explorer, and navigate to your Rainier instance base URL.
3. Navigate to the Reser vation Management workspace under App links > Fleet Management >
Workspaces > Reser vation Management .
4. Select the KPI tile Total Revenue . KPI details page for Total Revenue KPI will be displayed.
5. To navigate to the newly defined KPI, select the Show list icon on top left. From the list of KPIs shown, select
FMTRevenuePerRental .
Notice that the KPI details page for the new KPI, FMTRevenuePerRental is shown. Even though we did not
define trend charts, the system created a set of charts based on the limited metadata defined by the
developer. Users have the ability to modify KPI definitions and create new ones in the client. Next, you will
modify the newly defined KPI.
6. To demonstrate this capability, you can change the KPI Goal. Click the Edit button on top left, and enter 900
as the Goal Value.
7. Modify the threshold properties as follows:

P RO P ERT Y VA L UE

Threshold Type Percentage

Red if less than 90

Green if more than 110

8. Click Save on the bottom left to save changes. Notice that the KPI status color has changed in the KPI tile
shown.
Add financial dimensions to aggregate measurements
10/1/2019 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This feature lets power users include financial dimensions in ready-made Microsoft Power BI reports. Power users
can also create new Power BI reports that use financial dimensions.
Financial dimensions are user-defined configuration data that enables the ledger chart of accounts to retain
additional information. By adding financial dimensions, a user can configure additional data fields that will be
included with the chart of accounts and financial reports. Therefore, the ledger chart of accounts can be sliced and
diced based on those fields. This feature provides powerful financial reporting. For example, you can explore ledger
data by using the new financial dimensions that you've added. Because no financial dimensions are included in the
ready-made Power BI reports when they are released, you must include these additional fields to the ready-made
reports.
After financial dimension fields are included in the report, you can share the report with other users. Those other
users can modify existing visuals, such as charts, by including all or some of the financial dimension fields.

NOTE
This feature is available in Microsoft Dynamics 365 for Finance and Operations, Enterprise edition (July 2017). Platform
update 8 or later is also required.

How does this feature work?


The Entity store is an operational data warehouse that lets power users create reports. Whenever the Entity store is
updated, all available financial dimensions are included in it. We will look at an example from the Ledger Activity
aggregate measurement that contains General ledger journal-level details.
The following list shows some of the tables are filled in the Entity store when it's updated. Tables that have changed
are bold.
LedgerActivityMeasure_LedgerActivityMeasureGroup
LedgerActivityMeasure_TransactionDate
LedgerActivityMeasure_Currency
LedgerActivityMeasure_FiscalPeriodDateAggregtateDimension
LedgerActivityMeasure_LedgerFactDimension
LedgerActivityMeasure_FiscalYearOffsetDimension
LedgerActivityMeasure_MainAccount
LedgerActivityMeasure_DimensionCombination
LedgerActivityMeasure_Ledger
LedgerActivityMeasure_MainAccountCategory
LedgerActivityMeasure_Company
LedgerActivityMeasure_MainAccountLegalEntity
LedgerActivityMeasure_Agreement
LedgerActivityMeasure_BankAccount
LedgerActivityMeasure_BusinessUnit
LedgerActivityMeasure_Campaign
LedgerActivityMeasure_Cargo
LedgerActivityMeasure_Cargo_CN
Notice that, for each financial dimension that is defined in your system, you might see a corresponding table in the
Entity store.
If you examine the LedgerActivityMeasure_DimensionCombination table, you will notice that the list of fields has
been expanded and now includes additional fields. Each new field corresponds to a financial dimension. For an
example, here are some of the additional fields:
Agreement_FK
Agreement_Description
Agreement_Value
BankAccount_FK
BankAccount_Description
BankAccount_Value
BusinessUnit_FK
BusinessUnit_Description
BusinessUnit_Value
If a user defines a new financial dimension that is named vendor , when the Entity store is updated, a new table is
added that is named LedgerActivityMeasure_Vendor.
The LedgerActivityMeasure_DimensionCombination table will also contain the following new set of fields:
Vendor_FK
Vendor_Description
Vendor_Value

How a Power BI report author can create reports that use financial
dimensions
A business user can create a new report that uses financial dimensions by using Power BI desktop. Existing reports
that use financial dimensions can be updated so that they include additional fields.
In this example, we will use Power BI desktop to create a report that uses the Ledger Activity measure group.
1. In a development environment, connect to the Entity store database by using Power BI desktop.
2. Select the following tables:
LedgerActivityMeasure_LedgerActivityMeasureGroup
LedgerActivityMeasure_FiscalPeriodDateAggregtateDimension
LedgerActivityMeasure_DimensionCombination
3. Use the Manage relationships option in Power BI desktop to define the following relationships between
table fields:
Define a join between
LedgerActivityMeasure_LedgerActivityMeasureGroup.LEDGERDIMENSION and
LedgerActivityMeasure_DimensionCombination.DIMENTIONCOMBINATIONRECID .
Define a join between
LedgerActivityMeasure_LedgerActivityMeasureGroup.LEDGERGREGORIANDATEID and
LedgerActivityMeasure_FiscalPeriodDateAggregateDimension.LEDGERPERIODGREGORIANDATEID .
4. Create a matrix report that uses the Sales and YearName fields. The report should resemble the following
example.

Next, we will add financial dimension values.


5. In the list of fields in Power BI desktop, expand the LedgerActivityMeasure_DimensionCombination
table. You will see that the list of dimension fields is expanded into table fields, as shown here.

6. Include the BusinessUnit_Description field in the report. Your report should now show sales by business
unit, as shown in the following example.

Notice that you have the BusinessUnit_description field and the BusinessUnit_Value field. The value
field lets you to get a numerical value that can be used to sort columns.
7. Define a new financial dimension, and update the Entity store.
8. When the update is completed, right-click the LedgerActivityMeasure_DimensionCombination table,
and then select Refresh data . Notice that the new financial dimension that you defined is reflected in the list
of fields that are available for reporting.
9. You can include the new financial dimension fields in the report.
Creating reports that use expanded Financial dimension tables
As we discussed earlier, new tables were created in the Entity store. Each financial dimension field is also added to a
new table. The new tables contain individual fields for the name, value, and description.
Notice that the new tables contain a key that can be used to join them with the
LedgerActivityMeasure_DimensionCombination table that is used to create the report. If you want to use fields
from these additional tables, just include them in the report and relate them by using the keys.
1. Open the report that you created earlier.
We will now add a financial dimension table to the report.
2. In Power BI desktop, click Recent Sources on the menu, and then select the AXDW data connection. Table
navigator is shown.
3. Select the LedgerActivityMeasure_LegalEntity table for the report.

NOTE
If you're using a development or demo environment, you see this table because LegalEntity is a financial dimension
that is defined in demo data. If you're working with your own data, the tables that you see will correspond to financial
dimensions that you've defined.

We will now relate the selected table to existing tables in the report.
4. In the report, open the Manage relationships dialog box.
5. Join LedgerActivityMeasure_DimensionCombination.LegalEntity_FK to
LedgerActivityMeasure_LegalEntity.KEY_ .
If you select a different dimension table in step 3, you must relate the corresponding FieldName_FK field from the
combination table to the KEY_ field in the dimension table.

How a developer can enable financial dimensions


Before users can see expanded financial dimensions in the Entity store, a developer must enable the use of financial
dimensions in aggregate measurements. As a best practice, financial dimensions should be included when you
model any aggregate measurement that involves financial data. To include financial dimensions, create an
aggregate dimension that is based on “financial dimension tables.” As we saw earlier, an aggregate dimension that
you create by using financial dimension tables will be expanded at runtime.
What are financial dimension tables?
Financial dimension tables are base tables that contain financial dimension data. Examples include
DimensionAttributeValueCombination and DimensionAttributeValueSet .
If you use a table, a view, or an entity that is based on those two tables, the fields of the aggregate dimension will be
expanded at runtime.
Consider the following example from the LedgerActivityMeasure aggregate measurement.

DimensionCombination is an aggregate dimension that is modeled by using the


DimensionAttributeValueCombination base table. In this case, the developer has referenced the aggregate
dimension by using the LedgerActivityMeasureGroup measure group.
At runtime, new dimension fields are added (that is, the DimensionCombination table is expanded) as new financial
dimensions are defined in the system.
Creating role -playing financial dimensions
When you report by using ledger data, you might require reporting on primary accounts and offset accounts. For
an example, if a ledger transaction involves the transfer of an amount from one account to another account, the
primary account is the "from" account, whereas the offset account is the "to" account. This pattern is known as the
role-playing dimensions pattern.
Both primary accounts and offset accounts must be associated with transaction data. Therefore, you must expand
financial dimension fields of both primary accounts and offset accounts. We will now see how you can meet this
requirement. Consider the following example.
We have modeled two dimension references for LedgerActivityMeaureGroup. The first reference,
DimensionCombination, is joined by using the LedgerDimension field. We saw this pattern earlier in this topic.
The second reference, OffsetDimensionCombination, is another reference to the same dimension. We have reused
the DimensionCombination aggregate dimension and given it a new name. In the second case, we can join by using
the OffsetLedgerDimension field.
At runtime, the system will expand both these dimensions with additional fields. Therefore, you can report on
primary and offset dimension fields.
Create analytical reports by using Power BI Desktop
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

If you're a power user or a business analyst, you probably create many reports for your organization. You might
create these reports in Microsoft Excel by formatting and relating data before you share it with other people.
People in your organization might even come to you when they require modifications to the report. This solution
offers an easy way to create rich, interactive reports. As a report writer, you can use Microsoft Power BI Desktop as
the reporting tool. The reports that you create can then be published to PowerBI.com. For more information about
Power BI Desktop, see Create stunning reports and visualizations with Power BI Desktop.

Accessing the local Entity Store by using DirectQuery


You can create Microsoft Power BI reports by using Open Data Protocol (OData) endpoints that are exposed via
data entities. Despite the limitations of this approach, the Entity Store still supports it for legacy solutions. However,
DirectQuery is now the preferred method for sourcing data for analytical solutions. For more information about
the benefits and limitations of DirectQuery, see Use DirectQuery in Power BI Desktop.
When you use Power BI Desktop, you can create a report in your development or test environment by connecting
directly to the local Entity Store database. When you're satisfied with the report, your administrator can help you
migrate it to your production environment. The rest of this section walks you through this process.

NOTE
To develop or extend analytical workspaces and reports in the application suite, customers must use a development
environment running in their own subscription or on local machines. You won’t be able to develop or extend embedded
analytical reports in Microsoft-provided, Tier-1 environments. You need administrator rights to install Power BI Desktop.

Step 1: Populate the local Entity Store database


For this example, we will stage the aggregate models that the Commerce analytical solution consumes in the local
Entity Store. The models that the application uses are defined in the RetailCube aggregate measurement.
1. In the client, open the Entity Store page. (Select System administration > Setup > Entity Store .)
2. Select the RetailCube aggregate measurement, and then select Refresh .
3. Enter a name for the job that will be run in the background, and then select OK .
The following illustration shows the administrator dialog box that is used to configure the frequency of updates for
the aggregate model.
To monitor the progress of the job that stages the data, you can use the batch job monitoring page. (Select System
administration > Database > Batch jobs .) If you're using demo data, the job should take about a minute. After
the data is in the Entity Store, you can write reports.
Step 2: Connect to the local Entity Store database
1. Start Power BI Desktop. If any updates are available for Power BI Desktop, you might have to download and
apply them.
2. On the Power BI Welcome page, select Get data .
Alternatively, when Power BI Desktop starts, you can select Get Data > SQL Ser ver .

3. In the SQL Ser ver Database dialog box, enter . as the server name and AxDW as the database name. Then
select the DirectQuer y option.
The following illustration shows the settings that enable Power BI Desktop to access the local Entity Store
database.
NOTE
The Impor t option isn't currently supported.

4. Select OK .
The Navigator dialog box appears. You use this dialog box to select which tables and views from the Entity
Store you want to report on.
5. In the search box, enter Retail to filter for entities that are related to the RetailCube aggregate measurement.
6. Select the RetailCube_RetailTransDetailsView table that is shown in the navigator, and then select Load .
You can now create a report. You can drag measures and fields to the canvas, and can explore data and trends
interactively.
The following illustration shows a basic report that uses the local Entity Store database as its source.

Power BI Desktop also supports the creation of calculations and lets you combine data from multiple aggregate
measurements. Within minutes, you can create analytical reports by using data in the local development
environment. When you're satisfied with the report, you can migrate it to the production environment, so that
users can use the report to interact with production data.

Validating reports in a demo environment


The report shows the demo or test data in your developer environment. If you want to integrate the report into a
demo environment, you can continue to publish this report to your PowerBI.com account and pin it to the client.
Add analytics to workspaces by using Power BI
Embedded
4/14/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

NOTE
This feature is supported in Finance and Operations (version 7.2 and later).

Introduction
This topic shows how to embed a Microsoft Power BI report on the Analytics tab of a workspace. For the example
that is given here, we will extend the Reser vation management workspace in the Fleet Management application
to embed an analytical workspace on an Analytics tab.

Prerequisites
Access to a developer environment that runs Platform update 8 or later.
An analytical report (.pbix file) that was created by using Microsoft Power BI Desktop, and that has a data model
that is sourced from the Entity store database.

Overview
Whether you extend an existing application workspace or introduce a new workspace of your own, you can use
embedded analytical views to deliver insightful and interactive views of your business data. The process for adding
an analytical workspace tab has four steps.
1. Add a .pbix file as a Dynamics 365 resource.
2. Define an analytical workspace tab.
3. Embed the .pbix resource on the workspace tab.
4. Optional: Add extensions to customize the view.

NOTE
For more information about how to create analytical reports, see Getting started with Power BI Desktop. This page is a great
source for insights that can help you create compelling analytical reporting solutions.

Add a .pbix file as a resource


Before you begin, you must create or obtain the Power BI report that you will embed in the workspace. For more
information about how to create analytical reports, see Getting started with Power BI Desktop.
Follow these steps to add a .pbix file as a Visual Studio project artifact.
1. Create a new project in the appropriate model.
2. In Solution Explorer, select the project, right-click, and then select Add > New Item .
3. In the Add New Item dialog box, under Operations Ar tifacts , select the Resource template.
4. Enter a name that will be used to reference the report in X++ metadata, and then click Add .

5. Find the .pbix file that contains the definition of the analytical report, and then click Open .

Now that you've added the .pbix file as a Dynamics 365 resource, you can embed the reports in workspaces and
add direct links by using menu items.

Add a tab control to an application workspace


In this example, we will extend the Reser vation management workspace in the Fleet Management model by
adding the Analytics tab to the definition of the FMClerkWorkspace form.
The following illustration shows what the FMClerkWorkspace form looks like in the designer in Microsoft Visual
Studio.
Follow these steps to extend the form definition for the Reser vation management workspace.
1. Open the form designer to extend the design definition.
2. In the design definition, select the top element that is labeled Design | Pattern: Workspace Operational .
3. Right-click, and then select New > Tab to add a new control that is named FormTabControl1 .
4. In the form designer, select FormTabControl1 .
5. Right-click, and then select New Tab Page to add a new tab page.
6. Rename the tab page to something meaningful, such as Workspace .
7. In the form designer, select FormTabControl1 .
8. Right-click, and then select New Tab Page .
9. Rename the tab page to something meaningful, such as Analytics .
10. In the form designer, select Analytics (Tab Page) .
11. Set the Caption property to Analytics , and set the Auto Declaration property to Yes .
12. Right-click the control, and then select New > Group to add a new form group control.
13. Rename the form group to something meaningful, such as powerBIRepor tGroup .
14. In the form designer, select PanoramaBody (Tab) , and then drag the control onto the Workspace tab.
15. In the design definition, select the top element that is labeled Design | Pattern: Workspace Operational .
16. Right-click, and then select Remove pattern .
17. Right-click again, and then select Add pattern > Workspace Tabbed .
18. Perform a build to verify your changes.
The following illustration shows what the design looks like after these changes are applied.
Now that you've added the form controls that will be used to embed the workspace report, you must define the
size of the parent control so that it accommodates the layout. By default, both the Filters Pane page and the Tab
page will be visible on the report. However, you can change the visibility of these controls as appropriate for the
target consumer of the report.

NOTE
For embedded workspaces, we recommend that you use extensions to hide both the Filters Pane and Tab pages, for
consistency.

You've now completed the task of extending the application form definition. For more information about how to
use extensions to do customizations, see Customize through extension and overlayering.

Add X++ business logic to embed a viewer control


Follow these steps to add business logic that initializes the report viewer control that is embedded in the
Reser vation management workspace.
1. Open the FMClerkWorkspace form designer to extend the design definition.
2. Press F7 to access the code behind the code definition.
3. Add the following X++ code.
[Form]
public class FMClerkWorkspace extends FormRun
{
private boolean initReportControl = true;
protected void initAnalyticalReport()
{
if (!initReportControl)
{
return;
}
// Note: secure entry point into the Workspace's Analytics report
if (Global::hasMenuItemAccess(menuItemDisplayStr(FMClerkWorkspace), MenuItemType::Display))
{
// initialize the PBI report control using shared helper
PBIReportHelper::initializeReportControl('FMPBIWorkspaces', powerBIReportGroup);
}
initReportControl = false;
}
/// <summary>
/// Initializes the form.
/// </summary>
public void init()
{
super();
this.initAnalyticalReport();
}
}

4. Perform a build to verify your changes.


You've now completed the task of adding business logic to initialize the embedded report viewer control. The
following illustration shows what the workspace looks like after these changes are applied.
NOTE
You can access the existing operational view by using the workspace tabs below the page title.

Reference
PBIReportHelper.initializeReportControl method
This section provides information about the helper class that is used to embed a Power BI report (.pbix resource) in
a form group control.
Syntax

public static void initializeReportControl(


str _resourceName,
FormGroupControl _formGroupControl,
str _defaultPageName = '',
boolean _showFilterPane = false,
boolean _showNavPane = false,
List _defaultFilters = new List(Types::Class))

Parameters

NAME DESC RIP T IO N

resourceName The name of the .pbix resource.

formGroupControl The form group control to apply the Power BI report control
to.

defaultPageName The default page name.

showFilterPane A Boolean value that indicates whether the filter pane should
be shown (true ) or hidden (false ).

showNavPane A Boolean value that indicates whether the navigation pane


should be shown (true ) or hidden (false ).

defaultFilters The default filters for the Power BI report.


Help secure analytical workspaces and reports by
using Power BI Embedded
2/5/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

NOTE
This feature is supported in Microsoft Dynamics 365 for Finance and Operations, Enterprise edition (July 2017) (version 7.2)
and later releases.

Introduction
This topic provides a walk-through for application developers who want to help secure analytical workspaces and
reports that are delivered by using Microsoft Power BI Embedded. It describes the recommended strategies for
securing access to both the reports and the data set, based on viewer access rights. By using the techniques that
are described in this topic, you can hide reports from users and filter reports to show the data set that is
appropriate for a specific user, based on the active company context.

Prerequisites
Access to a developer environment that runs Platform update 8 or later
An analytical report (.pbix file) that was created by using Microsoft Power BI Desktop, and that has a data model
that is sourced from the Entity store database

Overview
Whether you're extending an existing application workspace or adding your own workspace, you can use
embedded analytical views to deliver insightful and interactive views of your business data. Before you add new
analytical workspaces and reports, it's important that you establish a strategy to help secure the content.
There are several considerations that you should be aware of when you develop analytical solutions by using
Power BI Embedded. Analytical reports are secured by using menu items. After they have access to a report, all
viewers can access the underlying data model that is defined in the report. Although service options are available
that automatically hide the fields that back a report data set, all viewers of the report have effective access to the
fields in the data model. Additionally, X++ extensions are available that influence the way that the report is
presented in the client. Both the Filter pane and the Repor t tabs can be hidden. However, Microsoft Power BI
filters can be modified by using client-side script injections.
Recommendation
Create scenario-specific .pbix files to deliver analytical views:
Area overviews that are delivered by using workspaces
Subject matter–specific analytical reports
NOTE
These analytical reports are often used to deliver reports that contain medium-business-impact and high-business-
impact data.

For more information about how to create analytical reports, see Getting started with Power BI Desktop. This page
is a great source for insights that can help you create compelling analytical reporting solutions.

Help secure analytical views that are provided through embedded


Power BI reports
Power BI report filters and the Filter pane serve as a mechanism for passing session context into the report that is
embedded on the Analytics tab. The capability to turn the visibility of the Filter pane on and off isn't a security
feature. Power BI report filters and the capability to hide and show the Filter pane are user experience (UX)
decisions that the application designer makes.
Row-level security that is defined isn't inherited by Power BI reports. Instead, application developers can help
secure the workspace or the report.
Help secure analytical workspaces on the Analytics tab
Analytical workspaces are embedded Power BI reports that are shown in a form control. Unless you complete the
following procedure, anyone who has access to the workspace can see the Analytics tab and access the Power BI
reports.
1. Add a menu item for the analytical workspace.
2. Verify that the form initialization uses the hasMenuItemAccess application programming interface (API) to
verify that the user has access to the menu item.

// Note: secure entry point into the Workspace's Analytics report


if (Global::hasMenuItemAccess(menuItemDisplayStr(FMClerkWorkspace), MenuItemType::Display))
{
FMPBIWorkspaceController controller = new FMPBIWorkspaceController();
PBIReportHelper::initializeReportControl('FMPBIWorkspaces', powerBIReportGroup);
}

The preceding logic will prevent the Power BI Viewer control from being initialized. Therefore, an empty tab will
appear on the page. By default, the framework automatically hides empty tabs. Therefore, the Analytics tab is
hidden and can't be access if the user doesn't have access to the menu item that is associated with the analytical
workspace.
Help secure analytical reports
Embedded Power BI reports in the application are secured by using menu items. Users who try to access a Power
BI report directly, by using a menu item in application, will receive an error. Follow these steps to help secure the
analytical reports.
1. Add a menu item for the report or the appropriate tab. By default, the first tab of the report will be shown if
no other tab is selected.
2. Link the menu item to the PowerBIEmbedded_App configuration key.
The menu item is now associated with the availability of the Power BI Embedded service. If the service is
unavailable, the links for the menu items will be removed from the application.

Help secure analytical workspaces and reports by company


Power BI workspaces and reports can be secured by company (for example, DataAreaID value). Application
solutions must apply the following steps for company-level security in analytical workspaces and reports.
In this scenario, the workspaces and reports that the sales manager from Contoso USA sees are limited to data that
is related to Contoso USA. The report viewer must not have access to data that associated with any other company,
unless the company context is changed.
1. Open the analytical report in Power BI Desktop by double-clicking the resource in a Microsoft Visual Studio
project.
2. On the Modeling tab, click Manage Roles .
3. Create a new role against a column in the data model that contains the Company field. Name the new role
CompanyFilter . A COMPANY field must be present in the data model to restrict access by company.
4. In the Table filter DAX expression field, enter [COMPANY]=username() .
5. To make sure that the rules work, on the Modeling tab, click View as Roles . In the dialog box, set the
following fields:
a. Clear the None check box.
b. Select the Other user check box, and then enter USMF in the text box.
c. Select the CompanyFilter check box.
The reports will now show data as if you're running the USMF company.
Create reporting solutions
2/5/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This tutorial shows how to export data and create a report, expand predefined views and add navigation to charts,
use the free-form report designer, and customize the parameter experience.

Prerequisites
For this tutorial, you must access the application environment, and you must be provisioned as an administrator on
the instance.

Key concepts
Describe the various ways reports can be created and consumed
Add interactivity to embedded aggregate reports in forms and workspaces
Use framework extensions to customize the parameter experience for SSRS based business documents
Export List Page data to create reports with external tools including Microsoft Excel
Author modern report designs using enhanced developer tooling in Visual Studio 2015

What's new in Reporting?


Embedded report drill-through navigations to AX forms and reports
Navigate between reports using embedded report drill-through links
Several Document Routing Service enhancements including support for custom print settings
Introduced Document Brand Management administrative tools
Additional visualizations available through the Embedded Charting Control
Dates and Amounts in the report body are formatted based on the "Date, time, and number format" user setting
Network Print monitoring form
Table extensions need to be supported through the VS Query picker

What is a report in Dynamics 365 Finance and Operations apps?


Reports can be defined simply as any visualization of a structured data set. This may include transactional data
presented in a tabular layout and advanced graphical views of aggregate information. To account for this broad
definition, the application offers several tools to produce reports to satisfy complex business requirements. Some
common applications of reports in an ERP include:
Creating and archiving transactional documents as part of a posting process
Producing packing slips for tracking orders from Manufacturing to Warehousing to Sales
Monitoring key performance metrics and surfacing trends in data
Navigating the client through filtered searches
Distributing heavily branded documents to customers and employees
Extracting data in such a way that it articulates the health of a business
The most difficult task for developers is selecting the right Business Intelligence visualization tool for the job, given
a customer's requirements. To accomplish this, it's important to understand the capabilities offered through the
tools that are available for creating reports. We offer tooling to support the following basic reporting
requirements:
Excel Integration – Allows data management and analysis using Microsoft Excel
Embedded Analytics – Add aggregate data to a Workspaces using native controls like charts and grids
Repor ting Ser vices – Create business documents that require precision using SSRS-based solutions
Power BI Integration – Author and share reports that can be accessed anywhere
Management Repor ter – Designed to help users create financial reports
The following table can be used to compare the basic characteristics of these reporting tools:

TO O L A UT H O R TA RGET DATA C O N SUM P T IO N DESIGN ER

Excel Power User Power User Transactional External Free form

Embedded BI Developer All users Aggregates Internal Modeled

SSRS Report Developer All users Transactional and Internal/External Free form
Aggregates

Power BI Power User All users Aggregates Internal/External Free form

Management Power User Power User Transactional External Modeled


Reporter

Create a report using List Pages


In this section, we'll walk you through the process of exporting data displayed in an entity details form. Here we'll
demonstrate how every form in can be viewed as a source of data for management and analysis using the power
of Excel.
Create an analysis report based on all rentals in Fleet Management that are marked as complete
1. Open Internet Explorer, and navigate to your instance base URL and sign in.
a. On the cloud environment, the base URL is obtained from LCS
b. On a local VM, the base URL is https://usnconeboxax1aos.cloud.onebox.dynamics.com .
2. On the Dashboard, scroll to the far right, and click the Reser vation management tile.
3. Under the Summar y section, click on the All rentals tile.
4. Expand the Filters pane by clicking on the Filters icon next to the main grid.
5. Click Add a filter field , and then select Status in the drop-down list.
6. Enter Complete in the Status filter field, and then click Apply .
7. Expand the page action bar, click Open in Office , and then select Rentals .
After the data has been exported, you can use the power and flexibility of the Excel tools to create reports for
presentation or additional analysis. The following is an example of a self-service report authored with Excel.

8. Close the browser session and the exported Excel file.


Advantages of List Pages
Flexible source for accessing transactional business data using external reporting and analytical tools like Excel
Allows end-users to model the data sets they need without requiring a developer
Direct access to real-time business information

Expand predefined views and add navigation to charts


Business Intelligence can be useful at every level of an organization. Use embedded controls to elevate the most
relevant information based on the target persona. Native controls offer users an intuitive and convenient way of
interacting with aggregate data allowing for informed decision making.
Create development project
1. On the Desktop, right-click the Visual Studio 2015 shortcut, and select Run as administrator to open
the development environment.
2. On the toolbar, click View , and then select Application Explorer
3. Use the Application Explorer to search for the FMReser vationsRepor t form in the Fleet Management
module.
4. In the Application Explorer's search results, right-click FMReser vationsRepor t form, and then select
Add to new project .
5. Select the Finance and Operations Project template, and then click OK to create the project.
6. In Solution Explorer , right-click FMReser vationsRepor t menu item, and then select Set as star tup
object.
7. Press Ctrl+Shift+B to save and build the project.
8. Press Ctrl+F5 to load the form containing the report.

At this point, you have a collection of pre-defined chart visualizations of Aggregate data. The controls offer basic
interactive features like hover text, series filtering, and touch expansion. However, it is often appropriate that a
greater degree of user interactivity is required.
Change the default chart type for the visualization
1. Close the browser session and return to the Visual Studio project.
2. Open the Application Explorer , locate the FMReser vationsByCustPar t form, right-click, and then select
Add to project .
3. Open the FMReser vationsByCustPar t form designer.
4. Access the Series collection in the Reser vationsByCust chart definition.
5. Select the SysBuildChatMeasure1 series definition
6. Locate the Appearance section in the Proper ties window.
7. Update the Char t type value and select Pie
8. Press Ctrl+Shift+B to save and rebuild the project.
9. Press Ctrl+F5 to run the report.
The Reser vations by customer view now visualizes the aggregate data set using a Pie chart to simplify the task
of comparing rental activity across customers.
Additional functions include:
Define contextual drill-through navigations using modeled properties
Manage drill-through links using X++ form logic
Advantages of embedded aggregate visualizations
Designed to be simple and intuitive to promote informed decisions at every level of the organization
Pre-defined views tailored to meet the needs of the consumer
Augments the user's ability to recognize key performance trends in the data

Using the freeform report designer


SSRS continues to be the platform for producing advanced Business Document solutions for your ERP application.
The hosted service is designed for high volume and heavily transactional reports with an integrated parameter
experience. Backed by the Document Printing & Distribution Services, these solutions are ideal for producing
precision documents which are intended for email, printing, archive, and bulk distribution.
Open the Precision Designer
1. Close the browser session and return to the Visual Studio project.
2. Click File > Close Solution , to close the active project.
3. Use the Application Explorer to search for objects with FMRentalsByCust in the name
4. In the Application Explorer's search results, select all Classes , the Output Menu Item , and the
FMRentalsByCustomer report
5. Right-click and then select Add to new project .
6. Select the Dynamics 365 template, and then click OK to create the project.
7. In Solution Explorer , double-click on the FMRentalsByCustomer report to open the designer.
8. Expand the Designs collection in the designer to view the list of design definitions
9. Double-click on the Repor t design to view the report definition using the Precision Designer
The above is a screen-shot of the FMRentalsByCustomer report design definition as viewed using the Visual Studio
2015 Precision Designer. The Precision Designer offers a free-form design surface with built-in tools that allow you
to customize the content and layout of the report. You can also take advantage of embedded VB code to create run-
time design manipulations and support user interactions. As an integrated tool, developers are able to reference AX
labels and public APIs to format data in the report body based on AX EDTs. MSDN offers a rich collection of
developer documentation related to SSRS formatting capabilities. See the article Reporting Services Reports
(SSRS) on for a good primer on designing effective SSRS reports.

Customizing the parameter experience


The Reporting Framework offers flexibility through service extensions to facilitate advanced solutions with
requirements that cannot be addressed using a modeled solution. Use the VS designer to add basic parameter
formatting, grouping, and input validation. X++ based data contract validation is available for more advanced
scenarios. Consider adding User Interface (UI) Builder Classes to customize the parameter pane used to prompt for
session inputs before running a report. These custom extensions are effective for addressing the following
functions:
Overriding dialog field events
Validating report parameters inline
Adding customized lookups to dialog fields
Changing the layout of the dialog controls
Adding custom controls including images
Defining parameters defaulting using code
1. In Solution Explorer , double-click on the FMRentalsByCustUIBuilder class to open the designer.
2. Locate the class build method and update the initialization code as follows
public void build()
{
Dialog dialogLocal = this.dialog();
contract = this.dataContractObject() as FMRentalsByCustContract;// associate dialog field with data
contract method
this.addDialogField(methodStr(FMRentalsByCustContract, parmCustGroupId),
contract);dialogLocal.addGroup("@SYS41297");
fromDateField = this.addDialogField(methodStr(FMRentalsByCustContract, parmFromDate), contract);
toDateField = this.addDialogField(methodStr(FMRentalsByCustContract, parmToDate), contract);// set
the default date range values
fromDateField.value(today() - 365);
toDateField.value(today());
}

3. Press Ctrl+Shift+B to save and rebuild the project.


4. Press Ctrl+F5 to run the report.

The parameter initialization code above sets the default values of the report execution relative to today's date. Use
the classes UIBuilder to override the framework's default handling of report parameters. Additional extension
scenarios supported:
Automatically set query ranges based on session context using Controller classes
Select report designs at runtime using a shared menu item
Modify report data contract values using business logic

NOTE
This example demonstrates a UIBuilder extension with an RDP-based based report. For a Query based example that includes
a UIBuilder extension, view the FMCustomerList report.

Using VB code to manage running balances


The Reporting Framework offers flexibility through service extensions to facilitate advanced solutions with
requirements that cannot be addressed using a modeled solution. Use the VS designer to add basic parameter
formatting, grouping, and input validation. X++ based data contract validation is available for more advanced
scenarios. Consider adding User Interface (UI) Builder Classes to customize the parameter pane used to prompt for
session inputs before running a report. These custom extensions are effective for addressing the following
functions:
Overriding dialog field events
Validating report parameters inline
Adding customized lookups to dialog fields
Changing the layout of the dialog controls
Adding custom controls including images
Import the section resources
1. Close the browser session and return to the Visual Studio project.
2. On the toolbar, click DYNAMICS AX , and then select Impor t Project…
3. In the File name window, browse to C:\FmLab\Lab10-3, select FMRentalDetailsRepor t.axpp , and then click
Open .
4. In the Project file location text box, enter C:\FmLab\Lab10-3.
5. Select the Current solution radio button.
6. Click OK to close. Wait for the project to be imported and opened.
7. In the Solution Explorer , select the new project, right-click, and then select Set as star tup project.
8. In the Solution Explorer , right-click FMRentalDetails menu item, and then select Set as star tup object.
9. Select the Project in Solution Explorer, right-click, and then select Deploy Repor ts
10. Press Ctrl+F5 to view the report.

This report uses embedded VB script to keep track of running totals so that the balances from the previous page
can be referenced on the active page. To inspect report's VB code, load the report design in the Precision Designer,
access the Repor t Proper ties , and then select the Code section. Here you'll see several functions referenced by
the report designs to surface running balances within the report headers and footers.
Advantages of SSRS reports
Built-in back office document management capabilities including email support, scheduled executions via Batch,
and Print Archive
Parameterized views with drill-through navigations to forms and other reports
Used to produce precision documents for compliance with local regulatory business practices
Customize App Suite reports by using extensions
11/5/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic discusses a series of scenarios for customizing App Suite reports.
Finance and Operations offers an expanded set of tools to support custom solutions. Customizations to reporting
solutions in the standard application are fully supported using a pure extension model. This topic contains guidance
about how to add the most common customizations to standard application reports without overlayering
Application Suite artifacts. Here are some of the key benefits of using an extension-based approach when
customizing the application:
It reduces the footprint of your application solutions by minimizing code duplication.
Custom reports benefit from enhancements made to standard solutions including updates to business logic in
Report Data Provider (RDP), data contracts, and UI Builder classes.
Standard application solutions are unaffected and continue to be available in concert with custom reports.
Report extensions do not break or prevent access to standard application reports. Instead, the platform supports
run-time selection of the target report allowing you to choose the appropriate report design based on the context
of the user session. For more information about customizations using extensions, see Customize through extension
and overlayering

Scenarios
There are four key scenarios which demonstrate the flexibility available. The first two scenarios involve extending
existing RDP classes for custom reporting solutions.
Expand Application Suite report data sets – Use table extensions and integrate custom business logic to add
custom columns to an existing dataset.
Composing custom datasets – Add more data to application reports by extending an existing RDP class to return
a custom dataset.
The other two scenarios offer insights on how to use extensions to redirect application navigations to your custom
solutions.
Extend report menu items to redirect user navigation – Customize application menu items to redirect references
to a custom report design.
Create custom designs for business documents – Delegate handlers allow you to add custom report designs to
an existing Print Management document instance.
Expand Application Suite report data sets
2/5/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic shows how to expand an existing report data set that is produced by using X++ business logic in a
report data provider (RDP) class.
This topic focuses on the expansion of an existing report data set that is produced by using X++ business logic in a
report data provider (RDP) class. You use custom delegate handlers and table extensions to include additional field
data and/or calculations. You don't have to over-layer the Application Suite. You then create custom designs that
replace the standard application solutions and present the data to users. The following illustration shows a typical
application customization, as described in this topic.

What's important to know?


There are a few basic assumptions that you should be aware of before you apply this solution.
You can't directly extend RDP classes. However, the platform provides extension points that enable data
set expansion without duplicating business logic in the standard application.
There are two methods that can be used to expand repor t data sets. Use the strategy that is
appropriate for your solution:
Data processing post-handler – This method is called only one time, after the ProcessRepor t
method is completed and before the data set is returned to the report server. Register for this post-
handler to perform bulk updates on the temporary data set that is produced by the standard application
solution.
Temp table inser ting event – This method is called for each row that is added to the temporary table.
It's more suitable for calculations and inline evaluations. Try to avoid expensive queries that have many
joins and look-up operations.
Use event handlers to redirect menu items to your new repor t design. You can customize all
aspects of an application reporting solution by using event handlers. Add a PostHandler event for the
controller class to reroute user navigations to a custom report design.

Expand a report data set


The following walkthrough shows the process of expanding an existing application data set by using a "pure"
extension-based solution. The solution includes a custom Rentals list report for the Fleet Management
application. The new report includes additional rental charge data in the rental details. The application
customizations are defined in an extension model. The following illustrations show the standard design and the
custom solution.
Before (standard design)

After (custom solution)


1. Create a new model for your application customizations. For more information about extension
models, see Customize through extension and overlayering. For this example, add a custom report to the
Fleet Management Extensions model.
2. Create a new project in Microsoft Visual Studio. Make sure that the project is associated with your
extension model. The following illustration shows the project settings.

3. Add a table extension to store the custom repor t data. Find the temporary cache for the
TmpFMRentalsByCust data set that is populated by the RDP class, and create an extension in your model.
Define the fields that will be used to store the data for the report server, and then click Save to save your
changes. The following illustration shows the table extension that is required for this example.
4. Add your custom repor t to the project. The custom design closely resembles the standard solution.
Therefore, you can just duplicate the existing application report in the Fleet Management Extension
model, and then update the report design so that it includes the custom title and additional text box in the
Rental Charges container.
5. Rename the repor t so that it has a meaningful name. For this example, rename the custom report
FERentalsByCustomer to distinguish it from the standard solution.
6. Restore the repor t data set references. Open the report designer, expand the Datasets collection,
right-click the data set that is named FMRentalsByCustDS , and then click Restore . The data set is
expanded so that it includes the newly introduced columns. Therefore, these columns are now available in
the report designer.
7. Customize the repor t design. The designer offers a free-form design surface that you can use to create
the custom solution. The following illustration shows the custom design that is used for this example.
8. Add a new repor t handler (X++) class to the project. Give the class a name that appropriately
describes that it's a handler for an existing application report. For this example, rename the class
FERentalsByCustomerHandler to distinguish it from other report handlers.
9. Add a PostHandler method to begin to use your custom repor t. In this example, extend the
controller class in the standard solution, FMRentalsByCustController , by using the following code.

class FERentalsByCustomerHandler
{
[PostHandlerFor(classStr(FMRentalsByCustController), staticMethodStr(FMRentalsByCustController,
construct))]
public static void ReportNamePostHandler(XppPrePostArgs arguments)
{
FMRentalsByCustController controller = arguments.getReturnValue();
controller.parmReportName(ssrsreportstr(FERentalsByCustomer, Report));
}
}

User navigations in the application will now be rerouted to the custom reporting solution. Take some time to
deploy the custom report to the report server and verify that the application is using it. At this point, you
just have to add the business logic that is used to populate the custom fields that you introduced in step 3. In
the next step, you must select the method of data set expansion that is appropriate for your solution.
10. Add X++ business logic to populate the custom field data. Select the data processing technique that
makes sense for the type of transformation that you require for the solution.
Option 1: Add a data processing post-handler. Apply this technique for bulk insert operations
that use a single pass over the result set of the standard solution. Here is the code that expands the
data set by using a table lookup.
class FERentalsByCustomerHandler
{
[PostHandlerFor(classStr(FMRentalsByCustDP), methodstr(FMRentalsByCustDP, processReport))]
public static void TmpTablePostHandler(XppPrePostArgs arguments)
{
FMRentalsByCustDP dpInstance = arguments.getThis() as FMRentalsByCustDP;
TmpFMRentalsByCust tmpTable = dpInstance.getTmpFMRentalsByCust();
FMRentalCharge chargeTable;
ttsbegin;
while select forUpdate tmpTable
{
select * from chargeTable where chargeTable.RentalId == tmpTable.RentalId;
tmpTable.ChargeDesc = chargeTable.Description;
tmpTable.update();
}
ttscommit;
}
}

Option 2: Add a temp table Inser ting event. Apply this technique for row-by-row calculations.
Here is the code that expands the data set by using a table lookup.

class FERentalsByCustomerHandler
{
[DataEventHandlerAttribute(tableStr(TmpFMRentalsByCust), DataEventType::Inserting)]
public static void TmpFMRentalsByCustInsertEvent(Common c, DataEventArgs e)
{
TmpFMRentalsByCust tempTable = c;
FMRentalCharge chargeTable;
// update the value of the 'ChargeDesc' column during 'insert' operation
select * from chargeTable where chargeTable.RentalId == tempTable.RentalId
&& chargeTable.ChargeType == tempTable.ChargeType;
tempTable.ChargeDesc = chargeTable.Description;
}
}

You've now finished expanding the report data set. After the application is compiled, it will begin to reroute user
navigations to the new report design by using the custom X++ business logic that you defined in the report class
handler that is defined in the extension model.
Extend report menu items to redirect user navigation
11/5/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic shows how to extend existing application menu items so that, after only minimal code changes,
navigations are redirected to a custom reporting solution.
This topic focuses on the process of extending existing application menu items so that, after only minimal code
changes, navigations are redirected to a custom reporting solution. By using this technique, you will avoid the
inconvenience of tracking down and replacing all references to an existing application report. Just extend an
existing application menu item to redirect application navigations to reports that are defined in an extension
model. The following illustration shows a typical application customization.

What's important to know?


There are a few basic assumptions that you should be aware of before you apply this solution.
Extended menu items let you override both the display string and the target.
This technique can be used for all types of reports, from simple query-based reports to complex report data
provider (RDP)–based reports.
Extended menu items are available for direct references to reports and solutions that orchestrate the reporting
session by using a controller class.

Extend report menu items


The following walkthrough shows how to use menu item extensions to redirect user navigations in the application
to a custom solution. The solution includes a custom Customer list report for the Fleet Management application
and defines all the application customizations in a pure extension model. The following illustration shows the menu
item that you use to access the custom Customer list report.

1. Create a new model for your application customizations. For more information about extension
models, see Customize through extension and overlayering.
2. Create a new project in Microsoft Visual Studio, and add your custom repor t. Additionally, add all
the solution artifacts. These artifacts include the RDP class or source query, the controller class, and UI
builders, if they are present.
3. Create an extension of the menu item that is used to access the repor t. In this example, the output
menu item is named FMCustomerListRepor t . Use the menu item structure to find the menu item name
that is exposed in the application. The following illustration shows the action in Application Explorer.

4. Modify the proper ties of the menu item extension. Update the report design or controller reference
in the menu item to direct navigations to your custom solution.

NOTE
The property changes that you can make on the object depend on the original application solution. If the application
report manages the solution by using a controller, a controller class is required for the report.

5. Rebuild the solution, and deploy the custom repor t.


You've now finished extending the report menu item. Navigations to the standard menu item will now be
redirected to your custom reporting solution.
Create custom designs for business documents
2/5/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic shows how to create a custom report design for an existing application business document by using a
pure extension model.
Microsoft Dynamics 365 Finance includes an expanded set of tools to support custom solutions. This topic focuses
on the steps for creating a custom report design for an existing application business document by using a pure
extension model. Follow the steps later in this topic to associate a custom report design with an instance of an
application document. When you've finished, users can configure Print management settings to select the custom
design whenever it's appropriate, based on transaction details. The following illustration shows a typical application
customization.

What's important to know?


Here are some important points that you should be aware of before you apply this solution:
Print management settings are scoped to the active legal entity. Custom designs can be associated with one or
more Print management settings.
Standard report designs continue to be available alongside custom solutions. Use Print management settings to
select the appropriate design, based on transaction details.
If you introduce a business document for a custom business process, more work is required. For more
information about how to create a custom business document solution, see the Print Management Integration
Guide.

Customize a business document


The following walkthrough shows the process of introducing a custom report design for an existing application
business document and then using Print management to select the new design. The solution includes a custom
design definition for the Sales confirmation report that is provided in the standard application as part of the
Application Suite model. The application customizations will be defined in an extension model.
1. Create a new model for your application customizations. For more information about extension
models, see Customize through extension and overlayering. For this example, you add a model that is
named Application Suite Extensions , and that references the Application Suite, Application Platform, and
Application Foundation packages.
2. Create a new project in Microsoft Visual Studio. Make sure that the project is associated with your
extension model. The following illustration shows the project settings.

3. Create a custom repor t design for the business document. You must make sure that your custom
solution consumes the correct report data contract. Find the existing Application Suite report in Application
Explorer. This report is named SalesConfirm . Right-click it, and then click Duplicate in project to create
the custom solution.
4. Rename the repor t so that it has a meaningful name. For this example, name the custom report
SalesConfirmExt to distinguish it from the standard solution. Compile the project, and deploy the report to
verify that the changes have no errors.
5. Use the free-form designer to customize the repor t design. Select the report design that is named
Repor t , right-click it, and open the precision designer. Customize the design to satisfy the organization’s
business requirements. The following illustration shows a custom design definition for the Sales
confirmation report.
6. Add a new X++ class that extends the standard repor t controller. Give the class a name that
appropriately describes that it's a handler for an existing application report. For this example, rename the
class SalesConfirmControllerExt to distinguish it from other report controllers.
7. Use the extended class to load the custom design. Add a main method that refers to the custom
report design. (You can just copy the main method from the standard solution and add references to the
new Controller class.) Here is the code that extends the standard solution.

class SalesConfirmControllerExt extends SalesConfirmController


{
public static SalesConfirmControllerExt construct()
{
return new SalesConfirmControllerExt();
}
public static void main(Args _args)
{
SrsReportRunController formLetterController = SalesConfirmControllerExt::construct();
SalesConfirmControllerExt controller = formLetterController;controller.initArgs(_args,
ssrsReportStr(SalesConfirmExt, Report));
if (classIdGet(_args.caller()) == classNum(SalesConfirmJournalPrint))
{
formLetterController.renderingCompleted +=
eventhandler(SalesConfirmJournalPrint::renderingCompleted);
}
formLetterController.startOperation();
}
}

8. Add a new repor t handler (X++) class to the project. Give the class a name that appropriately
describes that it's a handler for Print management–based documents. For this example, rename the class
PrintMgtDocTypeHandlerExt to distinguish it from other object handlers.
9. Add a delegate handler method to star t to use your custom repor t. In this example, extend the
getDefaultRepor tFormatDelegate method in the PrintMgtDocTypeHandlerExt class by using the
following code.
class PrintMgtDocTypeHandlersExt
{
[SubscribesTo(classstr(PrintMgmtDocType), delegatestr(PrintMgmtDocType,
getDefaultReportFormatDelegate))]
public static void getDefaultReportFormatDelegate(PrintMgmtDocumentType _docType, EventHandlerResult
_result)
{
switch (_docType)
{
case PrintMgmtDocumentType::SalesOrderConfirmation:
_result.result(ssrsReportStr(SalesConfirmExt, Report));
break;
}
}
}

10. Extend the menu item for the application repor t. Find the existing Application Suite menu item in
Application Explorer. This menu item is named SalesConfirmation . Right-click it, and then click Create
extension . Open the new extension object in the designer, and set the value of the Object property to
SalesConfirmControllerExt to redirect user navigations to the extended solution.
11. Update the Print management settings to use the custom business document. For this example,
go to Accounts receivable > Setup > Forms > Form setup . Click Print Management , find the
document configuration settings, and then select the custom design. The following illustration shows the
Print management settings after the changes have been compiled.

You’ve now finished customizing the business document. Users will now be presented with the custom report
design for the business document when they process transactions in the application.
Help prevent long-running reports from timing out
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article provides tips that can help you prevent reports that run for a long time from timing out.
Paginated reports and documents are generated by using Microsoft SQL Server Reporting Services. Reporting
Services retrieves report data from Application Object Server (AOS) by using a custom extension that uses
Windows Communication Foundation (WCF) to communicate with AOS. The size of the data set and the complexity
of the report that is generated can affect the time that is required to display the report. Additionally, if various time-
outs and other thresholds are reached, report generation might fail. Service time-outs in deployments are fixed and
limit interactive connections to 10 minutes. Any data set generation process that exceeds this service time-out limit
won't be completed. This article describes the extensions that support long-running reports. These extensions help
guarantee that long-running reports can be generated even if the process exceeds the 10-minute service time-out
limit.

Preprocess the data source


If the report uses the Report Data Provider (RDP) to retrieve data, the report should be modified to use a pre-
processed RDP class as the data source. In this way, processing logic is invoked before a call is made to Reporting
Services. For more information about RDP classes, see Using Report Data Provider Classes to Access Report Data
and Report Programming Guide.

How do I migrate a regular RDP to a pre-process data access solution


by using TempDB?
1. Change the RDP base class from SRSRepor tDataProviderBase to
SRSRepor tDataProviderPreProcessTempDB .
2. Update the table type from InMemor y to TempDB .
3. Rebuild the report's RDP class.
4. Restore the data source that is linked to the RDP class in the report designer.
5. Redeploy the report.
6. Introduce a Controller class to run the report.
7. Update the Output Menu Item so that it points to the Controller class instead of the report.

Use batch processing


To improve performance when you print statements or reports that include large amounts of data, use batch
processing. When you use batch processing, you can run specific tasks as batch jobs and then schedule those batch
jobs to run on a different computer (a batch server). By moving the processing of these tasks to a batch server, you
can improve the report performance on the client computer. You can also apply range restrictions to limit the size of
each batch.
To further improve performance, don't submit one large batch. Instead submit multiple smaller batches for
processing at the same time on different servers. Many tasks can be run as part of batch jobs. For more
information, see Batch processing overview.
Electronic reporting (ER) overview
1/6/2020 • 23 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific
business functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides an overview of the Electronic reporting (ER) tool. It includes information about key
concepts, the scenarios that ER supports, and a list of formats that have been designed and released as part
of the solution.
ER is a tool that you can use to configure formats for both incoming and outgoing electronic documents in
accordance with the legal requirements of various countries/regions. ER lets you manage these formats
during their lifecycle. For example, you can adopt new regulatory requirements, and generate business
documents in the required format to electronically exchange information with government bodies, banks,
and other parties.
The ER engine is targeted at business users instead of developers. Because you configure formats instead of
code, the processes for creating and adjusting formats for electronic documents are faster and easier.
ER currently supports the TEXT, XML, Microsoft Word document, and OPENXML worksheet formats. However,
an extension interface provides support for additional formats.

Capabilities
The ER engine has the following capabilities:
It represents a single shared tool for electronic reporting in different domains and replaces more than 20
different engines that do some type of electronic reporting for Finance and Operations.
It makes a report's format insulated from the current implementation. In other words, the format is
applicable for different versions.
It supports the creation of a custom format that is based on an original format. It also includes capabilities
for automatically upgrading the customized format when the original format is changed because of
localization/customization requirements.
It becomes the primary standard tool to support localization requirements in electronic reporting, both
for Microsoft and for Microsoft partners.
It supports the ability to distribute formats to partners and customers through Microsoft Dynamics
Lifecycle Services (LCS).

Key concepts
Components
ER supports two types of components: Data model and Format .
Data model and model mapping components
A data model component is an abstract representation of a data structure. It's used to describe a specific
business domain area with enough detail to satisfy the reporting requirements for that domain. A data model
component consists of the following parts:
A data model, as a set of domain-specific business entities and a hierarchically structured definition of
relations between those entities.
A model mapping that links selected application data sources to individual elements of a data model that
specifies, at run time, the data flow and rules of business data population to a data model component.
A business entity of a data model is represented as a container (record). Business entity properties are
represented as data items (fields). Each data item has a unique name, label, description, and value. The value
of each data item can be designed so that it's recognized as a string, integer, real, date, enumeration, Boolean,
and so on. Additionally, it can be another record or records list.
A single data model component can contain several hierarchies of domain-specific business entities. It can
also contain model mappings that support a report-specific data flow at run time. The hierarchies are
differentiated by a single record that has been selected as a root for model mapping. For example, the data
model of the payment domain area might support the following mappings:
Company > Vendor > Payment transactions of the AP domain
Customer > Company > Payment transactions of the AR domain
Note that business entities such as company and payment transactions are designed one time. Different
mappings then reuse them.
A model mapping that supports outgoing electronic documents has the following capabilities:
It can use different data types as data sources for a data model. For example, it can use tables, data
entities, methods, or enums.
It supports user input parameters that can be defined as data sources for a data model when some data
must be specified at run time.
It supports the transformation of data into required groups. It also lets you filter, sort, and sum data, and
append logical calculated fields that are designed through formulas that resemble Microsoft Excel
formulas. For more information, see Formula designer in Electronic reporting (ER)).
A model mapping that supports incoming electronic documents has the following capabilities:
It can use different updatable data elements as targets. These data elements include tables, data entities,
and views. The data can be updated by using the data from incoming electronic documents. Multiple
targets can be used in a single model mapping.
It supports user input parameters that can be defined as data sources for a data model when some data
must be specified at run time.
A data model component is designed for each business domain that should be used as a unified data source
for reporting that isolates reporting from the physical implementation of data sources. It represents domain-
specific business concepts and functionalities in a form that makes a reporting format's initial design and
further maintenance more efficient.
Format components for outgoing electronic documents
A format component is the scheme of the reporting output that will be generated at run time. A scheme
consists of the following elements:
A format that defines the structure and content of the outgoing electronic document that is generated at
run time.
Data sources, as a set of user input parameters and a domain-specific data model that uses a selected
model mapping.
A format mapping, as a set of bindings of format data sources that have individual elements of a format
that specify, at run time, the data flow and rules for format output generation.
A format validation, as a set of configurable rules that control report generation at run time, depending on
the running context. For example, there might be a rule that stops output generation of a vendor's
payments and throws an exception when specific attributes of the selected vendor are missing, such as the
bank account number.
A format component supports the following functions:
Creation of reporting output as individual files in various formats, such as text, XML, Microsoft Word
document, or worksheet.
Creation of multiple files separately and encapsulation of those files into zip files.
A format component lets you attach specific files that can be used in the reporting output:
Excel workbooks that contain a worksheet that can be used as a template for output in the OPENXML
worksheet format
Word files that contain a document that can be used as a template for output in the Microsoft Word
document format
Other files that can be incorporated into the format's output as predefined files
The following illustration shows how the data flows for these formats.

To run a single ER format configuration and generate an outgoing electronic document, you must identify the
mapping of the format configuration.
Format components for incoming electronic documents
A format component is the scheme of the incoming document that is imported at run time. A scheme
consists of the following elements:
A format that defines the structure and content of the incoming electronic document that contains data
that is imported at run time. A format component is used to parse an incoming document in various
formats, such as text and XML.
A format mapping that binds individual format elements to elements of a domain-specific data model. At
run time, the elements in the data model specify the data flow and the rules for importing data from an
incoming document, and then store the data in a data model.
A format validation, as a set of configurable rules that control data import at run time, depending on the
running context. For example, there might be a rule that stops data import of a bank statement that has a
vendor's payments and throws an exception when a specific vendor's attributes are missing, such as the
vendor identification code.
The following illustration shows how the data flows for these formats.
To run a single ER format configuration to import data from an incoming electronic document, you must
identify the desired mapping of a format configuration, and also the integration point of a model mapping.
You can use the same model mapping and destinations together with different formats for different type of
incoming documents.
Component versioning
Versioning is supported for ER components. The following workflow is provided to manage changes in ER
components:
1. The version that is originally created is marked as a Draft version. This version can be edited and is
available for test runs.
2. The Draft version can be converted to a Completed version. This version can be used in local reporting
processes.
3. The Completed version can be converted to a Shared version. This version is published on LCS and can
be used in global reporting processes.
4. The Shared version can be converted to a Discontinued version. This version can then be deleted.
Versions that have either Completed or Shared status are available for other data interchange. The
following actions can be performed on a component that has these statuses:
The component can be serialized in XML format and exported as a file in XML format.
The component can be reserialized from an XML file and imported into the application as a new version of
an ER component.
Component date effectivity
ER component versions are date-effective. You can set the Effective from date for an ER component to
specify the date that the component becomes effective for reporting processes. The application session date
is used to define whether a component is valid for execution. If more than one version is valid for a particular
date, the latest version is used for reporting processes.
Component access
Access to ER format components depends on the setting for the ISO country/region code. When this setting
is blank for a selected version of a format configuration, a format component can be accessed from any
company at run time. When this setting contains ISO country/region codes, a format component is available
only from companies that have a primary address that is defined for one of a format component's ISO
country/region codes.
Different versions of a data format component can have different settings for ISO country/region codes.
Configuration
An ER configuration is the wrapper of a particular ER component. That component can be either a data model
component or a format component. A configuration can include different versions of an ER component. Each
configuration is marked as owned by a specific configuration provider. The Draft version of a component of a
configuration can be edited when the owner of the configuration has been selected as an active provider in
the ER settings in the application.
Each model configuration contains a data model component. A new format configuration can be derived
from a specific data model configuration. In the configuration tree, the format configuration that is created
appears as a child of the original data model configuration.
The format configuration that is created contains a format component. The data model component of the
original model configuration is automatically inserted into the format component of the child format
configuration as a default data source.
An ER configuration is shared for application companies.
Provider
The ER provider is the party identifier that is used to indicate the author (owner) of each ER configuration. ER
lets you manage the list of configuration providers. Format configurations that are released for electronic
documents as part of the Finance and Operations solution are marked as owned by the Microsoft
configuration provider.
To learn how to register a new ER provider, play the task guide, ER Create a configuration provider and
mark it as active (part of the 7.5.4.3 Acquire/Develop IT ser vice/solution components (10677)
business process).
Repository
An ER repository stores ER configurations. The following types of ER repositories are currently supported:
LCS shared library
LCS project
File system
Regulatory Configuration Services (RCS)
Operations resources
An LCS shared librar y repository provides access to the list of configurations within the Shared asset
library in Lifecycle Services (LCS). This type of ER repository can only be registered for the Microsoft provider.
From the LCS Shared asset library you can import the latest versions of ER configurations into the current
instance.
An LCS project repository provides access to the list of configurations of a specific LCS project (LCS project
assets library) that was selected at the repository registration stage. ER lets you upload shared configurations
from the current instance to a specific LCS project repository. You can also import configurations from an
LCS project repository into the current Finance and Operations instance.
A File system repository provides access to the list of configurations that are located as xml files in the
specific folder of the local file system of the machine where the AOS service is hosted. Required folder is
selected at the repository registration stage. You can import configurations from a File system repository
into the current instance.
Note that this repository type is accessible in the following environments:
Cloud-hosted environments deployed for development purposes (containing test models of enclosed
suites)
Locally deployed environments (on-premises)
For more information, see Import Electronic reporting (ER) configurations.
An RCS instance repository provides access to the list of configurations of a specific RCS instance that was
selected at the repository registration stage. ER lets you import completed or shared configurations from the
selected RCS instance into the current instance so you can use them for electronic reporting.
For more information, see Import Electronic reporting (ER) configurations from Regulatory Configuration
Services (RCS).
An Operations resources repository provides access to the list of configurations that Microsoft, as an ER
configuration provider, initially releases as part of the application solution. These configurations can be
imported into the current instance and used for electronic reporting or playing sample task guides. They can
also be used for additional localizations and customizations. Note that the latest versions provided by
Microsoft ER configurations must be imported from the LCS Shared asset library by using corresponding the
ER repository.
Required LCS project , File system , and Regulator y Configuration Ser vices (RCS) repositories can be
registered individually for each configuration provider of the current instance. Each repository can be
dedicated to a specific configuration provider.

Supported scenarios
Building a data model
ER provides a model designer that you can use to build a data model for a particular business domain. All
domain-specific business entities, and the relations between them, can be presented in a data model as a
hierarchical structure.
To become familiar with the details of this scenario, play the ER Design domain specific data model task
guide (part of the 7.5.4.3 Acquire/Develop IT ser vice/solution components (10677) business
process).
Translating data model content
Data model content (labels and descriptions) can be translated into other languages that the applications
supports. You might want to translate data model content for the following reasons:
At design time, to make the content more intelligible for format designers who speak other languages,
and who will use the data model for data mapping of format components.
At run time, to make the content more user-friendly by presenting prompts and help for run-time
parameters, and configured validation messages (errors and warnings), in the language that the currently
signed-in user prefers.
Configuring data model mappings for outgoing documents
ER provides a model mapping designer that lets users map data models that they have designed to specific
application data sources. Based on the mapping, the data will be imported at run time from selected data
sources into the data model. The data model is then used as an abstract data source of ER formats that
generate outgoing electronic documents.
To become familiar with the details of this scenario, play the ER Define model mapping and select data
sources and ER Map data model to selected data sources task guides (part of the 7.5.4.3
Acquire/Develop IT ser vice/solution components (10677) business process).
Configuring data model mappings for incoming documents
ER provides a model mapping designer that lets users map data models that they have designed to specific
destinations. For example, data models can be mapped to the updatable data components (tables, data
entities, and views). Based on the mapping, the data will be updated at run time by using the data from the
data model. As abstract storage of the ER format, the data model is filled with data that is imported from an
incoming electronic document.
Storing a designed model component as a model configuration
ER can store a designed data model, together with associated data mappings, as a model configuration of the
current instance. The following illustration shows an example of this type of data model configuration (the
payment model configuration).
To become familiar with the details of this scenario, play the ER Map data model to selected data
sources task guide (part of the 7.5.4.3 Acquire/Develop IT ser vice/solution components (10677)
business process).
Building a format that uses a data model as a base
ER supports a format designer that you can use to build the format of an electronic document for a selected
business domain by selecting the model component as a base. The same ER format designer lets you map a
format that you create to a selected domain's data model mapping as a data source.
To become familiar with the details of this scenario, play the ER Design domain specific format task guide
(part of the 7.5.4.3 Acquire/Develop IT ser vice/solution components (10677) business process).
Building a configuration to generate electronic documents in OPENXML worksheet format
The ER format designer can be used to build an electronic document in OPENXML worksheet format.
To become familiar with the details of this scenario, play the ER Create a configuration for repor ts in
OPENXML format task guide (part of the 7.5.4.3 Acquire/Develop IT ser vice/solution components
(10677) business process). As part of the task guide step for importing a template, use the Template of
Payment Report (SampleVendPaymWsReport.xlsx) Excel file as a template.
Building a configuration to generate electronic documents in a Word document format
The ER format designer can be used to build an electronic document in a Word document format. The
following illustration shows an example of this type of format. Note that this format reuses the existing ER
configuration that was originally designed to generate the report output in OPENXML format.
To become familiar with the details of this scenario, play the ER Design a configuration for generating reports
in Microsoft WORD format task guide (part of the 7.5.4.3 Acquire/Develop IT service/solution components
(10677) business process). As part of the task guide step for importing a template, use the following Word
files as templates for the ER format:
Template of Payment Report (SampleVendPaymDocReport.docx)
Bounded template of Payment Report (SampleVendPaymDocReportBounded.docx)
Building a configuration to import data from incoming electronic documents
The ER format designer can be used to describe an electronic document that is planned for data import in
either XML or text format. The designed format is used to parse an incoming document. The ER format
mapping designer can be used to define the binding of the elements of the designed format to the data
model.
To become familiar with the details of this scenario, play the Create required ER configurations to import data
from an external file task guide (part of the 7.5.4.3 Acquire/Develop IT service/solution components (10677)
business process). Use the following files to play this guide:
ER data model configuration (1099model.xml)
ER format configuration (1099format.xml)
Sample of the incoming document in XML format (1099entries.xml)
Sample of the workbook to manage data of incoming document (1099entries.xlsx)
Storing a designed format component in a format configuration
ER can store a designed format together with the configured data mappings as a format configuration of the
current instance. The preceding illustration shows an example of this type of format configuration (BACS
(UK) , which is a child of the Payment model configuration). To become familiar with the details of this
scenario, play the ER Design domain specific format task guide (part of the 7.5.4.3 Acquire/Develop
IT ser vice/solution components (10677) business process).
Configuring Finance to start to use a created format internally
The application can be configured to start to use a created format to generate electronic reports. The
reference to the created format configuration should be defined in the settings of a specific domain. For
example, to start to use an ER format configuration for electronic vendor payments in BACS format, the
format configuration should be referenced in specific methods of payment.
To become familiar with the details of this scenario, play the ER Use format to generate electronic
document for payments task guide (part of the 7.5.4.3 Acquire/Develop IT ser vice/solution
components (10677) business process).

Handling ER components
Publishing an ER component in LCS to offer it externally (localization)
The owner of a component (model or format) that has been created can use ER to publish the completed
version of the component to LCS. A repository of the LCS project type for the current ER configuration
provider is required. When the status of the completed version of a component is changed from
COMPLETED to SHARED , that version is published in LCS. When a component has been published to LCS,
the owner of that component becomes a provider of the service to support the component. For example, if
the format component is designed to generate an electronic document that is legally required (for example,
in accordance with a localization scenario), it's assumed that the format will be kept compliant with legislative
changes, and that the provider will issue new versions of the component whenever new legislative
requirements arise. To become familiar with the details of this scenario, play the ER Upload a
configuration into Lifecycle Ser vices task guide (part of the 7.5.4.3 Acquire/Develop IT
ser vice/solution components (10677) business process).
Importing an ER component from LCS to use it internally
ER lets you import ER components from LCS to the current instance. A repository of the LCS project type is
required. When an ER component has been imported from LCS to the current instance, the owner of the
instance becomes a consumer of the service that is provided by the owner (author) of the imported
component. For example, if a format component is designed to generate a specific electronic document from
the application in a country/region-specific format (localization scenario), it's assumed that the service
consumer will be able to obtain any updates that are made to that format, to keep it compliant with
legislative requirements. To become familiar with the details of this scenario, play the ER Impor t a
configuration from Lifecycle Ser vices task guide (part of the 7.5.4.3 Acquire/Develop IT
ser vice/solution components (10677) business process).
Building a format selecting another format as a base (customization)
ER lets you create (derive) a new component from the current version of a component (base) that was
imported from LCS. For example, a user wants to derive a new format to implement some special
requirements for an electronic document (such as an additional field or an extensive description) to support a
customization scenario. To become familiar with the details of this scenario, play the ER Upgrade format by
adoption of new base version of it task guide (part of the 7.5.4.3 Acquire/Develop IT
ser vice/solution components (10677) business process).
Upgrading a format selecting a new version of base format (rebase )
ER lets you automatically adopt changes of the latest version of the base component in the current draft
version of the derived component. This process is known as rebasing. For example, a new regulatory change
that has been introduced in the latest version of the format that was imported from LCS can be automatically
merged into the customized version of this format of the electronic document. Any changes that can't be
merged automatically are considered conflicts. These conflicts are presented for manual resolution in the
designer tool for the appropriate component. To become familiar with the details of this scenario, play the ER
Upgrade format by adoption of new base version of that format task guide (part of the 7.5.5.3
Acquire/Develop changed IT ser vice/solution component (10683) business process).

List of ER configurations that are delivered in the Finance


application
DO M A IN - SP EC IF IC DATA DATA M O DEL –DEP EN DEN T
M O DEL C O N F IGURAT IO N S: F O RM AT
T IT L E DO M A IN C O N F IGURAT IO N S: T IT L E DESC RIP T IO N

Audit file model Financial audit

Audit file (NL) Audit file format for


Netherlands

BAS model Tax reporting

BAS (AU) BAS format for Australia

Construction industry Tax reporting


scheme model

CIS Monthly return (UK) CIS monthly return format


for the United Kingdom

Collection letter model Electronic invoicing

OIOUBL Collection Letter OIOUBL collection letter


(DK) format for Denmark

Electronic ledger Tax reporting


accounting model (MX)

Auxiliary Ledger XML (MX) Auxiliary ledger


transactions per account
report format for Mexico

Chart of Account XML Chart of account report


(MX) format for Mexico

Journals XML (MX) Journal transactions report


format for Mexico

Trial Balance XML (MX) Trial balance report format


for Mexico

Elster model Tax reporting

Elster (DE) Elster format for Germany

EU Sales list model Trade reporting


DO M A IN - SP EC IF IC DATA DATA M O DEL –DEP EN DEN T
M O DEL C O N F IGURAT IO N S: F O RM AT
T IT L E DO M A IN C O N F IGURAT IO N S: T IT L E DESC RIP T IO N

EU Sales list (DE) EU Sales list TXT format for


Germany

EU Sales list (DK) EU Sales list TXT format for


Denmark

EU Sales list (FR) EU Sales list XML format


for France

EU Sales list (NL) EU Sales list XML format


for Netherlands

EU Sales list TXT (UK) EU Sales list TXT format for


the United Kingdom

EU Sales list XML (UK) EU Sales list XML format


for the United Kingdom

EU Sales list by columns EU Sales list by columns


report report

EU Sales list by rows report EU Sales list by rows report

FEC accounting model (FR) Tax reporting

FEC Accounting data XML FEC accounting data


(FR) export XML format for
France

German audit file Financial audit

German audit file output Audit file output for


Germany and Austria

Intrastat model Trade reporting

Intrastat (DE) Intrastat format for


Germany

Intrastat (DK) Intrastat format for


Denmark

Intrastat INTRACOM (FR) Intrastat INTRACOM


format for France

Intrastat SAISUNIC (FR) Intrastat SAISUNIC format


for France

Intrastat (NL) Intrastat format for the


Netherlands
DO M A IN - SP EC IF IC DATA DATA M O DEL –DEP EN DEN T
M O DEL C O N F IGURAT IO N S: F O RM AT
T IT L E DO M A IN C O N F IGURAT IO N S: T IT L E DESC RIP T IO N

Intrastat (UK) Intrastat format for the


United Kingdom

Intrastat report Intrastat Excel control


report

Customer invoice model Electronic invoicing

OIOUBL Project credit note OIOUBL Project credit note


(DK) format for Denmark

OIOUBL Project invoice OIOUBL Project invoice


(DK) format for Denmark

OIOUBL Sales credit note OIOUBL Sales credit note


(DK) format for Denmark

OIOUBL Sales invoice (DK) OIOUBL Sales invoice


format for Denmark

OB declaration model Tax reporting

OB declaration (NL) OB declaration format for


the Netherlands

Payment model Payments

Betalingsservice (DK) Betalingsservice payment


format for Denmark

Bill of exchange remittance Bill of exchange remittance


(FR) format for France

BTL91 (NL) BTL91 vendor payment


format for the Netherlands

CFONB Prelevements (FR) CFONB direct debit


payment format for France

CFONB Virements (FR) CFONB domestic vendor


payment format for France

Nordea Vendor (DK) Nordea corporate netbank


vendor payment format for
Denmark

ANZ Direct Credit Service Format for ANZ Direct


(AU) Credit Service for Australia

CBA Direct Credit Service Format for CBA Direct


(AU) Credit Service for Australia
DO M A IN - SP EC IF IC DATA DATA M O DEL –DEP EN DEN T
M O DEL C O N F IGURAT IO N S: F O RM AT
T IT L E DO M A IN C O N F IGURAT IO N S: T IT L E DESC RIP T IO N

NAB Direct Credit Service Format for NAB Direct


(AU) Credit Service for Australia

STG Direct Credit Service Format for STG Direct


(AU) Credit Service for Australia

WBC Direct Entry System Format for WBC Direct


(AU) Entry System for Australia

DirectLink (NZ) Format for DirectLink for


New Zealand

JBA Payment file (JP) JBA Payment format for


Japan

ISO20022 Credit transfer SEPA Credit transfer format


for Europe

ISO20022 Credit transfer SEPA Credit transfer format


(FR) for France

ISO20022 Credit transfer SEPA Credit transfer format


(DE) for Germany

ISO20022 Credit transfer SEPA Credit transfer format


(NL) for the Netherlands

ISO20022 Direct debit SEPA Direct debit format


for Europe

ISO20022 Direct debit (FR) SEPA Direct debit format


for France

ISO20022 Direct debit (DE) SEPA Direct debit format


for Germany

ISO20022 Direct debit (NL) SEPA Direct debit format


for the Netherlands

BACS (UK) BACS vendor payment


format for the United
Kingdom

Reverse charge Tax reporting

Reverse charge sales list Reverse charge sales list


format

Dutch XBRL integration XBRL reporting


model
DO M A IN - SP EC IF IC DATA DATA M O DEL –DEP EN DEN T
M O DEL C O N F IGURAT IO N S: F O RM AT
T IT L E DO M A IN C O N F IGURAT IO N S: T IT L E DESC RIP T IO N

Semansys XBRL (NL) Semansys XBRL export


format for the Netherlands

GAF model (MY) Financial audit

GAF file (MY) Format of GAF for


Malaysia

Vendor aging report (CN) Vendors data analysis

Vendor aging report Vendor aging report


format (CN) format for China

Vendor invoice declaration Vendors data analysis


model

Vendor invoice declaration Vendor invoice declaration


(IS) format for Iceland

Vendor invoice declaration Vendor invoice declaration


report (IS) report for Iceland

Additional resources
Create Electronic reporting (ER) configurations
Manage the Electronic reporting (ER) configuration lifecycle
Create Electronic reporting (ER) configurations
11/5/2019 • 13 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

As part of the requirements for LCS solutions for localization and translation, localization ISV solution providers
must implement country/region-specific or solution-specific features by using the Electronic reporting tool. This
article provides background information that will help you start to use Electronic reporting to create
configurations. This article isn't meant to replace any available and upcoming Electronic reporting documentation,
but is intended as a supplemental view from the perspective of localization requirements.

Electronic reporting
General electronic reporting (GER) is a new configurable tool that helps you create and maintain regulatory
electronic reporting and payments, based on the following three concepts.
Configuration instead of coding
Configuration can be done by a business user and doesn't require a developer.
The data model is defined in business terms.
Visual editors are used to author all components of the GER configuration.
A Microsoft Excel–like formula language is used for data transformation.
One configuration for multiple Dynamics 365 Finance releases
Manage one domain specific data model that is defined in business terms.
Isolate application release specifics in release-dependent data model mappings.
Maintain one format configuration for multiple releases of the current version, based on the data model.
Easy or automatic upgrade
Versioning of GER configurations is supported.
The Microsoft Dynamics Lifecycle Services (LCS) Assets library can be used as a repository for GER
configurations for version exchange.
Localizations that are based on origin GER configurations can be introduced as child versions.
A GER configuration tree is provided as a tool that helps control dependencies for versions.
Only differences in localization (delta configuration) are recorded to enable automatic upgrade to a new version
of the origin GER configuration.
It's easy to manually resolve conflicts that are discovered during automatic upgrade of localization versions.
GER lets users define electronic format structures, and then describe how those structures should be filled by using
data and algorithms. Users can use a formula language that is very similar to the Excel language for data
transformation. To make the database-to-format mapping more manageable, reusable, and independent of format
changes, an intermediate data model concept is introduced. This concept enables implementation details to be
hidden from the format mapping and also enables a single data model to be reused for multiple format mappings.

What's new here


M IC RO SO F T DY N A M IC S A X C URREN T VERSIO N O F
W H AT C A N Y O U DO ? 2012 F IN A N C E W H Y IS T H IS IM P O RTA N T ?

Configure and generate Electronic documents are GER is a new tool for GER simplifies the creation,
electronic documents to hard-coded in X++ or as configuring and generating maintenance, and upgrade
meet the legal requirements Extensible Stylesheet electronic documents that of electronic document
in various countries/regions. Language Transformations target a business user formats to meet legal
(XSLTs). instead of a developer. requirements in various
countries/regions.

Configure regulatory Any format adjustments A business user can GER makes the process of
updates to formats. require development effort. configure the formats, based creating or changing
on domain-specific data electronic document formats
models (for example, for faster and easier. These
payments, Intrastat reports, changes can be made by
or tax reports). business users instead of
developers.

Separation of data and Access to data and access to GER lets you set up data GER makes it faster and
formats makes updates formatting aren't isolated. models that are domain- easier for partners and
easier. specific and independent of customers to upgrade their
the database as data sources format and customizations
for document formats. to new versions of formats
Formats can be configured that are released by
based on these domain- Microsoft or other partners.
specific data models by
using simple visual tools that
are similar to Excel. Data
models and formats support
versioning, and formats can
be date-effective.

Distribute data models and An adjusted format Each data model or format GER provides one common
formats. deployment requires a new version is stored in a way (through LCS) for
hotfix package that separate configuration, and Microsoft and partners to
overrides the existing is distributed to partners distribute electronic
format. and customers through LCS. document configurations to
By using LCS, partners can other partners and
share their data model and customers. GER also makes
format configurations with it easier for partners and
other partners and customers to customize,
customers, who can upgrade, and distribute
customize and share them electronic document formats
further. for their specific business
requirements.

Customization and upgrade Custom modification of each Partners and customers can GER provides one common
are easier. format must be manually customize Microsoft data way (through LCS) for
ported to the source code of models and formats, or Microsoft and partners to
a new hotfix package. create their own. GER saves distribute electronic
partner and customer document configurations to
configuration changes as other partners and
deltas to Microsoft customers. GER also makes
configurations to simplify it easier for partners and
upgrades to new versions of customers to customize,
Microsoft configurations. upgrade, and distribute
Delta customization and electronic document formats
easy upgrade are supported for their specific business
through the whole requirements.
customization chain.
Basic concepts
Main data flow

Data model configuration creation


It's a good idea to reuse and customize data models that are released by Microsoft whenever you can, or to create
a business domain area–specific data model that will introduce the abstract model of required entities and their
relations. In this way, you will be aligned with future updates that are released by Microsoft, or can at least reuse
your model for the design and maintenance of multiple domain–specific electronic documents that have different
formats that are required in different scenarios or countries/regions.
Design the data model of the created model configuration
A data model is designed to recognize and describe the required business entities and the relations between them
in the selected domain. A data model consists of descriptors that express entities by using data containers
(records). Properties of entities are expressed by using data items. A record definition is an entity that contains
fields (the data items). Each data item has a unique name, label, description, and value. The value of each data item
can be designed so that it's recognized as string, integer, real, date, enumerate type, and so on. Additionally, the
value can be another record or record list. A single record definition can be selected as a root of the data model. (A
root is the starting point of the entire model for data source mapping.) In this case, the model is used as a data
source that delivers data according to the single predefined data flow. If no record definition was selected as a root
of the data model, the data model contains record definitions that can be assigned as a root at the format mapping
stage. The data flow of such a model can be defined as a data source in multiple ways, depending on the nature of
the format. For example, a single data model can be designed for the payments domain area. This data model can
include data record definitions for the company as a legal entity, for vendors and customers, and also for
payments. However, according to the nature of the format, the data must be presented in the following way: payer
> payee > payments. Therefore, a single data model can offer data according to the following alternative paths:
Company > vendor > payment for the Accounts payable domain when the company record definition is
selected as a root.
Customer > company > payment for the Accounts receivable domain when the customer record definition is
selected as a root.
Format configuration creation
You use the data model configuration that is created to hold abstract data for a new electronic format that you
want to design. If you intend to consume a data model that was prepared earlier when you create a new format,
make sure that you select the Format based on data model option for Create configuration . After you a have
a format configuration, you must define a format structure. The structure can be created manually or automatically
by importing an example of an XML file or an Excel template. The data model of the parent configuration is
automatically offered for format mapping, together with a proper root container. Nevertheless, a format might
require that data be represented in a specific way. Therefore, you can use formula designer to define expressions as
virtual data items (calculated fields) for our data containers.

NOTE
Although GER allows for direct mapping of format components to database artifacts (tables or data entities), we don't
recommend this approach, because it's likely that multiple formats will be maintained in some business domain areas that
use the same data sources. Whenever the structure of such database artifacts is changed, the format mapping to the
database artifacts must also be changed, and the cost of these changes will be multiplied by the number of maintained
formats. Therefore, we recommend that you work through the data model as the abstract description of the domain-specific
data structure, and that you use the direct binding of format elements to database components only for simplification and
for coverage for specific customizations (for example, to refer to custom tables when these references are required in a
limited number of maintained formats).

Version control
One of the principles behind the design of Electronic reporting is that it should be easy to distribute a data model
and formats together with an enhanced maintenance model for their customizations. All the configurations are
versioned, and an existing customization can be "cloned" to derive a new configuration for localization or
customization implementation. For example, we represent a company that is named Proseware, Inc. We have
subscribed to the service of a company that is named Litware Inc., which provides us with the Intrastat returns
configuration and supports all legal requirements in it. We have already received specific configurations, from
Litware Inc., together with data model and formats, and have deployed them. Our company is working in a district
where, in addition to the federal requirements, we must support the following regional requirements:
As part of Intrastat transactions details, our XML file must show the statistical procedure code that isn't required
anywhere else.
We must limit the length of the company name that is presented in the Intrastat returns header block to 200
characters.
To support these requirements and comply with local district authorities, we must implement this localization as a
localized configuration. However, we must keep the link with the origin configuration, so that we can adopt any
future changes that are introduced at the federal level as new versions of the origin configuration. Therefore, we
import the Litware Inc. origin configuration from LCS, derive it as a new localized configuration, introduce the
required changes, complete this work by introducing a first version of the localized format, and start to use it
internally. Whenever Litware Inc. offers us a new version of the origin configuration, we import it from LCS, rebase
our localized configuration to this version, adopt changes to support new federal requirements, complete this work
by introducing a next version of the localized format, and continue to use it internally.

NOTE
The draft version of any configuration must be "completed" before it can become available locally for further action, such as
the following:
Make it available so that it can be referenced as a data source from a new format.
Enable configuration exchange between companies or instances via configuration import/export, and so on.

Electronic reporting domain coverage


Several out-of-box configurations can be used to meet electronic reporting requirements for specific
countries/regions. The following list show some examples of format configurations that are grouped into business
domains. To get a complete, up-to-date list of available and supported configurations, open a configuration
repository setup to show the configurations that are available for import from either resources or an LCS Assets
library.
Audit file
FEC
GDPdU...
Payments (ISO20022)
SEPA CT
SEPA DD
JBA
BACS...
Statistical reports
EU Intrastat...
Tax reports
CIS
BAS
ELSTER
EU Sales list...
Customer e-Invoice
OIOUBL...

Your solution uptake


You can choose how to move your electronic reporting functionality into GER. However, you should consider the
following high-level steps when you plan that move.
1. Review the electronic reporting functionality that your solution currently provides.
2. Identify domain areas that your solution covers, such as Payments and E-Invoices.
3. Review the configurations that are provided by Microsoft. It's likely that you'll find a configuration that you can
use as a base. For example, if your solution customizes the SEPA CT payment format, you should extend the
SEPA CT configuration.
4. Create new configurations that are based on either an existing model or format, or a new model or format.
5. Define input parameters that users must select when they run the report, and validations for the content of the
report.
6. Define mappings with the model by using arithmetic, string, data, or other available Excel-like functions.
7. Define labels and translation to different languages, where applicable.
8. Define templates that have named ranges, and set links from the configuration for the Excel report, if applicable.

Terminology
T ERM DEF IN IT IO N

GER Electronic reporting is an engine that simplifies the creation of


electronic reports for information interchange with
governments, banks, and other parties. Currently, Electronic
reporting supports text, XML, and OpenXML spreadsheet
formats, and provides an extension interface to support more
formats.
T ERM DEF IN IT IO N

Transformation If you have a typical action that must be done on the source
of data before it is sent as output to a format, you can
introduce a transformation and attach it to format
components. Transformation is a GER formula that takes one
value as a parameter and returns another value. For example,
you have many format fields that contain spaces, and the
spaces should be replaced by spaces when the fields are
exported. In this case, you can create a transformation that
takes a string argument and uses the REPLACE function to do
the job. You can then create string components and associate
them with that transformation.

Data model A data model provides a structure for data. This structure is
used to abstractly describe certain business domain areas at
sufficient detail to satisfy the reporting requirements in this
domain.

Configuration A container for either a data model or a format, together with


its mappings to data sources, that can be maintained and
executed, and that supports versioning. The configuration is
the entity that will be imported or exported to organize
electronic document format exchange between Finance and
Operations instances.

Derive action An operation that uses a configuration that already exists as a


basis to create a new configuration.

Rebase action An operation that updates a derived configuration with


changes that were introduced in a new version of the base
configuration. The version number is selected at the rebase
initialization stage.

Update conflict A conflict that is discovered during the rebase action, where
the new base version contains adjustments of a
format/mapping element (name, property, and so on) that has
also been adjusted in the derived version.

Relocation conflict A conflict that is discovered during the rebase action, where
the new base version contains a new position (parent
element) of a format element (name, property, and so on) that
has also been relocated to a different position in the derived
version.

Duplication conflict A conflict that is discovered during the rebase action, where
the new base version introduced a new format element that is
the same as an element (in other word, it has the same name
and child components) that has also been entered in the
derived version.

Additional resources
Electronic reporting (ER) overview
Manage the Electronic reporting (ER) configuration lifecycle
ER Design domain specific data model
3/18/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can
create a new Electronic reporting (ER) configuration that contains a data model for electronic payment documents.
This data model will later be used as a data source when you create the format of the payment documents.
In this example, you will create a configuration for sample company, Litware, Inc. These steps can be performed in
any company as ER configurations are shared among companies. To complete these steps, you must first complete
the steps in the "Create a configuration provider and mark it as active" procedure.
1. Go to Organization administration > Workspaces > Electronic reporting.
Select the configuration provider for sample company, 'Litware, Inc.' If you don't see this configuration
provider, you must first complete the steps in the "Create a configuration provider and mark it as active"
procedure.
2. Click Reporting configurations.
You will create a configuration that contains a data model for electronic payment documents. This data
model will be used later as a data source when you create the format for the payment documents.

Create a new data model configuration


1. Click Create configuration to open the drop dialog.
2. In the Name field, type 'Payments (simplified model)'.
3. In the Description field, type 'Payment model configuration'.
The active configuration provider is automatically entered here. This provider will be able to maintain this
configuration. Other providers can use this configuration, but will not be able to maintain it.
4. Click 'Create configuration' button to complete the configuration creation task

Create a data model


You're creating a new data model for the selected configuration. This configuration version will have a status of
Draft.
1. Click Designer.

Define the structure of a party participating in a payment process


1. Click New to open the drop dialog.
2. In the Name field, type 'Party'.
3. Click Add.
4. Click New to open the drop dialog.
5. In the Name field, type 'Name'.
6. In the Item type field, select 'String'.
7. Click Add.
8. In the Find field, type 'Party'.
9. Click Find previous.

Define the bank structure for this model


1. Click New to open the drop dialog.
2. In the Name field, type 'Agent'.
3. In the Item type field, select 'Record'.
4. Click Add.
5. In the Description field, enter 'Financial institution (for instance, a bank) servicing an account for the party
(debtor/creditor).'.
Financial institution (for instance, a bank) servicing an account for the party (debtor/creditor).
6. Click New to open the drop dialog.
7. In the Name field, type 'Name'.
8. In the Item type field, select 'String'.
9. Click Add.
10. Click New to open the drop dialog.
11. In the Name field, type 'SWIFT'.
12. Click Add.
13. In the Description field, enter 'Bank identification code'.
14. Click New to open the drop dialog.
15. In the Name field, type 'RoutingNumber'.
16. Click Add.
17. In the Description field, enter 'Routing number'.
18. Click Find previous.

Define the bank account structure for this model


1. Click New to open the drop dialog.
2. In the Name field, type 'Account'.
3. In the Item type field, select 'Record'.
4. Click Add.
5. In the Description field, enter 'Identification of an account of a party in a financial institution (for instance, a
bank).'.
Identification of an account of a party in a financial institution (for instance, a bank).
6. Click New to open the drop dialog.
7. In the Name field, type 'Currency'.
8. In the Item type field, select 'String'.
9. Click Add.
10. In the Description field, enter 'Currency code'.
11. Click New to open the drop dialog.
12. In the Name field, type 'Number'.
13. Click Add.
14. Click New to open the drop dialog.
15. In the Name field, type 'IBAN'.
16. Click Add.
17. In the Description field, enter 'International bank account number'.

Define the payment message structure for credit transfer payment type
1. Click New to open the drop dialog.
2. In the New node as a field, enter 'Model root'.
3. In the Name field, type 'CustomerCreditTransferInitiation'.
4. Click Add.
5. In the Find field, type 'CustomerCreditTransferInitiation'.
6. Click Find previous.
7. Click New to open the drop dialog.
8. In the Name field, type 'MessageIdentification'.
9. Click Add.
10. In the Description field, enter 'The point-to-point reference assigned by the instructing party (and sent to the
next party) to identify a message.'.
The point-to-point reference assigned by the instructing party (and sent to the next party) to identify a
message.
11. Click New to open the drop dialog.
12. In the Name field, type 'ProcessingDateTime'.
13. In the Item type field, select 'DateTime'.
14. Click Add.
15. In the Description field, enter 'Date and time at which the payment message was created.'.
16. Click New to open the drop dialog.
Define the payment transaction structure for this model.
17. In the Name field, type 'Payments'.
18. In the Item type field, select 'Record list'.
19. Click Add.
20. In the Description field, enter 'Payment lines of the current message'.
21. Click New to open the drop dialog.
22. In the Name field, type 'Creditor'.
23. In the Item type field, select 'Record'.
24. Click Add.
25. In the Description field, enter 'Party to which an amount of money is due.'.
26. Click Switch item reference.
27. In the Find field, type 'Party'.
28. Click Find next.
29. Click OK.
30. In the Find field, type 'Payments'.
31. Click Find next.
32. Click New to open the drop dialog.
33. In the Name field, type 'Debtor'.
34. Click Add.
35. In the Description field, enter 'Party that owes an amount of money to the (ultimate) creditor.'.
36. Click Switch item reference.
37. In the Find field, type 'Party'.
38. Click Find next.
39. Click OK.
40. Click Find next.
41. Click New to open the drop dialog.
42. In the Name field, type 'Description'.
43. In the Item type field, select 'String'.
44. Click Add.
45. Click New to open the drop dialog.
46. In the Name field, type 'Currency'.
47. Click Add.
48. In the Description field, enter 'Currency code'.
49. Click New to open the drop dialog.
50. In the Name field, type 'TransactionDate'.
51. In the Item type field, select 'Date'.
52. Click Add.
53. In the Description field, enter 'Transaction date'.
54. Click New to open the drop dialog.
55. In the Name field, type 'InstructedAmount'.
56. In the Item type field, select 'Real'.
57. Click Add.
58. In the Description field, enter 'The amount of money to be moved between the debtor and creditor, before
deduction of charges. The amount should be expressed in the currency as ordered by the initiating party.'.
The amount of money to be moved between the debtor and creditor, before deduction of charges. The
amount should be expressed in the currency as ordered by the initiating party.
59. Click New to open the drop dialog.
60. In the Name field, type 'End2EndID'.
61. In the Item type field, select 'String'.
62. Click Add.
63. In the Description field, enter 'The unique identification assigned by the initiating party. This identification is
passed on, unchanged, throughout the entire end-to-end chain.'.
64. In the Name field, type 'PaymentModel'.
The PaymentModel name aligns with predefined interfaces of payment forms.
65. Click Save.
66. Close the page.
Prepare application metadata to be used in RCS
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can
create a new Electronic reporting (ER) configuration that contains application metadata for designing ER model
mapping configurations in Regulatory configuration service (RCS). This configuration will be used for designing a
sample ER model mapping configuration to access foreign trade transactions. In this example, you will create a
configuration for sample company, Litware, Inc. These steps can be performed in any company. To complete these
steps, you must first complete the steps in the topic, Create configuration providers and mark them as active.

Prerequisites
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Make sure that the configuration provider for the sample company, Litware, Inc., is available and marked as
Active . If you don't see this configuration provider, complete the steps in the procedure Create configuration
providers and mark them as active.
3. Click Metadata configurations .
4. Assume that RCS will be used to design an ER solution for a Finance and Operation application that will
generate electronic documents that contain information from foreign trade business domain. To specify the
mapping between ER data model and sources of required data, in RCS we need to have access to metadata of
the Finance and Operation application. Therefore, as part of designing ER solution we configure a new ER
metadata configuration containing all metadata that is currently required for generation ER reports for selected
business domain.

Add metadata configuration


1. Click Create configuration to open the drop dialog.
2. In the Name field, type 'Foreign trade metadata'.
3. Click Create configuration .
4. Click Designer .
5. Click Add .

NOTE
You can select all metadata for the entire application or selected models or selected modules. Be aware that in this case the
following metadata will be automatically added: tables of records, enumerations, and extended data types. When additional
types of metadata are needed, they must be added manually.

We have some foreign trade transactions related metadata by selecting metadata items manually.
6. Click Add data source .
7. Click Table records .
8. Use the Quick Filter to filter on the Name field with a value of 'Intrastat'.
9. Select the Intrastat table record.
10. Click OK .
We added metadata information about the Intrastat table of records.
11. In the tree, expand Table records Intrastat >Relations .
12. In the tree, select Table records Intrastat >Relations\IntrastatCommodity (Table records
EcoResCategor y) .
13. Click Add metadata .

NOTE
Metadata about required relations for selected table of records must be added manually.

16. Click Add data source .


17. Click Enumeration .
18. Use the Quick Filter to filter on the Name field with a value of 'IntrastatDirection'.
19. Select the IntrastatDirection enumeration record.
20. Click OK .
21. Click Save .
22. Close the page.

Complete the draft version of metadata configuration


1. Click Change status .
2. Click Complete .
3. Click OK .
4. Select the completed version 1 .

Export the completed version of metadata configuration from


application as XML file
1. Click Exchange .
2. Click Expor t as XML file .
3. Click OK .
The created ER metadata configuration has been saved as XML file that can be imported to RCS and used as the
source of information about metadata for the foreign trade business domain. Based on this information, we can
specify the mapping between application metadata and ER data model.
Access application metadata by using ER
configuration
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a Regulatory configuration service (RCS) user in the System Administrator or
Electronic Reporting Developer role can design a new Electronic reporting (ER) model mapping by using the
application metadata. Application metadata will be accessed by using an ER metadata configuration that contains a
sample set of metadata to access foreign trade transactions. To complete these steps, in RCS you must first
complete the steps in the topic, Create configuration providers and mark them as active procedure. Then complete
the steps in the topic, Prepare application metadata to be used in RCS.

Prerequisites
1. Go to All workspaces > Electronic repor ting .
2. Make sure that the configuration provider for the sample company, Litware, Inc., is available and marked as
Active . If you don't see this configuration provider, complete the steps in the procedure Create configuration
providers and mark them as active.

Import metadata configuration


1. Click Metadata configurations .
2. Import the ER metadata configuration that contains metadata that has been configured to generate electronic
documents for foreign trade business. This ER metadata configuration has been exported as XML file while the
steps in the Prepare application metadata to be used in RCS procedure have been completed.
3. Click Exchange .
4. Click Load from XML file .
5. Click Browse and select the 'Foreign trade metadata.xml' file.
6. Click OK .
7. Close the page.

Create data model configuration


1. Click Repor ting configurations .
2. Click Create configuration to open the drop dialog.
3. In the Name field, type 'Foreign trade model'.
4. Click Create configuration .
5. Click Designer .
6. Click New to open the drop dialog.
7. In the Name field, type 'Root'.
8. Click Add .
9. Click New to open the drop dialog.
10. In the Name field, type 'Transaction'.
11. In the Item type field, select Record list .
12. Click Add .
13. Click New to open the drop dialog.
14. In the Name field, type 'Commodity code'.
15. In the Item type field, select String .
16. Click Add .
17. Click New to open the drop dialog.
18. In the Name field, type 'Invoiced amount'.
19. In the Item type field, select Real .
20. Click Add .
21. Click New to open the drop dialog.
22. In the Name field, type 'Date'.
23. In the Item type field, select Date .
24. Click Add .
25. Click Root reference .
26. Click OK .
27. Click Save .
28. Close the page.
29. Click Change status .
30. Click Complete .
31. Click OK .

Create model mapping configuration


1. Click Create configuration to open the drop dialog.
2. In the New field, enter 'Model Mapping based on data model Foreign trade model'.
3. In the Name field, type 'Foreign trade mapping'.
4. Click Create configuration .
5. Expand the Prerequisites section.
6. Click Edit .
7. Click New .
8. In the list, mark the selected row.
9. In the Prerequisite component type field, select Configuration .
10. Select Foreign trade metadata configuration.
11. Click Save .
12. We added the reference to the version 1 of the 'Foreign trade metadata' configuration. Application metadata
from this configuration will be offered while this model mapping will be designed.
13. Close the page.
14. Click Designer .
15. Click Designer .
16. In the tree, select Dynamics 365 for Operations\Table records .
17. Click Add root .
18. In the Name field, type 'Intrastat'.
19. Select Intrastat table records.
20. Click OK .
NOTE
The only 2 tables were offered as the only 2 tables were added into the set of metadata which is currently in use.

21. Click Bind .


22. In the tree, expand Intrastat .
23. In the tree, select Intrastat\AmountMST .
24. In the tree, expand Transaction = Intrastat .
25. In the tree, select Transaction = Intrastat\Invoiced amount .
26. Click Bind .
27. In the tree, select Intrastat\TransDate .
28. In the tree, select Transaction = Intrastat\Date .
29. Click Bind .
30. In the tree, expand Intrastat>Relations .
31. In the tree, expand Intrastat>Relations\IntrastatCommodity .
32. In the tree, select Intrastat>Relations\IntrastatCommodity\Code .
33. In the tree, select Transaction = Intrastat\Commodity code .
34. Click Bind .
35. Click Validate .

NOTE
We have successfully bound elements of data model with items of data sources that are described by using details of
application metadata from the referred ER metadata configuration. 36. Click Save . 37. Close the page. 38. Close the page. 39.
When needed, you can extend the existing set of metadata and then export the new completed version of ER metadata
configuration. You can then import it to RCS, and update the prerequisites of the configured model mapping configuration
referring to a new version of imported metadata configuration.

NOTE
This way of getting information about application metadata is the only one available for locally deployed applications (when
local business data (LBD), or on-premises, deployment model is used).
Access application metadata by using connected
applications
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a Regulatory configuration service (RCS) user in the System Administrator or
Electronic Reporting Developer role can design a new Electronic reporting (ER) model mapping by using metadata
in Finance and Operations. Application metadata will be accessed online by using the RCS connected application.
Sample ER model mapping will be configured to access foreign trade transactions. To complete these steps, in RCS
you must first complete the steps in the topic, Create configuration providers and mark them as active. If you have
not completed the steps in the topic, Access application metadata by using ER configuration, go to the Electronic
reporting examples page to download and save the following ER configurations: Foreign trade metadata.xml;
Foreign trade model.xml; Foreign trade mapping.xml, and then complete the steps in the procedure.

Prerequisites
1. Go to All workspaces > Electronic repor ting .
2. Make sure that the configuration provider for the sample company, Litware, Inc., is available and marked as
Active . If you don't see this configuration provider, complete the steps in the procedure Create configuration
providers and mark them as active.

Get required ER configurations


1. Click Repor ting configurations .
2. If you already completed the steps in the Access application metadata by using ER configuration procedure, you
already have all necessary ER configurations (foreign trade metadata, model and mapping configurations) in the
current RCS instance. You can skip all the remaining steps of this sub-task.
3. Click Exchange .
4. Click Load from XML file .
5. Click Browse and select the Foreign trade metadata.xml file.
6. Click OK .
7. Click Exchange .
8. Click Load from XML file .
9. Click Browse and select the Foreign trade model.xml file.
10. Click OK .
11. Click Exchange .
12. Click Load from XML file .
13. Click Browse and select the Foreign trade mapping.xml file.
14. Click OK .

Register a connected application


1. Close the page.
2. Close the page.
3. Go to All workspaces > Electronic repor ting .
4. Click Connected applications .
5. Make sure that the configured application is Azure based and accessible for the current RCS user. It is also
required that the current RCS user has access to the selected application and has been registered as a user of
this application playing a role giving him privileges to access application's metadata.
6. Click New .
7. In the Name field, type 'MyConnectedApp'.
8. In the Application field, type 'https:// mycompany.operations.dynamics.com'.
9. In the Tenant field, type 'mycompany.onmicrosoft.com'.
10. Click Save .
11. When you check connection to configured application, on the Connect to remote application page click
Click here to connect to selected remote application link.
12. Click Check connection .
13. Click Close .
14. When the connection validation succeeded, version and tenant details will be updated for the configured
application in the current grid.

Review existing model mapping configuration


1. Close the page.
2. Click Repor ting configurations .
3. In the tree, expand Foreign trade model .
4. In the tree, select Foreign trade model\Foreign trade mapping .
5. Expand the Prerequisites section.

NOTE
Currently, this mapping refers to the metadata configuration. Application metadata from this configuration will be
offered while this model mapping will be designed.

6. Click Designer .
7. Click Designer .
8. In the tree, select Dynamics 365 for Operations\Table records .
9. Click Add root .
10. In the Table field, enter or select a value.

NOTE
Currently, this mapping refers to the metadata configuration. Application metadata from this configuration will be
offered while this model mapping will be designed.

11. Click Cancel .


12. Close the page.
13. Close the page.

Assign connected application to model mapping


1. Click Edit .
2. Select MyConnectedApp application.

NOTE
Currently, this mapping refers to the metadata of the selected connected application. When the same mapping refers
to metadata configuration and connected application at the same time, metadata of the connected application will be
used.

3. Click Designer .
4. Click Designer .
5. In the tree, select Dynamics 365 for Operations\Table records .
6. Click Add root .
7. In the Table field, enter or select a value.

NOTE
More than two application tables were offered now as this mapping uses all the metadata of the connected
application that has been assigned for it.

8. Click Cancel .
9. Click Validate .

NOTE
We successfully bound elements of data model with items of data sources that are described by using details of
metadata of the connected application that has been assigned for this mapping.

10. Close the page.


11. Close the page.
When you need to evaluate this model mapping by using metadata of a different version application, register
another connected application, assign it to this model mapping and validate it against new metadata.
Define ER model mappings and select data sources
for them
3/18/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can
select data sources for an Electronic reporting (ER) data model. The data sources will be bound to individual
components of the selected data model at design time and populate business data to that data model at run-time.
In this example, you will select data sources for an existing data model that has been created for sample company,
Litware, Inc. To complete these steps, you must first complete the steps in the "Create a new data model" procedure.

Open the Electronic Reporting configurations tree


1. Go to Organization administration > Workspaces > Electronic reporting.
2. Click Reporting configurations.

Insert a new model mapping


1. In the tree, select 'Payments (simplified model)'.
2. Click Designer.
3. Click Map model to datasource.
4. Click New.
This will create a new record that will map the data model to data sources. In this example, you will map
the data model to data sources for the desired payment type: credit transfer. It is possible to design more
than one mapping for a particular data model. For example, you could create a mapping for the different
types of payments, such as for direct debit or for credit transfers. In this example, you will create a
mapping for credit transfers.
5. In the Name field, type 'CT mapping'.
CT mapping
6. In the Description field, type 'Payment model mapping CT'.
Payment model mapping CT
7. In the Definition field, type 'CustomerCreditTransferInitiation'.
CustomerCreditTransferInitiation
8. ResolveChanges the Definition.
9. Click Save.

Define required data sources for the current model mapping


1. Click Designer.
2. In the tree, select 'Dynamics 365 for Operations\Table records'.
3. Click Add root.
Enter this data source to access payment transactions.
4. In the Name field, type 'Transactions'.
Transactions
5. In the Label field, enter 'Transactions'.
Transactions
6. In the Help field, enter 'Ledger journal lines'.
Ledger journal lines
7. Select Yes in the Ask for query field.
Select Yes.
8. In the Table field, type 'LedgerJournalTrans'.
LedgerJournalTrans
9. Click OK.
Select the LedgerJournalTrans table as a data source for the current data model.
10. In the tree, select 'Functions\Calculated field'.
11. Click Add.
Click Add to add a new calculated field.
12. In the Name field, type '$EndToEndID'.
$EndToEndID
13. Click Edit formula.
14. In the tree, select 'String\CONCATENATE'.
15. Click Add function.
16. In the tree, expand 'Transactions'.
17. In the tree, select 'Transactions\Voucher'.
18. Click Add data source.
19. In the Formula field, enter 'CONCATENATE(Transactions.Voucher, "-", '.
Type [ , "-", ] at the end of the formula.
20. In the tree, select 'String\TEXT'.
21. Click Add function.
22. In the tree, select 'Transactions\Record-ID(RecId)'.
23. Click Add data source.
24. In the Formula field, enter 'CONCATENATE(Transactions.Voucher, "-", TEXT(Transactions.RecId))'.
Type [))] at the end of the formula.
25. Click Save.
Make sure that no errors have been discovered for the created formula. See the ERRORS tab below the
formula editor control.
26. Close the page.
27. Click OK.
Add the calculated field to this data source.
28. Click Add.
Click Add to add a new calculated field.
29. In the Name field, type '$Amount'.
$Amount
30. Click Edit formula.
31. In the tree, expand 'Transactions'.
32. In the tree, select 'Transactions\Debit(AmountCurDebit)'.
33. Click Add data source.
34. In the Formula field, enter 'Transactions.AmountCurDebit - '.
Type [ - ] at the end of the formula.
35. In the tree, select 'Transactions\Credit(AmountCurCredit)'.
36. Click Add data source.
37. Click Save.
38. Close the page.
39. Click OK.
This will add the $Amount calculated field to the selected data source for the current data model.
40. In the tree, select 'Transactions$Amount'.
41. In the tree, expand 'Transactions'.
42. In the tree, expand or collapse 'Transactions$Amount'.
43. In the tree, expand or collapse 'Transactions'.
44. In the tree, select 'Dynamics 365 for Operations\Table records'.
45. Click Add root.
Enter this data source to access the company's bank account details.
46. In the Name field, type 'BankAccount'.
BankAccount
47. In the Label field, enter 'Bank Account'.
Bank Account
48. In the Help field, enter 'Bank Account'.
Bank Account
49. Select Yes in the Ask for query field.
Select Yes.
50. In the Table field, type 'BankAccountTable'.
BankAccountTable
51. Click OK.
Select the BankAccountTable table as a data source for the current data model.
52. Click Add root.
Enter this data source to access the company's requisites.
53. In the Name field, type 'Company'.
Company
54. In the Label field, type a value.
Company information
55. In the Help field, enter 'Company information'.
Company information
56. Select Yes in the Ask for query field.
Select Yes.
57. In the Table field, type 'CompanyInfo'.
CompanyInfo
58. Click OK.
Select the CompanyInfo table as a data source for the current data model.
59. In the tree, select 'Functions\Calculated field'.
60. Click Add root.
Insert a calculated field as a new data source.
61. In the Name field, type 'ProcessingDateTime'.
ProcessingDateTime
62. In the Label field, enter 'Processing date & time'.
Processing date & time
63. Click Edit formula.
64. In the tree, select 'Date/time\SESSIONNOW'.
65. Click Add function.
66. Click Save.
67. Close the page.
68. Click OK.
Add the ProcessingDateTime calculated field as a data source for the current data model.
69. Click Save.
70. Close the page.
71. Close the page.
72. Close the page.
ER Map data model to selected data sources
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can map
an Electronic reporting (ER) data model to selected data sources. This model mapping will later be used as a data
source in a format configuration that will be used to manage electronic payment documents. In this example, you
map a data model for sample company, Litware, Inc. to data sources. To complete these steps, you must first
complete the steps in the "Select data sources for model mapping" procedure.

Open ER configurations tree


1. Go to Organization administration > Workspaces > Electronic reporting.
2. Click Configurations.

Select created model mapping


1. In the tree, select 'Payments (simplified model)'.
Make sure that the model configuration "Payments (simplified model)" has been created in advance.
Otherwise, stop now and return after completion of the task guide 'Create a new configuration with data
model of the selected domain'.
2. Click Model designer.
3. Click Map model to datasource.
4. Select the 'CT mapping' record.
CT mapping

Bind created data sources to data model elements


1. Click Designer.
2. In the tree, select 'Processing date & time(ProcessingDateTime)'.
3. In the tree, select 'Processing date(ProcessingDateTime)'.
4. Click Bind.
5. In the tree, select 'Payment message identification(MessageIdentification)'.
6. In the tree, expand 'Transactions'.
7. In the tree, select 'Transactions\Journal batch number(JournalNum)'.
8. Click Bind.
9. In the tree, select 'Payments'.
10. In the tree, select 'Transactions'.
11. Click Bind.
12. In the tree, expand 'Payments= Transactions'.
13. In the tree, expand 'Payments= Transactions\Creditor'.
14. In the tree, expand 'Payments= Transactions\Creditor\Account'.
15. In the tree, select 'Payments= Transactions\Creditor\Account\Currency code(Currency)'.
16. In the tree, expand 'Transactions\vendBankAccountInTransactionCompany()'.
17. In the tree, select 'Transactions\vendBankAccountInTransactionCompany()\Currency(CurrencyCode)'.
18. Click Bind.
19. In the tree, select 'Payments= Transactions\Creditor\Account\IBAN code(IBAN)'.
20. In the tree, select 'Transactions\vendBankAccountInTransactionCompany()\IBAN(BankIBAN)'.
21. Click Bind.
22. In the tree, select 'Payments= Transactions\Creditor\Account\Number'.
23. In the tree, select 'Transactions\vendBankAccountInTransactionCompany()\Bank account number(AccountNum)'.
24. Click Bind.
25. In the tree, expand 'Payments= Transactions\Creditor\Agent'.
26. In the tree, select 'Payments= Transactions\Creditor\Agent\Name'.
27. In the tree, select 'Transactions\vendBankAccountInTransactionCompany()\Name'.
28. Click Bind.
29. In the tree, select 'Payments= Transactions\Creditor\Agent\Routing number(RoutingNumber)'.
30. In the tree, select 'Transactions\vendBankAccountInTransactionCompany()\Routing number(RegistrationNum)'.
31. Click Bind.
32. In the tree, select 'Payments= Transactions\Creditor\Agent\SWIFT code(SWIFT)'.
33. In the tree, select 'Transactions\vendBankAccountInTransactionCompany()\SWIFT code(SWIFTNo)'.
34. Click Bind.
35. In the tree, select 'Payments= Transactions\Creditor\Name'.
36. In the tree, expand 'Transactions\findVendTable()'.
37. In the tree, select 'Transactions\findVendTable()\name()'.
38. Click Bind.
39. In the tree, select 'Payments= Transactions\Currency code(Currency)'.
40. In the tree, expand 'Transactions>Relations'.
41. In the tree, expand 'Transactions>Relations\Currency table(Currency)'.
42. In the tree, select 'Transactions>Relations\Currency table(Currency)\Currency code(CurrencyCodeISO)'.
43. Click Bind.
44. In the tree, expand 'Payments= Transactions\Debtor'.
45. In the tree, expand 'Payments= Transactions\Debtor\Account'.
46. In the tree, select 'Payments= Transactions\Debtor\Account\Currency code(Currency)'.
47. In the tree, select 'Bank Account(BankAccount)'.
48. In the tree, expand 'Bank Account(BankAccount)'.
49. In the tree, select 'Bank Account(BankAccount)\Currency(CurrencyCode)'.
50. Click Bind.
51. In the tree, select 'Bank Account(BankAccount)\IBAN'.
52. In the tree, select 'Payments= Transactions\Debtor\Account\IBAN code(IBAN)'.
53. Click Bind.
54. In the tree, select 'Payments= Transactions\Debtor\Account\Number'.
55. In the tree, select 'Bank Account(BankAccount)\Bank account number(AccountNum)'.
56. Click Bind.
57. In the tree, expand 'Payments= Transactions\Debtor\Agent'.
58. In the tree, select 'Payments= Transactions\Debtor\Agent\Name'.
59. In the tree, select 'Bank Account(BankAccount)\Name'.
60. Click Bind.
61. In the tree, select 'Payments= Transactions\Debtor\Agent\Routing number(RoutingNumber)'.
62. In the tree, select 'Bank Account(BankAccount)\Routing number(RegistrationNum)'.
63. Click Bind.
64. In the tree, select 'Payments= Transactions\Debtor\Agent\SWIFT code(SWIFT)'.
65. In the tree, select 'Bank Account(BankAccount)\SWIFT code(SWIFTNo)'.
66. Click Bind.
67. In the tree, select 'Payments= Transactions\Debtor\Name'.
68. In the tree, select 'Company information(Company)'.
69. In the tree, expand 'Company information(Company)'.
70. In the tree, select 'Company information(Company)\Name'.
71. Click Bind.
72. In the tree, select 'Payments= Transactions\Description'.
73. In the tree, select 'Transactions\Description(Txt)'.
74. Click Bind.
75. In the tree, select 'Payments= Transactions\End to end identification code(End2EndID)'.
76. In the tree, select 'Transactions$EndToEndID'.
77. Click Bind.
78. In the tree, select 'Payments= Transactions\Instructed amount(InstructedAmount)'.
79. In the tree, select 'Transactions$Amount'.
80. Click Bind.
81. In the tree, select 'Payments= Transactions\Transaction date(TransactionDate)'.
82. In the tree, select 'Transactions\Date(TransDate)'.
83. Click Bind.

Validate created mapping


1. Click Validate.
Validate the new mapping to ensure that all bindings are okay.
2. Click the arrow to expand or collapse the Error List section.
3. Click Save.
4. Close the page.
5. Close the page.
6. Close the page.

Change the status of the current version of model configuration


1. Click Change status.
Change the status of designed model configuration – from Draft to Completed to make it available for
payment format design.
2. Click Complete.
Select Complete.
3. In the Description field, type a value.
For example, 'version 1'.
4. Click OK.
5. Select the completed version of the current configuration.
Note that the created configuration is saved as completed version 1.
ER Create a format configuration (November 2016)
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how a user in the System Administrator or Electronic Reporting Developer role can create a
format configuration for Electronic reporting (ER). This format configuration will define the format of electronic
documents that are used for processing payments. In this example, you will create a format configuration for
sample company, Litware, Inc. To complete these steps, you must first complete the steps in the "Map model to
selected datasources" procedure.

Create a new format configuration


1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Click Repor ting configurations .
3. In the tree, select Payments (simplified model) .
4. Click Create configuration to open the drop dialog.

NOTE
If you don't see Create configuration , you must enable design mode on the Electronic repor ting parameters page.

5. In the New field, enter Format based on data model PaymentModel .


6. In the Name field, type BACS (UK fictitious) .
7. In the Description field, type BACS vendor payment format (UK fictitious) .
The active configuration provider is automatically entered here. This provider will be able to maintain this
configuration. Other providers can use this configuration, but will not be able to maintain it.
A particular format of electronic document can be defined. Leave this field blank if you want to select a
format at run-time.
8. In the Data model definition field, enter or select a value.
9. Click Create configuration . A new configuration has been created. The draft version can be used to store the
design format for managing electronic documents.

Design the format of an electronic document


1. Click Designer .
2. Click Add root to open the drop dialog.
3. In the tree, select Common\File .
4. In the Name field, type Xml .
5. In the Encoding field, type UTF-8 .
6. Click OK .
7. Click Add .
8. In the tree, select XML\Element .
9. In the Name field, type Message .
10. Click OK .
11. In the tree, select Xml\Message .
12. Click Add Element .
13. In the Name field, type ProcessingDate .
14. Click OK .
15. Click Add Element .
16. In the Name field, type MessageId .
17. Click OK .
18. Click Add Element .
19. In the Name field, type Payments .
20. Click OK .
21. In the tree, select Xml\Message\Payments .
22. Click Add Element .
23. In the Name field, type Item .
24. Click OK .
25. In the tree, select Xml\Message\Payments\Item .
26. Click Add .
27. In the tree, select XML\Attribute .
28. In the Name field, type Id .
29. Click OK .
30. Click Add .
31. In the tree, select XML\Element .
32. In the Name field, type Vendor .
33. Click OK .
34. In the tree, select Xml\Message\Payments\Item\Vendor .
35. Click Add Element .
36. In the Name field, type Name .
37. Click OK .
38. Click Add Element .
39. In the Name field, type Bank .
40. Click OK .
41. In the tree, select Xml\Message\Payments\Item\Vendor\Bank .
42. Click Add Element .
43. In the Name field, type RoutingNumber .
44. Click OK .
45. Click Add Element .
46. In the Name field, type AccountNumber .
47. Click OK .
48. In the tree, select Xml\Message\Payments\Item\Vendor .
49. Click Copy .
50. In the tree, select Xml\Message\Payments\Item .
51. Click Paste .
52. In the Name field, type Payer .
53. In the tree, select Xml\Message\Payments\Item .
54. Click Add Element .
55. In the Name field, type Currency .
56. Click OK .
57. Click Add Element .
58. In the Name field, type Description .
59. Click OK .
60. Click Add Element .
61. In the Name field, type TransDate .
62. Click OK .
63. Click Add Element .
64. In the Name field, type Amount .
65. Click OK .

Prepare format components for mapping to data model elements


1. In the tree, select Xml\Message\ProcessingDate .
2. Click Add to open the drop dialog.
3. In the tree, select Text\DateTime .
4. In the Format field, type yyyy-MM-dd .
5. Click OK .
6. In the tree, select Xml\Message\Payments\Item\TransDate .
7. Click Add DateTime .
8. In the Format field, type yyyy-MM-dd .
9. In the DateTime type field, select Date .
10. Click OK .
11. In the tree, select Xml\Message\MessageId .
12. Click Add to open the drop dialog.
13. In the tree, select Text\String .
14. Click OK .
15. In the tree, select Xml\Message\Payments\Item\Vendor\Name .
16. Click Add String .
17. Click OK .
18. In the tree, select Xml\Message\Payments\Item\Vendor\Bank\RoutingNumber .
19. Click Add String .
20. Click OK .
21. In the tree, select Xml\Message\Payments\Item\Vendor\Bank\AccountNumber .
22. Click Add String .
23. Click OK .
24. In the tree, select Xml\Message\Payments\Item\Payer\Name .
25. Click Add String .
26. Click OK .
27. In the tree, select Xml\Message\Payments\Item\Payer\Bank\RoutingNumber .
28. Click Add String .
29. Click OK .
30. In the tree, select Xml\Message\Payments\Item\Payer\Bank\AccountNumber .
31. Click Add String .
32. Click OK .
33. In the tree, select Xml\Message\Payments\Item\Currency .
34. Click Add String .
35. Click OK .
36. In the tree, select Xml\Message\Payments\Item\Description .
37. Click Add String .
38. Click OK .
39. In the tree, select Xml\Message\Payments\Item\Amount .
40. Click Add String .
41. Click OK .
42. Click Save .
43. Close the page.
ER Map components of the created format to data
model elements (November 2016)
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following procedure shows how a user in either the System administrator or Electronic reporting developer
role can map data model elements to components of the created Electronic reporting (ER) configuration, which
defines an electronic document format for the payments business domain. This format will be used later to
generate electronic documents for processing payments. In this example, you will create a format configuration for
the sample company, 'Litware, Inc.'. These steps can be performed in any company as ER configurations are shared
for all companies. To complete these steps, you must first complete the steps in the "Create a format configuration"
task guide.

Select a format configuration


1. Go to Organization administration > Workspaces > Electronic reporting.
2. Click Reporting configurations.
3. In the tree, expand 'Payments (simplified model)'.
4. In the tree, select 'Payments (simplified model)\BACS (UK fictitious)'.
5. Click Designer.

Map format components to data model elements


1. Click Expand/collapse.
2. Click the Mapping tab.
3. In the tree, expand 'model'.
4. In the tree, select 'Xml\Message\ProcessingDate\DateTime'.
5. In the tree, select 'model\ProcessingDateTime'.
6. Click Bind.
7. In the tree, select 'Xml\Message\MessageId\String'.
8. In the tree, select 'model\MessageIdentification'.
9. Click Bind.
10. In the tree, expand 'model\Payments'.
11. In the tree, select 'Xml\Message\Payments\Item\Amount\String'.
12. In the tree, select 'model\Payments\InstructedAmount'.
13. Click Bind.
14. In the tree, select 'Xml\Message\Payments\Item\TransDate\DateTime'.
15. In the tree, select 'model\Payments\TransactionDate'.
16. Click Bind.
17. In the tree, select 'Xml\Message\Payments\Item\Description\String'.
18. In the tree, select 'model\Payments\Description'.
19. Click Bind.
20. In the tree, select 'Xml\Message\Payments\Item\Currency\String'.
21. In the tree, select 'model\Payments\Currency'.
22. Click Bind.
23. In the tree, select 'Xml\Message\Payments\Item\Id'.
24. In the tree, select 'model\Payments\End2EndID'.
25. Click Bind.
26. In the tree, expand 'model\Payments\Creditor'.
27. In the tree, expand 'model\Payments\Creditor\Account'.
28. In the tree, expand 'model\Payments\Creditor\Agent'.
29. In the tree, select 'Xml\Message\Payments\Item\Vendor\Name\String'.
30. In the tree, select 'model\Payments\Creditor\Name'.
31. Click Bind.
32. In the tree, select 'Xml\Message\Payments\Item\Vendor\Bank\RoutingNumber\String'.
33. In the tree, select 'model\Payments\Creditor\Agent\RoutingNumber'.
34. Click Bind.
35. In the tree, select 'Xml\Message\Payments\Item\Vendor\Bank\AccountNumber\String'.
36. In the tree, select 'model\Payments\Creditor\Account\Number'.
37. Click Bind.
38. In the tree, select 'Xml\Message\Payments\Item\Payer\Name\String'.
39. In the tree, expand 'model\Payments\Debtor'.
40. In the tree, expand 'model\Payments\Debtor\Account'.
41. In the tree, expand 'model\Payments\Debtor\Agent'.
42. In the tree, select 'model\Payments\Debtor\Name'.
43. Click Bind.
44. In the tree, select 'Xml\Message\Payments\Item\Payer\Bank\RoutingNumber\String'.
45. In the tree, select 'model\Payments\Debtor\Agent\RoutingNumber'.
46. Click Bind.
47. In the tree, select 'Xml\Message\Payments\Item\Payer\Bank\AccountNumber\String'.
48. In the tree, select 'model\Payments\Debtor\Account\Number'.
49. Click Bind.
50. In the tree, select 'Xml\Message\Payments\Item'.
51. In the tree, select 'model\Payments'.
52. Click Bind.
53. Click Save.

Validate format mapping


1. Click Validate.
Validate the new mapping to ensure that all bindings are okay.
2. Close the page.

Change status of the current version of format configuration


In the next steps, you'll change the status of the format configuration from Draft to Completed to make it available
for payment document generation.
1. Click Change status.
2. Click Complete.
3. In the Description field, type a value.
For example, 'version 1'.
4. Click OK.
5. Select completed version of the current configuration.
Note that the configuration is saved as completed version 1.1: version 1 of the format based on the
version 1 of the data model.

Define effective date for completed version of format


Each format version can be configured as available for usage starting from a certain date. When more than one
format version is active on a certain date, the latest format (based on version number) will be selected for usage.
The session date value is used for proper version selection.

Restrict access to created format from companies


1. Expand the ISO Country/region codes section.
Each format access can be restricted by identifying particular countries/regions in which a format is
applicable. When the list of countries/regions for particular format is empty, this format can be used in
any company. When some ISO country/region codes are inserted in the list of countries/regions, the
format can only be use in companies if the primary address is in the country/region.
(ER) Import configurations from RCS
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can
import a new version of an Electronic reporting (ER) configuration from Microsoft Regulatory Configuration
Services (RCS). In this example, you will select the version of the ER configuration that has been configured in an
RCS instance and import it into the current instance for sample company, Litware, Inc. These steps can be
performed in any company because ER configurations are shared among companies. To complete these steps, you
must first complete the steps in the topic, Create configuration providers and mark them as active. To complete
these steps, you must also have access to an RCS instance containing at least one ER configuration in either
Completed or Shared status.
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Make sure that the configuration provider for the sample company, Litware, Inc., is available and marked as
Active . If you don't see this configuration provider, complete the steps in the topic, Create configuration
providers and mark them as active.
3. If you have no RCS environment provisioned to your company, click Regulator y ser vices – Configuration
external link and follow the instructions to provision an RCS environment.
4. Click Electronic repor ting parameters .
5. Click the RCS tab.
6. If RCS environment has been already provisioned to your company, use presented on the page URLs to access it.
7. Close the page.

Register a new ER repository.


1. In the list, mark the selected row.
2. Select Litware, Inc. provider.
3. Click Repositories.
4. Click Add to open the drop dialog.
5. In the Configuration repository type field, enter 'RCS'.
6. Click Create repository.
7. In the RCS environment display name field, enter or select a value.
8. Select the desired RCS instance. Note that you can have several of them.
9. Click OK.

Import ER configurations from RCS based repository


1. Click Show filters .
2. Enter a filter value of "RCS" on the Name field using the begins with filter operator.
3. When you open the selected repository, on the Connect to Regulator y Configuration Ser vices page, click
Click here to connect to Regulator y Configuration Ser vices link.
4. Click Open .
5. Click Close .
6. Select the desired version of ER configuration and click Impor t to bring it in the current instance.
ER Generate electronic documents for payments
using a format configuration
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can use
a new Electronic reporting (ER) format configuration to generate electronic documents for processing payments.
These steps can be performed in the GBSI sample company.
To complete these steps, you must first complete the steps in the "Create a configuration with format of payment
document" procedure.

Change the configuration of the electronic payment method


1. Go to Accounts payable > Payment setup > Methods of payment.
2. Toggle the File format section to expand it, if needed.
3. Use the Quick Filter to find records. For example, filter on the Method of payment field with a value of
'Electronic'.
4. Click Edit.
5. Set the General electronic reporting field to Yes.
Select Yes to use the General electronic reporting pattern for payment files generation.
6. In the Name field, click the drop-down button to open the lookup.
7. Select BACS (UK fictitious) format configuration.
8. Click Save.
9. Close the page.

Test the format of generated payment files


1. Go to Accounts payable > Payments > Payment journal.
2. Click New.
3. In the list, mark the selected row.
4. In the Name field, click the drop-down button to open the lookup.
5. In the list, click the link in the selected row.
Select VendPay.
6. Click Save.
7. Click Lines.
8. In the Company field, type 'DEMF'.
DEMF
9. In the Account field, specify the values 'DE-01001'.
DE-01001
10. In the Description field, type 'Payment'.
Payment
11. In the Debit field, enter a number.
1000
12. Click the Payment tab.
13. In the Method of payment field, click the drop-down button to open the lookup.
14. In the list, find and select the desired record.
Select the Electronic value.
15. In the list, click the link in the selected row.
16. Click Save.
17. Click Generate payments.
18. In the Method of payment field, click the drop-down button to open the lookup.
19. In the list, find and select the desired record.
Select the Electronic value.
20. In the list, click the link in the selected row.
Select the Electronic value.
21. In the File name field, type a value.
For example, type 'payments'.
22. In the Bank account field, click the drop-down button to open the lookup.
23. In the list, click the link in the selected row.
Select the value GBSI OPER.
24. Click OK.
25. Click OK.
Analyze the created payment file in XML format. Compare it with the designed document layout and
defined payment transaction attributes.
ER Upgrade your format by adopting a new, base
version of that format
3/18/2020 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can
maintain an Electronic reporting (ER) format configuration. This procedure explains how a custom version of a
format can be created based on the format received from a configuration provider (CP). It also explains how to
adopt a new, base version of that format.
To complete these steps, you must first complete the steps in the "Create a configuration provider and mark it as
active" and "Use created format to generate electronic documents for payments" procedures. These steps can be
performed in the GBSI company.

Select format configuration for customization


1. Go to Organization administration > Workspaces > Electronic reporting.
In this example, sample company Litware, Inc. (https://www.litware.com) will act as a configuration provider
that supports format configurations for electronic payments for a particular country. Sample company
Proseware, Inc. (http://www.proseware.com) will act as a consumer of the format configuration that Litware,
Inc. provided. Proseware, Inc. uses formats in certain regions of that country.
2. Click Reporting configurations.
3. Click Show filters.
4. Apply the following filters: Enter a filter value of "BACS (UK fictitious)" on the "Name" field using the "begins
with" filter operator.
The selected format configuration BACS (UK fictitious) is owned by provider Litware, Inc.
5. Click Show filters.
6. In the list, find and select the desired record.
The version of the format with the status of Completed will be used by Proseware, Inc. for customization.

Create a new configuration for your custom format of electronic


document
Proseware, Inc. received version 1.1 of BACS (UK fictitious) configuration that contains the initial format to generate
electronic payment documents from Litware, Inc. in accordance to their service subscription. Proseware, Inc. wants
to start using this as a standard for their country but some customization is required to support specific regional
requirements. Proseware, Inc. also wants to keep the ability to upgrade a custom format as soon as a new version
of it (with changes to support new country-specific requirements) comes from Litware, Inc. and they want to
perform this upgrade with the lowest cost.
To do this, Proseware, Inc. needs to create a configuration using the Litware, Inc. configuration BACS (UK fictitious)
as a base.
1. Close the page.
2. Select Proseware, Inc. to make it an active provider.
3. Click Set active.
4. Click Reporting configurations.
5. In the tree, expand 'Payments (simplified model)'.
6. In the tree, select 'Payments (simplified model)\BACS (UK fictitious)'.
Select the BACS (UK fictitious) configuration from Litware, Inc. Proseware, Inc. will use version 1.1 as a base
for the custom version.
7. Click Create configuration to open the drop dialog.
This lets you create a new configuration for a custom payment format.
8. In the New field, enter 'Derive from Name: BACS (UK fictitious), Litware, Inc.'.
Select the Derive option to confirm the usage of BACS (UK fictitious) as the base for creating the custom
version.
9. In the Name field, type 'BACS (UK fictitious custom)'.
10. In the Description field, type 'BACS vendor payment (UK fictitious custom)'.
The active configuration provider (Proseware, Inc.) is automatically entered here. This provider will be able to
maintain this configuration. Other providers can use this configuration, but will not be able to maintain it.
11. Click Create configuration.

Customize your format for the electronic document


1. Click Designer.
2. Click Expand/collapse.
3. Click Expand/collapse.
4. In the tree, select 'Xml\Message\Payments\Item\Vendor\Bank'.
5. Click Add to open the drop dialog.
6. In the tree, select 'XML\Element'.
7. In the Name field, type 'IBAN'.
8. Click OK.
9. In the tree, select 'Xml\Message\Payments\Item\Vendor\Bank\IBAN'.
10. Click Add to open the drop dialog.
11. In the tree, select 'Text\String'.
12. Click OK.
13. In the tree, select 'Xml\Message\Payments\Item\Vendor\Name\String'.
14. In the Maximum length field, enter '60'.
15. Click the Mapping tab.
16. In the tree, expand 'model'.
17. In the tree, expand 'model\Payments'.
18. In the tree, expand 'model\Payments\Creditor'.
19. In the tree, expand 'model\Payments\Creditor\Account'.
20. In the tree, select 'model\Payments\Creditor\Account\IBAN'.
21. In the tree, select 'Xml\Message\Payments\Item = model.Payments\Vendor\Bank\IBAN\String'.
22. Click Bind.
23. Click Save.

Validate the customized format


1. Click Validate.
Validate the customized format layout and data mapping changes to make sure that all bindings are okay.
2. Close the page.

Change the status of the current version of the custom format


configuration
Change the status of the designed format configuration from Draft to Completed to make it available for payment
document generation.
1. Click Change status.
Note that the current version of the selected configuration is in Draft status.
2. Click Complete.
3. In the Description field, type a value.
4. Click OK.
5. In the list, find and select the desired record.
Note that the created configuration is saved as completed version 1.1.1. This means it is version 1 of the
custom BACS (UK fictitious custom) format, which is based on version 1 of the BACS (UK fictitious) format,
which is based on version 1 of the Payments (simplified model) data model.

Test the customized format to generate payment files


Complete the steps in the "Use created format to generate electronic documents for payments" procedure in a
parallel Finance and Operations session. Select the BACS (UK fictitious custom) format in electronic payment
method parameters. Make sure that the created payment file contains the recently introduced XML node
presenting IBAN code in accordance to regional requirements.

Update the existing country-specific configuration


Litware, Inc. needs to update the BACS (UK fictitious) configuration and adopt new country requirements for
managing the format of the electronic document. Later, this will be enclosed in a new version of this configuration
that will be offered for service subscribers, including Proseware, Inc.
In real service provision related processes, each new version of BACS (UK fictitious) can be imported by Proseware,
Inc. from Litware, Inc. configurations' LCS repository. In this procedure we will simulate this by updating BACS (UK
fictitious) on behalf of a service provider.
1. Close the page.
2. Select Litware, inc. provider.
3. Click Set active.
4. Click Reporting configurations.
5. In the tree, expand 'Payments (simplified model)'.
6. In the tree, select 'Payments (simplified model)\BACS (UK fictitious)'.
The draft version owned by Litware, Inc. provider BACS (UK fictitious) is selected to bring in changes to
support new country-specific requirements.

Localize the base format of the electronic document


Assume that there are new country-specific requirements to be supported by Litware, Inc.:
A value for the creditor's bank SWIFT code in each payment transaction.
A limit of 100 characters for the length of text for the vendor's name in a generating file.
New country-specific requirements
Select the draft version of the desired configuration to introduce required changes.
1. Click Designer.
2. Click Expand/collapse.
3. Click Expand/collapse.
4. In the tree, select 'Xml\Message\Payments\Item\Vendor\Bank'.
5. Click Add to open the drop dialog.
6. In the tree, select 'XML\Element'.
7. In the Name field, type 'SWIFT'.
8. Click OK.
9. In the tree, select 'Xml\Message\Payments\Item\Vendor\Bank\SWIFT'.
10. Click Add to open the drop dialog.
11. In the tree, select 'Text\String'.
12. Click OK.
13. In the tree, select 'Xml\Message\Payments\Item\Vendor\Name\String'.
14. In the Maximum length field, enter '100'.
15. Click the Mapping tab.
16. In the tree, expand 'model'.
17. In the tree, expand 'model\Payments'.
18. In the tree, expand 'model\Payments\Creditor'.
19. In the tree, expand 'model\Payments\Creditor\Agent'.
20. In the tree, select 'model\Payments\Creditor\Agent\SWIFT'.
21. In the tree, select 'Xml\Message\Payments\Item = model.Payments\Vendor\Bank\SWIFT\String'.
22. Click Bind.
23. Click Save.

Validate the localized format


1. Click Validate.
2. Close the page.

Change the status of the current version of the base format


configuration
Change the status of the updated base format configuration from Draft to Completed to make it available for
generation of payment documents and updates of format configurations derived from it.
1. Click Change status.
Note that the current version of the selected configuration is in Draft status.
2. Click Complete.
3. In the Description field, type a value.
4. Click OK.
5. In the list, find and select the desired record.

Change the base version for the custom format configuration


Proseware, Inc. is informed that a new version 1.2 of BACS (UK fictitious) configuration is available to generate
electronic payment documents in accordance to recently announced country-specific requirements. Proseware, Inc.
wants to start using it as a standard for the country.
To do this, Proseware, Inc. needs to change the base configuration version for the custom configuration BACS (UK
fictitious custom). Instead of version 1.1 of BACS (UK fictitious) use new version 1.2.
1. Go to Organization administration > Workspaces > Electronic reporting.
2. Select the Proseware, Inc. provider to mark it as active.
3. Click Set active.
4. Click Reporting configurations.
5. In the tree, expand 'Payments (simplified model)'.
6. In the tree, expand 'Payments (simplified model)\BACS (UK fictitious)'.
7. In the tree, select 'Payments (simplified model)\BACS (UK fictitious)\BACS (UK fictitious custom)'.
Select the BACS (UK fictitious custom) configuration, which is owned by Proseware, Inc.
Use the draft version of the selected configuration to introduce required changes.
8. Click Rebase.
Select the new version 1.2 of the base configuration to be applied as a new base for updating the
configuration.
9. Click OK.
Note that some conflicts have been discovered between merging the custom version and a new base
version representing some format changes that can't be merged automatically.

Resolve rebase conflicts


1. Click Designer.
Note that changes to the vendor's name text length limit couldn't be resolved automatically. Therefore, this is
presented in a conflicts list. For each conflict of type Update, the following options are available: - Apply a
prior base value (button on top of the grid) to bring in the previous base version value (0 in our case). -
Apply a base value (button on top of the grid) to bring in the new base version value (100 in our case). -
Keep your own (custom) value (60 in our case). Click Apply base value to apply a country-specific limit of
100 characters for vendor's name text length.
Note that Proseware, Inc. and Litware, Inc. have custom and local versions of this format using IBAN and
SWIFT codes with related components that are automatically merged in the managing format.
2. Click Apply base value.
Click Apply base value to apply the country-specific limit of 100 characters for vendor names.
3. Click Save.
Saving the format will remove resolved conflicts from the conflicts list.
4. Close the page.

Change the status of the new version of the custom format


configuration
1. Click Change status.
Change the status of the updated, custom format configuration from Draft to Completed. This will make the
format configuration available for generating payment documents. Note that the current version of the
selected configuration is in Draft status.
2. Click Complete.
3. In the Description field, type a value.
4. Click OK.
Note that the created configuration is saved as completed version 1.2.2: version 2 of base BACS (UK
fictitious custom) format, which is based on version 2 of base BACS (UK fictitious) format, which is based on
version 1 of Payments (simplified model) data model.

Test the customized format for payment files generation


Complete the steps in the "Use created format to generate electronic documents for payments" procedure in
parallel Finance and Operations session. Select the created 'BACS (UK fictitious custom)' format in electronic
payment method parameters. Make sure that the created payment file contains recently introduced by Proseware,
Inc. XML node presenting IBAN account code in accordance to regional requirements. The file also should contain
the recently introduced by Litware, Inc. XML node presenting SWIFT bank code in accordance to country
requirements.
Formula designer in Electronic reporting (ER)
2/1/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific
business functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to use the formula designer in Electronic reporting (ER). When you design a format for a
specific electronic document in ER, you can use formulas to transform data so that it meets the requirements for
the document's fulfillment and formatting. These formulas resemble formulas in Microsoft Excel. Various types
of functions are supported in the formulas: text, date and time, mathematical, logical, information, and data type
conversion functions, and also other, business domain–specific functions.

Formula designer overview


ER supports the formula designer. Therefore, at design time, you can configure expressions that can be used for
the following tasks at runtime:
Transform data that is received from an application database and that should be entered in an ER data model
that is designed to be a data source for ER formats. (For example, these transformations might include
filtering, grouping, and data type conversion.)
Format data that must be sent to a generating electronic document in accordance with the layout and
conditions of a specific ER format. (For example, the formatting might be done in accordance with the
requested language or culture, or the encoding).
Control the process of creating electronic documents. (For example, the expressions can enable or disable the
output of specific elements of the format, depending on processing data. They can also interrupt the
document creation process or throw messages to users.)
You can open the Formula designer page when you perform any of the following actions:
Bind data source items to data model components.
Bind data source items to format components.
Complete maintenance of calculated fields that are part of data sources.
Define the visibility conditions for user input parameters.
Design a format's transformations.
Define the enabling conditions for the format's components.
Define the file names for the format's FILE components.
Define the conditions for process control validations.
Define the message text for process control validations.

Data binding
The ER formula designer can be used to define an expression that transforms data that is received from data
sources, so that the data can be entered in the data consumer in the following ways at runtime:
From application data sources and runtime parameters to an ER data model
From an ER data model to an ER format
From application data sources and runtime parameters to an ER format
The following illustration shows the design of an expression of this type. In this example, the expression rounds
the value of the Intrastat.AmountMST field in the Intrastat table to two decimal places and then returns the
rounded value.

The following illustration shows how an expression of this type can be used. In this example, the result of the
designed expression is entered in the Transaction.InvoicedAmount component of the Tax repor ting model
data model.

At runtime, the designed formula, ROUND (Intrastat.AmountMST, 2) , rounds the value of the AmountMST field
for each record in the Intrastat table to two decimal places. It then enters the rounded value in the
Transaction.InvoicedAmount component of the Tax repor ting data model.

Data formatting
The ER formula designer can be used to define an expression that formats data that is received from data
sources, so that the data can be sent as part of the generating electronic document. You might have formatting
that must be applied as a typical rule that should be reused for a format. In this case, you can introduce that
formatting one time in the format configuration, as a named transformation that has a formatting expression.
This named transformation can then be linked to many format components where the output must be
formatted according to the formatting expression that you created.
The following illustration shows the design of a transformation of this type. In this example, the TrimmedString
transformation truncates incoming data of the String data type by removing leading and trailing spaces. It then
returns the truncated string value.

The following illustration shows how a transformation of this type can be used. In this example, several format
components send text as output to the generating electronic document at runtime. All these format components
refer to the TrimmedString transformation by name.

When format components, such as the par tyName component in the preceding illustration, refer to the
TrimmedString transformation, the transformation sends text as output to the generating electronic document.
This text doesn't include leading and trailing spaces.
If you have formatting that must be applied individually, you can introduce that formatting as an individual
expression of a binding of a specific format component. The following illustration shows an expression of this
type. In this example, the par tyType format component is bound to the data source via an expression that
converts incoming data from the Model.Company.RegistrationType field in the data source to uppercase
text. The expression then sends that text as output to the electronic document.

Process flow control


The ER formula designer can be used to define expressions that control the process flow of generating electronic
documents. You can perform the following tasks:
Define conditions that determine when a document creation process must be stopped.
Specify expressions that either create messages for the user about stopped processes or throw execution log
messages about the continuing process of report generation.
Specify the file names of generating electronic documents, and control the conditions of their creation.
Each rule of the process flow control is designed as an individual validation. The following illustration shows a
validation of this type. Here is an explanation of the configuration in this example:
The validation is evaluated when the INSTAT node is created during generation of the XML file.
If the list of transactions is empty, the validation stops the execution process and returns FALSE .
The validation returns an error message that includes the text of label SYS70894 in the user's preferred
language.
The ER formula designer can also be used to generate a file name for a generating electronic document and to
control the file creation process. The following illustration shows the design of a process flow control of this
type. Here is an explanation of the configuration in this example:
The list of records from the model.Intrastat data source is divided into batches. Each batch contains up to
1,000 records.
The output creates a zip file that contains one file in XML format for every batch that was created.
An expression returns a file name for generating electronic documents by concatenating the file name and
the file name extension. For the second batch and all subsequent batches, the file name contains the batch ID
as a suffix.
An expression enables (by returning TRUE ) the file creation process for batches that contain at least one
record.

Document content control


The ER formula designer can be used to configure expressions that control what data will be put into generated
electronic documents at runtime. The expressions can enable or disable the output of specific elements of the
format, depending on processing data and configured logic. These expressions can be entered for a single
format element in the Enabled field on the Mapping tab of the Operations designer page. You can enter the
expressions as a logic condition that returns a Boolean value:
If the condition returns True , the current format element is run.
If the condition returns False , the current format element is skipped.
The following illustration shows expressions of this type. (Version 11.12.11 of the ISO20022 Credit transfer
(NO) format configuration that is provided by Microsoft is used as an example.) The XMLHeader format
component is configured to describe the structure of the credit transfer message according to the ISO 20022
XML message standards. The
XMLHeader/Document/CstmrCdtTrfInitn/PmtInf/CdtTrfTxInf/RmtInf/Ustrd format component is
configured to add the Ustrd XML element to the generated message and to put the remittance information in
an unstructured format as text of the following XML elements:
The PaymentNotes component is used to generate the text of payment notes.
The DelimitedSequence component generates comma-separated invoice numbers that are used to settle
the current credit transfer.
NOTE
The PaymentNotes and DelimitedSequence components are labeled by using a question mark. A question mark
indicates that the use of a component is conditional. In this case, use of the components is based on the following criteria:
The @.PaymentsNotes <> "" expression that is defined for the PaymentNotes component enables (by
returning TRUE ) the Ustrd XML element to be filled with the text of payment notes, if that text isn't blank for the
current credit transfer.

The @.PaymentsNotes = "" expression that is defined for the DelimitedSequence component enables (by
returning TRUE ) the Ustrd XML element to be filled with a comma-separated list of the invoice numbers that are
used to settle the current credit transfer, if the text of payment notes for that credit transfer is blank.

Based on this setup, the message that is generated for each debtor payment, the Ustrd XML element, will contain either
the text of payment notes or, when that text is blank, a comma-separated list of the invoice numbers that are used to
settle the payment.

Validation of configured formulas


On the Formula designer page, select Test to validate how the configured formula works.
When the values of formula arguments are required, you can open the Test expression dialog box from the
Formula designer page. In most cases, these arguments must be manually defined, because the configured
bindings aren't run at design time. The Test result tab on the Formula designer page shows the result from
execution of the configured formula.
The following example shows how you can test the formula that is configured for the foreign trade domain to
make sure that the Intrastat commodity code contains only digits.
When you test this formula, you can use the Test expression dialog box to specify the value of the Intrastat
commodity code for testing.

After you specify the Intrastat commodity code and select OK , the Test result tab on the Formula designer
page shows the result of execution of the configured formula. You can then evaluate whether the result is
acceptable. If the result isn't acceptable, you can update the formula and test it again.
Some formulas can't be tested at design time. For example, a formula might return a result of a data type that
can't be shown on the Test result tab. In this case, you receive an error message that states that the formula
can't be tested.

Additional resources
Electronic Reporting overview
Electronic reporting formula language
Electronic reporting advanced formula editor
4/10/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

In addition to the Electronic reporting formula editor, you can use the advanced Electronic reporting formula editor
to improve the experience of configuring Electronic reporting (ER) expressions. The advanced editor is browser-
based and powered by the Monaco editor. The most commonly used advanced editor features are described in this
topic:
Code autoformatting
IntelliSense
Code completion
Code navigation
Code structuring
Find and replace
Data pasting
Syntax colorization

Complete the following steps to start using the advanced formula editor in your instance of Microsoft Dynamics
Activate the advanced f ormula edit or

365 Finance.
1. Go to Organization administration > Electronic repor ting > Configurations .
2. On the Configurations page, on the Action Pane, on the Configurations tab, in the Advanced
settings group, select User parameters .
3. In the User parameters dialog box, in the Execution tracing section, set the Enable advanced formula
editor parameter to Yes .

NOTE
Be aware that this parameter is user specific and company specific.
When you write a complex expression that consists of multiple rows of code, the indentation of a new entered line
Code autof ormatting

will be automatic based on the indentation of the previous row. You can select lines and change their indentation by
typing Tab or Shift+Tab .

Autoformatting allows you to keep the entire expression well formatted to make further maintenance easier and to
simplify understanding of the configured logic.

The editor provides word completion to help you write expression faster and avoid typos. When you start adding
I ntelliSense

new text, the editor automatically offers a list of functions supported in ER functions that contain the characters you
have entered. You can also trigger IntelliSense in any place of a configured expression by typing Ctrl+Space .

The editor automatically provides code completion by:


Code completion

Inserting a closing bracket when an opening bracket is entered, keeping the cursor inside the brackets.
Inserting the second quotation symbol when the first one is entered, keeping the cursor inside the quotations.
Inserting the second double quotation symbol when the first one is entered, keeping the cursor inside the
quotations.
When you point to the typed bracket, the second bracket of this pair is automatically highlighted to show the
construct that they support.

You can locate required symbols or lines in your expression by typing the Go to command using the command
Code navigation

palette or the context menu.


For example, to jump to line 8 , do the following:
Press Ctrl+G , enter the value 8 , and then press Enter .
-or-
Press F1 , type G , select Go to line , enter the value 8 , and the press Enter .

The code for some functions, such as IF or CASE, is automatically structured. You can expand and collapse any or all
Code structuring

of the folding regions of this code to reduce the editable part of an expression in order to focus on only thepiece of
code that requires your attention. The toggle fold/unfold commands can be used for that.
For example, to fold all regions, do the following:
Press Ctrl+K
-or-
Press F1 , press FO , select Fold all , and then press Enter
To unfold all regions, do the following:
Press Ctrl+J
-or-
Press F1 , type UN , select Unfold all , and then press Enter

To find occurrences of certain text, select the text in your expression, and do the following:
Find and replace

Press Ctrl+F and then press F3 to find the next occurrence of the selected text, or press Shift+F3 to find
the previous occurrence.
-or-
Press F1 , type F , and then select the required option to find the selected text.
To replace occurrences of a certain text, select the text in your expression, and do the following:
Press Ctrl+H . Enter the alternative text and select the replacement option to replace either the selected text
or all occurrences of this text in the current expression.
-or-
Press F1 , type R , and then select the required option to replace the selected text. Enter the alternative text
and select the replacement option to replace either the selected text or all occurrences of this text in the
current expression.
To change all occurrences of a certain text, select the text in your expression, and do the following:
Press Ctrl+F2 and then enter the alternative text.
-or-
Press F1 , type C , and then select the required option to change the selected text. Enter the alternative text.
You can select Add data source , which pastes to the current expression a data source that is currently selected on
Data sources and f unctions pasting

the Data source left panel. Simlilarly, you can select Add function , which pastes to the current expression a
function that is currently selected on the Functions right panel. If you use the ER formula editor, a selected function
or a selected data source will always be pasted to the end of the configured expression. When you use the
advanced ER formula editor, a selected function or a selected data source can be pasted to any part of the
configured expression. You will need to use the cursor to specify where you want to paste the data.

Currently, different colors are used to highlight the following parts of expressions:
Syntax colorization

The text in double brackets that can represent a label ID of a text constant.
Limitations
The editor is currently supported in the following web browsers:
Chrome
Edge
Firefox
Opera
Safari

Additional resources
Electronic reporting (ER) overview
Formula designer in Electronic reporting
Monaco editor
Electronic reporting formula language
2/12/2020 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Electronic reporting (ER) provides a powerful data transformation experience. The language that is used to
express the required data manipulations in the ER formula designer resembles the formula language in Microsoft
Excel.

Basic syntax
ER expressions can contain any or all of the following elements:
Constants
Operators
References
Paths
Functions

When you design expressions, you can use text and numeric constants (that is, values that aren't calculated). For
Constants

example, the expression VALUE ("100") + 20 uses the numeric constant 20 and the string constant "100" , and it
returns the numeric value 120 .
The ER formula designer supports escape sequences. Therefore, you can specify an expression string that should
be handled differently. For example, the expression "Leo Tolstoy ""War and Peace"" Volume 1" returns the text
string Leo Tolstoy "War and Peace" Volume 1 .

The following table shows the arithmetic operators that you can use to do basic mathematical operations, such as
O perators

addition, subtraction, multiplication, and division.

O P ERATO R M EA N IN G EXA M P L E

+ Addition 1+2

- Subtraction, negation 5-2 , -1

* Multiplication 7\*8

/ Division 9/3

The following table shows the comparison operators that are supported. You can use these operators to compare
two values.
O P ERATO R M EA N IN G EXA M P L E

= Equal X=Y

> Greater than X>Y

< Less than X<Y

>= Greater than or equal to X>=Y

<= Less than or equal to X<=Y

<> Not equal to X<>Y

Additionally, you can use an ampersand (&) as a text concatenation operator. In this way, you can join, or
concatenate, one or more text strings into a single piece of text.

O P ERATO R M EA N IN G EXA M P L E

& Concatenate "Nothing to print:" & " " & "no


records found"

Operator precedence
The order in which the parts of a compound expression are evaluated is important. For example, the result of the
expression 1 + 4 / 2 varies, depending on whether the addition or division operation is done first. You can use
parentheses to explicitly define how an expression is evaluated. For example, to indicate that the addition
operation should be done first, you can change the preceding expression to (1 + 4) / 2 . If you don't explicitly
indicate the order of operations in an expression, the order is based on the default precedence that is assigned to
the supported operators. The following table shows the precedence that is assigned to each operator. Operators
that have a higher precedence (for example, 7) are evaluated before operators that have a lower precedence (for
example, 1).

P REC EDEN C E O P ERATO RS SY N TA X

7 Grouping (…)

6 Member access ….…

5 Function call …(…)

4 Multiplicative …*…
…/…

3 Additive …+…
…-…

2 Comparison …<…
… <= …
… => …
…>…
…=…
… <> …
P REC EDEN C E O P ERATO RS SY N TA X

1 Separation …,…

If an expression includes multiple consecutive operators that have the same precedence, those operations are
evaluated from left to right. For example, the expression 1 + 6 / 2 \* 3 > 5 returns true . We recommend that
you use parentheses to explicitly indicate the desired order of operations in expressions, so that the expressions
are easier to read and maintain.

All data sources of the current ER component that are available during the design of an expression can be used as
Ref erences

named references. The current ER component can be either a model mapping or a format. For example, the
current ER model mapping contains the Repor tingDate data source, which returns a value of the DateTime data
type. To correctly format that value in the generating document, you can reference the data source in the
expression as DATETIMEFORMAT (ReportingDate, "dd-MM-yyyy") .
All characters in the name of a referencing data source that don't represent a letter of the alphabet must be
preceded by a single quotation mark ('). If the name of a referencing data source contains at least one symbol that
doesn't represent a letter of the alphabet, the name must be enclosed in single quotation marks. For example,
these non-alphabetic symbols can be punctuation marks or other written symbols. Here are some examples:
The Today's date & time data source must be referred to in an ER expression as 'Today''s date & time' .
The name() method of the Customers data source must be referred to in an ER expression as
Customers.'name()' .

If the methods of application data sources have parameters, the following syntax is used to call those methods:
If the isLanguageRTL method of the System data source has an EN-US parameter of the String data type,
this method must be referred to in an ER expression as System.isLanguageRTL("EN-US") .
Quotation marks aren't required when a method name contains only alphanumeric symbols. However, they
are required for a method of a table if the name includes brackets.
When the System data source is added to an ER mapping that refers to the Global application class, the
expression System.isLanguageRTL("EN-US ") returns the Boolean value FALSE . The modified expression
System.isLanguageRTL("AR") returns the Boolean value TRUE .

You can limit the way that values are passed to the parameters of this type of method:
Only constants can be passed to methods of this type. The values of the constants are defined at design time.
Only primitive (basic) data types are supported for parameters of this type. The primitive data types include
Integer, Real, Boolean, and String.

When an expression references a structured data source, you can use the path definition to select a specific
Paths

primitive element of that data source. A dot character (.) is used to separate individual elements of a structured
data source. For example, the current ER model mapping contains the InvoiceTransactions data source, and this
data source returns a list of records. The InvoiceTransactions record structure contains the AmountDebit and
AmountCredit fields, and both these fields return numeric values. Therefore, you can design the following
expression to calculate the invoiced amount: InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit .
The InvoiceTransactions.AmountDebit construction in this expression is the path that is used to access the
AmountDebit field of the InvoiceTransactions data source of the Record list type.
Relative path
If the path of a structured data source starts with an "at" sign (@), it's a relative path. The "at" sign is shown
instead of the remaining part of the absolute path of the hierarchical tree structure that is used. The following
illustration shows an example. Here, the absolute path Ledger.'accountingCurrency()' indicates that the
accounting currency value from the Ledger data source is entered in the AccountingCurrency field of the data
model.

The example in the following illustration shows how a relative path is used. The relative path @.AccountNum
indicates that the AccountNum field of the Intrastat data source (which appears one level above the
AccountNum field in the data model's hierarchical tree) is used to enter the customer or vendor account number
in the data model's AccountNum field.

The remaining part of the absolute path is also shown in the ER formula editor.
ER built-in functions can be used in ER expressions. All data sources of the expression context (that is, the current
Functions

ER model mapping or ER format) can be used as parameters of calling functions, in accordance with the list of
arguments for calling functions. Constants can also be used as parameters of calling functions. For example, the
current ER model mapping contains the InvoiceTransactions data source, and this data source returns a list of
records. The InvoiceTransactions record structure contains the AmountDebit and AmountCredit fields, and
both these fields return numeric values. Therefore, to calculate the invoiced amount, you can design the following
expression that uses the built-in ER rounding function:
ROUND (InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit, 2) .

When you design ER model mappings and ER reports, you can use ER functions from the following categories:
Date and time functions
List functions
Logical functions
Mathematical functions
Record functions
Text functions
Data collection functions
Other (business domain–specific) functions
Type conversion functions

Functions list extension


ER lets you extend the list of functions that are used in ER expressions. Some engineering effort is required. For
detailed information, see Extend the list of Electronic reporting (ER) functions.

Compound expressions
You can create compound expressions that use functions from different categories, provided that the data types
match. When you use functions together, match the data type of the output from one function to the input data
type that is required by another function. For example, to avoid a possible "list-is-empty" error in a binding of a
field to an ER format element, combine functions from the List category with a function from the Logical category,
as the following example shows. Here, the formula uses the IF function to test whether the IntrastatTotals list is
empty before it returns the value of the required aggregation from that list. If the IntrastatTotals list is empty,
the formula returns 0 (zero).
IF(ISEMPTY(IntrastatTotals), 0.0, IntrastatTotals.aggregated.'$AmountMSTRounded')

Multiple solutions
Often, you can get the same data transformation result in multiple ways, by using functions from different
categories or different functions from the same category. For example, the previous expression can also be
configured by using the COUNT function from the List category.

IF(COUNT (IntrastatTotals)=0, 0.0, IntrastatTotals.aggregated.'$AmountMSTRounded')

Additional resources
Electronic Reporting overview
Formula designer in Electronic reporting
Extend the list of Electronic reporting functions
List of ER functions in the Date and time category
12/19/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific
business functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Electronic reporting (ER) date and time functions can be used to extract information from date and time values,
and to perform operations on them. This topic provides a summary of these functions.

List of supported functions


F UN C T IO N DESC RIP T IO N

AddDays This function returns a DateTime value that is the specified


number of days before or after a specified start date.

DateFormat This function returns a String value that presents a given


date value as text in the specified format and in an optionally
specified culture.

DateTimeFormat This function returns a String value that presents a given


date/time value as text in the specified format and in an
optionally specified culture.

DateTimeValue This function returns a DateTime value that is converted


from a given text value in the specified format and in an
optionally specified culture to a date/time value.

DateToDateTime This function returns a DateTime value that is converted


from a given date value to a date/time value in Coordinated
Universal Time (Greenwich Mean Time [GMT]).

DateValue This function returns a Date value that is converted from a


given text value in the specified format and in an optionally
specified culture to a date value.

DayOfYear This function returns an Integer value that represents the


number of days between January 1 and the specified date.

Days This function returns an Integer value that represents the


number of days between one specified date and a second
specified date.

Now This function returns a DateTime value that represents the


current application server date and time.

NullDate This function returns a Date value that represents the null
date (January 1, 1900).
F UN C T IO N DESC RIP T IO N

NullDateTime This function returns a DateTime value that represents the


null date/time value (January 1, 1900) in Coordinated
Universal Time.

SessionNow This function returns a DateTime value that represents the


current application session date and time.

SessionToday This function returns a Date value that represents the current
application session date.

Today This function returns a Date value that represents the current
application server date.

Additional resources
Electronic Reporting overview
Formula designer in Electronic reporting
Electronic reporting formula language
ADDDAYS ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ADDDAYS function calculates a DateTime value that is the specified number of days before or after a specified
start date.

Syntax
ADDDAYS (datetime, days)

Arguments
datetime : DateTime
A date/time value that represents the start date.
days : Integer
The number of days before or after datetime .

Return values
DateTime
The resulting date/time value.

Usage notes
A positive value for days yields a future date. A negative value yields a past date.

Example 1
ADDDAYS (NOW(), 7) returns the date and time seven days in the future.

Example 2
ADDDAYS (NOW(), -3) returns the date and time three days in the past.

Additional resources
Date and time functions
DATEFORMAT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The DATEFORMAT function returns a String value that presents a given date value as text in the specified format and
in an optionally specified culture. For information about the supported formats, see standard and custom.

Syntax 1
DATEFORMAT (date, format)

Syntax 2
DATEFORMAT (date, format, culture)

Arguments
date : Date
A date value that represents the date to format.
format : String
The format of the output string.
culture : String
The culture to use for formatting.

Return values
String
The resulting string value.

Usage notes
When the culture isn't defined as an argument of the called function, the value of culture is defined by the calling
context. For example, if the DATEFORMAT function is called by using syntax 1 in an Electronic reporting (ER) format
for a FILE element that is configured to use the German culture, the conversion will be done by using the German
culture. The default culture value is EN-US .

Example 1
DATEFORMAT (TODAY (), "dd-MM-yyyy") returns the current application server date, December 24, 2015, as the string
"24-12-2015" , based on the specified custom format.

Example 2
DATEFORMAT (SESSIONTODAY (), "d", "DE") returns the current application session date, December 24, 2015, as the
string "24-12-2015" , based on the selected German culture and the specified format.

Additional resources
Date and time functions
DATETIM EFORMAT ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The DATETIMEFORMAT function returns a String value that presents a given date/time value as text in the specified
format and in an optionally specified culture. For information about the supported formats, see standard and
custom.

Syntax 1
DATETIMEFORMAT (datetime, format)

Syntax 2
DATETIMEFORMAT (datetime, format, culture)

Arguments
datetime : DateTime
A date/time value that represents the date and time to format.
format : String
The format of the output string.
culture : String
The culture to use for formatting.

Return values
String
The resulting string value.

Usage notes
When the culture isn't defined as an argument of the called function, the value of culture is defined by the calling
context. For example, if the DATETIMEFORMAT function is called by using syntax 1 in an Electronic reporting (ER)
format for a FILE element that is configured to use the German culture, the conversion will be done by using the
German culture. The default culture value is EN-US .
When the DATETIMEFORMAT function converts a given date/time value, it considers the time zone setting of the
application user who is running the ER format that the function is called in the context of.
Example 1
DATETIMEFORMAT (NOW(), "dd-MM-yyyy") returns the current application server date/time value, December 24, 2015,
as "24-12-2015" , based on the specified custom format.

Example 2
DATETIMEFORMAT (SESSIONNOW(), "d", "DE") returns the current application session date/time value, December 24,
2015, as "24.12.2015" , based on the selected German culture and the specified format.

Example 3
returns the string value 2019-
DATETIMEFORMAT (DATETIMEVALUE( "2019-11-12T09:00:00.0000000-07:00", "O"), "O")
11-12T08:00:00.0000000-08:00 when it's called during a process that was initiated by an application user who
has the time zone value (GMT-08:00) Pacific Time (US & Canada) in the Language and countr y/region
preferences section.

Additional resources
Date and time functions
DATETIM EVALUE ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The DATETIMEVALUE function returns a DateTime value that is converted from a given text value in the specified
format and in an optionally specified culture to a date/time value. For information about the supported formats, see
standard and custom.

Syntax 1
DATETIMEVALUE (text, format)

Syntax 2
DATETIMEVALUE (text, format, culture)

Arguments
text : String
Text that represents the value to format.
format : String
The format of the given text.
culture : String
The culture that is used for formatting of the given text.

Return values
DateTime
The resulting date/time value.

Usage notes
When the culture isn't defined as an argument of the called function, the value of culture is defined by the calling
context. For example, if the DATETIMEVALUE function is called by using syntax 1 in an Electronic reporting (ER) format
for a FILE element that is configured to use the German culture, the conversion will be done by using the German
culture. The default culture value is EN-US .

Example 1
DATETIMEVALUE ("21-Dec-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss") returns 2:55:00 AM on December 21, 2016 ,
based on the specified custom format and the default application's EN-US culture.

Example 2
DATETIMEVALUE ("21-Gen-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss", "IT") returns 2:55:00 AM on December 21,
2016 , based on the specified custom format and culture.
However, DATETIMEVALUE ("21-Gen-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss", "EN-US") throws an exception to inform
the user that the specified string isn't recognized as a valid date/time value for the specified culture.

Additional resources
Date and time functions
DATETODATETIM E ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The DATETODATETIME function returns a DateTime value that is converted from a given date value to a date/time
value in Coordinated Universal Time (Greenwich Mean Time [GMT]).

Syntax
DATETODATETIME (date)

Arguments
date : Date
A date value that represents the date to convert.

Return values
DateTime
The resulting date/time value.

Example 1
returns the date of the current Microsoft Dynamics 365 Finance
DATETODATETIME (CompInfo. 'getCurrentDate()')
session, December 24, 2015, as 12/24/2015 12:00:00 AM . In this example, CompInfo is an Electronic reporting
(ER) data source of the Finance and Operations/Table type, and it refers to the CompanyInfo table.

Example 2
DATETODATETIME (DATEVALUE ("2019-11-12T16:00:00.0000000-07:00", "O")) returns the date/time value 11/12/2019
12:00:00 AM .

Additional resources
Date and time functions
DATEVALUE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The DATEVALUE function returns a Date value that is converted from a given text value in the specified format and in
an optionally specified culture to a date value. For information about the supported formats, see standard and
custom.

Syntax 1
DATEVALUE (text, format)

Syntax 2
DATEVALUE (text, format, culture)

Arguments
text : String
Text that represents the value to format.
format : String
The format of the given text.
culture : String
The culture that is used for formatting of the given text.

Return values
Date
The resulting date value.

Usage notes
When the culture isn't defined as an argument of the called function, the value of culture is defined by the calling
context. For example, if the DATEVALUE function is called by using syntax 1 in an Electronic reporting (ER) format for
a FILE element that is configured to use the German culture, the conversion will be done by using the German
culture. The default culture value is EN-US .

Example 1
DATEVALUE ("21-Dec-2016", "dd-MMM-yyyy") returns the date value December 21, 2016 , based on the specified
custom format and the default application's EN-US culture.

Example 2
DATEVALUE ("21-Gen-2016", "dd-MMM-yyyy", "IT") returns the date value Januar y 21, 2016 , based on the specified
custom format and culture.
However, DATEVALUE ("21-Gen-2016", "dd-MMM-yyyy", "EN-US") throws an exception to inform the user that the
specified string isn't recognized as a valid date for the specified culture.

Additional resources
Date and time functions
DAYOFYEAR ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The DAYOFYEAR function returns an Integer value that represents the number of days between January 1 and the
specified date.

Syntax
DAYOFYEAR (date) as Integer

Arguments
date : Date
A date value that represents the date to use for the calculation of the number of days.

Return values
Integer
The resulting numeric value.

Example 1
DAYOFYEAR (DATEVALUE ("01-03-2016", "dd-MM-yyyy")) returns 61 .

Example 2
DAYOFYEAR (DATEVALUE ("01-01-2016", "dd-MM-yyyy")) returns 1 .

Additional resources
Date and time functions
DAYS ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The DAYS function returns an Integer value that represents the number of days between one specified date and a
second specified date.

Syntax
DAYS (date 1, date 2) as Integer

Arguments
date 1 : Date
A date value that represents the start date for the calculation of the number of days.
date 2 : Date
A date value that represents the end date for the calculation of the number of days.

Return values
Integer
The resulting numeric value.

Usage notes
The DAYS function returns a positive value when the first date is later than the second date, it returns 0 (zero) when
the first date equals the second date, and it returns a negative value when the first date is earlier than the second
date.

Example
DAYS (TODAY (), DATEVALUE( DATETIMEFORMAT( ADDDAYS ( NOW(), 1), "yyyyMMdd"), "yyyyMMdd")) returns -1 .

Additional resources
Date and time functions
NOW ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The NOW function returns a DateTime value that represents the current application server date and time.

Syntax
NOW ()

Return values
DateTime
The resulting date/time value.

Example
DATETIMEFORMAT (NOW(), "dd-MM-yyyy") returns the current application server date/time value, December 24, 2015,
as "24-12-2015" , based on the specified custom format.

Additional resources
Date and time functions
NULLDATE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The NULLDATE function returns a Date value that represents the null date (January 1, 1900).

Syntax
NULLDATE () as

Return values
Date
The resulting date value.

Example 1
DATEFORMAT (NULLDATE(), "yyyy-MM-dd") returns the null date, January 1, 1900, as "1900-01-01" , based on the
specified custom format.

Example 2
The expression IF( Invoice.DocumentDate = NULLDATE(), true, false) returns True when the value of the
DocumentDate field equals the null date. In this example, Invoice is an Electronic reporting (ER) data source of
the Finance/Table records type, and it refers to the CustInvoiceJour table.

Additional resources
Date and time functions
NULLDATETIM E ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The NULLDATETIME function returns a DateTime value that represents the null date/time value (January 1, 1900) in
Coordinated Universal Time (Greenwich Mean Time [GMT]).

Syntax
NULLDATETIME ()

Return values
DateTime
The resulting date/time value.

Example
DATETIMEFORMAT( NULLDATETIME(), "O") returns the string value 1900-01-01T00:00:00.0000000+00:00 when
it's called during a process that was initiated by an application user who has the time zone value (GMT)
Coordinated Universal Time in the Language and countr y/region preferences section.

Additional resources
Date and time functions
SESSIO NNOW ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The SESSIONNOW function returns a DateTime value that represents the current application session date and time.

Syntax
SESSIONNOW ()

Return values
DateTime
The resulting date/time value.

Example
DATETIMEFORMAT (SESSIONNOW(), "d", "DE") returns the current application session date/time value, December 24,
2015, as "24.12.2015" , based on the selected German culture and the specified format.

Additional resources
Date and time functions
SESSIO NTODAY ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The SESSIONTODAY function returns a Date value that represents the current application session date.

Syntax
SESSIONTODAY ()

Return values
Date
The resulting date value.

Example
DATEFORMAT (SESSIONTODAY (), "d", "DE") returns the current application session date, December 24, 2015, as the
string "24-12-2015" , based on the selected German culture and the specified format.

Additional resources
Date and time functions
List of ER functions in the list category
4/3/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific
business functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Electronic reporting (ER) list functions can be used to extract information from, and perform operations on,
data sources of the Record list and Container (record) data types. This topic provides a summary of these
functions.

List of supported functions


F UN C T IO N DESC RIP T IO N

AllItems This function runs as an in-memory selection. It returns a


new flattened Record list value that consists of a list of
records that represents all items that match the specified
path.

AllItemsQuery This function runs as a joined SQL query. It returns a new


flattened Record list value that consists of a list of records
that represents all items that match the specified path.

Count This function returns an Integer value that represents the


number of records in the specified list, if the list isn't empty.
If the list is empty, this function returns 0 (zero).

EmptyList This function returns an empty Record list value by using


the specified list as a source for the list structure.

Enumerate This function returns a new Record list value that consists of
enumerated records of the specified list.

Filter This function returns the specified list as a Record list value
after the query has been changed so that it filters for the
specified condition.

First This function returns the first record of the specified list as a
Container (record) value, if that list isn't empty. If the list is
empty, this function throws an exception.

FirstOrNull This function returns the first record of the specified list as a
Container (record) value, if that record isn't empty. If the
record is empty, this function returns a null Container
(record) value.
F UN C T IO N DESC RIP T IO N

Index This function returns a Container (record) value that is


selected by using the specified numeric index in the specified
list. If the index is out of range for the records in the
specified list, this function throws an exception.

IsEmpty This function returns a Boolean value of TRUE if the


specified list contains no records. Otherwise, it returns a
Boolean value of FALSE .

List This function returns a Record list value that consists of a


new list that is created from the specified arguments.

ListJoin This function returns a Record list value that represents a


new joined list that is created from the specified arguments.

ListOfFields This function returns a Record list value that is created


based on the structure of the specified argument of the
Enumeration or Container (record) type.

ListOfFirstItem This function returns a Record list value that consists of only
the first record of the specified list.

OrderBy This function returns the specified list as a Record list value
after it has been sorted according to the specified
arguments. These arguments can be defined as expressions.

Reverse This function returns the specified list as a Record list value
in reversed sort order.

Split This function splits the specified input string into substrings
and returns the result as a new Record list value.

SplitList This function splits the specified list into sublists (or
batches), each of which contains the specified number of
records. It then returns the result as a new Record list value
that consists of the batches.

SplitListByLimit This function splits the specified list into a new list of sublists
(batches). The number of records in each batch is
dynamically calculated. The function then returns the result
as a new Record list value that consists of the batches.

StringJoin This function returns a String value that consists of


concatenated values of the specified field from the specified
list. The values can be separated by the specified delimiter.

Where This function returns the specified list as a Record list value
after it has been filtered according to the specified condition.

Additional resources
Electronic Reporting overview
Formula designer in Electronic reporting
Electronic reporting formula language
ALLITEMS ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ALLITEMS function runs as an in-memory selection and returns a new flattened Record list value as a list of
records that represents all items that match the specified path.

Syntax
ALLITEMS (path)

Arguments
path : Record list
The valid path of a data source of the Record list data type.

Return values
Record list
The resulting list of records.

Usage notes
The path must be defined as a valid data source path of a data source element of the Record list data type. Data
elements such as the path string and date should raise an error in the Electronic reporting (ER) expression builder
at design time.
We don't recommend that you use this function for transactional data sources that might contain a large volume of
data. Instead, consider using the ALLTEMSQUERY function.

Example 1
If you enter SPLIT("abcdef" , 2) as data source DS , the expression COUNT( ALLITEMS (DS)) returns 3 .

Example 2
If you enter Vend as the data source of the Record list data type that refers to the VendTable application table, the
expression ALLITEMS (Vend.'<Relations'.ContactPerson) returns a flattened list of records that has the
ContactPerson table structure and contains all contact persons that can be accessed by using the
ContactPerson.ContactForPar ty == VendTable.Par ty relation, and that is available for all vendors from the
referenced vendor table.

Additional resources
List functions
ALLITEMSQ UERY ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ALLITEMSQUERY function runs as a joined SQL query. It returns a new flattened Record list value that consists of
a list of records that represent all items that match the specified path.

Syntax
ALLITEMSQUERY (path)

Arguments
path : Record list
The valid path of a data source of the Record list data type. It must contain at least one relation.

Return values
Record list
The resulting list of records.

Usage notes
The specified path must be defined as a valid data source path of a data source element of the Record list data type.
It must also contain at least one relation. Data elements such as the path String and Date should raise an error in
the Electronic reporting (ER) expression builder at design time.
When this function is applied to data sources of the Record list data type that refer to an application object that can
be directly called by using SQL (for example, an table, entity, or query), it runs as a joined SQL query. Otherwise, it
runs in memory as the ALLITEMS function.

Example
You define the following data sources in your model mapping:
A CustInv data source of the Table records type that refers to the CustInvoiceTable table
A FilteredInv data source of the Calculated field type that contains the expression
FILTER (CustInv, CustInv.InvoiceAccount = "US-001")
A JourLines of the Calculated field type that contains the expression
ALLITEMSQUERY ( FilteredInv.'<Relations'.CustInvoiceJour.'<Relations'.CustInvoiceTrans)

When you run the model mapping to call the JourLines data source, the following SQL statement is run:
SELECT ... FROM CUSTINVOICETABLE T1 CROSS JOIN CUSTINVOICEJOUR T2 CROSS JOIN
CUSTINVOICETRANS T3 WHERE...

Additional resources
List functions
COUNT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The COUNT function returns an Integer value that represents the number of records in the specified list, if the list
isn't empty. If the list is empty, this function returns 0 (zero).

Syntax
COUNT (list)

Arguments
list : Record list
The valid path of a data source of the Record list data type.

Return values
Integer
The resulting numeric value.

Example
COUNT (SPLIT("abcd" , 3)) returns 2 , because the SPLIT function that is used in this example creates a list that
consists of two records.

Additional resources
List functions
EMPTYLIST ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The EMPTYLIST function returns an empty Record list value by using the specified list as a source for the list
structure.

Syntax
EMPTYLIST (list)

Arguments
list : Record list
The valid path of a data source of the Record list data type.

Return values
Record list
The resulting list of records.

Example
EMPTYLIST (SPLIT ("abc", 1)) returns a new empty list that has the same structure as the list that is returned by the
SPLIT function that is used.

Additional resources
List functions
ENUMERATE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ENUMERATE function returns a new Record list value that consists of enumerated records of the specified list.

Syntax
ENUMERATE (list)

Arguments
list : Record list
The valid path of a data source of the Record list data type.

Return values
Record list
The resulting list of records.

Usage notes
The list of enumerated records that is returned exposes the following additional elements:
The record of fields (Value component)
The current record index (Number component)

Example
In the following illustration, an Enumerated data source is created as an enumerated list of vendor records from
the Vendors data source that refers to the VendTable table.

The following illustration shows the Electronic reporting (ER) format. In this format, data bindings are created to
generate output in XML format. This output presents individual vendors as enumerated nodes.
The following illustration shows the result when the designed format is run.

Additional resources
List functions
FILTER ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The FILTER function returns the specified list as a Record list value after the query has been changed so that it
filters for the specified condition.

Syntax
FILTER (list, condition)

Arguments
list : Record list
The valid path of a data source of the Record list data type.
condition : Boolean
A valid conditional expression that is used to filter records of the specified list.

Return values
Record list
The resulting list of records.

Usage notes
This function differs from the WHERE function, because the specified condition is applied to any Electronic
reporting (ER) data source of the Table records type at the database level. The list and condition can be defined by
using tables and relations.
If one or both arguments that are configured for this function ( list and condition ) don't allow this request to be
translated to the direct SQL call, an exception is thrown at design time. This exception informs the user that either
list or condition can't be used to query the database.

Example 1
If Vendor is configured as an ER data source that refers to the VendTable table, the expression
FILTER (Vendors, Vendors.VendGroup = "40") returns a list of only vendors that belong to vendor group 40.

Example 2
If Vendor is configured as an ER data source that refers to the VendTable table, and if parmVendorBankGroup is
configured as an ER data source that returns a value of the String data type, the expression
FILTER ( Vendor.'<Relations'.VendBankAccount, Vendor.'<Relations'.VendBankAccount.BankGroupID =
parmVendorBankGroup)
returns a list of only vendor accounts that belong to a specific bank group.

Example 3
You enter data source DS of the Calculated field type, and it contains the expression SPLIT ("A,B,C", ",") . You
then enter another expression, FILTER( DS, DS.Value = "B") . When you try to save this expression in the ER
formula designer, the following exception is thrown: "Validation error: The list expression of FILTER function is not
queryable."

Additional resources
List functions
FIRST ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The FIRST function returns the first record of the specified list as a Container (record) value, if that list isn't empty.
If the list is empty, this function throws an exception.

Syntax
FIRST (list)

Arguments
list : Record list
The valid path of a data source of the Record list data type.

Return values
Container (record)
The resulting record value.

Example 1
The expression FIRST(SPLIT("ABC",1)).Value returns the text value "A" .

Example 2
The expression FIRST(SPLIT("",1)).Value throws an exception at runtime.

Additional resources
List functions
FIRSTORNULL ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The FIRSTORNULL function returns the first record of the specified list as a Container (record) value, if that record
isn't empty. If the record is empty, this function returns a null Container (record) value.

Syntax
FIRSTORNULL (list)

Arguments
list : Record list
The valid path of a data source of the Record list data type.

Return values
Container (record)
The resulting record value.

Example
The expression FIRSTORNULL(SPLIT("",1)).Value returns an empty string ("" ).

Additional resources
List functions
INDEX ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The INDEX function returns a Container (record) value that is selected by using the specified numeric index in the
specified list. If the index is out of range for the records in the specified list, an exception is thrown.

Syntax
INDEX (list, index)

Arguments
list : Record list
The valid path of a data source of the Record list data type.
index : Integer
A numeric index that indicates the position of the desired record in the specified list.

Return values
Container (record)
The resulting record value.

Example 1
If you enter data source DS of the Calculated field type, and it contains the expression SPLIT ("A|B|C", "|") , the
expression DS.Value returns the text value "B" for the second record of this record list. The expression
INDEX (SPLIT ("A|B|C", "|"), 2).Value also returns the text value "B" .

Example 2
If you enter data source DS of the Calculated field type, and it contains the expression SPLIT ("A|B|C", "|") , the
expression INDEX (SPLIT ("A|B|C", "|"), 4).Value throws an exception at runtime.

Additional resources
List functions
ISEMPTY ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ISEMPTY function returns a Boolean value of TRUE if the specified list contains no records. Otherwise, it
returns a Boolean value of FALSE .

Syntax
ISEMPTY (list)

Arguments
list : Record list
The valid path of a data source of the Record list data type.

Return values
Boolean
The resulting Boolean value.

Example 1
If you enter data source DS of the Calculated field type, and it contains the expression SPLIT ("A|B|C", "|") , the
expression ISEMPTY(DS) returns FALSE .

Example 2
The expression ISEMPTY (SPLIT ("",1)) returns TRUE .

Additional resources
List functions
LIST ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The LIST function returns a Record list value that consists of a new list of records that is created from the specified
arguments.

Syntax
LIST (record 1 [, record 2, …, record N])

Arguments
record 1 : Container (record)
A reference to a data source of the Record data type. This argument is required.
record N : Container (record)
A reference to a data source of the Record data type. These additional arguments are optional.

Return values
Record list
The resulting list of records.

Usage notes
The structure of the list that is created contains only the fields that are presented in the structure of every record
that is mentioned in the arguments.

Example
You enter data source Record 1 of the Container type. This data source contains the following nested fields of the
Calculated field type:
Code: This field contains an expression that returns a value of the String type.
Amount: This field contains an expression that returns a value of the Real type.
You then enter data source Record 2 of the Container type. This data source contains the following nested fields of
the Calculated field type:
Amount: This field contains an expression that returns a value of the Real type.
IsValid: This field contains an expression that returns a value of the Boolean type.
In this case, the expression LIST('Record 1', 'Record 2') returns a new list that contains two records. The structure
of this list consists of a single Amount field of the Real type, because this field is the only field that is presented in
every argument of the called function.

Additional resources
List functions
LISTJOIN ER f unct ion

4/9/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The LISTJOIN function returns a Record list value that represents a new joined list of records that is created from
the specified arguments.

Syntax
LIST (list 1 [, list 2, …, list N])

Arguments
list 1 : Record list
A reference to a data source of the Record list data type. This argument is mandatory.
list N : Record list
A reference to a data source of the Record list data type. These additional arguments are optional.

Return values
Record list
The resulting list of records.

Usage notes
The structure of the list that is created contains only the fields that are present in the structure of every record list
that is referenced in the arguments.

Example
You enter data source Record 1 of the Container type. This data source contains the following nested fields of the
Calculated field type:

Code : This field contains an expression that returns a value of the String type.
Amount : This field contains an expression that returns a value of the Real type.
You then enter data source Record 2 of the Container type. This data source contains the following nested fields
of the Calculated field type:
Amount : This field contains an expression that returns a value of the Real type.
IsValid : This field contains an expression that returns a value of the Boolean type.
In this case, the expression LISTJOIN(LIST('Record 1'), LIST('Record 2')) returns a new list that contains two
records. The structure of this list consists of a single Amount field of the Real type, because this field is the only
field that is presented in every argument of the called function.

Additional resources
List functions
LISTOFFIELDS ER f unct ion

2/12/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The LISTOFFIELDS function returns a Record list value that is created based on the structure of the specified
argument of the Enumeration or Container (record) type.

Syntax 1
LISTOFFIELDS (path)

Syntax 2
LISTOFFIELDS (path, language)

Arguments
path : Data source reference
The valid reference path of a data source of one of the following data types:
Model enumeration
Format enumeration
Application enumeration
Container (record)
language : String
Text that represents a language code.

Return values
Record list
The resulting list of records.

Usage notes
The list that is created consists of records that have the following fields:
Name (String data type)
Label (String data type)
Description (String data type)
IsTranslated (Boolean data type)
If the path argument refers to a data source of the Container (Record) type, for every field of the referenced
container record, a new record is added to the list that is created. For every record that is created, the Name field
returns the name of the field of the referenced container record that the current record was created for.
If the path argument refers to a data source of one of the Enumeration types, for every enumeration value of the
referenced enumeration, a new record is added to the list that is created. For every record that is created, the Name
field returns the value of the referenced enumeration that the current record was created for, the Description field
returns the description of that enumeration, and the Label field returns the label of that enumeration.
At runtime, when syntax 1 is used, the Label and Description fields must return values that are based on the
language settings of the Electronic reporting (ER) format that is running:
If the labels and descriptions for the requested language are available, the Label and Description fields return
values that are based on that language, and the IsTranslated field returns True .
If the labels and descriptions for the requested language aren't available, the Label and Description fields
return values that are based on the default EN-US language, and the IsTranslated field returns False .
At runtime, when syntax 2 is used, the Label and Description fields must return values that are based on the
language that is defined as the second argument of the called function:
If the labels and descriptions for the requested language are available, the Label and Description fields return
values that are based on that language, and the IsTranslated field returns True .
If the labels and descriptions for the requested language aren't available, the Label and Description fields
return values that are based on the EN-US language, and the IsTranslated field returns False .

Example 1
In the following illustration, an enumeration is introduced in an ER data model.

The following illustration shows these details:


The model enumeration is inserted into a report as a data source.
An ER expression uses the model enumeration as a parameter of the LISTOFFIELDS function.
A data source of the Record list type is inserted into a report by using the ER expression that is created.
The following example shows the ER format elements that are bound to the data source of the Record list type that
was created by using the LISTOFFIELDS function.

The following illustration shows the result when the designed format is run.

NOTE
Based on the language settings of the parent FILE and FOLDER format elements, translated text for labels and descriptions
is entered in the output of the ER format.

Example 2
You use the Calculated field data source type to configure enumType_de and enumType_deCH data sources for
the enumType data model enumeration:
enumType_de = LISTOFFIELDS (enumType, "de")
enumType_deCH = LISTOFFIELDS (enumType, "de-CH")

In this case, you can use the following expression to get the label of the enumeration value in Swiss German, if that
translation is available. If the Swiss German translation isn't available, the label is in German.

IF (NOT (enumType_deCH.IsTranslated), enumType_de.Label, enumType_deCH.Label)

Additional resources
List functions
LISTOFFIRSTITEM ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The LISTOFFIRSTITEM function returns a Record list value that consists of only the first record of the specified list.

Syntax
LISTOFFIRSTITEM (list)

Arguments
list : Record list
The valid path of a data source of the Record list data type.

Return values
Record list
The resulting list of records.

Example
The expression FIRST( LISTOFFIRSTITEM ( SPLIT ("ABC",1))).Value returns the text value "A" .

Additional resources
List functions
ORDERBY ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ORDERBY function returns the specified list as a Record list value after it has been sorted according to the
specified arguments. These arguments can be defined as expressions.

Syntax
ORDERBY (list , expression 1[, expression 2, …, expression N])

Arguments
list : Record list
The valid path of a data source of the Record list data type.
expression 1 : Field
The valid path of a field of the data source that is referenced by the list argument of the called function. The
referenced field must be a field of the primitive data type. This argument is required.
expression N : Field
The valid path of a field of the data source that is referenced by the list argument of the called function. The
referenced field must be a field of the primitive data type. These additional arguments are optional.

Return values
Record list
The resulting list of records.

Example 1
If you enter data source DS of the Calculated field type, and it contains the expression SPLIT ("C|B|A", "|") , the
expression FIRST( ORDERBY( DS, DS. Value)).Value returns the text value "A" .

Example 2
If Vendor is configured as an Electronic reporting (ER) data source that refers to the VendTable table, the
expression ORDERBY (Vendors, Vendors.'name()') returns a list of vendors that is sorted by name in ascending order.

Additional resources
List functions
REVERSE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The REVERSE function returns the specified list as a Record list value in reversed sort order.

Syntax
REVERSE (list)

Arguments
list : Record list
The valid path of a data source of the Record list data type.

Return values
Record list
The resulting list of records.

Example 1
If you enter data source DS of the Calculated field type, and it contains the expression SPLIT ("C|B|A", "|") , the
expression FIRST( REVERSE( ORDERBY( DS, DS. Value))).Value returns the text value "C" .

Example 2
If Vendor is configured as an Electronic reporting (ER) data source that refers to the VendTable table, the
expression REVERSE (ORDERBY (Vendors, Vendors.'name()')) returns a list of vendors that is sorted by name in
descending order.

Additional resources
List functions
SPLIT ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The SPLIT function splits the specified input string into substrings and returns the result as a new Record list value.

Syntax 1
SPLIT (input, length)

This syntax is used to split the specified input string into substrings, each of which has the specified length.

Syntax 2
SPLIT (input, delimiter)

This syntax is used to split the specified input string into substrings, based on the specified delimiter.

Arguments
input : String
The text to split.
length : Integer
The maximum length of a single substring.
delimiter : String
A delimiter that is used to separate substrings.

Return values
Record list
The resulting list of records.

Usage notes
The record structure of the list that is returned consists of the Value field of the String type. Every record of the list
that is returned contains generated substrings in this field.
If the delimiter argument is empty, the new list that is returned consists of one record that has the Value field of
the String type. This field contains the input text.
If the input argument is empty, a new empty list is returned. If either the input or delimiter argument is
unspecified (null), an application exception is thrown.

Example 1
SPLIT ("abcd", 3) returns a new list that consists of two records that have the Value field of the String type. The
Value field in the first record contains the text "abc" , and the Value field in the second record contains the text "d" .

Example 2
SPLIT ("XAb aBy", "aB") returns a new list that consists of three records that have the Value field of the String
type. The Value field in the first record contains the text "X" , the Value field in the second record contains the text
" " , and the Value field in the third record contains the text "y" .

Additional resources
List functions
SPLITLIST ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The SPLITLIST function splits the specified list into sublists (or batches), each of which contains the specified
number of records. It then returns the result as a new Record list value that consists of the batches.

Syntax
SPLITLIST (list, number)

Arguments
list : Record list
The valid path of a data source of the Record list data type.
number : Integer
The maximum number of records per batch.

Return values
Record list
The resulting list of records.

Usage notes
The list of batches that is returned contains the following elements:
Value: List
The list of records that belong to the current batch.
BatchNumber : Integer
The number of the current batch in the returned list.

Example
In the following illustration, a Lines data source is created as a record list that has three records. This list is divided
into batches, each of which contains up to two records.
The following illustration shows the designed format layout. In this format layout, bindings to the Lines data
source are created to generate output in XML format. This output presents individual nodes for each batch and the
records in it.

The following illustration shows the result when the designed format is run.

Additional resources
List functions
SPLITLISTBYLIM IT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The SPLITLISTBYLIMIT function splits the specified list into a new list of sublists (batches). The number of records in
each batch is dynamically calculated. The function then returns the result as a new Record list value that consists of
the batches.

Syntax
SPLITLISTBYLIMIT (list, limit value, limit source)

Arguments
list : Record list
The valid path of a data source of the Record list data type.
limit value : Integer or Real
The maximum value of the limit that is used to split the original list into batches.
limit source : Field
The valid path of a field of the Integer or Real type in the specified list. The value of this field defines the step that
the total sum is increased on.

Return values
Record list
The resulting list of records.

Usage notes
The list of batches that is returned contains the following elements:
Value : List
The list of records that belong to the current batch.
BatchNumber : Integer
The number of the current batch in the returned list.
The limit isn't applied to a single item of the original list if the limit source exceeds the defined limit.

Example
The following illustration shows an Electronic reporting (ER) format.

The following illustration shows the data sources that are used for the format.

The following illustration shows the result when the format is run. In this case, the output is a flat list of commodity
items.

In the following illustrations, the same format has been adjusted so that it presents the list of commodity items in
batches if a single batch must include commodities and the total weight should not exceed a limit of 9.
The following illustration shows the result when the adjusted format is run.
NOTE
The limit isn't applied to the last item of the original list, because the value (11 ) of the limit source (weight ) exceeds the
defined limit (9 ). To ignore sublists during report generation, use either the WHERE function or the Enabled expression of
the corresponding format element, as you require.

Additional resources
List functions
STRINGJOIN ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The STRINGJOIN function returns a String value that consists of concatenated values of the specified field from the
specified list. The values can be separated by the specified delimiter.

Syntax
STRINGJOIN (list, field, delimiter)

Arguments
list : Record list
The valid path of a data source of the Record list data type.
field : Field
The valid path of a field of the String data type in the specified list.
delimiter : String
A delimiter that is used to separate substrings.

Return values
String
The resulting text value.

Example
If you enter SPLIT("abc" , 1) as data source DS , the expression STRINGJOIN (DS, DS.Value, "-") returns "a-b-c" .

Additional resources
List functions
WHERE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The WHERE function returns the specified list as a Record list value after it has been filtered according to the
specified condition.

Syntax
WHERE (list, condition)

Arguments
list : Record list
The valid path of a data source of the Record list data type.
condition : Boolean
A valid conditional expression that is used to filter records of the specified list.

Return values
Record list
The resulting list of records.

Usage notes
This function differs from the FILTER function, because the specified condition is applied to any Electronic reporting
(ER) data source of the Record list type that is present in memory.
If the arguments that are configured for this function ( list and condition ) allow this request to be translated to
the direct SQL call, a warning message is thrown at design time. This message informs the user that performance
might be improved if the FILTER function is used instead of WHERE .

Example 1
If Vendor is configured as an ER data source that refers to the VendTable table, the expression
WHERE (Vendors, Vendors.VendGroup = "40") returns a list of only vendors that belong to vendor group 40.

Example 2
If you enter data source DS of the Calculated field type, and it contains the expression SPLIT ("A|B|C", "|") , the
expression WHERE( DS, DS.Value = "B") returns a list of only one record that contains the text "B" in the Value
field.
Additional resources
List functions
List of ER functions in the logical category
12/19/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Electronic reporting (ER) logical functions can be used to work with logical values to perform more than one
comparison in a single expression or test multiple conditions. This topic provides a summary of these functions.

List of supported functions


F UN C T IO N DESC RIP T IO N

And This function returns a Boolean value of TRUE if all the


specified conditions are true. Otherwise, it returns a Boolean
value of FALSE .

Case This function evaluates the value of the specified expression


against the specified alternative options and returns the result
of the first option that equals the value of the specified
expression. Otherwise, it returns an optional default result, if a
default result is specified as the last argument of the called
function that isn't preceded by an option. The value that is
returned can be a value of any of the supported data types.

If This function returns the first specified value if the specified


condition is met. Otherwise, it returns the second specified
value. The value that is returned can be a value of any of the
supported data types.

Not This function returns the reversed logical value of the specified
condition as a Boolean value.

Or This function returns a Boolean value of FALSE if all the


specified conditions are false. If any specified condition is true,
the function returns a Boolean value of TRUE .

ValueIn This function determines whether the specified input matches


any value of a specified item in the specified list. It returns a
Boolean value of TRUE if the specified input matches the
result of running the specified expression for at least one
record of the specified list. Otherwise, it returns a Boolean
value of FALSE .

Additional resources
Electronic Reporting overview
Formula designer in Electronic reporting
Electronic reporting formula language
AND ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The AND function returns a Boolean value of TRUE if all the specified conditions are true. Otherwise, it returns a
Boolean value of FALSE .

Syntax
AND (condition 1[, condition 2, …, condition N])

Arguments
condition 1 : Boolean
A valid conditional expression that must be tested. This argument is required.
condition N : Boolean
A valid conditional expression that must be tested. These additional arguments are optional.

Return values
Boolean
The resulting Boolean value.

Usage notes
In the arguments of logical functions, you can use data source references, numeric and text values, Boolean values,
comparison operators, and other Electronic reporting (ER) functions. However, all the arguments must be evaluated
to a Boolean value of TRUE or FALSE .

Example
AND (1=1, "a"="a") returns TRUE .
AND (1=2, "a"="a") returns FALSE .

Additional resources
Logical functions
CASE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The CASE function evaluates the value of the specified expression against the specified alternative options and
returns the result of the first option that equals the value of the specified expression. Otherwise, it returns the
optional default result, if a default result is specified as the last argument of the called function that isn't preceded
by an option. The value that is returned can be a value of any of the supported data types.

Syntax
CASE (expression, option 1, result 1[, option 2, result 2, …, option N, result N, default result])

Arguments
expression : Primitive data type (Boolean, numeric, or text)
A valid expression that returns a value of the primitive data type.
option 1 : Primitive data type (Boolean, numeric, or text)
A valid expression that returns a value of the same primitive data type as the expression argument of the called
function. This argument is required.
result 1 : Any of the supported data types
The returned result that corresponds to the preceding option. This argument is required.
option N : Primitive data type (Boolean, numeric, or text)
A valid expression that returns a value of the same primitive data type as the expression argument of the called
function. This argument is optional.
result N : Any of the supported data types
The returned result that corresponds to the preceding option. This argument is optional.
default result : Any of the supported data types
The result that should be returned if there is no match. This argument is optional.

Return values
Any of the supported data types
The resulting value of any of the supported data types.

Usage notes
An exception is thrown at runtime if there is no match and an optional default result isn't defined.
All results must be specified by using the same data type. An exception is thrown at design time if the data types of
the configured results don't match.
If the first result value and the Nth result value are values of the Container (record) or Record list data type, the
result has only the fields that exist in both values.

Example
CASE( DATETIMEFORMAT( NOW(), "MM"), "10", "WINTER", "11", "WINTER", "12", "WINTER", "")returns the string
"WINTER" if the current application session date is between October and December. Otherwise, it returns a blank
string.

Additional resources
Logical functions
IF ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The IF function returns the first specified value if the specified condition is met. Otherwise, it returns the second
specified value. The value that is returned can be a value of any of the supported data types.

Syntax
IF (condition, first value, second value) as any of the supported data types

Arguments
condition : Boolean
A valid conditional expression that must be tested.
first value : Any of the supported data types
The result that is returned if the condition is met.
second value : Any of the supported data types
The result that is returned if the condition isn't met.

Return values
Any of the supported data types
The resulting value of any of the supported data types.

Usage notes
The first value and second value arguments must be specified by using the same data type. An exception is
thrown at design time if the data types of the configured values don't match.
If the first value and the second value are values of the Container (record) or Record list data type, the result has
only the fields that exist in both values.

Example
IF (1=2, "condition is met", "condition is not met") returns the string "condition is not met" .

Additional resources
Logical functions
NOT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The NOT function returns the reversed logical value of the specified condition as a Boolean value.

Syntax
NOT (condition)

Arguments
condition : Boolean
A valid conditional expression that must be reversed.

Return values
Boolean
The resulting Boolean value.

Example
NOT (TRUE) returns FALSE .

Additional resources
Logical functions
OR ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The OR function returns a Boolean value of FALSE if all the specified conditions are false. If any specified condition
is true, the function returns a Boolean value of TRUE .

Syntax
OR (condition 1[, condition 2, …, condition N])

Arguments
condition 1 : Boolean
A valid conditional expression that must be tested. This argument is required.
condition N : Boolean
A valid conditional expression that must be tested. These additional arguments are optional.

Return values
Boolean
The resulting Boolean value.

Example
OR (1=2, "a"="a") returns TRUE .

Additional resources
Logical functions
VALUEIN ER f unct ion

2/12/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The VALUEIN function determines whether the specified input matches any value of a specified item in the specified
list. It returns a Boolean value of TRUE if the specified input matches the result of running the specified expression
for at least one record of the specified list. Otherwise, it returns a Boolean value of FALSE .

Syntax
VALUEIN (input, list, list item expression)

Arguments
input : Field
The valid path of an item of a data source of the Record list type. The value of this item will be matched.
list : Record list
The valid path of a data source of the Record list data type.
list item expression : Boolean
A valid conditional expression that either points to or contains a single field of the specified list that should be used
for the matching.

Return values
Boolean
The resulting Boolean value.

Usage notes
In general, the VALUEIN function is translated to a set of OR conditions.

(input = list.item1.value) OR (input = list.item2.value) OR …

In some cases, it can be translated to a database SQL statement by using the EXISTS JOIN operator.

Example 1
In your model mapping, you define the List data source of the Calculated field type. This data source contains the
expression SPLIT ("a,b,c", ",") .
When a data source is called, if it has been configured as the VALUEIN ("B", List, List.Value) expression, it returns
TRUE . In this case, the VALUEIN function is translated to the following set of conditions:
(("B" = "a") or ("B" = "b") or ("B" = "c")) , where ("B" = "b") equals TRUE .

When a data source is called, if it has been configured as the VALUEIN ("B", List, LEFT(List.Value, 0)) expression,
it returns FALSE . In this case, the VALUEIN function is translated to the following condition: ("B" = "") , which
doesn't equal TRUE .
The upper limit for the number of characters in the text of such a condition is 32,768 characters. Therefore, you
should not create data sources that might exceed this limit at runtime. If the limit is exceeded, the application stops
running, and an exception is thrown. For example, this situation can occur if the data source is configured as
WHERE (List1, VALUEIN (List1.ID, List2, List2.ID) , and the List1 and List2 lists contain a large volume of
records.
In some cases, the VALUEIN function is translated to a database statement by using the EXISTS JOIN operator. This
behavior occurs when the FILTER function is used and the following conditions are met:
The ASK FOR QUERY option is turned off for the data source of the VALUEIN function that refers to the list of
records. No additional conditions will be applied to this data source at runtime.
No nested expressions are configured for the data source of the VALUEIN function that refers to the list of
records.
A list item of the VALUEIN function refers to a field of the specified data source, not to an expression or method
of that data source.
Consider using this option instead of the WHERE function that is described earlier in this example.

Example 2
You define the following data sources in your model mapping:
The In data source of the Table records type. This data source refers to the Intrastat table.
The Por t data source of the Table records type. This data source refers to the IntrastatPort table.
When a data source is called that has been configured as the FILTER (In, VALUEIN(In.Port, Port, Port.PortId)
expression, the following SQL statement is generated to return filtered records of the Intrastat table.

select … from Intrastat


exists join TableId from IntrastatPort
where IntrastatPort.PortId = Intrastat.Port

For dataAreaId fields, the final SQL statement is generated by the using IN operator.

Example 3
You define the following data sources in your model mapping:
The Le data source of the Calculated field type. This data source contains the expression
SPLIT ("DEMF,GBSI,USMF", ",") .
The In data source of the Table records type. This data source refers to the Intrastat table, and the Cross-
company option is turned on for it.
When a data source is called that has been configured as the FILTER (In, VALUEIN (In.dataAreaId, Le, Le.Value)
expression, the final SQL statement contains the following condition.
Intrastat.dataAreaId IN ('DEMF', 'GBSI', 'USMF')

Additional resources
Logical functions
List of ER functions in the mathematical category
12/19/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Electronic reporting (ER) mathematical functions can be used to do many common mathematical calculations. This
topic provides a summary of these functions.

List of supported functions


F UN C T IO N DESC RIP T IO N

Abs This function returns the absolute value (modulus) of the


specified number as a Real value. In other words, it returns the
number without its sign.

Power This function returns a Real value that represents the result of
raising the specified positive number to the specified power.

Round This function returns the specified number as a Real value


after it has been rounded to the specified number of decimal
places.

RoundDown This function returns the specified number as a Real value


after it has been rounded down to the specified number of
decimal places.

RoundUp This function returns the specified number as a Real value


after it has been rounded up to the specified number of
decimal places.

Additional resources
Electronic Reporting overview
Formula designer in Electronic reporting
Electronic reporting formula language
ABS ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ABS function returns the absolute value (modulus) of the specified number as a Real value. In other words, it
returns the number without its sign.

Syntax
ABS (number)

Arguments
number : Real
A numeric value that you want the modulus of.

Return values
Real
The resulting numeric value.

Example
ABS (-1) returns 1 .

Additional resources
Mathematical functions
POWER ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The POWER function returns a Real value that represents the result of raising the specified positive number to the
specified power.

Syntax
POWER (number, power)

Arguments
number : Real or Integer
A numeric value that must be raised to the specified power.
power : Real or Integer
A numeric value that represents the specific power.

Return values
Real
The resulting numeric value.

Example 1
POWER (10, 2) returns 100 .

Example 2
POWER (4, 0.5) returns 2 .

Additional resources
Mathematical functions
ROUND ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ROUND function returns the specified number as a Real value after it has been rounded to the specified number
of decimal places.

Syntax
ROUND (number, decimals)

Arguments
number : Real
A numeric value that must be rounded.
decimals : Integer
A numeric value that represents the number of decimal places.

Return values
Real
The resulting numeric value.

Usage notes
If the value of the decimals argument is more than 0 (zero), the specified number is rounded to that many decimal
places.
If the value of the decimals argument is 0 (zero), the specified number is rounded to the nearest integer.
If the value of the decimals argument is less than 0 (zero), the specified number is rounded to the left of the
decimal point.

Example 1
ROUND (1200.767, 2) rounds to two decimal places and returns 1200.77 .

Example 2
ROUND (1200.767, -3) rounds to the nearest multiple of 1,000 and returns 1000 .

Additional resources
Mathematical functions
ROUNDDOWN ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ROUNDDOWN function returns the specified number as a Real value after it has been rounded down to the
specified number of decimal places.

Syntax
ROUNDDOWN (number, decimals)

Arguments
number : Real
A numeric value that must be rounded down.
decimals : Integer
A numeric value that represents the number of decimal places.

Return values
Real
The resulting numeric value.

Usage notes
This function behaves like ROUND, but it always rounds the specified number down (toward zero).

Example 1
ROUNDDOWN (1200.767, 2) rounds down to two decimal places and returns 1200.76 .

Example 2
ROUNDDOWN (1700.767, -3) rounds down to the nearest multiple of 1,000 and returns 1000 .

Additional resources
Mathematical functions
ROUNDUP ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ROUNDUP function returns the specified number as a Real value after it has been rounded up to the specified
number of decimal places.

Syntax
ROUNDDOWN (number, decimals)

Arguments
number : Real
A numeric value that must be rounded up.
decimals : Integer
A numeric value that represents the number of decimal places.

Return values
Real
The resulting numeric value.

Usage notes
This function behaves like ROUND, but it always rounds the specified number up (away from zero).

Example 1
ROUNDUP (1200.763, 2) rounds up to two decimal places and returns 1200.77 .

Example 2
ROUNDUP (1200.767, -3) rounds up to the nearest multiple of 1,000 and returns 2000 .

Additional resources
Mathematical functions
List of ER functions in the record category
12/19/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Electronic reporting (ER) record functions can be used to extract information from, and perform operations on, data
sources of the Container (record) data type. This topic provides a summary of these functions.

List of supported functions


F UN C T IO N DESC RIP T IO N

NullContainer This function returns a null Container (record) value that has
the same structure as the specified record list or record.

EmptyRecord This function returns a null Container (record) value that has
the same structure as the specified record list or record.

Additional resources
Electronic Reporting overview
Formula designer in Electronic reporting
Electronic reporting formula language
EMPTYRECORD ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The EMPTYRECORD function returns a null Container (record) value that has the same structure as the specified
record list or record.

Syntax
EMPTYRECORD (list)

Arguments
list : Record list or Container (record)
The valid path of a data source of either the Record list or Container (record) type.

Return values
Container (record)
The resulting record value.

Usage notes
NOTE
A null record is a record where all fields have an empty value. An empty value is 0 (zero) for numbers, an empty string for
strings, and so on.

Example
EMPTYRECORD (SPLIT ("abc", 1)) returns a new empty record that has the same structure as the list that is returned
by the SPLIT function. For more information, see SPLIT.

Additional resources
Record functions
NULLCONTAINER ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The NULLCONTAINER function returns a null Container (record) value that has the same structure as the specified
record list or record.

Syntax
NULLCONTAINER (list)

Arguments
list : Record list or Container (record)
The valid path of a data source of either the Record list or Container (record) type.

Return values
Container (record)
The resulting record value.

Usage notes
NOTE
This function is obsolete. Use the EMPTYRECORD function instead. For more information, see EMPTYRECORD.

Example
NULLCONTAINER (SPLIT ("abc", 1)) returns a new empty record that has the same structure as the list that is
returned by the SPLIT function. For more information, see SPLIT.

Additional resources
Record functions
List of ER functions of the text category
4/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific
business functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Electronic reporting (ER) text functions can be used to perform operations on data sources of the String data
type. This topic provides a summary of these functions.

List of supported functions


F UN C T IO N DESC RIP T IO N

Char This function returns a String value that presents a single


character that is referenced by the specified Unicode
number.

Concatenate This function returns all the specified text strings as a String
value after they have been joined into one string.

Format This function returns the specified string a String value after
it has been formatted by substituting any occurrences of
%N with the Nth argument.

GetEnumValueByName This function searches for a specific Enum value in the


specified enumeration data source by using the enumeration
name that is specified as a String value. If the Enum value is
found, the function returns it.

GuidValue This function converts the specified input of the String type
to a data item of the GUID type.

JsonValue This function parses data in JavaScript Object Notation


(JSON) format that is accessed at the specified path, and it
extracts a scalar value that is based on the specified ID. It
then returns the extracted scalar value as a String value.

Left This function returns a String value that presents the


specified number of characters from the start of the
specified string.

Len This function returns an Integer value that presents the


number of characters in the specified string.

Lower This function returns the specified text string as a String


value after it has been converted to lowercase letters.
F UN C T IO N DESC RIP T IO N

Mid This function returns a String value that presents the


specified number of characters from the specified string,
starting at the specified position.

NumberFormat This function returns a String value that presents the


specified number in the specified format and in an optionally
specified culture.

NumeralsToText This function returns the specified number as a String value


after it has been spelled out (that is, converted to text
strings) in the specified language.

PadLeft This function returns a String value of the specified length,


where the start of the specified string is padded with one or
more instances of the specified characters.

QrCode This function returns a Container value that presents the


Quick Response code (QR code) image for the specified
string in binary format.

Replace This function returns the specified text string as a String


value after all or part of it has been replaced with another
string.

Right This function returns a String value that presents the


specified number of characters from the end of the specified
string.

Text This function returns the specified number as a String value


after it has been converted to a text string that is formatted
according to the server locale settings of the current
application instance.

Translate This function returns a String value that contains the result
of the replacement the specified text in characters for
another provided set of characters.

Trim This function returns the specified text string as a String


value after leading and trailing spaces have been truncated,
and after multiple spaces between words have been
removed.

Upper This function returns the specified text string as a String


value after it has been converted to uppercase letters.

Additional resources
Electronic Reporting overview
Formula designer in Electronic reporting
Electronic reporting formula language
CHAR ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The CHAR function returns a String value that presents a single character that is referenced by the specified Unicode
number.

Syntax
CHAR (number)

Arguments
number : Integer
A number that corresponds to an expected single character.

Return values
String
The resulting text value.

Usage notes
The string that this function returns depends on the encoding that is selected in the parent FILE format element. For
a list of the supported encodings, see Encoding class.

Example
CHAR (255) returns "ÿ" .

Additional resources
Text functions
CONCATENATE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The CONCATENATE function returns all the specified text strings as a String value after they have been joined into one
string.

Syntax
CONCATENATE (text 1[, text 2, …, text N])

Arguments
text 1 : String
A reference to a data source of the String data type. This argument is required.
text N : String
A reference to a data source of the String data type. These additional arguments are optional.

Return values
String
The resulting text value.

Example
CONCATENATE ("abc", "def") returns "abcdef" .

Usage notes
The expression "abc" & "def" also returns "abcdef" .

Additional resources
Text functions
FORMAT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The FORMAT function returns the specified string as a String value after it has been formatted by substituting any
occurrences of %N with the Nth argument.

Syntax
FORMAT (string, argument 1[, argument 2, …, argument N])

Arguments
string : String
A reference to a data source of the String type that must be formatted. This argument is required.
argument 1 : String
The first argument, which is used to replace occurrences of %1 . This argument is required.
argument N : String
The Nth argument, which is used to replace occurrences of %2 , %3 , and so on. These additional arguments are
optional.

Return values
String
The resulting text value.

Usage notes
If an argument isn't provided for a parameter, the parameter is returned as "%N" in the string. For values of the
Real type, the default string conversion is limited to two decimal places.

Example
In the following illustration, the PaymentModel data source returns a list of customer records by using the
Customer component. It returns the processing date value by using the ProcessingDate field.
In the Electronic reporting (ER) format that is designed to generate an electronic file for selected customers,
PaymentModel is selected as a data source, and it controls the process flow. If a selected customer is stopped for
the date when the report is processed, an exception is thrown to notify the user. The formula that is designed for
this type of processing control can use the following resources:
Label SYS70894, which has the following text:
For the EN-US language: "Nothing to print"
For the DE language: "Nichts zu drucken"
Label SYS18389, which has the following text:
For the EN-US language: "Customer %1 is stopped for %2."
For the DE language: "Debitor '%1' wird für %2 gesperrt."
Here is the expression that can be designed.

FORMAT (CONCATENATE (@"SYS70894", ". ", @"SYS18389"), model.Customer.Name, DATETIMEFORMAT


(model.ProcessingDate, "d"))

If a report is processed for the Litware Retail customer on December 17, 2015, in the EN-US culture and the EN-
US language, this formula returns the following text, which can be presented to the user as an exception message:
Nothing to print. Customer Litware Retail is stopped for 12/17/2015.
If the same report is processed for the Litware Retail customer on December 17, 2015, in the DE culture and the
DE language, the formula returns the following text, which uses a different date format:
Nichts zu drucken. Debitor 'Litware Retail' wird für 17.12.2015 gesperrt.

NOTE
The following syntax is applied in ER formulas for labels:
For labels from resources in the Microsoft Dynamics 365 Finance app: @X , where X is the label ID in the
Application Object Tree (AOT)
For labels that reside in ER configurations: @"GER_L ABEL:X", where X is the label ID in the ER configuration

Additional resources
Text functions
GETENUMVALUEBYNAME ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The GETENUMVALUEBYNAME function searches for a specific Enum value in the specified enumeration data source by
using the enumeration name that is specified as a String value. If the Enum value is found, the function returns it.
Otherwise, the function returns the null enumeration value.

Syntax
GETENUMVALUEBYNAME (enumeration data source path, enumeration value text)

Arguments
enumeration data source path : Enumeration
The valid path of a data source of one of the following enumeration types:
Electronic reporting (ER) model enumeration
ER format enumeration
Microsoft Dynamics 365 Finance enumeration
enumeration value text : String
A string value that represents the name of a single enumeration value.

Return values
Nullable Enum
The resulting enumeration value.

Usage notes
No exception is thrown if an Enum value isn't found by using the name of the enumeration value that is specified as
a String value.

Example
In the following illustration, the Repor tDirection enumeration is introduced in a data model. Notice that labels are
defined for the enumeration values.
The following illustration shows these details:
The $Direction data source is configured in an ER report. This data source is configured based on the
Repor tDirection model enumeration.
The $IsArrivals expression is designed to use the model enumeration–based $Direction data source as a
parameter of this function.
The value of this comparison expression is TRUE .

Additional resources
Text functions
GUIDVALUE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The GUIDVALUE function converts the specified input of the String type to a data item of the GUID type.

Syntax
GUIDVALUE (input)

Arguments
input : String
The valid path of a data source of the String type.

Return values
GUID
The resulting globally unique identifier (GUID) value.

Usage notes
To do a conversion in the opposite direction (that is, to convert specified input of the GUID data type to a data item
of the String data type), you can use the TEXT function.

Example
You define the following data sources in your model mapping:
A myID data source of the Calculated field type that contains the expression
GUIDVALUE ("AF5CCDAC-F728-4609-8C8B- A4B30B0C0AA0")
A Users data source of the Table records type that refers to the UserInfo table
You can then use an expression such as FILTER (Users, Users.objectId = myID) to filter the UserInfo table by the
objectId field of the GUID data type.

Additional resources
Text functions
JSONVALUE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The JSONVALUE function parses data in JavaScript Object Notation (JSON) format that is accessed at the specified
path, and it extracts a scalar value that has the specified ID. It then returns the extracted scalar value as a String
value.

Syntax
JSONVALUE (input, path)

Arguments
input : String
The valid path of a data source of the String type that contains JSON data.
path : String
The identifier of a scalar value of JSON data.

Return values
String
The resulting text value.

Example
The JsonField data source contains the following data in JSON format: {"BuildNumber":"7.3.1234.1",
"KeyThumbprint":"7366E"} . In this case, the expression JSONVALUE (JsonField, "BuildNumber") returns the
following value of the String data type: "7.3.1234.1" .

Additional resources
Text functions
LEFT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The LEFT function returns a String value that presents the specified number of characters from the start of the
specified string.

Syntax
LEFT (text, number)

Arguments
text : String
A String value that represents the original text.
number : Integer
The number of characters that must be returned from the start of the original text.

Return values
String
The resulting text value.

Example
LEFT ("Sample", 3) returns "Sam" .

Additional resources
Text functions
LEN ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The LEN function returns the number of characters in the specified string as an Integer value.

Syntax
LEN (text)

Arguments
text : String
A String value that specifies the text.

Return values
Integer
The resulting numeric value.

Example
LEN ("Sample") returns 6 .

Additional resources
Text functions
LOWER ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The LOWER function returns the specified text string as a String value after it has been converted to lowercase
letters.

Syntax
LOWER (text)

Arguments
text : String
A String value that specifies the text.

Return values
String
The resulting text value.

Example
LOWER ("Sample") returns "sample" .

Additional resources
Text functions
MID ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The MID function returns a String value that presents the specified number of characters from the specified string,
starting at the specified position.

Syntax
MID (text, starting position, number of characters)

Arguments
text : String
A String value that specifies the text to return characters from.
starting position : Integer
An Integer value that specifies the position of the first character that must be returned from the specified text.
number of characters : Integer
An Integer value that specifies the number of characters that must be returned, starting at the specified starting
position.

Return values
String
The resulting text value.

Usage notes
If the value of the starting position argument is less than 0 (zero), the characters that are returned are counted
from the first position in the specified string.
If the value of the starting position argument exceeds length of the specified string, an empty string is returned.

Example
MID ("Sample", 2, 3) returns "amp" .

Additional resources
Text functions
NUMBERFORMAT ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The NUMBERFORMAT function returns a String value that presents the specified number in the specified format and in
an optionally specified culture. For information about the supported formats, see standard and custom.

Syntax 1
NUMBERFORMAT (number, format)

Syntax 2
NUMBERFORMAT (number, format, culture)

Arguments
number : Integer or Real
A numeric value that specifies the number that must be formatted.
format : String
A String value that represents the format.
culture : String
A String value that represents the culture to use for formatting.

Return values
String
The resulting text value.

Usage notes
If the culture isn't defined as an argument of the called function, the context that this function is run in determines
the culture that is used to format numbers.

Example 1
For the EN-US culture, NUMBERFORMAT (0.45, "p") returns "45.00 %" , and NUMBERFORMAT (10.45, "#") returns "10" .

Example 2
NUMBERFORMAT (10/3, "F2", "de") returns 3,33 , whereas NUMBERFORMAT (10/3, "F2", "en-us") returns 3.33 .

Additional resources
Text functions
NUMERALSTOTEXT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The NUMERALSTOTEXT function returns the specified number as a String value after it has been spelled out (that is,
converted to text strings) in the specified language.

Syntax
NUMERALSTOTEXT (number, language, currency, print currency name flag, decimal points)

Arguments
number : Integer or Real
A numeric value that specifies the number that must be spelled out.
language : String
A String value that represents the language code.
currency : String
A String value that represents the currency code.
print currency name flag : Boolean
A Boolean value that indicates whether a currency name must be added to the spelled-out text.
decimal points : Integer
An Integer value that indicates the number of decimal places that the spelled-out text should have.

Return values
String
The resulting text value.

Usage notes
The language code is optional. If it's defined as an empty string, the language code for the running context is used.
The default language code is EN-US . The language code for the running context is defined in a Folder or File
element of the Electronic reporting (ER) format that is running.
The currency code is optional. If it's defined as an empty string, the company currency for the running context is
used.
NOTE
The print currency name flag and decimal points arguments are analyzed only for the following language codes: CS,
ET , HU , LT , LV , PL , and RU . Additionally, the print currency name flag argument is analyzed only for companies where
the country's or region's context supports declension of currency names.

Example 1
NUMERALSTOTEXT (1234.56, "EN-US", "", false, 2) returns "One Thousand Two Hundred Thir ty Four and 56" .

Example 2
NUMERALSTOTEXT (120, "PL", "", false, 0) returns "Sto dwadzie ścia" .

Example 3
NUMERALSTOTEXT (120.21, "RU", "EUR", true, 2) returns " Сто двадцать евро 21 евроцент " .

Additional resources
Text functions
PADLEFT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The PADLEFT function returns a String value of the specified length, where the start of the specified string is padded
with the specified characters.

Syntax
PADLEFT (text, length, padding chars)

Arguments
text : String
A String value that represents the original text.
length : Integer
An Integer value that represents the final number of characters in the padded string.
padding chars : String
The characters to use for padding.

Return values
String
The resulting text value.

Example
PADLEFT ("1234", 10, " ") returns the text string " 1234" .

Additional resources
Text functions
Q RCODE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The QRCODE function returns a Container value that presents the Quick Response code (QR code) image for the
specified string in binary format.

Syntax
QRCODE (text)

Arguments
text : String
A String value that represents the original text.

Return values
Container
The resulting binary stream.

Example
You can configure an Electronic reporting (ER) format to generate an outbound document in Microsoft Office
format (Excel workbooks or Word documents) by using a predefined template. This template may contain a Picture
object (Excel workbook) or a Picture Content Control (Word document) as a placeholder for a QR code image.
You need to add to the configured ER format a Cell element that will be used to fill this placeholder in. To specify
what information will be stored in a QR code, you need to define a binding for this Cell element. For example, you
can configure such binding as containing the following expression:

QRCODE (model.ListOfShelfLabels.LabelText)`

When you run the configured ER format, the text value of the LabelText field of the model.ListOfShelfLabels
data source will be used to generate a QR code image. This image will replace a QR code image placeholder in the
document template using to generate an outbound document. When this image of the generated document is
scanned, it returns the text that was taken from the LabelText field of the model.ListOfShelfLabels data source.
For more information, see Embed images and shapes in documents that you generate by using ER.

Additional resources
Text functions
REPLACE ER f unct ion

4/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The REPLACE function returns the specified text string as a String value after all or part of it has been replaced with
another string.

Syntax
REPLACE (text, pattern, replacement, regular expression flag)

Arguments
text : String
The valid path of a data source of the String type.
pattern : String
If the regular expression flag argument is FALSE , this argument contains the text that must be replaced.
If the regular expression flag argument is TRUE , this argument contains a regular expression that defines both a
search pattern and the replacement text.
replacement : String
If the regular expression flag argument is FALSE , this argument contains the text to use as a replacement.
If the regular expression flag argument is TRUE , this argument isn't used.
regular expression flag : Boolean
A Boolean value that indicates whether a regular expression is used to do the replacement.

Return values
String
The resulting text value.

Usage notes
If the regular expression flag argument is TRUE , this function returns the specified string after it has been
changed by applying the regular expression that is specified by the pattern argument. The regular expression is
used to find the characters that must be replaced.
If the regular expression flag argument is FALSE , this function returns the specified string after the set of
characters that are defined in the pattern argument have been replaced by characters of the replacement
argument.

Example 1
REPLACE ("+1 923 456 4971", "[^0-9]", "", true) applies a regular expression that removes all non-numeric
symbols, and it returns "19234564971" .

Example 2
REPLACE ("abcdef", "cd", "GH", false) replaces the pattern "cd" with the string "GH" and returns "abGHef" .

Additional resources
Text functions
RIGHT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The RIGHT function returns a String value that presents the specified number of characters from the end of the
specified string.

Syntax
RIGHT (text, number)

Arguments
text : String
A String value that represents the original text.
number : Integer
The number of characters that must be returned from the end of the original text.

Return values
String
The resulting text value.

Example
RIGHT ("Sample", 3) returns "ple" .

Additional resources
Text functions
TEXT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The TEXT function returns the specified number as a String value after it has been converted to a text string that is
formatted according to the server locale settings of the current application instance.

Syntax
TEXT (number)

Arguments
number : Integer or Real
A number that must be converted to a text string.

Return values
String
The resulting text value.

Usage notes
For values of the Real type, the string conversion is limited to two decimal places.

Example
If the server locale of the Microsoft Dynamics 365 Finance instance is defined as EN-US , TEXT (NOW ()) returns the
current Finance session date, December 17, 2015, as the text string "12/17/2015 07:59:23 AM" . TEXT (1/3)
returns "0.33" .

Additional resources
Text functions
TRANSLATE ER f unct ion

4/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The TRANSLATE function returns a String value that contains the result of the character replacement of specified text
in characters of another provided set.

Syntax
TRANSLATE (text , pattern, replacement)

Arguments
text : String
The valid path of a data source of the String type.
pattern : String
The text that must be replaced.
replacement : String
The text to use as a replacement.

Return values
String
The resulting text value.

Usage notes
The TRANSLATE function replaces one character at a time. The function replaces the first character of the text
argument with the first character of the pattern argument and then the second character and follows the same
flow until finished. When a character from the text and pattern arguments match, it is replaced by a character
from the replacement argument that is located in the same position as the character from the pattern argument.
If a character appears multiple times in the pattern argument, the replacement argument mapping that
corresponds to the first occurrence of this character is used.

Example 1
TRANSLATE ("abcdef", "cd", "GH") replaces the "c" character of the specified “abcdef ” text with the "G" character
of the replacement text due to the following:
The "c" character is presented in the pattern text in the first position.
The first position of the replacement text contains the "G" character.

Example 2
TRANSLATE ("abcdef", "ccd", "GH") returns "abGdef" .

Example 3
TRANSLATE ("abccba", "abc", "123") returns "123321" .

Additional resources
Text functions
TRIM ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The TRIM function returns the specified text string as a String value after leading and trailing spaces have been
truncated, and after multiple spaces between words have been removed.

Syntax
TRIM (text )

Arguments
text : String
The valid path of a data source of the String type.

Return values
String
The resulting text value.

Example
TRIM (" Sample text ") returns "Sample text" .

Additional resources
Text functions
UPPER ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The UPPER function returns the specified text string as a String value after it has been converted to uppercase
letters.

Syntax
UPPER (text )

Arguments
text : String
The valid path of a data source of the String type.

Return values
String
The resulting text value.

Example
UPPER ("Sample") returns "SAMPLE" .

Additional resources
Text functions
List of ER functions in the data collection category
12/19/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Electronic reporting (ER) data collection functions are used to do counting and summing in an ER format that is
being run, based on data of the output that has already been generated in Text or Xml format. This approach is
used to help improve performance of an ER format that is run, to enter values of running totals in generated
documents, and for other purposes. This topic provides a summary of these functions.

List of supported functions


F UN C T IO N DESC RIP T IO N

CollectedList This function returns a Record list value that contains the list
of values that were returned by the Collected data key
value property of format elements and collected when the
format elements were used to generate an outbound
document during the format run, and that satisfies the
specified conditions. Each condition consists of a key range
and a key value.

CountIF This function returns an Integer value that represents the


number of format elements that was collected when the
format elements were used to generate an outbound
document during the format run, and that satisfies the
specified condition. The condition consists of a key range and
a key value.

CountIFs This function returns an Integer value that represents the


number of format elements that was collected when the
format elements were used to generate an outbound
document during the format run, and that satisfies the
specified conditions. Each condition consists of a key range
and a key value.

FormatElementName This function returns a String value that represents the name
of the current ER format's element.

SumIF This function returns a Real value that represents the sum of
values that were returned by bindings of format elements and
collected when the format elements were used to generate an
outbound document during the format run, and that satisfies
the specified condition. The condition consists of a key range
and a key value.
F UN C T IO N DESC RIP T IO N

SumIFs This function returns a Real value that represents the sum of
values that were returned by bindings of format elements and
collected when the format elements were used to generate an
outbound document during the format run, and that satisfies
the specified conditions. Each condition consists of a key
range and a key value.

Additional resources
Electronic Reporting overview
Formula designer in Electronic reporting
Electronic reporting formula language
COLLECTEDLIST ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The COLLECTEDLIST function a Record list value that contains the list of values that were returned by the Collected
data key value property of format elements and collected when the format elements were used to generate
outbound documents during the format run, and that satisfies the specified conditions. Each condition consists of a
key range and a key value.

Syntax
COLLECTEDLIST (condition 1 range, condition 1 value[, condition 2 range, condition 2 value, …, condition N
range, condition N value])

Arguments
condition 1 range : String
A value that is returned by the expression that has been configured in the Collected data key name property of
an Electronic reporting (ER) format component. This argument is mandatory.
condition 1 value : String
A value that is returned by the expression that has been configured in the Collected data key value property of
an ER format component. This argument is mandatory.
condition N range : String
A value that is returned by the expression that has been configured in the Collected data key name property of
an ER format component. These additional arguments are optional.
condition N value : String
A value that is returned by the expression that has been configured in the Collected data key value property of
an ER format component. These additional arguments are optional.

Return values
Record list
The resulting list of records.

Usage notes
The Collected data key name and Collected data key value properties can be configured for either the
Sequence component or the XML Element component of an ER format that resides under the Common\File
component where the Collect output details option is turned on.
This function returns an empty list when the Collect output details option of the current Common\File
component is turned off.
In condition range arguments, the wildcard character "*" can be used to represent any multiple characters.
In condition value arguments, the wildcard character "*" can be used to represent any multiple characters.

Example
For more information about how to use this function, see the ER Use data of format output for counting and
summing task guide, which is part of the Acquire/Develop IT ser vice/solution components business process.

Additional resources
Data collection functions
COUNTIF ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The COUNTIF function returns an Integer value that represents the number of format elements that was collected
when the format elements were used to generate an outbound document during the format run, and that satisfies
the specified condition. The condition consists of a key range and a key value.

Syntax
COUNTIF (condition range, condition value)

Arguments
condition range : String
A value that is returned by the expression that has been configured in the Collected data key name property of
an Electronic reporting (ER) format component.
condition value : String
A value that is returned by the expression that has been configured in the Collected data key value property of
an ER format component.

Return values
Integer
The resulting numeric value.

Usage notes
The Collected data key name and Collected data key value properties can be configured for either the
Sequence component or the XML Element component of an ER format that resides under the Common\File
component where the Collect output details option is turned on.
This function returns a 0 (zero) value when the Collect output details option of the current Common\File
component is turned off.
In the condition range argument, the wildcard character "*" can be used to represent any multiple characters.
In the condition value argument, the wildcard character "*" can be used to represent any multiple characters.

Example
For more information about how to use this function, see the ER Use data of format output for counting and
summing task guide, which is part of the Acquire/Develop IT ser vice/solution components business process.
Additional resources
Data collection functions
COUNTIFS ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The COUNTIFS function returns an Integer value that represents the number of format elements that was collected
when the format elements were used to generate an outbound document during the format run, and that satisfies
the specified conditions. Each condition consists of a key range and a key value.

Syntax
COUNTIFS (condition 1 range, condition 1 value[, condition 2 range, condition 2 value, …, condition N range,
condition N value])

Arguments
condition 1 range : String
A value that is returned by the expression that has been configured in the Collected data key name property of
an Electronic reporting (ER) format component. This argument is mandatory.
condition 1 value : String
A value that is returned by the expression that has been configured in the Collected data key value property of
an ER format component. This argument is mandatory.
condition N range : String
A value that is returned by the expression that has been configured in the Collected data key name property of
an ER format component. These additional arguments are optional.
condition N value : String
A value that is returned by the expression that has been configured in the Collected data key value property of
an ER format component. These additional arguments are optional.

Return values
Integer
The resulting numeric value.

Usage notes
The Collected data key name and Collected data key value properties can be configured for either the
Sequence component or the XML Element component of an ER format that resides under the Common\File
component where the Collect output details option is turned on.
This function returns a 0 (zero) value when the Collect output details option of the current Common\File
component is turned off.
In condition range arguments, the wildcard character "*" can be used to represent any multiple characters.
In condition value arguments, the wildcard character "*" can be used to represent any multiple characters.

Example
For more information about how to use this function, see the ER Use data of format output for counting and
summing task guide, which is part of the Acquire/Develop IT ser vice/solution components business process.

Additional resources
Data collection functions
FORMATELEMENTNAME ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The FORMATELEMENTNAME function returns a String value that represents the name of the current Electronic reporting
(ER) format's element.

Syntax
FORMATELEMENTNAME ()

Return values
String
The resulting text value.

Usage notes
This function can be called in ER expressions that were configured for the Collected data key name and
Collected data key value properties of an ER format component from the Text group that resides under the
Common\File component where the Collect output details option is turned on.

Example
For more information about how to use this function, see the ER Use data of format output for counting and
summing task guide, which is part of the Acquire/Develop IT ser vice/solution components business process.

Additional resources
Data collection functions
SUMIF ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The SUMIF function returns a Real value that represents the sum of values that were returned by bindings of
format elements and collected when the format elements were used to generate an outbound document during
the format run, and that satisfies the specified condition. The condition consists of a key range and a key value.

Syntax
SUMIF (key name for summing, condition range, condition value)

Arguments
key name for summing : String
A value that is returned by the expression that has been configured in the Collected data key name property of
the Electronic reporting (ER) format component for which the value of the binding must be used for summing
purposes.
The Collected data key value property can be configured for either a Sequence component or an XML
Element component of an ER format that resides under the Common\File component where the Collect output
details option is turned on.

Return values
Real
The resulting numeric value.

Usage notes
This function returns a 0 (zero) value when the Collect output details option of the current Common\File
component is turned off.
In the condition range argument, the wildcard character "*" can be used to represent any multiple characters.
In the condition value argument, the wildcard character "*" can be used to represent any multiple characters.

Example
For more information about how to use this function, see the ER Use data of format output for counting and
summing task guide, which is part of the Acquire/Develop IT ser vice/solution components business process.

Additional resources
Data collection functions
SUMIFS ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The SUMIFS function returns a Real value that represents the sum of values that were returned by bindings of
format elements and collected when the format elements were used to generate an outbound document during the
format run, and that satisfies the specified conditions. Each condition consists of a key range and a key value.

Syntax
SUMIFS (key name for summing, condition 1 range, condition 1 value[, condition 2 range, condition 2 value, …,
condition N range, condition N value])

Arguments
key name for summing : String
A value that is returned by the expression that has been configured in the Collected data key name property of
the Electronic reporting (ER) format component for which the value of the binding must be used for summing
purposes.
The Collected data key name property can be configured for either a Numeric component or a String
component of an ER format that resides under the Common\File component where the Collect output details
option is turned on.
condition 1 range : String
A value that is returned by the expression that has been configured in the Collected data key name property of
an ER format component. This argument is mandatory.
The Collected data key name property can be configured for either a Sequence component or an XML
Element component of an ER format that resides under the Common\File component where the Collect output
details option is turned on.
condition 1 value : String
A value that is returned by the expression that has been configured in the Collected data key value property of
an ER format component. This argument is mandatory.
The Collected data key value property can be configured for either a Sequence component or an XML
Element component of an ER format that resides under the Common\File component where the Collect output
details option is turned on.
condition N range : String
A value that is returned by the expression that has been configured in the Collected data key name property of
an ER format component. These additional arguments are optional.
The Collected data key name property can be configured for either a Sequence component or an XML
Element component of an ER format that resides under the Common\File component where the Collect output
details option is turned on.
condition N value : String
A value that is returned by the expression that has been configured in the Collected data key value property of
an ER format component. These additional arguments are optional.
The Collected data key value property can be configured for either a Sequence component or an XML
Element component of an ER format that resides under the Common\File component where the Collect output
details option is turned on.

Return values
Real
The resulting numeric value.

Usage notes
This function returns a 0 (zero) value when the Collect output details option of the current Common\File
component is turned off.
In the condition range arguments, the wildcard character "*" can be used to represent any multiple characters.
In the condition value arguments, the wildcard character "*" can be used to represent any multiple characters.

Example
For more information about how to use this function, see the ER Use data of format output for counting and
summing task guide, which is part of the Acquire/Develop IT ser vice/solution components business process.

Additional resources
Data collection functions
List of ER functions in the business domain–specific
category
12/19/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Electronic reporting (ER) domain-specific functions can be used to perform calculations and data access requests
that are specific to the implementation of Microsoft Dynamics 365 Finance. This topic provides a summary of
these functions.

List of supported functions


F UN C T IO N DESC RIP T IO N

CH_Bank_Mod_10 This function returns a String value that represents a creditor


reference as an MOD10 expression, based on the digits of
the specified invoice number.

CN_GBT_AdditionalDimensionID This function returns a String value that represents a single


financial dimension ID that is taken from the specified string.
The specified string presents all dimensions as a comma-
separated list of IDs.

ConvertCurrency This function returns a Real value that represents the result of
converting the specified monetary amount from the specified
source currency to the specified target currency by using the
settings of the specified company on the specified date.

CurCredRef This function returns a String value that represents a creditor


reference, based on the digits of the specified invoice number.

FA_Balance This function returns a Container (record) value that consists


of data for the fixed asset balance for the specified fixed asset
item, value model code, reporting year, and reporting date.

FA_Sum This function returns a Container (record) value that consists


of data for the fixed asset amounts for the specified fixed
asset item, value model code, and period of dates.

GetCurrentCompany This function returns a String value that represents the code
for the legal entity (company) that a user is currently signed
in to.

ISOCredRef This function returns a String value that represents an


International Organization for Standardization (ISO) creditor
reference, based on the digits and alphabetic symbols of the
specified invoice number.
F UN C T IO N DESC RIP T IO N

IsValidCharacterISO7064 This function returns a Boolean value of TRUE if the specified


string represents a valid international bank account number
(IBAN). Otherwise, it returns a Boolean value of FALSE .

Mod_97 This function returns a String value that represents a creditor


reference as a MOD97 expression, based on the digits of the
specified invoice number.

NumSeqValue This function returns a String value that represents the new
generated value of a number sequence, based on the
specified number sequence, scope, and scope ID. The scope
ID equals the company code that is supplied by the context
that the ER format is run under.

RoundAmount This function returns a Real value that represents the result of
rounding the specified amount to the specified number of
decimal places according to the specified rounding rule.

TableName2ID This function returns a numeric representation of the table ID


for the specified table name as an Integer value.

Additional resources
Electronic Reporting overview
Formula designer in Electronic reporting
Electronic reporting formula language
CH_BANK_MOD_10 ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The CH_BANK_MOD_10 function returns a String value that represents a creditor reference as an MOD10 expression,
based on the digits of the specified invoice number.

Syntax
CH_BANK_MOD_10 (invoice number digits)

Arguments
invoice number digits : String
A text value that represents the digits of an invoice number.

Return values
String
The resulting text value.

Example
CH_BANK_MOD_10 ("VEND-200002") returns 3 .

Additional resources
Other (business domain–specific) functions
CN_GBT_ADDITIO NALDIM ENSIO NID ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The CN_GBT_ADDITIONALDIMENSIONID function returns a String value that represents a single financial dimension ID
that is taken from the specified string. The specified string presents all dimensions as a comma-separated list of IDs.

Syntax
CN_GBT_ADDITIONALDIMENSIONID (text, number)

Arguments
text : String
A String value that presents all dimensions as a comma-separated list of IDs.
number : Integer
An Integer value that defines the sequence code of the requested dimension in the specified string.

Return values
String
The resulting text value.

Example
CN_GBT_AdditionalDimensionID ("AA,BB,CC,DD,EE,FF,GG,HH", 3) returns "CC" .

Additional resources
Other (business domain–specific) functions
CONVERTCURRENCY ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The CONVERTCURRENCY function returns a Real value that represents the result of converting the specified monetary
amount from the specified source currency to the specified target currency by using the settings of the specified
company on the specified date.

Syntax
CONVERTCURRENCY (amount, source currency, target currency, date, company)

Arguments
amount : Integer or Real
A numeric value that represents the monetary amount that must be converted.
source currency : String
The code of the source currency.
target currency : String
The code of the target currency.
date : Date
A Date value that represents the date that is used to determine the exchange rate for the conversion.
company : String
A String value that represents the code of a company that supplies the settings that are used for the conversion.

Return values
Real
The resulting numeric value.

Example
CONVERTCURRENCY (1, "EUR", "USD", TODAY(), "DEMF")returns the equivalent of one euro in US dollars on the current
session date, based on settings for the DEMF company.

Additional resources
Other (business domain–specific) functions
CURCREDREF ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The CURCREDREF function returns a String value that represents a creditor reference, based on the digits of the
specified invoice number.

Syntax
CURCREDREF (invoice number digits)

Arguments
invoice number digits : String
A text value that represents the digits of an invoice number.

Return values
String
The resulting text value.

Example
CURCredRef ("VEND-200002") returns "2200002" .

Additional resources
Other (business domain–specific) functions
FA_BALANCE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The FA_BALANCE function returns a Container (record) value that consists of data for the fixed asset balance for the
specified fixed asset item, value model code, reporting year, and reporting date.

Syntax
FA_BALANCE (fixed asset code, value model code, reporting year, reporting date)

Arguments
fixed asset code : String
A String value that represents the code of a fixed asset item that the balance is calculated for.
value model code : String
A String value that represents the code of a value model that the balance is calculated for.
reporting year : Enumeration value
An enumeration value of the AssetYear application enumeration that defines a period for the balance calculation.
reporting date : Date
A Date value that defines a date for the balance calculation.

Return values
Container (record)
The resulting record value.

Example
returns the data container of
FA_ BALANCE ("COMP-000001", "Current", AxEnumAssetYear.ThisYear, SESSIONTODAY ())
balances for fixed asset COMP-000001 that has been prepared for the Current value model on the current
application session date.

Additional resources
Other (business domain–specific) functions
FA_SUM ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The FA_SUM function returns a Container (record) value that consists of data for the fixed asset amounts for the
specified fixed asset item, value model code, and period of dates.

Syntax
FA_SUM (fixed asset code, value model code, start date, end date)

Arguments
fixed asset code : String
A String value that represents the code of a fixed asset item that the balance is calculated for.
value model code : String
A String value that represents the code of a value model that the balance is calculated for.
start date : Date
A Date value that represents the start date of a period that the fixed asset amounts are calculated for.
end date : Date
A Date value that represents the end date of a period that the fixed asset amounts are calculated for.

Return values
Container (record)
The resulting record value.

Example
FA_SUM ("COMP-000001", "Current", Date1, Date2)returns the data container for fixed asset COMP-000001 that
has been prepared for the Current value model and for a period from Date1 to Date2 .

Additional resources
Other (business domain–specific) functions
GETCURRENTCOMPANY ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The GETCURRENTCOMPANY function returns a String value that represents the code for the legal entity (company) that a
user is currently signed in to.

Syntax
GETCURRENTCOMPANY ()

Return values
String
The resulting text value.

Example
GETCURRENTCOMPANY () returns USMF for a user who is signed in to the Contoso Enter tainment System USA
company.

Additional resources
Other (business domain–specific) functions
ISOCREDREF ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ISOCREDREF function returns a String value that represents an International Organization for Standardization
(ISO) creditor reference, based on the digits and alphabetic symbols of the specified invoice number.

Syntax
ISOCREDREF (invoice number digits)

Arguments
invoice number digits : String
A text value that represents the digits of an invoice number.

Return values
String
The resulting text value.

Usage notes
NOTE
To eliminate symbols from alphabets that are't ISO-compliant, the invoice number digits argument must be translated
before it's passed to this function.

Example
ISOCredRef ("VEND-200002") returns "RF23VEND-200002" .

Additional resources
Other (business domain–specific) functions
ISVALIDCHARACTERISO7064 ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ISVALIDCHARACTERISO7064 function returns a Boolean value of TRUE if the specified string represents a valid
international bank account number (IBAN). Otherwise, it returns a Boolean value of FALSE .

Syntax
ISVALIDCHARACTERISO7064 (text)

Arguments
text : String
A text value that represents an IBAN.

Return values
String
The resulting text value.

Example
ISVALIDCHARACTERISO7064 ("AT61 1904 3002 3457 3201") returns TRUE .
ISVALIDCHARACTERISO7064 ("AT61") returns FALSE .

Additional resources
Other (business domain–specific) functions
MOD_97 ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The MOD_97 function returns a String value that represents a creditor reference as a MOD97 expression, based on
the digits of the specified invoice number.

Syntax
MOD_97 (invoice number digits)

Arguments
invoice number digits : String
A text value that represents the digits of an invoice number.

Return values
String
The resulting text value.

Example
MOD_97 ("VEND-200002") returns "20000285" .

Additional resources
Other (business domain–specific) functions
NUMSEQ VALUE ER f unct ion

2/12/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The NUMSEQVALUE function returns a String value that represents the new generated value of a number sequence,
based on the specified number sequence, scope, and scope ID. The scope ID equals the company code that is
supplied by the context that the Electronic reporting (ER) format is run under.

Syntax 1
NUMSEQVALUE (number sequence code)

Syntax 2
NUMSEQVALUE (number sequence record ID)

Syntax 3
NUMSEQVALUE (number sequence code, scope type, scope ID)

Arguments
number sequence code : String
A text value that represents the code of the number sequence that a new value is required in.
number sequence record ID : Int64
An Int64 value that represents the record ID of a record in the NumberSequenceTable table that contains the
definition of the number sequence that a new value is required in.
scope type : Enum value
An enumeration value of the ERExpressionNumberSequenceScopeType enumeration that defines the scope of
the number sequence that a new value is required in. The available scope types are Shared , Legal entity , and
Company .
scope ID : String
A String value that identifies the scope, based on the specified scope type.

Return values
String
The resulting text value.

Usage notes
For the Shared scope type, specify an empty string as the scope ID.
For the Company and Legal entity scope types, specify the company code as the scope ID. If you specify an
empty string as the scope ID for these scope types, the current company code is used.
When syntax 1 is used, the number sequence is requested for the Company scope type, and the company code is
supplied by the context that the ER format is run under.

Example 1
In your ER format, you define the AskNumSeq data source of the User input parameter type. This data source
refers to the Description extended data type (EDT). Next, you define the NumSeq data source of the Calculated
field type. This data source contains the expression NUMSEQVALUE (AskNumSeq) . When the NumSeq data source is
called, it returns the new generated value of the number sequence that was specified at runtime by entering its
code in the dialog box. The number sequence is requested for the Company scope type. The company code is
supplied by the context that the ER format is run under.

Example 2
The following data sources are defined in your model mapping:
The LedgerParms data source of the Table type. This data source refers to the LedgerParameters table.
The NumSeq data source of the Calculated field type. This data source contains the expression
NUMSEQVALUE ( LedgerParameters.'numRefJournalNum()'.NumberSequenceId) .

When the NumSeq data source is called, it returns the new generated value of the number sequence that has been
configured in the General ledger parameters for the company that supplies the context that the ER format is run
under. This number sequence uniquely identifies journals and acts as a batch number that links the transactions
together.

Example 3
The following data sources are defined in your model mapping:
The enumScope data source of the Microsoft Dynamics 365 Finance enumeration type. This data source refers
to the ERExpressionNumberSequenceScopeType enumeration.
The NumSeq data source of the Calculated field type. This data source contains the expression
NUMSEQVALUE ("Gene_1", enumScope.Company, "") .

When the NumSeq data source is called, it returns the new generated value of the Gene_1 number sequence that
has been configured for the company that supplies the context that the ER format is run under.

Additional resources
Other (business domain–specific) functions
ROUNDAMOUNT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The ROUNDAMOUNT function returns a Real value as the result of the rounding of the specified number to the nearest
multiple of another number according to the specified rounding rule.

Syntax
ROUNDAMOUNT (number, decimals, round rule)

Arguments
number : Int or Real
A numeric value that must be rounded.
decimals : Int or Real
The number that the value of the number parameter must be rounded to a multiple of.
round rule : Enum value
An enumeration value of the RoundOffType enumeration that defines the rounding rule. This enumeration offers
the following values:
Normal (Ordinary)
Downward (RoundDown)
Rounding-up (RoundUp)

Return values
Real
The resulting numeric value is a multiple of the value specified by the decimals parameter and is closest to the
value specified by the number parameter.

Usage notes
When the number parameter is zero, this function always returns zero.
When the decimals parameter is zero, this function rounds to the default round-off value. When the round rule
parameter is set to RoundOffType.Ordinar y , the default round-off value is 0.01 . Otherwise, the default round-off
value is 1.0 .
When the round rule parameter is set to RoundOffType.Ordinar y , this function rounds to the nearest round-off
amount.
When the round rule parameter is set to RoundOffType.RoundDown , this function rounds towards zero to the
nearest round-off amount.
When the round rule parameter is set to RoundOffType.RoundUp , this function rounds away from zero to the
nearest round-off amount.
When the round rule parameter is set to RoundOffType.Ordinar y , this function behaves like the MROUND Excel
function and the ROUND X++ function.

Remarks
To round a numeric value to a specified number of decimal places, use the ROUND function.

Example
If the model.RoundOff parameter is set to RoundOffType.Ordinar y , ROUNDAMOUNT (7.45, 1.05, model.RoundOff)
returns 7.35.
If the model.RoundOff parameter is set to RoundOffType.RoundDown ,
ROUNDAMOUNT (7.45, 1.05, model.RoundOff) returns 7.35.

If the model.RoundOff parameter is set to RoundOffType.RoundUp , ROUNDAMOUNT (7.45, 1.05, model.RoundOff)


returns 8.4.

Additional resources
Other (business domain–specific) functions
Mathematical functions
TABLENAME2ID ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The TABLENAME2ID function returns a numeric representation of the table ID for the specified table name as an
Integer value.

Syntax
TABLENAME2ID (text)

Arguments
text : String
A text value that represents a valid table name.

Return values
Integer
The resulting numeric value.

Usage notes
Execution of this function can have different results in different instances of Microsoft Dynamics 365 Finance, even
if the same company name is used.

Example
TABLENAME2ID ("Intrastat") returns 1510 .

Additional resources
Other (business domain–specific) functions
List of ER functions in the type conversion category
12/19/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Electronic reporting (ER) type conversion functions can be used to convert values between types. This topic
provides a summary of these functions.

Type conversion functions


F UN C T IO N DESC RIP T IO N

Int64Value This function returns an Int64 value that represents the


specified string.

IntValue This function returns an Int value that represents the specified
string.

NumberValue This function returns a Real value that is converted from the
specified String value. During the conversion, the specified
decimal and digit grouping separators are considered.

Value This function returns a Real value that is converted from the
specified String value.

Type conversion functions in the date and time category


The following table describes the type conversion functions in the date and time category.

F UN C T IO N DESC RIP T IO N

DateTimeValue This function returns a DateTime value that is converted from


a given String value in the specified format and in an
optionally specified culture to a date/time value.

DateToDateTime This function returns a DateTime value that is converted from


a given Date value to a date/time value in Coordinated
Universal Time (Greenwich Mean Time [GMT]).

DateValue This function returns a Date value that is converted from a


given String value in the specified format and in an optionally
specified culture to a date value.

Type conversion functions in the list category


The following table describes the type conversion functions in the list category.
F UN C T IO N DESC RIP T IO N

List This function returns a Record list value as a new list that is
created from specified arguments of the Container (record)
type.

ListOfFields This function returns a Record list value that is created based
on the structure of a given argument of the Enumeration or
Container (record) type.

Split This function splits the specified String value into substrings
and returns the result as a new Record list value.

StringJoin This function returns a String value that consists of


concatenated values of the specified field from the specified
Record list value. The values can be separated by the specified
delimiter.

Type conversion functions in the text category


The following table describes the type conversion functions in the text category.

F UN C T IO N DESC RIP T IO N

Char This function returns a String value that represents a single


character that is referenced by the specified Unicode number.

GuidValue This function converts the specified input of the String type to
a data item of the GUID type.

NumberFormat This function returns a String value that represents the


specified number in the specified format and in an optionally
specified culture.

QrCode This function returns a Container value that presents the


Quick Response code (QR code) image for the specified string
in binary format.

Text This function returns a String value that represents the


specified number after it has been converted to a text string
that is formatted according to the server locale settings of the
current application instance.

Additional resources
Electronic Reporting overview
Formula designer in Electronic reporting
Electronic reporting formula language
INT64VALUE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The INT64VALUE function returns an Int64 value that represents the specified string.

Syntax 1
INT64VALUE (text)

Syntax 2
INT64VALUE (number)

Arguments
text : String
A text value that must be converted to an Int64 number.
number : Real or Integer
A numeric Real or Integer value that must be converted to an Int64 number.

Return values
Int64
The resulting numeric value.

Usage notes
Any decimal places are truncated.

Example 1
INT64VALUE ("22565422744") returns the Int64 value 22565422744 .

Example 2
INT64VALUE ( VALUE("22565422744.77")) returns the Int64 value 22565422744 .

Additional resources
Type conversion functions
INTVALUE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The INTVALUE function returns an Int value that represents the specified string.

Syntax 1
INTVALUE (text)

Syntax 2
INTVALUE (number)

Arguments
text : String
A text value that must be converted to an Int number.
number : Real or Integer
A numeric Real or Integer value that must be converted to an Int number.

Return values
Int
The resulting numeric value.

Usage notes
Any decimal places are truncated.

Example 1
INTVALUE ("100.77") returns the Int value 100 .

Example 2
INTVALUE (-100.77) returns the Int value -100 .

Additional resources
Type conversion functions
NUMBERVALUE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The NUMBERVALUE function returns a Real value that is converted from the specified String value. During the
conversion, the specified decimal and digit grouping separators are considered.

Syntax
NUMBERVALUE (text, decimal separator, digit grouping separator)

Arguments
text : String
A text value that must be converted to a Real number.
decimal separator : String
A decimal separator. It's used to separate the integer and fractional parts of a decimal number.
digit grouping separator : String
A digit grouping separator. It's used as the thousands separator.

Return values
Real
The resulting numeric value.

Example
NUMBERVALUE( "1 234,56", ",", " ") returns 1234.56 .

Additional resources
Type conversion functions
VALUE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The VALUE function returns a Real value that is converted from the specified string.

Syntax
VALUE (text)

Arguments
text : String
A string value that must be converted to a numeric value.

Return values
Real
The resulting numeric value.

Usage notes
Commas and dot characters (.) are considered decimal separators, and a leading hyphen (-) is used as a negative
sign. An exception is thrown at runtime if the specified string contains other non-numeric characters.

Example 1
VALUE ("1 234,56") throws an exception.

Example 2
VALUE ("1234,56") returns 1234.56 .

Additional resources
Type conversion functions
DATETIM EVALUE ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The DATETIMEVALUE function returns a DateTime value that is converted from a given text value in the specified
format and in an optionally specified culture to a date/time value. For information about the supported formats,
see standard and custom.

Syntax 1
DATETIMEVALUE (text, format)

Syntax 2
DATETIMEVALUE (text, format, culture)

Arguments
text : String
Text that represents the value to format.
format : String
The format of the given text.
culture : String
The culture that is used for formatting of the given text.

Return values
DateTime
The resulting date/time value.

Usage notes
When the culture isn't defined as an argument of the called function, the value of culture is defined by the calling
context. For example, if the DATETIMEVALUE function is called by using syntax 1 in an Electronic reporting (ER)
format for a FILE element that is configured to use the German culture, the conversion will be done by using the
German culture. The default culture value is EN-US .

Example 1
DATETIMEVALUE ("21-Dec-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss") returns 2:55:00 AM on December 21, 2016 ,
based on the specified custom format and the default application's EN-US culture.

Example 2
DATETIMEVALUE ("21-Gen-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss", "IT") returns 2:55:00 AM on December 21,
2016 , based on the specified custom format and culture.
However, DATETIMEVALUE ("21-Gen-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss", "EN-US") throws an exception to inform
the user that the specified string isn't recognized as a valid date/time value for the specified culture.

Additional resources
Date and time functions
DATETODATETIM E ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The DATETODATETIME function returns a DateTime value that is converted from a given date value to a date/time
value in Coordinated Universal Time (Greenwich Mean Time [GMT]).

Syntax
DATETODATETIME (date)

Arguments
date : Date
A date value that represents the date to convert.

Return values
DateTime
The resulting date/time value.

Example 1
returns the date of the current Microsoft Dynamics 365 Finance
DATETODATETIME (CompInfo. 'getCurrentDate()')
session, December 24, 2015, as 12/24/2015 12:00:00 AM . In this example, CompInfo is an Electronic reporting
(ER) data source of the Finance and Operations/Table type, and it refers to the CompanyInfo table.

Example 2
DATETODATETIME (DATEVALUE ("2019-11-12T16:00:00.0000000-07:00", "O")) returns the date/time value 11/12/2019
12:00:00 AM .

Additional resources
Date and time functions
DATEVALUE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The DATEVALUE function returns a Date value that is converted from a given text value in the specified format and
in an optionally specified culture to a date value. For information about the supported formats, see standard and
custom.

Syntax 1
DATEVALUE (text, format)

Syntax 2
DATEVALUE (text, format, culture)

Arguments
text : String
Text that represents the value to format.
format : String
The format of the given text.
culture : String
The culture that is used for formatting of the given text.

Return values
Date
The resulting date value.

Usage notes
When the culture isn't defined as an argument of the called function, the value of culture is defined by the calling
context. For example, if the DATEVALUE function is called by using syntax 1 in an Electronic reporting (ER) format for
a FILE element that is configured to use the German culture, the conversion will be done by using the German
culture. The default culture value is EN-US .

Example 1
DATEVALUE ("21-Dec-2016", "dd-MMM-yyyy") returns the date value December 21, 2016 , based on the specified
custom format and the default application's EN-US culture.

Example 2
DATEVALUE ("21-Gen-2016", "dd-MMM-yyyy", "IT") returns the date value Januar y 21, 2016 , based on the specified
custom format and culture.
However, DATEVALUE ("21-Gen-2016", "dd-MMM-yyyy", "EN-US") throws an exception to inform the user that the
specified string isn't recognized as a valid date for the specified culture.

Additional resources
Date and time functions
LIST ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The LIST function returns a Record list value that consists of a new list of records that is created from the specified
arguments.

Syntax
LIST (record 1 [, record 2, …, record N])

Arguments
record 1 : Container (record)
A reference to a data source of the Record data type. This argument is required.
record N : Container (record)
A reference to a data source of the Record data type. These additional arguments are optional.

Return values
Record list
The resulting list of records.

Usage notes
The structure of the list that is created contains only the fields that are presented in the structure of every record
that is mentioned in the arguments.

Example
You enter data source Record 1 of the Container type. This data source contains the following nested fields of the
Calculated field type:
Code: This field contains an expression that returns a value of the String type.
Amount: This field contains an expression that returns a value of the Real type.
You then enter data source Record 2 of the Container type. This data source contains the following nested fields of
the Calculated field type:
Amount: This field contains an expression that returns a value of the Real type.
IsValid: This field contains an expression that returns a value of the Boolean type.
In this case, the expression LIST('Record 1', 'Record 2') returns a new list that contains two records. The structure
of this list consists of a single Amount field of the Real type, because this field is the only field that is presented in
every argument of the called function.

Additional resources
List functions
LISTOFFIELDS ER f unct ion

2/12/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The LISTOFFIELDS function returns a Record list value that is created based on the structure of the specified
argument of the Enumeration or Container (record) type.

Syntax 1
LISTOFFIELDS (path)

Syntax 2
LISTOFFIELDS (path, language)

Arguments
path : Data source reference
The valid reference path of a data source of one of the following data types:
Model enumeration
Format enumeration
Application enumeration
Container (record)
language : String
Text that represents a language code.

Return values
Record list
The resulting list of records.

Usage notes
The list that is created consists of records that have the following fields:
Name (String data type)
Label (String data type)
Description (String data type)
IsTranslated (Boolean data type)
If the path argument refers to a data source of the Container (Record) type, for every field of the referenced
container record, a new record is added to the list that is created. For every record that is created, the Name field
returns the name of the field of the referenced container record that the current record was created for.
If the path argument refers to a data source of one of the Enumeration types, for every enumeration value of the
referenced enumeration, a new record is added to the list that is created. For every record that is created, the
Name field returns the value of the referenced enumeration that the current record was created for, the
Description field returns the description of that enumeration, and the Label field returns the label of that
enumeration.
At runtime, when syntax 1 is used, the Label and Description fields must return values that are based on the
language settings of the Electronic reporting (ER) format that is running:
If the labels and descriptions for the requested language are available, the Label and Description fields return
values that are based on that language, and the IsTranslated field returns True .
If the labels and descriptions for the requested language aren't available, the Label and Description fields
return values that are based on the default EN-US language, and the IsTranslated field returns False .
At runtime, when syntax 2 is used, the Label and Description fields must return values that are based on the
language that is defined as the second argument of the called function:
If the labels and descriptions for the requested language are available, the Label and Description fields return
values that are based on that language, and the IsTranslated field returns True .
If the labels and descriptions for the requested language aren't available, the Label and Description fields
return values that are based on the EN-US language, and the IsTranslated field returns False .

Example 1
In the following illustration, an enumeration is introduced in an ER data model.

The following illustration shows these details:


The model enumeration is inserted into a report as a data source.
An ER expression uses the model enumeration as a parameter of the LISTOFFIELDS function.
A data source of the Record list type is inserted into a report by using the ER expression that is created.
The following example shows the ER format elements that are bound to the data source of the Record list type that
was created by using the LISTOFFIELDS function.

The following illustration shows the result when the designed format is run.

NOTE
Based on the language settings of the parent FILE and FOLDER format elements, translated text for labels and descriptions
is entered in the output of the ER format.

Example 2
You use the Calculated field data source type to configure enumType_de and enumType_deCH data sources for
the enumType data model enumeration:
enumType_de = LISTOFFIELDS (enumType, "de")
enumType_deCH = LISTOFFIELDS (enumType, "de-CH")

In this case, you can use the following expression to get the label of the enumeration value in Swiss German, if that
translation is available. If the Swiss German translation isn't available, the label is in German.
IF (NOT (enumType_deCH.IsTranslated), enumType_de.Label, enumType_deCH.Label)

Additional resources
List functions
SPLIT ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The SPLIT function splits the specified input string into substrings and returns the result as a new Record list
value.

Syntax 1
SPLIT (input, length)

This syntax is used to split the specified input string into substrings, each of which has the specified length.

Syntax 2
SPLIT (input, delimiter)

This syntax is used to split the specified input string into substrings, based on the specified delimiter.

Arguments
input : String
The text to split.
length : Integer
The maximum length of a single substring.
delimiter : String
A delimiter that is used to separate substrings.

Return values
Record list
The resulting list of records.

Usage notes
The record structure of the list that is returned consists of the Value field of the String type. Every record of the list
that is returned contains generated substrings in this field.
If the delimiter argument is empty, the new list that is returned consists of one record that has the Value field of
the String type. This field contains the input text.
If the input argument is empty, a new empty list is returned. If either the input or delimiter argument is
unspecified (null), an application exception is thrown.

Example 1
SPLIT ("abcd", 3) returns a new list that consists of two records that have the Value field of the String type. The
Value field in the first record contains the text "abc" , and the Value field in the second record contains the text
"d" .

Example 2
SPLIT ("XAb aBy", "aB") returns a new list that consists of three records that have the Value field of the String
type. The Value field in the first record contains the text "X" , the Value field in the second record contains the text
" " , and the Value field in the third record contains the text "y" .

Additional resources
List functions
STRINGJOIN ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The STRINGJOIN function returns a String value that consists of concatenated values of the specified field from the
specified list. The values can be separated by the specified delimiter.

Syntax
STRINGJOIN (list, field, delimiter)

Arguments
list : Record list
The valid path of a data source of the Record list data type.
field : Field
The valid path of a field of the String data type in the specified list.
delimiter : String
A delimiter that is used to separate substrings.

Return values
String
The resulting text value.

Example
If you enter SPLIT("abc" , 1) as data source DS , the expression STRINGJOIN (DS, DS.Value, "-") returns "a-b-c" .

Additional resources
List functions
CHAR ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The CHAR function returns a String value that presents a single character that is referenced by the specified
Unicode number.

Syntax
CHAR (number)

Arguments
number : Integer
A number that corresponds to an expected single character.

Return values
String
The resulting text value.

Usage notes
The string that this function returns depends on the encoding that is selected in the parent FILE format element.
For a list of the supported encodings, see Encoding class.

Example
CHAR (255) returns "ÿ" .

Additional resources
Text functions
GUIDVALUE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The GUIDVALUE function converts the specified input of the String type to a data item of the GUID type.

Syntax
GUIDVALUE (input)

Arguments
input : String
The valid path of a data source of the String type.

Return values
GUID
The resulting globally unique identifier (GUID) value.

Usage notes
To do a conversion in the opposite direction (that is, to convert specified input of the GUID data type to a data item
of the String data type), you can use the TEXT function.

Example
You define the following data sources in your model mapping:
A myID data source of the Calculated field type that contains the expression
GUIDVALUE ("AF5CCDAC-F728-4609-8C8B- A4B30B0C0AA0")
A Users data source of the Table records type that refers to the UserInfo table
You can then use an expression such as FILTER (Users, Users.objectId = myID) to filter the UserInfo table by the
objectId field of the GUID data type.

Additional resources
Text functions
NUMBERFORMAT ER f unct ion

2/14/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The NUMBERFORMAT function returns a String value that presents the specified number in the specified format and in
an optionally specified culture. For information about the supported formats, see standard and custom.

Syntax 1
NUMBERFORMAT (number, format)

Syntax 2
NUMBERFORMAT (number, format, culture)

Arguments
number : Integer or Real
A numeric value that specifies the number that must be formatted.
format : String
A String value that represents the format.
culture : String
A String value that represents the culture to use for formatting.

Return values
String
The resulting text value.

Usage notes
If the culture isn't defined as an argument of the called function, the context that this function is run in determines
the culture that is used to format numbers.

Example 1
For the EN-US culture, NUMBERFORMAT (0.45, "p") returns "45.00 %" , and NUMBERFORMAT (10.45, "#") returns
"10" .
Example 2
NUMBERFORMAT (10/3, "F2", "de") returns 3,33 , whereas NUMBERFORMAT (10/3, "F2", "en-us") returns 3.33 .

Additional resources
Text functions
Q RCODE ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The QRCODE function returns a Container value that presents the Quick Response code (QR code) image for the
specified string in binary format.

Syntax
QRCODE (text)

Arguments
text : String
A String value that represents the original text.

Return values
Container
The resulting binary stream.

Example
You can configure an Electronic reporting (ER) format to generate an outbound document in Microsoft Office
format (Excel workbooks or Word documents) by using a predefined template. This template may contain a
Picture object (Excel workbook) or a Picture Content Control (Word document) as a placeholder for a QR code
image. You need to add to the configured ER format a Cell element that will be used to fill this placeholder in. To
specify what information will be stored in a QR code, you need to define a binding for this Cell element. For
example, you can configure such binding as containing the following expression:

QRCODE (model.ListOfShelfLabels.LabelText)`

When you run the configured ER format, the text value of the LabelText field of the model.ListOfShelfLabels
data source will be used to generate a QR code image. This image will replace a QR code image placeholder in the
document template using to generate an outbound document. When this image of the generated document is
scanned, it returns the text that was taken from the LabelText field of the model.ListOfShelfLabels data source.
For more information, see Embed images and shapes in documents that you generate by using ER.

Additional resources
Text functions
TEXT ER f unct ion

2/12/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The TEXT function returns the specified number as a String value after it has been converted to a text string that is
formatted according to the server locale settings of the current application instance.

Syntax
TEXT (number)

Arguments
number : Integer or Real
A number that must be converted to a text string.

Return values
String
The resulting text value.

Usage notes
For values of the Real type, the string conversion is limited to two decimal places.

Example
If the server locale of the Microsoft Dynamics 365 Finance instance is defined as EN-US , TEXT (NOW ()) returns
the current Finance session date, December 17, 2015, as the text string "12/17/2015 07:59:23 AM" . TEXT (1/3)
returns "0.33" .

Additional resources
Text functions
Manage ER model mapping in separate ER
configurations
3/18/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the System administrator or Electronic reporting developer role
can manage Electronic reporting (ER) model mappings in separate ER configurations. In this task guide, you will
create required ER configurations for the sample company, Litware, Inc. To complete this task guide, you must first
complete the steps in the task guide, "ER Create a configuration provider" and mark it as active.
Because ER configurations are shared among companies, you can complete this task guide using the company data
set of your choice. The functionality for this task guide is available if you have installed one of the following
hotfixes: https://fix.lcs.dynamics.com/Issue/Resolved?kb=4012872 for the Dynamics AX 7.0 version or
https://fix.lcs.dynamics.com/Issue/Resolved?kb=4012871 for the Dynamics 365 for Operations version.
1. Go to Organization administration > Workspaces > Electronic reporting.
Verify that the configuration provider for the sample company Litware, Inc. is available and marked as
active. If you don't see this configuration provider, you must first complete the steps in the task guide,
Create a configuration provider and mark it as active.

Add a new ER model configuration


1. Click Reporting configurations.
Add a new model configuration. The name must be unique in the configurations tree.
2. Click Create configuration to open the drop dialog.
3. In the Name field, type 'Sample data model'.
Sample data model
4. Click Create configuration.
5. Click Designer.
6. Click New to open the drop dialog.
7. In the Name field, type 'Root'.
Root
8. Click Add.
9. Click New to open the drop dialog.
10. In the Name field, type 'Company'.
Company
11. Click Add.
12. In the Description field, enter the text, Description of the legal entity or company in which a user logged at run-
time.
Description of the legal entity or company in which a user logged at run-time.
13. Click Root reference.
14. Click OK.
15. Click Save.
16. Close the page.
17. Click Change status.
18. Click Complete.
19. Click OK.

Add a new ER model mapping configuration


1. Click Create configuration to open the drop dialog.
2. In the New field, enter 'Model Mapping based on data model Sample data model'.
3. In the Name field, type 'Sample mapping'.
Sample mapping
4. Click Create configuration.
5. Expand the Prerequisites section.
Note that the Implementations prerequisites group has been added automatically. The group contains the
prerequisite component that refers to the parent data model configuration and is marked as
Implementation. This means that this Sample mapping model mapping configuration is considered the
implementation of the data model, Sample data model. Therefore, this component will force ER to
download the model mapping configuration, Sample mapping from an ER repository when the model
configuration, Sample data model, is downloaded.
6. Click Designer.
Note that the created model mapping configuration contains a new blank mapping with the same name
as the created configuration. Be aware that when a selected parent model configuration contains model
mappings, they will be copied to a new model mapping configuration.
7. Click Designer.
8. In the tree, select 'Dynamics 365 for Operations\Table'.
9. Click Add root.
10. In the Name field, type 'Company'.
Company
11. In the Table field, type 'CompanyInfo'.
CompanyInfo
12. Click OK.
13. In the tree, expand 'Company'.
14. In the tree, expand 'Company\find()'.
15. In the tree, select 'Company\find()\Name'.
16. Click Bind.
17. Click Save.
18. Close the page.
19. Close the page.
20. On the Action Pane, click Configurations.
21. Click User parameters.
22. Select Yes in the Run settings field.
23. Click OK.
24. Click Edit.
25. Select Yes in the Run Draft field.

Add a new ER format configuration


1. In the tree, select 'Sample data model'.
2. Click Create configuration to open the drop dialog.
3. In the New field, enter 'Format based on data model Sample data model'.
4. In the Name field, type 'Sample format'.
Sample format
5. Click Create configuration.
6. Click Designer.
7. Click Add root to open the drop dialog.
8. In the tree, select 'Text\String'.
9. Click OK.
10. Click the Mapping tab.
11. In the tree, expand 'model'.
12. In the tree, select 'model\Company'.
13. Click Bind.
14. Click Save.
15. Close the page.
Run the draft version of the created format for testing purposes.
16. Click Run.
On the Versions FastTab, click Run.
17. Click OK.
Review the output that contains the name of the company in which the user who is running this format
configuration is logged into. Note that the created model mapping configuration is used by this format
configuration because there is only one configuration available that contains required model mappings.

Add alternative ER model mapping configuration


1. In the tree, select 'Sample data model'.
2. Click Create configuration to open the drop dialog.
3. In the New field, enter 'Model Mapping based on data model Sample data model'.
4. In the Name field, type 'Sample mapping (alternative)'.
Sample mapping (alternative)
5. Click Create configuration.
6. Click Designer.
7. Click Designer.
8. In the tree, select 'Dynamics 365 for Operations\Table'.
9. Click Add root.
10. In the Name field, type 'Company'.
Company
11. In the Table field, type 'CompanyInfo'.
CompanyInfo
12. Click OK.
13. Click Edit.
14. In the tree, select 'String\CONCATENATE'.
15. Click Add function.
16. In the tree, expand 'Company'.
17. In the tree, expand 'Company\find()'.
18. In the tree, select 'Company\find()\Name'.
19. Click Add data source.
20. In the Formula field, type a value.
CONCATENATE(Company.'find()'.Name, ";",
21. In the tree, select 'Company\find()\Company(DataArea)'.
22. Click Add data source.
23. In the Formula field, type a value.
CONCATENATE(Company.'find()'.Name, ";", Company.'find()'.DataArea)
24. Click Save.
25. Close the page.
26. Click Save.
27. Close the page.
28. Close the page.
29. Select Yes in the Run Draft field.

Use an existing ER model mapping configuration


1. In the tree, select 'Sample data model\Sample format'.
2. Click Run.
Note that the selected draft version of the ER format configuration can't be executed because there is
more than one model mapping configuration available for the undefined data model that has been
selected as the data source of the running ER format.
Next, you will define the alternative model mapping configuration as the one from which model
mappings will be used as data sources for running ER format.
3. In the tree, select 'Sample data model\Sample mapping (alternative)'.
4. Select Yes in the Default for model mapping field.
5. In the tree, select 'Sample data model\Sample format'.
6. Click Run.
7. Click OK.
Note that the default model mapping configuration is used by this format configuration for generating
the electronic document (the created output contains the company code).
Select data model definitions when you create
formats
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

To complete the steps in this procedure, you must first complete the procedure, ER Create a configuration provider
and mark it as active.
This procedure shows how a model's root item can be selected as a data model definition for inserting an Electronic
reporting (ER) format configuration that is designed to generate electronic documents. In this procedure, you will
add a new ER format configuration for the sample company Litware, Inc.
This procedure is intended for users who have the System administrator or Electronic reporting developer role
assigned to them. The steps can be completed by using any dataset.
1. Go to Organization administration > Workspaces > Electronic reporting.
Make sure that the configuration provider for the sample company, Litware, Inc., is available and marked
as Active. If you don't see this configuration provider, complete the steps in the procedure, Create a
configuration provider and mark it as active.
2. Click Reporting configurations.

Add a new ER data model configuration


1. Click Create configuration to open the drop dialog.
We add a new ER model configuration containing a data model that is designed to be used as data source
for generation ER reports.
2. In the Name field, type 'Payment model (fictitious)'.
Payment model (fictitious)
3. Click Create configuration.
4. Click Designer.
Open the ER designer to specify the structure of data model of this configuration.
Assume that we design the data model for payments business domain to support 2 payment methods –
credit transfer and direct debit ones.
5. Click New to open the drop dialog.
6. In the Name field, type 'Payments – credit transfer'.
Payments – credit transfer
7. Click Add.
8. Click New to open the drop dialog.
9. In the New node as a field, enter 'Model root'.
10. In the Name field, type 'Payments – direct debit'.
Payments – direct debit
11. Click Add.
12. Click Save.
13. Close the page.
14. Click Change status.
Complete the draft version of the model to make it available in new model mappings and formats.
15. Click Complete.
16. Click OK.

Start to enter a new ER format configuration


1. Click Create configuration to open the drop dialog.
2. In the New field, enter 'Format based on data model Payment model (fictitious)'.
3. In the Data model definition field, enter or select a value.
Note that all root items of the selected data model are currently available for selection as a data model
definition. You can continue to design your format by using any of the required root items of the data
model. A missing model mapping for the selected root item doesn't prevent you from continuing.
4. Close the page.

Add a new ER model mapping configuration


1. Click Create configuration to open the drop dialog.
2. In the New field, enter 'Model Mapping based on data model Payment model (fictitious)'.
3. In the Name field, type 'Payment model mappings (fictitious)'.
Payment model mappings (fictitious)
4. In the Data model definition field, enter or select a value.
5. Click Create configuration.

Design ER model mappings


1. Click Designer.
Use the ER designer to specify the model mappings for the required root items.
2. Click Designer.
Simulate setting of selected model mapping for the selected model's root item.
3. In the tree, select 'Dynamics 365 for Operations\Table records'.
4. Click Add root.
5. In the Name field, type 'Ledger'.
6. In the Table field, type 'LedgerJournalTrans'.
LedgerJournalTrans
7. Click OK.
8. Click Save.
9. Close the page.
10. Close the page.

Start to enter another new ER format configuration


1. In the tree, select 'Payment model (fictitious)'.
2. Click Create configuration to open the drop dialog.
3. In the New field, enter 'Format based on data model Payment model (fictitious)'.
4. In the Data model definition field, enter or select a value.
Note that now only one root item is available to map to the application data sources. When at least one
model mapping is introduced, only the model's root items that are mapped to application data sources
can be selected as a model definition while the ER format is added.
5. Close the page.
Enhanced filtering options for finding configurations
in the Global repository
4/9/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes enhanced filtering capabilities for Regulatory Configuration Services (RCS) Global repository,
which have been improved to include the following filters:
Countr y/region - based on ISO country codes
Tags - for functional/feature area; Industry; Business document type
You can apply filters, either individually or in groups, to find specific or related configurations. For example, to find
all configurable business documents related to vendor invoices, you can apply the Business document type filter.
You can further refine a search by selecting the country code and clicking Apply filter .

The following example shows the results when filtering on Business document type .
Filtered results can be imported into users RCS or Dynamics 365 Finance environment, either individually or as a
set (by selecting the group of configurations) and clicking Impor t .
Generate reports by adding content as raw XML
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can use the new RAW XML format element to design Electronic reporting (ER) formats that generate outgoing
documents in XML format. In some cases, you might prefer to add raw XML data to these reports for one or more
of the following reasons:
It's more convenient to use raw XML for the original design and ongoing maintenance of a report, because the
XML structure can be automatically generated by executing a runtime expression. Therefore, multiple bindings
don't have to be determined for multiple format elements at design time. It is possible when the data sources
that you're using contain information that can be used to make XML elements while the report is generated.
No other method can be used to fill the report with XML content that was previously received and stored in the
system. For example, the XML response that is generated might have to contain the content of an XML request
that was sent earlier.
No other method can be used to insert characters into the generated document based on their numeric codes.
For some languages and characters, codes of this type don't exist. Examples include the Greek letter rho (ρ) and
HTML entity codes such as &eacute; for an e that has an acute accent (é).

NOTE
Be aware that the framework doesn't control whether the XML content that is placed to the generated document by using
the RAW XML format element is correct.

To learn more about this feature, play the ER Use raw XML data to generate XML repor ts (Par t 1: Design
data model) and ER Use raw XML data to generate XML repor ts (Par t 2: Design and run repor t) task
guides, which are part of the 7.5.4.3 Acquire/Develop IT ser vice/solution components (10677) business
process, and can be downloaded from the Microsoft Download Center. These task guides walk you through the
process of configuring an ER format to insert raw XML data into generated files.
Cross-company data sources in Electronic reporting
(ER)
2/5/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can design Electronic reporting (ER) formats to generate outgoing documents in various formats. When a
document is generated, an ER format calls data sources that were configured in a corresponding ER model
mapping. To configure access to application tables for record retrieval, you can use ER data sources of the Table
records type. When the accessing table is a shared table (that is, a table where data is saved without a company
identifier), this data source returns all records. When the accessing table is a company-dependent table (that is, a
table where data is saved per company), this data source returns only the records that have been saved for the
current company (that is, the company context that the ER format is running under).
Every data source of the Table records type in a model mapping can be now marked as a cross-company data
source. Therefore, you can use data sources of the Table records type to access cross-company data in application
tables.
If you mark a data source as cross-company, the following behavior occurs:
For a data source that refers to any shared table except CompanyInfo, the data source returns all records that
exist in the referenced table.
For a data source that refers to the CompanyInfo table, even though CompanyInfo is a shared table, the data
source returns the records that contain the identifier of a company from the defined scope.
For any company-dependent table, the data source returns the records of the referenced table that contain the
identifier of a company from the defined scope.
In the system query dialog box, when the Ask for quer y option is turned on for any data source that is marked as
cross-company, you can manually select one or more companies to include on the Company range tab.

IMPORTANT
Like other filters, the company filter is persisted as a last-used value for queries when you run an ER format. The filter isn't
automatically changed if you change the cross-company value for a data source. To use a different cross-company value for
another data source, delete the corresponding user-specific selection.

For every data source that is marked as cross-company, you can select the records that you want by using the
FILTER and WHERE functions in ER expressions. The dataAreaID field can also be used as a company identifier.
Currently, the dataAreaID field is limited to the following types of conditions when the FILTER function is used:
Only conditions that have a single dataAreaID field comparison are supported.
Only comparisons that have expressions that don't depend on records list items are allowed.
Therefore, the following expression is valid.
FILTER (MyTable, MyTable.dataAreaID = $StringUserInputParameter)
While shown below expressions will not pass the validation:
FILTER (MyTable, MyTable.dataAreaID = MyTable2RecordsList.MyField)
FILTER (MyTable,
OR(
MyTable.dataAreaID = $StringUserInputParameter1,
MyTable.dataAreaID = $StringUserInputParameter2
)
)

By default, the scope includes all companies of the current application. However, it can be restricted. To restrict the
scope of cross-company data access for a single ER format, assign a specific organization hierarchy to the format.
When a hierarchy is defined for an ER format, only records for legal entities that are presented in the assigned
hierarchy are returned, even though the format calls cross-company data sources. When a reference to a hierarchy
that no longer exists is defined for an ER format, the default scope is applied, and the format calls cross-company
data sources. In this situation, records for all application companies are returned.
Note that when the Use draft option is turned on for the assigned to a single ER format organization hierarchy, the
legal entities from the draft version of this hierarchy will be used to identify the scope for cross-company data
sources. If the draft version does not exist, the legal entities from the last published version of this organization
hierarchy will be used for this.
Note that when the Use draft option is turned off for the assigned to a single ER format organization hierarchy, the
legal entities from the last published version of this organization hierarchy will be used to identify the scope for
cross-company data sources. Date effectiveness of organization hierarchies is not supported yet in the ER
framework.
The hierarchy can be assigned to a format in a specific page that can be accessed from the ER workspace or by
using the Organization administration > Electronic repor ting > Legal entity filter for formats menu
item. To access the page, the Maintain legal entity filters for format privilege
(ERMaintainFormatMappingLegalEntityFilters) must be granted to a user. The scope restriction of hierarchy-based
legal entities for the format is applied in addition to the restriction that the user can manually specify in the system
query dialog box. The intersection of these restrictions is used when the format is run.
To learn more about this feature, play the task guide, ER Access records of company dependent tables in
cross-company mode , which is part of the 7.5.4.3 Acquire/Develop IT service/solution components (10677)
business process, and can be downloaded from the Microsoft Download Center. This task guide walks you through
the process of configuring an ER model mapping and ER format to access application tables in cross-company
mode.
Download the following files to complete the task guide:
ER model configuration - CrossCompanyDataAccessModel.xml
ER format configuration - CrossCompanyDataAccessFormat.xml
ER Design a configuration for generating reports in
OPENXML format (November 2016)
3/18/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how a user in the System Administrator or Electronic Reporting Developer role can create a new
Electronic reporting (ER) configuration that contains a template for generating electronic documents in OPENXML
format. This configuration will be used for processing vendor payments.
In this example, you will create a configuration for sample company, Litware, Inc. These steps can be performed in
GBSI company.
To complete these steps, you must first complete the steps in the "Create a configuration provider and mark it as
active" procedure. You must also have an Excel file which will be imported when creating the template. This file can
be accessed from the Template of Payment Report.

Upload the Payments data model configuration


1. In the navigation pane, go to Modules > Organization administration > Workspaces > Electronic
repor ting .
2. In the list, mark the configuration provider for sample company, Litware, Inc. If you don't see this configuration
provider, you must first complete the steps in Create configuration providers and mark them as active.
3. Select Set active .
4. Select Repositories . Select a repository for the Operations Resources type, if available. If its available, skip the
following steps about creating a new repository.
5. Select Add to open the drop dialog.
6. In the Configuration repositor y type field, enter Operations resourcesdd .
7. Select Create repositor y .
8. Select OK .
9. Select Open .
10. In the tree, select Payment model .
11. Select Impor t . Import this data model. It will be used as a data source in a new format configuration. Skip this
step if this configuration has been already imported.
12. Select Yes .
13. Close the pages until you return to the Electronic reporting page.

Create a new format configuration


1. Select Repor ting configurations .
2. In the tree, select Payment model .
3. Select Create configuration to open the drop dialog.
4. In the New field, enter Format based on data model PaymentModel . Create a format that is based on the
PaymentModel data model.
5. In the Name field, type Sample worksheet report . Sample worksheet report
6. In the Description field, type Sample worksheet report for vendors' payments . Sample worksheet report for
vendors' payments.
7. In the Data model definition field, enter or select a value. Select the CustomerCreditTransferInitiation
definition.
8. Select Create configuration .

Design a new document in OPENXML worksheet format


1. In the tree, select Payment model\Sample worksheet repor t .
2. Select Designer .
3. On the Action Pane, select Impor t .
4. Select Impor t from Excel .
5. Select Attachments . Attach the existing Excel document as a template.
6. Select New .
7. Select File . Point to the existing Excel file.
8. Close the page.
9. In the Template field, enter or select a value. Select the attached Excel file to be used as a template.
10. Select OK . Note that ER format components have been created in the designing format based on the structure
of the referring MS Excel document (named ranges).

Create a new data source to calculate totals by currency codes


1. Select the Mapping tab.
2. Select Add root to open the drop dialog.
3. In the tree, select Functions\Group by .
4. In the Name field, type PaymentByCurrency .
5. Select Edit group by .
6. In the tree, expand model , then select model\Payments .
7. Select Add field to .
8. Select What to group .
9. In the tree, expand model\Payments , then select model\Payments\Currency .
10. Select Add field to .
11. Select Grouped fields .
12. In the tree, select model\Payments\Instructed Amount(InstructedAmount) .
13. Select Add field to , then select Aggregation fields .
14. In the Method field, select an option. Select the SUM aggregation function.
15. In the Name field, type TotalInstructuredAmount .
16. Select Save .
17. Close the page.
18. Select OK .

Map format components to data sources


1. In the tree, select model\Payments\Initiating Par ty(InitiatingPar ty)\Name and
Excel\Repor tHeader\CompanyName .
2. Select Bind .
3. In the tree, select model\Payments\Creditor\Identification\Source ID(SourceID) and
Excel\PaymLines\VendAccountName .
4. Select Bind .
5. In the tree, select model\Payments\Creditor\Name and Excel\PaymLines\VendName .
6. Select Bind .
7. In the tree, select model\Payments\Creditor Agent(CreditorAgent)\Name and Excel\PaymLines\Bank .
8. Select Bind .
9. In the tree, select model\Payments\Creditor Agent(CreditorAgent)\Routing Number(RoutingNumber)
and Excel\PaymLines\RoutingNumber .
10. Select Bind .
11. In the tree, select model\Payments\Creditor Account(CreditorAccount)\Identification\Number and
Excel\PaymLines\AccountNumber .
12. Select Bind .
13. In the tree, select model\Payments\Instructed Amount(InstructedAmount) and
Excel\PaymLines\Debit .
14. Select Bind .
15. In the tree, select model\Payments\Currency and Excel\PaymLines\Currency .
16. Select Bind .
17. In the tree, select PaymentByCurrency\grouped\Currency and
Excel\Summar yLines\Summar yCurrency .
18. Select Bind .
19. In the tree, select PaymentByCurrency\aggregated\TotalInstructuredAmount and
Excel\Summar yLines\Summar yAmount .
20. Select Bind .
21. In the tree, select PaymentByCurrency and Excel\Summar yLines .
22. Select Bind .
23. In the tree, select model\Payments and Excel\PaymLines .
24. Select Bind .
25. Select Save , then close the page.

Use the created configuration for payments processing


1. Select Change status .
2. Select Complete .
3. Select OK .
4. In the navigation pane, go to Modules > Accounts payable > Payment setup > Methods of payment .
5. Use the Quick Filter to filter on the Method of payment field with a value of Electronic .
6. Select Edit .
7. Expand the File formats section.
8. Select Yes in the Generic electronic repor ting field.
9. In the Expor t format configuration field, enter or select a value. Select the Sample worksheet repor t
configuration.
10. Select Save .
11. Close the page.

Use the created configuration for testing of payment journals


processing
1. In the navigation pane, go to Modules > Accounts payable > Payments > Payment journal .
2. Select New to create a new payment journal.
3. In the Name field, type VendPay .
4. Select Lines .
5. In the Account field, specify the values GB_SI_000001 .
6. Set Debit to 1000 .
7. Select New .
8. In the Account field, specify the values GB_SI_000005 .
9. Set Debit to 2000 .
10. In the Currency field, type EUR .
11. In the Offset account field, specify the values GBSI OPER .
12. In the Method of payment field, type Electronic .
13. Select Save .
14. Select Generate payments .
15. In the Method of payment field, type Electronic .
16. In the File name field, type Payments .
17. In the Bank account field, type GBSI OPER .
18. Select OK , then select OK again. Review the created worksheet, including details of payment lines as well as
totals for each currency code used in this payment message.
Design ER configurations to generate reports in
Word format
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in either the System administrator or Electronic reporting developer role
can configure an Electronic reporting (ER) formats to generate reports as Microsoft Word files. These steps can be
performed in the GBSI company.
To complete these steps, you must first complete the steps in the "Create an ER configuration for generating
reports in OPENXML format" task guide. In advance, you must also download and save the following templates
locally for the sample report:
Template of Payment Report
Bounded Template of Payment Report
This procedure is for a feature that was added in Microsoft Dynamics 365 for Operations version 1611.

Select the existing ER report configuration


1. In the Navigation pane, go to Modules > Organization administration > Workspaces > Electronic
repor ting . Make sure that the configuration provider 'Litware, Inc.' is selected as active.
2. Click Repor ting configurations . We will re-use the existing ER configuration that has been originally
designed to generate the report output in OPENXML format.
3. In the tree, expand 'Payment model'.
4. In the tree, select 'Payment model\Sample worksheet report'.
5. Click Designer.

Replace the Excel template with the Word template


Currently, the Excel document is used as a template to generate the output in OPENXML format. We will import the
report's template in Word format.
1. Click Attachments . Replace the existing Excel template with the Word template that you downloaded earlier,
SampleVendPaymDocReport.docx. Note, this template only contains the layout of the document we want to
generate as ER output.
2. Click Delete .
3. Click Yes .
4. Click New .
5. Click File .
6. Click Browse . Navigate to and select SampleVendPaymDocReport.docx that you previously downloaded. Click
OK . Select the template that you downloaded in the previous step.
7. In the Template field, enter or select a value.
Extend the Word template by adding a custom XML part
1. Click Save . In addition to storing configuration changes, the Save action also updates the attached Word
template. The structure of the designed format is ported to the attached Word document as a new custom XML
part with the name 'Report'. Note that the attached Word template contains not only the layout of the
document we want to generate as ER output, it also contains the structure of data that ER will populate into this
template at runtime.
2. Click Attachments .
Now you need to bind the elements of the custom XML part 'Report' to the Word document parts.
If you're familiar with Word documents that can be designed as forms containing content controls that
are bounded with elements of custom XML parts – play all steps of the next sub-task to create such a
document. For more details, see Create forms that users complete or print in Words. Otherwise, skip all
the steps in the next sub-task.

Get Word with custom XML part to do data bindings


Open this document in Word and do the following:
1. Open the Word Developer tab (customize the ribbon if it is not enabled yet).
2. Select XML mapping pane.
3. Select the 'Report' custom XML part in the lookup.
4. Do mapping of the elements of the selected custom XML part and content controls of the Word document. 5.
Save the updated Word document on a local drive.

Upload the Word template with custom XML part bounded to content
controls
1. Click Delete .
2. Click Yes . Add a new template. If you competed the steps in the previous subtask, select the Word document
that you prepared and saved locally. Otherwise, select the SampleVendPaymDocReportBounded.docx MS Word
template that you downloaded earlier.
3. Click New .
4. Click File .
5. Click Browse . Navigate to and select SampleVendPaymDocReportBounded.docx that you previously
downloaded. Click OK .
6. In the Template field, select the document that you downloaded in the previous step.
7. Click Save .
8. Close the page.

Execute the format to create Word output


1. On the Action Pane , click Configurations .
2. Click User parameters .
3. Select Yes in the Run settings field.
4. Click OK .
5. Click Edit .
6. Select Yes in the Run Draft field.
7. Click Save .
8. Close the page.
9. Close the page.
10. In the Navigation pane , go to Modules > Accounts payable > Payments > Payment journal .
11. Click Lines .
12. In the list, mark or unmark all rows.
13. Click Payment status .
14. Click None .
15. Click Generate payments .
16. Click OK .
17. Click OK . Analyze the generated output. Note that the created output is presented in Word format and contains
the details of the processed payments.
Design ER configurations to fill in PDF templates
11/5/2019 • 14 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The procedures in this topic are examples that show how a user in either the System administrator role or the
Electronic repor ting developer role can configure an Electronic reporting (ER) format that generates reports as
PDF files by using fillable PDF documents as report templates. These steps can be performed in any company of
Dynamics 365 Finance or Regulatory Configuration Services (RCS).

Prerequisites
Before you begin, you must have one of the following types of access, depending on the service that you use to
complete the procedures in this topic:
Access to Finance for one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
Access to RCS for one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
You must also complete the Create configuration providers and mark them as active procedure.
Finally, you must download the following files from CustomerSource.

C O N T EN T DESC RIP T IO N F IL E N A M E

Template for the first page of the report IntrastatReportTemplate1.pdf

Template for other pages of the report IntrastatReportTemplate2.pdf

Sample ER format - PDF Intrastat report (PDF).version.1.1.xml

Sample ER format - Excel Intrastat (import from Excel).version.1.1.xml

Sample dataset Intrastat sample data.xlsx

Design the format configuration


Get access to the list of configurations provided by Microsoft
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Make sure that the Litware, Inc. provider is available and marked as active.
3. On the tile for the Microsoft provider, select Repositories .

NOTE
If a repository of the LCS type already exists, skip the remaining steps of this procedure.

4. Select Add .
5. In the drop-down dialog box, in the Configuration repositor y type field group, select the LCS option.
6. Select Create repositor y .
7. Select OK .
Get the model configurations provided by Microsoft
1. On the left side of the Configuration repositories page, select the Show filters button (the funnel
symbol).
2. Add a filter for a value of LCS in the Type field, and use the begins with operator.
3. Select Apply .
4. Select Open .
5. In the tree, select Intrastat model .
6. On the Versions FastTab, select version 1 .

NOTE
If the Impor t button on the Versions FastTab is unavailable, skip the remaining steps of this procedure.

7. Select Impor t .
8. Select Yes to confirm the import of the selected version of the Intrastat model model configuration.
Create a new format configuration
1. In the Electronic repor ting workspace, select the Repor ting configurations tile.
2. In the tree, select Intrastat model .
3. Select Create configuration .

NOTE
If the Create configuration button isn't available, you must turn on design mode on the Electronic repor ting
parameters page that can be opened from the Electronic repor ting workspace.

4. In the drop-down dialog box, in the New field group, select the Format based on data model Intrastat
option.
5. In the Name field, enter Intrastat repor t (PDF) .
6. In the Description field, enter Intrastat repor t in PDF format .
NOTE
The active configuration provider is automatically entered. This provider will be able to maintain this configuration.
Although other providers can use this configuration, they won't be able to maintain it.

7. Optional: In the Format type field, you can select a specific format of electronic document. If you select
PDF , at design time, the ER Operations designer will offer just the format elements that are applicable only
to documents that are generated in PDF format (PDF\File , PDF\PDF Merger , etc.). If you leave this field
blank, a format of electronic document will be specified at design time in the ER Operations designer when a
first format element will be added. For example, if you add the Excel\File as the first format element, the ER
Operations designer will offer you just the format elements that are applicable only to documents that are
generated in Excel format (Excel\Cell , Excel\Range , etc.). format.
8. Select Create configuration .
A new ER format configuration is created. You can use the draft version of this configuration to store the ER format
component that is designed to generate electronic documents in PDF format.
Design the format of an electronic document
Next, in the ER format configuration that you created, you will design the ER format that generates the Intrastat
control report in PDF format. The first page of this report must show a summary of the report and details of the
foreign trade transactions that are reported on. The other pages must show only details of the foreign trade
transactions that are reported on. Because the report pages that are generated must have different layouts, two
different templates in PDF format will be used in the ER format.
In any PDF viewer, open the PDF templates that you downloaded. Notice that each template contains multiple fields
that must be filled in. In each template, details of foreign trade transactions are presented as 42 rows, each of which
has nine fields. The row number appears at the end of each field's name (for example, Date 1 …Date 42 and
Commodity 1 …Commodity 42 ).
The following illustration shows the PDF template for the first page of the report.

The following illustration shows the PDF template for other pages of the report.
1. On the Configurations page, select Designer .
2. Select Add root .
3. In the drop-down dialog box, in the tree, select PDF > PDF Merger .
When you select the PDF Merger element as the root element of the format, all PDF documents that are
generated at run time will be merged into a single final PDF document. If you need only one PDF template to
generate all the required documents by using the ER format that you design, you can select PDF file as the
root element.
4. In the Name field, enter Output .
5. In the Language preferences field, select User preference . The report will be generated in the preferred
language of the user who runs it.
6. In the Culture preferences field, select User preference . Values and dates that are presented on the
pages of the report will be formatted based on the preferred locale of the user who runs the report.
7. Select OK .
8. On the Action Pane, on the Impor t tab, select Impor t from PDF .
When a fillable PDF document is imported as a template for this ER format, all the required ER format
elements (PDF file , Field group , and Field elements) are automatically created in the format that is
designed, based on the structure of the PDF document that is imported.
9. Select Browse . Navigate to and select the IntrastatRepor tTemplate1.pdf file that you downloaded earlier
as a prerequisite.
10. Select OK .
The selected file is loaded, and the Template field in the Impor t from PDF dialog box is filled in.
11. Set the Group fields option to Yes . If the selected PDF document contains any field groups, they will be
used to group the ER format elements that are created. A Field group format element will be created for
this purpose.
If this option is set to No , the required ER format elements will be created as a flat list of elements that are
nested under the PDF File format element that is created.
12. Select OK .
13. In the tree, expand Output .
Notice that the PDF File component has been automatically created to manage the creation of the first page
of the report that is generated at run time.
14. In the tree, expand Output > PDF File .
Notice that the structured list of format elements has been automatically created in this ER format, based on
the structure of the fillable PDF document that you imported earlier.
15. In the tree, select Output > PDF File .
16. In the Name field, enter Page 1 .
This format element will be used to generate the first page of the Intrastat control report. That page will
show a summary of the report and details of foreign trade transactions.
If you leave the Language preferences field blank, the Language preferences setting of the parent PDF
Merger element will determine the language of the report that is generated by using this format element.
You can select another value to override the setting of the parent element.
If you leave the Culture preferences field blank, the Culture preferences setting of the parent PDF
Merger element will determine the locale of the report that is generated by using this format element. The
locale determines the format of values and dates on the pages of the report. You can select another value to
override the setting of the parent element.
17. On the Action Pane, select the Impor t tab. Notice that the Update from PDF button has become available
for selected format element, PDF File .
You can use this button to import the updated PDF template to the edited format. When the updated PDF
template is imported, the list of format elements will be changed accordingly:
For any new fields in the updated PDF template, new format elements are created in the edited ER format.
If the updated PDF template no longer includes fields that correspond to any existing format elements in
the edited ER format, those format elements are deleted from the ER format.
18. On the Format tab, select Attachments .
Notice that the imported PDF document is attached to the edited ER format.
19. Continue to design this format by importing the second PDF template, adding necessary bindings to data
sources, and so on.
20. Select Save .
21. Close the page.
22. Select Delete .
23. Select Yes .
To learn how new PDF Merger , PDF File , Field group and Field format elements can be used to generate
documents in PDF format, you can import and analyze the sample ER format.
Import the format configuration
Next, you will import the sample ER format that you previously downloaded to generate the Intrastat control
report in PDF format. The first page of the report must show a summary of the report and details of the foreign
trade transactions that are reported on. The other pages must show only details of the foreign trade transactions
that are reported on.
1. On the Configurations page, select Exchange > Load from XML file .
2. Select Browse . Navigate to and select the Intrastat repor t (PDF).version.1.1.xml file that you downloaded
earlier as a prerequisite.
3. Select OK .

Analyze the format configuration


Format layout
1. On the Configurations page, in the tree, select Intrastat model > Intrastat repor t (PDF) .
2. Select Designer .
3. Select Show details .
4. In the tree, expand Output: PDF Merger .
Notice that this ER format contains two PDF File elements, each of which uses a different PDF template. One
template is used to generate the first page of the report in PDF format, and the other template is used to
generate the other pages.
5. In the tree, expand Output: PDF Merger > Page 1: PDF File (IntrastatRepor tTemplate1) .
6. In the tree, expand Output: PDF Merger > Page N: PDF File (IntrastatRepor tTemplate2) .
Notice that, because the content of the two PDF templates differs, the structure of the nested format
elements for the two PDF File elements also differs.
Format mapping
1. On the Format designer page, select the Mapping tab.
2. In the tree, expand Paging > Pages .

Note the following details:


The Output > Page 1 format element of the PDF File type isn't bound to any data source, and the
Enabled expression of this format element is empty. Therefore, at run time, the
IntrastatRepor tTemplate1 PDF template will be filled in only one time when an individual PDF
document is generated.
The Output > Page N format element of the PDF File type is bound to the Paging.PageN data
source of the Record list type, and the Enabled expression of this format element is empty.
Therefore, at run time, the IntrastatRepor tTemplate2 PDF template will be filled in for each record
from the bound record list when an individual PDF document is generated.
Because the Page 1: PDF File and Page N: PDF File format elements are children of the Output:
PDF Merger format element, all PDF documents that are filled in will be merged into a single final
PDF document.
The Paging.Page1 and Paging.PageN data sources are configured as filters of records from the
Paging.Pages data source. This data source is configured to split the whole set of foreign trade
transactions into batches. Each batch contains up to 42 records. The following ER expression is used
to split the transactions into batches:
SPLITLIST(Totals.CommodityRecord,42)
The Paging.Pages data source contains the Paging.Pages.Enumerated element that returns the
details of each record that is included in a batch. These details include the record's sequence in the
current batch (the Paging.Pages.Enumerated.Number field). The
Paging.Pages.Enumerated.Number field is used in the Name expression of PDF Field format
elements to dynamically generate a field name that is based on the transaction number in a batch.
The field name that is generated is then used to fill in the correct PDF field in the PDF template that is
used.
The Output > Page N > Details 2 format element of the PDF Group type is bound to the
Paging.PageN.Enumerated data source (or @.Enumerated if the Relative path view mode is
used) of the Record list type. Therefore, at run time, the nested elements of this PDF group will be
filled in for each record from the bound record list. In this way, individual PDF lines are virtually
generated when for each Nth of 42 records of the Paging.PageN.Enumerated list the following PDF
fields are filled in: Date N, Direction N, Commodity N, etc. Therefore, in this respect, the behavior of
this Field group format element resembles the behavior of the XML > Sequence and Text >
Sequence format elements.
3. In the tree, expand Output > Page N > Details2 .
4. In the tree, select Output > Page N > Details2 > PageFooter .
Notice that the Name attribute of this format element is defined as PageFooter . Also notice that the Name
expression of the format element is empty.
5. In the tree, select Output > Page N > Details2 > Correction 1 .
Notice that the Name attribute of this format element is defined as Correction 1 . Also notice that the
Name expression of the format element is defined as Paging.FldName("Correction",@.Number) .

Note that the Field format element is used to fill in an individual field of a fillable PDF document that is defined as
a template of the parent PDF File format element. The binding of the PDF File format element or its nested
elements, if it has any nested elements, specifies the value that is entered in corresponding PDF fields. Different
properties of the Field format element can be used to specify which PDF field is filled in by an individual format
element:
On the Format tab, the Name attribute of the format element
On the Mapping tab, the Name expression of the format element
Because both properties are optional for a Field format element, the following rules are applied to specify the
target PDF field:
If the Name attribute is blank, and the Name expression returns an empty string at run time, an exception is
thrown at run time to notify the user that a PDF field can't be found in the PDF template that is being used to fill
in the PDF document.
If the Name attribute is defined, and the Name expression is blank, the PDF field that has the same name as the
Name attribute of the format element is filled in.
If the Name attribute is defined, and the Name expression is configured, the PDF field that the same name as
the value that is returned by the Name expression of the format element is filled in.

NOTE
A PDF check box can be filled in as selected in the following ways:
When the corresponding Field format element is bound to a data source field of the Boolean data type that has the
True value
When the corresponding Field format element contains a nested String format element that is bound to a data source
field that has a text value of 1 , True , or Yes

Run the format configuration


Import the format configuration
Next, you will load the Intrastat (impor t from Excel) sample ER format. This format is designed to parse a user-
selected Microsoft Excel workbook that simulates foreign trade transactions.
1. On the Configurations page, select Exchange > Load from XML file .
2. Select Browse . Navigate to and select the Intrastat (impor t from Excel).version.1.1.xml file that you
downloaded earlier as a prerequisite.
3. Select OK .
4. In the tree, select Intrastat model > Intrastat (impor t from Excel) .
5. Select Edit .
6. Set the Default for model mapping option to Yes .

NOTE
If you previously set the Default for model mapping option to Yes for the Intrastat model configuration or
another configuration that is nested under the Intrastat model configuration, set this option to No .

When the Default for model mapping option is set to Yes , the imported Intrastat (impor t from Excel)
ER format is assigned as the default data source for the Intrastat repor t (PDF) format configuration. Then,
when the Intrastat repor t (PDF) format configuration is run, the content of the Excel workbook that is
parsed by the Intrastat (impor t from Excel) ER format will simulate foreign trade transactions that must
be reported. The following illustration shows an example of an Excel workbook.
Run the format configuration
1. On the Configurations page, in the tree, select Intrastat model > Intrastat repor t (PDF) .
2. Select Run .
3. Select Browse . Navigate to and select the Intrastat sample data.xlsx file that you downloaded earlier as a
prerequisite.
4. Select OK .
5. In the Repor t direction field, select Both to fill in all transactions from the imported Excel workbook in the PDF
report that is generated.
6. Select OK .
7. Review the PDF document that is generated.
The follow illustration shows an example of the first page of the report that is generated.
The follow illustration shows an example of another page of the report that is generated.

Additional resources
ER Design a configuration for generating reports in OPENXML format (November 2016)
Design ER configurations to generate reports in Word format
Embed images and shapes in documents that you
generate by using ER
10/1/2019 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can use the Electronic reporting (ER) tool to design reports that you can run to generate required electronic
documents. You can use Microsoft Excel or Microsoft Word documents to specify the layout of a report. The ER
Operations designer lets you attach the Excel or Word document as a template for the report. The named elements
in the attached template are associated with the format elements of the ER report. Format elements of the report
are bound to data sources. These elements specify the data that will be entered, at run time, in the documents that
are generated.
This new functionality goes beyond existing ER capabilities for creating documents in Microsoft Office formats. For
more information, play the following task guides. You can find these task guides under the 7.5.4.3 Acquire/Develop
IT service/solution components (10677) business process.
ER Design a configuration for generating reports in OPENXML format
ER Design a configuration for generating reports in Microsoft WORD format

Embed an image in an Excel document


First, you must add a placeholder for the image in an Excel document. Open an Excel workbook, and add a picture
as a placeholder for the image that you will add later. Then use the ER tool to add a new ER format configuration to
include the report that you're designing. Attach the Excel workbook as a template for the format of the report, and
then import the content of the workbook into the ER format. The format definition will be created automatically.
The image placeholder that you added will be included in the ER format definition as a CELL element.

NOTE
You can manually specify the format definition instead of importing it. When you save your changes, the format will be
validated.

Next, bind the CELL element of the ER format to the field from the format's data source that provides the picture's
data in binary format at run time. When an ER data model is used as a format's data source, the data type of the
field must be CONTAINER . Currently, an ER data model field that has the CONTAINER data type can be bound to
several types of data sources that return images in binary format. You can access a field in a data table and a file
that is attached to the data table's record by using the Document management framework.
IMPORTANT
If you want to fill the image placeholder in the document that you're creating by using the Excel template, the ER format
must contain the CELL element that refers to the named picture element in the Excel template. Otherwise, no image
placeholder will appear in the report's output. If the binding of a CELL element returns no data at run time, the
document that is generated will show the image placeholder from the template. To hide an image in the document that
you're generating, define a CELL element, and specify that the Enabling expression should return a value of FALSE .
In the Excel template, use a unique name for every element. These elements include pictures and cells. If you duplicate an
element name, the content of the report that is generated will be ambiguous and confusing.

Embed a shape in an Excel document


First, you must add a placeholder for the shape in an Excel document. Open an Excel workbook, and select Shape ,
Text box , or WordAr t as a placeholder for the shape. Then use the ER tool to add a new ER format configuration
to include the report that you're designing. Attach the Excel workbook as a template for the format of the report,
and then import the content of the workbook into the ER format. The format definition will be created
automatically. The shape placeholder that you added will be included in the ER format definition as a CELL
element that refers to the named Excel shape element.

NOTE
You can manually specify the format definition instead of importing it. When you save your changes, the format will be
validated.

Next, bind the CELL element in the ER format to the field from the format's data source that provides the data at
run time. This data can be converted to a text string. When the CELL element in the ER format refers to a shape
element in the Excel template that supports text, the text that is provided through this binding at run time will be
shown in a shape in the document that is generated.

IMPORTANT
If you want to use the Excel template that includes the shape placeholder to generate a new document, the ER format
must contain a CELL element that refers to the Excel shape element. Otherwise, no shape placeholder will appear in the
report's output. If the binding of a CELL element that refers to the named Excel shape element returns no data at run
time, the document that is generated will show the text of the shape placeholder from the Excel template. To hide a shape
in the document that you're generating, define a CELL element that refers to the named Excel shape element, and
specify that the Enabling expression should return a value of FALSE .
In the Excel template, use a unique name for every element. These elements include shapes and cells. If you duplicate an
element name, the content of the report that is generated will be ambiguous and confusing.

Embed an image in a Word document


IMPORTANT
You can reuse the ER format that uses an Excel template to create documents that include embedded images. In the ER
format, make sure that a name is specified for the CELL element that refers to a named picture element in Excel, and that is
bound to a data source that returns a picture at run time.

First, you must configure the Word document's layout. Use the Picture Content control to create a placeholder
for the embedded image. To access this control, you must first make the Developer tab visible on the Word
Ribbon.
Next, delete the Excel template from the ER format, and attach the Word template document. Update the reference
to the template, and save your changes. The structure of the current ER format is saved to the Word template as a
new custom XML part that is named Repor t .
Next, save the Word template for the current ER format to your local computer. Open the template, and open the
XML Mapping pane. Find the custom XML part that is named Repor t , and then point to the CELL element in the
ER report that is bound to a data source that returns an image in binary format. Map this XML part's item to the
selected Picture Content control, and save your changes.

Finally, delete the Word template from the ER format, and attach the Word document that includes the mapped
custom XML parts. Update the format reference to the template, and save the changes that you made to this ER
format.

More information
To become familiar with the details of this feature, play the set of task guides, ER Make repor ts in MS Office
formats with embedded images . These task guides show how you can embed the images of a company logo
and an authorized person's signature in the payment checks that are generated by using the ER tool in Excel and
Word documents.
The following table lists the files that are required in order to complete the ER Make repor ts in MS Office
formats with embedded images task guides. Download and save the files to your local computer.

DESC RIP T IO N F IL E N A M E

ER data model configuration Model for cheques.xml

ER format configuration Cheques printing format.xml

Company logo image Company logo.png

Signature image Signature image.png

Alternative signature image Signature image 2.png

Microsoft Word template for printing payment checks Cheque template Word.docx
DESC RIP T IO N F IL E N A M E

Microsoft Excel template for printing payment checks Cheque template.xlsx

The following graphic provides an example of the test printout for a payment check that is generated from the
Excel template.
Design configurations to generate reports in Office
format that have embedded images
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

To complete the steps in this procedure, first complete the procedure, "ER Create a configuration provider and mark
it as active." This procedure explains how to design Electronic reporting (ER) configurations to generate a Microsoft
Excel or Word document that contains embedded images. In this procedure, you will create the required ER
configurations for the sample company, Litware, Inc. These steps can be completed using the USMF dataset. This
procedure is created for users with the assigned role of system administrator or electronic reporting developer.
Before you begin, download and save the files listed in the Help topic, Embed images and shapes in documents that
you generate by using ER. The files are: Model for cheques.xml, Cheques printing format.xml, Company logo.png,
Signature image.png, Signature image 2.png, and Cheque template Word.docx.

Verify prerequisites
1. Go to Organization administration > Workspaces > Electronic reporting.
2. Make sure that the configuration provider for the sample company, Litware, Inc., is available and marked as
Active. If you don't see this configuration provider, complete the steps in the procedure, "Create a configuration
provider and mark it as active."
3. Click Reporting configurations.

Add a new ER model configuration


1. Instead of creating a new model, you can load the ER model configuration file (Model for cheques.xml) that you
saved earlier. This file contains the sample data model for payment cheques and the mapping of the data model
to the data components of the Dynamics 365 for Operations application.
2. On the Versions FastTab, click Exchange.
3. Click Load from XML file.
4. Click Browse, and then select Model for cheques.xml.
5. Click OK.
6. The loaded model will be used as a data source of information to generate documents that contain images in
Excel and Word.

Add a new ER format configuration


1. Instead of creating a new format, you can load the ER format configuration file (Cheques printing format.xml)
that you saved earlier. This file contains the sample layout of the format to print cheques using the pre-printed
form and the mapping of this format to the 'Model for cheques' data model.
2. Click Exchange.
3. Click Load from XML file.
4. Click Browse and select the Cheques printing format.xml file.
5. Click OK.
6. In the tree, expand 'Model for cheques'.
7. In the tree, select 'Model for cheques\Cheques printing format'.
8. The loaded format will be used to generate documents that contain images in Excel and Word.

Configure ER user parameters


1. On the Action Pane, click Configurations.
2. Click User parameters.
3. Select Yes in the Run settings field.
Turn on the 'Run draft' flag to start the draft version of the selected format instead of the completed one.
4. Click OK.

Configure Cash & bank management parameters


1. Go to Cash and bank management > Bank accounts > Bank accounts.
2. Use the Quick Filter to filter on the Bank account field with a value of 'USMF OPER'.
3. On the Action Pane, click Set up.
4. Click Check.
5. Expand the Setup section.
6. Click Edit.
7. Select Yes in the Company logo field.
8. Click Company logo.
9. Click Change.
10. Click Browse and select the file that you downloaded earlier, Company logo.png.
11. Click Save.
12. Close the page.
13. Expand the Signature section.
14. Select Yes in the Print first signature field.
15. Click Change.
16. Click Browse and select the file that you downloaded earlier, Signature image.png.
17. Expand the Copies section.
18. In the Watermark field, select an option.
19. Select Yes in the Generic electronic Export format field.
20. Select 'Cheques printing form' configuration.
21. Now the selected ER format will be used for printing cheques.
22. Click Attach.
23. Click New.
24. Click File.
25. Click Browse and select the file that you downloaded earlier, Signature image 2.png.
26. Close the page.
27. Close the page.
28. Close the page.
29. Go to Cash and bank management > Setup > Cash and bank management parameters.
30. Select Yes in the Allow prenote creation on inactive bank accounts: field.
31. Click Save.
32. Close the page.
Review configurations to generate reports in Office
format that have embedded images
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

To complete these steps, you must first complete the steps in the "ER Make reports in MS Office formats with
embedded images (Part 1: Set up parameters)" task guide.
This procedure shows how to design Electronic reporting (ER) configurations to generate electronic documents that
contain embedded images in Microsoft Excel and Microsoft Word. In this example, you will review ER
configurations for the sample company Litware, Inc.
This procedure is intended for users who have the System administrator or Electronic reporting developer role
assigned to them. The steps can be completed by using the USMF data set.

Review the imported data model


1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, select 'Model for cheques'.
3. Click Designer.
This model is designed to represent payment cheques from the business standpoint and the mapping of
this model to the application's data sources. Review this model by the ER Operations designer. Note the
attributes of the model elements that are presented: structure, name, description, data type, and so on.
4. In the tree, expand 'root'.
5. In the tree, select 'root\cheques'.
6. In the tree, expand 'root\cheques'.
7. In the tree, expand 'root\cheques\attributes'.
8. In the tree, expand 'root\payer'.
9. In the tree, select 'root\istestrun'.
10. In the tree, select 'root\layout'.
The layout element of this model represents the details of the printing cheque form layout for the
selected bank account. It also includes two nodes of the Container data type to store images.
11. In the tree, expand 'root\layout'.
12. In the tree, select 'root\layout\company logo'.
13. In the tree, expand 'root\layout\company logo'.
14. In the tree, select 'root\layout\company logo\image'.
15. In the tree, select 'root\layout\company logo\isprinted'.
16. In the tree, select 'root\layout\signature'.
17. In the tree, expand 'root\layout\signature'.
18. In the tree, select 'root\layout\signature\image'.
19. In the tree, select 'root\layout\signature\isprinted'.
Note that two image data model elements are bound to the fields of the tables that contain images of the
company logo and the authorized person's signature in binary format.
20. In the tree, expand 'root\layout\watermark'.
21. Click Map model to datasource.
22. Click Designer.
23. In the tree, expand 'chequesselected'.
24. In the tree, expand 'layout'.
25. In the tree, expand 'layout\company logo'.
26. In the tree, expand 'layout\signature'.
27. In the tree, expand 'layout\watermark'.
28. Toggle 'Show details' on.
Note that the cheques data model element is bound to the TmpChequePrintout table that, at runtime, will
contain records for cheques that the user has selected for printing.
29. Close the page.
30. Close the page.
31. Close the page.

Review the imported format


1. In the tree, expand 'Model for cheques'.
2. In the tree, select 'Model for cheques\Cheques printing format'.
3. Click Designer.
4. Click Attachments.
5. Click Open.
Open the attached report's template in Excel.
Review the attached report's Excel template that will be used to print cheques. The template contains two
cheques per page and is designed to print cheques to the preprinted form. Note that two blank images
are embedded. These blank images are for the company logo and the signature of the person who is
authorizing a payment. Verify that the images are named CompLogo and SignatureImage, respectively, in
Excel.
6. Close the page.
7. In the tree, expand 'Report'.
8. In the tree, expand 'Report\ChequeLines'.
9. In the tree, select 'Report\ChequeLines\CompLogo'.
10. Toggle 'Show details' on.
Note that the 'CompLogo' format's cell element represents the Excel item that is used to populate the
company logo image in the report. This format element is bound to the image data model element that,
at runtime, contains a company logo image in binary format.
11. Click the Mapping tab.
12. Click Edit enabled.
Note that you can make the 'CompLogo' format's cell element so that it's no longer enabled. In this case,
the associated Excel image element will hide a company logo in the generated report. If the enabled
expression returns TRUE and the defined binding brings no image, the associated Excel image element
will show an image that has been saved in the Excel template.
13. Close the page.
14. In the tree, expand 'labels: Container'.
Some labels that are presented in the preprinted cheque form will be included in the report when it's
created for testing purposes. However, those labels won't be printed during real printing, because the
preprinted form already includes them.
15. Close the page.
Generate reports in Office format that have
embedded images
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user playing either 'System administrator' or 'Electronic reporting developer'
role can design Electronic reporting (ER) configurations to generate electronic documents in MS office formats
(Excel and Word) containing embedded images.
In this example, you will use created ER configurations for sample company, 'Litware, Inc.'. To complete these steps,
you must first complete the steps in the "ER Make reports in MS Office formats with embedded images (Part 2:
Review configurations)" task guide. These steps can be performed in 'USMF' company.

Run format with initial model mapping


1. Go to Cash and bank management > Bank accounts > Bank accounts.
2. Use the Quick Filter to filter on the Bank account field with a value of 'USMF OPER'.
3. On the Action Pane, click Set up.
4. Click Check.
5. Click Print test.
Run the format for testing purposes.
6. Select Yes in the Negotiable check format field.
7. Click OK.
Review the created output. Note that the company logo is presented in the report as well as the
authorized person's signature. The signature image is taken from the field of the 'Container' data type of
the cheque layout record which is associated with the selected bank account.
8. Expand the Copies section.
9. Click Edit.
10. In the Watermark field, enter 'Print watermark as Void'.
Change the watermark layout setting to show the watermark text in generating document in an Excel
shape element.
11. Click Print test.
12. Click OK.
Review the created output. Note that the watermark is shown in the created report in accordance to the
selection option.
13. Close the page.
14. On the Action Pane, click Manage payments.
15. Click Checks.
16. Click Show filters.
17. Apply the following filters: Enter a filter value of "381","385","389" on the "Check number" field using the "is one
of" filter operator.
18. In the list, mark all rows.
19. Click Print check copy.
Run the format to re-print the selected cheques.
Review the created output. Note that the selected cheques have been re-printed. The company logo and
labels are not printed out since they are presented on the pre-printed form.

Modify the mapping of the imported data model


1. Close the page.
2. Close the page.
3. Go to Organization administration > Electronic reporting > Configurations.
4. In the tree, select 'Model for cheques'.
5. Click Designer.
6. Click Map model to datasource.
7. Click Designer.
We will change the binding of the data model's signature item to get the signature image from the file
that has been attached to the cheque layout record which is associated with the selected bank account.
8. Turn Show details off.
9. In the tree, expand 'layout'.
10. In the tree, expand 'layout\signature'.
11. In the tree, select 'layout\signature\image = chequesaccount.'<Relations'.BankChequeLayout.Signature1Bmp'.
12. In the tree, expand 'chequesaccount'.
13. In the tree, expand 'chequesaccount<Relations'.
14. In the tree, expand 'chequesaccount<Relations\BankChequeLayout'.
15. In the tree, expand 'chequesaccount<Relations\BankChequeLayout<Relations'.
16. In the tree, expand 'chequesaccount<Relations\BankChequeLayout<Relations<Documents'.
17. In the tree, select
'chequesaccount<Relations\BankChequeLayout<Relations<Documents\getFileContentAsContainer()'.
18. Click Bind.
19. Click Save.
20. Close the page.
21. Close the page.
22. Close the page.
23. Close the page.

Run format using the adjusted model mapping


1. Go to Cash and bank management > Bank accounts > Bank accounts.
2. Use the Quick Filter to find records. For example, filter on the Bank account field with a value of 'USMF OPER'.
3. On the Action Pane, click Set up.
4. Click Check.
5. Click Print test.
6. Click OK.
Review the created output. Note that the image from the Document Management attachment is
presented as the signature of an authorized person.

Use MS Word document as a template in the imported format


1. Close the page.
2. Close the page.
3. Go to Organization administration > Electronic reporting > Configurations.
4. In the tree, expand 'Model for cheques'.
5. In the tree, select 'Model for cheques\Cheques printing format'.
6. Click Designer.
7. Click Attachments.
8. Click Delete.
9. Click Yes.
10. Click New.
11. Click File.
Click Browse and select the downloaded in advance 'Cheque template Word.docx' file.
12. Close the page.
13. In the Template field, enter or select a value.
14. Click Save.
15. Close the page.
16. Click Edit.
17. Select Yes in the Run Draft field.
18. Close the page.
19. Go to Cash and bank management > Bank accounts > Bank accounts.
20. Use the Quick Filter to filter on the Bank account field with a value of 'USMF OPER'.
21. Click Check.
22. Click Print test.
23. Click OK.
Review the created output. Note that the output has been generated as a MS Word document with
embedded images presenting the company logo, the signature of an authorized person and the selected
text of the watermark.
Modify Electronic reporting formats by reapplying
Excel templates
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The Electronic reporting (ER) tool is used to generate business documents in an electronic format. To generate a
business document, you must create an ER format, and then use the ER designer to define the layout of the
business document and specify the data that should be included in it. You can then run the ER format to generate
the business document.
The ER tool can be used to generate business documents as Microsoft Excel files. You can use an Excel document as
a template for these documents. To define the document layout in the ER designer, you can import the contents of
the Excel document that you want to use as a template into the defined ER format. For more details, and to practice
this scenario, play the task guide ER Design a configuration for generating repor ts in OPENXML format
(part of the 7.5.4.3 Acquire/Develop IT service/solution components (10677) business process).
If you edit the Excel document that is used as a template for a business document, new ER functionality lets you
reapply the updated template to the ER format. The ER format is then updated so that it adheres to the updated
template. For more details about this functionality, play the task guide ER Modify a format by reapplying an
Excel template (part of the 7.5.5.3 Acquire/Develop IT service/solution components (10683) business process). In
the task guide step where you import an updated template, use the modified template of the Payment Report Excel
file, SampleVendPaymWsReport2, as a template.
Define the dependency of ER configurations on other
components
3/18/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

To complete these steps, you must first complete the steps in the task guide, ER Manage model mapping
configurations, and you must have access to Microsoft Dynamics Lifecycle Services (LCS).
This procedure shows how to design an Electronic reporting (ER) configuration and specify its dependency from
other software components, so that you can help guarantee that the configuration is correctly downloaded to a
specific version of Finance and Operations. In this example, you will create required ER configurations for the
sample company Litware, Inc.
This procedure is intended for users who have the System administrator or Electronic reporting developer role
assigned to them. The steps can be performed in any company, because ER configurations are shared among
companies.
1. Go to Organization administration > Electronic reporting > Configurations.
Make sure that the configurations tree contains the 'Sample data model' configuration and subordinate
items. Otherwise, complete the steps in the task guide, ER Manage model mapping configurations, and
then start this guide again.

Define the dependency of ER configurations from other components


1. In the tree, expand 'Sample data model'.
2. In the tree, select 'Sample data model\Sample mapping'.
We selected the draft version of the 'Sample mapping' model mapping configuration. We will now define
its dependency from other software components. This step is considered a prerequisite for controlling the
download of this configuration's version from an ER repository and any further use of this version.
3. Expand the Prerequisites section.
Note that the 'Implementations' prerequisites group has been added automatically at this stage. This
group contains the prerequisite component that refers to the data model configuration and has the
Implementation flag turned on. This flag indicates that the 'Sample mapping' mapping configuration is
considered the implementation of the 'Sample data model' data model. This component will force ER to
download the 'Sample mapping' mapping configuration from an ER repository whenever the 'Sample
data model' model configuration is downloaded.
4. Click Edit.
A single dependency of the current version of a configuration from a software component can be
specified by using the definition of the component's type, and either the component version or a range of
component versions.
Desired dependencies can be grouped together. When the 'All of' grouping type is selected, the
dependency condition of this group is considered satisfied when each dependency condition from this
group and subordinate group is satisfied. When the 'One of' grouping type is selected, the dependency
condition of this group is considered satisfied when at least one dependency condition from this group is
satisfied.
5. Click New.
6. Select Product prerequisite component.
7. Select Microsoft Dynamics 365 for Operations (1611).
8. In the Version field, type '[7.1.1541.3036,8)'.
[7.1.1541.3036,8)
Dependencies that you enter will be evaluated when this configuration is downloaded from any ER
repository. This configuration version will be downloaded from the ER repository when version 1 of the
'Sample data model' configuration is either already in place or downloaded in advance. If it's downloaded
in advance, it must be completed in Finance and Operations version 7.1.1541.3036 or later, but must not
exceed major version 8.
9. Click Save.
10. Close the page.
11. Click Change status.
12. Click Complete.
13. Click OK.
14. In the tree, select 'Sample data model\Sample mapping (alternative)'.
15. Click Edit.
16. Click New.
17. Select Product prerequisite component.
18. Select Microsoft Dynamics AX 7.0 RTW.
19. In the Version field, type '[7.0.1265.3015,7.1)'.
[7.0.1265.3015,7.1)
Dependencies will be evaluated when the configuration is downloaded from any ER repository. This
configuration version will be downloaded from the ER repository when version 1 of the 'Sample data
model' configuration is either already in place or downloaded in advance. If it's downloaded in advance, it
must be completed in Microsoft Dynamics 365 for Finance and Operations, Enterprise edition, the version
of which must be 7.0.1265.3015 or later, but must not exceed minor version 1.
20. Click Save.
21. Close the page.
22. Click Change status.
23. Click Complete.
24. Click OK.

Configure the ER repository


1. Close the page.
2. Go to Organization administration > Workspaces > Electronic reporting.
Open the list of ER repositories for the current ER provider, Litware, Inc.
3. In the list, mark the selected row.
4. Click Repositories.
5. Click Show filters.
6. Enter a filter value of "LCS" on the "Type name" field using the "contains" filter operator.
If the LCS repository is already registered for the current ER provider, you can skip the remaining steps in
this sub-task. If the LCS repository isn't already registered, complete the remaining steps.
7. Click Add to open the drop dialog.
8. In the Configuration repository type field, enter 'LCS'.
9. Click Create repository.
10. In the Project field, enter or select a value.
Select the desired LCS project from the lookup of the 'Project' field.
11. Click OK.
12. Close the page.

Upload configurations to LCS


1. Click Reporting configurations.
2. In the tree, select 'Sample data model'.
3. Select the completed version of this configuration.
4. Click Change status.
5. Click Share.
6. Click OK.
Version 1 of this model configuration has been uploaded to LCS by using the LCS project for the ER
repository that was previously configured.
7. In the tree, expand 'Sample data model'.
8. In the tree, select 'Sample data model\Sample mapping'.
9. Select the completed version of this configuration.
10. Click Change status.
11. Click Share.
12. Click OK.
Version 1.1 of this model mapping configuration has been uploaded to LCS by using the LCS project for
the ER repository that was previously configured.
13. In the tree, select 'Sample data model\Sample mapping (alternative)'.
14. Select the completed version of this configuration.
15. Click Change status.
16. Click Share.
17. Click OK.
Version 1.1 of this model mapping configuration has been uploaded to LCS by using the LCS project for
the ER repository that was previously configured.

Evaluate ER configuration dependencies


We will delete created configurations from the system and download them back from the LCS repository.
1. In the tree, select 'Sample data model\Sample mapping'.
2. Click Delete.
3. Click Yes.
4. In the tree, select 'Sample data model\Sample mapping (alternative)'.
5. Click Delete.
6. Click Yes.
7. In the tree, select 'Sample data model\Sample format'.
8. Click Delete.
9. Click Yes.
10. In the tree, select 'Sample data model'.
11. Click Delete.
12. Click Yes.
13. Close the page.
Open the list of ER repositories for the current ER provider, Litware, Inc.
14. Click Repositories.
15. Click Show filters.
16. Enter a filter value of "LCS" on the "Type name" field using the "contains" filter operator.
17. Click Open.
18. In the tree, select 'Sample data model'.
Note that you can view an evaluation of whether prerequisite conditions have been satisfied for each
version of the ER configurations for the current repository. To view this evaluation, click Check
prerequisites.
19. Click Check prerequisites.
20. Click Import.
21. Click Yes.
22. Close the page.
23. Close the page.
24. Close the page.
25. Go to Organization administration > Electronic reporting > Configurations.
26. In the tree, expand 'Sample data model'.
Note that the model 'Sample mapping' mapping configuration has been downloaded together with the
selected data model configuration. The two files are downloaded together because 'Sample mapping' has
been defined as implementing the selected data model, and because it's applicable for the application.
The 'Sample mapping (alternative)' configuration hasn't been downloaded because the condition for the
required application version isn't satisfied.
If you sign in to Finance and Operations, register the same provider, access the same LCS project, and
download the same data model configuration, the 'Sample mapping (alternative)' configuration will
download, whereas the 'Sample mapping' configuration will be skipped.
ER Use financial dimensions as a data source (Part 1 -
Design data model)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how either a system administrator or electronic reporting developer can configure an
Electronic reporting (ER) model to use financial dimensions as a data source for ER reports. These steps can be
performed in any company.
To complete these steps, you must first complete the steps in the procedure, "Create a configuration provider and
mark it as active".

Create a new data model


1. Go to Organization administration > Workspaces > Electronic reporting.
Make sure that the "Litware, Inc." provider is available and marked as active.
2. Click Reporting configurations.
3. Click Create configuration to open the drop dialog.
4. In the Name field, type 'Financial dimensions sample model'.
5. Click Create configuration.
6. Click Designer.
7. Click New to open the drop dialog.
8. In the Name field, type 'Entry'.
9. Click Add.
10. Click New to open the drop dialog.
11. In the Name field, type 'Company'.
12. Click Add.
We will add to our model a new record list. This list will expose (for any ER reports using this model as
data source) the settings of selected financial dimensions. Each financial dimension will be presented in
this list as a record with appropriate fields representing dimension's setting.
13. Click New to open the drop dialog.
14. In the Name field, type 'Dimensions setting'.
15. In the Item type field, select 'Record list'.
16. Click Add.
17. Click New to open the drop dialog.
18. In the Name field, type 'Code'.
19. In the Item type field, select 'String'.
20. Click Add.
21. Click New to open the drop dialog.
22. In the Name field, type 'Name'.
23. Click Add.
24. In the tree, select 'Entry'.
25. Click New to open the drop dialog.
26. In the Name field, type 'Journal'.
27. In the Item type field, select 'Record list'.
28. Click Add.
29. Click New to open the drop dialog.
30. In the Name field, type 'Batch'.
31. In the Item type field, select 'String'.
32. Click Add.
33. Click New to open the drop dialog.
34. In the Name field, type 'Transaction'.
35. In the Item type field, select 'Record list'.
36. Click Add.
37. Click New to open the drop dialog.
38. In the Name field, type 'Date'.
39. In the Item type field, select 'Date'.
40. Click Add.
41. Click New to open the drop dialog.
42. In the Name field, type 'Debit'.
43. In the Item type field, select 'Real'.
44. Click Add.
45. Click New to open the drop dialog.
46. In the Name field, type 'Credit'.
47. Click Add.
48. Click New to open the drop dialog.
49. In the Name field, type 'Currency'.
50. In the Item type field, select 'String'.
51. Click Add.
52. Click New to open the drop dialog.
53. In the Name field, type 'Voucher'.
54. Click Add.
55. Click New to open the drop dialog.
56. In the Name field, type 'Dimensions data'.
57. In the Item type field, select 'Record list'.
58. Click Add.
We added to our model a new record list. This list will expose (for any ER reports using this model as data
source) the values of selected financial dimensions. Each financial dimension will be presented in this list
as a record with appropriate fields representing dimension's values. Dimension name will be also
presented in this record as a field to be used, if needed, for selection purposes.
59. Click New to open the drop dialog.
60. In the Name field, type 'Code'.
61. In the Item type field, select 'String'.
62. Click Add.
63. Click New to open the drop dialog.
64. In the Name field, type 'Description'.
65. Click Add.
66. Click New to open the drop dialog.
67. In the Name field, type 'Name'.
68. Click Add.
69. Click Save.
70. Close the page.
ER Use financial dimensions as a data source (Part 2 -
Model mapping)
3/18/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) model to use financial dimensions as a data source for ER reports. These
steps can be performed in any company.
To complete these steps, you must first complete the steps in the "ER Use financial dimensions as a data source
(Part 1: Design data model" procedure.

Add required data sources to model mapping


1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, select 'Financial dimensions sample model'.
3. Click Designer.
4. Click Map model to datasource.
5. Click New.
6. In the Definition field, select Entry.
7. In the Name field, type 'Dimensions data mapping'.
8. In the Description field, type 'Dimensions data mapping'.
9. Click Save.
10. Click Designer.
11. In the tree, select 'Dynamics 365 for Operations\Table'.
12. Click Add root.
13. In the Name field, type 'Company'.
14. In the Table field, type 'CompanyInfo'.
15. Click OK.
16. In the tree, select 'Functions\Financial dimensions details'.
17. Click Add root.
This data source specifies how the scope of financial dimensions will be defined for any report that will
use this model as a data source.
18. In the Name field, type a value.
19. Select Yes in the Ask for dimensions field.
Select Yes to allow the user to select dimensions at run-time on the User dialog form. If set to No, all
financial dimensions of the current instance will be used by default.
20. In the Financial dimensions selection field, select 'Legal entity'.
Select All to allow the user to select desire dimensions for the current instance in the Lookup field. Select
Legal entity to allow the user to select dimensions for the company in the Lookup field. Select Dimension
to allow the user to select dimensions using a single dimension set.
21. Select Yes in the Ask for main account field.
Set 'Ask for main account' to Yes to allow users to select the main account as part of the list of
dimensions. If set to No, the main account will not be included to the list of dimensions and the 'Is main
account mandatory' option is enabled. If "Is main account mandatory' is set to Yes, include the main
account in the list of dimensions regardless of the user's selection.
22. Click OK.
23. In the tree, select 'Dynamics 365 for Operations\Table records'.
24. Click Add root.
25. In the Name field, type 'LedgerJournal'.
26. Select Yes in the Ask for query field.
27. In the Table field, type 'LedgerJournalTable'.
28. Click OK.

Map data model elements to added data sources


1. In the tree, expand 'Journal'.
2. In the tree, expand 'Journal\Transaction'.
3. In the tree, expand 'Journal\Transaction\Dimensions data'.
4. In the tree, expand 'Dimensions setting'.
5. In the tree, expand 'LedgerJournal'.
6. In the tree, expand 'LedgerJournal<Relations'.
7. In the tree, expand 'LedgerJournal<Relations\LedgerJournalTrans'.
8. In the tree, select 'LedgerJournal<Relations\LedgerJournalTrans\Voucher'.
9. In the tree, select 'Journal\Transaction\Voucher'.
10. Click Bind.
11. In the tree, select
'LedgerJournal<Relations\LedgerJournalTrans\Account.Dimension(LedgerDimension.Dimension)'.
Note that for any reference to financial dimensions that is set to, for instance, LedgerDimension, a
corresponding data source item is available (LedgerDimension.Dimension). This data source item offers
the financial dimensions of that dimensions set as the record's list.
12. In the tree, expand
'LedgerJournal<Relations\LedgerJournalTrans\Account.Dimension(LedgerDimension.Dimension)'.
13. In the tree, expand
'LedgerJournal<Relations\LedgerJournalTrans\Account.Dimension(LedgerDimension.Dimension)\Main account
and dimensions'.
14. In the tree, expand
'LedgerJournal<Relations\LedgerJournalTrans\Account.Dimension(LedgerDimension.Dimension)\Main account
and dimensions\Value'.
15. In the tree, expand
'LedgerJournal<Relations\LedgerJournalTrans\Account.Dimension(LedgerDimension.Dimension)\Main account
and dimensions\Definition'.
16. In the tree, select
'LedgerJournal<Relations\LedgerJournalTrans\Account.Dimension(LedgerDimension.Dimension)\Main account
and dimensions\Definition\Name'.
17. In the tree, select 'Journal\Transaction\Dimensions data\Name'.
18. Click Bind.
19. In the tree, select
'LedgerJournal<Relations\LedgerJournalTrans\Account.Dimension(LedgerDimension.Dimension)\Main account
and dimensions\Value\Description'.
20. In the tree, select 'Journal\Transaction\Dimensions data\Description'.
21. Click Bind.
22. In the tree, select
'LedgerJournal<Relations\LedgerJournalTrans\Account.Dimension(LedgerDimension.Dimension)\Main account
and dimensions\Value\Code'.
23. In the tree, select 'Journal\Transaction\Dimensions data\Code'.
24. Click Bind.
25. In the tree, select
'LedgerJournal<Relations\LedgerJournalTrans\Account.Dimension(LedgerDimension.Dimension)\Main account
and dimensions'.
26. In the tree, select 'Journal\Transaction\Dimensions data'.
27. Click Bind.
28. In the tree, select 'LedgerJournal<Relations\LedgerJournalTrans\Debit(AmountCurDebit)'.
29. In the tree, select 'Journal\Transaction\Debit'.
30. Click Bind.
31. In the tree, select 'LedgerJournal<Relations\LedgerJournalTrans\Date(TransDate)'.
32. In the tree, select 'Journal\Transaction\Date'.
33. Click Bind.
34. In the tree, select 'LedgerJournal<Relations\LedgerJournalTrans\Currency(CurrencyCode)'.
35. In the tree, select 'Journal\Transaction\Currency'.
36. Click Bind.
37. In the tree, select 'LedgerJournal<Relations\LedgerJournalTrans\Credit(AmountCurCredit)'.
38. In the tree, select 'Journal\Transaction\Credit'.
39. Click Bind.
40. In the tree, select 'LedgerJournal<Relations\LedgerJournalTrans'.
41. In the tree, select 'Journal\Transaction'.
42. Click Bind.
43. In the tree, select 'LedgerJournal\Journal batch number(JournalNum)'.
44. In the tree, select 'Journal\Batch'.
45. Click Bind.
46. In the tree, select 'LedgerJournal'.
47. In the tree, select 'Journal'.
48. Click Bind.
49. In the tree, expand 'Dimensions'.
50. In the tree, expand 'Dimensions\Main account and dimensions'.
51. In the tree, expand 'Dimensions\Main account and dimensions\Definition'.
52. In the tree, select 'Dimensions\Main account and dimensions\Definition\Name'.
53. In the tree, select 'Dimensions setting\Code'.
54. Click Bind.
55. In the tree, select 'Dimensions\Main account and dimensions\Definition\Report column name'.
56. In the tree, select 'Dimensions setting\Name'.
57. Click Bind.
58. In the tree, select 'Dimensions\Main account and dimensions'.
59. In the tree, select 'Dimensions setting'.
60. Click Bind.
61. In the tree, select 'Company'.
62. Click Edit.
63. In the expressionAsStringText field, enter 'Company.'find()'.'name()''.
Company.'find()'.'name()'
64. Click Save.
65. Close the page.
66. Click Save.
67. Close the page.

Complete this draft model's version


1. Close the page.
2. Close the page.
3. Click Change status.
4. Click Complete.
5. Click OK.
ER Use financial dimensions as a data source (Part 3 -
Design the report)
3/18/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) model to use financial dimensions as a data source for ER reports. These
steps can be performed in any company.
To complete these steps, you must first complete the steps in the "ER Use financial dimensions as a data source
(Part 2: Model mapping)" procedure.

Design a report to present financial dimensions


1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, select 'Financial dimensions sample model'.
3. Click Create configuration to open the drop dialog.
4. In the New field, enter 'Format based on data model Financial dimensions sample model'.
Use the model that was created in advance as the data source for your new report.
5. In the Name field, type 'Ledger journal report'.
6. In the Data model definition field, select Entry.
7. Click Create configuration.
8. Click Designer.
9. Click Add root to open the drop dialog.
10. In the tree, select 'XML\Element'.
11. In the Name field, type 'Root'.
12. Click OK.
13. Click Add to open the drop dialog.
14. In the tree, select 'XML\Attribute'.
15. In the Name field, type 'Company'.
16. Click OK.
17. Click Add to open the drop dialog.
18. In the tree, select 'XML\Element'.
19. In the Name field, type 'Journal'.
20. Click OK.
21. In the tree, select 'Root: XML Element\Journal: XML Element'.
22. Click Add to open the drop dialog.
23. In the tree, select 'XML\Attribute'.
24. In the Name field, type 'Batch'.
25. Click OK.
26. Click Add to open the drop dialog.
27. In the tree, select 'XML\Element'.
28. In the Name field, type 'Transaction'.
29. Click OK.
30. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element'.
31. Click Add to open the drop dialog.
32. In the tree, select 'XML\Attribute'.
33. In the Name field, type 'Voucher'.
34. Click OK.
35. Click Add Attribute.
36. In the Name field, type 'Date'.
37. Click OK.
38. Click Add Attribute.
39. In the Name field, type 'Currency'.
40. Click OK.
41. Click Add Attribute.
42. In the Name field, type 'Dt'.
43. Click OK.
44. Click Add Attribute.
45. In the Name field, type 'Ct'.
46. Click OK.
47. Click Add to open the drop dialog.
48. In the tree, select 'XML\Element'.
49. In the Name field, type 'Dimensions'.
50. Click OK.
51. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element\Dimensions: XML
Element'.
52. Click Add to open the drop dialog.
53. In the tree, select 'XML\Attribute'.
54. In the Name field, type 'Code'.
55. Click OK.
56. Click Add Attribute.
57. In the Name field, type 'Value'.
58. Click OK.
59. Click Add Attribute.
60. In the Name field, type 'Desc'.
61. Click OK.

Map report elements to data sources


1. Click the Mapping tab.
2. In the tree, expand 'model: Data model Financial dimensions sample model'.
3. In the tree, expand 'model: Data model Financial dimensions sample model\Journal: Record list'.
4. In the tree, expand 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list'.
5. In the tree, expand 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Dimensions data: Record list'.
6. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element\Dimensions: XML
Element\Desc: XML Attribute'.
7. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Dimensions data: Record list\Description: String'.
8. Click Bind.
9. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element\Dimensions: XML
Element\Value: XML Attribute'.
10. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Dimensions data: Record list\Code: String'.
11. Click Bind.
12. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element\Dimensions: XML
Element\Code: XML Attribute'.
13. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Dimensions data: Record list\Name: String'.
14. Click Bind.
15. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Dimensions data: Record list'.
16. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element\Dimensions: XML
Element'.
17. Click Bind.
18. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element\Ct: XML Attribute'.
19. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Credit: Real'.
20. Click Bind.
21. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element\Dt: XML Attribute'.
22. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Debit: Real'.
23. Click Bind.
24. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element\Currency: XML Attribute'.
25. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Currency: String'.
26. Click Bind.
27. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element\Date: XML Attribute'.
28. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Date: Date'.
29. Click Bind.
30. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element\Voucher: XML Attribute'.
31. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Voucher: String'.
32. Click Bind.
33. In the tree, select 'Root: XML Element\Journal: XML Element\Transaction: XML Element'.
34. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list'.
35. Click Bind.
36. In the tree, select 'Root: XML Element\Journal: XML Element\Batch: XML Attribute'.
37. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Batch: String'.
38. Click Bind.
39. In the tree, select 'Root: XML Element\Journal: XML Element'.
40. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list'.
41. Click Bind.
42. In the tree, select 'Root: XML Element\Company: XML Attribute'.
43. In the tree, select 'model: Data model Financial dimensions sample model\Company: String'.
44. Click Bind.
45. Click Save.
46. Close the page.
ER Use financial dimensions as a data source (Part 4 -
Run the report)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) model to use financial dimensions as a data source for ER reports. These
steps can be performed in the DEMF company.
To complete these steps, you must first complete the steps in the "ER Use financial dimensions as a data source
(Part 3: Design the report)" procedure. You must also configure default document types on the Electronic reporting
parameters page. Default document types are also set when you download and import any ER configuration.

Run report
1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, expand 'Financial dimensions sample model'.
3. In the tree, select 'Financial dimensions sample model\Ledger journal report'.
4. Click Run.
5. In the Dimension name field, In the Dimension name field, enter or select a value..
To select all dimensions in the current company, enter the following:
BusinessUnit;CostCenter;Department;ItemGroup;MainAccount;Project
6. Expand the Records to include section.
7. Click Filter.
8. Select the row for the Ledger journal table and the Journal batch number field.
9. In the Criteria field, type '00057'.
10. Click OK.
11. Click OK.
Review the generated output. Note that for each transaction of the selected batch, the financial
dimensions from the corresponding dimensions set are presented. Run this report and select different
dimensions to see that the report is not dependent on the number of selected dimensions or the number
of dimensions configured for this instance.
ER Configure format to do counting and summing
(Part 1 - Create format)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific
business functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer
role can configure an Electronic reporting (ER) format to do counting and summing based on data of the already
generated text output. These steps can be performed in any company.
To complete these steps, you must first complete the steps in the "Create a configuration provider and mark it as
active" procedure.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Get access to the list of configurations provided by Microsoft


1. Go to Organization administration > Workspaces > Electronic reporting.
Make sure that the "Litware, Inc." provider is available and marked as active.
2. Select the "Litware, Inc." provider.
3. Click Repositories.
If a repository of the "Operations resources" type already exists, skip the remaining steps of the current
sub-task.
4. Click Add to open the drop dialog.
5. In the Configuration repository type field, enter 'Operations resources'.
6. Click Create repository.
7. Click OK.

Get the Intrastat configurations provided by Microsoft


1. Click Open.
2. In the tree, select 'Intrastat model\Intrastat (DE)'.
3. Click Import.
Click Import for version 1.1 of the selected configuration.
4. Click Yes.
5. Close the page.
6. Close the page.
7. Click Reporting configurations.
8. In the tree, expand 'Intrastat model'.
9. In the tree, select 'Intrastat model\Intrastat (DE)'.
ER Configure format to do counting and summing
(Part 2 - Configure computations)
3/18/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) format to do counting and summing based on data of the already
generated text output. These steps can be performed in any company.
To complete these steps, you must first complete the steps in the "ER Configure format to do counting and
summing (Part 1: Create format)" procedure.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Create a format configuration to add counting and summing details


1. Go to Organization administration > Workspaces > Electronic reporting.
2. Click Reporting configurations.
3. In the tree, expand 'Intrastat model'.
4. In the tree, select 'Intrastat model\Intrastat (DE)'.
Assume that you need to customize the format provided by Microsoft by adding lines with summary
details at the end of the Intrastat report. You need to do that by deriving our own instance of the Intrastat
configuration from the Microsoft instance to make modifications.
5. Click Create configuration to open the drop dialog.
6. In the New field, enter 'Derive from Name: Intrastat (DE), Microsoft'.
7. In the Name field, type 'Intrastat (DE) with counting & summing'.
8. Click Create configuration.

Configure this report to do counting and summation based on output


details
1. Click Designer.
2. Select Yes in the Collect output details field.
This flag will activate at run-time the process of collecting output details for generating the Intrastat file.
You need to do counting for different Intrastat directions, so add a dedicated model enumeration to the
data sources' list of this format configuration.
3. Click the Mapping tab.
4. Click Add root to open the drop dialog.
5. In the tree, select 'Data model\Enumeration '.
6. In the Name field, type 'Direction'.
7. In the Model enumeration field, enter or select a value.
Select the value Direction.
8. Click OK.
9. Click Add root to open the drop dialog.
10. In the tree, select 'Functions\Calculated field'.
11. In the Name field, type '$BlockName'.
12. Click Edit formula.
13. In the Formula field, enter '"block"'.
14. Click Save.
15. Close the page.
16. Click OK.
17. Click Add root to open the drop dialog.
18. In the tree, select 'Functions\Calculated field'.
19. In the Name field, type '$RecName'.
20. Click Edit formula.
21. In the Formula field, enter '"record"'.
22. Click Save.
23. Close the page.
24. Click OK.
25. Click Add root to open the drop dialog.
26. In the tree, select 'Functions\Calculated field'.
27. In the Name field, type '$InvName'.
28. Click Edit formula.
29. In the Formula field, enter '"InvoicedAmountEUR"'.
30. Click Save.
31. Close the page.
32. Click OK.
33. In the tree, select 'Intrastat\Data'.
34. Click Edit button for the 'Collected data key name' field
35. Click Add data source.
$BlockName
36. Click Save.
37. Close the page.
38. Click the Edit button for the Collected data key value field.
39. In the Formula field, enter 'IF(Intrastat.CommodityRecord.Direction=Direction.Import, "Import", "Export")'.
IF(Intrastat.CommodityRecord.Direction=Direction.Import, "Import", "Export")
40. Click Save.
41. Close the page.
Count the lines of this sequence. The results will be used with the name "block" separately for different
directions. Value "Import" will be used for any arrivals Intrastat transactions. The value "Export" will be
used for any Intrastat dispatches transactions. Consider this to be a virtual Excel spreadsheet. For each
transaction a row where the first column "block" is filled with the values "Import" and "Export"
accordingly.
42. In the tree, expand 'Intrastat\Data: Sequence'.
43. In the tree, select 'Intrastat\Data: Sequence\Arrivals?'.
44. Click Edit button for the 'Collected data key name' field.
Count the lines of this sequence. The results will be memorized using the name "record".
45. In the tree, select '$RecName'.
46. Click Add data source.
47. Click Save.
48. Close the page.
49. Click Edit button for the 'Collected data key value' field
50. In the Formula field, enter 'Intrastat.CommodityRecord.CommodityCode'.
51. Click Save.
52. Close the page.
Count the lines of this sequence. The results will be used with the name "record" separately for different
commodity codes. Consider this to be a virtual Excel spreadsheet. For each transaction a row where the
first column "block" is filled with the values "Import" and "Export" accordingly and the second block
"record" is filled with the commodity code value.
53. In the tree, select 'Intrastat\Data: Sequence\Dispatches?'.
54. Click Edit button for the 'Collected data key name' field
55. In the tree, select '$RecName'.
56. Click Add data source.
57. Click Save.
58. Close the page.
59. Click the Edit button for the 'Collected data key value' field.
60. In the Formula field, enter 'Intrastat.CommodityRecord.CommodityCode'.
61. Click Save.
62. Close the page.
63. In the tree, expand 'Intrastat\Data: Sequence\Dispatches: Sequence?'.
64. In the tree, expand 'Intrastat\Data: Sequence\Dispatches: Sequence?\Record = Intrastat.CommodityRecord'.
65. Click the Format tab.
66. In the tree, select 'Intrastat\Data\Dispatches\Record\Invoice amount EUR'.
67. Click the Mapping tab.
68. Click the Edit button for the 'Collected data key name' field.
69. In the tree, select '$InvName'.
70. Click Add data source.
71. Click Save.
72. Close the page.
Summarize the invoiced amount values for lines of this sequence. The results will be used with the name
"InvoicedAmountEUR" separately for different Intrastat directions and commodity codes. Consider this to
be a virtual creation in Excel spreadsheet. For each transaction a row where the first column "block" is
filled with the values "Import" and "Export" accordingly. The second block "record" is filled with the
commodity code value, and the third column "InvoicedAmountEUR" is filled with the invoice amount
value.
73. In the tree, expand 'Intrastat\Data\Arrivals?'.
74. In the tree, expand 'Intrastat\Data\Arrivals?\Record = Intrastat.CommodityRecord'.
75. Click the Format tab.
76. In the tree, select 'Intrastat\Data\Arrivals\Record\Invoice amount EUR'.
77. Click the Mapping tab.
78. Click the Edit button for the 'Collected data key name' field.
79. In the tree, select '$InvName'.
80. Click Add data source.
81. Click Save.
82. Close the page.
83. Click Save.
84. Close the page.
ER Configure format to do counting and summing
(Part 3 - Use computations to make the output)
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) format to do counting and summing based on data of the already
generated text output. These steps can be performed in any company.
To complete these steps, you must first complete the steps in the "ER Configure format to do counting and
summing (Part 2: Configure computations)" procedure.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Configure this report to use counting and summing info


1. Go to Organization administration > Workspaces > Electronic reporting.
2. Click Reporting configurations.
3. In the tree, expand 'Intrastat model'.
4. In the tree, expand 'Intrastat model\Intrastat (DE)'.
5. In the tree, select 'Intrastat model\Intrastat (DE)\Intrastat (DE) with counting & summing'.
6. Click Designer.
7. Click the Mapping tab.
8. Click Add root to open the drop dialog.
Add a new data source to get the list of memorized blocks.
9. In the tree, select 'Functions\Calculated field'.
10. In the Name field, type '$BlocksList'.
$BlocksList
11. Click Edit formula.
12. In the tree, select 'Data collection functions\COLLECTEDLIST'.
13. Click Add function.
14. Click Add data source.
15. In the Formula field, enter 'COLLECTEDLIST('$BlockName', '.
COLLECTEDLIST('$BlockName',
16. In the Formula field, enter 'COLLECTEDLIST('$BlockName', "*")'.
COLLECTEDLIST('$BlockName', "*")
17. Click Save.
The pattern "*" means that all blocks will be included to the list for this record.
18. Close the page.
19. Click OK.
20. Click the Format tab.
21. In the tree, select 'Intrastat\Data'.
22. Click Add to open the drop dialog.
23. In the tree, select 'Text\Sequence'.
24. In the Name field, type 'Totals by blocks'.
Totals by blocks
25. In the Special characters field, select 'New line - Windows (CR LF)'.
26. Click OK.
27. In the tree, select 'Intrastat\Data\Totals by blocks'.
28. Click Add to open the drop dialog.
29. In the tree, select 'Text\String'.
30. In the Name field, type 'Block code'.
Block code
31. Click OK.
32. Click Add String.
33. In the Name field, type 'Lines counting'.
Lines counting
34. Click OK.
35. Click Add String.
36. In the Name field, type 'Total amount'.
Total amount
37. Click OK.
38. Click the Mapping tab.
39. In the tree, select '$BlocksList'.
40. Click Bind.
Create a summary line for each memorized block.
41. Click the Format tab.
42. In the tree, select 'Intrastat\Data\Totals by blocks\Block code'.
43. Click the Mapping tab.
44. Click Edit formula.
45. In the Formula field, enter '"Block id: " & '.
"Block id: " &
46. In the tree, expand '$BlocksList'.
47. In the tree, select '$BlocksList\Value'.
48. Click Add data source.
49. Click Save.
50. Close the page.
51. Click the Format tab.
52. In the tree, select 'Intrastat\Data\Totals by blocks\Lines counting'.
53. Click the Mapping tab.
54. Click Edit formula.
Create output for the number of lines for each block presented in this report.
55. In the Formula field, enter '"Number of lines in this block: " & '.
"Number of lines in this block: " &
56. In the Formula field, enter '"Number of lines in this block: " & TEXT('.
"Number of lines in this block: " & TEXT(
57. In the tree, select 'Data collection functions\COUNTIFS'.
58. Click Add function.
59. Click Add data source.
60. In the Formula field, enter '"Number of lines in this block: " & TEXT(COUNTIFS('$BlockName', '.
"Number of lines in this block: " & TEXT(COUNTIFS('$BlockName',
61. In the tree, expand '$BlocksList'.
62. In the tree, select '$BlocksList\Value'.
63. Click Add data source.
64. In the Formula field, enter '"Number of lines in this block: " & TEXT(COUNTIFS('$BlockName', '$BlocksList'.Value,
'.
"Number of lines in this block: " & TEXT(COUNTIFS('$BlockName', '$BlocksList'.Value,
65. In the tree, select '$RecName'.
66. Click Add data source.
67. In the Formula field, enter '"Number of lines in this block: " & TEXT(COUNTIFS('$BlockName', '$BlocksList'.Value,
'$RecName', "*"))'.
"Number of lines in this block: " & TEXT(COUNTIFS('$BlockName', '$BlocksList'.Value, '$RecName', "*"))
68. Click Save.
69. Close the page.
70. Click the Format tab.
71. In the tree, select 'Intrastat\Data\Totals by blocks\Total amount'.
72. Click the Mapping tab.
73. Click Edit formula.
Create output that will be the total of the invoiced amount for each block presented in this report.
74. In the Formula field, enter '"Sum of invoiced amount: " & TEXT(SUMIFS('$InvName', '$BlockName',
'$BlocksList'.Value, '$RecName', "*"))'.
"Sum of invoiced amount: " & TEXT(SUMIFS('$InvName', '$BlockName', '$BlocksList'.Value, '$RecName',
"*"))
75. Click Save.
76. Close the page.
77. Click Save.
78. Close the page.
ER Configure format to do counting and summing
(Part 4 - Run format)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) format to do counting and summing based on data of the already
generated text output. These steps can be performed in the DEMF company.
To complete these steps, you must first complete the steps in the "ER Configure format to do counting and
summing (Part 3: Use computations to make the output)" procedure.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Test this configuration for generation of the Intrastat reports


1. Go to Organization administration > Workspaces > Electronic reporting.
2. Click Reporting configurations.
3. In the tree, expand 'Intrastat model'.
4. In the tree, expand 'Intrastat model\Intrastat (DE)'.
5. In the tree, select 'Intrastat model\Intrastat (DE)\Intrastat (DE) with counting & summing'.
6. On the Action Pane, click Configurations.
7. Click User parameters.
8. Select Yes in the Run settings field.
9. Click OK.
10. Click Edit.
11. Select Yes in the Run Draft field.
12. Click Save.
13. Go to Tax > Setup > Foreign trade > Foreign trade parameters.
14. Expand the Electronic reporting section.
15. Select the "Intrastat (DE) with counting & summing" configuration.
16. Select the "Intrastat (DE) with counting & summing" configuration.
17. Click Save.
18. Close the page.
19. Go to Tax > Declarations > Foreign trade > Intrastat.
20. Click Output.
21. Click Report.
Run the Intrastat report generation process.
22. In the From date field, set the date to '2000-01-01'.
Define start and end dates for the reporting period that include the existing on the form transactions.
23. In the To date field, set the date to '2022-12-31'.
Define start and end dates for the reporting period that include the existing on the form transactions.
24. In the Direction field, select 'Arrivals'.
25. Select Yes in the Generate file field.
26. Click OK.
Review the created output with the summary lines in the end.
27. Click New.
28. In the list, mark the selected row.
29. In the Direction field, select 'Dispatches'.
30. In the Item number field, enter or select a value.
31. In the Commodity field, enter or select a value.
32. Set Weight to '10'.
33. Set Invoice amount to '10000'.
34. Set Statistical amount to '10000'.
35. Click Output.
36. Click Report.
37. In the Direction field, select 'Dispatches'.
38. Click OK.
Review the created output with the summary lines in the end. Note that it has been changed in
comparison to the first run.

Run this configuration in debug mode to review the collected counting


& summing data
1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, expand 'Intrastat model'.
3. In the tree, expand 'Intrastat model\Intrastat (DE)'.
4. In the tree, select 'Intrastat model\Intrastat (DE)\Intrastat (DE) with counting & summing'.
5. On the Action Pane, click Configurations.
6. Click User parameters.
7. Select Yes in the Run in debug mode field.
8. Click OK.
9. Close the page.
10. Go to Tax > Declarations > Foreign trade > Intrastat.
11. Click Output.
12. Click Report.
13. Click OK.
14. Close the page.
15. Go to Organization administration > Electronic reporting > Configurations.
16. In the tree, expand 'Intrastat model'.
17. In the tree, expand 'Intrastat model\Intrastat (DE)'.
18. In the tree, select 'Intrastat model\Intrastat (DE)\Intrastat (DE) with counting & summing'.
19. Click Debug logs.
Note that a debug log record has been created for the execution process of the selected configuration.
20. Click Attach.
21. Click Open.
Review the created XML file that contains counting and summing details that were collected during the
execution of the selected configuration.
ER Use horizontally expandable ranges to
dynamically add columns in Excel reports (Part 1 -
Design format)
3/18/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) format to generate reports as OPENXML worksheets (Excel) files in which
the required columns can be created dynamically as horizontally expandable ranges. These steps can be performed
in any company.
To complete these steps, you must first complete these three task guides:
"ER Create a configuration provider and mark it as active"
"ER Use financial dimensions as a data source (Part 1: Design data model)"
"ER Use financial dimensions as a data source (Part 2: Model mapping)"
You must also download and save a local copy of the template with a sample report found here, Sample Financial
Dimensions Web Service Report.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Create a new report configuration


1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, select 'Financial dimensions sample model'.
3. Click Create configuration to open the drop dialog.
4. In the New field, enter 'Format based on data model Financial dimensions sample model'.
Use the model created in advance as the data source for your new report.
5. In the Name field, type 'Sample report with horizontally expandable ranges'.
Sample report with horizontally expandable ranges
6. In the Description field, type 'To make Excel output with dynamically adding columns'.
To make Excel output with dynamically adding columns
7. In the Data model definition field, select Entry.
8. Click Create configuration.

Design the report format


1. Click Designer.
2. Turn on the 'Show details' toggle button.
3. On the Action Pane, click Import.
4. Click Import from Excel.
5. Click Attachments.
Import the report's template. Use Excel file that you downloaded for that.
6. Click New.
7. Click File.
8. Close the page.
9. In the Template field, enter or select a value.
Select the downloaded template.
10. Click OK.
Add a new range to dynamically create Excel output with as many columns as you selected (in the user
dialog form) for financial dimensions. Each cell for every column will represent a single financial
dimension's name.
11. Click Add to open the drop dialog.
12. In the tree, select 'Excel\Range'.
13. In the Excel range field, type 'DimNames'.
DimNames
14. In the Replication direction field, select 'Horizontal'.
15. Click OK.
16. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Horizontal'.
17. Click Move up.
18. In the tree, select 'Excel = "SampleFinDimWsReport"\Cell'.
19. Click Cut.
20. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Horizontal'.
21. Click Paste.
22. In the tree, expand 'Excel = "SampleFinDimWsReport"\Range: Horizontal'.
23. In the tree, expand 'Excel = "SampleFinDimWsReport"\Range: Vertical'.
24. In the tree, expand 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical'.
25. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical'.
Add a new range to dynamically create Excel output with as many columns as you selected (in the user
dialog form) for financial dimensions. Each cell for every column will represent a single financial
dimension's value for each reporting transaction.
26. Click Add Range.
27. In the Excel range field, type 'DimValues'.
DimValues
28. In the Replication direction field, select 'Horizontal'.
29. Click OK.
30. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Cell'.
31. Click Cut.
32. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Range: Horizontal'.
33. Click Paste.
34. In the tree, expand 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Range: Horizontal'.

Map format elements to data sources


1. Click the Mapping tab.
2. In the tree, expand 'model: Data model Financial dimensions sample model'.
3. In the tree, expand 'model: Data model Financial dimensions sample model\Journal: Record list'.
4. In the tree, expand 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list'.
5. In the tree, expand 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Dimensions data: Record list'.
6. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Range: Horizontal\Cell'.
7. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Dimensions data: Record list\Code: String'.
8. Click Bind.
9. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Range: Horizontal'.
10. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Dimensions data: Record list'.
11. Click Bind.
12. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Cell'.
13. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Credit: Real'.
14. Click Bind.
15. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Cell'.
16. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Debit: Real'.
17. Click Bind.
18. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Cell'.
19. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Currency: String'.
20. Click Bind.
21. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Cell'.
22. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Date: Date'.
23. Click Bind.
24. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Cell'.
25. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list\Voucher: String'.
26. Click Bind.
27. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical\Cell'.
28. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Batch: String'.
29. Click Bind.
30. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Range: Vertical'.
31. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Transaction:
Record list'.
32. Click Bind.
33. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical\Cell'.
34. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list\Batch: String'.
35. Click Bind.
36. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Vertical'.
37. In the tree, select 'model: Data model Financial dimensions sample model\Journal: Record list'.
38. Click Bind.
39. In the tree, expand 'model: Data model Financial dimensions sample model\Dimensions setting: Record list'.
40. In the tree, select 'model: Data model Financial dimensions sample model\Dimensions setting: Record list\Code:
String'.
41. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Horizontal\Cell'.
42. Click Bind.
43. In the tree, select 'model: Data model Financial dimensions sample model\Dimensions setting: Record list'.
44. In the tree, select 'Excel = "SampleFinDimWsReport"\Range: Horizontal'.
45. Click Bind.
46. In the tree, select 'Excel = "SampleFinDimWsReport"\Cell'.
47. In the tree, select 'model: Data model Financial dimensions sample model\Company: String'.
48. Click Bind.
49. Click Save.
50. Close the page.
ER Use horizontally expandable ranges to
dynamically add columns in Excel reports (Part 2 -
Run format)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) format to generate reports as OPENXML worksheets (Excel) files in which
the required columns can be created dynamically as horizontally expandable ranges. These steps can be performed
in the DEMF company.
To complete these steps, you must first complete the steps in the "ER Use horizontally expandable ranges to
dynamically add columns in Excel reports (Part 1: Design format)" procedure.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Find created format


1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, expand 'Financial dimensions sample model'.
3. In the tree, select 'Financial dimensions sample model\Sample report with horizontally expandable ranges'.

Execute format to create Excel output


1. Click Run.
2. In the Dimension name field, type 'BusinessUnit;CostCenter;Department'.
In the Dimension name field, enter or select a value. To select all dimensions for the current company,
enter the following: BusinessUnit;CostCenter;Department;ItemGroup;MainAccount;Project
3. Expand the Records to include section.
4. Click Filter.
5. Select the row for the Ledger journal table and the Journal batch number field.
6. In the Criteria field, type '00057..00058'.
00057..00058
7. Click OK.
8. Click OK.
Review the generated output. Note that the newly created Excel file contains the same number of
columns that were selected for financial dimensions. The report header in those columns represents
financial dimensions' names. The transactions' lines in those columns represent financial dimensions.
Run this report and select different dimensions to see that the report is not dependent on the number of
selected dimensions or the number of dimensions configured for this instance.
ER Use Document Management files in format
outputs (Part 1 - Prepare data model)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) format to use Document Management files (attachments) in ER output.
These steps can be performed in any company.
To complete these steps, you must first complete the steps in the "Create a configuration provider and mark it as
active" procedure.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Get access to the list of configurations provided by Microsoft


1. Go to Organization administration > Workspaces > Electronic reporting.
Make sure that the 'Litware, Inc.' provider is available and marked as active.
2. Select the 'Litware, Inc.' provider.
3. Click Repositories.
If a repository of the 'Operations resources' type already exists, skip the remaining steps of the current sub-
task.
4. Click Add to open the drop dialog.
5. In the Configuration repository type field, enter 'Operations resources'.
6. Click Create repository.
7. Click OK.

Get the Customer invoice model configurations provided by Microsoft


1. Click Show filters.
2. Apply the following filters: Enter a filter value of "Operations resources" on the "Name" field using the
"begins with" filter operator; Enter a filter value of "" on the "Description" field using the "begins with" filter
operator
3. Click Show filters.
4. Click Open.
5. In the tree, select 'Customer invoice model'.
Select the model configuration 'Customer invoice model' to import it.
6. Click Import.
Click Import for version 1 of the selected configuration.
7. Click Yes.
8. Close the page.
9. Close the page.
10. Click Reporting configurations.
11. In the tree, select 'Customer invoice model'.

Create the derived model to support access to the Document


Management files.
You will create our own configuration of the Customer invoice model deriving it from the configuration provided by
Microsoft. You will use this configuration to implement access to the Document Management files and make them
available for electronic documents that you will create based on this model.
1. Click Create configuration to open the drop dialog.
2. In the New field, enter 'Derive from Name: Customer invoice model, Microsoft'.
3. In the Name field, type 'Customer invoice model (custom)'.
4. Click Create configuration.
ER Use Document Management files in format
outputs (Part 2 - Extend data model)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the System Administrator or Electronic Reporting Developer
role can configure an Electronic reporting (ER) format to use Document Management files (attachments) in ER
output. These steps can be performed in any company.
To complete these steps, you must first complete the steps in the "ER Use Document Management files in format
outputs (Part 1: Prepare data model)" task guide.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Extend data model to present the Document Management files in it


1. Go to Organization administration > Workspaces > Electronic reporting.
2. Click Reporting configurations.
3. In the tree, expand 'Customer invoice model'.
4. In the tree, select 'Customer invoice model\Customer invoice model (custom)'.
5. Click Designer.
6. In the tree, select 'Customer invoice(InvoiceCustomer)'.
We will extend this data model to expose in it any files that have been attached to a sales order that is
related to an electronically processing invoice.
7. Click New to open the drop dialog.
8. In the Name field, type 'Invoice attachments'.
Invoice attachments
9. In the Item type field, select 'Record list'.
10. Click Add.
11. Click New to open the drop dialog.
12. In the Name field, type 'File content'.
File content
13. In the Item type field, select 'Container'.
14. Click Add.
15. Click New to open the drop dialog.
16. In the Name field, type 'File name'.
File name
17. In the Item type field, select 'String'.
18. Click Add.

Map new data model elements to data sources


1. Click Map model to datasource.
2. Use the Quick Filter to filter on the Definition field with a value of 'InvoiceCustomer'.
InvoiceCustomer
We will map new model elements to appropriate data sources.
3. Click Designer.
4. In the tree, select 'Invoice attachments'.
5. In the tree, expand 'Invoice attachments'.
6. In the tree, select 'Invoice attachments\File name'.
7. Click Edit.
8. In the Formula field, enter
'CustInvoiceJour.'>Relations'.SalesTable.'<Relations'.'<Documents'.'originalFileName()''.
CustInvoiceJour.'>Relations'.SalesTable.'<Relations'.'<Documents'.'originalFileName()'
9. Click Save.
10. Close the page.
11. In the tree, select 'Invoice attachments\File content'.
12. Click Edit.
13. In the Formula field, enter
'CustInvoiceJour.'>Relations'.SalesTable.'<Relations'.'<Documents'.'getFileContentAsContainer()''.
CustInvoiceJour.'>Relations'.SalesTable.'<Relations'.'<Documents'.'getFileContentAsContainer()'
14. Click Save.
15. Close the page.
16. In the tree, select 'Invoice attachments'.
17. Click Edit.
18. In the Formula field, enter 'CustInvoiceJour.'>Relations'.SalesTable.'<Relations'.'<Documents''.
CustInvoiceJour.'>Relations'.SalesTable.'<Relations'.'<Documents'
19. Click Save.
20. Close the page.
21. Click Save.
22. Close the page.
23. Close the page.
24. Close the page.
25. Click Change status.
26. Click Complete.
27. Click OK.
ER Use Document Management files in format
outputs (Part 3 - Create format)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) format to use Document Management files (attachments) in ER output.
These steps can be performed in any company.
To complete these steps, you must first complete the steps in the "ER Use Document Management files in format
outputs (Part 2: Extend data model" procedure.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Create a format to process invoices


1. Go to Organization administration > Workspaces > Electronic reporting.
2. Click Reporting configurations.
3. In the tree, expand 'Customer invoice model'.
4. In the tree, select 'Customer invoice model\Customer invoice model (custom)'.
You will create a format to generate electronic messages with information about any files that have been
attached to a sales order that is related to an electronically processing invoice.
5. Click Create configuration to open the drop dialog.
6. In the New field, enter 'Format based on data model Customer invoice model (custom)'.
7. In the Name field, type 'Electronic invoice sample message'.
Electronic invoice sample message
8. In the Data model definition field, enter or select a value.
InvoiceCustomer
9. Click Create configuration.

Design a format to populate attachments into generating a message in


MIME format
1. Click Designer.
2. Click Add root to open the drop dialog.
3. In the tree, select 'XML\Element'.
4. In the Name field, type 'Invoice'.
Invoice
5. Click OK.
6. Click Add to open the drop dialog.
7. In the tree, select 'XML\Attribute'.
8. In the Name field, type 'SalesOrder'.
SalesOrder
9. Click OK.
10. Click Add Attribute.
11. In the Name field, type 'InvoiceNumber'.
InvoiceNumber
12. Click OK.
13. Click Add Attribute.
14. In the Name field, type 'InvoiceAmount'.
InvoiceAmount
15. Click OK.
16. Click Add to open the drop dialog.
17. In the tree, select 'XML\Element'.
18. In the Name field, type 'EnclosedDocs'.
EnclosedDocs
19. Click OK.
20. In the tree, select 'Invoice\EnclosedDocs'.
21. Click Add Element.
22. In the Name field, type 'Document'.
Document
23. Click OK.
24. In the tree, select 'Invoice\EnclosedDocs\Document'.
25. Click Add to open the drop dialog.
26. In the tree, select 'XML\Attribute'.
27. In the Name field, type 'FileName'.
FileName
28. Click OK.
29. Click Add to open the drop dialog.
30. In the tree, select 'XML\Element'.
31. In the Name field, type 'FileContent'.
FileContent
32. Click OK.
33. In the tree, select 'Invoice\EnclosedDocs\Document\FileContent'.
34. Click Add to open the drop dialog.
35. In the tree, select 'Text\Base64'.
36. Click OK.

Map format elements to data model as data source


1. In the tree, select 'Invoice\SalesOrder'.
2. Click the Mapping tab.
3. In the tree, expand 'model'.
4. In the tree, select 'model\Sales order number(SalesId)'.
5. Click Bind.
6. In the tree, select 'Invoice\InvoiceNumber'.
7. In the tree, expand 'model\Base invoice(InvoiceBase)'.
8. In the tree, select 'model\Base invoice(InvoiceBase)\Invoice number(Id)'.
9. Click Bind.
10. In the tree, select 'Invoice\InvoiceAmount'.
11. In the tree, select 'model\Base invoice(InvoiceBase)\Invoice amount(Amount)'.
12. Click Bind.
13. In the tree, expand 'model\Invoice attachments'.
14. In the tree, select 'model\Invoice attachments\File content'.
15. In the tree, select 'Invoice\EnclosedDocs\Document\FileContent\Base64'.
16. Click Bind.
17. In the tree, select 'model\Invoice attachments\File name'.
18. In the tree, select 'Invoice\EnclosedDocs\Document\FileName'.
19. Click Bind.
20. In the tree, select 'model\Invoice attachments'.
21. In the tree, select 'Invoice\EnclosedDocs\Document'.
22. Click Bind.
23. Click Save.
24. Close the page.
ER Use Document Management files in format
outputs (Part 4 - Run format)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) format to use Document Management files (attachments) in ER output.
These steps can be performed in the DEMF company.
To complete these steps, you must first complete the steps in the "ER Use Document Management files in format
outputs (Part 3: Create format)" procedure.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Add necessary attachments for sales order of a single invoice


1. Go to Accounts receivable > Invoices > Open customer invoices.
2. Use the Quick Filter to find records. For example, filter on the Invoice field with a value of 'CIV-000148'.
CIV-000148
3. Click to follow the selected invoice's link.
CIV-000148
4. Click to follow the link in the Sales order field.
000148
5. In the Lines or header field, select the option of Header.
Select Header to indicate that this will be the target for adding attachments.
6. Click Attach.
Add a few files as attachments for this sales order. Use the files of the document types that are supported
by the Document Management (with file extensions DOCX, DPF, XML, JPG, etc.). Browse and select files to
be attached and further processed with the related invoice in the ER electronic message.
7. Click New.
8. Click File.
9. Click New.
10. Click File.
11. Close the page.
12. Close the page.
13. Close the page.
14. Close the page.

Run the designed report for the selected invoice


1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, expand 'Customer invoice model'.
3. In the tree, expand 'Customer invoice model\Customer invoice model (custom)'.
4. In the tree, select 'Customer invoice model\Customer invoice model (custom)\Electronic invoice sample
message'.
5. Click Run.
6. Expand the Records to include () section.
7. Click Filter.
8. Select the row of the Customer invoice journal and the Sales order field.
9. In the Criteria field, type '000148'.
In the criteria "Sales order" field, type the order number 000148.
10. Click OK.
11. Click OK.
Review the generated output. Note that for each attachment a single XML node has been created. The
attachment's content is populated to the XML output in MIME (base64) text format.
ER Use Document Management files in format
outputs (Part 5 - Modify and run format)
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user assigned to the system administrator or electronic reporting developer role
can configure an Electronic reporting (ER) format to use Document Management files (attachments) in ER output.
These steps can be performed in the DEMF company.
To complete these steps, you must first complete the steps in the "ER Use Document Management files in format
outputs (Part 4: Run format)" procedure.
This procedure is for a feature that was added in Dynamics 365 for Operations version 1611.

Modify the format to populate attachments into generating messages


in binary format
1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, expand 'Customer invoice model'.
3. In the tree, expand 'Customer invoice model\Customer invoice model (custom)'.
4. In the tree, select 'Customer invoice model\Customer invoice model (custom)\Electronic invoice sample
message'.
5. Click Designer.
You will populate the invoice message in the generating output as an XML file using UNICODE encoding.
6. Click Add root to open the drop dialog.
7. In the tree, select 'Common\File'.
8. In the Name field, type 'Xml message'.
Xml message
9. In the Encoding field, type 'UTF-8'.
UTF-8
10. Click OK.
Configure the generating output as a zipped file.
11. Click Add root to open the drop dialog.
12. In the tree, select 'Common\Folder'.
13. In the Name field, type 'Zip output'.
Zip output
14. Click OK.
15. In the tree, select 'Zip output'.
Add attachments to the generating zipped file as files with original names and extensions.
16. Click Add to open the drop dialog.
17. In the tree, select 'Common\File'.
18. In the Name field, type 'Attached file'.
Attached file
19. Click OK.
20. In the tree, select 'Zip output\Attached file'.
21. Click Add to open the drop dialog.
22. In the tree, select 'Text\Base64'.
23. Click OK.

Map new format elements to data model


1. Click the Mapping tab.
2. In the tree, expand 'model'.
3. In the tree, expand 'model\Invoice attachments'.
4. In the tree, select 'Zip output\Attached file\Base64'.
5. In the tree, select 'model\Invoice attachments\File content'.
6. Click Bind.
7. In the tree, select 'Zip output\Attached file'.
8. Click Edit filename.
9. In the tree, expand 'model'.
10. In the tree, expand 'model\Invoice attachments'.
11. In the tree, select 'model\Invoice attachments\File name'.
12. Click Add data source.
13. Click Save.
14. Close the page.
15. In the tree, select 'model\Invoice attachments'.
16. Click Bind.
17. Click Save.
18. Close the page.

Run the designed report for the selected invoice


1. Click Run.
2. Expand the Records to include () section.
3. Click Filter.
4. Select the row of the Customer invoice journal and the Sales order field.
5. In the Criteria field, In the criteria "Sales order" field, type the order number 000148.
000148
6. Click OK.
7. Click OK.
Review the generated output. Note,that in addition to the invoice message in XML format, a single file has
been created for each attachment. The attachment files are populated with the zipped output in binary
format.
Generate electronic documents and update
application data by using ER
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can design Electronic reporting (ER) formats that can be used in the application to generate outgoing electronic
documents. You can also design ER formats that parse incoming electronic documents and use the content in those
documents to update application data.
With this functionality, a single ER format can be used to generate outgoing electronic documents and then update
the application data. This feature can be used in the following scenarios:
To prevent repeated usage of application data in subsequent processes you can mark an application’s data
immediately after it is used to generate electronic documents. For example, you can mark payment transactions
as already processed immediately after they have been included in a generated payment message.
To store the processing details of electronic documents that have been generated using ER logic. For example, a
unique payment message identification that is generated using the ER expression. The expression is based on
information entered in the ER dialog box when the ER format is run to generate documents.
To learn more about this feature, play the set of ER Generate documents with application data update Task guides
(part of the 7.5.4.3 Acquire/Develop IT service/solution components (10677) business process), which walk you
through the details of Intrastat reporting and archiving. The following files are required to complete certain steps in
these Task guides. Download and save these files to your local machine.
ER data model configuration: Intrastat (model)
ER model mapping configuration: Intrastat (mapping)
ER format configuration: Intrastat (format)
Import configurations to generate documents that
have application data
3/18/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

To complete the steps in this procedure, you must first complete the procedure, "ER Create a configuration provider
and mark it as active".
The steps in this procedure explain how to design Electronic reporting (ER) configurations to generate an electronic
document. In this procedure, you will import the required ER configurations that have been created for the sample
company, Litware, Inc. and use them to generate electronic documents. This procedure is created for users with the
assigned role of system administrator or electronic reporting developer. These steps can be completed using the
DEMF dataset. Before you begin, download and save the files listed in the Help topic, "Generate electronic
documents and update application data with ER tool" (generate-electronic-documents-update-application-data/).
The files are Intrastat (model).xml, Intrastat (mapping).xml, and Intrastat (format).xml.
1. Go to Organization administration > Workspaces > Electronic reporting.
Make sure that the configuration provider for the sample company, Litware, Inc., is available and marked
as Active. If you don't see this configuration provider, complete the steps in the procedure, Create a
configuration provider and mark it as active.
The steps in this procedure show how to use ER capabilities to complete an application data update and
how to generate an Intrastat report. The details of the reporting process are archived in the application
tables. Currently, when the Intrastat reporting process is activated from the Intrastat form, archiving is
done based on the logic programmed in the existing source code. In this procedure, you will configure a
similar yet simplified logic of application data using only the ER framework. No changes will be made to
the source code.

Import ER configurations
1. Click Reporting configurations.
2. Click Exchange.
3. Click Load from XML file.
Import the ER model configuration that contains the data model that is designed to be used as the data
source for generating the Intrastat report. Later, you will extend this data model definition to use it for an
application data update to archive details of the Intrastat reporting process.
Click Browse and select the Intrastat (model).xml file.
4. Click OK.
5. In the tree, select 'Intrastat (model)'.
6. Click Designer.
7. In the tree, expand 'For outgoing document'.
8. In the tree, expand 'For outgoing document\Transactions'.
Review the structure of the imported data model. Note that the root item 'For outgoing document' is
defined to specify the data flow for getting data from the application and using it as data source to
generate the Intrastat report. The 'Transactions (Record list)' is used to represent the list of Intrastat
transactions that must be reported. Because you will archive reported commodity codes, the unique
identifier of a single commodity code 'Commodity rec id (Int64)' is needed in this data flow.
9. Close the page.
10. Click Exchange.
11. Click Load from XML file.
Import the ER mapping configuration that specifies the data flow for getting data from the application
and then using it to generate the Intrastat report. Later, you will extend this model mapping definition to
get data from the Intrastat report and use it for the application data update to archive details of Intrastat
reporting process.
Click Browse and select the Intrastat (mapping).xml file.
12. Click OK.
13. In the tree, expand 'Intrastat (model)'.
14. In the tree, select 'Intrastat (model)\Intrastat (mapping)'.
15. Click Designer.
Note that the current model mapping contains the value 'To model' in the Direction field. This means that
this model mapping has been designed for getting data from the application and storing it in the data
model.
16. Click Designer.
17. In the tree, expand 'List'.
18. In the tree, expand 'Transactions= List'.
Review the structure of the model mapping that uses the data model that is filtered based on the root
item, 'For outgoing document.' Note that the added data source, 'List' provides access to the required
application data, which is the list of records from the Intrastat table.
19. Close the page.
20. Close the page.
21. Click Exchange.
22. Click Load from XML file.
Import the ER format configuration that specifies the layout of the Intrastat report and the process of
populating data to the report. Later, you will extend this format definition to put data from the Intrastat
report in to the data model and then use it to update application data to archive the details of Intrastat
reporting process.
Click Browse and select the Intrastat (format).xml file.
23. Click OK.
24. In the tree, select 'Intrastat (model)\Intrastat (format)'.
25. Click Designer.
26. Click Expand/collapse.
27. In the tree, select 'File\Declaration'.
28. Click the Mapping tab.
29. In the tree, select 'File'.
Review the structure of the format used to generate the Intrastat report. Note that it is designed to
generate an XML file by populating data from the data model, which is based on the root item 'For
outgoing document'. Verify that the name for generated file is defined on the user dialog form ('fn' data
source is used for that).
30. Close the page.
Design configurations to generate documents that
have application data
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

To complete the steps in this procedure, you must first complete the procedure, ER Generate documents with
application data update (Part 1: Import configurations).
The steps in this procedure explain how to design Electronic reporting (ER) configurations to generate an electronic
document. In this procedure, you run the ER imported format configuration that has been created for the sample
company, Litware, Inc. to generate electronic documents.
This procedure is created for users with the assigned role of system administrator or electronic reporting developer.
These steps can be completed using the DEMF dataset.
Before you begin, change the country context for the DEMF company from DEU (Germany) to BEL (Belgium). Click
Organization administration > Organizations > Legal entities to update the country code in the primary address of
the legal entity DEMF. Restart your application.

Run imported ER format


1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, expand 'Intrastat (model)'.
3. In the tree, select 'Intrastat (model)\Intrastat (format)'.
4. Click Run.
Run the draft version of the ER format configuration to generate the Intrastat report.
5. In the Enter file name field, type 'intrastat.xml'.
Specify the name of the file.
6. Click OK.
Review the generated XML file.
7. Close the page.
8. Go to Tax > Declarations > Foreign trade > Intrastat.
Open this form to view the Intrastat transactions that are included in the generated electronic document.
9. Click Intrastat archive.
Because the executed ER format does not contain any settings for application data update, the details of
the completed Intrastat report have not been archived.
10. Close the page.
11. Close the page.
Modify models and mappings to generate documents
that have application data
3/18/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

To complete the steps in this procedure, you must first complete the procedure, "ER Generate documents with
application data update (Part 2: Generate documents)".
The steps in this procedure explain how to design Electronic reporting (ER) configurations to generate an electronic
document and update application data. In this procedure, you will modify the ER configurations to start using them
to generate electronic documents and update application data. This procedure is created for users with the assigned
role of system administrator or electronic reporting developer. These steps can be completed using the DEMF
dataset.

Modify data model


1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, select 'Intrastat (model)'.
You will extend how you use the data model. Besides using it as data source to generate the Intrastat
report, the data model will be used to collect details about the Intrastat reporting process. The details will
then be used to update application data.
3. Click Designer.
4. Click New to open the drop dialog.
5. In the New node as a field, enter 'Model root'.
6. In the Name field, type 'For application data update'.
For application data update
7. Click Add.
8. In the tree, select 'For application data update'.
This new root item is added to specify the data flow for moving data from the Intrastat report (used as a
data source) to the application tables (the update destination). Note that different root items must be
used for getting data that is posted to the outgoing document and for getting data from the document
that is used to update application data.
9. Click New to open the drop dialog.
10. In the Name field, type 'Archive header'.
Archive header
11. In the Item type field, select 'Record list'.
12. Click Add.
Because you will create a record for each Intrastat report that is generated, you must create a new item
for that.
13. Click New to open the drop dialog.
14. In the Name field, type 'File name'.
File name
File name
15. In the Item type field, select 'String'.
16. Click Add.
17. Click New to open the drop dialog.
18. In the Name field, type 'Number of lines'.
Number of lines
19. In the Item type field, select 'Integer'.
20. Click Add.
Add this item to represent the number of Intrastat transactions that are reported during the current
reporting process.
21. Click New to open the drop dialog.
22. In the Name field, type 'Archive lines'.
Archive lines
23. In the Item type field, select 'Record list'.
24. Click Add.
Add this item to represent the list of Intrastat transactions that are reported during the current reporting
process.
25. Click New to open the drop dialog.
26. In the Name field, type 'Amount'.
Amount
27. In the Item type field, select 'Real'.
28. Click Add.
29. Click New to open the drop dialog.
30. In the Name field, type 'Commodity rec id'.
Commodity rec id
31. In the Item type field, select 'Int64'.
32. Click Add.
33. Click New to open the drop dialog.
34. In the Name field, type 'Item number'.
Item number
35. In the Item type field, select 'String'.
36. Click Add.
37. Click Save.
38. Close the page.

Modify model mapping


1. In the tree, expand 'Intrastat (model)'.
2. In the tree, select 'Intrastat (model)\Intrastat (mapping)'.
Modify the existing model mapping to start using it for the application data update and to archive
Intrastat reporting details.
3. Click Designer.
4. Click New.
5. In the Name field, type 'Update archive'.
Update archive
6. In the Direction field, select 'To destination'.
7. Click Save.
This new mapping specifies the data flow for moving data (Intrastat reporting details) from the data
model to the application tables (the update destination). Note that different model's root items must be
used to get data from the application for the reporting process and then use the data from data model
for the application data update.
8. Click Designer.
9. In the tree, select 'Data model\Data model'.
Add the required data source. This is the data model that contains details of the reported Intrastat
transactions that must be archived.
10. Click Add root.
11. In the Name field, type 'model'.
model
12. In the Definition field, enter or select the value 'For application data update'.
For application data update
13. Click OK.
14. In the tree, expand 'model'.
15. In the tree, select 'Functions\Calculated field'.
16. In the tree, select 'model\Archive header'.
17. Click Add.
Because you want to enumerate reported Intrastat transactions for archiving, the appropriate data source
must be added.
18. In the Name field, type 'Enumerated lines'.
Enumerated lines
19. Click Edit formula.
20. In the tree, select 'List\ENUMERATE'.
21. Click Add function.
22. In the tree, expand 'model'.
23. In the tree, expand 'model\Archive header'.
24. In the tree, select 'model\Archive header\Archive lines'.
25. Click Add data source.
26. In the Formula field, enter 'ENUMERATE(model.'Archive header'.'Archive lines')'.
ENUMERATE(model.'Archive header'.'Archive lines')
27. Click Save.
28. Close the page.
29. Click OK.
30. Click Add destination.
Add application tables as required destinations that require updates to archive details of reported
Intrastat transactions.
31. In the Name field, type 'Archive'.
Archive
32. In the Table name field, type 'IntrastatArchiveGeneral'.
IntrastatArchiveGeneral
Keep the record action 'Insert' so you can add records during the detail archiving of each Intrastat
reporting process.
33. Select Yes in the Record infolog field.
Select Yes to get information about issues with the application data update.
34. Select Yes in the Skip record action validation field.
Select Yes to suppress validation errors about the empty 'Intrastat archive ID' field. This will be done after
records are added, based on the sequence number settings that are configured for this table in the
Foreign trade parameters form.
35. Click OK.
Bind elements of the added data source (the filtered model based on the selected root item) with
elements from the added destination.
36. In the tree, expand 'Archive'.
37. In the tree, expand 'Archive<Relations'.
38. In the tree, expand 'Archive<Relations\IntrastatArchiveDetail'.
39. In the tree, select 'Archive<Relations\IntrastatArchiveDetail\Amount(AmountMST)'.
40. In the tree, expand 'model\Archive header\Enumerated lines'.
41. In the tree, expand 'model\Archive header\Enumerated lines\Value'.
42. In the tree, select 'model\Archive header\Enumerated lines\Value\Amount'.
43. Click Bind.
44. In the tree, select 'Archive<Relations\IntrastatArchiveDetail\Commodity(IntrastatCommodity)'.
45. In the tree, select 'model\Archive header\Enumerated lines\Value\Commodity rec id'.
46. Click Bind.
47. In the tree, select 'Archive<Relations\IntrastatArchiveDetail\Item number(ItemId)'.
48. In the tree, select 'model\Archive header\Enumerated lines\Value\Item number'.
49. Click Bind.
50. In the tree, select 'Archive<Relations\IntrastatArchiveDetail\Line number(LineNumber)'.
51. In the tree, select 'model\Archive header\Enumerated lines\Number'.
52. Click Bind.
53. In the tree, select 'Archive<Relations\IntrastatArchiveDetail'.
54. In the tree, select 'model\Archive header\Enumerated lines'.
55. Click Bind.
56. In the tree, select 'Archive\File name(FileName)'.
57. In the tree, select 'model\Archive header\File name'.
58. Click Bind.
59. In the tree, select 'Archive\Number of lines(NumberOfLines)'.
60. In the tree, select 'model\Archive header\Number of lines'.
61. Click Bind.
62. In the tree, select 'Archive'.
63. In the tree, select 'model\Archive header'.
64. Click Bind.
65. Click Save.
66. Close the page.
67. Close the page.
Modify formats to generate documents that have
application data
3/18/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

To complete the steps in this procedure, you must first complete the procedure, "ER Generate documents with
application data update (Part 3: Modify model and mapping)".
The steps in this procedure explain how to design Electronic reporting (ER) configurations to generate an electronic
document and update application data. In this procedure, you will modify the ER configurations to not just use
them to generate electronic documents, but also to update application data. This procedure is created for users with
the assigned role of system administrator or electronic reporting developer. These steps can be completed using
the DEMF dataset.

Modify format to collect details of reporting


1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, expand 'Intrastat (model)'.
3. In the tree, select 'Intrastat (model)\Intrastat (format)'.
4. Click Designer.
5. In the tree, expand 'File'.
6. In the tree, expand 'File\Declaration'.
7. In the tree, select 'File\Declaration\Data'.
8. In the Multiplicity field, select 'One many'.
Configure this format element to archive details of the Intrastat reporting process. This item represents
the archive's header record.
9. In the tree, expand 'File\Declaration\Data'.
10. In the tree, select 'File\Declaration\Data\Item'.
11. In the Multiplicity field, select 'Zero many'.
Configure this format element to archive details of the Intrastat reporting process. This item will
represent the list of archived lines.
12. In the tree, expand 'File\Declaration\Data\Item'.
13. In the tree, select 'File\Declaration\Data\Item\Dim1'.
14. Select Yes in the Excluded field.
You will not archive this data, so you can exclude this format element from the data source of Intrastat
reporting details.
15. In the tree, expand 'File\Declaration\Data\Item\Dim1'.
16. In the tree, select 'File\Declaration\Data\Item\Dim1\property'.
17. Select Yes in the Excluded field.
18. In the tree, select 'File\Declaration\Data\Item\Dim1\date'.
19. Select Yes in the Excluded field.
20. In the tree, select 'File\Declaration\Data\Item\Dim2'.
21. Select Yes in the Excluded field.
22. In the tree, expand 'File\Declaration\Data\Item\Dim2'.
23. In the tree, select 'File\Declaration\Data\Item\Dim2\property'.
24. Select Yes in the Excluded field.
25. In the tree, select 'File\Declaration\Data\Item\Dim2\code'.
26. Select Yes in the Excluded field.
27. In the tree, select 'File\Declaration\Data\Item\Dim3'.
Several format elements can have the same name. For example, Dim. You cannot explicitly recognize
them when you use this format as a data source for archiving Intrastat reporting details, so you need to
define the alternative names for these format elements.
28. In the Name field, type 'Amount'.
Amount
29. In the Multiplicity field, select 'Exactly one'.
30. In the tree, select 'File\Declaration\Data\Item\Dim4'.
31. In the Name field, type 'Item'.
Item
32. In the Multiplicity field, select 'Exactly one'.
In addition to the design format elements, the following Intrastat reporting details must be archived:
unique record identification of each reported commodity item and name of the generated file. Because
this data will not be populated in the Intrastat report, you need to add the format that is related to these
detail elements as data source items.
33. In the tree, select 'File\Declaration\Data'.
34. Click Add to open the drop dialog.
35. In the tree, select 'Data source\Item'.
36. In the Name field, type 'File name'.
File name
37. In the Data type field, select 'String'.
38. Click OK.
39. In the tree, select 'File\Declaration\Data\Item'.
40. Click Add Item.
41. In the Name field, type 'Commodity rec id'.
Commodity rec id
42. In the Data type field, select 'Int64'.
43. Click OK.
44. Click the Mapping tab.
45. In the tree, select 'File\Declaration\Data\File name'.
46. Click Bind.
47. In the tree, expand 'model'.
48. In the tree, expand 'model\Transactions'.
49. In the tree, select 'File\Declaration\Data\Item = model.Transactions\Commodity rec id'.
50. In the tree, select 'model\Transactions\Commodity rec id'.
51. Click Bind.
52. Click Save.

Modify format to memorize details of reporting


1. Click Map format to model.
2. Click New.
3. In the Definition field, enter or select the 'For application data update' root item.
For application data update
4. In the Name field, type 'Mapping to update data'.
Mapping to update data
5. Click Save.
This mapping defines how the details of the Intrastat report are collected in the data model, the structure
of which is specified by the selected root item 'For application data update'. These details, the model
mapping with same root item 'For application data update', and the direction 'To destination' will be used
for the application data update. The application data update starts immediately after the outgoing
Intrastat report is generated. Note that the application data update can be skipped at run-time, but the
data model must be empty (containing empty record list).
6. Click Designer.
Note that the outgoing Intrastat report format is added by default as a data source for this model
mapping.
Bind elements of the designed report (presented as data source) to elements of the data model, which is
filtered based on the selected model's root item.
7. In the tree, expand 'Archive header'.
8. In the tree, expand 'Archive header\Archive lines'.
9. In the tree, expand 'format'.
10. In the tree, expand 'format\Declaration: XML Element(Declaration)'.
11. In the tree, expand 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)'.
12. In the tree, expand 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)\Item: XML
Element 0..* (Item)'.
13. In the tree, expand 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)\Item: XML
Element 0..* (Item)\Dim3: XML Element 1..1 (Amount)'.
14. In the tree, expand 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)\Item: XML
Element 0..* (Item)\Dim4: XML Element 1..1 (Item)'.
15. In the tree, select 'Archive header\Number of lines'.
16. Click Edit.
17. In the tree, select 'List\COUNT'.
18. Click Add function.
19. In the tree, expand 'format'.
20. In the tree, expand 'format\Declaration: XML Element(Declaration)'.
21. In the tree, expand 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)'.
22. In the tree, select 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)\Item: XML
Element 0..* (Item)'.
23. Click Add data source.
24. In the Formula field, enter 'COUNT(format.Declaration.Data.Item)'.
COUNT(format.Declaration.Data.Item)
25. Click Save.
26. Close the page.
27. In the tree, select 'Archive header\File name'.
28. In the tree, select 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)\File name: Item
String(File name)'.
29. Click Bind.
30. In the tree, select 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)\Item: XML
Element 0..* (Item)\Dim4: XML Element 1..1 (Item)\number: String(number)'.
31. In the tree, select 'Archive header\Archive lines\Item number'.
32. Click Bind.
33. In the tree, select 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)\Item: XML
Element 0..* (Item)\Dim3: XML Element 1..1 (Amount)\value: Numeric Real(value)'.
34. In the tree, select 'Archive header\Archive lines\Amount'.
35. Click Bind.
36. In the tree, select 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)\Item: XML
Element 0..* (Item)\Commodity rec id: Item Int64(Commodity rec id)'.
37. In the tree, select 'Archive header\Archive lines\Commodity rec id'.
38. Click Bind.
39. In the tree, select 'Archive header\Archive lines'.
40. In the tree, select 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)\Item: XML
Element 0..* (Item)'.
41. Click Bind.
42. In the tree, select 'Archive header'.
43. In the tree, select 'format\Declaration: XML Element(Declaration)\Data: XML Element 1..* (Data)'.
44. Click Bind.
45. Click Save.
46. Close the page.
47. Close the page.
48. Close the page.
Generate documents that have application data
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

To complete the steps in this procedure, you must first complete the procedure, "ER Generate documents with
application data update (Part 4: Modify format)".
The steps in this procedure explain how to design Electronic reporting (ER) configurations to generate an electronic
document and update application data. In this procedure, you execute the ER format configuration to generate the
Intrastat report and update application data for archiving details of the reporting process.
This procedure is created for users with the assigned role of system administrator or electronic reporting developer.
These steps can be completed using the DEMF dataset. Before you begin, make sure that the country context for the
DEMF company is BEL (Belgium).

Set up foreign trade parameters


1. Go to Tax > Setup > Foreign trade > Foreign trade parameters.
2. Click the Number sequences tab.
Archiving details of Intrastat reporting process, we need to identify records of each archive we created. A
special number sequence must be configured for that.
3. Select the 'Intrastat archive ID' reference.
4. In the Number sequence code field, type a value.
In the 'Number sequence code' field, enter or select the value 'Fore_2'.
5. ResolveChanges the Number sequence code.
6. Click Save.
7. Close the page.

Run modified ER format


1. Go to Organization administration > Electronic reporting > Configurations.
2. In the tree, expand 'Intrastat (model)'.
3. In the tree, select 'Intrastat (model)\Intrastat (format)'.
4. Click Run.
5. In the Enter file name field, type 'intrastat2.xml'.
6. Click OK.

Review ER format execution's results


Review the generated XML file.
1. Close the page.
2. Go to Tax > Declarations > Foreign trade > Intrastat.
Open this form containing Intrastat transactions that have been included to the generated electronic
document.
3. Click Intrastat archive.
Since the executed ER format contains now settings for application data update, the details of the completed
Intrastat reporting have been archived. In this form, you can see the header record of the created archive.
4. Click Details.
In this form, you can see the details for the created archive.
5. Close the page.
6. Close the page.
7. Close the page.
Parse incoming documents
10/1/2019 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic covers the following three tasks:


Parse incoming documents to update application data
Parse incoming documents in Excel format
Parse incoming documents in CSV format

Parse incoming documents to update application data


You can design Electronic reporting (ER) formats and run them in the application to parse incoming electronic
documents and then use their content to update application data.
The following new ER functionality that has been introduced improves the parsing of incoming electronic
documents in XML format:
The CASE format element can be used as a root element of the ER format that is configured to parse
incoming electronic documents in XML format. The FILE format element is supported as a nested element of
the CASE element. Therefore, you can configure a single ER format to parse incoming electronic documents
that might contain different root XML elements.
A Parsing order of nested elements attribute has been introduced for XML format elements in ER
formats. You can use this attribute to define a single XML element that is expected in the incoming file. There
are two valid sequences of the nested elements:
As in format – The incoming file is valid when the sequence of nested elements in the file is the same as
the order that is described in the ER format.
Any – The incoming file is valid when all nested elements in the ER format are present in the parsing file,
regardless of their sequence in that file.
To become more familiar with the details of this feature, play the task guide, ER - Parse incoming documents to
update application data (part of the 7.5.4.3 Acquire/Develop IT service/solution components (10677) business
process). This task guide shows how the responses from a web service can be parsed by using an ER format.
To complete some steps of the task guide, you must download the following files:

C O N T EN T DESC RIP T IO N F IL E

ER data model configuration EFSTAmodel.xml

ER format configuration EFSTAformat.xml

Web service response sample 1 Response1.xml


C O N T EN T DESC RIP T IO N F IL E

Web service response sample 2 Response2.xml

Web service response sample 3 Response3.xml

Web service response sample 4 Response4.xml

Parse incoming documents in Excel format


You can design Electronic reporting (ER) formats to parse incoming Microsoft Excel files that represent data in
Microsoft Excel workbooks (files in XLSX format). You can then use the content from these files to update
application data. This is useful if you:
Design a new model and format and want to test them at run-time. In this case, Excel will simulate the actual
application data.
Manage data beyond your application in Excel and want to import this data to submit a specific report.
To learn more about this feature, play the task guides ER Impor t data from a Microsoft Excel file (Par t 1:
Design format) and ER Impor t data from a Microsoft Excel file (Par t 2: Impor t data) (parts of the 7.5.4.3
Acquire/Develop IT service/solution components (10677) business process). These task guides walk through how
the incoming Excel file can be parsed by using the ER format to import information from incoming documents and
update application data. You can download the task guide files from the Microsoft Download Center.
Download the following files to complete the task guides mentioned above.

C O N T EN T DESC RIP T IO N F IL E

Incoming file in .XLSX format - template 1099import-template.xlsx

Incoming file in .XLSX format - sample data 1099import-data.xlsx

If you have not yet played the following task guide, ER Create required configurations to import data from an
external file in the current Finance and Operations application, download the following file.

C O N T EN T DESC RIP T IO N F IL E

ER model configuration 1099model.xml

Parse incoming documents in CSV format


You can design Electronic reporting (ER) formats to parse incoming electronic documents that represent tabular
data in plain text (files in CSV format) and then use the content from these documents to update application data.
The following approach can be used:
Begin your format's design by adding a new root sequence element to specify that each line in the parsing
file is considered a separate record.
In the added sequence element, select the appropriate value, for example New line - Windows (CR
LF) , in the Special characters field in the Sequence element delimiter field group.
Continue your format's design by adding a nested sequence element of the added root sequence element to
specify that each line in the parsing file is considered as a set of fields.
You can specify the character in the Custom delimiter field that will be recognized in the parsing
line as a fields separator.

NOTE
You can define different field separators for different sequence elements to parse specific file lines in which
fields are separated by different characters.
The Custom delimiter field can be left blank for certain sequence elements. An empty field means that
any file line that is parsed by using this sequence will be parsed like a .txt (fixed length text) file line.

In the Quotation application field, select the value when you expect that some fields of any line that
is parsed by this sequence element will be enclosed by certain characters. The following options are
available:
All – Include quotation characters in the parsing line for any field of any data type. If you select
this, define the desired characters in the Quotation mark field that will be used for fields
quotation. For example, the double quotes character.
Text only – Include quotation characters in the parsing line for any field of the String data type. If
you select this, define the desired characters in the Quotation mark field that will be used for
fields quotation.
Derive from parent only – Use the same Quotation application field settings that are defined
for the parent sequence element. Note that the Quotation mark field setting will be taken from
the settings of the parent sequence element as well.
None – Exclude quotation characters in the parsing line for any field of any data type.
Complete your format's design by adding nested elements for the added sequence element that represents
the set of fields of the parsing line. Add the required elements of the Text group, such as String , DateTime ,
and Numeric , to describe the structure of the parsing line as a set of individual fields of different data types.
For each format element that represents an individual field of the parsing line, by default, nothing is
selected in the Multiplicity field. This means that the value of the field in the parsing line is
considered required. In the Multiplicity field, select Zero one to consider the value of this field in
the parsing line as optional.

NOTE
The data source item isMatch is available when you map this format to ER data model for each String ,
DateTime , or Numeric format element with the option Zero one selected in the Multiplicity field. When
this field contains a value, isMatch will return True . If there is no value in the field, it will return False .

To learn more about this feature, play the task guide, ER Create a format configuration to impor t data from
an external CSV file (part of the 7.5.4.3 Acquire/Develop IT service/solution components (10677) business
process), which walks through how the incoming CSV file can be parsed by using the ER format to update
application data.
Download the following files to complete the task guide mentioned above.

T IT L E F IL E N A M E

ER format configuration 1099formatcsv.xml

Sample of incoming file in .csv format 1099entriescsv.csv

Download the following file that is required to complete the task guide mentioned above if you have not played the
task guide, ER Create required configurations to impor t data from an external file for electronic
repor ting in the current Finance and Operations application.

T IT L E F IL E N A M E

ER model configuration 1099model.xml


ER Create required configurations to import data
from an external file
3/18/2020 • 12 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System administrator or Electronic reporting developer role can
design Electronic reporting (ER) configurations to import data in to the application from an external file. In this
example, you will create the required ER configurations for the sample company, Litware, Inc. To complete these
steps, you must first complete the steps in the Task guide, "ER Create a configuration provider and mark it as
active." These steps can be completed using the USMF data set. You must also download and save the following
files locally using links from the Electronic reporting overview topic (https://go.microsoft.com/fwlink/?
linkid=852550): 1099model.xml, 1099format.xml, 1099entries.xml, 1099entries.xlsx.
ER offers business users the ability to configure the process of importing external data files to tables in either .XML
or .TXT format. First, an abstract data model and an ER data model configuration must be designed to represent the
data that you are importing. Next, you need to define the structure of the file that you are importing and the
method that you will use to port the data from the file to the abstract data model. The ER format configuration that
maps to the designed data model must be created for that abstract data model. Then, the data model configuration
must be extended with a mapping that describes how the imported data is persisted as abstract data model data
and how it is used to update tables. The ER data model configuration must be appended with a new model
mapping that describes the binding of the data model to the application's destinations.
The following scenario shows the ER data import capabilities. This includes vendor transactions that are tracked
externally and then imported to be reported later in Vendor's settlement for 1099's.

Add a new ER model configuration


1. Go to Organization administration > Workspaces > Electronic reporting.
Verify that the configuration provider for sample company 'Litware, Inc.' is available and marked as active. If
you don't see this configuration provider, you must first complete the steps in the procedure, "Create a
configuration provider and mark it as active."
2. Click Reporting configurations.
Instead of creating of a new model to support data import, load the file, 1099model.xml, that you previously
downloaded. This file contains the custom data model of vendors' transactions. This data model is mapped
to the data components that are in the AOT data entity.
3. Click Exchange.
4. Click Load from XML file.
Click Browse and navigate to the 1099model.xml file that you previously downloaded.
5. Click OK.
6. In the tree, select '1099 Payments model'.
Review data model settings
1. Click Designer.
This model is designed to represent vendors' transactions from the business standpoint and are separate
from the implementation.
2. In the tree, expand '1099-MISC'.
3. In the tree, select '1099-MISC\Transactions'.
4. In the tree, expand '1099-MISC\Transactions'.
The Transactions element of this model represents individual transactions. The child elements are used to
specify required details, such as vendor account and transaction date, for each transaction.
5. Close the page.

Add a new ER format configuration that supports data import


The steps in this subtask show you how a new format configuration can be created to manage data import from
external files.
1. Click Create configuration to open the drop dialog.
2. In the New field, enter 'Format based on data model 1099 Payments model'.
3. Select Yes in the Supports data import field.
4. Press ESC key to close this page.
Instead of creating a new format to support data import, load the 1099format.xml file that you previously
downloaded. This file contains the defined structure of the file you are importing and the mapping of the
structure to the custom data model of vendors' transactions.
5. Click Exchange.
6. Click Load from XML file. Click Browse and navigate to the 1099format.xml file that you previously
downloaded.
7. Click OK.
8. In the tree, expand '1099 Payments model'.
9. In the tree, select '1099 Payments model\Format for importing vendors' transactions'.

Review format settings


1. Click Designer.
2. Toggle 'Show details' on.
3. Click Expand/collapse.
4. Click Expand/collapse.
The designed format represents the expected structure of the external file. This file must be in XML format
and have the settlement root element. Each vendor's transaction is represented by the transaction element
that is defined as having zero-to-many multiplicity. This means that the incoming file may contain anywhere
from zero to multiple transactions. Nested elements of the 'transaction' element represent a single
transaction's attributes. Note that all attributes, except country, are marked as mandatory, meaning that it is
required to have them in the importing file.

Review the settings of the format mapping to the data model


1. Click Map format to model.
The mapping 'For importing vendors' transactions' contains the data transfer rules from the incoming XML
file to the selected part of the custom data model, which is defined by selecting the1099-MISC definition.
2. Click Designer.
3. Toggle 'Show details' on.
4. In the tree, expand 'format: Record'.
5. In the tree, select 'format: Record'.
Note that the designed format is presented here as a data source component.
6. In the tree, expand 'format: Record*settlement: XML Element 1..1 (settlement): Record'.
7. In the tree, expand 'format: Record*settlement: XML Element 1..1 (settlement): Record\transaction: XML
Element 0..* (transaction): Record list'.
8. In the tree, expand 'format: Record*settlement: XML Element 1..1 (settlement): Record\transaction: XML
Element 0..* (transaction): Record list*vendor: XML Element 1..1 (vendor): Record'.
9. In the tree, expand 'format: Record*settlement: XML Element 1..1 (settlement): Record\transaction: XML
Element 0..* (transaction): Record list\country: XML Element 0..1 (country): Record'.
10. In the tree, select 'format: Record*settlement: XML Element 1..1 (settlement): Record\transaction: XML
Element 0..* (transaction): Record list*vendor: XML Element 1..1 (vendor): Record'.
Note that the presentation of mandatory and optional format elements is different in the predefined
'format' data source component.
11. In the tree, expand 'Transactions: Record list= format.settlement.'$enumerated''.
Note that the elements of the format that defines the structure of the imported file are bound to the
elements of the custom data model. Based on these bindings, the content of the imported XML file will be
stored at run-time in the existing data model. Pay attention to the binding of the country element. For any
transaction element in the incoming file that has no such element, the default country code 'USA' will be
populated in the data model.
12. Click the Validations tab.
This format mapping may contain user-defined logic to validate the accuracy of the imported data from a
business standpoint. For example, based on the setting, for any transaction in the importing file without a
defined country code, a warning message will be generated in the Infolog informing the user about the case
and indicating the transaction's sequence number.
13. Close the page.

Run the format mapping to the data model


Execute this format mapping for testing purposes. Use the file 1099entries.xml that you previously downloaded.
You can export this file from the 1099entries.xlsx workbook that is used to manage vendor transactions. The
generated output will be imported from the selected XML file and populate the custom data model at real import.
1. Click Run.
Click Browse and navigate to the 1099entries.xml file that you previously downloaded.
2. Click OK.
Note the warning message about a missing country code for a transaction in the imported file.
Review the output in XML format, which represents the data that has been imported from the selected file
and ported to the data model.
3. Close the page.
4. Close the page.

Review the settings for the model mapping to the destinations


1. In the tree, select '1099 Payments model'.
2. Click Designer.
3. Click Map model to datasource.
The mapping For 1099 manual transactions import has been defined with the To destination direction type.
This means that it has been entered to support data import and contains the setting of rules defining how
the imported external file and persisted as abstract data model data is used to update tables in the
application.
4. Click Designer.
5. In the tree, expand 'model: Data model 1099 Payments model'.
6. In the tree, expand 'model: Data model 1099 Payments model\Transactions: Record list'.
Note that the designed model is presented here as a data source element. At runtime, it will contain the data
that is imported from the external file. Several tables were added as data source elements to ensure that the
imported data is compliant with the data of the current application, including whether the importing
transaction vendor account is available in the system, whether the combination of the importing country
and state codes exists, etc.
7. In the tree, select 'model: Data model 1099 Payments model\Transactions: Record list$failed: Calculated field
= IF(OR(ISEMPTY(model.Transactions.'$refs'.vendor), ISEMPTY(model.Transactions.'$refs'.vendor1099),
ISEMPTY(model.Transactions.'$refs'.box1099), ISEMPTY(model.Transactions.'$refs'.country),
ISEMPTY(model.Transactions.'$refs'.state), ISEMPTY(model.Transactions.'$refs'.location)), true, false):
Boolean'.
8. Click Edit.
9. Click Edit formula.
When at least one validation fails for a single imported transaction, this transaction will be marked as failed
by the data source attribute '$failed'.
10. Close the page.
11. Click Cancel.
12. In the tree, select 'tax1099trans: Table 'VendSettlementTax1099' records= model.Validated'.
13. Click Edit destination.
This ER destination was added to specify how the imported data will update the application tables. In this
case, the data table VendSettlementTax1099 has been selected. Because the record action Insert has been
selected, the imported transactions will be inserted in the table VendSettlementTax1099. Note that a single
model mapping may contain several destinations. This means that the imported data can be used to update
multiple application's tables at once. Tables, views, and data entities can be used as ER destinations.
If the mapping will be called from a point in the application (such as button or menu item) that was
specifically designed for this action, the ER destination should be marked as the integration point. In this
example this is the ERTableDestination#VendSettlementTax1099 point.
14. Click Cancel.
15. Click Show all.
16. Click Show mapped only.
17. In the tree, expand 'tax1099trans: Table 'VendSettlementTax1099' records= model.Validated'.
Note that the data source element that contains the only validated transactions is bound to the created
destination. You can filter the imported transactions to skip the ones that are incompatible with the
applications' data.
18. In the tree, select 'failed: Table 'VendSettlementTax1099Entity' records= model.Failed'.
19. Click the Validations tab.
This model mapping may contain user-defined logic to validate the correctness of the imported data from
the existing application data. For example, based on the present setting, for any transaction in the imported
file with a vendor account that is not in the system, a warning message will be generated informing the user
and indicating the incorrect vendor account code.
Note that the Post validation action option can be used for each validation, to specify whether the import
process must be continued or stopped, as well as if the already performed inserts/updates can be kept or
rolled back.
20. Click Show mapped only.
21. Click Show all.
22. Close the page.
Execute this model mapping to test the designed format and model mappings. Use the file 1099entries.xml.
The data from the selected file will be imported in to the system.
23. Click Run.
Note that the dialog box contains no additional questions about the format mapping that must be used to
parse the imported file and then port the data to the data model. This is because there is currently only one
format that uses this model, which is marked as designed to support data import.
Define the voucher ID to differentiate the imported transactions from other transactions that may already
have been entered manually or imported.
24. In the Enter voucher id field, type 'IMPORT-001'.
Browse to get the '1099entries.xml' file.
25. Click OK.
The list of generated warnings provides information about incorrect vendor accounts, an incorrect tax 1099
box code, missing country codes, etc. Compare this list of warnings to the content that is included in the
execution XML file.
26. Close the page.
27. Close the page.
28. Close the page.
29. Close the page.
30. Go to Accounts payable > Periodic tasks > Tax 1099 > Vendor settlement for 1099s.
This form shows the cumulative transactions in the Tax1099Summary table that have been created based on
imported transactions.
31. In the From date field, set the date to '2000-01-01'.
32. Click Manual 1099 transactions.
This form contains the list of transactions that were added manually and those that we just imported.
33. Open Voucher column filter.
34. Enter a filter value of "IMPORT-001" on the "Voucher" field using the "begins with" filter operator.

Review the relationship between model and format mappings


1. Close the page.
2. Close the page.
3. Go to Organization administration > Workspaces > Electronic reporting.
4. Click Reporting configurations.
5. In the tree, select '1099 Payments model'.
Assume that you want to support importing the same data but from a .TXT file format.
6. Click Create configuration to open the dialog box.
7. In the New field, enter 'Format based on data model 1099 Payments model'.
8. In the Name field, type 'Import data from TXT file'.
9. Select Yes in the Supports data import field.
10. Click Create configuration.
11. Click Designer.
12. Click Map format to model.
13. Click New.
14. In the Definition field, enter or select a value.
Select '1099-MISC' option.
15. In the Name field, type 'Import data from TXT file'.
16. In the Description field, type 'Import data from TXT file'.
17. Click Save.
18. Close the page.
19. Close the page.
20. Click Edit.
If you installed the hotfix "KB 4012871 Support of GER model mappings in separated configurations with an
ability to specify different kinds of prerequisites for deploying them on different versions of Dynamics 365
Finance" (https://fix.lcs.dynamics.com/Issue/Resolved?kb=4012871 ), execute the next step "Turn the flag
'Default for model mapping' on" for the entered format configuration. Skip the next step otherwise.
21. Select Yes in the Default for model mapping field.
22. In the tree, select '1099 Payments model'.
23. Click Designer.
24. Click Map model to datasource.
25. Click Run.
If you installed the hotfix, KB 4012871 Support of GER model mappings in separated configurations with an
ability to specify different kinds of prerequisites for deploying them on different versions
(https://fix.lcs.dynamics.com/Issue/Resolved?kb=4012871 ), select the preferred model mapping in the
lookup field. If you haven't installed the hotfix yet, skip to the next step as the mapping has already been
selected by the definition of the default format configuration.
If you have not installed the hotfix, KB 4012871, notice that the dialog box contains an additional model
mapping question that is used to parse the file that you are importing. The data is then ported from the
dialog box to the data model. Currently, you can choose which format mapping must be used depending on
the type of file that you plan to import.
If you plan to call this model mapping from a point in the application that is specifically designed for the
action, the ER destination and the format mapping must be marked as part of the integration.
26. Click Cancel.
27. Close the page.
28. Close the page.
Configure data import from SharePoint
11/5/2019 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

To import data from an incoming file by using the Electronic reporting (ER) framework, you must configure an ER
format that supports the import and then run a model mapping of the To destination type that uses that format
as a data source. To import data, you must navigate to the file that you want to import. The incoming file can be
manually selected by user. With the new ER capability to support importing data from Microsoft SharePoint, this
process can be configured as unattended. You can use ER configurations to perform data import from files that are
stored in Microsoft SharePoint folders. This topic explains how to complete the import from SharePoint. The
examples use vendor transactions as business data.

Prerequisites
To complete the examples in this topic, you must have the following access:
Access one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
Access to the instance of Microsoft SharePoint Server that is configured for use with the application.
ER format and model configurations for 1099 payments.
Create required ER configurations
Play the ER Impor t data from a Microsoft Excel file task guides, which are part of the 7.5.4.3
Acquire/Develop IT ser vice/solution components (10677) business process. These task guides walk you
through the process of designing and using ER configurations to interactively import vendor transactions from
Microsoft Excel files. For more information, see Parse incoming documents in Excel format. After you have
completed the task guides, you will have the following set up.
ER configurations
ER model configuration, 1099 Payments model
ER format configuration, Format for impor ting vendors' transactions from Excel
Sample of the incoming file for data import
Excel file 1099impor t-data.xlsx , with vendor transactions that should be imported.

NOTE
The format for importing vendor transactions is selected as the default model mapping. Therefore, if you run a model
mapping of the 1099 Payments model, and that model mapping is of the To destination type, the model mapping runs
this format to import data from external files. It then uses that data to update application tables.

Configure access to SharePoint for file storage


To store electronic report files in a SharePoint location, you must configure access to the SharePoint Server instance
that will be used by the current company. In this example, the company is USMF. For instructions, see Configure
SharePoint storage.
1. Complete the steps in Configure SharePoint storage.
2. Open the configured SharePoint site.
3. Create the following folders where incoming electronic reporting files can be stored:
Files import source (main) (Example shown in screenshot below)
Files import source (alternative)
4. (Optional) Create the following folders where the files can be stored after import.
Files archive folder - This folder would be for successfully imported files.
Files warning folder - This folder would be for files that were imported with a warning.
Files error folder - This folder would be for files that failed to import.
5. Go to Organization administration > Document management > Document types .
6. Create the following document types that will be used to access the SharePoint folders that you just created.
For instructions, see Configure document types.

DO C UM EN T T Y P E GRO UP LO C AT IO N SH A REP O IN T F O L DER

SP Main File SharePoint Files import source (main)

SP Alternative File SharePoint Files import source


(alternative)

SP Archive File SharePoint Files archive folder

SP Warning File SharePoint Files warning folder

SP Error File SharePoint Files error folder

Configure ER sources for the ER format


1. Click Organization administration > Electronic repor ting > Electronic repor ting source .
2. On the Electronic repor ting source page, configure the source files for data import by using the
configured ER format.
3. Define a file name mask, so that only files with the .xlsx extension are imported. The file name mask is
optional and is used only when it has been defined. You can define only one mask for each ER format.
4. Change Sor t files before impor t to Do not sor t , if there are a lot of files for import and the import order
is not important
5. Select all SharePoint folders that you created earlier.

NOTE
The ER source is defined for each application company individually. By contrast, ER configurations are shared across
companies.
When you delete an ER source setting for an ER format, all connected file states (see below) are also deleted by
confirmation.

Review the files states for the ER format


1. On the Electronic repor ting source page, select File states for the sources to review the content of the
configured file sources for the current ER format.
2. In the Files section, review the list of files. This list presents the following:
Source files that are applicable, based on the file name mask (if a file name mask is defined), and that are
ready for data import. For these files, the Sources log for the impor t format section is blank.
Previously imported files. For each of these files, in the Sources log for the impor t format section,
you can review the history of import of this file.
You can also open the File states for the sources page by selecting Organization administration >
Electronic repor ting > File states for the sources . In this case, the page provides information about file
sources for all ER formats that file sources have been configured for in the company that you're currently signed in
to.

Import data from Excel files that are in a SharePoint folder


1. In SharePoint, upload the Microsoft Excel file 1099impor t-data.xlsx that contains vendor transactions to
the Files impor t source (main) SharePoint folder that you created earlier.
2. On the File states for the sources page, select Refresh to refresh the page. Note that the Excel file that
was uploaded to SharePoint appeared on this page with the status Ready . The following statuses are
currently supported:
Ready – Assigned automatically for each new file in a SharePoint folder. This status means that the file is
ready for import.
Impor ting – Assigned automatically by an ER report when the file will be locked by the import process
to prevent its usage by other processes (if many of them are running simultaneously).
Impor ted – Assigned automatically by an ER report when the file import is successfully completed. This
status means that the imported file has been deleted from the configured files source (SharePoint folder).
Failed – Assigned automatically by an ER report when the file import completed with errors or
exceptions.
On hold – Assigned manually by user on this page. This status means that the file will not be imported
for now. This status can be used to postpone the import of some files.

Import data from SharePoint files


1. Open the ER configurations tree, select the 1099 Payment model , and expand the list of ER model
components.
2. Select the name of the model mapping to open the list of model mappings of the selected ER model
configuration.
3. Select Run to run the selected model mapping. Because you configured file sources for the ER format, you
can change the setting of the File source option, if needed. If you keep the setting of this option, the .xslx
files are imported from the configured sources (the SharePoint folders, in this example).
In this example, you're importing only one file. However, if there are multiple files, they are selected for
importing in the order in which they were added to the SharePoint folder. Every run of an ER format imports
a single selected file.

4. The model mapping can run unattended in batch mode. In this case, every time that a batch runs this ER
format, a single file is imported from the configured file sources.
When a file is successfully imported from the SharePoint folder, it's deleted from that folder and moved to
folder for successful imported files or to the folder to imported files with warnings. Otherwise it's moved to
folder for failed files or stays in this folder if the folder for failed files isn't set up.
5. Enter the voucher ID, such as V-00001 , and then select OK .
6. On the File states for the sources page, select Refresh to refresh the page.

7. In the Files section, review the list of files. The Sources log for the impor t format section provides the
history of the Excel file import. Because this file was successfully imported, it's marked as Deleted in the
SharePoint folder.
8. Review the Files impor t source (main) SharePoint folder. The Excel files that were successfully imported
have been deleted from this folder.
9. Select Accounts payable > Periodic tasks > Tax 1099 > Vendor settlement for 1099s .
10. In the From date and To date fields, enter appropriate values. Then select Manual 1099 transactions .
The vendor transactions that were imported from the Excel files on SharePoint for voucher V-00001 , are
presented on the page.
Prepare an Excel file for import
1. Open the Excel file that you previously used. In row 3 column 1, add a vendor code that doesn't exist in the
application. Add additional false vendor information to the row.

2. Upload the updated Excel file that contains vendors transactions to the Files impor t source (main)
SharePoint folder.
3. Open the ER configurations tree, select the 1099 Payment model , and expand the list of ER model
components.
4. Select the name of the model mapping to update the model mapping so that the incorrect vendor code is
considered an error during the data import process.
5. Select Designer .
6. On the Validations tab, you must change the post-validation action for the validation rule that was
configured to evaluate whether the vendor account that is imported exists in the application. Update the
value of the Post-validation action field to Stop execution , save your changes, and close the page.

7. Save your changes, and close the ER model mapping designer.


8. Select Run to run the modified ER model mapping.
9. Enter the voucher ID, such as V-00002 , and then select OK .
Note that the Infolog contains a notification that there's a file in the SharePoint folder that contains incorrect
vendor account and can’t be imported.
10. On the File states for the sources page, select Refresh , and then, in the Files section, review the list of
files.

The Sources log for the impor t format section indicates that the import process failed and that the file is in the
Files error SharePoint folder (the Is deleted check box is not selected). If you fix this file on SharePoint by adding
the proper vendor code and then move it to the Files import source (main) SharePoint folder, you can import the
file again.
11. Select Accounts payable > Periodic tasks > Tax 1099 > Vendor settlement for 1099s , enter
appropriate values in the From date and To date fields, and then select Manual 1099 transactions .
Only transactions for voucher V-00001 are available. No transactions for voucher V-00002 are available
even though the error for the last imported transaction has been found in the Excel file.
Import files in XML format with optional attributes
3/12/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can design Electronic reporting (ER) formats to parse incoming electronic documents in XML format. Certain
attributes of XML elements can be specified in designed ER format as optional. It will allow you to handle incoming
files with and without such XML attributes properly. You can then use the content from these files to update
application data.
To learn more about this feature, complete the steps in the topic, (RCS) Import files in XML format with optional
attributes, which is part of the 7.5.4.3 Acquire/Develop IT service/solution components (10677) business process.
You can download this task guide and associated sample files from the Microsoft Download Center.

C O N T EN T DESC RIP T IO N F IL E

Sample file in XML format IncomingDocumentToLearnHowToHandleOptionalAttributes.x


ml

Task guide RCS Import files in XML format with optional attributes.axtr

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can
design ER format configuration to import files in XML format containing optional attributes. To complete these
steps, you must first complete the steps in the procedure, Create configuration providers and mark them as active.
Before you begin, download and save locally the IncomingDocumentToLearnHowToHandleOptionalAttributes.xml
file from Microsoft Download Center (https://go.microsoft.com/fwlink/?linkid=874684 ).
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Make sure that the configuration provider for the sample company, Litware, Inc., is available and marked as
Active . If you don't see this configuration provider, complete the steps in the topic, Create configuration
providers and mark them as active.
3. Click Repor ting configurations .

Create a new data model configuration


1. Click Create configuration to open the drop dialog.
2. In the Name field, type 'Model to import xml file'.
3. Click Create configuration .
4. Click Designer .
5. Click New to open the drop dialog.
6. In the Name field, type 'Root'.
7. Click Add .
8. Click New to open the drop dialog.
9. In the Name field, type 'List'.
10. In the Item type field, select Record list .
11. Click Add .
12. Click New to open the drop dialog.
13. In the Name field, type 'Code'.
14. In the Item type field, select String .
15. Click Add .
16. Click Save .
17. Close the page.
18. Click Change status .
19. Click Complete .
20. Click OK .

Create a format for data import


1. Click Create configuration to open the drop dialog.
2. In the New field, enter 'Format based on data model Model to import xml file'.
3. In the Nam e field, type 'Format to import xml file'.
4. Select Yes in the Suppor ts data impor t field.
5. Click Create configuration .

Design a format to parse incoming file in xml format


1. Click Designer .
2. Click Add root to open the drop dialog.
3. In the tree, select XML\Element .
4. In the Name field, type 'root'.
5. Click OK .
6. Click Add to open the drop dialog.
7. In the tree, select XML\Element .
8. In the Name field, type 'document'.
9. In the Multiplicity field, select One many .
10. Click OK .
11. In the tree, select root\document .
12. Click Add to open the drop dialog.
13. In the tree, select XML\Attribute .
14. In the Name field, type 'id'.
15. Click OK .
16. Click Save .

Design a format mapping to save parsed information to data model


1. Click Map format to model .
2. Click New .
3. In the Definition field, enter or select a value.
4. In the Name field, type 'Mapping'.
5. Click Save .
6. Click Designer .
7. In the tree, expand format .
8. In the tree, expand format\root: XML Element(root) .
9. In the tree, select *format\root: XML Element(root)\document: XML Element 1.. (document)**.
10. Click Bind .
11. In the tree, expand *format\root: XML Element(root)\document: XML Element 1.. (document)**.
12. In the tree, select format\root: XML Element(root)\document: XML Element 1.. (document)\id*.
13. In the tree, expand List = format.root.document .
14. In the tree, select List = format.root.document\Code .
15. Click Bind .
16. Click Save .
17. Close the page.

Run format mapping


1. Click Run .
2. Click Browse and select the file, IncomingDocumentToLearnHowToHandleOptionalAttributes.xml .
3. Click OK .

NOTE
The selected file has not been imported as the format design assumes the existence of 'id' attribute for the 'document'
element, but the imported file contains no such attribute.

Modify format structure to handle xml attribute as optional


1. Close the page.
2. In the tree, expand root\document .
3. In the tree, select root\document\id .
4. In the Empty string for missing attribute field, select Yes .
5. Click Save .

Run format mapping to test changes


1. Click Map format to model .
2. Click Run .
3. Click Browse and select the file, IncomingDocumentToLearnHowToHandleOptionalAttributes.xml .
4. Click OK .
5. Review the generated file. Note that same file has been imported as the format design now consider the 'id'
attribute for the 'document' element as optional.
(RCS) Import files in XML format with optional
attributes
3/18/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can
design ER format configuration to import files in XML format containing optional attributes. To complete these
steps, you must first complete the steps in the "Create a configuration provider and mark it as active" procedure.
Before you begin, download and save locally the IncomingDocumentToLearnHowToHandleOptionalAttributes.xml
file from Microsoft Download Center.
1. Go to All workspaces > Electronic repor ting .
2. Make sure that the configuration provider for the sample company, Litware, Inc., is available and marked as
Active . If you don't see this configuration provider, complete the steps in the procedure Create configuration
providers and mark them as active.
3. Click Repor ting configurations .

Create a new data model configuration


1. Click Create configuration to open the drop dialog.
2. In the Name field, type 'Model to import xml file'.
3. Click Create configuration .
4. Click Designer .
5. Click New to open the drop dialog.
6. In the Name field, type 'Root'.
7. Click Add .
8. Click New to open the drop dialog.
9. In the Name field, type 'List'.
10. In the Item type field, select Record list .
11. Click Add .
12. Click New to open the drop dialog.
13. In the Name field, type 'Code'.
14. In the Item type field, select String .
15. Click Add .
16. Click Save .
17. Close the page.
18. Click Change status .
19. Click Complete .
20. Click OK .

Create a format for data import


1. Click Create configuration to open the drop dialog.
2. In the New field, enter 'Format based on data model Model to import xml file'.
3. In the Name field, type 'Format to import xml file'.
4. Select Yes in the Suppor ts data impor t field.
5. Click Create configuration .

Design a format to parse incoming file in xml format


1. Click Designer .
2. Click Add root to open the drop dialog.
3. In the tree, select XML\Element .
4. In the Name field, type 'root'.
5. Click OK .
6. Click Add to open the drop dialog.
7. In the tree, select XML\Element .
8. In the Name field, type 'document'.
9. In the Multiplicity field, select One many .
10. Click OK .
11. In the tree, select root\document .
12. Click Add to open the drop dialog.
13. In the tree, select XML\Attribute .
14. In the Name field, type 'ID'.
15. Click OK .
16. Click Save .

Design a format mapping to save parsed information to data model


1. Click Map format to model .
2. Click New .
3. In the Definition field, enter or select a value.
4. In the list, click the link in the selected row.
5. In the Name field, type 'Mapping'.
6. Click Save .
7. Click Designer .
8. In the tree, expand format .
9. In the tree, expand format\root: XML Element(root) .
10. In the tree, select *format\root: XML Element(root)\document: XML Element 1.. (document)**.
11. Click Bind .
12. In the tree, expand *format\root: XML Element(root)\document: XML Element 1.. (document)**.
13. In the tree, select format\root: XML Element(root)\document: XML Element 1.. (document)\id*.
14. In the tree, expand List = format.root.document .
15. In the tree, select List = format.root.document\Code .
16. Click Bind .
17. Click Save .
18. Close the page.

Run format mapping


1. Click Run .
2. Click Browse and select IncomingDocumentToLearnHowToHandleOptionalAttributes.xml .
3. Click OK .

NOTE
The selected file has not been imported as the format design assumes the existence of 'id' attribute for the 'document'
element, but the imported file contains no such attribute.

Modify format structure to handle xml attribute as optional


1. Close the page.
2. In the tree, expand root\document .
3. In the tree, select root\document\id .
4. Select Yes in the Empty string for missing attribute field.
5. Click Save .

Run format mapping to test changes


1. Click Map format to model .
2. Click Run .
3. Click Browse and select the IncomingDocumentToLearnHowToHandleOptionalAttributes.xml file.
4. Click OK .
5. Review the generated file.

NOTE
The same file has been imported as the format design now consider the 'id' attribute for the 'document' element as optional.
Split generated XML files based on file size and
content quantity
11/5/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can design Electronic reporting (ER) formats to generate outgoing documents in XML format. Sometimes,
those documents can be accepted only when they meet specific criteria, such a maximum file size or a maximum
number of some XML nodes. You can design ER formats to generate electronic documents that satisfy the
requirements that the recipients of those documents specify.
For the FILE format element, you can define a limit on the file size as an ER expression. If the defined limit is
exceeded when an ER report is generated, ER finishes creating the current file and then moves on to create the
next file.
For any XML ELEMENT format, you can define a limit on the number of elements as an ER expression. If the
number of XML nodes in the file that is generated exceeds the defined limit when an ER report is run, ER
finishes creating the current file and then moves on to create the next file.
For any XML SEQUENCE format element, you can define a limit on the number of child elements as an ER
expression. If the number of nested XML nodes of the format element in the generated file exceeds the defined
limit when an ER report is run, ER finishes creating the current file and then moves on to create the next file.
You can mark any XML ELEMENT format element as non-breakable. In this way, you can keep the nested items
of XML nodes that are generated under the format element in a single generated file.
In addition to using the XML ELEMENT and XML SEQUENCE format elements to add XML nodes to the generated
file, you can use the RAW XML format element. However, nodes that you add by using the RAW XML format
element aren't considered when the number of nodes is calculated to evaluate the limits on the number of
elements.
If you configured file destinations for a FILE format element that has been configured to split the generated output
whenever specific limits are exceeded, each piece of generated output is sent to the configured file destination as
an individual file. To uniquely name the files that are created by splitting the output, you must configure an ER
expression for the FILE format element. If you include an ER data source of the NUMBER SEQUENCE type, the
number sequence will be incremented for each piece of the split output.
To learn more about this feature, play the ER Split XML files based on the file size or content item quantity
task guide, which is part of the 7.5.4.3 Acquire/Develop IT ser vice/solution components (10677) business
process and can be downloaded from the Microsoft Download Center. This task guide walks you through the
process of configuring an ER format to split generated files based on limits on the file size and content item
quantity. To complete the task guide, you must download the following files:
ER model configuration - XmlFilesSplittingModel.xml
ER format configuration - XmlFilesSplittingFormat.xml

Additional resources
Electronic reporting (ER) destinations
Formula designer in Electronic reporting (ER)
Support parameterized calls of ER data sources of the
Calculated field type
11/5/2019 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how you can design an Electronic reporting (ER) data source by using the Calculated field
type. This data source may contain an ER expression that, when executed, can be controlled by the values of the
parameter arguments that are configured in a binding that calls this data source. By configuring parameterized
calls of such a data source, you can reuse a single data source in many bindings, which reduces the total number of
data sources that must be configured in ER model mappings or ER formats. It also simplifies the configured ER
component, which reduces the maintenance costs and the cost of use by other consumers.

Prerequisites
To complete the examples in this topic, you must have the following access:
Access to one of these roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
Access to Regulatory Configuration Services (RCS) that have been provisioned for the same tenant as
Finance and Operations for one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
From the Microsoft Download Center, download the zipped (compressed) file Suppor t parameterized calls of
ER data sources of Calculated field type . It contains the following ER configurations that must be extracted
and stored locally.

C O N T EN T F IL E N A M E

Sample ER data model configuration Model to learn parameterized calls.version.1.xml

Sample ER metadata configuration Metadata to learn parameterized calls.version.1.xml

Sample ER model mapping configuration Mapping to learn parameterized calls.version.1.1.xml

Sample ER format configuration Format to learn parameterized calls.version.1.1.xml

Sign in to your RCS instance


In this example, you will create a configuration for the sample company, Litware, Inc. First, in RCS, you must
complete the steps in the Create configuration providers and mark them as active procedure:
1. On the default dashboard, select Electronic repor ting .
2. Select Repor ting configurations .
3. Import the downloaded configurations to RCS in the following sequence: data model, metadata, model
mapping, format. Complete the following steps for each ER configuration:
a. Select Exchange.
b. Select Load from XML file .
c. Select Browse , and then select the required ER configuration in XML format.
d. Select OK.

Review the provided ER solution


Review model mapping
1. In the configuration tree, expand the content of the Model to learn parameterized calls item.
2. Select Mapping to learn parameterized calls .
3. Select Designer .
4. Select Designer .
This ER model mapping is designed to do the following:
Fetch the list of tax codes (Tax data source) residing in the TaxTable table.
Fetch the list of tax transactions (Trans data source) residing in the TaxTrans table:
Group the list of fetched transactions (Gr data source) by tax code.
Calculate for grouped transactions following aggregated values per tax code:
Sum of tax base values.
Sum of tax values.
Minimum value of applied tax rate.
The model mapping in this configuration implements the base data model for any of the ER formats created
for this model and executed in Finance and Operations. As a result, the content of the Tax and Gr data
sources is exposed for ER formats such as abstract data sources.

5. Close the Model mapping designer page.


6. Close the Model mapping page.
Review format
1. In the configuration tree, expand the content of the Model to learn parameterized calls item.
2. Select Format to learn parameterized calls .
3. Select Designer . This ER format is designed to do the following:
Generate a tax statement in XML format.
Present the following levels of taxation in the tax statement: regular, reduced, and none.
Present multiple details at each taxation level, having a different number of details in each level.

4. Select Mapping .
5. Expand the Model , Data, and Summar y items.
The calculated field Model.Data.Summar y.Level contains the expression that returns the code of the
taxation level (Regular , Reduced , None, or Other ) as a text value for any tax code that can be retrieved
from the Model.Data.Summar y data source at run time.

6. Expand the Model .Data2 item.


7. Expand the Model .Data2.Summar y2 item.
The Model .Data2.Summar y2 data source is configured to group the Model.Data.Summar y data source
transaction details by taxation level (returned by the Model.Data.Summar y.Level calculated field) and
compute the aggregations.
8. Review the calculated fields Model .Data2.Level1 , Model .Data2.Level2 , and Model .Data2.Level3. These
calculated fields are used to filter the Model .Data2.Summar y2 records list and return only records that
represent a particular taxation level.
9. Close the Format designer page.

Create a derived format


You can improve the provided format by adding one calculated field to filter the required taxation level instead of
using the existing three fields: Model .Data2.Level1 , Model .Data2.Level2, and Model .Data2.Level3 . The
required taxation level can be specified in the location where this new calculated field will be called.
1. In the configuration tree, expand the content of the Model to learn parameterized calls item.
2. Select Format to learn parameterized calls .
3. Select Create configuration .
4. Select Derive from Name: Format to learn parameterized calls, Microsoft .
5. In the Name field, enter Format to learn parameterized calls (custom) .
6. Select Create configuration.

Configure a parameterized calculated field that returns a list of records


Start adding a new calculated field
1. Select Designer .
2. Select Expand/collapse to expand all format items.
3. Select Mapping .
4. Expand the Model item.
5. Select the Model.Data2 item.
6. Select Add .
7. Select Functions\Calculated field .
8. In the Name field, enter Levels .
9. Select Edit formula .
Define a parameter for adding a calculated field
1. Select Parameters .
2. Select New .
3. In the Name field, enter Taxation Level .
4. In the Type field, select String .
Only primitive data types can be used to specify the type of the parameter’s argument. Therefore, Record
list , Record , and Enum types cannot be used for this purpose.
The maximum number of parameters that can be specified for a single calculated field is 8.

5. Select OK .
By adding this parameter, you specify the condition that must be in place to call this calculated field. When you call
this calculated field, you need to specify the argument of the Taxation Level parameter as a value with String
format.
Make sure that you define parameters only for those calculated fields that reside in a container (either Record list ,
Record , or Container ).
The configured parameter is available in the list of data sources for this calculated field. You can add the parameter
to the configured expression by selecting Add data source .

Define an expression for adding a calculated field


1. In the Formula field, enter:
WHERE(@.Summar y2, @.Summar y2.grouped.Level =
2. Select the Taxation Level parameter in the list of data sources.
3. Select Add data source .
4. In the Formula field, finalize the expression as:
WHERE(@.Summar y2, @.Summar y2.grouped.Level = 'Taxation Level')
5. Select Save .

6. Close the Formula designer page.


Finish adding a new calculated field
Select OK .
On the Format designer page, the configured parameterized calculated field Levels requires a String argument.

Use the configured calculated field for binding format elements


1. Select Model.Data2.Levels to select the configured calculated field.
2. Select the Statement.Taxation.Regular format element.
3. Select Bind .
4. Select Yes to confirm the replacement of the currently used data source, Level1 , by the new data source,
Levels , in all nested format elements of the selected format element.
Applied binding has been built as a call of the parameterized calculated field. By default, the name of the
bound format element is used as an argument for parameterized calculated field under the following
conditions:
The calculated field is configured to use a single parameter.
The data type of this parameter is defined as String .
When the name of the bound format element is blank, the data source name of this element is used in
applied binding.
5. Select the Statement.Taxation.Reduced format element.
6. Select Bind .
7. Select Yes to confirm the replacement of the currently used data source, Level2 , by the new data source,
Levels , in all nested format elements under the selected format element.
8. Select the Statement.Taxation.None format element.
9. Select Bind .
10. Select Yes to confirm the replacement of the currently used data source, Level3 , by the new data source,
Levels , in all nested format elements under the selected format element.
When you specify the argument of the parameterized calculated field for the XML element representing taxation
level (for example, Model.Data2.Levels("Reduced") as a text value), you don’t need to do the same for nested
XML attributes—their bindings will automatically inherit the value of the argument defined on the parent level
(Model.Data2.Levels.aggregated.Base , not Model.Data2.Levels("Reduced").aggregated.Base ).
Recurrent calls of any parameterized calculated field are not supported.
You can select Edit formula , and change the applied-by-default argument of the parameterized calculated field in
the selected binding. If this argument is missing, it can cause errors at run time — users are informed about such a
situation when the current format is validated.

Configure a parameterized calculated field to return a record


When a parameterized calculated field returns a record, you need to support binding of individual fields of this
record to format elements. In such cases there will be no parent binding that contains the value of an argument to
call a parameterized calculated field — this value must be defined in the binding of a single record’s field.
Start adding a new calculated field
1. Select the Model.Data2 item.
2. Select Add .
3. Select Functions\Calculated field .
4. In the Name field, enter LevelRecord .
5. Select Edit formula .
Define a parameter for adding a calculated field
1. Select Parameters .
2. Select New .
3. In the Name field, enter Taxation Level .
4. In the Type field, select String .
5. Select OK .
Define an expression for adding a calculated field
1. In the Formula field, enter the following:
FIRSTORNULL(@.Levels(
2. Select the Taxation Level parameter.
3. Select Add data source .
4. In the Formula field, append 'Taxation Level')) to what you entered in Step 1 to finalize the expression to:
FIRSTORNULL(@.Levels('Taxation Level'))
5. Select Save .
6. Close the Formula designer page.
Finish adding a new calculated field
Select OK .
Use the configured calculated field to bind format elements
1. Expand Model.Data2.LevelRecord to select the configured calculated field.
2. Expand the Model.Data2.LevelRecord.aggregated container of the configured calculated field.
3. Select the Model.Data2.LevelRecord.aggregated.Base field.
4. Select the Statement.Taxation.None format element.
5. Select Unbind .
6. Select the Statement.Taxation.None.Base format element.
7. Select Bind .
8. Select Edit formula .
9. Change the expression to Model.Data2.LevelRecord("None").aggregated.Base .
Remove calculated fields that are not used
1. Select Model.Data2.Level1 .
2. Select Delete .
3. Select Model.Data2.Level2 .
4. Select Delete .
5. Select Model.Data2.Level3 .
6. Select Delete .
7. Select Save .

NOTE
You reused the same calculated field Model.Data2.Levels several times in format bindings. It is much easier to use and
maintain a single calculated field instead of doing this for multiple similar fields.

8. Close the Format designer page.

Complete adjusted version of a derived format


1. In the Versions FastTab, select Change status .
2. Select Complete .

Export completed version of a derived format


1. Select Format to learn parameterized calls (custom) format in the configurations tree.
2. In the Versions FastTab, select the completed version 1.1.1.
3. Select Exchange .
4. Select Expor t as XML file .
5. Store the downloaded configuration locally, in XML format.

Test ER formats
You can run the initial and improved ER formats to make sure that configured parameterized calculated fields work
properly.
Import ER configurations
You can import reviewed configurations from RCS by using the ER repository of the RCS type. If you already went
through the steps in the topic, Import Electronic reporting (ER) configurations from Regulatory Configuration
Services (RCS), use the configured ER repository to import configurations discussed earlier in this topic to your
environment. Otherwise, follow these steps:
1. Select the DEMF company and on the default dashboard, select Electronic repor ting .
2. Select Repor ting configurations .
3. Import the configurations from Microsoft Download Center in the following sequence: data model, model
mapping, format. Complete the following steps for each ER configuration:
a. Select Exchange.
b. Select Load from XML file .
c. Select Browse to select the required ER configuration in XML format.
d. Select OK .
4. Import the exported from RCS completed version 1.1.1 of the Format to learn parameterized calls
(custom) format:
a. Select Exchange.
b. Select Load from XML file .
c. Select Browse to select the locally stored Format to learn parameterized calls (custom) file in XML
format.
d. Select OK .
Run ER formats
1. In the configuration tree, expand the content of the Model to learn parameterized calls item.
2. Select Format to learn parameterized calls .
3. Select Run on the top-most ribbon.
4. Save the locally generated output.
5. Select the Format to learn parameterized calls (custom) item.
6. Select Run on the top-most ribbon.
7. Save the generated output locally.
8. Compare the contents of the generated outputs.

Additional resources
Formula designer in Electronic reporting (ER)
Manage the Electronic reporting (ER) configuration
lifecycle
11/5/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how to manage the lifecycle of Electronic reporting (ER) configurations for Microsoft
Dynamics 365 Finance.

Overview
Electronic reporting (ER) is an engine that supports statutory required and country-specific electronic documents.
In general, ER assumes an ability to perform the following tasks for a single electronic document. For more details,
see Electronic reporting (ER) overview.
Design a template for an electronic document:
Identify the required sources of data that can be presented in the document:
Underlying data, such as data tables, data entities, and classes.
Process-specific properties, such as execution date and time, and time zone.
User input parameters, specified by the end user at run time.
Define the required document elements and their topology to specify a final document format.
Configure the desired flow of data from selected data sources to defined document elements (via
data source bindings to document format components), and specify process control logic.
Make a template available so that it can be used in other instances:
Transform a document template that was created into an ER configuration, and export the configuration
from the current application instance as an XML package that can be stored either locally or in LCS.
Transform an ER configuration into an application document template.
Import an XML package that is stored either locally or in LCS into the current instance.
Customize the template of an electronic document:
Bring a template from LCS into the current instance as an ER configuration.
Design a custom version of an ER configuration, and keep a reference to the base version.
Integrate a template with a particular business process, so that it's available in the application:
Configure settings so that the application starts to use an ER configuration, by referring to that
configuration in a process-related parameter. For example, refer to the ER configuration in a specific
Accounts payable payment method to generate an electronic payment message for processing invoices.
Use a template in a specific business process:
Run an ER configuration in a specific business process. For example, to generate an electronic payment
message for processing invoices when a payment method that references the ER configuration is
selected.
Concepts
The following roles and related activities are associated with the ER configuration lifecycle.

RO L E A C T IVIT IES DESC RIP T IO N

Electronic reporting functional Create and manage ER components A business person who designs ER
consultant (models and formats). domain–specific data models, designs
the required templates for electronic
documents, and binds them
accordingly.

Electronic reporting developer Create and manage data model A specialist who selects the required
mappings. Finance data sources and binds them
to ER domain–specific data models.

Accounting supervisor Configure process-related settings that For example, an Accounting


reference ER artifacts. super visor role that allows the
settings of an ER configuration to be
used in a particular Accounts payable
payment method to generate an
electronic payment message for
processing invoices.

Accounts payable payments clerk Use ER artifacts in a specific business For example, an Accounts payable
process. payments clerk role that allows
electronic payment messages to be
generated for processing invoices,
based on the ER format that is
configured for a specific payment
method.

ER configuration development lifecycle


For the following ER-related reasons, we recommend that you design ER configurations in the development
environment, as a separate instance of Finance and Operations:
Users in either the Electronic repor ting developer role or the Electronic repor ting functional
consultant role can edit configurations and run them for testing purposes. This scenario can cause calls of
methods of classes and tables that might harm business data and the performance of the instance.
Calls of methods of classes and tables as ER data sources of ER configurations aren't restricted by entry points
and logged company content. Therefore, users in either the Electronic repor ting developer role or the
Electronic repor ting functional consultant role can access business-sensitive data.
ER configurations that are designed in the development environment can be uploaded to the test environment for
the configuration evaluation (proper process integration, correctness of results, and performance) and quality
assurance, such as correctness of role-driven access rights and segregation of duties. The features that enable ER
configuration interchange can be used for this purpose. Finally, proven ER configurations can be uploaded either
to LCS, where they can be shared with service subscribers, or to the production environment for internal use, such
as shown in the following illustration.
Additional resources
Electronic reporting (ER) overview
ER Upload a configuration into Lifecycle Services
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can
create a new Electronic reporting (ER) configuration and upload it into Microsoft Lifecycle Services (LCS).
In this example, you will create a configuration and upload it to LCS for sample company, Litware, Inc. These steps
can be performed in any company as ER configurations are shared among companies. To complete these steps, you
must first complete the steps in the "Create a configuration provider and mark it as active" procedure. Access to LCS
is also required for completion of these steps.
1. Go to Organization administration > Workspaces > Electronic reporting.
2. Select 'Litware, Inc.' and set it as active.
3. Click Configurations.

Create a new data model configuration


1. Click Create configuration to open the drop dialog.
You will create a configuration that contains a sample data model for electronic documents. This data
model configuration will be uploaded into LCS later.
2. In the Name field, type 'Sample model configuration'.
Sample model configuration
3. In the Description field, type 'Sample model configuration'.
Sample model configuration
4. Click Create configuration.
5. Click Model designer.
6. Click New.
7. In the Name field, type 'Entry point'.
Entry point
8. Click Add.
9. Click Save.
10. Close the page.
11. Click Change status.
12. Click Complete.
13. Click OK.

Register a new repository


1. Close the page.
2. Click Repositories.
This enables you to open the list of repositories for the Litware, Inc. configuration provider.
3. Click Add to open the drop dialog.
This allows you to add a new repository.
4. In the Configuration repository type field, select LCS.
5. Click Create repository.
6. In the Project field, enter or select a value.
Select the desired LCS project. You must have access to the project.
7. Click OK.
Complete a new repository entry.
8. In the list, mark the selected row.
Select the LCS repository record.
Note that a registered repository is marked by the current provider meaning that the only configurations
owned by that provider can be placed to this repository and, consequently, uploaded into the selected
LCS project.
9. Click Open.
Open the repository to view the list of ER configurations. It will be empty if this project has not yet been
used for ER configurations sharing.
10. Close the page.
11. Close the page.

Upload configuration into LCS


1. Click Configurations.
2. In the tree, select 'Sample model configuration'.
Select a created configuration that has been already completed.
3. In the list, find and select the desired record.
Select the version of the selected configuration with the status of 'Completed'.
4. Click Change status.
5. Click Share.
The configuration status will change from 'Completed' to 'Shared' when it is published in LCS.
6. Click OK.
7. In the list, find and select the desired record.
Select the configuration version with the status of 'Shared'.
Note that the status of the selected version has changed from 'Completed' to 'Shared'.
8. Close the page.
9. Click Repositories.
This enables you to open the list of repositories for the Litware, Inc. configuration provider.
10. Click Open.
Select the LCS repository and open it.
Note that the selected configuration is shown as an asset of the selected LCS project.
Open LCS using https://lcs.dynamics.com. Open a project that was used earlier for repository registration,
open the 'Asset library' of this project, and expand the content of the 'GER configuration' asset type – the
uploaded ER configuration will be available. Note that the uploaded LCS configuration can be imported to
another instance if providers have access to this LCS project.
ER Import a configuration from Lifecycle Services
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can
import a new version of an Electronic reporting (ER) configuration from Microsoft Lifecycle Services (LCS).
In this example, you will select the desired version of the ER configuration and import it for sample company,
Litware, Inc. These steps can be performed in any company as ER configurations are shared among companies. To
complete these steps, you must first complete the steps in the "Upload an ER configuration into Lifecycle Services"
procedure. Access to LCS is also required for completion of these steps.
1. Go to Organization administration > Workspaces > Electronic reporting.
2. Click Configurations.

Delete a shared version of data model configuration


1. In the tree, select 'Sample model configuration'.
The first version of a sample data model configuration has been created and published to LCS during the
"Upload an ER configuration into Lifecycle Services" procedure. In this procedure, you will delete this
version of the ER configuration. This version of a sample data model configuration will be imported later
from LCS.
2. In the list, find and select the desired record.
Select the version of this configuration that is in the 'Shared' status. This status indicates that the
configuration has been published to LCS.
3. Click Change status.
4. Click Discontinue.
Change the status of the selected version from 'Shared' to 'Discontinued' to make it available for
deletion.
5. Click OK.
6. In the list, find and select the desired record.
Select the version of this configuration that has a status of 'Discontinued'.
7. Click Delete.
8. Click Yes.
Note that the only draft version 2 of the selected data model configuration is available.
9. Close the page.

Import a shared version of data model configuration from LCS


1. In the list, mark the selected row.
Open the list of repositories for the 'Litware, Inc.' configuration provider.
2. Click Repositories.
3. Click Open.
Select the LCS repository and open it.
4. In the list, mark the selected row.
Select the first version of the 'Sample model configuration' in the versions list.
5. Click Import.
6. Click Yes.
Confirm the import of the selected version from LCS .
Note that the information message (above the form) confirms the successful completion of the import of
the selected version.
7. Close the page.
8. Close the page.
9. Click Configurations.
10. In the tree, select 'Sample model configuration'.
11. In the list, find and select the desired record.
Select the version of this configuration that has a status of 'Shared'.
Note that the shared version 1 of the selected data model configuration is available now as well.
Download Electronic reporting configurations from
Lifecycle Services
1/6/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to download Electronic reporting (ER) configurations from Microsoft Dynamics Lifecycle
Services (LCS).
This tutorial guides you through the process of downloading the newest version of Electronic reporting (ER)
configurations from Microsoft Dynamics Lifecycle Services (LCS).
1. Sign in to the application by using one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
2. Go to Organization administration > Workspaces > Electronic repor ting .
3. In the Configuration providers section, select the Microsoft tile.
4. On the Microsoft tile, click Repositories .

5. On the Configuration repositories page, in the grid, select the existing repository of the LCS type. If this
repository doesn't appear in the grid, follow these steps:
a. Click Add to add a new repository.
b. Select LCS as the repository type.
c. Click Create repositor y .
d. If prompted, follow the authorization instructions.
e. Enter a name and description for the repository.
f. Click OK to confirm the new repository entry.
g. In the grid, select the new repository of the LCS type.
6. Click Open to view the list of ER configurations for the selected repository.
7. In the configurations tree in the left pane, select the ER configuration that you require.
8. On the Versions FastTab, select the required version of the selected ER configuration.
9. Click Impor t to download the selected version from LCS to the current instance.

NOTE
The Impor t button is unavailable for ER configuration versions that are already present in the current instance.

NOTE
Depending on the ER settings, configurations are validated after they are imported. You might be notified about any
inconsistency issues that are discovered. You must resolve those issues before you can use the imported configuration
version. For more information, see the list of related articles for this topic.

Additional resources
Electronic reporting (ER) overview
Import Electronic reporting (ER) configurations
10/8/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to download Electronic reporting (ER) configurations from Microsoft Dynamics Lifecycle
Services (LCS) to a local business data application. It also explains how to upload the ER configurations from an ER
repository to the local business data (LBD) application.
1. Sign in to your local business data application by using one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
2. Go to Organization administration > Electronic repor ting .
3. In the Configuration providers section, select the card for the ER provider that is associated with your
company.

NOTE
To learn how to register a new ER solution provider, play the Create a configuration provider and mark it as
active task guide.

4. On the selected tile, click Repositories .


5. On the Configuration repositories page, in the grid, select the existing repository of the File system
type. If the repository doesn't appear in the grid, follow these steps:
a. Click Add to add a new repository.
b. Select FILE SYSTEM as the repository type.
c. Click Create repositor y .
d. Enter a name and description for the repository.
e. Enter the path of the working directory for this repository. This path should point to a folder of the local
file system where the ER configurations that belong to the repository will be stored.
f. Click OK to confirm and save the new repository.
g. In the grid, select the new repository of the File system type.
6. In your browser, open another tab, and sign in to LCS.
7. In the Shared asset library, select the GER Configuration asset type, and then click Download all .

NOTE
All the ER configurations will be put into a zip file for download.

8. Open the file, select all the ER configurations, and then copy them to the working directory for the
repository of the File system type.
9. On the ER repositories page, on the Dynamics 365 for Finance and Operations tab, click Open to
view the list of ER configurations for the selected repository.
10. In the Configurations tree in the left pane, select an ER configuration.
11. On the Versions FastTab, select the required version of the ER configuration.
12. Click Impor t to download the selected version from this repository to the current instance.

NOTE
The Impor t button is unavailable for existing ER configuration versions.

NOTE
Depending on the ER settings, configurations are validated after they are imported. You might be notified about
inconsistencies or issues that are discovered. You must resolve these inconsistencies or issues before you can use the
imported configuration version.

Frequently asked questions


Question: When I click Download all in the Shared asset library, I receive the following warning: “Zip generation
is in progress, please try again in a few minutes.” Why do I receive this warning?
Answer : You receive this warning because a new configuration is added to the Shared asset library, and the ER
configuration is being archived.
Import Electronic reporting (ER) configurations from
Regulatory Configuration Services (RCS)
11/5/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can use Regulatory Configuration Services (RCS) to design Electronic reporting (ER) configurations. The ER
tool provides access to the list of configurations that have been configured in each instance of RCS that has been
provisioned for your company. You can use this feature to import configurations that you configured in an RCS
instance into the current instance. After configurations are imported, they can be used to handle incoming
documents or generate outgoing electronic documents.
To learn more about this feature, complete the example in this topic. Alternatively, play the ER Impor t
configurations from RCS task guide, which is part of the 7.5.4.3 Acquire/Develop IT service/solution
components (10677) business process. This task guide can be downloaded from the Microsoft Download Center. It
walks you through the process of importing ER configurations from an RCS instance into the current instance.

Example: Import an ER configuration from RCS


This example shows how a user in the System Administrator or Electronic Reporting Developer role can import a
new version of an ER configuration from RCS. In this example, you select the desired version of the ER
configuration that has been configured in an RCS instance, and you import that version into the current instance
for a sample company that is named Litware, Inc. These steps can be completed in any company, because ER
configurations are shared among companies.
To complete the steps in this example, you must first complete the steps in Create configuration providers and
mark them as active. You must also have access to an RCS instance that contains at least one ER configuration that
has a status of either Completed or Shared .
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. On the Localization configurations page, in the Configuration providers section, make sure that the
configuration provider for the Litware, Inc. sample company is listed, and that it's marked as Active . If you don't
see this configuration provider, follow the steps in Create configuration providers and mark them as active.
3. If no RCS environment has been provisioned for your company, in the External Links section, select
Regulator y ser vices – Configuration . Then follow the instructions to provision an RCS environment.
4. In the Related links section, select Electronic repor ting parameters .
5. On the Electronic repor ting parameters page, select the RCS tab.
6. Use the URLs on this tab to access the RCS environment has been provisioned for your company.
7. Close the Electronic repor ting parameters page.
Register a new ER repository
1. On the Localization configurations page, select the Litware, Inc. configuration provider in the list.
2. Select Repositories .
3. Select Add to open the drop-down dialog box.
4. Select RCS as the configuration repository type, and then select Create repositor y .
5. In the RCS environment display name field, select the desired RCS instance. Note that you can have several
instances.
6. Select OK .
Import ER configurations from an RCS -based repository
1. On the Configuration repositories page, select the Show filters button on the left side of the window.
2. For the Name filter, select begins with as the filter operator, and then enter RCS as the filter value.
3. Select the repository, and open it.
4. On the Connect to Regulator y Configuration Ser vices page, select the Click here to connect to
Regulator y Configuration Ser vices link.
5. Select Open .
6. Select Close .
7. Select the desired version of the ER configuration, and then select Impor t to import that version.

Additional resource
Electronic reporting (ER) overview
(ER) Import configurations from RCS
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The following steps explain how a user in the System Administrator or Electronic Reporting Developer role can
import a new version of an Electronic reporting (ER) configuration from Microsoft Regulatory Configuration
Services (RCS). In this example, you will select the version of the ER configuration that has been configured in an
RCS instance and import it into the current instance for sample company, Litware, Inc. These steps can be
performed in any company because ER configurations are shared among companies. To complete these steps, you
must first complete the steps in the topic, Create configuration providers and mark them as active. To complete
these steps, you must also have access to an RCS instance containing at least one ER configuration in either
Completed or Shared status.
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Make sure that the configuration provider for the sample company, Litware, Inc., is available and marked as
Active . If you don't see this configuration provider, complete the steps in the topic, Create configuration
providers and mark them as active.
3. If you have no RCS environment provisioned to your company, click Regulator y ser vices – Configuration
external link and follow the instructions to provision an RCS environment.
4. Click Electronic repor ting parameters .
5. Click the RCS tab.
6. If RCS environment has been already provisioned to your company, use presented on the page URLs to access it.
7. Close the page.

Register a new ER repository.


1. In the list, mark the selected row.
2. Select Litware, Inc. provider.
3. Click Repositories.
4. Click Add to open the drop dialog.
5. In the Configuration repository type field, enter 'RCS'.
6. Click Create repository.
7. In the RCS environment display name field, enter or select a value.
8. Select the desired RCS instance. Note that you can have several of them.
9. Click OK.

Import ER configurations from RCS based repository


1. Click Show filters .
2. Enter a filter value of "RCS" on the Name field using the begins with filter operator.
3. When you open the selected repository, on the Connect to Regulator y Configuration Ser vices page, click
Click here to connect to Regulator y Configuration Ser vices link.
4. Click Open .
5. Click Close .
6. Select the desired version of ER configuration and click Impor t to bring it in the current instance.
Use JOIN data sources to get data from multiple
application tables in Electronic reporting (ER) model
mappings
10/29/2019 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

While configuring Electronic reporting (ER) model mappings or formats, you can add required data sources of the
Join type. At design time, a Join data source is configured as a set of several data sources each of which returns a
list of records. For every data source except the first one, you need to define necessary conditions to join records of
the current and previous data sources. At runtime, a configured data source of Join type returns a single joined list
of records containing fields from the records of nested data sources.
The following type of joins are currently supported:
Outer (left) join:
Join all records of the first (left-most) data source and then any matching in accordance to configured
conditions records of the second (right-most) data source.
Inner (right) join:
Join only records of the first (left-most) data source and only records of the second (right-most) data
source matching to each other in accordance to configured conditions.
In the configured Join data source, when all data sources are the Table records type, execution of the Join data
source can be performed at the database level using a single SQL statement. This reduces the number of database
calls, which improves model mapping performance. Otherwise, execution of Join data source is performed in
memory.

NOTE
Using the VALUEIN function in ER expressions that specify conditions for joining records in data sources of Join type is not
supported yet. Visit the Formula designer in Electronic reporting page for more details about this function.

To learn more about this feature, complete the example in this topic.

Example: Use JOIN data sources in ER model mappings


The following steps explain how the System administrator or Electronic reporting developer can configure an
Electronic reporting (ER) model mapping to get data from multiple application tables at once by using data sources
of the Join type to improve data access performance. These steps can be performed for any company of Dynamics
365 Finance or Regulatory Configuration Services (RCS).
Prerequisites
To complete the examples in this topic, you must have access to one of the following depending on what service is
used to compete these steps:
Access to Finance for one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
Access to RCS for one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
You also must first complete the steps in the Create a configuration provider and mark it as active procedure.
In advance, you must also download from Microsoft Download Center and save locally the following sample ER
configuration files:

C O N T EN T DESC RIP T IO N F IL E N A M E

Sample ER data model configuration file, which is used as Model to learn JOIN data sources.version.1.1.xml
the data source for the examples.

Sample ER model mapping configuration file, which Mapping to learn JOIN data sources.version.1.1.xml
implements the ER data model for the examples.

Sample ER format configuration file. This file describes the Format to learn JOIN data sources.version.1.1.xml
data to populate the ER format component for the examples.

Activate a configurations provider


1. Access either Finance or RCS in the first session of your web browser.
2. Go to Organization administration > Workspaces > Electronic repor ting .
3. On the Localization configurations page, in the Configuration providers section, make sure that the
configuration provider for the Litware, Inc. (http://www.litware.com) sample company is listed, and that it's
marked as Active . If you don't see this configuration provider, follow the steps in Create a configuration
provider and mark it as active procedure.

Import sample ER configuration files


1. Select Repor ting configurations .
2. Import the ER data model configuration file.
a. Select Exchange .
b. Select Load from XML file .
c. Select Browse to find the Model to learn JOIN data sources.version.1.1.xml file.
d. Select OK .
3. Import the ER model mapping configuration file.
a. Select Exchange .
b. Select Load from XML file .
c. Select Browse to find the Mapping to learn JOIN data sources.version.1.1.xml file.
d. Select OK .
4. Import the ER format configuration file.
a. Select Exchange .
b. Select Load from XML file .
c. Select Browse to find the Format to learn JOIN data sources.version.1.1.xml file.
d. Select OK .
5. In the configurations tree, expand the Model to learn JOIN data sources item as well as other model
items (when available).
6. Observe the list of ER configurations in the tree as well as version details on the Versions fast tab – they will
be used as the source of data for your sample report.

Turn on execution trace options


1. Select CONFIGURATIONS .
2. Select User parameters .
3. Set execution trace parameters as shown on the screenshot below.
With these parameters turned on, for every execution of the imported ER format file, the execution trace will
be generated. Using details of generated execution trace, you can analyze the execution of ER format and ER
model mapping components. Visit the Trace execution of ER format to troubleshoot performance issues
page for more details about ER execution trace feature.
Review ER model mapping (part 1)
Review settings of the ER model mapping component. The component is configured to access information about
versions of ER configurations, details of configurations and configuration providers without using data sources of
the Join type.
1. Select Mapping to learn JOIN data sources configuration.
2. Select Designer to open the list of mappings.
3. Select Designer to review the mapping details.
4. Select Show details .
5. In the configurations tree, expand the Set1 and Set1.Details data model items:
a. Binding Details: Record list = Versions indicates that the Set1.Details item is bound to the Versions
data source returning records of the ERSolutionVersionTable table. Each record of this table represents
a single version of an ER configuration. The content of this table is presented in the Versions fast tab on
the Configurations page.
b. Binding ConfigurationVersion: String = @.PublicVersionNumber means that the value of the
public version of each ER configuration’s version is taken from the PublicVersionNumber field of the
ERSolutionVersionTable table and placed to the ConfigurationVersion item.
c. Binding ConfigurationTitle: String = @.'>Relations'.Solution.Name indicates that the name of an
ER configuration is taken from the Name field of the ERSolutionTable table assessing by using the
many-to-one relation ('>Relations' ) between the ERSolutionVersionTable and ERSolutionTable
tables. Names of ER configurations of the current application instance are presented in the configurations
tree on the Configurations page.
d. Binding @.'>Relations'.Solution.'>Relations'.SolutionVendor.Name means that the name of the
configuration provider that owns the current configuration is taken from the Name field of the
ERVendorTable table assessing by using the many-to-one relation between ERSolutionTable and
ERVendorTable tables. Names of ER configuration providers are presented in the configurations tree on
the Configurations page on the page header for each configuration. The entire list of ER configuration
providers can be found on the Organization administration > Electronic repor ting >
Configuration provider table page.
6. In the configurations tree, expand the Set1.Summar y data model item:
a. Binding VersionsNumber : Integer = VersionsSummar y.aggregated.VersionsNumber indicates
that the Set1.Summar y.VersionsNumber item is bound to the VersionsNumber aggregation field of
the VersionsSummar y data source of the GroupBy type that was configured to return the number of
records of the ERSolutionVersionTable table via the Versions data source.

7. Close the page.


Review ER model mapping (part 2)
Review settings of the ER model mapping component. The component is configured to access information about
versions of ER configurations, details of configurations and configuration providers with using a data source of the
Join type.
1. In the configurations tree, expand the Set2 and Set2.Details data model items. Note that the binding
Details: Record list = Details indicates that the Set2.Details item is bound to the Details data source
configured as the data source of the Join type.
The Join data source can be added by selecting the Functions\Join data source:

2. Select Detail s data source.


3. Select Edit in the Data sources pane.
4. Select Edit join .
5. Select Show details .

This page is used to design the required data source of the Join type . At runtime, this data source will create
a single joined list of records from the data sources in the Joined list grid. Join of records will start from the
ConfigurationProviders data source that is in the grid as a first one (the Type column is blank for it).
Records of every other data source will be joined consequently to records of the parent data source based
on its order in this grid. Every joining data source must be configured as a data source nested under a target
data source (1Versions data source is nested under 1Configurations one; 1Configurations data source
is nested under ConfigurationProviders one). Each configured data source must contain the conditions
for the join. In the data source for this particular Join , the following joins are defined:
Each record of the ConfigurationProviders data source (referred to the ERVendorTable table) is
joined with only records of the 1Configurations one (referred to in the ERSolutionTable table) having
the same value in the SolutionVendor and RecId fields. The Inner join type is used for this join as well
as the following conditions for matching records:
FILTER (Configurations, Configurations.SolutionVendor = ConfigurationProviders.RecId)
Each record of the 1Configurations data source (referred to the ERSolutionTable table) is joined with
the only records of the 1Versions one (referred to the ERSolutionVersionTable table) having the same
value in the Solution and RecId fields. Inner join type is used for this join as well as the following
conditions for matching records:
FILTER (ConfigurationVersions, ConfigurationVersions.Solution =
ConfigurationProviders.'1Configurations'.RecId)
Execute option is configured as Quer y meaning that this join data source will be executed at runtime on
database level as a direct SQL call.
Note that for joining records of data sources representing application tables, you can specify join conditions
by using pairs of fields other than ones that describe existing in AOT relations between these tables. This
type of join can be configured to execute at the database level as well.
6. Close the page.
7. Select Cancel .
8. In the configurations tree, expand the Set2.Summar y data model item:
Binding VersionsNumber : Integer = DetailsSummar y.aggregated.VersionsNumber indicates
that the Set2.Summar y.VersionsNumber item is bound to the VersionsNumber aggregation field of
the DetailsSummar y data source of the GroupBy type that was configured to return the number of
joined records of the Details data source of the Join type.
Note that the Execution location option is configured as Quer y meaning that this GroupBy data source
will be executed at runtime as a direct SQL call at the database level. This is possible because the base
data source Details of the Join type is configured as executed at the database level.

9. Close the page.


10. Select Cancel .
Execute ER format
1. Access Finance or RCS in the second session of your web browser using same credentials and company as in
the first session.
2. Go to Organization administration > Electronic repor ting > Configurations .
3. Expand Model to learn JOIN data sources configuration.
4. Select Format to learn JOIN data sources configuration.
5. Select Designer .
6. Select Show details .
7. Select Mapping .
8. Select Expand/Collapse .
Note that this format is designed to populate a generated text file with a new line for every version of an ER
configuration (Version sequence). Each generated line will contain the name of a configuration provider
owning the current configuration, the configuration name and the configuration version separated by
semicolon mark. The final line of generated file will contain the number of discovered versions of ER
configurations (Summar y sequence).

The Data and Summar y data sources are used to populate configuration version details to the generated
file:
Information from the Set1 data model is used when you choose No for the Selector data source at
runtime on the user dialog page when running ER format.
Information from the Set2 data model is used when you choose Yes for the Selector data source at
runtime on the user dialog page.

9. Select Run .
10. On the dialog page, select No in the Use JOIN data source field.
11. Select OK .
12. Review generated file.
Analyze ER format execution trace
1. In the first session of Finance or RCS, select Designer .
2. Select Performance trac e.
3. In the Performance trace grid, select the top-most record of the latest execution trace of an ER format that
used the current model mapping component.
4. Select OK .
Note that execution statistics informs you about duplicated calls to application tables:
ERSolutionTable has been called as many times as you have configuration version records in the
ERSolutionVersionTable table, while the number of such calls could be reduced in times for
performance improvement.
ERVendorTable has been called twice for every configuration version record that was discovered in the
ERSolutionVersionTable table, while the number of such calls could be reduced as well.

5. Close the page.


Execute ER format
1. Switch to your web browser tab with the second session of Finance or RCS.
2. Select Run .
3. On the dialog page, select Yes in the Use JOIN data source field.
4. Select OK .
5. Review generated file.

Analyze ER format execution trace


1. In the first session of Finance or RCS, select Designer .
2. Select Performance trace .
3. In the Performance trace grid, select top-most record representing the latest execution trace of an ER
format that used the current model mapping component.
4. Select OK .
Note that execution statistics informs you about the following:
Application database has been called once to get records from ERVendorTable , ERSolutionTable , and
ERSolutionVersionTable tables to access required fields.

Application database has been called once to calculate the number of configuration versions by using
joins that were configured in the Details data source.

Additional resources
Formula designer in Electronic reporting
Trace execution of ER format to troubleshoot performance issues
Configure country context dependent ER model
mappings
11/11/2019 • 19 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can configure Electronic reporting (ER) model mappings so that they implement a generic ER data model but
are specific to Dynamics 365 Finance. This topic explains how to design multiple ER model mappings for an ER data
model to control how they are used by corresponding ER formats that are run from companies that have different
country/region contexts.

Prerequisites
To complete the examples in this topic, you must have the following access:
Access to Finance for one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
Access to the instance of Regulatory Configuration Services (RCS) that has been provisioned for the same
tenant as Finance for one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
Some steps in this topic require execution of an ER format. In some cases, execution of an ER format is affected by
the country/region context of the company that you're currently signed in to. You can run an ER format in the
current RCS instance if the company that has the required country/region context is available in RCS. Otherwise,
you must upload a completed version of the ER model mapping and ER format configurations that use the ER data
model to your Finance instance, and then run the ER format in that Finance instance. For information about how to
import configurations that reside in RCS into a Finance instance, see Import configurations from RCS.

Single model mapping case


Follow the steps in Appendix 1 of this topic to design the required ER components. You now have the Mapping
(General) model mapping configuration that contains the model mapping for the Entr y point 1 definition.
Run the configured format
1. On the Configurations page , on the Versions FastTab, select Run .
2. Select OK .
Notice that the web browser offers to download the text file that was generated by executed ER format. Because
this format was configured to use the Entr y point 1 definition, and only a single model mapping is currently
available for the base model that contains a mapping for this definition, the executed ER format used the Mapping
(General) model mapping of the Mapping (General) configuration as a data source. Therefore, the downloaded
file contains the Generic functionality 1 text.

Multiple shared model mappings case


Follow the steps in Appendix 2 of this topic to design the required ER components. You now have Mapping
(General) and Mapping (General) custom model mapping configurations, each of which contains the model
mapping for the Entr y point 1 definition.

Run the configured format


1. On the Configurations page, in the configurations tree, select Format to learn mappings .
2. On the Versions FastTab, select Run .
3. Select OK .
Notice that execution of the selected ER format is unsuccessful. An error message informs you that more than one
model mapping exists for the Model to learn mappings model and the Entr y point 1 definition in the
Mapping (General) and Mapping (General) custom model mapping configurations. The message also
recommends that you select one of those configurations as the default configuration.
Define a default mapping configuration
Follow these steps to define the Mapping (General) custom model mapping configuration as the default
configuration, so that its mappings can be used as data sources for the Format to learn mappings ER format.
1. On the Configurations page, in the configurations tree, select Mapping (General) custom .
2. As required, select Edit to make the current page ready for editing.
3. Set the Default for model mapping option to Yes .
4. Select Save .

Run the configured format


1. On the Configurations page, in the configurations tree, select Format to learn mappings .
2. On the Versions FastTab, select Run .
3. Select OK .
Notice that execution of the selected ER format succeeds. The web browser offers to download the text file that was
generated by executed ER format. Because this format was configured to use the Entr y point 1 definition, and the
Mapping (General) custom model mapping configuration was selected as the default configuration, the
executed ER format used the Mapping (General) copy model mapping of the Mapping (General) custom
configuration as a data source. Therefore, the downloaded file contains the Generic functionality 1 custom text.

NOTE
If you change the company that you're currently signed in to and run this ER format again, you get the same content in the
generated file, because the default ER model mapping configuration doesn't contain any company-dependent restrictions.

Multiple mixed model mappings case


Follow the steps in Appendix 3 of this topic to design the required ER components. You now have Mapping
(General) , Mapping (General) custom , and Mapping (FR) model mapping configurations that contain the
model mapping for the Entr y point 1 definition.
Notice that version 1 of the Mapping (FR) model mapping configuration is configured so that it applies only to ER
formats of the Model to learn mappings model that are run in Finance companies that have French
country/region context.

Run the configured format


1. Change the company to FRSI .
2. On the Configurations page, in the configurations tree, select Format to learn mappings .
3. On the Versions FastTab, select Run .
4. Select OK .
Notice that execution of the selected ER format succeeds. The web browser offers to download the text file that was
generated by the executed ER format. Because this format was configured to use the Entr y point 1 definition, and
the Mapping (General) custom model mapping configuration was selected as the default configuration, the
executed ER format used the Mapping (General) copy model mapping of the Mapping (General) custom
configuration as a data source. Therefore, the downloaded file contains the Generic functionality 1 custom text.
Define the France -specific mapping configuration as the default configuration
Follow these steps to define the custom Mapping (FR) model mapping configuration as the default configuration.
Note that, because this mapping is specific to France, it will be considered the default mapping between all model
mapping configurations that have the FR country code specified in the ISO countr y/region codes field.
1. On the Configurations page, in the configurations tree, select Mapping (FR) .
2. As required, select Edit to make the current page ready for editing.
3. Set the Default for model mapping option to Yes .
4. Select Save .
Run the configured format
1. On the Configurations page, in the configurations tree, select Format to learn mappings .
2. On the Versions FastTab, select Run .
3. Select OK .
Notice that execution of the selected ER format succeeds. The web browser offers to download the text file that was
generated by the executed ER format. Because this format was configured to use the Entr y point 1 definition, and
the Mapping (FR) model mapping configuration was selected as the default configuration, the executed ER format
used the Mapping (FR) model mapping of the Mapping (FR) configuration as a data source. Therefore, the
downloaded file contains the FR functionality 1 text.

NOTE
If you change the company that you're currently signed in to and run this ER format again, the output will depend on the
country/region context of the selected company.

Other model mapping cases


As you've seen, the selection of a model mapping for the execution of an ER format works in the following way:
The model mapping definition that an ER format uses is specified (Entr y point 1 in the examples in this topic).
All mapping configurations that contain a mapping that has the specified definition, and that satisfy any
country/region context restrictions that are configured, can potentially be used to run the ER format (Mapping
(General) , Mapping (General) custom , and Mapping (FR) in the examples in this topic).
Any default model mapping that has country/region context restrictions has the highest priority for selection
(Mapping (FR) in the examples in this topic).
Any default model mapping that doesn't have country/region context restrictions has the next higher priority for
selection (Mapping (General) custom in the examples in this topic).
Any model mapping that has country/region context restrictions has higher priority for selection than a model
mapping that doesn't have country/region context restrictions.
The following table provides information about the results of model mapping selection for all possible cases for
model mapping settings:
Column 1 indicates whether the first model mapping that doesn't have country/region context restrictions (for
example, the shared Mapping (General) mapping) is presented and, if it is, whether the Default for model
mapping option is set to Yes for it.
Column 2 indicates whether the second model mapping that doesn't have country/region context restrictions
(for example, the shared Mapping (General) custom mapping) is presented and, if it is, whether the Default
for model mapping option is set to Yes for it.
Column 3 indicates whether the first model mapping that has country/region A context restrictions (for
example, the France-specific Mapping (FR) mapping) is presented and, if it is, whether the Default for model
mapping option is set to Yes for it.
Column 4 indicates whether the second model mapping that has country/region A context restrictions is
presented and, if it is, whether the Default for model mapping option is set to Yes for it.
Column 5 presents the result of a model mapping selection for execution of an ER format under the control of a
company that has country/region A context.
Column 6 presents the result of a model mapping selection for execution of an ER format under the control of a
company that has country/region B context.
In the table, a plus sign (+) indicates the presence of a model mapping configuration in the current instance of the
Microsoft Azure service that is used to run an ER format (either Finance or RCS).

RUN UN DER
M O DEL M O DEL M O DEL M O DEL RUN UN DER THE
M A P P IN G 1 M A P P IN G 2 M A P P IN G 1 M A P P IN G 2 C O N T RO L O F C O N T RO L O F
W IT H O UT W IT H O UT W IT H W IT H A C O M PA N Y A C O M PA N Y
C O UN T RY / RE C O UN T RY / RE C O UN T RY / RE C O UN T RY / RE T H AT H A S T H AT H A S
GIO N GIO N GIO N A GIO N A C O UN T RY / RE C O UN T RY / RE
C O N T EXT C O N T EXT C O N T EXT C O N T EXT GIO N A GIO N B
C A SE ( M M 1) ( M M 2) ( M M 1A ) ( M M 2A ) C O N T EXT C O N T EXT

1 2 3 4 5 6

1 Error (missing Error (missing


mapping) mapping)

2 + MM1 MM1

3 + + Error (multiple Error (multiple


mappings) mappings)

4 + + MM1A MM1

5 + + + Error (multiple MM1


mappings)

6 + default + + MM2 MM2

7 + default MM1A MM1

8 + default + MM1A MM1

9 + default default Error (multiple MM1


mappings)

10 default MM1 MM1

11 default + MM1 MM1

12 default + MM1 MM1

13 default default Error (multiple Error (multiple


mappings) mappings)
RUN UN DER
M O DEL M O DEL M O DEL M O DEL RUN UN DER THE
M A P P IN G 1 M A P P IN G 2 M A P P IN G 1 M A P P IN G 2 C O N T RO L O F C O N T RO L O F
W IT H O UT W IT H O UT W IT H W IT H A C O M PA N Y A C O M PA N Y
C O UN T RY / RE C O UN T RY / RE C O UN T RY / RE C O UN T RY / RE T H AT H A S T H AT H A S
GIO N GIO N GIO N A GIO N A C O UN T RY / RE C O UN T RY / RE
C O N T EXT C O N T EXT C O N T EXT C O N T EXT GIO N A GIO N B
C A SE ( M M 1) ( M M 2) ( M M 1A ) ( M M 2A ) C O N T EXT C O N T EXT

14 default default MM1A MM1

15 default default default MM1A MM2A

16 + + MM1A MM2A

17 default default MM1A MM2A

Learn what mapping was used in the execution of an ER format


Configure ER user parameters
1. On the Configurations page, on the Action Pane, on the CONFIGURATIONS tab, select User parameters .
2. Set the Run in debug mode option to Yes .
3. Select Ok .
Run the configured format
1. On the Configurations page, in the configurations tree, select Format to learn mappings .
2. On the Versions FastTab, select Run .
3. Select Ok .
Review the ER debug log
1. In the navigation pane, go to Modules > Organization administration > Electronic repor ting >
Configuration debug log .
2. Select the Reload this page button.

Notice that a new record has been added to the ER debug log for the executed ER format. Because the Level field of
this record is set to Info , the record is informational. Because the Format component field is set to Mapping
configuration , the record informs you about a model mapping that was used during execution of the Format to
learn mappings ER format (selected in the Configuration name field). The content of the Generated text field
informs you that the Mapping (FR) mapping component that resides in the Mapping (FR) configuration has
been used to run this report.

Appendix 1
Configure a sample data model
Sign in to your RCS instance.
In this example, you will create a configuration for sample company, Litware, Inc. To complete these steps, you must
first complete, in RCS, the steps in the Create a configuration provider and mark it as active procedure.
Create an ER data model configuration
1. On the default dashboard, select Electronic repor ting .
2. Select the Repor ting configurations tile.
3. On the Configurations page, select Create configuration .
4. In the drop-down dialog box, in the Name field, enter Model to learn mappings .
5. Select Create configuration .
6. Select the Configuration components FastTab.
Notice that draft version 1 of this ER configuration is ready for editing. This version contains the data model
component.
Design a sample data model
1. On the Configurations page , select Designer .
2. Select New .
3. In the drop-down dialog box, in the Name field, enter Entr y point 1 .
4. Select Add .
5. Select New .
6. In the drop-down dialog box, in the Name field, enter Functionality description .
7. Select Add .
8. Select New .
9. In the drop-down dialog box, in the New node field group, select Model root .
10. In the Name field, enter Entr y point 2 .
11. Select Entr y point 2 .
12. Select Add .
13. Select New .
14. In the drop-down dialog box, in the Name field, enter Functionality description .
15. Select Add .
16. Select Save .
17. Close the page.
Complete the modified version of the model configuration
1. On the Configurations page, on the Versions FastTab, select Change status .

Change the status of designed model configuration from Draft to Completed , so that it can be used to
design the required model mappings and formats.

2. Select Complete .
3. Select OK .
Notice that the configuration that you created is saved as completed version 1.
Configure a sample model mapping
Create an ER model mapping configuration
1. On the Configurations page, select Create configuration .
2. In the drop-down dialog box, in the New field group, select Model mapping based on data model Model
to learn mappings .
3. In the Name field, enter Mapping (General) .
4. In the Data model definition field, select Entr y point 1 .
5. Select Create configuration .
Notice that draft version 1 of this ER configuration is ready for editing. This version contains the model mapping
component.
Design a sample model mapping
1. On the Configurations page, select Designer .
Notice that the model mapping of the To model direction type has been automatically added to this
component for the Entr y point 1 definition.
2. Select Designer to start editing the added model mapping.
3. In the Data model section, select Edit .
4. In the Formula field, enter "Generic functionality 1" .
5. Select Save .
6. Close the Formula designer page.

7. Select Save .
8. Close the Model mapping designer page.
9. Select New .
10. In the Definition field, select Entr y point 2 .
11. In the Name field, enter Mapping (General) 2 .
12. Select Designer .
13. In the Data model section, select Edit .
14. In the Formula field, enter "Generic functionality 2" .
15. Select Save .
16. Close the Formula designer page.

17. Select Save .


18. Close the Model mapping designer page.

19. Close the Model mappings page.


Complete the modified version of the model mapping configuration
1. On the Configurations page , on the Versions FastTab, select Change status .

Change the status of designed model mapping configuration from Draft to Completed , so that it can
be used by ER formats.

2. Select Complete .
3. Select OK .
Notice that the configuration that is created is saved as completed version 1.
Configure a sample format
Create an ER format configuration
1. On the Configurations page, in the configurations tree, select Model to learn mappings .
2. Select Create configuration .
3. In the drop-down dialog box, in the New field group, select Format based on data model Model to learn
mappings .
4. In the Name field, enter Format to learn mappings .
5. In the Data model definition field, select Entr y point 1 .
6. Select Create configuration .
Notice that draft version 1 of this ER configuration is ready for editing. This version contains the format component.
Design a sample format
1. On the Configurations page, select Designer .
2. Select Add root .
3. In the Text group, select the String item.
4. Select OK .
Bind format elements to a data source
1. On the Format designer page, on the Mapping tab, expand the model data source.
2. Select the Functionality description field.
3. Select Bind .

4. Select Save .
5. Close the page.

Appendix 2
Configure a sample model mapping for general customization
You might want to customize a model mapping that a configuration provider (partner) provided to you, and then
use the customized version as a data source for your ER formats. In this case, you must create a custom ER model
mapping configuration to make the required changes in existing model mappings. The procedures in this appendix
use the Mapping (General) model mapping as an example.
Create an ER model mapping configuration
1. On the Configurations page, in the configurations tree, select Mapping (General) .
2. Select Create configuration .
3. In the drop-down dialog box, in the New field group, select Derive from Name: Mapping (General),
Litware, Inc..
4. In the Name field, enter Mapping (General) custom .
5. Select Create configuration .
Notice that draft version 1 of this ER configuration is ready for editing.
Design a sample model mapping
1. On the Configurations page, select Designer .

Notice that the model mappings of the base configuration have been automatically copied to this
configuration.

2. Select the Mapping (General) Copy mapping.


3. Select Designer .
4. In the Data model section, select Edit .
5. In the Formula field, enter "Generic functionality 1 custom" .
6. Select Save .
7. Close the page.

8. Select Save .
9. Close the page.
10. Select the Mapping (General) 2 Copy mapping.
11. Select Designer .
12. In the Data model section, select Edit .
13. In the Formula field, enter "Generic functionality 2 custom" .
14. Select Save .
15. Close the page.
16. Select Save .
17. Close the page.

18. Close the page.


Complete the modified version of the model mapping configuration
1. On the Configurations page, on the Versions FastTab, select Change status .

Change the status of designed model mapping configuration from Draft to Completed , so that it can
be used by ER formats.

2. Select Complete .
3. Select OK .
Notice that the configuration that is created is saved as completed version 1.

Appendix 3
Configure a sample model mapping for country/region-specific customization
For some ER formats, there might be country/region-specific requirements for data preparation. In this case, you
can manage a separate ER model mapping configuration and isolate the implementation of these country/region-
specific requirements from the general implementation. The procedures in this appendix use the Format to learn
mappings ER format and French-specific requirements as an example.
Create an ER model mapping configuration
First, create a new ER model mapping configuration to implement the country/region-specific requirements. Use
your custom ER model mapping configuration as a base.
1. On the Configurations page, in the configurations tree, select Mapping (General) custom .
2. Select Create configuration .
3. In the drop-down dialog box, in the New field group, select Derive from Name: Mapping (General)
custom, Litware, Inc .
4. In the Name field, enter Mapping (FR) .
5. Select Create configuration .
Notice that draft version 1 of this ER configuration is ready for editing.
Design a sample model mapping
1. On the Configurations page, select Designer .

Notice that model mappings of the base configuration have been automatically copied to this
configuration.

2. Select the Mapping (General) Copy Copy mapping.


3. Rename it Mapping (FR) .
4. Select Designer .
5. In the Data model section, select Edit .
6. In the Formula field, enter "FR functionality 1" .
7. Select Save .
8. Close the page.

9. Select Save .
10. Close the page.
11. Select the Mapping (General) 2 Copy Copy mapping.
12. Rename it Mapping (FR) 2 .
13. Select Designer .
14. In the Data model section, select Edit .
15. In the Formula field, enter "FR functionality 2" .
16. Select Save .
17. Close the page.

18. Select Save .


19. Close the page.

20. Close the page.


Specify country/region context restrictions for use
1. On the Configurations page, on the ISO Countr y/region codes FastTab, select New .
2. In the ISO field, select FR .
3. Select Save .
Note that you must sign in to a specific company in Finance to run an ER format. Therefore, this company can be
considered a party that controls both ER format execution and selection of the correct ER model mapping of the
base ER data model. By adding the FR country code, you specify that this model mapping is available for selection
by an ER format of the base data model only when that format is run under the control of a company that has
French country/region context.
You can add multiple country/region codes for a single version of an ER model mapping configuration. In this way,
model mappings that reside in that model mapping configuration can be used for an ER format that is run under
the control of companies that have a different country/region context.
Note that the list of country/region codes is specified for each version of an ER model mapping configuration and
can vary from version to version.
Complete the modified version of the model mapping configuration
1. On the Configurations page, on the Versions FastTab, select Change status .

Change the status of designed model mapping configuration from Draft to Completed , so that it can
be used by ER formats.

2. Select Complete .
3. Select OK .
Notice that the configuration that is created is saved as completed version 1.

Additional resources
Electronic reporting (ER) overview
Manage ER model mapping in separate ER configurations
Apply country/region context

Frequently asked questions


I configured two shared ER model mapping configurations in RCS and marked one of them as the default model mapping
configuration. I successfully ran an ER format that was created for the same base ER data model configuration, to test model
mappings. I then imported the whole ER solution (ER data model, two ER model mapping configurations, and ER format configuration )
into Finance. Why do I receive an error message when I try to run the same ER format in Finance?
The default model mapping setting is environment-specific. It's configured in RCS but isn't exported to Finance. To
successfully run this ER format, you must mark one of ER model mapping configurations as the default model
mapping configuration in Finance too.
I configured one model mapping as a shared model mapping and completed the draft version of it. I then added a new model
mapping configuration for same data model and configured it as French-specific. Why is the shared model mapping selected when I
run an ER format, even though this ER format uses the correct root definition and execution is done under the control of the company
that has French country/region context?
Make sure that the shared model mapping configuration isn't marked as the default model mapping configuration.
Otherwise, it will have higher priority during mapping selection. Also make sure that the French-specific model
mapping configuration is considered when a mapping is selected during ER format execution. An ER model
mapping configuration is available for selection only if at least one of the following conditions is met:
At least one version of the ER model mapping configuration has either Completed or Shared status. In this
case, the version that has the highest version number will be used for ER format execution.
The Run draft option for the ER model mapping configuration is turned on. In this case, the version that has
Draft status will be used for ER format execution.

The Run draft option becomes available on the Configurations page for each ER model mapping
configuration when the Run setting ER user parameter is turned on.
Configure ER formats to use parameters that are
specified per legal entity
10/31/2019 • 13 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Overview
In many of the Electronic reporting (ER) formats that you will design, you must filter data by using a set of values
that are specific to each legal entity of your instance (for example, a set of tax codes to filter tax transactions).
Currently, when filtering of this type is configured in an ER format, values that are dependent on the legal entity
(for example, tax codes) are used in expressions of the ER format to specify data filtering rules. Therefore, the ER
format is made legal entity–specific, and to generate the required reports, you must create derived copies of the
original ER format for each legal entity where you have to run the ER format. Each derived ER format must be
edited to bring legal entity–specific values into it, rebased whenever the original (base) version has been updated,
exported from a test environment and imported into a production environment when it must be deployed for
production use, and so on. Therefore, maintenance of this type of configured ER solution is quite complex and
time-consuming for several reasons:
The more legal entities there are, the more ER format configurations must be maintained.
Maintenance of ER configurations requires that business users have ER knowledge.
The ER application-specific parameters feature lets power users configure data filtering in an ER format so that it's
based on a set of abstract rules. This set of rules can be configured to use the data sources that are available in an
ER format. Business users can then specify real rules beyond the ER framework by using the user interface (UI) that
is automatically generated based on the settings of the corresponding ER format and the current legal entity data
that will be accessed by the ER format's data sources. The set of rules that is specified for an ER format can be
exported from the current legal entity of the Dynamics 365 Finance (Finance) instance. It can then be imported into
another legal entity of either the same Finance instance or a different instance as a set of rules for the same ER
format.

Prerequisites
To complete the examples in this topic, you must have access to the instance of Regulatory Configuration Services
(RCS) that has been provisioned for the same tenant as Finance for one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
We recommend that you complete the steps in the Support parameterized calls of ER data sources of CALCULATED
FIELD type topic. If you've already completed those steps, you can skip the steps in the Impor t ER configurations
into RCS section that follows.

Import ER configurations into RCS


From Microsoft Download Center, download the Suppor t parameterized calls of ER data sources of
CALCUL ATED FIELD type zip file. This zip file contains the following ER configurations that must be extracted
and stored locally.

C O N T EN T DESC RIP T IO N F IL E N A M E

Sample ER data model configuration file Model to learn parameterized calls.version.1.xml

Sample ER metadata configuration file Metadata to learn parameterized calls.version.1.xml

Sample ER model mapping configuration file Mapping to learn parameterized calls.version.1.1.xml

Sample ER format configuration Format to learn parameterized calls.version.1.1.xml

Next, sign in to your RCS instance.


In this example, you will create a configuration for the Litware, Inc sample company. Before you can complete this
procedure, you must complete the steps in the Create a configuration provider and mark it as active topic in RCS.
1. On the default dashboard, select Electronic repor ting .
2. Select Repor ting configurations .
3. Import the ER configurations that you downloaded earlier into RCS, in the following order: data model,
metadata, model mapping, and format. For each ER configuration, follow these steps:
a. Select Exchange .
b. Select Load from XML file .
c. Select Browse to select the file for the required ER configuration in XML format.
d. Select OK .

Review the ER solution that is provided


1. In the configuration tree, expand the contents of the Model to learn parameterized calls item.
2. Select the Format to learn parameterized calls item.
3. Select Designer .
4. Select Expand/Collapse .
The Format to learn parameterized calls ER format is designed to generate a tax statement in XML
format that presents several levels of taxation (regular, reduced, and none). Each level has a different
number of details.
5. On the Mapping tab, expand the Model , Data , and Summar y items.
The Model.Data.Summar y data source returns the list of tax transactions. These transactions are
summarized by tax code. For this data source, the Model.Data.Summar y.Level calculated field has been
configured to return the code for the taxation level of each summarized record. For any tax code that can be
retrieved from the Model.Data.Summar y data source at runtime, the calculated field returns the taxation
level code (Regular , Reduced , None , or Other ) as a text value. The Model.Data.Summar y.Level
calculated field is used to filter records of the Model.Data.Summar y data source and enter the filtered
data in each XML element that represents a taxation level by using the Model.Data2.Level1 ,
Model.Data2.Level2 , and Model.Data2.Level3 fields.

The Model.Data.Summar y.Level calculated field has been configured so that it contains an ER expression.
Note that tax codes (VAT19 , InVAT19 , VAT7 , InVAT7 , THIRD , and InVAT0 ) are hardcoded into this
configuration. Therefore, this ER format is dependent on the legal entity where these tax codes were
configured.
To support a different set of tax codes for each legal entity, you must follow these steps:
Create a derived version of the ER format for each legal entity.
Update the tax codes in the Model.Data.Summar y.Level calculated field, based on the legal entity
setting.
6. Close the Format designer page.

Create a derived format


Next, you will use the ER application-specific parameters feature to support a different set of tax codes for each
legal entity in a single ER format.
1. In the configuration tree, expand the contents of the Model to learn parameterized calls item.
2. Select the Format to learn parameterized calls item.
3. Select Create configuration .
4. Select the Derive from Name: Format to learn parameterized calls, Microsoft option.
5. In the Name field, enter Format to learn how to lookup LE data .
6. Select Create configuration .

Configure a derived format


Add a format enumeration
Next, you will add a new ER format enumeration. The values of this format enumeration will be presented to
business users, who will specify legal entity–dependent sets of tax codes for the various taxation levels that are
used in the ER format.
1. Select Designer .
2. Select Format enumerations .
3. Select Add .
4. In the Name field, enter List of taxation levels .
5. Select Save .
6. On the Format enumeration values tab, select Add .
7. In the Name field, enter Regular taxation .
8. Select Add again.
9. In the Name field, enter Reduced taxation .
10. Select Add again.
11. In the Name field, enter No taxation .
12. Select Add again.
13. In the Name field, enter Other .

Because the business users might use different languages to specify legal entity–dependent sets of tax
codes, we recommend that you translate the values of this enumeration into the languages that are
configured as the preferred languages for those users in Finance.
14. Select the No taxation record.
15. Click in the Label field.
16. Select Translate .
17. In the Text translation pane, in the Label Id field, enter LBL_LEVELENUM_NO .
18. In the Text in default language field, enter No taxation .
19. In the Language field, select DE .
20. In the Translated text field, enter keine Besteuerung .
21. Select Translate .
22. Select Save .
23. Close the Format enumerations page.
Add a new lookup data source
Next, you will add a new data source to specify how business users will specify legal entity–dependent rules to
recognize the correct taxation level for each summarized transaction record.
1. On the Mapping tab, select Add .
2. Select Format enumeration\Lookup .
You just identified that each rule that business users specify for taxation level recognition will return a value
of an ER format enumeration. Notice that the Lookup data source type can be accessed under the Data
model and Dynamics 365 for Operations blocks in addition to the Format enumeration block.
Therefore, ER data model enumerations and application enumerations can be used to specify the type of
values that is are returned for data sources of that type.
3. In the Name field, enter Selector .
4. In the Format enumeration field, select List of taxation levels .
You just specified that, for each rule that is specified in this data source, a business user must select one of
the values of the List of taxation levels format enumeration as a returned value.
5. Select Edit lookup .
6. Select Columns .
7. Expand the Model item.
8. Expand the Data item.
9. Expand the Tax item.
10. Select the Model.Data.Tax.Code item.
11. Select the Add button (the right arrow).
You just specified that, for each rule that is specified in this data source for taxation level recognition, a
business user must select one of the tax codes as a condition. The list of tax codes that the business user can
select will be returned by the Model.Data.Tax data source. Because this data source contains the Name
field, the name of the tax code will be shown for each tax code value in the lookup that is presented to the
business user.
12. Select OK .

Business users can add multiple rules as records of this data source. Each record will be numbered by a line
code. Rules will be evaluated in order of increasing line number.
Because you selected the Tax code field as a condition for rules in this lookup data source, and because Tax
code is set up as a field of the String data type, each rule will be evaluated at runtime by comparing the tax
code that is passed to the data source with the tax code that is defined in this record of the data source.
When a rule that satisfies the configured condition is found, this data source returns the lookup value of the
rule that is defined in the Lookup result field. If no rule is found, an exception is thrown to notify the user
that the current data source can't return a correct value.
13. Select Save .
14. Close the Lookup designer page.
15. Select OK .
Notice that you added a new data source that will return the taxation level as the value of the List of
taxation levels format enumeration for any tax code that is passed to the data source as the argument of
the Code parameter of the String data type.
Note that the evaluation of configured rules depends on the data type of the fields that have been selected
to define conditions of those rules. When you select a field that is configured as a field of either the
Numeric or Date data type, the criteria will differ from the criteria that were described earlier for the
String data type. For Numeric and Date fields, the rule must be specified as a range of values. The
condition of the rule will then be considered satisfied when a value that is passed to the data source is in the
configured range.
The following illustration shows an example of this type of setup. In addition to the Model.Data.Tax.Code
field of the String data type, the Model.Tax.Summar y.Base field of the Real data type is used to specify
conditions for a lookup data source.

Because the Model.Data.Tax.Code and Model.Tax.Summar y.Base fields are selected for this lookup data
source, each rule of this data source will be configured in the following way:
In the list that is presented, the value of the List of taxation levels format enumeration must be
selected as a returned value.
The tax code must be entered as a condition of this rule. Only tax codes that are provided by the
Model.Data.Tax data source are applicable.
Minimum and maximum values of the tax base amount must be entered as conditions of this rule.
Here is how each rule of this data source will be evaluated at runtime:
Does the code of the String data type that was passed to this data source equal the tax code of a rule?
Does the value of the Real data type that was passed to this data source fall between specific minimum
and maximum values?
A rule will be considered applicable when both conditions are satisfied.
Translate the label of the lookup data source that was added
Because business users might use different languages to specify legal entity–dependent sets of tax codes, we
recommend that you translate the label of any lookup data source that you add, so that it's presented in each user's
preferred language on the corresponding page.
1. Select the Model.Data.Selector data source.
2. Select Edit .
3. Click in the Label field.
4. Select Translate .
5. In the Text translation pane, in the Label Id field, enter LBL_SELECTOR_DS .
6. In the Text in default language field, enter Select tax level by tax code .
7. In the Language field, select DE .
8. In the Translated text field, enter Steuerebene für Steuerkennzeichen auswählen .
9. Select Translate .
10. Select OK .

Add a new field to consume the configured lookup


1. Expand the Model.Data item.
2. Select the Model.Data.Summar y item.
3. Select Add .
4. Select Functions/Calculated field .
5. In the Name field, enter LevelByLookup .
6. Select Edit formula .
7. In the Formula field , enter Model.Selector(Model.Data.Summar y.Code) .
8. Select Save .
9. Close the Formula editor page.
10. Select OK .

Notice that the LevelByLookup calculated field that you added will return the taxation level as the value of
the List of taxation levels format enumeration for each summarized tax transactions record. The tax code
of the record will be passed to the Model.Selector lookup data source, and the set of rules for this data
source will be used to select the correct taxation level.
Add a new format enumeration-based data source
Next, you will add a new data source that refers to the format enumeration that you added earlier. Values of this
data source will be used in an ER format expression later.
1. Select Add root .
2. Select Format enumerations\Enumeration .
3. In the Name field, enter TaxationLevel .
4. In the Format enumeration field, select List of taxation levels .
5. Select Save .
Modify an existing field to start to use the lookup
Next, you will modify the existing calculated field so that it uses the configured lookup data source to return the
correct taxation level value, depending on the tax code.
1. Select the Model.Data.Summar y.Level item.
2. Select Edit .
3. Select Edit formula .
Notice that the current expression of the Model.Data.Summar y.Level field includes the following hard-
coded tax codes:
CASE (@.Code, "VAT19", "Regular", "InVAT19", "Regular", "VAT7", "Reduced", "InVAT7", "Reduced", "THIRD",
"None", "InVAT0", "None", "Other")
4. In the Formula field, enter CASE(@.LevelByLookup, TaxationLevel.'Regular taxation', "Regular",
TaxationLevel.'Reduced taxation', "Reduced", TaxationLevel.'No taxation', "None", "Other") .

Notice that the expression of the Model.Data.Summar y.Level field will now return the taxation level,
based on the tax code of the current record and the set of rules that that a business user configures in the
Model.Data.Selector lookup data source.
5. Select Save .
6. Close Formula designer page.
7. Select OK .
8. Select Save .
9. Close Format designer page.

Complete the draft version of a derived format


1. On the Versions fast tab, select Change status .
2. Select Complete .
3. Select OK .

Export completed version of modified format


1. In the configuration tree, select the Format to learn how to lookup LE data item.
2. On the Versions fast tab, select the record that has a status of Completed .
3. Select Exchange .
4. Select Expor t as XML file .
5. Select OK .
6. The web browser downloads a Format to learn how to lookup LE data.xml file. Store this file locally.
Repeat steps in this section for parent items of the Format to learn how to lookup LE data format, and store
the following files locally:
Format to learn parameterized calls.xml
Mapping to learn parameterized calls.xml
Model to learn parameterized calls.xml
To learn how to use the configured Format to learn how to lookup LE data ER format to set up legal entity–
dependent sets of tax codes to filter tax transactions by different taxation levels, complete the steps in the Set up
the parameters of an ER format per legal entity topic.

Additional resources
Formula designer in Electronic reporting
Set up the parameters of an ER format per legal entity
Set up the parameters of an ER format per legal
entity
2/12/2020 • 9 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Prerequisites
To complete these steps, you must first complete the steps in the Configure ER formats to use parameters that are
specified per legal entity topic.
To complete the examples in this topic, you must have access to Microsoft Dynamics 365 Finance (Finance) for one
of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator

Import ER configurations
1. Sign in to your environment.
2. On the default dashboard, select Electronic repor ting .
3. Select Repor ting configurations .
4. Import, into the current instance of Finance, the configurations that you exported from Regulatory
Configuration Services (RCS) while you were completing the steps in the Configure ER formats to use
parameters that are specified per legal entity topic. Follow these steps for each Electronic reporting (ER)
configuration, in the following order: data model, model mapping, and formats.
a. Select Exchange > Load from XML file .
b. Select Browse to select the file for the required ER configuration in XML format.
c. Select OK .
The following illustration shows the configurations that you must have when you've finished.
Set up parameters for the DEMF company
You can use the ER framework to set up application-specific parameters for an ER format.
1. Select the DEMF legal entity.
2. In the configurations tree, select the Format to learn how to lookup LE data format.
3. On the Action Pane, on the Configurations tab, in the Application specific parameters group, select
Setup .

On the Application specific parameters page, you can configure the rules for the Selector data source
of the Format to learn how to lookup LE data format.
If the base ER format will contain several data sources of the Lookup type, you must select the desired data
source on the Lookups FastTab before you can start to configure the set of rules for the data source.
For each data source, you can configure separate rules for each version of the selected ER format.
The whole set of rules for all lookup data sources that are available in the selected version of the base ER
format makes up the application-specific parameters for the ER format.
4. Select version 1.1.1 of the ER format.
5. On the Conditions FastTab, select Add .
6. In the Code field of the new record, select the drop-down arrow to open the lookup.
The lookup presents the list of tax codes for selection. This list is returned by the Model.Data.Tax data
source that has been configured in the base ER format. Because this data source contains the Name field,
the name of each tax code appears in the lookup.

7. Select the VAT19 tax code.


8. In the Lookup result field of the new record, select the drop-down arrow to open the lookup. The lookup
presents the list of values for the TaxationLevel format enumeration for selection.
Note that, if German is selected as the preferred language of the user that you're signed in as, the labels of
the values in the lookup will be in German, provided that they have been translated in the base ER format.
Additionally, if the label of a lookup data source has been translated, that label will appear in the user's
preferred language on the Lookups tab.
9. Select the Regular taxation value.
By adding this record, you define the following rule: Whenever the Selector lookup data source is
requested, and the VAT19 tax code is passed as an argument, Regular taxation will be returned as the
requested taxation level.
10. Select Add , and then follow these steps:
a. In the Code field, select the InVAT19 tax code.
b. In the Lookup result field, select the Regular taxation value.
11. Select Add again, and then follow these steps:
a. In the Code field, select the VAT7 tax code.
b. In the Lookup result field, select the Reduced taxation value.
12. Select Add again, and then follow these steps:
a. In the Code field, select the InVAT7 tax code.
b. In the Lookup result field, select the Reduced taxation value.
13. Select Add again, and then follow these steps:
a. In the Code field, select the THIRD tax code.
b. In the Lookup result field, select the No taxation value.
14. Select Add again, and then follow these steps:
a. In the Code field, select the InVAT0 tax code.
b. In the Lookup result field, select the No taxation value.
15. Select Add again, and then follow these steps:
a. In the Code field, select the *Not blank* option.
b. In the Lookup result field, select the Other value.
By adding this last record, you define the following rule: Whenever the tax code that is passed as an
argument doesn't satisfy any of the previous rules, the lookup data source will return Other as the
requested taxation level.
16. In the State field, select Completed .
When you run an ER format version that has a status of either Completed or Shared , this set of rules must
be in the Completed state. Otherwise, execution of the base ER format will be interrupted when the format
tries to load data from this set of rules while the Selector lookup data source is being run.
When you run an ER format version that has a status of Draft , the base ER format can access this set of
rules, regardless of its state.
17. Select Save .
18. Close the Application specific parameters page.

Run the ER format in the DEMF company


1. In the configurations tree, select the Format to learn how to lookup LE data format.
2. On the Action Pane, select Run .
3. In the dialog box that appears, select OK .
4. Download the statement that is generated and store it locally.
In the generated statement, notice that the summary of the InVAT7 tax code has been put on the Reduced
level, and the summaries of the VAT19 and InVA19 tax codes have been put on the Regular level. This
behavior is determined by the configuration in the legal entity–dependent set of rules.
5. Go to Tax > Indirect taxes > Sales tax > Sales tax codes .
6. Select the InVAT7 tax code.
7. On the Action Pane, on the Sales tax code tab, in the Inquiries group, select Posted sales tax to view
information about the tax value and applied tax rate per tax code.
8. Close the Posted sales tax page.

Set up parameters for the USMF company


1. Select the USMF legal entity.
2. Go to Organization administration > Electronic repor ting > Configurations .
3. In the configurations tree, expand the Model to learn parameterized calls item, expand the Format to
learn parameterized calls item, and select the Format to learn how to lookup LE data format.
4. On the Action Pane, on the Configurations tab, in the Application specific parameters group, select
Setup .
5. Select version 1.1.1 of the selected ER format.
6. On the Conditions FastTab, select Add .
7. In the Code field of the new record, select the drop-down arrow to open the lookup.
The lookup now presents the list of tax codes for the USMF company tax for selection.
8. Select the EXEMPT tax code.
9. In the Lookup resul t field of the new record, select the No taxation value.
10. Select Add again.
11. In the Code field of the new record, select the *Not blank* option.
12. In the Lookup result field of the new record, select the Regular taxation value.
13. In the State field, select Completed .
14. Select Save .

15. Close the Application specific parameters page.


Run the ER format in the USMF company
1. In the configurations tree, select the Format to learn how to lookup LE data format.
2. On the Action Pane, select Run .
3. In the dialog box that appears, select OK .
4. Download the statement that is generated and store it locally.
In the generated statement, notice that you've now reused the same ER format for a different legal entity,
but without making any adjustments to the ER format.

Reuse legal entity–dependent parameters


Export parameters
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Select Repor ting configurations .
3. In the configurations tree, select the Format to learn how to lookup LE data format.
4. On the Action Pane, on the Configurations tab, in the Application specific parameters group, select
Setup .
5. Select version 1.1.1 of the ER format.
6. On the Action Pane, select Expor t .
7. Download the file that is generated and store it locally.
The configured set of application-specific parameters has now been exported as an XML file.
Import parameters
1. Select version 1.1.2 of the ER format.
2. On the Action Pane, select Impor t .
3. Select Yes to confirm that you want to override the existing application-specific parameters for this format
version.
4. Select Browse to find the file that contains the exported application-specific parameters for version 1.1.1 .
5. Select OK .
Version 1.1.2 of the ER format now has the same application-specific parameters that you originally
configured for version 1.1.1 .
Note that the application-specific parameters of an ER format are legal entity–dependent. To reuse the
application-specific parameters that were configured for one legal entity in a different legal entity, you must
export them while you're signed in to the first legal entity and then import them after you sign in to the
other legal entity.
You can also use this approach to transfer an ER format related application-specific parameters that were
originally configured in one instance of Finance to another instance of Finance.
Be aware that if you configure application-specific parameters for one version of an ER format and import a
higher version of the same format into the current Finance instance, the existing application-specific
parameters won't be applied for the imported version.
Also be aware that, when you select a file for import, the structure of the application-specific parameters in
that file is compared with the structure of the corresponding data source of the Lookup type in the ER
format that is selected for import. The import is done when the structure of each application-specific
parameter matches the structure of the corresponding data source in the ER format that is selected for
import. If the structures don't match, you receive a warning message that states that the import can't be
done. If you force the import to be done, the existing application-specific parameters for the selected ER
format will be cleaned up, and you must set them up from the beginning.

Relationship between application-specific parameters and an ER format


The relationship between an ER format and its application-specific parameters is established by the ER format's
instance-independent unique identification code. Therefore, when you remove an ER format from Finance, the
application-specific parameters that are configured for the ER format are kept in the current instance of Finance.
They can be accessed whenever the base ER format is reimported into this instance of Finance.

Access application-specific parameters by using the ER framework


In the preceding example, you have accessed application-specific parameters of an ER format by using the ER
framework. This approach doesn't let you restrict access to the application-specific parameters of a specific ER
format. If you must apply such restrictions, follow these steps.
1. Either reuse an existing ERSolutionAppSpecificParametersDesigner menu item, or implement your
own ERSolutionAppSpecificParametersDesigner menu item.

2. Follow one of these steps:


a. Create a new menu item button, and link it to the corresponding record from the ERSolutionTable
table by setting its Data Source property to ERSolutionTable .
b. Create a simple button, and override the Clicked method as shown in the following example.
By using this approach, you can specify a unique solution ID (defined via the GUID value) to allow
access to the application-specific parameters of only a specific ER format and descendant copies that
have been derived from it.

public void clicked()


{
super();

ERSolutionTable solutionTableRecord = ERSolutionTable::findByGUID(str2Guid('ADACCB2F-


EFD1-4C90-877D-7E1E5D1AEE92'));

Args args = new Args();


args.record(solutionTableRecord);
args.caller(this);

new MenuFunction(menuItemDisplayStr(ERSolutionAppSpecificParametersDesigner),
MenuItemType::Display)
.run(args);
}

Additional resources
Formula designer in Electronic reporting
Configure ER formats to use parameters that are specified per legal entity
Defer the execution of sequence elements in ER
formats
3/17/2020 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Overview
You can use the Operations designer of the Electronic reporting (ER) framework to configure the format component
of an ER solution that is used to generate outbound documents in a text format. The hierarchical structure of the
configured format component consists of format elements of various types. These format elements are used to fill
generated documents with the required information at runtime. By default, when you run an ER format, the format
elements are run in the same order as they are presented in the format hierarchy: one by one, from top to bottom.
However, at design time, you can change the execution order for any sequence elements of the configured format
component.
By turning on the Deferred execution option for a sequence format element in the configured format, you can
defer (postpone) the execution of that element. In this case, the element isn't run until all other elements of its
parent have been run.
To learn more about this feature, complete the example in this topic.

Limitations
The Deferred execution option is supported only for sequence elements that are configured for an ER format that
is used to generate outbound documents in text format.
The Deferred execution option isn't applicable to sequences that have been configured as trimmed sequences
where the maximum length is limited.

Example: Defer the execution of a sequence element in an ER format


The following steps explain how a user in the System administrator or Electronic reporting functional consultant
role can configure an ER format that contains a sequence element where order of execution differs from the order
in the format hierarchy.
These steps can be performed in the USMF company in Microsoft Dynamics 365 Finance.
Prerequisites
To complete this example, you must have access to the USMF company in Finance for one of the following roles:
Electronic reporting functional consultant
System administrator
If you haven't yet completed the example in the Defer the execution of XML elements in ER formats topic, download
the following configurations of the sample ER solution.
C O N T EN T DESC RIP T IO N F IL E N A M E

ER data model configuration Model to learn deferred elements.version.1.xml

ER model mapping configuration Mapping to learn deferred elements.version.1.1.xml

Before you begin, you must also download and save the following configuration of the sample ER solution.

C O N T EN T DESC RIP T IO N F IL E N A M E

ER format configuration Format to learn deferred sequences.version.1.1.xml

Import the sample ER configurations


1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Select Repor ting configurations .
3. On the Configurations page, if the Model to learn deferred elements configuration isn't available in
the configuration tree, import the ER data model configuration:
a. Select Exchange , and then select Load from XML file .
b. Select Browse , find and select the Model to learn deferred elements.1.xml file, and then select OK .
4. If the Mapping to learn deferred elements configuration isn't available in the configuration tree, import
the ER model mapping configuration:
a. Select Exchange , and then select Load from XML file .
b. Select Browse , find and select the Mapping to learn deferred elements.1.1.xml file, and then select
OK .
5. Import the ER format configuration:
a. Select Exchange , and then select Load from XML file .
b. Select Browse , find and select the Format to learn deferred sequences.1.1.xml file, and then select
OK .
6. In the configuration tree, expand Model to learn deferred elements .
7. Review the list of imported ER configurations in the configuration tree.

Activate a configurations provider


1. Go to Organization administration > Workspaces > Electronic repor ting .
2. On the Localization configurations page, in the Configuration providers section, make sure that the
configuration provider for the Litware, Inc. ( http://www.litware.com ) sample company is listed, and that it's
marked as active. If this configuration provider isn't listed, or if it isn't marked as active, follow the steps in
the Create a configuration provider and mark it as active topic.

Review the imported model mapping


Review the settings of the ER model mapping component that is configured to access tax transactions and expose
accessed data on request.
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Select Repor ting configurations .
3. On the Configurations page, in the configuration tree, expand Model to learn deferred elements .
4. Select the Mapping to learn deferred elements configuration.
5. Select Designer to open the list of mappings.
6. Select Designer to review the mapping details.
7. Select Show details .
8. Review the data sources that are configured to access tax transactions:
The Transactions data source of the Table record type is configured to access records of the
TaxTrans application table.
The Vouchers data source of the Calculated field type is configured to return the required voucher
codes (INV-10000349 and INV-10000350 ) as a list of records.
The Filtered data source of the Calculated field type is configured to select, from the Transactions
data source, only tax transactions of the required vouchers.
The $TaxAmount field of the Calculated field type is added for the Filtered data source to expose the
tax value that has the opposite sign.
The Grouped data source of the Group By type is configured to group filtered tax transactions of the
Filtered data source.
The TotalSum aggregation field of the Grouped data source is configured to summarize values of
the $TaxAmount field of the Filtered data source for all filtered tax transactions of that data source.
9. Review how the configured data sources are bound to the data model, and how they expose accessed data to
make it available in an ER format:
The Filtered data source is bound to the Data.List field of the data model.
The $TaxAmount field of the Filtered data source is bound to the Data.List.Value field of the data
model.
The TotalSum field of the Grouped data source is bound to the Data.Summar y.Total field of the data
model.

10. Close the Model mapping designer and Model mappings pages.
Review the imported format
1. On the Configurations page, in the configuration tree, select the Format to learn deferred sequences
configuration.
2. Select Designer to review the format details.
3. Select Show details .
4. Review the settings of the ER format components that are configured to generate an outbound document in
text format that includes details of the tax transactions:
The Repor t\Lines sequence format element is configured to fill the outbound document with a
single line that is generated from the nested sequence elements (Header , Record , and Summar y ).
The Repor t\Lines\Header sequence format element is configured to fill the outbound document
with a single header line that shows the date and time when the processing starts.
The Repor t \Lines\Record sequence format element is configured to fill the outbound document
with a single line that shows the details of individual tax transactions. These tax transactions are
separated by a semicolon.

The Repor t\Lines\Summar y sequence format element is configured to fill the outbound document
with a single summary line that includes the sum of the tax values from the processed tax
transactions.
5. On the Mapping tab, review the following details:
The Repor t\Lines\Header element doesn't have to be bound to a data source to generate a single line
in an outbound document.
The Prefix1 element generates P1 symbols to indicate that the line that is added is the report header
line.
The ExecutionDateTime element generates the date and time (including milliseconds) when the header
line is added.
The Repor t\Lines\Record element is bound to the model.Data.List list to generate a single line for
every record from the bound list.
The Prefix2 element generates P2 symbols to indicate that the line that is added is for the tax transaction
details.
The TaxAmount element is bound to model.Data.List.Value (which is shown as @.Value in the relative
path view) to generate the tax value of the current tax transaction.
The RunningTotal element is a placeholder for the running total of the tax values. Currently, this element
has no output, because neither a binding nor a default value is configured for it.
The ExecutionDateTime element generates the date and time (including milliseconds) when the current
transaction is processed in this report.
The Repor t\Lines\Summar y element doesn't have to be bound to a data source to generate a single
line in an outbound document.
The Prefix3 element generates P3 symbols to indicate that the line that is added contains the total tax
value.
The TotalTaxAmount element is bound to model.Data.Summar y.Total to generate the sum of the tax
values of the processed tax transactions.
The ExecutionDateTime element generates the date and time (including milliseconds) when the
summary line is added.

Run the imported format


1. On the Format designer page, select Run .
2. Download the file that the web browser offers, and open it for review.
Notice that summary line 22 presents the sum of the tax values for the processed transactions. Because the format
is configured to use the model.Data.Summar y.Total binding to return this sum, the sum is calculated by calling
the TotalSum aggregation of the Grouped data source of the GroupBy type that uses the model mapping. To
calculate this aggregation, model mapping iterates over all transactions that have been selected in the Filtered
data source. By comparing the execution times of lines 21 and 22, you can determine that calculation of the sum
took 10 milliseconds (ms). By comparing the execution times of lines 2 and 21, you can determine that generation
of all transactional lines took 7 ms. Therefore, a total of 17 ms was required.
Modify the format so that the summing is based on generated output
If the volume of transactions is much larger than the volume in the current example, the summing time might
increase and cause performance issues. By changing the setting of the format, you can help prevent these
performance issues. Because you access tax values to include them in the generated report, you can reuse this
information to sum tax values. For more information, see Configure format to do counting and summing.
1. On the Format designer page, on the Format tab, select the Repor t file element in the format tree.
2. Set the Collect output details option to Yes . You can now configure this format by using the content of an
existing report as a data source that can be accessed by using the built-in ER functions in the Data collection
category.
3. On the Mapping tab, select the Repor t\Lines sequence element.
4. Configure the Collected data key name expression as WsColumn .
5. Configure the Collected data key value expression as WsRow .
6. Select the Repor t\Lines\Record\TaxAmount numeric element.
7. Configure the Collected data key name expression as SummingAmountKey .

You can consider this setting the fulfillment of a virtual worksheet, where the value of cell A1 is appended
with the value of the tax amount from every processed tax transaction.
8. Select the Repor t\Lines\Record\RunningTotal numeric element, and then select Edit formula .
9. Configure the SUMIF(SummingAmountKey, WsColumn, WsRow) expression by using the built-in SUMIF ER function.
10. Select Save .
11. Close the Formula designer page.
12. Select Save , and then select Run .
13. Download and review the file that the web browser offers.

Line 21 contains the running total of tax values that is calculated for all processed transactions by using the
generated output as a data source. This data source starts from the beginning of the report and continues
through the last tax transaction. Line 22 contains the sum of the tax values for all processed transactions that
are calculated in the model mapping by using the data source of the GroupBy type. Notice that these values
are equal. Therefore, the output-based summing can be used instead of GroupBy . By comparing the
execution times of lines 2 and 21, you can determine that generation of all the transactional lines and
summing took 9 ms. Therefore, as far as the generation of detailed lines and the summing of tax values are
concerned, the modified format is approximately two times faster than the original format.
14. Select the Repor t\Lines\Summar y\TotalTaxAmount numeric element, and then select Edit formula .
15. Enter the SUMIF(SummingAmountKey, WsColumn, WsRow) expression instead of the existing expression.
16. Select Save , and then select Run .
17. Download and review the file that the web browser offers.

Notice that the running total of tax values on the last transaction details line now equals the sum on the
summary line.
Put values of output-based summing in the report header
If, for example, you must present the sum of tax values in the header of your report, you can modify your format.
1. On the Format designer page, on the Format tab, select the Repor t\Lines\Summar y sequence element.
2. Select Move up .
3. Select Save , and then select Run .
4. Download and review the file that the web browser offers.
Notice that the sum of tax values on summary line 2 now equals 0 (zero), because this sum is now calculated
based on the generated output. When line 2 is generated, the generated output doesn't yet contain lines that
have transaction details. You can configure this format to defer the execution of the
Repor t\Lines\Summar y sequence element until the Repor t\Lines\Record sequence element has been
run for all tax transactions.
Defer the execution of the summary sequence so that the calculated total is used
1. On the Format designer page, on the Format tab, select the Repor t\Lines\Summar y sequence element.
2. Set the Deferred execution option to Yes .

3. Select Save , and then select Run .


4. Download and review the file that the web browser offers.

The Repor t\Lines\Summar y sequence element is now run only after all other items that are nested under
its parent element, Repor t\Lines , have been run. Therefore, it's run after the Repor t\Lines\Record
sequence element has been run for all tax transactions of the model.Data.List data source. The execution
times of lines 1, 2, and 3, and of the last line, 22, reveal this fact.
Additional resources
Configure format to do counting and summing
Trace execution of ER format to troubleshoot performance issues
Defer the execution of XML elements in ER formats
Defer the execution of XML elements in ER formats
3/17/2020 • 11 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Overview
You can use the Operations designer of the Electronic reporting (ER) framework to configure the format component
of an ER solution that is used to generate outbound documents in XML format. The hierarchical structure of the
configured format component consists of format elements of various types. These format elements are used to fill
generated documents with the required information at runtime. By default, when you run an ER format, the format
elements are run in the same order as they are presented in the format hierarchy: one by one, from top to bottom.
However, at design time, you can change the execution order for any XML elements of the configured format
component.
By turning on the Deferred execution option for an XML element in the configured format, you can defer
(postpone) the execution of that element. In this case, the element isn't run until all other elements of its parent
have been run.
To learn more about this feature, complete the example in this topic.

Limitations
The Deferred execution option is supported only for XML elements that are configured for an ER format that is
used to generate outbound documents in XML format.
The Deferred execution option is supported only for XML elements that reside in only one other XML element.
Therefore, it isn't applicable to XML elements that reside in other types of format elements (for example, in an XML
sequence element).
The Deferred execution option isn't supported for XML elements that reside in the Common\File format
element when the Split file option is set to Yes . For more information about how to split XML files, see Split
generated XML files based on file size and content quantity.

Example: Defer the execution of an XML element in an ER format


The following steps explain how a user in the System administrator or Electronic reporting functional consultant
role can configure an ER format that contains an XML element where the order of execution differs from the order
in the format hierarchy.
These steps can be performed in the USMF company in Microsoft Dynamics 365 Finance.
Prerequisites
To complete this example, you must have access to the USMF company in Finance for one of the following roles:
Electronic reporting functional consultant
System administrator
If you haven't yet completed the example in the Defer the execution of sequence elements in ER formats topic,
download the following configurations of the sample ER solution.

C O N T EN T DESC RIP T IO N F IL E N A M E

ER data model configuration Model to learn deferred elements.version.1.xml

ER model mapping configuration Mapping to learn deferred elements.version.1.1.xml

Before you begin, you must also download and save the following configuration of the sample ER solution to your
local computer.

C O N T EN T DESC RIP T IO N F IL E N A M E

ER format configuration Format to learn deferred XML elements.version.1.1.xml

Import the sample ER configurations


1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Select Repor ting configurations .
3. On the Configurations page, if the Model to learn deferred elements configuration isn't available in
the configuration tree, import the ER data model configuration:
a. Select Exchange , and then select Load from XML file .
b. Select Browse , find and select the Model to learn deferred elements.1.xml file, and then select OK .
4. If the Mapping to learn deferred elements configuration isn't available in the configuration tree, import
the ER model mapping configuration:
a. Select Exchange , and then select Load from XML file .
b. Select Browse , find and select the Mapping to learn deferred elements.1.1.xml file, and then select
OK .
5. Import the ER format configuration:
a. Select Exchange , and then select Load from XML file .
b. Select Browse , find and select the Format to learn deferred XML elements.1.1.xml file, and then
select OK .
6. In the configuration tree, expand Model to learn deferred elements .
7. Review the list of imported ER configurations in the configuration tree.
Activate a configuration provider
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. On the Localization configurations page, in the Configuration providers section, make sure that the
configuration provider for the Litware, Inc. ( http://www.litware.com ) sample company is listed, and that it's
marked as active. If this configuration provider isn't listed, or if it isn't marked as active, follow the steps in
the Create a configuration provider and mark it as active topic.

Review the imported model mapping


Review the settings of the ER model mapping component that is configured to access tax transactions and expose
accessed data on request.
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. Select Repor ting configurations .
3. On the Configurations page, in the configuration tree, expand Model to learn deferred elements .
4. Select the Mapping to learn deferred elements configuration.
5. Select Designer to open the list of mappings.
6. Select Designer to review the mapping details.
7. Select Show details .
8. Review the data sources that are configured to access tax transactions:
The Transactions data source of the Table record type is configured to access records of the
TaxTrans application table.
The Vouchers data source of the Calculated field type is configured to return the required voucher
codes (INV-10000349 and INV-10000350 ) as a list of records.
The Filtered data source of the Calculated field type is configured to select, from the Transactions
data source, only tax transactions of the required vouchers.
The $TaxAmount field of the Calculated field type is added for the Filtered data source to expose the
tax value that has the opposite sign.
The Grouped data source of the Group By type is configured to group filtered tax transactions of the
Filtered data source.
The TotalSum aggregation field of the Grouped data source is configured to summarize values of
the $TaxAmount field of the Filtered data source for all filtered tax transactions of that data source.

9. Review how the configured data sources are bound to the data model, and how they expose accessed data to
make it available in an ER format:
The Filtered data source is bound to the Data.List field of the data model.
The $TaxAmount field of the Filtered data source is bound to the Data.List.Value field of the data
model.
The TotalSum field of the Grouped data source is bound to the Data.Summar y.Total field of the data
model.

10. Close the Model mapping designer and Model mappings pages.
Review the imported format
1. On the Configurations page, in the configuration tree, select the Format to learn deferred XML
elements configuration.
2. Select Designer to review the format details.
3. Select Show details .
4. Review the settings of the ER format components that are configured to generate an outbound document in
XML format that includes details of the tax transactions:
The Repor t\Message XML element is configured to fill the outbound document with a single node that
includes the nested XML elements (Header , Record , and Summar y ).
The Repor t\Message\Header XML element is configured to fill the outbound document with a single
header node that shows the date and time when the processing starts.
The Repor t \Message\Record XML element is configured to fill the outbound document with a single
record node that shows the details of a single tax transaction.
The Repor t\Message\Summar y XML element is configured to fill the outbound document with a
single summary node that includes the sum of the tax values from the processed tax transactions.

5. On the Mapping tab, review the following details:


The Repor t\Message\Header element doesn't have to be bound to a source to generate a single node
in an outbound document.
The ExecutionDateTime attribute generates the date and time (including milliseconds) when the header
node is added.
The Repor t\Message\Record element is bound to the model.Data.List list to generate a single record
node for every record from the bound list.
The TaxAmount attribute is bound to model.Data.List.Value (which is shown as @.Value in the
relative path view) to generate the tax value of the current tax transaction.
The RunningTotal attribute is a placeholder for the running total of the tax values. Currently, this
attribute has no output, because neither a binding nor a default value is configured for it.
The ExecutionDateTime attribute generates the date and time (including milliseconds) when the current
transaction is processed in this report.
The Repor t\Message\Summar y element doesn't have to be bound to a data source to generate a
single node in an outbound document.
The TotalTaxAmount attribute is bound to model.Data.Summar y.Total to generate the sum of the tax
values of the processed tax transactions.
The ExecutionDateTime attribute generates the date and time (including milliseconds) when the
summary node is added.
Run the imported format
1. On the Format designer page, select Run .
2. Download the file that the web browser offers, and open it for review.

Notice that the summary node presents the sum of the tax values for the processed transactions. Because the
format is configured to use the model.Data.Summar y.Total binding to return this sum, the sum is calculated by
calling the TotalSum aggregation of the Grouped data source of the GroupBy type in the model mapping. To
calculate this aggregation, the model mapping iterates over all transactions that have been selected in the Filtered
data source. By comparing the execution times of the summary node and the last record node, you can determine
that calculation of the sum took 12 milliseconds (ms). By comparing the execution times of the first and last record
nodes, you can determine that generation of all record nodes took 9 ms. Therefore, a total of 21 ms was required.
Modify the format so that the calculation is based on generated output
If the volume of transaction is much larger than the volume in the current example, the calculation time might
increase and cause performance issues. By changing the setting of the format, you can help prevent these
performance issues. Because you access tax values to include them in the generated report, you can reuse this
information to calculate tax values. For more information, see Configure format to do counting and summing.
1. On the Format designer page, on the Format tab, select the Repor t file element in the format tree.
2. Set the Collect output details option to Yes . You can now configure this format by using the content of a
generated report as a data source that can be accessed by using the built-in ER functions in the Data
collection category.
3. On the Mapping tab, select the Repor t\Message\Record XML element.
4. Configure the Collected data key name expression as WsColumn .
5. Configure the Collected data key value expression as WsRow .

6. Select the Repor t\Message\Record\TaxAmount attribute.


7. Configure the Collected data key name expression as SummingAmountKey .

You can consider this setting the fulfillment of a virtual worksheet, where the value of cell A1 is appended
with the value of the tax amount from every processed tax transaction.
8. Select the Repor t\Message\Record\RunningTotal attribute, and then select Edit formula .
9. Configure the SUMIF(SummingAmountKey, WsColumn, WsRow) expression by using the built-in SUMIF ER function,
and then select Save .
10. Close the Formula designer page.
11. Select Save , and then select Run .
12. Download and review the file that the web browser offers.

The last record node contains the running total of tax values that is calculated for all processed transactions
by using the generated output as a data source. This data source starts from the beginning of the report and
continues through the last tax transaction. The summary node contains the sum of the tax values for all
processed transactions that are calculated in the model mapping by using the data source of the GroupBy
type. Notice that these values are equal. Therefore, the output-based summing can be used instead of
GroupBy . By comparing the execution times of the first record node and the summary node, you can
determine that generation of all the record nodes and summing took 11 ms. Therefore, as far as the
generation of record nodes and the summing of tax values are concerned, the modified format is
approximately two times faster than the original format.
13. Select the Repor t\Message\Summar y\TotalTaxAmount attribute, and then select Edit formula .
14. Enter the SUMIF(SummingAmountKey, WsColumn, WsRow) expression instead of the existing expression.
15. Select Save , and then select Run .
16. Download and review the file that the web browser offers.

Notice that the running total of tax values in the last record node now equals the sum in the summary node.
Put values of output-based summing in the report header
If, for example, you must present the sum of tax values in the header of your report, you can modify your format.
1. On the Format designer page, on the Format tab, select the Repor t\Message\Summar y XML element.
2. Select Move up .
3. Select Save , and then select Run .
4. Download and review the file that the web browser offers.

Notice that the sum of tax values in the summary node now equals 0 (zero), because this sum is now
calculated based on the generated output. When the first record node is generated, the generated output
doesn't yet contain record nodes that have transaction details. You can configure this format to defer the
execution of the Repor t\Message\Summar y element until the Repor t\Message\Record element has
been run for all tax transactions.
Defer the execution of the summary XML element so that the calculated total is used
1. On the Format designer page, on the Format tab, select the Repor t\Message\Summar y XML element.
2. Set the Deferred execution option to Yes .

3. Select Save , and then select Run .


4. Download and review the file that the web browser offers.

The Repor t\Message\Summar y element is now run only after all other items that are nested under its
parent element, Repor t\Message , have been run. Therefore, it's run after the Repor t\Message\Record
element has been run for all tax transactions of the model.Data.List data source. The execution times of the
first and last record nodes, and of the header and summary nodes, reveal this fact.

Additional resources
Configure format to do counting and summing
Trace execution of ER format to troubleshoot performance issues
Defer the execution of sequence elements in ER formats
Configure the Electronic reporting (ER) framework
11/5/2019 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to set up the basic functionality for Electronic reporting (ER). It also describes the steps that
you must complete before you can set up ER.

Prerequisites for ER setup


Before you can set up ER, you must set up the required document types in Document management:
A document type for Microsoft Office documents that are used as templates for ER reports.
A document type that is used to store the output of ER reports in the jobs archive.
A document type that is used to store the output of ER reports so that they can be viewed in other programs.
A document type that is used to keep baselines of outputs of ER configurations.
A document type that is used to handle files in the ER framework for all other purposes.
For each document type, the following attribute values can be selected.

AT T RIB UT E N A M E AT T RIB UT E VA L UE

Class Attach file

Group File

Location Azure storage or SharePoint

Set up ER
Use the following procedure to set up the basic functionality of ER for all legal entities.
1. Open the Electronic repor ting workspace page.
2. Click Electronic repor ting parameters .
3. On the Electronic repor ting parameters page, on the Attachments tab, define the types of documents that
should be used for file storage in the ER framework.
4. On the LCS tab, define the number of parallel threads that should be used to load an ER configuration from
repositories in Microsoft Dynamics Lifecycle Services (LCS), so that the configurations are loaded in the most
efficient manner. The value can vary from 1 to 15 , depending on the available resources of the current
program. Note that the real number of threads will be defined automatically, based on this setting, and on the
number of other tasks and their priorities.
5. On the Configuration provider table page, create ER provider records. Each provider can be marked as
Active . The active provider's name and Internet address are stored in an ER configuration as attributes of the
owner of the configuration.
Optional setup for ER
In addition to the basic functionality, ER has other functionality that you can set up.
On the Electronic repor ting destination page, define the ER output destinations for each file output of each
ER format configuration. Use the document types of the Document management framework that you set up
earlier. You can also use this page to set up the optional functionality of ER for each legal entity. For more
information, see the topic about ER destinations that is linked in the "Additional resources" section of this topic.
Whenever you add new Application Object Tree (AOT) artifacts or update existing AOT artifacts that are used as
data sources (tables, views, or data entities) in ER, use the Rebuild table references menu item
(Organization administration > Electronic repor ting > Rebuild table references ) to bring your AOT
changes into the ER metadata.

Frequently asked questions


Question: What is the optimal number of parallel threads to use to load an ER configuration from LCS?
Answer : To calculate the optimal number of parallel threads, use the following empirical formula: Cores ÷ 2 +
1(2). For example, if the program runs on a virtual machine (VM) that has two CPUs, and each CPU contains four
cores, the optimal number is five or six parallel threads.
Question: I have added a custom table to the AOT. I created a new ER model mapping configuration for my ER
data model. During the design of the model mapping, I tried to add a new data source type, Table records , that
refers to my table. I could manually add my table name to the Table lookup, and the ER model mapping accepted it
without errors or warnings. However, my table's name isn't included in the list of available choices that the Table
lookup of this data source offers. How do I include the name of my table?
Answer : To include the name of your custom table in the Table lookup, use the Rebuild table references menu
item as described in the "Optional setup for ER" section earlier in this topic.
Question: Why can't I mark the Microsoft provider as Active in the Electronic repor ting workspace in my
production environment?
Answer : The Microsoft provider is used to mark ER configurations that have been designed and maintained by
Microsoft. We expect that Microsoft will release new versions of the configurations in the future. We recommend
that you not mark the Microsoft provider as Active . Otherwise, you can update the configurations. (For example,
you can change the content and register new versions.) These updates will cause issues in the future, when
Microsoft provides new versions of the configurations, and those new versions must be imported and adopted.
Instead, register a new ER provider for your company, and use it for your ER configurations maintenance. To reuse
a Microsoft configuration, select it as the base for your derived copy. To incorporate changes that are provided by
Microsoft, rebase your configuration to a new version of the Microsoft configuration when it becomes available.

Additional resources
Electronic reporting (ER) overview
Electronic reporting (ER) destinations
Backup storage of ER templates
11/5/2019 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The Electronic reporting (ER) overview lets business users configure formats for outbound documents according to
the legal requirements of various countries and regions. Configured ER formats can use predefined templates to
generate outbound documents in various formats, such as Microsoft Excel workbooks, Microsoft Word documents,
or PDF documents. The templates are filled with data that the configured dataflow for generated documents
requires.
Each configured format can be published as part of an ER solution. Each ER solution can be exported from one
instance of Finance and Operations and imported into another instance.
The ER framework uses the Configure document management to keep the required templates for the current
Finance and Operations instance. Depending on the settings of the ER framework, Microsoft Azure Blob storage or
a Microsoft SharePoint folder can be selected as the physical primary storage location for templates. (For more
information, see Configure the Electronic reporting (ER) framework.) The DocuValue table holds an individual
record for each template. In each record, the AccessInformation field stores the path of a template file that is
located in the configured storage location.
When you manage your Finance and Operations instances, you might decide to migrate the current instance to
another location. For example, you might migrate your production instance to a new sandbox environment. If you
configured the ER framework to store templates in Blob storage, the DocuValue table in the new sandbox
environment refers to the instance of Blob storage in the production environment. However, this instance can't be
accessed from the sandbox environment, because the migration process doesn't support the migration of artifacts
in Blob storage. Therefore, if you try to run an ER format that uses a template to generate business documents, an
exception occurs, and you're notified about the missing template. You're also guided to use the ER cleanup tool to
delete and then re-import the ER format configuration that contains the template. Because you might have several
ER format configurations, this process can be time consuming.
The Backup storage of ER templates feature can help you make your templates so that they are always available to
generate business documents.

NOTE
This feature can be used only when Blob storage has been selected as the physical storage location for ER templates.

For this feature, every template of a new ER format configuration in the current environment is automatically saved
to the backup storage location for templates (the ERDocuDatabaseStorage database table) when the following
events occur:
You import a new ER format configuration that contains a template.
You complete the draft version of an ER format configuration that contains a template.
Backup copies of templates are migrated to a new instance of Finance and Operations as part of the application
database.
If a template of an ER format is required for generation of outbound documents, to process vendor payments
including generation of payment advice and control reports, for example, but the required template isn't found in
the primary storage location, the following events occur:
If the template is available in the backup storage location, it is automatically taken from the backup storage
location, restored to the primary storage location, and used for the current execution.
Every user who is assigned to the Electronic repor ting developer or System administrator role is
notified about the missing template issue through the Action center. The message that appears depends on
the value of the Automatically run the procedure of restoring the broken templates in batch
parameter:
If this parameter is set to Off , the message recommends that you start the batch process to automatically
fix similar issues for other ER format configuration templates. The message includes a link that you can
use to start the batch process.
If this parameter is set to On , the message notifies you that a missing templates issue has been
discovered, and that a new batch process, Restore broken templates from internal database
backup , has been automatically scheduled. This batch process will automatically fix similar issues for
other templates.
To set up the he Automatically run the procedure of restoring the broken templates in batch parameter,
complete the following steps:
1. In Finance and Operations, open the Organization administration > Electronic repor ting >
Configurations page .
2. On the Configurations page, on the Action Pane, on the Configurations tab, in the Advanced settings
group, select User parameters .
3. In the User parameters dialog box, set the required value for the Automatically run the procedure of
restoring the broken templates in batch parameter.

NOTE
This parameter is defined as application user and logged company specific.

The following illustration shows an example of the message that appears when the Automatically run the
procedure of restoring the broken templates in batch parameter is set to On .
The following illustration shows the Restore broken templates from internal database backup batch process
on the Batch job page.

The execution log of the completed Restore broken templates from internal database backup batch process
includes information about the templates that have been restored from the backup storage location to the primary
storage location.

By default, the process of automatically creating backup copies of templates that reside in ER format configurations
is turned on. To stop making backup copies of templates, set the Stop making backup copies of template
option to Yes on the Attachments tab of the Electronic repor ting parameters page. You can open this page
from the Electronic repor ting workspace.
If you set the Stop making backup copies of templates option to Yes and don't want to keep the backup copies
that were previously made of templates, select Clean up backup storage on the Electronic repor ting
parameters page.
If you upgraded your environment to Finance and Operations version 10.0.5 (October 2019) and want to migrate
to a new environment that includes ER format configurations that can be run, select Fill in backup storage on the
Electronic repor ting parameters page before the migration occurs. This button starts the process of making
backup copies of all available templates, so that they can be stored in the ER backup storage location for templates.
Supported deployments
In Finance and Operations version 10.0.5, the Backup storage of ER templates feature is available only in cloud
deployments.

Additional resources
Electronic reporting (ER) overview
Configure the Electronic reporting (ER) framework
Create configuration providers and mark them as
active
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific
business functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how a user assigned to the System Administrator or Electronic Reporting Developer role
can create a configuration provider for Electronic reporting (ER). Each ER configuration will refer to the
provider as the author of the configuration. In this example, you will create a configuration provider for
sample company, Litware, Inc. These steps can be performed in any company as ER configuration providers
are shared among all companies.

Create a provider
1. Go to the navigation pane in the upper left corner and select Organization administration .
2. Go to Workspaces > Electronic repor ting .
3. Go to Related links > Configuration providers .
4. Select New .
A provider record has a unique name and URL. Review the content of this page and skip this
procedure if a record for Litware, Inc. (https://www.litware.com) already exists.
5. In the Name field, type Litware, Inc. .
6. In the Internet address field, type https://www.litware.com .
7. Select Save .
8. Close the page.

Select as an active provider


1. Select the Litware, Inc. provider.
2. Select Set active .
Electronic reporting (ER) destinations
3/18/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can configure a destination for each Electronic reporting (ER) format configuration and its output component
(a folder or a file). Users who have appropriate access rights can also modify destination settings at runtime. This
topic explains ER destination management, the types of destinations that are supported, and security
considerations.
ER format configurations usually contain at least one output component: a file. Typically, configurations contain
multiple file output components of different types (for example, XML, TXT, XLSX, DOCX, or PDF) that are grouped
into either a single folder or multiple folders. ER destination management lets you preconfigure what occurs
when each component is run. By default, when a configuration is run, a dialog box appears that lets you save or
open the file. The same behavior also occurs when you import an ER configuration and don't configure any
specific destinations for it. After a destination is created for a main output component, that destination overrides
the default behavior, and the folder or file is sent according to the destination's settings.

Availability and general prerequisites


The functionality for ER destinations isn't available in Microsoft Dynamics AX 7.0 (February 2016). Therefore, you
must install Microsoft Dynamics 365 for Operations version 1611 (November 2016) or later to use the following
destination types:
Email
Archive
File
Screen
Power BI
Alternatively, you can install one of the following prerequisites. However, be aware that these alternatives provide
a more limited ER destination experience.
Microsoft Dynamics AX application version 7.0.1 (May 2016)
Electronic reporting destination management application hotfix
There is also a Print destination type. To use it, you must install Microsoft Dynamics 365 Finance version 10.0.9
(April 2020).

Overview
You can set up destinations only for ER configurations that have been imported into the current Finance instance,
and for the formats that are available on the Electronic repor ting configurations page. The functionality for
ER destination management is available at Organization administration > Electronic repor ting >
Electronic repor ting destination . On the Electronic repor ting destination page, you can override the
default behavior for a configuration. Imported configurations aren't shown on this page until you select New and
then, in the Reference field, select a configuration to create destination settings for.
After you create a reference, you can create a file destination for each Folder or File output component of the
referenced ER format.

Next, in the Destination settings dialog box, you can enable and disable individual destinations for the file
destination. The Settings button is used to control all the destinations for a selected file destination. In the
Destination settings dialog box, you can control each destination separately by setting the Enabled option for
it.
In versions of Finance before version 10.0.9 , you can create one file destination for each output component
of the same format, such as a folder or a file that is selected in the File Name field. However, in version 10.0.9
and later , you can create multiple file destinations for each output component of the same format.
For example, you can use this capability to configure file destinations for a file component that is used to generate
an outbound document in Excel format. One destination (Archive) can be configured to store the original Excel file
in the ER jobs archive, and another destination (Email) can be configured to simultaneously convert the Excel file
to PDF format and send the PDF file by email.
Destination types
The following destinations are currently supported for ER formats. You can disable or enable all types at the same
time. In this way, you can either do nothing or send the component to all configured destinations.
Email
Archive
File
Screen
Power BI
Print

Applicability
You can set up destinations only for ER configurations that have been imported, and for the formats that are
available on the Electronic repor ting configurations page.

NOTE
Configured destinations are company-specific. If you plan to use an ER format in different companies of the current Finance
instance, you must configure destinations for that ER format for each of those companies.

When you configure file destinations for a selected format, you configure them for the whole format.

At the same time, you might have multiple versions of the format that have been imported into the current
Finance instance. You can view them if you select the Configuration link that is offered when you select the
Reference field.
By default, configured destinations are applied only when you run an ER format version that has a status of either
Completed or Shared . However, you must sometimes use configured destinations when the draft version of an
ER format is run. For example, you modify a draft version of your format, and you want to use configured
destinations to test how generated output will be delivered. Follow these steps to apply destinations for an ER
format when the draft version is run.
1. Go to Organization administration > Electronic repor ting > Configurations .
2. On the Configurations page, on the Action Pane, on the Configurations tab, in the Advanced settings
group, select User parameters .
3. Set the Use destinations for draft status option to Yes .

To use the draft version of an ER format, you must mark the ER format accordingly.
1. Go to Organization administration > Electronic repor ting > Configurations .
2. On the Configurations page, on the Action Pane, on the Configurations tab, in the Advanced settings
group, select User parameters .
3. Set the Run setting option to Yes .
After you complete this setup, the Run draft option becomes available for ER formats that you modify. Set this
option to Yes to start to use the draft version of the format when the format is run.

Destination failure handling


Usually, an ER format is run within the scope of a specific business process. However, the delivery of an outbound
document that is generated during execution of an ER format must sometimes be considered part of that
business process. In this case, if delivery of a generated outbound document to a configured destination is
unsuccessful, execution of the business process must be canceled. To configure the appropriate ER destination,
select the Stop processing on failure option.
For example, you configure vendor payment processing so that the ISO20022 Credit Transfer ER format is run
to generate the payment file and supplementary documents (for example, the covering letter and control report).
If a payment should be considered successfully processed only if the covering letter is successfully delivered by
email, you must select the Stop processing on failure check box for the CoveringLetter component in the
appropriate file destination, as shown in the following illustration. In this case, the status of the payment that is
selected for processing will be changed from None to Sent only when the covering letter that is generated is
successfully accepted for delivery by an email provider that is configured in the Finance instance.
If you clear the Stop processing on failure check box for the CoveringLetter component in the destination, a
payment will be considered successfully processed even if the covering letter isn't successfully delivered by email.
The status of the payment will be changed from None to Sent even if the covering letter can't be sent because,
for example, the email address of the recipient or sender is missing or incorrect.

Output conversion to PDF


You can use the PDF conversion option to convert output in Microsoft Office format (Excel/Word) to PDF format.
Make PDF conversion available
To make the PDF conversion option available in the current Finance instance, open the Feature management
workspace, and turn on the Conver t Electronic Repor ting outbound documents from Microsoft Office
formats to PDF feature.

Applicability
The PDF conversion option can be turned on only for file components that are used to generate output in
Microsoft Office Excel or Word format (Excel file ). When this option is turned on, output that is generated in
Office format is automatically converted to PDF format.
Limitations

NOTE
This feature is a preview feature and is subject to the terms of use that are described in Supplemental Terms of Use for
Microsoft Dynamics 365 Previews.
NOTE
The PDF conversion option is only available for cloud deployments.
The produced PDF is limited to a maximum number of 300 pages.
At this time, only landscape page orientation is supported in the PDF document that is produced from an Excel output.
Only the common system fonts of the Window operating system are used for the conversion of an output that contains no
embedded fonts.

Use the PDF conversion option


To turn on PDF conversion for a file destination, select the Conver t to PDF check box.

If you generate an ER configuration in Excel format and want to convert it to PDF format, you can specify the page
Sel ect a page ori entati on for PDF conversi on

orientation of the PDF. When you select the Conver t to PDF check box to turn on PDF conversion for a file
destination that produces an output file in Excel format, the Page orientation field becomes available on the
PDF conversion settings FastTab. In the Page orientation field, select the preferred orientation.

NOTE
To have the option to select the PDF page orientation, you must install Microsoft Dynamics 365 Finance version 10.0.10
(May 2020) or later.
The selected page orientation is applied to all ER configurations that are generated in Excel format and then converted to
PDF format.
If a converted PDF is created from an ER configuration in Word format, the page orientation of the PDF is taken from the
Word document.
Security considerations
Two types of privileges and duties are used for ER destinations. One type controls a user's overall ability to
maintain the destinations that are configured for a legal entity (that is, it controls access to the Electronic
repor ting destinations page). The other type controls an application user's ability to override, at runtime, the
destination settings that an ER developer or ER functional consultant has configured.

RO L E ( A OT N A M E) RO L E N A M E DUT Y ( A OT N A M E) DUT Y N A M E

ERDeveloper Electronic reporting ERFormatDestinationConfig Configure electronic


developer ure reporting format destination

ERFunctionalConsultant Electronic reporting ERFormatDestinationConfig Configure electronic


functional consultant ure reporting format destination

PaymAccountsPayablePaym Accounts payable payments ERFormatDestinationRuntim Configure electronic


entsClerk clerk eConfigure reporting format destination
during runtime

PaymAccountsReceivablePay Accounts receivable ERFormatDestinationRuntim Configure electronic


mentsClerk payments clerk eConfigure reporting format destination
during runtime

NOTE
Two privileges are used in the preceding duties. These privileges have the same names as the corresponding duties:
ERFormatDestinationConfigure and ERFormatDestinationRuntimeConfigure .

Frequently asked questions


I have imported electronic configurations, and I see them on the Electronic reporting configurations page. But
why don't I see them on the Electronic reporting destinations page?
Make sure that you select New and then select a configuration in the Reference field. The Electronic repor ting
destinations page shows only configurations that destinations have been configured for.
Is there any way to define which Microsoft Azure Storage account and Azure Blob storage are used?
No. The default Microsoft Azure Blob storage that is defined and used for the document management system is
used.
What is the purpose of the File destination in the destination settings? What does that setting do?
The File destination is used to control a dialog box. If you enable this destination, or if no destination is defined
for a configuration, an open or save dialog box appears after an output file is created.
Can you give an example of the formula that refers to a vendor account that I can send email to?
The formula is specific to the ER configuration. For example, if you use the ISO 20022 Credit Transfer
configuration, you can use '$PaymentsForCoveringLetter'.Creditor.Identification.SourceID or
model.Payments.Creditor.Identification.SourceID to get an associated vendor account.
One of my format configurations contains multiple files that are grouped into one folder (for example, Folder1
contains File1, File2, and File3). How do I set up destinations so that Folder1.zip isn't created at all, File1 is sent
by email, File2 is sent to SharePoint, and I can open File3 immediately after the configuration is run?
Your format must first be available in the ER configurations. If this prerequisite is met, open the Electronic
repor ting destination page, and create a new reference to the configuration. You must then have four file
destinations, one for each output component. Create the first file destination, give it a name such as Folder , and
select a file name that represents a folder in your configuration. Then select Settings , and make sure that all the
destinations are disabled. For this file destination, the folder won't be created. By default, because of hierarchical
dependencies between files and parent folders, the files will behave in the same way. In other words, they won't
be sent anywhere. To override that default behavior, you must create three more file destinations, one for each
file. In the destination settings for each, you must enable the destination that the file should be sent to.

Additional resources
Electronic reporting (ER) overview
Archive dest inat ion

2/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can configure an archive destination for each FOLDER or FILE component of an Electronic reporting (ER)
format that is configured to generate outbound documents. Based on the destination setting, a generated
document is stored as an attachment of a record of the ER jobs list.
You can use this option to send the generated document to a Microsoft SharePoint folder or Microsoft Azure
Storage. Set Enabled to Yes to send output to a destination that is defined by the selected document type. Only
document types where the group is set to File are available for selection. You define document types at
Organization administration > Document management > Document types . The configuration for ER
destinations is the same as the configuration for the document management system.

The location determines where the file is saved. After the Archive destination is enabled, the results can be saved
in the Job archive. You can view the results at Organization administration > Electronic repor ting >
Electronic repor ting archived jobs .

NOTE
Select a document type for the Job archive by navigating to Organization administration > Workspaces > Electronic
repor ting > Electronic repor ting parameters . For more information, Configure the Electronic reporting (ER) framework.

SharePoint
You can save a file in a designated SharePoint folder. To define the default SharePoint server, go to Organization
administration > Document management > Document management parameters . On the SharePoint tab,
configure the SharePoint folder. Then, you can select it as the folder where the ER output will be saved. The
SharePoint location must be selected in this document type.
Azure Storage
When the document type location is set to Azure storage , you can save a file to Azure Storage.

Additional resources
Electronic reporting (ER) overview
Electronic reporting (ER) destinations
Configure document management
Email dest inat ion

2/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can configure an email destination for each FOLDER or FILE component of an Electronic reporting (ER) format
that is configured to generate outbound documents. Based on the destination setting, a generated document is
delivered as an attachment of an electronic mail.
Set Enabled to Yes to send an output file by email. After this option is enabled, you can specify the email
recipients and edit the subject and body of the email message. You can set up constant texts for the email subject
and body, or you can use ER formulas to dynamically create email texts.
You can configure email addresses for ER in two ways. The configuration can be completed in the same way that
the Print management feature completes it, or you can resolve an email address by using a direct reference to the
ER configuration through a formula.

Email address types


When you select Edit in the To or Cc fields, the Email to dialog box appears. You can then select the type of email
address to use. The Configuration email and Print Management email types are currently supported.
Print management
If you select the Print Management email type, you can enter fixed email addresses in the To field.

To use email addresses that aren't fixed, you must select the email source type for a file destination. The following
values are supported: Customer , Vendor , Prospect , Contact , Competitor , Worker , Applicant , Prospective
vendor , and Disallowed vendor . After you select an email source type, use the button next to the Email source
account field to open the Formula designer form. You can use this form to attach a formula that returns at
runtime, the par ty account of the selected source type from the processed document to the email destination.

Formulas are specific to the ER configuration. In the Formula field, enter a document-specific reference to a
customer or vendor party type. Instead of typing, you can find the data source node that represents the customer
or vendor account, and then select Add data source to update the formula. For example, if you use the ISO
20022 Credit Transfer configuration, the node that represents a vendor account is
'\$PaymentsForCoveringLetter'.Creditor.Identification.SourceID .

If you enter a string value, such as "DE-001" , and save a formula, an email will be sent to the contact person of the
vendor, DE-001 .

Configuration email
Use this email type if the configuration that you use has a node in the data sources that returns an email address .
You can use data sources and functions in the formula designer to get a correctly formatted email address. For
example, if you use the ISO 20022 Credit Transfer configuration, the node that represents an email address of a
vendor's contact person is '$PaymentsForCoveringLetter'.Creditor.ContactDetails.Email .
Additional resources
Electronic reporting (ER) overview
Electronic reporting (ER) destinations
Formula designer in Electronic reporting (ER)
File dest inat ion

2/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can configure a file destination for each FOLDER or FILE component of an Electronic reporting (ER) format that
is configured to generate outbound documents. Based on the setting of the destination, a generated document is
available for download from the web browser.
On the Destination settings page, if you set Enabled to Yes , an open or save dialog box opens when the
configuration has finished running.

Additional resources
Electronic reporting (ER) overview
Electronic reporting (ER) destinations
Power BI dest inat ion

2/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can configure a Microsoft Power BI destination for each folder or file component of an Electronic reporting (ER)
format that is configured to generate outbound documents. Based on the setting of the destination, a generated
document is stored in a previously configured SharePoint folder.
Set Enabled to Yes to use your ER configuration to arrange the transfer of data from your Dynamics 365 Finance
instance to Microsoft Power BI services. The transferred files are stored on a Microsoft SharePoint Server instance
that must be configured for that purpose. For more information, see Configure Electronic reporting (ER) to pull
data into Power BI.

Additional resources
Electronic reporting (ER) overview
Electronic reporting (ER) destinations
Printer destination
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can send a generated document directly to a network printer for direct printing.

Prerequisites
Before you begin, you must install and configure the Document Routing Agent, and then register the network
printers. For more information, see Install the Document Routing Agent to enable network printing.

Make the Printer destination available


To make the Printer destination available in the current instance of Microsoft Dynamics 365 Finance, go to the
Feature management workspace, and turn on the following features, in this order:
1. Convert Electronic Reporting outbound documents from Microsoft Office formats to PDF
2. Document Routing Agent as Electronic Reporting destination for outbound documents

Applicability
The Printer destination can be configured only for file components that are used to generate output in either
printable PDF format (PDF Merger or PDF file format elements) or Microsoft Office Excel/Word format (Excel file).
When output is generated in PDF format, it's sent to a printer. When output is generated in Microsoft Office format,
it's automatically converted to PDF format and then sent to a printer.
Limitations
This feature is a preview feature and is subject to the terms of use that are described in Supplemental Terms of Use
for Microsoft Dynamics 365 Previews.
The Printer destination is implemented only for cloud deployments.
Use the Printer destination
1. Set the Enabled option to Yes to send a generated document to a printer.
2. In the Printer name field, select the required network printer.
3. Set the Save in print archive? option to Yes to store the generated output in the print archive, so that it's
available for further printing. To access archived output later, go to Organization administration > Inquiries
and repor ts > Repor t archive .

NOTE
The Conver t to PDF option doesn't have to be turned on when you configure the Printer destination. The PDF conversion
for printing purposes will occur even if the option is turned off.

To use a specific page orientation when you print an outbound document in Excel format, you must turn on the
Conver t to PDF option. When you set the Conver t to PDF option to Yes , the Page orientation field becomes
available. In the Page orientation field, you can select a page orientation.

Additional resources
Electronic reporting (ER) overview
Electronic reporting (ER) destinations
Screen dest inat ion

2/4/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can configure a screen destination for each folder or file component of an Electronic reporting (ER) format that
is configured to generate outbound documents. Based on the setting of the destination, a generated document is
opened for preview in a separate browser tab.
If you set Enabled to Yes , a preview of the output is created. You can view some file types, such as XML, TXT, or
PDF, directly in a browser window. For other file types, such Microsoft Excel or Word, the Microsoft Office Online
service is used.

Additional resources
Electronic reporting (ER) overview
Electronic reporting (ER) destinations
ER Configure destinations
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This procedure demonstrates how to set up and use different destinations for Electronic reporting (ER) output
components, such as a folder or a file. The demo data company used to create this procedure is DEMF. Germany is
the country\region of the legal entity's primary address, however you can use any legal entity for this procedure.
The format used in this example is ISO20022 Credit transfer, but you can use any format that you have already
imported. Note, this procedure is an example of a single file and a single destination setup. More information about
Electronic reporting destination management can be found in the Dynamics 365 Finance Help.
1. Go to Organization administration > Electronic reporting > Electronic reporting destination.
2. Click New to create a new set of destinations for a format.
3. In the Reference field, select a format for which you want to configure destinations.
If you don't have a value to select, it means that you have not imported any Electronic reporting format
configurations. You must import a format configuration before setting up destinations.
4. Click New to create a new file destination.
Note, you can create one file destination for each output component of the same format, such as a folder
or a file. You will be able to enable and disable destinations separately in the settings.
5. In the Name field, enter the user-friendly name of output component.
We recommend that you use meaningful names, such as "Payment file" or "Control report". These names
will be presented to users at configuration runtime along with the destination settings.
6. In the File name, select a file or folder that is specific to the format.
7. Click Settings.
8. Select Yes in the Enabled field.
The Enabled check box on each tab enables and disables each destination separately. In this example,
you'll enable sending an output file to a mail recipient when the file is generated.
9. Click Edit, to set up email recipients.
10. Click Add.
11. Click Print Management email.
12. In the Email source field, select an option.
You can select different email source types, such as a customer or a vendor type. This defines the type of
argument that will be returned by the Email source account formula. The Email source account formula,
described in a following step, is the place where you bind an email source. Select Vendor if your formula
will return a vendor account. Use Vendor if you are using the ISO 20022 Credit Transfer configuration
example.
13. Click Email source bind button.
14. In the Formula, enter a document-specific reference to a party type that you selected earlier.
Instead of typing, you can find a data source node that represents the party account, and click the Add
data source button to update the formula. For example, if you use the ISO 20022 Credit Transfer
configuration, the node representing a vendor account is
'$PaymentsForCoveringLetter'.Creditor.Identification.SourceID. Otherwise, enter any string value, such as
"DE-001", to save a formula.
15. Click Save.
16. Close the page.
17. Click Edit to configure contact details for the party.
18. Select Yes in the Primary contact field.
You may use different options to indicate what contact type of the party should be used as an email
address for this destination. We use primary contact in this example.
19. Click OK.
20. Click OK.
21. In the Subject field, type a value.
22. Click OK.
Allow users to set up an ER format reference
inquiring a format from the Global repository
3/17/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can use the Electronic reporting (ER) framework to configure formats for outbound documents in accordance
to the legal requirements of various countries/regions. You can also use the ER framework to configure formats for
parsing inbound documents and use the information from those documents to append or update application data.
Each of these formats can used in your Dynamics 365 Finance instance for handling inbound or outbound business
documents as part of a certain business process.
Usually, you must specify what ER format must be used in a certain business process. To do that, select a single ER
format in a lookup field that is configured as part of business process-specific parameters. These lookup fields are
usually implemented by using the appropriate API of the ER framework. For more information, see ER framework
API - code to display a format mapping lookup.
For example, when you configure foreign trade parameters, you need to set up the references to individual ER
formats that will be used to generate the Intrastat declaration and the Intrastat declaration control report. The
screenshots below show how the ER formats lookup field looks like in the Foreign trade parameters page.
If the current Finance instance contains no Intrastat business process related ER formats, this lookup field will be
empty.

If the current Finance instance contains Intrastat business process related ER formats, this lookup field offers the ER
formats.
This lookup offers only the ER formats that have already been imported to the current Finance instance. To import
ER solutions to the current Finance instance, you need to have permissions to run the appropriate function of the
ER framework that supports the lifecycle of ER solutions that contain ER formats.
Starting in the Finance version 10.0.9 (April 2020 release), the user interface of the ER format lookup that is
implemented by using the ER framework API, has been extended. You can still select the existing ER formats, which
on the Select format configuration FastTab. In addition to that, the extended lookup offers the new option to
search the Global repository (GR) to locate specific ER formats. All ER formats of the GR are offered on the Impor t
from Global repositor y FastTab.

Similar to the Select format configuration FastTab, the Impor t from Global repositor y FastTab shows only
the ER formats that are applicable to the business process for which an ER format is selected in this lookup field. In
this example, the generation of Intrastat declaration. The ER format is applicable for the company to which the user
is currently signed in, depending on the company country context.
When you select an ER format on the Impor t from Global repositor y FastTab, the selected ER format
configuration is imported from the GR to the current Finance instance.
Then, if the import completes successfully, the reference to the imported ER format is stored in this lookup field.
Note that when you access the GR for the first time, you need to follow the link provided to sign up for the
Regulatory Configuration Service (RCS) that is used to manage access to the GR storage.

By default, the Impor t from Global repositor y FastTab presents the list of ER formats from the temporary
storage that is automatically created based on the GR content for performance improvements. This happens when
the Impor t from Global repositor y FastTab is opened the first time, which may take several seconds.
If you do not see the required ER format in the Impor t from Global repositor y FastTab, but you are sure that
this ER format is stored in the GR, select the Synchronize option. This will update the temporary storage and
synchronize it with the current content of the GR.

Feature activation
The availability of this functionality is controlled by the feature Extended lookup of ER format configurations
allowing to inquire the Global repositor y in the Feature management . This feature is enabled by default.
Security considerations
The Maintain configuration repositories (ERMaintainSolutionRepositories ) privilege controls access to the
GR for a user opening the ER format lookup with the enabled Impor t from Global repositor y FastTab. To allow
users to access the GR content from the ER format lookups, you need to change the security settings by granting
the ERMaintainSolutionRepositories privilege to users either directly or by using already assigned roles and
duties.
The following screenshot shows how this privilege can be granted to users who are assigned to the Accountant
role. This role makes allows users to configure foreign trade parameters and set up references to the ER formats in
the File format mapping and Repor t format mapping fields on the Foreign trade parameters page.

Limitations
Access to the GR in the ER format lookup is currently only supported for the selection of ER formats that are used
to generate outbound documents.

Frequently asked questions


Why can't I access the Global repository from the ER format lookup?
If you have enabled the Extended lookup of ER format configurations allowing to inquire the Global
repositor y feature on the Feature management page, but users can't see ER formats on the Impor t from
Global repositor y FastTab and the Synchronize option is visible but disabled, make sure that the Maintain
configuration repositories (ERMaintainSolutionRepositories ) privilege has been granted to the user. Contact
your system administrator to receive this privilege.
Additional resources
Electronic reporting (ER) overview
Electronic reporting (ER) framework API
Manage Electronic reporting (ER) configurations lifecycle
Trace generated report results and compare them
with baseline values
11/5/2019 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can trace the results of Electronic reporting (ER) formats that generate outgoing electronic documents. When
trace generation is turned on (by using the Run in debug mode ER user parameter), a new trace record is
generated in the ER format execution log every time that an ER report is run. The following details are stored in
each trace that is generated:
All warnings that were generated by validation rules
All errors that were generated by validation rules
All generated files that are stored as attachments of the trace record
You can store individual baseline application files for any ER format. Files are considered baseline files when they
describe the expected results of reports that are run. If a baseline file is available for an ER format that is run while
trace generation is turned on, the trace stores, in addition to the details that were mentioned earlier, the result of
the comparison of the generated electronic document with the baseline file. In one click, you can also get the
generated electronic document and its baseline file in a single zip file. You can then do detailed comparison by
using an external tool such as WinDiff.
You can evaluate the trace to analyze whether the electronic documents that are generated include the expected
content. You can do this evaluation in a user acceptance testing (UAT) environment when the code base has been
changed (for example, when you migrated to a new instance of the application, installed hotfix packages, or
deployed code modifications). In this way, you can make sure that the evaluation doesn't affect the execution of ER
reports that are used. For many ER reports, the evaluation can be done in unattended mode.
To learn more about this feature, play the ER Generate repor ts and compare results (Par t 1) and ER
Generate repor ts and compare results (Par t 2) task guides, which are part of the 7.5.4.3 Test IT
ser vices/solutions (10679) business process and can be downloaded from the Microsoft Download Center.
These task guides walk you through the process of configuring the ER framework to use baseline files to evaluate
generated electronic documents.

Example: Trace generated report results and compare them with


baseline values
This procedure explains how to configure the ER framework to collect information about ER format executions and
then evaluate the results of those executions. As part of that evaluation, generated documents are compared with
their baseline files. In this example, you will create the required ER configurations for the Litware, Inc. sample
company. This procedure is intended for users who have the System administrator or Electronic reporting
developer role assigned to them. These steps can be completed by using any data set.
To complete the steps in this example, you must first complete the steps in Create configuration providers and
mark them as active.
1. Go to Organization administration > Workspaces > Electronic repor ting .
2. On the Localization configurations page, in the Configuration providers section, verify that the
configuration provider for the Litware, Inc. sample company is listed, and that it's marked as Active . If you don't
see this configuration provider, follow the steps in Create configuration providers and mark them as active.
Configure document management parameters
1. Go to Organization administration > Document management > Document types , and create a new
document type to store baseline files.
2. In the Class field, enter Attach file .
3. In the Group field, enter File .

NOTE
A new document type that has the same name must be configured for each data set where you plan to use the ER baseline
feature.

Configure ER parameters to start to use the baseline feature


1. In the Electronic repor ting workspace, in the Related links section, select Electronic repor ting
parameters .

2. On the Attachments tab, in the Baseline field, enter or select the document type that you just created.
3. Select Save , and then close the Electronic repor ting parameters page.
Add a new ER model configuration
1. In the Electronic repor ting workspace, in the Configurations section, select the Repor ting
configurations tile.
2. On the Action Pane, select Create configuration .
3. In the drop-down dialog box, in the Name field, enter Model to learn ER baselines .
4. Select Create configuration to confirm the creation of a new ER data model entry.

Design a data model


1. On the Configurations page, on the Action Pane, select Designer .
2. Select New .
3. In the drop-down dialog box, in the Name field, enter Root .
4. Select Add .
5. Select Root reference .
6. Select OK , and then select Save .
7. Close the Model designer page.
8. Select Change status .
9. Select Complete , and then select OK .
Add a new ER format configuration
1. On the Configurations page, on the Action Pane, select Create configuration .
2. In the drop-down dialog box, in the New field group, select Format based on data model Model to learn
ER baselines .
3. In the Name field, enter Format to learn ER baselines .
4. Select Create configuration to confirm the creation of a new ER format entry.

Design a format
For this example, you will create a simple ER format to generate XML documents.
1. On the Configurations page, on the Action Pane, select Designer .
2. Select Add root .
3. In the drop-down dialog box, follow these steps:
a. In the tree, select Common\File .
b. In the Name field, enter Output .
c. Select OK .
4. Select Add .
5. In the drop-down dialog box, follow these steps:
a. In the tree, select XML\Element .
b. In the Name field, enter Document .
c. Select OK .
6. In the tree, select Output\Document .
7. Select Add .
8. In the drop-down dialog box, follow these steps:
a. In the tree, select XML\Attribute .
b. In the Name field, enter ID .
c. Select OK .

9. On the Mapping tab, select Delete .


10. Select Add root .
11. In the drop-down dialog box, in the tree, select General\User input parameter , and then follow these
steps:
a. In the Name field, enter ID .
b. In the Label field, enter Enter ID .
c. Select OK .
12. In the tree, select Output\Document\Id .
13. Select Bind , and then select Save .
Based on the designed structure, the configured format will generate an XML file. This XML contains the Root
element that has the ID attribute that is set to the value that the user enters in the ER runtime dialog box.
Generate a new baseline file for a designed ER format
1. On the Configurations page, on the Versions FastTab, select Run .
2. In the Enter ID field, enter 1 .
3. Select OK .

4. Save a local copy of the out.Admin.xml file that is generated, so that you can use it later as a baseline for
this ER format.

Configure ER parameters to use the baseline feature


1. On the Configurations page, on the Action Pane, on the Configurations tab, select User parameters .
2. Set the Run in debug mode option to Yes .
3. Select OK .
Add a new baseline for designed ER format
1. Go to Organization administration > Electronic repor ting > Configurations .
2. On the Action Pane, select Baselines .

3. On the Action Pane, select New .


4. Select the Format to learn ER baselines ER format that you designed earlier.
5. Select Save .

The baseline is added for the Format to learn ER baselines format.


Configure a baseline rule for the added baseline
1. On the Electronic repor ting format baselines page, on the Action Pane, select the Attachments button
(the paper clip symbol).
2. On the Action Pane, select New > File . In the ER parameters, the File document type should have been
previously selected as the document type that is used to store baseline files.
3. Select Browse , and select the out.Admin.xml file that was generated when you ran the configured ER
format earlier.
4. Close the Attachments page.
5. On the Baselines FastTab, select New .
6. In the Name field, enter Baseline 1 .
7. In the File component name field, enter or select Output . This value indicates that the configured
baseline will be compared with a file that is generated by using the Output format element.
8. In the File name mask field, enter *.xml .

NOTE
You can define the file name mask. When the file name mask is defined, the baseline record will be used to evaluate
the generated output only when the name of the output file that is generated satisfies that mask.

9. If the configured baseline should be used only when the Format to learn ER baselines ER format is run
by users who are signed in to specific companies, select those companies in the Companies field.
10. In the Baseline field, enter or select the out.Admin attachment.
11. Select Save .

Run the designed ER format and review the log to analyze the results
1. Go to Organization administration > Electronic repor ting > Configurations .
2. In the tree, expand Model to learn ER baselines , and then select Model to learn ER
baselines\Format to learn ER baselines .
3. On the Versions FastTab, select Run .
4. In the Enter ID field, enter 1 .
5. Select OK .
6. Go to Organization administration > Electronic repor ting > Configuration debug logs .

NOTE
The execution log contains information about the results of the comparison of the generated file with the configured
baseline. In this example, the log indicates that the generated file and the baseline are equal.

7. Select Delete all .


Run the designed ER format and review the log to analyze the results
1. Go to Organization administration > Electronic repor ting > Configurations .
2. In the tree, expand Model to learn ER baselines , and then select Model to learn ER
baselines\Format to learn ER baselines .
3. On the Versions FastTab, select Run .
4. In the Enter ID field, enter 2 .
5. Select OK .
6. Go to Organization administration > Electronic repor ting > Configuration debug logs .
NOTE
The execution log contains information about the results of the comparison of the generated file with the configured
baseline. In this example, the log indicates that the generated file and the baseline differ.

7. Select Compare .

NOTE
The generated file and the baseline file are offered as a zip file. You can use external comparison tools such as WinDiff to
compare the files and review the differences.

Additional resources
Configure the Electronic reporting (ER) framework
Improvements in tracing the results of generated ER
reports and comparing them with baseline values
11/5/2019 • 7 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the first set of improvements that have been made to the baseline feature of the Electronic
reporting (ER) framework. These improvements are available in Microsoft Dynamics 365 for Finance and
Operations version 10.0.3 (June 2019) and later.

Automate the setting of baseline rules


The Trace generated report results and compare them with baseline values topic explains how to configure the ER
framework to collect information about ER format executions and evaluate the results of those executions. The
example in this topic shows the steps that must be completed.
Here are some of the steps:
Run an ER format to generate an outbound file, and store the file locally.
Add the locally stored file as an attachment of the baseline that was added for an ER format.
Configure the baseline rule for the added baseline. This configuration includes the following steps:
Specify an ER format element that is used to generate an outbound file.
Select the attachment that refers to the generated outbound file.

NOTE
These steps must be done manually, even though the new ER capabilities enable them to be automated. To learn more about
this feature, complete the following example.

Example: Automate the setting of baseline rules


To complete the steps in this example, you must first complete the steps in the example in the Trace generated
report results and compare them with baseline values topic, up through the "Add a new baseline for a designed ER
format" section.
Review added baseline
1. Go to Organization administration > Electronic repor ting > Configurations .
2. Select Baselines .
NOTE
The Baselines button on the Action Pane is available only when the Run in debug mode ER user parameter is
turned on for the current company.

The baseline has been added for the selected Format to learn ER baselines format, but the baseline rules
haven't yet been added for this baseline.

Make a new baseline rule


1. Go to Organization administration > Electronic repor ting > Configurations .
2. In the tree, expand Model to learn ER baselines .
3. In the tree, select Model to learn ER baselines\Format to learn ER baselines .
4. On the Versions FastTab, select Run .
5. In the Enter Id field, enter 1 .
6. Set the Make baseline files option to Yes .
7. Select OK .
8. Select Baselines .

The generated outbound file has been automatically attached to the baseline of the executed ER format. The
baseline rule has been automatically added to this baseline and also contains the reference to the attached
file.
9. In the Name field, enter Baseline 1 .
10. In the File name mask field, enter .xml .
11. Select Save .
Run the format
You're now ready to complete the remaining steps in the example in the Trace generated report results and
compare them with baseline values topic, starting from the "Run the designed ER format and review the log to
analyze the results" section.

NOTE
When you delete the automatically added baseline rule on the Baselines FastTab, the referenced attachment isn't
automatically deleted.

Configure the baseline so that it ignores constantly changing parts of


the ER output
When an ER format has been designed to contain information that is changed when the format is run, the format
must be required to use the ER baseline feature to compare the generated results with baseline values. For
example, the information might be the processing date and time or the unique identifier of a generated document
in different formats (globally unique identifier [GUID], and so on). The new ER capabilities let you configure the
baseline rule so that it ignores changeable elements of an ER format when the format is run with the purpose of
comparing baseline values with the results of the format's execution. To learn more about this feature, complete the
following example.

Example: Configure the baseline so that it ignores constantly changing


parts of the ER output
To complete the steps in this example, you must first complete the steps in the example in the Trace generated
report results and compare them with baseline values topic.
Modify a configured ER format
1. Go to Organization administration > Electronic repor ting > Configurations .
2. In the tree, expand Model to learn ER baselines .
3. In the tree, select Model to learn ER baselines\Format to learn ER baselines .
4. Select Designer .
5. In the tree, select Output\Document .
6. Select Add .
7. In the drop-down dialog box, in the tree, select XML\Attribute .
8. In the Name field, enter ProcessingDateTime .
9. Select OK .
10. On the Mapping tab, in the tree, select Output\Document\ProcessingDateTime .
11. Select Edit formula .
12. In the Formula field, enter the following expression: DATETIMEFORMAT(NOW(), "O")
13. Select Save , and then select Test .
14. Select Test again to retest the configured expression.

NOTE
The Test result tab shows that the configured expression returns a different date and time value whenever it's called.

15. Close the Formula designer page, and then select Save .

16. Close the Format designer page.


Remove an existing baseline rule
1. Go to Organization administration > Electronic repor ting > Configurations .
2. Select Baselines .
3. In the list of baselines, select the baseline that is configured for the Format to learn ER baselines format.
4. On the Baselines FastTab, select Delete to remove the baseline rule that you configured earlier.
Define replacements for bindings of designed ER format
1. On the Configurations page, on the Replacements FastTab, select Select components .
2. In the format components tree, expand Output , expand Output\Document , and then select the check box for
Output\Document\ProcessingDateTime .
3. Select OK .

The selected ER format component has been added to the list of components on the Replacements FastTab. When
the base ER format is run in debug mode, the format's binding for each component will be replaced by the binding
that is shown in the Binding column. To change the default binding for a component that is listed on the
Replacements FastTab, select Edit .
Make a new baseline rule
Follow the steps in the "Example: Automate the setting of baseline rules" section earlier in this topic. A notification
warns you that the outbound file has been generated by using baseline settings, and that a forced replacement of
the format bindings has occurred.
Suppress warnings about the replacement of format bindings
By setting specific ER parameters, you can suppress notifications that warn about the replacement of format
bindings. This suppression can be useful when format bindings are replaced in an unattended mode by using the
Regression Suite Automation Tool. In this case, the warning can be considered a failure of the test case that is
running.
1. On the Configurations page, on the Action Pane, on the Configurations tab, select User parameters .
2. Set the Suppress baseline warnings option to Yes , and then select OK .
Review the generated baseline file
1. Go to Organization administration > Electronic repor ting > Configurations .
2. Select Baselines .
3. Select Attachments .

NOTE
The generated file contains the processing date and time text ("#") from the binding that was configured in the added
baseline rule, not from the format's binding.

4. Close the Attachments page.


Run the designed ER format and review the log to analyze the results
1. Go to Organization administration > Electronic repor ting > Configurations .
2. In the tree, expand Model to learn ER baselines .
3. In the tree, select Model to learn ER baselines\Format to learn ER baselines .
4. On the Versions FastTab select Run .
5. In the Enter Id field, type 1 .
6. Select OK .
7. Go to Organization administration > Electronic repor ting > Configuration debug logs .
The execution log contains information about the results of the comparison of the generated file with the
configured baseline. The log indicates that the generated file and the baseline are equal, even though the executed
format contains the binding to enter a constantly changing date and time value in the outbound file.
NOTE
Although the outbound file has been generated by using baseline settings that force the replacement of the format's
bindings, you don't receive any warnings about the replacement.

Exchange baseline settings between environments


Export baseline settings
The new ER capabilities let you export baseline settings for the selected ER format from the current environment
and store them as XML files.
To export baseline settings, on the Electronic repor ting format baselines page, select Expor t .
Import baseline settings
Exported baseline settings can be imported into a different environment. The environment must first be imported
as an ER format. You can then import the baseline settings.
To import baseline settings from a locally stored XML file, on the Electronic repor ting format baselines page,
select Impor t , and then select Browse to select the XML file.

To import baseline settings from an XML file that is stored on the Microsoft SharePoint Server, based on the current
Document management settings and the selected document type, on the Electronic repor ting format
baselines page, select Impor t from source . Then select the document type and the XML file. The required
document type to access the SharePoint folder must be configured in advance.
NOTE
You can use Task recorder to record the steps for selecting the required document type and the file name in the Impor t
from source dialog box. In this way, you can keep required baseline settings on SharePoint Server and then automatically
import them by playing a task recording when you run automated tests by using the Regression Suite Automation Tool.

Additional resources
Trace generated report results and compare them with baseline values
Task recorder resources
Automate testing with Electronic reporting
11/5/2019 • 13 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how you can use the Electronic reporting (ER) framework to automate testing of some
functionality. The example in this topic shows how to automate the testing of vendor payment processing.
The application uses the ER framework to generate payment files and corresponding documents during vendor
payment processing. The ER framework consists of a data model, model mappings, and format components that
support payment processing for different payment types and the generation of documents in different formats.
These components can be downloaded from Microsoft Dynamics Lifecycle Services (LCS) and imported into the
instance.
You also can customize each Microsoft component and use it as the basis of your own custom component. By
creating a custom version, you can make changes that support specific requirements. For example, you can adjust
the ER data model and ER model mapping to access customer-specific application data, or you can change an ER
format to modify the layout of a generated document.
You can use customized ER formats to process payment files that generate vendor payments and also to process
control reports. Versioning is supported in ER components. Therefore, Microsoft can provide updated versions of
ER solutions for vendor payment processing, and you can automatically merge the updated version with your
customized component by rebasing it. However, you must test the rebased version to make sure that it works as
you expect.
ER data models and ER model mappings are common for many ER formats that are used to process payments of
different types and to generate country/region-specific payment documents. Therefore, it's highly desirable to
automate user acceptance and integration testing so that it's automatically done in multiple companies but
considers the country/region context of each target company, uses different datasets, and so on.
For more information about how to create a custom version of a format that is based on the format that you
received from a configuration provider, see ER Upgrade your format by adopting a new, base version of that format.

Key concepts
Functional power users can author user acceptance and integration testing without having to write source code.
Use the ER baseline feature to compare generated documents to master copies. For more information, see
Trace generated report results and compare them with baseline values.
Use Task recorder to record test cases, and include baseline assessment. For more information, see Task
recorder resources.
Group test cases for required test scenarios. For more information, see Create and automate user acceptance
tests.
Use Business process modeler (BPM) in LCS to make libraries for user acceptance tests.
Use BPM test libraries to create a test plan and test suites in Microsoft Azure DevOps Services (Azure
DevOps).
Functional power users can run user acceptance and integration tests.
Use Regression suite automation tool (RSAT) to run test cases of the desired test suite.
Report the results of the testing to Azure DevOps, and use this service to investigate those results.

Prerequisites
Before you can complete the tasks in this topic, you must complete the following prerequisites:
Deploy a topology that supports test automation. You must have access to the instance of this topology for
the System administrator role. This topology must contain the demo data that will be used in this
example. For more information, see Deploy and use an environment that supports continuous build and test
automation.
To run user acceptance and integration tests automatically, you must install RSAT in the topology that you're
using and configure it in the appropriate manner. For information about how to install and configure RSAT
and configure it to work with Finance and Operations apps and Azure DevOps, see Regression Suite
Automation Tool. Pay attention to the prerequisites for using the tool. The following illustration shows an
example of the RSAT settings. The blue rectangle encloses the parameters that specify access to Azure
DevOps. The green rectangle encloses the parameters that specify access to the instance.

To organize test cases in suites to help guarantee the correct execution sequence, so that you can collect logs
of test executions for further reporting and investigation, you must have access to Azure DevOps from the
deployed topology.
To complete the example in this topic, we recommend that you download ER usage for RSAT tests. This zip
file contains the following task guides:

C O N T EN T F IL E N A M E A N D LO C AT IO N

Sample task recording to prepare data for testing Prepare\Recording.xml


C O N T EN T F IL E N A M E A N D LO C AT IO N

Sample task recording to process vendor payment Process\Recording.xml

Prepare the Accounts payable module to process vendor payments


1. Sign in to your instance.
2. Download the following ER configurations from LCS. For instructions, see ER Import a configuration from
Lifecycle Services.
Payment model ER model configuration
Payment model mapping 1611 ER model mapping configuration
BACS (UK) ER format configuration

3. Select the GBSI demo data company, which has a country/region context in Great Britain.
4. Configure Accounts payable parameters:
a. Go to Accounts payable > Payment setup > Methods of payment .
b. Select the Electronic method of payment.
c. Configure the selected method of payment so that it uses the BACS (UK) ER format that you
downloaded earlier for vendor payment processing:
a. On the File formats FastTab, set the Generic electronic Expor t format option to Yes .
b. In the Expor t format configuration field, select BACS (UK) .
NOTE
If you have the derived version of this ER format that was created to support customizations, you can select this
configuration in the Electronic method of payment.

5. Create an example vendor payment:


a. Go to Accounts payable > Payments > Payment journal .
b. Make sure that you haven't posted the payment journal.

c. Select Lines , and enter a line that has the following information.

F IEL D EXA M P L E VA L UE

Vendor name GB_SI_000001

Debit 1,000.00

Currency GBP

Offset account type Bank

Offset account GBSI OPER

Method of payment Electronic

Prepare the ER framework to test vendor payment processing


Configure ER parameters
1. Go to Organization administration > Electronic repor ting > Electronic repor ting parameters .
2. On the Attachments tab, in the Baseline field, select File as the document type that the Document
management (DM) framework uses to keep documents that are related to the baseline feature as DM
attachments.
Generate baseline copies of vendor payment–related documents
1. Go to Accounts payable > Payments > Payment journal .
2. Select Lines .
3. Select Generate payments .
4. Select the Electronic method of payment.
5. Select the GBSI OPER bank account.
6. Set the Print control repor t option to Yes .
7. Download the generated output as a zip file.
8. Open the downloaded file.
9. Extract following files from the downloaded file:
File payment file in text format
ERVendOutPaymControlRepor t control report file in XLSX format

Turn on the ER baseline feature


1. Go to Organization administration > Electronic repor ting > Configurations .
2. On the Action Pane, on the Configurations tab, select User parameters .
3. Set the Run in debug mode option to Yes .
By turning on the Run in debug mode parameter, you force the ER framework to perform the following actions
after the execution of any ER format that generates outgoing documents:
1. Determine whether a baseline was configured for any of components of the executed ER format.
2. Determine whether each configured baseline is applicable in the current conditions (company code of the
signed-in company, file name and file name extension of the generated output, and so on).
3. For each applicable baseline, perform the following actions:
a. Compare the output that is generated during execution of the ER format with the corresponding baseline.
b. Store the results of the comparison in the ER configurations debug log.
Configure ER baselines for vendor payment processing
1. Go to Organization administration > Electronic repor ting > Configurations .
2. Select Baselines .
3. Select New .
4. In the Reference field, select the BACS (UK) format.
5. Select Attachments .
6. Add a new baseline for the vendor payment file:
a. Select New .
b. In the Type field, select the File DM document type that you configured in the ER parameters to store
baseline artifacts.
c. Browse to select the locally saved File payment file in text format.
d. In the Description field, enter Payment TXT file .
7. Add a new baseline for the control report for the vendor payment:
a. Select New .
b. In the Type field, select the File DM document type that you configured in the ER parameters to store
baseline artifacts.
c. Browse to select the locally saved ERVendOutPaymControlRepor t control report file in XLSX format.
d. In the Description field, enter Payment XLSX control repor t .

8. Close the page.


9. On the Baselines FastTab, select New to configure a baseline for the payment file:
a. Name the line Baseline setting for payment file .
b. In the File component name field, select file to apply this baseline to the ER format output that
generates the payment file in BACS (UK) text format.
c. In the Companies field, select GBSI to apply this baseline when the BACS (UK) ER format is run in the
GBSI company.
d. In File name mask field, enter *.TXT to apply this baseline only to outputs of the file format component
that have the .txt file name extension.
e. In the Baseline field, select Payment TXT file so that this baseline is used for comparison with the
generated output.
10. Select New to configure a baseline for the control report:
a. Name the line Baseline setting for control repor t .
b. In the File component name field, select ERVendOutPaymControlRepor t to apply this baseline to
the ER format output that generates the control report.
c. In the Companies field, select GBSI to apply this baseline when the BACS (UK) ER format is run in the
GBSI company.
d. In File name mask field, enter *.XLSX to apply this baseline only to outputs of the
ERVendOutPaymControlRepor t format component that have the .xslx file name extension.
e. In the Baseline field, select Payment XLSX control repor t so that this baseline is used for comparison
with the generated output.

Record tests to validate vendor payment processing


As a functional power user, you can record your own steps to test vendor payment processing. We recommend that
you play (and edit, as required) the Prepare\Recording.xml task recording that you downloaded earlier. This
recording is used to set all testing data to the correct state. That step is required because the testing can be done
many times, and every test must use data that is in the same state.
Reset user settings
1. Open the default dashboard.
2. Select the Settings button (the gear symbol).
3. Select User options .
4. Select Usage data .
5. Select Reset .
6. Select Yes to confirm that you want to reset usage data.
7. Close the page.
Record the steps to prepare data for testing
1. Select the Settings button (the gear symbol).
2. Select Task recorder .
3. Select Playback recording .
4. Select Open from this PC .
5. Select Browse , and select the locally save Prepare\Recording.xml file.
6. Select Star t .
7. Keep selecting Play next pending step until all the steps in the recording have been played.
This task recording performs the following actions:
1. Set the status of the processed payment line to None .
2. Turn on the Run in debug mode ER user parameter.

3. Clean up the ER debug log that contains the results of the comparison of generated files to baselines.
Record the steps to test vendor payment processing
We recommend that you play (and edit, as required) the Process\Recording.xml task recording that you
downloaded earlier. This recording is used to process vendor payments and validate the results of the comparison
of generated documents to corresponding baselines.
1. Select the Settings button (the gear symbol).
2. Select Task recorder .
3. Select Playback recording .
4. Select Open from this PC .
5. Select Browse , and select the locally saved Process\Recording.xml file.
6. Select Star t .
7. Keep selecting Play next pending step until all the steps in the recording have been played.
This task recording performs the following actions:
1. Start vendor payment processing.
2. Select the correct runtime parameters, and turn on generation of a control report.

3. Access the ER debug log to record the results of the comparison of generated outputs to corresponding
baselines.
In the ER debug log, the results of the comparison appear in the Generated text field. The Format
component and Format path that caused a log entr y fields refer to the file component for which the
generated output has been compared to the baseline.

4. The comparison of the current output to the baseline is recorded by using the Validate Task recorder option
and selecting Current Value .

The following illustration shows what the recorded validation steps look like in the task recording.
Add the recorded tests to Azure DevOps
1. Open the Azure DevOps environment.
2. Select the project that you defined in the RSAT parameters when you configured the tool.
3. Select the test plan that you defined in the RSAT parameters when you configured the tool.
4. Create a new test case for the selected test plan:
a. Name the test case Prepare data to test processing of vendor's electronic payment .
b. Attach the Recording.xml file from the Prepare folder that you downloaded earlier.
5. Create a new test case for the selected test plan:
a. Name the test case Test processing of vendor payments by using ER format BACS (UK) .
b. Attach the Recording.xml file from the Process folder that you downloaded earlier.

NOTE
Pay attention to the correct execution order of the tests that are added.

Prepare RSAT to run the recorded tests


Load the tests from Azure DevOps to RSAT
1. Open the local RSAT application in the current topology.
2. Select Load to load the tests that currently reside in Azure DevOps into RSAT.

Create automation and parameters files


1. In RSAT, select the tests that you loaded from Azure DevOps.
2. Select New to create RSAT automation and parameters files.
Modify the parameters files
1. In RSAT, select the Prepare data to test processing of vendor's electronic payment test case.
2. Select Edit .
3. In the Microsoft Excel workbook that is opened, on the General worksheet, change the company code to
GBSI , because this company will be used for test execution.
4. In RSAT, select the Test processing of vendor payments by using ER format BACS (UK) test case.
5. Select Edit .
6. In the Excel workbook that is opened, on the General worksheet, change the company code to GBSI .
7. On the ERFormatMappingRunLogTable worksheet, notice that cells A:3 and C:3 contain the text of the
fields in the ER debug log table that are used to validate the results of the comparison of the output to the
baseline. These texts will be used to evaluate ER debug log records that are created during test execution.

Run the tests and analyze the results


Run the tests in RSAT
1. In RSAT, select the loaded tests.
2. Select Run .
Notice that test cases are automatically run in the application by using a web browser.
Analyze the results of test execution
The results of the test execution are stored in RSAT. Notice that both tests were passed.
Notice that the results of the test execution are also sent to Azure DevOps so that you can do further analysis.

Simulate a situation where tests fail


This test suite must fail when at least one of the generated outputs doesn't match the corresponding baseline. To
achieve this situation, you can use your derived version of the BACS (UK) format that will generate a payment file
that has different content than the corresponding baseline. To simulate this situation, you can use the same BACS
(UK) format but change the payment amount on the processed payment line.
1. Open the application and go to Accounts payable > Payments > Payment journal .
2. Select Lines .
3. Select the payment line, and then select Payment status > None .
4. In the Debit field, change the value from 1,000.00 to 2,000.00 .
5. Select Save to save your changes.
Run the tests in RSAT
1. In RSAT, select the loaded tests.
2. Select Run .
Notice that test cases are automatically run in the application by using a web browser.
Analyze the results of test execution
The results of the test execution are stored in RSAT. Notice that the second test failed during the second execution.
Notice that the results of the test execution are also sent to Azure DevOps so that you can do further analysis.

You can access the status of each test. You can also access the execution log so that you analyze the reasons for any
failure. In the following illustration, the execution log shows that the failure occurred because of the difference in
content between the generated payment file and its baseline.

Therefore, as you've seen, the functioning of any ER format can be evaluated automatically by using RSAT as the
testing platform and by using Task recorder-based test cases that use the ER baseline feature.

Additional resources
Task recorder resources
Regression suite automation tool
Create and automate user acceptance tests
Deploy and use an environment that supports continuous build and test automation
Trace generated report results and compare them with baseline values
ER Upgrade your format by adopting a new, base version of that format
ER Import a configuration from Lifecycle Services
Configure Electronic reporting (ER) to pull data into
Power BI
11/5/2019 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how you can use your Electronic reporting (ER) configuration to arrange the transfer of data
from your instance to Power BI services. As an example, this topic uses Intrastat transactions as business data that
must be transferred. The Power BI map visualization uses this Intrastat transaction data to present a view for
analysis of company import/export activities on the Power BI report.

Overview
Microsoft Power BI is a collection of software services, apps, and connectors that work together to turn external
sources of data into coherent, visually immersive, and interactive insights. Electronic reporting (ER) lets users easily
configure data sources and arrange the transfer of data from the application to Power BI. The data is transferred as
files in the OpenXML worksheet (Microsoft Excel workbook file) format. The transferred files are stored on a
Microsoft SharePoint Server that has been configured for that purpose. The stored files are used in Power BI to
make reports that include visualizations (tables, charts, maps, and so on). Power BI reports are shared with Power
BI users, and they are accessed in Power BI dashboards and on the application pages. This topic explains the
following tasks:
Configure Microsoft Dynamics 365 Finance.
Prepare your ER format configuration to get data from the Finance application.
Configure the ER environment to transfer data to Power BI.
Use transferred data to create a Power BI report.
Make the Power BI report accessible in Finance.

Prerequisites
To complete the example in this topic, you must have the following access:
Access for one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
Access to the SharePoint Server that is configured for use with the application
Access to the Power BI framework

Configure document management parameters


1. On the Document management parameters page, configure access to the SharePoint Server that will be
used in the company that you're signed in to (the DEMF company in this example).
2. Test the connection to the SharePoint Server to make sure that you've been granted access.

3. Open the configured SharePoint site. Create a new folder where ER will store Excel files that have the
business data that the Power BI reports require as a source of Power BI datasets.
4. On the Document types page, create a new document type that will be used to access the SharePoint
folder that you just created. Enter File in the Group field and SharePoint in the Location field, and then
enter the address of the SharePoint folder.

Configure ER parameters
1. In the Electronic repor ting workspace, click the Electronic repor ting parameters link.
2. On the Attachments tab, select the File document type for all the fields.
3. In the Electronic repor ting workspace, make the required provider active by clicking Set active . For more
information, play the ER Select ser vice provider task guide.

Use an ER data model as the source of data


You must have an ER data model as the source of business data that will be used on Power BI reports. This data
model is uploaded from the ER configurations repository. For more information, see Download Electronic
reporting configurations from Lifecycle Services, or play the ER Impor t a configuration from Lifecycle
Ser vices task guide. Select Intrastat as the data model that will be uploaded from the selected ER configurations
repository. (In this example, version 1 of the model is used.) You can then access the Intrastat ER model
configuration on the Configurations page.
Design an ER format configuration
You must create a new ER format configuration that uses the Intrastat data model as the source of business data.
This format configuration must generate output results as electronic documents in OpenXML (Excel file) format.
For more information, play the ER Create a configuration for repor ts in OPENXML format task guide. Name
the new configuration Impor t / expor t activities , as shown in the following illustration. Use the ER data - import
and export details Excel file as a template when you design the ER format. (For information about how to import a
format template, play the task guide.)

To modify the Impor t / expor t activities format configuration, follow these steps.
1. Click Designer .
2. On the Format tab, name the file element for this format Excel output file .

3. On the Mapping tab, specify the name of the Excel file that will be generated whenever this format is run.
Configure the related expression to return the value Impor t and expor t details (the .xlsx file name
extension will be added automatically).
4. Add a new data source item for this format. (This enumeration will be required for further data binding.)
a. Name the data source direction_enum .
b. Select Data model enumeration as the data source type.
c. Refer to the Direction data model enumeration.

5. Complete the binding of elements of the Intrastat data model and elements of the designed format, as
shown in the following illustration.

After it's run, the ER format generates the output result in Excel format. It sends the details of the Intrastat
transactions to the output result, and separates them as transactions that describe either import activities or export
activities. Click Run to test the new ER format for the list of Intrastat transactions on the Intrastat page (Tax >
Declarations > Foreign trade > Intrastat ).
The following output result is generated. The file is named Impor t and expor t details.xlsx , as you specified in
the format settings.

Configure the ER destination


You must configure the ER framework to send the output result of the new ER format configuration in a special
way.
The output result must be sent to the folder of the selected SharePoint Server.
Each execution of the format configuration must create a new version of same Excel file.
On the Electronic repor ting page (Organization administration > Electronic repor ting ), click the
Electronic repor ting destination item, and add a new destination. In the Reference field, select the Impor t /
expor t activities format configuration that you created earlier. Follow these steps to add a new file destination
record for the reference.
1. In the Name field, enter the title of the file destination.
2. In the File name field, select the name Excel output file for the Excel file format component.
Click the Settings button for the new destination record. Then, in the Destination settings dialog box, follow
these steps.
1. On the Power BI tab, set the Enabled option to Yes .
2. In the SharePoint field, select the Shared document type that you created earlier.

Schedule execution of the configured ER format


1. On the Configurations page (Organization administration > Electronic repor ting >
Configurations ), in the configurations tree, select the Impor t / expor t activities configuration that you
created earlier.
2. Change the status of version 1.1 from Draft to Complete to make this format available for use.

3. Select the completed version of the Impor t / expor t activities configuration, and then click Run . Note
that the configured destination is applied to the output result that is generated in Excel format.
4. Set the Batch processing option to Yes to run this report in unattended mode.
5. Click Recurrence to schedule the required recurrence of this batch execution. The recurrence defines how
often the updated data will be transferred to Power BI.

6. After it's configured, you can find the ER report execution job on the Batch jobs page (System
administration > Inquiries > Batch jobs ).

7. When this job is run for the first time, the destination creates a new Excel file that has the configured name
in the selected SharePoint folder. Every subsequent time that the job is run, the destination creates a new
version of this Excel file.
Create a Power BI dataset by using the output result of the ER format
1. Sign in to Power BI, and either open an existing Power BI group (workspace) or create a new group. Either
click Add under Files in the Impor t or Connect to Data section, or click the plus sign (+ ) next to
Datasets in the left pane.

2. Select the SharePoint – Team sites option, and then enter the path of SharePoint Server that you're using
( https://ax7partner.litware.com in our example).
3. Browse to the /Shared Documents/GER data/PowerBI folder, and select the Excel file that you created as
the source of data for the new Power BI dataset.
4. Click Connect , and then click Impor t . A new dataset is created that is based on the selected Excel file. The
dataset can also be added automatically to the newly created dashboard.

5. Configure the refresh schedule for this dataset to force a periodic update. Periodic updates enable the
consumption of new business data that comes via periodic execution of the ER report through new versions
of the Excel file that are created on the SharePoint Server.

Create a Power BI report by using the new dataset


1. Click the Impor t and expor t details Power BI dataset that you created.
2. Configure the visualization. For example, select the Filled map visualization, and configure it as follows:
Assign the Countr yOrigin dataset field to the Location field of the map visualization.
Assign the Amount dataset field to the Color saturation field of the map visualization.
Add the Activity and Year dataset fields to the Filters fields collection of the map visualization.
3. Save the Power BI report as Impor t and expor t details repor t .
Note that the map shows the countries/regions that are mentioned in the Excel file (Austria and Switzerland
in this example). These countries/regions are colored to show the proportion of invoiced amounts for each.
4. Update the list of Intrastat transactions. The export transaction that originated from Italy is added.

5. Wait for the next scheduled execution of the ER report and the next scheduled update of the Power BI
dataset. Then review the Power BI report (select to show import transactions only). The updated map now
shows Italy.

Access Power BI report in Finance


Set up the integration with Power BI. For more information, see Configure Power BI integration for workspaces.
1. On the Electronic repor ting workspace page that supports Power BI integration (Organization
administration > Workspaces > Electronic repor ting workspace ), click Options > Open repor t
catalog .
2. Select the Impor t and expor t details Power BI report that you created, to show that report as an action
item on the selected page.
3. Click the action item to open the page that shows the report that you designed in Power BI.

Additional resources
Electronic reporting (ER) destinations
Electronic reporting (ER) overview
Generate printable FTI forms
11/5/2019 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The Electronic reporting (ER) framework lets you generate printable free text invoice (FTI) forms as Microsoft Office
documents. This topic provides information about how to build your own configurations as well as details of
available configuration templates.

Overview
In addition to the existing capability of generating printable FTI forms by using Microsoft SQL Server Reporting
Services (SSRS), you can now use the ER framework. You can manage printable FTI forms in Microsoft Office Excel
and Word. You can also modify the layout, data flow, and formatting to meet specific requirements without making
code changes.

NOTE
If you want to start with an overview of existing ER configurations for this sample of the printable FTI forms solution, you can
go directly to section Download sample ER configurations to generate printable FTI forms later in this topic.

Create customized configurations for FTI printable forms


As part of your customized solution for printable FTI forms, you must create a set of ER configurations.
Configure the ER data model
Your application must include the ER data model configuration that contains a data model that describes the
customer invoicing business domain. As a requirement, the name of the data model must be
CustomersInvoicing . For information about how to design ER data models, see ER Design domain specific data
model.
Configure the ER model mapping
Your application must include the ER model mapping for the CustomersInvoicing data model. The model mapping
can be in either the ER data model configuration or the ER model mapping configuration. However, the name of the
root descriptor of the model mapping must be FreeTextInvoice .
The mapping must contain the following data sources:
Data source type: Table records
This data source must be named CustInvoiceJour .
It must refer to the CustInvoiceJour application table.
It's used at runtime to pass from the application to the ER model mapping the list of invoices that have
been selected for printing.
Data source type: Object
This data source must be named PrintMgmtPrintSettingDetail .
It must refer to the PrintMgmtPrintSettingDetail application class.
It's used at runtime to pass from the application to the ER model mapping details of the print
management settings for the ER format that is running.
The details of the application integration with the ER framework can be found in the
ERPrintMgmtRepor tFormatSubscriber class (ER Application Suite integration model) in the source code of the
application.
For more information about the design of ER model mappings, see Define ER model mappings and select data
sources for them.
Configure the ER format
In your application instance, you must have the ER format configuration that will be used to generate FTI forms.

NOTE
This format configuration must be created for the CustomersInvoicing data model, and it must use the model mapping that
has the FreeTextInvoice root descriptor.

For information about how to configure ER formats, see ER Create a format configuration (November 2016). For
information about how to design ER formats to generate reports in OpenXML format, see ER Design a
configuration for generating reports in OPENXML format (November 2016).

Configure print management


To generate FTI forms by using the ER framework, you can assign ER formats in the same way that you assign SSRS
reports. To associate the ER format with all Accounts receivable FTIs, go to Accounts receivable > Setup >
Forms > Form setup > General > Print management > Free text invoice > Original . To associate the ER
format with a specific customer or invoice, follow these steps.
1. Go to Accounts receivable > Invoices > All free text invoices .
2. Select the FTI to associate the ER format with, and open the Print management setup page.
3. Select the document level to specify the scope of invoices for processing.
4. Select the ER format for the specified document level.
NOTE
Only ER formats that use the FreeTextInvoice root descriptor of the CustomersInvoicing data model appear in the
Repor t format lookup field for the selected format.

Generate FTI forms


FTI forms are generated in the ER framework in the same way that SSRS reports are generated.
To generate FTI forms, you can select invoices either by range or by selection.
When you use ER formats to print FTI forms in this way, the default ER file destinations are used. You can't change
the destination. For more information about how to configure the ER destinations for ER formats, see Electronic
reporting (ER) destinations.
You can also generate FTI forms when you post an FTI, by turning Print invoice on and turning Use print
management destinations off.

NOTE
When you use ER formats to print FTI forms in this way, the default ER file destinations are used. You can change the default
destination at runtime if the destination has already been configured. To change the destination, you must have the following
security privilege:
Name: ERFormatDestinationRuntimeMaintain
Label: Maintain electronic reporting format destination during runtime
The ER framework currently supports the following destinations for generated documents:
Downloaded file – Generated forms are offered as downloads that you can save by using the browser.
Screen – Microsoft Office 365 Excel is used to preview generated FTI forms in Excel format.
SharePoint folder – Generated forms are stored based on the settings of the Document management
framework.
Application archive – Generated forms are stored as attachments of execution log records in the Microsoft
Azure Storage.
Email – Generated forms are sent as email attachments.

NOTE
You can't send the FTI forms that are generated directly to the printer, because direct printing that uses the Dynamics Printer
Routing Agent isn't currently supported.

Download sample ER configurations to generate printable FTI forms


You can download sample ER configurations to use as a template for your FTI solution. The configurations are
stored in the Shared asset library in Microsoft Dynamics Lifecycle Services (LCS). The configurations include:
The Customer invoicing model configuration contains the required data model and model mapping.
The Customer FTI repor t (GER) configuration contains the sample format.

NOTE
These configurations have been created as samples to help clarify possible scenarios. The future of these configurations
depends on the results of this evaluation and any feedback that is received.

Features that are implemented in the sample ER format


In the sample ER format configuration, an Excel file is used as a template to generate FTI forms.

Currently, this sample ER format supports the following features to generate FTI forms:
FTI forms are generated for both original invoices that have been posted and original invoices that haven't yet
been posted. Corrected invoices and credit notes aren't supported.
FTI forms are generated in the invoice language. The format of values and dates in the generated forms is based
on the settings of the user's client locale.
Generated invoices show data unavailability notifications if there are no lines in the invoices that are processed.
Generated invoice headers are based on the paper format that has been selected for the FTI form on the
Accounts receivable parameters page. Company details appear in the header of the generated invoice form
only if the paper format is blank.
Generated invoice forms show company and customer tax exempt numbers when the appropriate option has
been selected for the FTI form on the Accounts receivable parameters page.
The generated invoice lines and invoice totals sections show the default invoice's monetary details in the invoice
registration currency.
The generated invoice totals section can show monetary details in the euro currency and the invoice registration
currency when the Print amount in currency representing the euro option is enabled on the Accounts
receivable parameters page.
Generated invoice forms show any process invoice notes that are available, based on settings on the Accounts
receivable parameters page. Notes are included for both the whole invoice and each invoice line.
Generated invoice forms include notes for the customer FTI form and the processing invoice language when
they have been configured in the AR form notes list.
Depending on the Print management settings, generated invoices include custom footer text when it has been
configured for the invoice language, the ER format, and the FTI document scope.
The totals section of generated invoice forms includes any cash discount information that is available.
The payment schedule section of generated invoice forms includes any payment schedule details that are
available.
The markup section of generated invoice forms includes any charges transactions that are available.
Generated invoice forms include sales tax details, based on the Sales tax specification setting on the
Accounts receivable parameters page. This section can show tax details either in the invoice registration
currency only, or in the invoice registration currency and the company accounting currency at the same time.
Generated invoice forms show direct debit notification details. For example, they show when the method of
payment that has the mandatory direct debit mandate ID was selected for the invoice, when the processing
invoice was registered in the euro currency, and when the direct debit mandate ID was defined for the invoice.
Generated invoices show any prepayment details that are available for posted invoices.
Generated invoice forms can be sent to an invoice customer as an email attachment. The appropriate ER file
destination should be configured for the ER format that is being used.
Country/region-specific features
The following country/region-specific features are included in the sample ER format to show how specific
requirements can be handled in ER configurations.
Norway
The Enterprise register term is put on the header of the generated invoice form when the invoice is processed for a
legal entity that is configured in the following manner:
The country/region context for Norway is used.
The Print Foretaksregisteret parameter is active on sales documents.
Spain
The Special regime for cash accounting method term is put on the header of the generated invoice form
when the invoice is processed for a legal entity that is configured in the following manner:
The country/region context for Spain is used.
The special regime for the cash accounting method is enabled on the invoice processing date.
When cash discount details, such as the cash discount amount and invoice line net amount, are available, they are
presented in the invoice totals section of the generated invoice form when it has been processed for a legal entity
that is configured in the following manner:
The country/region context for Spain is used.
Cash discount is applied in the invoice is turned on in the invoice option (General ledger parameters >
Sales tax section ).
Italy
The goods discount mark is included on the invoice lines of the generated invoice when it's being processed for a
legal entity that is configured using the country/region context for Italy.
Finland
In addition to the generated invoice form, Giro money transfer slips can be generated as follows:
For the legal entity that uses the country/region context for Finland, and that has at least one bank account that
is marked as Giro account and Bank bar code .
For an invoice that is marked as required for the Finnish associated payment attachment.
NOTE
The sample ER format has been configured to optionally generate the Giro money transfer slips in the separate worksheet.

NOTE
You must first install the font that is used to generate the bar code on the local machine where the generated invoice form in
Excel format will be previewed.

Use the sample ER format to configure email destinations


Use the following elements of the sample ER format to configure email destinations:
The email address of a customer contact can be accessed through the following ER expression:
model.InvoiceBase.Contact.ElectronicMail .
The email subject text can be accessed through the following ER expression: Emailing.TxtToUse.Subject .
The email body text can be accessed through the following ER expression: Emailing.TxtToUse.Body .
The default text of the email's subject and body is defined in the sample ER format. The language depends on the
format's labels. This default text will be used for emails if a custom organization email template that has the
predefined ERFTITMP ID hasn't been added.

NOTE
The ERFTITMP email template ID has been defined in the sample ER format. It can be changed as required in a new ER
format that is created from this sample format.

If the organization email template that has the predefined ERFTITMP ID has been added for the legal entity that
you're processing the invoice for, the template for the email subject and body text will be used to generate the
email.
The Emailing.TxtToUse.Subject ER expression of the sample ER format is configured to replace any occurrences
of the placeholder %1 by the processing invoice ID.
The Emailing.TxtToUse.Body expression of the sample format is configured for the following substitutions for
placeholders:
"%1" is replaced with the name of the customer's contact person.
"%2" is replaced with the company name.
"%3" is replaced with the customer name.
"%4" is replaced with the name of the company's contact person.
"%5" is replaced with the job title of the company's contact person.
"%6" is replaced with the email address of the company's contact person.
Additional resources
Electronic reporting (ER) overview
Trace the execution of ER formats to troubleshoot
performance issues
10/3/2019 • 15 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

As part of the process of designing Electronic reporting (ER) configurations to generate electronic documents, you
define the method that is used to get data out of the application and enter it in the output that is generated. The ER
performance trace feature helps significantly reduce the time and cost that are involved in collecting the details of
ER format execution and using them to troubleshoot performance issues. This tutorial provides guidelines about
how to take performance traces for executed ER formats, and how to use the information from these traces to help
improve performance.

Prerequisites
To complete the examples in this tutorial, you must have the following access:
Access to one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
Access to the instance of Regulatory Configuration Services (RCS) that has been provisioned for the same
tenant as the application, for one of the following roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
You must also download and locally store the following files.

F IL E C O N T EN T

Performance trace model.version.1 Sample ER data model configuration

Performance trace metadata.version.1 Sample ER metadata configuration

Performance trace mapping.version.1.1 Sample ER model mapping configuration

Performance trace format.version.1.1 Sample ER format configuration

Configure ER parameters
Each ER performance trace that is generated in the application is stored as an attachment of the execution log
record. The Document management (DM) framework is used to manage these attachments. You must configure
ER parameters in advance, to specify the DM document type that should be used to attach performance traces. In
the Electronic repor ting workspace, select Electronic repor ting parameters . Then, on the Electronic
repor ting parameters page, on the Attachments tab, in the Others field, select the DM document type to use
for performance traces.

To be available in the Others lookup field, a DM document type must be configured in the following manner on
the Document types page (Organization administration > Document management > Document types ):
Class: Attach file
Group: File

NOTE
The selected document type must be available in every company of the current instance, because DM attachments are
company-specific.

Configure RCS parameters


ER performance traces that are generated will be imported into RCS for analysis by using the ER format designer
and the ER mapping designer. Because ER performance traces are stored as attachments of the execution log
record that is related to the ER format, you must configure RCS parameters in advance, to specify the DM
document type that should be used to attach performance traces. In the instance of RCS that has been provisioned
for your company, in the Electronic repor ting workspace, select Electronic repor ting parameters . Then, on
the Electronic repor ting parameters page, on the Attachments tab, in the Others field, select the DM
document type to use for performance traces.
To be available in the Others lookup field, a DM document type must be configured in the following manner on
the Document types page (Organization administration > Document management > Document types ):
Class: Attach file
Group: File

Design an ER solution
Assume that you've started to design a new ER solution to generate a new report that presents vendor
transactions. Currently, you can find the transactions for a selected vendor on the Vendor transactions page (go
to Account payable > Vendors > All vendors , select a vendor, and then, on the Action Pane, on the Vendor
tab, in the Transactions group, select Transactions ). However, you want to have all vendor transaction at the
same time in one electronic document in XML format. This solution will consist of several ER configurations that
contain the required data model, metadata, model mapping, and format components.
1. Sign in to the instance of RCS that has been provisioned for your company.
2. In this tutorial, you will create and modify configurations for the Litware, Inc. sample company. Therefore,
make sure that this configuration provider has been added to RCS and selected as active. For instructions,
see the Create configuration providers and mark them as active procedure.
3. In the Electronic repor ting workspace, select the Repor ting configurations tile.
4. On the Configurations page, import the ER configurations that you downloaded as a prerequisite into
RCS, in the following order: data model, metadata, model mapping, format. For each configuration, follow
these steps:
a. On the Action Pane, select Exchange > Load from XML file .
b. Select Browse to select the appropriate file for the required ER configuration in XML format.
c. Select OK .
Run the ER solution to trace execution
Assume that you've finished designing the first version of the ER solution. You now want to test it in your instance
and analyze execution performance.
Import an ER configuration from RCS into Finance and Operations
1. Sign in to your application instance.
2. For this tutorial, you will import configurations from your RCS instance (where you design your ER
components) into your instance (where you test and finally use them). Therefore, you must make sure that
all the required artifacts have been prepared. For instructions, see the Import Electronic reporting (ER)
configurations from Regulatory Configuration Services (RCS) procedure.
3. Follow these steps to import the configurations from RCS into the application:
a. In the Electronic repor ting workspace, on the tile for the Litware, Inc. configuration provider, select
Repositories .
b. On the Configuration repositor y page, select the repository of the RCS type, and then select Open .
c. On the Configurations FastTab, select the Performance trace format configuration.
d. On the Versions FastTab, select version 1.1 of the selected configuration, and then select Impor t .

The corresponding versions of the data model and model mapping configurations are automatically imported as
prerequisites for the imported ER format configuration.
Turn on the ER performance trace
1. Go to Organization administration > Electronic repor ting > Configurations .
2. On the Configurations page, on the Action Pane, on the Configurations tab, in the Advanced settings
group, select User parameters .
3. In the User parameters dialog box, in the Execution tracing section, follow these steps:
a. In the Execution trace format field, select Debug trace format to start to collect the details of ER
format execution. When this value is selected, the performance trace will collect information about
the time that is spent on the following actions:
Running each data source in the model mapping that is called to get data
Processing each format item to enter data in the output that is generated
You use the Execution trace format field to specify the format of the generated performance trace
that the execution details are stored in for ER format and mapping elements. By selecting Debug
trace format as the value, you will be able to analyze the content of the trace in ER Operation
designer, and see the ER format or mapping elements that are mentioned in the trace.
b. Set the following options to Yes to collect specific details of the execution of the ER model mapping
and ER format components:
Collect quer y statistics – When this option is turned on, the performance trace will collect
the following information:
The number of database calls that were made by data sources
The number of duplicate calls to the database
Details of the SQL statements that were used to make database calls
Trace access of caching – When this option is turned on, the performance trace will collect
information about the ER model mapping's cache usage.
Trace data access – When this option is turned on, the performance trace will collect
information about the number of calls to the database for executed data sources of the record
list type.
Trace list enumeration – When this option is turned on, the performance trace will collect
information about the number of records that are requested from data sources of the record
list type.

NOTE
The parameters in the User parameters dialog box are specific to the user and the current company.

Run the ER format


1. Select the DEMF company.
2. Go to Organization administration > Electronic repor ting > Configurations .
3. On the Configurations page, in the configuration tree, select the Performance trace format item.
4. On the Action Pane, select Run .
Notice that the file that is generated presents information about 265 transactions for six vendors.

Review the execution trace


Export the generated trace from the application
Performance traces are decoupled from the source ER format and can be serialized to an external zip file.
1. Go to Organization administration > Electronic repor ting > Configuration debug logs .
2. On the Electronic repor ting run logs page, in the left pane, in the Configuration name field, select
Performance trace format to find the log records that have been generated by the execution of the
Performance trace format configuration.
3. Select the Attachments button (the paper clip symbol) in the upper-right corner of the page, or press
Ctrl+Shift+A .

4. On the Attachments for Electronic repor ting run logs page, on the Action Pane, select Open to get
the performance trace as a zip file and store it locally.

NOTE
The trace that is generated has a reference to the source ER report via a unique report identifier in GUID format only. The
version numbering of the format isn't considered.

Notice that the association between the performance trace that has been generated for the executed ER format
and the ER model mapping is based on the root descriptor that was used and the common data model. The
version numbering of the format and model mapping isn't considered. The setting of the Default for model
mapping flag for the model mapping also isn't considered.
Import the generated trace into RCS
1. In RCS, in the Electronic repor ting workspace, select the Repor ting configurations tile.
2. On the Configurations page, in the configuration tree, expand the Performance trace model item, and
select the Performance trace format item.
3. On the Action Pane, select Designer .
4. On the Format designer page, on the Action Pane, select Performance trace .
5. In the Performance trace result settings dialog box, select Impor t performance trace .
6. Select Browse to select the zip file that you exported earlier.
7. Select OK .

Use the performance trace for analysis in RCS – Format execution


1. In RCS, on the Format designer page, select Expand/collapse to expand the content of all format items.
Notice that additional information is shown for some items of the current format:
The actual time that was spent entering data in the generated output by using the format item
The same time expressed as a percentage of the total time that was spent generating the whole output

2. Close Format designer page.


Use the performance trace for analysis in RCS – Model mapping
1. In RCS, on the Configurations page, in the configuration tree, select the Performance trace mapping item.
2. On the Action Pane, select Designer .
3. Select Designer .
4. On the Model mapping designer page, on the Action Pane, select Performance trace .
5. Select the trace that you imported earlier.
6. Select OK .
Notice that new information becomes available for some data source items of the current model mapping:
The actual time that was spent getting data by using the data source
The same time expressed as a percentage of the total time that was spent running the whole model mapping
Notice that ER informs you that the current model mapping duplicates database requests while the
VendTable/<Relations/VendTrans.VendTable_AccountNum data source is run. This duplication occurs because the
list of vendor transactions is called two times for each iterated vendor record:
One call is made to enter details of each transaction in the data model, based on configured bindings.
One call is made to enter the calculated number of transactions per vendor in the data model.

The value [Q:530] indicates that the VendTrans table was called 530 times to return a record from that table to the
VendTable/<Relations/VendTrans.VendTable_AccountNum data source. The value [530] indicates that the
VendTable/<Relations/VendTrans.VendTable_AccountNum data source was called 530 times to return a record
from that data source and enter the details from it in the data model.
We recommend that you use caching for the VendTable/<Relations/VendTrans.VendTable_AccountNum data
source, to reduce the number of calls that are made to get the details for 265 transactions and help improve the
performance of the model mapping.
It can also be useful to reduce the number of calls that are made to the LedgerTransTypeList data source. This data
source is used to associate each value of the LedgerTransType enumeration with its label. By using this data
source, you can find an appropriate label and enter it in the data model for each vendor transaction. The current
number of calls to this data source (9,027) is quite high for 265 transactions.
Improve the model mapping based on information from the execution
trace
Modify the logic of the model mapping
1. Follow these steps to use caching, to help prevent duplicate calls to the database:
a. In RCS, on the Model mapping designer page, in the Data sources pane, select the VendTable item.
b. Select Cache .
c. Expand the VendTable item, expand the list of one-to-many relations for the VendTable data source (the
<Relations item), and select the VendTrans.VendTable_AccountNum item.
d. Select Cache .

2. Follow these steps to bring the LedgerTransTypeList data source into the scope of the VendTable data
source:
a. In the Data source types pane, expand the Functions item, and select the Calculated field item.
b. In the Data sources pane, select the VendTable item.
c. Select Add .
d. In the Name field, enter $TransType .
e. Select Edit formula .
f. In the Formula field, enter LedgerTransTypeList .
g. Select Save .
h. Close the Formula editor page.
i. Click OK .
3. Follow these steps to do caching of the $TransType field:
a. Select the LedgerTransTypeList item.
b. Select Cache .
c. Select the VendTable.$TransType item.
d. Select Cache .

4. Follow these steps to change the $TransTypeRecord field so that it starts to use the cached $TransType
field:
a. In the Data sources pane, expand the VendTable item, expand the <Relations item, expand the
VendTrans.VendTable_AccountNum item, and select the VendTable.
VendTrans.VendTable_AccountNum.$TransTypeRecord item.
b. Select Edit .
c. Select Edit formula .
d. In the Formula field, find the following expression:
FIRSTORNULL (WHERE (LedgerTransTypeList, LedgerTransTypeList.Enum = @.TransType))
e. In the Formula field, enter the following expression:
FIRSTORNULL (WHERE (VendTable.'$TransType', VendTable.'$TransType'.Enum = @.TransType)).
f. Select Save .
g. Close the Formula editor page.
h. Select OK .
5. Select Save .
6. Close the Model mapping designer page.
7. Close the Model mappings page.
Complete the modified version of the ER model mapping
1. In RCS, on the Configurations page, on the Versions FastTab, select version 1.2 of the Performance trace
mapping configuration.
2. Select Change status .
3. Select Complete .
Import the modified ER model mapping configuration from RCS into the application
Repeat the steps in the Import an ER configuration from RCS into Finance and Operations section earlier in this
topic to import version 1.2 of the Performance trace mapping configuration.

Run the modified ER solution to trace execution


Run the ER format
Repeat the steps in the Run the ER format section earlier in this topic to generate a new performance trace.

Review the execution trace


Export the generated trace from the application
Repeat the steps in the Export the generated trace from the application section earlier in this topic to save a new
performance trace locally.
Import the generated trace into RCS
Repeat the steps in the Import the generated trace into RCS section earlier in this topic to import the new
performance trace into RCS.
Use the performance trace for analysis in RCS – Model mapping
Repeat the steps in the Use the performance trace for analysis in RCS – Model mapping section earlier in this topic
to analyze the latest performance trace.
Notice that the adjustments that you made to the model mapping have eliminated duplicate queries to database.
The number of calls to database tables and data sources for this model mapping has been also reduced. Therefore,
the performance of the whole ER solution has improved.
In the trace information, the value [12] for the VendTable data source indicates that this data source was called 12
times. The value [Q:6] indicates that six calls were translated to database calls to the VendTable table. The value
[C:6] indicates that the records that were fetched from the database were cached, and six other calls were
processed by using the cache.
Notice that the number of calls to the LedgerTransTypeList data source has been reduced from 9,027 to 240.

Review the execution trace in the application


In addition to RCS, some versions might offer capabilities for an ER framework designer experience. These
versions have an Enable design mode option that can be turned on. You can find this option on the General tab
of the Electronic repor ting parameters page, which you can open from the Electronic repor ting workspace.

If you use one of these versions, you can analyze the details of generated performance traces directly in the
application. You don't have to export them from the application and import them into RCS.

Review the execution trace by using external tools


Configure user parameters
1. Go to Organization administration > Electronic repor ting > Configurations .
2. On the Configurations page, on the Action Pane, on the Configurations tab, in the Advanced settings
group, select User parameters .
3. In the User parameters dialog box, in the Execution tracing section, in the Execution trace format field,
select PerfView XML .
Run the ER format
Repeat the steps in the Run the ER format section earlier in this topic to generate a new performance trace.
Notice that the web browser offers a zip file for download. This file contains the performance trace in PerfView
format. You can then use the PerfView performance analysis tool to analyze the details of ER format execution.

Use external tools to review an execution trace that includes database


queries
Because of improvements that have been made to the ER framework, the performance trace that is generated in
PerfView format now offers more details about ER format execution. In Microsoft Dynamics 365 for Finance and
Operations version 10.0.4 (July 2019), this trace can also include details of executed SQL queries to the application
database.
Configure user parameters
1. Go to Organization administration > Electronic repor ting > Configurations .
2. On the Configurations page, on the Action Pane, on the Configurations tab, in the Advanced settings
group, select User parameters .
3. In the User parameters dialog box, in the Execution tracing section, set the following parameters:
In the Execution trace format field, select PerfView XML .
Set the Collect quer y statistics option to Yes .
Set the Trace quer y option to Yes .
Run the ER format
Repeat the steps in the Run the ER format section earlier in this topic to generate a new performance trace.
Notice that the web browser offers a zip file for download. This file contains the performance trace in PerfView
format. You can then use the PerfView performance analysis tool to analyze the details of ER format execution. This
trace now includes the details of SQL database access during the execution of the ER format.
Business document management overview
4/11/2020 • 21 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Business users use the Electronic reporting (ER) framework to configure formats for outbound documents in
accordance with the legal requirements of various countries/regions. Users can also define the dataflow to specify
what application data is placed in generated documents. The ER framework generates outbound documents in
Microsoft Office formats (Excel workbooks or Word documents) by using predefined templates. The templates are
populated with required data in accordance to configured dataflow while required documents are generated. Each
configured format can be published as part of an ER solution to generate specific outbound documents. This is
represented by an ER format configuration that can contain templates you can use to generate different outbound
documents. Business users can use this framework to manage required business documents.
Business document management is built on top of the ER framework and enables business users to edit
business document templates by using Microsoft Office 365 service or appropriate Microsoft Office desktop
application. Edits to the documents might include changing business document designs and adding placeholders
for additional data without source code changes and new deployments. No knowledge of the ER framework is
required to update templates of business documents.

NOTE
Be aware that Business document management allows you to modify templates that are used to produce business
documents such as orders, invoices, etc. While a template has been modified and a new version of it has been published, this
version is used to generate required business documents. Business document management cannot be used to modify
already generated business documents.

Supported deployments
Currently, the Business document management feature is implemented only for cloud deployments. If this feature
is critical to your on-premises deployment, let us know by providing feedback on the Ideas site.

Supported Microsoft Office applications


To use Business document management for editing templates in Excel or Word formats by using Microsoft Office
desktop applications, you must have Microsoft Office 2010 or later installed. This is supported in cloud and on-
premises deployment.

Business document availability


The following reports, with Excel-based templates, will become available with the release of the public preview:
Accounts receivable (August 2019)
Sales advance invoice
Sales order packing slip
Accounts payable (August 2019)
Purchase advance invoice
Purchase order
Purchase order packing slip
More reports will become available. Special notifications about additional reports will be sent separately.
A complete list of all the reports planned for the October 2019 release can be found in Configurable business
documents reporting in Word and Excel. To learn more about this feature, complete the example in this topic.

Configure ER parameters
Because Business document management is built on top of the ER framework, you must configure the ER
parameters to start working with Business document management. To do this, you need to set up the ER
parameters as described in Configure the Electronic reporting (ER) framework. You also need to add a new
configuration provider as described in Create configuration providers and mark them as active.

Import ER solutions
Sample ER configurations are used in the example of this procedure. You must import, into your current instance
of Dynamics 365 Finance, the ER configurations that contain the business document templates that can be edited
by using Business document management. Download, and then locally store the following files to complete this
procedure.
Sample ER customer invoicing solution

F IL E C O N T EN T

Customer invoicing model.version.2.xml ER data model configuration

Customer FTI report (GER).version.2.3.xml Free text invoice ER format configuration

Sample ER payment checks solution


F IL E C O N T EN T

Model for cheques.version.10.xml ER data model configuration

Cheques printing format.version.10.9.xml Payment cheque ER format configuration

Sample ER foreign trade solution

F IL E C O N T EN T

Intrastat model.version.1.xml ER data model configuration

Intrastat report.version.1.9.xml Intrastat control report ER format configuration

Use the following procedure to import each file. Import the ER data model configuration of each ER solution in the
tables above before you import the corresponding ER format configuration.
1. Open the Organization administration > Electronic repor ting > Configurations page.
2. On the top of the page, select Exchange .
3. Select Load from XML file .
4. Select Browse to load the required XML file.
5. Select OK to confirm configuration's import.

Alternatively, you can import the officially published ER format configurations from Microsoft Dynamics Lifecycle
Service (LCS). For example, to complete this procedure you can import the latest version of the Free text invoice
(Excel) ER format configuration. The corresponding ER data model and ER model mapping configurations will be
imported automatically.
For more information about importing ER configurations, see Manage the ER configuration lifecycle.

Enable Business document management


To start Business document management, you need to open the Feature management workspace and enable the
Business document management feature.
Use the following procedure to enable Business document management functionality for all legal entities.
1. Open the Feature management workspace.
2. On the New tab, select the Business document management feature in the list.
3. Select Enable now to turn on the selected feature.
4. Refresh the page to access the new feature.

NOTE
For more information about using the new document user interface in Business document management, see New document
user interface in Business document management.

For more information about activating new features, see Feature management overview.
Configure parameters
Use the information in the following sections to set up the basic parameters for Business document management.
Prerequisites for parameter setup
Before you can set up Business document management, you must set up the required document type in the
Document management framework. This document type is used to specify a temporary storage of documents in
Office formats (Excel and Word) that are used as templates for ER reports. The temporary storage template can be
edited by using the Office desktop applications.
For this document type, the following attribute values must be selected.

AT T RIB UT E N A M E AT T RIB UT E VA L UE

Class Attach file

Group File

Location SharePoint

For information about how to set up the required document management parameters and document types, see
Configure document management.

Basic Business document management parameters can be set up on the Business document parameters page.
Set up parameters

Only specific users can access the page. This includes:


Users who are assigned to the System administrator role.
Users who are assigned to any role that is configured to perform the duty, Maintain Business document
management parameters (AOT name ERBDMaintainParameters ).
Use the following procedure to set up the basic parameters for all legal entities.
1. Sign in as a user with access to the Business document parameters page.
2. Go to Organization administration > Electronic repor ting > Business document management >
Business document parameters .
3. On the Business document parameters page, on the Attachments tab, in the SharePoint document type
field, define the document type that should be used to temporarily store templates in Office formats while they
are edited using the Office desktop applications.

NOTE
Only document types that are configured using a SharePoint location are available for this parameter.

The selected document type is company-specific and will be used when the user is working with Business
document management in the company for which the selected document type is configured. When the user is
working with Business document management in another company, the same selected document type will be used
if one has not been configured for this company. When a document type has been configured, it will be used
instead of the one selected in the SharePoint document type field.

NOTE
The SharePoint document type parameter defines a SharePoint folder as temporary storage for templates that are
editable using either Microsoft Excel or Word. You need to set up this parameter if you plan to use these Office desktop
applications for editing templates. For more information, see Edit a template in the Office desktop application. You can keep
this parameter blank if you plan to modify the template by only using the functionality in Office 365. For more information,
see Edit a template in Office 365.

Configure access permissions


By default, when access to Business document management permissions is not enabled, every user with access to
the Business document management workspace will see all of the ER solution templates that are available. The
Business document management workspace will show only those templates that reside in ER format
configurations and that are marked by a Business document type tag.
The list of templates available in the Business document management workspace can be restricted by configuring
access permissions. This may be important when different templates are used to produce business documents for
different business domains (functional areas), and you want to allow specific users access to different templates for
editing in the Business document management workspace.
Business document management access permissions can be set on the Configurator of access permissions .
Only the following users can access the page:
Users assigned to the System administrator role.
Users assigned to any other role that is configured to perform the duty, Configure permissions to access
Business document templates for editing (AOT name ERBDTemplatesSecurity ).
Use the following procedure to set up the access Business document management permissions for all legal
entities.
1. Sign in as a user with access to the Configurator of access permissions page.
2. Go to Organization administration > Electronic repor ting > Business document management >
Manage access permissions .
Pay attention to the notification informing you that the usage of access permissions for Business document
management is currently not enabled.

With this setting, every user assigned to any security role that is configured to perform the Manage
Business document templates (AOT name ERBDManageTemplates ) duty is able to open the Business
document management workspace and can edit any template that is available.
The following graphic shows what is available in the Business document management workspace for users
assigned to the Accounts receivable clerk role. With the current access permissions setting, the user can
edit business document templates from different functional areas including invoicing, regulatory reporting,
and payments.
3. On the Configurator of access permissions page, select Access permissions setting .
4. In the Settings of access permissions to edit templates dialog box, enable the Apply configured
access permissions option.
5. Select OK to confirm that Business document management access permissions have been enabled.

6. Select Add to enter a new business role for which permissions to access Business document management
templates must be configured.
7. In the Security roles dialog box, select the Accounts receivable clerk role and then select OK to confirm
the role selection.
8. On the Access permissions per tags of configurations tab, select New .
9. In the Tag type field, select Functional area , and in the ID field, select Invoicing .
10. Select Save to store configured access permissions for the selected role.
The current setting means that for any user who is assigned to the Accounts receivable clerk role and
performing the duty, Manage Business document templates (AOT name ERBDManageTemplates ), ER
format configuration templates that have the Invoicing value for the Functional area tag will be available
to edit in the Business document management workspace.
11. Switch the Related information pane from the right side of the current page. The Related information
pane shows how the configured access permissions will be applied, including what ER configuration
templates will be available for users that are assigned to the Accounts receivable clerk role.
12. On the Access permissions per configurations tab, select the Add option.
13. In the Select configuration dialog box, mark the Intrastat repor t ER format configuration.
14. Select OK to confirm the entry of the selected configurations and then select Save to store the configured
access permissions for the selected role.
The current setting means that for any user assigned to the Accounts receivable clerk role and performing the
duty, Manage Business document templates (AOT name ERBDManageTemplates ), the following templates
will be available to edit in the Business document management workspace:
Templates that have the value, Invoicing for the Functional area tag.
Templates from ER format configurations that are listed on the Access permissions per configurations tab
(templates from the Intrastat repor t format configuration of the Statutor y repor ting domain in this
example).

The following graphic shows what the Business document management workspace provides to a user assigned to
the Accounts receivable clerk role. With the current Business document management access permissions
setting, the user can edit business document templates from the Invoicing domain and the Intrastat repor t ER
format configuration. Templates from the Payments domain are not accessible for the Accounts receivable
clerk role.

NOTE
The Access permissions per configurations rules are stored by using the unique identification ID of an ER format
configuration. This means that these rules will not be deleted when an ER configuration that refers to them are deleted.
When you import deleted configurations back to this instance, these rules will refer to them again. There is no need to set up
the rules again after the deleted configurations are imported again.

Use Business document management to edit templates


Business users can access business document templates for editing in the Business document management
workspace. Only the following users can access the Business document management workspace:
Users assigned to the role, System administrator .
Users assigned to any role that is configured to perform the duty, Manage Business document templates
(AOT name ERBDManageTemplates ).
Use the following procedure to edit free text invoice templates in the Business document management workspace.
Before you complete this procedure, you must have completed all of the preceding procedures in this topic.
1. Sign in as a user with access to the Business document management workspace.
2. Open the Business document management workspace.
When the Office-like UI experience for Business document management feature is turned off in the
Feature management workspace, the main grid in the Business document management workspace shows
the following templates:
Templates that are owned by your ER configuration provider (that is, the provider that is currently marked as
active in the Electronic repor ting workspace). After you select one of these templates, you can select Edit
template to start or continue to edit it.
Templates that are owned by other ER configuration providers. After you select one of these templates, you can
select New document to create a copy of it that is owned by your ER configuration provider, and then start to
edit the copy.
The Template tab presents the content of the selected template. Select the Details tab to review details of the
selected template as well as details of an ER format configuration this template resides in. Notice that all of the
templates have a status of Published , and contain no details in the Revision column. This means that these
templates are not currently being edited.
When the Office-like UI experience for Business document management feature is turned on in the
Feature management workspace, the main grid in the Business document management workspace shows
templates that are owned by your ER configuration provider (that is, the provider that is currently marked as active
in the Electronic repor ting workspace). After you select one of these templates, you can select Edit template to
start or continue to edit it.
To work with templates that are owned by other ER configuration providers, select New document to create a
copy of the template that is owned by your ER provider. You can then start to edit the copy. For more information,
see New document user interface in Business document management.
Initiate editing templates owned by your configuration provider
1. In the Business document management workspace, select the Cheques printing format template in the list.
2. Select the Details tab.

The Edit template option is available for the selected template. This option is always available for a template in an
ER format configuration that is owned by the active ER configuration provider (Litware, Inc. in this example).
When Edit template is selected, the existing template from the draft version of the underlying ER format
configuration will be available to edit.
Initiate editing templates owned by other providers
1. In the Business document management workspace, select the document that you want to use as a template.

3. Select New document , and in the Title field, change the title of the editable template if needed. The text will be
used to name the ER format configuration that is automatically created. Note that the draft version of this
configuration (Customer FTI repor t (GER) Copy ) that will contain the edited template will automatically be
marked to run this ER format for the current user. At the same time, the non-modified original template from
the base ER format configuration will be used to run this ER format for any other user.
4. In the Name field, change the name of the first revision of the editable template that will be created
automatically.
5. In the Comment field, change the comment for the automatically created revision of the editable template.
6. Select OK to confirm the start of the editing process

The New document option is always available for a template in an ER format configuration provided by current
and another provider (Microsoft in this example) that doesn't have any revision. The edited template will then be
stored in a new ER format configuration that is automatically generated.
Start editing a template
1. From the selected template, select Edit document .
2. In the Name field, change the name of the first revision of the editable template that will be created
automatically.
3. In the Comment field, change the remark for the automatically created revision of the editable template.
4. Select OK to confirm the start of the editing process.
The BDM template editor page will open. The selected template will be available for online editing by using
Office 365.

You can modify the template using Office 365. For example, in Office online, change the font of the field prompts in
Edi t a templ ate i n Offi ce 365

the template header from Regular to Bold . These changes are automatically stored in the editable template that is
stored in the primary template's storage (by default, the Azure blob storage). This is configured for the ER
framework.
Edi t a templ ate i n the Offi ce desktop appl i cati on

NOTE
This function is only available when the SharePoint document type parameter is properly configured. For more
information, see Configure parameters.

1. Select the Open in Desktop App option to modify the template by using the functionality of the Office
desktop application (Excel in this example). The editable template is copied from the permanent storage to
the temporary storage configured in the Business document management parameters as a SharePoint
folder.
2. Confirm that you want to open the template from the temporary file storage in the Office desktop Excel
application.

3. Modify the template. For example, change the font of the fields prompts in the template header by updating
color from Black to Blue .

4. Select Save in the Excel desktop application to store the template changes in the temporary storage.
5. Close the Excel desktop application.
6. Select Sync stored copy to synchronize the temporary template storage to the permanent template
storage.

NOTE
The copy of the editable template in the temporary file storage is kept for only the current session of template editing. When
you finish this session by closing the BDM template editor page, this copy will be deleted. If you adjusted the template in
the temporary file storage and did not select Sync stored copy , when you try to close the BDM template editor page, a
message will ask whether you want to store introduced changes. Select Yes if you want to save your changes to the
template in the permanent file location.

Validate a template
1. On the BDM template editor page, select Check for issues to validate the modified template against the
underlying ER format configuration. Follow the recommendations (if any) to align the template with the
structure of the format from the base ER format configuration.
2. Select Show format to view the current structure of the format from the base ER format configuration that
must be aligned with the editable template.
3. Select Hide format to close the pane.
4. Close the BDM template editor page.
The updated template is shown on the Template tab. Notice that the status of the edited template is now Draft
and the current revision is no longer empty. This means that the process of this template's editing has been started.

Test the modified template


1. In the application, change to the company, USMF .
2. Go to Accounts receivable > Invoices > All free text invoices .
3. Select the FTI-00000002 invoice, and then select Print management .
4. Select the Module - accounts receivable > Documents > Free text invoice > Original document
level to specify the scope of invoices for processing.
5. In the Repor t format field, select the Customer FTI repor t (GER) Copy ER format for the specified
document level.

6. Press Escape to close the current page.


7. Select Print , and then click Selected .
8. Download the document and open it using the Excel desktop application.
The modified template is used to generate the free text invoice report for the selected item. To analyze how this
report is affected by the changes that you introduced to the template, you can run this report in one application
session right after you modified the template in another application session.
Create an alternative template revision
1. Open the BDM template editor page and select the Customer FTI repor t (GER) Copy template.
2. On the Revisions tab, select New .
3. If needed, in the Name field, change the name of the second revision and base it on the currently active first
revision.
4. If needed, in the Comment field, change the remark for the automatically created revision of the editable
template.

You created a new revision of your template that has been stored in the permanent template's storage. Now
you can continue editing the template of the second revision that is currently selected as active.
5. Select the first revision and then select Set active . You can select another revision as active if at any time
you want to return to that revision of the template.
6. Select the second revision, and then select Delete .
7. Select OK to confirm that you want to delete the selected revision. You can delete any of the non-active
revisions when they are no longer needed.
Delete a modified template
1. On the BDM template editor page, select the Template tab.
2. Select Delete .
3. If you select OK to confirm deletion, the Customer FTI repor t (GER) Copy ER format with the modified
template will be deleted. Select Cancel to explore other options.
Revoke changes of template
When you edit the template from an ER format that is owned by the current active provider, you will be offered the
option to revoke changes introduced for the template.

1. On the BDM template editor page, select the Template tab.


2. Select Undo .
3. If you select OK to revoke the changes introduced for the template, the modified template will be replaced by
the original template and all changes will be removed. When you revoke changes to the template, you will be
able to delete the template. Select Cancel to explore other options.
Publish a modified template
1. On the BDM template editor page, on the Template tab, select Publish .
2. If you select OK to confirm publishing, the draft version of the derived Customer FTI repor t (GER) Copy ER
format that contains the modified template will be marked as completed. The modified template becomes
available for other users. The completed versions of this ER format will keep only the last active revision of your
template. Other revisions will be deleted. Select Cancel to explore other options.

Frequently asked questions


I selected Edit document, but instead of opening the BDM template editor page in Finance and Operations, I have been sent to the
Office 365 web page.
This is a known issue with the Office 365 redirection. This happens when you sign to Office 365 the first time. To
work around this issue, select the Back button of your browser to navigate back.
I understand how to edit a template by using Office 365 in the first application session and how to use the template in the second
application session adjusting the template to see how my changes affect the generated business document. Can I do this using the
Office desktop application?
Yes, you can. In the first application session, select Open in Desktop App . Your template will be stored in the
temporary file storage and opened in the Office desktop application. Next, complete the following steps to preview
your template changes in the generated business document:
1. Make changes in the template by using the Office desktop application.
2. Select Save in the Office desktop application.
3. On the BDM template editor page of the first application session, select Sync stored copy .
4. Execute this template ER format in the second application session.
I get the error 'Value cannot be null. Parameter name: externalId' when I select Open in Desktop App. How do I work around this?
Most likely you signed in to the current instance of the app of the Azure AD domain which differs from the Azure
AD domain that was used to deploy this instance. Because the SharePoint service, which is used to store templates
for making them available for editing by using the Office desktop applications, belongs to the same domain, we
have no permissions to access the SharePoint service. To resolve this issue, sign in to the current instance using the
credentials of a user with the correct Azure AD domain.

Additional resources
Electronic reporting (ER) overview
ER Design a configuration for generating reports in OPENXML format (November 2016)
Design ER configurations to generate reports in Word format
Embed images and shapes in documents that you generate by using ER
Configure Electronic reporting (ER) to pull data into Power BI
New document user interface in Business document
management
1/15/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Business document management lets business users edit business document templates by using a Microsoft Office
365 service or the appropriate Microsoft Office desktop application. Edits might include design changes or new
deployments, or users might add placeholders to include additional data without having to change the source
code. For more information about how to work with Business document management, see Business document
management overview.
The new document user interface (UI) is clearer and more comfortable to use. The Business document area
shows only the templates that are available for the current provider.
The New document button lets users create and edit a template in an Electronic reporting (ER) format
configuration that is provided by another provider. In the example in this topic, the provider is Microsoft.

Make the new document UI in Business document management


available
To start to use the new document UI in Business document management, you must turn on the Office-like UI
experience for Business document management feature in the Feature management workspace.
Follow these steps to turn on this feature for all legal entities.
1. In the Feature management workspace, on the New tab, select the Office-like UI experience for
Business document management feature in the list.
2. Select Enable now to turn on the selected feature.
3. Refresh the page to access the new feature.
Edit templates that are owned by other providers
1. In the Business document management workspace, select New document .
2. In the dialog box, select the document to use as a template, and then select Create document .

3. In the new dialog box, in the Title field, change the title as you require. The title text is used to name the new
ER format configuration that is automatically created. The draft version of this configuration (Customer FTI
repor t (GER) Copy ) will contain the edited template and will be used to run this ER format for the current
user. The original template from the base ER format configuration will be used to run this ER format for
every other user.
4. In the Name field, change the name of the first revision of the editable template that will be automatically
created.
5. In the Comment field, update the remarks for the revision of the editable template that will be
automatically created.
6. Select OK to confirm the start of the editing process.

The New document button is used to create and edit a template in an ER format configuration that is provided by
another provider. In this example, the provider is Microsoft. When you select New document , you can view all the
templates that are owned by current and other providers. After you select the template, it's opened for editing. The
edited template will then be stored in a new ER format configuration that is automatically generated.
For more information, see Business document management overview.
Add new fields to a business document template in
Microsoft Excel
11/15/2019 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

You can add new fields to a template that is used to generate business documents in Microsoft Excel format. These
fields can be added as placeholders that are used to fill generated documents with required information from the
application. For every field that you add, you can also specify a binding to the data sources, to specify what
application data will be entered in the field when the template is used to generate business documents.
To learn more about this feature, complete the example in this topic. This example shows how to update a template
to fill in the fields in free text invoice forms that are generated.

Configure Business document management to edit templates


Because Business document management (BDM) is built on top of the Electronic reporting (ER) overview
framework, you must configure the required ER and BDM parameters before you can start to work with BDM.
1. Sign in to the instance of Microsoft Dynamics 365 Finance as the system administrator.
2. Complete the following steps of the example in the Business document management overview topic:
a. Configure ER parameters.
b. Turn on BDM.
You can now start to use BDM to edit business document templates.

Import ER solutions that contain a template


The example in this procedure uses the officially published ER solution. You must import the ER configurations of
this solution into your current instance of Finance.
The Free text invoice (Excel) ER format configuration of this solution contains the business document template
in Excel format that can be edited by using BDM. Import the latest version of this ER format configuration from
Microsoft Dynamics Lifecycle Service (LCS). The corresponding ER data model and ER model mapping
configurations will be imported automatically.
For more information about how to import ER configurations, see Manage the ER configuration lifecycle.
Edit the ER solution template
1. Sign in as a user who has access to the Business document management workspace.
2. Open the Business document management workspace.

3. In the grid, select the Free text invoice (Excel) template.


4. In the right pane, select New template to create a new template that is based on the selected template.
5. In the Title field, enter Free text invoice (Excel) Contoso as the title of the new template.
6. Select OK to confirm the start of the editing process.
The BDM template editor page appears. You can use Microsoft Office 365 to edit the selected template online in the
embedded control.
Add the label for a new field to the template
1. On the BDM template editor page, on the Excel ribbon, on the View tab, select the Headings and Gridlines
check boxes for the editable Excel template.

2. Select cells E8:F8 .


3. On the Excel ribbon, on the Home tab, select Merge & Center to merge the selected cells into a new
merged E8:F8 cell.
4. In the merged cell E8:F8 , enter URL .
5. Select merged cell E7:F7 , select Format painter , and then select merged cell E8:F8 to format it in the same
way as merged cell E7:F7 .
Format the template to reserve space for a new field
1. On the BDM template editor page, select merged cell G8:H8 .
2. On the Excel ribbon, on the Home tab, select Merge & Center to merge the selected cells into a new
merged G8:H8 cell.
3. Select merged cell G7:H7 , select Format painter , and then select merged cell G8:H8 to format it in the
same way as merged cell G7:H7 .

4. In the Name box field, select CompanyInfo .


The CompanyInfo range of the current Excel template holds all the fields that are used to fill the header of a
generated report with the details of the current company as a seller party.
Add a new field to the template
1. On the BDM template editor page, on the Action Pane, select Show format .
2. In the Template structure pane, select Add .

NOTE
You must adjust the section of the template that you want to use as a new field. You already made this adjustment by
formatting merged cell G8:H8 .

3. Select Excel\Cell to add a new field as a cell in the template.


You can select Excel\Range if you want to add a new range to the template. The range that is entered can
contain multiple cells. You can add these cells later.
Notice that the CompanyInfo template component, is automatically selected in the Template structure
pane, because it's the most suitable parent component in the current template structure for the field that
you're adding.
4. In the Excel range field, enter CompanyURL_Value .
5. Select OK .
6. In the Template structure pane, select the ellipsis button (...), and then select Show bindings .

The Template structure pane now shows the data sources that are available in the underlying ER format.
7. Select CompanyInfo_Value as the field that you plan to bind to a data source of the underlying ER format.
8. In the Data sources section of the Template structure pane, expand Model > InvoiceBase >
CompanyInfo .
9. Under CompanyInfo , select the WebsiteURI item.
10. Select Bind .
11. In the Template structure pane, select Save , and then close the BDM template editor page.
In the Business document management workspace, the Template tab in the right pane shows the updated
template. In the grid, notice that the Status field for the edited template has been changed to Draft , and the
Revision field is no longer blank. These changes indicate that the process of editing this template has been started.

Review company settings


1. Go to Organization administration > Organizations > Legal entities .
2. On the Contact information FastTab, verify that the company URL is entered.
Generate business documents to test the updated template
1. In the application, change the company to USMF , and go to Accounts receivable > Invoices > All free
text invoices .
2. Select invoice FTI-00000002 , and then select Print management .
3. In the left pane, expand Module - accounts receivable > Documents > Free text invoice .
4. Under Free text invoice , select the Original document level to specify the scope of invoices for
processing.
5. In the right pane, in the Repor t format field, select the Free text invoice (Excel) Contoso template for
the specified document level.

6. Press Esc to close the current page.


7. Select Print > Selected .
8. Download the generated document, and open it in Excel.
The modified template is used to generate the free text invoice report for the selected item. To analyze how this
report is affected by changes that you make to the template, run the report in one application session immediately
after you change the template in another application session.

Related links
Electronic reporting (ER) overview
Business document management overview
Design a configuration for generating reports in OPENXML format
Extend the list of Electronic reporting (ER) functions
2/5/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Various types of functions are supported in Electronic reporting expressions for data transformation – text, date
and time, mathematical logical, information, data type conversion, and other (business domain–specific functions).
In addition to built-in functions, Electronic reporting lets you extend the list of available functions. This article
includes an overview of key tasks that you must complete to introduce a new function.
All Electronic reporting functions in application code are represented as classes that extend the ERExpression
class. Two types of functions are recognized:
Fixed number of arguments – These functions are represented by classes that include methods that have the
prefix parm (see parmInput , parmStar tNum in the sample code the follows). The order of arguments is set
by the SysOperationDisplayOrderAttribute attribute.
Variable number of arguments – These functions (see the ERExpressionGenericCase class) are
represented by classes that implement the ERIObjectContainer interface. An additional Add method is used
to declare the types that a function accepts.
Here are the recommended steps for introducing a new function for Electronic reporting expressions:
Select a base class for your function, based on the return value type (see ERExpressionString in the
sample code that follows).
Create a new class that extends the selected class (see ERExpressionStringMid in the sample code
the follows).
Provide required attributes:
SysOperationLabelAttribute – This attribute defines the function’s name.
SysOperationHelpTextAttribute – This attribute defines the function’s Help text.
ERComponentGroupAttribute – This attribute defines the group that the function
belongs to. (For more information, see Formula designer in Electronic reporting (ER).)
Provide arguments:
For a fixed number of arguments function, provide methods that have the prefix parm , and
use the SysOperationDisplayOrderAttribute attribute to set the order of the
arguments.
For a variable number of argument function, implement the ERIObjectContainer
interface.
Provide an evaluation method.
Here is an example.
/// <summary>
/// Returns the characters from the middle of a text string, given a starting position and length.
/// </summary>
[
SysOperationLabelAttribute ('MID'),
SysOperationHelpTextAttribute ("@ElectronicReporting:ExpressionStringMidHelpText"),
ERComponentGroupAttribute ("@ElectronicReporting:String")
]
class ERExpressionStringMid extends ERExpressionString
{
ERExpressionString input;
ERExpressionInt startNum;
ERExpressionInt numChars;
public str evaluateString(ERIDataContext _dataContext)
{
return subStr(
this.parmInput().evaluateString(_dataContext),
this.parmStartNum().evaluateInt(_dataContext),
this.parmNumChars().evaluateInt(_dataContext));
}
[DataMemberAttribute, SysOperationLabelAttribute ("@ElectronicReporting:Input"),
SysOperationDisplayOrderAttribute ("1")]
public ERExpressionString parmInput(ERExpressionString _input = input)
{
input = _input;
return input;
}
[DataMemberAttribute, SysOperationLabelAttribute ("@ElectronicReporting:NumChars"),
SysOperationDisplayOrderAttribute ("3")]
public ERExpressionInt parmNumChars(ERExpressionInt _numChars = numChars)
{
numChars = _numChars;
return numChars;
}
[DataMemberAttribute, SysOperationLabelAttribute ("@ElectronicReporting:StartNum"),
SysOperationDisplayOrderAttribute ("2")]
public ERExpressionInt parmStartNum(ERExpressionInt _startNum = startNum)
{
startNum = _startNum;
return startNum;
}
public str toString()
{
return ERExpressionStringPresenter::namedFunctionToStr(this);
}
}

Suggested guidance
The following guidance is intended to help you design your custom Electronic reporting functions:
Reuse the names of Microsoft Excel functions whenever you can, so that Electronic reporting formulas remain
Excel-like. In this way, you will keep Electronic reporting formulas intelligible for end users.
Electronic reporting doesn't support list types for primitive data types. Therefore, we have decided to use a data
container list that has a single Value item in it.
Release a new function's list extension as a new application hotfix. Electronic reporting designers will refer to
the hotfix number in Electronic reporting configurations that use that new custom function. Whenever a
configuration of this type is imported into a new instance, Electronic reporting will evaluate whether the
required hotfix has been installed, to maintain compliance between the Electronic reporting configuration and
the version that configuration is imported into.
Additional resources
Electronic reporting (ER) overview
Formula designer in Electronic reporting (ER)
ER framework API changes for Application update 7.3
2/5/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how the API of the Electronic reporting (ER) framework has been changed in the Dynamics 365
for Finance and Operations, Enterprise edition Application update 7.3.
There are two types of changes to the ER APIs:
Several X++ classes were moved from X++ to an external assembly.
The rest of X++ classes were marked as internal.

How to access classes that were moved from X++ to an external


assembly
To access external classes, you need to add the using directive to the beginning of your file.

using Microsoft.Dynamics365.LocalizationFramework;

You can then access an external class without any additional changes, for example.

var destination = new ERFileDestinationMemory();

You can also create an alias for your namespace.

using LF = Microsoft.Dynamics365.LocalizationFramework;

You can then refer to an external class by using the namespace alias that you created.

var destination = new LF.ERFileDestinationMemory();

How to access internal X++ objects by using ERObjectsFactory


In Application update 7.3 and later updates, the calling code must access the ER objects by using the methods of
the ERObjectsFactor y class. Several examples of these changes are shown.
Code to display a format mapping lookup
Before Application update 7.3

// pattern
ERFormatMappingTableLookup::lookupFormatMapping(<form control>, <model name>[, <data container name>]);
// sample code
ERFormatMappingTableLookup::lookupFormatMapping(_referenceGroupControl, bankLCMiscChargeReportERModelName);
Application update 7.3 and later

// pattern
ERObjectsFactory::createFormatMappingTableLookupForControlAndModel(<form control>, <model name>[, <data
container name>]).performFormLookup();
// sample code
ERObjectsFactory::createFormatMappingTableLookupForControlAndModel(_referenceGroupControl,
bankLCMiscChargeReportERModelName).performFormLookup();

Code to run a format mapping for data export


Before Application update 7.3

// pattern
ERFormatMappingRun::constructByFormatMappingId(<format mapping id>, <file name>, <show prompt dialog>).run();
// sample code
ERFormatMappingRun::constructByFormatMappingId(erBinding, '', true).run();

Application update 7.3 and later

// pattern
ERObjectsFactory::createFormatMappingRunByFormatMappingId(<format mapping id>, <file name>, <show prompt
dialog>).run();
// sample code
ERObjectsFactory::createFormatMappingRunByFormatMappingId(erBinding, '', true).run();

Code to run a format mapping for data import


Before Application update 7.3

// pattern
ERModelMappingDestinationRun::constructByImportFormatMappingId(<mapping id>, <integration point>).run();
// sample code
ERModelMappingDestinationRun::constructByImportFormatMappingId(custPaymModeTable.ERModelMappingTable,
CustVendOutPaymConstants::IntegrationPoint).run();

Application update 7.3 and later

// pattern
ERObjectsFactory::createMappingDestinationRunByImportFormatMappingId(<mapping id>, <integration point>).run();
// sample code
ERObjectsFactory::createMappingDestinationRunByImportFormatMappingId(custPaymModeTable.ERModelMappingTable,
CustVendOutPaymConstants::IntegrationPoint).run();

Code to create a browser file destination


Before Application update 7.3

// sample code
new ERFileDestinationBrowser();

Application update 7.3 and later

// sample code
ERObjectsFactory::createFileDestinationBrowser();
Code to create an attachment file destination
Before Application update 7.3

// pattern
ERFileDestinationAttachment::construct(<record>, ERDocuManagement::instance().otherDocuType());
// sample code
ERFileDestinationAttachment::construct(_cashRegisterFiscalTrans_W,
ERDocuManagement::instance().otherDocuType());

Application update 7.3 and later

// pattern
ERObjectsFactory::createFileDestinationAttachmentWithOtherDocuType(<record>);
// sample code
ERObjectsFactory::createFileDestinationAttachmentWithOtherDocuType(_cashRegisterFiscalTrans_W);
Specify a custom storage location for generated
documents
2/12/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The application programming interface (API) of the Electronic reporting (ER) framework lets you extend the list of
storage locations for documents that ER formats generate. This topic includes an overview of the main tasks that
you must complete to add a custom storage location.

Prerequisites
You must deploy a topology that supports continuous build. (For more information, see Deploy topologies that
support continuous build and test automation.) You must have access to this topology for one of the following
roles:
Electronic reporting developer
Electronic reporting functional consultant
System administrator
You must also have access to the development environment for this topology.

Create or import an ER format configuration


In the current topology, create a new ER format to generate documents that you plan to add a custom storage
location for. Alternatively, import an existing ER format into this topology.
IMPORTANT
The ER format that you create or import must contain at least one of the following format elements:
File
Folder
Merger
Attachment

Create a new document type


To specify how documents that an ER format generates are routed, you must configure Electronic reporting (ER)
destinations. In each ER destination that is configured to store generated documents as files, you must specify a
document type of the Document management framework. Different document types can be used to route
documents that different ER formats generate.
1. Add a new document type for the ER format that you created or imported earlier. In the illustration that follows,
the document type is FileX .
2. To differentiate this document type from other document types, include a specific keyword in its name. For
example, in the illustration that follows, the name is (LOCAL) folder .
3. In the Class field, specify Attach file .
4. In the Group field, specify File .

NOTE
Document types are company-specific. To use an ER format with a configured destination in multiple companies, you must
configure a separate document type in each company.

Review source code


Review the code of the inser tFile() method of the ERDocuManagement class. Notice that the AttachingFile()
event is raised while the generated file is attached to a record.
/// <summary>
/// Inserts file as attachment in Document Management.
/// </summary>
/// <param name = "_owner">A record as the attachment owner.</param>
/// <param name = "_stream">The file stream.</param>
/// <param name = "_filePath">The file path with name.</param>
/// <param name = "_attachmentName">The name of file attachment.</param>
/// <returns>The reference to inserted file.</returns>
[Hookable(false)]
public DocuRef insertFile(
Common _owner,
System.IO.Stream _stream,
str _filePath,
str _attachmentName,
DocuTypeId _docuTypeId)
{
DocuRef docuRef;
if (_stream)
{
DocuType::createDefaults();
if (!this.isDocuTypeValid(_docuTypeId))
{
throw error(strFmt("@ElectronicReporting:DocuTypeIsNotValid", _docuTypeId));
}
var args = ERDocuManagementAttachingFileEventArgs::construct(_owner, _stream, _filePath,
_attachmentName, _docuTypeId);
ERDocuManagementEvents::onAttachingFile(args);
if (args.isHandled())
{
docuRef = args.getDocuRef();
}
else
{
docuRef = this.attachFile(_owner, _stream, _filePath, _attachmentName, _docuTypeId);
}
}
return docuRef;
}

The AttachingFile() event is raised when the following ER destinations are processed:
Archive – When this destination is used, a new record for the ER format that is run is created in the
ERFormatMappingRunJobTable table. The Archived field in this record is set to False . If the ER format is
successfully run, the generated document is attached to this record, and the AttachingFile() event is raised. The
document type that is selected in this ER destination determines the storage location for the attached file
(Microsoft Azure Storage or a Microsoft SharePoint folder).
Job archive – When this destination is used, a new record for the ER form that is run is created in the
ERFormatMappingRunJobTable table. The Archived field in this record is set to True . If the ER format is
successfully run, the generated document is attached to this record, and the AttachingFile() event is raised. The
document type that is configured in the ER parameters determines the storage location for the attached file
(Azure Storage or a SharePoint folder).
Configure an ER destination
1. Configure the archived destination for one of the previously mentioned elements (file, folder, merger, or
attachment) of the ER format that you created or imported. For guidance, see ER Configure destinations.
2. Use the document type that you added earlier for the configured destination. (For the example in this topic, the
document type is FileX .)

Modify source code


1. Add a new class to your Microsoft Visual Studio project, and write code to subscribe to the AttachingFile()
event that was mentioned earlier. (For more information about the extensibility pattern that is used, see
Respond by using EventHandlerResult.) For example, in the new class, write code that performs the following
actions:
a. Store generated files in a folder of the local file system of the server that runs the Application Object
Server (AOS) service.
b. Store these generated files only when the new document type (for example, the FileX type that has the "
(LOCAL)" keyword in its name) is used while a file is attached to the record in the ER execution job log.
class ERDocuSubscriptionSample
{
void new()
{
}
[SubscribesTo(classStr(ERDocuManagementEvents),
staticDelegateStr(ERDocuManagementEvents,
attachingFile))]
public static void ERDocuManagementEvents_attachingFile(ERDocuManagementAttachingFileEventArgs
_args)
{
if (!_args.isHandled())
{
DocuType docuType = DocuType::find(_args.getDocuTypeId());
if (strContains(docuType.Name, '(LOCAL)'))
{
_args.markAsHandled();
var stream = _args.getStream();
if (stream.CanSeek)
{
stream.Seek(0, System.IO.SeekOrigin::Begin);
}
using (var localStream = System.IO.File::OpenWrite(@'c:\0\' +
_args.getAttachmentName()))
{
stream.CopyTo(localStream);
}
}
}
}
}

2. Rebuild your project.

Run the ER format that you created or imported


1. Execute the ER format that you created or imported.
2. Go to Organization administration > Electronic repor ting > Electronic repor ting jobs . Find the record
that was created for this execution job, and that has the generated file attached to it.
3. Explore the local C:\0 folder to find same generated file.

Additional resources
Electronic reporting (ER) destinations
Extensibility home page
Mobile app home page
1/23/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the Finance and Operations (Dynamics 365) mobile app and provides links to resources
that can help you implement it in your organization.

Overview
The mobile app enables your organization to make its business processes available on mobile devices. After your IT
admin enables the mobile workspaces for your organization, users can sign in to the app and immediately begin to
run business processes from their mobile devices. The mobile app includes the following features that can help
increase productivity:
Users can view, edit, and act on business data, even if they have intermittent network connectivity or their mobile
devices are completely offline. When a device reestablishes a network connection, offline data operations are
automatically synchronized.
IT admins or developers can build and publish mobile workspaces that have been tailored to their organization.
The app uses your existing code assets. Therefore, you don't have to re-implement your validation procedures,
business logic, or security configuration.
IT admins or developers can easily design mobile workspaces by using the point-and-click workspace designer
that is included with the web client.
IT admins or developers can optionally optimize the offline capabilities of workspaces by using the Business
logic extensibility framework. Because data continues to be processed while a device is offline, your mobile
scenarios remain rich and fluid, even if devices don't have constant network connectivity.

Elements of the mobile app


Navigation in the mobile app consists of four basic concepts: the dashboard, workspaces, pages, and actions.
1. When you start the app, you go to the dashboard .
2. On the dashboard, you can see a list of workspaces that have been published.
3. In each workspace, you can see a list of pages that are available for that workspace.
4. After you're on a page, you can perform several actions. Here are some examples:
View detailed data.
Navigate to other pages for related data, such as entity details or lines.
See a list of actions that are available for that page. Actions let you create or edit existing data.

Implementation process
The following illustration shows the process for implementing both mobile workspaces that are provided by
Microsoft and custom mobile workspaces.
The following table includes links to resources that can help you implement both mobile workspaces that are
provided by Microsoft and custom mobile workspaces. The numbers in the first column correspond to the
numbered steps in the previous illustration.

RESO URC ES TO H EL P Y O U
ST EP RO L E A C T IO N C O M P L ET E T H E A C T IO N

1 System administrator Implement the Finance and If you haven't yet


Operations app in your deployed a version of
organization. Microsoft Dynamics
365, see Deploy a
demo environment.
To see a list of mobile
workspaces that can
be used, see Mobile
workspaces recently
released.

2 System administrator If you're using Microsoft See the following topics for
Dynamics 365 for more information:
Operations version Cost controlling
1611: Download and install mobile workspaces
KBs that enable the mobile Inventory on-hand
workspaces that are mobile workspace
provided by Microsoft. Sales orders mobile
workspaces
Vendor collaboration
mobile workspace
Project time entry
mobile workspace
Expense
management mobile
workspace

3 System administrator Publish the mobile Publish a mobile workspace


workspaces that are
provided by Microsoft.

4 Developer or independent Use the mobile platform to Mobile platform


software vendor (ISV) create custom mobile
workspaces.

5 ISV Create a deployable package Create a deployable package


that contains custom mobile
workspaces, and upload the
package to Microsoft
Dynamics Lifecycle Services
(LCS).

6 System administrator Apply the deployable Apply a deployable package


package that contains the
custom workspaces that are
provided by the independent
software vendor (ISV).

7 System administrator Publish the custom mobile Publish a mobile workspace


workspaces that are
provided by the ISV.
RESO URC ES TO H EL P Y O U
ST EP RO L E A C T IO N C O M P L ET E T H E A C T IO N

8 User Download and install the Finance and Operations app


mobile app. for Android
Finance and Operations app
for iOS
(Windows Phone
unsupported)

9 User Sign in, and use the mobile To see a list of mobile
app. The app includes the workspaces that are
mobile workspaces that have provided by Microsoft, see
been published by the Mobile workspaces recently
system administrator. released.

Troubleshooting
Mobile platform resources
Available mobile workspaces
10/3/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic lists the mobile workspaces that are available for use with the Dynamics 365 for Unified Operations
mobile app.

M O B IL E W O RK SPA C E DESC RIP T IO N AVA IL A B IL IT Y

Company directory Allows you to view and contact other June 2017
employees in your organization.

My team You can view your direct reports and June 2017
extended staff, as well as send praise for
individuals in your reporting chain.

Invoice approval Provides a listing of invoices that have June 2017


been assigned to you through the
vendor invoice header workflow
process.

Expense management You can capture and upload a receipt, April 2017
so that you can attach it to an expense
report later. The mobile workspace also
lets you quickly create an expense line
by using an attached receipt.

Purchase order approval View and respond to purchase orders April 2017
with actions such as approve or reject.

Project time entry You can enter and save time against a March 2017
project by using your mobile device.

Cost controlling Cost center managers can see the January 2017
performance of the cost center.

Inventory on-hand Gain insights into reserved and January 2017


available inventory.

Sales orders You can stay up to date on your sales January 2017
orders.

Vendor collaboration Vendors can stay up to date on the January 2017


purchase orders that have been sent to
them for approval. They can also view
information about new and updated
purchase orders and contacts.
M O B IL E W O RK SPA C E DESC RIP T IO N AVA IL A B IL IT Y

Asset management This workspace lets users view and October 2019
create maintenance requests and work
orders. Users can also view the assigned
work order jobs in a calendar or list
view. Assets and functional locations
can also be viewed and searched for.
Asset management mobile workspace
4/3/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Asset management mobile workspace. This workspace lets users view
and create maintenance requests and work orders. Users can also view the assigned work order jobs in a calendar
or list view. Assets and functional locations can also be viewed and searched for.

Overview
Asset Management is an advanced module for managing assets and work order jobs in Dynamics 365 Supply
Chain Management. The Asset management mobile workspace lets users quickly view assigned work order jobs
on the mobile device of their choice. Users can also create and manage maintenance requests, update lifecycle
state, and view asset and functional location details by using their mobile device.
Specifically, the Asset management mobile workspace lets users perform these tasks:
Create, view, and edit maintenance requests, take a photo or attach an existing image to the maintenance
request, change the maintenance request lifecycle state.
Create, view, and edit work orders, take a photo or attach an existing image to the work order, change the work
order lifecycle state, view work order jobs.
View assigned work order jobs in a calendar view.
Create, view, and edit work order job, update asset counters, view maintenance checklist, view and edit work
order job notes, view the tools required for the work order job.
View or search for a specific asset or functional location.

Prerequisites
The prerequisites vary, based on the version of Dynamics 365 Supply Chain Management that has been deployed
for your organization.
Prerequisites if you use Microsoft Dynamics 365 Supply Chain Management
If Microsoft Dynamics 365 Supply Chain Management has been deployed for your organization, the system
administrator must publish the Asset management mobile workspace. For instructions, see Publish a mobile
workspace.

Download and install the mobile app


Download and install the Dynamics 365 for Unified Operations mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system
administrator publishes a new workspace later, you'll have to refresh the list of mobile workspaces.

View assigned work order jobs in calendar view


1. On your mobile device, open the Asset management workspace.
2. Select My work order jobs calendar .
3. Select the date you want to view work order jobs for. In the list, you'll see the asset ID and functional location
ID for each work order job.
4. Select a work order job in the list to see job details: Asset and functional location details as well as other
navigation links to view Attachments , Checklists , Tools , Asset counters , Notes , Journals .
Create a work order job
1. On your mobile device, open the Asset management workspace.
2. Select All maintenance work orders .
3. Select the work order you want to create a new work order job for.
4. Select the Add line button.
5. Select the Asset you want to create a work order job for.
6. Select Maintenance job type , Maintenance job type variant and Trade .
7. Select Done .

Add attachment to a work order job


1. On your mobile device, open the Asset management workspace.
2. Select All maintenance work orders .
3. Select the work order > work order job you want to add an attachment to.
Alternatively, you can also select My work order jobs calendar or My work order jobs list on the
home page to navigate to the Work order job details page.
4. Select Attachments on the Work order job details page.
5. You'll see existing attachments on the work order job. Select Add attachment .
6. Enter Name and Notes for the attachment.
7. Select Choose image to select a photo from the mobile gallery, or Take photo to take a photo.
8. Select Done .

View maintenance checklist on a work order job


1. On your mobile device, open the Asset management workspace.
2. Select All maintenance work orders .
3. Select the work order > work order job you want to view checklists for.
Alternatively, you can also select My work order jobs calendar or My work order jobs list on the
home page to navigate to the work order job details page.
4. Select Checklists on the Work order job details page.
5. You'll see a list of checklist lines related to the work order job. Select a checklist line to view Instructions
and add Notes .
6. Select the back button (< ) to return to the previous page.
View and update asset counters on a work order job
1. On your mobile device, open the Asset management workspace.
2. Select All maintenance work orders .
3. Select the work order > work order job you want to view asset counters for.
Alternatively, you can also select My work order jobs calendar or My work order jobs list on the
home page to navigate to the work order job details page.
4. Select Asset counters on the Work order job details page.
5. You see a list of asset counters related to the work order job. Select the pencil icon on an asset counter line
to update the counter value.
6. Enter a new counter value, and select Done .
Register consumption on a work order job
1. On your mobile device, open the Asset management workspace.
2. Select All maintenance work orders .
3. Select the work order > work order job you want to add consumtion registrations for.
Alternatively, you can also select My work order jobs calendar or My work order jobs list on the
home page to navigate to the work order job details page.
4. Select Journals on the Work order job details page.
5. Select Add hours to create work hour registrations.
a. Select the Categor y from the lookup.
b. In the Hours field, enter the number of work hours spent on the work order job.
c. Select the appropriate Line proper ty .
d. Select Done .
6. Select Add items to create item registrations.
a. Select the Item number from the lookup.
b. Select the Site from the lookup.
c. Enter the Quantity of items consumed.
d. Select Done .
7. Select Add expense to create expense registrations.
a. Select the Categor y from the lookup.
b. Enter the quantity for the expense registration.
c. Select the Sales currency from the lookup.
d. Enter the Cost price for the expense registration.
e. Select Done .

Update lifecycle state on a work order


1. On your mobile device, open the Asset management workspace.
2. Select All maintenance work orders .
3. Select the work order you want to update lifecycle state for.
4. Select the Update state button at the bottom of the screen.
5. Select a new lifecycle state from the list.
6. Select Done .
Create a maintenance request
1. On your mobile device, open the Asset management workspace.
2. Select All maintenance requests .
3. Select Actions at the bottom of the screen, and select Create maintenance request .
4. If number sequence is enabled for maintenance requests in Asset management , the Maintenance
request field is hidden because it is automatically filled out. If the Maintenance request field is visible,
enter a maintenance request ID.
5. Select a Maintenance request type .
6. Enter a Description for the maintenance request.
7. Select the Asset you want to create the request for.
8. Select the Ser vice level for the maintenance request.
9. Select Done .
Add attachment to a maintenance request
1. On your mobile device, open the Asset management workspace.
2. Select All maintenance requests .
3. Select the maintenance request you want to add an attachment to.
4. Select Attachments at the bottom of the screen.
5. Select Add attachments .
6. Enter Name and Notes for the attachment.
7. Select Choose image to select a photo from the mobile gallery, or Take photo to take a photo.
8. Select Done .
Company directory mobile workspace
2/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Company director y mobile workspace. This workspace lets users view
and contact other employees in their organization.
This mobile workspace can be used with the Finance and Operations mobile app.

Overview
The Company director y mobile workspace lets users perform these tasks:
View a list of employees in the organization.
Search for employees in the organization.
View contact information for employees.
Contact employees from the profile information.

Prerequisites
Before you can use this mobile workspace, the following prerequisites must be met.

P REREQ UISIT E RO L E DESC RIP T IO N

One of the following products must be System administrator If you don't already have a Finance and
deployed in your organization: Operations app deployed in your
A Finance and Operations app organization, see Deploy a demo
Microsoft Dynamics 365 Human environment. If you don't already have
Resources Human Resources deployed in your
organization, the system administrator
can access a trial version from the
Human Resources webpage.

The Company director y mobile System administrator See Publish a mobile workspace.
workspace must be published.

Download and install the mobile app


Download and install the Finance and Operations mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Microsoft Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system administrator
publishes a new workspace later, you will have to refresh the list of mobile workspaces.

View the company directory by using the mobile workspace


1. In the mobile app, select the Company director y workspace. A list of employees is shown.
2. Select an employee. The Employee profile page appears. The information on this page includes the
employee's first name, last name, title, and department.

Search the company directory by using the mobile workspace


1. In the mobile app, select the Company director y workspace.
2. In the Search field, enter an employee's first name, last name, title, or department to start the search.
3. Select an employee. The Employee profile page appears. The information on this page includes the
employee's first name, last name, title, and department.
Cost controlling mobile workspace
10/1/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Cost controlling mobile workspace. This workspace lets cost center
managers view information about cost center performance anytime and anywhere.
This mobile workspace is intended to be used with the Finance and Operations mobile app.

Overview
The Cost controlling mobile workspace provides an instant view of the current performance of cost centers by
comparing actual costs against the budgeted costs. You can drill down to the status of individual cost elements.
For example, an employee receives an invitation to an international conference, but the organization must cover all
the travel expenses. The employee asks his manager whether he can attend the conference. The manager opens
the Cost controlling mobile workspace on her mobile device to see whether she has budget for the employee to
attend the conference.
Data security
The data in the Cost controlling mobile workspace is secured through user credentials. Cost center managers are
allowed to see data only for their own cost center. The access-level security is managed in the Cost accounting
module.
Cost accountants define the configuration of the Cost controlling mobile workspace in the Cost accounting
module. After the workspace is published to the mobile app, it's available in the app. Therefore, all cost center
managers in the organization can view data in the same format.
Actions, views, and links
The Cost controlling mobile workspace provides the following actions, views, and links:
Actions:
Use Select configuration to select a layout.
Use Select cost object to select the cost centers to filter data on.

NOTE
The cost centers that appear in the list depend on the access that is granted in the Cost accounting
module.

Views: Based on the actions that are selected and the configuration in the Cost accounting module, you
can view the following information on the cards:
Actual vs budget (current period)
Actual vs revised budget (current period)
Actual vs budget (previous period)
Actual vs revised budget (previous period)
Actual vs budget (year to date)
Actual vs revised budget (year to date)
The following amounts are shown on every card: Actual, Budget, Variance, and Variance %.
Links:
Details for current period
Details for previous period
Details for year to date
When you select a link, a card is shown for each cost element. The following amounts are shown on every
card: Actual, Budget, Budget variance, Budget variance %, Revised budget, Revised budget variance, and
Revised budget variance %.

Prerequisites
The prerequisites differ, based on the version of Microsoft Dynamics 365 that has been deployed for your
organization.
Prerequisites if you use Microsoft Dynamics 365 Finance
If Finance has been deployed for your organization, the system administrator must publish the Cost controlling
mobile workspace. For instructions, see Publish a mobile workspace.
Prerequisites if you use version 1611 with Platform update 3 or later
If version 1611 with Platform update 3 or later has been deployed for your organization, the system administrator
must complete the following prerequisites.
P REREQ UISIT E RO L E DESC RIP T IO N

Implement KB 4013633. System administrator KB 4013633 is an X++ update or


metadata hotfix that contains the Cost
controlling mobile workspace. To
implement KB 4013633, your system
administrator must follow these steps.
1. Download the metadata hotfix
from Microsoft Dynamics
Lifecycle Services (LCS).
2. Install the metadata hotfix.
3. Create a deployable package
that contains the SCMMobile
model, and then upload the
deployable package to LCS.
4. Apply the deployable package.

Publish the Cost controlling mobile System administrator See Publish a mobile workspace.
workspace.

Download and install the mobile app


Download and install the Finance and Operations mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system administrator
publishes a new workspace later, you will have to refresh the list of mobile workspaces.

View the performance of your cost center by using the Cost controlling
mobile workspace
1. On your mobile device, select the Cost controlling workspace.
2. Select Cost object controlling .
3. Select Actions .
4. Select Select configuration to select a cost controlling layout.
5. Select Done .
6. Select Actions .
7. Select Select cost object to select the cost centers that you've been granted access to.
8. Select Done .
9. View the overall performance of your cost center.
10. Select the Details for current period link.
11. View the performance of individual cost elements.
12. You can also search for specific cost elements.
Expense management mobile workspace
10/1/2019 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Expense management mobile workspace. This workspace lets users
capture and upload a receipt, so that they can attach it to an expense report later. Users can also quickly create an
expense line by using an attached receipt, and create and manage their expense reports. Additionally, approvers
can use the Expense management mobile workspace to view expense reports that are assigned to them, and
either approve or reject those expense reports.
This mobile workspace is intended to be used with the Dynamics 365 Unified Ops mobile app.

Overview
Many organizations require that a copy of a receipt be attached to a travel-related or business-related expense
report that an employee submits for reimbursement. The Expense management mobile workspace lets users
quickly create new expense lines on the mobile device of their choice by using an attached photo of a receipt.
Alternatively, users can capture a photo of a receipt and then attach it to an expense report later. Employees can
also create and manage their expense reports, and then submit them for approval and reimbursement by using
their mobile device.
Specifically, the Expense management mobile workspace lets users perform these tasks:
Take a photo of a receipt, and upload it to Dynamics 365 Finance. You can then attach that photo to an expense
report later.
Upload a file as a captured receipt. You can then attach that file to an expense report later.
Create a new expense line by using an attached receipt. You can then add the line item to an expense report
later, and submit it for approval and reimbursement.
You can also use these features:
Create a new expense report.
Attach credit card transactions and other previously created expenses to an expense report.
Create new expenses for an expense report.
Attach a receipt to any expense for an expense report, either by taking a photo of the receipt or by uploading a
file as a captured receipt.
Depending on the company's expense policy, add the list of guests to an expense.
Depending on the company's expense policy, itemize expenses.
Submit an expense report for approval and reimbursement.
Approve or reject expense reports that you're an assigned approver for.

Prerequisites
The prerequisites vary, based on the version that has been deployed for your organization.
Prerequisites if you use Dynamics 365 Finance
If Finance has been deployed for your organization, the system administrator must publish the Expense
management mobile workspace. For instructions, see Publish a mobile workspace.
Prerequisites if you use version 1611 with platform update 3 or later
If version 1611 with platform update 3 or later has been deployed for your organization, the system administrator
must complete the following prerequisites.

P REREQ UISIT E RO L E DESC RIP T IO N

Implement KB 4019015. System administrator KB 4019015 is an X++ update or


metadata hotfix that contains the
Expense management mobile
workspace. To implement KB 4019015,
your system administrator must follow
these steps.
1. Download the metadata hotfix
from Microsoft Dynamics
Lifecycle Services (LCS).
2. Install the metadata hotfix.
3. Create a deployable package
that contains the
ApplicationSuite and
ExpenseMobile models, and
then upload the deployable
package to LCS.
4. Apply the deployable package.

Publish the Expense management System administrator See Publish a mobile workspace.
mobile workspace.

Download and install the Dynamics 365 for Operations mobile app
Download and install the Dynamics 365 Unified Ops mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system administrator
publishes a new workspace later, you will have to refresh the list of mobile workspaces.
Capture a receipt by using the Expense management mobile
workspace
1. On your mobile device, open the Expense management workspace.
2. Select Capture receipt .
3. Select Take photo or Choose image .
4. Follow one of these steps:
If you selected Take photo , follow these steps:
a. You're taken to the camera on your mobile device, so that you can take a photo of the receipt.
When you've finished taking a photo, select OK to accept the photo.
b. Optional: Enter a name for the photo, and enter any notes.
If you selected Choose image , follow these steps:
a. Select an image in the list.
b. Optional: Enter a name for the image, and enter any notes.
5. Select Done .

Quickly enter expenses by using the Expense management mobile


workspace
1. On your mobile device, open the Expense management workspace.
2. Select Quick expense entr y .
3. Select the category for the expense. You see a list of expense categories that are loaded into your app for
offline use. By default, 50 items are loaded, but a developer can change this number. For more information,
developers should see Mobile platform. If your category isn't in the list, select Search to do an online
search. Search by expense category, or switch to search by expense type.
4. Enter the transaction date of the expense.
5. Optional: Enter the merchant for the expense.
6. Enter the amount of the expense.
7. Select the currency of the expense. You see a list of the currency codes that are loaded into your app for
offline use. By default, 400 currencies are loaded, but a developer can change this number. For more
information, developers should see Mobile platform. If your currency isn't in the list, select Search to do an
online search. Search by currency, or switch to search by name.
8. Select Take photo or Choose image .
9. Follow one of these steps:
If you selected Take photo , you're taken to the camera on your mobile device, so that you can take a
photo of the receipt. When you've finished taking a photo, select OK to accept the photo.
If you selected Choose image , select an image in the list.
10. Select Done .

Approve an expense report by using the Expense management mobile


workspace (if you use the July 2017 update)
1. On your mobile device, open the Expense management workspace.
2. Expense approvals shows the number of expense reports that are assigned to you for approval. The
number is updated approximately every 30 minutes. Select Expense approvals .
The list of expense reports that are assigned to you for approval is shown.
3. Select an expense report to view the expense details for it.
4. Select an expense to view the details for it. The information that is shown for an expense includes any
receipt, guest, and itemization details.
5. Back on the Expense repor t page, select to approve or reject the expense report.
6. Enter any comments for the approval action.
7. Select Done .

Create a new expense report and submit it for approval by using the
Expense management mobile workspace (if you use the July 2017
update)
1. On your mobile device, open the Expense management workspace.
2. Select Expense entr y .
3. Select New repor t , or select an existing expense report in the list.
4. For new expense reports, enter the purpose and any additional information that is available. This
information varies, depending on that way that expense management is configured for your company.
5. Select Done .
6. To add existing expenses, such as credit card transactions, to the expense report, select Attach .
7. Select one or more expenses in the list.
8. Select Done .
9. To add a new expense to the expense report, select New expense .
10. Select the category for the expense. You see a list of expense categories that are loaded into your app for
offline use. By default, 50 items are loaded, but a developer can change this number. For more information,
developers should see Mobile platform. If your category isn't in the list, select Search to do an online
search. Search by expense category, or switch to search by expense type.
11. Optional: Enter the merchant for the expense.
12. Enter the transaction date of the expense.
13. Enter the amount of the expense.
14. Select the currency of the expense. You see a list of the currency codes that are loaded into your app for
offline use. By default, 400 currencies are loaded, but a developer can change this number. For more
information, developers should see Mobile platform. If your currency isn't in the list, select Search to do an
online search. Search by currency, or switch to search by name.
15. Select Done .
16. To add more details to the expense, select Add more details . The fields that are available depend on the
configuration of expense management for your company.
17. If company policy requires a receipt for the expense, select Receipts , and then follow these steps:
a. Select Capture receipt or Attach receipt .
b. Follow one of these steps:
If you selected Capture receipt , follow these steps:
a. Select Take photo or Choose image .
b. Follow one of these steps:
If you selected Take photo , follow these steps:
a. You're taken to the camera on your mobile device, so that you can take a
photo of the receipt. When you've finished taking a photo, select OK to accept
the photo.
b. Optional: Enter a name for the photo, and enter any notes.
If you selected Choose image , follow these steps:
a. Select an image in the list.
b. Optional: Enter a name for the image, and enter any notes.
c. Select Done .
If you selected Attach receipt , follow these steps:
a. Select one or more images in the list.
b. Select Done .
c. Select the Back button to return to the expense details.
18. If company policy requires guests for the expense, select Guests , and then follow these steps:
a. Select Guest , Previous guests , or Coworkers .
b. Follow one of these steps:
If you selected Guest , follow these steps:
a. Enter the name of the guest.
b. Optional: Enter the organization and/or country of the guest.
c. Optional: Enter the title of the guest.
d. Select Done .
If you selected Previous guests , follow these steps:
a. Select one or more previous guests in the list. You see a list of previous guests that you've
added to previous expense reports that are loaded into your app for offline use. By default,
50 items are loaded, but a developer can change this number. For more information,
developers should see Mobile platform. If your previous guest isn't in the list, select Search
to do an online search. Search by name, or switch to search by organization, country, or
title.
b. Select Done .
If you selected Coworkers , follow these steps:
a. Select one or more coworkers in the list. You see a list of coworkers that are loaded into
your app for offline use. By default, 50 items are loaded, but a developer can change this
number. For more information, developers should see Mobile platform. If your coworker
isn't in the list, select Search to do an online search. Search by name, or switch to search
by company or title.
b. Select Done .
c. Select the Back button to return to the expense details.
19. If company policy requires that the expense be itemized, select Itemize , and then follow these steps:
a. Select the first date to itemize.
b. Select Add itemization .
c. Select the subcategory for the expense itemization. You see a list of expense subcategories that are
loaded into your app for offline use. By default, 50 items are loaded, but a developer can change this
number. For more information, developers should see Mobile platform. If your subcategory isn't in the
list, select Search to do an online search. Search by expense subcategory name.
d. Enter the transaction amount for the itemization.
e. Edit the transaction date if it's required.
f. Select Done .
g. Repeat the preceding steps until you've finished adding all itemizations for the selected date.
h. For additional days, you can select Copy to next day to copy the itemizations to the next day.
Alternatively, you can select the date to itemize and then add itemizations as you did for the first date.
i. After you've finished itemizing the expense, select the Back button to return to the expense details.
20. Select the Back button to return to the Expense repor t page.
21. Repeat the preceding steps until you've finished adding all expenses.
22. Select Submit .
23. Enter any comments for the approver.
24. Select Done .
Inventory on-hand mobile workspace
4/3/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Inventor y on-hand mobile workspace. This workspace helps you gain
insights into reserved and available inventory anytime and anywhere.
This mobile workspace is intended to be used with the Finance and Operations mobile app.

Overview
Typically, companies have multiple shipments and multiple receipts of inventory every day. These movements
constantly change the on-hand inventory status. The Inventor y on-hand mobile workspace lets you see the
cross-company on-hand inventory status, so that you can gain the latest insights into inventory data on the mobile
device of your choice. Regardless of whether you work in the warehouse, purchasing, sales, manufacturing, or
management, or have other roles, you can access on-hand inventory data anytime and anywhere.
The mobile workspace provides an instant view of the on-hand status across facilities. It lets you view on-hand
inventory across facilities, current material reservations, and unreserved on-hand inventory. You can also enter
item numbers to query on-hand inventory, and can do a filtered search for on-hand products or variants.
Specifically, the mobile workspace provides these features:
You can search by product number or product name to find products to view the on-hand inventory status
for.
For the selected products, you can view the following information:
On-hand inventory per site
On-hand inventory per warehouse
On-hand inventory per location
On-hand inventory per batch (for batch-controlled products)
On-hand inventory per inventory status
Product on-hand inventory is shown in the following ways:
By physical inventory (This view represents the total amount.)
By physical reserved (This view represents the reserved amount.)
By available physical (This view represents available amount that has no reservations.)

Prerequisites
The prerequisites differ, based on the version of Supply Chain Management that has been deployed for your
organization.
Prerequisites if you use Supply Chain Management
If Supply Chain Management has been deployed for your organization, the system administrator must publish the
Inventor y on-hand mobile workspace. For instructions, see Publish a mobile workspace.
Prerequisites if you use Platform update 3 or later
If Platform update 3 or later has been deployed for your organization, the system administrator must complete the
following prerequisites.

P REREQ UISIT E RO L E DESC RIP T IO N

Implement KB 4013633. System administrator KB 4013633 is an X++ update or


metadata hotfix that contains the
Inventor y on-hand mobile
workspace. To implement KB 4013633,
your system administrator must follow
these steps.
1. Download the metadata hotfix
from Microsoft Dynamics
Lifecycle Services (LCS).
2. Install the metadata hotfix.
3. Create a deployable package
that contains the SCMMobile
model, and then upload the
deployable package to LCS.
4. Apply the deployable package.

Publish the Inventor y on-hand System administrator See Publish a mobile workspace.
mobile workspace.

Download and install the mobile app


Download and install the Finance and Operations mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system
administrator publishes a new workspace later, you will have to refresh the list of mobile workspaces.
View the on-hand inventory for a product by using the Inventory on-
hand mobile workspace
1. On your mobile device, select the Inventor y on-hand workspace.
2. Select Check on-hand for an item . You see a list of the products that are loaded into your app for offline
use. By default, 50 items are loaded, but a developer can change this number. For more information,
developers should see Mobile platform.
3. If your item isn't in the list, select Search more . Search by product number, or switch to a search by product
name.
4. Select a product. If the item has an image, the image is shown.
5. Select one of the following options to view the status of on-hand inventory:
View on-hand per site
View on-hand per warehouse
View on-hand per location
View on-hand per batch (for batch-controlled products)
View on-hand per inventory status
Product on-hand inventory is shown in the following ways:
By physical inventory (This view represents the total amount.)
By physical reserved (This view represents the reserved amount.)
By available physical (This view represents the available amount that has no reservations.)
Invoice approvals mobile workspace
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Invoice approvals mobile workspace. This workspace provides a list of
invoices that have been assigned to you through the vendor invoice header workflow process.
This mobile workspace is intended to be used with the Finance and Operations mobile app.

Overview
The Invoice approvals mobile workspace lets Accounts payable clerks and managers view invoices that have
been assigned to them as part of the vendor invoice header workflow process. You can view the invoice
information, and even the line and distribution details, to help you make informed approval decisions. From the
workspace, you can take action to move the invoice through the workflow process.

Prerequisites
Before you can use this mobile workspace, the following prerequisites must be met.

P REREQ UISIT E RO L E DESC RIP T IO N

Microsoft Dynamics 365 Finance must System administrator See Deploy a demo environment.
be deployed in your organization.

The Invoice approvals mobile System administrator See Publish a mobile workspace.
workspace must be published.

Download and install the mobile app


Download and install the Finance and Operations mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Microsoft Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system
administrator publishes a new workspace later, you will have to refresh the list of mobile workspaces.
Approve invoices by using the Invoice approvals mobile workspace
1. On your mobile device, select the Invoice approvals workspace.
2. Select the invoice that has been assigned to you by the vendor invoice header workflow process.
3. On the Invoice details page, review the invoice header information, such as the vendor and date information.
4. Select a line on the invoice to view more detailed information about it in the Invoice line details view.
5. In the Invoice line details view, select Distributions to show the line distributions. Here, you can view the
accounting for the invoice line. The information that is shown includes the financial dimensions and the main
account.
6. On the Invoice details page, select Distributions to show all distributions. Here, you can view the accounting
for the whole invoice. The information that is shown includes the financial dimensions and the main accounts.
7. Select Attachments to view any notes or files that are attached to the invoice.
8. On the Invoice details page, select the appropriate workflow action to complete your review process.
9. Select Done .
My team mobile workspace
2/3/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the My team mobile workspace. This workspace lets managers view their
direct reports and extended staff. They can also send praise to individuals in their reporting chain.
This mobile workspace is intended to be used with the Finance and Operations mobile app.

Overview
The My team mobile workspace lets managers perform these tasks:
View a list of the manager’s direct reports.
View a list of the manager’s extended reporting team.
View detailed information for each team member, such as birth date, seniority date, years of service, and
compensation and performance information.
Send praise to any individual in the manager’s extended reporting team.

Prerequisites
Before you can use this mobile workspace, the following prerequisites must be met.

P REREQ UISIT E RO L E DESC RIP T IO N

One of the following products must be System administrator If you don't already have a Finance and
deployed in your organization: Operations app deployed in your
A Finance and Operations app organization, see Deploy a demo
Microsoft Dynamics 365 Human environment. If you don't already have
Resources Human Resources deployed in your
organization, the system administrator
can access a trial version from the
Human Resources webpage.

The My team mobile workspace must System administrator See Publish a mobile workspace.
be published.

Download and install the mobile app


Download and install the Finance and Operations mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Microsoft Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system administrator
publishes a new workspace later, you will have to refresh the list of mobile workspaces.

View team members by using the My team mobile workspace


1. In the mobile app, select the My team workspace. A list of team members is shown. The list also shows each
team member's title, and any direct reports that he or she has.
2. Select a team member. The Team member summar y page appears. The information on this page includes the
team member's birth date, seniority date, years of service, years in his or her current position, and
compensation information.

View extended team members by using the My team mobile workspace


1. In the mobile app, select the My team workspace. A list of team members is shown. The list also shows each
team member's title, and any direct reports that he or she has.
2. Select the Direct repor ts link. A list of your extended team is shown.
3. Select a team member. The Team member summar y page appears. The information on this page includes the
team member's birth date, seniority date, years of service, years in his or her current position, and
compensation information.

Send praise about team members by using the My team mobile


workspace
1. In the mobile app, select the My team workspace. A list of team members is shown. The list also shows each
team member's title, and any direct reports that he or she has.
2. Select a team member. The Team member summar y page appears.
3. Select Send praise .
4. Enter the text of the praise that you want to send.
5. Select Done .
Project mobile applications overview
11/5/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Three mobile applications that are related to project time are available for Microsoft Dynamics 365 Project
Timesheet, Project Time Entry, and My timesheets/Timesheets for my review (Optimized for mobile).

Project Timesheet mobile app


The Dynamics 365 Project Timesheet mobile app lets users submit and approve timesheets for projects on their
mobile device. This mobile app surfaces the timesheet functionality in the Project management and accounting area
of Dynamics 365 Finance. It helps improve user productivity and efficiency, and also helps with the timely entry and
approval of project timesheets.

Project Time Entry workspace


The Project Time Entry workspace lets users enter and save time against a project. However, it doesn't let users
submit or approve project timesheets. It can be used only for time entry. This mobile workspace is intended to be
used together with the Finance and Operations mobile application.

My timesheets/Timesheets for my review


My timesheets (Optimized for mobile) and Timesheets for my review (Optimized for mobile) make up a solution
that lets employees create, submit, and approve project timesheets on a mobile device. Workers can access the
Finance functionality through the URL for the application. This solution doesn't require the Finance and Operations
mobile application.

For more information


Project timesheet mobile application
Project time entry
Project timesheets on a mobile device
Implement custom fields for the Microsoft Dynamics 365 Project Timesheet mobile app on iOS and Android
Project time entry mobile workspace
10/1/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Project time entr y mobile workspace. This workspace lets users enter
and save time against a project by using their mobile device.
This mobile workspace is intended to be used with the Dynamics 365 Unified Ops mobile app.

Overview
As part of their daily work, project resources are often on-site or traveling. The Project time entr y mobile
workspace lets users enter their billable or non-billable time against a project on the mobile device of their choice.
Therefore, project resources can record time entries anytime and anywhere. They can also view time entries that
have already been recorded.
Specifically, in the Project time entr y mobile workspace, users can perform these tasks:
For any selected date, enter the number of hours that you spent on a specific task.
Search by project name or customer to find the project to enter time for.
Specify the category and activity for the time that you spent.
Record the time as billable or non-billable for the project.
Optionally enter any external or internal comments.

Prerequisites
The prerequisites differ, based on the version of Microsoft Dynamics 365 that has been deployed for your
organization.
Prerequisites if you use Dynamics 365 Finance
If Finance has been deployed for your organization, the system administrator must publish the Project time
entr y mobile workspace. For instructions, see Publish a mobile workspace.
Prerequisites if you use version 1611 with Platform update 3 or later
If version 1611 with Platform update 3 or later has been deployed for your organization, the system administrator
must complete the following prerequisites.

P REREQ UISIT E RO L E DESC RIP T IO N


P REREQ UISIT E RO L E DESC RIP T IO N

Implement KB 4018050. System administrator KB 4018050 is an X++ update or


metadata hotfix that contains the
Project time entr y mobile workspace.
To implement KB 4018050, your system
administrator must follow these steps.
1. Download the metadata hotfix
from Microsoft Dynamics
Lifecycle Services (LCS).
2. Install the metadata hotfix.
3. Create a deployable package
that contains the
ApplicationSuite and
ProjectMobile models, and
then upload the deployable
package to LCS.
4. Apply the deployable package.

Publish the Project time entr y System administrator See Publish a mobile workspace.
mobile workspace.

Download and install the mobile app


Download and install the Finance and Operations mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system
administrator publishes a new workspace later, you will have to refresh the list of mobile workspaces.

Enter time by using the Project time entry mobile workspace


1. On your mobile device, select the Project time entr y workspace.
2. Select Time entr y . The calendar dates for the current week are shown.
3. For a selected date, select Actions > New entr y .
4. Enter the number of hours to record.
5. Select the project for the time entry. A list shows the projects that are loaded into your app for offline use.
By default, 50 items are loaded, but a developer can change this number. For more information, see Mobile
platform.
6. If your project isn't in the list, select Search . Search by name, or switch to search by project name or
customer.
7. Select a category. A list shows the categories that are loaded into your app for offline use. By default, 50
items are loaded, but a developer can change this number. For more information, see Mobile platform.
8. If your category isn't in the list, select Search . Search by category, or switch to search by category name.
9. Select an activity. A list shows the activities that are loaded into your app for offline use. By default, 50 items
are loaded, but a developer can change this number. For more information, see Mobile platform.
10. If your activity isn't in the list, select Search . Search by activity number, or switch to search by purpose.
11. Select the line property.
12. Optional: Enter any external and internal comments.
13. Select Done .
Project timesheet mobile application
10/3/2019 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Overview
The Microsoft Dynamics 365 Project Timesheet mobile app enables users to submit and approve timesheets for
projects on their mobile device (iPhone or Android). This mobile app surfaces the timesheet functionality that
resides in the Project management and accounting area of Dynamics 365 Finance, improving user productivity and
efficiency, as well as enabling timely entry and approval of project timesheets.

Download and install the mobile app


Download and install the Microsoft Dynamics 365 Project Timesheet mobile app for Android or iPhone from the
mobile store for your device.

Enable the app


In Finance, the Project Timesheet mobile app must be enabled. To enable the functionality, go to Project
management and accounting parameters > Timesheet and select the Enable Microsoft Dynamics 365
Project Timesheet parameter.

Sign in to the app


1. Start the app on your mobile device.
2. Enter your Finance URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. You will be signed into your default company.

Submit a project timesheet


You can create and submit a project timesheet in the app. You can base a new timesheet on information from a
previous timesheet, saved lines, or project assignments. If you are designated as a delegate, you can also enter a
timesheet for another worker. To create a timesheet as a delegate, select the Menu button and then select a
resource name..
The timesheet page will create a new timesheet for the timesheet period, based on the current date. The work week
will be displayed. If the timesheet period covers multiple weeks, you can select another work week from the work
week tabs. If a timesheet exists for the current date, it will be displayed. If you need to create a new timesheet in a
different timesheet period, select the Menu button and then select New timesheet .
You can enter project information by clicking the Add time action or the Copy time from action. The Copy time
from action will copy project line information, but not the hours. The Copy time from menu includes the
following options:
Copy from existing timesheet - Copy timesheet lines from an existing timesheet.
Copy from favorite - Create new timesheet lines by using the timesheet settings that you selected as
favorites.
Copy from assignment - Create new timesheet lines from assigned projects.
The project information that is displayed is dependent on the mobile parameters that you defined on the Project
management and accounting parameters page.
In the Legal entity field, select the legal entity for which you performed project work. The Legal entity field is
available only if intercompany timesheet support has been enabled for your legal entity.
Select the customer who is associated with the project for the timesheet. For the initial release on the Android,
entry by customer is not supported, as you must select the project first. If you selected the project first, the
Customer field is filled in automatically.
In the Project field, select the project that you are entering time for. The Customer field is filled in automatically.
The customer and project lookups enable searching across both customers and projects.
Select information in the Categor y , Activity , Line proper ty , Sales tax group , and Item sales tax group fields
as required. These fields can be overridden.
The Line proper ty field will be set to a default value, based on project management and accounting parameters.
When the project/category and category/resource parameters are enabled, the Line proper ty value will be set to
the default value you have defined for this validation. When the project/category and category/resource
parameters are not enabled, the Line proper ty value will default according to the Enable default line proper ty
field on the Project management and accounting parameters page. The Line proper ty value can be
overridden.
Select a day to add time. Enter the number of hours that you worked each day.
To add comments about the hours you are entering, click Add comments , and then enter comments for an
internal audience, customer audience, or both. Internal comments can be viewed by project managers. Customer
comments are included on invoices.
To save the line as a favorite, select the check box, and then click Save as favorite .
Financial dimension and attachment support are not provided in the mobile application.
Continue adding project lines as needed to complete your timesheet.
Click Submit to send the timesheet to the approval workflow.

Review timesheets
A list of the timesheets that need to be reviewed is available in the menu. This option is only available if you have
been designated as a workflow approver. Both header and line approval are supported. Line level approval offers
the ability to mark one or more lines for approval. After reviewing the timesheet information, click Approve ,
Delegate , or Return to continue the workflow.
Purchase order approval mobile workspace
4/3/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Purchase order approval mobile workspace. This workspace lets you
view purchase orders and respond to them through actions. For example, you can approve or reject a purchase
order.

Overview
Purchase orders that requires approval go through an approval workflow. The workflow can include various steps
that require that one or more people take action. For example, a person might have to complete a task or approve
the purchase order.
The Purchase order approval mobile workspace lets you easily view and respond to purchase orders from your
mobile device. This workspace also lets you take the same workflow actions that you can take from the web client.

Prerequisites
The prerequisites vary, depending on the version of Supply Chain Management that has been deployed for your
organization.
Prerequisites if you use Supply Chain Management
If Supply Chain Management has been deployed for your organization, the system administrator must publish the
Purchase order approval mobile workspace. For instructions, see Publish a mobile workspace.
Prerequisites if you use Microsoft Dynamics 365 for Operations version 1611 with Platform update 3 or later
If Microsoft Dynamics 365 for Operations version 1611 with Platform update 3 or later has been deployed for your
organization, the system administrator must complete the following prerequisites.

P REREQ UISIT E RO L E DESC RIP T IO N

Implement KB 4017918. System administrator KB 4017918 is an X++ update or


metadata hotfix that contains the
Purchase order approval mobile
workspace. To implement KB 4017918,
your system administrator must follow
these steps.
1. Download the metadata hotfix
from Microsoft Dynamics
Lifecycle Services (LCS).
2. Install the metadata hotfix.
3. Create a deployable package
that contains the SCMMobile
model, and then upload the
deployable package to LCS.
4. Apply the deployable package.
P REREQ UISIT E RO L E DESC RIP T IO N

Publish the Purchase order approval System administrator See Publish a mobile workspace.
mobile workspace.

Download and install the mobile app


Download and install the Finance and Operations mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Microsoft Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system administrator
publishes a new workspace later, you will have to refresh the list of mobile workspaces.

View orders that are assigned to you


1. On your mobile device, select the Purchase order approval workspace.
2. Select Orders assigned to me to view all the purchase orders for which you've been asked to take action in
the purchase order approval workflow.
3. Select an order. On the Order details page, you will see the order header information and lines. You can also
find guidelines from the workflow task.
4. Select Accounting distributions to open the Header accounting distributions page.
5. Return to the Order details page, and select a line. From the order line details, you can also explore the line-
specific accounting distributions.

Complete an action on the purchase order


After you've viewed the purchase order that is assigned to you and read the workflow instructions, you should be
ready to take action.
1. On your mobile device, select the Purchase order approval workspace.
2. Select Orders assigned to me to view all the purchase orders for which you've been asked to take action
in the purchase order approval workflow.
3. Select an order, and view the details page.
4. Select Actions to show the available actions. The actions that are available depend on the task that has been
assigned to you.

TA SK A C T IO N A P P RO VA L A C T IO N

Complete Approve

Return Reject

Request change Request change

Delegate Delegate

5. Select the appropriate action.


6. On the Complete task page, enter a comment. Note that if you select the Delegate action, you must select
a user to delegate the task to.
7. Select Done . After you refresh your workspace, the purchase order will no longer be in your list.
Sales orders mobile workspace
4/3/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Sales orders mobile workspace. This workspace helps you stay up to
date about your sales orders anywhere and anytime.
This mobile workspace is intended to be used with the Finance and Operations mobile app.

Overview
The Sales orders mobile workspace lets you view detailed information about each sales order. This information
includes the status of the order, contact information for the customer, and contact information for the order taker.
The Sales orders mobile workspace provides an instant view of sales orders. You can view all sales orders, view
sales orders by customer, or view information about a specific sales order.
The mobile workspace provides two views to help you analyze sale orders in depth.
View all sales orders
This view lists all sales orders.
Use one of the following filters to select the sales orders to view:
Search by sales order
Search by customer account
Search by customer name
Search by status
Search by release status
Search by created date and time
After you select sales orders, you can view the details of specific orders. Specifically, you can view the
following information:
Customer name and address information
Various dates for the sales order, such as the requested ship date and the confirmed ship date
Contact information for the order taker
Customer contact information
Order lines
Shipments that show how and when a sales order was shipped
View orders for a customer
This view lists sales orders by customer.
Use one of the following filters to view orders for a customer:
Search by name
Search by account
After you select a customer, you can view the following information:
Customer name and group
Customer contact information
Customer sales orders and details about those sales orders:
Customer name and address information
Various sales order dates
Contact information for the order taker
Customer contact information
Order lines
Shipments that show how and when a sales order was shipped

Prerequisites
The prerequisites differ, based on the version of Microsoft Dynamics 365 that has been deployed for your
organization.
Prerequisites if you use Supply Chain Management
If Supply Chain Management has been deployed for your organization, the system administrator must publish the
Sales orders mobile workspace. For instructions, see Publish a mobile workspace.
Prerequisites if you use Dynamics 365 for Operations version 1611 with platform update 3 or later
If Dynamics 365 for Operations version 1611 with platform update 3 or later has been deployed for your
organization, the system administrator must complete the following prerequisites.

P REREQ UISIT E RO L E DESC RIP T IO N

Implement KB 4013633. System administrator KB 4013633 is an X++ update or


metadata hotfix that contains the Sales
orders mobile workspace. To
implement KB 4013633, your system
administrator must follow these steps.
1. Download the metadata hotfix
from Microsoft Dynamics
Lifecycle Services (LCS).
2. Install the metadata hotfix.
3. Create a deployable package
that contains the SCMMobile
model, and then upload the
deployable package to LCS.
4. Apply the deployable package.

Publish the Sales orders mobile System administrator See Publish a mobile workspace.
workspace.

Download and install the mobile app


Download and install the Finance and Operations mobile app:
For Android phones
For iPhones
Sign in to the mobile app
1. Start the app on your mobile device.
2. Enter your Dynamics 365 URL.
3. The first time that you sign in, you're prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company is shown. Note that if your system administrator
publishes a new workspace later, you will have to refresh the list of mobile workspaces.

View information about sales orders for a customer by using the Sales
order mobile workspace
1. On your mobile device, select the Sales orders workspace.
2. Select View orders for a customer .
3. Use account or customer name information to find the customer.
4. Select the customer.
5. Select Contact information or Sales orders . If you select Sales orders , a list of sales orders for the
customer is shown.
6. Select Sales order . You can now view information about sales order lines, information about shipments,
customer contact information, and contact information for the order taker.
Vendor collaboration mobile workspace
4/3/2020 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides information about the Vendor collaboration mobile workspace. This workspace helps your
vendors stay up to date about the purchase orders that have been sent to them for approval. They can also view
information about new and updated purchase orders and contacts.
This mobile workspace is intended to be used with the Finance and Operations mobile app.

Overview
The Vendor collaboration mobile workspace keeps vendors informed about new purchase orders, so that they
can view purchase orders and then respond to them in the web client.

NOTE
The mobile workspace should be used as a supplement to the vendor collaboration web interface, not a replacement for it.

Your vendors can use the Vendor collaboration mobile workspace to view new purchase orders that are sent to
them for approval. It shows purchase order information, such as products, quantities, and requested delivery dates.
Price information is also available, depending on the configuration of each vendor.
A user who signs in as a vendor will see which purchase orders have been responded to, and which purchase
orders are still awaiting customer action. For example, a purchase order might be awaiting customer action
because the vendor suggested another delivery date, but the customer hasn't yet agreed to that date. The vendor
will also see a list of purchase orders that have been confirmed but haven't yet been delivered.
To respond to a purchase order, the vendor must use the vendor collaboration web interface that is available in the
web client. There, the vendor can also get more information about the order, such as document attachments, the
delivery address per line, and charges that are associated with the vendor.
Vendors that have a special security role can see which contact persons are registered for a vendor account. The
same security role lets a vendor view the status of any user request that has been submitted.
The vendor collaboration web interface in the web client must be used to create new contacts and submit new user
requests.
The Vendor collaboration mobile workspace lets a vendor perform these tasks:
View new purchase orders that are sent to the vendor.
View purchase orders that the vendor has responded to, and that are awaiting customer action.
View purchase orders that have been confirmed but haven't yet been fully received.
View contact person information that is registered for the vendor account. (This task requires an additional
security role.)
View information about a user request that was submitted by the vendor, and follow the status of the request.
(This task requires an additional security role.)
Prerequisites
The prerequisites vary, depending on the version of Microsoft Dynamics 365 that has been deployed for your
organization.
Prerequisites if you use Supply Chain Management
If Supply Chain Management has been deployed for your organization, the system administrator must publish the
Vendor collaboration mobile workspace. For instructions, see Publish a mobile workspace.
Prerequisites if you use Microsoft Dynamics 365 for Operations version 1611 with Platform update 3 or later
If Microsoft Dynamics 365 for Operations version 1611 with Platform update 3 or later has been deployed for your
organization, the system administrator must complete the following prerequisites.

P REREQ UISIT E RO L E DESC RIP T IO N

KB 3216943 must be implemented if System administrator KB 3216943 is a binary update that is


you're using Platform update 3. required if you're using Platform update
3. To implement this KB, the system
administrator must follow these steps.
1. Download KB 3216943 from
Microsoft Dynamics Lifecycle
Services (LCS).
2. Install the binary update, which
is delivered as a deployable
package. For information about
how to apply a deployable
package, see Apply a deployable
package.

KB 4013633 must be implemented. System administrator KB 4013633 is an X++ update or


metadata hotfix that contains the
Inventor y on-hand mobile
workspace. To implement KB 4013633,
your system administrator must follow
these steps.
1. Download the metadata hotfix
from LCS.
2. Install the metadata hotfix.
3. Create a deployable package
that contains the SCMMobile
model, and then upload the
deployable package to LCS.
4. Apply the deployable package.

The Vendor collaboration mobile System administrator See Publish a mobile workspace.
workspace must be published.
P REREQ UISIT E RO L E DESC RIP T IO N

The vendor user must have access to Purchasing professionals and the Follow the steps in the following topics
the vendor collaboration web interface system administrator to set up and work with the vendor
in the web client and must set up a collaboration web interface.
vendor collaboration user. Use vendor collaboration to
work with external vendors
Manage vendor collaboration
users
Set up and maintain vendor
collaboration
Use vendor collaboration to
work with customers in Supply
Chain Managements

Download and install the mobile app


Download and install the Finance and Operations mobile app:
For Android phones
For iPhones

Sign in to the mobile app


1. Start the app on your mobile device.
2. Enter your Microsoft Dynamics 365 URL.
3. The first time that you sign in, you’re prompted for your user name and password. Enter your credentials.
4. After you sign in, the available workspaces for your company are shown. Note that if your system
administrator publishes a new workspace later, you will have to refresh the list of mobile workspaces.

Use the Vendor collaboration mobile workspace


When you select the Vendor collaboration workspace, you’ll see the following options.
The Vendor collaboration workspace includes the following pages.
Contacts
The Contacts page lets you see all the contacts that have been set up for the vendor account. It shows the contact
person's name, primary email address, and user alias, if the contact person has an alias. This page also shows
whether the contact person's user account is active. When you select a contact, you see contact details, such as the
legal entities that the person is a contact for. You also see contact information, such as a telephone number or an
alternative email address.
User requests
The User requests page lets you see all the user requests that you've submitted via the vendor collaboration web
interface. You can also follow the status of those requests. When you select a user request, you can see what was
requested, add or inactivate a user, change security, and see which security roles were requested for the user.
Purchase orders ready for review
The Purchase orders ready for review page lets you see all the purchase orders that the customer has sent, but
that haven't yet been responded to. You can view selected information about the order, such as which products
were requested and when those products should be delivered. Price information is also available, depending on
the configuration of the vendor.
You can also see whether the purchase order has notes or attachments. However, to open notes and attachments,
you must use vendor collaboration web interface in the web client. Select Purchase order line to see all the lines
together with their details. For each line, an indicator will show whether there are notes or attachments, or whether
the delivery address differs from the delivery address that is shown on the header.
To respond to the purchase order, you must use the vendor collaboration web interface in the web client.
Awaiting customer action
The Awaiting customer action page lets you find purchase orders that you or another person in your company
who has access to vendor collaboration has responded to. The purchase orders are visible in this list only if the
customer must take one of the following actions on the purchase order:
If the purchase order was rejected, the customer must either update or cancel the original order, and then send
it again. When the purchase order is sent again, it no longer appears on the Awaiting customer action page.
If the purchase order was accepted with changes, the customer must either update the original order and then
send it again for review, or update the order per the requested changes and then confirm it immediately. In both
cases, the purchase order no longer appears on the Awaiting customer action page.
If the purchase order was accepted but still appears on the Awaiting customer action page, the purchase
order wasn't automatically confirmed when it was accepted. It's now waiting for a purchasing agent to change
the order status to Confirmed . Typically, a purchase order is considered an agreement between the customer
and the vendor as soon as the vendor accepts the order. Therefore, the update to Confirmed status is usually
just a formality.
When you select a purchase order, additional details appear about the response. You can see the line details and
response for every line. The line status shows which of the following responses has been given:
Accepted
Rejected
Accepted with changes
Substituted/Substitute
Split into schedule/Schedule line
Note that the Delivering field is set to either Yes or No to indicate whether the lines will be delivered. A line might
not be delivered because for the following reasons:
The line was rejected.
A substitution was made, and the original line isn't expected to be delivered as requested in the received order.
The line was split into multiple schedule lines, and the original line isn't expected to be delivered as requested in
the received order.
Any changes that have been made to the order line response are shown. However, uploaded notes and
attachments aren't shown. To view notes and attachments, you must use the vendor collaboration web interface in
the web client.
Open confirmed orders
When the purchase order is confirmed by the customer (that is, the status of the purchase order is changed to
Confirmed ), it appears in the open confirmed order. It will remain in the list until it's registered as received by the
customer.
Publish mobile workspaces
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the steps that system administrators must follow to publish a mobile workspace. A mobile
workspace must be published so that users can access it in the mobile app.

Publish a mobile workspace


1. In your browser, start your web client.
2. Click Settings > Mobile app .
3. Select the mobile workspace to publish.
4. Click Publish .
After a new workspace is published, users must pull to refresh the list of mobile workspaces.
Office integration overview
11/18/2019 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic reviews Microsoft Office integration concepts and features. The integration depends on several
technologies:
Working in Microsoft Azure
Working with Azure Active Directory (Azure AD)
Running a web client in multiple browsers
The Microsoft Office integration capabilities provide users with a productive environment that helps them get the
job done by using Office products.

Excel Data Connector add-in


Microsoft Excel can change and quickly analyze data. The Excel Data Connector app interacts with Excel workbooks
and OData services that are created for publicly exposed data entities. The Excel Data Connector add-in enables
Excel to become a seamless part of the user experience. The Excel Data Connector add-in is built by using the Office
Web add-ins framework. The add-in runs in a task pane. Office Web Add-ins are web applications that run inside
an embedded Internet Explorer browser window.

Dynamics AX 2012 architecture vs. Finance and Operations architecture


There are several differences between versions. For both, we built lightweight add-ins that run in Excel and use
services to connect to the application.
Dynamics AX 2012
Excel > VSTO (.NET) Add-in > Windows Communication foundation (WCF) > Authentication through Active
Directory (AD) > AIF SOAP services on the AOS > AX Services and Tables > AX query engine > Database
Finance and Operations
Excel > Office Web Add-in (JS + HTML) > JavaScript OData API (Olingo) > Authentication through Azure Active
Directory (AAD) > AX OData services on the AOS > AX Entities > AX LINQ provider > AX Database
Office Add-in explained
The Excel Data Connector app is located in a task pane on the right side of a workbook.

The following table describes the parts of the add-in. The numbers correspond to the numbers in the preceding
screen shot.

N UM B ER NAME DESC RIP T IO N

1 Add-in primary title The title of the add-in that is provided


to the Office Web Add-ins framework.

2 Add-in secondary title The title of the add-in that is provided


by the add-in.

3 Source name The label of the entity that provides


data for the selected data table. You can
hover over the label to see the
corresponding name.

4 Field name The label of the field that provides data


for the selected data table column. You
can hover over the label to see the
corresponding name and type.

5 Refresh button Refresh the data in the workbook.


N UM B ER NAME DESC RIP T IO N

6 Publish button Publish the data changes in the


workbook.

7 Design button Open the design-time experience.

8 Status bar The status bar provides brief temporary


information alerts. Information that is
appears in the status bar also appears
in the Messages dialog box.

9 Options button Open the Options dialog box.

10 Messages button Open the Messages dialog box, which


displays the information messages,
warnings, and errors that the program
provides to the user. A number
sometimes appears next to the
Messages button to provide a count
of the warnings or errors that the user
might be interested in.

11 Excel data table containing data The filter and sort controls in the
columns headers can be used on this
data. The filters must be removed
before data changes are published.

12 Office Web Add-ins menu The Office Web Add-ins menu button
provides several standard links. The
most important of the links is used to
reload the add-in. When the add-in is
reloaded, it updates all the data for the
workbook that is contained in tables
that are associated with the add-in.

Authentication
OData sits on the same authentication stack as the server. The add-in uses OAuth to facilitate authentication.
Lookups and drop-down lists
When you click in a table cell, any lookup, enumeration drop-down list, or date picker that is associated with that
cell will be shown inside the add-in, underneath the source and field information. Any value that you select inside
the add-in is put into the currently selected table cell.
Adding and deleting records
To add a record, either start typing in a row directly below a table, or use the Tab key to tab away from the last cell
of the last row in the table. To delete a record, select the row by clicking the row label (1, 2, 3, and so on), and delete
all the cells in that row. To publish the changes, click Publish . The Messages dialog box shows how many records
were added, edited, and deleted.

Workbook Designer
You can use the Workbook Designer page to design an editable custom export workbook that contains an entity
and a set of fields. To open the Workbook Designer (Expor tToExcelWorkbookDesigner ) page, click Common
> Common > Office Integration > Excel workbook designer . Before you can publish data edits, all the key
fields of the entity must be in the Excel table. Key fields have a key symbol next to them. To successfully create or
update a record, it must have all the mandatory fields in the Excel table. Mandatory fields have an asterisk (*) next
to them.

To retrieve the resulting workbook, click Create workbook in the app bar.
Click View related form to see the data that the entity exposes. This button is only enabled for entities that have a
FormRef property value.

Document management
Document management supports saving record attachments in Azure Blob storage and SharePoint Online.
Database storage is deprecated. Azure Blob storage is equivalent to storage in the database since documents can
only be accessed through the application and it provides the added benefit of providing storage that doesn't
negatively affect the performance of the database. Azure blob storage is the default and works immediately.
SharePoint storage will work immediately if you have an O365 license since we auto-discover the SharePoint
tenant e.g. a user on the TenantA.onmicrosoft.com O365/AAD tenant gets TenantA.sharepoint.com as the
SharePoint site. If document management has been turned off by the user, turn it on by clicking Options >
General > Miscellaneous and setting Document handling active to Yes .

On any page that has data, an Attach button will be available in the upper-right corner.

The Attachments page provides a view of the attachments (documents) that are associated with the record that
was selected on the previous page. You can add new attachments to the record by clicking the New button (+ ) in
the app bar. For the File and Image document types, you will be prompted to provide the associated file.
Document preview
A preview for supported file types is provided on the Preview FastTab. Basic document types, such as PNG images
and text files, are supported by default. Office document types, such as Microsoft Word, Excel, and PowerPoint files,
must use a production Office Web Apps Server, which might not be available in a OneBox configuration.

Frequently asked questions


Office Licensing
What Office 365 licenses are available?
There are lots of Office 365 license options. You should select the license that makes sense for your organization.
After purchasing an Office 365 license, what needs to be done to set up SharePoint storage for attachments?
Open the Document Parameters form and ensure that the SharePoint server has been automatically discovered
and set. Now open or create a Document Type, set the Document Type's location to "SharePoint" and select the
folder that the files should be stored in.

Additional resources
Office integration tutorial
Troubleshoot the Office integration
Application stack and server architecture
Office integration tutorial
2/12/2020 • 27 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

In this tutorial, you will use and build Office integration experiences that involve Excel, Word, Document
Management, and email.

Overview
In this tutorial, you will use and build Microsoft Office integration experiences that involve Microsoft Excel,
Microsoft Word, the Document Management subsystem, and email. You will see how Excel and Word use data
entities as an entry point into the system, how Excel can become a core part of the user experience, and how Excel
and Word can be used for ad-hoc lightweight reporting. You will also see how files can be stored and shared by
using the Document Management and email capabilities.

Prerequisites
For this tutorial, you must access the environment by using Remote Desktop, and you must be provisioned as an
administrator on the instance. For more information, see Deploy and access development environments. If you're
running Internet Explorer on the virtual machine (VM), you must enable font and file downloads at Internet
Options > Security > Custom Level . Microsoft Visual Studio 2015 runs on the VM, and it must run as an
administrator so that metadata and compilation files can be overwritten. To make sure that Visual Studio runs as an
administrator, search for the program, and pin it to the taskbar. Then right-click the shortcut on the taskbar, right-
click Visual Studio 2015 , click Proper ties > Advanced , and select the Run as administrator check box. Visual
Studio will now run as an administrator via a single left click of the taskbar shortcut.

Key concepts
Entities and OData – You will use the Microsoft Dynamics Excel Data Connector App (Excel App) to create,
read, update, and delete. The connector uses OData services that are created for any entity that is left in the
default state of "public" (DataEntity.Public =Yes ).
Apps for Office – The Excel App is built by using the Apps for Office framework (which is also known as the
Office Web API). The Excel App is web-based, and therefore shares technology with the client and will run inside
both on-premises Excel instances and Microsoft Excel Online (Microsoft Office 365). The app runs inside Excel in
a task pane.
Microsoft Office 2016 – The Excel and Word Apps use advances in the Apps for Office framework that were
introduced in Office 2016. Therefore, Office 2016 is required in order to run the Excel and Word Apps.
Authentication – The Excel and Word Apps run in an Internet Explorer window inside Excel and Word. Even if
the user is running the client in an InPrivate Browsing session in Internet Explorer, or in a different browser, such
as Chrome, Internet Explorer is still used to run the app inside Excel or Word. Authentication is facilitated by
OAuth, and the user can select accounts and sign in within the app. Internet Explorer will first try to
automatically sign the user in. Therefore, if you aren't signed in as the correct user, or if you have trouble
signing in, you might have to force a sign-out from the app by using the sign-out link on the user menu in the
lower-right corner of the app. After sign-out, right-click in the app, and try to sign in again.
Excel App – In addition to facilitating refresh and publish data operations, the Excel App also provides source
and field information, lookups, filtering, error messaging, and a design experience for adding or removing
fields, table columns, or labels from entity data sources.

Setup
Load the Fleet data set
During this tutorial, we will mainly use forms, entities, and data in the Fleet Management model. Therefore, we
must first load the Fleet data set.
1. Navigate to Fleet Management > Setup > Fleet setup .
2. Click Create .

Static Export to Excel experiences


Static Export to Excel
Static Export to Excel provides a quick mechanism for getting data into grids on a page. The standard mechanism
for triggering Export to Excel is the Open in Microsoft Office menu. Static Export to Excel is also available via a
shortcut menu on the grid.
1. In Internet Explorer, navigate to Fleet Management > Customers > Customer .
2. Click Open in Microsoft Office > Expor t to Excel > Customers .
3. Download and open the workbook that is generated. Note that the columns in the workbook match the
columns in the grid.
4. Select ("mark") the first two rows by clicking in the left edge of the row, below the "Select all" check mark.
5. Right-click the grid header to open the shortcut menu. Note that both Expor t all rows and Expor t marked
rows are available as commands.
6. Click Expor t marked rows . Note that the columns in the workbook match the columns in the grid, and that
the rows that are exported match the rows that you marked.
Modify the static Export to Excel experience
You can suppress the static Export to Excel mechanism for a grid or change the label that appears on the Open in
Microsoft Office menu.
1. Start Visual Studio 2015. Make sure that it's running as an administrator.
2. Click View > Application Explorer (or press Ctrl+E, Ctrl+E).
3. Navigate to AOT > User Interface > Forms > FMCustomer .
4. Right-click FMCustomer , and then click Add to new project .
5. In Solution Explorer, double-click the FMCustomer form to open the designer view.
6. Select FMCustomerDesignTab(Tab)TabPageGrid(TabPage)MainGrid(Grid) .
7. In the Proper ties window, find the Expor t Label property.
8. Set the Expor t Label property to Fleet Customers .
9. Save the form. If you're asked whether you want to overwrite the existing form or save it as a new form, click
Over write .
10. Build the solution (press Ctrl+Shift+B).
11. In Internet Explorer, navigate to Fleet Management > Customers > Customer .
12. Click Open in Microsoft Office . Note that the Customers option has changed to Fleet Customers .

Generated Open in Excel experiences


Generated Open in Excel
Generated Open in Excel options are automatically added to forms when the system finds data entities that have
the same root data source as the form. The workbook that is generated will contain a single table data source
where the data from that entity is loaded. The Open in Excel experiences are listed on the Open in Microsoft
Office menu. (When an entity has the same root data source as a form, it's added as an option in the Open in
Excel section of the Open in Microsoft Office menu. This option is referred to as a “generated” option.)
1. In Internet Explorer, navigate to Fleet Management > Customers > Customer .
2. Click Open in Microsoft Office > Open in Excel > Fleet Management Customers (unfiltered) .
3. Download and open the workbook that is generated. This workbook contains the Excel Data Connector App, a
binding to the Fleet Management Customer entity, and a pointer to the server that the workbook was
generated from.
4. Click Enable editing to enable the Excel Data Connector App to load. Customer data is read from the OData
service on the server and added to the table.
5. In Internet Explorer, on the Customer page, click Edit (or press F2), and change the email address of one of the
customers.
6. In the Excel App, click Refresh . Note that the new email address is shown in Excel.
7. In Excel, change the email address of one of the customers.
8. In the Excel App, click Publish .
9. In Internet Explorer, click Refresh in the upper right of the page (or press Shift+F5). Note that the new email
address is shown on the Customer page.
10. In Excel, click the Settings (gear) button in the lower-right corner of the Excel App. You can use the dialog box
that appears to adjust the settings in the current workbook. Note that the Ser ver URL value matches the start
of the URL that is shown in Internet Explorer. Also note that the data refresh and data publish operations are
listed.
11. Click Cancel to close the Settings dialog box.
12. Click the Message Center (flag) button in the lower-right corner of the Excel App. The message center dialog
box that appears provides information about what is occurring in the Excel App.
Add and remove table columns from an existing table data source in the Excel App
The Excel App has a design experience that lets users add and edit bindings to entity data sources and labels. To
add and remove fields from an existing binding, you use the edit experience that is outlined in the following steps.
1. Get a workbook that has an existing table data source:
a. In Internet Explorer, navigate to Fleet Management > Customers > Customer .
b. Click Open in Microsoft Office > Open in Excel > Fleet Management Customers (unfiltered) .
c. Download and open the workbook that is generated. This workbook contains the Excel Data Connector
App, a binding to the Fleet Management Customer entity, and a pointer to the server that the workbook
was generated from.
d. Click Enable editing to enable the Excel Data Connector App to load. Customer data is read from the
OData service on the server and added to the table.
2. Open the data source for editing:
a. In Excel, in the Excel App, click Design . A list of table and field data sources appears.
b. Click the Edit (pencil) button next to the existing table data source. The data source details are shown.
3. Remove fields. In the Selected list, double-click a field. Alternatively, click a field, and then click Remove . To
select multiple fields, keep the Ctrl key held down while you click them. To select all fields, press Ctrl+A.
4. Add fields. In the Available list, double-click a field. Alternatively, click a field, and then click Add . To select
multiple fields, keep the Ctrl key held down while you click them. To select all fields, press Ctrl+A.
5. Change the field order. In the Selected list, click a field, and then click Up or Down .
6. Change a field label. In the Selected list, click a field, and then click in the Column label field below the list.
You can change the label to either a static string or a label identifier that will be translated to the active
language (for example, @SYS129977 ).
7. Apply the changes that you made to data source fields:
a. Click Update to return to the data source list.
b. Click Refresh to make sure that any new fields are filled with data.
Change an automatically generated Open in Excel experience
The automatically generated Open in Excel experiences that are created for entities have a single table binding. The
list of fields that are added to that table binding is defined by the AutoRepor t field group if the table binding
contains fields. Otherwise, the key and mandatory fields for the entity are automatically added. The order of fields
in the AutoRepor t group determines the order of fields in the table binding.
1. Start Visual Studio 2015. Make sure that it's running as an administrator.
2. Click View > Application Explorer (or press Ctrl+E, Ctrl+E).
3. Navigate to AOT > Data Model > Data Entities > FMCustomerEntity .
4. Right-click FMCustomerEntity , and then click Add to project .
5. Expand FMCustomerEntity > Field Groups > AutoRepor t .
6. Reverse the order of the First name and Last name fields by clicking the Last name field and moving it up
(press Alt+Up arrow key).
7. Save the entity. If you're asked whether you want to overwrite the existing entity or save it as a new entity, click
Over write .
8. Build the solution (press Ctrl+Shift+B).
9. In Internet Explorer, navigate to Fleet Management > Customers > Customer .
10. Click Open in Microsoft Office > Open in Excel > Fleet Management Customers .
11. Open the workbook that is generated.
12. Click Enable editing to enable the Excel Data Connector App to load. Note that the Last name column
appears before the First name column.
Open in Excel Online
The Excel App is built by using a new Apps for Office framework. This framework provides a JavaScript-based web
application programming interface (API) that enables apps to communicate with Office applications. The biggest
advantage of this new framework is that apps can run in on-premises Excel instances (Win32), Excel Online (Office
365), and Excel on the Apple iPad. They will also be able to run in other Excel apps in the future.
1. Navigate to Fleet Management > Customers > Customer .
2. Click Open in Microsoft Office > Open in Excel > Fleet Management Customers .
3. Click SharePoint .
4. Browse to the desired Microsoft SharePoint folder.
5. Click Save . The default behavior is to open the file after it's saved. Note that the workbook opens in Excel
Online. In Excel Online, capabilities of the Excel App, such as refresh and publish, and the design experience,
should work just as they work in on-premises Excel instances.

Template Open in Excel experiences


Template Open in Excel
Template options resemble the generated Open in Excel options. They are automatically added to forms when the
system finds templates that have the same first data source as the root data source in the form. A workbook
template can have multiple data sources. It can also have unbound content. The Open in Excel experiences are
listed on the Open in Microsoft Office menu. The Excel workbook designer page provides an easy way to get
a generated Open in Excel experience for an entity. It also provides a mechanism getting a blank workbook that
contains just the Excel App and a pointer to the server.
1. In Internet Explorer, navigate to Common > Common > Office integration > Excel workbook designer .
2. Select the FleetCustomer entity.
3. Add all fields in the list of available fields to the list of selected fields.
4. Click Create workbook .
5. Open the workbook that is generated. This workbook contains the Excel Data Connector App, a binding to the
Fleet Management Customer entity, and a pointer to the server that the workbook was generated from.
6. Click Enable editing to enable the Excel Data Connector App to load. Customer data is read from the OData
service on the server and added to the table.
7. Insert a blank row above the table, and enter Fleet Customers as the title.
8. Rename the worksheet FleetCustomers .
9. Rearrange some of the fields in the table. Click Design to open the design experience.
10. Next to the FleetCustomer data source, there are buttons for editing and deleting the data source. Click Edit to
see the field list.
11. Select fields, and move them as you require. Set the order for the first three fields to FirstName , LastName ,
and DriverLicense .
12. Click Update . Note that the field order is changed.
13. Click Done .
14. Click the Settings (gear) button.
15. Click Clear binding data so that the workbook contains no bound data.
16. Click OK .
17. Save the workbook as FleetCustomersBasic.xlsx .
18. In Internet Explorer, navigate to Common > Common > Office integration > Document templates .
19. Click New .
20. Browse to the file that you just saved.
21. Click OK . The template is added as a line in the templates table.
22. In the FleetCustomersBasic row, clear the Apply current record filter check box, so that an unfiltered list of
customers will be loaded after the template is opened.
23. Change the Template display name value to Fleet Customers Basic .
24. Navigate to Fleet Management > Customers > Customer .
25. Click Open in Microsoft Office . Note that Fleet Customers Basic is now an option in the Open in Excel
section. Click that option.
26. Open the workbook that is generated.
27. Click Enable editing to enable the Excel Data Connector App to load. Customer data is read from the OData
service on the server and added to the table binding that you created.
Register a template as a system-defined template
Templates that are registered as system-defined templates are loaded at deployment. This behavior is useful for
independent software vendors (ISVs) and partners that want to package templates together with other model
artifacts.
1. Start Visual Studio 2015 by opening the previously created project where the model is set to Fleet
Management , or create a new project.
2. Right-click the project, and then click Add > New item .
3. Select the Resource item type.
4. Set the name to FleetCustomersBasicTemplate .
5. Make sure that the FleetCustomersBasic.xlsx file is closed.
6. Click Add .
7. Select the FleetCustomersBasic.xlsx file. Note that the resource is added to the project.
8. Click View > Application Explorer (or press Ctrl+E, Ctrl+E).
9. Navigate to AOT > Classes > Code > FMTemplateRegistrations .
10. Right-click FMTemplateRegistrations , and then click Add to project .
11. Open FMTemplateRegistrations . The FMTemplateRegistrations.xpp code file should be shown.
12. Copy one of the existing lines, and change it by providing the template name, resource name, description,
display name, and Apply current record filter and List in Open in Office menu values. The display
name is the text that appears as an Open in Excel option. The description appears when the user holds the
pointer over that item. The display name and description can be either labels or static strings. The code
should resemble the following example.

this.addTemplate(
OfficeAppApplicationType::Excel,
resourceStr(FleetCustomersBasicTemplate),
resourceStr(FleetCustomersBasicTemplate),
"Template for fleet customers", "Fleet customers basic", NoYes::No, NoYes::Yes);

13. Save the code. If you're asked whether you want to overwrite the existing code or save it as a new file, click
Over write .
14. Build the solution (press Ctrl+Shift+B).
15. Verify that the change was successful. In Internet Explorer, navigate to Common > Common > Office
integration > Document templates .
16. Click Reload system templates .
17. Click Yes to confirm that you want to reload the system templates.
18. Verify that the new system-defined template is loaded, and that the template name is
FleetCustomersBasicTemplate .
Journal Entry in Excel experience powered by a template
1. In Internet Explorer, navigate to General ledger > Journal entries > General journals .
2. Make sure that you're in company USMF .
3. Create a new journal by clicking New .
4. Set the name to GenJrn .
5. Click Open lines in Excel .
6. Open the workbook that is generated, and enable editing as required. Note that header fields are filled with
data.
7. Enter a new line, and set the MainAccount field to 110110 . Enter a description, a currency, and a debit
amount. Note that lookups are provided for the company and currency fields, because those relationships are
defined for this entity.
8. Click Publish . Note that the line is updated with the current date and a debit amount of 0 (zero).
9. In Internet Explorer, click Lines . Note that line that you entered in Excel is shown.

Lookups in Excel experiences


Lookups in the Excel App
To facilitate data entry, the Excel App provides lookups and data assistance. Date fields provide a date picker,
enumeration (enum) fields provide an enum list, and relationships provide a relationship lookup.
1. In Internet Explorer, navigate to Fleet Management > Rentals > Rental .
2. Click Open in Microsoft Office > Open in Excel > Fleet Management Rentals .
3. Open the workbook that is generated.
4. Click Enable editing to enable the Excel Data Connector App to load and read in data.
5. Click a Drivers license value. Note that a relationship lookup now appears in the Excel App and shows a list of
customers. Because relationship lookups are in their first generation, no filtering or sorting is currently
supported.
6. Click another customer in the lookup, and note that the Drivers license value changes. Because this field is
part of the key, click the original Drivers license value to reset it. Note that the Drivers license , First name ,
and Last name fields form a multi-part key, but the Excel App doesn’t immediately change all parts of the
multi-part key.
7. Click a Star t date value. Note that a date picker now appears in the Excel App.
8. Click another date to change the Star t date value.
9. Click Design , and edit the FleetRental data source by adding the Status field as a column in the table binding.
10. When you've finished adding the Status column, click a Status value. Note that an enum list now appears in
the Excel App.
11. While focus is in the Status column, move up and down the list of rentals to see how quickly the enum list
changes to reflect the current value. The whole enum list is shown, so that the user can quickly see all the
available values.
12. Click a different Status value to see how an enum value can be changed by using a single click.
Create a relationship lookup
When relationships exist between entities, a relationship lookup is shown.
1. Start Visual Studio 2015 by opening the previously created project where the model is set to Fleet
Management , or create a new project.
2. Click View > Application Explorer (or press Ctrl+E, Ctrl+E).
3. Navigate to AOT > Data Model > Tables > FMCustGroup .
4. Right-click, and then click Open designer .
5. In the designer, right-click FMCustGroup , and then click Addins > Create data entity . Artifacts are added to
the project.
6. Open the designer view for FMCustGroupEntity .
7. In the property sheet for FMCustGroupEntity , set Public Collection Name to FleetCustomerGroups and
Public Entity Name to FleetCustomerGroup .
8. Add the CustGroup and Description fields to the AutoLookup field group.
9. If FMCustomerEntity isn't already in the project, add it.
10. Open the designer view for FMCustomerEntity .
11. Right-click Relations , and then click New > Relation .
12. On the new relation, set Name to CustomerGroup , Cardinality to ZeroMore , RelatedDataEntity to
FMCustGroupEntity , RelatedDataEntityCardinality to ZeroOne , RelationshipType to Association , Role
to CustomerGroupSource , and RelatedDataEntityRole to CustomerGroupTarget .
13. Build the solution (press Ctrl+Shift+B).
14. Verify that the change was successful. In Internet Explorer, navigate to Fleet Management > Customers >
Customer .
15. Click Open in Microsoft Office > Open in Excel > Fleet Management Customers .
16. Open the workbook that is generated.
17. Click a Customer group value.
18. Change the Customer group value for a customer.
19. Publish the change.
20. Change the value back, and publish that change.
Create a custom lookup
You can create custom lookups to show data options when an enum or relationship isn't sufficient. The main use
case is when data must be retrieved from an external service and presented in real time.
1. Start Visual Studio 2015 by opening the previously created project where the model is set to Fleet
Management , or create a new project.
2. Open the designer view for FMCustomerEntity .
3. Right-click Methods , and then click New Method .
4. Add the lookup_Countr y code from the following example.

public class FMCustomerEntity extends common


{
[SysODataActionAttribute("FMCustomerEntityCountryCustomLookup", false), //Name in $metadata
SysODataCollectionAttribute("_fields", Types::String), //Types in context
SysODataFieldLookupAttribute("Country")] //Name of field
public static str lookup_Country(Array _fields)
{
OfficeAppCustomLookupListResult result = new OfficeAppCustomLookupListResult();

result.items().value(1, "US");
result.items().value(2, "AU");
result.items().value(3, "FR");
result.items().value(4, "GR");
result.items().value(5, "NZ");

return result.serialize();
}
}

5. Save the code. If you're asked whether you want to overwrite the existing code or save is as a new file, click
Over write .
6. Build the solution (press Ctrl+Shift+B).
7. Verify that the change was successful. In Internet Explorer, navigate to Fleet Management > Customers >
Customer .
8. Click Open in Microsoft Office > Open in Excel > Fleet Management Customers .
9. Open the workbook that is generated.
10. Click a Countr y value.
11. Change the Countr y value for a customer.
12. Publish the change.
13. Change the value back, and publish that change.

Export to Word experiences


Export to Word
Export to Word experiences can be used for lightweight reporting. They are powered by pre-built templates. The
Export to Word experiences are listed on the Open in Microsoft Office menu. Let's look at an example
experience that has been created for Fleet Management Customers.
1. In Internet Explorer, navigate to Fleet Management > Customers > Customer .
2. Click Open in Microsoft Office > Expor t to Word > Customer information Fleet Management
Customers (unfiltered) .
3. Download and open the document that is generated. The document contains data from the record that is
currently selected.
Create a Word template
The Microsoft Dynamics App for Office can be run in Word to enable the creation of templates that can then be
used for document generation.
1. Add a trusted catalog that points to the file share that contains the Microsoft Dynamics App manifest:
a. In Word, click File > Options .
b. Click Trust Center > Trust Center Settings .
c. Click Trusted Add-in Catalogs .
d. In the Catalog URL field, enter the file share location of the manifest.
e. Click Add catalog .
f. Click OK .
g. Click OK .
h. Restart Word.
2. Add the Microsoft Dynamics App to a document:
a. In Word, click Inser t > My Add-ins > Shared Folder > Microsoft Dynamics .
b. Click Inser t .
c. In the app, click Add ser ver information .
d. In the Ser ver URL field, enter the start of the URL (protocol + hostname). For example, enter
https://topo00dfa4stbobaos.cloudax.test.dynamics.com .
e. Click OK .
f. Click Yes to apply the settings change and reload the app.
3. Sign in to the app:
a. Click Sign In . The Azure Active Directory sign-in screen should provide a list of credentials. If you
encounter an error, force a sign-out (by using the sign-out link in the lower-right corner of the app), and
then sign in again.
b. Select the appropriate account, or click Use another account .
c. Enter the credentials for that environment, and then click Sign in .
4. Load the template designer applet:
a. After sign-in, click Load applets .
b. Select Template Designer .
c. Click OK.
d. Click Yes to confirm.
e. Click OK to close the settings page. The latest OData metadata is loaded.
5. Follow one of these steps:
Add a fields data source:
a. In the app, click Design .
b. Click Add fields .
c. Select FleetCustomer .
d. Click Next to go to the field selection page.
e. In the document, add a title and/or some blank lines at the top of the document.
f. In the app, in the Available list, select the FirstName field.
g. Click Add label to add a content control that references the "First name" label.
h. In the document, click to put focus into the document, click again to put focus at the end of the
label, and then press the Right arrow key until the cursor is outside the content control (the
control box will disappear).
i. Add a separator, such as space+hyphen+space (" - ") or space+colon+space (" : ").
j. In the app, click Add value to add a content control that references the FirstName field.
k. Repeat the process for the LastName field label and value.
l. Continue to add fields as desired.
Add a table data source:
a. In the app, click Design .
b. Click Add table .
c. Select FleetCustomer .
d. Click Next to go to the field selection page.
e. In the document, add a title and/or some blank lines at the top of the document.
f. In the app, in the Available fields list, add the FirstName , LastName , and City fields.
g. Click Done .
6. In Word, save the template document.
Create a Word template and use it for document generation
After you've built a Word template, you can upload it to create an Export to Word experience.
1. Upload a template:
a. Navigate to Common > Common > Office integration > Document templates . Alternatively,
search for the page.
b. Click New .
c. Click Browse .
d. In the dialog box, select a previously created template, and then click Open . Note that the Root data
entity is obtained from the template and appears near the bottom of the dialog box.
e. Click OK .
f. Scroll down the list of templates to confirm that the template was added.
g. Optional: If the template should not be filtered to the user's current record, clear the Apply current
record filter check box.
h. Optional: If the template should not be filtered to the user's current company, clear the Apply company
filter check box.
2. Use the uploaded template for document generation:
a. Navigate to a page that shares the same root data source as the template's root data entity. For
FleetCustomer (FMCustomerEntity ), that page is Fleet Management > Customers > Customer .
b. Click Open in Microsoft Office > Expor t to Word , and click the template.
c. Download and open the document that is generated.

Document Management and SharePoint experiences


Add a SharePoint document type
The Document Management subsystem can be used to attach files to records. Most non-executable file types are
supported as attachments. A document preview is provided for Office document files and PDFs. Administrators
create document types to indicate where attachments should be stored. When administrators use SharePoint as the
storage location, they must provide a specific folder that the files should be put in. Security of that SharePoint
folder is a separate administration responsibility.
1. In Internet Explorer, navigate to Organization administration > Document management > Document
management parameters .
2. Click SharePoint .
3. Make sure that the Default SharePoint ser ver field is set to a default value for the tenant, such as
contosoax7.sharepoint.com .
4. Click Test SharePoint connection . Note a successful connection.
5. Click Save .
6. Navigate to Organization administration > Document management > Document types .
7. Click New .
8. Set Type to SharePointDoc .
9. Set Name to SharePointDoc .
10. Set Location to SharePoint .
11. Click the Edit (pencil) button next to the SharePoint Address field.
12. On the left side of the dialog box, select a site. For the contosoax7 tenant, select ContosoAX Team Site .
13. On the right side of the dialog box, select a folder. For the contosoax7 tenant, select ContosoAX Team Site >
Documents > OfficeIntegration > Attachments .
14. Click OK .
15. Click Save .
16. Click the Browse (globe) button next to the SharePoint Address field. Note that a new browser tab that
shows the selected folder appears.
17. Use Windows Explorer to create a Word document in the Documents folder, and enter a few words in the
document.
18. In Internet Explorer, navigate to Fleet Management > Customers > Customer .
19. Put focus on the first customer, and then click the Attach (paperclip) button in the upper-right corner of the
page.
20. Click New > SharePointDoc .
21. Click Browse , and select the Word document that you created.
22. Expand the Preview FastTab to see a preview of the Word document.
23. Expand the Attachment FastTab to see the file location of the Word document.
24. In Internet Explorer, use the previously opened tab that shows the SharePoint folder to double-check that the file
has been placed appropriately.

Email experiences
Send mail via a local mail client
Email workflows that are enabled via the SysEmail framework can generate email messages (.eml files) that contain
attachments. You can then send these messages via Microsoft Outlook or another email client.
1. In Internet Explorer, navigate to Accounts receivable > Customers > All customers .
2. Select US-008 Sparrow Retail .
3. Click Collect > Customer balances > Collections to open the Collections page.
4. Click Communicate > Email > Statements to contact .
5. Click OK to accept the default values in the dialog box.
6. If you're prompted for the mail option to use, clear the Do not ask again check box (you can change this
option from the user options page), select Use an email app, such as Outlook , and then click OK .
7. If you're running Internet Explorer on your laptop, open the email (.eml) file that is generated. If you're running
Internet Explorer on the VM, copy the file to your laptop, and open it there.
8. Note the email address in the To field and the generated workbook attachment.
Send mail via SMTP
Email workflows that are enabled via the SysEmail framework can also be created in a simple email dialog box and
then sent via Simple Mail Transfer Protocol (SMTP).
1. In Internet Explorer, navigate to System administration > Setup > Email > Email parameters .
2. Click SMTP settings .
3. Set the Outgoing mail ser ver to the desired SMTP server:
For Office 365 production (including *.onmicrosoft.com accounts): smtp.office365.com (Find this setting
via outlook.office.com, at Settings > Mail > POP and IMAP .)
For Outlook/Hotmail: smtp-mail.outlook.com
4. Set the user name and password to an appropriate email account and password.
5. Leave SSLRequired turned on, and leave SMTP por t number set to 587 .
6. Click Save .
7. In Internet Explorer, navigate to Accounts receivable > Customers > All customers .
8. Select US-008 Sparrow Retail .
9. Click Collect > Customer balances > Collections to open the Collections page.
10. Click Communicate > Email > Statements to contact .
11. Click OK to accept the default values in the dialog box.
12. If you're prompted for the mail option to use, select Use the Microsoft Dynamics 365 for Finance and
Operations email client , and then click OK .
13. To receive the test message, change the To address to your email address.
14. Enter a subject and body for the message.
15. Click Send . The message should be delivered in one to five minutes. Note that the message will appear to
be sent from the email account that is set on the Email parameters page. If that email account is given
"Send As" (or "Send email from this mailbox") permissions for the From address that is used in the Send
email dialog box, messages will appear to come from that address.
You can configure "Send As" permissions in the Office 365 admin center (portal.office.com/Admin), at
Users > Active users > User > Edit mailbox permissions > Send email from this mailbox . For
more information, see Enable sending email from another user's mailbox in Office 365.
Before users can send email messages, "Send As" permissions for each user email account in the client
must be given to the email account that is set on the Email parameters page. For more information,
see How to set up a multifunction device or application to send email using Office 365.
16. Email that is sent directly from the server, without user interaction, is sent via a batch process and requires
that the Email distributor batch process be started. Follow these steps to start the process:
a. Navigate to System administration > Periodic tasks > Email processing > Batch .
b. Turn on Batch processing .

Additional resources
Office integration overview
Troubleshoot the Office integration
Open entity data in Excel and update it by using the
Excel add-in
10/1/2019 • 8 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to open entity data in Microsoft Excel, and then view, update, and edit the data by using the
Microsoft Dynamics Office add-in for Excel. To open the entity data, you can start from either Excel or Finance and
Operations.
By opening entity data in Excel, you can quickly and easily view and edit the data by using the Excel add-in. This
add-in requires Microsoft Excel 2016.

NOTE
If your Microsoft Azure Active Directory (Azure AD) tenant is configured to use Active Directory Federation Services (AD FS),
you must make sure that the May 2016 update for Office has been applied, so that the Excel add-in can correctly sign you in.

To learn more about using the Excel add-in, watch the short Create an Excel template for header and line patterns in
Dynamics 365 for Finance and Operations video.

Open entity data in Excel when you start from Finance and Operations
1. On a page in Finance and Operations, select Open in Microsoft Office .
If the root data source (table) for the page is the same as the root data source for any entities, default Open
in Excel options are generated for the page. Open in Excel options can be found on frequently used pages,
such as All vendors and All customers .
2. Select an Open in Excel option, and open the workbook that is generated. This workbook has binding
information for the entity, a pointer to your environment, and a pointer to the Excel add-in.
3. In Excel, select Enable editing to enable the Excel add-in to run. The Excel add-in runs in a pane on the right
side of the Excel window.
4. If you're running the Excel add-in for the first time, select Trust this Add-in .
5. If you're prompted to sign in, select Sign in , and then sign in by using the same credentials that you used to
sign in to Finance and Operations. The Excel add-in will use a previous sign-in context from Internet Explorer
and automatically sign you in, if it can. Therefore, verify the user name in the upper-right corner of the Excel
add-in.
The Excel add-in automatically reads the data for the entity that you selected. Note that there will be no data in the
workbook until the Excel add-in reads it in.

Open entity data in Excel when you start from Excel


1. In Excel, on the Inser t tab, in the Add-ins group, select Store to open the Office Store.
2. In the Office Store, search on the keyword Dynamics , and then select Add next to Microsoft Dynamics
Office Add-in (the Excel add-in).
3. If you're running the Excel add-in for the first time, select Trust this Add-in to enable the Excel add-in to
run. The Excel add-in runs in a pane on the right side of the Excel window.
4. Select Add ser ver information to open the Options pane.
5. In your browser, copy the URL of your target Finance and Operations instance, paste it into the Ser ver URL
field, and then delete everything after the host name. The resulting URL should have only the host name.
For example, if the URL is https://xxx.dynamics.com/?cmp=usmf&amp;mi=CustTableListPage , delete everything
except https://xxx.dynamics.com .
6. Select OK , and then select Yes to confirm the change. The Excel add-in is restarted and loads metadata.
The Design button is now available. If the Excel add-in has a Load applets button, you probably aren't
signed in as the correct user. For more information, see "The Load applets button is shown" in the
Troubleshooting section of this topic.
7. Select Design . The Excel add-in retrieves entity metadata.
8. Select Add table . A list of entities appears. The entities are listed in "Name - Label" format.
9. Select an entity in the list, such as Customer - Customers , and then select Next .
10. To add a field from the Available fields list to the Selected fields list, select the field, and then select Add .
Alternatively, double-click the field in the Available fields list.
11. After you've finished adding fields to the Selected fields list, make sure that the cursor is in the correct
place in the worksheet (for example, cell A1), and then select Done . Then select Done to exit the designer.
12. Select Refresh to pull in a set of data.

View and update entity data in Excel


After the Excel add-in reads entity data into the workbook, you can update the data at any time by selecting
Refresh in the Excel add-in.

Edit entity data in Excel


You can change entity data as you require and then publish it back by selecting Publish in the Excel add-in. To edit
a record, select a cell in the worksheet, and then change the cell value. To add a new record, follow one of these
steps:
Click anywhere in the data sources table, and then select New in the Excel add-in.
Click anywhere in the last row of the data sources table, and then press the Tab key until the cursor moves out of
the last column of that row and a new row is created.
Click anywhere in the row immediately below the data sources table, and start to enter data in a cell. When you
move the focus out of that cell, the table expands to include the new row.
For field bindings of header records, select one of the fields, and then select New in the Excel add-in.
Note that a new record can be created only if all the key and mandatory fields are bound in the worksheet, or if
default values were filled in by using the filter condition.
To delete a record, follow one of these steps:
Right-click the row number next to the worksheet row that should be deleted, and then select Delete .
Right-click anywhere in the worksheet row that should be deleted, and then select Delete > Table Rows .
If data sources have been added as related data sources, the header is published before the lines. If there are
dependencies between other data sources, you might have to change the default publishing order. To change the
publishing order, in the Excel add-in, select the Options button (the gear symbol), and then, on the Data
Connector FastTab, select Configure publish order .

Add or remove columns


You can use the designer to adjust the columns that are automatically added to the worksheet.

NOTE
If the Design button doesn't appear below the Filter button in the Excel add-in, you must enable the data source designer.
Select the Options button (the gear symbol), and then select the Enable design check box.

1. In the Excel add-in, select Design . All the data sources are listed.
2. Next to the data source, select the Edit button (the pencil symbol).
3. In the Selected fields list, adjust the list of fields as you require:
To add a field from the Available fields list to the Selected fields list, select the field, and then select
Add . Alternatively, double-click the field in the Available fields list.
To remove a field from the Selected fields list, select the field, and then select Remove . Alternatively,
double-click the field.
To change the order of fields in the Selected fields list, select a field, and then select Up or Down .
4. To apply your changes to the data source, select Update . Then select Done to exit the designer.
5. If you added a field (column), select Refresh to pull in an updated set of data.

Copy environment data


The data that is read into the workbook from one environment can be copied to another environment. However,
you can't just change the connection URL, because the data cache in the workbook will continue to treat the data as
existing data. Instead, you must use the Copy Environment Data functionality to publish the data to a new
environment as new data.
1. Select the Options button (the gear symbol), and then, on the Data Connector FastTab, select Copy
Environment Data .
2. Enter the server URL for the new environment.
3. Select OK , and then select Yes to confirm the action. The Excel add-in is restarted and connects to the new
environment. Any existing data in the workbook is treated as new data.
After the Excel add-in is restarted, a message box states that the workbook is in Environment copy mode.
4. To copy the data into the new environment as new data, select Publish . To cancel the environment copy
operation and review the existing data in the new environment, select Refresh .

Troubleshooting
There are a few issues that can be resolved through some easy steps.
The Load applets button is shown – If the Excel add-in has a Load applets button after sign-in, you
probably aren't signed in as the correct user. To resolve this issue, verify that the correct user name appears in
the upper-right corner of the Excel add-in. If an incorrect user name appears, select it, sign out, and then sign
back in.
You receive a "Forbidden" message – If you receive a "Forbidden" message while the Excel add-in is loading
metadata, the account that is signed in to the Excel add-in doesn't have permission to use the targeted service,
instance, or database. To resolve this issue, verify that the correct user name appears in the upper-right corner of
the Excel add-in. If an incorrect user name appears, select it, sign out, and then sign back in.
A blank webpage is shown over Excel – If a blank webpage is opened during the sign-in process, the
account requires AD FS, but the version of Excel that is running the Excel add-in isn't recent enough to load the
sign-in dialog box. To resolve this issue, update the version of Excel that you're using. To update the version of
Excel when you're in an enterprise that is on the deferred channel, use the Office deployment tool to move from
the deferred channel to the current channel.
Create Open in Excel experiences
2/12/2020 • 18 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Learn about creating Open in Office experiences for Excel and Word.

What are Open in Excel experiences?


Open in Excel experiences are:
Based on entities and the OData services that they create.
Dynamically-generated or based on a pre-defined template.
Editable and refreshable via the Excel Add-in.
The following image shows the Excel Add-in being used for Journal entry.

Where are the Open in Excel experiences?


Open in Excel experiences are usually found under in the Open in Excel section of the Open in Microsoft Office
menu, but an explicit button can be added for these experiences.

What's the difference between Export to Excel and Open in Excel?


The Export to Excel options and experiences are both found in the Open in Microsoft Office menu:
The Export to Excel options are static exports of grid data. Each one corresponds to a visible grid. All the grid
data for the current filter is placed into a workbook.
The Open in Excel experiences utilize the Excel Add-in to facilitate refresh and publish.
The following image shows the Open in Microsoft Office menu on the Fleet Customers form with a template
Open in Excel option, a generated Open in Excel option, and a static Expor t to Excel option.
When will an entity show as an Open in Excel option?
When an entity has the same root datasource (table) as a form, it will be added as an option in the Open in Excel
section of the Open in Microsoft Office menu. This is referred to as a “generated” option.

What fields will be shown in the workbook?


The default fields that will be added into the workbook are the key and mandatory fields of the entity. If a different
set of fields should be provided by default, then those fields can be added into the AutoRepor t field group on
the entity. The following image shows the Visual Studio view of the AutoReport field group for the
FMCustomerEntity.

What fields will be shown when an entity is the target of a lookup?


When a relationship is defined between two entities, if the identifier for one entity is shown on the other entity, then
the fields that will be shown in that lookup are either the key fields, or the fields in the AutoLookup field group if
it is not empty. Relationship lookups are not currently supported, but they will eventually be displayed in the app in
a similar way to the enumeration lookups. The Excel Add-in with an enumeration lookup is shown below.
What should be done to make an entity ready for use in Excel?
Define the AutoReport and AutoLookup field groups and test them using the Excel App design experience.

Why does an automatically added entity option have “(unfiltered)” after


the entity name?
Currently, a filter is not added to these options, hence the term “(unfiltered)”. In the future, an attempt will be made
to apply the filter from the form to these options. For example, if a list of Customers was filtered to just Customers
in the state of California, then, in the future, the entity will be scanned for the state field and if it is found then a
filter would be added automatically.

How can an entity be added as an Open in Excel option on a form that


doesn’t share the same root datasource?
A generated Open in Excel option can be added on any form by implementing the
ExportToExcelIGeneratedCustomExport interface. When adding a generated option programmatically, the set of
fields can be explicitly specified.

What are the region-specific considerations for defining entities?


The Open in Excel generated experiences can be made region-specific by adding region-specific fields into the
AutoLookup group. These region-specific fields will then be included in the generated workbook.

How can I create a custom lookup for an entity field in Excel?


A custom lookup can be shown for an Entity field.
Name - The method needs to have a name that is “lookup_<fieldname>” e.g. a field “MyField” could have a
lookup method “lookup_MyField”.
Attributes – Attributes need to be added to the method:
SysODataActionAttribute(str <name>, Boolean <isInstanceMethod>)
SysODataCollectionAttribute(str <name>, Types <type>, “Value”)
Return – The method should return a list of strings.
Example

public class ExportToExcel_SimpleEntity extends common


{
[SysODataActionAttribute("Lookup_StringLookupField", true),
SysODataCollectionAttribute("return", Types::String, "Value")]
public List lookup_StringLookupField()
{
List lookupList = new List(Types::String);
const int items = 5;

for (int item = 0; item < items; item++)


{
lookupList.addEnd(strfmt('%1 - %2 (%3)', this.StringField, this.IntField, item));
}

return lookupList;
}
}

How does the app get injected into a workbook to start building a
template?
The Excel Add-in is injected into a workbook when a generated Open in Excel experience is triggered or when a
workbook is created using the Common > Common > Office integration > Excel workbook designer form.
The Create workbook button will add the selected entity and fields, a pointer to the server, and the app into a
workbook.
The Create blank workbook button will simply add a pointer to the server and the app into a workbook.
The View related form will navigate to the form relating to the currently selected entity to more easily review
the effect of data changes made in Excel.
The Get entity record count button will show the record count for the currently selected entity. The Excel Add-
in will handle large sets of data within the memory limits of a user's machine. By default, the Excel Add-in has a
data govenor that restricts the data size to one million cells but, depending on the performance abilities of the
user's machine, this can usually be extended to around 2.5 million cells.
The following image shows the Excel workbook designer form.
After obtaining a workbook containing the Excel Add-in, additional datasources can be added using the Design
button. Currently, datasources cannot be removed.

When will a template show as an Open in Excel option?


When a template listed in the Common > Common > Office integration > Document templates form
(DocuTemplate) has ShowInOpenInOfficeMenu set to Yes and has the same root datasource (table) as the current
form, it will be added as an option in the Open in Excel section of the Open in Microsoft Office menu. The following
image shows the Document templates form.

Will a filter be added to the template?


In the Document Templates form, the standard filter for “current record” can be turned on and off. If the filter is
on, when the template is invoked as an Open in Excel option, then a filter for the current record will be added to the
workbook. The filter will be the key fields and their values.

How can templates be defined in metadata and code and loaded


automatically?
When adding a template into the Document Templates form, it is added for that instance and is referred to as a
“user-defined” template. Templates can also be defined in metadata and code and loaded automatically, thus
making them “system-defined” templates. To create a system-defined template using metadata and code, you need
to do the following:
Define the template.
Create a new resource in a project.
Define a new class that extends the DocuTemplateRegistrationBase class and add an implementation of the
registerTemplates method.
The LedgerJournalLineEntryTemplateRegistration and FMTemplateRegistrations classes are good examples of
template registrations defined in code. The LedgerJournalLineEntryTemplate and
FMTemplateCustomersWithLocations resources are the corresponding templates stored in metadata as resources.
When a template has a registration class, it will be loaded when the Reload system templates button is clicked in
the Document Templates form.

How do templates get loaded into a fresh deployment?


To load system defined templates, click the Reload system templates button in the Common > Common >
Office integration > Document templates form, as shown below.

In the future, we will do the equivalent of clicking that button during deployment.
How do I decide if I should create a template?
A template is an artifact that needs to be maintained and versioned. If you can avoid defining a template without
sacrificing much from the user experience, then you probably should use a template. Create a template if:
You need additional content or formatting in the template.
You want to combine multiple entities/datasources in the same workbook.
Don’t create a template if:
You can just specify a set of fields to show in a table binding.

What are the region-specific considerations for templates?


When creating a template for an entity that has region-specific fields, you should leave those region-specific fields
out of the template, otherwise all users will see the region-specific fields. Templates should cater to the majority of
users by default and region-specific users can add those fields using the easy-to-use design experience of the Excel
Add-in. The region-specific fields and columns can be added by users as needed. That template can be either saved
to local computer for reuse by a single user or uploaded via the Document Templates form for reuse by any user of
that instance. A couple of other considerations:
If a region has a region-specific entity, then a region-specific template could be created.
If a region is important enough, then you could define a region-specific template as well as a region-generic
template.

How do I add an explicit button for a template Open in Excel option?


An explicit button can be added for Open in Excel experiences. The label shown on the button should usually be
“Open target in Excel” where target is the name of the target data like “lines” or “catalog”. The code behind such a
button will:
Obtain the template to be used.
Add a filter.
Pass the template to the user.
An example of this code can be found on the LedgerJournalTable form (General ledger > Journals > General
journal ) in the Clicked method on the OpenLinesInExcel button.
[Control("Button")]
class OpenLinesInExcel
{

/// <summary>
/// Opens the current journal in Excel for line entry and editing
/// </summary>
public void clicked()
{
super();

const str templateName = resourceStr(LedgerJournalLineEntryTemplate);


DocuTemplate template = DocuTemplate::findTemplate(OfficeAppApplicationType::Excel,
templateName);

// Ensure the template was present


if (template && template.TemplateID == templateName)
{
Map filtersToApply = new Map(Types::String, Types::String);

// Create lines filter


ExportToExcelFilterBuilder filterBuilder = new
ExportToExcelFilterBuilder(tablestr(LedgerJournalLineEntity));
str filterString = filterBuilder.areEqual(fieldstr(LedgerJournalLineEntity, JournalBatchNumber),
LedgerJournalTable.JournalNum);
filtersToApply.insert(tablestr(LedgerJournalLineEntity), filterString);

// Create header filter


filterBuilder = new ExportToExcelFilterBuilder(tablestr(LedgerJournalHeaderEntity));
filterString = filterBuilder.areEqual(fieldstr(LedgerJournalHeaderEntity, JournalBatchNumber),
LedgerJournalTable.JournalNum);
filtersToApply.insert(tablestr(LedgerJournalHeaderEntity), filterString);

// Generate the workbook using the template and filters


DocuTemplateRender renderer = new DocuTemplateRender();
str documentUrl = renderer.renderTemplateToStorage(template, filtersToApply);

// Pass the workbook to the user


if (documentUrl)
{
Browser b = new Browser();
b.navigate(documentUrl, false, false);
}
else
{
error(strFmt("@ApplicationFoundation:DocuTemplateGenerationFailed", templateName));
}
}
else
{
warning(strFmt("@ApplicationFoundation:DocuTemplateNotFound", templateName));
}
}

The following image shows the General ledger > Journals > General journal form with the Open lines in
Excel button highlighted.
To programmatically add generated and template Open in Excel options, Open in Excel options can be added by
implementing the ExportToExcelIGeneratedCustomExport and ExportToExcelITemplateCustomExport interfaces. This
allows the addition of options to forms where the entity or template doesn’t have the same table as the root
datasource. An example of when you would use this capability is on forms without a datasource, potentially
containing only a collection of form parts. The following example adds generated and template Open in Excel
options programmatically to the FMRental form.
[Form]
public class FMRental extends FormRun implements ExportToExcelIGeneratedCustomExport,
ExportToExcelITemplateCustomExport
{
...

public List getExportOptions()


{
List exportOptions = new List(Types::Class);

ExportToExcelExportOption exportOption =
ExportToExcelExportOption::construct(ExportToExcelExportType::CustomGenerated, int2str(1));
exportOption.setDisplayNameWithDataEntity(tablestr(FMRentalEntity));
exportOptions.addEnd(exportOption);

ExportToExcelExportOption exportOption2 =
ExportToExcelExportOption::construct(ExportToExcelExportType::CustomTemplate, int2str(2));
exportOption2.displayName("Analyze rentals");
exportOptions.addEnd(exportOption2);

return exportOptions;
}

public ExportToExcelDataEntityContext getDataEntityContext(ExportToExcelExportOption _exportOption)


{
ExportToExcelDataEntityContext context = null;

if (_exportOption.id() == int2str(1))
{
context = ExportToExcelDataEntityContext::construct(tablestr(FMRentalEntity),
tablefieldgroupstr(FMRentalEntity, AutoReport));
}

return context;
}

public System.IO.Stream getTemplate(ExportToExcelExportOption _exportOption)


{
System.IO.Stream stream = null;

if (_exportOption.id() == int2str(2))
{
stream =
Microsoft.Dynamics.Ax.Xpp.MetadataSupport::GetResourceContentStream(resourcestr(FMRentalEditableExportTemplate)
);
}

return stream;
}

public void updateTemplateSettings(ExportToExcelExportOption _exportOption,


Microsoft.Dynamics.Platform.Integration.Office.ExportToExcelHelper.SettingsEditor _settingsEditor)
{
}
...

How do I add a filter for a programmatically-added template Open in


Excel option?
A template Open in Excel option can be programmatically added by implementing the
ExportToExcelITemplateCustomExport interface and providing a template in the getTemplate method. A filter for
that option can be programmatically added by using the ExportToExcelFilterBuilder API in the
updateTemplateSettings method.
public void updateTemplateSettings(ExportToExcelExportOption _exportOption,
Microsoft.Dynamics.Platform.Integration.Office.ExportToExcelHelper.SettingsEditor _settingsEditor)

_settingsEditor.SetFilterExpression(tableStr(RetailTmpBulkProductAttributeValueEntity),
element.getExportToExcelFilterExpression());

DictDataEntity dictDataEntity = new DictDataEntity(tableNum(RetailTmpBulkProductAttributeValueEntity));

_settingsEditor.SetFilterExpressionByPublicName(dictDataEntity.publicEntityName(),
element.getExportToExcelFilterExpression());

After a filter has been added programmatically, the resulting filter can be viewed in the Excel Add-in using the
Filter button. The following image shows the Excel Add-in with the Filter button highlighted.

The following image shows the Excel Add-in with the Filter dialog box opened.

How do I enable relationship lookups in Excel?


To enable relationship lookups in the Excel Data Connector, you must ensure that the following metadata is set.
The Role and Related Data Entity Role defined on the relationship need to be unique among all relationships
on both the source and target entity. This is particularly important for relationships involving entities with
lots of relationships, such as DimensionCombinationEntity. If you're not seeing an expected lookup, try
changing the role names to the following format:
Role : [this entity's public name] + [target entity's public name] + [target entity field] + "Source"
Related Data Entity Role : [this entity's public name] + [target entity's public name] + [target entity
field] + "Target"
The Cardinality and Related Data Entity Cardinality need to be set appropriately.
At least one constraint must be added to the relationship. With the exception of dimension
relationships, which are a special case, the properties constrained must both be public.

How can I enable users to create new header records as well as lines in
a workbook?
To enable creation of header records and related lines, the header data source must be added as a set of "fields"
and the lines data source must be added as a related table. This pattern can work well for document data entry
scenarios such as Journal entry.
To learn more about header records and related lines, watch the short Create an Excel template for header and line
patterns in Dynamics 365 for Finance and Operations video.
To design a workbook with header fields and a lines table that enables header creation:
1. In the Excel Add-in, click Design to open the Designer. Select Add fields to add a header data source.
2. Select the header fields that you want to use. Be sure to include all the key fields or the New button won't be
enabled.
3. For all of the string header value fields, manually apply "Text" format for that cell using Excel ribbon > Home
tab > Number group > set "Number" in the format drop-down menu. If the Text format isn't manually set
on a string field and there's a string value with leading zeros like "00045", then Excel will automatically change it
to "45" and an error will be shown like: "Unable to change the value of PurchaseOrderHeader's
PurchaseOrderNumber field as it is a key field". Currently, the API doesn't allow for automatically applying the
text formatting on individual cells (versus table columns).
4. In the Designer, on the header data source, click the Add related table button represented by a double plus
icon.
5. Select the line fields that you want to use.
Here's an example of a header data source with a related table data source.
PurchaseOrderHeader (Fields)
dataAreaId
PurchaseOrderNumber
PurchaseOrderName
OrderVendorAccountNumber
PurchaseOrderLine (Table - related)
LineNumber
ItemNumber
LineDescription
OrderedPurchaseQuantity
LineAmount
To use a header and lines workbook to create a new header and lines, follow these steps:
1. In the workbook, move the focus to a cell with a header value.
2. In the Excel Add-in, click New .
3. Enter header values and lines as needed.
4. Select Publish .

How can fields be added, removed, or moved within an existing


template workbook?
Fields can be added into an existing template workbook by editing the workbook stored in Document Templates .
1. Get the original template workbook.
a. Open the Document Templates form.
b. Find the existing template workbook.
c. Download the workbook.
d. Open the workbook and enable editing so that the Excel Add-in runs.
2. Make changes to the template.
a. In the Excel Add-in, select Design .
b. Click the Edit button (pencil icon) next to the datasource that you want to add a field into.
c. Add fields by moving them from the Available fields list into the Selected fields list. Double-clicking a
field will move it. Remove fields by moving them from the Selected fields list into the Available fields
list.Move fields using the Up and Down buttons.
d. After changes are complete, select Update , select Yes to confirm, and then select Done to exit the
Designer (if appropriate, select Refresh to verify that the data is correctly populated).
e. Clear the data from the template before upload by clicking Options (gear icon), expand the Data
Connector section, then click the Clear binding data button.
f. Use Save As to store the template somewhere temporarily.
3. Upload the changed template.
a. Return to the Document Templates form and upload the changed template.
b. Click New and browse to find the changed template.
c. Select the saved template file and click Open .
d. In the Upload template dialog box, remove the underscore and trailing random number from the name
For example, "CustInvoiceJournalTemplate_636564840743000567" becomes
"CustInvoiceJournalTemplate".
e. A confirmation dialog box should show that "A template with this name already exists...", click Yes to
confirm replacement of the previous template. Note that if this confirmation is not shown, then the
template name is different and it is being uploaded as a new template.
4. Open the form that the template is used on and use the changed template.

Troubleshooting
If you are not seeing an expected lookup, validate relationship metadata by checking the metadata feed available at
[YourSiteURL]/data/$metadata. Search the $metadat feed for the public name of your entity to find its EntityType
element, then make sure there is a child NavigationProperty element with a name equal to the Role value of the
relationship. If the navigation property exists, it will be used by the Excel Data Connector to show a relationship
lookup. Lookups are not shown under the following conditions:
All of the entity's key fields are included as constraints in the relationship.
The selected field is a key and the selected record is not new.
The authenticated user does not have permission to access the entity targeted by the lookup.
How do dimensions work?
The easiest way to set up dimension metadata on data entities is to use the data entity creation wizard, which will
automatically create the private relationships and public display value fields exactly as the dimensions framework
needs them. If you want to customize your dimensions setup, see Add dimensions to Excel templates. Lookups, are
only generated automatically for non-ledger dimensions. Custom dimensions are not supported curently. If you
want to enable lookups for ledger dimensions (MainAccount, Department, CostCenter, etc.), see Add dimensions to
Excel templates for guidance on creating relationships on DimensionCombationEntity and DimensionSetEntity
fields. When those relationships are present, relationship lookups will be displayed in the Excel Data Connector. The
Excel Data Connector supports two types of dimension data entry: editing the display value directly or editing each
attribute of the display value in a separate column. If both the display value column and the individual attribute
columns are bound, they can both be edited and published separately. If both the display value and an individual
attribute are edited in the same row, the individual attribute change overrides the display value change.

How do I create formula table columns?


If a formula is needed in a table, then add a formula column. When in the field selection page for a table binding,
click the Formula button above the Selected fields list to add a new formula column. The label and value for the
formula are entered in the fields immediately below the Selected fields list. After adding a new formula column,
leave the value empty and click Update . After the field has been added to the table, use standard Excel capabilities
to create a formula, then copy the formula and paste it into the formula column value field. When defining a
formula, make sure there is more than one row in the table, otherwise the formula that Excel provides may be for
ALL rows instead of THAT row. To specify just the current row, the at sign (@) is needed. For example, sum of four
columns for all rows "=SUM(Table1[[ColumnA]:[ColumnD]])" versus sum of four columns for the current row
"=SUM(Table1[@[ColumnA]:[ColumnD]])".

Known issues
Refresh doesn’t automatically occur in old templates
The ability to control “refresh on open” was added as a setting. To add this to the default behavior, existing
templates and workbooks need to have the Refresh on open check box selected in Options > Data Connector
> Refresh Options .
Error finding entity
The reference to entities changed from using the Private Entity Name (DataEntity.Name) to Public Entity Name
(DataEntity.PublicEntityName). If the public and private names for an entity were different and that entity was used
in an Excel template or workbook, then this will cause the following error to be displayed in the Excel App: “Error
Finding Entity. Details: Entity "<DataEntity.Name>" not found”.
To resolve this, change the binding information in the affected template so that it points to
DataEntity.PublicEntityName instead of DataEntity.Name.
1. For the DataEntity.Name that needs to be replaced, determine the DataEntity.PublicEntityName, for example
replace FMCustomerEntity with FleetCustomer.
2. Find the affected template.
3. Change the file extension on the template from .xlsx to .zip.
4. The file to be changed will be one of the webextension*.xml files in the xlwebextensions directory, such as
2015-05-25-FleetCustomersWithLocations.zipxlwebextensionswebextension2.xml.
5. Open the file to ensure that you have the correct location.
6. Find the DataEntity.Name, such as FMCustomerEntity.

7. Extract the zip file.


8. Open the webextension xml file.
9. Replace the DataEntity.Name with the corresponding DataEntity.PublicEntityName.
10. Save the webextension .xml file changes.
11. Rename the old zip file, for example, add “.old” to the name.
12. Create a new zip file of all the previously extracted content. This usually involves highlighting the content
inside the archive/zip folder and creating a zipped folder using that content.
13. Verify that the zip file has the “_rels”, “docProps”, and “xl” folders in the root of the zip file.
14. Rename the zip file as needed, for example rename the file 2015-05-25-FleetCustomersWithLocations.zip.
15. Change the zip file extension to .xlsx.
16. Re-publish the workbook .xlsx file, if needed.
Add templates to the Open lines in Excel menu
2/5/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes how you can promote a template to the Open lines in the Excel menu that is available on
journal pages.
Some of the most frequently used templates are the journal templates. Some of these journal templates have been
promoted so that they appear on the Open lines in Excel menu by default. However, when you add a new
template to the system, it's available on the Open in Office menu by default. To promote the template so that it's
available on the Open lines in Excel menu, follow these steps.
1. Create a Microsoft Excel template, and save it locally. For more information, see the "Create Open in Excel
experiences" article.
2. In Microsoft Visual Studio, create a new project for a model that has a reference to the ApplicationSuite
model.

3. Create a new class, implement the LedgerIJournalExcelTemplate interface, and extend


DocuTemplateRegistrationBase . Your implementation (supported journal type, and so on) defines the
context that your template will be available as an option for in the Open in Excel experience. This example
uses LedgerJournalHeaderEntity and LedgerJournalLineEntity, but you aren't limited to these entities. You
can define your own entities, provided that they entities follow the journal header/line entity pattern. Here is
an example from the LedgerDailyJournalExcelTemplate class.

using Microsoft.Dynamics.Platform.Integration.Office;
public class TestNewTemplate extends DocuTemplateRegistrationBase implements LedgerIJournalExcelTemplate
{
private const DocuTemplateName ExcelTemplateName = resourceStr(TestNewTemplate);
private const EntityName LineEntityName = tableStr(LedgerJournalLineEntity);
private const FieldName LineEntityJournalNum = fieldStr(LedgerJournalLineEntity,
JournalBatchNumber);
private const FieldName LineEntityDataAreaId = fieldStr(LedgerJournalLineEntity, dataAreaId);
private const FieldName HeaderEntityName = tableStr(LedgerJournalHeaderEntity);
private const FieldName HeaderEntityJournalNum = fieldStr(LedgerJournalHeaderEntity,
JournalBatchNumber);
private const FieldName HeaderEntityDataAreaId = fieldStr(LedgerJournalHeaderEntity, dataAreaId);
/// <summary>
/// A boolean value which indicates whether the journal type is supported for the Excel template.
/// </summary>
/// <param name = "_ledgerJournalType">The ledger journal type.</param>
/// <returns>True if the journal type is supported; otherwise, false.</returns>
public boolean isJournalTypeSupported(LedgerJournalType _ledgerJournalType)
{
return _ledgerJournalType == LedgerJournalType::Daily;
}
/// <summary>
/// Gets the document template name.
/// </summary>
/// <returns>The document template name</returns>
public DocuTemplateName documentTemplateName()
{
return ExcelTemplateName;
}
/// <summary>
/// Gets a collection of the supported account types for the entity.
/// </summary>
/// <returns>A collection of <c>LedgerJournalACType</c> values.</returns>
public Set supportedAccountTypes()
{
Set accountTypeSet = new Set(Types::Integer);
accountTypeSet.add(LedgerJournalACType::Ledger);
return accountTypeSet;
}
/// <summary>
/// Gets a collection of the supported offset account types for the entity.
/// </summary>
/// <returns>A collection of <c>LedgerJournalACType</c> values.</returns>
public Set supportedOffsetAccountTypes()
{
Set offsetAccountTypeSet = new Set(Types::Integer);
offsetAccountTypeSet.add(LedgerJournalACType::Ledger);
return offsetAccountTypeSet;
}
/// <summary>
/// Validates the journal is valid for the template.
/// </summary>
/// <param name = "_ledgerJournalTable">The <c>LedgerJournalTable</c> record.</param>
/// <returns>True if the journal is valid for the template; otherwise, false.</returns>
public boolean validateJournalForTemplate(LedgerJournalTable _ledgerJournalTable)
{
return LedgerJournalExcelTemplate::validateJournalForTemplate(_ledgerJournalTable, this);
}
public void registerTemplates()
{
this.addTemplate(
OfficeAppApplicationType::Excel,
ExcelTemplateName,
ExcelTemplateName,
'Test new template',
'Test new template',
NoYes::No,
NoYes::No,
NoYes::No);
}
/// <summary>
/// The resource name of the header entity.
/// </summary>
/// <returns>The resource name of the header entity.</returns>
public EntityName headerEntityName()
public EntityName headerEntityName()
{
return HeaderEntityName;
}
/// <summary>
/// The resource name of the line entity.
/// </summary>
/// <returns>The resource name of the line entity.</returns>
public EntityName lineEntityName()
{
return LineEntityName;
}
/// <summary>
/// The field name for the header journal batch number.
/// </summary>
/// <returns>The field name for the header journal batch number.</returns>
public FieldName headerJournalBatchNumberFieldName()
{
return HeaderEntityJournalNum;
}
/// <summary>
/// The field name for the header data area.
/// </summary>
/// <returns>The field name for the header data area.</returns>
public FieldName headerDataAreaFieldName()
{
return HeaderEntityDataAreaId;
}
/// <summary>
/// The field name for the line journal batch number.
/// </summary>
/// <returns>The field name for the line journal batch number.</returns>
public FieldName lineJournalBatchNumberFieldName()
{
return LineEntityJournalNum;
}
/// <summary>
/// The field name for the line data area.
/// </summary>
/// <returns>The field name for the line data area.</returns>
public FieldName lineDataAreaFieldName()
{
return LineEntityDataAreaId;
}
/// <summary>
/// Append additional filter to the default filtering behavior.
/// </summary>
/// <returns>The original filter with new filter(s) appended; Otherwise, the original
filter</returns>
public FilterCollectionNode appendHeaderEntityFilters(FilterCollectionNode _headerFilter,
ExportToExcelFilterTreeBuilder _headerFilterBuilder)
{
return _headerFilter;
}
/// <summary>
/// Append additional filter to the default filtering behavior.
/// </summary>
/// <returns>The original filter with new filter(s) appended; Otherwise, the original
filter</returns>
public FilterCollectionNode appendLineEntityFilters(FilterCollectionNode _lineFilter,
ExportToExcelFilterTreeBuilder _lineFilterBuilder)
{
FilterCollectionNode lineFilter = _lineFilterBuilder.and(
_lineFilterBuilder.areEqual(fieldStr(LedgerJournalLineEntity, AccountType),
LedgerJournalACType::Ledger),
_lineFilterBuilder.areEqual(fieldStr(LedgerJournalLineEntity, OffsetAccountType),
LedgerJournalACType::Ledger));
return _lineFilterBuilder.and(_lineFilter, lineFilter);
}
}
}

4. Build the project/model that has the new resources. You should have one new resource and one new class.

5. In the client, go to Common > Common > Office integration > Document templates > Reload
system templates . You will see the new template in the list, and if you open the journal page that you
added the template to, you will also see that template on the Open lines in Excel menu.

Additional resources
Create Open in Excel experiences
Customize the Open in Microsoft Office menu
2/12/2020 • 10 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Most pages include an Open in Microsoft Office menu. This topics provides information about the Open in Office
menu, and explains how customize it by adding, removing, and changing options.

Overview
The Open in Microsoft Office menu button (Open in Office menu) is a system-defined button that appears on
pages. The Open in Office menu contains menu items that let you export data to various Office products, such as
Microsoft Excel and Microsoft Word. The following table describes the menu items on the Open in Office menu.

M EN U IT EM DESC RIP T IO N

Export to Excel The data is exported to an Excel workbook. The workbook


contains no references back to Finance and Operations, and
the data can't be refreshed.

Export to Word The data is exported to a Word document. The document


contains no references back to Finance and Operations, and
the data can't be refreshed.

Open in Excel A workbook is created that contains the Microsoft Dynamics


Office add-in. The workbook contains a reference back to
Finance and Operations, and the data can be refreshed,
updated, and published from the Data Connector that is
hosted in the add-in.

How menu items are added to the Open in Office menu


The export options are added to the Open in Office menu in the following manner:
1. In the Expor t to Excel group, a menu item is added for each visible grid.
2. For each root data source on the page, the set of data entities that have the same root data source is determined.
For each of these data entities, the following menu items are added:
In the Open in Excel group, a menu item is added for a default export of the data entity.
In the Open in Excel group, a menu item is added for each Document Template record of the Excel type
that has the same root data entity and is marked for inclusion on the Open in Office menu.
In the Expor t to Word group, a menu item is added for each Document Template record of the Word
type that has the same root data entity and is marked for inclusion on the Open in Office menu.

Default exports
The Open in Office menu provides a default export for each data entity. This export includes all the fields in the
AutoRepor t group on the data entity. If SaveDataPerCompany is set to Yes for the data entity, a filter is applied
to limit the data to the current company.

Document templates
Document templates can be added from the Document templates page. Several fields that are associated with
each Document Template record control the behavior of that template on the Open in Office menu.

F IEL D DESC RIP T IO N

Root data entity The root data entity of the template. The root data entity is
used to determine which pages the template can be included
on.

List in Office menu If this field is selected, the template will be included on the
Open in Office menu on applicable pages. (The applicable
pages depend on the root data entity).

Apply record filter If this field is selected, the data will be filtered, based on the
record that is currently selected on the page.

Apply company filter If this field is selected, the data will be filtered, based on the
current company.

Trimmed template columns and fields


For Excel templates that are included on the Open in Office menu, columns and fields will be trimmed from the
workbook, based on the configuration keys that are applied to the system and the applicable country/region
context. If a configuration key is associated with a column or field in the workbook, the column or field will be
removed if the configuration key is disabled. If a set of country/region codes is associated with the column or field
in the workbook, the column or field will be removed if the country/region code isn't in scope.

Open in Office menu customization


There are several methods for customizing the content that appears on the Open in Office menu on a given page.
For example, you can customize the content statically through metadata properties on model element and code
attributes. However, customization via code gives you the finest level of control. In code, you can either implement
one or more interfaces on a page, or use extensions and event subscriptions. The following sections describe the
customization scenarios that are most often used.
Modifying the Open in Office menu through interfaces
If you must modify a page that you own, interfaces are the most appropriate customization method, because they
give access to all private members of the page and allow for deeper customization. You can apply the following
interfaces to the code for a page.

IN T ERFA C E DESC RIP T IO N

OfficeIMenuCustomizer Use this interface to modify the set of data entities that is
considered for a page and add custom menu items.

OfficeIGeneratedWorkbookCustomExporter Use this interface to do a custom export of a workbook that is


generated at run time.

OfficeITemplateCustomExporter Use this interface to do a custom export that is based on a


Document Template record.

Modifying the Open in Office menu through extensions and event subscriptions
If you must modify a page that you don't own, you should avoid using interfaces, because that approach will
require over-layering. Instead, you should do the customization through extensions and event subscriptions. To use
this approach, implement an extension class that subscribes to the OnIntializing event of the page that you're
customizing. From this event handler, get the OfficeFormRunHelper for the page, and subscribe to its
OfficeMenuInitializing event. The following example shows sample code for this approach.

public static class MyForm_Extension


{
[FormEventHandler(formStr(MyForm), FormEventType::Initializing)]
public static void ExportToExcel_DataEntityCustom_OnInitializing(xFormRun sender, FormEventArgs e)
{
FormRun formRun = sender as FormRun;
if (formRun)
{
OfficeFormRunHelper officeHelper = formRun.officeHelper();
if (officeHelper)
{
officeHelper.OfficeMenuInitializing +=
eventhandler(MyForm_Extension::officeMenuInitializingHandler);
}
}
}
private static void officeMenuInitializingHandler(FormRun _formRun, OfficeMenuEventArgs _eventArgs)
{
// Modify the OfficeMenuOptions available on the OfficeMenuEventArgs.menuOptions() as necessary.
}
}

Typical customization scenarios


The following examples assume that the _menuOptions variable contains the OfficeMenuOptions instance that
you're customizing.
Modifying the set of data entities that is considered for a page
Many of the menu items on the Open in Office menu are added automatically, based on the data entities that are
considered for the page. However, in some cases, the algorithm that is used to determine the set of data entities
might not determine the correct set. To modify the set of data entities that is considered for the page, you can use
the OfficeMenuOptions that is available from either the OfficeIMenuCustomizer.customizeMenuOptions
method or the OfficeFormRunHelper.OfficeMenuInitializing delegate.

// Add an entity to the list


OfficeMenuDataEntityOptions entityOptions = OfficeMenuDataEntityOptions::construct(tableStr(MyEntity));
_menuOptions.dataEntityOptions().addEnd(entityOptions);
// Remove an entity from the list
ListIterator dataEntityOptionsIterator = new ListIterator(_menuOptions.dataEntityOptions());
while (dataEntityOptionsIterator.more())
{
OfficeMenuDataEntityOptions dataEntityOptions = dataEntityOptionsIterator.value();
if (dataEntityOptions.dataEntityName() == tableStr(MyOtherEntity))
{
dataEntityOptionsIterator.delete();
}
else
{
dataEntityOptionsIterator.next();
}
}

Specifying the default data entity–related options that are included


The OfficeMenuDataEntityOptions class lets you specify whether to include a menu item for a default export or
a menu item that is related to a document template.

// Find the entity options if they were included by default.


OfficeMenuDataEntityOptions entityOptions = _menuOptions.getOptionsForEntity(tableStr(MyEntity));
if (!entityOptions)
{
// The entity options were not included. Add them.
entityOptions = OfficeMenuDataEntityOptions::construct(tableStr(MyEntity);
_menuOptions.dataEntityOptions().addEnd(entityOptions);
}
entityOptions.includeDefault(false); // Don't include the default export menu item.
entityOptions.includeTemplates(false); // Don’t include Document Template related menu items.

Adding a custom export menu item – Generating a workbook


To explicitly add a menu item, you must add it to the OfficeMenuOptions.customMenuItems() list. To add a
menu item that corresponds to a workbook that is generated at run time, use an
OfficeGeneratedExpor tMenuItem .

OfficeGeneratedExportMenuItem menuItem = OfficeGeneratedExportMenuItem::construct(tableStr(MyEntity),


"MyCustomGeneratedExportId");
menuItem.setDisplayNameWithDataEntity();
_menuOptions.customMenuItems().addEnd(menuItem);

To define what is actually exported, use an Expor tToExcelDataEntityContext . The method for specifying the
Expor tToExcelDataEntityContext depends on whether you're using interfaces or extensions and event
subscriptions to customize the Open in Office menu.
Using interfaces
If you're using interfaces, you must implement the
OfficeIGeneratedWorkbookCustomExpor ter.getDataEntityContext() method.

public ExportToExcelDataEntityContext getDataEntityContext(OfficeGeneratedExportMenuItem _menuItem)


{
ExportToExcelDataEntityContext context = null;
if (_menuItem.id() == "MyCustomGeneratedExportId")
{
context = ExportToExcelDataEntityContext::construct(tableStr(MyEntity), tableFieldGroupStr(MyEntity,
MyFieldGroup);
}
return context;
}

Using extensions and event subscriptions


If you're using extensions and event subscriptions, the
OfficeGeneratedExpor tMenuItem.getDataEntityContext delegate should be subscribed to before you add the
menu item to the OfficeMenuOptions.customMenuItems() list. The code for the event handler should resemble
the preceding code for the interface. The following example shows how to do the event subscription.

menuItem.getDataEntityContext += eventhandler(MyForm_Extension::getDataEntityContextHandler);

Adding a custom export menu item – Specifying a document template


To explicitly add a menu item, you must add it to the OfficeMenuOptions.customMenuItems() list. To add a
menu item that corresponds to a Document Template record, use an OfficeTemplateExpor tMenuItem .
OfficeTemplateExportMenuItem menuItem =
OfficeTemplateExportMenuItem::construct(OfficeAppApplicationType::Excel, "MyTemplateId",
"MyCustomTemplateExportId");
_menuOptions.customMenuItems().addEnd(menuItem);

To modify the template at run time, you can supply a set of initial filters. These filters will replace any filters in the
template for the specified data entities. Additionally, you can modify filters and specify many settings by using
WorkbookSettingsManager . The following sections show examples.
Using interfaces
If you're using interfaces, you must implement the
OfficeITemplateCustomExpor ter.getInitialTemplateFilters() and
OfficeITemplateCustomExpor ter.updateTemplateSettings() methods.

public Map getInitialTemplateFilters(OfficeTemplateExportMenuItem _menuItem)


{
Map initialFilters = new Map(Types::String, Types::Class);
if (_menuItem.id() == "MyCustomTemplateExportId")
{
// Add an initial filter.
ExportToExcelFilterTreeBuilder bldr = new ExportToExcelFilterTreeBuilder(_menuItem.dataEntityName());
FilterNode filter = // create the filter…
initialFilters.insert(_menuItem.dataEntityName(), filter);
}
return initialFilters;
}
public void updateTemplateSettings(OfficeTemplateExportMenuItem _menuItem,
Microsoft.Dynamics.Platform.Integration.Office.SettingsManager _settingsManager)
{
if (_menuItem.id() == "MyCustomTemplateExportId")
{
// Set a new filter.
ExportToExcelFilterTreeBuilder bldr = new ExportToExcelFilterTreeBuilder(_menuItem.dataEntityName());
FilterNode filter = // create the filter…
Excel.WorkbookSettingsManager workbookSettingsManager = _settingsManager as Excel.WorkbookSettingsManager;
workbookSettingsManager.SetEntityFilter(entityMetadata.PublicEntityName, filter);
// Adjust settings.
DataConnectorAppletSettings settings = settingsManager.DataConnectorSettings;
DataConnectorAppletUserOptions options = settings.DataOptions;
options.RefreshOnOpen = true;
options.EnableDesign = false;
workbookSettingsManager.DataConnectorSettings = settings;
}
}

Using extensions and event subscriptions


If you're using extensions and event subscriptions, the
OfficeTemplateExpor tMenuItem.getInitialTemplateFilters and
OfficeTemplateExpor tMenuItem.updateTemplateSettings delegates should be subscribed to before you add
the menu item to the OfficeMenuOptions.customMenuItems() list. The code for the event handlers should
resemble the preceding code for the interface. The following example shows how to do the event subscription.

menuItem.getInitialTemplateFilters += eventhandler(MyForm_Extension::getInitialTemplateFiltersHander);
menuItem.updateTemplateSettings += eventhandler(MyForm_Extension::updateTemplateSettingsHandler);

Additional customizations
The following customizations let you modify the contents of the Open in Office menu for a page without using
interfaces or extensions and event handlers.
Removing an Export to Excel menu item for a grid
On the Open in Office menu, the Expor t to Excel group will contain a menu item for each visible grid. To remove
a grid from the Open in Office menu, set the Expor tAllowed metadata property on the grid to No . After you
make this change, users won't be able to export the grid by using the shortcut menu for the grid.
Renaming an Export to Excel menu item for a grid
To rename the Expor t to Excel menu item that is related to a grid, set the Expor tLabel metadata property on the
grid to the appropriate label.
Removing all menu items for a data entity from all pages
Integration scenarios require that some data entities be publicly available via the OData Service. However, it isn't
always appropriate that these data entities appear on the Open in Office menu by default. In this scenario, you
can add the OfficeMenuOmit code attribute to the entity declaration.

[OfficeMenuOmit]
public class MyEntity extends common
{
// Entity code…
}

After you make this change, by default, the entity won't appear on the Open in Office menu on pages that have a
matching root data source. However, if the entity should be added to a specific page, you can use other
customization mechanisms to add it.
Adding a menu item button to a page that corresponds to an Open in Office menu entry
Sometimes, it's appropriate that the Action Pane of a page have a menu item button that corresponds to a custom
menu item on the Open in Office menu. In this case, you can model a menu item button that has the following
properties:
Menu Item Type: Action
Menu Item Name: Expor tToExcelExpor tForm
Parameters: The ID of the menu item
Then, a mouse click of this menu item button is equivalent to a mouse click of the corresponding menu item on the
Open in Office menu.
Configure and send email
1/24/2020 • 12 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The behavior of the email subsystem is influenced by a combination of administrator configuration, user
configuration, and user choices. This topic is divided into sections for administrators and users to make it easy to
find relevant information.
Both administrators and users set the behavior of the email subsystem.

Administrator: Email parameters page


On the Email parameters page, note the following settings on the Configuration tab.

F IEL D DESC RIP T IO N

Batch email provider Specifies which email provider will be used to send emails that
are sent by processes in a batch or non-interactive manner.
The Exchange provider will use the account associated with the
batch process.

Attachment size limit Specifies the maximum size of a single email that can be sent
via the email subsystem.

In Platform update 32, an Email histor y page was added to allow administrators to review all sent emails,
including any errors that might have prevented an email from being sent. By default, the last 30 days of email
history is retained. This can be configured by changing the Number of days to retain email histor y to a non-
zero amount. Zero provides the default amount and behavior.
On the Email parameters page, note the following settings on the SMTP settings tab.

F IEL D DESC RIP T IO N

Outgoing mail server The host name of the desired SMTP server.
For Office 365 production (including *.onmicrosoft.com
accounts) use smtp.office365.com. (You can find this
setting at outlook.office.com at Settings > Mail >
POP and IMAP .)
For Outlook/Hotmail use smtp-mail.outlook.com.

SMTP port number Typically, the port number should be set to 587 for secure
transport.
F IEL D DESC RIP T IO N

User name and Password Specify, as needed, to send the email via the appropriate mail
account. All users need to provide the SMTP account Send As
and Send On Behalf Of permissions to enable the ability to
send Simple Mail Transfer Protocol (SMTP) mail. You can
configure Send As permissions in the Office 365 admin center
(portal.office.com/Admin), at Users > Active users > User >
Edit mailbox permissions > Send email from this
mailbox. For more information, see Enable sending email from
another user's mailbox in Office 365.

Specify if SSL is required Determines whether secure transport is used. Typically, this is
Yes , except for internal or troubleshooting scenarios.

Administrator: Email Distributor batch process


Email that is sent directly from the server, without user interaction, via SMTP is sent by the Email distributor
batch process. That batch process must be started to process the email queue. To start the process, open the Email
distributor batch pane (System administration > Periodic tasks > Email processing > Batch ) and turn on
Batch processing .
If the Exchange provider is used, then the user account associated with the batch process (usually admin) will be
sender.

Administrator: User email


The default email address for each user is pulled from the Email field on the Users page (System administration
> Users > Users ). An email address should be specified for each user for sign in, so this field should be populated.
Users can override this default if needed.

User: Email provider selection section on the Options page


The Options page can be opened via Settings > User options . The Email provider selection section is on the
Account tab.

F IEL D DESC RIP T IO N

Email provider ID Allows the user to select the email provider that should be
used when sending an email. Selecting an option here is the
equivalent of selecting Do not ask again in the How would
you like to send email dialog box. Selecting the blank
option Prompt for which email provider to use will cause
the How would you like to send email dialog box to
display when an email is going to be sent.
F IEL D DESC RIP T IO N

Email Allows the user to provide an email address override for the
From field of the email. By default, the email alias that
associated with the user account is used as the From field in
new emails, but this user option email address will override
that. When sending email via SMTP the user needs to have
appropriate Send As and Send On Behalf Of permissions
configured in Exchange or on the SMTP server.
[!NOTE] You can configure Send As and Send On Behalf
Of permissions in the Office 365 admin center
(portal.office.com/Admin) at Users > Active users >
User > Edit mailbox permissions > Send email from
this mailbox. For more information, see Enable sending
email from another user's mailbox in Office 365.

User (optional): How would you like to send email dialog box
When an email is going to be sent, the user will see the How would you like to send email dialog box that will
list the available options for sending email.

F IEL D DESC RIP T IO N

Use an email app, such as Outlook Provides the user with a generated email (.eml) file.

Use Exchange email server Uses the Exchange Online server associated with the tenant.
The email will be sent using Exchange Web Services (EWS). On-
premises Exchange servers are not supported at this time for
the Exchange mail provider.

Use the system email client Opens the Send email composition dialog box and then
sends the resulting email via SMTP.

Do not ask again If this field is not selected, the next time an email is sent the
most recently selected option will be used and the dialog box
will not open.

User (optional): Send email dialog box


The Send email dialog box is opened to allow the user to edit the contents of the email that will be sent. Some of
the following fields will be pre-populated in this window.

F IEL D DESC RIP T IO N

From Populated from the Email field on the Options page.

To , Cc, Bcc, Subject , and Body Populated with values specified by the process that initiated
the sending of the email. These fields can be edited as needed
by the user.

Attachments list May be populated with attachments specified by the process


that initiated the sending of the email. This list can be edited
as needed by the user.
When the email is ready to be sent, the Send button will cause the email to be sent via SMTP.

Usage scenarios to verify if email is configured correctly


Send mail via a local mail client
Email workflows that are enabled via the SysEmail framework can generate email messages (.eml files) that contain
attachments. You can then send these messages via Microsoft Outlook or another email client.
1. In Internet Explorer, navigate to Accounts receivable > Customers > All customers .
2. Select US-008 Sparrow Retail .
3. Click Collect > Customer balances > Collections to open the Collections page.
4. Click Communicate > Email > Statements to contact .
5. Click OK to accept the default values in the dialog box.
6. If you're prompted for the mail option to use, clear the Do not ask again check box (you can change this option
from the User options page), select Use an email app, such as Outlook , and then click OK .
7. If you're using Internet Explorer on your computer, open the email (.eml) file that is generated. If you're using
Internet Explorer on the VM, copy the file to your computer, and open it there.
8. Note the email address in the To field and the generated workbook attachment.
Send mail via SMTP
Email workflows that are enabled via the SysEmail framework can also be created in a simple email dialog box and
then sent via Simple Mail Transfer Protocol (SMTP).
1. Go to the Email parameters page.
2. Click SMTP settings .
3. Set the Outgoing mail ser ver to the desired SMTP server:
For Office 365 production (including *.onmicrosoft.com accounts) use smtp.office365.com. (Find this
setting via outlook.office.com, at Settings > Mail > POP and IMAP .)
For Outlook/Hotmail use smtp-mail.outlook.com.
4. Set the user name and password to an appropriate email account and password.
5. Leave SSLRequired turned on, and leave SMTP por t number set to 587 .
6. Click Save .
7. In Internet Explorer, navigate to Accounts receivable > Customers > All customers .
8. Select US-008 Sparrow Retail .
9. Click Collect > Customer balances > Collections to open the Collections page.
10. Click Communicate > Email > Statements to contact .
11. Click OK to accept the default values in the dialog box.
12. If you're prompted for the mail option to use, select Use the Microsoft Dynamics 365 for Finance and
Operations email client , and then click OK .
13. To receive the test message, change the To address to your email address.
Ensure that the account specified in the SMTP settings is able to Send As and Send On Behalf Of your
email account. The easiest way to ensure this to use your email account in the SMTP settings.
14. Enter a subject and body for the message.
15. Click Send . The message should be delivered in one to five minutes.

Administrator: Workflow email notifications


Workflow email configuration is a collection of related settings that work in conjunction.
Workflow email notification setup
1. Verify email settings:
a. Go to System administration > Setup > Email > Email parameters .
b. Verify that SMTP is enabled.
c. Set the SMTP mail server settings.
2. Verify that the email batch process is running:
a. Go to System administration > Periodic tasks > Email processing > Email distributor batch .
b. Enable the Batch processing option.
c. Optionally, adjust the recurrence of the email process:
a. Select No end date to adjust all recurrences of the email batch process.
b. Adjust the count.
c. Adjust to run every minute if needed.
3. Verify workflow notification system email templates:
a. Go to System administration > Setup > Email > System email templates (for system-wide
templates).
b. Verify that the Sender email field is set and valid.
4. Verify workflow notification organization email templates:
a. Go to Organization administration > Setup > Organization email templates (for organization-
specific templates).
b. Verify that the Sender email field is set and valid.
5. Verify that the user can receive email notifications:
a. Go to Settings > User options .
b. Go to the Account tab.
a. Set the email provider ID (for example, SMTP).
b. Optionally, set the email address for the provider if it was not the default from the user setup.
c. Navigate to the Workflow tab. Set the option to send notifications in email to Yes .
6. Verify that the workflow system will send email notifications:
For each workflow that should have a notification, open the workflow properties in the workflow editor.
a. Click Basic settings . Adjust the email template for the workflow notifications.
b. Click Notifications .
a. Enable the events for which a user should be notified.
b. Set the recipient of the workflow notification for each event notification that is enabled.
c. On a workflow approval element for which a user should be notified:
a. Go to Proper ties .
b. Enable the events for which a user should be notified.
c. Set the recipient of the workflow notification for each event notification that is enabled.
Workflow email notification testing
The testing for email notifications is to simply trigger the notification and then check for it.
1. Submit a workflow that has been set up for email notifications.
2. Check the workflow history to make sure that a workflow work item was assigned to the expected user.
3. Check the status of the pending email notification in System administration > Periodic tasks > Email
processing > Batch email sending status .
If the email is fails to send, make sure that the SMTP mail account can be opened.
4. Check for the email notification in the appropriate inbox.

Troubleshoot email
There are a few standard steps that can help you troubleshoot the configuration of email settings.
1. Verify email settings:
a. Go to System administration > Setup > Email > Email parameters .
b. Verify that SMTP is enabled.
c. Verify the settings of the SMTP mail server.
d. Sign in to the SMTP account in a separate window to make sure that the account and password are
correct.
e. Send a test email using System administration > Setup > Email > Email parameters > Test email .
2. Verify that the email batch process is running:
a. Go to System administration > Periodic tasks > Email processing > Batch .
b. Make sure that the Batch processing option is set to Yes .
c. Review the recurrence of the email process:
a. Select No end date to adjust all recurrences of the email batch process.
b. Adjust the count as you require.
3. To review the contents and status of batch emails, go to System administration > Periodic tasks > Email
processing > Batch email sending status .
a. If you're using a release that is earlier than Platform update 28, personalize the form to add the email
sender for easy review. To do this, right-click the grid header, select Add columns , select Email , and then
click Inser t . If the Email field isn't added into the grid, you can view the sender by selecting Show
message , and then selecting the Email field.
b. Verify that emails are being sent from the correct account. If the account is incorrect, you need to adjust
settings such as user options, system templates, or organization templates, as needed.
c. Verify that all email user accounts have been granted permission to Send As for the configured SMTP
account (see step 4 for details).
4. In Platform update 32, an Email histor y page was added to allow administrators to review all sent emails,
including any errors that might have prevented an email from being sent. The Email histor y page will show
interactive as well as non-interactive/batch emails. For any emails that have an Email status of Failed ,
review the error message on the Failure details tab and determine if corrective actions should be taken.
5. In the Office 365 admin center, verify that all user mail accounts that will be used to send emails have Send
As and Send On Behalf Of permissions for the configured SMTP account. For more information, see
Enable sending email from another user's mailbox in Office 365.
6. Sign in to all user mailboxes to verify that they are valid and can be accessed using sign in.
7. Send a test email using System administration > Setup > Email > Email parameters > Test email .
8. If the SMTP settings were migrated from another environment, clear the password field and re-enter the
password to ensure that the field encryption hasn't negatively affected the stored value.
9. If you continue to experience issues when email is sent via SMTP, enter the SMTP account information in a
tool such as SMTPer.net to verify that the SMTP server and account are valid and working correctly.

Troubleshoot the Exchange mail provider


The Email parameters page allows an administrator to select Exchange as an interactive email provider and as the
Batch email provider. The Exchange mail provider will use the current user's Exchange Online account to send
emails. When used as the Batch email provider, the batch account will be used. No additional configuration is
needed. If troubleshooting is needed, ensure that the current user's account can be signed into and that emails can
be sent from that account to the intended recipients.
Exchange mail provider not supported for external users
Users that are external to the primary tenant will not have exchange accounts on that tenant, so the Exchange mail
provider is not supported for external users.

Other notes
The system communicates with Exchange or an SMTP server like a typical email client, so standard behavior and
limits apply. For example, standard Exchange Online receiving and sending limits apply.

Additional resources
Troubleshoot the Office integration
Office integration tutorial
Configure email functionality in Microsoft Dynamics AX [AX 2012]
Develop email experiences by using the SysMailer
framework
2/5/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Sending emails
The SysMailer framework is a new, extensible way to send email. It replaces all previous application programming
interfaces (APIs) for mail, such as CDO.Messaging (SysMailer), MAPI (SysINetMail), and Outlook COM
(SmmOutlookEmail). Those older mail APIs won't work correctly in Finance and Operations applications. By taking
advantage of the SysPlugin framework and several .NET technologies, SysMailer provides a configurable
experience for users and enables the application consumers to remain agnostic to the email option that users use
to send email.
The SysMailer framework consists of a factory class that is used to retrieve an email provider, a set of email
providers that send messages, a message builder that builds the messages, and the forms that are related to
configuring and interacting with the email providers. To consume the SysMailer framework, an application
developer primarily uses the SysMailerFactor y and SysMailerMessageBuilder classes. The email provider
factory is used to retrieve interactive or non-interactive email providers, so that multiple messages can be sent at
the same time, or so that a message can be sent directly. The email providers expect the messages that they send to
be encapsulated in .NET System.Net.Mail.MailMessage objects. The message builder class is used to build the
.NET object that is passed to the email provider.
Scenarios
This topic describes three scenarios:
Sending an interactive message
Sending a non-interactive (batch) message
Sending multiple non-interactive (batch) messages
Sending an interactive message
The following example is taken from the CustCollectionsEmail class. It demonstrates multiple features of the
framework, such as the ability to chain message builder calls, conditionally set the sender address ("from" address),
and add attachments.
using (System.IO.Stream attachmentStream = this.generateAttachment())
{
var messageBuilder = new SysMailerMessageBuilder();
messageBuilder.addTo(context.parmEmailAddress())
.setSubject(emailSubject)
.setBody(SysEmailMessage::stringExpand(emailBody,
SysEmailTable::htmlEncodeParameters(templateTokens)));
if (emailSenderAddr)
{
messageBuilder.setFrom(emailSenderAddr, emailSenderName);
}
else if (custParameters.CollectionsOMTeam)
{
var collectionsEmail = OMTeam::find(custParameters.CollectionsOMTeam).primaryEmail();
if (strLen(collectionsEmail) > 0)
{
messageBuilder.setFrom(collectionsEmail);
}
}
if (attachmentStream != null)
{
messageBuilder.addAttachment(
attachmentStream,
strFmt('%1%2', strReplace(DateTimeUtil::toStr(DateTimeUtil::utcNow()), ':', ''), '.xlsx'));
}
SysMailerFactory::sendInteractive(messageBuilder.getMessage());
}

Sending a non-interactive (batch ) message


The following example is taken from the VendRequestCompanyWorkflowManager class. It shows how you can
send a single message non-interactively.

// The vendor <vendor name> has been approved and has been added to the vendor master.
messageText = strFmt("@SYS134393", DirPartyTable::findRec(vendRequestCompany.VendParty).Name);
// Request
var messageBuilder = new SysMailerMessageBuilder();
messageBuilder.setFrom(senderEmail)
.addTo(recipientEmail)
.setSubject("@SYS130372")
.setBody(messageText);
SysMailerFactory::sendNonInteractive(messageBuilder.getMessage());

Sending multiple non-interactive (batch ) messages


The following example is taken from the UserAdAddManager class. It shows how you can get an instance of a
batch email provider before you iterate over a list of emails to send.
var mail = SysMailerFactory::getNonInteractiveMailer();
var messageBuilder = new SysMailerMessageBuilder();
for (i = 1; i <= conLen(_notifyCon); i++)
{
notifyEmailsStr = conPeek(_notifyCon, i);
select firstonly RecId, Email from sysUser where sysUser.Id == notifyEmailsStr;
if (sysUser.RecId && sysUser.Email != '')
{
messageBuilder.reset()
.setFrom(_emailFrom)
.addTo(sysUser.Email)
.setSubject("@SYS129183")
.setBody(errorStr);
mail.sendNonInteractive(messageBuilder.getMessage());
delete_from tmpUserErrorNotification;
}
}

Important considerations
A sender address ("from" address) is required when messages are sent to an email provider. A receiver
address ("to" address) is required when messages are sent non-interactively. If these conditions aren't met,
the framework throws an exception. If getMessage is called on the message builder before any call to
setFrom is made, the builder tries to set the sender address to the current user's email address or network
alias.
When messages are sent, the way that the sender address ("from" address) is used depends on the provider:
EML provider : The sender address is removed from the message before the message is opened in the
user's email client. Therefore, the email client can set the sender address to the default account that is
configured for sending mail.
SMTP provider : The Simple Mail Transfer Protocol (SMTP) server must be configured to allow
messages to be sent by using the sender address. In other words, the SMTP server must allow the
impersonation of emails that are sent from it. Otherwise, the SMTP server might prevent the messages
from being sent, flag them as spam, and so on.
When messages are sent, the framework returns a Boolean value that indicates whether the operation to
send the message was successful. However, it doesn't report any messages to the Action Center when the
operation is successful. You decide whether messages are shown in the Action Center.
By default, the body of all messages that are sent is in rich-text (HTML) format. If an application scenario
requires that plain text be used to maintain newline spacing, you can pass false to the optional _isHtml
parameter of the setBody method on the message builder.

Adding a new email provider


You can add email providers by using the pluggable framework. When you use the factory class and interfaces, new
email providers immediately become available for use across all relevant application scenarios. Examples of email
providers can be found in the existing provider implementations, SysMailerEML and SysMailerSMTP, and also in an
existing tutorial implementation, Tutorial_SysMailerMailTo. The examples that follow are excerpts from the
implementation of the SysMailerEML email provider.
To implement an email provider, you must create an implementation class that has the following properties:
The class must have the appropriate Expor t attributes.
The class must implement the base SysIMailer methods, getId and getDescription .
The class must implement the SysImailerInteractive interface, the SysIMailerNonInteractive interface, or
both interfaces.
Specify attributes for the implementation class
The first step is to specify attributes for the implementation class. The class must have two attributes:
Expor tAttribute – The framework uses this attribute to discover the plug-in. The attribute specifies that the
plug-in is an implementation of SysIMailer and therefore part of the SysMailer framework.
Expor tMetadataAttribute – The framework uses this attribute to find specific instances of a plug-in that have
specific metadata. The attribute specifies the ID of the email provider, so that a single provider can be discovered
quickly. No two email providers should ever have the same ID.

using System.IO;
using System.Net.Mail;
using System.Text.RegularExpressions;
#define.SysMailerEML_ID('EML')
/// <summary>
/// The <c>SysMailerEML</c> class is an interactive email provider implementation that sends messages by
generating
/// an EML file, uploading it to Azure temporary blob storage, and then redirecting the user's browser to
/// the file to save or open for sending using their default email client.
/// </summary>
// This is a framework class. Customizing this class may cause problems with future upgrades to the software.
[System.ComponentModel.Composition.ExportAttribute(identifierStr(Dynamics.AX.Application.SysIMailer)),
System.ComponentModel.Composition.ExportMetadataAttribute(extendedTypeStr(SysMailerId), #SysMailerEML_ID)]
public class SysMailerEML implements SysIMailerInteractive
{

Implement the SysIMailer interface


The SysIMailer interface includes identifiable information about an email provider, regardless of the capabilities of
the email provider itself. To implement this interface, you must create two methods:
getId – This method returns the same ID that is specified in the Expor tMetadataAttribute attribute.
getDescription – This method returns a non-technical description that indicates how the email will be sent.

public SysMailerId getId()


{
return #SysMailerEML_ID;
}
public SysMailerDescription getDescription()
{
// Use an email app, such as Outlook
return "@ApplicationFoundation:EmailProviderEMLDescription";
}

Implement a combination of the SysIMailerInteractive and SysIMailerNonInteractive interfaces


The SysIMailerInteractive and SysIMailerNonInteractive interfaces are very simple. They implement the
sendInteractive and sendNonInteractive methods, respectively. An email provider might implement one or
both methods, depending on its capabilities. Each method that is implemented takes a .NET
System.Net.Mail.MailMessage object that you use to construct and send the email.

public boolean sendInteractive(System.Net.Mail.MailMessage _message)


{
using (var emlStream = this.generateEmlFile(_message))
{
Dynamics.AX.Application.File::SendFileToUser(emlStream, 'message.eml');
}
return true;
}
The System.Net.Mail.MailMessage object contains a large amount of advanced functionality that is related to
MIME messages. You can build a relatively complex message object and pass it to an email provider. If there is
specific functionality that an email provider doesn't support, the email provider is expected to handle the
functionality actively (by modifying the message), passively (by making an internal call to another email provider),
or not at all (by throwing an error).

Migration from Microsoft Dynamics AX 2012 to Finance and Operations


applications
Migration involves using the SysMailerMessageBuilder object to build a message and then using the
SysMailerFactor y to send it, as outlined in the examples in this topic.
Troubleshoot the Office integration
4/11/2020 • 16 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic provides answers to questions, tips, and troubleshooting information about the capabilities of the
Microsoft Office integration. The questions and issues that are discussed range across user, administration, and
development scenarios.

Frequently asked questions


What platforms do the Office Add-ins support?
The Microsoft Excel Add-in and Microsoft Word Add-in are built by using the Office Web/JavaScript Add-in
framework. This framework was originally released for Microsoft Office 2013 but received significant updates in
Microsoft Office 2016. For more information, see Office Add-in host and platform availability. The Excel Add-in
requires ExcelAPI 1.2. Therefore, use the Office Add-in host and platform availability matrix to determine which
platforms support the Excel Add-in. For many users, the phrase "Excel 2016 with the latest updates" is sufficient.
Are the Office Add-ins safe?
In an age of malware, full connectivity, and compliance risks, nothing is completely secure. However, the web add-
ins, like other websites, are basically a web application that interacts with the Office client products via a limited
application programming interface (API). For more details, see Office Add-ins platform overview
Does the Excel Add-in support Office for Mac?
No. Support for Apple Mac and iOS is currently under development. The Office JavaScript (JS) APIs work
differently in Apple Safari and Internet Explorer, especially in respect to authentication. For details about platform
support for the Office JS APIs, see Office Add-in host and platform availability.
What version of Office is required for the Excel Add-in to support AD FS?
For more information, see the "Troubleshooting issue" section later in this topic.
How can I force an update of Office?
If your Office build isn't updated, you might be on the deferred track (Microsoft Office 365 ProPlus update channel
option). In this case, you can use the Office Deployment Tool to move to the Current channel or sign up for the
Office Insider program to help guarantee that you have the latest updates. The easiest method is to use the Office
Deployment Tool to switch to the Current channel. In this case, the latest updates will be installed immediately.
Why can't you tell me what version of Office or Excel a particular issue is fixed in?
Office has many releases. These releases receive updates at different times and have different version numbers
that don't correspond. Some frequently used Office versions and update methods are Click to Run (C2R) Current
channel, C2R Deferred, C2R First Update Deferred, Office Insider Fast, Office Insider Slow, and MSI/MSO (install
from DVD). For more information about Office versions, see the Office 365 client update channel releases page.
Why am I having trouble signing into the Excel Add-in?
The Excel Add-in runs inside an Internet Explorer window. By default, the Excel Add-in picks up stored credentials
from Internet Explorer, and Internet Explorer provides the current Microsoft Windows credentials if there are no
stored credentials. Make sure that you're using the correct credentials to sign in. In the Excel Add-in, explicitly sign
out, and then sign in to help guarantee that the correct credentials are used.
The Excel Add-in seems to be slow when it publishes records. How can I learn more about what is occurring?
Most of the work that the Excel Add-in does should occur on the server. To learn where the time is being spent, you
can use Fiddler (a free download) to make sure that the Excel Add-in works as you expect.
The Excel Add-in sends the published records as a request. When those records are processed, the response is sent
back from the server. The Excel Add-in then creates another message that contains the next set of records to
publish, and sends that request. Five to ten seconds of processing time in the Excel Add-in should be required
between the previous response from the server and the next request to the server.
To check processing time in the Excel Add-in versus the server/service, follow these steps.
1. Start Fiddler.
2. Publish a few records to test the process.
3. Make sure that you can view that request and response in Fiddler (make sure that HTTPS traffic is being
decrypted).
4. Publish a larger number of records.
5. In Fiddler, watch the time that is required from a request to its response, and from a response to the next
request.
If the time from a request to its response is large, the bottleneck is the server/service.
If the time from a response to the next request is large, the bottleneck is the Excel Add-in (that is, the
client).
Why is the Export to Excel functionality limited to 10,000 records (prior to Platform update 22)?
Prior to Platform update 22, the Export to Excel functionality is limited to 10,000 records. This limitation is in place
because the export process uses the form from which data is being exported to provide the following records with
fields and data that can't be obtained otherwise: formatted values, calculated values, and temporary table data.
Because the form is used during the export, it occurs inside the client process that is shared by all the users on a
given computer. During the export, those other users are blocked from interacting with the client.
With Platform update 22 and later, Export to Excel has a progress dialog box and is no longer a blocking process
for other users, so larger datasets can be exported. Exporting data via Export to Excel will be slower than using the
Excel Add-in or the Data Management framework, but it will return exactly the data shown in the grid. This is
useful for filtered datasets. The user is presented with a dialog box that allows them to stop at any point. Because
the export can take some time, it is recommended that the export is done with the Chrome or Edge browsers, with
the automatic download option enabled. The automatic download option will ensure that the browser downloads
the file as soon as the export is complete to ensure that the download link is used within the 15-minute time limit.
The ideal alternative to Export to Excel is to use Open in Excel and the Excel Add-in. The Excel Add-in retrieves data
by using the OData service, and takes advantage of the security that the entities provide. The import and export
capabilities in the Data management framework (DMF) and Data import/export framework (DIXF) can also be
used. However, DMF/DIXF is often limited to administrators.
If you have concerns about giving users access to the data via the Excel Add-in, because they should not be able to
update records, consider the following points:
The entities should have all the validation and logic that the forms have. If they don't, it's a bug.
The way that entities are secured resembles the way that forms are secured. Therefore, if a user should not
have permission to update or write data by using a form that exposes that data, the user should not have
permission to update or write data by using an entity that exposes that data.
Why is the Publish button in the Excel Add-in unavailable?
All key and mandatory fields must be present to publish data back to the entity. Try to edit the design to add more
fields to the binding.
Why are the Excel Add-in, the Word Add-in, and the Open in Excel options only available when the Internet is
available?
For all environments, including on-premises, the Excel and Word Add-ins, and the libraries they use, are loaded
from multiple Internet locations and therefore will only run when the Internet is available. For on-premises
environments, when the Internet is not available, the Open in Excel options are hidden because the Excel Add-in
will not run without access to the Content Delivery Network (CDN) that houses the Excel Add-in.
Can the Excel Add-in and Word Add-in be made available to users using Centralized Deployment?
Yes, Centralized Deployment is supported. For more information, see Centralized Deployment.
To use Centralized Deployment, on the App parameters tab on the Office App Parameters page change the
App ID , Store , and Store Type :
App ID : 61bcc63f-b860-4280-8280-3e4fb5ea7726
Store : EXCatalog
Store Type : Centralized Deployment
In case a change back to Office Store is needed, the standard values are:
App ID : WA104379629
Store : en-US
Store Type : Office Store

NOTE
Name , Version , and Notes are values that provide information but they are not needed to run the Excel Add-in.
These same values are also used for the Word Add-in when it is run from the Document Templates form.

If you encounter issues with Centralized Deployment for some users, it could be one of these problems:
One or more users are members in a group that is more restrictive than others
The user referenced is on a different Office 365 account (such as a personal account)
What is the cell limit for the Excel Add-in?
The default Excel Add-in cell limit is about half the limit of what the Excel Add-in can handle on a reasonably fast
machine. The speed of the machine is the limitation. If problems are encountered, then the cell limit should be
reduced and/or the filter should be adjusted to reduce the data set. A common workaround is to use a filter to
manage the data in smaller pieces instead of all at once.
How do I make an entity available in the Excel Add-in and/or as an Open in Excel option?
If the entity is marked as “IsPublic=Yes” and has unique PublicEntityName and PublicCollectionName values, then
it will be available via the OData service. Check that there aren’t any existing entities with the same
PublicEntityName and PublicCollectionName values by looking at the $metadata feed for the environment
(preferably in Google Chrome): https://SomeFullEnvironmentURL.dynamics.com/data/$metadata
Why are date and time values in UTC in the Excel Add-in?
The Excel Add-In, Data Management Framework, and Power BI reporting are all designed to interact with data
directly on the database level. Because there is no client to adjust Date and Time data to the time zone of the user,
all Date and Time values are in UTC.
Troubleshooting issues
[Fixed] Issue: During sign-in to the Excel Add-in, I receive the following error message: "AADSTS65001: The
user or administrator has not consented to use the application with ID XYZ"
Issue: During sign in to the Excel Add-in, you receive the following error message: "AADSTS65001: The user or
administrator has not consented to use the application with ID XYZ."
Explanation: Typically, this issue occurs because Microsoft Azure Active Directory (Azure AD) can't find the Azure
AD application that represents the Excel Add-in. That issue occurs because, during the configuration of Microsoft
Power BI, an Azure AD application was added that has the App ID URI set to the environment URL.
Fix: Make sure that no Azure AD apps have the App ID URI set to the environment URL. App ID URIs should be
fabricated, unique URIs, such as https://contosoAXPowerBI .
[Fixed] Issue: During sign-in to the Excel Add-in, I receive the following error message: "AADSTS50001: The
application named ABC was not found in the tenant named XYZ"
Issue: During sign-in to the Excel Add-in, you receive the following error message: "AADSTS50001: The
application named ABC was not found in the tenant named XYZ."
Explanation: This issue probably occurs because an error in the deployment system caused the environment to
get a URL that wasn't added to the configured list of service principals for the tenant.
Fix: File a support issue for your environment, so that the problem can be investigated and the configuration can
be adjusted.
[Fixed] Issue: After the Excel Add-in starts and updates data, I receive the following error message: "An error
occurred while writing to the data cache"
Issue: After the Excel Add-in starts and updates data, you receive the following error message: "An error occurred
while writing to the data cache." The details of the error state, "The argument is invalid or missing or has an
incorrect format."
Explanation: You receive this error message if the client is open in Internet Explorer, and the user clicks Open
immediately after he or she selects the Open in Excel option. The way that Internet Explorer handles temporary
Internet files causes an issue in Excel. This issue, in turn, causes API calls to fail.
Workaround: In Internet Explorer, when you open a workbook, click Save first, and then click Open . The file will
then be opened from your Downloads folder. Alternately, use the Edge or Google Chrome browser. By default, both
these browsers save files to a Downloads folder. Therefore, the issue doesn't occur.
Long-term fix: We are working with the Office team to understand this issue so that it can be fixed in Excel.
Issue: When I send email by using SMTP, the server response is "5.7.60 SMTP; Client does not have permissions
to send as this sender"
Issue: When you send email by using Simple Mail Transfer Protocol (SMTP), you might receive an error message
that states that the server response was "5.7.60 SMTP; Client does not have permissions to send as this sender."
Alternatively, the error message might state, "Something went wrong while generating the report."
Explanation: This issue is usually caused by incorrect setup of the Send As permissions for the email account.
Fix: You can configure Send As permissions in the Office 365 admin center (portal.office.com/Admin). Click Users
> Active users > User > Edit mailbox permissions > Send email from this mailbox . For more
information, see Give mailbox permissions to another user in Office 365 - Admin Help.
The following illustration shows the setup of SMTP on the Email parameters page. Here, you must provide the
outgoing mail server, port, user name, password, and Secure Sockets Layer (SSL) requirements.
IMPORTANT
All users must give the SMTP account Send As permissions on their email setup in Office 365. This configuration is done in
the mailbox permissions in Microsoft Exchange or in the Office 365 Admin portal. The following illustration shows the setup
for the Test User account, where the STMP service account is added in the Send As section.

[Fixed] Issue: The Office Add-ins don't yet support AD FS


Affected versions: CTP8 and the February 2016 releases
Issue: When users from an Azure AD tenant that uses Active Directory Federation Services (AD FS) try to sign in
to the Office Add-ins (in other words, when the users enter their account, and then press Tab or click in the field to
enter their password), a separate browser window opens. This browser window usually has a URL that starts with
https://az689774.vo.msecnd.net/dynamicsofficeapp/v1.2.1.0/App/DynamicsApp.html\#id\_token= . The user can't sign
in.
Explanation: During sign-in to the Office add-ins (both the Excel Add-in and the Word Add-in), a redirect to the
AD FS site for the tenant occurs. However, that site is an unknown and therefore disallowed application domain
(AppDomain).
Long-term fix: The long-term fix for this issue was put in place on May 10, 2016. The Office Add-ins now use a
new Dialog API that the Office team added.
Taking advantage of the add-in updates that suppor t AD FS: All Office installations should be updated via
File > Account > Updates (for click-to-run installations) or via Windows Update (for MSI installations). The AD
FS Dialog API was included in the May update (16.0.6868.2060). For information about updates, see the Office 365
client update channel releases page.
If your Office build isn't updated, you might be on the deferred track (Microsoft Office 365 ProPlus update channel
option). In this case, you can use the Office Deployment Tool to move to the Current channel or sign up for the
Office Insider program to help guarantee that you have the latest updates. Additionally, see Install the latest
version of Office and Office 2016 Deployment Guides for Admins.
If Office updates can't be installed, the following workaround can unblock users.
Workaround: Use Internet Explorer to sign in to the client before you use the Office Add-ins
This workaround requires user knowledge and extra steps. After users have been educated about this workaround,
it should be straightforward for them.
User steps: Before users open Excel (or Word), they should sign in to the client by using Internet Explorer.
Explanation: The Excel or Word Add-in will use the sign-in context, and no redirect will be required. The earlier
sign-in must occur in Internet Explorer, because the Office Add-ins run inside an Internet Explorer window in Excel
and Word. The sign-in context lasts 6 to 24 hours, depending on policies. Therefore, a new sign-in through Internet
Explorer is required only occasionally.
1. Exit Internet Explorer and Excel.
2. Start Internet Explorer, and sign in to the client.
3. Test the Excel Add-in by using an Open in Excel experience. (For example, click Fleet Management >
Customers > Customer > Open in Microsoft Office > Open in Excel > Fleet Management
Customers .)
[Fixed] Issue: The Excel Add-in doesn't correctly run or enable sign-in
Issue: When users try to sign into the Excel Add-in, a blank authentication dialog box appears, or an error
message is shown instead of the authentication page. The user can't sign in.
Explanation: The Excel Add-in relies on the Office Web JS Add-in platform and uses Azure AD for authentication.
If a proxy is used, several URLs must be accessible for users to run and sign in to the Excel Add-in. Additionally, if
AD FS is used, the AD FS URL must use HTTPS.
Solution: Because this issue is a customer-specific network issue, it requires a customer-specific resolution. If AD
FS is used, make sure that the AD FS URL uses HTTPS. Additionally, make sure that all the following URLs are
accessible from the user's computer.
The following URLs are accessed for loading.
https://az689774.vo.msecnd.net:443
https://az689774.vo.msecnd.net
https://appsforoffice.microsoft.com:443
https://appsforoffice.microsoft.com
https://secure.aadcdn.microsoftonline-p.com:443
https://secure.aadcdn.microsoftonline-p.com
https://az416426.vo.msecnd.net:443
https://az416426.vo.msecnd.net
https://telemetryservice.firstpartyapps.oaspapps.com:443
https://telemetryservice.firstpartyapps.oaspapps.com
https://nexus.officeapps.live.com:443
https://nexus.officeapps.live.com
https://browser.pipe.aria.microsoft.com:443
https://browser.pipe.aria.microsoft.com
http://schemas.microsoft.com

The following URLs are accessed for authentication.


https://login.windows.net:443
https://login.windows.net
https://login.microsoftonline.com:443
https://login.microsoftonline.com

Issue: The Excel Add-in needs an explicit sign out after encountering an AADSTS50058 "silent sign in failed"
error
Issue: When users try to sign in to the Excel Add-in after some period of inactivity, the user encounters the
AADSTS50058 "silent sign in failed" error and is forced to sign out before signing back in.
Explanation: The Excel Add-in uses Azure AD for authentication. When authentication occurs, a token is created
for the user. That token has an expiration period. After the token has expired, an AADSTS50058 error will occur
indicating that "silent sign in failed".
Solution: The user needs to sign out and sign back in. We will improve this behavior in the future by
automatically signing the user out to enable faster sign in.
Issue: When trying to use a document template with Open in Excel a "Record for id GUID not found" error
displays
Issue: The "Record for id GUID not found" error can display when copying a database from one environment to
another.
Explanation: Copying the database is problematic for document templates, record attachments, and other files
that are stored in Azure blob storage. When the database is copied from one environment to another, the files are
not copied along with the records, so the files that the application tries to access are not found.
Solution: For document templates, the solution is to identify the templates that are needed and load a copy of
those template files into the target environment.

Additional resources
Office integration
Office integration tutorial
Configuring Power BI integration
Organization administration home page
11/18/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic points to content that will help power users and administrators configure the system to work smoothly
and effectively for your organization and business.
Much of the content listed here applies to features in the Organizational administration module. However, there
are a couple of tasks, such as creating and using a record template, that can be performed in any module to help
your organization run more efficiently.

Number sequences
Number sequences are used to generate readable, unique identifiers for master data records and transaction
records that require identifiers. A master data record or transaction record that requires an identifier is referred to
as a reference. Before you can create new records for a reference, you must set up a number sequence and
associate it with the reference.
Number sequences overview
Set up number sequences using a wizard (Task guide)
Set up number sequences on an individual basis (Task guide)

Organizations
An organization is a group of people who are working together to carry out a business process or achieve a goal.
Organizational hierarchies represent the relationships between the organizations that make up your business.
Before you set up organizations and organization hierarchies, make sure that you plan how your business will be
modeled. The organization model has a significant effect on implementation and business processes.
Organizations and organizational hierarchies overview
Plan your organizational hierarchy
Create an organization hierarchy (Task guide)
Create a legal entity (Task guide)
Create an operating unit (Task guide)

Address books
The global address book is a centralized repository for master data that must be stored for all internal and external
persons and organizations that the company interacts with. The data that is associated with party records includes
the party's name, address, and contact information.
After you create the global address book, you can create additional address books as you require, such as a
separate address book for each company in your organization or for each line of business.
Global address book overview
Plan for the global address book and other address books
Configure the global address book
Address books FAQ

Workflow
Workflow is a system that you can use to create individual workflows, or business processes. When you create a
workflow, you specify how a document flows, or moves, through the system by showing who must complete a task,
make a decision, or approve a document.
Workflow system overview
Workflow elements
Actions in workflow approval processes
Create workflows overview

Electronic signatures
An electronic signature confirms the identity of a person who is about to start or approve a computing process. In
some industries, an electronic signature is as legally binding as a handwritten signature. Electronic signatures are a
regulations compliance requirement for several regulated industries, such as pharmaceuticals, food and beverage,
and aerospace and defense.
You can use electronic signatures for critical business processes. Some processes have built-in electronic signature
capabilities. You can also create custom signature requirements for any database table and field.
Electronic signatures overview
Set up electronic signatures (Task guide)

Case management
By planning, tracking, and analyzing cases, you can develop efficient resolutions that can be used for similar issues.
For example, when customer service representatives or Human Resources generalists create cases, they can find
information in knowledge articles to help them work with or resolve a case more efficiently.
Case management overview
Plan case category security, case processes, and case categories

Record templates
Record templates can help you to create records more quickly. You can create a record template so that field values
that are used often do not have to be entered explicitly for each new record.
Record templates overview
Create a record template to facilitate data entry (Task guide)
Use record template to create a new record (Task guide)

General organization administration


Change the banner or logo (Task guide)
Configure document management
Configure and send email
Date/time data and time zones
Number sequences overview
10/1/2019 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Number sequences are used to generate readable, unique identifiers for master data records and transaction
records that require identifiers. A master data record or transaction record that requires an identifier is referred to
as a reference.
Before you can create new records for a reference, you must set up a number sequence and associate it with the
reference. We recommend that you use the pages in Organization administration to set up number sequences.
If module-specific settings are required, you can use the parameters page in a module to specify number
sequences for the references in that module. For example, in Accounts receivable and Accounts payable , you
can set up number sequence groups to allocate specific number sequences to specific customers or vendors.
When you set up a number sequence, you must specify a scope, which defines which organization uses the
number sequence. The scope can be Shared , Company , Legal entity , or Operating unit . Legal entity and
Company scopes can be combined with Fiscal calendar period to create even more specific number sequences.
Number sequence formats consist of segments. Number sequences with a scope other than Shared can contain
segments that correspond to the scope. For example, a number sequence with a scope of Legal entity can contain
a legal entity segment. By including a scope segment in the number sequence format, you can identify the scope of
a particular record by looking at its number.
In addition to segments that correspond to scopes, number sequence formats can contain Constant and
Alphanumeric segments . A Constant segment contains a set of letters, numbers, or symbols that does not
change. An Alphanumeric segment contains a set of letters or numbers that increment every time that a number
is used. Use a number sign (#) to represent incrementing numbers and an ampersand (&) to represent
incrementing letters. For example, the format #####_2017 creates the sequence 00001_2017, 00002_2017, and so
on.

Number sequence examples


The following examples show how to use segments to create number sequence formats. In particular, the examples
demonstrate the effects of using scope segments.
Expense report numbers
In the following example, expense report numbers are set up for the legal entity that is titled CS .
Area: Travel and expense
Reference: Expense report number
Scope: Legal entity
Legal entity: CS

SEGM EN T S SEGM EN T T Y P E VA L UE

Segment 1 Legal entity CS


SEGM EN T S SEGM EN T T Y P E VA L UE

Segment 2 Constant -EXPENSE-

Segment 3 Alphanumeric ####

Example of formatted number : CS-EXPENSE-0039


You can set up a similar number sequence format for other legal entities. For example, for a legal entity that is
named RW , if you change only the value of the legal entity segment, the formatted number is RW-EXPENSE-0039.
You can also change the whole number sequence format for other legal entities. For example, you can omit the
legal entity scope segment to create a formatted number such as Exp-0001.
Sales order numbers
In the following example, sales order numbers are set up for the company ID CEU .
Area: Sales
Reference: Sales order
Scope: Company
Company: CEU

SEGM EN T S SEGM EN T T Y P E VA L UE

Segment 1 Constant SO-

Segment 2 Alphanumeric ####

Example of formatted number : SO-0029


Even though a scope segment is not included in the format, numbering restarts for each company ID. If you use the
same format for all company IDs, the same numbers are used in each company. For example, sales order number
SO-0029 is used in each company. You can also change the whole number sequence format for other company
IDs.
Purchase requisition numbers
In the following example, purchase requisition numbers are organization-wide.
Area: Purchase
Reference: Purchase requisition
Scope: Shared

SEGM EN T S SEGM EN T T Y P E VA L UE

Segment 1 Constant Req

Segment 2 Alphanumeric ####

Example of formatted number : Req0052


Because the scope is Shared , the number sequence format is used across the organization. You cannot set up
different number sequence formats for different parts of the organization.

Performance considerations for number sequences


Consider the following information about how the configuration of number sequences can affect system
performance before you set up number sequences.
Continuous and non-continuous number sequences
Number sequences can be continuous or non-continuous. A continuous number sequence does not skip any
numbers, but numbers may not be used sequentially. Numbers from a non-continuous number sequence are used
sequentially, but the number sequence may skip numbers. For example, if a user cancels a transaction, a number is
generated, but not used. In a continuous number sequence, that number is recycled later. In a non-continuous
number sequence, the number is not used.
Continuous number sequences are typically required for external documents, such as purchase orders, sales
orders, and invoices. However, continuous number sequences can adversely affect system response times because
the system must request a number from the database every time that a new document or record is created.
If you use a non-continuous number sequence, you can enable Preallocation on the Performance FastTab of the
Number sequences page. When you specify a quantity of numbers to preallocate, the system selects those
numbers and stores them in memory. New numbers are requested from the database only after the preallocated
quantity has been used.
Unless there is a regulatory requirement that you use continuous number sequences, we recommend that you use
non-continuous number sequences for better performance.
Automatic cleanup of number sequences
In case of a power failure, an application error, or other unexpected failure, the system cannot recycle numbers
automatically for continuous number sequences. You can run the cleanup process manually or automatically to
recover the lost numbers.
Carefully consider server usage when you plan the cleanup process. We recommend that you perform the cleanup
as a batch job during non-peak hours.
Set up number sequences on an individual basis
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to set up number sequences on an individual basis. Number sequences are used to
generate readable, unique identifiers for master data records and transaction records that require them. A master
data or transaction record that requires an identifier is referred to as a reference. Before you can create new
records for a reference, you must set up a number sequence and associate it with the reference. You can set up all
required number sequences at the same time by using the Set up number sequences wizard, or you can create
or modify individual number sequences by using the Number sequences page.
1. Go to Navigation pane > Modules > Organization administration > Number sequences > Number
sequences .
2. Select Number sequence .
3. In the Number sequence code field, type a value.
4. In the Name field, type a value.
5. On the Scope parameters FastTab, select a scope for the number sequence and select scope values from the
drop-down list. The scope defines which organizations use the number sequence. In addition, number
sequences that have a scope other than Shared can have segments that correspond to their scope. For
example, a number sequence with a scope of Legal entity can have a legal entity segment. For more
information about scopes, see Number sequence overview.
6. Expand the Segments section.
Define the format for the number sequence by adding, removing, and rearranging segments.
Number sequences of all scopes can contain Constant segments and Alphanumeric segments. Constant
segments contain a set of alphanumeric characters that do not change. Use this segment type to add a
hyphen or other separators between number sequence segments. Alphanumeric segments contain a
combination of number signs (#) and ampersands (&). These characters represent letters and numbers
that increment every time that a number from the sequence is used. Use a number sign (#) to indicate
incrementing numbers and an ampersand (&) to indicate incrementing letters. For example, the format
#####_2014 creates the sequence 00001_2014 , 00002_2014 , and so on. At least one alphanumeric
segment must be present. Scope segments, such as company or legal entity, are not required. However, if
you do not include scope segments in the format, numbers for the selected reference are still generated
per scope.
7. Expand the References section. Select the document type or record to assign this number sequence to. This
step is optional for sequences that are defined for special application usage patterns. In these scenarios, a new
number is generated by using the value of a number sequence code or ID, without using a reference. An
example of a special application usage pattern is a voucher series that is used for specific journal names.
However, we do not recommend that you use such patterns.
8. Expand the General section. On the General FastTab, specify whether the number sequence is manual, and
continuous or non-continuous. In addition, enter the lowest and highest numbers that can be used in the
number sequence. We do not recommend changing a non-continuous number sequence to a continuous
number sequence. The number sequence will not be truly continuous. This change may also cause duplicate key
violations in the database. In addition, continuous number sequences have a larger effect on performance.
9. Click Save .
Set up number sequences using a wizard
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Number sequences are used to generate readable, unique identifiers for master data records and transaction
records that require them. A master data or transaction record that requires an identifier is referred to as a
reference. Before you can create new records for a reference, you must set up a number sequence and associate it
with the reference. This topic explains how to set up all required number sequences at the same time by using a
wizard. The demo data company used to create this procedure is USMF.
1. Go to Navigation > Modules > Organization administration > Number sequences > Number
sequences .
2. Select Generate .
3. Select Next .
On this page, you can modify the identification code, the lowest value, and the highest value. In addition,
you can indicate whether the number sequence must be continuous.
Do not select the Continuous option if you must preallocate numbers for the number sequence. To add
a scope segment to the format of a number sequence, select the format in the list, and then select
Include scope in format . To remove a scope segment from the format of a number sequence, select
the format in the list, and then select Remove scope from format . To exclude a number sequence from
automatic generation, select the number sequence in the list, and then select Delete .
4. Select Next .
5. Select Finish .
Organizations and organizational hierarchies
overview
2/1/2020 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

An organization is a group of people who are working together to carry out a business process or achieve a goal.
Organizational hierarchies represent the relationships between the organizations that make up your business.

Organizations
You can define the following types of internal organizations: legal entities, operating units, and teams.
All internal organizations are types of the Par ty entity. Therefore, these organizations use the address book to
store address and contact information. A party, which can be either a person or an organization, can belong to
one or more address books.
Legal entities
A legal entity is an organization that has a registered or legislated legal structure. Legal entities can enter into
legal contracts and are required to prepare statements that report on their performance.
A company is a type of legal entity. Currently, companies are the only kind of legal entity that you can create, and
every legal entity is associated with a company ID. This association exists because some functional areas in the
program use a company ID, or DataAreaId, in their data models. In these functional areas, companies are used as
a boundary for data security. Users can access data only for the company that they are currently logged on to.
Operating units
An operating unit is an organization that is used to divide the control of economic resources and operational
processes in a business. People in an operating unit have a duty to maximize the use of scarce resources, improve
processes, and account for their performance.
The types of operating units include cost centers, business units, value streams, departments, and commerce
channels. The following table provides more information about each type of operating unit.

O P ERAT IN G UN IT T Y P E DESC RIP T IO N P URP O SE

Cost center An operating unit in which managers Used for the management and
are accountable for budgeted and operational control of business
actual expenditures. processes that span legal entities.

Business unit A semi-autonomous operating unit Used for financial reporting that is
that is created to meet strategic based on industries or product lines
business objectives. that the organization serves
independently of legal entities.
O P ERAT IN G UN IT T Y P E DESC RIP T IO N P URP O SE

Value stream An operating unit that controls one or Commonly used in lean manufacturing
more production flows. to control the activities and flows that
are required to supply a product or
service to consumers.

Department An operating unit that represents a Used to report on functional areas. A


category or functional part of an department may have profit and loss
organization that performs a specific responsibility, and may consist of a
task, such as sales or accounting. group of cost centers.

Commerce channel An operating unit that represents a Used for the management and
brick and mortar store, an online store operational control of one or more
or an online marketplace. stores within or across legal entities.

Teams
A team is an organization in which the members share a common responsibility, interest, or objective. Teams
cannot be used in organizational hierarchies.

Organizational hierarchies
Set up organizational hierarchies to view and report on your business from different perspectives. For example,
you can set up a hierarchy of legal entities for tax, legal, or statutory reporting. Set up a hierarchy that is based on
operating units to report financial information that is not legally required, but that is used for internal control. For
example, you can create a purchasing hierarchy to control purchasing policies, rules, and business processes.
Each hierarchy is assigned a purpose. The purpose of a hierarchy determines the types of organizations that can
be included in the hierarchy. The purpose also determines which application scenarios a hierarchy can be used in.
Organizations in a hierarchy can share parameters, policies, and transactions. An organization can inherit or
override the parameters of its parent organization. However, shared master data, such as products and address
books, applies to the whole organization and cannot be overridden for individual organizations. Creating
organizations and hierarchies requires careful planning. For more information, see Plan your organizational
hierarchy.
Plan your organizational hierarchy
10/1/2019 • 13 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Before you set up organizations and organization hierarchies, make sure that you plan how your business will be
modeled. The organization model has a significant effect on the implementation and business processes.
Organizational hierarchies represent the relationships between the organizations that make up a business.
Therefore, the most important consideration when you model organizations is the structure of your business. We
recommend that you define organization structures based on feedback from executives and senior managers
from functional areas, such as finance and accounting, human resources, operations, purchasing, and sales and
marketing.
When you are planning hierarchies, it is also important to consider the relationship between the organizational
hierarchy and financial dimensions. You can set up multiple organizational hierarchies to represent different
views of your business. By using financial dimensions, you can create reports based on these views. Work with
your partner to create hierarchies that address both organizational and statutory reporting needs.

NOTE
Although you can use financial dimensions to represent legal entities without creating the legal entities, financial
dimensions aren't designed to address the operational or business needs of legal entities. The interunit accounting
functionality is designed to address only the accounting entries that are created by each transaction.

IMPORTANT
You shouldn't decide how to model organizations based only on the information in this article. This documentation is a
guide. You can work with your Partner for additional guidance. Your Partner has gained experience in various industries and
across the customer base.

Decide whether to model internal organizations as legal entities or


operating units
You must have at least one legal entity to represent your business. A legal entity can enter legal contracts and is
required to prepare financial statements that report on its performance.
Legal entities can be used for transactional business or for consolidation. This means that a legal entity in Finance
and Operations does not necessarily represent a real entity in your business. For example, a company that
participates in transactions can own subsidiary legal entities. In this scenario, a legal entity is required for
transactions, and a virtual legal entity is required to consolidate the results and balances of the subsidiary legal
entities.
Internal organizations in your business, such as regional offices, can be represented as additional legal entities, or
as operating units of the main legal entity. An operating unit is not required to be a legally defined organization.
Operating units are used to control economic resources and operational processes in the business. For example,
departments and cost centers are operating units.
Some functionality works differently depending on whether the organization is a legal entity or an operating unit.
Carefully consider the functionality described below as you make your decision.
Master data
If the organization is modeled as a legal entity
Some master data, such as customers, payment terms, tax authorities, and site-specific stock ordering, must be
set up for each legal entity. Some master data, such as users, products, and most human resources data, is shared
among all legal entities.
If the organization is modeled as an operating unit
Master data is shared among operating units.
Module parameters
If the organization is modeled as a legal entity
Parameters for modules, such as Accounts receivable parameters, Accounts payable parameters, and Cash and
bank management parameters, must be set per legal entity. Because the module setup for legal entities is
separate, each subsidiary can comply with local statutory requirements and business practices. For example, a
professional services legal entity and a manufacturing legal entity can have different module parameters even
though they report to the same parent company.
If the organization is modeled as an operating unit
Module parameters are shared among operating units.
Data security
If the organization is modeled as a legal entity
Most data is automatically secured by company ID. A company ID is a unique identifier for the data that is
associated with a legal entity. A company can be associated with only one legal entity, and a legal entity can be
associated with only one company. Users can access data only for the companies that they have access to. You do
not need to customize to secure data by company ID.
If the organization is modeled as an operating unit
Data can be secured per operating unit by creating customized data security policies. Data security policies are
used to limit access to data. For example, assume that a user is allowed to create purchase orders only in a
particular operating unit. Data security policies can be created to prevent the user from accessing purchase order
data from any other operating unit. The volume of transactions and the number of security policies can affect
performance. When you design security policies, keep performance in mind.
Ledgers
If the organization is modeled as a legal entity
Each legal entity requires a ledger that provides a chart of accounts, accounting currency, reporting currency, and
fiscal calendar. A balance sheet can be created only for a legal entity. Main accounts, dimensions, account
structures, charts of accounts, and account rules can be used by more than one legal entity.
If the organization is modeled as an operating unit
An operating unit can't have its own ledger information. If your internal organizations do not require unique
ledgers, you can model them as operating units. Ledger information will be set up for the parent legal entity in
the hierarchy. Income statements can be created for operating units within a legal entity or for the parent legal
entity.
Fiscal calendars
If the organization is modeled as a legal entity
Each legal entity has its own fiscal calendar. If your internal organizations use different fiscal years and fiscal
calendars, you must model the organizations as legal entities.
If the organization is modeled as an operating unit
Operating units must share a fiscal calendar. If your internal organizations can use the same fiscal years and fiscal
calendars, you can model the organizations as operating units.
Consolidation
If the organization is modeled as a legal entity
You must consolidate the financial results for regional offices into a single, consolidated company in order to
prepare financial statements.
If the organization is modeled as an operating unit
Consolidation is not required, because data is already shared among operating units.
Centralized payments
If the organization is modeled as a legal entity
Centralized payments must be set up so that invoices for all child legal entities can be paid to or from a single
parent legal entity.
If the organization is modeled as an operating unit
Centralized payments are not required because all invoices are recorded in a single legal entity.
Intercompany transactions
If the organization is modeled as a legal entity
Intercompany sales orders, purchase orders, payments, or receipts can be applied to one another. You are not
required to use journal vouchers. You can view intercompany transactions at the sub-ledger level (Accounts
receivable, Accounts payable). The following examples illustrate how intercompany transactions are handled.
Ex a m p l e 1 : H e a d q u a r t e r s p r o v i d e s se r v i c e s t o r e g i o n a l o ffi c e s a n d m u st c h a r g e t h e c o st s o f t h o se se r v i c e s t o t h e r e g i o n a l o ffi c e s

If you model the regional office as a legal entity, you have the following options:
Headquarters creates a journal entry to cross-charge the regional office for the expense. The transactions
cannot be aged.
Headquarters sends a purchase order for the services to the regional office. A sales order is automatically
created in the legal entity for the regional office, with intercompany sub-ledger transactions.
Ex a m p l e 2 : H e a d q u a r t e r s p r o c u r e s a n d p a y s fo r se r v i c e t h a t i s d e l i v e r e d t o a r e g i o n a l o ffi c e

If you model the regional office as a legal entity, you have the following options:
The invoice and payment follow the regulatory requirements of headquarters. Headquarters can create a
journal entry to cross-charge the regional office for the expense. The transactions cannot be aged.
The invoice and payment follow the regulatory requirements of headquarters. Headquarters can create an
intercompany sub-ledger transaction.
If the organization is modeled as an operating unit
Intercompany transactions among operating units are supported only through journal vouchers. An operating
unit cannot issue or receive a purchase order, sales order, or invoice from another operating unit in the same legal
entity. You cannot view intercompany transactions at the sub-ledger level (Accounts receivable, Accounts
payable). The following examples illustrate how intercompany transactions are handled.
Ex a m p l e 1 : H e a d q u a r t e r s p r o v i d e s se r v i c e s t o r e g i o n a l o ffi c e s a n d m u st c h a r g e t h e c o st s o f t h o se se r v i c e s t o t h e r e g i o n a l o ffi c e s

If you model the regional office as an operating unit, headquarters enters an expense transaction and codes it to
the regional office.
Ex a m p l e 2 : H e a d q u a r t e r s p r o c u r e s a n d p a y s fo r se r v i c e t h a t i s d e l i v e r e d t o a r e g i o n a l o ffi c e

If you model the regional office as an operating unit, the invoice and payment follow the regulatory requirements
of headquarters. The invoice can be coded to the regional office. On the income statement, use a balancing
financial dimension to report costs for the regional office.
Local tax requirements
If the organization is modeled as a legal entity
A legal entity is subject to the tax laws of the tax authority in the country/region where the legal entity is
registered. For example, a legal entity that is registered in Denmark is subject to Danish tax laws and regulations.
A legal entity can belong to only one country/region. The country/region that you select for the primary address
of the legal entity controls the country/region-specific features that are available to that legal entity. For example,
if the primary address of the legal entity is in Denmark, features that are related to Danish tax laws and
regulations become available. Therefore, if your organizations are in different countries/regions and require
different local tax options, you must set up the organizations as separate legal entities.
If the organization is modeled as an operating unit
Operating units use the country context of the parent legal entity. Operating units in the same legal entity cannot
have different country/region-specific requirements. If your organizations are in the same country/region and
use the same tax options, you can set them up as operating units.
Statutory reporting for a country/region
If the organization is modeled as a legal entity
For countries/regions that are supported, most statutory reports can be created. For information about which
reports are available for each country/region, see the Microsoft Dynamics Localization Portal. (A CustomerSource
logon is required.)

NOTE
A posting layer in the general ledger allows you to make adjusting entries to a parent company that uses a different
accounting standard than the child company. For example, for a company that uses generally accepted accounting practices
in the United Kingdom (UK GAAP), you can make adjusting entries in the posting layer. These entries can be consolidated
into a parent company that uses generally accepted accounting principles (GAAP) in the United States. The adjusting entries
do not affect UK GAAP reporting.

If the organization is modeled as an operating unit


Statutory reports must be created by using another application. You must ensure that data is captured in Finance
and Operations apps to support the requirements of each operating unit, where they differ from the
requirements of headquarters.
Currency
If the organization is modeled as a legal entity
If your organizations must use different functional currencies, you must model the organizations as legal entities.
Functional currencies are set up per legal entity. However, you can enter transactions in multiple currencies.
If the organization is modeled as an operating unit
If your organizations can use a single functional currency, you can model the organizations as operating units.
Operating units must share a functional currency. However, you can enter transactions and create reports in
multiple currencies.
Year-end closing
If the organization is modeled as a legal entity
If laws and accounting practices differ among the countries/regions where your organizations are located, you
may require different year-end procedures per organization. This means that you must model the organizations
as legal entities. Each legal entity has its own year-end procedures.
If the organization is modeled as an operating unit
If laws and accounting practices are the same among the countries/regions where your organizations are located,
you may use a single set of year-end procedures. This means that you can model the organizations as operating
units. All operating units must use the same year-end closing procedure.
Number sequences
If the organization is modeled as a legal entity
Number sequences for some references can be set up per legal entity. Some number sequences can be shared.
If the organization is modeled as an operating unit
Number sequences for some references can be set up per operating unit. Some number sequences can be
shared.
Products
If the organization is modeled as a legal entity
Product definitions are shared, and they must be released to individual legal entities before they can be included
in transactions. Each legal entity has its own set of released products that can be included in transaction
documents. If your internal organizations must use different sets of products, you must model the organizations
as legal entities.

NOTE
Even though product definitions are shared, in each legal entity where a product has been released, you can specify
different sales, purchase, and stocking parameters for the item at each inventory site.

If the organization is modeled as an operating unit


All operating units share the same set of products. If your internal organizations can share the same set of
products, you can model the organizations as operating units.
Inquiry and reporting
If the organization is modeled as a legal entity
You must manually change companies to enter transactions and perform inquiries in multiple legal entities.
Because of data security boundaries, consolidated inquiry and reporting can be resource intensive and time-
consuming.
If the organization is modeled as an operating unit
You do not need to change companies to access data from multiple operating units. Consolidated inquiry and
reporting and individual regional inquiry is easier and faster.

Best practices for modeling organizations and hierarchies


Consider the following best practices when you implement an organization hierarchy:
Create a department to model the intersection between a legal entity and a business unit. You can then roll up
data from a department to a legal entity for statutory reporting, and from a department to a business unit for
internal reporting. Departments can serve as profit centers. If you use departments, you do not have to use
legal entities and business units as dimensions in the account structure. You can use just departments as a
dimension. However, you must use both cost centers and departments as dimensions in the account structure
if cost centers are used only as cost accumulators, and departments are used for revenue recognition.
Model multiple hierarchies for operating units if you have complex requirements for reporting profit and loss.
In a single legal entity, do not model multiple hierarchies for the same hierarchy purpose.
Do not create a hierarchy for every purpose. Usually, you can use one hierarchy for multiple purposes. For
example, one hierarchy of operating units can be assigned to all policy-related purposes.
Create balanced hierarchies. In a hierarchy, all nodes that are the same distance from the root node are
defined as a level. In a balanced hierarchy, only one type of operating unit can occur at each level, and the
distance from the root node to each level is consistent. If there are intermediate levels between a department
and a legal entity or a business unit, placeholder organizations may be required to create a balanced hierarchy.
Do not model a separate hierarchy of operating units if the structure for legal entities is also your operating
structure. A mixed hierarchy of legal entities and operating units may serve both purposes.
Before you model major restructuring scenarios, use the hierarchy's effective dates to perform an impact
analysis and a validation test.
Use draft mode to change a hierarchy before you publish a new version in a production environment.
Limit the number of people who have permissions to add or remove organizations from a hierarchy in a
production environment. A smaller number reduces the chance that costly mistakes can occur and corrections
must be made.
Create an organization hierarchy
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Use the following procedure to create an organizational hierarchy. You can use organizational hierarchies to view
and report on your business from various perspectives. For example, you can set up one hierarchy for tax, legal, or
statutory reporting. You can then set up another hierarchy to report financial information that is not legally
required, but that is used for internal reporting.
Before you create an organizational hierarchy, you must create organizations. For more information, see the
"Create a legal entity" or "Create an operating unit" tasks. You can also create departments and teams.
The demo data company used to create this procedure is USMF.

Create a hierarchy
1. Go to Navigation pane > Modules > Organization administration > Organizations > Organization
hierarchies .
2. On the Action pane , click New .
3. In the Name field, type a value.
4. In the Purpose section, click Assign purpose .
5. In the list, find and select the desired record. Select a purpose to assign to your organization hierarchy.
6. In the Assigned hierarchies sectiom, click Add .
7. In the list, mark the selected row. Find the hierarchy you just created.
8. Click OK .

Add organizations to the hierarchy


1. In the list, find and select the desired record. Select your hierarchy.
2. In the Assigned hierarchies section, click View hierarchy .
Add organizations, as necessary.
To add an organization, click Edit and then Inser t to add the organization. When you are done making
changes you can Save a draft and/or Publish the changes.
Create a legal entity
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

A legal entity is an organization that is identified through registration with a legal authority. Legal entities can enter
into contracts and are required to prepare statements that report on their performance. The following procedure
explains how to create a legal entity. The demo data company used to create this procedure is USMF.
1. Go to Navigation pane > Modules > Organization administration > Organizations > Legal entities .
2. Click New .
3. In the Name field, type a value.
4. In the Company field, type a value.
5. In the Countr y/region field, enter or select a value.
6. Click OK . In the General section, provide the following general information about the legal entity: Enter a
search name, if a search name is required. A search name is an alternate name that can be used to search for
this legal entity. Select whether this legal entity is being used as a consolidation company. Select whether this
legal entity is being used as an elimination company.
7. Expand the Addresses section. In the Addresses section, click Edit to enter address information, such as the
street name and number, postal code, and city.
8. Expand the Contact information section. In the Contact information section, enter information about
methods of communication, such as email addresses, URLs, and telephone numbers.
9. Expand the Statutor y repor ting section. In the Statutor y repor ting section, enter the registration numbers
that are used for statutory reporting.
10. Expand the Registration numbers section. In the Registration numbers section, enter any information
required by the legal entity.
11. Expand the Bank account information section. In the Bank account information section, enter bank
accounts and routing numbers for the legal entity.
12. Expand the Foreign trade and logistics section. In the Foreign trade and logistics section, enter shipping
information for the legal entity.
13. Expand the Number sequences section. In the Number sequences section, you can view the number
sequences that are associated with the legal entity.
14. Expand the Images section. In the Images section, view or change the logo and/or dashboard image that are
associated with the legal entity.
15. Expand the Tax registration section. In the Tax registration section, enter the registration numbers that are
used to report to tax authorities.
16. Expand the Tax 1099 section. In the Tax 1099 section, enter 1099 information for the legal entity.
17. Click Save .
Create an operating unit
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

An operating unit is an organization that is used to divide the control of economic resources and operational
processes in a business. People in an operating unit have a duty to maximize the use of scarce resources, improve
processes, and account for their performance. The types of operating units include cost centers, business units,
departments, and value streams. Use the following procedure to create an operating unit. The demo data company
used to create this procedure is USMF.
1. Go to Navigation pane > Modules > Organization administration > Organizations > Operating
units.
2. Click New to open the drop dialog.
3. In the list, find and select the desired record. Select the type of operating unit you want to create.
4. In the list, click the link in the selected row.
5. In the Name field, type a value.
Expand the General section, if necessary.
Provide general information about the operating unit, such as an identification number, DUNS number,
and manager.
Expand the Addresses section, if necessary.
Enter address information, such as the street name and number, postal code, and city. Click Add to enter
a new address record, or click Edit to modify an existing address record.
Expand the Contact information section, if necessary.
Enter information about methods of communication, such as email addresses, URLs, and telephone
numbers. To enter a new communication record, click New. To modify an existing communication record,
click More options > Advanced .
6. Optionally, change the Operating unit number as needed. Note that this number is a unique idenitifier for
the correspondng Par ty record and cannot be the same as any other operating unit.
7. Select Save .
Global address book overview
1/13/2020 • 4 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

The global address book is a centralized repository for master data that must be stored for all internal and external
persons and organizations that the company interacts with. The data that is associated with party records includes
the party's name, address, and contact information. Other details vary, depending on whether the party is a person
or an organization. Each party record is assigned to a party, and each party can be associated with one or more
party roles in a company. Party roles include customer, prospect, worker, user, vendor, competitor, applicant, and
contact. For example, the organization party First Up Consultants, can be associated with customer, business
relation, and vendor roles in the CEE company, and can also be associated with the vendor role in the CEU
company. Here are some of the benefits of this shared data:
The data shows the relationships that people and organizations have with other areas of the company. The
relationship between two organizations changes when one organization has multiple roles, such as vendor and
customer. Communication between the two organization also changes. There might be special agreements that
can be negotiated to encourage a closer partnership with the other organization.
Setup and maintenance are easier. For example, when an address changes, the update must be made in only
one place. All the other associated records are updated automatically.

How the global address book works


The following illustration shows how party records, party roles, locations, and transactions interact and relate to an
address book. As the illustration shows, a party record can belong to one or more address books. Each party
record can store one or more locations, or addresses, and is assigned a party role. The role that is assigned to the
party record can have specific transactions types associated with it. The following sections provide more
information about party roles, locations, and transaction types. The following image is a graphical representation of
the ways that parties, party roles, locations, and transactions interact in relation to the global address book.

Party roles
Roles that are associated with party records are referred to as party roles. There are several party roles, and
they can be assigned to both party types, person and organization. Here are the definitions for each party role:
Customer – Individuals, companies, or other entities who purchase goods and services that are produced by
other individuals, companies, or entities.
Prospect – A party that might provide a service or benefit to a legal entity.
Worker – A person who assumes the role of an employee or a contractor, and who is paid in exchange for
services.
User – A person who is a user of the system.
Vendor – A party that supplies products to one or more legal entities in exchange for payment.
Competitor – A person or organization that provides goods or services that are similar to the goods or
services that your business provides.
Applicant – A person who makes a formal written or electronic request to work for or fill an open position in
an organization.
Contact – A person, either inside or outside your organization, that you have created an entry for. In this entry,
you can save information such as the person's street and email addresses, telephone and fax numbers, and
webpage URLs.
Creating new party records
There are two ways to enter party records in the global address book:
Creating a par ty record when you don't know the role – When you create a party record and don't know
the role type (for example, you don't know whether the party is a customer or an opportunity), you create the
record in the global address book. You can select the role type later.
Creating a par ty record when you know the role – If you know the role type for the party, you can create
a record on the appropriate page for that type. For example, if the party is a customer, you create a record on
the Customer page. When you create and save a record by using the page for the party's role type, the record
is automatically created in the global address book.
Party roles and transactions
For transactions that are a part of the business processes, multiple parties might be associated with each
transaction. An example is a customer that needs to be referenced on project quotations.
Parties locations, addresses, and contact information
Each party record's addresses, locations, and contact information are shared across all the party roles that
are associated with that party. Therefore, when any of this information is changed, all other associated records are
updated accordingly.
Locations and transactions
When a party role is included in a transaction, the location, address, or contact information of the party can be
accessed when transaction details are entered.
Plan for the global address book and other address
books
1/13/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the considerations and decisions that you must make during the planning process, before you
set up and configure the global address book and any additional address books. Some of the decisions will require
that you confirm the decisions that have been made for other areas of the product, such as the organization
hierarchy.

Global address book


Before you begin to work with the global address book, you must determine the default values for it. These default
values are then used for any additional address books that you create.
Decisions
What sequence should names be displayed in for party records of the Person type? For example, one sequence
is last name, middle name, first name.
Should party records be deleted from the address book when the role record is deleted? For example, if a
customer record is deleted, should the party record also be deleted?
When a new record is created, should users be notified if a duplicate record is found in the global address book?
Should the Data Universal Numbering System (DUNS) number be included in a party record's information?
If the DUNS number is included in a party record, should the uniqueness of the number be checked?
When a party record is created in the global address book, do you want a default party type, person, or
organization?
Which user roles should have access to the private addresses and contact information of party records?

Additional address books


After you create the global address book, you can create additional address books as you require, such as a
separate address book for each company in your organization or for each line of business. For example, Fabrikam
is an international organization that has multiple companies and multiple lines of business. Fabrikam plans to
create an address book for each line of business. For lines of business that occur in more than one location, such as
the pneumatic tools business, Fabrikam plans to create an address book for each location. Chris, the IT manager at
Fabrikam, has created the following list of address books that are required. This list also describes the party records
that each address book must include.
Public Sector Contracts (PubSC) – Party records for all parties that are involved in the public sector
contracts that Fabrikam holds.
Private Sector Contracts (PriSC) – Party records for all parties that are involved in the private sector
contracts that Fabrikam holds.
Electronic Tools (ET) – Party records for all parties that are involved in the purchase or sale of electronic tools,
or that otherwise interact with the electronic tools that are provided by or purchased for Fabrikam in the
Fabrikam-Japan company.
Pneumatic Tools (PTJPN) – Party records for all parties that are involved in the purchase or sale of pneumatic
tools, or that otherwise interact with the pneumatic tools that are provided by or purchased for Fabrikam in the
Fabrikam-Japan company.
Pneumatic Tools (PTUSA) – Party records for all parties that are involved in the purchase or sale of
pneumatic tools, or that otherwise interact with the pneumatic tools that are provided by or purchased for
Fabrikam in the Fabrikam-US company.
Decision:
How many additional address books will you create?
Configure the global address book
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Use this procedure to set the default values and security policies for the global address book.
The demo data company used to create this task is USMF. This task is intended for the Planning and configuration
team.
1. In the Navigation pane, go to Modules > Organization administration > Global address book > Global
address book parameters .
2. In the Name sequence field, select how names should be shown.
3. In Delete par ties with no roles , select whether to delete parties with that have not been assigned a role.
4. In Use duplicate check , select whether to check for duplicate records.
5. In Display DUNS number on addresses , select whether to display the DUNS number on addresses.
6. In Check for unique DUNS number , select whether to check for unique DUNS numbers.
7. In the Par ty field, select an option.
8. In the Customer field, select an option.
9. In the Vendor field, select an option.
10. In the Prospect field, select an option.
11. In the Competitor field, select an option.
12. Click the Private location security tab.
13. In the list, find and select the desired record. Press the Shift key to select multiple roles to add to the Selected
roles pane and then click the arrow to add the selected roles.
14. Click Save .
Address books FAQ
1/13/2020 • 5 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

How do I check for duplicate records?


You can check for duplicate records directly from the Global address book list page. On the Action Pane, on the
Par ty tab, in the Maintain group, click Check for duplicates . Then select the values to include in the check for
duplicates.

Can I bulk add or delete party records from an address book?


Yes, you can add multiple party records to an address book and also remove multiple party records.
To add multiple party records to an address book, on the Global address book list page, select the parties in
the list. Then, on the Action Pane, on the Par ty tab, in the Maintain group, click Assign par ties . Select the
address books to add the selected party records to, and then click OK . All the selected party records are added
to the address books that you selected.
To remove multiple party records from an address book, on the Global address book list page, select the
parties in the list. Then, on the Action Pane, on the Par ty tab, in the Maintain group, click Remove par ties .
Select the address books to remove the parties from, and then click OK . All the selected party records are
removed from the address books that you selected.

Can I change the party type of a record, or do I have to delete the old
record and create a new one?
Occasionally, you might have to change the party type of a record from person to organization or from
organization to person. For example, Nancy is a member of the sales team for Fabrikam U.K. At a trade show in
London, she meets six new prospects. Nancy creates a prospect party record for each prospect. When Nancy saves
the records, each record is also created in the global address book. Fabrikam has set the default party type to
organization, but two of the new prospects should have a record type of person. Therefore, when Nancy returns
from the trade show, she must change the party type of the two prospect records. To change a party record from
one party type to another, you must first create a new party record of the correct type in the global address book.
You then associate the old party record with this new record. After you have made the new party association, delete
the original party record that has the incorrect record type.

How do I change the name or address of a party record?


You can update the name of a party record, and the addresses that are associated with that record, at any time.
To update the name of a party record, open the party record, and then, on the Action Pane, click Edit . On the
General FastTab, enter the new name for the party, and then save the record.
To update an address for a party record, open the party record, and then, on the Addresses FastTab, select the
address to update. Click Edit , and then, on the Edit address page, make the required changes to the address or
address parameters.
Can I merge two or more party records into one record?
Occasionally, you might want to merge two or more party records into a single record. This can occur if you create
one or more duplicate party records, either on purpose or unintentionally. When you merge party records, you
select one record to keep. The information from the other records is then merged into this record. For example, you
discover that information about Fabrikam is stored in three party records: A, B, and C. You decide to keep party
record A. Therefore, the information that is stored in party records B and C will be merged into party record A.
There are some situations where you can't merge party records:
You can't merge party records that are associated with the same party role, such as customer or vendor, in the
same legal entity. For example, party A is associated with a customer in legal entity 123, and party B is
associated with a different customer in legal entity 123. These party records can't be merged, because if they
were merged, the merged party record would be associated with multiple customers in the same legal entity,
and this isn't allowed. However, the records can be merged if party B is associated with a vendor in legal entity
123 or with a customer in a different legal entity.
You can't merge internal party organization records in the same legal entity, team, or operating unit.

Should I create a party record in the global address book or in another


place, such as the Customer or Vendor page?
You can enter party records either in the global address book or on the appropriate entity page. When you add a
record in one location, the same record is always added in the other location. For example, if you add a party
record for a customer in the global address book, the record is also added on the Customer page. Likewise, if you
add a party record for a customer on the Customer page, the record is also added in the global address book. Use
the following guidelines to decide where you should enter new party records:
Creating a par ty record when you don't know the entity type – If you must create a party record but
don't know the entity type (for example, you don't know whether the entity is a customer or an opportunity),
create the record in the global address book. You can select the entity type later.
Creating a par ty record when you know the entity type – If you know the entity type for the party, you
can create a record on the applicable page for that type. For example, create a record for a customer on the
Customer page. When you create and save a record by using the appropriate entity page, the record is
automatically created in the global address book.

Can I translate address information for party records?


You can set up translations of address information, so that the information appears in your user language (system
language) in your program, but in another language on documents such as sales orders. You can enter translations
for country/region names, address purposes, and name sequences. For example, your system language is Danish,
and you create a sales order for a customer in France. In this case, you can view the customer record in Danish in
the program but display the address information in French on the printed sales order. When you set up
translations, you should enter a translation for every item in the list. Any item that you don't enter a translation for
will appear in the system language. For example, your system language is Danish, and you send a document to a
customer in Spain. If you haven't entered Spanish (ESP) translations for the address information, that information
will appear in Danish both in the program and on the printed document.
Configure address books
3/18/2020 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

Use this procedure, and the decisions that you made in the Planning the configuration of the global address book
and additional address books topic, to set up additional address books for your organization.
The demo data company used to create this task is USMF. This recording is intended for the Planning and
configuration team members.

Configure address books


1. In the Navigation pane , go to Modules > Organization administration > Global address book >
Address books .
2. Click New .
3. In the Name field, type a value.
4. In the Description field, type a value.
5. Click Save .
6. In the list, find and select the desired record.
7. Click the arrow to add the selected available teams to the address book.
8. Click Save .
Workflow system overview
11/18/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the workflow system.

What is workflow?
The term workflow can be defined in two ways: as a system and as a business process.
Workflow is a system
Workflow is a system that runs on the Application Object Server (AOS). The workflow system provides
functionality that you can use to create individual workflows, or business processes.
Workflow is a business process
A workflow represents a business process. It defines how a document flows, or moves, through the system by
showing who must complete a task, make a decision, or approve a document. For example, the following
illustration shows a workflow for expense reports.
To better understand this workflow, suppose that Sam submits an expense report for USD 7,000. In this scenario,
Ivan must review the receipts that Sam routes to him. Then Frank and Sue must approve the expense report. Now
suppose that Sam submits an expense report for USD 11,000. In this scenario, Ivan must review the receipts, and
Frank, Sue, and Ann must approve the expense report.

Benefits of using the workflow system


There are several benefits of using the workflow system in your organization:
Consistent processes – You can define how specific documents, such as purchase requisitions and expense
reports, are processed. By using the workflow system, you ensure that documents are processed and approved
in a consistent and efficient manner.
Process visibility – You can track the status, history, and performance metrics of workflow instances. This
helps you determine whether changes should be made to the workflow to improve efficiency.
Centralized work list – Users can view a centralized work list that displays the workflow tasks and approvals
that are assigned to them.

Workflow content
Workflow system architecture
Workflow elements
Actions in workflow approval processes
Create workflows overview
Configure workflow properties
Configure manual tasks in a workflow
Configure automated tasks in a workflow
Configure approval processes in a workflow
Configure approval steps in a workflow
Configure manual decisions in a workflow
Configure conditional decisions in a workflow
Configure parallel activities in a workflow
Configure parallel branches in a workflow
Configure line-item workflows
Workflow FAQ
Workflow system architecture
10/1/2019 • 3 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article describes the architecture of the workflow system.


The workflow infrastructure consists of two components that are hosted on Application Object Server (AOS): the
X++ workflow runtime and the managed workflow runtime.
The X++ workflow runtime consists of the following components:
Workflow runtime application programming interface (API)
A messaging batch job
A message queue
Either the messaging batch job or the workflow runtime API can invoke the application code, if it's required. The
X++ workflow runtime is compiled into the Common Intermediate Language (CIL) of the Microsoft .NET
Framework.
The managed workflow runtime consists of the Windows Workflow Foundation and Finance and Operations apps
extensions.
Logically, the workflow infrastructure is an extension and is transparent to users. Physically, both the X++ workflow
and the managed workflow runtimes are hosted on AOS. The workflow infrastructure uses batch processing on
AOS and .NET Interop to integrate both subsystems, and to pass messages from one subsystem to the other. The
X++ code that is run in the batch processor is compiled to .NET CIL. The batch processing runs in the .NET common
language runtime (CLR).
The following figure shows the high-level architecture of the workflow infrastructure.
Users can use workflow pages and controls to participate in business processes.
Developers can create workflows for the objects that they have added. The following table describes the workflow
steps that occur when a user submits an expense report to the workflow system for approval.

ST EP RUN T IM E A C T IVIT Y

1 X++ workflow runtime A user submits an expense report by


clicking the Submit button on one of
the workflow controls. This action
causes X++ code to activate a workflow
instance by calling the workflow runtime
API. The workflow runtime API posts a
message to the message queue. The
messaging batch job reads the message
and sends a workflow activation request
to the managed workflow runtime.
[!NOTE] The messaging batch job
processes the message queue at
one-minute intervals.
ST EP RUN T IM E A C T IVIT Y

2 Managed workflow runtime .NET Interop from X++ receives the


message and starts a new workflow
instance via Windows Workflow
Foundation. This workflow instance
performs a callback to the X++
workflow runtime API via .NET Interop
to X++ CIL and posts a message that
the workflow has started.
After the message is posted, the
managed workflow runtime saves
the idle workflow instance to the
database. The runtime then
removes the workflow instance
from memory. When the managed
workflow runtime receives another
message from the X++ workflow
runtime for this workflow instance,
it restores the workflow instance to
memory and resumes it.
Each workflow instance is unique. If
two users submit their expense
reports for approval, two workflow
instances are started.

3 X++ workflow runtime The messaging batch job reads the


workflow star ted message from the
message queue and invokes the
application event handler to process a
workflow star ted event. The batch
job then posts an acknowledgment
message that the event was processed.

4 Both This same messaging pattern is


repeated, as required, throughout the
lifecycle of the workflow instance.

The workflow architecture helps provide a reliable and durable messaging system, and also helps guarantee that
the state of the workflow is always synchronized with the state of the application. If an unexpected hardware or
software failure occurs, the workflow instance state is returned to its last known saved point, and the message
stays in the queue. Therefore, from an architecture perspective, the recovery model is to fix the problem and
resume the workflow.
Workflow elements
10/1/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic describes the various elements that make up a workflow.


A workflow consists of elements. The sections that follow describe each type of element.

Tasks
A task is a unit of work that must be performed. Two types of tasks can be added to a workflow: manual tasks and
automated tasks.
Manual task
A manual task is a unit of work that must be performed by a user. For example, an expense report workflow can
have manual tasks that require the assigned users to complete the following actions:
Review the receipts that are submitted together with an expense report.
Call an employee's manager.
Automated task
An automated task is a unit of work that must be performed by the system. No human interaction is required. For
example, a sales order workflow can have automated tasks that require the system to complete the following
actions:
Perform a credit check.
Create a customer record for the customer, if a record doesn't already exist.

Approval processes
An approval process is a process that consists of separate steps. At each approval step, the user can perform the
following actions:
Approve the document.
Reject the document.
Request a change to the document.
Assign the document to another user for approval.

Line-item workflow elements


A workflow can be created to process either documents or the line items on a document. For example, you've
created an approval workflow for timesheets. (We will refer to this workflow as the document workflow .) You can
add a line-item workflow element to that document workflow. When the line-item element is run, each line item on
the document is submitted for processing. You might want all the line items to be processed by the same line-item
workflow, or you might want each line item to be processed by a different line-item workflow. Imagine that an
employee has submitted a timesheet that resembles the following figure.
In this scenario, you might want to create the following line-item workflows:
Line-item workflow 1 – This workflow is used to process line items where the project ID is 1111.
Line-item workflow 2 – This workflow is used to process line items where the project ID is 2222.
Line-item workflow 3 – This workflow is used to process line items where the project ID is 3333.

Flow-control elements
The following elements let you design workflows that have alternate branches or branches that run at the same
time.
Manual decision
A manual decision is a point where a workflow divides into two branches. A user must make a decision, and this
decision determines which branch is used to process the document that was submitted.
Conditional decision
A conditional decision is also a point where a workflow divides into two branches. However, the system decides
which branch is used to process the document that was submitted. To make this decision, the system evaluates the
document to determine whether it meets specified conditions.
Parallel activity
A parallel activity is a workflow element that includes two or more workflow branches that run at the same time.
Subworkflow
A subworkflow is a workflow that runs in the context of another workflow.
Actions in workflow approval processes
10/1/2019 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This article explains the actions that each participant in a workflow approval process can take.
A workflow can involve several groups of people: the originator, task assignees, decision makers, and approvers.
For example, in the following expense report workflow, Sam is the originator, the members of the queue are task
assignees, John is a decision maker, and Frank, Sue, and Ann are approvers.
The following sections explain the workflow actions that each group can perform.

Actions that an originator can perform


The originator starts a workflow instance by submitting a document for processing. For example, Sam must click
the Submit button on the Expense repor t page to submit his expense report.

Actions that a task assignee can perform


A task can be assigned to multiple people or to a work item queue that is monitored by several people. However,
only one person can complete a task. For example, Sam has submitted an expense report and has routed his
receipts to his organization's Expense Reports department for review.
The members of the Adventure Works Expense Reports department monitor the queue. Julie, a member of that
department, has accepted the task of reviewing Sam's expense report and receipts. She can now perform one of
the following actions: complete, reject, delegate, request change, reassign, or release.

NOTE
The actions that are available vary, depending on how the software developer designed the task.

Complete
When a user completes a task, the document that was submitted for processing is assigned to the next user in the
workflow, if there is a next user. If no additional processing is required, the workflow process ends.
For example, Julie, a member of the Adventure Works Expense Reports department, has accepted the task of
reviewing Sam's expense report and receipts. After Julie completes her review, the document is assigned to John.
Reject
When a user rejects a document, the workflow process ends.
For example, Julie, a member of the Adventure Works Expense Reports department, has accepted the task of
reviewing Sam's expense report and receipts. If Julie rejects the expense report, the workflow process ends.
Sam can then resubmit the expense report. He can make changes first, or he can resubmit the original version. If
Sam resubmits the expense report, the workflow process starts at the manual review task.
Delegate
When a user delegates a task, the task is assigned to another user.
For example, Julie, a member of the Adventure Works Expense Reports department, has accepted the task of
reviewing Sam's expense report and receipts. Julie delegates this task to Tim, who is her assistant.
Tim then acts on behalf of Julie. Therefore, when Tim completes his review, the expense report is assigned to John,
just as if Julie had completed the task.
Request change
When a user requests a change to a document that was submitted, the document is sent back to the originator.
For example, Julie, a member of the Adventure Works Expense Reports department, has accepted the task of
reviewing Sam's expense report and receipts. Julie notices some errors on the expense report and requests
changes. The expense report is sent back to Sam.
Sam can resubmit the expense report. He can make the requested changes first, or he can resubmit the original
version. If Sam resubmits the expense report, a member of the work item queue must review the expense report
and the receipts again.
Reassign
The members of a work item queue can reassign documents that are in that queue to another queue.
For example, Julie, a member of the Adventure Works Expense Reports department, is monitoring the queue. To
help balance the workload, she can reassign the expense report, and the receipts that are included with it, to
another queue.
Release
Occasionally, a member of a work item queue might accept a task, but then decide that he or she can't complete
the task. In this case, the person who accepted the task can release the document back to the work item queue.
For example, Julie, a member of the Adventure Works Expense Reports department, has accepted the task of
reviewing Sam's expense report and receipts. If Julie decides that she can't complete the task, she can release the
document. The expense report is returned to the queue, so that other members of the Adventure Works Expense
Reports department can complete the task.

Actions that a decision maker can perform


Typically, a document is assigned to a decision maker, because there is a question that the decision maker must
answer. The answer to the question is typically Yes or No , or True or False . If the decision maker doesn't select one
of those choices, he or she can delegate the decision.
[Choice 1] or [Choice 2]
A decision maker must answer a question that is related to the document. The answer to the question is typically
Yes or No , or True or False . The answer that the decision maker selects determines the workflow branch that is
used to process the document.
For example, Sam's expense report is assigned to John. John must decide whether the information in the
document requires a call to Sam's manager. If John decides that a call is required, the expense report is assigned to
Aretha, who must then call Sam's manager. If John decides that a call isn't required, the expense report is assigned
to Frank for approval.
Delegate
When a decision maker delegates a decision, the document is assigned to another user who must make the
decision.
For example, Sam's expense report is assigned to John. John delegates the decision to Maria, who is his assistant.
Maria then acts on behalf of John. If Maria decides that a call to Sam's manager is required, the expense report is
assigned to Aretha, who must then call Sam's manager. If Maria decides that a call isn't required, the expense
report is assigned to Frank for approval.

Actions that an approver can perform


When a document is assigned to an approver, the approver can perform one of the following actions: approve,
reject, delegate, or request change.
Approve
When an approver approves a document, the document is assigned to the next user in the workflow, if there is a
next user. If no additional processing is required, the workflow process ends.
For example, Sam has submitted an expense report for USD 6,000, and this document is assigned to Frank. When
Frank approves the document, it's assigned to Sue for approval. When Sue approves the expense report, the
workflow process ends.
Reject
When an approver rejects a document, the workflow process ends.
For example, Sam has submitted an expense report for USD 12,000, and this document is assigned to Sue. If Sue
rejects the expense report, the workflow process ends.
Sam can resubmit the expense report. He can make changes first, or he can resubmit the original version of the
expense report. If Sam resubmits the expense report, the workflow process starts at the approval process.
Delegate
When an approver delegates a document, the document is assigned to another user for approval.
For example, Sam has submitted an expense report for USD 12,000, and this document is assigned to Frank. Frank
delegates the expense report to Ann.
Ann then acts on behalf of Frank. Therefore, when Ann approves the document, it's assigned to Sue for approval,
just as if Frank had approved it. After Sue approves the document, it's sent to Ann for approval.
Request change
When an approver requests a change to a document, the document is sent back to the originator.
For example, Sam has submitted an expense report for USD 12,000, and this document is assigned to Sue. If Sue
requests a change, the expense report is sent back to Sam.
Sam can resubmit the expense report. He can make the requested changes first, or he can resubmit the original
version of the expense report. If Sam resubmits the expense report, it's sent to Frank for approval, because Frank is
the first approver in the approval process.
Create workflows overview
11/18/2019 • 2 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to create a workflow.

Open the workflow editor


The module that you're working in determines the types of workflow that you can create. Follow these steps to
select the type of workflow to create and open the workflow editor.
1. Open the module that you want to create a new workflow for. For example, to create a workflow for purchase
requisitions, click Procurement and sourcing .
2. Click Setup > [Module name] workflows .
3. On the list page that appears, on the Action Pane, click New .
4. On the Create workflow page, select the type of workflow to create, and then click Create workflow . The
workflow editor appears. You can now use the following procedures to design the workflow.

Drag workflow elements onto the canvas


The Workflow elements area of the workflow editor contains the elements that you can add to your workflow. To
add elements to the workflow, drag them onto the canvas.

Connect the elements


To connect one workflow element to another, hold the pointer over an element until connection points appear.
Click a connection point, and drag it to another element. Be sure to connect all the elements.

Configure the properties of the workflow


Follow these steps to configure the properties of the workflow.
1. Click the canvas to make sure that no workflow element is selected.
2. Click Proper ties to open the Proper ties page for the workflow.
3. Follow the procedures in the Configure workflow properties topic.

Configure the elements of the workflow


Configure each element that you dragged onto the canvas. For information about how to configure each workflow
element, see the following topics:
Configure manual tasks in a workflow
Configure automated tasks in a workflow
Configure approval processes in a workflow
Configure approval steps in a workflow
Configure manual decisions in a workflow
Configure conditional decisions in a workflow
Configure parallel branches in a workflow
Configure a parallel branch
Configure line-item workflows

Resolve any errors or warnings


The Errors and warnings pane at the bottom of the workflow editor shows messages that have been generated
for the workflow. To find the element where an error or warning occurred, double-click the error or warning
message. You must resolve all errors and warnings before you can make the workflow active.

Save and activate the workflow


When you're ready to save and activate the workflow, follow these steps.
1. Click Save and close to close the workflow editor and open the Save workflow page.
2. Enter comments about the changes that you've made to the workflow, and then click OK .
3. If all errors and warnings have been resolved, the Activate workflow page appears. Select one of the
following options:
To activate this version of the workflow, click Activate the new version . When a workflow is active,
users can submit documents to it for processing.
If you don't want to activate this version, click Do not activate the new version . You can activate the
workflow later.
Configure workflow properties
4/2/2020 • 6 minutes to read • Edit Online

IMPORTANT
Dynamics 365 for Finance and Operations has evolved into purpose-built applications to help you manage specific business
functions. For more information about these changes, see Dynamics 365 Licensing Guide.

This topic explains how to configure the various properties of a workflow.


To configure the properties of a workflow, open the workflow in the workflow editor. Click the canvas of the
workflow editor, and then click Proper ties to open the Proper ties page. You can then use the following
procedures to configure the various properties of the workflow.

Name the workflow


Follow these steps to enter a name for the workflow.
1. In the left pane, click Basic Settings .
2. In the Name field, enter a unique name for the workflow. For example, if you create a purchase requisition
workflow for each country/region that you operate in, you can name the purchase requisition workflow
Purchase Requisitions Denmark or Purchase Requisitions Spain .

Specify the workflow owner


The workflow owner is the person who manages and maintains the workflow. Follow these steps to specify the
workflow owner.
1. In the left pane, click Basic Settings .
2. In the Owner list, select the name of the person who will manage the workflow.

Select an email template


Follow these steps to select the email template that is used to generate notification messages about the workflow.
1. In the left pane, click Basic Settings .
2. In the Email template for workflow notifications list, select the template.

Enter instructions for users


You can provide instructions to users who submit documents for processing and approval. These users are also
referred to as originators. For example, you're creating a purchase requisition workflow, and you enter instructions.
Those instructions can then be viewed by users who enter purchase requisitions on the Purchase requisitions
page. To view instructions, the originator clicks the icon in the workflow message bar. Follow these steps to enter
instructions for users.
1. In the left pane, click Basic Settings .
2. In the Submission instructions field, enter the instructions.
3. To personalize the instructions, you can insert placeholders. Placeholders are replaced with the appropriate
data when the instructions are shown to users. To insert a placeholder, follow these steps:
a. Click in the Submission instructions field to specify where the placeholder should appear.
b. Click Inser t placeholder .
c. In the list that appears, select the placeholder to insert.
d. Click Inser t .
4. To add translations of the instructions, follow these steps:
a. Click Translations .
b. On the page that appears, click Add .
c. In the list that appears, select the language that you will enter the text in.
d. In the Translated text field, enter the text.
e. To personalize the text, you can insert placeholders. For instructions about how to enter a placeholder,
see step 3.
f. Click Close .

Specify when this workflow is used through activation conditions


You can create multiple workflows that are based on the same workflow type. When you have multiple workflows
that are based on the same type, you must specify when each workflow is used using activation conditions. If
activation conditions are not met, then the default workflow is used. Similarly, if there is only one workflow
configuration defined for a workflow type, then that workflow configuration will be used regardless of the
activation conditions.
For example, you can

You might also like