Wednesday, November 23, 2016

Google Chrome Penalizes Websites Using SHA-1 SSL Certificates

Just recently, I was working with the Microsoft Dynamics GP 2016 web client and, as is customary, I run my tests on Google Chrome and Microsoft Internet Explorer and Edge browsers. When I brought up the web client website on Internet Explorer and Edge, nothing out of the ordinary seem to happen and effectively, the address bar is squeaky clean, as shown below:

Microsoft Edge address bar

Internet Explorer address bar

However, when you bring up the same site in Google Chrome, you are greeted with a site configuration warning and struck-out https prefix, as shown below

Chrome address bar

If you further click on the warning sign, you get additional information stating:

"This site uses a weak security configuration (SHA-1 signatures), so your connection may not be private."

The Details link is further more descriptive by opening the Chrome Security pane, where you get additional information stating the certificate expiration date is approaching soon and that the page is insecure.

So, I figured, an SSL certificate is an SSL certificate and SHA-1 is by far better than HTTP or no certificate at all (which is not supported by the web client). However, I started digging a bit more and, as it turned out, Google began phasing out support for SHA-1 certificates since version 42 of Chrome. The phase out has happened slowly. In version 42, users received a simple yellow warning triangle with a padlock to indicate the site used a weak SSL encryption, IF their certificate expired in 2016. If the certificate expires past 2016 -- like in the case of my certificate -- the user would receive a "broken https" indication.

However, at this point, it seems Google is not planning on blocking connection to sites with SHA-1 certificates, but this is not assurance that it won't happen. So what do you need to do? If you have third party certificates in place, you probably have already been contacted by your Certificate Authority company and they probably have issued you a SHA-256 certificate. If you are using Active Directory Certificate Store certificates, you can read up the Technet article on Implementing SHA-2 in Active Directory Certificate Services.

If you are using Self-Signed certificates, you may want to use these only in a development environment and forego their use in production.

If you are unsure of what type of encryption you are running, you can check your SLL certificates at:


Note that the Qualys test can only be run on port 443.

Until next post!

Mariano Gomez, MVP

Thursday, November 10, 2016

Five Microsoft Dynamics GP Accounts Payable windows in need of renaming

As many of you know, I am now a member of Mekorma's Software Engineering team. A big part of what I do revolves around designing and engineering new features for our existing products and building entirely new products. In a cursory review of our flagship product, Mekorma MICR, I realized that Microsoft Dynamics GP has five (5) windows in need of some serious face lift. You see, the face lift is not because there's anything wrong with the windows layout, but rather, everything wrong with their titles.

In the days when all the Accounts Payable module could do was check printing, the title of these windows made perfect sense. However, times have evolved and product functionality has expanded to support multiple vendor payment methods: everything from traditional checks, to transferring of electronic funds (EFTs), to -- with the introduction of Dynamics GP 2016 -- credit card payments.

NOTE: The credit card payment feature supports building the payment batch and generating the remittances, but does not perform the actual charge and settlement of the credit card itself.

The windows are as follow:

1) Select Payables Checks

The proposed name change for this window is Build Payments Batch.

Select Payables Checks window
 2) Edit Payables Check Batch

The proposed name change for this window is Edit Payment Batch.
Edit Pauables Check Batch

3)  Edit Payables Checks

The proposed name change for this window is Edit Vendor Payments.

Edit Payables Checks

4) Print Payables Checks

The proposed name change for this window is Print Payables Documents.

Print Payables Checks window

5) Post Payables Checks

The proposed name change for this window is Post Payables Documents.

Post Payables Checks
Some of these windows will need to undergo changes to prompts, values within drop-down lists, changes in button captions and even changes in reports to reflect the new realities. However, it is for the greater good of the product. 

So, here's what I need... I need you to click on the following link and vote to push Microsoft to make these changes.

Here are a few immediate benefits of this change:

1. Increase relevancy of and provide clarity to the Accounts Payable functionality. Frankly, GP doesn't only print checks as a mean to pay vendors.

2. Increase product acceptance in international markets. Most countries outside of the USA and Canada do not generate checks as a payment instrument and the simple fact that all these windows make reference to checks (cheques elsewhere) can turn off a prospective client from buying the product or may put a re-seller to explain his or herself away. 

3. Ease of understanding of product capabilities by customers and partners. You are the one who benefits directly as a result. Clear windows, with clear descriptions can only facilitate and reduce the amount of training required to understand the product.

4. Ability to expand into future payment methods without impacting customer's and partner's understanding of the product.

So please get out there and vote!

Until next post!

Mariano Gomez, MVP

Thursday, November 3, 2016

Microsoft Dynamics GP 2016 web client UI not displaying icons

Just today, I ran into a community forum post requesting an answer on why Microsoft Dynamics GP 2016 web client UI does not display icons. Since I had ran into this same issue before, I though I would I create this article to address the topic.

The Problem

Most users reporting this issue, experience things like the images shown below, where the Microsoft Dynamics GP logo and upper left corner application splash image are missing.

Microsoft Dynamics GP Sign In page (Sessions)

Furthermore, if you are able to access the application, mind you, sometimes this is not possible due to static content restrictions, you may find that your navigation bar and other areas of the application are missing the respective icons.

It is worth noting that in most cases, the missing icons do not negate the events of the buttons or objects they are associated with.

The theory

In web development, static content are files that don't change based on user input, and they consist of things like JavaScript, Cascading Style Sheets, Images, and HTML files. As you would expect, the Microsoft Dynamics GP web client icons and images fall within the category of static content. However, it is necessary to instruct the web server, in this case Internet Information Services (IIS), that it must publish any such content when identified.

Static Content is a feature that is turned on by default when IIS is deployed bare bones, this is, accepting all the default features - this is also known as deploying a static content IIS web server, which is the most basic of web servers.

The solution

Below, you will find instructions for Windows 10 and Windows Server 2012 and above.

Installing IIS Features on Windows 8 and Windows 10: Static Content

1. Right-click on Start and choose Program and Features

2. In the Windows Features window, locate and expand Internet Information Services.

3. Expand World Wide Web Services and Common HTTP Features.

4. Click on Static Content, to enable this feature.

5. Click the OK button. Windows 8 and Windows 10 will proceed to apply the selected changes. When finished, click the Close button to exit.

At this stage, a reboot may or may not be required. Follow any instructions provided after closing the window.

Installing IIS Features on Windows Server 2012 R2: Static Content

1. Open Server Manager by clicking the Server Manager icon on the task bar

2. In the Server Manager window, with the Dashboard and Quick Start selected, click Add roles and features, or click the Manage menu, and then click Add Roles and Features. The Add Roles and Features Wizard will start with a Before You Begin page. The wizard asks for verification of the following:

  • The administrator account has a strong password. 
  • The network settings, such as IP addresses, are configured. 
  • The most current security updates from Windows® Update are installed.
3. On the Before You Begin page, click Next.
4. On the Installation Type page, select Role-based or feature-based installation to configure a single server. Click Next.

5. On the Server Selection page, select Select a server from the server pool, and then select a server.

6. On the Server Roles page, expand Web Server (IIS).

7. Click Next twice to bypass the Features page and the Web Server Role (IIS) page.

8. On the Role Services page, expand Web Server and Common HTTP Features. Click to enable Static Content.

9. After you have added the role services that you need on the Role Services page, click Next.

10. On the Confirmation page, verify the role services and features that are selected. Select Restart the destination server automatically if required to restart the destination server if the settings need to take immediate effect. To save the configuration information to an XML-based file that you can use for unattended installations with Windows PowerShell, select Export configuration settings, move to the appropriate path in the Save As dialog box, enter a file name, and then click Save.

When you are ready to start the installation process on the Confirmation page, click Install.

Until next post!

Mariano Gomez, MVP

Thursday, October 20, 2016

Microsoft reIMAGINE 2016 - Day 3

Microsoft reIMAGINE 2016 hosted by Dynamic Communities is now over, but I did not want to let this week go by without giving you an account of my experiences at the conference, which sure brought a lot of surprises to all the partners in attendance.

Wednesday, September 21, 2016

Day 2 had us doing a bunch of bar hopping throughout Downtown Fargo, but I cannot minimize the amount of learning opportunities going on throughout Microsoft Campus and the Hilton Garden hotel. Today would mark the last day David and I would be presenting and it couldn't be on a better topic: Leveraging GP Power Tools. As is customary, our session was standing room only.

Leveraging GP Power Tools
Because of the nature of the audience and the type of event we were presenting at, this session was fairly technical in nature, highlighting some of the GP Power Tools capabilities geared towards system administrators and software developers alike. The key to keep in mind here is that GP Power Tools is now distributed by Mekorma, Inc. worldwide. If you currently own the Support Debugging Tool, please note that it is no longer supported by Microsoft or Winthrop Development Consultants and that you must upgrade to GP Power Tools.

Finalizing our session, David and I would quickly pack our bags, grab some box lunch, and prepare for the Microsoft Collaborative Development meeting, or Collab Dev for short. This meeting is held annually and is a private meeting where ISVs can listen in on product direction and the nuances behind efforts to improve product time to market. In return, Microsoft receives feedback on the pains being experienced by developers at large and strategies to mitigate those pains, in the form of suggestions to improve the tools used by the Dynamics GP development community.

Microsoft Collaborative Development meeting: Brian Roney listens to ISVs concerns
As the content of this meeting is under Non Disclosure Agreement (NDA), I cannot really describe the topics covered or the strategies addressed. Following the meeting, David and I decided to corner Brian Roney and Chad Sogge to ask for some improvements to the Dexterity development system. Hopefully, some of our suggestions made it to the list of new Dexterity features.

After the Collab Dev meeting, David and I returned to the Hilton Garden, where Mekorma would be hosting a partner learning session and presenting our new product, Muti-Batch Management (MMM). MMM is a really cool piece of software that allows companies to create profiles to select and build check batches, and print and post checks and EFT transactions across multiple companies. The user only needs to setup a few rules and with the click of one button, MMM will automatically execute these processes, login into every company where they need to be completed, all without user intervention.

Mekorma's Partner Session
You can find out more about MMM here.

The Mekorma partner session also presented some of the capabilities of GP Power Tools and discuss pricing and implementation approach of all our products with partners.

Angel Blum presenting Mekorma Products
As usual, all good things must come to an end. The conference was officially over and some folks would begin to leave Fargo this same afternoon, weather permitting. I had a chance to catch up and say goodbye to some of my friends in the dining area of the Hilton Garden.
Rachael Brancich

David Musgrave and John Lowther

Linda Stone

Chris Dobkins
Mekorma would host a partner dinner at HuHot Mongolian Grill. The idea at this place is that you are in control of your own meal, which is stir fried by some young cooks right in front of your eyes, on a big round flat iron cast surface which rotates slowly. As the food rotates, you move along with it, and somehow, the cook figures out which one is yours and delivers your meal right at a pick up station. You then seat yourself and have at it.

Mekorma Partner Dinner
For this partner dinner, we had 33 people in attendance and were occupying around 5 big tables. Craig Clapman, Mekorma's president had the idea to borrow David's camera to take a group picture. On the way down from the wall dividing two sections of the restaurant, he managed to fall and damage David's camera.

For those of you not familiar with David's camera, this is the second replacement he's made while in Fargo. The first replacement was precisely at the 2015 reIMAGINE where he somehow managed to wipe out all the pictures on the camera, in addition to messing up the camera itself.

David was lucky enough to be able to find an exact camera the following day at a store in Fargo. It was the LAST ONE available of its kind.

Angel Blum
Before leaving, I managed to grab a picture with Angel from Mekorma. Ain't she a sweetheart?

Until next post!

Mariano Gomez, MVP

Monday, October 3, 2016

Microsoft reIMAGINE 2016 - Day 2

Microsoft reIMAGINE 2016 hosted by Dynamic Communities is now over, but I did not want to let this week go by without giving you an account of my experiences at the conference, which sure brought a lot of surprises to all the partners in attendance.

Tuesday, September 20, 2016

Well Day 1, was certainly jammed packed with activities for David and I. Today however, was more of a transition day, where I would get to attend a few sessions, along with presenting one of my own.

I started out the day with Understanding Workflow and Document Attach, presented by Theresa Nistler, Senior Program Manager at Microsoft. Frankly, I neglected learning the initial versions of Workflow, but Dynamics GP 2016 certainly rocks and new and improved version of it, with easy configuration and a slick integration to the Document Attach feature, which I have implemented a few times. It was also good for me to attend this session, as I have a development project that involves integrating with Workflow, to improve some of our product capabilities here at Mekorma.

Following Theresa's session, it was time for me to go get setup to present my session, Dynamics GP Web Client Infrastructure and Troubleshooting. While I have presented web client sessions at previous conferences, as recent as Amplify, this session was totally new in its content and reach, as it was geared toward technical and consulting folks. My approach to this session was fundamentally exploring the web client architecture and infrastructure, all the while showcasing some of the tools I use to troubleshoot issues when installing and deploying the application.

Next off was some lunch with my coworkers, Lee Butenhoff and Jay Manley at Spitfire Bar &Grill, to discuss some of our most immediate project needs and deliverables. Having time with the guys in Fargo was awesome as we don't get to have these face to face exchanges that often, so to the tune of awesome ribs and fountain drinks, we went over all that we needed to accomplish after reIMAGINE.

Apparently, I had walked away from my session leaving my cell phone at the podium. Although the thought of losing once cellphone is always scary, I was pretty sure it would be delivered to the proper hands, so back at the Microsoft campus, I ran into Shanna Hensch from Dynamic Communities, who already was looking for me to turn over the phone back to me.

I made sure all was cool with my phone and to my surprise, I came across this fantastic selfie featuring the beautiful Tonya Anderson, Global Partner Engagement Manager at Dynamic Communities, who thought it would be fun to snap herself for posterity.

Tonya Anderson
At 2:45 PM, I decided to attend the session Custom Workflow Creation with Vince Guzik, Senior Software Engineer at Microsoft. Vince's presentation was a no nonsense display of how to rapidly create custom workflows with Dexterity, by using API functions created in the Dynamics GP dictionary for this purpose. A constant definition, a couple script procedure calls, and voila! A custom workflow! The real kicker is that existing Microsoft Dynamics GP workflows can be extended to include custom fields from other dictionaries, minimizing the need for from the ground up workflows.

Following the afternoon sessions, we had planned to have dinner among the Mekorma developers in attendance and go bar hopping in downtown Fargo, as part of the ISV sponsored Pub Crawl, so I went back to the hotel to change off and meet Jay and David downstairs to leave.

NOTE: Although David is not an official Mekorma employee, he works with us on special projects and we distribute his products worldwide, as part of the arrangements we have with Winthrop Development Consultants, so he's an integral part of the team.

Jay Manley, Lee Butenhoff, David Musgrave, and Mariano Gomez
Jay and Lee, being the locals, selected Rustica Eatery & Tavern in Moorhead, MN, just across the Red River from Fargo. Rustica is a great spot serving creative American fare in one room and artisan pizzas & beer in the other. The atmosphere in this place is upscale without being pretentious and the food is to die for.

On the way out to the pub crawl, David decided he needed to have a picture with Jay's Hummer H2, on the parking deck.

David Musgrave and Hummer H2
Our next stop would be downtown Fargo, just a few minutes from Rustica, where we had dinner. To note also, the keynote was taking place at the Fargo theater, but this year we decided not to attend in favor of the pub crawl. I have to admit that coming to Fargo at the beginning of Autumn is really fantastic. The weather couldn't be any better and the city is just a vibrant place.

Fargo Downtown

Fargo Theater
 Another view of the same street (Broadway N).

While the pub crawl would take us to several spots, our group decided to target Pickled Parrot sponsored by Njevity, Dempsey's Public House sponsored by Binary Stream, and Sazerac Alley sponsored by Greenshades Software. At the end of the evening, we decided to settle for Pickled Parrot - Big up to Njevity for throwing a really cool party!

Until next post!

Mariano Gomez, MVP

Friday, September 30, 2016

Microsoft reIMAGINE 2016 - Day 1 (Part 2)

Microsoft reIMAGINE 2016 hosted by Dynamic Communities is now over, but I did not want to let this week go by without giving you an account of my experiences at the conference, which sure brought a lot of surprises to all the partners in attendance.

Monday, September 19, 2016 - Part 2

Monday morning was sure a busy one and with the General Session over, it was time to go find a place to continue prepping for our sessions in the afternoon.

It was time for our first session, NEW Development Tricks & Hacks, which centered around Microsoft Dexterity development. David and I had done this session at GPUG Summit 2015 in Reno-Tahoe, where we presented 25 tricks and hacks. This time around, we would add 25 new tricks and hacks to the arsenal, so attendees could walk away with new stuff to try. To note, the slide deck for this session contains the original 25 tricks and hacks and can be downloaded from the reIMAGINE 2016 materials page.

New 25 Tricks and Hacks session
Following our NEW Development Tricks & Hacks session, David and I would be joined by Brian Roney, Principal Engineering Lead at Microsoft, and Rob Anderson, Sr. Software Engineer at Microsoft for our Dexterity Panel session. This session was meant to be a free form, ask-whatever-you-want-type session where all 4 of us panelist would address any development related inquiries from the attendees.

Dexterity Panel session
I must say, all conferences should have more of these type of sessions as you can get some really engaging questions.

It was the end of our presentations for the day and it was time to go mingle with partners and ISVs at the reception, which would be held downstairs in the lunch room. Walking around, I had a chance to say hello to the folks from Rose ASP who were giving away some really cool workout t-shirts promoting their cloud solution.

I also had the opportunity to say hi to a number of folks from Njevity, Jet Reports, and Vicinity Manufacturing.

Jonathan Oesch (Jet Reports), Belinda Allen (Njevity), Gayle Giguere (Vicinity), Randy Smith (Vicinity), Melissa Sandrovich (Njevity)

As the reception was winding down, I left to my hotel to put down my stuff and get ready to go hang out at Shotgun Sally's, where the folks from eOne Solutions would be hosting their now popular Smartner Party. Upon arrival, I had a drink and proceeded to mingle with the folks in attendance. A few minutes into my arrival, something special happened: my dear friend of many years, Mark Anderson announced that he would be shaving his beard and head in benefit of the Children's Miracle Network Hospitals.

Now, this would be a non-consequential, non-issue only if Mark was another person, but those of us who have known Mark for a long time (and in my particular case, for the better part of 20 years), have not seen him EVER without a beard - EVER! In fact, Mark made it public knowledge that his children had NEVER EVER seen him, in over 30 years, without a beard.

Mark and wife Donna
To make matters even more interesting, Mark's wife, Donna would be doing the honors of getting rid of his hair, both head and facial. Mark's only request was for the mustache to stay. In an effort to support the cause, Mark would be requesting donations from all partners in attendance with the goal of collecting $1,000.

Mark hadn't shaved for the last 30 years 
And there goes the first pass, with the Vikings wings on each side

A man must have a drink though

The deed is completed

Congrats to Mark, all for a good cause
After completing the shaving, Mark had collected over $3,000, putting him at the top of the funds raiser's list. To protect the identity of the innocent, this is where all accounts of the party ends.

Trouble makers: Sheila Jefferson-Ross and Tanya Henderson
Follow me on Monday for the accounts of Day 2.

Until next post!

Mariano Gomez, MVP