MDGP 2016 R1 Feature of the Day: Web Client Search

One of the major new features in Microsoft Dynamics GP 2016 R1 is the HTML5 web client; this replaces the Silverlight web client released in Microsoft Dynamics GP 2013 R2. One of the enhancements to the web client is the ability to search for a window or report:

HTML5 Web Client Search

The main features of web client search are:

  • Ability to search for a window or report within the GP web client
  • Shows a list of all open windows and reports based on search criteria
  • Shows a list of all windows and reports and the navigation based on search criteria
  • Ability to close all open windows at once.

This is going to be a little like the Where’s that window? function on Jivtesh Singh’s GPWindow site, but will also allow you to search for reports as well. This should prove especially useful to new users of Microsoft Dynamics GP, although with Microsoft’s record for problems with non-US English I will want to see it working with the UK English language packed version of GP before I give it a ringing endorsement.

Click to show/hide the MDGP 2016 R1 Feature of the Day Series Index

MDGP 2016 R1 Feature of the Day: HTML 5 Web Client

One of the major new features in Microsoft Dynamics GP 2016 R1 is the HTML5 web client; this replaces the Silverlight web client released in Microsoft Dynamics GP 2013 R2.

HTML5 Web Client

The new features of the web client are:

  • Support for Multi-browser (IE, Chrome, Safari, Edge)
  • Support for Multi-device (Windows, iOS, Android)
  • New controls created for HTML client
  • UI changes
  • Window Search
  • Office “banner”
  • Navigation, color, etc.

While the Silverlight web client was quite good, it was hobbled by dint of being Silverlight. There are quite a lot of iOS and Android devices out there which were unable to be used with the web client. Making the web client HTML5 not only makes it available cross browser, but it should also make it more flexible in terms of the size of device on which it can be used (Steve Endow at Dynamics GP Land posted his views on the “hamburger” menu used as a space saver back in September).

I’m fairly relaxed about this type of menu as I have seen them used on quite a few sites now and have largely adapted to their use. If that is the trade off for HTML5 then I’ll be happy.

Click to show/hide the MDGP 2016 R1 Feature of the Day Series Index

MDGP 2016 R1 Feature of the Day: Series Index

Microsoft Dynamics GPAs promised, yet slightly delayed by how busy I have been (end of March is year end for a lot of companies in the UK and we have a number of projects ongoing which have been dragging me the length of the country; 12,000 miles driven in the new car since the start of December), here is the posts on the new features being introduced in Microsoft Dynamics GP 2016 R1 which is due at the start of May.

This post is the series index for all related posts in the feature of the day series being posted on the Inside Microsoft Dynamics GP blog in the run up to the launch. I’ll be posting about the new features as they are announced and adding some commentary around how I will these will fit in for the clients I work with.

Click to show/hide the MDGP 2016 R1 Feature of the Day Series Index

eConnect Adapter Error In Integration Manager

Microsoft Dynamics GPA recent upgrade of a client from Microsoft Dynamics GP 2010 R2 to GP 2015 R2 recently resulted in an issue being found when testing some integrations in Integration Manager:

DOC 68 ERROR: eConnect error - The source was not found, but some or all event logs could not be searched.  To create the source, you need permission to read all event logs to make sure that the new source name is unique.  Inaccessible logs: Security.

The problem was a fairly simple one in that the eConnect service account did not have the necessary permissions; a very similar issue to the one I blogged about in March 2013.

The solution is to add the service account to the Local Admins group; instructions are in the post I linked above.

Dex.ini Switch To Prevent Users Changing DSN

Microsoft Dynamics GPThere are a lot of switches available which can be added to the Dex.ini file; Leslie Vail did a post back in February 2014 where she listed all of the switches she knows (and a long list it is too).

I need to have a proper through Leslie’s list again soon as there are some very useful switches. Two that caught my eye recently, which are on Leslie’s list, were actually posted by Béat Bucher on the Dynamics Community Forum (I was searching for something else when I found the post):

SQLLastDataSource=Dynamics GP
EnableServerDropDown=FALSE

These switches set the last DSN used and then disable the Server drop down to stop users changing it. This is useful when there are several DNSs created on the client machine (required for other applications), but only one of them is for Dynamics GP.

Microsoft Dynamics GP 2016 Release Date Announced

Microsoft Dynamics GPPam Misialek announced the release date of Microsoft Dynamics GP on the Inside Microsoft Dynamics GP blog yesterday: it is expected to be generally available on the 1st of May 2016.

Microsoft Dynamics GP includes the new HTML5 web client which will be compatible across multiple browsers and devices like iPads and Android tablets.

New Odata connections will be available for Power BI as well as new features requested by the Dynamics GP Community.

There will be posts on the new features starting soon which I will be reposting (as I normally do) with a little commentary on each one.

So hopefully on 1/5/2016 we’ll be able to get our hands on Dynamics GP 2016; good timing as I’m just coming back from holiday then.

View To Return Sales Orders (Work Status) Requiring An Assembly

Microsoft Dynamics GPI have some clients who use the Bill of Materials and assemblies within the Inventory series rather than the Manufacturing series and full MRP; their processes are not so complex that they need this level of MRP functionality. To make it easy to link an assembly to a sales order, the assemblies are created with the same ID as the order (one of the clients has a high level of automation added via customisations to automatically create the assembly from the order).

I’ve created a script to return this information on more than one occasion, so finally decided to post it here so I can easily find it.


CREATE VIEW uv_AZRCRV_SalesOrdersToBeAssembled AS
/*
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 4.0 International (CC BY-NC-SA 4.0 Int).
*/
SELECT
	CASE WHEN LEFT(RTRIM(SOP102.SOPNUMBE),3) = 'ORD' THEN
		SUBSTRING(RTRIM(SOP102.SOPNUMBE),4,LEN(RTRIM(SOP102.SOPNUMBE))-3)
	ELSE
		RTRIM(SOP102.SOPNUMBE)
	END +
	CASE WHEN (SELECT COUNT(SOPNUMBE) FROM SOP10200 SOP102I WHERE SOP102I.SOPNUMBE = SOP102.SOPNUMBE) > 1 THEN
		'_' + CAST(SOP102.LNITMSEQ/13684 AS VARCHAR(2))
	ELSE
		''
	END AS 'Assembly'
	,FORMAT(GETDATE(), 'yyyyMMdd') AS 'Batch Number'
	,RTRIM(SOP102.ITEMNMBR) AS 'Item Number'
	,CASE WHEN SOP102.UOFM = 'EACH' THEN
		CAST(CAST(SOP102.QUANTITY AS DECIMAL(10,0)) AS VARCHAR(10))
	ELSE
		CAST(CAST(SOP102.QUANTITY*10000 AS DECIMAL(10,0)) AS VARCHAR(10))
	END AS 'Quantity'
	,SOP102.UOFM AS 'UofM'
	,SOP101.BACHNUMB AS 'Sales Batch'
FROM
	SOP10200 SOP102 WITH (NOLOCK)
INNER JOIN
	SOP10100 SOP101 WITH (NOLOCK)
		ON
			SOP101.SOPNUMBE = SOP102.SOPNUMBE
		AND
			SOP101.SOPTYPE = SOP102.SOPTYPE
INNER JOIN
	BM00101 BM101 WITH (NOLOCK)
		ON
			BM101.ITEMNMBR = SOP102.ITEMNMBR
		AND
			BM101.Bill_Status = 1
LEFT JOIN
	BM10200 BM102 WITH (NOLOCK)
		ON BM102.TRX_ID = RTRIM(SUBSTRING(SOP102.SOPNUMBE,4,LEN(SOP102.SOPNUMBE)-3))
LEFT JOIN
	BM30200 BM302 WITH (NOLOCK)
		ON BM302.TRX_ID = RTRIM(SUBSTRING(SOP102.SOPNUMBE,4,LEN(SOP102.SOPNUMBE)-3))
WHERE
	SOP102.SOPTYPE = 2
AND
	BM102.TRX_ID IS NULL
AND
	BM302.TRX_ID IS NULL
GO

GRANT SELECT ON uv_AZRCRV_SalesOrdersToBeAssembled TO DYNGRP

SQL Script To Bulk Alter Users With Logins

Microsoft SQL ServerBack in July 2013 I did a post where I looked at a problem copying live to test. The basic issue was that the Microsoft Dynamics GP user is also a login (at the SQL Server level) and a user (at the SQL Server database level) and when a database is copied from the live server to the test server (or from the current live top the new live) you can run a script to transfer across the logins, but the users come across with the database and will have different SIDs (Security IDs).

You can use the ALTER USER command in SQL to re-link the login with the user, but this is one statement per user per database. The old post showed how to do this, but this quickly becomes a pain when there are more than a handful of users.

As Perfect Image has grown we have clients with more and more users and/or company databases. Our largest client has over 250 users in their Dynamics GP installation while another has fewer users, but well over 100 companies. Both of these can make copying live to test problematic, especially when only a company database might be copied over rather than the whole system.

I needed to automate the process of altering the login to match the user; the below script is the result of this need. Continue reading “SQL Script To Bulk Alter Users With Logins”

Find All Custom SQL Objects In Database

Microsoft SQL ServerQuite a long time ago I started using a particular naming convention when creating SQL objects such as tables, triggers, or views. The plan was so that they were easy to find in the database.

With some clients who have objects with this naming convention looking to do upgrades I’ve taken the next step and created some SQL queries to select all of these objects (which was always the next step).

The naming convention I adopted is in the following format:

  • type
  • organisation who created
  • client
  • name (which will be omitted if the object is a generic one which might be given to multiple clients)

So, a custom table, created by azurecurve for Fabrikam, Inc. to store a Sales Order/Assembly cross reference would be called ut_AZRCRV_FAB_SalesOrderAssemblyXref.

The type prefix varies by object type, but always starts with a u for user. The types I use are:

  • ut for tables
  • uv for views
  • uf for functions
  • usp for stored procedures
  • utr for triggers

The following view (following my naming convention above lacks a client as it is generic) selects all custom objects in the database created by AZRCRV:

CREATE VIEW uv_AZRCRV_GetCustomObjects AS
/*
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 4.0 International (CC BY-NC-SA 4.0 Int).
*/
SELECT o.name,'' AS 'table name', o.type_desc, o.modify_date FROM sys.objects AS o WHERE o.name LIKE 'u__AZRCRV_%'
UNION ALL
SELECT i.name, o.name, o.type_desc, o.modify_date FROM sys.indexes AS i INNER JOIN sys.objects AS o ON o.object_id = i.object_id WHERE I.name LIKE 'u%_AZRCRV_%'
UNION ALL
SELECT t.name, o.name, t.type_desc, o.modify_date FROM sys.triggers AS t INNER JOIN sys.objects AS o ON o.object_id = t.object_id WHERE o.name LIKE 'u%_AZRCRV_%'

The view can either by run manually in SQL Server Management Studio or plugged into either SmartList Designer or SmartList Builder. Once all custom items have been located, they can be extracted and preserved as scripts to be redeployed after the upgrade if necessary.

MS Connect Suggestion: Add Workflow To Receivings Transaction Entry and Enter/Match Invoice

Microsoft Dynamics GPThis has come up from a couple of different clients in the last few weeks. It would be good if approval workflows could be added to Receivings Transaction Entry and also the Enter/Match Invoices windows.

While there is workflow on the PO, a PO might not be fully received/invoiced so it would be good to have approval of the receivings document or the invoice.

The MS Connect suggestion can be found here.

Please take a look and cast your vote.