Quantcast
Channel: Dynamics 365 Blog
Viewing all 1498 articles
Browse latest View live

Announcing Microsoft Dynamics 365 Product Insights – Now in preview

$
0
0
Im thrilled to introduce a new analytics application in the Microsoft Dynamics 365 portfolio which gives organizations real-time visibility into how customers use their products or services. Called Microsoft Dynamics 365 Product Insights, the application is for enterprises that design, build, manage, or service connected products and services with intermediated software. Dynamics 365 Product Insights helps you take actions in the moment to move from simply conducting transactions to delivering rich, ongoing customer relationships. You can sign up for the preview today.

Rising customer expectations creates the need to know your customers more deeply than ever before, and to respond to their needs more fully.

Innovations in customer service have introduced an entirely new dimension of connected experiences. Organizations are striving to make that experience as consistent as possible. Customers today want companies they do business with to get them and provide personalized service, whether theyre in a B2B or B2C world. They want fast responsiveness to any request, and for their orders to be shipped promptly. If they opt for self-service support, they want it to feel high-touch, almost human.
At Microsoft, we want to empower you to meet all these expectations, and more. Thats why were introducing Dynamics 365 Product Insights. To empower every organization to build the most comprehensive view of their customers and how customers are using their products.

Digitally transform the entire customer journey through the use of product telemetry.

Dynamics 365 Product Insights provides you with real-time visibility into your connected physical product and digital experiences by collecting signals and acquiring a live stream of data for real-time analysis. As a result, you can monitor and learn from customer interactions in the moment, and proactively deliver more personalized and responsive end-to-end customer experiences. With capabilities designed for business users, anyone in your organization can make data-informed decisions, without requiring specialized data science knowledge or coding skills. You can pursue new upsell, partnership, and subscription opportunities that drive revenue by adding connected data to products and services.

Microsoft Dynamics 365 Product Insights brings value to Microsoft Dynamics 365 Customer Insights to provide a more complete understanding of the customer.

At Microsoft, were always looking for ways to maximize the lifetime value of your customers. Earlier this year we introduced Dynamics 365 Customer Insights, which unifies your disparate data to provide a single, 360-degree view of customer data. Dynamics 365 Customer Insights reveals who your customers are and what they want. Dynamics 365 Product Insights shows how they use your products. When used together, they help you deliver a much more engaging experience as well as discover new ways to provide value.

Dynamics 365 Product Insights leverages the AI and machine-learning components of Azure AI with the customer data platform (CDP) elements of Dynamics 365 Customer Insights to help you better engage with your customers and transform your product development, sales, and support.

Learn more about Dynamics 365 Product Insights and try it for yourself by using our preview.
Screenshot of public preview view

Virtual Launch Event for a closer look at Dynamics 365 Product Insights

We invite you to attend our Virtual Launch Event on Thursday, October 10th streaming live at 8:00 am Pacific time, then on-demand, for a look at Dynamics 365 Product Insights and all the other new innovations coming to market. Be sure to register for updates and reminders leading up to the event.

The post Announcing Microsoft Dynamics 365 Product Insights – Now in preview appeared first on Dynamics 365 Blog.


Deprecating Basic Authentication for Outlook Integration in Business Central

$
0
0

As announced in the Microsoft Tech Community, Basic Authentication for Exchange Web Services (EWS) will be decommissioned in October 2020. Dynamics 365 Business Central integrates with Outlook and Exchange, and these features allow the option of Basic Authentication with EWS. In response to the change in EWS, beginning October 1, 2020, the option to use Basic Authentication with these features will no longer be available. We will decommission the option as part of the 2020 wave 1 release of Business Central.

Who is affected?

The Exchange team will stop supporting and fully decommission Basic Authentication for EWS to access Exchange Online. The change does not affect any Business Central customers using Azure Active Directory (Azure AD) authentication for Business Central, including Business Central Online. So the customers that the change does affect are those who:

  1. Use NavUserPassword, Windows, or UserName as the Business Central authentication method, and
  2. Use Exchange Online.

What features are affected?

Business Central features that use Exchange Web Services and support Basic Authentication include:

  • Deployment of the Business Inbox in Outlook.
    The option is currently available to deploy the Outlook add-in from Assisted Setup and from Office Add-in Management. If the change affects you, you will need to deploy the Business Inbox in Outlook manually. You can do this either for a single Exchange account for individual users, or using centralized deployment for administrators. Note that this affects only the deployment of the add-in. Using the add-in will continue to work following existing authentication and functionality.
  • Synchronization of contacts in Business Central with Contacts in Outlook.
    This feature requires authentication through EWS, and will no longer be available with Basic Authentication.
  • Invoicing for Microsoft Bookings in Business Central.
    Similar to synchronizing contacts, you can synchronize customers and items with Bookings. The bulk invoicing feature in Business Central for bookings requires synchronization of contacts and items through EWS. So the feature will no longer be available with Basic Authentication.

Next Steps

We understand that decommissioning features can have an impact on your business. If you have comments or suggestions on improving our support of these features, please provide your ideas at https://aka.ms/bcideas.

The post Deprecating Basic Authentication for Outlook Integration in Business Central appeared first on Dynamics 365 Blog.

The flowchart diagrams feature in Microsoft Dynamics Lifecycle Services (LCS) is planned for deprecation

$
0
0

The flowchart diagrams feature in Microsoft Dynamics Lifecycle Services (LCS) is planned for deprecation

 

Why is this being deprecated?

Based on user feedback, the flowchart diagrams feature does not generate detailed visual graphics. In addition, the activities shape options are limited, lacking both modern design and capability.This has resulted in low usage and adoption of the flowchart diagrams. We are not planning to invest more in this legacy design but are looking into creating a solution that better aligns with the mainstream tools.

When is this being deprecated?

The flowchart diagrams feature is expected to be removed by early February 2020, which is why we wanted to communicate this to our users now.

What will not be changed?

This deprecation is only for the flowchart component within BPM, it will not affect regular BPM usage with task recordings or Regression Suite Automation Tool (RSAT). Also, there is no impact on the Visio diagrams that have been uploaded. You will still have access to any unconnected Visio diagrams that you’ve uploaded, and you will be able to upload new Visio diagrams.

Whatwill be changed?

When flowcharts are deprecated, the following functionality will be removed:

  • Existing flowcharts will be unavailable for viewing or editing. Also, the shape properties associated with flowchart activities will be unavailable because the entire Flowchart tab will be removed.These flowcharts include the default flowcharts that are automatically generated, as well as customized flowcharts that are modified based on those default flowcharts.
    ToBeRemoved-Flowchart
  • The legacy fit/gap analysis feature will be unavailable. This means that a gap list will not be automatically created or available for export. Note that this feature has already been deprecated and replaced by Microsoft Azure DevOps integrations.
    ToBeRemoved-FitGapAnalysis
  • Version history of the flowchart will be unavailable.
    ToBeRemoved-VersionHistory

While the content of the process steps from the task recorder upload will remain available, this content will move to the new Recording tab next to the Overview tab. The Recording tab will include process steps, usage characteristics, and videos, if available. You will be able to edit the process steps, but a gap list will not be created for the changes.

What are the actions you can take now?

If you want to keep any of the BPM flowcharts, use the Export function to export them as Microsoft Visio files before this feature is deprecated.

Follow these steps to export a flowchart as a Visio file:

  1. Sign in to LCS, open a project, and then select Business process modeler.
  2. In the My libraries section, select a library to display the contents.
  3. Expand the library, and then select any library node that has a flowchart icon associated with it. The flowchart is shown.
  4. Right-click the flowchart to show the app bar, and then select Export.
  5. A download file will be created that you can open or save.

What happens if you do not export a flowchart that you intended to keep?

If you did not export the flowcharts that you intend to keep, they will not be accessible from the BPM libraries after the flowchart diagrams feature has been deprecated.

Please provide us with comments or questions.

The post The flowchart diagrams feature in Microsoft Dynamics Lifecycle Services (LCS) is planned for deprecation appeared first on Dynamics 365 Blog.

Dynamics 365 Customer Insights – October 2019 release notes

$
0
0

NEW FEATURES

  • PowerApps template connected to Customer Insights now available
  • Compounded segments
  • Compounded measures
  • Measures: Usability improvements
  • Option to manually override system match records (preview)
  • Guided learning in the demo

PowerApps template connected to Customer Insights now available

You can now bring your Customer Insights data into a power app using a pre-built template instead of starting from a blank canvas. To use the template, select the “Create” option from the menu at https://www.powerapps.com and search for the template “Customer lookup with Customer Insights – Tablet”.

See our documentation on the connector used by PowerApps here or see all PowerApps’s documentation here.

a picture of the Customer lookup with Customer Insights power app template with a customer selected

Compounded segments

In August,we updated that Segments also became entities. Today,we are excited to complement this feature with two important capabilities that enable you to build:

  1. A segment over an existing segment (segment-over-segment)
  2. A segment over an existing measure (segment-over-measure)

The first capability we added is a series of validations in theback-endthat prevent diverse potential system issues with compounding scenarios such as circular dependencies, etc.,so you can safely generate those advanced segments.

The second capability we added is a series of additions to the UI that ensure an optimal experience for segment-over-segment and segment-over-measure scenarios. Those include butarenot limited to:

  • Breakdown of the entities you can select for your segment, so you can easily identify the right entity. Currently we have 5 categories: User-entity, Profile-entity, Segment-entity, Measure-entity, and Intelligence-entity.
  • Notifications that show which segments depend on which segments and measures whenever you wish to edit or delete a segment or a measure that was used for creating a compounded segment.
  • Tooltip on the tile of a compounded segment that lists the segments and measures this segment is based on.

Compounded measures

Todaywearealso happy to announce that you can start compounding measures (creating a new measure over an existing measure).We recentlyadded validations on theback-endthat enable safe creation of such advanced measures.Tobuild a measure over an existing measure, choose one of your existing measures in the measure builder entity drop-down. Note,that if a given measure is updating, measures that are based on this measuremight not reflect the latest data. Also note that if you choose to delete a measurebased onwhatanother measure was createdwith, it canalsoaffect also the compounded measure.

Measures usability improvements

We implemented diverse usability improvements that unlock easier and clearer measure creation, whether it’s foracustomer measure,acustomer attribute, or a business measure. Those include but not limited to:

ImprovementWhat does it mean for you?
Moving the location forthemeasure type selection (the very first action needed as part of a measure definition), and adding text that explains all three types in briefNow you don’t need to make an early decision without prior understanding of the three measure types
Canceling a previously needed selection on the New measure panelQuicker measure definition and shorter time-to-value
Adding relationship names to the measure builder entity drop-downNow you can define the way you want to select a set of entities for your measure calculations
Canceling a previously needed selection on the Variable editor

Quicker measure definition and shorter time-to-value

 

Adding a new operator in the Variable editor: “To the power of” (^)New scenarios can be served via the editor
Adding on the Variable editor a link to a specific documentation sub-topic around variablesUsing the variable editor may be less intuitive for first time users. You can use this link to quickly understand this capability.
Adding a Status field to the measures table screenNow you can further understand if any given measure is active or being processednow

 

You can always use the following blog to review some of the new usability improvements we implemented for Segments:Dynamics 365 Customer Insights – June 2019 release notes.

Option to manually override system match records (preview)

On the Match page, we’ve added a new capability to specify custom match records to override the system identified match records. Use this option to specify records that should always match and records that should never match.

screenshot of Match order menu with Custom match button highlightedInstructions to perform a Custom match

Guided Learning in the demo

You can now see some of the end-to-end capabilities of Customer Insights in the demo environment. During your trial of Dynamics 365 Customer Insights, select “Demo” from the environment selector at the top of the screen. From the home page, select one of the three tours available to learn about Customer Insights features, how to unify your customer profiles, or how to track your business’ goals directly in the web app.

a picture of a help bubble on a customer

The post Dynamics 365 Customer Insights – October 2019 release notes appeared first on Dynamics 365 Blog.

Strategic investments in core HR drive operational excellence

$
0
0

Our vision for Dynamics 365 Talent is to balance operational excellence, organizational agility, and the employee experience to create a workplace where people and the business thrive.

To help our customers achieve this mission, were investing heavily in our core HR capabilities. Today were excited to announce that we have procured the rights to strategic solutions from FourVision and Elevate HR to accelerate HR operations innovation within leave and absence, time and attendance, and benefits.

Strengthening workforce practices for a connected workplace

Within today’s business climate of constant disruption, HR organizations must be agile to develop a workplace and workforce that can support the organizational mission. Core HR capabilities within Dynamics 365 Talent help organizations meet these objectives by centralizing workforce data and driving operational excellence across HR programs.

As people resources are the most expensive part of operating expenses, the imperatives of efficiency and cost reduction have always been a part of the HR mandate. However, when workforce practices are disconnected and lack a cohesive strategy across the company, the result is high turnover rates, longer hiring cycles, and lower employee engagement. This can impact the organization through a lack of product innovation, expensive operational errors, less satisfied customers, and ultimately, suboptimal financial results.

Continued innovation through strategic investments

The IP acquisitions announced today will support our customers throughout their transformation journey, breaking down people data silos and providing a centralized view of the workforce, as well as automating key tasks that may have historically been done on paper or using Microsoft Excel.

Weve acquired licensing rights to FourVisions HR solutions covering leave and absence, sickness management, and timesheet, as well as Elevate HRs benefits management capabilities that will be incorporated natively within Dynamics 365. These new capabilities will greatly enhance our ability to help HR teams drive operational excellence across these critical employee experiences:

Leave and absence

Managing leave and absence plans is critical for employers to ensure business coverage and provide time away benefits to their employees.Leave and absence plans vary greatly in the rules that govern eligibility, accruals, limits, usage, and carry over. This is further complicated by complex laws that many countries enforce on these types of entitlement programs.Our investment in this area will enable an enhanced set of capabilities for leave and absence plans, including programs such as family and sick leave to help HR better manage the numerous complex laws and bargaining agreements enforced on these types of entitlement programs.

Time and attendance

Tracking the actual attendance and time away of employees via timesheets is critical for many operational processes such as payroll, benefit, and pay eligibility. Our investment in this area will enable organizations to support the complex policies that vary greatly by country, industry, and organization for tracking time worked. Manufacturing, retail, and professional services organizations now have the ability for simple, quick, and accurate time entry integrated with leave and absence.

Benefits management

Organizations need to develop and manage highly competitive benefits programs to competitively attract and retain employees. Managing these programs requires highly configurable systems that also bring intuitive and modern self-service capabilities for employees to understand and manage the benefits available to them. This key investment will help our customers manage complex benefit programs, including tiered benefit rates, and eligibility.The new capabilities will have a configurable self-service enrollment process that is flexible to allow for benefit groups, hierarchies, flexible credits, and auto-enrollment.We will also be providing benefit managers with the ability to integrate employee and enrollment information with their benefit providers.

These new strategic investments will enable HR to operate with the dexterity and speed required by the rest of the enterprise and enable employees to self-serve their critical HR tasks. Optimizing HR operations also frees up teams to better advise, consult, and innovate with their C-suite stakeholders. We will be providing updates on when these new capabilities will be delivered in the product via our release plans and roadmap.

Core HR and Dynamics 365 Talent

As part of the Dynamics 365 portfolio, core HR helps power your people process through the Common Data Service and integrations with other Dynamics 365 applications such as Dynamics 365 Finance and Dynamics 365 Supply Chain Management.

Over the last year and a half, customers across retail, nonprofit, manufacturing, and professional services industries have been selecting the core HR capabilities within our Dynamics 365 Talent application to accelerate their digital transformation of human resources and our usage continues to double every six months. With these additional strategic investments, our customers will be able to tackle workforce transformation even faster.

We have four main pillars in our companypeople, clients, operations, and finance and people always come first. Deploying Talent was a strategic decision that fits within our long-term roadmap of accelerated global expansion, and its already starting to pay off. Weve seen Microsoft devote considerable resources to expand and enhance the product to make it a diverse human resources solution. These new investments are a great example of that effort and help position our team for future growth in the Multi-Site construction industry. – Chris Galazka, Vice President of Human Resources, SevanMulti-Site Solutions

Learn more

You can find more information on the complete set of core HR functionality that currently resides in Dynamics 365 Talent on our website.

 

The post Strategic investments in core HR drive operational excellence appeared first on Dynamics 365 Blog.

AI models for topic discovery in Customer Service Insights

$
0
0

As mentioned in our previous blog post Advanced AI topic clustering in Customer Service Insights, we’re publishing a series of “AI inside-out” blog posts to cover the key areas on how AI works in Dynamics 365 Customer Service Insights.

One of the key AI features that Customer Service Insights supports is automatically grouping similar support cases into topics. This is achieved with an AI methodology called clustering. In this post, we’ll look at how clustering works and explain the advantages of using clustering over some other techniques used for topic discovery.

What is clustering

At the very high-level, Customer Service Insights uses clustering as the way to discover topics. Clustering groups together objects (cases) within groups. The idea is that the objects within a group are more similar to each other than they are to objects in other groups.

Imagine each customer support case is represented by a point on a plane and the distance between these points represent how similar these cases are. Then our set of cases could look something like this:

An example of case data scattered in the data universe
Figure 1: An example of cases scattered in the data “universe”

In one of our next posts we will explain how the semantic similarity of text data in customer support cases is translated into the distance between points. For now, we will just say that we use a common technique called sentence embeddings (we will explain this terminology in future posts as well).

After applying clustering analysis to the above dataset, we could get the following 2 clusters:

Clustering cases into different groups
Figure 2: Clustering cases into different groups

Once we identify the clusters, each cluster forms a topic. All items in each of these two topics (the red and green circles) are relatively similar to other items in that cluster. When you click on a topic in Customer Service Insights reports, you can see the Topic Details Dashboard from which you can navigate to a list of cases that belong to a cluster.

Clustering algorithms

Clustering analysis is a well-known problem in unsupervised learning. There is no single correct clustering outcome, because there are multiple ways to group cases into clusters, depending on requirements. There are many clustering algorithms with different strengths and weakness (for more detailed taxonomy, see the Wikipedia article on cluster analysis).

Algorithms differ in approach to how they group items together, in the number and type of required parameters and in computation speed. For example, in perhaps the most famous clustering algorithm, K-Means clustering, takes only one parameter: the resulting number of clusters. This may be desired for some applications, but not acceptable for others.

In topic discovery application we dont know in advance the number of topics present in the data. We also want clusters with a significant number of cases and clusters where cases are very similar to each other. For these reasons, we chose to use another well-known clustering algorithm called DBSCAN as a foundation for our clustering algorithm.

In a nutshell, DBSCAN works by identifying contiguous regions with some minimal sample density and making each of these regions a separate cluster. More formally, the algorithm requires just two parameters to operate: distance threshold, and the minimal number of points within that threshold to meet a density requirement. DBSCAN does not take the number of expected clusters as a parameter, but instead infers this information from the data itself. This is an important property which allows us to discover the number of topics in the data and communicate this.

More problems we had to overcome

At the first glance clustering analysis appears to be a very appealing approach as it can generate insights from the customers data without any effort from the customer. And, indeed, it is a very powerful technology; however, to make it really work smoothly in an enterprise environment the Customer Service Insights team had to take a series of steps and implement a number of enhancements on top of text-book algorithms.

The three major areas where we have invested are:

  • Topic stability
  • The ability to receive feedback
  • Computational complexity (speed and cost)

Topic stability

If data changes (sometimes just a little) the clustering algorithm may result in a significantly different set of clusters.

Also, even if the clustering algorithm has discovered a set of topics which are semantically the same as the topics that were discovered two months ago, it may not be trivial to understand which topic relates to which because all the data items that form these topics have changed.

Stabilizing clusters with case data changes
Figure 3: Stabilizing clusters with case data changes

To solve the two problems above we had again to move from text representation into a vector space of sentence embeddings and analyze how the spaces from different topics overlap. With this approach we were able to solve problems for most of the practical situations. If the overlap is significant we keep the original cluster and all information associated with it (name, feedback), however if the overlap is small or nonexistent we can identify it as a new cluster.

Feedback

As humans, we almost always can see more than one way to group a set of cases into a logical set of topics, depending on personal preferences and business goals. Sometimes, after topics were discovered, the customer may want to change the topics according to their preferences. One of the great features of Customer Service Insights is the ability to collect feedback for the clustering algorithm. When a customer sees the result of clustering they can thumb up or thumb down items by clicking them.

Under the hood, the clustering algorithm finds items that are similar to the items for which the customer has provided feedback and uses that information to cluster these similar items as well. This way of providing feedback is very intuitive and powerful at the same time: with just a few clicks customers can make significant changes to the outcome of clustering and get the topics they want.

Computational complexity

The power of a clustering algorithm comes at a high cost of computational resources required to do the clustering. In computer science the computational cost of algorithms is traditionally described by O(N) notation. For example, if an algorithm is said to be O(N2) it means that the number of operations it takes to process a dataset of size N is proportional to N2. As another example, a typical algorithm that sorts an array of N elements is O(N*log(N)).

In other words, O(N) notation characterizes how fast the computational complexity grows with the growth of the dataset.

For the DBSCAN algorithm in a generic case, the complexity is O(N2). This is not a problem if we have just a few hundred or a thousand items to cluster. However, if we have a million cases to cluster the computation cost can be prohibitively high (it is 1 million times more consuming to cluster 1 million items than 1 thousand items).

To overcome this issue we had to implement a series of optimizations that essentially improve the complexity of our algorithm from O(N2) to approximately O(N) assuming the constant number of topics, making it possible to cluster millions of cases within a reasonable timeframe.

Why clustering is better than alternatives

Clustering is not the only way to discover topics. A famous approach to this problem is called topic modeling, which is used in a variety of applications; LDA (Latent Dirichlet Allocation) probably being the most well-known implementation of the topic model.

LDA is a mixture model, where each document probabilistically belongs to multiple topics at the same time. Topics, in turn, are defined not by a set of documents, but by a set of weights expressing how much each document belongs to each topic.

This approach has some advantages in terms of flexibility. If a case covers several topics, we dont have to artificially attribute it to just one topic, but can cover all the topics it actually represents.

In practice, some of the most important requirements for Customer Service Insights are transparency and interpretability. We want not just to discover high quality topics, but also allow customers to easily understand what these topics are. From that perspective, we found the hard clustering approach to be more powerful: we simply attribute each case to one of the topics and this way customers can simply see the cases that form a topic (as a bonus, they can also provide feedback!). That is why Customer Service Insights uses clustering instead of LDA.

Next steps

In this post we gave a high-level overview of how Customer Service Insights discovers and represents topics from customer support cases with clustering. In the next post, we will provide an overview of one of the key technologies that was just briefly mentioned in todays post: sentence embeddings.

 

As always, your feedback is critical for us to prioritize whats next. If you have any suggestions or ideas, please dont hesitate to submit an idea or vote on others ideas.

If you have questions about this support or any other features, were always available at the Customer Service Insights forum to help you.

 

To learn more, visit:

The post AI models for topic discovery in Customer Service Insights appeared first on Dynamics 365 Blog.

ISVs: Recertify your Dynamics 365 Applications apps by October 15

$
0
0

ISVs have until October 15th to recertifyDynamics 365applicationsin the AppSource marketplace.

One of our most important goals for the Business Applications ISV ecosystem is ensuring that every application in the AppSource marketplace is of high quality.Apps in the marketplace are software as a service (SaaS) based offerings. This is important for everyone involved customers need confidence that these applications will work as expected, ISVs want to show that their applications have been certified and approved, and Microsoft wants to stand behind the quality of the work our ISVs do.We all know what happens when this isnt the case broken implementations and outages affecting business performance, high support call costs, frustrated customers and lost profits.So, weve been hard at work with our ISVs reviewing and recertifying every existing application in our ecosystem and we will do so twice a year (linked to our release rhythm) to make sure there is compatibility with any platform changes.

Were certifying new and resubmitted applications into AppSource every day, and weve staffed up our technical teams to accommodate the load.Many applications have been submitted in advance of the October 15th recertification deadline. This applies to apps that use or extend the following Business Application workloads: Dynamics 365 Customer Service*, Field Service*, Finance and Operations, Marketing*, Retail, Sales*, and Talent. The indicated (*) applications are also expected to use the unified interface. At this time, the program does not include Business Central. Applications that do not go through the certification process will be removed from AppSource.

Please note that applications in the OCP catalog will need to submit their applications through AppSource and go through the full certification process to continue being in OCP go-to-market materials and visible to the Microsoft field and partner teams.

Here are some of the key resources you may find helpful:

If you have not yet submitted your application for recertification, review the recertification and update policy and submit your app before the October 15th deadline to avoid having it delisted. Thanks for the partnership as we drive together toward this key goal high quality applications and experiences for every customer. Were in it together.

Cheers,

Guggs

The post ISVs: Recertify your Dynamics 365 Applications apps by October 15 appeared first on Dynamics 365 Blog.

What’s new in Dynamics 365 Resource Scheduling Optimization (version 3.0.19263.1)

$
0
0

Applies to: Dynamics 365 version 9.0 and higher, Field Service solution version 7.x or 8.x

We are excited to announce the General Availability of Resource Scheduling Optimization v3.0 update release (3.0.19263.1). This release includes a number of new features including:

  • Resource role matching
  • New resource preference: Must Choose From
  • As soon as possible (ASAP) objective
  • Improved user experience when cancelling requirements
  • Ability to update travel time for locked bookings

See more details below.

Support resource role matching constraint

Organizations can now define a resource role for requirements and the optimizer will assign bookings to resources with the matching role, while simultaneously meeting other defined constraints.

Example: Resource Brady Hannon has ‘Robotics Engineer’ and ‘Robotics Technician’ roles

ResourceRole

This resource requirement requires someone who is a ‘Robotics Technician’

a screenshot of a cell phone

By simply adding the new ‘Meets Required Roles’ constraint to your optimization goal, you can ensure RSO will assign the requirement to only resources with that role, in this case scheduling requirement ‘01957’ to Brady Hannon.

Meet Required Role

 

Support Must Choose From resource

Sometimes, businesses may have special commitments with their customers to always dispatch a specific resource, perhaps one they have an existing relationship with. With the new release, RSO will assign bookings to the resource in the Must Choose Resource list, while also meeting other defined constraints.

Example: In this requirement, ‘Jorge Gault’ is added as a resource preference with the new ‘Must choose from’ detail for requirement ‘00173’

a screenshot of a cell phone

For RSO, the optimization goal includes the ‘Meets Resource Preferences’ constraint.

a screenshot of a cell phone

With these configurations RSO will assign requirement ‘00173’ to ‘Jorge Gault’.

a screenshot of a cell phone

In addition, you can add multiple resources in the Must choose from, and RSO will assign this requirement to one of them.

a screenshot of a cell phone

Support As Soon As Possible optimization objective

Occasionally, there may be more resource capacity than there is demand for resources (for example, total time of work orders is less than total available time of resources). In these circumstances, there is a business decision about whether to fully book some resources or leave resources with some capacity as a contingency for emergency or unplanned work.

In order to effectively front load optimized bookings, add the new ‘Schedule As Soon As Possible’ objective into your Optimization Goal in the corresponding order:

a screenshot of a cell phone

Improved user experience when cancel Resource Requirement

Before this release, when a user ‘Canceled’ a requirement where Scheduling Method is set to ‘Optimize’, a system dialog appears preventing changes.

a screenshot of a cell phone

With this latest release, the user is able to cancel requirements or work orders without an error. When RSO runs, it will set requirement in ‘Canceled’ status as an invalid record with the corresponding operation reason.

a screenshot of a cell phone

Update travel time for locked bookings

Before this release, if all bookings defined in the optimization scope are locked (ineligible), the RSO optimization request will be canceled. With this release, RSO will update travel time as needed instead of canceling optimization for all locked bookings

UpdateTravelTime

Other Enhancements

Numerous bug fixes and performance enhancements as part of continious engineering fundamental improvements

Known Issue

After upgrade, please re-publish optimization schedules if your optimization request failed with below error message :

The INSERT statement conflicted with the FOREIGN KEY constraint “FK_dbo.Optimizations_dbo.RoutingProfiles_ProfileId”. The conflict occurred in database “rsodb-prod-20191003-3fcaeca414204856b41b1b7ee54e0366”, table “dbo.RoutingProfiles”, column ‘Id’.
The statement has been terminated.

 

For More Information

 

Feifei Qiu

Program Manager

Dynamics 365 | Field Service Team

The post What’s new in Dynamics 365 Resource Scheduling Optimization (version 3.0.19263.1) appeared first on Dynamics 365 Blog.


Extending Dynamics 365 Customer Insights with Azure ML-based custom models

$
0
0

AI-enabled Dynamics 365 Customer Insights helps unifying data from multiple sources within an organization and generates a single, end-to-end view of the customer. This 360-degree customer view can be used to discover insights to optimize customer engagement and drive personalized customer experiences.

This unified data is an ideal source to build machine learning (ML) models that can generate additional business insights. Customer Insights provides seamless integration with Azure ML (AML) to bring your own custom models to work on this integrated data. In this blog, we will share a step-by-step guide on how to do that.

As a prerequisite to following these steps, you need to have an active Azure subscription.

Get started: Export data from Dynamics 365 Customer Insights to Azure blob storage

  1. To access data in AML Studio, export the data from Customer Insights by opening Admin > Export destinations.Navigation item for export destinations
  2. A screen is presented with the option to “Add destination” for the export on the top bar.Customer Insights Data Export Add Destinations
  3. Select Add destination, and in the dialogue, select the type.
    Customer Insights Add Destination Options
  4. Select the type, and provide the account details in the dialog. (For this scenario, we will use Azure Blob storage.)Export Destinations Blob Setup
  5. After entering the details, selectNext to see list of entities that are available for export. This will also include the system-generated entities and custom measures. Select individual entities or all of the entities for export.
    Export Destinations Select Entities
  6. Select Save to finish the export setup.

Set up AML Studio

  1. In order to setup the AML Studio, visit www.portal.azure.com, and sign in with your credentials.
  2. Select the option + Create a resource at the top of the left navigation.Azure Portal New Resource
  3. Search the marketplace for machine learning studio in the search bar, and select Machine Learning Studio Workspace from the suggested results.Azure Machine Learning Studio
  4. On the Machine Learning Studio Workspace, selectCreate.Azure Machine Learning Studio Workspace
  5. Enter the required details to create the resource. Select the Web service plan pricing tier based on the size of data you will be importing from Customer Insights. For best performance, select the Location that is geographically closest to you.Azure ML Studio Workspace Setup
  6. After creating the resource, the Machine Learing Studio workspace dashboard appears.Azure ML Studio Dashboard
  7. Select Launch Machine Learning Studioto open the AML studio user interface.

Work with AML Studio

You can now create an new experiment from scratch, or you can import an existing experiment from the gallery. As part of Customer Insights, Microsoft provides experiments for three standard scenarios:

  1. Churn prediction
  2. Product recommendation
  3. Customer lifetime value

These experiments can be imported from the gallery. Below is a screenshot of the AML Studio when launched for the first time.

Azure ML Create New Experiment

Whether creating a brand new experiment or using an experiment template from the gallery, you will need to import the Customer Insights data that is exported to blob storage into the AML Studio experiment. AML Studio provides standard import blocks for this purpose and the image below is a snapshot of customizing the import block. Use the wizard or directly provide the location and credentials of the Azure blob storage with your Customer Insights data. Once this is set up, the data from Customer Insights will be accessible in the AML Studio experiment.

Azure ML Studio Canvas

After importing the data, a data scientist can build a custom processing pipeline in AML Studio for cleaning the data, extracting features, and training a suitable model. The model performance can be evaluated and optimized. Once a model is ready, a Predictive Web Service can be automatically created from the training experiment.

Azure ML Studio Setup Webservice

This option imports the trained model and the featurization pipeline from the training experiment to a predictive service, which can take another set of input data with same schema as used in the training experiment to make the predictions.

Once the predictive web service experiment is successful, it can be deployed for auto scheduling. The following figure shows this option. In order for the deployed web service to work with Customer Insights, please choose the Deploy Web Service [New] Preview option. For more details, seeDeploy an Azure Machine Learning Studio web service.

Azure ML Studio Deploy Webservice

Integrating Dynamics 365 Customer Insights

In order to make these predictions available in Customer Insights, you need to export these predictions along with the customer IDs to the same blob location, and then Customer Insights can import it. The predictive web service can be scheduled to run at predetermined intervals to auto update the scores. To find more information about managing the deployed web service, see Manage a web service using the Azure Machine Learning Studio Web Services portal. The updated scores can then automatically show up in the Customer Insights’ dashboards. We are working on making the integration with AML web service a part of the Customer Insights app itself, and we will update when the feature is publicly available.

More information

Read ourTeam blogto stay up-to-date with the latest features and ongoing innovation.

Engage with us on ourCommunity siteand provide ideas and feedback on producthere.

 

The post Extending Dynamics 365 Customer Insights with Azure ML-based custom models appeared first on Dynamics 365 Blog.

The Dynamics 365 Marketing 2019 release wave 2 update is rolling out starting now!

$
0
0

The Dynamics 365 Marketing 2019 release wave 2 update is rolling out starting now! As usual, this release provides many performance improvements, reliability improvements, and bug fixes. It also includes the final versions of all features that were released for early access in August and September, plus a few new ones.

We’ll be rolling out the update on a region-by-region basis, and we expect them to be available to all regions by the last week of October 2019.

For ongoing information about recently released and planned new features, keep an eye on the Dynamics 365 and Power Platform Release Plan.

How to get the update

Dynamics 365 Marketing 2019 release wave 2 update is ready for use on all types of environments. We recommend updating all Marketing instances, including production instances, as soon as you can. As soon as the update is available in your region, youll be able to see and apply it as described inKeep Marketing up to date. You must manually update each instance.

For instances previously enabled for early access, this update will remove the early-access flag (thereby reverting them to standard instances) and apply the final versions of all available features.

New features added for October

In addition to finalizing all early-access features, Dynamics 365 Marketing 2019 release wave 2 also introduces a few new features.

New product branding

Starting now, weve shortened the name of Dynamics 365 for Marketing to Dynamics 365 Marketing. Also, we no longer refer to the platform that supports the Sales, Marketing, and Service apps (among others) as Customer Engagement; instead, well refer to this as the Common Data Service platform. Youll also notice new app icons and a unified graphical identity across all Dynamics 365 apps.

New logos

Full support for business units in Marketing

Large organizations with multiple customer bases often use multiple business units to manage their marketing data sets and campaigns. On top of these, a parent business unit often manages centralized reporting or creates templates to be propagated across all the child business units. The Common Data Service platform supports this model, and the Marketing app now supports this during all aspects of marketing execution, including: access to contact records, display of segment members, access to contact insights, availability of email templates, and more.

For more information, see Use business units to control access to Marketing records in the online help.

New save as segment buttons for blocked emails and stopped contacts

You could already generate segments that find contacts who produced various results on a selected customer journey tile, but now you can also generate segments that find contacts that were stopped or blocked during a specific journey.

To use this new feature, open a journey, go to its Insights tab and then select Incomplete journeys from the side-panel navigator. Select any of the reasons listed under Stopped contacts or Blocked emails and then select the Save as segment button

Save as segment button

. This generates a dynamic segment that finds all contacts who were stopped or blocked on that journey for that reason.

Incomplete journeys

For more information, see Generate dynamic interaction segments from customer journey results in the online help.

View milestones in the customer journey life cycle

Customer journeys pass through many states while you create, edit, and run them. You can now view a full history of these milestones for any customer journey. To see them, open any live or previously live journey, go to its Designer tab, make sure no tile is selected, and then view the Data panel.

Journey events

For more information, see Use customer journeys to create automated campaigns.

New design and design options for form-submission feedback dialog boxes

Marketing forms provide feedback to let your contacts know whether they have successfully submitted the form or if a submission error has occurred. Though this basic feature was already part of the product, we have improved the overall design and added a few new design options for the 2019 release wave 2 update. With the new version:

  • Users can now specify custom images for the submission-success and submission-failure dialog boxes.
  • Submission dialog boxes now use a single-window (CSS-based) mechanism rather than a browser pop-up window. The new dialog boxes work more smoothly and are more attractive than in the previous version.

The following image shows the new success dialog, where users can customize both the graphic (the green circle shown here is the default) and the message.

Form-submit dialog

For more information, see The form element for marketing pages.

Improved instance management and administration

Weve made it much easier to work with Marketing instances by removing the need to stop live records and manually uninstall Marketing when doing many instance operations. However, some special steps are still necessary for other types of operations, so be sure to review the updated documentation.

For more information, see Manage your Dynamics 365 Marketing instances in the online help.

New email language setting to control the language displayed for option sets in dynamic content

Option-set fields in the Dynamics 365 database can store display values in multiple languages. You can now define the language for each email message to ensure that dynamic data drawn from option-set fields will show the same language as the rest of the email.

For more information, see Set the email language in the online help.

Previous early-access features are now generally available

The features listed in this section were released for early access in August and September but are now generally available to all updated instances. If you never joined early access, then these are the great new features that you can expect to see when you apply the 2019 release wave 2 update. We already blogged about these in August and September, so well just summarize the features here, provide links, and point out any updates that weve added since early access:

  • Customer Insights integration
    The Customer Insights app for Dynamics 365 applies artificial intelligence to analyze rich pools of customer data collected from across other apps like Dynamics 365 for Sales, Service, and Marketing. Now you can export segments created in Customer Insights to create matching segments in Dynamics 365 for Marketing. Since the early-access release, weve improved the way segments in Dynamics 365 Marketing show details for segments exported from Customer Insights. For more information, see Use segments from Dynamics 365 Customer Insights with Dynamics 365 Marketing in the online help and the August release blog post.
  • Email A/B testing
    Use email A/B testing to test two slightly different email designs on a small part of a target segment to find out which design is more successful, and then automatically send the winning design to the rest of the segment. Since releasing the early-access version in August, weve added the ability to test all body elements, track the lifecycle of each test, and replace version A with version B after a test is over. Weve also improved the test-result display and introduced many functional improvements. For more information, see Design and run A/B tests on your email designs in the online help, the August release blog post and the September release blog post.
  • Multi-column layouts and formatting for all content designers
    Create multi-column layouts for emails, marketing pages, and marketing forms simply by dragging section elements onto your design. Each section element can now take on any of several different column layouts, plus set formatting options like border, padding, marketing, and background color. In early access, only emails were supported by this feature, and fewer formatting options were available. For more information, see Design your digital content and Section (layout) elements in the online help, the August release blog post and the September release blog post.
  • Easy subscription lists
    Create marketing lists that are preconfigured to work as subscription lists for Dynamics 365 Marketing with just a few clicks, right inside the Marketing app. This feature hasnt changed since the early access release. For more information, see Create a subscription list in the online help and the August release blog post.
  • Improved segmentation experience
    The early-access release introduced a new and much more intuitive segmentation designer. Since the early-access release, weve enabled the new UI to display legacy segments in the graphical designer, which means the designer also now supports the TRAVERSE operator. Weve also added a new display option so users can choose to view the segment designer in tree view or the new natural-language view. For more information, see Working with segments, and its related topics, in the online help and the August release blog post.
  • Support for adding a custom approvals feature
    Dynamics 365 Marketing provides an infrastructure with extensibility features that offer new possibilities for developers, and one way to take advantage of this new extensibility is to create an approvals feature, possibly including integration with Microsoft Flow. This feature hasnt changed since the early access release. For more information, see Build an approvals feature in the online help and the August release blog post.
  • View details about failed form submissions
    Every now and then, errors in form design or changes to system settings can cause form submissions to fail some or all of the time. Previously, failed submission were usually lost, but now the system will store what it can of erroneous submissions so you can examine them later and possibly recover key information from them. This feature hasnt changed since the early access release. For more information, see View and recover from failed form submissions in the online help and the August release blog post.

Bug fixes included with the 2019 release wave 2 update

The Dynamics 365 Marketing 2019 release wave 2 update fixes the following bugs on all instances:

  • In customer journey tiles, the default tile name now updates to match new email, page, or activity names for these and other records created using the New button on the tiles Properties
  • A label for one of the fields that helps identify templates in the template gallery for marketing pages was changed from Market type to Type.
  • All email, page, and form templates now include default height and width settings for all images
  • Confirmation emails are no longer sent to contacts who join a subscription list they already belong to.
  • The form-capture feature now correctly captures forms on pages that include multiple whitespace characters in the <body> tag of the page.
  • Leads generated by a captured form now correctly store values for option-set fields.
  • Previews for live emails with A/B testing enabled can now display both version B and version A.
  • Email A/B tests that are in-progress or finished can now display both version B and version A.
  • The form-capture feature now correctly receives submissions from forms that use a jQuery submit command to submit the form.
  • The form-capture feature now captures form fields with <input type = hidden>.
  • The form-capture feature now handles drop-down fields more reliably. When a Dynamics 365 Marketing user is setting up the form, the user is prompted to map each drop-down list option to a specific option-set value in the Dynamics 365 Marketing database, thus ensuring all possible input values are valid.
  • We fixed a minor issue that prevented a small number of organizations from upgrading successfully.
  • A/B testing now works for a test with a 20%/20% distribution of versions delivered to a segment of 5 contacts.

 

The post The Dynamics 365 Marketing 2019 release wave 2 update is rolling out starting now! appeared first on Dynamics 365 Blog.

Examples of extending Dynamics 365 Customer Insights with Azure ML

$
0
0

Dynamics 365 Customer Insights offers a platform to integrate customer data from various sourcesinto one unified view.This unified data presents a perfect starting point for building custom machine learning(ML)models to generate key business metrics. In an earlier blog, we saw how to bring custom ML models from Azure Machine Learning (AML) Studio to work with the unified data from Customer Insights. To accelerate the initial model development, we offer AML Studiobased model pipelines for three frequently encountered use cases:

  1. Churnanalysis
  2. Customerlifetimevalue (CLTV) prediction
  3. Productrecommendations

We will go over these models inmoredetail in this blog.

Hotel Scenario

We will use the Contoso Hotelscenario for the models discussed in this article.AttheContoso Hotel,CRM data is gatheredandconsists of hotel stay activity. In this data, the information about the dates of stay are logged for each registered customer. Along with this, the data also contains information about the booking, room types, details of spend,etc.The data spans aboutfouryears from January 2014 to January 2018.

The second set of datais from customer profiles. These profiles contain personal information for each customer since they are registered with the hotel or since their first stay. This information includes name, birth date, postal address, gender, phone number,etc.

The third set of data includes useof other services offered by the hotel. For example, the use of spa, laundryservices,WiFi, courier,etc. This information is also logged for each registered customer. Typical use of services is linked with the stay, but it is not required;in some cases, the services can be used by customers without actually staying in the hotel.

Churn Analysis

Churn analysis can be performed in different situations (e.g., retail churn, subscription churn, service churn, etc.). In this example, were going to look at service churn, specifically in the context of hotel servicesas described above.Although it may not cover allofthe scenarios explicitly, the model will provide insights into all the steps in building a custom model using Azure ML andCustomer Insights. It will also provide a working example of an endtoend model pipeline that can be used as a starting point for any other type of churn model.

Definition of Churn

The definition of churn can differ significantly based on the scenario. In this case of hotel activity, our definition isif a customerhas not visitedthe hotel inthe pastyear,s/he should belabeled as churned.

As described inourprevious blog,the AML Studio experiment can be imported fromthegallery.Below is a screenshot of the import blocks that read these tables from the Azure blob storage location.

Import data for Churn Model

Featurization

Based on the definition of churn,we first identify the raw features that will have some causal effect or impact on the label. Then, we further process these raw features into numerical features that can be used with ML models.Data integration happens in Customer Insights so as a result, joining these tables can be done by simply using the Customer ID created byCustomer Insights.

Featurization for Churn Model

The featurization for building the model for churn analysiscan be a little tricky. The problem is typically cast as a static problem like image classification; however, the underlying data is not static like a set of images. The data is a function of time with new hotel activity recorded on daily basis. Hence, featurization should take this into consideration and generate static features from the dynamic data. In this case, we generate multiple features from hotel activity with a sliding window ofoneyear. We also expand the categorical features like room type, booking type, etc. into separate features using the technique of one-hot encoding.

The final list of features isshown below:

NumberOriginal_ColumnDerived Features
1Room TypeRoomTypeLargeCount,RoomTypeSmallCount
2Booking TypeBookingTypeOnlineCount,BookingTypePhoneCallCount
3Travel CategoryTravelCategoryBusinessCount,TravelCategoryLeisureCount
4Dollars SpentTotalDollarSpent
5Check-in and Checkout datesStayDayCount, StayDayCount2016, StayDayCount2015, StayDayCount2014,StayCount, StayCount2016. StayCount2015, StayCount2014
6Service UsageUsageTenure,ConciergeUsage,CourierUsage,DryCleaningUsage,GymUsage,PhoneUsage,RestaurantUsage,SpaUsage,TelevisionUsage,WifiUsage

Model selection

Once the feature set is ready, the next step is to choosetheoptimal algorithm to use. In this case, we have majority of features coming out of categorical features.Typically,in such situations,decisiontreebased models perform well. In case of purely numerical features,neural networks could be a better choice. Support vector machine (SVM) also is a good candidate in such situations; however, it needs quite a bit of tuning to extract the best performance. We choose gradient boosted decision tree asthefirst model of choicefollowed by SVM asthesecond model. AML Studio lets you performA/B testing of two models to compare and contrast. To make better use of this, its always beneficial to start with two models rather than one.

The following image shows the model training and evaluation pipeline from AML Studio.

Train-Score-Evaluate for Churn Model

We also apply atechniquecalled “Permutation Feature Importance. This is a crucial aspect of model optimization. Allofthe built-in models present a black box model with little to no insight into the impact of any specific feature on the final prediction. The feature importance calculator uses a custom algorithmto compute the influence of individual features on the final outcome for a specific model. The feature importances are normalized between +1 to -1. The negative influences essentially mean that the corresponding features have counter intuitive influenceon the outcomeand should be removed from the model. Higher positive influence indicates that the feature is contributing heavily towards the prediction. These values should not be confused with correlation coefficients as they are completely different metrics. For more details, see Permutation Feature Importance.

Completing the integration withCustomer Insights

Once the training experiment is complete and the resulting metrics are acceptable, we can create a predictive service as described in the previous blog.Make sure the predictions are accompanied with the customer IDs fromCustomer Insights. After that the predictions can be exported to the same blob storage and ingested back intoCustomer Insights.

The entire churn experiment is available in the Azure ML gallery.

Customer lifetime value (CLTV)prediction

The customer lifetime value (CLTV) calculation is one of the key metrics that a business can use to assessand segmentits customers. Forthehotelbusiness, it iscriticalto know their customers.For instance, understanding the differencebetweencustomers thatbring more valueversusthe customers that dontcan provide crucial information to hotel management. This type of segmentation can help hotel management assess which features they need to focusonand improve to satisfy their high paying customersagainstfeaturesthatarelessimportant. These decisions can have a direct impact on sales and earnings. In this example,we will define the CLTV as the cumulative amount brought in by the customer in the designated time frame.

Definition of CLTV

In this context we are going to define the CLTV of a customer as of today, as the total dollar amount the customer is expected to spend in the next365 days or 1 calendar year. We are going to use the past three years’ worthof data for all customers to predict this value.

Featurization

In this case, featurization is going to be quite similar to the churn scenario; however, the label and predicted values are different than defined above.

Model selection and training

Predicting the CLTV is a regression problem as the predicted value is a positive valued continuous variable. Based on the feature properties, we select Boosted Decision Tree Regression as one algorithm and Neural Network Regression as another algorithm to train the model.Train-Score-Evaluate for CLTV Model

Completing the integration with Customer Insights

As described in the churn model, the output of the CLTV model is tied with Customer IDs and ingested back into Customer Insights for further analysis.

The entire CLTV experiment is available in the Azure ML gallery.

Productrecommendation or Next Best Action

Product recommendation in the context of the hotel scenario is interpreted as recommending services offered by the hotel to the customers. The objective is to choose the appropriate services for customers so that their usage is maximized. The problem is similar to the problem of movie recommendations for video streaming service users.

Definition of Product Recommendation or Next Best Action

We define the goal as maximizing the dollar amount of service usages by offering the best matching services to hotel customers according to their interest.

Featurizationand Training

Similar to the churn model, we are joining the hotelServiceCustomerIDwithCustomerIDin order to build recommendations consistently perCustomerID.

Featurization for Next Best Action Model

As described in the beginning, the data is sourced from threedifferent entities and features are derived from them. The featurization for the problem of recommendation is different compared to churn or CLTV scenarios. The recommendation model needs input data in the form of threesets of features. One set of features represents the past usage of services by the customers, and thesecondset representsthe details of each service itself and the third set represents the details of the customers.

We use the algorithm called Matchbox Recommender to train the recommendation model.

Matchbox Recommender Model

From the figure above, thethreeinput ports for the Train Matchbox Recommender model takes in the training service usage data, customer description (optional), and service description.There arethreedifferent ways of scoring the model. Oneis for model evaluation where an NDCG score is computed to evaluate the rated items rank. In this experiment, we have NDCG score as 0.97.The other two options are scoring the model on the entire recommendable service catalog or scoring only on items that users have not used before depending on the business requirement.

Looking further on the distributions of the recommendations on the entire service catalog, we notice thatphone,WiFi, andcourier are the top services to be recommended. This is consistent with what we found from the distributions of the service consumption data:

NBA Model Insights into Features

The entire product recommendation experiment can be accessed in Azure ML gallery.

More information

Readour Team blog to stay up-to-date with the latest features and ongoing innovation.

Engagewith us on our Community siteand provide ideas and feedback on the product.

The post Examples of extending Dynamics 365 Customer Insights with Azure ML appeared first on Dynamics 365 Blog.

IDMF – Configuration Setting – UpdateMasterSyncTablesPostMetaDataSync

$
0
0

Consider a scenario where you are using IDMF 2.0, and you find that after each IDMF Metadata sync the Master table list gets refreshed and you then have to manually sort out the list each time by unchecking/checking tables as Master tables. Well, there’s a simple way to change that default behaviour:

1. Update AXDataManagementSchedulerService.exe.config file and set UpdateMasterSyncTablesPostMetaDataSync = false
2. Restart the IDMF service

Dynamics 365 for Finance and Operations – Things to consider when exporting data to BYOD

$
0
0

I’ve worked on some cases related to Data Management exports to BYOD recently and I thought I would share some observations on things you should consider when exporting data to BYOD. This blog post is not meant to serve as a comprehensive document outlining how the process works, but rather to raise awareness of the sorts of factors that may impact how consistently successful your exports to BYOD will be. Much of this is common sense and non-technical, and it is valid for other data movement scenarios using different technologies.

If you are experiencing data exports failing or only partially succeeding on a recurring basis then I suggest that you look at the following in your efforts to try to track down a cause and resolve such issues:

EXAMPLE SCENARIO

You are regularly exporting data from Dynamics 365 for Finance and Operations to a BYOD Azure SQL Database

Bring your own database (BYOD)
https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/analytics/export-entities-to-your-own-database

1) What kind of error pattern are you seeing?

Do the exports always fail or is the problem intermittent?
Are you seeing this across a bunch of different exports or is a specific export failing very often?
Does there appear to be any date/time pattern to the export failures?
Do the failures seem to occur only for exports where a lot of data is being pushed to the BYOD Azure SQL Database?

2) How are your exports configured?

Are you exporting relatively static data or dynamic (e.g. transactional) data?
How many entities are you trying to export in one go? Might it be possible to split the workload into several more granular exports?
Are you taking full advantage of change tracking and INCREMENTAL PUSH where possible and appropriate?
Are you doing regular FULL PUSH of data that continues to grow in size each time it is exported?

3) Where is your BYOD Azure SQL Database and what service tier is it running on?

If you are pushing data to a different data centre or your BYOD service tier is “too low” resulting in throttling of deletes and inserts then that could lead to timeouts.

Single database: Storage sizes and performance levels
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-dtu-resource-limits-single-databases#single-database-storage-sizes-and-performance-levels

For optimal performance you should ideally be running your BYOD Azure SQL Database on a Premium service tier, i.e. P2 or higher.

Setup for sales tax which should be used when ‘Price include sales tax’ is enabled on a Store

$
0
0

Hello,

If you have any issues regarding sales tax (net amount) rounding between Retail store transactions and posted sales invoice voucher transactions, you should check at first Sales tax setup.

The recommended setup for sales tax which should be used when ‘Price include sales tax’ is enabled on a Store.

  1. ‘Marginal base’ to set up as ‘Net amount per line’ for Sales tax code:

Tab Calculation:

  • Origin= Percentage of net amount
  • Marginal base= Net amount per line
  • Calculation method= Whole amount

2. ‘Rounding by’ recommended to have ‘Sales tax codes’ for Sales tax group:

It is very important to know that once you did some changes on sales tax setup in HQ, you should run Job 1080 (Tax) and then be sure that Retail server is restarted, because changed tax setup might be cached (for immediate affect, otherwise Retail Server pool is refreshed in 30 min).

With that setup you should always get the same calculation of all amounts (Net amount and Sales tax amount) in POS/Retail and in HQ transactions.

Also a suggestion to change sales tax setup only after working hours when nobody is working to be sure that the changes are done correctly, distributed to POS and there are no differences between HQ and POS or their transactions.

The same is valid for AX2012 and D365.

 

Best regards,

Ramune Peckyte

Microsoft EMEA Customer Services and Support

PL – Retail – Advance invoices for prepayments in retail

$
0
0

Hello,

The hotfix KB 3034468 released for this feature ‘Advance invoices for prepayments in retail ‘. The link to LCS:

https://fix.lcs.dynamics.com/issue/results/?q=3034468

This feature is based on the regular Polish functionality of advance invoices in AX and extends the functionality to process advance invoices when a Customer order Deposit is registered in POS or a final Payment for a Customer order is processed. The following is a high-level overview of the process:

There are only two setup steps required to enable and use this functionality in POS (in addition to the regular setup of advance invoices in AX):

  1. Set Retail parameters \ Customer orders \ Create advance invoice for deposit to enable the functionality;
  2. Configure a windows printer in the Hardware profile of POS to be able to print advance invoices from POS.

The feature does not change user scenarios in POS.

 

Best regards,

Ramune Peckyte

Microsoft EMEA Customer Services and Support


How to reset approved expense report document back to draft status in Dynamics 365 for Finance and Operations

$
0
0

How to reset approved expense report document back to draft status in Dynamics 365 for Finance and Operations

New functionality is added to provide the ability to reset approved expense report document back to draft status.

This is available in App8.0+ version. There was a hotfix for App7.2 and App7.3. Here is the recommendation for different versions:

App7.2 customers to install KB4462583

https://fix.lcs.dynamics.com/Issue/Details?kb=4462583&bugId=242339&qc=f4bd88056d3bf176b2b3c366d282b73fd6e3e0bb00c7b3e0b86ab96096b89cde

App7.3 customers to install KB4462581

https://fix.lcs.dynamics.com/Issue/Details?kb=4462581&bugId=242340&qc=cc0e073c673649b61ece3c6c04146ef87125e8326502f9754751a6dfe16ffc69

Go to Expense management > Periodic tasks > Reset expense document status.

Select the expense report(s) that are stuck and click on “Update to draft” button.

Once the operation is completed, go to the expense report(s) and validate the status to be draft.

 

Potential issues when installing 8.0.4 on the Tier II sandbox environment

$
0
0

When installing cumulative update on 8.0.4 on Tier II sandbox environment you may experience the error:

“The running command stopped because the preference variable “ErrorActionPreference” or common parameter is set to Stop: Unable to resolve dependency ‘dynamicsax-applicationfoundationformadaptor’.”

This due to the fact that there is a X++ code released in Demodatasuite model where we changed the class SalesOrdersCleanup.

On Tier II there are no Demodatasuite model or any related models installed and this is why we are getting error. The way to go is to exclude the model from the build definition https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/dev-tools/exclude-test-packages

Inspecting a D365FO Meta Data Hotfix Content

$
0
0
In this article, you will find detailed instructions, on how to inspect content of a D365FO meta data hotfix. The article describes a manual approach as well as running PowerShell scripts to extract the underlying dependencies of hotfixes and affected objects. All descriptions are in attached “Inspecting a D365FO Meta Data Hotfix Content.docx” document. Inspecting-a-D365FO-Meta-Data-Hotfix-Content2... Read more

Extending the Extended Logon functionality for MPOS and Cloud POS

$
0
0

Included in MPOS and CPOS are two methods for extended logon functionality: logging in by scanning a barcode or by swiping a card with a magnetic stripe reader (MSR). Setup for these are described here: https://docs.microsoft.com/en-us/dynamics365/unified-operations/retail/extended-logon.

One shortcoming of the out-of-the-box functionality, however, is that each of these methods only allows for five significant digits for a unique identifier. For example, if you have two cards with the IDs “1234567” and “1234578” you will find that they will be considered the same “12345” and the second card will fail when it is attempted to be assigned to an operator.

The reason for this problem is relatively simple: the implementation of the extended logon was originally intended to be a sample upon which developers could customize to fit the specific needs of a particular implementation. In prior versions of the product (going back to Dynamics AX 2012 R3) this was much easier since we shipped the full source code to the Commerce Runtime (CRT). However, because the CRT is now sealed, developers have to create a custom CRT service to override existing functionality – something that is difficult to do from scratch.

This blog post is an end-to-end sample that can be used as a starting point for such an implementation. It is intended as a specific workaround for the five-character limit for barcode and MSR scans, but does not discuss extending to other devices.

Here is a link to a zip file for the source code for the sample:  Contoso.ExtendedLogonSample

Architecture

There are essentially two main pieces to the functionality for barcode and MSR extended logon: assigning the identifier (barcode or card number) to the user and then creating a hook on the logon screen to act on the event of a cardswipe or barcode scan.

The following is a simplified explanation of the logon screen:  when the logon screen displays, MPOS automatically listens for one of the two events (a barcode scan or card swipe). If either of those events fires, instead of attempting to authenticate with an Operator ID and Password, the CRT logon request (UserLogOnServiceRequest ) is called with a special parameter.  This parameter, GrantType, notifies the CRT what kind of event was fired.   This, along with the actual text (card number or barcode) is used to perform the extended logon workflow instead of the standard workflow.

The second part of the functionality is the assigning the barcode or card number to the Operator ID. This process is similar and re-uses some of the same logic. On the Extended log on screen, the user searches for the Operator ID to which they will be adding an identifier (card number of barcode) and then swipes the card or scans the barcode. Pressing the OK button sends this identifier to the CRT which will then check to see if the identifier is already in use and if not, adds a record to a table to map the Operator ID and barcode or card number.

All of this is done with three CRT requests that you need to implement in your custom service: GetUserEnrollmentDetailsServiceRequest, GetUserAuthenticationCredentialIdServiceRequest, and ConfirmUserAuthenticationServiceRequest.

Notes on the Code

There are three requests that need to be handled by your custom code:

public IEnumerable&amp;amp;lt;Type&amp;amp;gt; SupportedRequestTypes
{
    get
    {
        return new[]
        {
            typeof(GetUserEnrollmentDetailsServiceRequest),
            typeof(GetUserAuthenticationCredentialIdServiceRequest),
            typeof(ConfirmUserAuthenticationServiceRequest)
        };
    }
}
public Response Execute(Request request)
{
    if (request == null)
    {
        throw new ArgumentNullException(&amp;amp;quot;request&amp;amp;quot;);
    }

    Response response;
    Type requestType = request.GetType();

    if (requestType == typeof(GetUserEnrollmentDetailsServiceRequest))
    {
        response = this.GetUserEnrollmentDetails((GetUserEnrollmentDetailsServiceRequest)request);
    }
    else if (requestType == typeof(GetUserAuthenticationCredentialIdServiceRequest))
    {
        response = this.GetUserAuthenticationCredentialId((GetUserAuthenticationCredentialIdServiceRequest)request);
    }
    else if (requestType == typeof(ConfirmUserAuthenticationServiceRequest))
    {
        response = this.ConfirmUserAuthentication((ConfirmUserAuthenticationServiceRequest)request);
    }
    else
    {
        throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, &amp;amp;quot;Request '{0}' is not supported.&amp;amp;quot;, request));
    }

    return response;
}

GetUserAuthenticationCredentialIdServiceRequest and GetUserEnrollmentDetailsServiceRequest are very similar: each validates and returns the significant digits of the scanned barcode or swiped card. The first one is used during the logon process and the second one is used when assigning an extended identifier to an operator.

private GetUserAuthenticationCredentialIdServiceResponse GetUserAuthenticationCredentialId(GetUserAuthenticationCredentialIdServiceRequest request)
{
    return this.GetUserAuthenticationCredentialId(request.Credential, request.RequestContext);
}

private GetUserEnrollmentDetailsServiceResponse GetUserEnrollmentDetails(GetUserEnrollmentDetailsServiceRequest request)
{
    string credentialId = this.GetUserAuthenticationCredentialId(request.Credential, request.RequestContext).CredentialId;
    return new GetUserEnrollmentDetailsServiceResponse(credentialId, string.Empty);
}

Each of these shares the same validation method (GetUserAuthenticationCredentialId). This method operates on two pieces of information: the full string that was just scanned in (barcode or card number) and the current device configuration. It performs three validations and throws specific exceptions if any fail: is the device is even configured to use this type of extended logon (as defined in the functionality profile), whether a good swipe or scan was made, and whether the barcode or card number had enough characters.

If everything looks good, a GetUserAuthenticationCredentialIdServiceResponse with the identifier is returned to the caller. The caller (CRT and then ultimately MPOS) will handle the three exceptions appropriately.

Note that this is the method where the out-of-the-box implementation is hard-coded to only five characters. This sample requires a barcode of at least ten characters and only the first ten characters are stored in the database.

 

private GetUserAuthenticationCredentialIdServiceResponse GetUserAuthenticationCredentialId(string credential, RequestContext requestContext)
{
    DeviceConfiguration deviceConfiguration = requestContext.GetDeviceConfiguration();

    if (!this.IsServiceEnabled(deviceConfiguration))
    {
        throw new UserAuthenticationException(SecurityErrors.Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled, &amp;amp;quot;Authentication service is disabled.&amp;amp;quot;);
    }

    if (string.IsNullOrWhiteSpace(credential))
    {
        throw new DataValidationException(DataValidationErrors.Microsoft_Dynamics_Commerce_Runtime_MissingParameter, &amp;amp;quot;credential&amp;amp;quot;);
    }

    if (credential.Length &amp;amp;lt; IdentifierLength)
    {
        throw new InsufficientCredentialLengthException(DataValidationErrors.Microsoft_Dynamics_Commerce_Runtime_InvalidFormat, credential.Length, IdentifierLength);
    }

    // Only use the first IdentifierLength (10) characters
    string credentialId = credential.Substring(0, IdentifierLength);
    return new GetUserAuthenticationCredentialIdServiceResponse(credentialId);

ConfirmUserAuthenticationServiceRequest: This request is the second stage of the logon process. At this point the extended identifier (card number or barcode) has been translated to an Operator ID (based on the mapping in the RetailStaffCredentialTable).

There are two scenarios that affect this request: whether the device is configured to challenge for a password after scanning or not. If the barcode or card swipe is enough (no password needed) then this request essentially does nothing; it returns a NullResponse object which is an indicator to MPOS that a successful logon was made.

However, if the device is configured to require a password, this request will get hit twice during the logon process.

The first pass happens before the user gets prompted for their password. In fact, the specific exception that gets thrown (Microsoft_Dynamics_Commerce_Runtime_PasswordRequired) is a signal to MPOS that it needs to prompt the user for a password. You may notice that this password entry dialog looks different than the standard login screen; it is actually a dialog box.

After the user enters the password, the ConfirmUserAuthenticationServiceRequest gets called a second time, this time with both an Operator ID and a password. The request then is responsible for calling the standard logon request (UserLogOnServiceRequest) before the user can gain access. If no exception is raised from that call, the NullResponse is again returned a successful logon. If an exception is raised (i.e., the password entered is incorrect) it will just bubble up to the caller and MPOS handles it just like if the user entered an incorrect password on the main logon screen.

private Response ConfirmUserAuthentication(ConfirmUserAuthenticationServiceRequest request)
{

    DeviceConfiguration deviceConfiguration = request.RequestContext.GetDeviceConfiguration();

    if (!this.IsServiceEnabled(deviceConfiguration))
    {
        throw new UserAuthenticationException(SecurityErrors.Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled, &amp;amp;quot;Authentication service is disabled.&amp;amp;quot;);
    }

    if (this.IsPasswordRequired(deviceConfiguration))
    {
        if (string.IsNullOrWhiteSpace(request.Password))
        {
            throw new UserAuthenticationException(SecurityErrors.Microsoft_Dynamics_Commerce_Runtime_PasswordRequired);
        }

        // call auth service for password check
        UserLogOnServiceRequest passwordAuthenticationRequest = new UserLogOnServiceRequest(
            request.UserId,
            request.Password,
            request.Credential,
            PasswordGrantType,
            request.ExtraAuthenticationParameters);
        request.RequestContext.Execute&amp;amp;lt;Response&amp;amp;gt;(passwordAuthenticationRequest);
    }

    return new NullResponse();
}

Additional Notes

  • The class needs to implement a property named HandlerName.  These are specific identifiers for card swipe nd barcode and are hard-coded in the MPOS code.  Because of this, they are not easily changed and your implementation of either should just use the same hard-coded values.
public string HandlerName
{
    get
    {
        return &amp;amp;quot;auth://example.auth.contoso.com/barcode&amp;amp;quot;;
    }
}
  • All of the data handling for the extended login information is taken care of behind the scenes.  When the user is assigned a barcode or card number, it calls Realtime Service to save the number to the RETAILSTAFFCREDENTIALTABLE at Headquarters and also to the local (channel) version of the table for immediate use.  Depending on how often you run CDX jobs, it will eventually also get pushed out to other stores as well.
  • To test your plugin, compile and deploy to Retail Server as noted in these instructions:  https://docs.microsoft.com/en-us/dynamics365/unified-operations/retail/dev-itpro/commerce-runtime-extensibility.  You will need to add the Extended log on operation to a button grid to be able to assign barcodes to a user.  The easiest way to test is to use the Barcode Scanner in the Virtual Peripherals tool – use “work as keyboard wedge” to avoid having to mess with OPOS drivers and hardware profiles.

Renew Dynamics 365 for Finance and Operations Certificate on Dev Machine

$
0
0

This was a internal request from support team to quickly fix the certificate expire issue. I would like to post it here in case you need it. Please note this should only apply to your Dev VHD, and strongly recommand you create a checkpoint before proceed.

Symptom:

You will get error 503 when trying to access local URL https://usnconeboxax1aos.cloud.onebox.dynamics.com/

Check in Computer Certificates, you will see Certifcates started  with DeploymentsOnebox expired.

Workaround:

One script for all steps(renew certificate,grant permission, replace in config, reset iis and batch)

Function Update-Thumberprint

{

    Set-Location -Path “cert:\LocalMachine\My”

    $oldCerts = Get-childitem | where { $_.subject -match “DeploymentsOnebox” -or $_.Subject -match “MicrosoftDynamicsAXDSCEncryptionCert”}

    $ConfigFiles =

    @(“C:\AOSService\webroot\web.config”,

      “C:\AOSService\webroot\wif.config”,

      “C:\AOSService\webroot\wif.services.config”,

      “C:\FinancialReporting\Server\ApplicationService\web.config”,

      “C:\RetailServer\webroot\web.config”

      )

    foreach ($oldCert in $oldCerts)

    {

        $newCert = New-SelfSignedCertificate -CloneCert $oldCert

        #consider to delete the old cert

        $keyPath = Join-Path -Path $env:ProgramData -ChildPath “\Microsoft\Crypto\RSA\MachineKeys”

        $keyName = $newCert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName

        $keyFullPath = Join-Path -Path $keyPath -ChildPath $keyName

        $aclByKey = (Get-Item $keyFullPath).GetAccessControl(‘Access’)

        $permission = “EveryOne”,“Read”, “Allow”

        $accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission

        $aclByKey.SetAccessRule($accessRule)

        Set-Acl -Path $keyFullPath -AclObject $aclByKey -ErrorAction Stop

        foreach($configFile in $ConfigFiles)

        {

            (Get-Content -Path $configFile).Replace($oldCert.Thumbprint,$newCert.Thumbprint) | Set-Content $configFile

        }

    }

}

Update-Thumberprint

iisreset

Restart-Service “DynamicsAxBatch”

Please copy all the script and run in powershell via administrator previligge.

Each time you run this script, it will create a new set of certificates. So do not repeat it.

Hope it helps.

Viewing all 1498 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>