azurecurve ClassicPress Plugins: All plugins now auto-update

ClassicPress PluginsThis is part of the azurecurve ClassicPress Plugins which introduces the plugins I have available for ClassicPress.

I have 35 plugins now published for ClassicPress which have required a manual update whenever I released a new version. Well, CodePotent has developed an Update Manager plugin which can be used to automatically update plugins.

This has been integrated into the latest version of all of my plugins; this means if you manually update to the latest version, all future updates will come down as an automatic update which is applied in the same way as the WordPress plugin updates.

It’s been pointed out to me that I should clarify that by “automatic update” I mean it is available as an update in the same way as a standard plugin updated from the WordPress Repository, and in future from the ClassicPress Directory, not that it will update without an admin logging into the dashboard and hitting the update button.

All future plugins I create will include this automatic update functionality as well, until such time as the ClassicPress Plugin Directory is launched.

Updated at 2128 on 31/01/2020 to clarify what I mean by auto-update.

Dynamics GP Reconcile to GL missing the option for Inventory

Microsoft Dynamics GPI helped field a query from a client recently on the Reconcile to GL routine (Financial » Routines » Reconcile to GL) showing Payables Management, Receivales Management and Bank Reconciliation, but not Inventory.

This client has been a long time user of Microsoft Dynamics GP who had recently upgraded. This issue is a known one, addressed on the Dynamics GP Support and Services Blog.

With the support of the helpdesk, the client was able to run through the steps to resolve the issue and perform a reconciliation of the Inventory module to the GL.

azurecurve ClassicPress Plugins: To Twitter

ClassicPress PluginsThis 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; To Twitter.

Functionality

Allows posts to be automatically tweeted when they are published.

Mark the Post tweet on publish/update? checkbox to post tweet when the post is published (works for both immediately and scheduled posts.

Set hashtags in the hashtags box; these appear after the tweet.

Save a draft of the post to see auto-generated default tweet and amend if necessary; to regenerate default tweet, clear Tweet field and save draft; post URL is represented by a %s placeholder.

Integrates with my URL Shortener for URL in tweet.

This plugin is multisite compatible with each site having it’s own settings.

Download

The plugin can be downloaded via my Development site.

Wildcard character in Dynamics GP Workflow conditions

Microsoft Dynamics GPI’ve done a lot of work with the Microsoft Dynamics GP Workflow module over the years since it was first released and it still seems to be growing in popularity with clients. Depending on the workflow type being created, the GL account string can be used in conditions to determine the routing for the approver.

However, commonly clients want to check the value for a single segment rather than the full account string. You can, to an extend, accomplish this using filters such as contains or begins with, but sometimes this isn’t feasible. You can get round this problem be using the _ wildcard in your condition.

For example, if I was setting up a purchase requisition workflow and wanted to configure a routing for all advertising expense codes, which is the codes where the Account segment start 66, to the Marketing Director, I could set up a condition where the account string is ___-66_0-00:

Workflow Condition error with wildcards in the account string
Workflow Condition example with wildcards in the account string

This would use this workflow step for all Divisions (segment 1) for department 00, where the Account (segment 2) starts with 66 and ends with 0. The wildcard character allows an account string with any value in the characters replaced with an underscore to be selected.

azurecurve ClassicPress Plugins: Markdown

ClassicPress PluginsThis 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; Markdown.

Functionality

This plugin allows a [markdown]shortcode[/markdown] to be applied which will translate markdown into HTML markup for display.

Demo

Markdown is installed on my Development site with all of the plugin pages, including the one for this plugin are written in markdown.

Download

The plugin can be downloaded via my Development site.

“The vendor has an existing purchase order…” error message when using Integration Manager

Microsoft Dynamics GPI’ve recently been working with a client to implement Microsoft Dynamics GP and have been using Integration Manager to import the opening data. While importing payables transactions I encountered the following error:

The vendor has an existing purchase order error
The vendor has an existing purchase order. Choose Continue to post or save. Choose Go To to view a purchasing navigation list. Choose Cancel to return to the window...

Continue reading ““The vendor has an existing purchase order…” error message when using Integration Manager”

azurecurve ClassicPress Plugins: Add Open Graph Tags

ClassicPress PluginsThis 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; Add Open Graph Tags.

Functionality

Add Open Graph Tags to attach rich photos to social media posts to Facebook or LinkedIn, helping to drive traffic to your website.

Options allow:

  • Excerpt or first 200 characters of post added to card.
  • Thumbnail or first post image will be added to card.
  • Integrate with Floating Featured Images for card image.

This plugin is multisite compatible; each site will need settings to be configured in the admin dashboard.

Demo

If you select a post on this blog containing images, the first one will be sent to LinkedIn or Facebook when you share the post.

Download

The plugin can be downloaded via my Development site.

SQL Stored Procedure to delete old Microsoft Dynamics GP Document Attachments

Microsoft Dynamics GPThe Document Attachment feature was introduced in Microsoft Dynamics GP 2013 RTM and has been enhanced a number of times since. One of the features it does not have is the ability to delete attachments; you can flag them as deleted, but they are not removed from the database.

With GDPR rules, clients have become concerned about the information retained in the system without a means to delete it. To that end I created a SQL stored procedure which could be scheduled to run on a regular basis and delete transactions older than the specified number of years (highlighted value is the number of years).

This allows clients to run this on a scheduled basis and remove old documents; it can also serve as the basis for a customised version which deletes on a more controlled basis.

As with any script, please ensure you perform through testing before deploying to a live system.

IF OBJECT_ID (N'usp_AZRCRV_DeleteDocAttachAttachments', N'P') IS NOT NULL
    DROP PROCEDURE usp_AZRCRV_DeleteDocAttachAttachments
GO CREATE PROCEDURE dbo.usp_AZRCRV_DeleteDocAttachAttachments
@iAge INTEGER = 7 AS /*
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). */
-- CREATE TEMPORARY TABLE CREATE TABLE #AttachmentsToDelete( Attachment_ID CHAR(37) ) -- SELECT ATTACHMENTS OVER n YEARS OLD TO DELETE INSERT INTO #AttachmentsToDelete
(Attachment_ID) --VALUES ( SELECT Attachment_ID
FROM CO00101
WHERE CREATDDT < DATEADD(yyyy, -@iAge, GETDATE()) ) -- DELETE FROM Document Attachment Master (CO00101) DELETE FROM CO00101
WHERE Attachment_ID IN (SELECT Attachment_ID FROM #AttachmentsToDelete) -- DELETE FROM Document Attachment Reference (CO00102) DELETE FROM CO00102
WHERE Attachment_ID IN (SELECT Attachment_ID FROM #AttachmentsToDelete) -- DELETE FROM Document Attachment Properties (CO00103) DELETE FROM CO00103
WHERE Attachment_ID IN (SELECT Attachment_ID FROM #AttachmentsToDelete) -- DELETE FROM Document Attachment Status (CO00104) DELETE FROM CO00104
WHERE Attachment_ID IN (SELECT Attachment_ID FROM #AttachmentsToDelete) -- DELETE FROM Document Attachment Email (CO00105) DELETE FROM CO00105
WHERE Attachment_ID IN (SELECT Attachment_ID FROM #AttachmentsToDelete) -- DELETE FROM COATTACHMENTITEMS DELETE FROM coAttachmentItems
WHERE Attachment_ID IN (SELECT Attachment_ID FROM #AttachmentsToDelete) -- DROP TEMPORARY TABLE
DROP TABLE #AttachmentsToDelete

GO

SQL View to return Microsoft Dynamics GP Workflow step approvers

Microsoft Dynamics GPI was recently talking to a client who was looking at creating a SQL script which they could run for the auditors which shows the assigned approvers to the steps of a Microsoft Dynamics GP Workflow process.

I’d written similar code for others before so I was able to provide them with this view:

CREATE VIEW uv_AZRCRV_GetWorkflowSetupStepAssignment AS
/*
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). */
SELECT ['Workflow Master'].Workflow_name
,['Workflow Master'].Workflow_Description
,CASE WHEN ['Workflow Master'].ACTIVE = 1 THEN 'Yes' ELSE 'No' END AS ACTIVE
,['Workflow Step Instance Table'].WF_Step_Predecessor
,['Workflow Step Instance Table'].Workflow_Step_Name
,['Workflow Step Instance Table'].WF_Step_Description
,['Workflow Step Instance Table'].EmailMessageID
,['Workflow Users'].ADLogin
,['Workflow Users'].ADDisplayName
FROM WF100002 AS ['Workflow Master'] LEFT JOIN WF100003 AS ['Workflow Step Instance Table'] ON ['Workflow Step Instance Table'].Workflow_Name= ['Workflow Master'].Workflow_Name
LEFT JOIN WF40200 AS ['Workflow Users'] ON ['Workflow Step Instance Table'].Workflow_Step_Assign_To = ['Workflow Users'].UsersListGuid
GO

This can be deployed to a company database and a SmartList object created using either SmartList Designer or SmartList Builder.

Updated 27/2/2020 to add Active column

ClassicPress Development with GitHub: Sign up for GitHub

GitHubWhen I started developing plugins for ClassicPress I decided that I needed to be using source control. As ClassicPress is intending to use GitHub for their plugin directory, it made sense for me to use it as well. This post is part of a series on ClassicPress Development with GitHub.

The first step to using GitHub for developing with ClasssicPress, is to create a GitHub account; navigate to the landing page, enter a Username, Email and Password and click the large green Sign up for Github button:

Sign up for GitHub

Continue reading “ClassicPress Development with GitHub: Sign up for GitHub”