Microsoft Dynamics GP 2016 Cookbook Now Available In August

Microsoft Dynamics GPMark Polino and I have been working on a new version of the Microsoft Dynamics GP Cookbook for Dynamics GP 2016. Originally, it was scheduled for publication in January 2017.

However, Mark and I were able to proceed a tad ahead of schedule, meaning the Cookbook is now slated for release in August:

Microsoft Dynamics GP Cookbook

That’s right; scheduled for release this month. Five months ahead of schedule. Don’t worry though, the quality is as high, if not higher, than previous versions as this book is a genuine collaboration between Mark and I. By splitting the work in this way, we were each able to focus on particular areas in which we had strengths.

We also received good feedback, to guide improvements, from fellow MVPS Leslie Vail and Jivtesh Singh.

You can pre-order the book from Packt Publishing, and very soon your pre-orders will be shipped. From what I gather the book should be available to order, as opposed to pre-order, in the next week or so, so you won’t need to wait long to receive your copy.

New Microsoft Dynamics GP Sample Data

Microsoft Dynamics GPMicrosoft have been adding quite a lot of new functionality to Microsoft Dynamics in recent versions, but the sample data has not been getting updated.

To remedy this, Terry Heley on the Dynamics GP Support and Services Blog has shared some macros, for Dynamics GP 2016, which add sample data into the Fabrikam sample data.

The new sample data focuses on a few modules:

  • Advanced Human Resources
  • Analytical Accounting
  • Workflow for HRP
  • Project Accounting Time and Expense
  • PTO Manager
  • Employee Self Service

Terry points out that this is a run at your own risk macro built on GP 2016, although it would probably be usable on Dynamics GP 2015 as well.

There are instruction documents with each macro as macros can crash based on the menu bar selected in user Preferences.

Also note that there is no support for these macros so no cases can be logged if issues are found.

The download link is available at the end of the post.

Pre-Conference Training for reIMAGINE Attendees

Microsoft Dynamics GPIf you are going to reIMAGINE then you can also sign up to one of two training courses which are being run on the day before the conference.

The first is on Working with Excel, Power BI and Dynamics and is being presented by MVP Belinda Allen:

Business Intelligence (BI) and Microsoft Power BI is everywhere you look. Are you getting the right answers AND the right questions? This class is designed to walk you through the basics of all the Microsoft Power BI tools. We’ll build dashboards, maps and even report on data from websites. When you leave the class you’ll understand the Microsoft Power BI tools and the Microsoft Power BI application. We’ll even talk pricing, although most of it is FREE.

The second is on Workflow 2.0 and is being presented by yours truly:

Microsoft Dynamics GP 2013 R2 saw the introduction of Workflow 2.0; a new Dynamics GP based approval workflow engine which replaced the old SharePoint based one. Learn how to design, create and maintain approval workflows and how to extend workflow to allow the creation of custom table joins.

If you want to attend training, you will need to select one of the two available courses (unfortunately, you can’t sign up to both) when registering for reIMAGINE.

reIMAGINE 2016 Partner Conference In September

Microsoft Dynamics GPMicrosoft’s conference aimed specifically at partners is called reIMAGINE and is happening in Fargo, North Dakota, between 19th and 21st September.

Pam Misialek did a post at the end of last month about the type of content content although exact details of sessions aren’t available yet.

She followed up a few days ago with a post pointing out, despite what many appear to think, that reIMAGINE is not the same as Amplify.

Amplify is a customer orientated conference, whereas reIMAGINE is aimed at partners and will therefore have content aimed at partners.

Key points from Pam’s post are:

  • The new US Sales team dedicated to helping partners sell more GP will be at reIMAGINE. They are not order takers. They were strategically hired to help partners sell more.
  • We will talk about the future of Dynamics GP with an updated roadmap.
  • The consultant track has more advanced sessions that go into troubleshooting.
  • The developer track will have new content plus content on PowerApps and PowerFlow.

One final point about this reIMAGINE, is that it will be the first Microsoft conference to which I have been. I don’t know if this will be a selling point to anyone, but it’ll be nice to meet the people I have been talking to online over the last few years.

You can book your place at the reIMAGINE home page.

SQL Script To Create macro To Activate BOMs

Microsoft Dynamics GPWhile implementing Microsoft Dynamics GP for a new client a while ago, we used Integration Manager to import over 100,000 Inventory items and then a SQL script to insert the 80,000 bill of materials (BOMs).

This worked well, in that it got all of the information loaded, but found that if we inserted the BOMs in this way, they could not be viewed in the BOM Inquiry window.

I used a SQL query to change the status from Active to Pending and then looked at the best way of changing them to Active through the Dynamics GP.

The only way to bulk change the data was by using a GP Macro; the usual way we do this is to do an extract of the data and then mailmerge this into a prerecorded macro in Microsoft Excel.

However, this can be avoided, by using the SQL select to not only get the data, but to output the macro at the same time:

/*
Created by Ian Grieve of azurecurve|Ramblings of a Dynamics GP Consultant (https://www.azurecurve.co.uk)
This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales (CC BY-NC-SA 2.0 UK).
*/
SELECT DISTINCT
	'# DEXVERSION=11.00.0364.000 2 2
	CheckActiveWin dictionary ''default''  form bmBillMaintenance window bmBillMaintenance 
	  TypeTo field ''Item Number'' , ''' + RTRIM(BMH.ITEMNMBR) + '''
	  MoveTo field ''Bill Status'' item 0 
	  ClickHit field ''Bill Status'' item 2  # ''Pending'' 
	  MoveTo field ''Expansion Button 1'' 
	  ClickHit field ''Expansion Button 1'' 
	NewActiveWin dictionary ''default''  form bmBillMaintenance window ChangeStatus 
	  ClickHit field ''Bill Status'' item 1  # ''Active'' 
	  MoveTo field ''Process Button P'' 
	  ClickHit field ''Process Button P'' 
	NewActiveWin dictionary ''default''  form bmBillMaintenance window bmBillMaintenance 
	  MoveTo field ''Save Button'' 
	  ClickHit field ''Save Button'' 
	'
FROM
	BM00101 AS BMH
INNER JOIN
	BM00111 AS BMC
		ON BMC.ITEMNMBR = BMH.ITEMNMBR
WHERE
	BMH.Bill_Status = 2

I needed to make sure that SSMS was configured to return the data into text and that the data returned was more than the default 256 characters.

Once you have the returned macros, save the file, open Bill of Materials Maintenance and then run the macro.

Change SQL Query Results Length

Microsoft SQL ServerWhen you execute a query in Microsoft SQL Server Management Studio, you can chooe to output the result to text, but this is limited to 256 characters which can not always be enough (my next planned post will have an example of this).

The setting for this can be changed in Tools >> Options.

Change the field Maximum number of characters displayed in each column from 256 to 8000:

Click OK to save the change; you will need to click the New Query button for the change to take effect.

Find SQL Trigger In All Databases

Microsoft SQL ServerIn the last post, I posted a SQL script which could be used to find a column in the database. This post has a SQL script which can be used to locate triggers in all databases.

Change the highlighted section to the name of the trigger you’re looking for and run the script.

This is not something I am going to do manually, so I wrote a script which would find all tables containing the specified column (change the highlighted section):

/*
Created by Ian Grieve of azurecurve|Ramblings of a Dynamics GP Consultant (https://www.azurecurve.co.uk)
This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales (CC BY-NC-SA 2.0 UK).
*/
DECLARE @command nvarchar(max)
DECLARE @Trigger VARCHAR(50) = 'utr_'

SELECT @command = 'IF EXISTS ( SELECT 1 FROM sys.databases WHERE name = ''?'')   
					BEGIN
						USE [?];
						DECLARE @stmt nvarchar(max) DECLARE @n char(1) SET @n = char(10)
						SELECT DB_NAME() AS ''DB_NAME'',t.name,t.is_disabled FROM sys.triggers AS t 
						INNER JOIN sys.objects AS o ON o.object_id = t.object_id WHERE o.name LIKE ''' + @Trigger + '%''
					END'

EXEC sp_MSforeachdb @command

Find Column In SQL

Microsoft SQL ServerDuring a recent upgrade we encountered an error which resulted in me poking around in the database attempting to locate column called PAYRCORD.

This is not something I am going to do manually, so I wrote a script which would find all tables containing the specified column (change the highlighted section):

/*
Created by Ian Grieve of azurecurve|Ramblings of a Dynamics GP Consultant (https://www.azurecurve.co.uk)
This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales (CC BY-NC-SA 2.0 UK).
*/
DECLARE @ColumnToFind VARCHAR(20) = 'PAYRCORD'
SELECT
	SCHEMA_NAME(t.schema_id) AS 'Schema'
	,t.name AS 'Table'
FROM
	sys.tables AS t
INNER JOIN
	sys.columns AS c
		ON
			t.OBJECT_ID = c.OBJECT_ID
WHERE
	c.name = @ColumnToFind
ORDER BY
	'Schema'
	,'Table'

Microsoft Dynamics GP Budget Import Issue

Microsoft Dynamics GPBudgets in Microsoft Dynamics GP are easy to maintain using the Budget Wizard. However, we do regularly field calls from clients reporting that the budget import is not working.

The problem reported, was the same as the problem always is; the budget template was not in the correct format.

The first image is the header of the one they were trying to import and the second is the Master budget I exported from GP to show them:

Excel Budget

Excel Budget

As you can see the former budget template has an extra row in the header; this is sufficient to stop the import working.

Everytime we have had this error reported we have found that something was changed in the budget template: a new header row, a header row being deleted, a column being added (the latter is the most common.

The client removed the extra row and was then able to import the budget.

Integration Manager Error: Cannot Open Database “GPLIV” Requested By The Login

Microsoft Dynamics GPWe’re in the middle of large upgrade project at the moment for a client and encountered an error when trying to run an integration.

This particular integration is an Account one, which has been extended with VB Script which checks to see if the segments exist, and if not, it inserts them. When a user tried to run the integration, they get the following error:

Opening source query...
Establishing source record count...
Beginning integration...
DOC 1 ERROR: System.Data.SqlClient.SqlError: Cannot open database "GPLIV" requested by the login. The login failed.
DOC 2 ERROR: System.Data.SqlClient.SqlError: Cannot open database "GPLIV" requested by the login. The login failed.
DOC 3 ERROR: System.Data.SqlClient.SqlError: Cannot open database "GPLIV" requested by the login. The login failed.
Integration Failed
Integration Results
    3 documents were read from the source query.
    3 documents were attempted:
        0 integrated without warnings.
        0 integrated with warnings.
        3 failed to integrate.

I did some double checking and it turned out that the user who was doing the testing had two Domain accounts (one with full name and one with initial and surname) and were not using the one I had configured originally.

All of the other users I had worked with had been using Domain accounts of initial and surname, which was the one I had configured, but this particular user was using the account with their full name.

Adding this Domain user account to the database with the DYNGRP role resolved the problem.