Dynamics 365 Retail – Deploying Retail Cloud Scale Unit
The SQL Reporting Services URL is not valid
How long does it take to import a Dynamics GP GL Journal Entry with LOTS of lines?
Steve Endow answers the important questions in life. How long does it take to import a Dynamics GP GL Journal Entry with LOTS of lines?
PowerCharge: Transactions with Stripe Just Got Easier!
PowerObjects has long offered an add-on that securely stores and processes credit cards within CRM for Dynamics 365. Known as PowerCharge, this PowerPack add-on enables users to charge and refund their customers’ credit cards directly from Dynamics 365 without having to locally store sensitive and private information.
PowerCharge fully integrates with Stripe (along with many other payment gateways), a technology company whose software allows businesses to receive payments over the internet while providing the technical, fraud prevention, and banking infrastructure required to operate on-line payment systems. The Stripe integration within PowerCharge has been enhanced, so that PowerCharge subscribers using Stripe now have the ability to charge credit cards in more than 130 different international currencies. The process is incredibly simple:
When initially setting up a credit card in Dynamics 365, users will be prompted on the Credit Card page to choose the card’s default currency to charge. In the example below, we’ve selected US Dollars (USD):
Once the card is saved, any transactions charged to it will automatically default to this currency at the point of sale. However, on the point of sale Transaction Information page, users will always be able to change (or override) the default currency to another of the 130+ available currencies. It’s simply a matter of clicking on the Currency field and selecting the appropriate currency. For example, we’ve changed the currency in the example below to British Pounds (GBP):
It’s as simple as that! This enhancement saves time by requiring fewer clicks in the majority of transactions while still preserving the ability for the occasional override. (Note that any refunds with Stripe will always use the same currency in which the original transaction was charged.)
If you’re not already using PowerCharge, what are you waiting for? Click here for more information.
As always, happy Dynamics 365’ing!
Dynamics 365 Portal Developers – Don’t Forget About CSS!
How long does it take to import Dynamics GP GL JEs with Analytical Accounting?
Steve Endow has now moved to on to answering questions you aren’t even asking with How long does it take to import Dynamics GP GL JEs with Analytical Accounting?
Good news: IRS Extends 1095-C Reporting Deadline and Good Faith Transition Relief for 2018 reporting
On November 29, 2018, the IRS released Notice 2018-94: US employers get lucky again!
The due date for providing Forms 1095-C to employees is extended to March 4, 2019
The ACA employer mandate – which remains business as usual after the midterm elections– requires all US employers with 50 or more full-time employees to offer their full-time workers ACA-compliant health coverage. These employers must also provide proof of that offer of coverage to the IRS with year-end forms 1095-C and 1094-C.
- The deadline to provide 1095-Cs to employees has been extended by the IRS to March 4, 2019.
- The IRS filing deadline of forms 1094-C and copies of the 1095-Cs remains the same:
- Paper filing needs to be done by February 28, 2019.
- Electronic filing (required for employers with more than 250 1095-Cs) must happen by April 1, 2019.
- Even with this extension, the IRS encourages employers to send these forms ASAP.
Good Faith transition relief has been extended to 2018 reporting
This means that employers who work in good faith to complete the forms will not be assessed penalties due to missing or inaccurate information.
- This relief does not apply if the employer failed to furnish forms or timely file, only for missing or inaccurate information reported on the ACA forms.
- “Good Faith effort” means the IRS will take into account whether the employer made reasonable efforts to prepare for the reporting requirements – for example gathering and transmitting the data to appropriate parties and employer’s efforts in preparing for 2019 reporting.
So good news for employers. However, don’t let that detract from making sure your reporting is done accurately and timely – Integrity Data’s ACA Compliance Solution can help – contact us today.
Writing Plug-ins in Azure Functions for Microsoft Dynamics 365
Plug-ins, Webhooks in Azure Functions and Microsoft Dynamics 365 v9.0+
Microsoft has launched many new features with updates of Microsoft Dynamics 365, but one key feature of Dynamics 365 has remained: plug-ins. If you aren’t familiar with this powerful tool used for extending the application, a plug-in is a custom business logic triggered by registered events in the Dynamics 365 pipeline. For example, a custom plug-in would fire to execute an augmented logic whenever a new account is created in Dynamics 365.
Developers depend on plug-ins to execute processes within Dynamics 365, but plug-ins aren’t without limits. When configurable webhooks launched with the latest Dynamics 365 release, it became possible to configure a webhook—similar to a plug-in—to execute in an Azure function.
Webhooks vs. plug-ins
If you’ve always used plug-ins up until now, you are probably wondering why you should opt to use webhooks. Here are two scenarios:
- You run into sandbox plug-in limitations with Dynamics 365 online like:
- Timeouts
- Partial trust environments
- HTTP/HTTPS protocols
- DNS-only network access
- Forced ILMerge
- Limited resource usage capabilities
- Additional complications result from keeping integration logic out of the code base or existing .NET assemblies (to facilitate integration with an external system) don’t work in a partial trust environment—even with ILMerge.
How do you write a plug-in using a webhook?
Writing and deploying a plug-in using a webhook in Azure Functions is a simple process. Let’s review an example…
...Continue reading the full blog post on the AKA Enterprise Solutions Blog,
where we will walk you through writing a plug-in in Azure Functions.
Still unsure about these concepts?
Read these articles to better familiarize yourself with Dynamics 365 plugins and using webhooks in the Dynamics 365 9.0 release.
Are you ready to start the conversation about Dynamics 365 solutions?
Our Dynamics 365 experts can customize an ERP solution for your business, contact AKA today!
ABOUT AKA ENTERPRISE SOLUTIONS
AKA specializes in making it easier to do business, simplifying processes and reducing risks. With agility, expertise, and original industry solutions, we embrace projects other technology firms avoid—regardless of their complexity. As a true strategic partner, we help organizations slay the dragons that are keeping them from innovating their way to greatness. Call us at 212-502-3900!
What is GDPR and How Does It Affect Your Business and Your Microsoft Technology?
You’ve heard a lot about GDPR but do you know what effect it will have on your data practices?
What is GDPR?
General Data Protection Regulation (GDPR) was instituted to strengthen and protect the privacy rights of individuals. It establishes strict imperatives governing how organizations manage and protect personal data while respecting individual choice. The Regulation has already been passed in the European Union (EU) and its member nations, but it also applies to any organization doing business with EU nations, regardless of where they are located
BroadPoint's Microsoft ERP experts are preparing a series of posts to help you understand not only what GDPR is, but also how your Microsoft Dynamics GP solution can help you comply with its regulations.
Key elements of the GDPR
Individual privacy rights -
GDPR provides enhanced data protection for individuals within the EU by allowing them to access their data and edit it to correct inaccuracies or remove personal information. It will also allow them a say in how their personal data is processed or shared.
Increased accountability –
Public and private companies and organizations that process personal data will be provided with clear instructions about their responsibilities and will be accountable for compliance.
Data breach reporting –
Companies are required to report personal data breaches to supervising authorities as soon as possible.
Penalty for non-compliance –
Stiff penalties will be levied for non-compliance. These penalties may include sanctions and substantial fines that will be demanded whether the non-compliance was intentional or inadvertent.
Key GDPR compliance roles and definitions:
There are specific roles defined by the GDPR that are important to keep in mind as you look at your compliance efforts.
Data Subject –
An individual whose personal data is collected by your organization
Controller –
The persons in your organization who control business applications, processors, processes, and procedures that collect or use the data.
Processor –
Others in your organization who will have access to personal information.
In addition to understanding the above roles, you will need to differentiate between personal and sensitive data and how each type is created, processed, managed, and stored.
Personal data includes information related to a data subject. Direct data could be the subject’s name, address, or company relationship; indirect data connects another individual to the data subject.
Sensitive data such as name, identification number, location information, and an online identifier (such as email address or device ID) are afforded enhanced protection and require an individual’s explicit consent for use.
Beginning the journey to GDPR compliance
No doubt you can already see that GDPR will have a significant effect on how you do business. We recommended that you begin your journey to GDPR compliance by focusing on four key steps:
1. Identify the kind and amount of personal data you have and where it is stored
2. Determine how the data is accessed and used.
3. Institute security controls to prevent, detect, and respond to vulnerabilities and data breaches.
4. Document and report data breaches.
Focusing on the above should reveal any changes necessary such as reexamining personal privacy policies, instituting or fortifying data protection controls and procedures for data-breach reporting, implementing highly transparent policies, designing new SOP, and investing in any necessary IT and training.
The following posts in this series will discuss the approaches, recommended practices, and techniques involved in the above steps, and how Microsoft Dynamics GP can support your GDPR compliance. Keep up with BroadPoint's GDPR series for Microsoft users—sign up for updates!
Feel free to contact our Microsoft ERP experts for more information about GDPR and Dynamics GP.
By BroadPoint, a Leading Microsoft Partner Since 2001
Tips&Tricks: Inventory Valuation Scenarios
Dynamics Portals: setting up event registration web site (Part 3)
What’s New for Dynamics 365 Resource Scheduling Optimization v3.0 Release
Applies to: Dynamics 365 Organization 9.0+ with Field Service Solution 7.x version or 8.x version
We are excited to announce the general availability of Resource Scheduling Optimization (RSO) v3.0 release which includes maximize preferred resources, best Matching skill level, improved logic of handling conflicted bookings, and user experience improvements to easily re-rank objectives. We've added new capabilities and various usability, performance, and quality improvements. Below is a high-level list of features introduced in this release.
Enabled new objective: Maximize Preferred Resources
RSO will consider the list of preferred resources noted on related requirements. The optimizer will try to assign bookings to preferred resources first while meeting other constraints and objectives. This is achieved by adding the "Maximize Preferred Resources" objective in your RSO goal and adding preferred resources on the requirement that will be optimized.
Below is an example of adding a resource (for example, Jorge Gault) as a preferred resource to a requirement.
After running an Optimization Schedule, the requirement is scheduled to the preferred resource. In the example below, work order 00100 is scheduled to Jorge Gault.
Enabled new objective: Best Matching Skill Level resource objective
RSO will consider the proficiency rating when matching the characteristics required by requirements and the resources who possess those characteristics. This is dependent on the Meets Required Characteristic constraint within the Optimization Goal.
- If ‘Meets Required Characteristics’ constraint is checked
- resources without the characteristic (skill) or less qualified (less proficiency rating than required) are not eligible at all
- resources with the exact skill level (best matching) get the highest score
- the more overqualified a resource is, the lower the score they will get
- If ‘Meets Required Characteristics’ constraint is unchecked, resources without the skill or less qualified can still be booked
- overqualified resources get a higher score than less qualified ones
- the more overqualified a resource is, the lower the score they will get
- the less-qualified a resource is, the lower the score they will get
- resource without the skill get the lowest score but not zero
For example: If a characteristic (skill) rating model is from 1 to 10, and the requirement asks for a skill level of 4, below is the score distribution based on skill level of the resource.
Other Enhancements
Easily adjust order of existing objectives
Users now can easily adjust order of existing objectives by using the Move Up, Move Down buttons. For example, select ‘Maximize Preferred Resources’ , click Move Up button. The system will swap the order between ‘Minimize Total Travel Time’ and ‘Maximize Preferred Resources’.
Improved logic of resolving booking conflicts
If scope related resource, requirement, booking information being modified during optimization, optimization request status show ‘ Completed with Conflicts’ instead of ‘Failed’ , in Optimization Request Booking view, users are able to see details which booking being modified (conflicted icon and booking status showing Simulation; Operation Details showing specific data being modified).
User can select one or more conflicted bookings (Simulation status), click Apply with Overwrite, and thesystem will commit the simulation booking. Or click Discard, and the system will remove simulation booking, keep the changes user manually did before.
After Apply or Discard, Optimization Status will change to Completed.
Allow to keep empty time values
RSO will respect scenarios when only a start or end time is defined on a requirement. In the example below where a requirement has only a time window start value, RSO schedules the requirement anytime after 1:00 PM regardless of date.
This logic applies to the below fields:
On Resource Requirement entity
- Time Window Start/End
- Time From Promised/ Time To Promised
- From Date/ To Date
On Resource Booking entity
- Time Window Start/End
- Time From Promised/ Time To Promised
- Date Window Start/End
Fundamentals
- Numerous bug fixes and telemetry enhancements as part of continuous engineering fundamental improvements
Important Notes
If you deploy this version of RSO with Field Service v8.x, RSO doesn’t support Pool, Facility, Crew scheduling scenarios. Please ensure:
- Exclude Pool and Crew types of resources from bookable resource view(s), which are used for optimization scope.
- Exclude Pool and Crew types of resource requirement from bookable resource view(s), which are used for optimization scope (or set “Scheduling Method” to “Do Not Optimize”).
For more information:
- What’s New for Dynamics 365 Resource Scheduling Optimization v2.8 Release
- What’s New for Dynamics 365 Resource Scheduling Optimization v2.7 Release
- What’s New for Dynamics 365 Resource Scheduling Optimization v2.6 Release
- What’s New for Dynamics 365 Resource Scheduling Optimization v2.5 Release
- Release Notes for Resource Scheduling Optimization (v2.0) – Dynamics 365
- What’s New for Dynamics 365 Resource Scheduling Optimization v1.5 Release
- Resource Scheduling Optimization Overview
- Scheduling anything in Dynamics 365 with Universal Resource Scheduling
- Dynamics 365 for Field Service - User's Guide
Feifei Qiu
Program Manager
Dynamics 365, Field Service Team
Create Journals using recurring integrations/Recurring Data Jobs
NAV and Business Central Docker images now available for Windows Server 2019
Dynamics 365 AI - Systems of Intelligence
Year-end closing
Inventory value adjustments (Part 2)
Dynamics 365 for Marketing – Customize email content with handlebar.js
“in” operator in D365FO
Yesterday Michael Fruergaard Pontoppidan published a brief blog post New capability in X++ : The In operator. He mentioned that this feature went unnoticed by most, which is my case too. And I didn’t find anything even when I explicitly looked for more information.
Anyway, such an operator can be very handy and I’m quite sure that everybody who knows IN() operator in T-SQL sometimes missed it in X++.
In short, it allows you to check if a field value is in a set of expected values. For example, if I want to find all sales orders with status either Delivered or Invoice, I can do this:
SalesTable st; container statuses =[SalesStatus::Delivered, SalesStatus::Invoiced]; selectfrom st where st.SalesStatus in statuses;
The generated code is what you had to do when there was no ‘in’ operator – it uses OR:
SELECT*FROM SALESTABLE T1 WHERE(((PARTITION=123)AND(DATAAREAID=N'dat'))AND((SALESSTATUS=3)OR(SALESSTATUS=2)))
I wanted to know what else I can do with this operator and because I didn’t find any documentation, I tried a few things by myself. Note that my environment has platform update 20; it might behave differently in different versions.
I wondered if I can’t use a container directly, instead of putting it to a variable. It would make things simpler if the set is known at design time.
selectcount(RecId)from st where st.SalesStatus in [SalesStatus::Delivered, SalesStatus::Invoiced];
The editor didn’t show any error, but compilation blew up completely:
Abnormal termination with unhandled exception. Exception key: a59d89f7-fe80-4ab3-a420-9a6ba9a30bca. System.NullReferenceException: Object reference not set to an instance of an object.
Hmm, let’s try something else. Which data types can I use? What about a set of string values, which is a common scenario?
container ids =["S01","S02","S03"]; select st where st.SalesId in ids;
This fails already in the editor. The compilation error is: Types ‘str’ and ‘container’ are not compatible with operator ‘in’.
The last thing I tried was using ‘in’ operator outside a query. I didn’t expect it to work and it indeed doesn’t. This doesn’t compile; it fails with ‘)’ expected.
if(highestStatus in statuses)
The ‘in’ operator is useful and I’m glad it’s been added. But I see space for improvement, especially the ability of using it with string fields would be very useful.