Monday, October 8, 2018

Provisioning a Microsoft Dynamics 365 Business Central demo tenant

With the release of Microsoft Dynamics GP 2018 R2, I had a first look at the update process, then quickly ran into a situation where the option to set up intelligent cloud insights wasn't showing in my already provisioned Microsoft Dynamics 365 Business Central tenant - See, "Set up Intelligent Cloud" option not showing for Microsoft Dynamics 365 Business Central tenants.

I also noted that this option was available with the October '18 Release and that the current tenants would be undergoing upgrades within the next 30 days. In the meantime, if you want to familiarize yourself with the process of deploying intelligent insights, you will need to provision a demo tenant, built on the October '18 release.

Here's how you do this:

1. Launch your browser and enter https://demos.microsoft.com in the address bar. This will take you to the Microsoft demo site. The site can be accessed either with your Microsoft account or your Work account (organizational or Azure AD authentication).

Microsoft Demos (https://demos.microsoft.com
NOTE: If using your work account, you must be a Microsoft partner or MVP to access the site.

2. Once on the Demos site main page, click on My Environments on the upper menu bar.
Main Demos page
3. Once on the Environments page, click on Create a Tenant.

Environments page

4. On the Tenant page, locate the Microsoft 365 Enterprise with Users and No Content section, then click on Create Tenant.

Tenant page

NOTE
: you can provision a tenant for a period of 90 days, which should give you plenty enough time to get started.

5. Once the environment has been provisioned, please take note of the admin user and password you have been assigned as this will be needed to complete the additional steps.


6. Launch your browser and open an In Private session (Edge) or Incognito session (Chrome). In the URL bar, type https://home.dynamics.com.

home.dynamics.com
Enter the admin credentials assigned to you in the previous step. The environment will then be prepared for you:



7. Once the environment has been prepared, proceed to click on Get more apps.

Get more apps

8. Type "Business Centr.." in the search bar to narrow down the list of apps to Business Central, then select Microsoft Dynamics 365 Business Central (Trial), to initiate the free 30-day trial.

Business Central app
9. Now, all you need to do is agree to the terms of use and privacy terms and you are now on your way to provision and Business Central tenant.

Terms of Use and Privacy Terms agreement
You will have 30 days to work with this tenant before it expires. I assume if you need more time, you can delete the demo environment and start all over again. However, I find it more beneficial to simply have your own Business Central tenant as existing tenants should see the October '18 release applied to them anytime now.

Hope you find this useful.

Until next post,

MG.-
Mariano Gomez, MVP

Wednesday, October 3, 2018

"Set up Intelligent Cloud" option not showing for Microsoft Dynamics 365 Business Central tenants

I was (still am!) seriously excited about the release of Microsoft Dynamics GP 2018 R2 - I mean, how can you not? This Intelligent Cloud thing is just superb! The simple premise of being able to sync your data to Microsoft Dynamics 365 Business Central and use the power of the cloud to get actionable insights is just too good to pass up on.

See my article, Microsoft Dynamics 365 Business Central: the perfect complement for Microsoft Dynamics GP users.

In fact, I already had an Office 365 Business Premium tenant provisioned with an instance of Dynamics 365 Business Central for IW. This is my playground, where I learn about the new stuff, where I try to build up my AL development skills, etc., (albeit at a turtle's pace 😊).

After updating my GP 2018 RTM instance to GP 2018 R2, I proceeded to setup the Intelligent Cloud Insights which, in a nutshell, involves setting up an integration between my on-premises Microsoft Dynamics GP application databases and Microsoft Dynamics 365 Business Central using an Azure Data Factory - a hybrid data integration (ETL) cloud service - and an integration runtime that allows to control what companies within a Business Central tenant get synced to what companies in Microsoft Dynamics GP and when.

The steps are fairly clear in this Microsoft Docs article, Connect to the intelligent cloud with Dynamics 365 Business Central. But in particular, when I went to the Assisted Setup page to locate the Set up Intelligent Cloud option, I could not find that particular entry.

Business Central Assisted Setup guide

Upon exchanging a few emails with the Microsoft Dynamics GP Product Management team, it was noted that this feature - Set up Intelligent Cloud - is part of the Dynamics 365 October '18 release and is not in the currently deployed Business Central tenants. The October '18 release should be out any time now and once that update is applied, you should gain the ability to enable intelligent insights for your Microsoft Dynamics GP 2018 R2 on-premises instances.

In the meantime, you can head over to Microsoft Demos to provision a Business Central demo environment with the October '18 release features that you can use to test and familiarize yourself with intelligent insights.

Until next post,

MG.-
Mariano Gomez, MVP

Updating to Microsoft Dynamics GP 2018 R2 - First look

Yesterday marked the release of Microsoft Dynamics GP 2018 R2 to the English speaking market - other languages soon to follow. After a few hiccups in the download process (make sure you clear your browser cache before attempting to download), I was able to get my hands on the 1.81 GB zip file containing the actual installation media (1.92 GB unzipped).

Since this is not a major release, I went straight for the Updates folder on the image and executed the MicrosoftDynamicsGP18-KB4458410-ENU.msp file - The msp file was also published separately on the Service Pack, Hotfix, and Compliance Update Patch Releases for Microsoft Dynamics GP 2018 page on PartnerSource and CustomerSource and it probably offers a better download experience and less of a footprint, if all you need is to update an existing Microsoft Dynamics GP 2018 instance.

Applying the msp is a fairly straight forward process. However, if you need instructions for a full install, take a look at my article Microsoft Dynamics GP 2018 installation - First Look which shows the full installation process. Apparently, there were some updates to the Dexterity Shared Components, so you will see the bootstrap setup in action, working to update those.

The system database update went extremely fast on both my server and client environments and I couldn't be happier with this initial experience. Next up was the Fabrikam database.


NOTE: For this update, I have 2 environments: a Windows Server 2016 running SQL Server 2014 on a Dell PowerEdge 1950 with 32GB of RAM and Dual Xeon 2.24 GHz and a Windows 10 running SQL Server 2014 running on a Dell XPS L701X with 16GB of RAM and SSD drives, both with Fabrikam and all Mekorma products and test data, totaling close to 550 MB each. And while for many, Fabrikam is not a good indicator of how upgrades will turn out, I've learnt over the years that is a very good predictor.

The Fabrikam update completed in or around 15 minutes on both my server and my laptop machine. I didn't find this to be out of the norm considering I was dealing with a 550MB database, in both cases.

Upon launching Dynamics GP, things will seem very normal, until you take a closer look at the homepage, where you will notice a link, the homepage header for Intelligent Cloud Insight.

Dynamics GP Homepage
Clicking on this link will bring up the new Business Central Intelligent Cloud for On-Premises Customers page, which can be accessed directly via your browser here. Where you can begin setting up Intelligent Cloud by clicking on the TRY IT OUT button.

Intelligent Cloud Insights page

My fellow Microsoft Business Applications MVP, Jen Kuntz has a full comprehensive write up on how to configure Intelligent Cloud here, so I will not double-down on this.

NOTE: I don't know if this will become a recurring problem, but I ran into some page scripting issues, but clicking Yes to continue running the scripts on the page simply seems to work all the time, although annoying. My friend, Jen Kuntz, seems to have ran into this as well.

Intelligent Cloud Insights page scripting error
It's worth noting that you can control whether the standard homepage gets displayed vs the Intelligent Insights page when you switch between options on the Navigation Bar, via the homepage customization link, Customize this page...

Customize Home Page window
One thing to note...

After launching Dynamics GP and login into the system, messages did not get re-added to the Alert Messages table (SY01700). This was actually a time saver and improved the overall experience -- oh, the small things in life 😊.

Until next post,

MG.-
Mariano Gomez, MVP

Thursday, August 16, 2018

Calling SQL Server stored procedures from Microsoft Dexterity - revisited

Back in January of 2009, I wrote an article showing a method of calling a SQL Server stored procedure from Dexterity by calling a stored procedure prototype script (sproc) in sanScript.

See, Calling SQL Server stored procedures from Microsoft Dexterity (January 26, 2009).

This sproc tells the runtime engine (Dynamics.exe) that it must connect to either the system or company database to run the stored procedure of the same name. I particularly like this method because it basically it shields the developer from dealing with connections, etc. Also, the procedure executes under the user's security context.

However, there are times when it is necessary to go the extra mile, especially if you have to call procedures you do not want to prototype into your code as a sproc - case in point, calling third party stored procedures, or eConnect stored procedures.

Enter the use of Dexterity SQL library functions and pass-through SQL. The Dexterity SQL library functions are well documented in the help file. If you are familiar with ADO.NET or standard ADO, the steps are pretty similar:

1. Create a connection and set the database context for the stored procedure (akin to a connection string)
2. Create your prepared SQL statement to run the connection, including parameters.
3. Execute and fetch the recordset.


Here's a simple example (for simplicity sake, basic error handling implemented):

1) Write your stored procedure and grant access to the SQL Server DYNGRP role. This will make your stored procedure accessible from your Dexterity application, avoiding SQL Server permission issues. Our stored procedure will need to accept a service call number as a parameter, then return the total amount to be billed on the service call.

dbo.uspGetServiceCallTotal

IF OBJECT_ID ( 'dbo.uspGetServiceCallTotal', 'P' ) IS NOT NULL
  DROP PROCEDURE dbo.uspGetServiceCallTotal
GO

CREATE PROCEDURE dbo.uspGetServiceCallTotal
  @IN_callnbr char(20) = NULL,
  @IN_service_type smallint,
  @INOUT_serviceTotal numeric(19,5) output
AS

SELECT @INOUT_serviceTotal = TOTAL FROM dbo.SVC00200
WHERE CALLNBR = @IN_callnbr and SRVTYPE = @IN_service_type
GO

GRANT EXECUTE ON dbo.uspGetServiceCallTotal TO DYNGRP
GO

2) The following is a sample Dexterity calling script that retrieves the parameter result as a dataset and issue a simply warning with the returned value:

in string CallNumber;
in integer CallType;

local long sqlConn;
local long sqlStatus;
local text sqlStmt;
local string paramlist = "%1, %2, %3 output;";
local string outparam1  = "@outparam";
local string outparam1Type = "numeric(19,5)";
local currency lServiceTotal;
 
sqlStatus = SQL_Connect(sqlConn);
if sqlStatus = OKAY then
     clear sqlStmt;
 
     {setup the output parameter declaration line}
     sqlStmt = sqlStmt + "declare " + outparam1 + CH_SPACE + outparam1Type + CH_SEMICOLON + CRLF;
 
     {setup parameter list to pass into proc}
     substitute paramlist, SQL_FormatStrings(CallNumber), str(CallType), outparam1 + CRLF;  
     sqlStmt = sqlStmt + "exec dbo.uspGetServiceCallTotal" + CH_SPACE + paramlist + CRLF;
     sqlStmt = sqlStmt + "select " + outparam1;
     
     sqlStatus = SQL_Execute(sqlConn, sqlStmt);
     if sqlStatus = OKAY then
           sqlStatus = SQL_FetchNext(sqlConn);
           
           if sqlStatus <> 31 then
                sqlStatus = SQL_GetData(sqlConn, 1, lServiceTotal);
                warning str(lServiceTotal);
           end if;
     end if;
end if;


One of the things the runtime engine will do is run this procedure within the context of the current Microsoft Dynamics GP user connection to SQL Server, this is, another connection will not be created unless it's absolutely necessary. The technique I show above also seeks to declare the parameter list as a string with substitution patterns to reduce chances of SQL code injection. If your SQL procedure will return a larger data set, then you will need a while...do cycle to advance to the next record in the recordset.

Hope you find this useful.

Until next post!

MG.-
Mariano Gomez, MVP

Friday, July 27, 2018

Missing Dexterity Shared Components cause Word Templates processing to hang

Working recently on an issue, I ran into a situation where I would get the following template processing error attempting to print a SOP Invoice - if you look at the bottom status bar, next to the user ID, you will see a Template Processing accompanied by a yellow warning triangle.


Upon inspecting the Template Processing status, I ran into the following Exception Detail message:

The following error occurred while processing this report:
One or more templates could not be processed. View the exception log for more details.


Since the error was referencing a template, I figured I would go back and check to make sure I could edit the template, which was based on the original SOP Blank Invoice Form Template. Upon attempting to modify the template, I received an error:

File Not Found:"C:\Users\\AppData\Local\Temp\SOP Blank Invoice Form Template.docx".




After attempting to print the template, and after all the subsequent tell-tell sign errors, I attempted to exit Dynamics GP and got the following warning:

Processes are currently being run that cannot be deleted. These processes must be run to completion before you exit.



At this point, I went through the checklist:

  • Microsoft Dynamics GP Add-In for Microsoft Word is installed - Check!
  • Microsoft Office 32 bit is installed - Check!
  • Open XML SDK 2.0 for Microsoft Office is installed - Check!

One thing I noticed was, when I opened Word, the Microsoft Dynamics GP fields object would not appear on Microsoft Word's ribbon. This was a sign that something was not right, considering I had the GP Add-In for Microsoft Word installed.

I ran a repair on Microsoft Dynamics GP and this did not solve the problem either. Upon further inspection, I noticed I was missing the Dexterity Shared Components 16.0 (64-bit). In my system, I run several versions of Microsoft Dynamics GP and I had Dexterity Shared Components for all but the Microsoft Dynamics GP 2016 version I was trying to print the invoice from. 

Once Dexterity Shared Components was installed, I went ahead and gave it a try once more and everything worked as expected.

Until next post,

MG.-
Mariano Gomez, MVP

Wednesday, July 25, 2018

Microsoft Dynamics 365 Business Central: the perfect complement for Microsoft Dynamics GP users

Microsoft Dynamics GP users rejoice!

If you were a part of the long list of users, partners, and ISVs scared by some imaginary deadline set (by Microsoft) for you to migrate from Dynamics GP and onto Dynamics 365 Business Central, it's now my pleasure to separate fact from fiction in this era of, well, fake news - at least in the Dynamics space.

Microsoft has recently published the October '18 Business Applications Release Notes, a 239 page document describing all the upcoming features and functionality to be included with Dynamics 365 for Sales, Service, Marketing, Finance and Operations, Talent, Retail, and Social Engagement; the Power platform (Power BI, PowerApps, Microsoft Flow, Common Data Services), and Dynamics 365 Business Central.

The words "Dynamics GP" appear 7 times in this document (including the table of content) and span from pages 117 through 133, explaining what is an imminent reality: Dynamics GP is now part of the Business Central plan, although folks at Microsoft will tell you, "it always was!" 😂.

To explain this, I must start from a simple premise: your will be able to use your existing on-premises solution of Dynamics GP to connect to the cloud through Business Central.

Microsoft further consider this to be the "convergence point for Dynamics SMB products" as going forward, GP (along with NAV, and SL) is considered a customer of Business Central, in the cloud or on-premise. Now, the choice words can be confusing and can even a bit overwhelming, but the explanation is rather straight forward. Microsoft Dynamics GP customers will have access to all the built-in capabilities of Business Central -- its Artificial Intelligence (AI) and Machine Learning (ML) based analytical capabilities, its Power BI powered visualizations and reporting capabilities, the ability to create powerful mobile applications and sophisticated worflows with PowerApps and Flow; and uncompromising data access and storage via Common Data Services, all without giving up their investment in Microsoft Dynamics GP.

In turn, Microsoft will continue to invest and provide key updates to Dynamics GP as it has been done for the past 25 years.

The Intelligent Edge

The intelligent edge bridges the digital and real world -- enabling you to deliver a seamless experience and compute capabilities wherever your data exists -- in the cloud or offline, as defined by Microsoft on their Intelligent Edge page. What does this have to do with Dynamics GP? In Microsoft's view, GP is now considered an edge "device".

Intelligent Edge
(Source: Business Applications Release Notes - October '18)

In order to accomplish such feat, GP customers will connect to an instance of intelligent cloud via Business Central, deciding what companies to replicate in the process. In turn, you will get back actionable analysis and content, right inside your Microsoft Dynamics GP application area pages - similar to the Business Analyzer or Power BI experience today, I would assume.

Now, think of this for a second... long gone are the days were you spend hours on end building analytical reports and gathering insight on your data, because you will have at your disposition a powerful AI and ML based decision engine working for you 24/7/365. Also, you will have the infrastructure of the cloud doing this without you ever having to update it. And what about custom insights into your data? You can create those too! What about taking your data with you on your mobile device? That's also there for you with PowerApps and Flow.

And let's be honest here, for a second. IF and when you are ready to move to the cloud, this will be an easier proposition as most of your data will already be replicated. Need ALL your data? There are specialized partners on AppSource waiting to earn your business. Heck, even the folks over at eOne Solutions are on board with SmartConnect, a tool you already know and love.

But also, let's look at the other side of that coin. You've spent your life building the perfect solution for your business in Microsoft Dynamics GP. You have invested thousands of hours, tens of thousands of dollars in consulting, and you have the perfect combination of third party ISV applications you know you are NOT going to get on Business Central. In addition, you simply love the passion guys and gals like Mark Polino, Belinda Allen, David Musgrave, Leslie Vail, Jen Kuntz, Shawn Dorward, Victoria Yudin, and I display at conferences, showing you how to make the most of your investment. You also know that Dynamics GP is a proven and mature solution that simply delivers. Simple: DON'T MOVE! Continue to use Dynamics GP with the insights provided by Business Central and you will still be golden.

A final note: if you look carefully at the info-graphic above, synchronization of your data is unidirectional (from on-prem to cloud). This means that, although you can  enter data in Business Central, you will need integration mechanisms to get that data back into your on-premise solution.

Until next post,

MG.-
Mariano Gomez, MVP

Tuesday, July 24, 2018

Microsoft Dynamics GP July Hotfix packed with some long awaited features

If you missed it, the Microsoft Dynamics GP Development team has delivered the July Hotfix for versions 2015, 2016, and 2018. What has me really excited are a number of features that were included in this release - I will skip the bug fixes as those are always welcome - as follow:

Support for TWAIN drivers
Why is this important? TWAIN is an API and a communications protocol that regulates communication between software applications and digital imaging devices, such as image scanners and digital cameras. As it turned out, this is EXACTLY what the Document Attach feature needed to overcome some reported compatibility issues with certain scanning devices - Dynamics GP only provided support for Windows Image Acquisition (WIA) protocol.

For additional information on TWAIN, click here.

Applies to GP 2016 and GP 2018.

Web Client support for Non-US regional date settings
For users with a regional setting date format other than MMDDYYYY, web client will now display the proper date format in transaction entry screens. Before, with the regional date settings changed, you could see the correct date in the upper right hand corner of the web client overall ribbon, but not on transaction screens.

Applies to GP 2018, only.

Support for Web Client Organizational Accounts with Workflow.
One of the biggest complaints from users was the lack of support for Azure AD accounts with Workflow over web client. If I had to pinpoint the biggest drawback to web client adoption, this is probably it.



Now, with the hotfix, you can setup your organizational accounts for workflow for the originator, approver, and manager roles in Microsoft Dynamics GP Workflow, as shown by Lucas Miller.

Applies to GP 2018, only.

In conclusion, to take advantage of these new features, consider upgrading to the latest release of Microsoft Dynamics GP (GP 2018). If you are already working with a hosting partner like Njevity or RoseASP, be sure to ask about these new features. If you are hosting your own Microsoft Dynamics GP on-premise or in the cloud, consider applying the hotfix as soon as possible to take advantage of the new features.

Users of Microsoft Dynamics GP 2015 receive some fixed assets updates, along with some W2, W3, and ACA 1094 fixes for HR/Payroll.

Mainstream Support for Microsoft Dynamics GP 2013 ended on April 10, 2018 which means that users on this release no longer receive tax, hotfixes, and year-end updates.  Microsoft Dynamics GP 2013 is currently on Extended Support until April 11, 2023.

Until next post,

MG.-
Mariano Gomez, MVP