SQL View to Return Sales Invoice Headers
Apr14

SQL View to Return Sales Invoice Headers

I’ve been organising a demo of software which can be used to produce documentation using data from Microsoft Dynamics GP and integrate it with data from other systems or network shares. I thought about a few ways of getting the Dynamics GP data and decided that a custom SQL view returning only the required information was the best way to go. This view returns sales invoice headers and related… Continue Reading Ian...

Read More
SQL View to Return Sales Quote Lines
Apr13

SQL View to Return Sales Quote Lines

I’ve been organising a demo of software which can be used to produce documentation using data from Microsoft Dynamics GP and integrate it with data from other systems or network shares. I thought about a few ways of getting the Dynamics GP data and decided that a custom SQL view returning only the required information was the best way to go. This view returns sales quote lines and related… Continue Reading Ian...

Read More
SQL View to Return Sales Quote Headers
Apr12

SQL View to Return Sales Quote Headers

I’ve been organising a demo of software which can be used to produce documentation using data from Microsoft Dynamics GP and integrate it with data from other systems or network shares. I thought about a few ways of getting the Dynamics GP data and decided that a custom SQL view returning only the required information was the best way to go. This view returns sales quote headers and related… Continue Reading Ian...

Read More
ClassicPress Plugin Development: Add an index.php to Every Folder
Apr11

ClassicPress Plugin Development: Add an index.php to Every Folder

This post is part of the ClassicPress Plugin Development series n 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. Putting an index.php in every folder is technically required and websites should be configured to disallow directory browsing anyway, but as plugins will e used by many… Continue Reading Ian Grieve’s...

Read More
ClassicPress Plugin Development: Format of a Plugin Header
Apr10

ClassicPress Plugin Development: Format of a Plugin Header

This post is part of the ClassicPress Plugin Development series n 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. As with the readme.txt file, the main plugin file needs a header containing information related to the plugin. The bare minimum which is needed in the header is the plugin… Continue Reading Ian Grieve’s...

Read More
Error Running Fastpath hybrid Grant script
Apr08

Error Running Fastpath hybrid Grant script

In yesterdays post on encountering an error deploying the Fastpath Audit Trails to a new company, there was a problem which came up, but I forgot to mention. When the minimum permissions script (also know as the hybrid grant script) from Fastpath was run, an error in SSMS was produced which was not seen when implementing: Msg 3729, Level 16, State 1, Procedure sp_revokedbaccess, Line 51 [Batch… Continue Reading Ian...

Read More
Error Deploying Fastpath Audit Trails to a New Company
Apr07

Error Deploying Fastpath Audit Trails to a New Company

I implemented Audit Trails from Fastpath for a client a while ago. They created the required triggers in a few company databases and all worked well. Recently they deployed the triggers to another company, but none of the data was flowing through to the portal. I did some investigation and found the triggers were working correctly as the audit tables in the company database were being… Continue Reading Ian Grieve’s Article...

Read More
SQL Script: Get First Email from Semi-colon delimited string
Apr06

SQL Script: Get First Email from Semi-colon delimited string

I had a request to produce a SQl view for a client recently which extracted the first email address from the EmailToAddress field in the Address Electronic Funds Transfer Master (SY06000) table linked to a creditor record in Microsoft Dynamics GP. This field generally stores a single email, but sometimes stores multiple email addresses separated with a semi-colon. The below script will extract… Continue Reading Ian...

Read More
ClassicPress Plugin Development: Format of a Plugin readme.txt
Apr04

ClassicPress Plugin Development: Format of a Plugin readme.txt

This post is part of the ClassicPress Plugin Development series n 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. A ClassicPress plugin should have a readme.txt file. A readme file is where you “sell” your plugin, it’s features and benefits and why users would want to use it over the… Continue Reading Ian...

Read More
ClassicPress Plugin Development: Structure of a Plugin
Apr03

ClassicPress Plugin Development: Structure of a Plugin

This post is part of the ClassicPress Plugin Development series n 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. Before you start developing a plugin, I’d recommend deciding on the plugin structure you want to use. At the simplest level, a plugin only actually requires the file which… Continue Reading Ian...

Read More
ClassicPress Plugin Development: Using Namespaces
Apr02

ClassicPress Plugin Development: Using Namespaces

This post is part of the ClassicPress Plugin Development series n 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. In the last post in this series, on whether to use namespaces, I discussed whether they should be used or not and noted that I do not currently use them, but am debating… Continue Reading Ian Grieve’s...

Read More
SQL View to Return Budgets with Account User-Defined Fields
Apr01

SQL View to Return Budgets with Account User-Defined Fields

I was helping a client create a budget report recently where they wanted to have the same information available in more than one reporting too. While queries could be written and embedded there is scope for them to then diverge over time; the solution to this is to create a SQL view which all of the reporting tools can then select to make sure they always have the same data. The view uses data… Continue Reading Ian...

Read More
Excel Snippet: Preserve Decimals in Result of Formula
Mar31

Excel Snippet: Preserve Decimals in Result of Formula

I might not post many Excel snippets, but I’m collecting them into a small Excel Snippets series to make them easy to find. I do far more manipulation of data in SQL scripts than I do in Excel, but sometimes need to accomplish something in Excel for clients. This time I was working with a client using Excel to generate a Microsoft Dynamics GP macro to update some costs. We realised when… Continue Reading Ian Grieve’s...

Read More
Excel Snippets: Series Index
Mar30

Excel Snippets: Series Index

My knowledge of using Excel is somewhat patchy; there are some things I can do easily and other simple things which I find troublesome. While I might not post many Excel snippets, I’m collecting them into a small series to make them easy to find again in future. I’ve already been doing similar posts with Network Shell Snippets, PowerShell Snippets and VBA Snippets. The series index will… Continue Reading Ian...

Read More
Update Web Services Server Location in All Companies in Microsoft Dynamics GP
Mar29

Update Web Services Server Location in All Companies in Microsoft Dynamics GP

I have a few clients with many company in Microsoft Dynamics GP (and one with well over 100) so doing upgrades or live to test backups can require a fair few, potentially time consuming, changes to data. I’ve posted scripts to update email addresses on test in bulk before as well as a few other variations. One recent one which has come up a couple of times, is the web services server… Continue Reading Ian Grieve’s...

Read More
ClassicPress Plugin Development: To Use Namepsaces or Not
Mar28

ClassicPress Plugin Development: To Use Namepsaces or Not

This post is part of the ClassicPress Plugin Development series n 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. Namespaces are a standard feature of PHP, post version 5.2. A namespace is a way of addressing the problem of isolation. For example, if you have a function called load_cs in… Continue Reading Ian...

Read More
ClassicPress Plugin Development: Coding Standards
Mar27

ClassicPress Plugin Development: Coding Standards

This post is part of the ClassicPress Plugin Development series n 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. In the last post, I covered using semantic versioning or (semver) when developing plugins for ClassicPress. When developing plugins, ClassicPress largely uses the same coding… Continue Reading Ian...

Read More
Black Boxes Printing Instead of Images on Standard Reports in Microsoft Dynamics GP Now Fixed
Mar26

Black Boxes Printing Instead of Images on Standard Reports in Microsoft Dynamics GP Now Fixed

There was a recent issue with the Report Writer reports printing a black box instead of an image. This problem was the result introduced by a Windows update and quickly acknowledged as an issue by Microsoft. This is an example of how the standard report looks when the bug is present: The Dynamics GP Support and Services Blog posted about the problem on the 12th March and have posted regular… Continue Reading Ian Grieve’s...

Read More
Web Services for Microsoft Dynamics GP Fall 2020 Release Upgrade Error
Mar25

Web Services for Microsoft Dynamics GP Fall 2020 Release Upgrade Error

We’ve just upgraded another client to Microsoft Dynamics GP Fall 2020 Release; everything during the upgrade went smoothly until we came to upgrading the web services. The test environment was created by replicating the live servers into a sandbox environment. I was pretty much expecting to encounter the problem we did as we were moving from using a SQL Server security store to an Active… Continue Reading Ian...

Read More
Remember to Reactivate Jet Reports When User Made Designer
Mar24

Remember to Reactivate Jet Reports When User Made Designer

I’ve been doing a lot of work with a client on Jet Reports recently. While we were doing a training session, we created some new users and changed some from being ordinary users to being designers via the Jet Licensing portal. When the first user launched Excel, they found they were still an ordinary user without access to design mode. They logged out and back in without the license changing… Continue Reading Ian...

Read More
Web Services for Microsoft Dynamics GP: How to Setup an Active Directory Security Store
Mar23

Web Services for Microsoft Dynamics GP: How to Setup an Active Directory Security Store

To use the Web Services for Microsoft Dynamics GP with TLS 1.2 you need to do two things: Upgrade to the Fall 2020 Release; you can’t just apply the hotfix to an October 2019 or earlier release, but have to use the full download media. Create an Active Directory Security Store. Upgrading Dynamics GP is not a problem, but Active Directory isn’t my area of expertise. Fortunately, Microsoft… Continue Reading Ian...

Read More
Recent ISC Software Webinar: Controls & Security in Microsoft Dynamics GP
Mar22

Recent ISC Software Webinar: Controls & Security in Microsoft Dynamics GP

In our most recent webinar, we took a look at Controls & Security in Microsoft Dynamics GP. In this webinar, we covered how you can improve controls and security in Microsoft Dynamics GP using a mix of standard ad third party functionality. 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 cover the salient… Continue Reading Ian Grieve’s...

Read More
ClassicPress Plugin Development: Semantic Versioning 2.0
Mar21

ClassicPress Plugin Development: Semantic Versioning 2.0

This post is part of the ClassicPress Plugin Development series n 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. When developing plugins for ClassicPress, you need to develop using semantic versioning (or semver) as this will be a requirement of the ClassicPress Directory. Semantic… Continue Reading Ian Grieve’s...

Read More
VBA Snippets: Execute URL or Application
Mar19

VBA Snippets: Execute URL or Application

This post is part of the series on VBA Snippets. it is possible to execute a URL or application in VBA using the Windows Shell Execute API function. In this snippet I am executing a URL, but this could be an application. Before you can call ShellExecute in code you need to add the following line to the declarations at the top of the mdoule: Private Declare Function ShellExecute Lib… Continue Reading Ian Grieve’s Article on...

Read More
VBA Snippets: Sleep
Mar18

VBA Snippets: Sleep

This post is part of the series on VBA Snippets. The following VBA snippets can be used to set a pause (sleep) in the code. The first one needs to be in the declarations at the top of the module: Private Declare Sub Sleep Lib “kernel32” (ByVal milliseconds As Long) The second is used where you want the code to pause (my recent use was to pause for five seconds after an error and before… Continue Reading Ian...

Read More
VBA Snippets: Series Index
Mar17

VBA Snippets: Series Index

We’ve recently taken on a new client for support of Microsoft Dynamics GP who has a number of modified forms and reports which have been extended with VBA code to add additional functionality. I have done a reasonable amount of VBA and VB6 in the past, but that was sometime ago and I’ve found myself searching online for examples on how to do some things when they’ve asked for further… Continue Reading Ian...

Read More
ClassicPress Plugin Development: Coding Paradigms
Mar14

ClassicPress Plugin Development: Coding Paradigms

This post is part of the ClassicPress Plugin Development series. There are two code paradigms that can be used when developing for ClassicPress: Procedural Programming Object Oriented Programming There has been many a flame war fought over which is better and which is worse, but in all honesty I believe that both can have their place and there is no one true way of coding. I was going to… Continue Reading Ian Grieve’s...

Read More
ClassicPress Plugin Development: Series Index
Mar13

ClassicPress Plugin Development: Series Index

I started developing plugins for WordPress almost eight years ago and moved to ClassicPress just over two years ago; I now have 47 plugins available for ClassicPress. I am creating this series to show how certain aspects of development for ClassicPress plugins are done, partly to benefit others who take up developing for ClassicPress but also as a quick reference for myself including detailed… Continue Reading Ian Grieve’s...

Read More
Simple Audit for Microsoft Dynamics GP: Conclusion
Mar12

Simple Audit for Microsoft Dynamics GP: Conclusion

This post is part of a series on creating a simple audit for Microsoft Dynamics GP. As I’ve shown over the last few posts, it is relatively easy to create a simple audit on a table in Dynamics GP, but this approach is not vert scalable and requires someone to manually create the SQL triggers. For a client on a shoestring budget and who wanted to audit one table, this approach… Continue Reading Ian Grieve’s Article on...

Read More
Simple Audit for Microsoft Dynamics GP: SQL View for Reporting
Mar11

Simple Audit for Microsoft Dynamics GP: SQL View for Reporting

This post is part of a series on creating a simple audit for Microsoft Dynamics GP. Once the audit table and triggers have been deployed, any changes made through the audit will be recorded and available for reviewing later to see who has been making changes and, more significantly, what was changed. The easiest way of making this available to the client was to create a SmartList for them… Continue Reading Ian Grieve’s...

Read More
Simple Audit for Microsoft Dynamics GP: Create Triggers
Mar10

Simple Audit for Microsoft Dynamics GP: Create Triggers

This post is part of a series on creating a simple audit for Microsoft Dynamics GP. With the table created to store the audited information, the second step is to create the required triggers on the Address Electronic Funds Transfer Master (SY06000) table. For an Vendor EFT audit there are three triggers required: INSERT UPDATE DELETE These triggers will record all new Vendor EFT information… Continue Reading Ian Grieve’s...

Read More
Simple Audit for Microsoft Dynamics GP: Create Table
Mar09

Simple Audit for Microsoft Dynamics GP: Create Table

This post is part of a series on creating a simple audit for Microsoft Dynamics GP. The first step in creating the audit is to create a table in the company database to hold the audited information. From the user point of view there was five pieces of information required: Key for the vendor EFT being amended User ID Date/Time Old Data New Data To make reporting easier and to add an element… Continue Reading Ian Grieve’s...

Read More
azurecurve ClassicPress Plugins: Check Plugin Status
Mar06

azurecurve ClassicPress Plugins: Check Plugin Status

This is part of the azurecurve ClassicPress Plugins which introduces the plugins I have available for ClassicPress. The plugin I am going to cover in this post, is a brand new one written for ClassicPress; Check Plugin Status. Functionality This plugin allows you to check the status of plugins on your site: * Are they in the WordPress Repository. * Do they use a 3rd party update mechanism… Continue Reading Ian Grieve’s...

Read More
Simple Audit for Microsoft Dynamics GP: Introduction
Mar05

Simple Audit for Microsoft Dynamics GP: Introduction

This post is part of a series on creating a simple audit for Microsoft Dynamics GP. I created a simple audit a while ago when a client had a requiremnet to audit the change of EFT details onvendors, but did not have sufficient budget for a full audit product like the Assure Suite from Fastpath. This is not to say that the Assure Suite is expenseive, but the client in question was a very small… Continue Reading Ian Grieve’s...

Read More
Simple Audit for Microsoft Dynamics GP: Series Index
Mar04

Simple Audit for Microsoft Dynamics GP: Series Index

I created a simple audit a while ago when a client had a requirement to audit the change of EFT details on vendors, but did not have sufficient budget for a full audit product like the Assure Suite from Fastpath. This is not to say that the Assure Suite is expensive, but the client in question was a very small client with only two users of Microsoft Dynamics GP. In this series of posts, I will… Continue Reading Ian...

Read More
Receivables HATB With Aging By Due Date (using GL Posting Date)
Mar03

Receivables HATB With Aging By Due Date (using GL Posting Date)

Today’s script, like yesterdays, is an unusual one for me to post, as it is not a script which I have written; it is a script which returns the data for a Receivables HATB With Aging By Due Date (using GL Posting). It was written by Sivakumar Venkataramanback in 2011 and came up in conversation recently; the site he posted it to no longer exists and I had to hunt the script out from the… Continue Reading Ian Grieve’s...

Read More
Receivables HATB With Aging By Due Date (using Document Date)
Mar02

Receivables HATB With Aging By Due Date (using Document Date)

Today’s script is an unusual one for me to post, as it is not a script which I have written; it is a script which returns the data for a Receivables HATB With Aging By Due Date (using Document Date). It was written by Sivakumar Venkataraman back in 2011 and came up in conversation recently; the site he posted it to no longer exists and I had to hunt the script out from the wayback machine to… Continue Reading Ian...

Read More
Recent ISC Software Webinar: Automation in Microsoft Dynamics GP
Mar01

Recent ISC Software Webinar: Automation in Microsoft Dynamics GP

In our most recent webinar, we took a look at Automation in Microsoft Dynamics GP. In this webinar, we covered how automation can be used in Microsoft Dynamics GP to improve efficiencies and accuracy of data. 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 cover the highlights of how automation can be used in… Continue Reading Ian Grieve’s...

Read More
azurecurve ClassicPress Plugins: SMTP
Feb28

azurecurve ClassicPress Plugins: SMTP

This is part of the azurecurve ClassicPress Plugins which introduces the plugins I have available for ClassicPress. The plugin I am going to cover in this post, is a brand new one written for ClassicPress; SMTP. Functionality Simple Mail Transport Protocol (SMTP) plugin will intercept the standard wp_mail and send emails via an SMTP server using PHPMAILER. This plugin is multisite compatible;… Continue Reading Ian Grieve’s...

Read More
azurecurve ClassicPress Plugins: Maintenance Mode
Feb27

azurecurve ClassicPress Plugins: Maintenance Mode

This is part of the azurecurve ClassicPress Plugins which introduces the plugins I have available for ClassicPress. The plugin I am going to cover in this post, is a brand new one written for ClassicPress; Maintenance Mode. Functionality Enable maintenance mode to disable the front-end of your ClassicPress site for non-administrators. Users will only see the configured message; administrators… Continue Reading Ian Grieve’s...

Read More
Outlook Not Sending Emails
Feb26

Outlook Not Sending Emails

We recently had anew consultant join us at ISC Software which meant building a new laptop. As she lives fairly near me the laptop and other kit was delivered to me and I did some setup. Once she was logged on there was one unexpected issue with emails not sending in Outlook. I did some checking of settings and found that there is a setting which needed to be enabled for sending of emails; I’m… Continue Reading Ian...

Read More
Using No-IP For External Access With a Dynamics IP Address: Installing No-IP Client
Feb25

Using No-IP For External Access With a Dynamics IP Address: Installing No-IP Client

This post is part of the short series on using Using No-IP For External Access With a Dynamics IP Address. With a No-IP account created with No-IP the next, and final, step is to install the Dynamic DNS Update Client. This does updates on a paeriodic basis to keep your current IP address in sync with your No-IP host or domain. The client can be downloaded from here: Once downloaded run the… Continue Reading Ian Grieve’s...

Read More
Using No-IP For External Access With a Dynamics IP Address: Creating An Account
Feb22

Using No-IP For External Access With a Dynamics IP Address: Creating An Account

This post is part of the short series on using Using No-IP For External Access With a Dynamics IP Address. Signing up to No-IP for a free account is nice and easy to do. Using the browser of your choice, navigate to https://www.noip.com, enter the hostname you want and select the domain from the list of free ones and click the green ,em>Sign Up button: Enter your Email, Password and check the… Continue Reading Ian...

Read More
azurecurve ClassicPress Plugins: Update Admin Menu
Feb21

azurecurve ClassicPress Plugins: Update Admin Menu

This is part of the azurecurve ClassicPress Plugins which introduces the plugins I have available for ClassicPress. The plugin I am going to cover in this post, is a brand new one written for ClassicPress; Update Admin Menu. Functionality Allows the reorganisation of the ClassicPress admin menu allowing you to move more often used menu entries to the top of the menu. Download The plugin can be… Continue Reading Ian...

Read More
azurecurve ClassicPress Plugins: From Twitter
Feb20

azurecurve ClassicPress Plugins: From Twitter

This is part of the azurecurve ClassicPress Plugins which introduces the plugins I have available for ClassicPress. The plugin I am going to cover in this post, is a brand new one written for ClassicPress; From Twitter. Functionality Automate the retrieval of tweets from Twitter and create posts on your ClassicPress site From Twitter includes the following functionality; Search Twitter and… Continue Reading Ian Grieve’s...

Read More
Using No-IP For External Access With a Dynamics IP Address: What Is No-IP?
Feb19

Using No-IP For External Access With a Dynamics IP Address: What Is No-IP?

This post is part of the short series on using Using No-IP For External Access With a Dynamics IP Address. No-IP is a service which has been around for quite a long time now (I remember using a competitor of theirs back in 2004 (and possibly earlier) to use an external DNS entry to access a web server I was running at home on a dynamic IP address (my ISP at the time didn’t offer static IP… Continue Reading Ian...

Read More
Using No-IP For External Access With a Dynamics IP Address: Series Index
Feb18

Using No-IP For External Access With a Dynamics IP Address: Series Index

I do a lot of travelling for work and often want to connect to my home system to access a NAS or a computer which has been left on. Unfortunately, I have a dynamic IP address which means the IP address changes whenever the router restarts and, living in rural England, glitches which cause a router restart are not uncommon. The solution to this is to use No-IP; a service I will introduce over… Continue Reading Ian Grieve’s...

Read More
Finding Missing Security Privileges Encountered When Starting Microsoft Dynamics GP
Feb17

Finding Missing Security Privileges Encountered When Starting Microsoft Dynamics GP

I’ve been doing work with a client recently to refrsh their security in Microsoft Dynamics GP. We used the Microsoft Dynamics GP Security Matrixc from Fastpath to get the core security tasks assigned to the relevant roles. However, after security roles were created and testing was done, one user role was received errors when logging into Microsoft Dynamics GP: You don’t have security… Continue Reading Ian...

Read More
Jet Service Tier Windows Service Won’t Start
Feb16

Jet Service Tier Windows Service Won’t Start

I’ve been doing some work with a client recently to implement Jet Reports. We installed the Jet Service Tier to allow the management of data sources in a central repository. However, after installation we were unable to start the service and received an error each time: Error 1067: The process terminated unexpectedly. After doing some investigation, we found that what wasn’t being reported to… Continue Reading Ian...

Read More
Format XML
Feb15

Format XML

I posted a link to a website which will format your SQL code a while back and recently found myself looking for a way of formatting XML code to make it more readable. One of the clients I was working with, had an integration sending data to eConnect to load into Microsoft Dynamics GP, and the XML was coming across as one long string and I needed to make it readable by breaking it over multiple… Continue Reading Ian...

Read More