Friday, October 23, 2015

Excel Copy/Paste feature not working on General Entry modified window

If you have grown used to the relatively new Excel Copy/Paste feature in the General Ledger Transaction Entry, you are probably enjoying the benefits of collecting journalized spreadsheets from around the company and simply integrating these into Microsoft Dynamics GP without too much effort.

Excel Copy/Paste in GL Transaction Entry window

The fact is, not having to run an integration from another tool for something apparently very simple, always seems to be the way to go.

Recently, however, I ran into a situation where this window had been customized with Modifier (but the same can be said for a third party alternate version of window) by a customer. The customer reorganized a few fields within the window and added a couple others with Modifier to address some specific business needs. As it turned out, the Excel Copy/Paste functionality no longer worked, even though the target fields remained the same. Reverting security to the original window rendered the feature usable once more.

If you must modify this window _and_ still require the Excel Copy/Paste feature, you will need to create an additional user with access to the original (core) window. This is very similar to what's required for Integration Manager to function when a window has been modified with Modifier or changed by a third party product.

Well, now you know! Happy copy/pasting!

Until next post!

Mariano Gomez, MVP

Tuesday, October 6, 2015

Microsoft Windows 10 Devices Briefing

Today, Microsoft continue to show why it is at the forefront of the computing and technology world. A company that was once joined by the hip to the personal computer (PC) is now able to move with the times with a vision centered on mobile computing - to think, a few years ago the company was scrambling to catch up with Apple and Google.

Just 10 weeks ago, Microsoft begun rolling out Windows 10 and now boasts 110 million users and 8 million business PCs. Once more, Microsoft surprises the computing world with a host of new computing devices designed specifically for Windows 10.

Windows 10 Devices Briefing

Microsoft Devices: Do Great Things.

The New Microsoft Band

The New Microsoft Band: Live Healthier and Achieve More

The New Microsoft Surface Book

The New Microsoft Surface Pro 4

The New Microsoft Lumia 950 and 950 XL

Tell you the truth, I moved from a Windows phone (Samsung ATIV S Neo) on the Sprint network to a Samsung Galaxy S6 Edge on the same network, which runs Android. While I have been able to adapt to the Android platform, I still don't quite get the fuzzy feeling I did with my Windows phone. Maybe if Sprint decides to take on the new Lumia phones, I will switch back in a heartbeat, but that's wishfull thinking. At this point, I will sign up for a new Microsoft Band as today I have the first iteration of that device which has been quite surprising so far (less the barometer feature now available in the second iteration). I will also be looking to upgrade my Xbox One to Windows 10 as soon as release becomes available. And speaking of Xbox One, here's one of the coolest commercials they have.

My son has been enjoying Forza 6, which I got when I went to Fargo for reIMAGINE 2015. This game has been awesome to play so far, but I find it challenging without a driving wheel. Maybe it's time to consider that Logitech G920 Driving Force.

I will also be looking forward to jump on a Surface Pro 4 as soon as I can, but for now it's all a matter of enjoying Windows 10 all around on my laptops.

Until next post!

Mariano Gomez, MVP

Thursday, September 17, 2015

Microsoft Dynamics GP Web Client no longer working on Google Chrome 45

If you had gotten used to running the Microsoft Dynamics GP web client on Google Chrome, chances are you have just woken up to the constant requests for installing the Silverlight plugin. You may have attempted the installation a few times by now, only to notice that you are still being requested to install Silverlight.

Microsoft Dynamics GP Web Client on Chrome 45 

Google Chrome users who normally relied on functionality that NPAPI plugins provided won't be able to make use of them anymore with the release of Chrome 45. NPAPI-only plugins such as Java or Silverlight are used throughout the web and while their use is declining, there are numerous applications and services that make use of either one or another plugin - for example, your beloved Microsoft Dynamics GP web client.

This Chrome Extensions article explains the security concerns behind the use of NPAPI-based plugins, mainly, the ability of said plugins to gain access to a user's local machines. Any security gaps in such plugins would render a user's machine vulnerable to exploits by malicious code.

However, this should not at all come as a surprise, since Google had it in the works to remove NPAPI support since September of 2013, see Saying Goodbye to Our Old Friend NPAPI, with Chrome 45 selected as target for final deprecation.

So what are the alternatives?

Well, you can fall back once more to Internet Explorer 10 (desktop), Mozilla Firefox, or even Apple's Safari. If my mind serves me correctly, the latter two will have some minor limitations (as in "may not be fully compatible").

Option number 2 would have you downgrading Chrome, if you are willing to get the installer from non-Google sites like Old Apps or File Hippo.

As a final note, the following browsers DO NOT support Silverlight:

Microsoft Internet Explorer 10 modern UI
Microsoft Edge (formerly code name Spartan, available on Windows 10)
Google Chrome (version 45 and above)
Opera (version 20 and above, current version is 32)

Until next post!

Mariano Gomez, MVP

Tuesday, September 1, 2015

You receive "Exception has been thrown by the target of an invocation" when running some reports in Management Reporter 2012 CU13

In my previous post, I talked about a cryptographic exception I encountered while upgrading Management Reporter 2012 from CU6 to CU9 (on the way to CU13), while attempting to setup the Data Mart database - see You receive "Could'n retrieve the list of available databases: The connection attempt failed" error when updating Management Reporter 2012. The solution turned out to be very simple, but in the scheme of things a bit time consuming to figure out. Once we had upgraded to CU9, it was time to attempt the upgrade to CU13.

The upgrade process

Upgrading to CU13 was pretty straight forward.  However, after the upgrade, the customer attempted to generate a couple of the many reports from Report Designer with the following error being displayed in Web Viewer:

This report can't be displayed. Make sure that your computer has an internet connection and that Management Reporter is running. If this problem continues, contact your administrator.

Management Reporter 2012 CU13 error when generating report to Web Viewer

When attempting to open the same report from Report Viewer, we obtained the following exception error, with the Report Viewer application crashing after clicking the OK button:

Exception has been thrown by the target of an invocation.


After the errors, we tried copying the columns, row definitions, and trees onto completely new report objects (rows, columns, and trees), respectively, and tried to run the reports once more, obtaining the same results. The customer relies on this report on a daily basis, so it was critical we fix whatever issue was causing these reports to crash.

After some back and forth with Microsoft Support, it was determined that with CU13 the B0 print control in the row is not working and causing the exception:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidCastException: Specified cast is not valid.

Microsoft Support is currently working on getting the issue written up and triaged so as soon as a bug number (or a fix!) is available I will publish more about it.

As it stands, we reverted back to CU9 and upgraded to CU12 which did not display the issue described herein.

Until next post!

Mariano Gomez, MVP

Wednesday, August 26, 2015

You receive "Could'n retrieve the list of available databases: The connection attempt failed" error when updating Management Reporter 2012

Hi everyone! I'm on the tail-end of upgrading a client to Microsoft Dynamics GP 2015 R2 and came up on an interesting issue when attempting to update Management Reporter 2012 CU6 to CU9.


In order to create my client's test environment for this upgrade, we cloned their production VMWare environment and went through all the usual server renames, static IP changes, SQL Server renaming, and so forth.

For the Management Reporter 2012 database server, we followed the applicable entries outlined in How to move Microsoft Management Reporter 2012 to a new server (CustomerSource access required), and in particular we removed the Application and Process services then ran the T-SQL script to re-create the certificate and symmetric key.

Once these portions of the configuration were in place, we proceeded to install Management Reporter 2012 CU9, first installing the Application and Process services - which also performed the overall ManagementReporter database update.

Next was to create the Data Mart database.

When we tried to connect to the Dynamics GP server to retrieve a list of the available databases to select the system database, we stumbled upon the following error: "Couldn't retrieve the list of available databases. The connection attempt failed."

Configuration Console - Dynamics GP Connection information error when clicking on the Database drop-down list

When I checked the Event Viewer, the following entry could be seen:

The encrypted setting, Password, could not be decrypted.
--- Exception Dump --- 
Caught Exception: [System.Security.Cryptography.CryptographicException] Encrypted data was invalid and cannot be decrypted.
Stack trace:
   at Microsoft.Dynamics.Integration.DataAccessLayer.DataProtection.Decrypt(Byte[] data)
   at Microsoft.Dynamics.Integration.DataAccessLayer.DataProtection.DecryptSettings(XElement settings)

User: Domain\MRAdmin


Clearly, the data source information to the Dynamics GP database server wasn't being adequately validated somewhere by the installer. Furthermore, the installer was attempting to decrypt the password I was passing in via Microsoft.Dynamics.Integration.DataAccessLayer.DataProtection.Decrypt() method which happens to be a part of the Dexterity Shared Components.

I then recalled that the Management Reporter Server installation process uses the Dexterity Shared Components to validate the connection to the system database. In reviewing the Dexterity Shared Components on the server, I found out that version 14 was installed -- version 14 corresponds to the Dexterity Shared Components installed by Dynamics GP 2015. So, I was a bit puzzled. However, further analyzing this issue, I realized that CU9 predates the days of Dynamics GP 2015, so the version of the Dexterity Shared Components it must be looking for were those of Dynamics GP 2013 or earlier. It was a long shot, but I installed the Dexterity Shared Components version 12 from the Dynamics GP 2013 CD.

Once I fired up Configuration Console and attempted the configuration of Data Mart, I was then able to choose the system database from the Dynamics GP server and complete the process just fine.

Additional Notes

In doing some poking around into the ManagementReporter database tables, searching for a potential answer to this issue, I found that the dbo.ControlCompany table contains the GLEntityConnectionInformation column, which stores an XML document with some connection information. If your test environment is a result of cloning a VMWare or Hyper-V image, chances are the data stored in this column will contain the original server information and will need to be edited to reflect the current test environment server information. By simply right-clicking on the table and choosing to Edit the Top 200 rows option, you can edit the server name. The content of the XML document stored in this column looks something like this (server name in red):

<?xml version="1.0" encoding="utf-16"?>
<ArrayOfEntitySetting xmlns:xsd="" xmlns:xsi="">
  <EntitySetting Name="DummyUserControl">
    <Value xsi:type="xsd:string" />
  <EntitySetting Name="SQL Server">
    <Value xsi:type="xsd:string">GPTOOLSTEST</Value>
  <EntitySetting Name="DDM Database">
    <Value xsi:type="xsd:string">DDM</Value>
  <EntitySetting Name="Organization">
    <Value xsi:type="xsd:string">TWO</Value>
  <EntitySetting Name="Windows Authentication">
    <Value xsi:type="xsd:boolean">false</Value>
  <EntitySetting Name="SQL User">
    <Value xsi:type="xsd:string">sa</Value>
  <EntitySetting Name="SQL Password">
    <Value xsi:type="xsd:base64Binary">AOaPHTA9VkmLvkUcyA053AEAAABurN19cbBVL3sfs/UoYU4o3YPglXB4SSrzLzXjlavUpC+uSNKdDYDDEjS9MfKKlao=</Value>
  <EntitySetting Name="Enable SSL">
    <Value xsi:type="xsd:boolean">false</Value>

So you maybe asking, "why not update from CU6 to CU13+Hotfix directly?". As it turned out, I found out that this while technically possible, causes some very undesired results with very complex reports. More on this in a follow up post.

Until next post!

Mariano Gomez, MVP

Wednesday, August 12, 2015

You experience slow performance exiting Microsoft Dynamics GP 2015 on Windows 10

Today I ran across a very interesting partner forum post, in which the consultant described a slow performance issue when closing (exiting) Microsoft Dynamics GP 2015, which started happenning after his client upgraded their Windows workstations to the newly minted Windows 10 operating system.

A Microsoft support engineer acknowledge that "there have been a few people experiencing this issue". The recommendation to bypass the slow application closing is to change or add the following Dex.ini setting to see if it resolves the issue on exit. The setting changes a Microsoft Dynamics GP global variable and avoids the pause that seems to be occurring during the exiting process.


This Dex.ini setting controls whether the Microsoft Dynamics GP application checks for the OLE Container application being opened at the time of shutdown -- a "shutdown" can occur if the user legitimately exits Dynamics GP or simply chooses to open either the Report Writer or Modifier tools. If the Container is open during the shutdown operation, Dynamics GP will attempt a graceful closure of it.

The default value of this setting is TRUE, whether the setting is present in the Dex.ini with a value of true or empty, or simply not present at all. This indicates to GP that it should always attempt to close down the Container if it is found to be open.

Given the fact that most customers are now taking advantage of Document Attachment (Doc Attach) and moving away from the Container application, there should be less and less dependency on Container, which would almost require that the default value for our flag is set to FALSE, rather than it's current state.

As usual, you must apply these changes to your environment only if you are experiencing this issue.

Until next post!

Mariano Gomez, MVP

Monday, July 27, 2015

New #MSDYNGP Certification Process

Hi everyone! I know, it's been a while since you've heard from me, but my contributions to the Microsoft Dynamics GP community go beyond just blogging and attending events. I've been involved with the development of the next generation of Microsoft Dynamics GP exams and certification process, which is been quite a rewarding experience and certainly a time consuming one. I have always been a firm believer that certifications are an important part of a professional career development, whether you are a partners, a consultant, or a customer, hence, I've spent quite some time over the past few months working with the good folks of the Association of Dynamics Professionals in a counseling capacity to bring new guidelines and a certification process that will be industry worthy.

But as many of you already know, this is the kind of stuff I really enjoy, but we cannot do this by ourselves, so here is where you come in: I NEED YOUR HELP!

The main goal is to build a set of exams that will lead up to a master certification, which will show various degrees of professional development to prospective employers, whether you choose to work for a Microsoft Dynamics GP customer, partner, ISV, or remain an independent consultants. The first iteration of the exam building process is to source questions from the general public. If you are interested in submitting one or more questions for the exam, we would love to hear from you and your help is greatly appreciated.

We have so far invested quite some time into building a solid certification process and need you to think about what questions you would like to see in the exams that will be administered down the road. This will require you to THINK and put some effort into coming up with the questions you submit.

You can go to and follow the instructions there to submit your questions. You’ll have to watch a video on what makes a good or bad exam question and there is a process to follow. Be patient and work your way through. There's no limit as to how many questions you can submit, but we want your best effort.

This is something that's going to benefit the community as a whole and will allow you to follow your career path in the Dynamics GP world.

Until next post!

Mariano Gomez, MVP

Friday, May 29, 2015

"A SQL Server login already exists for . Delete the user and create a new user" error when switching a user ID from web client only to mixed mode access

I'm completing the deployment of Microsoft Dynamics GP 2013 R2's Project Accounting and Time Entry approval workflow for a customer in Alabama who is currently deploying web client for extranet access (and timesheet entry) and desktop client for intranet access.

As a result, since time entry employees are remote, we decided to setup these user accounts as web client only. However, the customer wanted to provide an alternative to the web client in case it became unavailable. This meant that these users would needed the ability to access the Microsoft Dynamics GP desktop client via a Terminal Server provisioned (albeit temporarily) to support this goal.

The Problem

To meet this requirement, we needed to adjust the user accounts in Dynamics GP to also support SQL Server authentication (in addition to web client access), by deselecting the Web Client user only check mark and completing the SQL Login credentials information. Upon attempting to save the changes we received the following error:

A SQL Server login already exists for userID. Delete the user and create a new user.

As it so turns out with most application errors, you cannot just follow the instructions literally to fix the problem. In this case, we had more than 85 web client only user accounts created so "Delete the user and create a new user" wasn't an option and I don't know why I had a gut instinct this recommendation would not work anyways.

It also turns out that I tested this in Microsoft Dynamics GP 2015 and had no issues switching a user account from Web Client user only to a mixed mode access user account.

NOTE: "mixed mode access" user is a terminology I came up with to identify a Microsoft Dynamics GP user account with access capabilities from both the web client and desktop client.

The Solution

In troubleshooting this problem, the first thing is to focus on the first part of the error message, "A SQL Server login already exists". If a login already exists on SQL Server, then it should be visible under Management Studio - bear in mind that each Dynamics GP user account was setup as a web client only account to begin with. In principle, there should be no SQL Server security principal for these type of accounts.

Management Studio did not show any account created for the Dynamics GP under the Security folder. So the next logical thing would be to run a statement to check for a SID for the account in question:

SELECT suser_sid('TheUserID');

This statement returned an actual SID number (a long hexadecimal set of characters), confirming at least there was a corresponding SID for the account, even though we could not see the actual account in Management Studio.

Next was to verify then, what account was assigned to that SID. In order to do this, I ran the following SQL statement:

SELECT name FROM sys.server_principals where sid = (SELECT suser_sid('TheUserID'));

As it turned out, this statement returned no results. So here's the conundrum... GP thinks there's a SQL login for a user account that doesn't really exists on SQL, but has a SID.

Now, because there wasn't an actual SQL login for the user ID in question, I went ahead and setup a new SQL login with the user account by running the following statement:

sp_addlogin('TheUserID', 'somePassword');

The statement was successful and I could now see the SQL login under the security folder.

The next thing was to then reset the Dynamics GP web client user flag and assign the SQL login to the user account:

UPDATE SY01400 SET WCUser = 0,  SQLLoginID = 'TheUserID' WHERE USERID = 'TheUserID';

Since Microsoft Dynamics GP passwords are encrypted on SQL Server, you will now need to log into Dynamics GP, pull up the user account under the User Maintenance window, and change the password in the SQL login credentials section.

I cannot assess whether this is a bug or not, but suffice to say the same behavior is not present in GP 2015, so I must lean towards it being a bug.

I hope you find these troubleshooting steps useful.

Until next post!

Mariano Gomez, MVP

Sunday, May 24, 2015

DBMS: 12 Microsoft Dynamics GP: 0 error when updating to Microsoft Dynamics GP 2013 R2

Hello all! It's been quite a while since I've actually written anything of remote interest to anyone who follows my blog, but at the same time, you will be pleased to know that I've been quite busy in the consulting front, with upgrades, server migrations, complex multi-instance postings involving 10's of thousands of transactions, wrapping up some Field Service Automation projects, and the list goes on and on.

This time around I want to bring to the forefront, an issue I encountered updating from Microsoft Dynamics GP 2013 SP2 to Microsoft Dynamics GP 2013 R2 plus the latest service pack.


My client requested a server migration to a new environment where they wanted to deploy Dynamics GP 2013 R2 web client (plus the latest service pack) and upgrade their relational database management system to Microsoft SQL Server 2014. This is something I'm absolutely comfortable with (for the most part) given also that my client was sitting at Microsoft Dynamics GP 2013 with Service Pack 2.

As it is customary with these types of request involving a server migration, I followed the very clear instructions outlined in KB article 878449 - How to transfer an existing Microsoft Dynamics GP, Microsoft Small Business Financials, or Microsoft Small Business Manager installation to a new server that is running Microsoft SQL Server. I have walked through this article more times than I care to mention and can pretty much recite the steps by heart.

During the Dynamics GP Utilities process on the system database, I kept receiving the error message:

"Microsoft Dynamics Utilities Install/Upgrade failed"

This seemed to be a recurring problem on the sySrsReports table during the system database update. Upon further inspection, I noticed the temp table created for the sySrsReports (sySrsReport_T) was still present and that dropping this table would allow Dynamics GP Utilities to continue processing the system database update to completion.

However, the company database updates were failing with the following error messages:

"The stored procedure GetBD_UpgradeStatus() of form duSQL Pass Through SQL returned the following results: DBMS: 12, Microsoft Dynamics GP: 0."

Upon clicking the OK button, the following error message would appear:

"The stored procedure UpdateDB_Upgrade() of form duSQL Pass Through SQL returned the following result: DMBS: 12, Microsoft Dynamics GP: 0."

The above two errors would reiterate a few times (5 or 6 to be exact) to finally produce the following error:

"The stored procedure getCompanyID() of form duSQLInstall Pass Trough SQL returned the following results: DBMS: 12, Microsoft Dynamics GP: 0."

And would come to rest with the error described at first. Now, I've done myriads of upgrades in my lifetime, but this one put me on a cliff for a while. The DEXSQL.LOG clearly did not show anything specific and the duinstall.log just showed execution messages ("Message encountered" messages) happening where the problem occurred.

In all fairness, the DEXSQL.LOG kept showing a "[Microsoft][SQL Server Native Client 10.0]Communication link failure" error which lead me to check the version of SQL Server Native Client I was running, which was version 10. I then upgraded to SQL Server Native Client 11.0 and nothing really changed.

I also realized the update was failing while attempting to create the table auto procedures for the wkPostingValidationState table. I then drop this table and its auto procedures and restarted the update in the hopes it would recreate the objects once more, but was not successful.

Suffice to say, I restored the system database and company databases in order to devise a different strategy.

The Solution

After tinkering with the installation, I decided to retrace my steps and realized that during the installation process, I chose to install Web Client Runtime Engine - after all, this machine was the web server and would be running a Single Machine instance of Dynamics GP. I then decided to install the Dynamics GP client on the database server without the Web Client Runtime Engine and launch GP Utilities once more. The update process ran flawlessly and without any errors!

I still cannot understand why the presence of Web Client Runtime Engine would have caused an error while updating a service pack, however I have to remind everyone of the official Microsoft stance: "the session host must only be used to perform very little administrative work". An update is certainly everything but a "little administrative work".

It was good to finally get pass these issues and complete the update process for my client.

Please take a look at my GPUG webinar on upgrades at:

Mariano's Toolbox: Upgrading to Microsoft Dynamics GP 2015 for dummies 

Until next post!

Mariano Gomez, MVP

Microsoft Convergence Atlanta 2015 (#CONV15) - Wrap Up

Hey, not that this concerns anyone, but finally here is the wrap up post for the Convergence 2015 event. It's really been a busy couple of seasons for this writer (not that I'm complaining!), so I have had to opt for work instead of blogging which I'm sure you will understand as a reader.

Microsoft Convergence Atlanta 2015: GPPC PreGame

Other entries on the event, from my good friend David Musgrave:

At the time of this writing, I'm preparing myself for the GPUG Summit conference in Reno, Nevada. Things are continuing to be hectic

Until next post!

Mariano Gomez, MVP