Quantcast
Channel: Microsoft Dynamics 365 Community
Viewing all 51311 articles
Browse latest View live

Upload Documents to SharePoint from Resco Mobile App

$
0
0
Introduction: Resco Mobile app allow user to upload the documents to SharePoint. Users can upload PDF files, Office documents, images, audio/video files etc. to the SharePoint from mobile. Below options...(read more)

Tip #1211: Mixing entities to build complex views

$
0
0

The trick to get developers to get your job done for free is to challenge them. Which is exactly what Steve “Mr SMB” Mordue has done.

Challenge

I am trying to create a view of activities, that will show all activities performed by anyone on my team. I know I can create specific view that filters that way, but I don’t want to create one for each of the 9 teams. I want to recognize the team I am on and show it.

Accepted

A bunch of linked entities later, Andrii “Granny’s Moonshine” Butenko had a solution:

image

And that would have been the end of it but then the discussion went something like this:

– I need me, my team, and all members of that team

– So records can belong to Team as well?

– Yes

– Aah, crap

So the challenge now was to combine the expression above with the condition “Owner Equals Current User’s Team” using OR operator. Except that visual view builder would have none of it. At some point Jonas “FXB” Rapp was summoned and solved the problem between brushing his incisors and molars. Readers digest:

  1. Build a view with the columns that you need and the condition above.
  2. Fire up XrmToolBox, load that view into View Designer then start editing query in FetchXML Builder.
  3. Mix conditions on attributes from different entities in the builder.
  4. Test your fetchxml then update your view.
  5. Done! (Note: the view will work but you won’t be able to edit that view in Advanced Find).

Winning FetchXML:

<fetch mapping="logical" output-format="xml-platform" 
        version="1.0" distinct="true" ><entity name="activitypointer" ><attribute name="activitytypecode" /><attribute name="subject" /><attribute name="statecode" /><attribute name="prioritycode" /><attribute name="modifiedon" /><attribute name="activityid" /><attribute name="instancetypecode" /><attribute name="community" /><attribute name="ownerid" /><attribute name="owneridname" /><filter type="or" ><condition attribute="ownerid" 
                 operator="eq-useroruserteams" /><condition attribute="systemuserid" 
                 entityname="tm" 
                 operator="eq-useroruserteams" /></filter><link-entity name="systemuser" to="owninguser" 
              from="systemuserid" link-type="outer" ><link-entity name="teammembership" 
                 to="systemuserid" from="systemuserid" 
                 link-type="outer" ><link-entity name="team" 
                   to="teamid" from="teamid" 
                   link-type="outer" ><link-entity name="teammembership" 
                       to="teamid" from="teamid" 
                       alias="tm" link-type="outer" /></link-entity></link-entity></link-entity></entity></fetch>

I was dead last in this contest – my own version wouldn’t even work. As it turns out, link-type="outer" is important, don’t leave home without it.

(Cover photo by Bernard Tuck on Unsplash)

Hands On With Microsoft Dynamics GP 2018 R2 New Features: Increase Dynamics GP Password Maximum Length

$
0
0

Microsoft Dynamics GPThis post is part of the Hands On With Microsoft Dynamics GP 2018 R2 New Features series in which I am going hands on with the new features introduced in Microsoft Dynamics GP 2018 R2 (which was released on the 2nd October). I reblogged the new features as Microsoft announced them along with some commentary of how I thought they would be received by both my clients and I. In this series, I will be hands on with them giving feedback of how well they work in reality.

The eleventh new feature is Increase Dynamics GP Password Maximum Length. This feature seesm the maximum length of user passwords increased from 15 to 21 characters:

User Setup

Any increase in the maximum length of passwords is to be welcomed, but, seeing as this change required a database schema change to increase the SQL field length from 15 to 21, I am a little surprised that the new length is only 21 characters.

Click to show/hide the Hands On With Microsoft Dynamics GP 2018 R2 New Features Series Index

Read original post Hands On With Microsoft Dynamics GP 2018 R2 New Features: Increase Dynamics GP Password Maximum Length at azurecurve|Ramblings of a Dynamics GP Consultant

Dynamics 365 for Talent Comprehensive Hiring Add-On/SKU

$
0
0
In October in connection with the October release, Microsoft released several functions in Attract that required a new type of license, the Comprehensive Hiring Add-on/SKU. There has been a lot of questions...(read more)

Maintain high-quality contact data to maximize deliverability and  performance with Dynamics 365 for Marketing

$
0
0

One of the fastest ways to lose sender reputation when doing email marketing is to generate a high number of hard bounces and spam complaints from your email blasts. Your deliverability rates will fall together with your sender reputation, and you risk ultimately landing on blacklists operated by internet watchdogs, major corporations, and major inbox providers. Once that happens, you can expect that very few of your marketing messages will land in recipients' inboxes. To avoid this fate, be sure to establish and maintain high-quality contact data to ensure that you only target valid email addresses and that your recipients value your content.

Read this post to learn why high-quality contact data is important, how to obtain it, and how Dynamics 365 for Marketing can help.

Sender reputation is key for getting messages through the internet

Internet watchdog organizations keep an eye out for red flags in email content and sending behavior. Based on this, they assign a sender reputation to each IP address that sends email. A low sender reputation can stop your messages from passing through the backbone at all, not to mention landing in an inbox. But these watchdogs also know that marketing messages aren’t necessarily spam—they are just as often an important part of legitimate, day-to-day business where both senders and recipients benefit—so it's possible to run high-volume email marketing campaigns while also maintaining a good sender reputation. Here’s how:

  • Avoid hard bounces
  • Send constant volumes
  • Include an unsubscribe link
  • Include your organization's physical address
  • Include text-only content that matches HTML content
  • Don't send image-only messages
  • Don't send spammy content. You know what spam looks like—don't look like that!

Dynamics 365 for Marketing includes features that help you meet these requirements, and even checks each message before you publish it to make sure it conforms with them. It also keeps an eye on your send results and if any hard bounces are detected, it will stop sending to those addresses in the future. However, the damage is already done if you produced lots of hard bounces on the first try, so already here, good data-quality practices will help ensure that your messages get through now and in the future.

Inbox providers implement personalized deliverability

Inbox providers are organizations that provides basic email send and receive features to large numbers of end users. They include companies running their own email servers for employees (like Microsoft Exchange), public email services for individuals (like Outlook.com or Gmail), and general internet service providers (ISPs).

Inbox providers don't just filter incoming messages according to the sender score, but also by what each individual subscriber has previously shown interest in. Deliverability is now determined by sophisticated algorithms based on individual behavior. Some of the most important signals include:

  • Individual engagement history: How has this specific recipient interacted with messages like this before? Factors include, but aren't limited to: whether a similar message was marked as important, whether the sender is in the recipient's address book, whether the recipient has replied to the sender before, or whether the recipient has opened messages from the sender before.
  • Service-wide spam rate: How often do messages from this sender get marked as spam by other customers of that inbox provider?
  • Spam traps: Do messages from this sender ever land in a spam trap operated by this inbox provider? Spam traps are email accounts with addresses that don’t belong to real users, but which are easy to find using questionable or illegitimate means of harvesting email addresses. Anyone who sends messages to a spam trap is identifying themselves as a likely bad actor.
  • Sender reputation: This is the reputation score described in the previous section. Inbox providers also have access to this score and may use it to filter messages even more strictly than the internet does.

How to implement good contact data quality

Email deliverability is a complex issue with many components, but this post is focused on how to make sure that all the email addresses you send to are functioning and belong to legitimate contacts who are interested in your content. This will go a long way towards eliminating hard bounces and spam complaints, and therefore help maximize your reputation and deliverability.

Never buy or rent an email list

Purchased and rented email lists do not contain contacts that have opted-in or provided consent to receive marketing messages from your organization. They often contain email addresses that are out-of-date and may even include spam traps. They will typically generate many hard bounces and spam complaints if you use them, and may even violate local privacy laws, such as the GDPR.

Use double opt-in

Double opt-in is a system where new subscribers must click a link sent to them in a confirmation email before their new subscription becomes active. Although some contacts won't complete the process, double opt-in tends to give much higher engagement rates among those that do. Double opt-in also ensures that every new contact record has an email address that works, gets read, and represents an engaged subscriber.

Provide easy and comprehensive subscription management

Always include an opt-out or subscription-center link with each marketing email you send. This gives recipients an easy way to unsubscribe rather than report your messages as spam. A full-featured subscription center will give you the opportunity of presenting several subscription options, some of which may be more appealing to a contact than the one they happen to be on. This will let you know more about contacts' interests while also building goodwill.

Engage with contacts in ways that match their levels of activity and interest

Keep an eye on your engagement records to see which contacts show the most interest and which seem to have gone cold. Once you've identified your unengaged subscribers, you don't necessarily need to delete them right away—just treat them differently. For example, move them to a lower-touch segment but continue to mail to them intermittently with offers and content that are more likely to get their attention. Phase subscribers out gradually by ramping down messages to these non-responders.

If you do decide to remove a contact entirely based on their interaction record, always send  a  “sorry to see you go” message to let them know and give them a chance to reengage.

Review results and performance each time you change sending platforms

When you change sending platforms (for example to switch from a third-party system to Dynamics 365 for Marketing), you'll probably start by importing your existing contact database into the new system. However, your new import might include many hard-bouncing addresses that your previous system suppressed automatically, and it may also include older contacts that have unsubscribed or otherwise stopped interacting with your messages. So, to keep from generating a punishing number of hard bounces and spam reports, do the following when you switch sending platforms:

  • Study interaction data from your previous system to identify your most and least-engaged contacts. Create campaigns with messaging and send frequencies that are appropriate for each level of engagement you find.
  • Extract any manual or autogenerated suppression lists from your previous system and either remove those contacts or use them to create a new suppression list on the new system.
  • If you're not sure whether the contacts you are about to import include hard-bouncing addresses, consider using a third-party service to test them for you so you can remove them before you import to the new system. Some services even clean out spam traps and other problematic addresses.

How Dynamics 365 for Marketing helps implement good data quality

Microsoft is dedicated to helping all our Dynamics 365 for Marketing customers achieve maximum deliverability for the marketing campaigns. The system provides detailed analytics that help you make the right decisions, and automated tools that both help you implement those decisions and also automatically apply best practices.

Deliver detailed email results

After each email campaign, Dynamics 365 provides detailed results that list deliveries, opens, clicks, bounces, and more. This information will help you manage your mailing lists much more effectively, and also inform many of the automated features described later in this section.

More information: Analyze results to gain insights from your marketing activities

Provide detailed segmentation control

Every email campaign that you run in Dynamics 365 for Marketing starts with a marketing segment, which establishes the collection of email addresses that campaign will target. You can program each segment to include only those contacts with the level of engagement that each campaign is intended for.

More information: Working with segments

Report and quarantine hard bouncing addresses

As we've mentioned, avoiding hard bounces is one of the main goals of maintaining good data quality. Hard bounces occur when:

  • The email address is inactive.
  • The email address doesn't exist.
  • The domain in the email address doesn't exist.

To help prevent hard bounces, Dynamics 365 for Marketing checks each outgoing address to make sure the domain exists. If you try to send to an address that uses a domain that's expired or never existed, then the system will automatically flag the address as a hard bounce without even attempting to send to it.

Even if you maintain good data quality, hard bounces can still occur from time to time. When they do, you'll be able to see each address that produced a hard bounce after each campaign. The system automatically flags the offending address and will add it to its internal suppression list to make sure the system won't attempt to send to it again. However, the address will remain visible on the relevant contact record in case you want to review it.

More information: Analyze results to gain insights from your marketing activities

Convert soft bounces into hard bounces

Soft bounces are less serious than hard bounces, and often occur for some temporary reason, such as:

  • An email account has exceeded its storage or email capacity.
  • The email contained suspicious content. This usually happens because an email message’s spam score was too high based on its content.
  • The subscriber’s email server was temporarily unreachable or was not configured correctly.

If an email address consistently produces a soft bounce for several campaigns in a row, the system will instead handle that address as a hard-bouncing address to prevent further soft bounces from occurring.

More information: Analyze results to gain insights from your marketing activities

Automatically react to spam complaints from previous campaigns

We cooperate with all major inbox providers to implement feedback loops (FBLs), which automatically inform Dynamics 365 for Marketing each time a recipient marks one of your messages as spam. When the system receives an FBL, it will automatically stop sending messages to that recipient from then on (these messages will be shown as having been blocked in your email results).

More information: Analyze results to gain insights from your marketing activities

Double opt-in support

Dynamics 365 for Marketing is fully prepared to support double opt-in if you choose to use it, which we highly recommend. This helps ensure that all newly registered contacts have provided a legitimate email address that they can read, and that third parties can't subscribe others without their knowledge and consent.

More information: Set up double opt-in

Subscription center support

Dynamics 365 for Marketing provides a subscription center where contacts can see all the various mailing lists you provide and can easily choose which of them are most interesting. This fulfils the requirement that all messages include an unsubscribe link while also giving contacts an opportunity to choose (and let you know) which topics interest them most. Dynamics 365 for Marketing validates each message you try to send to ensure that it includes a subscription center link, thus helping to ensure that you don't overlook this important requirement.

More information: Set up a subscription center

Protect the sender reputation of Microsoft servers

One of the ways that Microsoft maintains a consistent and high level of email deliveries from our Dynamics 365 for Marketing sending IPs is by sharing these IPs among all our customers and load-balancing as needed.

We also organize our sending IPs into risk pools to ensure that customers with good data quality, content, and sending practices are grouped together to enjoy maximum sender reputation. Customers who generate significant numbers of hard bounces and spam complaints may get moved into a higher-risk pool to ensure they don't negatively impact those customers who don't have these issues.

Learn more

For more information about how to maximize your email deliverability with Dynamics 365 for Marketing, see Best practices for email marketing and Set up DKIM for your sending domain to keep up with recent Office 365 changes.

White Paper – Migrate Microsoft Dynamics CRM 2016 On-Premises to CRM 365 Online v9

$
0
0
This consists of steps/considerations for upgrading dynamics CRM 2016 On- Premises v8.1/8.2 to Dynamics CRM 365 Online v9 I would like to thank Ravi Kashyap for helping me validate the process and Andrew...(read more)

Microsoft Dynamics GP Year-End Update 2018: Affordable Care Act (ACA)

$
0
0
If your ACA information does not seem to be printing correctly, make sure you have applied the January Hotfix , there was a large change in this update for ACA information printing correctly. Once the...(read more)

D365 Quick Tip: Rather Uninstall Plugin Profiler from the D365 Solutions

$
0
0
Often, I get annoyed when I finish debugging the plugin and want to uninstall the Plugin Profiler from the Plugin Registration Tool so that users can quickly go ahead and test out the fix, it takes longer...(read more)

Microsoft Dynamics Reporting can lead the way with your accounting team today!

$
0
0

Microsoft Dynamics is available exclusively through the Microsoft Dynamics Certified Partner, like Accountnet. The “Value Added Reseller” provides planning, implementation, customization, and support services aimed at optimizing the solution for each customer’s specific needs. Regardless of how and where the software is deployed, customers have the choice of purchasing their Microsoft Dynamics solution or use the Microsoft subscription pricing.

 

Microsoft Dynamics 365 Business Central is a business management solution that’s connecting people and processes like never before. From day one, it makes ordering, selling, invoicing, and reporting easier and faster. Turn your multiple disconnected systems into one. Boost efficiency with automated tasks and workflows—all from within familiar Office tools like Outlook, Word, and Excel. Get a complete picture of your business and make better business decisions, with built-in intelligence when and where you need it. With your business running in the cloud, it’s easy to change and adapt at your own pace without involving IT. Start with what you need, quickly and easily, then be ready for growth.

Microsoft Office 365 Dynamics GP works with Office and Office 365 to extend the value of your business solution with enhanced productivity, collaboration, mobility and business intelligence. Dynamics GP utilizes existing functionality to you give you more value such as sending document to SharePoint or OneDrive, word documents, refreshable excel reports, Power BI reports.

 

Microsoft Cloud Dynamics GP gives you the power to choose how you want to utilize cloud technologies. You can deploy in the Microsoft cloud on Microsoft Azure in either a public or private setting. If you aren’t ready to fully go to the cloud you can do a hybrid. This flexibility gives you choices now and into the future. Azure gives you the flexibility and enterprise-class security, reliability and scalability.

 

Multi-Company Monitor, analyze, and report on multiple companies or functional divisions within your organization. Dynamics SL is a Focused and flexible capabilities help you set up multiple companies in one or more databases, run processes, close books, and report results by company or in a consolidated company.

 

Accountnet helps drive the digital transformation of your business on your terms. As a Microsoft Gold Certified Partner, Accountnet helps companies get up and running with Microsoft Dynamics. Our Microsoft solutions provide accounting personnel the information they need to do their jobs well — wherever they are, in whatever application they choose to use. Take the next step toward growth with Microsoft Dynamics 365 in the cloud. Contact us at Accountnet to learn more! 212-DYNAMICS or Visit www.microsoftfinancialsoftware.com

 

Witten by Accountnet, Inc.

LinkedIn

The post Microsoft Dynamics Reporting can lead the way with your accounting team today! appeared first on ERP Software Blog.

Microsoft Dynamics Reporting can lead the way with your accounting team today!

$
0
0

Microsoft Dynamics is available exclusively through the Microsoft Dynamics Certified Partner, like Accountnet. The “Value Added Reseller” provides planning, implementation, customization, and support services aimed at optimizing the solution for each customer’s specific needs. Regardless of how and where the software is deployed, customers have the choice of purchasing their Microsoft Dynamics solution or use the Microsoft subscription pricing.

 

Microsoft Dynamics 365 Business Central is a business management solution that’s connecting people and processes like never before. From day one, it makes ordering, selling, invoicing, and reporting easier and faster. Turn your multiple disconnected systems into one. Boost efficiency with automated tasks and workflows—all from within familiar Office tools like Outlook, Word, and Excel. Get a complete picture of your business and make better business decisions, with built-in intelligence when and where you need it. With your business running in the cloud, it’s easy to change and adapt at your own pace without involving IT. Start with what you need, quickly and easily, then be ready for growth.

Microsoft Office 365 Dynamics GP works with Office and Office 365 to extend the value of your business solution with enhanced productivity, collaboration, mobility and business intelligence. Dynamics GP utilizes existing functionality to you give you more value such as sending document to SharePoint or OneDrive, word documents, refreshable excel reports, Power BI reports.

 

Microsoft Cloud Dynamics GP gives you the power to choose how you want to utilize cloud technologies. You can deploy in the Microsoft cloud on Microsoft Azure in either a public or private setting. If you aren’t ready to fully go to the cloud you can do a hybrid. This flexibility gives you choices now and into the future. Azure gives you the flexibility and enterprise-class security, reliability and scalability.

 

Multi-Company Monitor, analyze, and report on multiple companies or functional divisions within your organization. Dynamics SL is a Focused and flexible capabilities help you set up multiple companies in one or more databases, run processes, close books, and report results by company or in a consolidated company.

 

Accountnet helps drive the digital transformation of your business on your terms. As a Microsoft Gold Certified Partner, Accountnet helps companies get up and running with Microsoft Dynamics. Our Microsoft solutions provide accounting personnel the information they need to do their jobs well — wherever they are, in whatever application they choose to use. Take the next step toward growth with Microsoft Dynamics 365 in the cloud. Contact us at Accountnet to learn more! 212-DYNAMICS or Visit www.microsoftfinancialsoftware.com

 

Witten by Accountnet, Inc.

LinkedIn

Microsoft Dynamics Reporting can lead the way with your accounting team today!

$
0
0

Microsoft Dynamics is available exclusively through the Microsoft Dynamics Certified Partner, like Accountnet. The “Value Added Reseller” provides planning, implementation, customization, and support services aimed at optimizing the solution for each customer’s specific needs. Regardless of how and where the software is deployed, customers have the choice of purchasing their Microsoft Dynamics solution or use the Microsoft subscription pricing.

 

Microsoft Dynamics 365 Business Central is a business management solution that’s connecting people and processes like never before. From day one, it makes ordering, selling, invoicing, and reporting easier and faster. Turn your multiple disconnected systems into one. Boost efficiency with automated tasks and workflows—all from within familiar Office tools like Outlook, Word, and Excel. Get a complete picture of your business and make better business decisions, with built-in intelligence when and where you need it. With your business running in the cloud, it’s easy to change and adapt at your own pace without involving IT. Start with what you need, quickly and easily, then be ready for growth.

Microsoft Office 365 Dynamics GP works with Office and Office 365 to extend the value of your business solution with enhanced productivity, collaboration, mobility and business intelligence. Dynamics GP utilizes existing functionality to you give you more value such as sending document to SharePoint or OneDrive, word documents, refreshable excel reports, Power BI reports.

 

Microsoft Cloud Dynamics GP gives you the power to choose how you want to utilize cloud technologies. You can deploy in the Microsoft cloud on Microsoft Azure in either a public or private setting. If you aren’t ready to fully go to the cloud you can do a hybrid. This flexibility gives you choices now and into the future. Azure gives you the flexibility and enterprise-class security, reliability and scalability.

 

Multi-Company Monitor, analyze, and report on multiple companies or functional divisions within your organization. Dynamics SL is a Focused and flexible capabilities help you set up multiple companies in one or more databases, run processes, close books, and report results by company or in a consolidated company.

 

Accountnet helps drive the digital transformation of your business on your terms. As a Microsoft Gold Certified Partner, Accountnet helps companies get up and running with Microsoft Dynamics. Our Microsoft solutions provide accounting personnel the information they need to do their jobs well — wherever they are, in whatever application they choose to use. Take the next step toward growth with Microsoft Dynamics 365 in the cloud. Contact us at Accountnet to learn more! 212-DYNAMICS or Visit www.microsoftfinancialsoftware.com

 

Witten by Accountnet, Inc.

LinkedIn

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.

Tips 画面レイアウトどこまで気を使っていますか?

$
0
0
本記事には私見なども含まれております。日本マイクロソフト株式会社の公式見解ではないことを事前に明記させていただきます。ご了承ください。  今朝コンビニエンスストアに入って、朝のコーヒーを購入しようとした時でした。熟練のスタッフさんと、新人らしきスタッフさんが、お菓子棚のところで話をしていました。その状況ですが、熟練スタッフさんが、新人のスタッフさんに、お菓子商品の陳列を指示したようで、その報告と確認をされていました...(read more)

So, You’ve Heard of Agile?

$
0
0
agile

You’ve got a vision and lots of ideas on how to make it reality. You quickly conclude that the realization of your vision will include a software development project, so you begin researching project methodology and soon discover the growing popularity of Agile-run projects.

The touted benefits of Agile project methodology are many:

  • Higher Product Quality
  • Higher Customer Satisfaction
  • Increased Project Control
  • Reduced Project Risks
  • Faster Return on Investment

These characteristics are undeniably appealing and may certainly justify Agile over the traditional Waterfall approach to project management. But there are additional factors to consider before settling on the best approach for your upcoming project, and in today’s blog we’ll describe those additional factors.

Becoming Self-Aware

The following factors will ultimately impact any organization’s selection of a project management methodology:

1. Project sponsorship and executive visioning

2. The company’s or Project Management Office’s norms or historical approach towards software development projects

3. External influences and industry trends

Asking the Right Questions

The following questions should be asked when determining which project management methodology to adopt:

1. Is the upcoming project go-live an initial deployment of the application(s)?

Agile projects can often add value more quickly than Waterfall projects. One caveat to this is that the product being implemented needs to be robust enough to be utilized by a certain user group without unnecessarily adding an additional application to complete their job function(s). Furthermore, establishing a prioritized product backlog is essential to achieving success in an Agile project. Generally, the more refined a backlog is, the more effectively and efficiently the functionality can be implemented.

2. Do the project team members have a common understanding of what “Agile” means?

Level-setting what an Agile project entails should occur prior to the start of a project to ensure that all team members understand the project plan, user story lifecycles, and sprint ceremonies (all components of Agile).

3. Is the organization capable of providing the necessary overhead (staff time and resources) to maintain sprint ceremonies?

Agile project management methodology allows projects to pivot their focus, change requirements, and tweak design as the project ensues. However, this autonomy incurs a cost of resource bandwidth that can restrict productivity elsewhere in the organization.

4. Are there multi-layer dependencies or cross-team/cross-departmental dependencies involved?

Additional complexity should be considered as a project risk given the probable impact that inter-departmental coordination is inherently challenging in most organizations.

Once you’ve developed some self-awareness around your organization’s approach to project management and answered some critical questions about the project and your business, you’ve got a direction on what project methodology to leverage in your upcoming project. Your next step is to find a Microsoft Dynamics 365 business partner to help manage your software development project! We can help – learn more about our services here.

Happy Dynamics 365’ing!

New feature in 8.1.3: Settle remainder

$
0
0
When you are in the settlement window, you can now settle the amount remaining from settlement activity by applying that amount to a ledger account or another customer (in A/R) or vendor (in A/P). You...(read more)

New feature in 8.1.3: Control collection letters at the customer level

$
0
0
You can now set up collection letters at the customer level so that the collection letter code for each transaction is tracked, but the collection letter processing will be based on a single collection...(read more)

2019-R1 Payroll tax update

$
0
0

We've just received the update from our tax partner for us to begin development on the end of year payroll tax updates. Over the next few days we'll update the blog post and provide the following:

  • Listing of tax updates included in this release
  • Confirmation that the update is binary-only, and doesn't require an application update
  • ETA for release for Dynamics AX 2012 R3 and Dynamics 365 F&O releases. 

We realize the window for taking the updates will be tight, so we'll look to get these released as soon as possible. 

Thank you

Dynamics 365 Project Service Automation: Customizing the new Custom Control based Time Entry grid

$
0
0
Tested on: Dynamics 365 version 9.2, PSA solution version 3.3, Unified Interface The October ’18 update of Dynamics 365 Project Service Automation has introduced many much needed features to PSA. One of these features is the new Custom Control based Time Entry grid. For one, it makes submitting Time Entries a lot faster. With the new CC grid the customization experience around Time Entries has also changed slightly. Everything is still fairly straightforward but there are some new nuances...(read more)

SQL Server 2008 and Windows Server 2008 end of support: What you need to know

$
0
0

End of support for SQL Server and Windows Server 2008/2008 R2 is approaching fast—coming to an end on July 9, 2019 and January 14, 2020, respectively. With just a little over six months until SQL Server end of support, it’s best to create a plan of action sooner rather than later.

Failure to update your customers’ platforms could result in compliance gaps or security attacks. The risks are too important to ignore. One in five organizations loses customers due to a cyberattack and nearly 30% lose revenue.1 4.2 billion records were stolen in 20162 and hackers aren’t going anywhere—the expected cost of cybercrime to the global economy by 2022 is $8 trillion.3

The modern work landscape is changing. There is a need for massive data growth, powerful insights into unstructured data, and analytics that drive digital transformation. End of support provides a chance for you to not only revisit your customers and ensure they are modernized, but to move them to the cloud and increase your monthly profits.

Prepare for end of support by reviewing our newest resources and watching on-demand webinars created specifically to guide you through these events.

EOS Campaign content

Get to market quickly with the latest end of support assets! You’ll find proactive proposals, to-customer pitch decks, sales guides and datasheets designed for Windows Server and SQL Server 2008 EOS. Download today.

On-demand webinars

Leverage SQL Server by Moving to Azure Virtual Machines (VMs)

Watch this StepUp Technical training to learn how to modernize using SQL Server on Azure Virtual Machines (VMs). You’ll learn everything from the basics of getting started with SQL Server Azure VMs and migrating on-prem data to the cloud, to how to take advantage of the Azure Hybrid benefit for significant cost savings.

The Leading Edge: Prepare for Windows end of support

Don’t leave your customers at risk. Use Windows Server 2008 end of life as an opportunity to re-visit your current customers and encourage them to adopt the latest technologies. When you watch this webinar, you’ll to learn how to assess your customers’ technology, migrate those who need to modernize, and optimize your resources for hybrid cloud workloads.

Customer Lifecycle Management: Windows Server and SQL Server 2008 end of support – Advancing with Azure

With the impending end of support deadlines, now is the time to upgrade, modernize, and transform your customers to current versions of SQL Server, Windows Server, or Azure services for more security, performance and innovation. This webinar explores common customer needs triggers, best practices to assess your customers’ server position, and options for transforming with Azure. Watch it here.

End of support, like any lifecycle milestone, offers you a change to reassess and set up your customers, and yourself, for the future. Don’t wait until it’s too late. Get started today. Don’t let SQL Server 2008 and Windows Server 2008 end of service sneak up on you! Prepare today!

In the meantime, you can find out how to go to market faster with an indirect provider. Get started now at http://aka.ms/indirect-providers. You can also join the US SMB Partner Insider conversation on Yammer, Twitter@SMBInsiderJoe, and LinkedIn.

1 Risk Based Security Report, 2017
2 Cisco 2017 Annual Cybersecurity Report, March 2017
3 Juniper Research Cybercrime & The Internet of Threats 2017 Whitepaper, 2017

Development for Dynamics – how it evolved

$
0
0
A lot has changed for Dynamics developers over the years. I was looking at this old post (well, 6 years old) by Gonzalo Ruiz, and I am still wondering what to make of it now: http://gonzaloruizcrm.blogspot...(read more)
Viewing all 51311 articles
Browse latest View live




Latest Images