GeneralUser Error When Migrating Management Reporter to a New Server

Microsoft Dynamics GPAcross the years since it was launched I have done a lot of work with Management Reporter, including many migrations to new servers and upgrades which necessitated a migration to a new server or instance of SQL Server, but have never seen this particular error message before.

In this case, I migrated the Management Reporter database to a new server and installed the very latest version of the server software. When I started the database configuration, I received this error message:

Database configuration error

Validation Messages

Database configuration: The connection to the database was successful, but the connection to database 'Management Reporter' failed. Verify that the Management Reporter service account has been added to the General User role in the database.

Continue reading "GeneralUser Error When Migrating Management Reporter to a New Server"

Update Microsoft Dynamics GP Customer Emails on Test Including Sent Emails

Microsoft Dynamics GPAfter creating a new script for updating vendor emails on test which includes the emails of sent items, I figured that a similar script will be needed to update the email address on sent emails in the Sales Series.

The script below, includes the tables holding sent email information for the Sales Series emails (both Receivables Management and Sales Order Processing) as well as the usual Internet Addresses table; the highlighted email address can be changed to whatever email address you're using for testing your Sales emails:

/*
Created by Ian Grieve of azurecurve|Ramblings of a Dynamics GP Consultant (http://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). */
DECLARE @TestEmail VARCHAR(100) SET @TestEmail = 'email@example.com' -- UPDATE existing email addresses UPDATE SY01200 --Internet Addresses (SY01200) SET INET1 = @TestEmail ,EmailToAddress = @TestEmail ,EmailCcAddress = '' ,EmailBccAddress = '' WHERE Master_Type = 'CUS' -- UPDATE Email Details of previously sent emails UPDATE SY04910 --Email Details (SY04910) SET EmailToAddress = @TestEmail ,EmailCcAddress = CASE WHEN LEN(CAST(EmailCcAddress AS VARCHAR(1000))) = 0 THEN '' ELSE @TestEmail END WHERE MODULE1 IN (9,11) -- Receivables Management / Purchase Order Processing -- UPDATE Email Details of previously sent emails UPDATE SY04915 --Email History (SY04915) SET EmailToAddress = @TestEmail ,EmailCcAddress = CASE WHEN LEN(CAST(EmailCcAddress AS VARCHAR(1000))) = 0 THEN '' ELSE @TestEmail END WHERE MODULE1 IN (9,11) -- Receivables Management / Purchase Order Processing GO

Update Microsoft Dynamics GP Vendor Emails on Test Including Sent Emails

Microsoft Dynamics GPAbout 10 years ago I did a post on changing emails on the test system so they didn't go outside the organisation. This has worked well for a long time and no-one has mentioned any issues, until this week when I was working with a client and we made some changes to a remittance format and tested by emailing.

The remittance itself emailed to the test address fine, but the reprint remittance went to the original email address of the vendor used on the live system.

After doing a little exploring I found there were two additional tables which held this data for sent emails and which were used by the reprint remittance function.

The script below, includes the Internet Addresses table as well as these two tables for the Purchasing Series emails (both Purchase Order Processing and Payables Management); the highlighted email address can be changed to whatever email address you're using for testing your Purchasing emails:

/*
Created by Ian Grieve of azurecurve|Ramblings of a Dynamics GP Consultant (http://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). */
DECLARE @TestEmail VARCHAR(100) SET @TestEmail = 'email@example.com' -- UPDATE existing email addresses UPDATE SY01200 --Internet Addresses (SY01200) SET INET1 = @TestEmail ,EmailToAddress = @TestEmail ,EmailCcAddress = '' ,EmailBccAddress = '' WHERE Master_Type = 'VEN' -- UPDATE Email Details of previously sent emails UPDATE SY04910 --Email Details (SY04910) SET EmailToAddress = @TestEmail ,EmailCcAddress = CASE WHEN LEN(CAST(EmailCcAddress AS VARCHAR(1000))) = 0 THEN '' ELSE @TestEmail END WHERE MODULE1 IN (12,19) -- Purchase Order Processing / Payables Management -- UPDATE Email Details of previously sent emails UPDATE SY04915 --Email History (SY04915) SET EmailToAddress = @TestEmail ,EmailCcAddress = CASE WHEN LEN(CAST(EmailCcAddress AS VARCHAR(1000))) = 0 THEN '' ELSE @TestEmail END WHERE MODULE1 IN (12,19) -- Purchase Order Processing / Payables Management GO

Recent ISC Software Webinar: Powerful document generation for Dynamics GP

ISC Software SolutionsIn our most recent webinar, we took a look at Powerful document generation for Dynamics GP. In this webinar, we covered how dox42 can be used to design attractive document templates in Microsoft Office and integrate data from Microsoft Dynamics GP and other systems such as SharePoint or Microsoft 365. If you want to catch up on this, or any other, webinar, you can do so here.

In this blog post, I am going to recap the webinar and show the benefits and some example uses of dox42 for generating documents with data from Dynamics GP and other systems:

  1. Introducing dox42
  2. Examples of how dox42 can be used
  3. Template Design
  4. Integrate data from various sources
  5. Automate your output
  6. Key benefits
  7. Examples from Dynamics GP
  8. Conclusion

Introducing dox42 ^

dox42 are headquartered in Vienna Austria and sell dox42 through a partner channel using companies such as ISC Software. It allows you to generate individualised documents from all your existing systems, including Microsoft Dynamics GP, automatically. Offers, quotes, contracts, inspections or server-reports, presentations, Excel-charts and insurance policies; dox42 is a flexible, powerful and intuitive application which allows you to use the common interface of Microsoft Word, Excel or PowerPoint to design document templates.

Continue reading "Recent ISC Software Webinar: Powerful document generation for Dynamics GP"

Map Folder to a Drive Letter

WindowsAcross the years I have mapped a folder to a drive letter, often to share a drive with an RDP connection where I didn't want to add the entire c drive, but today, when I needed to do it, I completely forgot how, so I am posting this as an aide-mémoire.

In Windows Explorer, right-click on This PC an select Map network drive...:

Click on Map network drive

Continue reading "Map Folder to a Drive Letter"

ClassicPress Plugin Development: Create a Custom Image Path and URL for Code Potent’s Update Manager

ClassicPress PluginsThis post is part of the ClassicPress Plugin Development series in which I am going to look at both best practice for developing plugins and how I approach some requirements as well as some of the functions I commonly use.

Plugins using the Code Potent Update Manager plugin can have a banner and icon images added to them which are used on the plugin within the admin dashboard. By default these will be in an /images folder in the root folder of the plugin.

There are filters available which allow you to move these images to another folder. This is something I do as I prefer to have the stylesheets, jquery and images in an /assets folder.

There are two filters available:

  • codepotent_update_manager_image_path which allows you to set the folder path to the images.
  • codepotent_update_manager_image_url which allows you to set the url to the images.

This is an example of the filters in use in my Maintenance Mode plugin:

add_filter('codepotent_update_manager_image_path', 'azrcrv_mm_custom_image_path');
add_filter('codepotent_update_manager_image_url', 'azrcrv_mm_custom_image_url');

Each of the filters calls a function which returns the amended path or url respectively.

This is the image path function:

/**
 * Custom plugin image path.
 *
 * @since 1.0.0
 *
 */
function azrcrv_mm_custom_image_path($path){
    if (strpos($path, 'azrcrv-maintenance-mode') !== false){
        $path = plugin_dir_path(__FILE__).'assets/pluginimages';
    }
    return $path;
}

This is the image url function:

/**
 * Custom plugin image url.
 *
 * @since 1.0.0
 *
 */
function azrcrv_mm_custom_image_url($url){
    if (strpos($url, 'azrcrv-maintenance-mode') !== false){
        $url = plugin_dir_url(__FILE__).'assets/pluginimages';
    }
    return $url;
}

With these filters in place, I can move the images into the /assets folder and still have them work on the plugin details and updates pages.

ClassicPress Plugin Development: Create a Plugin Update Endpoint Using Code Potent’s Update Manager

ClassicPress PluginsThis post is part of the ClassicPress Plugin Development series in which I am going to look at both best practice for developing plugins and how I approach some requirements as well as some of the functions I commonly use.

With Code Potent's Update Manager added to a plugin, a plugin update endpoint can now be created on the update server.

On your update server click New » Plugin Endpoint.

New plugin

Continue reading "ClassicPress Plugin Development: Create a Plugin Update Endpoint Using Code Potent’s Update Manager"